From 01c5834c81602c7f51c6d4808ee6c72a4428cb20 Mon Sep 17 00:00:00 2001 From: netil Date: Thu, 13 Jun 2024 02:13:20 +0000 Subject: [PATCH] skip:3.12.4-release --- release/3.12.4/dist-esm/billboard.js | 24365 ++++++++ .../billboardjs-plugin-bubblecompare.d.ts | 7 + .../billboardjs-plugin-bubblecompare.js | 204 + .../plugin/billboardjs-plugin-sparkline.d.ts | 7 + .../plugin/billboardjs-plugin-sparkline.js | 716 + .../plugin/billboardjs-plugin-stanford.d.ts | 7 + .../plugin/billboardjs-plugin-stanford.js | 1187 + .../plugin/billboardjs-plugin-tableview.d.ts | 7 + .../plugin/billboardjs-plugin-tableview.js | 562 + .../billboardjs-plugin-textoverlap.d.ts | 7 + .../plugin/billboardjs-plugin-textoverlap.js | 435 + release/3.12.4/dist/billboard.css | 253 + release/3.12.4/dist/billboard.js | 21674 +++++++ release/3.12.4/dist/billboard.min.css | 9 + release/3.12.4/dist/billboard.min.js | 33 + release/3.12.4/dist/billboard.pkgd.js | 48785 ++++++++++++++++ release/3.12.4/dist/billboard.pkgd.min.js | 57 + release/3.12.4/dist/package.json | 1 + .../billboardjs-plugin-bubblecompare.d.ts | 7 + .../billboardjs-plugin-bubblecompare.js | 209 + .../billboardjs-plugin-bubblecompare.min.js | 11 + .../plugin/billboardjs-plugin-sparkline.d.ts | 7 + .../plugin/billboardjs-plugin-sparkline.js | 990 + .../billboardjs-plugin-sparkline.min.js | 13 + .../plugin/billboardjs-plugin-stanford.d.ts | 7 + .../plugin/billboardjs-plugin-stanford.js | 1320 + .../plugin/billboardjs-plugin-stanford.min.js | 24 + .../plugin/billboardjs-plugin-tableview.d.ts | 7 + .../plugin/billboardjs-plugin-tableview.js | 862 + .../billboardjs-plugin-tableview.min.js | 39 + .../billboardjs-plugin-textoverlap.d.ts | 7 + .../plugin/billboardjs-plugin-textoverlap.js | 740 + .../billboardjs-plugin-textoverlap.min.js | 13 + .../billboardjs-plugin-bubblecompare.pkgd.js | 20280 +++++++ ...llboardjs-plugin-bubblecompare.pkgd.min.js | 14 + .../pkgd/billboardjs-plugin-sparkline.pkgd.js | 23401 ++++++++ .../billboardjs-plugin-sparkline.pkgd.min.js | 16 + .../pkgd/billboardjs-plugin-stanford.pkgd.js | 24769 ++++++++ .../billboardjs-plugin-stanford.pkgd.min.js | 27 + .../pkgd/billboardjs-plugin-tableview.pkgd.js | 23275 ++++++++ .../billboardjs-plugin-tableview.pkgd.min.js | 42 + .../billboardjs-plugin-textoverlap.pkgd.js | 26640 +++++++++ ...billboardjs-plugin-textoverlap.pkgd.min.js | 16 + release/3.12.4/dist/theme/dark.css | 310 + release/3.12.4/dist/theme/dark.min.css | 9 + release/3.12.4/dist/theme/datalab.css | 307 + release/3.12.4/dist/theme/datalab.min.css | 9 + release/3.12.4/dist/theme/graph.css | 320 + release/3.12.4/dist/theme/graph.min.css | 9 + release/3.12.4/dist/theme/insight.css | 301 + release/3.12.4/dist/theme/insight.min.css | 9 + release/3.12.4/dist/theme/modern.css | 317 + release/3.12.4/dist/theme/modern.min.css | 9 + release/3.12.4/doc/Chart.html | 11849 ++++ .../doc/ChartInternal_data_data.ts.html | 1191 + .../ChartInternal_interactions_drag.ts.html | 218 + ...artInternal_interactions_eventrect.ts.html | 785 + .../ChartInternal_internals_category.ts.html | 103 + .../doc/ChartInternal_internals_clip.ts.html | 233 + .../ChartInternal_internals_legend.ts.html | 1014 + .../doc/ChartInternal_shape_area.ts.html | 281 + .../doc/ChartInternal_shape_bar.ts.html | 398 + .../ChartInternal_shape_candlestick.ts.html | 342 + .../doc/ChartInternal_shape_line.ts.html | 430 + .../doc/ChartInternal_shape_point.ts.html | 662 + .../doc/ChartInternal_shape_shape.ts.html | 689 + release/3.12.4/doc/Chart_Chart.ts.html | 240 + release/3.12.4/doc/Chart_api_axis.ts.html | 345 + release/3.12.4/doc/Chart_api_category.ts.html | 144 + release/3.12.4/doc/Chart_api_chart.ts.html | 287 + release/3.12.4/doc/Chart_api_color.ts.html | 105 + release/3.12.4/doc/Chart_api_data.ts.html | 282 + release/3.12.4/doc/Chart_api_export.ts.html | 384 + release/3.12.4/doc/Chart_api_flow.ts.html | 307 + release/3.12.4/doc/Chart_api_focus.ts.html | 219 + release/3.12.4/doc/Chart_api_grid.ts.html | 288 + release/3.12.4/doc/Chart_api_group.ts.html | 120 + release/3.12.4/doc/Chart_api_legend.ts.html | 150 + release/3.12.4/doc/Chart_api_load.ts.html | 326 + release/3.12.4/doc/Chart_api_regions.ts.html | 247 + .../3.12.4/doc/Chart_api_selection.ts.html | 231 + release/3.12.4/doc/Chart_api_show.ts.html | 221 + release/3.12.4/doc/Chart_api_subchart.ts.html | 259 + release/3.12.4/doc/Chart_api_tooltip.ts.html | 236 + release/3.12.4/doc/Chart_api_x.ts.html | 160 + release/3.12.4/doc/Chart_api_zoom.ts.html | 321 + release/3.12.4/doc/Options.html | 33651 +++++++++++ release/3.12.4/doc/Plugin.html | 295 + release/3.12.4/doc/Plugin_Plugin.ts.html | 152 + .../doc/Plugin_bubblecompare_Options.ts.html | 136 + .../doc/Plugin_bubblecompare_index.ts.html | 202 + .../doc/Plugin_sparkline_Options.ts.html | 115 + .../3.12.4/doc/Plugin_sparkline_index.ts.html | 381 + .../doc/Plugin_stanford_Options.ts.html | 235 + .../3.12.4/doc/Plugin_stanford_index.ts.html | 347 + .../doc/Plugin_tableview_Options.ts.html | 204 + .../3.12.4/doc/Plugin_tableview_index.ts.html | 259 + .../doc/Plugin_textoverlap_Options.ts.html | 138 + .../doc/Plugin_textoverlap_index.ts.html | 222 + release/3.12.4/doc/bb.html | 1020 + .../3.12.4/doc/config_Options_Options.ts.html | 130 + .../doc/config_Options_axis_axis.ts.html | 150 + .../3.12.4/doc/config_Options_axis_x.ts.html | 834 + .../3.12.4/doc/config_Options_axis_y.ts.html | 597 + .../3.12.4/doc/config_Options_axis_y2.ts.html | 557 + .../doc/config_Options_common_boost.ts.html | 117 + .../doc/config_Options_common_color.ts.html | 173 + .../doc/config_Options_common_grid.ts.html | 166 + .../doc/config_Options_common_legend.ts.html | 260 + .../doc/config_Options_common_main.ts.html | 506 + .../doc/config_Options_common_point.ts.html | 254 + .../doc/config_Options_common_title.ts.html | 132 + .../doc/config_Options_common_tooltip.ts.html | 339 + .../doc/config_Options_data_axis.ts.html | 240 + .../doc/config_Options_data_data.ts.html | 981 + .../doc/config_Options_data_selection.ts.html | 222 + ...ig_Options_interaction_interaction.ts.html | 131 + ...onfig_Options_interaction_subchart.ts.html | 158 + .../config_Options_interaction_zoom.ts.html | 172 + .../doc/config_Options_shape_arc.ts.html | 239 + .../doc/config_Options_shape_area.ts.html | 161 + .../doc/config_Options_shape_bar.ts.html | 225 + .../doc/config_Options_shape_bubble.ts.html | 120 + .../config_Options_shape_candlestick.ts.html | 146 + .../doc/config_Options_shape_donut.ts.html | 172 + .../doc/config_Options_shape_funnel.ts.html | 124 + .../doc/config_Options_shape_gauge.ts.html | 235 + .../doc/config_Options_shape_line.ts.html | 143 + .../doc/config_Options_shape_pie.ts.html | 185 + .../doc/config_Options_shape_polar.ts.html | 167 + .../doc/config_Options_shape_radar.ts.html | 161 + .../doc/config_Options_shape_scatter.ts.html | 121 + .../doc/config_Options_shape_spline.ts.html | 131 + .../doc/config_Options_shape_treemap.ts.html | 139 + release/3.12.4/doc/core.ts.html | 244 + .../doc/fonts/Montserrat/Montserrat-Bold.eot | Bin 0 -> 106135 bytes .../doc/fonts/Montserrat/Montserrat-Bold.ttf | Bin 0 -> 47088 bytes .../doc/fonts/Montserrat/Montserrat-Bold.woff | Bin 0 -> 112872 bytes .../fonts/Montserrat/Montserrat-Bold.woff2 | Bin 0 -> 85436 bytes .../fonts/Montserrat/Montserrat-Regular.eot | Bin 0 -> 106287 bytes .../fonts/Montserrat/Montserrat-Regular.ttf | Bin 0 -> 46392 bytes .../fonts/Montserrat/Montserrat-Regular.woff | Bin 0 -> 112020 bytes .../fonts/Montserrat/Montserrat-Regular.woff2 | Bin 0 -> 85240 bytes .../sourcesanspro-light-webfont.eot | Bin 0 -> 19390 bytes .../sourcesanspro-light-webfont.svg | 978 + .../sourcesanspro-light-webfont.ttf | Bin 0 -> 67760 bytes .../sourcesanspro-light-webfont.woff | Bin 0 -> 21132 bytes .../sourcesanspro-light-webfont.woff2 | Bin 0 -> 16080 bytes .../sourcesanspro-regular-webfont.eot | Bin 0 -> 20014 bytes .../sourcesanspro-regular-webfont.svg | 1049 + .../sourcesanspro-regular-webfont.ttf | Bin 0 -> 68656 bytes .../sourcesanspro-regular-webfont.woff | Bin 0 -> 21720 bytes .../sourcesanspro-regular-webfont.woff2 | Bin 0 -> 16636 bytes release/3.12.4/doc/global.html | 366 + release/3.12.4/doc/index.html | 410 + release/3.12.4/doc/plugin-bubblecompare.html | 611 + release/3.12.4/doc/plugin-sparkline.html | 443 + release/3.12.4/doc/plugin-stanford.html | 1618 + release/3.12.4/doc/plugin-tableview.html | 1053 + release/3.12.4/doc/plugin-textoverlap.html | 623 + release/3.12.4/doc/scripts/collapse.js | 39 + release/3.12.4/doc/scripts/commonNav.js | 28 + release/3.12.4/doc/scripts/linenumber.js | 25 + release/3.12.4/doc/scripts/nav.js | 12 + release/3.12.4/doc/scripts/polyfill.js | 4 + .../scripts/prettify/Apache-License-2.0.txt | 202 + .../3.12.4/doc/scripts/prettify/lang-css.js | 2 + .../3.12.4/doc/scripts/prettify/prettify.js | 28 + release/3.12.4/doc/scripts/search.js | 99 + release/3.12.4/doc/static/analytics.js | 12 + release/3.12.4/doc/static/doc.css | 59 + release/3.12.4/doc/styles/jsdoc.css | 776 + release/3.12.4/doc/styles/prettify.css | 80 + release/latest/dist-esm/billboard.js | 10 +- .../billboardjs-plugin-bubblecompare.js | 4 +- .../plugin/billboardjs-plugin-sparkline.js | 4 +- .../plugin/billboardjs-plugin-stanford.js | 4 +- .../plugin/billboardjs-plugin-tableview.js | 4 +- .../plugin/billboardjs-plugin-textoverlap.js | 4 +- release/latest/dist/billboard.css | 2 +- release/latest/dist/billboard.js | 6 +- release/latest/dist/billboard.min.css | 2 +- release/latest/dist/billboard.min.js | 6 +- release/latest/dist/billboard.pkgd.js | 6 +- release/latest/dist/billboard.pkgd.min.js | 6 +- .../billboardjs-plugin-bubblecompare.js | 7 +- .../billboardjs-plugin-bubblecompare.min.js | 4 +- .../plugin/billboardjs-plugin-sparkline.js | 7 +- .../billboardjs-plugin-sparkline.min.js | 6 +- .../plugin/billboardjs-plugin-stanford.js | 7 +- .../plugin/billboardjs-plugin-stanford.min.js | 16 +- .../plugin/billboardjs-plugin-tableview.js | 7 +- .../billboardjs-plugin-tableview.min.js | 10 +- .../plugin/billboardjs-plugin-textoverlap.js | 7 +- .../billboardjs-plugin-textoverlap.min.js | 6 +- .../billboardjs-plugin-bubblecompare.pkgd.js | 4 +- ...llboardjs-plugin-bubblecompare.pkgd.min.js | 4 +- .../pkgd/billboardjs-plugin-sparkline.pkgd.js | 4 +- .../billboardjs-plugin-sparkline.pkgd.min.js | 4 +- .../pkgd/billboardjs-plugin-stanford.pkgd.js | 4 +- .../billboardjs-plugin-stanford.pkgd.min.js | 4 +- .../pkgd/billboardjs-plugin-tableview.pkgd.js | 4 +- .../billboardjs-plugin-tableview.pkgd.min.js | 4 +- .../billboardjs-plugin-textoverlap.pkgd.js | 4 +- ...billboardjs-plugin-textoverlap.pkgd.min.js | 4 +- release/latest/dist/theme/dark.css | 2 +- release/latest/dist/theme/dark.min.css | 2 +- release/latest/dist/theme/datalab.css | 2 +- release/latest/dist/theme/datalab.min.css | 2 +- release/latest/dist/theme/graph.css | 2 +- release/latest/dist/theme/graph.min.css | 2 +- release/latest/dist/theme/insight.css | 2 +- release/latest/dist/theme/insight.min.css | 2 +- release/latest/dist/theme/modern.css | 2 +- release/latest/dist/theme/modern.min.css | 2 +- release/latest/doc/bb.html | 2 +- 216 files changed, 300517 insertions(+), 105 deletions(-) create mode 100644 release/3.12.4/dist-esm/billboard.js create mode 100644 release/3.12.4/dist-esm/plugin/billboardjs-plugin-bubblecompare.d.ts create mode 100644 release/3.12.4/dist-esm/plugin/billboardjs-plugin-bubblecompare.js create mode 100644 release/3.12.4/dist-esm/plugin/billboardjs-plugin-sparkline.d.ts create mode 100644 release/3.12.4/dist-esm/plugin/billboardjs-plugin-sparkline.js create mode 100644 release/3.12.4/dist-esm/plugin/billboardjs-plugin-stanford.d.ts create mode 100644 release/3.12.4/dist-esm/plugin/billboardjs-plugin-stanford.js create mode 100644 release/3.12.4/dist-esm/plugin/billboardjs-plugin-tableview.d.ts create mode 100644 release/3.12.4/dist-esm/plugin/billboardjs-plugin-tableview.js create mode 100644 release/3.12.4/dist-esm/plugin/billboardjs-plugin-textoverlap.d.ts create mode 100644 release/3.12.4/dist-esm/plugin/billboardjs-plugin-textoverlap.js create mode 100644 release/3.12.4/dist/billboard.css create mode 100644 release/3.12.4/dist/billboard.js create mode 100644 release/3.12.4/dist/billboard.min.css create mode 100644 release/3.12.4/dist/billboard.min.js create mode 100644 release/3.12.4/dist/billboard.pkgd.js create mode 100644 release/3.12.4/dist/billboard.pkgd.min.js create mode 100644 release/3.12.4/dist/package.json create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.d.ts create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.js create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.min.js create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.d.ts create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.js create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.min.js create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-stanford.d.ts create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-stanford.js create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-stanford.min.js create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-tableview.d.ts create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-tableview.js create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-tableview.min.js create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.d.ts create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.js create mode 100644 release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.min.js create mode 100644 release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-bubblecompare.pkgd.js create mode 100644 release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-bubblecompare.pkgd.min.js create mode 100644 release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-sparkline.pkgd.js create mode 100644 release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-sparkline.pkgd.min.js create mode 100644 release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-stanford.pkgd.js create mode 100644 release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-stanford.pkgd.min.js create mode 100644 release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-tableview.pkgd.js create mode 100644 release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-tableview.pkgd.min.js create mode 100644 release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-textoverlap.pkgd.js create mode 100644 release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-textoverlap.pkgd.min.js create mode 100644 release/3.12.4/dist/theme/dark.css create mode 100644 release/3.12.4/dist/theme/dark.min.css create mode 100644 release/3.12.4/dist/theme/datalab.css create mode 100644 release/3.12.4/dist/theme/datalab.min.css create mode 100644 release/3.12.4/dist/theme/graph.css create mode 100644 release/3.12.4/dist/theme/graph.min.css create mode 100644 release/3.12.4/dist/theme/insight.css create mode 100644 release/3.12.4/dist/theme/insight.min.css create mode 100644 release/3.12.4/dist/theme/modern.css create mode 100644 release/3.12.4/dist/theme/modern.min.css create mode 100644 release/3.12.4/doc/Chart.html create mode 100644 release/3.12.4/doc/ChartInternal_data_data.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_interactions_drag.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_interactions_eventrect.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_internals_category.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_internals_clip.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_internals_legend.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_shape_area.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_shape_bar.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_shape_candlestick.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_shape_line.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_shape_point.ts.html create mode 100644 release/3.12.4/doc/ChartInternal_shape_shape.ts.html create mode 100644 release/3.12.4/doc/Chart_Chart.ts.html create mode 100644 release/3.12.4/doc/Chart_api_axis.ts.html create mode 100644 release/3.12.4/doc/Chart_api_category.ts.html create mode 100644 release/3.12.4/doc/Chart_api_chart.ts.html create mode 100644 release/3.12.4/doc/Chart_api_color.ts.html create mode 100644 release/3.12.4/doc/Chart_api_data.ts.html create mode 100644 release/3.12.4/doc/Chart_api_export.ts.html create mode 100644 release/3.12.4/doc/Chart_api_flow.ts.html create mode 100644 release/3.12.4/doc/Chart_api_focus.ts.html create mode 100644 release/3.12.4/doc/Chart_api_grid.ts.html create mode 100644 release/3.12.4/doc/Chart_api_group.ts.html create mode 100644 release/3.12.4/doc/Chart_api_legend.ts.html create mode 100644 release/3.12.4/doc/Chart_api_load.ts.html create mode 100644 release/3.12.4/doc/Chart_api_regions.ts.html create mode 100644 release/3.12.4/doc/Chart_api_selection.ts.html create mode 100644 release/3.12.4/doc/Chart_api_show.ts.html create mode 100644 release/3.12.4/doc/Chart_api_subchart.ts.html create mode 100644 release/3.12.4/doc/Chart_api_tooltip.ts.html create mode 100644 release/3.12.4/doc/Chart_api_x.ts.html create mode 100644 release/3.12.4/doc/Chart_api_zoom.ts.html create mode 100644 release/3.12.4/doc/Options.html create mode 100644 release/3.12.4/doc/Plugin.html create mode 100644 release/3.12.4/doc/Plugin_Plugin.ts.html create mode 100644 release/3.12.4/doc/Plugin_bubblecompare_Options.ts.html create mode 100644 release/3.12.4/doc/Plugin_bubblecompare_index.ts.html create mode 100644 release/3.12.4/doc/Plugin_sparkline_Options.ts.html create mode 100644 release/3.12.4/doc/Plugin_sparkline_index.ts.html create mode 100644 release/3.12.4/doc/Plugin_stanford_Options.ts.html create mode 100644 release/3.12.4/doc/Plugin_stanford_index.ts.html create mode 100644 release/3.12.4/doc/Plugin_tableview_Options.ts.html create mode 100644 release/3.12.4/doc/Plugin_tableview_index.ts.html create mode 100644 release/3.12.4/doc/Plugin_textoverlap_Options.ts.html create mode 100644 release/3.12.4/doc/Plugin_textoverlap_index.ts.html create mode 100644 release/3.12.4/doc/bb.html create mode 100644 release/3.12.4/doc/config_Options_Options.ts.html create mode 100644 release/3.12.4/doc/config_Options_axis_axis.ts.html create mode 100644 release/3.12.4/doc/config_Options_axis_x.ts.html create mode 100644 release/3.12.4/doc/config_Options_axis_y.ts.html create mode 100644 release/3.12.4/doc/config_Options_axis_y2.ts.html create mode 100644 release/3.12.4/doc/config_Options_common_boost.ts.html create mode 100644 release/3.12.4/doc/config_Options_common_color.ts.html create mode 100644 release/3.12.4/doc/config_Options_common_grid.ts.html create mode 100644 release/3.12.4/doc/config_Options_common_legend.ts.html create mode 100644 release/3.12.4/doc/config_Options_common_main.ts.html create mode 100644 release/3.12.4/doc/config_Options_common_point.ts.html create mode 100644 release/3.12.4/doc/config_Options_common_title.ts.html create mode 100644 release/3.12.4/doc/config_Options_common_tooltip.ts.html create mode 100644 release/3.12.4/doc/config_Options_data_axis.ts.html create mode 100644 release/3.12.4/doc/config_Options_data_data.ts.html create mode 100644 release/3.12.4/doc/config_Options_data_selection.ts.html create mode 100644 release/3.12.4/doc/config_Options_interaction_interaction.ts.html create mode 100644 release/3.12.4/doc/config_Options_interaction_subchart.ts.html create mode 100644 release/3.12.4/doc/config_Options_interaction_zoom.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_arc.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_area.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_bar.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_bubble.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_candlestick.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_donut.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_funnel.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_gauge.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_line.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_pie.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_polar.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_radar.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_scatter.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_spline.ts.html create mode 100644 release/3.12.4/doc/config_Options_shape_treemap.ts.html create mode 100644 release/3.12.4/doc/core.ts.html create mode 100644 release/3.12.4/doc/fonts/Montserrat/Montserrat-Bold.eot create mode 100644 release/3.12.4/doc/fonts/Montserrat/Montserrat-Bold.ttf create mode 100644 release/3.12.4/doc/fonts/Montserrat/Montserrat-Bold.woff create mode 100644 release/3.12.4/doc/fonts/Montserrat/Montserrat-Bold.woff2 create mode 100644 release/3.12.4/doc/fonts/Montserrat/Montserrat-Regular.eot create mode 100644 release/3.12.4/doc/fonts/Montserrat/Montserrat-Regular.ttf create mode 100644 release/3.12.4/doc/fonts/Montserrat/Montserrat-Regular.woff create mode 100644 release/3.12.4/doc/fonts/Montserrat/Montserrat-Regular.woff2 create mode 100644 release/3.12.4/doc/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot create mode 100644 release/3.12.4/doc/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg create mode 100644 release/3.12.4/doc/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf create mode 100644 release/3.12.4/doc/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff create mode 100644 release/3.12.4/doc/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 create mode 100644 release/3.12.4/doc/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot create mode 100644 release/3.12.4/doc/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg create mode 100644 release/3.12.4/doc/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf create mode 100644 release/3.12.4/doc/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff create mode 100644 release/3.12.4/doc/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 create mode 100644 release/3.12.4/doc/global.html create mode 100644 release/3.12.4/doc/index.html create mode 100644 release/3.12.4/doc/plugin-bubblecompare.html create mode 100644 release/3.12.4/doc/plugin-sparkline.html create mode 100644 release/3.12.4/doc/plugin-stanford.html create mode 100644 release/3.12.4/doc/plugin-tableview.html create mode 100644 release/3.12.4/doc/plugin-textoverlap.html create mode 100644 release/3.12.4/doc/scripts/collapse.js create mode 100644 release/3.12.4/doc/scripts/commonNav.js create mode 100644 release/3.12.4/doc/scripts/linenumber.js create mode 100644 release/3.12.4/doc/scripts/nav.js create mode 100644 release/3.12.4/doc/scripts/polyfill.js create mode 100644 release/3.12.4/doc/scripts/prettify/Apache-License-2.0.txt create mode 100644 release/3.12.4/doc/scripts/prettify/lang-css.js create mode 100644 release/3.12.4/doc/scripts/prettify/prettify.js create mode 100644 release/3.12.4/doc/scripts/search.js create mode 100644 release/3.12.4/doc/static/analytics.js create mode 100644 release/3.12.4/doc/static/doc.css create mode 100644 release/3.12.4/doc/styles/jsdoc.css create mode 100644 release/3.12.4/doc/styles/prettify.css diff --git a/release/3.12.4/dist-esm/billboard.js b/release/3.12.4/dist-esm/billboard.js new file mode 100644 index 000000000..4084ebb70 --- /dev/null +++ b/release/3.12.4/dist-esm/billboard.js @@ -0,0 +1,24365 @@ +/*! +* Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 +*/ +import { pointer, select, namespaces, selectAll } from 'd3-selection'; +import { timeParse, utcParse, timeFormat, utcFormat } from 'd3-time-format'; +import { brushSelection, brushY, brushX } from 'd3-brush'; +import { csvParseRows, csvParse, tsvParseRows, tsvParse } from 'd3-dsv'; +import { drag as drag$1 } from 'd3-drag'; +import { scaleOrdinal, scaleLinear, scaleSymlog, scaleLog, scaleTime, scaleUtc } from 'd3-scale'; +import { transition } from 'd3-transition'; +import { curveBasis, curveBasisClosed, curveBasisOpen, curveBundle, curveCardinal, curveCardinalClosed, curveCardinalOpen, curveCatmullRom, curveCatmullRomClosed, curveCatmullRomOpen, curveMonotoneX, curveMonotoneY, curveNatural, curveLinearClosed, curveLinear, curveStep, curveStepAfter, curveStepBefore, pie as pie$1, arc, area as area$1, line as line$1 } from 'd3-shape'; +import { axisLeft, axisBottom, axisTop, axisRight } from 'd3-axis'; +import { easeLinear } from 'd3-ease'; +import { interpolate } from 'd3-interpolate'; +import { treemap as treemap$1, treemapBinary, treemapDice, treemapSlice, treemapSliceDice, treemapSquarify, treemapResquarify, hierarchy } from 'd3-hierarchy'; +import { zoomIdentity, zoomTransform, zoom as zoom$2 } from 'd3-zoom'; + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise, SuppressedError, Symbol */ + + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * CSS class names definition + * @private + */ +var $COMMON = { + button: "bb-button", + chart: "bb-chart", + empty: "bb-empty", + main: "bb-main", + target: "bb-target", + EXPANDED: "_expanded_" +}; +var $ARC = { + arc: "bb-arc", + arcLabelLine: "bb-arc-label-line", + arcRange: "bb-arc-range", + arcs: "bb-arcs", + chartArc: "bb-chart-arc", + chartArcs: "bb-chart-arcs", + chartArcsBackground: "bb-chart-arcs-background", + chartArcsTitle: "bb-chart-arcs-title", + needle: "bb-needle" +}; +var $AREA = { + area: "bb-area", + areas: "bb-areas" +}; +var $AXIS = { + axis: "bb-axis", + axisX: "bb-axis-x", + axisXLabel: "bb-axis-x-label", + axisY: "bb-axis-y", + axisY2: "bb-axis-y2", + axisY2Label: "bb-axis-y2-label", + axisYLabel: "bb-axis-y-label", + axisXTooltip: "bb-axis-x-tooltip", + axisYTooltip: "bb-axis-y-tooltip", + axisY2Tooltip: "bb-axis-y2-tooltip" +}; +var $BAR = { + bar: "bb-bar", + bars: "bb-bars", + chartBar: "bb-chart-bar", + chartBars: "bb-chart-bars" +}; +var $CANDLESTICK = { + candlestick: "bb-candlestick", + candlesticks: "bb-candlesticks", + chartCandlestick: "bb-chart-candlestick", + chartCandlesticks: "bb-chart-candlesticks", + valueDown: "bb-value-down", + valueUp: "bb-value-up" +}; +var $CIRCLE = { + chartCircles: "bb-chart-circles", + circle: "bb-circle", + circles: "bb-circles" +}; +var $COLOR = { + colorPattern: "bb-color-pattern", + colorScale: "bb-colorscale" +}; +var $DRAG = { + dragarea: "bb-dragarea", + INCLUDED: "_included_" +}; +var $FUNNEL = { + funnel: "bb-funnel", + chartFunnel: "bb-chart-funnel", + chartFunnels: "bb-chart-funnels", + funnelBackground: "bb-funnel-background" +}; +var $GAUGE = { + chartArcsGaugeMax: "bb-chart-arcs-gauge-max", + chartArcsGaugeMin: "bb-chart-arcs-gauge-min", + chartArcsGaugeUnit: "bb-chart-arcs-gauge-unit", + chartArcsGaugeTitle: "bb-chart-arcs-gauge-title", + gaugeValue: "bb-gauge-value" +}; +var $LEGEND = { + legend: "bb-legend", + legendBackground: "bb-legend-background", + legendItem: "bb-legend-item", + legendItemEvent: "bb-legend-item-event", + legendItemHidden: "bb-legend-item-hidden", + legendItemPoint: "bb-legend-item-point", + legendItemTile: "bb-legend-item-tile" +}; +var $LINE = { + chartLine: "bb-chart-line", + chartLines: "bb-chart-lines", + line: "bb-line", + lines: "bb-lines" +}; +var $EVENT = { + eventRect: "bb-event-rect", + eventRects: "bb-event-rects", + eventRectsMultiple: "bb-event-rects-multiple", + eventRectsSingle: "bb-event-rects-single" +}; +var $FOCUS = { + focused: "bb-focused", + defocused: "bb-defocused", + legendItemFocused: "bb-legend-item-focused", + xgridFocus: "bb-xgrid-focus", + ygridFocus: "bb-ygrid-focus" +}; +var $GRID = { + grid: "bb-grid", + gridLines: "bb-grid-lines", + xgrid: "bb-xgrid", + xgridLine: "bb-xgrid-line", + xgridLines: "bb-xgrid-lines", + xgrids: "bb-xgrids", + ygrid: "bb-ygrid", + ygridLine: "bb-ygrid-line", + ygridLines: "bb-ygrid-lines", + ygrids: "bb-ygrids" +}; +var $LEVEL = { + level: "bb-level", + levels: "bb-levels" +}; +var $RADAR = { + chartRadar: "bb-chart-radar", + chartRadars: "bb-chart-radars" +}; +var $REGION = { + region: "bb-region", + regions: "bb-regions" +}; +var $SELECT = { + selectedCircle: "bb-selected-circle", + selectedCircles: "bb-selected-circles", + SELECTED: "_selected_" +}; +var $SHAPE = { + shape: "bb-shape", + shapes: "bb-shapes" +}; +var $SUBCHART = { + brush: "bb-brush", + subchart: "bb-subchart" +}; +var $TEXT = { + chartText: "bb-chart-text", + chartTexts: "bb-chart-texts", + text: "bb-text", + texts: "bb-texts", + title: "bb-title", + TextOverlapping: "text-overlapping" +}; +var $TOOLTIP = { + tooltip: "bb-tooltip", + tooltipContainer: "bb-tooltip-container", + tooltipName: "bb-tooltip-name" +}; +var $TREEMAP = { + treemap: "bb-treemap", + chartTreemap: "bb-chart-treemap", + chartTreemaps: "bb-chart-treemaps" +}; +var $ZOOM = { + buttonZoomReset: "bb-zoom-reset", + zoomBrush: "bb-zoom-brush" +}; +var CLASS = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, $COMMON), $ARC), $AREA), $AXIS), $BAR), $CANDLESTICK), $CIRCLE), $COLOR), $DRAG), $GAUGE), $LEGEND), $LINE), $EVENT), $FOCUS), $FUNNEL), $GRID), $RADAR), $REGION), $SELECT), $SHAPE), $SUBCHART), $TEXT), $TOOLTIP), $TREEMAP), $ZOOM); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * boost config options + */ +var boost = { + /** + * Set boost options + * @name boost + * @memberof Options + * @type {object} + * @property {object} boost boost object + * @property {boolean} [boost.useCssRule=false] Avoid setting inline styles for each shape elements. + * - **NOTE:** + * - Will append <style> to the head tag and will add shpes' CSS rules dynamically. + * - For now, covers colors related properties (fill, stroke, etc.) only. + * @property {boolean} [boost.useWorker=false] Use Web Worker as possible for processing. + * - **NOTE:** + * - For now, only applies for data conversion at the initial time. + * - As of Web Worker's async nature, handling chart instance synchrously is not recommended. + * @example + * boost: { + * useCssRule: true, + * useWorker: false + * } + */ + boost_useCssRule: false, + boost_useWorker: false +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * color config options + */ +var color$1 = { + /** + * Set color of the data values + * @name color + * @memberof Options + * @type {object} + * @property {object} color color object + * @property {string|object|Function} [color.onover] Set the color value for each data point when mouse/touch onover event occurs. + * @property {Array|null} [color.pattern=[]] Set custom color pattern. Passing `null` will not set a color for these elements, which requires the usage of custom CSS-based theming to work. + * @property {Function} [color.tiles] if defined, allows use svg's patterns to fill data area. It should return an array of [SVGPatternElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement). + * - **NOTE:** The pattern element's id will be defined as `bb-colorize-pattern-$COLOR-VALUE`.
+ * ex. When color pattern value is `['red', '#fff']` and defined 2 patterns,then ids for pattern elements are:
+ * - `bb-colorize-pattern-red` + * - `bb-colorize-pattern-fff` + * @property {object} [color.threshold] color threshold for gauge and tooltip color + * @property {string} [color.threshold.unit] If set to `value`, the threshold will be based on the data value. Otherwise it'll be based on equation of the `threshold.max` option value. + * @property {Array} [color.threshold.values] Threshold values for each steps + * @property {number} [color.threshold.max=100] The base value to determine threshold step value condition. When the given value is 15 and max 10, then the value for threshold is `15*100/10`. + * @example + * color: { + * pattern: ["#1f77b4", "#aec7e8", ...], + * + * // Set colors' patterns + * // it should return an array of SVGPatternElement + * tiles: function() { + * var pattern = document.createElementNS("http://www.w3.org/2000/svg", "pattern"); + * var g = document.createElementNS("http://www.w3.org/2000/svg", "g"); + * var circle1 = document.createElementNS("http://www.w3.org/2000/svg", "circle"); + * + * pattern.setAttribute("patternUnits", "userSpaceOnUse"); + * pattern.setAttribute("width", "32"); + * pattern.setAttribute("height", "32"); + * + * g.style.fill = "#000"; + * g.style.opacity = "0.2"; + * + * circle1.setAttribute("cx", "3"); + * circle1.setAttribute("cy", "3"); + * circle1.setAttribute("r", "3"); + * + * g.appendChild(circle1); + * pattern.appendChild(g); + * + * return [pattern]; + * }, + * + * // for threshold usage, pattern values should be set for each steps + * pattern: ["grey", "green", "yellow", "orange", "red"], + * threshold: { + * unit: "value", + * + * // when value is 20 => 'green', value is 40 => 'orange' will be set. + * values: [10, 20, 30, 40, 50], + * + * // the equation for max: + * // - unit == 'value': max => 30 + * // - unit != 'value': max => value*100/30 + * max: 30 + * }, + * + * // set all data to 'red' + * onover: "red", + * + * // set different color for data + * onover: { + * data1: "red", + * data2: "yellow" + * }, + * + * // will pass data object to the callback + * onover: function(d) { + * return d.id === "data1" ? "red" : "green"; + * } + * } + */ + color_pattern: [], + color_tiles: undefined, + color_threshold: {}, + color_onover: undefined +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * legend config options + */ +var legend$2 = { + /** + * Legend options + * @name legend + * @memberof Options + * @type {object} + * @property {object} legend Legend object + * @property {boolean} [legend.show=true] Show or hide legend. + * @property {boolean} [legend.hide=false] Hide legend + * If true given, all legend will be hidden. If string or array given, only the legend that has the id will be hidden. + * @property {string|HTMLElement} [legend.contents.bindto=undefined] Set CSS selector or element reference to bind legend items. + * - **NOTE:** Should be used along with `legend.contents.template`. + * @property {string|Function} [legend.contents.template="{=TITLE}"] Set item's template.
+ * - If set `string` value, within template the 'color' and 'title' can be replaced using template-like syntax string: + * - {=COLOR}: data color value + * - {=TITLE}: data title value + * - If set `function` value, will pass following arguments to the given function: + * - title {string}: data's id value + * - color {string}: color string + * - data {Array}: data array + * @property {string} [legend.position=bottom] Change the position of legend.
+ * Available values are: `bottom`, `right` and `inset` are supported. + * @property {object} [legend.inset={anchor: 'top-left',x: 10,y: 0,step: undefined}] Change inset legend attributes.
+ * This option accepts object that has the keys `anchor`, `x`, `y` and `step`. + * - **anchor** decides the position of the legend: + * - top-left + * - top-right + * - bottom-left + * - bottom-right + * - **x** and **y**: + * - set the position of the legend based on the anchor. + * - **step**: + * - defines the max step the legend has (e.g. If 2 set and legend has 3 legend item, the legend 2 columns). + * @property {boolean} [legend.equally=false] Set to all items have same width size. + * @property {number} [legend.padding=0] Set padding value + * @property {boolean} [legend.item.interaction=true] Set legend item interaction. + * - **NOTE:** + * - This setting will not have effect on `.toggle()` method. + * - `legend.item.onXXX` listener options will work if set, regardless of this option value. + * @property {boolean} [legend.item.interaction.dblclick=false] Set legend item to interact on double click. + * - **NOTE:** + * - Double clicking will make focused clicked dataseries only, hiding all others. + * - for single click case, `click + altKey(Win)/optionKey(Mac OS)` to have same effect. + * - To return initial state(which all dataseries are showing), double click current focused legend item again. + * - for single click case, `click + altKey(Win)/optionKey(Mac OS)` to have same effect. + * - In this case, default `click` interaction will be disabled. + * @property {Function} [legend.item.onclick=undefined] Set click event handler to the legend item. + * - **NOTE:** + * - When set, default `click` interaction will be disabled. + * - When `interaction.dblclick=true` is set, will be called on double click. + * @property {Function} [legend.item.onover=undefined] Set mouse/touch over event handler to the legend item. + * - **NOTE:** When set, default `mouseover` interaction will be disabled. + * @property {Function} [legend.item.onout=undefined] Set mouse/touch out event handler to the legend item. + * - **NOTE:** When set, default `mouseout` interaction will be disabled. + * @property {number} [legend.item.tile.width=10] Set width for 'rectangle' legend item tile element. + * @property {number} [legend.item.tile.height=10] Set height for 'rectangle' legend item tile element. + * @property {number} [legend.item.tile.r=5] Set the radius for 'circle' legend item tile type. + * @property {string} [legend.item.tile.type="rectangle"] Set legend item shape type.
+ * - **Available Values:** + * - circle + * - rectangle + * @property {boolean} [legend.format] Set formatter function for legend text. + * The argument:
+ * - `id`: legend text value. When `data.names` is specified, will pass from it, otherwise will pass data id. + * @property {boolean} [legend.tooltip=false] Show full legend text value using system tooltip(via `` element). + * @property {boolean} [legend.usePoint=false] Whether to use custom points in legend. + * @see [Demo: format](https://naver.github.io/billboard.js/demo/#Legend.LegendFormat) + * @see [Demo: item.interaction](https://naver.github.io/billboard.js/demo/#Legend.LegendItemInteraction) + * @see [Demo: item.tile.type](https://naver.github.io/billboard.js/demo/#Legend.LegendItemTileType) + * @see [Demo: position](https://naver.github.io/billboard.js/demo/#Legend.LegendPosition) + * @see [Demo: contents.template](https://naver.github.io/billboard.js/demo/#Legend.LegendTemplate1) + * @see [Demo: usePoint](https://naver.github.io/billboard.js/demo/#Legend.usePoint) + * @example + * legend: { + * show: true, + * hide: true, + * //or hide: "data1" + * //or hide: ["data1", "data2"] + * contents: { + * bindto: "#legend", // <ul id='legend'></ul> + * + * // will be as: <li style='background-color:#1f77b4'>data1</li> + * template: "<li style='background-color:{=COLOR}'>{=TITLE}</li>" + * + * // or using function + * template: function(id, color, data) { + * // if you want omit some legend, return falsy value + * if (id !== "data1") { + * return "<li style='background-color:"+ color +">"+ id +"</li>"; + * } + * } + * }, + * position: "bottom", // bottom, right, inset + * inset: { + * anchor: "top-right" // top-left, top-right, bottom-left, bottom-right + * x: 20, + * y: 10, + * step: 2 + * }, + * equally: false, + * padding: 10, + * item: { + * // will disable default interaction + * interaction: false, + * + * // set legend interact on double click + * // by double clicking, will make focused clicked dataseries only, hiding all others. + * interaction: { + * dblclick: true + * } + * + * // when set below callback, will disable corresponding default interactions + * onclick: function(id) { ... }, + * onover: function(id) { ... }, + * onout: function(id) { ... }, + * + * // set tile's size + * tile: { + * // set tile type + * type: "circle" // or "rectangle" (default) + * + * // width & height, are only applicable for 'rectangle' legend type + * width: 15, + * height: 15 + * + * // radis is only applicable for 'circle' legend type + * r: 10 + * } + * }, + * format: function(id) { + * // set ellipsis string when length is > 5 + * // to get full legend value, combine with 'legend.tooltip=true' + * if (id.length > 5) { + * id = id.substr(0, 5) + "..."; + * } + * + * return id; + * }, + * tooltip: true, + * usePoint: true + * } + */ + legend_contents_bindto: undefined, + legend_contents_template: "<span style='color:#fff;padding:5px;background-color:{=COLOR}'>{=TITLE}</span>", + legend_equally: false, + legend_hide: false, + legend_inset_anchor: "top-left", + legend_inset_x: 10, + legend_inset_y: 0, + legend_inset_step: undefined, + legend_item_interaction: true, + legend_item_dblclick: false, + legend_item_onclick: undefined, + legend_item_onover: undefined, + legend_item_onout: undefined, + legend_item_tile_width: 10, + legend_item_tile_height: 10, + legend_item_tile_r: 5, + legend_item_tile_type: "rectangle", + legend_format: undefined, + legend_padding: 0, + legend_position: "bottom", + legend_show: true, + legend_tooltip: false, + legend_usePoint: false +}; + +/** + * main config options + */ +var main = { + /** + * Specify the CSS selector or the element which the chart will be set to. D3 selection object can be specified also.<br> + * If other chart is set already, it will be replaced with the new one (only one chart can be set in one element). + * - **NOTE:** In case of element doesn't exist or not specified, will add a `<div>` element to the body. + * @name bindto + * @memberof Options + * @property {string|HTMLElement|d3.selection|object} [bindto="#chart"] Specify the element where chart will be drawn. + * @property {string|HTMLElement|d3.selection} bindto.element="#chart" Specify the element where chart will be drawn. + * @property {string} [bindto.classname=bb] Specify the class name of bind element.<br> + * **NOTE:** When class name isn't `bb`, then you also need to update the default CSS to be rendered correctly. + * @default #chart + * @example + * bindto: "#myContainer" + * + * // or HTMLElement + * bindto: document.getElementById("myContainer") + * + * // or D3 selection object + * bindto: d3.select("#myContainer") + * + * // or to change default classname + * bindto: { + * element: "#chart", + * classname: "bill-board" // ex) <div id='chart' class='bill-board'> + * } + */ + bindto: "#chart", + /** + * Set chart background. + * @name background + * @memberof Options + * @property {object} background background object + * @property {string} background.class Specify the class name for background element. + * @property {string} background.color Specify the fill color for background element.<br>**NOTE:** Will be ignored if `imgUrl` option is set. + * @property {string} background.imgUrl Specify the image url string for background. + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.Background) + * @example + * background: { + * class: "myClass", + * color: "red", + * + * // Set image url for background. + * // If specified, 'color' option will be ignored. + * imgUrl: "https://naver.github.io/billboard.js/img/logo/billboard.js.svg", + * } + */ + background: {}, + /** + * Set 'clip-path' attribute for chart element + * - **NOTE:** + * > When is false, chart node element is positioned after the axis node in DOM tree hierarchy. + * > Is to make chart element positioned over axis element. + * @name clipPath + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.clipPath) + * @example + * // don't set 'clip-path' attribute + * clipPath: false + */ + clipPath: true, + /** + * Set svg element's class name + * @name svg + * @memberof Options + * @type {object} + * @property {object} [svg] svg object + * @property {string} [svg.classname] class name for svg element + * @example + * svg: { + * classname: "test_class" + * } + */ + svg_classname: undefined, + /** + * The desired size of the chart element. + * If value is not specified, the width of the chart will be calculated by the size of the parent element it's appended to. + * @name size + * @memberof Options + * @type {object} + * @property {object} [size] size object + * @property {number} [size.width] width of the chart element + * @property {number} [size.height] height of the chart element + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.ChartSize) + * @example + * size: { + * width: 640, + * height: 480 + * } + */ + size_width: undefined, + size_height: undefined, + /** + * The padding of the chart element. + * - **NOTE:** for more information, see the "[`Understanding padding`](https://github.com/naver/billboard.js/wiki/Understanding-padding)"" wiki documentaion. + * @name padding + * @memberof Options + * @type {object} + * @property {object|boolean} [padding=true] Set padding of chart, and accepts object or boolean type. + * - `Object`: Specify each side's padding. + * - `false`: Remove padding completely and make shape to fully occupy the container element. + * - In this case, axes and subchart will be hidden. + * - To adjust some padding from this state, use `axis.[x|y].padding` option. + * @property {string} [padding.mode] padding mode + * - `"fit"`: Reduce padding as much as possible to make chart fit to the container element for chart types w/axis.<br>When specified, all padding values will be relative from fitted value. + * @property {number} [padding.top] padding on the top of chart + * @property {number} [padding.right] padding on the right of chart + * @property {number} [padding.bottom] padding on the bottom of chart + * @property {number} [padding.left] padding on the left of chart + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.Padding) + * @see [Demo: Fit padding](https://naver.github.io/billboard.js/demo/#ChartOptions.FitPadding) + * @example + * // remove padding completely. + * padding: false, + * + * padding: { + * // specifying mode value, will reduce padding and make fit to the container element. + * mode: "fit" + * + * // when mode is "fit", all padding values will be relative from fitted value. + * // so, 0 will be initial fitted value. + * top: 20, + * right: 20, + * bottom: 20, + * left: 20 + * } + * + * // or specify padding value for each side + * padding: { + * top: 20, + * right: 20, + * bottom: 20, + * left: 20 + * } + */ + padding: true, + padding_mode: undefined, + padding_left: undefined, + padding_right: undefined, + padding_top: undefined, + padding_bottom: undefined, + /** + * Set chart resize options + * @name resize + * @memberof Options + * @type {object} + * @property {object} [resize] resize object + * @property {boolean} [resize.auto=true] Set chart resize automatically on viewport changes. + * @property {boolean|number} [resize.timer=true] Set resize timer option. + * - **NOTE:** + * - The resize function will be called using: + * - true: `setTimeout()` + * - false: `requestIdleCallback()` + * - Given number(delay in ms) value, resize function will be triggered using `setTimer()` with given delay. + * @example + * resize: { + * auto: false, + * + * // set resize function will be triggered using `setTimer()` + * timer: true, + * + * // set resize function will be triggered using `requestIdleCallback()` + * timer: false, + * + * // set resize function will be triggered using `setTimer()` with a delay of `100ms`. + * timer: 100 + * } + */ + resize_auto: true, + resize_timer: true, + /** + * Set a callback to execute when the chart is clicked. + * @name onclick + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onclick: function(event) { + * this; // chart instance itself + * event; // native event object + * ... + * } + */ + onclick: undefined, + /** + * Set a callback to execute when mouse/touch enters the chart. + * @name onover + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onover: function(event) { + * this; // chart instance itself + * event; // native event object + * ... + * } + */ + onover: undefined, + /** + * Set a callback to execute when mouse/touch leaves the chart. + * @name onout + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onout: function(event) { + * this; // chart instance itself + * event; // native event object + * ... + * } + */ + onout: undefined, + /** + * Set a callback to execute when user resizes the screen. + * @name onresize + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onresize: function() { + * this; // chart instance itself + * ... + * } + */ + onresize: undefined, + /** + * Set a callback to execute when screen resize finished. + * @name onresized + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onresized: function() { + * this; // chart instance itself + * ... + * } + */ + onresized: undefined, + /** + * Set a callback to execute before the chart is initialized + * @name onbeforeinit + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onbeforeinit: function() { + * this; // chart instance itself + * ... + * } + */ + onbeforeinit: undefined, + /** + * Set a callback to execute when the chart is initialized. + * @name oninit + * @memberof Options + * @type {Function} + * @default undefined + * @example + * oninit: function() { + * this; // chart instance itself + * ... + * } + */ + oninit: undefined, + /** + * Set a callback to execute after the chart is initialized + * @name onafterinit + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onafterinit: function() { + * this; // chart instance itself + * ... + * } + */ + onafterinit: undefined, + /** + * Set a callback which is executed when the chart is rendered. Basically, this callback will be called in each time when the chart is redrawed. + * @name onrendered + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onrendered: function() { + * this; // chart instance itself + * ... + * } + */ + onrendered: undefined, + /** + * Set duration of transition (in milliseconds) for chart animation.<br><br> + * - **NOTE:** If `0 `or `null` set, transition will be skipped. So, this makes initial rendering faster especially in case you have a lot of data. + * @name transition + * @memberof Options + * @type {object} + * @property {object} [transition] transition object + * @property {number} [transition.duration=350] duration in milliseconds + * @example + * transition: { + * duration: 500 + * } + */ + transition_duration: 250, + /** + * Set plugins + * @name plugins + * @memberof Options + * @type {Array} + * @example + * plugins: [ + * new bb.plugin.stanford({ ... }), + * new PluginA(), + * ... + * ] + */ + plugins: [], + /** + * Control the render timing + * @name render + * @memberof Options + * @type {object} + * @property {object} [render] render object + * @property {boolean} [render.lazy=true] Make to not render at initialization (enabled by default when bind element's visibility is hidden). + * @property {boolean} [render.observe=true] Observe bind element's visibility(`display` or `visiblity` inline css property or class value) & render when is visible automatically (for IEs, only works IE11+). When set to **false**, call [`.flush()`](./Chart.html#flush) to render. + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.LazyRender) + * @example + * render: { + * lazy: true, + * observe: true + * } + * + * @example + * // <!-- render.lazy will detect visibility defined --> + * // (a) <div id='chart' class='hide'></div> + * // (b) <div id='chart' style='display:none'></div> + * + * // render.lazy enabled by default when element is hidden + * var chart = bb.generate({ ... }); + * + * // chart will be rendered automatically when element's visibility changes + * // Note: works only for inlined css property or class attribute changes + * document.getElementById('chart').classList.remove('hide') // (a) + * document.getElementById('chart').style.display = 'block'; // (b) + * + * @example + * // chart won't be rendered and not observing bind element's visiblity changes + * var chart = bb.generate({ + * render: { + * lazy: true, + * observe: false + * } + * }); + * + * // call at any point when you want to render + * chart.flush(); + */ + render: {}, + /** + * Show rectangles inside the chart.<br><br> + * This option accepts array including object that has axis, start, end and class. + * The keys start, end and class are optional. + * axis must be x, y or y2. start and end should be the value where regions start and end. + * If not specified, the edge values will be used. + * If timeseries x axis, date string, Date object and unixtime integer can be used. + * If class is set, the region element will have it as class. + * @name regions + * @memberof Options + * @type {Array} + * @default [] + * @see [Demo](https://naver.github.io/billboard.js/demo/#Region.RegionLabel) + * @example + * regions: [ + * { + * axis: "x", + * start: 1, + * end: 4, + * class: "region-1-4", + * label: { + * text: "Region Text", + * x: 5, // position relative of the initial x coordinate + * y: 5, // position relative of the initial y coordinate + * color: "red", // color string + * rotated: true // make text to show in vertical or horizontal + * } + * } + * ] + */ + regions: [] +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * title config options + */ +var title$1 = { + /** + * Set title options + * @name title + * @memberof Options + * @type {object} + * @property {object} title Title object + * @property {string} [title.text] Title text. If contains `\n`, it's used as line break allowing multiline title. + * @property {number} [title.padding.top=0] Top padding value. + * @property {number} [title.padding.right=0] Right padding value. + * @property {number} [title.padding.bottom=0] Bottom padding value. + * @property {number} [title.padding.left=0] Left padding value. + * @property {string} [title.position=center] Available values are: 'center', 'right' and 'left'. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Title.MultilinedTitle) + * @example + * title: { + * text: "Title Text", + * + * // or Multiline title text + * text: "Main title text\nSub title text", + * + * padding: { + * top: 10, + * right: 10, + * bottom: 10, + * left: 10 + * }, + * position: "center" + * } + */ + title_text: undefined, + title_padding: { + top: 0, + right: 0, + bottom: 0, + left: 0 + }, + title_position: "center" +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * tooltip config options + */ +var tooltip$2 = { + /** + * Tooltip options + * @name tooltip + * @memberof Options + * @type {object} + * @property {object} tooltip Tooltip object + * @property {boolean} [tooltip.show=true] Show or hide tooltip. + * @property {boolean} [tooltip.doNotHide=false] Make tooltip keep showing not hiding on interaction. + * @property {boolean} [tooltip.grouped=true] Set if tooltip is grouped or not for the data points. + * - **NOTE:** The overlapped data points will be displayed as grouped even if set false. + * @property {boolean} [tooltip.linked=false] Set if tooltips on all visible charts with like x points are shown together when one is shown. + * @property {string} [tooltip.linked.name=""] Groping name for linked tooltip.<br>If specified, linked tooltip will be groped interacting to be worked only with the same name. + * @property {Function} [tooltip.format.title] Set format for the title of tooltip.<br> + * Specified function receives x of the data point to show. + * @property {Function} [tooltip.format.name] Set format for the name of each data in tooltip.<br> + * Specified function receives name, ratio, id and index of the data point to show. ratio will be undefined if the chart is not donut/pie/gauge. + * @property {Function} [tooltip.format.value] Set format for the value of each data value in tooltip. If undefined returned, the row of that value will be skipped to be called. + * - Will pass following arguments to the given function: + * - `value {string}`: Value of the data point. If data row contains multiple or ranged(ex. candlestick, area range, etc.) value, formatter will be called as value length. + * - `ratio {number}`: Ratio of the data point in the `pie/donut/gauge` and `area/bar` when contains grouped data. Otherwise is `undefined`. + * - `id {string}`: id of the data point + * - `index {number}`: Index of the data point + * @property {Function} [tooltip.position] Set custom position function for the tooltip.<br> + * This option can be used to modify the tooltip position by returning object that has top and left. + * - Will pass following arguments to the given function: + * - `data {Array}`: Current selected data array object. + * - `width {number}`: Width of tooltip. + * - `height {number}`: Height of tooltip. + * - `element {SVGElement}`: Tooltip event bound element + * - `pos {object}`: Current position of the tooltip. + * @property {Function|object} [tooltip.contents] Set custom HTML for the tooltip.<br> + * If tooltip.grouped is true, data includes multiple data points.<br><br> + * Specified function receives `data` array and `defaultTitleFormat`, `defaultValueFormat` and `color` functions of the data point to show. + * - **Note:** + * - defaultTitleFormat: + * - if `axis.x.tick.format` option will be used if set. + * - otherwise, will return function based on tick format type(category, timeseries). + * - defaultValueFormat: + * - for Arc type (except gauge, radar), the function will return value from `(ratio * 100).toFixed(1)`. + * - for Axis based types, will be used `axis.[y|y2].tick.format` option value if is set. + * - otherwise, will parse value and return as number. + * @property {string|HTMLElement} [tooltip.contents.bindto=undefined] Set CSS selector or element reference to bind tooltip. + * - **NOTE:** When is specified, will not be updating tooltip's position. + * @property {string} [tooltip.contents.template=undefined] Set tooltip's template.<br><br> + * Within template, below syntax will be replaced using template-like syntax string: + * - **{{ ... }}**: the doubly curly brackets indicate loop block for data rows. + * - **{=CLASS_TOOLTIP}**: default tooltip class name `bb-tooltip`. + * - **{=CLASS_TOOLTIP_NAME}**: default tooltip data class name (ex. `bb-tooltip-name-data1`) + * - **{=TITLE}**: title value. + * - **{=COLOR}**: data color. + * - **{=NAME}**: data id value. + * - **{=VALUE}**: data value. + * @property {object} [tooltip.contents.text=undefined] Set additional text content within data loop, using template syntax. + * - **NOTE:** It should contain `{ key: Array, ... }` value + * - 'key' name is used as substitution within template as '{=KEY}' + * - The value array length should match with the data length + * @property {boolean} [tooltip.init.show=false] Show tooltip at the initialization. + * @property {number} [tooltip.init.x=0] Set x Axis index(or index for Arc(donut, gauge, pie) types) to be shown at the initialization. + * @property {object} [tooltip.init.position] Set the position of tooltip at the initialization. + * @property {Function} [tooltip.onshow] Set a callback that will be invoked before the tooltip is shown. + * @property {Function} [tooltip.onhide] Set a callback that will be invoked before the tooltip is hidden. + * @property {Function} [tooltip.onshown] Set a callback that will be invoked after the tooltip is shown + * @property {Function} [tooltip.onhidden] Set a callback that will be invoked after the tooltip is hidden. + * @property {string|Function|null} [tooltip.order=null] Set tooltip data display order.<br><br> + * **Available Values:** + * - `desc`: In descending data value order + * - `asc`: In ascending data value order + * - `null`: It keeps the data display order<br> + * **NOTE:** When `data.groups` is set, the order will follow as the stacked graph order.<br> + * If want to order as data bound, set any value rather than asc, desc or null. (ex. empty string "") + * - `function(data1, data2) { ... }`: [Array.sort compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters) + * @see [Demo: Hide Tooltip](https://naver.github.io/billboard.js/demo/#Tooltip.HideTooltip) + * @see [Demo: Tooltip Grouping](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipGrouping) + * @see [Demo: Tooltip Format](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipFormat) + * @see [Demo: Linked Tooltip](https://naver.github.io/billboard.js/demo/#Tooltip.LinkedTooltips) + * @see [Demo: Tooltip Position](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipPosition) + * @see [Demo: Tooltip Template](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipTemplate) + * @example + * tooltip: { + * show: true, + * doNotHide: true, + * grouped: false, + * format: { + * title: function(x) { return "Data " + x; }, + * name: function(name, ratio, id, index) { return name; }, + * + * // If data row contains multiple or ranged(ex. candlestick, area range, etc.) value, + * // formatter will be called as value length times. + * value: function(value, ratio, id, index) { return ratio; } + * }, + * position: function(data, width, height, element, pos) { + * // data: [{x, index, id, name, value}, ...] + * // width: Tooltip width + * // height: Tooltip height + * // element: Tooltip event bound element + * // pos: { + * // x: Current mouse event x position, + * // y: Current mouse event y position, + * // xAxis: Current x Axis position (the value is given for axis based chart type only) + * // yAxis: Current y Axis position value or function(the value is given for axis based chart type only) + * // } + * + * // yAxis will work differently per data lenghts + * // - a) Single data: `yAxis` will return `number` value + * // - b) Multiple data: `yAxis` will return a function with property value + * + * // a) Single data: + * // Get y coordinate + * pos.yAxis; // y axis coordinate value of current data point + * + * // b) Multiple data: + * // Get y coordinate of value 500, where 'data1' scales(y or y2). + * // When 'data.axes' option is used, data can bound to different axes. + * // - when "data.axes={data1: 'y'}", wil return y value from y axis scale. + * // - when "data.axes={data1: 'y2'}", wil return y value from y2 axis scale. + * pos.yAxis(500, "data1"); // will return y coordinate value of data1 + * + * pos.yAxis(500); // get y coordinate with value of 500, using y axis scale + * pos.yAxis(500, null, "y2"); // get y coordinate with value of 500, using y2 axis scale + * + * return { + * top: 0, + * left: 0 + * } + * }, + * + * contents: function(d, defaultTitleFormat, defaultValueFormat, color) { + * return ... // formatted html as you want + * }, + * + * // specify tooltip contents using template + * // - example of HTML returned: + * // <ul class="bb-tooltip"> + * // <li class="bb-tooltip-name-data1"><span>250</span><br><span style="color:#00c73c">data1</span></li> + * // <li class="bb-tooltip-name-data2"><span>50</span><br><span style="color:#fa7171">data2</span></li> + * // </ul> + * contents: { + * bindto: "#tooltip", + * template: '<ul class={=CLASS_TOOLTIP}>{{' + + * '<li class="{=CLASS_TOOLTIP_NAME}"><span>{=VALUE}</span><br>' + + * '<span style=color:{=COLOR}>{=NAME}</span></li>' + + * '}}</ul>' + * } + * + * // with additional text value + * // - example of HTML returned: + * // <ul class="bb-tooltip"> + * // <li class="bb-tooltip-name-data1"><span>250</span><br>comment1<span style="color:#00c73c">data1</span>text1</li> + * // <li class="bb-tooltip-name-data2"><span>50</span><br>comment2<span style="color:#fa7171">data2</span>text2</li> + * // </ul> + * contents: { + * bindto: "#tooltip", + * text: { + * // a) 'key' name is used as substitution within template as '{=KEY}' + * // b) the length should match with the data length + * VAR1: ["text1", "text2"], + * VAR2: ["comment1", "comment2"], + * }, + * template: '<ul class={=CLASS_TOOLTIP}>{{' + + * '<li class="{=CLASS_TOOLTIP_NAME}"><span>{=VALUE}</span>{=VAR2}<br>' + + * '<span style=color:{=COLOR}>{=NAME}</span>{=VAR1}</li>' + + * '}}</ul>' + * } + * + * // sort tooltip data value display in ascending order + * order: "asc", + * + * // specifying sort function + * order: function(a, b) { + * // param data passed format + * {x: 5, value: 250, id: "data1", index: 5, name: "data1"} + * ... + * }, + * + * // show at the initialization + * init: { + * show: true, + * x: 2, // x Axis index (or index for Arc(donut, gauge, pie) types) + * position: { + * top: "150px", // specify as number or as string with 'px' unit string + * left: 250 // specify as number or as string with 'px' unit string + * } + * }, + * + * // fires prior tooltip is shown + * onshow: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // fires prior tooltip is hidden + * onhide: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // fires after tooltip is shown + * onshown: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // fires after tooltip is hidden + * onhidden: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // Link any tooltips when multiple charts are on the screen where same x coordinates are available + * // Useful for timeseries correlation + * linked: true, + * + * // Specify name to interact those with the same name only. + * linked: { + * name: "some-group" + * } + * } + */ + tooltip_show: true, + tooltip_doNotHide: false, + tooltip_grouped: true, + tooltip_format_title: undefined, + tooltip_format_name: undefined, + tooltip_format_value: undefined, + tooltip_position: undefined, + tooltip_contents: {}, + tooltip_init_show: false, + tooltip_init_x: 0, + tooltip_init_position: undefined, + tooltip_linked: false, + tooltip_linked_name: "", + tooltip_onshow: function () { }, + tooltip_onhide: function () { }, + tooltip_onshown: function () { }, + tooltip_onhidden: function () { }, + tooltip_order: null +}; + +/** + * data config options + */ +var data$2 = { + /** + * Specify the key of x values in the data.<br><br> + * We can show the data with non-index x values by this option. This option is required when the type of x axis is timeseries. If this option is set on category axis, the values of the data on the key will be used for category names. + * @name data․x + * @memberof Options + * @type {string} + * @default undefined + * @example + * data: { + * x: "date" + * } + */ + data_x: undefined, + /** + * Converts data id value + * @name data․idConverter + * @memberof Options + * @type {Function} + * @default function(id) { return id; } + * @example + * data: { + * idConverter: function(id) { + * // when id is 'data1', converts to be 'data2' + * // 'data2' should be given as the initial data value + * if (id === "data1") { + * return "data2"; + * } else { + * return id; + * } + * } + * } + */ + data_idConverter: function (id) { return id; }, + /** + * Set custom data name. + * If a name is set to `null`, the series is omitted from the legend. + * @name data․names + * @memberof Options + * @type {object} + * @default {} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataName) + * @example + * data: { + * names: { + * data1: "Data Name 1", + * data2: "Data Name 2" + * } + * } + */ + data_names: {}, + /** + * Set custom data class.<br><br> + * If this option is specified, the element g for the data has an additional class that has the prefix 'bb-target-' (eg. bb-target-additional-data1-class). + * @name data․classes + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * classes: { + * data1: "additional-data1-class", + * data2: "additional-data2-class" + * } + * } + */ + data_classes: {}, + /** + * Set chart type at once.<br><br> + * If this option is specified, the type will be applied to every data. This setting can be overwritten by data.types.<br><br> + * **Available Values:** + * - area + * - area-line-range + * - area-spline + * - area-spline-range + * - area-step + * - bar + * - bubble + * - candlestick + * - donut + * - funnel + * - gauge + * - line + * - pie + * - polar + * - radar + * - scatter + * - spline + * - step + * - treemap + * @name data․type + * @memberof Options + * @type {string} + * @default "line"<br>NOTE: When importing shapes by ESM, `line()` should be specified for type. + * @example + * data: { + * type: "bar" + * } + * @example + * // Generate chart by importing ESM + * // Import types to be used only, where this will make smaller bundle size. + * import bb, { + * area, + * areaLineRange, + * areaSpline, + * areaSplineRange, + * areaStep, + * bar, + * bubble, + * candlestick, + * donut, + * funnel, + * gauge, + * line, + * pie, + * polar, + * radar, + * scatter, + * spline, + * step, + * treemap + * } + * + * bb.generate({ + * ..., + * data: { + * type: bar() + * } + * }); + */ + data_type: undefined, + /** + * Set chart type for each data.<br> + * This setting overwrites data.type setting. + * - **NOTE:** `radar` and `treemap` type can't be combined with other types. + * @name data․types + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * types: { + * data1: "bar", + * data2: "spline" + * } + * } + * @example + * // Generate chart by importing ESM + * // Import types to be used only, where this will make smaller bundle size. + * import bb, { + * area, + * areaLineRange, + * areaSpline, + * areaSplineRange, + * areaStep, + * bar, + * bubble, + * candlestick, + * donut, + * funnel, + * gauge, + * line, + * pie, + * polar, + * radar, + * scatter, + * spline, + * step, + * treemap + * } + * + * bb.generate({ + * ..., + * data: { + * types: { + * data1: bar(), + * data1: spline() + * } + * } + * }); + */ + data_types: {}, + /** + * This option changes the order of stacking data and pieces of pie/donut. + * - If `null` specified, it will be the order the data loaded. + * - If function specified, it will be used as [Array.sort compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters)<br><br> + * + * **Available Values:** + * - `desc`: In descending order + * - `asc`: In ascending order + * - `null`: It keeps the data load order + * - `function(data1, data2) { ... }`: Array.sort compareFunction + * + * **NOTE**: order function, only works for Axis based types & Arc types, except `Radar` type. + * @name data․order + * @memberof Options + * @type {string|Function|null} + * @default desc + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataOrder) + * @example + * data: { + * // in descending order (default) + * order: "desc" + * + * // in ascending order + * order: "asc" + * + * // keeps data input order + * order: null + * + * // specifying sort function + * order: function(a, b) { + * // param data passed format + * // { + * // id: "data1", id_org: "data1", values: [ + * // {x: 5, value: 250, id: "data1", index: 5, name: "data1"}, + * // ... + * // ] + * // } + * + * const reducer = (p, c) => p + Math.abs(c.value); + * const aSum = a.values.reduce(reducer, 0); + * const bSum = b.values.reduce(reducer, 0); + * + * // ascending order + * return aSum - bSum; + * + * // descending order + * // return bSum - aSum; + * } + * } + */ + data_order: "desc", + /** + * Set groups for the data for stacking. + * @name data․groups + * @memberof Options + * @type {Array} + * @default [] + * @example + * data: { + * groups: [ + * ["data1", "data2"], + * ["data3"] + * ] + * } + */ + data_groups: [], + /** + * Set how zero value will be treated on groups.<br> + * Possible values: + * - `zero`: 0 will be positioned at absolute axis zero point. + * - `positive`: 0 will be positioned at the top of a stack. + * - `negative`: 0 will be positioned at the bottom of a stack. + * @name data․groupsZeroAs + * @memberof Options + * @type {string} + * @default "positive" + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.Groups) + * @example + * data: { + * groupsZeroAs: "zero" // "positive" or "negative" + * } + */ + data_groupsZeroAs: "positive", + /** + * Set color converter function.<br><br> + * This option should a function and the specified function receives color (e.g. '#ff0000') and d that has data parameters like id, value, index, etc. And it must return a string that represents color (e.g. '#00ff00'). + * @name data․color + * @memberof Options + * @type {Function} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataColor) + * @example + * data: { + * color: function(color, d) { ... } + * } + */ + data_color: undefined, + /** + * Set color for each data. + * @name data․colors + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * colors: { + * data1: "#ff0000", + * data2: function(d) { + * return "#000"; + * } + * ... + * } + * } + */ + data_colors: {}, + /** + * Set labels options + * @name data․labels + * @memberof Options + * @type {object} + * @property {object} data Data object + * @property {boolean} [data.labels=false] Show or hide labels on each data points + * @property {boolean} [data.labels.centered=false] Centerize labels on `bar` shape. (**NOTE:** works only for 'bar' type) + * @property {Function} [data.labels.format] Set formatter function for data labels.<br> + * The formatter function receives 4 arguments such as `v, id, i, texts` and it **must return a string** (`\n` character will be used as line break) that will be shown as the label.<br><br> + * The arguments are:<br> + * - `v` is the value of the data point where the label is shown. + * - `id` is the id of the data where the label is shown. + * - `i` is the index of the data series point where the label is shown. + * - `texts` is the array of whole corresponding data series' text labels.<br><br> + * Formatter function can be defined for each data by specifying as an object and D3 formatter function can be set (ex. d3.format('$')) + * @property {string|object} [data.labels.backgroundColors] Set label text background colors. + * @property {string|object|Function} [data.labels.colors] Set label text colors. + * @property {object|Function} [data.labels.position] Set each dataset position, relative the original.<br><br> + * When function is specified, will receives 5 arguments such as `type, v, id, i, texts` and it must return a position number.<br><br> + * The arguments are:<br> + * - `type` coordinate type string, which will be 'x' or 'y'. + * - `v` is the value of the data point where the label is shown. + * - `id` is the id of the data where the label is shown. + * - `i` is the index of the data series point where the label is shown. + * - `texts` is the array of whole corresponding data series' text labels.<br><br> + * @property {number} [data.labels.position.x=0] x coordinate position, relative the original. + * @property {number} [data.labels.position.y=0] y coordinate position, relative the original. + * @property {object} [data.labels.rotate] Rotate label text. Specify degree value in a range of `0 ~ 360`. + * - **NOTE:** Depend on rotate value, text position need to be adjusted manually(using `data.labels.position` option) to be shown nicely. + * @memberof Options + * @type {object} + * @default {} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataLabel) + * @see [Demo: label colors](https://naver.github.io/billboard.js/demo/#Data.DataLabelColors) + * @see [Demo: label format](https://naver.github.io/billboard.js/demo/#Data.DataLabelFormat) + * @see [Demo: label multiline](https://naver.github.io/billboard.js/demo/#Data.DataLabelMultiline) + * @see [Demo: label overlap](https://naver.github.io/billboard.js/demo/#Data.DataLabelOverlap) + * @see [Demo: label position](https://naver.github.io/billboard.js/demo/#Data.DataLabelPosition) + * @see [Demo: label rotate](https://naver.github.io/billboard.js/demo/#Data.DataLabelRotate) + * @example + * data: { + * labels: true, + * + * // or set specific options + * labels: { + * format: function(v, id, i, texts) { + * ... + * // to multiline, return with '\n' character + * return "Line1\nLine2"; + * }, + * + * // it's possible to set for each data + * format: { + * data1: function(v, id, i, texts) { ... }, + * ... + * }, + * + * // align text to center of the 'bar' shape (works only for 'bar' type) + * centered: true, + * + * // apply backgound color for label texts + * backgroundColors: "red", + * + * // set differenct backround colors per dataset + * backgroundColors: { + * data1: "green", + * data2: "yellow" + * } + * + * // apply for all label texts + * colors: "red", + * + * // set different colors per dataset + * // for not specified dataset, will have the default color value + * colors: { + * data1: "yellow", + * data3: "green" + * }, + * + * // call back for label text color + * colors: function(color, d) { + * // color: the default data label color string + * // data: ex) {x: 0, value: 200, id: "data3", index: 0} + * .... + * return d.value > 200 ? "cyan" : color; + * }, + * + * // return x, y coordinate position + * // apt to handle each text position manually + * position: function(type, v, id, i, texts) { + * ... + * return type == "x" ? 10 : 20; + * }, + * + * // set x, y coordinate position + * position: { + * x: -10, + * y: 10 + * }, + * + * // or set x, y coordinate position by each dataset + * position: { + * data1: {x: 5, y: 5}, + * data2: {x: 10, y: -20} + * }, + * + * // rotate degree for label text + * rotate: 90 + * } + * } + */ + data_labels: {}, + data_labels_backgroundColors: undefined, + data_labels_colors: undefined, + data_labels_position: {}, + /** + * Hide each data when the chart appears.<br><br> + * If true specified, all of data will be hidden. If multiple ids specified as an array, those will be hidden. + * @name data․hide + * @memberof Options + * @type {boolean|Array} + * @default false + * @example + * data: { + * // all of data will be hidden + * hide: true + * + * // specified data will be hidden + * hide: ["data1", ...] + * } + */ + data_hide: false, + /** + * Filter values to be shown + * The data value is the same as the returned by `.data()`. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter + * @name data․filter + * @memberof Options + * @type {Function} + * @default undefined + * @example + * data: { + * // filter for id value + * filter: function(v) { + * // v: [{id: "data1", id_org: "data1", values: [ + * // {x: 0, value: 130, id: "data2", index: 0}, ...] + * // }, ...] + * return v.id !== "data1"; + * } + */ + data_filter: undefined, + /** + * Set a callback for click event on each data point.<br><br> + * This callback will be called when each data point clicked and will receive `d` and element as the arguments. + * - `d` is the data clicked and element is the element clicked. + * - `element` is the current interacting svg element. + * - In this callback, `this` will be the Chart object. + * @name data․onclick + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onclick: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"} + * // element - <circle> + * ... + * } + * } + */ + data_onclick: function () { }, + /** + * Set a callback for mouse/touch over event on each data point.<br><br> + * This callback will be called when mouse cursor or via touch moves onto each data point and will receive `d` and `element` as the argument. + * - `d` is the data where mouse cursor moves onto. + * - `element` is the current interacting svg element. + * - In this callback, `this` will be the Chart object. + * @name data․onover + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onover: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4} + * // element - <circle> + * ... + * } + * } + */ + data_onover: function () { }, + /** + * Set a callback for mouse/touch out event on each data point.<br><br> + * This callback will be called when mouse cursor or via touch moves out each data point and will receive `d` as the argument. + * - `d` is the data where mouse cursor moves out. + * - `element` is the current interacting svg element. + * - In this callback, `this` will be the Chart object. + * @name data․onout + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onout: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4} + * // element - <circle> + * ... + * } + * } + */ + data_onout: function () { }, + /** + * Set a callback for when data is shown.<br> + * The callback will receive shown data ids in array. + * @name data․onshown + * @memberof Options + * @type {Function} + * @default undefined + * @example + * data: { + * onshown: function(ids) { + * // ids - ["data1", "data2", ...] + * ... + * } + * } + */ + data_onshown: undefined, + /** + * Set a callback for when data is hidden.<br> + * The callback will receive hidden data ids in array. + * @name data․onhidden + * @memberof Options + * @type {Function} + * @default undefined + * @example + * data: { + * onhidden: function(ids) { + * // ids - ["data1", "data2", ...] + * ... + * } + * } + */ + data_onhidden: undefined, + /** + * Set a callback for minimum data + * - **NOTE:** For 'area-line-range' and 'area-spline-range', `mid` data will be taken for the comparison + * @name data․onmin + * @memberof Options + * @type {Function} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.OnMinMaxCallback) + * @example + * onmin: function(data) { + * // data - ex) [{x: 3, value: 400, id: "data1", index: 3}, ... ] + * ... + * } + */ + data_onmin: undefined, + /** + * Set a callback for maximum data + * - **NOTE:** For 'area-line-range' and 'area-spline-range', `mid` data will be taken for the comparison + * @name data․onmax + * @memberof Options + * @type {Function} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.OnMinMaxCallback) + * @example + * onmax: function(data) { + * // data - ex) [{x: 3, value: 400, id: "data1", index: 3}, ... ] + * ... + * } + */ + data_onmax: undefined, + /** + * Load a CSV or JSON file from a URL. NOTE that this will not work if loading via the "file://" protocol as the most browsers will block XMLHTTPRequests. + * @name data․url + * @memberof Options + * @type {string} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.LoadData) + * @example + * data: { + * url: "/data/test.csv" + * } + */ + data_url: undefined, + /** + * XHR header value + * - **NOTE:** Should be used with `data.url` option + * @name data․headers + * @memberof Options + * @type {string} + * @default undefined + * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader + * @example + * data: { + * url: "/data/test.csv", + * headers: { + * "Content-Type": "text/xml", + * ... + * } + * } + */ + data_headers: undefined, + /** + * Parse a JSON object for data. See also data.keys. + * @name data․json + * @memberof Options + * @type {Array} + * @default undefined + * @see [data․keys](#.data%25E2%2580%25A4keys) + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.JSONData) + * @example + * data: { + * json: [ + * {name: "www.site1.com", upload: 200, download: 200, total: 400}, + * {name: "www.site2.com", upload: 100, download: 300, total: 400}, + * {name: "www.site3.com", upload: 300, download: 200, total: 500}, + * {name: "www.site4.com", upload: 400, download: 100, total: 500} + * ], + * keys: { + * // case 1: specify 'x' key for category axis + * x: "name", // 'name' key will be used as category x axis values + * value: ["upload", "download"] + * + * // case 2: without 'x' key for non-category axis + * value: ["upload", "download"] + * } + * } + */ + data_json: undefined, + /** + * Load data from a multidimensional array, with the first element containing the data names, the following containing related data in that order. + * @name data․rows + * @memberof Options + * @type {Array} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.RowOrientedData) + * @example + * data: { + * rows: [ + * ["A", "B", "C"], + * [90, 120, 300], + * [40, 160, 240], + * [50, 200, 290], + * [120, 160, 230], + * [80, 130, 300], + * [90, 220, 320] + * ] + * } + * + * // for 'bar' type, data can contain: + * // - an array of [start, end] data following the order + * data: { + * rows: [ + * ["data1", "data2"], + * [[100, 150], 120], + * [[200, 300], 55], + * [[-400, 500], 60] + * ], + * type: "bar" + * } + * + * // for 'range' types('area-line-range' or 'area-spline-range'), data should contain: + * // - an array of [high, mid, low] data following the order + * // - or an object with 'high', 'mid' and 'low' key value + * data: { + * rows: [ + * ["data1", "data2"], + * [ + * // or {high:150, mid: 140, low: 110}, 120 + * [150, 140, 110], 120 + * ], + * [[155, 130, 115], 55], + * [[160, 135, 120], 60] + * ], + * types: { + * data1: "area-line-range", + * data2: "line" + * } + * } + * + * // for 'bubble' type, data can contain dimension value: + * // - an array of [y, z] data following the order + * // - or an object with 'y' and 'z' key value + * // 'y' is for y axis coordination and 'z' is the bubble radius value + * data: { + * rows: [ + * ["data1", "data2"], + * [ + * // or {y:10, z: 140}, 120 + * [10, 140], 120 + * ], + * [[100, 30], 55], + * [[50, 100], 60] + * ], + * types: { + * data1: "bubble", + * data2: "line" + * } + * } + * + * // for 'canlestick' type, data should contain: + * // - an array of [open, high, low, close, volume(optional)] data following the order + * // - or an object with 'open', 'high', 'low', 'close' and 'value'(optional) key value + * data: { + * rows: [ + * ["data1", "data2"], + * [ + * // open, high, low, close, volume (optional) + * {open: 1300, high: 1369, low: 1200, close: 1339, volume: 100}, + * [1000, 1100, 850, 870] + * ], + * [ + * {open: 1348, high: 1371, low: 1271, close: 1320}, + * [870, 1250, 830, 1200, 50] + * ] + * ], + * type: "candlestick" + * } + */ + data_rows: undefined, + /** + * Load data from a multidimensional array, with each element containing an array consisting of a datum name and associated data values. + * @name data․columns + * @memberof Options + * @type {Array} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.ColumnOrientedData) + * @example + * data: { + * columns: [ + * ["data1", 30, 20, 50, 40, 60, 50], + * ["data2", 200, 130, 90, 240, 130, 220], + * ["data3", 300, 200, 160, 400, 250, 250] + * ] + * } + * + * // for 'bar' type, data can contain: + * // - an array of [start, end] data following the order + * data: { + * columns: [ + * ["data1", -100, 50, [100, 200], [200, 300]], + * ["data2", -200, 300, [-100, 100], [-50, -30]], + * ], + * type: "bar" + * } + * + * // for 'range' types('area-line-range' or 'area-spline-range'), data should contain: + * // - an array of [high, mid, low] data following the order + * // - or an object with 'high', 'mid' and 'low' key value + * data: { + * columns: [ + * ["data1", + * [150, 140, 110], // or {high:150, mid: 140, low: 110} + * [150, 140, 110], + * [150, 140, 110] + * ] + * ], + * type: "area-line-range" + * } + * + * // for 'bubble' type, data can contain dimension value: + * // - an array of [y, z] data following the order + * // - or an object with 'y' and 'z' key value + * // 'y' is for y axis coordination and 'z' is the bubble radius value + * data: { + * columns: [ + * ["data1", + * [10, 140], // or {y:10, z: 140} + * [100, 30], + * [50, 100] + * ] + * ], + * type: "bubble" + * } + * + * // for 'canlestick' type, data should contain: + * // - an array of [open, high, low, close, volume(optional)] data following the order + * // - or an object with 'open', 'high', 'low', 'close' and 'value'(optional) key value + * data: { + * columns: [ + * ["data1", + * [1000, 1100, 850, 870, 100], // or {open:1000, high: 1100, low: 870, volume: 100} + * [870, 1250, 830, 1200] // 'volume' can be omitted + * ] + * ], + * type: "candlestick" + * } + */ + data_columns: undefined, + /** + * Used if loading JSON via data.url. + * - **Available Values:** + * - json + * - csv + * - tsv + * @name data․mimeType + * @memberof Options + * @type {string} + * @default csv + * @example + * data: { + * mimeType: "json" + * } + */ + data_mimeType: "csv", + /** + * Choose which JSON object keys correspond to desired data. + * - **NOTE:** Only for JSON object given as array. + * @name data․keys + * @memberof Options + * @type {string} + * @default undefined + * @example + * data: { + * json: [ + * {name: "www.site1.com", upload: 200, download: 200, total: 400}, + * {name: "www.site2.com", upload: 100, download: 300, total: 400}, + * {name: "www.site3.com", upload: 300, download: 200, total: 500}, + * {name: "www.site4.com", upload: 400, download: 100, total: 500} + * ], + * keys: { + * // case 1: specify 'x' key for category axis + * x: "name", // 'name' key will be used as category x axis values + * value: ["upload", "download"] + * + * // case 2: without 'x' key for non-category axis + * value: ["upload", "download"] + * } + * } + */ + data_keys: undefined, + /** + * Set text label to be displayed when there's no data to show. + * - ex. Toggling all visible data to not be shown, unloading all current data, etc. + * @name data․empty․label․text + * @memberof Options + * @type {string} + * @default "" + * @example + * data: { + * empty: { + * label: { + * text: "No Data" + * } + * } + * } + */ + data_empty_label_text: "" +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * interaction config options + */ +var interaction$1 = { + /** + * Interaction options + * @name interaction + * @memberof Options + * @type {object} + * @property {object} interaction Intersection object + * @property {boolean} [interaction.enabled=true] Indicate if the chart should have interactions.<br> + * If `false` is set, all of interactions (showing/hiding tooltip, selection, mouse events, etc) will be disabled. + * @property {boolean} [interaction.brighten=true] Make brighter for the selected area (ex. 'pie' type data selected area) + * @property {boolean} [interaction.inputType.mouse=true] enable or disable mouse interaction + * @property {boolean} [interaction.inputType.touch=true] enable or disable touch interaction + * @property {boolean|number} [interaction.inputType.touch.preventDefault=false] enable or disable to call event.preventDefault on touchstart & touchmove event. It's usually used to prevent document scrolling. + * @see [Demo: touch.preventDefault](https://naver.github.io/billboard.js/demo/#Interaction.PreventScrollOnTouch) + * @example + * interaction: { + * enabled: false, + * brighten: false, + * inputType: { + * mouse: true, + * touch: false + * + * // or declare preventDefault explicitly. + * // In this case touch inputType is enabled by default + * touch: { + * preventDefault: true + * + * // or threshold pixel value (pixel moved from touchstart to touchmove) + * preventDefault: 5 + * } + * } + * } + */ + interaction_enabled: true, + interaction_brighten: true, + interaction_inputType_mouse: true, + interaction_inputType_touch: {} +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Window object + * @private + */ +/* eslint-disable no-new-func, no-undef */ +/** + * Get global object + * @returns {object} window object + * @private + */ +function getGlobal() { + return (typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && + globalThis) || + (typeof global === "object" && global !== null && global.Object === Object && global) || + (typeof self === "object" && self !== null && self.Object === Object && self) || + Function("return this")(); +} +/** + * Get fallback object + * @param {object} w global object + * @returns {Array} fallback object array + * @private + */ +function getFallback(w) { + var hasRAF = typeof (w === null || w === void 0 ? void 0 : w.requestAnimationFrame) === "function" && + typeof (w === null || w === void 0 ? void 0 : w.cancelAnimationFrame) === "function"; + var hasRIC = typeof (w === null || w === void 0 ? void 0 : w.requestIdleCallback) === "function" && + typeof (w === null || w === void 0 ? void 0 : w.cancelIdleCallback) === "function"; + var request = function (cb) { return setTimeout(cb, 1); }; + var cancel = function (id) { return clearTimeout(id); }; + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +var win = getGlobal(); +var doc = win === null || win === void 0 ? void 0 : win.document; +var _a = getFallback(win), requestAnimationFrame = _a[0], requestIdleCallback = _a[2]; + +var isValue = function (v) { return v || v === 0; }; +var isFunction = function (v) { return typeof v === "function"; }; +var isString = function (v) { return typeof v === "string"; }; +var isNumber = function (v) { return typeof v === "number"; }; +var isUndefined = function (v) { return typeof v === "undefined"; }; +var isDefined = function (v) { return typeof v !== "undefined"; }; +var isBoolean = function (v) { return typeof v === "boolean"; }; +var ceil10 = function (v) { return Math.ceil(v / 10) * 10; }; +var asHalfPixel = function (n) { return Math.ceil(n) + 0.5; }; +var diffDomain = function (d) { return d[1] - d[0]; }; +var isObjectType = function (v) { return typeof v === "object"; }; +var isEmpty = function (o) { return (isUndefined(o) || o === null || + (isString(o) && o.length === 0) || + (isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0) || + (isNumber(o) && isNaN(o))); }; +var notEmpty = function (o) { return !isEmpty(o); }; +/** + * Check if is array + * @param {Array} arr Data to be checked + * @returns {boolean} + * @private + */ +var isArray = function (arr) { return Array.isArray(arr); }; +/** + * Check if is object + * @param {object} obj Data to be checked + * @returns {boolean} + * @private + */ +var isObject = function (obj) { return obj && !(obj === null || obj === void 0 ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); }; +/** + * Get specified key value from object + * If default value is given, will return if given key value not found + * @param {object} options Source object + * @param {string} key Key value + * @param {*} defaultValue Default value + * @returns {*} + * @private + */ +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +/** + * Check if value exist in the given object + * @param {object} dict Target object to be checked + * @param {*} value Value to be checked + * @returns {boolean} + * @private + */ +function hasValue(dict, value) { + var found = false; + Object.keys(dict).forEach(function (key) { return (dict[key] === value) && (found = true); }); + return found; +} +/** + * Call function with arguments + * @param {Function} fn Function to be called + * @param {*} thisArg "this" value for fn + * @param {*} args Arguments for fn + * @returns {boolean} true: fn is function, false: fn is not function + * @private + */ +function callFn(fn, thisArg) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var isFn = isFunction(fn); + isFn && fn.call.apply(fn, __spreadArray([thisArg], args, false)); + return isFn; +} +/** + * Call function after all transitions ends + * @param {d3.transition} transition Transition + * @param {Fucntion} cb Callback function + * @private + */ +function endall(transition, cb) { + var n = 0; + var end = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + !--n && cb.apply.apply(cb, __spreadArray([this], args, false)); + }; + // if is transition selection + if ("duration" in transition) { + transition + .each(function () { return ++n; }) + .on("end", end); + } + else { + ++n; + transition.call(end); + } +} +/** + * Replace tag sign to html entity + * @param {string} str Target string value + * @returns {string} + * @private + */ +function sanitize(str) { + return isString(str) ? + str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : + str; +} +/** + * Set text value. If there's multiline add nodes. + * @param {d3Selection} node Text node + * @param {string} text Text value string + * @param {Array} dy dy value for multilined text + * @param {boolean} toMiddle To be alingned vertically middle + * @private + */ +function setTextValue(node, text, dy, toMiddle) { + if (dy === void 0) { dy = [-1, 1]; } + if (toMiddle === void 0) { toMiddle = false; } + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } + else { + var diff = [node.text(), text].map(function (v) { return v.replace(/[\s\n]/g, ""); }); + if (diff[0] !== diff[1]) { + var multiline = text.split("\n"); + var len_1 = toMiddle ? multiline.length - 1 : 1; + // reset possible text + node.html(""); + multiline.forEach(function (v, i) { + node.append("tspan") + .attr("x", 0) + .attr("dy", "".concat(i === 0 ? dy[0] * len_1 : dy[1], "em")) + .text(v); + }); + } + } +} +/** + * Substitution of SVGPathSeg API polyfill + * @param {SVGGraphicsElement} path Target svg element + * @returns {Array} + * @private + */ +function getRectSegList(path) { + /* + * seg1 ---------- seg2 + * | | + * | | + * | | + * seg0 ---------- seg3 + */ + var _a = path.getBBox(), x = _a.x, y = _a.y, width = _a.width, height = _a.height; + return [ + { x: x, y: y + height }, // seg0 + { x: x, y: y }, // seg1 + { x: x + width, y: y }, // seg2 + { x: x + width, y: y + height } // seg3 + ]; +} +/** + * Get svg bounding path box dimension + * @param {SVGGraphicsElement} path Target svg element + * @returns {object} + * @private + */ +function getPathBox(path) { + var _a = path.getBoundingClientRect(), width = _a.width, height = _a.height; + var items = getRectSegList(path); + var x = items[0].x; + var y = Math.min(items[0].y, items[1].y); + return { + x: x, + y: y, + width: width, + height: height + }; +} +/** + * Get event's current position coordinates + * @param {object} event Event object + * @param {SVGElement|HTMLElement} element Target element + * @returns {Array} [x, y] Coordinates x, y array + * @private + */ +function getPointer(event, element) { + var _a; + var touches = event && + ((_a = (event.touches || (event.sourceEvent && event.sourceEvent.touches))) === null || _a === void 0 ? void 0 : _a[0]); + var pointer$1 = [0, 0]; + try { + pointer$1 = pointer(touches || event, element); + } + catch (e) { } + return pointer$1.map(function (v) { return (isNaN(v) ? 0 : v); }); +} +/** + * Return brush selection array + * @param {object} ctx Current instance + * @returns {d3.brushSelection} + * @private + */ +function getBrushSelection(ctx) { + var event = ctx.event, $el = ctx.$el; + var main = $el.subchart.main || $el.main; + var selection; + // check from event + if (event && event.type === "brush") { + selection = event.selection; + // check from brush area selection + } + else if (main && (selection = main.select(".bb-brush").node())) { + selection = brushSelection(selection); + } + return selection; +} +/** + * Get boundingClientRect. + * Cache the evaluated value once it was called. + * @param {HTMLElement} node Target element + * @returns {object} + * @private + */ +function getBoundingRect(node) { + var needEvaluate = !("rect" in node) || ("rect" in node && node.hasAttribute("width") && + node.rect.width !== +node.getAttribute("width")); + return needEvaluate ? (node.rect = node.getBoundingClientRect()) : node.rect; +} +/** + * Retrun random number + * @param {boolean} asStr Convert returned value as string + * @param {number} min Minimum value + * @param {number} max Maximum value + * @returns {number|string} + * @private + */ +function getRandom(asStr, min, max) { + if (asStr === void 0) { asStr = true; } + if (min === void 0) { min = 0; } + if (max === void 0) { max = 10000; } + var crpt = win.crypto || win.msCrypto; + var rand = crpt ? + min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : + Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +/** + * Find index based on binary search + * @param {Array} arr Data array + * @param {number} v Target number to find + * @param {number} start Start index of data array + * @param {number} end End index of data arr + * @param {boolean} isRotated Weather is roted axis + * @returns {number} Index number + * @private + */ +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + var mid = Math.floor((start + end) / 2); + var _a = arr[mid], x = _a.x, _b = _a.w, w = _b === void 0 ? 0 : _b; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? + findIndex(arr, v, start, mid - 1, isRotated) : + findIndex(arr, v, mid + 1, end, isRotated); +} +/** + * Check if brush is empty + * @param {object} ctx Bursh context + * @returns {boolean} + * @private + */ +function brushEmpty(ctx) { + var selection = getBrushSelection(ctx); + if (selection) { + // brush selected area + // two-dimensional: [[x0, y0], [x1, y1]] + // one-dimensional: [x0, x1] or [y0, y1] + return selection[0] === selection[1]; + } + return true; +} +/** + * Deep copy object + * @param {object} objectN Source object + * @returns {object} Cloned object + * @private + */ +function deepClone() { + var objectN = []; + for (var _i = 0; _i < arguments.length; _i++) { + objectN[_i] = arguments[_i]; + } + var clone = function (v) { + if (isObject(v) && v.constructor) { + var r = new v.constructor(); + for (var k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map(function (v) { return clone(v); }) + .reduce(function (a, c) { return (__assign(__assign({}, a), c)); }); +} +/** + * Extend target from source object + * @param {object} target Target object + * @param {object|Array} source Source object + * @returns {object} + * @private + */ +function extend(target, source) { + if (target === void 0) { target = {}; } + if (isArray(source)) { + source.forEach(function (v) { return extend(target, v); }); + } + // exclude name with only numbers + for (var p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +/** + * Return first letter capitalized + * @param {string} str Target string + * @returns {string} capitalized string + * @private + */ +var capitalize = function (str) { return str.charAt(0).toUpperCase() + str.slice(1); }; +/** + * Camelize from kebob style string + * @param {string} str Target string + * @param {string} separator Separator string + * @returns {string} camelized string + * @private + */ +function camelize(str, separator) { + if (separator === void 0) { separator = "-"; } + return str.split(separator) + .map(function (v, i) { return (i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()); }) + .join(""); +} +/** + * Convert to array + * @param {object} v Target to be converted + * @returns {Array} + * @private + */ +var toArray = function (v) { return [].slice.call(v); }; +/** + * Add CSS rules + * @param {object} style Style object + * @param {string} selector Selector string + * @param {Array} prop Prps arrary + * @returns {number} Newely added rule index + * @private + */ +function addCssRules(style, selector, prop) { + var _a = style.rootSelector, rootSelector = _a === void 0 ? "" : _a, sheet = style.sheet; + var getSelector = function (s) { + return s + .replace(/\s?(bb-)/g, ".$1") + .replace(/\.+/g, "."); + }; + var rule = "".concat(rootSelector, " ").concat(getSelector(selector), " {").concat(prop.join(";"), "}"); + return sheet[sheet.insertRule ? "insertRule" : "addRule"](rule, sheet.cssRules.length); +} +/** + * Get css rules for specified stylesheets + * @param {Array} styleSheets The stylesheets to get the rules from + * @returns {Array} + * @private + */ +function getCssRules(styleSheets) { + var rules = []; + styleSheets.forEach(function (sheet) { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } + catch (e) { + (_a = win.console) === null || _a === void 0 ? void 0 : _a.warn("Error while reading rules from ".concat(sheet.href, ": ").concat(e.toString())); + } + }); + return rules; +} +/** + * Get current window and container scroll position + * @param {HTMLElement} node Target element + * @returns {object} window scroll position + * @private + */ +function getScrollPosition(node) { + var _a, _b, _c, _d, _e, _f; + return { + x: (_c = ((_b = (_a = win.pageXOffset) !== null && _a !== void 0 ? _a : win.scrollX) !== null && _b !== void 0 ? _b : 0) + node.scrollLeft) !== null && _c !== void 0 ? _c : 0, + y: (_f = ((_e = (_d = win.pageYOffset) !== null && _d !== void 0 ? _d : win.scrollY) !== null && _e !== void 0 ? _e : 0) + node.scrollTop) !== null && _f !== void 0 ? _f : 0 + }; +} +/** + * Gets the SVGMatrix of an SVGGElement + * @param {SVGElement} node Node element + * @returns {SVGMatrix} matrix + * @private + */ +function getTranslation(node) { + var transform = node ? node.transform : null; + var baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? + baseVal.getItem(0).matrix : + { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +/** + * Get unique value from array + * @param {Array} data Source data + * @returns {Array} Unique array value + * @private + */ +function getUnique(data) { + var isDate = data[0] instanceof Date; + var d = (isDate ? data.map(Number) : data) + .filter(function (v, i, self) { return self.indexOf(v) === i; }); + return isDate ? d.map(function (v) { return new Date(v); }) : d; +} +/** + * Merge array + * @param {Array} arr Source array + * @returns {Array} + * @private + */ +function mergeArray(arr) { + return arr && arr.length ? arr.reduce(function (p, c) { return p.concat(c); }) : []; +} +/** + * Merge object returning new object + * @param {object} target Target object + * @param {object} objectN Source object + * @returns {object} merged target object + * @private + */ +function mergeObj(target) { + var objectN = []; + for (var _i = 1; _i < arguments.length; _i++) { + objectN[_i - 1] = arguments[_i]; + } + if (!objectN.length || (objectN.length === 1 && !objectN[0])) { + return target; + } + var source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach(function (key) { + var value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } + else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj.apply(void 0, __spreadArray([target], objectN, false)); +} +/** + * Sort value + * @param {Array} data value to be sorted + * @param {boolean} isAsc true: asc, false: desc + * @returns {number|string|Date} sorted date + * @private + */ +function sortValue(data, isAsc) { + if (isAsc === void 0) { isAsc = true; } + var fn; + if (data[0] instanceof Date) { + fn = isAsc ? function (a, b) { return a - b; } : function (a, b) { return b - a; }; + } + else { + if (isAsc && !data.every(isNaN)) { + fn = function (a, b) { return a - b; }; + } + else if (!isAsc) { + fn = function (a, b) { return (a > b && -1) || (a < b && 1) || (a === b && 0); }; + } + } + return data.concat().sort(fn); +} +/** + * Get min/max value + * @param {string} type 'min' or 'max' + * @param {Array} data Array data value + * @returns {number|Date|undefined} + * @private + */ +function getMinMax$1(type, data) { + var res = data.filter(function (v) { return notEmpty(v); }); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type].apply(Math, res); + } + else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } + else { + res = undefined; + } + return res; +} +/** + * Get range + * @param {number} start Start number + * @param {number} end End number + * @param {number} step Step number + * @returns {Array} + * @private + */ +var getRange = function (start, end, step) { + if (step === void 0) { step = 1; } + var res = []; + var n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (var i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +// emulate event +var emulateEvent = { + mouse: (function () { + var getParams = function () { return ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); }; + try { + // eslint-disable-next-line no-new + new MouseEvent("t"); + return function (el, eventType, params) { + if (params === void 0) { params = getParams(); } + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } + catch (e) { + // Polyfills DOM4 MouseEvent + return function (el, eventType, params) { + if (params === void 0) { params = getParams(); } + var mouseEvent = doc.createEvent("MouseEvent"); + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent + mouseEvent.initMouseEvent(eventType, params.bubbles, params.cancelable, win, 0, // the event's mouse click count + params.screenX, params.screenY, params.clientX, params.clientY, false, false, false, false, 0, null); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: function (el, eventType, params) { + var touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +/** + * Process the template & return bound string + * @param {string} tpl Template string + * @param {object} data Data value to be replaced + * @returns {string} + * @private + */ +function tplProcess(tpl, data) { + var res = tpl; + for (var x in data) { + res = res.replace(new RegExp("{=".concat(x, "}"), "g"), data[x]); + } + return res; +} +/** + * Get parsed date value + * (It must be called in 'ChartInternal' context) + * @param {Date|string|number} date Value of date to be parsed + * @returns {Date} + * @private + */ +function parseDate(date) { + var _a; + var parsedDate; + if (date instanceof Date) { + parsedDate = date; + } + else if (isString(date)) { + var _b = this, config = _b.config, format = _b.format; + // if fails to parse, try by new Date() + // https://github.com/naver/billboard.js/issues/1714 + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) !== null && _a !== void 0 ? _a : new Date(date); + } + else if (isNumber(date) && !isNaN(date)) { + parsedDate = new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && + console.error("Failed to parse x '".concat(date, "' to Date object")); + } + return parsedDate; +} +/** + * Return if the current doc is visible or not + * @returns {boolean} + * @private + */ +function isTabVisible() { + return (doc === null || doc === void 0 ? void 0 : doc.hidden) === false || (doc === null || doc === void 0 ? void 0 : doc.visibilityState) === "visible"; +} +/** + * Get the current input type + * @param {boolean} mouse Config value: interaction.inputType.mouse + * @param {boolean} touch Config value: interaction.inputType.touch + * @returns {string} "mouse" | "touch" | null + * @private + */ +function convertInputType(mouse, touch) { + var DocumentTouch = win.DocumentTouch, matchMedia = win.matchMedia, navigator = win.navigator; + var hasTouch = false; + if (touch) { + // Some Edge desktop return true: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/20417074/ + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + // Ref: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touchevents.js + // On IE11 with IE9 emulation mode, ('ontouchstart' in window) is returning true + } + else if ("ontouchmove" in win || (DocumentTouch && doc instanceof DocumentTouch)) { + hasTouch = true; + } + else { + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent#avoiding_user_agent_detection + if (matchMedia === null || matchMedia === void 0 ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } + else { + // Only as a last resort, fall back to user agent sniffing + var UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || + /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + // Check if agent has mouse using any-hover, touch devices (e.g iPad) with external mouse will return true as long as mouse is connected + // https://css-tricks.com/interaction-media-features-and-their-potential-for-incorrect-assumptions/#aa-testing-the-capabilities-of-all-inputs + // Demo: https://patrickhlauke.github.io/touch/pointer-hover-any-pointer-any-hover/ + var hasMouse = mouse && + ((matchMedia === null || matchMedia === void 0 ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia === null || matchMedia === void 0 ? void 0 : matchMedia("any-pointer:fine").matches)); + // fallback to 'mouse' if no input type is detected. + return (hasMouse && "mouse") || (hasTouch && "touch") || "mouse"; +} +/** + * Run function until given condition function return true + * @param {Function} fn Function to be executed when condition is true + * @param {Function} conditionFn Condition function to check if condition is true + * @private + */ +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(function () { return runUntil(fn, conditionFn); }); + } + else { + fn(); + } +} + +/** + * Class to set options on generating chart. + * - It's instantiated internally, not exposed for public. + * @class Options + * @see {@link bb.generate} to use these options on generating the chart + */ +var Options = /** @class */ (function () { + function Options() { + return deepClone(main, boost, data$2, color$1, interaction$1, legend$2, title$1, tooltip$2, Options.data); + } + Options.setOptions = function (options) { + this.data = options + .reduce(function (a, c) { return (__assign(__assign({}, a), c)); }, this.data); + }; + Options.data = {}; + return Options; +}()); + +/** + * Elements class. + * @class Elements + * @ignore + * @private + */ +var Element = /** @class */ (function () { + function Element() { + var element = { + chart: null, + main: null, + svg: null, + axis: { + x: null, + y: null, + y2: null, + subX: null + }, + axisTooltip: { + x: null, + y: null, + y2: null + }, + defs: null, + tooltip: null, + legend: null, + title: null, + subchart: { + main: null, // $$.context + bar: null, // $$.contextBar + line: null, // $$.contextLine + area: null // $$.contextArea + }, + arcs: null, + bar: null, // mainBar, + candlestick: null, + line: null, // mainLine, + area: null, // mainArea, + circle: null, // mainCircle, + radar: null, + text: null, // mainText, + grid: { + main: null, // grid (also focus) + x: null, // xgrid, + y: null // ygrid, + }, + gridLines: { + main: null, // gridLines + x: null, // xgridLines, + y: null // ygridLines + }, + region: { + main: null, // region + list: null // mainRegion + }, + eventRect: null, + zoomResetBtn: null // drag zoom reset button + }; + return element; + } + return Element; +}()); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * State class. + * @class State + * @ignore + * @private + */ +var State = /** @class */ (function () { + function State() { + return { + // chart drawn area dimension, excluding axes + width: 0, + width2: 0, + height: 0, + height2: 0, + margin: { + top: 0, + bottom: 0, + left: 0, + right: 0 + }, + margin2: { + top: 0, + bottom: 0, + left: 0, + right: 0 + }, + margin3: { + top: 0, + bottom: 0, + left: 0, + right: 0 + }, + arcWidth: 0, + arcHeight: 0, + xAxisHeight: 0, + hasAxis: false, + hasFunnel: false, + hasRadar: false, + hasTreemap: false, + // for data CSS rule index (used when boost.useCssRule is true) + cssRule: {}, + current: { + // current domain value. Assigned when is zoom is called + domain: undefined, + // chart whole dimension + width: 0, + height: 0, + dataMax: 0, + maxTickSize: { + x: { + width: 0, + height: 0, + ticks: [], + clipPath: 0, + domain: "" + }, + y: { width: 0, height: 0, domain: "" }, + y2: { width: 0, height: 0, domain: "" } + }, + // current used chart type list + types: [], + needle: undefined // arc needle current value + }, + // legend + isLegendRight: false, + isLegendInset: false, + isLegendTop: false, + isLegendLeft: false, + legendStep: 0, + legendItemWidth: 0, + legendItemHeight: 0, + legendHasRendered: false, + eventReceiver: { + currentIdx: -1, // current event interaction index + rect: {}, // event rect's clientBoundingRect + data: [], // event data bound of previoous eventRect + coords: [] // coordination value of previous eventRect + }, + axis: { + x: { + padding: { left: 0, right: 0 }, + tickCount: 0 + } + }, + rotatedPadding: { + left: 30, + right: 0, + top: 5 + }, + withoutFadeIn: {}, + inputType: "", + datetimeId: "", + // clip id string + clip: { + id: "", + idXAxis: "", + idYAxis: "", + idXAxisTickTexts: "", + idGrid: "", + idSubchart: "", // clipIdForSubchart + path: "", + pathXAxis: "", + pathYAxis: "", + pathXAxisTickTexts: "", + pathGrid: "" + }, + // state + event: null, // event object + dragStart: null, + dragging: false, + flowing: false, + cancelClick: false, + mouseover: false, + rendered: false, + transiting: false, + redrawing: false, // if redraw() is on process + resizing: false, // resize event called + toggling: false, // legend toggle + zooming: false, + hasNegativeValue: false, + hasPositiveValue: true, + orgAreaOpacity: "0.2", + orgConfig: {}, // user original genration config + // ID strings + hiddenTargetIds: [], + hiddenLegendIds: [], + focusedTargetIds: [], + defocusedTargetIds: [], + // value for Arc + radius: 0, + innerRadius: 0, + outerRadius: undefined, + innerRadiusRatio: 0, + gaugeArcWidth: 0, + radiusExpanded: 0, + // xgrid attribute + xgridAttr: { + x1: null, + x2: null, + y1: null, + y2: null + } + }; + } + return State; +}()); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +// mapping +var classes = { + element: Element, + state: State +}; +/** + * Internal store class. + * @class Store + * @ignore + * @private + */ +var Store = /** @class */ (function () { + function Store() { + var _this = this; + Object.keys(classes).forEach(function (v) { + _this[v] = new classes[v](); + }); + } + Store.prototype.getStore = function (name) { + return this[name]; + }; + return Store; +}()); + +/** + * Constant for cache key + * - NOTE: Prefixed with '$', will be resetted when .load() is called + * @private + */ +var KEY = { + bubbleBaseLength: "$baseLength", + colorPattern: "__colorPattern__", + dataMinMax: "$dataMinMax", + dataTotalSum: "$dataTotalSum", + dataTotalPerIndex: "$totalPerIndex", + legendItemTextBox: "legendItemTextBox", + radarPoints: "$radarPoints", + radarTextWidth: "$radarTextWidth", + setOverOut: "setOverOut", + callOverOutForTouch: "callOverOutForTouch", + textRect: "textRect" +}; +var Cache = /** @class */ (function () { + function Cache() { + this.cache = {}; + } + /** + * Add cache + * @param {string} key Cache key + * @param {*} value Value to be stored + * @param {boolean} isDataType Weather the cache is data typed '{id:'data', id_org: 'data', values: [{x:0, index:0,...}, ...]}' + * @returns {*} Added data value + * @private + */ + Cache.prototype.add = function (key, value, isDataType) { + if (isDataType === void 0) { isDataType = false; } + this.cache[key] = isDataType ? this.cloneTarget(value) : value; + return this.cache[key]; + }; + /** + * Remove cache + * @param {string|Array} key Cache key + * @private + */ + Cache.prototype.remove = function (key) { + var _this = this; + (isString(key) ? [key] : key) + .forEach(function (v) { return delete _this.cache[v]; }); + }; + /** + * Get cahce + * @param {string|Array} key Cache key + * @param {boolean} isDataType Weather the cache is data typed '{id:'data', id_org: 'data', values: [{x:0, index:0,...}, ...]}' + * @returns {*} + * @private + */ + Cache.prototype.get = function (key, isDataType) { + if (isDataType === void 0) { isDataType = false; } + // when is isDataType, key should be string array + if (isDataType && Array.isArray(key)) { + var targets = []; + for (var i = 0, id = void 0; (id = key[i]); i++) { + if (id in this.cache) { + targets.push(this.cloneTarget(this.cache[id])); + } + } + return targets; + } + else { + var value = this.cache[key]; + return isValue(value) ? value : null; + } + }; + /** + * Reset cached data + * @param {boolean} all true: reset all data, false: reset only '$' prefixed key data + * @private + */ + Cache.prototype.reset = function (all) { + var $$ = this; + for (var x in $$.cache) { + // reset the prefixed '$' key(which is internal use data) only. + if (all || /^\$/.test(x)) { + $$.cache[x] = null; + } + } + }; + /** + * Clone data target object + * @param {object} target Data object + * @returns {object} + * @private + */ + Cache.prototype.cloneTarget = function (target) { + return { + id: target.id, + id_org: target.id_org, + values: target.values.map(function (d) { return ({ x: d.x, value: d.value, id: d.id }); }) + }; + }; + return Cache; +}()); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Chart type constant + * @private + */ +var TYPE = { + AREA: "area", + AREA_LINE_RANGE: "area-line-range", + AREA_SPLINE: "area-spline", + AREA_SPLINE_RANGE: "area-spline-range", + AREA_STEP: "area-step", + BAR: "bar", + BUBBLE: "bubble", + CANDLESTICK: "candlestick", + DONUT: "donut", + FUNNEL: "funnel", + GAUGE: "gauge", + LINE: "line", + PIE: "pie", + POLAR: "polar", + RADAR: "radar", + SCATTER: "scatter", + SPLINE: "spline", + STEP: "step", + TREEMAP: "treemap" +}; +/** + * Chart type module and its method from ChartInternal class, needed to be initialized. + * @private + */ +var TYPE_METHOD_NEEDED = { + AREA: "initArea", + AREA_LINE_RANGE: "initArea", + AREA_SPLINE: "initArea", + AREA_SPLINE_RANGE: "initArea", + AREA_STEP: "initArea", + BAR: "initBar", + BUBBLE: "initCircle", + CANDLESTICK: "initCandlestick", + DONUT: "initArc", + FUNNEL: "initFunnel", + GAUGE: "initArc", + LINE: "initLine", + PIE: "initArc", + POLAR: "initPolar", + RADAR: "initCircle", + SCATTER: "initCircle", + SPLINE: "initLine", + STEP: "initLine", + TREEMAP: "initTreemap" +}; +/** + * chart types by category + * @private + */ +var TYPE_BY_CATEGORY = { + Area: [ + TYPE.AREA, + TYPE.AREA_SPLINE, + TYPE.AREA_SPLINE_RANGE, + TYPE.AREA_LINE_RANGE, + TYPE.AREA_STEP + ], + AreaRange: [ + TYPE.AREA_SPLINE_RANGE, + TYPE.AREA_LINE_RANGE + ], + Arc: [ + TYPE.PIE, + TYPE.DONUT, + TYPE.GAUGE, + TYPE.POLAR, + TYPE.RADAR + ], + Line: [ + TYPE.LINE, + TYPE.SPLINE, + TYPE.AREA, + TYPE.AREA_SPLINE, + TYPE.AREA_SPLINE_RANGE, + TYPE.AREA_LINE_RANGE, + TYPE.STEP, + TYPE.AREA_STEP + ], + Step: [ + TYPE.STEP, + TYPE.AREA_STEP + ], + Spline: [ + TYPE.SPLINE, + TYPE.AREA_SPLINE, + TYPE.AREA_SPLINE_RANGE + ] +}; + +/** + * Check chart type module imports. + * @param {ChartInternal} ctx Context + * @private + */ +function checkModuleImport(ctx) { + var $$ = ctx; + var config = $$.config; + var type = ""; + if (isEmpty(config.data_type || config.data_types) && !$$[TYPE_METHOD_NEEDED.LINE]) { + type = "line"; + } + else { + for (var x in TYPE_METHOD_NEEDED) { + var t = TYPE[x]; + if ($$.hasType(t) && !$$[TYPE_METHOD_NEEDED[x]]) { + type = t; + break; + } + } + } + type && + logError("Please, make sure if %c".concat(camelize(type)), "module has been imported and specified correctly."); +} +/** + * Log error and throw error + * @param {string} head Message header + * @param {string} tail Message tail + * @private + */ +function logError(head, tail) { + var _a; + var prefix = "[billboard.js]"; + var info = "https://github.com/naver/billboard.js/wiki/CHANGELOG-v2#modularization-by-its-functionality"; + var hasConsole = (_a = win.console) === null || _a === void 0 ? void 0 : _a.error; + if (hasConsole) { + console.error("\u274C ".concat(prefix, " ").concat(head), "background:red;color:white;display:block;font-size:15px", tail); + console.info("%cℹ️", "font-size:15px", info); + } + throw Error("".concat(prefix, " ").concat(head.replace(/\%c([a-z-]+)/i, "'$1' "), " ").concat(tail)); +} + +var setTimeout$1 = win.setTimeout, clearTimeout$1 = win.clearTimeout; +/** + * Generate resize queue function + * @param {boolean|number} option Resize option + * @returns {Fucntion} + * @private + */ +function generateResize(option) { + var fn = []; + var timeout; + var callResizeFn = function () { + // Delay all resize functions call, to prevent unintended excessive call from resize event + callResizeFn.clear(); + if (option === false) { + requestIdleCallback(function () { + fn.forEach(function (f) { return f(); }); + }, { timeout: 200 }); + } + else { + timeout = setTimeout$1(function () { + fn.forEach(function (f) { return f(); }); + }, isNumber(option) ? option : 200); + } + }; + callResizeFn.clear = function () { + if (timeout) { + clearTimeout$1(timeout); + timeout = null; + } + }; + callResizeFn.add = function (f) { return fn.push(f); }; + callResizeFn.remove = function (f) { return fn.splice(fn.indexOf(f), 1); }; + return callResizeFn; +} +/** + * Generate transition queue function + * @returns {Function} + * @private + */ +function generateWait() { + var transitionsToWait = []; + // 'f' is called as selection.call(f, ...); + var f = function (selection, callback) { + /** + * Check if transition is complete + * @returns {boolean} Whether transition is complete + * @private + */ + function loop() { + var _a; + var done = 0; + for (var i = 0, t = void 0; (t = transitionsToWait[i]); i++) { + if (t === true || ((_a = t.empty) === null || _a === void 0 ? void 0 : _a.call(t))) { + done++; + continue; + } + // when tab isn't visible exit loop + if (isTabVisible() === false) { + done = transitionsToWait.length; + break; + } + try { + t.transition(); + } + catch (e) { + done++; + } + } + return done === transitionsToWait.length; + } + runUntil(function () { + callback === null || callback === void 0 ? void 0 : callback(); + }, loop); + }; + f.add = function (t) { + isArray(t) ? (transitionsToWait = transitionsToWait.concat(t)) : transitionsToWait.push(t); + }; + return f; +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +// Store blob in memory +var blob = {}; +/** + * Get Object URL + * @param {Function} fn Function to be executed in worker + * @param {Array} depsFn Dependency functions to run given function(fn). + * @returns {string} + * @private + */ +function getObjectURL(fn, depsFn) { + var _a; + var fnString = fn.toString(); + var key = fnString.replace(/(function|[\s\W\n])/g, "").substring(0, 15); + if (!(key in blob)) { + // Web Worker body + blob[key] = new win.Blob([ + "".concat((_a = depsFn === null || depsFn === void 0 ? void 0 : depsFn.map(String).join(";")) !== null && _a !== void 0 ? _a : "", "\n\n\t\t\tself.onmessage=function({data}) {\n\t\t\t\tconst result = (").concat(fnString, ").apply(null, data);\n\t\t\t\tself.postMessage(result);\n\t\t\t};") + ], { + type: "text/javascript" + }); + } + return win.URL.createObjectURL(blob[key]); +} +/** + * Get WebWorker instance + * @param {string} src URL object as string + * @returns {object} WebWorker instance + * @private + */ +function getWorker(src) { + var worker = new win.Worker(src); + // handle error + worker.onerror = function (e) { + // eslint-disable-next-line no-console + console.error ? console.error(e) : console.log(e); + }; + return worker; +} +/** + * Create and run on Web Worker + * @param {boolean} useWorker Use Web Worker + * @param {Function} fn Function to be executed in worker + * @param {Function} callback Callback function to receive result from worker + * @param {Array} depsFn Dependency functions to run given function(fn). + * @returns {object} + * @example + * const worker = runWorker(function(arg) { + * // do some tasks... + * console.log("param:", A(arg)); + * + * return 1234; + * }, function(data) { + * // callback after worker is done + * console.log("result:", data); + * }, + * [function A(){}] + * ); + * + * worker(11111); + * @private + */ +function runWorker(useWorker, fn, callback, depsFn) { + if (useWorker === void 0) { useWorker = true; } + var runFn = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var res = fn.apply(void 0, args); + callback(res); + }; + if (win.Worker && useWorker) { + var src_1 = getObjectURL(fn, depsFn); + var worker_1 = getWorker(src_1); + runFn = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + // trigger worker + worker_1.postMessage(args); + // listen worker + worker_1.onmessage = function (e) { + // release object URL from memory + win.URL.revokeObjectURL(src_1); + return callback(e.data); + }; + // return new Promise((resolve, reject) => { + // worker.onmessage = ({data}) => resolve(data); + // worker.onerror = reject; + // }); + }; + } + return runFn; +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/* eslint-disable */ +/***** Functions to be executed on Web Worker ***** + * NOTE: Don't allowed to use + * - arrow function syntax + * - Utils functions + */ +/** + * Convert Columns data + * @param {object} columns + * @returns {Array} + * @private + */ +function columns(columns) { + var newRows = []; + columns.forEach(function (col, i) { + var key = col[0]; + col.forEach(function (v, j) { + if (j > 0) { + if (typeof newRows[j - 1] === "undefined") { + newRows[j - 1] = {}; + } + if (typeof v === "undefined") { + throw new Error("Source data is missing a component at (".concat(i, ", ").concat(j, ")!")); + } + newRows[j - 1][key] = v; + } + }); + }); + return newRows; +} +/** + * Convert Rows data + * @param {object} columns + * @returns {Array} + * @private + */ +function rows(rows) { + var keys = rows[0]; + var newRows = []; + rows.forEach(function (row, i) { + if (i > 0) { + var newRow_1 = {}; + row.forEach(function (v, j) { + if (typeof v === "undefined") { + throw new Error("Source data is missing a component at (".concat(i, ", ").concat(j, ")!")); + } + newRow_1[keys[j]] = v; + }); + newRows.push(newRow_1); + } + }); + return newRows; +} +/** + * Convert JSON data + * @param {object} columns + * @returns {Array} + * @private + */ +function json(json, keysParam) { + var newRows = []; + var targetKeys; + var data; + if (Array.isArray(json)) { + var findValueInJson_1 = function (object, path) { + if (object[path] !== undefined) { + return object[path]; + } + var convertedPath = path.replace(/\[(\w+)\]/g, ".$1"); // convert indexes to properties (replace [] with .) + var pathArray = convertedPath.replace(/^\./, "").split("."); // strip a leading dot + var target = object; + pathArray.some(function (k) { + return !(target = target && k in target ? target[k] : undefined); + }); + return target; + }; + if (keysParam.x) { + targetKeys = keysParam.value.concat(keysParam.x); + } + else { + targetKeys = keysParam.value; + } + newRows.push(targetKeys); + json.forEach(function (o) { + var newRow = targetKeys.map(function (key) { + // convert undefined to null because undefined data will be removed in convertDataToTargets() + var v = findValueInJson_1(o, key); + if (typeof v === "undefined") { + v = null; + } + return v; + }); + newRows.push(newRow); + }); + data = rows(newRows); + } + else { + Object.keys(json).forEach(function (key) { + var _a; + var tmp = json[key].concat(); + (_a = tmp.unshift) === null || _a === void 0 ? void 0 : _a.call(tmp, key); + newRows.push(tmp); + }); + data = columns(newRows); + } + return data; +} +/***** Functions can't be executed on Web Worker *****/ +/** + * Convert URL data + * @param {string} url Remote URL + * @param {string} mimeType MIME type string: json | csv | tsv + * @param {object} headers Header object + * @param {object} keys Key object + * @param {Function} done Callback function + * @private + */ +function url(url, mimeType, headers, keys, done) { + if (mimeType === void 0) { mimeType = "csv"; } + var req = new XMLHttpRequest(); + var converter = { csv: csv, tsv: tsv, json: json }; + req.open("GET", url); + if (headers) { + Object.keys(headers).forEach(function (key) { + req.setRequestHeader(key, headers[key]); + }); + } + req.onreadystatechange = function () { + if (req.readyState === 4) { + if (req.status === 200) { + var response = req.responseText; + response && done.call(this, converter[mimeType](mimeType === "json" ? JSON.parse(response) : response, keys)); + } + else { + throw new Error("".concat(url, ": Something went wrong loading!")); + } + } + }; + req.send(); +} +/** + * Convert CSV/TSV data + * @param {object} parser Parser object + * @param {object} xsv Data + * @returns {object} + * @private + */ +function convertCsvTsvToData(parser, xsv) { + var rows = parser.rows(xsv); + var d; + if (rows.length === 1) { + d = [{}]; + rows[0].forEach(function (id) { + d[0][id] = null; + }); + } + else { + d = parser.parse(xsv); + } + return d; +} +function csv(xsv) { + return convertCsvTsvToData({ + rows: csvParseRows, + parse: csvParse + }, xsv); +} +function tsv(tsv) { + return convertCsvTsvToData({ + rows: tsvParseRows, + parse: tsvParse + }, tsv); +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Get data key for JSON + * @param {string|object} keysParam Key params + * @param {object} config Config object + * @returns {string} Data key + * @private + */ +function getDataKeyForJson(keysParam, config) { + var keys = keysParam || (config === null || config === void 0 ? void 0 : config.data_keys); + if (keys === null || keys === void 0 ? void 0 : keys.x) { + config.data_x = keys.x; + } + return keys; +} +/** + * Data convert + * @memberof ChartInternal + * @private + */ +var dataConvert = { + /** + * Convert data according its type + * @param {object} args data object + * @param {Function} [callback] callback for url(XHR) type loading + * @private + */ + convertData: function (args, callback) { + var config = this.config; + var useWorker = config.boost_useWorker; + var data = args; + if (args.bindto) { + data = {}; + ["url", "mimeType", "headers", "keys", "json", "keys", "rows", "columns"] + .forEach(function (v) { + var key = "data_".concat(v); + if (key in args) { + data[v] = args[key]; + } + }); + } + if (data.url && callback) { + url(data.url, data.mimeType, data.headers, getDataKeyForJson(data.keys, config), callback); + } + else if (data.json) { + runWorker(useWorker, json, callback, [columns, rows])(data.json, getDataKeyForJson(data.keys, config)); + } + else if (data.rows) { + runWorker(useWorker, rows, callback)(data.rows); + } + else if (data.columns) { + runWorker(useWorker, columns, callback)(data.columns); + } + else if (args.bindto) { + throw Error("url or json or rows or columns is required."); + } + }, + convertDataToTargets: function (data, appendXs) { + var _this = this; + var $$ = this; + var axis = $$.axis, config = $$.config, state = $$.state; + var chartType = config.data_type; + var isCategorized = false; + var isTimeSeries = false; + var isCustomX = false; + if (axis) { + isCategorized = axis.isCategorized(); + isTimeSeries = axis.isTimeSeries(); + isCustomX = axis.isCustomX(); + } + var dataKeys = Object.keys(data[0] || {}); + var ids = dataKeys.length ? dataKeys.filter($$.isNotX, $$) : []; + var xs = dataKeys.length ? dataKeys.filter($$.isX, $$) : []; + var xsData; + // save x for update data by load when custom x and bb.x API + ids.forEach(function (id) { + var xKey = _this.getXKey(id); + if (isCustomX || isTimeSeries) { + // if included in input data + if (xs.indexOf(xKey) >= 0) { + xsData = ((appendXs && $$.data.xs[id]) || []) + .concat(data.map(function (d) { return d[xKey]; }) + .filter(isValue) + .map(function (rawX, i) { return $$.generateTargetX(rawX, id, i); })); + } + else if (config.data_x) { + // if not included in input data, find from preloaded data of other id's x + xsData = _this.getOtherTargetXs(); + } + else if (notEmpty(config.data_xs)) { + // if not included in input data, find from preloaded data + xsData = $$.getXValuesOfXKey(xKey, $$.data.targets); + } + // MEMO: if no x included, use same x of current will be used + } + else { + xsData = data.map(function (d, i) { return i; }); + } + xsData && (_this.data.xs[id] = xsData); + }); + // check x is defined + ids.forEach(function (id) { + if (!_this.data.xs[id]) { + throw new Error("x is not defined for id = \"".concat(id, "\".")); + } + }); + // convert to target + var targets = ids.map(function (id, index) { + var convertedId = config.data_idConverter.bind($$.api)(id); + var xKey = $$.getXKey(id); + var isCategory = isCustomX && isCategorized; + var hasCategory = isCategory && data.map(function (v) { return v.x; }) + .every(function (v) { return config.axis_x_categories.indexOf(v) > -1; }); + // when .load() with 'append' option is used for indexed axis + // @ts-ignore + var isDataAppend = data.__append__; + var xIndex = xKey === null && isDataAppend ? $$.api.data.values(id).length : 0; + return { + id: convertedId, + id_org: id, + values: data.map(function (d, i) { + var rawX = d[xKey]; + var value = d[id]; + var x; + value = value !== null && !isNaN(value) && !isObject(value) ? + +value : + (isArray(value) || isObject(value) ? value : null); + // use x as categories if custom x and categorized + if ((isCategory || state.hasRadar) && index === 0 && !isUndefined(rawX)) { + if (!hasCategory && index === 0 && i === 0 && !isDataAppend) { + config.axis_x_categories = []; + } + x = config.axis_x_categories.indexOf(rawX); + if (x === -1) { + x = config.axis_x_categories.length; + config.axis_x_categories.push(rawX); + } + } + else { + x = $$.generateTargetX(rawX, id, xIndex + i); + } + // mark as x = undefined if value is undefined and filter to remove after mapped + if (isUndefined(value) || $$.data.xs[id].length <= i) { + x = undefined; + } + return { + x: x, + value: value, + id: convertedId, + index: -1 + }; + }).filter(function (v) { return isDefined(v.x); }) + }; + }); + // finish targets + targets.forEach(function (t) { + var _a; + // sort values by its x + if (config.data_xSort) { + t.values = t.values.sort(function (v1, v2) { + var x1 = v1.x || v1.x === 0 ? v1.x : Infinity; + var x2 = v2.x || v2.x === 0 ? v2.x : Infinity; + return x1 - x2; + }); + } + // indexing each value + t.values.forEach(function (v, i) { return (v.index = i); }); + // this needs to be sorted because its index and value.index is identical + (_a = $$.data.xs[t.id]) === null || _a === void 0 ? void 0 : _a.sort(function (v1, v2) { return v1 - v2; }); + }); + // cache information about values + state.hasNegativeValue = $$.hasNegativeValueInTargets(targets); + state.hasPositiveValue = $$.hasPositiveValueInTargets(targets); + // set target types + if (chartType && $$.isValidChartType(chartType)) { + var targetIds = $$.mapToIds(targets) + .filter(function (id) { + return !(id in config.data_types) || !$$.isValidChartType(config.data_types[id]); + }); + $$.setTargetType(targetIds, chartType); + } + // cache as original id keyed + targets.forEach(function (d) { return $$.cache.add(d.id_org, d, true); }); + return targets; + } +}; + +var data$1 = { + isX: function (key) { + var $$ = this; + var config = $$.config; + var dataKey = config.data_x && key === config.data_x; + var existValue = notEmpty(config.data_xs) && hasValue(config.data_xs, key); + return dataKey || existValue; + }, + isNotX: function (key) { + return !this.isX(key); + }, + isStackNormalized: function () { + var config = this.config; + return !!(config.data_stack_normalize && config.data_groups.length); + }, + /** + * Check if given id is grouped data or has grouped data + * @param {string} id Data id value + * @returns {boolean} is grouped data or has grouped data + * @private + */ + isGrouped: function (id) { + var groups = this.config.data_groups; + return id ? groups.some(function (v) { return v.indexOf(id) >= 0 && v.length > 1; }) : groups.length > 0; + }, + getXKey: function (id) { + var $$ = this; + var config = $$.config; + return config.data_x ? + config.data_x : + (notEmpty(config.data_xs) ? config.data_xs[id] : null); + }, + getXValuesOfXKey: function (key, targets) { + var $$ = this; + var ids = targets && notEmpty(targets) ? $$.mapToIds(targets) : []; + var xValues; + ids.forEach(function (id) { + if ($$.getXKey(id) === key) { + xValues = $$.data.xs[id]; + } + }); + return xValues; + }, + /** + * Get index number based on given x Axis value + * @param {Date|number|string} x x Axis to be compared + * @param {Array} basedX x Axis list to be based on + * @returns {number} index number + * @private + */ + getIndexByX: function (x, basedX) { + var $$ = this; + return basedX ? + basedX.indexOf(isString(x) ? x : +x) : + ($$.filterByX($$.data.targets, x)[0] || { index: null }).index; + }, + getXValue: function (id, i) { + var $$ = this; + return id in $$.data.xs && + $$.data.xs[id] && + isValue($$.data.xs[id][i]) ? + $$.data.xs[id][i] : + i; + }, + getOtherTargetXs: function () { + var $$ = this; + var idsForX = Object.keys($$.data.xs); + return idsForX.length ? $$.data.xs[idsForX[0]] : null; + }, + getOtherTargetX: function (index) { + var xs = this.getOtherTargetXs(); + return xs && index < xs.length ? xs[index] : null; + }, + addXs: function (xs) { + var $$ = this; + var config = $$.config; + Object.keys(xs).forEach(function (id) { + config.data_xs[id] = xs[id]; + }); + }, + /** + * Determine if x axis is multiple + * @returns {boolean} true: multiple, false: single + * @private + */ + isMultipleX: function () { + return !this.config.axis_x_forceAsSingle && (notEmpty(this.config.data_xs) || + this.hasType("bubble") || + this.hasType("scatter")); + }, + addName: function (data) { + var $$ = this; + var config = $$.config; + var name; + if (data) { + name = config.data_names[data.id]; + data.name = name !== undefined ? name : data.id; + } + return data; + }, + /** + * Get all values on given index + * @param {number} index Index + * @param {boolean} filterNull Filter nullish value + * @returns {Array} + * @private + */ + getAllValuesOnIndex: function (index, filterNull) { + if (filterNull === void 0) { filterNull = false; } + var $$ = this; + var value = $$.filterTargetsToShow($$.data.targets) + .map(function (t) { return $$.addName($$.getValueOnIndex(t.values, index)); }); + if (filterNull) { + value = value.filter(function (v) { return v && "value" in v && isValue(v.value); }); + } + return value; + }, + getValueOnIndex: function (values, index) { + var valueOnIndex = values.filter(function (v) { return v.index === index; }); + return valueOnIndex.length ? valueOnIndex[0] : null; + }, + updateTargetX: function (targets, x) { + var $$ = this; + targets.forEach(function (t) { + t.values.forEach(function (v, i) { + v.x = $$.generateTargetX(x[i], t.id, i); + }); + $$.data.xs[t.id] = x; + }); + }, + updateTargetXs: function (targets, xs) { + var $$ = this; + targets.forEach(function (t) { + xs[t.id] && $$.updateTargetX([t], xs[t.id]); + }); + }, + generateTargetX: function (rawX, id, index) { + var $$ = this; + var axis = $$.axis; + var x = (axis === null || axis === void 0 ? void 0 : axis.isCategorized()) ? index : (rawX || index); + if (axis === null || axis === void 0 ? void 0 : axis.isTimeSeries()) { + var fn = parseDate.bind($$); + x = rawX ? fn(rawX) : fn($$.getXValue(id, index)); + } + else if ((axis === null || axis === void 0 ? void 0 : axis.isCustomX()) && !(axis === null || axis === void 0 ? void 0 : axis.isCategorized())) { + x = isValue(rawX) ? +rawX : $$.getXValue(id, index); + } + return x; + }, + updateXs: function (values) { + if (values.length) { + this.axis.xs = values.map(function (v) { return v.x; }); + } + }, + getPrevX: function (i) { + var x = this.axis.xs[i - 1]; + return isDefined(x) ? x : null; + }, + getNextX: function (i) { + var x = this.axis.xs[i + 1]; + return isDefined(x) ? x : null; + }, + /** + * Get base value isAreaRangeType + * @param {object} data Data object + * @returns {number} + * @private + */ + getBaseValue: function (data) { + var $$ = this; + var hasAxis = $$.state.hasAxis; + var value = data.value; + // In case of area-range, data is given as: [low, mid, high] or {low, mid, high} + // will take the 'mid' as the base value + if (value && hasAxis) { + if ($$.isAreaRangeType(data)) { + value = $$.getRangedData(data, "mid"); + } + else if ($$.isBubbleZType(data)) { + value = $$.getBubbleZData(value, "y"); + } + } + return value; + }, + /** + * Get min/max value from the data + * @private + * @param {Array} data array data to be evaluated + * @returns {{min: {number}, max: {number}}} + */ + getMinMaxValue: function (data) { + var getBaseValue = this.getBaseValue.bind(this); + var min; + var max; + (data || this.data.targets.map(function (t) { return t.values; })) + .forEach(function (v, i) { + var value = v.map(getBaseValue).filter(isNumber); + min = Math.min.apply(Math, __spreadArray([i ? min : Infinity], value, false)); + max = Math.max.apply(Math, __spreadArray([i ? max : -Infinity], value, false)); + }); + return { min: min, max: max }; + }, + /** + * Get the min/max data + * @private + * @returns {{min: Array, max: Array}} + */ + getMinMaxData: function () { + var $$ = this; + var cacheKey = KEY.dataMinMax; + var minMaxData = $$.cache.get(cacheKey); + if (!minMaxData) { + var data = $$.data.targets.map(function (t) { return t.values; }); + var minMax_1 = $$.getMinMaxValue(data); + var min_1 = []; + var max_1 = []; + data.forEach(function (v) { + var minData = $$.getFilteredDataByValue(v, minMax_1.min); + var maxData = $$.getFilteredDataByValue(v, minMax_1.max); + if (minData.length) { + min_1 = min_1.concat(minData); + } + if (maxData.length) { + max_1 = max_1.concat(maxData); + } + }); + // update the cached data + $$.cache.add(cacheKey, minMaxData = { min: min_1, max: max_1 }); + } + return minMaxData; + }, + /** + * Get sum of data per index + * @private + * @returns {Array} + */ + getTotalPerIndex: function () { + var $$ = this; + var cacheKey = KEY.dataTotalPerIndex; + var sum = $$.cache.get(cacheKey); + if (($$.config.data_groups.length || $$.isStackNormalized()) && !sum) { + sum = []; + $$.data.targets.forEach(function (row) { + row.values.forEach(function (v, i) { + if (!sum[i]) { + sum[i] = 0; + } + sum[i] += isNumber(v.value) ? v.value : 0; + }); + }); + } + return sum; + }, + /** + * Get total data sum + * @param {boolean} subtractHidden Subtract hidden data from total + * @returns {number} + * @private + */ + getTotalDataSum: function (subtractHidden) { + var $$ = this; + var cacheKey = KEY.dataTotalSum; + var total = $$.cache.get(cacheKey); + if (!isNumber(total)) { + var sum = mergeArray($$.data.targets.map(function (t) { return t.values; })) + .map(function (v) { return v.value; }); + total = sum.length ? sum.reduce(function (p, c) { return p + c; }) : 0; + $$.cache.add(cacheKey, total); + } + if (subtractHidden) { + total -= $$.getHiddenTotalDataSum(); + } + return total; + }, + /** + * Get total hidden data sum + * @returns {number} + * @private + */ + getHiddenTotalDataSum: function () { + var $$ = this; + var api = $$.api, hiddenTargetIds = $$.state.hiddenTargetIds; + var total = 0; + if (hiddenTargetIds.length) { + total = api.data.values.bind(api)(hiddenTargetIds) + .reduce(function (p, c) { return p + c; }); + } + return total; + }, + /** + * Get filtered data by value + * @param {object} data Data + * @param {number} value Value to be filtered + * @returns {Array} filtered array data + * @private + */ + getFilteredDataByValue: function (data, value) { + var _this = this; + return data.filter(function (t) { return _this.getBaseValue(t) === value; }); + }, + /** + * Return the max length of the data + * @returns {number} max data length + * @private + */ + getMaxDataCount: function () { + return Math.max.apply(Math, __spreadArray(__spreadArray([], this.data.targets.map(function (t) { return t.values.length; }), false), [0], false)); + }, + getMaxDataCountTarget: function () { + var target = this.filterTargetsToShow() || []; + var length = target.length; + var isInverted = this.config.axis_x_inverted; + if (length > 1) { + target = target.map(function (t) { return t.values; }) + .reduce(function (a, b) { return a.concat(b); }) + .map(function (v) { return v.x; }); + target = sortValue(getUnique(target)) + .map(function (x, index, array) { return ({ + x: x, + index: isInverted ? array.length - index - 1 : index + }); }); + } + else if (length) { + target = target[0].values.concat(); + } + return target; + }, + mapToIds: function (targets) { + return targets.map(function (d) { return d.id; }); + }, + mapToTargetIds: function (ids) { + var $$ = this; + return ids ? (isArray(ids) ? ids.concat() : [ids]) : $$.mapToIds($$.data.targets); + }, + hasTarget: function (targets, id) { + var ids = this.mapToIds(targets); + for (var i = 0, val = void 0; (val = ids[i]); i++) { + if (val === id) { + return true; + } + } + return false; + }, + isTargetToShow: function (targetId) { + return this.state.hiddenTargetIds.indexOf(targetId) < 0; + }, + isLegendToShow: function (targetId) { + return this.state.hiddenLegendIds.indexOf(targetId) < 0; + }, + filterTargetsToShow: function (targets) { + var $$ = this; + return (targets || $$.data.targets).filter(function (t) { return $$.isTargetToShow(t.id); }); + }, + mapTargetsToUniqueXs: function (targets) { + var $$ = this; + var axis = $$.axis; + var xs = []; + if (targets === null || targets === void 0 ? void 0 : targets.length) { + xs = getUnique(mergeArray(targets.map(function (t) { return t.values.map(function (v) { return +v.x; }); }))); + xs = (axis === null || axis === void 0 ? void 0 : axis.isTimeSeries()) ? xs.map(function (x) { return new Date(+x); }) : xs.map(Number); + } + return sortValue(xs); + }, + /** + * Add to the state target Ids + * @param {string} type State's prop name + * @param {Array|string} targetIds Target ids array + * @private + */ + addTargetIds: function (type, targetIds) { + var state = this.state; + var ids = (isArray(targetIds) ? targetIds : [targetIds]); + ids.forEach(function (v) { + state[type].indexOf(v) < 0 && + state[type].push(v); + }); + }, + /** + * Remove from the state target Ids + * @param {string} type State's prop name + * @param {Array|string} targetIds Target ids array + * @private + */ + removeTargetIds: function (type, targetIds) { + var state = this.state; + var ids = (isArray(targetIds) ? targetIds : [targetIds]); + ids.forEach(function (v) { + var index = state[type].indexOf(v); + index >= 0 && state[type].splice(index, 1); + }); + }, + addHiddenTargetIds: function (targetIds) { + this.addTargetIds("hiddenTargetIds", targetIds); + }, + removeHiddenTargetIds: function (targetIds) { + this.removeTargetIds("hiddenTargetIds", targetIds); + }, + addHiddenLegendIds: function (targetIds) { + this.addTargetIds("hiddenLegendIds", targetIds); + }, + removeHiddenLegendIds: function (targetIds) { + this.removeTargetIds("hiddenLegendIds", targetIds); + }, + getValuesAsIdKeyed: function (targets) { + var $$ = this; + var hasAxis = $$.state.hasAxis; + var ys = {}; + var isMultipleX = $$.isMultipleX(); + var xs = isMultipleX ? + $$.mapTargetsToUniqueXs(targets) + .map(function (v) { return (isString(v) ? v : +v); }) : + null; + targets.forEach(function (t) { + var data = []; + t.values + .filter(function (_a) { + var value = _a.value; + return isValue(value) || value === null; + }) + .forEach(function (v) { + var value = v.value; + // exclude 'volume' value to correct mis domain calculation + if (value !== null && $$.isCandlestickType(v)) { + value = isArray(value) ? + value.slice(0, 4) : + [value.open, value.high, value.low, value.close]; + } + if (isArray(value)) { + data.push.apply(data, value); + } + else if (isObject(value) && "high" in value) { + data.push.apply(data, Object.values(value)); + } + else if ($$.isBubbleZType(v)) { + data.push(hasAxis && $$.getBubbleZData(value, "y")); + } + else { + if (isMultipleX) { + data[$$.getIndexByX(v.x, xs)] = value; + } + else { + data.push(value); + } + } + }); + ys[t.id] = data; + }); + return ys; + }, + checkValueInTargets: function (targets, checker) { + var ids = Object.keys(targets); + var values; + for (var i = 0; i < ids.length; i++) { + values = targets[ids[i]].values; + for (var j = 0; j < values.length; j++) { + if (checker(values[j].value)) { + return true; + } + } + } + return false; + }, + hasMultiTargets: function () { + return this.filterTargetsToShow().length > 1; + }, + hasNegativeValueInTargets: function (targets) { + return this.checkValueInTargets(targets, function (v) { return v < 0; }); + }, + hasPositiveValueInTargets: function (targets) { + return this.checkValueInTargets(targets, function (v) { return v > 0; }); + }, + /** + * Sort targets data + * Note: For stacked bar, will sort from the total sum of data series, not for each stacked bar + * @param {Array} targetsValue Target value + * @returns {Array} + * @private + */ + orderTargets: function (targetsValue) { + var $$ = this; + var targets = __spreadArray([], targetsValue, true); + var fn = $$.getSortCompareFn(); + fn && targets.sort(fn); + return targets; + }, + /** + * Get data.order compare function + * @param {boolean} isReversed for Arc & Treemap type sort order needs to be reversed + * @returns {Function} compare function + * @private + */ + getSortCompareFn: function (isReversed) { + if (isReversed === void 0) { isReversed = false; } + var $$ = this; + var config = $$.config; + var order = config.data_order; + var orderAsc = /asc/i.test(order); + var orderDesc = /desc/i.test(order); + var fn; + if (orderAsc || orderDesc) { + var reducer_1 = function (p, c) { return p + Math.abs(c.value); }; + var sum_1 = function (v) { return (isNumber(v) ? v : ("values" in v ? v.values.reduce(reducer_1, 0) : v.value)); }; + fn = function (t1, t2) { + var t1Sum = sum_1(t1); + var t2Sum = sum_1(t2); + return isReversed ? + (orderAsc ? t1Sum - t2Sum : t2Sum - t1Sum) : + (orderAsc ? t2Sum - t1Sum : t1Sum - t2Sum); + }; + } + else if (isFunction(order)) { + fn = order.bind($$.api); + } + return fn || null; + }, + filterByX: function (targets, x) { + return mergeArray(targets.map(function (t) { return t.values; })).filter(function (v) { return v.x - x === 0; }); + }, + filterRemoveNull: function (data) { + var _this = this; + return data.filter(function (d) { return isValue(_this.getBaseValue(d)); }); + }, + filterByXDomain: function (targets, xDomain) { + return targets.map(function (t) { return ({ + id: t.id, + id_org: t.id_org, + values: t.values.filter(function (v) { return xDomain[0] <= v.x && v.x <= xDomain[1]; }) + }); }); + }, + hasDataLabel: function () { + var dataLabels = this.config.data_labels; + return (isBoolean(dataLabels) && dataLabels) || + (isObjectType(dataLabels) && notEmpty(dataLabels)); + }, + /** + * Get data index from the event coodinates + * @param {Event} event Event object + * @returns {number} + */ + getDataIndexFromEvent: function (event) { + var $$ = this; + var $el = $$.$el, config = $$.config, _a = $$.state, hasRadar = _a.hasRadar, inputType = _a.inputType, _b = _a.eventReceiver, coords = _b.coords, rect = _b.rect; + var index; + if (hasRadar) { + var target = event.target; + // in case of multilined axis text + if (/tspan/i.test(target.tagName)) { + target = target.parentNode; + } + var d = select(target).datum(); + index = d && Object.keys(d).length === 1 ? d.index : undefined; + } + else { + var isRotated = config.axis_rotated; + var scrollPos = getScrollPosition($el.chart.node()); + // get data based on the mouse coords + var e = inputType === "touch" && event.changedTouches ? + event.changedTouches[0] : + event; + index = findIndex(coords, isRotated ? + e.clientY + scrollPos.y - rect.top : + e.clientX + scrollPos.x - rect.left, 0, coords.length - 1, isRotated); + } + return index; + }, + getDataLabelLength: function (min, max, key) { + var $$ = this; + var lengths = [0, 0]; + var paddingCoef = 1.3; + $$.$el.chart.select("svg").selectAll(".dummy") + .data([min, max]) + .enter() + .append("text") + .text(function (d) { return $$.dataLabelFormat(d.id)(d); }) + .each(function (d, i) { + lengths[i] = this.getBoundingClientRect()[key] * paddingCoef; + }) + .remove(); + return lengths; + }, + isNoneArc: function (d) { + return this.hasTarget(this.data.targets, d.id); + }, + isArc: function (d) { + return "data" in d && this.hasTarget(this.data.targets, d.data.id); + }, + findSameXOfValues: function (values, index) { + var targetX = values[index].x; + var sames = []; + var i; + for (i = index - 1; i >= 0; i--) { + if (targetX !== values[i].x) { + break; + } + sames.push(values[i]); + } + for (i = index; i < values.length; i++) { + if (targetX !== values[i].x) { + break; + } + sames.push(values[i]); + } + return sames; + }, + findClosestFromTargets: function (targets, pos) { + var $$ = this; + var candidates = targets.map(function (target) { return $$.findClosest(target.values, pos); }); // map to array of closest points of each target + // decide closest point and return + return $$.findClosest(candidates, pos); + }, + findClosest: function (values, pos) { + var $$ = this; + var main = $$.$el.main; + var data = values.filter(function (v) { return v && isValue(v.value); }); + var minDist; + var closest; + // find mouseovering bar/candlestick + // https://github.com/naver/billboard.js/issues/2434 + data + .filter(function (v) { return $$.isBarType(v.id) || $$.isCandlestickType(v.id); }) + .forEach(function (v) { + var selector = $$.isBarType(v.id) ? + ".".concat($BAR.chartBar, ".").concat($COMMON.target).concat($$.getTargetSelectorSuffix(v.id), " .").concat($BAR.bar, "-").concat(v.index) : + ".".concat($CANDLESTICK.chartCandlestick, ".").concat($COMMON.target).concat($$.getTargetSelectorSuffix(v.id), " .").concat($CANDLESTICK.candlestick, "-").concat(v.index, " path"); + if (!closest && $$.isWithinBar(main.select(selector).node())) { + closest = v; + } + }); + // find closest point from non-bar/candlestick + data + .filter(function (v) { return !$$.isBarType(v.id) && !$$.isCandlestickType(v.id); }) + .forEach(function (v) { + var d = $$.dist(v, pos); + minDist = $$.getPointSensitivity(v); + if (d < minDist) { + minDist = d; + closest = v; + } + }); + return closest; + }, + dist: function (data, pos) { + var $$ = this; + var isRotated = $$.config.axis_rotated, scale = $$.scale; + var xIndex = +isRotated; // true: 1, false: 0 + var yIndex = +!isRotated; // true: 0, false: 1 + var y = $$.circleY(data, data.index); + var x = (scale.zoom || scale.x)(data.x); + return Math.sqrt(Math.pow(x - pos[xIndex], 2) + Math.pow(y - pos[yIndex], 2)); + }, + /** + * Convert data for step type + * @param {Array} values Object data values + * @returns {Array} + * @private + */ + convertValuesToStep: function (values) { + var $$ = this; + var axis = $$.axis, config = $$.config; + var stepType = config.line_step_type; + var isCategorized = axis ? axis.isCategorized() : false; + var converted = isArray(values) ? values.concat() : [values]; + if (!(isCategorized || /step\-(after|before)/.test(stepType))) { + return values; + } + // when all datas are null, return empty array + // https://github.com/naver/billboard.js/issues/3124 + if (converted.length) { + // insert & append cloning first/last value to be fully rendered covering on each gap sides + var head = converted[0]; + var tail = converted[converted.length - 1]; + var id = head.id; + var x = head.x; + // insert head + converted.unshift({ x: --x, value: head.value, id: id }); + isCategorized && stepType === "step-after" && + converted.unshift({ x: --x, value: head.value, id: id }); + // append tail + x = tail.x; + converted.push({ x: ++x, value: tail.value, id: id }); + isCategorized && stepType === "step-before" && + converted.push({ x: ++x, value: tail.value, id: id }); + } + return converted; + }, + convertValuesToRange: function (values) { + var converted = isArray(values) ? values.concat() : [values]; + var ranges = []; + converted.forEach(function (range) { + var x = range.x, id = range.id; + ranges.push({ + x: x, + id: id, + value: range.value[0] + }); + ranges.push({ + x: x, + id: id, + value: range.value[2] + }); + }); + return ranges; + }, + updateDataAttributes: function (name, attrs) { + var $$ = this; + var config = $$.config; + var current = config["data_".concat(name)]; + if (isUndefined(attrs)) { + return current; + } + Object.keys(attrs).forEach(function (id) { + current[id] = attrs[id]; + }); + $$.redraw({ withLegend: true }); + return current; + }, + getRangedData: function (d, key, type) { + if (key === void 0) { key = ""; } + if (type === void 0) { type = "areaRange"; } + var value = d === null || d === void 0 ? void 0 : d.value; + if (isArray(value)) { + if (type === "bar") { + return value.reduce(function (a, c) { return c - a; }); + } + else { + // @ts-ignore + var index = { + areaRange: ["high", "mid", "low"], + candlestick: ["open", "high", "low", "close", "volume"] + }[type].indexOf(key); + return index >= 0 && value ? value[index] : undefined; + } + } + else if (value && key) { + return value[key]; + } + return value; + }, + /** + * Set ratio for grouped data + * @param {Array} data Data array + * @private + */ + setRatioForGroupedData: function (data) { + var $$ = this; + var config = $$.config; + // calculate ratio if grouped data exists + if (config.data_groups.length && data.some(function (d) { return $$.isGrouped(d.id); })) { + var setter_1 = function (d) { return $$.getRatio("index", d, true); }; + data.forEach(function (v) { + "values" in v ? v.values.forEach(setter_1) : setter_1(v); + }); + } + }, + /** + * Get ratio value + * @param {string} type Ratio for given type + * @param {object} d Data value object + * @param {boolean} asPercent Convert the return as percent or not + * @returns {number} Ratio value + * @private + */ + getRatio: function (type, d, asPercent) { + if (asPercent === void 0) { asPercent = false; } + var $$ = this; + var config = $$.config, state = $$.state; + var api = $$.api; + var ratio = 0; + if (d && api.data.shown().length) { + ratio = d.ratio || d.value; + if (type === "arc") { + // if has padAngle set, calculate rate based on value + if ($$.pie.padAngle()()) { + ratio = d.value / $$.getTotalDataSum(true); + // otherwise, based on the rendered angle value + } + else { + var gaugeArcLength = config.gauge_fullCircle ? + $$.getArcLength() : + $$.getStartingAngle() * -2; + var arcLength = $$.hasType("gauge") ? gaugeArcLength : Math.PI * 2; + ratio = (d.endAngle - d.startAngle) / arcLength; + } + } + else if (type === "index") { + var dataValues = api.data.values.bind(api); + var total = this.getTotalPerIndex(); + if (state.hiddenTargetIds.length) { + var hiddenSum_1 = dataValues(state.hiddenTargetIds, false); + if (hiddenSum_1.length) { + hiddenSum_1 = hiddenSum_1 + .reduce(function (acc, curr) { + return acc.map(function (v, i) { return (isNumber(v) ? v : 0) + curr[i]; }); + }); + total = total.map(function (v, i) { return v - hiddenSum_1[i]; }); + } + } + var divisor = total[d.index]; + d.ratio = isNumber(d.value) && total && divisor ? d.value / divisor : 0; + ratio = d.ratio; + } + else if (type === "radar") { + ratio = (parseFloat(String(Math.max(d.value, 0))) / state.current.dataMax) * config.radar_size_ratio; + } + else if (type === "bar") { + var yScale = $$.getYScaleById.bind($$)(d.id); + var max = yScale.domain().reduce(function (a, c) { return c - a; }); + // when all data are 0, return 0 + ratio = max === 0 ? 0 : Math.abs($$.getRangedData(d, null, type) / max); + } + else if (type === "treemap") { + ratio /= $$.getTotalDataSum(true); + } + } + return asPercent && ratio ? ratio * 100 : ratio; + }, + /** + * Sort data index to be aligned with x axis. + * @param {Array} tickValues Tick array values + * @private + */ + updateDataIndexByX: function (tickValues) { + var $$ = this; + var tickValueMap = tickValues.reduce(function (out, tick, index) { + out[Number(tick.x)] = index; + return out; + }, {}); + $$.data.targets.forEach(function (t) { + t.values.forEach(function (value, valueIndex) { + var index = tickValueMap[Number(value.x)]; + if (index === undefined) { + index = valueIndex; + } + value.index = index; + }); + }); + }, + /** + * Determine if bubble has dimension data + * @param {object|Array} d data value + * @returns {boolean} + * @private + */ + isBubbleZType: function (d) { + var $$ = this; + return $$.isBubbleType(d) && ((isObject(d.value) && ("z" in d.value || "y" in d.value)) || + (isArray(d.value) && d.value.length >= 2)); + }, + /** + * Determine if bar has ranged data + * @param {Array} d data value + * @returns {boolean} + * @private + */ + isBarRangeType: function (d) { + var $$ = this; + var value = d.value; + return $$.isBarType(d) && isArray(value) && value.length >= 2 && + value.every(function (v) { return isNumber(v); }); + }, + /** + * Get data object by id + * @param {string} id data id + * @returns {object} + * @private + */ + getDataById: function (id) { + var _a; + var d = this.cache.get(id) || this.api.data(id); + return (_a = d === null || d === void 0 ? void 0 : d[0]) !== null && _a !== void 0 ? _a : d; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Call done callback with resize after transition + * @param {Function} fn Callback function + * @param {boolean} resizeAfter Weather to resize chart after the load + * @private + */ +function callDone(fn, resizeAfter) { + if (resizeAfter === void 0) { resizeAfter = false; } + var $$ = this; + var api = $$.api; + resizeAfter && $$.api.flush(true); + fn === null || fn === void 0 ? void 0 : fn.call(api); +} +var dataLoad = { + load: function (rawTargets, args) { + var $$ = this; + var axis = $$.axis, data = $$.data, org = $$.org, scale = $$.scale; + var append = args.append; + var zoomState = { + domain: null, + currentDomain: null, + x: null + }; + var targets = rawTargets; + if (targets) { + // filter loading targets if needed + if (args.filter) { + targets = targets.filter(args.filter); + } + // set type if args.types || args.type specified + if (args.type || args.types) { + targets.forEach(function (t) { + var _a; + var type = ((_a = args.types) === null || _a === void 0 ? void 0 : _a[t.id]) || args.type; + $$.setTargetType(t.id, type); + }); + } + // Update/Add data + data.targets.forEach(function (d) { + for (var i = 0; i < targets.length; i++) { + if (d.id === targets[i].id) { + d.values = append ? d.values.concat(targets[i].values) : targets[i].values; + targets.splice(i, 1); + break; + } + } + }); + data.targets = data.targets.concat(targets); // add remained + } + // Set targets + $$.updateTargets(data.targets); + if (scale.zoom) { + zoomState.x = axis.isCategorized() ? + scale.x.orgScale() : + (org.xScale || scale.x).copy(); + zoomState.domain = $$.getXDomain(data.targets); // get updated xDomain + zoomState.x.domain(zoomState.domain); + zoomState.currentDomain = $$.zoom.getDomain(); // current zoomed domain + // reset zoom state when new data loaded is out of range + if (!$$.withinRange(zoomState.currentDomain, undefined, zoomState.domain)) { + scale.x.domain(zoomState.domain); + scale.zoom = null; + $$.$el.eventRect.property("__zoom", null); + } + } + // Redraw with new targets + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true, + withLegend: true + }); + // when load happens on zoom state + if (scale.zoom) { + // const x = (axis.isCategorized() ? scale.x.orgScale() : (org.xScale || scale.x)).copy(); + org.xDomain = zoomState.domain; + org.xScale = zoomState.x; + if (axis.isCategorized()) { + zoomState.currentDomain = $$.getZoomDomainValue(zoomState.currentDomain); + org.xDomain = $$.getZoomDomainValue(org.xDomain); + org.xScale = zoomState.x.domain(org.xDomain); + } + $$.updateCurrentZoomTransform(zoomState.x, zoomState.currentDomain); + } + // Update current state chart type and elements list after redraw + $$.updateTypesElements(); + callDone.call($$, args.done, args.resizeAfter); + }, + loadFromArgs: function (args) { + var $$ = this; + // prevent load when chart is already destroyed + if (!$$.config) { + return; + } + // reset internally cached data + $$.cache.reset(); + $$.convertData(args, function (d) { + var data = args.data || d; + args.append && (data.__append__ = true); + data && $$.load($$.convertDataToTargets(data), args); + }); + }, + unload: function (rawTargetIds, customDoneCb) { + var _a; + var $$ = this; + var state = $$.state, $el = $$.$el, $T = $$.$T; + var hasLegendDefsPoint = !!((_a = $$.hasLegendDefsPoint) === null || _a === void 0 ? void 0 : _a.call($$)); + var done = customDoneCb; + var targetIds = rawTargetIds; + // reset internally cached data + $$.cache.reset(); + if (!done) { + done = function () { }; + } + // filter existing target + targetIds = targetIds.filter(function (id) { return $$.hasTarget($$.data.targets, id); }); + // If no target, call done and return + if (!targetIds || targetIds.length === 0) { + done(); + return; + } + var targets = $el.svg.selectAll(targetIds.map(function (id) { return $$.selectorTarget(id); })); + $T(targets) + .style("opacity", "0") + .remove() + .call(endall, done); + targetIds.forEach(function (id) { + var _a; + var suffixId = $$.getTargetSelectorSuffix(id); + // Reset fadein for future load + state.withoutFadeIn[id] = false; + // Remove target's elements + if ($el.legend) { + $el.legend.selectAll(".".concat($LEGEND.legendItem).concat(suffixId)).remove(); + } + // Remove target + $$.data.targets = $$.data.targets.filter(function (t) { return t.id !== id; }); + // Remove custom point def element + hasLegendDefsPoint && ((_a = $el.defs) === null || _a === void 0 ? void 0 : _a.select("#".concat($$.getDefsPointId(suffixId))).remove()); + }); + // since treemap uses different data types, it needs to be transformed + state.hasFunnel && $$.updateFunnel($$.data.targets); + // since treemap uses different data types, it needs to be transformed + state.hasTreemap && $$.updateTargetsForTreemap($$.data.targets); + // Update current state chart type and elements list after redraw + $$.updateTypesElements(); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var interaction = { + /** + * Expand data shape/point + * @param {number} index Index number + * @param {string} id Data id + * @param {boolean} reset Reset expand state + * @private + */ + setExpand: function (index, id, reset) { + var $$ = this; + var config = $$.config, circle = $$.$el.circle; + circle && config.point_focus_expand_enabled && + $$.expandCircles(index, id, reset); + // bar, candlestick + $$.expandBarTypeShapes(true, index, id, reset); + }, + /** + * Expand/Unexpand bar type shapes + * @param {boolean} expand Expand or unexpand + * @param {number} i Shape index + * @param {string} id Data id + * @param {boolean} reset Reset expand style + * @private + */ + expandBarTypeShapes: function (expand, i, id, reset) { + if (expand === void 0) { expand = true; } + var $$ = this; + ["bar", "candlestick"] + .filter(function (v) { return $$.$el[v]; }) + .forEach(function (v) { + reset && $$.$el[v].classed($COMMON.EXPANDED, false); + $$.getShapeByIndex(v, i, id).classed($COMMON.EXPANDED, expand); + }); + }, + /** + * Handle data.onover/out callback options + * @param {boolean} isOver Over or not + * @param {number|object} d data object + * @private + */ + setOverOut: function (isOver, d) { + var $$ = this; + var config = $$.config, _a = $$.state, hasFunnel = _a.hasFunnel, hasRadar = _a.hasRadar, hasTreemap = _a.hasTreemap, main = $$.$el.main; + var isArcishData = isObject(d); + // Call event handler + if (isArcishData || d !== -1) { + var callback_1 = config[isOver ? "data_onover" : "data_onout"].bind($$.api); + config.color_onover && $$.setOverColor(isOver, d, isArcishData); + if (isArcishData && "id") { + var suffix = $$.getTargetSelectorSuffix(d.id); + var selector = hasFunnel || hasTreemap ? + "".concat($COMMON.target + suffix, " .").concat($SHAPE.shape) : + $ARC.arc + suffix; + callback_1(d, main.select(".".concat(selector)).node()); + } + else if (!config.tooltip_grouped) { + var last_1 = $$.cache.get(KEY.setOverOut) || []; + // select based on the index + var shapesAtIndex = main.selectAll(".".concat($SHAPE.shape, "-").concat(d)) + .filter(function (d) { + return $$.isWithinShape(this, d); + }); + // filter if has new selection + var shape = shapesAtIndex.filter(function () { + var _this = this; + return last_1.every(function (v) { return v !== _this; }); + }); + // call onout callback + if (!isOver || shapesAtIndex.empty() || (last_1.length === shape.size() && shape.nodes().every(function (v, i) { return v !== last_1[i]; }))) { + while (last_1.length) { + var target = last_1.pop(); + config.data_onout.bind($$.api)(select(target).datum(), target); + } + } + // call onover callback + shape.each(function () { + if (isOver) { + callback_1(select(this).datum(), this); + last_1.push(this); + } + }); + $$.cache.add(KEY.setOverOut, last_1); + } + else { + if (isOver) { + hasRadar && $$.isPointFocusOnly() ? + $$.showCircleFocus($$.getAllValuesOnIndex(d, true)) : + $$.setExpand(d, null, true); + } + !$$.isMultipleX() && main.selectAll(".".concat($SHAPE.shape, "-").concat(d)) + .each(function (d) { + callback_1(d, this); + }); + } + } + }, + /** + * Call data.onover/out callback for touch event + * @param {number|object} d target index or data object for Arc type + * @private + */ + callOverOutForTouch: function (d) { + var $$ = this; + var last = $$.cache.get(KEY.callOverOutForTouch); + if (isObject(d) && last ? d.id !== last.id : (d !== last)) { + (last || isNumber(last)) && $$.setOverOut(false, last); + (d || isNumber(d)) && $$.setOverOut(true, d); + $$.cache.add(KEY.callOverOutForTouch, d); + } + }, + /** + * Return draggable selection function + * @returns {Function} + * @private + */ + getDraggableSelection: function () { + var $$ = this; + var config = $$.config, state = $$.state; + return config.interaction_enabled && config.data_selection_draggable && $$.drag ? + drag$1() + .on("drag", function (event) { + state.event = event; + $$.drag(getPointer(event, this)); + }) + .on("start", function (event) { + state.event = event; + $$.dragstart(getPointer(event, this)); + }) + .on("end", function (event) { + state.event = event; + $$.dragend(); + }) : + function () { }; + }, + /** + * Dispatch a mouse event. + * @private + * @param {string} type event type + * @param {number} index Index of eventRect + * @param {Array} mouse x and y coordinate value + */ + dispatchEvent: function (type, index, mouse) { + var _a, _b; + var $$ = this; + var config = $$.config, _c = $$.state, eventReceiver = _c.eventReceiver, hasAxis = _c.hasAxis, hasFunnel = _c.hasFunnel, hasRadar = _c.hasRadar, hasTreemap = _c.hasTreemap, _d = $$.$el, eventRect = _d.eventRect, funnel = _d.funnel, radar = _d.radar, treemap = _d.treemap; + var element = (_b = (((hasFunnel || hasTreemap) && eventReceiver.rect) || + (hasRadar && radar.axes.select(".".concat($AXIS.axis, "-").concat(index, " text"))) || (eventRect || ((_a = $$.getArcElementByIdOrIndex) === null || _a === void 0 ? void 0 : _a.call($$, index))))) === null || _b === void 0 ? void 0 : _b.node(); + if (element) { + var isMultipleX = $$.isMultipleX(); + var isRotated = config.axis_rotated; + var _e = element.getBoundingClientRect(), width = _e.width, left = _e.left, top_1 = _e.top; + if (hasAxis && !hasRadar && !isMultipleX) { + var coords = eventReceiver.coords[index]; + if (coords) { + width = coords.w; + left += coords.x; + top_1 += coords.y; + } + else { + width = 0; + left = 0; + top_1 = 0; + } + } + var x = left + (mouse ? mouse[0] : 0) + (isMultipleX || isRotated ? 0 : (width / 2)); + // value 4, is to adjust coordinate value set from: scale.ts - updateScales(): $$.getResettedPadding(1) + var y = top_1 + (mouse ? mouse[1] : 0) + (isRotated ? 4 : 0); + var params = { + screenX: x, + screenY: y, + clientX: x, + clientY: y, + bubbles: hasRadar // radar type needs to bubble up event + }; + // for funnel and treemap event bound to <g> node + if (hasFunnel || hasTreemap) { + element = (funnel !== null && funnel !== void 0 ? funnel : treemap).node(); + } + emulateEvent[/^(mouse|click)/.test(type) ? "mouse" : "touch"](element, type, params); + } + }, + setDragStatus: function (isDragging) { + this.state.dragging = isDragging; + }, + /** + * Unbind zoom events + * @private + */ + unbindZoomEvent: function () { + var $$ = this; + var _a = $$.$el, eventRect = _a.eventRect, zoomResetBtn = _a.zoomResetBtn; + eventRect === null || eventRect === void 0 ? void 0 : eventRect.on(".zoom wheel.zoom .drag", null); + zoomResetBtn === null || zoomResetBtn === void 0 ? void 0 : zoomResetBtn.on("click", null).style("display", "none"); + }, + /** + * Unbind all attached events + * @private + */ + unbindAllEvents: function () { + var _a; + var $$ = this; + var _b = $$.$el, arcs = _b.arcs, eventRect = _b.eventRect, legend = _b.legend, region = _b.region, svg = _b.svg, treemap = _b.treemap, brush = $$.brush; + var list = [ + "wheel", + "click", + "mouseover", + "mousemove", + "mouseout", + "touchstart", + "touchmove", + "touchend", + "touchstart.eventRect", + "touchmove.eventRect", + "touchend.eventRect", + ".brush", + ".drag", + ".zoom", + "wheel.zoom", + "dblclick.zoom" + ].join(" "); + // detach all possible event types + [ + svg, + eventRect, + region === null || region === void 0 ? void 0 : region.list, + brush === null || brush === void 0 ? void 0 : brush.getSelection(), + arcs === null || arcs === void 0 ? void 0 : arcs.selectAll("path"), + legend === null || legend === void 0 ? void 0 : legend.selectAll("g"), + treemap + ] + .forEach(function (v) { return v === null || v === void 0 ? void 0 : v.on(list, null); }); + (_a = $$.unbindZoomEvent) === null || _a === void 0 ? void 0 : _a.call($$); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var category = { + /** + * Category Name + * @param {number} i Index number + * @returns {string} category Name + * @private + */ + categoryName: function (i) { + var _a; + var axis_x_categories = this.config.axis_x_categories; + return (_a = axis_x_categories === null || axis_x_categories === void 0 ? void 0 : axis_x_categories[i]) !== null && _a !== void 0 ? _a : i; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var classModule = { + generateClass: function (prefix, targetId) { + return " ".concat(prefix, " ").concat(prefix + this.getTargetSelectorSuffix(targetId)); + }, + /** + * Get class string + * @param {string} type Shape type + * @param {boolean} withShape Get with shape prefix + * @returns {string} Class string + * @private + */ + getClass: function (type, withShape) { + var _this = this; + var isPlural = /s$/.test(type); + var useIdKey = /^(area|arc|line|funnel|treemap)s?$/.test(type); + var key = isPlural ? "id" : "index"; + return function (d) { + var data = d.data || d; + var result = (withShape ? _this.generateClass(CLASS[isPlural ? "shapes" : "shape"], data[key]) : "") + _this.generateClass(CLASS[type], data[useIdKey ? "id" : key]); + return result.trim(); + }; + }, + /** + * Get chart class string + * @param {string} type Shape type + * @returns {string} Class string + * @private + */ + getChartClass: function (type) { + var _this = this; + return function (d) { return CLASS["chart".concat(type)] + _this.classTarget((d.data ? d.data : d).id); }; + }, + generateExtraLineClass: function () { + var $$ = this; + var classes = $$.config.line_classes || []; + var ids = []; + return function (d) { + var _a; + var id = d.id || ((_a = d.data) === null || _a === void 0 ? void 0 : _a.id) || d; + if (ids.indexOf(id) < 0) { + ids.push(id); + } + return classes[ids.indexOf(id) % classes.length]; + }; + }, + classRegion: function (d, i) { + return "".concat(this.generateClass(CLASS.region, i), " ").concat("class" in d ? d.class : ""); + }, + classTarget: function (id) { + var additionalClassSuffix = this.config.data_classes[id]; + var additionalClass = ""; + if (additionalClassSuffix) { + additionalClass = " ".concat(CLASS.target, "-").concat(additionalClassSuffix); + } + return this.generateClass(CLASS.target, id) + additionalClass; + }, + classFocus: function (d) { + return this.classFocused(d) + this.classDefocused(d); + }, + classFocused: function (d) { + return " ".concat(this.state.focusedTargetIds.indexOf(d.id) >= 0 ? CLASS.focused : ""); + }, + classDefocused: function (d) { + return " ".concat(this.state.defocusedTargetIds.indexOf(d.id) >= 0 ? CLASS.defocused : ""); + }, + getTargetSelectorSuffix: function (targetId) { + var targetStr = targetId || targetId === 0 ? "-".concat(targetId) : ""; + // replace control ascii(0 ~ 32) and extended ascii(127 ~ 160) + return targetStr + .replace(/[\x00-\x20\x7F-\xA0\s?!@#$%^&*()_=+,.<>'":;\[\]\/|~`{}\\]/g, "-"); // eslint-disable-line no-control-regex + }, + selectorTarget: function (id, prefix, postfix) { + if (prefix === void 0) { prefix = ""; } + if (postfix === void 0) { postfix = ""; } + var target = this.getTargetSelectorSuffix(id); + // select target & circle + return "".concat(prefix, ".").concat(CLASS.target + target, " ").concat(postfix, ", ").concat(prefix, ".").concat(CLASS.circles + target, " ").concat(postfix); + }, + selectorTargets: function (idsValue, prefix) { + var _this = this; + var ids = idsValue || []; + return ids.length ? ids.map(function (id) { return _this.selectorTarget(id, prefix); }) : null; + }, + selectorLegend: function (id) { + return ".".concat(CLASS.legendItem + this.getTargetSelectorSuffix(id)); + }, + selectorLegends: function (ids) { + var _this = this; + return (ids === null || ids === void 0 ? void 0 : ids.length) ? ids.map(function (id) { return _this.selectorLegend(id); }) : null; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Set pattern's background color + * (it adds a <rect> element to simulate bg-color) + * @param {SVGPatternElement} pattern SVG pattern element + * @param {string} color Color string + * @param {string} id ID to be set + * @returns {{id: string, node: SVGPatternElement}} + * @private + */ +var colorizePattern = function (pattern, color, id) { + var node = select(pattern.cloneNode(true)); + node + .attr("id", id) + .insert("rect", ":first-child") + .attr("width", node.attr("width")) + .attr("height", node.attr("height")) + .style("fill", color); + return { + id: id, + node: node.node() + }; +}; +/** + * Get color pattern from CSS file + * CSS should be defined as: background-image: url("#00c73c;#fa7171; ..."); + * @param {d3Selection} element Chart element + * @returns {Array} + * @private + */ +function getColorFromCss(element) { + var cacheKey = KEY.colorPattern; + var body = doc.body; + var pattern = body[cacheKey]; + if (!pattern) { + var delimiter = ";"; + var content = element + .classed($COLOR.colorPattern, true) + .style("background-image"); + element.classed($COLOR.colorPattern, false); + if (content.indexOf(delimiter) > -1) { + pattern = content + .replace(/url[^#]*|["'()]|(\s|%20)/g, "") + .split(delimiter) + .map(function (v) { return v.trim().replace(/[\"'\s]/g, ""); }) + .filter(Boolean); + body[cacheKey] = pattern; + } + } + return pattern; +} +// Replacement of d3.schemeCategory10. +// Contained differently depend on d3 version: v4(d3-scale), v5(d3-scale-chromatic) +var schemeCategory10 = [ + "#1f77b4", + "#ff7f0e", + "#2ca02c", + "#d62728", + "#9467bd", + "#8c564b", + "#e377c2", + "#7f7f7f", + "#bcbd22", + "#17becf" +]; +var color = { + generateColor: function () { + var $$ = this; + var $el = $$.$el, config = $$.config; + var colors = config.data_colors; + var callback = config.data_color; + var ids = []; + var pattern = notEmpty(config.color_pattern) ? + config.color_pattern : + scaleOrdinal(getColorFromCss($el.chart) || schemeCategory10).range(); + var originalColorPattern = pattern; + if (isFunction(config.color_tiles)) { + var tiles_1 = config.color_tiles.bind($$.api)(); + // Add background color to patterns + var colorizedPatterns = pattern.map(function (p, index) { + var color = p.replace(/[#\(\)\s,]/g, ""); + var id = "".concat($$.state.datetimeId, "-pattern-").concat(color, "-").concat(index); + return colorizePattern(tiles_1[index % tiles_1.length], p, id); + }); + pattern = colorizedPatterns.map(function (p) { return "url(#".concat(p.id, ")"); }); + $$.patterns = colorizedPatterns; + } + return function (d) { + var _a; + var id = d.id || + ((_a = d.data) === null || _a === void 0 ? void 0 : _a.id) || + d; + var isLine = $$.isTypeOf(id, ["line", "spline", "step"]) || !config.data_types[id]; + var color; + // if callback function is provided + if (isFunction(colors[id])) { + color = colors[id].bind($$.api)(d); + // if specified, choose that color + } + else if (colors[id]) { + color = colors[id]; + // if not specified, choose from pattern + } + else { + if (ids.indexOf(id) < 0) { + ids.push(id); + } + color = isLine ? + originalColorPattern[ids.indexOf(id) % originalColorPattern.length] : + pattern[ids.indexOf(id) % pattern.length]; + colors[id] = color; + } + return isFunction(callback) ? callback.bind($$.api)(color, d) : color; + }; + }, + generateLevelColor: function () { + var $$ = this; + var config = $$.config; + var colors = config.color_pattern; + var threshold = config.color_threshold; + var asValue = threshold.unit === "value"; + var max = threshold.max || 100; + var values = threshold.values && + threshold.values.length ? + threshold.values : + []; + return notEmpty(threshold) ? + function (value) { + var v = asValue ? value : (value * 100 / max); + var color = colors[colors.length - 1]; + for (var i = 0, l = values.length; i < l; i++) { + if (v <= values[i]) { + color = colors[i]; + break; + } + } + return color; + } : + null; + }, + /** + * Append data backgound color filter definition + * @param {string|object} color Color string + * @param {object} attr filter attribute + * @private + */ + generateTextBGColorFilter: function (color, attr) { + if (attr === void 0) { attr = { + x: 0, + y: 0, + width: 1, + height: 1 + }; } + var $$ = this; + var $el = $$.$el, state = $$.state; + if (color) { + var ids = []; + if (isString(color)) { + ids.push(""); + } + else if (isObject(color)) { + ids = Object.keys(color); + } + ids.forEach(function (v) { + var id = "".concat(state.datetimeId, "-labels-bg").concat($$.getTargetSelectorSuffix(v)).concat(isString(color) ? $$.getTargetSelectorSuffix(color) : ""); + $el.defs.append("filter") + .attr("x", attr.x) + .attr("y", attr.y) + .attr("width", attr.width) + .attr("height", attr.height) + .attr("id", id) + .html("<feFlood flood-color=\"".concat(v === "" ? color : color[v], "\" />\n\t\t\t\t\t\t<feComposite in=\"SourceGraphic\" />")); + }); + } + }, + /** + * Get data gradient color url + * @param {string} id Data id + * @returns {string} + * @private + */ + getGradienColortUrl: function (id) { + return "url(#".concat(this.state.datetimeId, "-gradient").concat(this.getTargetSelectorSuffix(id), ")"); + }, + /** + * Update linear/radial gradient definition + * - linear: area & bar only + * - radial: type which has data points only + * @private + */ + updateLinearGradient: function () { + var $$ = this; + var config = $$.config, targets = $$.data.targets, datetimeId = $$.state.datetimeId, defs = $$.$el.defs; + targets.forEach(function (d) { + var id = "".concat(datetimeId, "-gradient").concat($$.getTargetSelectorSuffix(d.id)); + var radialGradient = $$.hasPointType() && config.point_radialGradient; + var supportedType = ($$.isAreaType(d) && "area") || ($$.isBarType(d) && "bar"); + if ((radialGradient || supportedType) && defs.select("#".concat(id)).empty()) { + var color_1 = $$.color(d); + var gradient_1 = { + defs: null, + stops: [] + }; + if (radialGradient) { + var _a = radialGradient.cx, cx = _a === void 0 ? 0.3 : _a, _b = radialGradient.cy, cy = _b === void 0 ? 0.3 : _b, _c = radialGradient.r, r = _c === void 0 ? 0.7 : _c, _d = radialGradient.stops, stops = _d === void 0 ? [[0.1, color_1, 0], [0.9, color_1, 1]] : _d; + gradient_1.stops = stops; + gradient_1.defs = defs.append("radialGradient") + .attr("id", "".concat(id)) + .attr("cx", cx) + .attr("cy", cy) + .attr("r", r); + } + else { + var isRotated = config.axis_rotated; + var _e = config["".concat(supportedType, "_linearGradient")], _f = _e.x, x = _f === void 0 ? isRotated ? [1, 0] : [0, 0] : _f, _g = _e.y, y = _g === void 0 ? isRotated ? [0, 0] : [0, 1] : _g, _h = _e.stops, stops = _h === void 0 ? [[0, color_1, 1], [1, color_1, 0]] : _h; + gradient_1.stops = stops; + gradient_1.defs = defs.append("linearGradient") + .attr("id", "".concat(id)) + .attr("x1", x[0]) + .attr("x2", x[1]) + .attr("y1", y[0]) + .attr("y2", y[1]); + } + gradient_1.stops.forEach(function (v) { + var offset = v[0], stopColor = v[1], stopOpacity = v[2]; + var colorValue = isFunction(stopColor) ? + stopColor.bind($$.api)(d.id) : + stopColor; + gradient_1.defs && gradient_1.defs.append("stop") + .attr("offset", offset) + .attr("stop-color", colorValue || color_1) + .attr("stop-opacity", stopOpacity); + }); + } + }); + }, + /** + * Set the data over color. + * When is out, will restate in its previous color value + * @param {boolean} isOver true: set overed color, false: restore + * @param {number|object} d target index or data object for Arc type + * @private + */ + setOverColor: function (isOver, d) { + var $$ = this; + var config = $$.config, main = $$.$el.main; + var onover = config.color_onover; + var color = isOver ? onover : $$.color; + if (isObject(color)) { + color = function (_a) { + var id = _a.id; + return (id in onover ? onover[id] : $$.color(id)); + }; + } + else if (isString(color)) { + color = function () { return onover; }; + } + else if (isFunction(onover)) { + color = color.bind($$.api); + } + main.selectAll(isObject(d) ? + // when is Arc type + ".".concat($ARC.arc).concat($$.getTargetSelectorSuffix(d.id)) : + ".".concat($SHAPE.shape, "-").concat(d)).style("fill", color); + } +}; + +var domain = { + getYDomainMinMax: function (targets, type) { + var $$ = this; + var axis = $$.axis, config = $$.config; + var isMin = type === "min"; + var dataGroups = config.data_groups; + var ids = $$.mapToIds(targets); + var ys = $$.getValuesAsIdKeyed(targets); + if (dataGroups.length > 0) { + var hasValue_1 = $$["has".concat(isMin ? "Negative" : "Positive", "ValueInTargets")](targets); + dataGroups.forEach(function (groupIds) { + // Determine baseId + var idsInGroup = groupIds + .filter(function (v) { return ids.indexOf(v) >= 0; }); + if (idsInGroup.length) { + var baseId_1 = idsInGroup[0]; + var baseAxisId_1 = axis.getId(baseId_1); + // Initialize base value. Set to 0 if not match with the condition + if (hasValue_1 && ys[baseId_1]) { + ys[baseId_1] = ys[baseId_1] + .map(function (v) { return ((isMin ? v < 0 : v > 0) ? v : 0); }); + } + idsInGroup + .filter(function (v, i) { return i > 0; }) + .forEach(function (id) { + if (ys[id]) { + var axisId_1 = axis.getId(id); + ys[id].forEach(function (v, i) { + var val = +v; + var meetCondition = isMin ? val > 0 : val < 0; + if (axisId_1 === baseAxisId_1 && !(hasValue_1 && meetCondition)) { + ys[baseId_1][i] += val; + } + }); + } + }); + } + }); + } + return getMinMax$1(type, Object.keys(ys).map(function (key) { return getMinMax$1(type, ys[key]); })); + }, + /** + * Check if hidden targets bound to the given axis id + * @param {string} id ID to be checked + * @returns {boolean} + * @private + */ + isHiddenTargetWithYDomain: function (id) { + var $$ = this; + return $$.state.hiddenTargetIds + .some(function (v) { return $$.axis.getId(v) === id; }); + }, + getYDomain: function (targets, axisId, xDomain) { + var $$ = this; + var axis = $$.axis, config = $$.config, scale = $$.scale; + var pfx = "axis_".concat(axisId); + if ($$.isStackNormalized()) { + return [0, 100]; + } + var isLog = (scale === null || scale === void 0 ? void 0 : scale[axisId]) && scale[axisId].type === "log"; + var targetsByAxisId = targets.filter(function (t) { return axis.getId(t.id) === axisId; }); + var yTargets = xDomain ? $$.filterByXDomain(targetsByAxisId, xDomain) : targetsByAxisId; + if (yTargets.length === 0) { // use domain of the other axis if target of axisId is none + if ($$.isHiddenTargetWithYDomain(axisId)) { + return scale[axisId].domain(); + } + else { + return axisId === "y2" ? + scale.y.domain() : // When all data bounds to y2, y Axis domain is called prior y2. + // So, it needs to call to get y2 domain here + $$.getYDomain(targets, "y2", xDomain); + } + } + var yMin = config["".concat(pfx, "_min")]; + var yMax = config["".concat(pfx, "_max")]; + var center = config["".concat(pfx, "_center")]; + var isInverted = config["".concat(pfx, "_inverted")]; + var showHorizontalDataLabel = $$.hasDataLabel() && config.axis_rotated; + var showVerticalDataLabel = $$.hasDataLabel() && !config.axis_rotated; + var yDomainMin = $$.getYDomainMinMax(yTargets, "min"); + var yDomainMax = $$.getYDomainMinMax(yTargets, "max"); + var isZeroBased = __spreadArray([TYPE.BAR, TYPE.BUBBLE, TYPE.SCATTER], TYPE_BY_CATEGORY.Line, true).some(function (v) { + var type = v.indexOf("area") > -1 ? "area" : v; + return $$.hasType(v, yTargets, true) && config["".concat(type, "_zerobased")]; + }); + // MEMO: avoid inverting domain unexpectedly + yDomainMin = isValue(yMin) ? yMin : (isValue(yMax) ? + (yDomainMin <= yMax ? yDomainMin : yMax - 10) : + yDomainMin); + yDomainMax = isValue(yMax) ? yMax : (isValue(yMin) ? + (yMin <= yDomainMax ? yDomainMax : yMin + 10) : + yDomainMax); + if (isNaN(yDomainMin)) { // set minimum to zero when not number + yDomainMin = 0; + } + if (isNaN(yDomainMax)) { // set maximum to have same value as yDomainMin + yDomainMax = yDomainMin; + } + if (yDomainMin === yDomainMax) { + yDomainMin < 0 ? yDomainMax = 0 : yDomainMin = 0; + } + var isAllPositive = yDomainMin >= 0 && yDomainMax >= 0; + var isAllNegative = yDomainMin <= 0 && yDomainMax <= 0; + // Cancel zerobased if axis_*_min / axis_*_max specified + if ((isValue(yMin) && isAllPositive) || (isValue(yMax) && isAllNegative)) { + isZeroBased = false; + } + // Bar/Area chart should be 0-based if all positive|negative + if (isZeroBased) { + isAllPositive && (yDomainMin = 0); + isAllNegative && (yDomainMax = 0); + } + var domainLength = Math.abs(yDomainMax - yDomainMin); + var padding = { top: domainLength * 0.1, bottom: domainLength * 0.1 }; + if (isDefined(center)) { + var yDomainAbs = Math.max(Math.abs(yDomainMin), Math.abs(yDomainMax)); + yDomainMax = center + yDomainAbs; + yDomainMin = center - yDomainAbs; + } + // add padding for data label + if (showHorizontalDataLabel) { + var diff_1 = diffDomain(scale.y.range()); + var ratio_1 = $$.getDataLabelLength(yDomainMin, yDomainMax, "width") + .map(function (v) { return v / diff_1; }); + ["bottom", "top"].forEach(function (v, i) { + padding[v] += domainLength * (ratio_1[i] / (1 - ratio_1[0] - ratio_1[1])); + }); + } + else if (showVerticalDataLabel) { + var lengths_1 = $$.getDataLabelLength(yDomainMin, yDomainMax, "height"); + ["bottom", "top"].forEach(function (v, i) { + padding[v] += $$.convertPixelToScale("y", lengths_1[i], domainLength); + }); + } + padding = $$.getResettedPadding(padding); + // if padding is set, the domain will be updated relative the current domain value + // ex) $$.height=300, padding.top=150, domainLength=4 --> domain=6 + var p = config["".concat(pfx, "_padding")]; + if (notEmpty(p)) { + ["bottom", "top"].forEach(function (v) { + padding[v] = axis.getPadding(p, v, padding[v], domainLength); + }); + } + // Bar/Area chart should be 0-based if all positive|negative + if (isZeroBased) { + isAllPositive && (padding.bottom = yDomainMin); + isAllNegative && (padding.top = -yDomainMax); + } + var domain = isLog ? + [yDomainMin, yDomainMax].map(function (v) { return (v < 0 ? 0 : v); }) : + [yDomainMin - padding.bottom, yDomainMax + padding.top]; + return isInverted ? domain.reverse() : domain; + }, + getXDomainMinMax: function (targets, type) { + var _a; + var $$ = this; + var configValue = $$.config["axis_x_".concat(type)]; + var dataValue = getMinMax$1(type, targets.map(function (t) { return getMinMax$1(type, t.values.map(function (v) { return v.x; })); })); + var value = isObject(configValue) ? configValue.value : configValue; + value = isDefined(value) && ((_a = $$.axis) === null || _a === void 0 ? void 0 : _a.isTimeSeries()) ? parseDate.bind(this)(value) : value; + if (isObject(configValue) && configValue.fit && ((type === "min" && value < dataValue) || (type === "max" && value > dataValue))) { + value = undefined; + } + return isDefined(value) ? value : dataValue; + }, + /** + * Get x Axis padding + * @param {Array} domain x Axis domain + * @param {number} tickCount Tick count + * @returns {object} Padding object values with 'left' & 'right' key + * @private + */ + getXDomainPadding: function (domain, tickCount) { + var $$ = this; + var axis = $$.axis, config = $$.config; + var padding = config.axis_x_padding; + var isTimeSeriesTickCount = axis.isTimeSeries() && tickCount; + var diff = diffDomain(domain); + var defaultValue; + // determine default padding value + if (axis.isCategorized() || isTimeSeriesTickCount) { + defaultValue = 0; + } + else if ($$.hasType("bar")) { + var maxDataCount = $$.getMaxDataCount(); + defaultValue = maxDataCount > 1 ? (diff / (maxDataCount - 1)) / 2 : 0.5; + } + else { + defaultValue = $$.getResettedPadding(diff * 0.01); + } + var _a = isNumber(padding) ? + { left: padding, right: padding } : + padding, _b = _a.left, left = _b === void 0 ? defaultValue : _b, _c = _a.right, right = _c === void 0 ? defaultValue : _c; + // when the unit is pixel, convert pixels to axis scale value + if (padding.unit === "px") { + var domainLength = Math.abs(diff + (diff * 0.2)); + left = axis.getPadding(padding, "left", defaultValue, domainLength); + right = axis.getPadding(padding, "right", defaultValue, domainLength); + } + else { + var range = diff + left + right; + if (isTimeSeriesTickCount && range) { + var relativeTickWidth = (diff / tickCount) / range; + left = left / range / relativeTickWidth; + right = right / range / relativeTickWidth; + } + } + return { left: left, right: right }; + }, + /** + * Get x Axis domain + * @param {Array} targets targets + * @returns {Array} x Axis domain + * @private + */ + getXDomain: function (targets) { + var $$ = this; + var axis = $$.axis, config = $$.config, x = $$.scale.x; + var isInverted = config.axis_x_inverted; + var domain = [ + $$.getXDomainMinMax(targets, "min"), + $$.getXDomainMinMax(targets, "max") + ]; + var _a = domain[0], min = _a === void 0 ? 0 : _a, _b = domain[1], max = _b === void 0 ? 0 : _b; + if (x.type !== "log") { + var isCategorized = axis.isCategorized(); + var isTimeSeries = axis.isTimeSeries(); + var padding = $$.getXDomainPadding(domain); + var firstX = domain[0], lastX = domain[1]; + // show center of x domain if min and max are the same + if ((firstX - lastX) === 0 && !isCategorized) { + if (isTimeSeries) { + firstX = new Date(firstX.getTime() * 0.5); + lastX = new Date(lastX.getTime() * 1.5); + } + else { + firstX = firstX === 0 ? 1 : (firstX * 0.5); + lastX = lastX === 0 ? -1 : (lastX * 1.5); + } + } + if (firstX || firstX === 0) { + min = isTimeSeries ? + new Date(firstX.getTime() - padding.left) : + firstX - padding.left; + } + if (lastX || lastX === 0) { + max = isTimeSeries ? + new Date(lastX.getTime() + padding.right) : + lastX + padding.right; + } + } + return isInverted ? [max, min] : [min, max]; + }, + updateXDomain: function (targets, withUpdateXDomain, withUpdateOrgXDomain, withTrim, domain) { + var _a; + var $$ = this; + var config = $$.config, org = $$.org, _b = $$.scale, x = _b.x, subX = _b.subX; + var zoomEnabled = config.zoom_enabled; + if (withUpdateOrgXDomain) { + x.domain(domain || sortValue($$.getXDomain(targets), !config.axis_x_inverted)); + org.xDomain = x.domain(); + // zoomEnabled && $$.zoom.updateScaleExtent(); + subX.domain(x.domain()); + (_a = $$.brush) === null || _a === void 0 ? void 0 : _a.scale(subX); + } + if (withUpdateXDomain) { + var domainValue = domain || (!$$.brush || brushEmpty($$)) ? + org.xDomain : + getBrushSelection($$).map(subX.invert); + x.domain(domainValue); + // zoomEnabled && $$.zoom.updateScaleExtent(); + } + if (withUpdateOrgXDomain || withUpdateXDomain) { + zoomEnabled && $$.zoom.updateScaleExtent(); + } + // Trim domain when too big by zoom mousemove event + withTrim && x.domain($$.trimXDomain(x.orgDomain())); + return x.domain(); + }, + /** + * Trim x domain when given domain surpasses the range + * @param {Array} domain Domain value + * @returns {Array} Trimed domain if given domain is out of range + * @private + */ + trimXDomain: function (domain) { + var $$ = this; + var isInverted = $$.config.axis_x_inverted; + var zoomDomain = $$.getZoomDomain(); + var min = zoomDomain[0], max = zoomDomain[1]; + if (isInverted ? domain[0] >= min : domain[0] <= min) { + domain[1] = +domain[1] + (min - domain[0]); + domain[0] = min; + } + if (isInverted ? domain[1] <= max : domain[1] >= max) { + domain[0] = +domain[0] - (domain[1] - max); + domain[1] = max; + } + return domain; + }, + /** + * Get subchart/zoom domain + * @param {string} type "subX" or "zoom" + * @param {boolean} getCurrent Get current domain if true + * @returns {Array} zoom domain + * @private + */ + getZoomDomain: function (type, getCurrent) { + if (type === void 0) { type = "zoom"; } + if (getCurrent === void 0) { getCurrent = false; } + var $$ = this; + var config = $$.config, scale = $$.scale, org = $$.org; + var _a = getCurrent && scale[type] ? scale[type].domain() : org.xDomain, min = _a[0], max = _a[1]; + if (type === "zoom") { + if (isDefined(config.zoom_x_min)) { + min = getMinMax$1("min", [min, config.zoom_x_min]); + } + if (isDefined(config.zoom_x_max)) { + max = getMinMax$1("max", [max, config.zoom_x_max]); + } + } + return [min, max]; + }, + /** + * Return zoom domain from given domain + * - 'category' type need to add offset to original value + * @param {Array} domainValue domain value + * @returns {Array} Zoom domain + * @private + */ + getZoomDomainValue: function (domainValue) { + var $$ = this; + var config = $$.config, axis = $$.axis; + if (axis.isCategorized() && Array.isArray(domainValue)) { + var isInverted_1 = config.axis_x_inverted; + // need to add offset to original value for 'category' type + var domain = domainValue.map(function (v, i) { + return Number(v) + (i === 0 ? +isInverted_1 : +!isInverted_1); + }); + return domain; + } + return domainValue; + }, + /** + * Converts pixels to axis' scale values + * @param {string} type Axis type + * @param {number} pixels Pixels + * @param {number} domainLength Domain length + * @returns {number} + * @private + */ + convertPixelToScale: function (type, pixels, domainLength) { + var $$ = this; + var config = $$.config, state = $$.state; + var isRotated = config.axis_rotated; + var length; + if (type === "x") { + length = isRotated ? "height" : "width"; + } + else { + length = isRotated ? "width" : "height"; + } + return domainLength * (pixels / state[length]); + }, + /** + * Check if the given domain is within subchart/zoom range + * @param {Array} domain Target domain value + * @param {Array} current Current subchart/zoom domain value + * @param {Array} range subchart/zoom range value + * @returns {boolean} + * @private + */ + withinRange: function (domain, current, range) { + if (current === void 0) { current = [0, 0]; } + var $$ = this; + var isInverted = $$.config.axis_x_inverted; + var _a = range, min = _a[0], max = _a[1]; + if (Array.isArray(domain)) { + var target = __spreadArray([], domain, true); + isInverted && target.reverse(); + if (target[0] < target[1]) { + return domain.every(function (v, i) { + return (i === 0 ? + (isInverted ? +v <= min : +v >= min) : + (isInverted ? +v >= max : +v <= max)) && !(domain.every(function (v, i) { return v === current[i]; })); + }); + } + } + return false; + } +}; + +/** + * Get formatted + * @param {object} $$ Context + * @param {string} typeValue Axis type + * @param {number} v Value to be formatted + * @returns {number | string} + * @private + */ +function getFormat($$, typeValue, v) { + var config = $$.config; + var type = "axis_".concat(typeValue, "_tick_format"); + var format = config[type] ? config[type] : $$.defaultValueFormat; + return format.call($$.api, v); +} +var format = { + yFormat: function (v) { + return getFormat(this, "y", v); + }, + y2Format: function (v) { + return getFormat(this, "y2", v); + }, + /** + * Get default value format function + * @returns {Function} formatter function + * @private + */ + getDefaultValueFormat: function () { + var $$ = this; + var defaultArcValueFormat = $$.defaultArcValueFormat, yFormat = $$.yFormat, y2Format = $$.y2Format; + var hasArc = $$.hasArcType(null, ["gauge", "polar", "radar"]); + return function (v, ratio, id) { + var format = hasArc ? defaultArcValueFormat : ($$.axis && $$.axis.getId(id) === "y2" ? y2Format : yFormat); + return format.call($$, v, ratio); + }; + }, + defaultValueFormat: function (v) { + return isArray(v) ? v.join("~") : (isValue(v) ? +v : ""); + }, + defaultArcValueFormat: function (v, ratio) { + return "".concat((ratio * 100).toFixed(1), "%"); + }, + defaultPolarValueFormat: function (v) { + return "".concat(v); + }, + dataLabelFormat: function (targetId) { + var $$ = this; + var dataLabels = $$.config.data_labels; + var defaultFormat = function (v) { + var delimiter = "~"; + var res = v; + if (isArray(v)) { + res = v.join(delimiter); + } + else if (isObject(v)) { + res = Object.values(v).join(delimiter); + } + return res; + }; + var format = defaultFormat; + // find format according to axis id + if (isFunction(dataLabels.format)) { + format = dataLabels.format; + } + else if (isObjectType(dataLabels.format)) { + if (dataLabels.format[targetId]) { + format = dataLabels.format[targetId] === true ? + defaultFormat : + dataLabels.format[targetId]; + } + else { + format = function () { return ""; }; + } + } + return format.bind($$.api); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Get color string for given data id + * @param {string} id Data id + * @returns {string} Color string + * @private + */ +function getLegendColor(id) { + var $$ = this; + var data = $$.getDataById(id); + var color = $$.levelColor ? $$.levelColor(data.values[0].value) : $$.color(data); + return color; +} +/** + * Get formatted text value + * @param {string} id Legend text id + * @param {boolean} formatted Whether or not to format the text + * @returns {string} Formatted legend text + */ +function getFormattedText(id, formatted) { + var _a; + if (formatted === void 0) { formatted = true; } + var config = this.config; + var text = (_a = config.data_names[id]) !== null && _a !== void 0 ? _a : id; + if (formatted && isFunction(config.legend_format)) { + text = config.legend_format(text); + } + return text; +} +var legend$1 = { + /** + * Initialize the legend. + * @private + */ + initLegend: function () { + var $$ = this; + var config = $$.config, $el = $$.$el; + $$.legendItemTextBox = {}; + $$.state.legendHasRendered = false; + if (config.legend_show) { + if (!config.legend_contents_bindto) { + $el.legend = $$.$el.svg.append("g") + .classed($LEGEND.legend, true) + .attr("transform", $$.getTranslate("legend")); + } + // MEMO: call here to update legend box and translate for all + // MEMO: translate will be updated by this, so transform not needed in updateLegend() + $$.updateLegend(); + } + else { + $$.state.hiddenLegendIds = $$.mapToIds($$.data.targets); + } + }, + /** + * Update legend element + * @param {Array} targetIds ID's of target + * @param {object} options withTransform : Whether to use the transform property / withTransitionForTransform: Whether transition is used when using the transform property / withTransition : whether or not to transition. + * @param {object} transitions Return value of the generateTransitions + * @private + */ + updateLegend: function (targetIds, options, transitions) { + var _a; + var $$ = this; + var config = $$.config, state = $$.state, scale = $$.scale, $el = $$.$el; + var optionz = options || { + withTransform: false, + withTransitionForTransform: false, + withTransition: false + }; + optionz.withTransition = getOption(optionz, "withTransition", true); + optionz.withTransitionForTransform = getOption(optionz, "withTransitionForTransform", true); + if (config.legend_contents_bindto && config.legend_contents_template) { + $$.updateLegendTemplate(); + } + else if (!state.hasTreemap) { + $$.updateLegendElement(targetIds || $$.mapToIds($$.data.targets), optionz, transitions); + } + // toggle legend state + (_a = $el.legend) === null || _a === void 0 ? void 0 : _a.selectAll(".".concat($LEGEND.legendItem)).classed($LEGEND.legendItemHidden, function (id) { + var hide = !$$.isTargetToShow(id); + if (hide) { + this.style.opacity = null; + } + return hide; + }); + // Update size and scale + $$.updateScales(false, !scale.zoom); + $$.updateSvgSize(); + // Update g positions + $$.transformAll(optionz.withTransitionForTransform, transitions); + state.legendHasRendered = true; + }, + /** + * Update legend using template option + * @private + */ + updateLegendTemplate: function () { + var $$ = this; + var config = $$.config, $el = $$.$el; + var wrapper = select(config.legend_contents_bindto); + var template = config.legend_contents_template; + if (!wrapper.empty()) { + var targets = $$.mapToIds($$.data.targets); + var ids_1 = []; + var html_1 = ""; + targets.forEach(function (v) { + var content = isFunction(template) ? + template.bind($$.api)(v, $$.color(v), $$.api.data(v)[0].values) : + tplProcess(template, { + COLOR: $$.color(v), + TITLE: v + }); + if (content) { + ids_1.push(v); + html_1 += content; + } + }); + var legendItem = wrapper.html(html_1) + .selectAll(function () { + return this.childNodes; + }) + .data(ids_1); + $$.setLegendItem(legendItem); + $el.legend = wrapper; + } + }, + /** + * Update the size of the legend. + * @param {Obejct} size Size object + * @private + */ + updateSizeForLegend: function (size) { + var $$ = this; + var config = $$.config, _a = $$.state, isLegendTop = _a.isLegendTop, isLegendLeft = _a.isLegendLeft, isLegendRight = _a.isLegendRight, isLegendInset = _a.isLegendInset, current = _a.current; + var width = size.width, height = size.height; + var insetLegendPosition = { + top: isLegendTop ? + $$.getCurrentPaddingByDirection("top") + config.legend_inset_y + 5.5 : + current.height - height - $$.getCurrentPaddingByDirection("bottom") - + config.legend_inset_y, + left: isLegendLeft ? + $$.getCurrentPaddingByDirection("left") + config.legend_inset_x + 0.5 : + current.width - width - $$.getCurrentPaddingByDirection("right") - + config.legend_inset_x + 0.5 + }; + $$.state.margin3 = { + top: isLegendRight ? + 0 : + isLegendInset ? + insetLegendPosition.top : + current.height - height, + right: NaN, + bottom: 0, + left: isLegendRight ? + current.width - width : + isLegendInset ? + insetLegendPosition.left : + 0 + }; + }, + /** + * Transform Legend + * @param {boolean} withTransition whether or not to transition. + * @private + */ + transformLegend: function (withTransition) { + var $$ = this; + var legend = $$.$el.legend, $T = $$.$T; + $T(legend, withTransition) + .attr("transform", $$.getTranslate("legend")); + }, + /** + * Update the legend step + * @param {number} step Step value + * @private + */ + updateLegendStep: function (step) { + this.state.legendStep = step; + }, + /** + * Update legend item width + * @param {number} width Width value + * @private + */ + updateLegendItemWidth: function (width) { + this.state.legendItemWidth = width; + }, + /** + * Update legend item height + * @param {number} height Height value + * @private + */ + updateLegendItemHeight: function (height) { + this.state.legendItemHeight = height; + }, + /** + * Update legend item color + * @param {string} id Corresponding data ID value + * @param {string} color Color value + * @private + */ + updateLegendItemColor: function (id, color) { + var legend = this.$el.legend; + if (legend) { + legend.select(".".concat($LEGEND.legendItem, "-").concat(id, " line")) + .style("stroke", color); + } + }, + /** + * Get the width of the legend + * @returns {number} width + * @private + */ + getLegendWidth: function () { + var $$ = this; + var _a = $$.state, width = _a.current.width, isLegendRight = _a.isLegendRight, isLegendInset = _a.isLegendInset, legendItemWidth = _a.legendItemWidth, legendStep = _a.legendStep; + return $$.config.legend_show ? + (isLegendRight || isLegendInset ? legendItemWidth * (legendStep + 1) : width) : + 0; + }, + /** + * Get the height of the legend + * @returns {number} height + * @private + */ + getLegendHeight: function () { + var _a; + var $$ = this; + var _b = $$.state, current = _b.current, isLegendRight = _b.isLegendRight, legendItemHeight = _b.legendItemHeight, legendStep = _b.legendStep; + var isFitPadding = ((_a = $$.config.padding) === null || _a === void 0 ? void 0 : _a.mode) === "fit"; + return $$.config.legend_show ? + (isLegendRight ? current.height : (isFitPadding ? 10 : Math.max(20, legendItemHeight)) * (legendStep + 1)) : + 0; + }, + /** + * Get the opacity of the legend that is unfocused + * @param {d3.selection} legendItem Legend item node + * @returns {string|null} opacity + * @private + */ + opacityForUnfocusedLegend: function (legendItem) { + return legendItem.classed($LEGEND.legendItemHidden) ? null : "0.3"; + }, + /** + * Toggles the focus of the legend + * @param {Array} targetIds ID's of target + * @param {boolean} focus whether or not to focus. + * @private + */ + toggleFocusLegend: function (targetIds, focus) { + var $$ = this; + var legend = $$.$el.legend, $T = $$.$T; + var targetIdz = $$.mapToTargetIds(targetIds); + legend && $T(legend.selectAll(".".concat($LEGEND.legendItem)) + .filter(function (id) { return targetIdz.indexOf(id) >= 0; }) + .classed($FOCUS.legendItemFocused, focus)) + .style("opacity", function () { + return focus ? null : $$.opacityForUnfocusedLegend.call($$, select(this)); + }); + }, + /** + * Revert the legend to its default state + * @private + */ + revertLegend: function () { + var $$ = this; + var legend = $$.$el.legend, $T = $$.$T; + legend && $T(legend.selectAll(".".concat($LEGEND.legendItem)) + .classed($FOCUS.legendItemFocused, false)) + .style("opacity", null); + }, + /** + * Shows the legend + * @param {Array} targetIds ID's of target + * @private + */ + showLegend: function (targetIds) { + var $$ = this; + var config = $$.config, $el = $$.$el, $T = $$.$T; + if (!config.legend_show) { + config.legend_show = true; + $el.legend ? $el.legend.style("visibility", null) : $$.initLegend(); + !$$.state.legendHasRendered && $$.updateLegend(); + } + $$.removeHiddenLegendIds(targetIds); + $T($el.legend.selectAll($$.selectorLegends(targetIds)) + .style("visibility", null)).style("opacity", null); + }, + /** + * Hide the legend + * @param {Array} targetIds ID's of target + * @private + */ + hideLegend: function (targetIds) { + var $$ = this; + var config = $$.config, legend = $$.$el.legend; + if (config.legend_show && isEmpty(targetIds)) { + config.legend_show = false; + legend.style("visibility", "hidden"); + } + $$.addHiddenLegendIds(targetIds); + legend.selectAll($$.selectorLegends(targetIds)) + .style("opacity", "0") + .style("visibility", "hidden"); + }, + /** + * Get legend item textbox dimension + * @param {string} id Data ID + * @param {HTMLElement|d3.selection} textElement Text node element + * @returns {object} Bounding rect + * @private + */ + getLegendItemTextBox: function (id, textElement) { + var $$ = this; + var cache = $$.cache, state = $$.state; + var data; + // do not prefix w/'$', to not be resetted cache in .load() call + var cacheKey = KEY.legendItemTextBox; + if (id) { + data = (!state.redrawing && cache.get(cacheKey)) || {}; + if (!data[id]) { + data[id] = $$.getTextRect(textElement, $LEGEND.legendItem); + cache.add(cacheKey, data); + } + data = data[id]; + } + return data; + }, + /** + * Set legend item style & bind events + * @param {d3.selection} item Item node + * @private + */ + setLegendItem: function (item) { + var $$ = this; + var $el = $$.$el, api = $$.api, config = $$.config, state = $$.state; + var isTouch = state.inputType === "touch"; + var hasGauge = $$.hasType("gauge"); + var useCssRule = config.boost_useCssRule; + var interaction = config.legend_item_interaction; + item + .attr("class", function (id) { + var node = select(this); + var itemClass = (!node.empty() && node.attr("class")) || ""; + return itemClass + $$.generateClass($LEGEND.legendItem, id); + }) + .style("visibility", function (id) { return ($$.isLegendToShow(id) ? null : "hidden"); }); + if (config.interaction_enabled) { + if (useCssRule) { + [ + [".".concat($LEGEND.legendItem), "cursor:pointer"], + [".".concat($LEGEND.legendItem, " text"), "pointer-events:none"], + [".".concat($LEGEND.legendItemPoint, " text"), "pointer-events:none"], + [".".concat($LEGEND.legendItemTile), "pointer-events:none"], + [".".concat($LEGEND.legendItemEvent), "fill-opacity:0"] + ].forEach(function (v) { + var selector = v[0], props = v[1]; + $$.setCssRule(false, selector, [props])($el.legend); + }); + } + item + .on(interaction.dblclick ? "dblclick" : "click", interaction || isFunction(config.legend_item_onclick) ? + function (event, id) { + if (!callFn(config.legend_item_onclick, api, id)) { + var altKey = event.altKey, target = event.target, type = event.type; + if (type === "dblclick" || altKey) { + // when focused legend is clicked(with altKey or double clicked), reset all hiding. + if (state.hiddenTargetIds.length && + target.parentNode.getAttribute("class").indexOf($LEGEND.legendItemHidden) === -1) { + api.show(); + } + else { + api.hide(); + api.show(id); + } + } + else { + api.toggle(id); + select(this) + .classed($FOCUS.legendItemFocused, false); + } + } + isTouch && $$.hideTooltip(); + } : + null); + !isTouch && item + .on("mouseout", interaction || isFunction(config.legend_item_onout) ? + function (event, id) { + if (!callFn(config.legend_item_onout, api, id)) { + select(this).classed($FOCUS.legendItemFocused, false); + if (hasGauge) { + $$.undoMarkOverlapped($$, ".".concat($GAUGE.gaugeValue)); + } + $$.api.revert(); + } + } : + null) + .on("mouseover", interaction || isFunction(config.legend_item_onover) ? + function (event, id) { + if (!callFn(config.legend_item_onover, api, id)) { + select(this).classed($FOCUS.legendItemFocused, true); + if (hasGauge) { + $$.markOverlapped(id, $$, ".".concat($GAUGE.gaugeValue)); + } + if (!state.transiting && $$.isTargetToShow(id)) { + api.focus(id); + } + } + } : + null); + // set cursor when has some interaction + !item.empty() && item.on("click mouseout mouseover") && + item.style("cursor", $$.getStylePropValue("pointer")); + } + }, + /** + * Update the legend + * @param {Array} targetIds ID's of target + * @param {object} options withTransform : Whether to use the transform property / withTransitionForTransform: Whether transition is used when using the transform property / withTransition : whether or not to transition. + * @private + */ + updateLegendElement: function (targetIds, options) { + var $$ = this; + var config = $$.config, state = $$.state, legend = $$.$el.legend, $T = $$.$T; + var legendType = config.legend_item_tile_type; + var isRectangle = legendType !== "circle"; + var legendItemR = config.legend_item_tile_r; + var itemTileSize = { + width: isRectangle ? config.legend_item_tile_width : legendItemR * 2, + height: isRectangle ? config.legend_item_tile_height : legendItemR * 2 + }; + var dimension = { + padding: { + top: 4, + right: 10 + }, + max: { + width: 0, + height: 0 + }, + posMin: 10, + step: 0, + tileWidth: itemTileSize.width + 5, + totalLength: 0 + }; + var sizes = { + offsets: {}, + widths: {}, + heights: {}, + margins: [0], + steps: {} + }; + var xForLegend; + var yForLegend; + var background; + // Skip elements when their name is set to null + var targetIdz = targetIds + .filter(function (id) { return !isDefined(config.data_names[id]) || config.data_names[id] !== null; }); + var withTransition = options.withTransition; + var updatePositions = $$.getUpdateLegendPositions(targetIdz, dimension, sizes); + if (state.isLegendInset) { + dimension.step = config.legend_inset_step ? config.legend_inset_step : targetIdz.length; + $$.updateLegendStep(dimension.step); + } + if (state.isLegendRight) { + xForLegend = function (id) { return dimension.max.width * sizes.steps[id]; }; + yForLegend = function (id) { return sizes.margins[sizes.steps[id]] + sizes.offsets[id]; }; + } + else if (state.isLegendInset) { + xForLegend = function (id) { return dimension.max.width * sizes.steps[id] + 10; }; + yForLegend = function (id) { return sizes.margins[sizes.steps[id]] + sizes.offsets[id]; }; + } + else { + xForLegend = function (id) { return sizes.margins[sizes.steps[id]] + sizes.offsets[id]; }; + yForLegend = function (id) { return dimension.max.height * sizes.steps[id]; }; + } + var posFn = { + xText: function (id, i) { return xForLegend(id, i) + 4 + itemTileSize.width; }, + xRect: function (id, i) { return xForLegend(id, i); }, + x1Tile: function (id, i) { return xForLegend(id, i) - 2; }, + x2Tile: function (id, i) { return xForLegend(id, i) - 2 + itemTileSize.width; }, + yText: function (id, i) { return yForLegend(id, i) + 9; }, + yRect: function (id, i) { return yForLegend(id, i) - 5; }, + yTile: function (id, i) { return yForLegend(id, i) + 4; } + }; + $$.generateLegendItem(targetIdz, itemTileSize, updatePositions, posFn); + // Set background for inset legend + background = legend.select(".".concat($LEGEND.legendBackground, " rect")); + if (state.isLegendInset && dimension.max.width > 0 && background.size() === 0) { + background = legend.insert("g", ".".concat($LEGEND.legendItem)) + .attr("class", $LEGEND.legendBackground) + .append("rect"); + } + if (config.legend_tooltip) { + legend.selectAll("title") + .data(targetIdz) + .text(function (id) { return getFormattedText.bind($$)(id, false); }); + } + var texts = legend.selectAll("text") + .data(targetIdz) + .text(function (id) { return getFormattedText.bind($$)(id); }) // MEMO: needed for update + .each(function (id, i) { + updatePositions(this, id, i); + }); + $T(texts, withTransition) + .attr("x", posFn.xText) + .attr("y", posFn.yText); + var rects = legend.selectAll("rect.".concat($LEGEND.legendItemEvent)) + .data(targetIdz); + $T(rects, withTransition) + .attr("width", function (id) { return sizes.widths[id]; }) + .attr("height", function (id) { return sizes.heights[id]; }) + .attr("x", posFn.xRect) + .attr("y", posFn.yRect); + // update legend items position + $$.updateLegendItemPos(targetIdz, withTransition, posFn); + if (background) { + $T(background, withTransition) + .attr("height", $$.getLegendHeight() - 12) + .attr("width", dimension.max.width * (dimension.step + 1) + 10); + } + // Update all to reflect change of legend + $$.updateLegendItemWidth(dimension.max.width); + $$.updateLegendItemHeight(dimension.max.height); + $$.updateLegendStep(dimension.step); + }, + /** + * Get position update function + * @param {Array} targetIdz Data ids + * @param {object} dimension Dimension object + * @param {object} sizes Size object + * @returns {Function} Update position function + * @private + */ + getUpdateLegendPositions: function (targetIdz, dimension, sizes) { + var $$ = this; + var config = $$.config, state = $$.state; + var isLegendRightOrInset = state.isLegendRight || state.isLegendInset; + return function (textElement, id, index) { + var reset = index === 0; + var isLast = index === targetIdz.length - 1; + var box = $$.getLegendItemTextBox(id, textElement); + var itemWidth = box.width + dimension.tileWidth + + (isLast && !isLegendRightOrInset ? 0 : dimension.padding.right) + + config.legend_padding; + var itemHeight = box.height + dimension.padding.top; + var itemLength = isLegendRightOrInset ? itemHeight : itemWidth; + var areaLength = isLegendRightOrInset ? $$.getLegendHeight() : $$.getLegendWidth(); + var margin; + // MEMO: care about condifion of step, totalLength + var updateValues = function (id2, withoutStep) { + if (!withoutStep) { + margin = (areaLength - dimension.totalLength - itemLength) / 2; + if (margin < dimension.posMin) { + margin = (areaLength - itemLength) / 2; + dimension.totalLength = 0; + dimension.step++; + } + } + sizes.steps[id2] = dimension.step; + sizes.margins[dimension.step] = state.isLegendInset ? 10 : margin; + sizes.offsets[id2] = dimension.totalLength; + dimension.totalLength += itemLength; + }; + if (reset) { + dimension.totalLength = 0; + dimension.step = 0; + dimension.max.width = 0; + dimension.max.height = 0; + } + if (config.legend_show && !$$.isLegendToShow(id)) { + sizes.widths[id] = 0; + sizes.heights[id] = 0; + sizes.steps[id] = 0; + sizes.offsets[id] = 0; + return; + } + sizes.widths[id] = itemWidth; + sizes.heights[id] = itemHeight; + if (!dimension.max.width || itemWidth >= dimension.max.width) { + dimension.max.width = itemWidth; + } + if (!dimension.max.height || itemHeight >= dimension.max.height) { + dimension.max.height = itemHeight; + } + var maxLength = isLegendRightOrInset ? dimension.max.height : dimension.max.width; + if (config.legend_equally) { + Object.keys(sizes.widths).forEach(function (id2) { return (sizes.widths[id2] = dimension.max.width); }); + Object.keys(sizes.heights).forEach(function (id2) { return (sizes.heights[id2] = dimension.max.height); }); + margin = (areaLength - maxLength * targetIdz.length) / 2; + if (margin < dimension.posMin) { + dimension.totalLength = 0; + dimension.step = 0; + targetIdz.forEach(function (id2) { return updateValues(id2); }); + } + else { + updateValues(id, true); + } + } + else { + updateValues(id); + } + }; + }, + /** + * Generate legend item elements + * @param {Array} targetIdz Data ids + * @param {object} itemTileSize Item tile size {width, height} + * @param {Function} updatePositions Update position function + * @param {object} posFn Position functions + * @private + */ + generateLegendItem: function (targetIdz, itemTileSize, updatePositions, posFn) { + var $$ = this; + var config = $$.config, state = $$.state, legend = $$.$el.legend; + var usePoint = config.legend_usePoint; + var legendItemR = config.legend_item_tile_r; + var legendType = config.legend_item_tile_type; + var isRectangle = legendType !== "circle"; + var isLegendRightOrInset = state.isLegendRight || state.isLegendInset; + var pos = -200; + // Define g for legend area + var l = legend.selectAll(".".concat($LEGEND.legendItem)) + .data(targetIdz) + .enter() + .append("g"); + $$.setLegendItem(l); + if (config.legend_tooltip) { + l.append("title").text(function (id) { return id; }); + } + l.append("text") + .text(function (id) { return getFormattedText.bind($$)(id); }) + .each(function (id, i) { + updatePositions(this, id, i); + }) + .style("pointer-events", $$.getStylePropValue("none")) + .attr("x", isLegendRightOrInset ? posFn.xText : pos) + .attr("y", isLegendRightOrInset ? pos : posFn.yText); + l.append("rect") + .attr("class", $LEGEND.legendItemEvent) + .style("fill-opacity", $$.getStylePropValue("0")) + .attr("x", isLegendRightOrInset ? posFn.xRect : pos) + .attr("y", isLegendRightOrInset ? pos : posFn.yRect); + if (usePoint) { + var ids_2 = []; + l.append(function (d) { + var pattern = notEmpty(config.point_pattern) ? + config.point_pattern : + [config.point_type]; + ids_2.indexOf(d) === -1 && ids_2.push(d); + var point = pattern[ids_2.indexOf(d) % pattern.length]; + if (point === "rectangle") { + point = "rect"; + } + return doc.createElementNS(namespaces.svg, ("hasValidPointType" in $$) && $$.hasValidPointType(point) ? point : "use"); + }) + .attr("class", $LEGEND.legendItemPoint) + .style("fill", getLegendColor.bind($$)) + .style("pointer-events", $$.getStylePropValue("none")) + .attr("href", function (data, idx, selection) { + var node = selection[idx]; + var nodeName = node.nodeName.toLowerCase(); + var id = $$.getTargetSelectorSuffix(data); + return nodeName === "use" ? "#".concat(state.datetimeId, "-point").concat(id) : undefined; + }); + } + else { + l.append(isRectangle ? "line" : legendType) + .attr("class", $LEGEND.legendItemTile) + .style("stroke", getLegendColor.bind($$)) + .style("pointer-events", $$.getStylePropValue("none")) + .call(function (selection) { + if (legendType === "circle") { + selection + .attr("r", legendItemR) + .style("fill", getLegendColor.bind($$)) + .attr("cx", isLegendRightOrInset ? posFn.x2Tile : pos) + .attr("cy", isLegendRightOrInset ? pos : posFn.yTile); + } + else if (isRectangle) { + selection + .attr("stroke-width", itemTileSize.height) + .attr("x1", isLegendRightOrInset ? posFn.x1Tile : pos) + .attr("y1", isLegendRightOrInset ? pos : posFn.yTile) + .attr("x2", isLegendRightOrInset ? posFn.x2Tile : pos) + .attr("y2", isLegendRightOrInset ? pos : posFn.yTile); + } + }); + } + }, + /** + * Update legend item position + * @param {Array} targetIdz Data ids + * @param {boolean} withTransition Whether or not to apply transition + * @param {object} posFn Position functions + * @private + */ + updateLegendItemPos: function (targetIdz, withTransition, posFn) { + var $$ = this; + var config = $$.config, legend = $$.$el.legend, $T = $$.$T; + var usePoint = config.legend_usePoint; + var legendType = config.legend_item_tile_type; + var isRectangle = legendType !== "circle"; + if (usePoint) { + var tiles = legend.selectAll(".".concat($LEGEND.legendItemPoint)) + .data(targetIdz); + $T(tiles, withTransition) + .each(function () { + var nodeName = this.nodeName.toLowerCase(); + var pointR = config.point_r; + var x = "x"; + var y = "y"; + var xOffset = 2; + var yOffset = 2.5; + var radius = null; + var width = null; + var height = null; + if (nodeName === "circle") { + var size = pointR * 0.2; + x = "cx"; + y = "cy"; + radius = pointR + size; + xOffset = pointR * 2; + yOffset = -size; + } + else if (nodeName === "rect") { + var size = pointR * 2.5; + width = size; + height = size; + yOffset = 3; + } + select(this) + .attr(x, function (d) { return posFn.x1Tile(d) + xOffset; }) + .attr(y, function (d) { return posFn.yTile(d) - yOffset; }) + .attr("r", radius) + .attr("width", width) + .attr("height", height); + }); + } + else { + var tiles = legend.selectAll(".".concat($LEGEND.legendItemTile)) + .data(targetIdz); + $T(tiles, withTransition) + .style("stroke", getLegendColor.bind($$)) + .call(function (selection) { + if (legendType === "circle") { + selection + .attr("cx", function (d) { + var x2 = posFn.x2Tile(d); + return x2 - ((x2 - posFn.x1Tile(d)) / 2); + }) + .attr("cy", posFn.yTile); + } + else if (isRectangle) { + selection + .attr("x1", posFn.x1Tile) + .attr("y1", posFn.yTile) + .attr("x2", posFn.x2Tile) + .attr("y2", posFn.yTile); + } + }); + } + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var redraw = { + redraw: function (options) { + var _a, _b, _c, _d; + if (options === void 0) { options = {}; } + var $$ = this; + var config = $$.config, state = $$.state, $el = $$.$el; + var main = $el.main, treemap = $el.treemap; + state.redrawing = true; + var targetsToShow = $$.filterTargetsToShow($$.data.targets); + var flow = options.flow, initializing = options.initializing; + var wth = $$.getWithOption(options); + var duration = wth.Transition ? config.transition_duration : 0; + var durationForExit = wth.TransitionForExit ? duration : 0; + var durationForAxis = wth.TransitionForAxis ? duration : 0; + var transitions = (_a = $$.axis) === null || _a === void 0 ? void 0 : _a.generateTransitions(durationForAxis); + $$.updateSizes(initializing); + // update legend and transform each g + if (wth.Legend && config.legend_show) { + options.withTransition = !!duration; + !treemap && $$.updateLegend($$.mapToIds($$.data.targets), options, transitions); + } + else if (wth.Dimension) { + // need to update dimension (e.g. axis.y.tick.values) because y tick values should change + // no need to update axis in it because they will be updated in redraw() + $$.updateDimension(true); + } + // Data empty label positioning and text. + config.data_empty_label_text && main.select("text.".concat($TEXT.text, ".").concat($COMMON.empty)) + .attr("x", state.width / 2) + .attr("y", state.height / 2) + .text(config.data_empty_label_text) + .style("display", targetsToShow.length ? "none" : null); + // update axis + if (state.hasAxis) { + // @TODO: Make 'init' state to be accessible everywhere not passing as argument. + $$.axis.redrawAxis(targetsToShow, wth, transitions, flow, initializing); + // grid + $$.hasGrid() && $$.updateGrid(); + // rect for regions + config.regions.length && $$.updateRegion(); + ["bar", "candlestick", "line", "area"].forEach(function (v) { + var name = capitalize(v); + if ((/^(line|area)$/.test(v) && $$.hasTypeOf(name)) || $$.hasType(v)) { + $$["update".concat(name)](wth.TransitionForExit); + } + }); + // circles for select + $el.text && main.selectAll(".".concat($SELECT.selectedCircles)) + .filter($$.isBarType.bind($$)) + .selectAll("circle") + .remove(); + // event rects will redrawn when flow called + if (config.interaction_enabled && !flow && wth.EventRect) { + $$.redrawEventRect(); + (_b = $$.bindZoomEvent) === null || _b === void 0 ? void 0 : _b.call($$); + } + } + else { + // arc + $el.arcs && $$.redrawArc(duration, durationForExit, wth.Transform); + // radar + $el.radar && $$.redrawRadar(); + // polar + $el.polar && $$.redrawPolar(); + // funnel + $el.funnel && $$.redrawFunnel(); + // treemap + treemap && $$.updateTreemap(durationForExit); + } + if (!state.resizing && !treemap && ($$.hasPointType() || state.hasRadar)) { + $$.updateCircle(); + } + else if ((_c = $$.hasLegendDefsPoint) === null || _c === void 0 ? void 0 : _c.call($$)) { + $$.data.targets.forEach($$.point("create", this)); + } + // text + $$.hasDataLabel() && !$$.hasArcType(null, ["radar"]) && $$.updateText(); + // title + (_d = $$.redrawTitle) === null || _d === void 0 ? void 0 : _d.call($$); + initializing && $$.updateTypesElements(); + $$.generateRedrawList(targetsToShow, flow, duration, wth.Subchart); + $$.updateTooltipOnRedraw(); + $$.callPluginHook("$redraw", options, duration); + }, + /** + * Generate redraw list + * @param {object} targets targets data to be shown + * @param {object} flow flow object + * @param {number} duration duration value + * @param {boolean} withSubchart whether or not to show subchart + * @private + */ + generateRedrawList: function (targets, flow, duration, withSubchart) { + var $$ = this; + var config = $$.config, state = $$.state; + var shape = $$.getDrawShape(); + if (state.hasAxis) { + // subchart + config.subchart_show && $$.redrawSubchart(withSubchart, duration, shape); + } + // generate flow + var flowFn = flow && $$.generateFlow({ + targets: targets, + flow: flow, + duration: flow.duration, + shape: shape, + xv: $$.xv.bind($$) + }); + var withTransition = (duration || flowFn) && isTabVisible(); + // redraw list + var redrawList = $$.getRedrawList(shape, flow, flowFn, withTransition); + // callback function after redraw ends + var afterRedraw = function () { + flowFn && flowFn(); + state.redrawing = false; + callFn(config.onrendered, $$.api); + }; + if (afterRedraw) { + // Only use transition when current tab is visible. + if (withTransition && redrawList.length) { + // Wait for end of transitions for callback + var waitForDraw_1 = generateWait(); + // transition should be derived from one transition + transition().duration(duration) + .each(function () { + redrawList + .reduce(function (acc, t1) { return acc.concat(t1); }, []) + .forEach(function (t) { return waitForDraw_1.add(t); }); + }) + .call(waitForDraw_1, afterRedraw); + } + else if (!state.transiting) { + afterRedraw(); + } + } + // update fadein condition + $$.mapToIds($$.data.targets).forEach(function (id) { + state.withoutFadeIn[id] = true; + }); + }, + getRedrawList: function (shape, flow, flowFn, withTransition) { + var $$ = this; + var config = $$.config, _a = $$.state, hasAxis = _a.hasAxis, hasRadar = _a.hasRadar, hasTreemap = _a.hasTreemap, grid = $$.$el.grid; + var _b = shape.pos, cx = _b.cx, cy = _b.cy, xForText = _b.xForText, yForText = _b.yForText; + var list = []; + if (hasAxis) { + if (config.grid_x_lines.length || config.grid_y_lines.length) { + list.push($$.redrawGrid(withTransition)); + } + if (config.regions.length) { + list.push($$.redrawRegion(withTransition)); + } + Object.keys(shape.type).forEach(function (v) { + var name = capitalize(v); + var drawFn = shape.type[v]; + if ((/^(area|line)$/.test(v) && $$.hasTypeOf(name)) || $$.hasType(v)) { + list.push($$["redraw".concat(name)](drawFn, withTransition)); + } + }); + !flow && grid.main && list.push($$.updateGridFocus()); + } + if (!$$.hasArcType() || hasRadar) { + notEmpty(config.data_labels) && config.data_labels !== false && + list.push($$.redrawText(xForText, yForText, flow, withTransition)); + } + if (($$.hasPointType() || hasRadar) && !$$.isPointFocusOnly()) { + $$.redrawCircle && list.push($$.redrawCircle(cx, cy, withTransition, flowFn)); + } + if (hasTreemap) { + list.push($$.redrawTreemap(withTransition)); + } + return list; + }, + updateAndRedraw: function (options) { + if (options === void 0) { options = {}; } + var $$ = this; + var config = $$.config, state = $$.state; + var transitions; + // same with redraw + options.withTransition = getOption(options, "withTransition", true); + options.withTransform = getOption(options, "withTransform", false); + options.withLegend = getOption(options, "withLegend", false); + // NOT same with redraw + options.withUpdateXDomain = true; + options.withUpdateOrgXDomain = true; + options.withTransitionForExit = false; + options.withTransitionForTransform = getOption(options, "withTransitionForTransform", options.withTransition); + // MEMO: called in updateLegend in redraw if withLegend + if (!(options.withLegend && config.legend_show)) { + if (state.hasAxis) { + transitions = $$.axis.generateTransitions(options.withTransitionForAxis ? config.transition_duration : 0); + } + // Update scales + $$.updateScales(); + $$.updateSvgSize(); + // Update g positions + $$.transformAll(options.withTransitionForTransform, transitions); + } + // Draw with new sizes & scales + $$.redraw(options, transitions); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Get scale + * @param {string} [type='linear'] Scale type + * @param {number} [min] Min range + * @param {number} [max] Max range + * @returns {d3.scaleLinear|d3.scaleTime} scale + * @private + */ +function getScale(type, min, max) { + if (type === void 0) { type = "linear"; } + if (min === void 0) { min = 0; } + if (max === void 0) { max = 1; } + var scale = ({ + linear: scaleLinear, + log: scaleSymlog, + _log: scaleLog, + time: scaleTime, + utc: scaleUtc + })[type](); + scale.type = type; + /_?log/.test(type) && scale.clamp(true); + return scale.range([min, max]); +} +var scale = { + /** + * Get x Axis scale function + * @param {number} min Min range value + * @param {number} max Max range value + * @param {Array} domain Domain value + * @param {Function} offset The offset getter to be sum + * @returns {Function} scale + * @private + */ + getXScale: function (min, max, domain, offset) { + var $$ = this; + var scale = ($$.state.loading !== "append" && $$.scale.zoom) || + getScale($$.axis.getAxisType("x"), min, max); + return $$.getCustomizedXScale(domain ? scale.domain(domain) : scale, offset); + }, + /** + * Get y Axis scale function + * @param {string} id Axis id: 'y' or 'y2' + * @param {number} min Min value + * @param {number} max Max value + * @param {Array} domain Domain value + * @returns {Function} Scale function + * @private + */ + getYScale: function (id, min, max, domain) { + var $$ = this; + var scale = getScale($$.axis.getAxisType(id), min, max); + domain && scale.domain(domain); + return scale; + }, + /** + * Get y Axis scale + * @param {string} id Axis id + * @param {boolean} isSub Weather is sub Axis + * @returns {Function} Scale function + * @private + */ + getYScaleById: function (id, isSub) { + var _a; + if (isSub === void 0) { isSub = false; } + var isY2 = ((_a = this.axis) === null || _a === void 0 ? void 0 : _a.getId(id)) === "y2"; + var key = isSub ? (isY2 ? "subY2" : "subY") : (isY2 ? "y2" : "y"); + return this.scale[key]; + }, + /** + * Get customized x axis scale + * @param {d3.scaleLinear|d3.scaleTime} scaleValue Scale function + * @param {Function} offsetValue Offset getter to be sum + * @returns {Function} Scale function + * @private + */ + getCustomizedXScale: function (scaleValue, offsetValue) { + var $$ = this; + var offset = offsetValue || (function () { return $$.axis.x.tickOffset(); }); + var isInverted = $$.config.axis_x_inverted; + var scale = function (d, raw) { + var v = scaleValue(d) + offset(); + return raw ? v : Math.ceil(v); + }; + // copy original scale methods + for (var key in scaleValue) { + scale[key] = scaleValue[key]; + } + scale.orgDomain = function () { return scaleValue.domain(); }; + scale.orgScale = function () { return scaleValue; }; + // define custom domain() for categorized axis + if ($$.axis.isCategorized()) { + scale.domain = function (domainValue) { + var domain = domainValue; + if (!arguments.length) { + domain = this.orgDomain(); + return isInverted ? [domain[0] + 1, domain[1]] : [domain[0], domain[1] + 1]; + } + scaleValue.domain(domain); + return scale; + }; + } + return scale; + }, + /** + * Update scale + * @param {boolean} isInit Param is given at the init rendering + * @param {boolean} updateXDomain If update x domain + * @private + */ + updateScales: function (isInit, updateXDomain) { + var _a, _b; + if (updateXDomain === void 0) { updateXDomain = true; } + var $$ = this; + var axis = $$.axis, config = $$.config, format = $$.format, org = $$.org, scale = $$.scale, _c = $$.state, current = _c.current, width = _c.width, height = _c.height, width2 = _c.width2, height2 = _c.height2, hasAxis = _c.hasAxis, hasTreemap = _c.hasTreemap; + if (hasAxis) { + var isRotated = config.axis_rotated; + var resettedPadding = $$.getResettedPadding(1); + // update edges + var min = { + x: isRotated ? resettedPadding : 0, + y: isRotated ? 0 : height, + subX: isRotated ? 1 : 0, + subY: isRotated ? 0 : height2 + }; + var max = { + x: isRotated ? height : width, + y: isRotated ? width : resettedPadding, + subX: isRotated ? height : width, + subY: isRotated ? width2 : 1 + }; + // update scales + // x Axis + var xDomain = updateXDomain && ((_a = scale.x) === null || _a === void 0 ? void 0 : _a.orgDomain()); + var xSubDomain = updateXDomain && org.xDomain; + scale.x = $$.getXScale(min.x, max.x, xDomain, function () { return axis.x.tickOffset(); }); + scale.subX = $$.getXScale(min.x, max.x, xSubDomain, function (d) { + var _a; + return (d % 1 ? 0 : ((_a = axis.subX) !== null && _a !== void 0 ? _a : axis.x).tickOffset()); + }); + format.xAxisTick = axis.getXAxisTickFormat(); + format.subXAxisTick = axis.getXAxisTickFormat(true); + axis.setAxis("x", scale.x, config.axis_x_tick_outer, isInit); + if (config.subchart_show) { + axis.setAxis("subX", scale.subX, config.axis_x_tick_outer, isInit); + } + // y Axis + scale.y = $$.getYScale("y", min.y, max.y, scale.y ? scale.y.domain() : config.axis_y_default); + scale.subY = $$.getYScale("y", min.subY, max.subY, scale.subY ? scale.subY.domain() : config.axis_y_default); + axis.setAxis("y", scale.y, config.axis_y_tick_outer, isInit); + // y2 Axis + if (config.axis_y2_show) { + scale.y2 = $$.getYScale("y2", min.y, max.y, scale.y2 ? scale.y2.domain() : config.axis_y2_default); + scale.subY2 = $$.getYScale("y2", min.subY, max.subY, scale.subY2 ? scale.subY2.domain() : config.axis_y2_default); + axis.setAxis("y2", scale.y2, config.axis_y2_tick_outer, isInit); + } + } + else if (hasTreemap) { + var padding = $$.getCurrentPadding(); + scale.x = scaleLinear().rangeRound([padding.left, current.width - padding.right]); + scale.y = scaleLinear().rangeRound([padding.top, current.height - padding.bottom]); + } + else { + // update for arc + (_b = $$.updateArc) === null || _b === void 0 ? void 0 : _b.call($$); + } + }, + /** + * Get the zoom or unzoomed scaled value + * @param {Date|number|object} d Data value + * @returns {number|null} + * @private + */ + xx: function (d) { + var $$ = this; + var config = $$.config, _a = $$.scale, x = _a.x, zoom = _a.zoom; + var fn = config.zoom_enabled && zoom ? zoom : x; + return d ? fn(isValue(d.x) ? d.x : d) : null; + }, + xv: function (d) { + var $$ = this; + var axis = $$.axis, config = $$.config, _a = $$.scale, x = _a.x, zoom = _a.zoom; + var fn = config.zoom_enabled && zoom ? zoom : x; + var value = $$.getBaseValue(d); + if (axis.isTimeSeries()) { + value = parseDate.call($$, value); + } + else if (axis.isCategorized() && isString(value)) { + value = config.axis_x_categories.indexOf(value); + } + return Math.ceil(fn(value)); + }, + yv: function (d) { + var $$ = this; + var _a = $$.scale, y = _a.y, y2 = _a.y2; + var yScale = d.axis && d.axis === "y2" ? y2 : y; + return Math.ceil(yScale($$.getBaseValue(d))); + }, + subxx: function (d) { + return d ? this.scale.subX(d.x) : null; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var size = { + /** + * Update container size + * @private + */ + setContainerSize: function () { + var $$ = this; + var state = $$.state; + state.current.width = $$.getCurrentWidth(); + state.current.height = $$.getCurrentHeight(); + }, + getCurrentWidth: function () { + var $$ = this; + return $$.config.size_width || $$.getParentWidth(); + }, + getCurrentHeight: function () { + var $$ = this; + var config = $$.config; + var h = config.size_height || $$.getParentHeight(); + return h > 0 ? h : 320 / ($$.hasType("gauge") && !config.gauge_fullCircle ? 2 : 1); + }, + /** + * Get the parent rect element's size + * @param {string} key property/attribute name + * @returns {number} + * @private + */ + getParentRectValue: function (key) { + var offsetName = "offset".concat(capitalize(key)); + var parent = this.$el.chart.node(); + var v = 0; + while (v < 30 && parent && parent.tagName !== "BODY") { + try { + v = parent.getBoundingClientRect()[key]; + } + catch (e) { + if (offsetName in parent) { + // In IE in certain cases getBoundingClientRect + // will cause an "unspecified error" + v = parent[offsetName]; + } + } + parent = parent.parentNode; + } + // Sometimes element's dimension value is incorrect(ex. flex container) + // In this case, use body's offset instead. + var bodySize = doc.body[offsetName]; + v > bodySize && (v = bodySize); + return v; + }, + getParentWidth: function () { + return this.getParentRectValue("width"); + }, + getParentHeight: function () { + var h = this.$el.chart.style("height"); + var height = 0; + if (h) { + height = /px$/.test(h) ? parseInt(h, 10) : this.getParentRectValue("height"); + } + return height; + }, + getSvgLeft: function (withoutRecompute) { + var $$ = this; + var config = $$.config, hasAxis = $$.state.hasAxis, $el = $$.$el; + var isRotated = config.axis_rotated; + var hasLeftAxisRect = isRotated || (!isRotated && !config.axis_y_inner); + var leftAxisClass = isRotated ? $AXIS.axisX : $AXIS.axisY; + var leftAxis = $el.main.select(".".concat(leftAxisClass)).node(); + var leftLabel = hasAxis && config["axis_".concat(isRotated ? "x" : "y", "_label")]; + var labelWidth = 0; + // if axis label position set to inner, exclude from the value + if (hasAxis && (isString(leftLabel) || isString(leftLabel.text) || + /^inner-/.test(leftLabel === null || leftLabel === void 0 ? void 0 : leftLabel.position))) { + var label = $el.main.select(".".concat(leftAxisClass, "-label")); + if (!label.empty()) { + labelWidth = label.node().getBoundingClientRect().left; + } + } + var svgRect = leftAxis && hasLeftAxisRect ? leftAxis.getBoundingClientRect() : { right: 0 }; + var chartRectLeft = $el.chart.node().getBoundingClientRect().left + labelWidth; + var hasArc = $$.hasArcType(); + var svgLeft = svgRect.right - chartRectLeft - + (hasArc ? 0 : $$.getCurrentPaddingByDirection("left", withoutRecompute)); + return svgLeft > 0 ? svgLeft : 0; + }, + updateDimension: function (withoutAxis) { + var _a; + var $$ = this; + var config = $$.config, hasAxis = $$.state.hasAxis, $el = $$.$el; + if (hasAxis && !withoutAxis && $$.axis.x && config.axis_rotated) { + (_a = $$.axis.subX) === null || _a === void 0 ? void 0 : _a.create($el.axis.subX); + } + // pass 'withoutAxis' param to not animate at the init rendering + $$.updateScales(withoutAxis); + $$.updateSvgSize(); + $$.transformAll(false); + }, + updateSvgSize: function () { + var $$ = this; + var _a = $$.state, clip = _a.clip, current = _a.current, hasAxis = _a.hasAxis, width = _a.width, height = _a.height, svg = $$.$el.svg; + svg + .attr("width", current.width) + .attr("height", current.height); + if (hasAxis) { + var brush = svg.select(".".concat($SUBCHART.brush, " .overlay")); + var brushSize = { width: 0, height: 0 }; + if (brush.size()) { + brushSize.width = +brush.attr("width"); + brushSize.height = +brush.attr("height"); + } + svg.selectAll(["#".concat(clip.id), "#".concat(clip.idGrid)]) + .select("rect") + .attr("width", width) + .attr("height", height); + svg.select("#".concat(clip.idXAxis)) + .select("rect") + .call($$.setXAxisClipPath.bind($$)); + svg.select("#".concat(clip.idYAxis)) + .select("rect") + .call($$.setYAxisClipPath.bind($$)); + clip.idSubchart && svg.select("#".concat(clip.idSubchart)) + .select("rect") + .attr("width", width) + .attr("height", brushSize.height); + } + }, + /** + * Get padding by the direction. + * @param {string} type "top" | "bottom" | "left" | "right" + * @param {boolean} [withoutRecompute=false] If set true, do not recompute the padding value. + * @param {boolean} [withXAxisTickTextOverflow=false] If set true, calculate x axis tick text overflow. + * @returns {number} padding value + * @private + */ + getCurrentPaddingByDirection: function (type, withoutRecompute, withXAxisTickTextOverflow) { + var _a; + if (withoutRecompute === void 0) { withoutRecompute = false; } + if (withXAxisTickTextOverflow === void 0) { withXAxisTickTextOverflow = false; } + var $$ = this; + var config = $$.config, $el = $$.$el, hasAxis = $$.state.hasAxis; + var isRotated = config.axis_rotated; + var isFitPadding = ((_a = config.padding) === null || _a === void 0 ? void 0 : _a.mode) === "fit"; + var paddingOption = isNumber(config["padding_".concat(type)]) ? + config["padding_".concat(type)] : + undefined; + var axisId = hasAxis ? + { + top: isRotated ? "y2" : null, + bottom: isRotated ? "y" : "x", + left: isRotated ? "x" : "y", + right: isRotated ? null : "y2" + }[type] : + null; + var isLeftRight = /^(left|right)$/.test(type); + var isAxisInner = axisId && config["axis_".concat(axisId, "_inner")]; + var isAxisShow = axisId && config["axis_".concat(axisId, "_show")]; + var axesLen = axisId ? config["axis_".concat(axisId, "_axes")].length : 0; + var axisSize = axisId ? + (isLeftRight ? + $$.getAxisWidthByAxisId(axisId, withoutRecompute) : + $$.getHorizontalAxisHeight(axisId)) : + 0; + var defaultPadding = 20; + var gap = 0; + if (!isFitPadding && isLeftRight) { + axisSize = ceil10(axisSize); + } + var padding = hasAxis && isLeftRight && (isAxisInner || (isUndefined(paddingOption) && !isAxisShow)) ? + 0 : + (isFitPadding ? (isAxisShow ? axisSize : 0) + (paddingOption !== null && paddingOption !== void 0 ? paddingOption : 0) : (isUndefined(paddingOption) ? axisSize : paddingOption)); + if (isLeftRight && hasAxis) { + if (axisId && (isFitPadding || isAxisInner) && config["axis_".concat(axisId, "_label")].text) { + padding += $$.axis.getAxisLabelPosition(axisId).isOuter ? defaultPadding : 0; + } + if (type === "right") { + padding += isRotated ? + (!isFitPadding && isUndefined(paddingOption) ? 10 : 2) : + !isAxisShow || isAxisInner ? + (isFitPadding ? 2 : 1) : + 0; + padding += withXAxisTickTextOverflow ? + $$.axis.getXAxisTickTextY2Overflow(defaultPadding) : + 0; + } + else if (type === "left" && isRotated && isUndefined(paddingOption)) { + padding = !config.axis_x_show ? + 1 : + (isFitPadding ? axisSize : Math.max(axisSize, 40)); + } + } + else { + if (type === "top") { + if ($el.title && $el.title.node()) { + padding += $$.getTitlePadding(); + } + gap = isRotated && !isAxisInner ? axesLen : 0; + } + else if (type === "bottom" && hasAxis && isRotated && !isAxisShow) { + padding += 1; + } + } + return padding + (axisSize * axesLen) - gap; + }, + getCurrentPadding: function (withXAxisTickTextOverflow) { + if (withXAxisTickTextOverflow === void 0) { withXAxisTickTextOverflow = false; } + var $$ = this; + var _a = ["top", "bottom", "left", "right"] + .map(function (v) { return $$.getCurrentPaddingByDirection(v, null, withXAxisTickTextOverflow); }), top = _a[0], bottom = _a[1], left = _a[2], right = _a[3]; + return { top: top, bottom: bottom, left: left, right: right }; + }, + /** + * Get resetted padding values when 'padding=false' option is set + * https://github.com/naver/billboard.js/issues/2367 + * @param {number|object} v Padding values to be resetted + * @returns {number|object} Padding value + * @private + */ + getResettedPadding: function (v) { + var $$ = this; + var config = $$.config; + var isNum = isNumber(v); + var p = isNum ? 0 : {}; + if (config.padding === false) { + !isNum && Object.keys(v).forEach(function (key) { + // when data.lables=true, do not reset top padding + p[key] = (!isEmpty(config.data_labels) && + config.data_labels !== false && + key === "top") ? + v[key] : + 0; + }); + } + else { + p = v; + } + return p; + }, + /** + * Update size values + * @param {boolean} isInit If is called at initialization + * @private + */ + updateSizes: function (isInit) { + var _a, _b, _c, _d, _e; + var $$ = this; + var config = $$.config, state = $$.state, legend = $$.$el.legend; + var isRotated = config.axis_rotated; + var isNonAxis = $$.hasArcType() || state.hasFunnel || state.hasTreemap; + var isFitPadding = ((_a = config.padding) === null || _a === void 0 ? void 0 : _a.mode) === "fit"; + !isInit && $$.setContainerSize(); + var currLegend = { + width: legend ? $$.getLegendWidth() : 0, + height: legend ? $$.getLegendHeight() : 0 + }; + if (!isNonAxis && config.axis_x_show && config.axis_x_tick_autorotate) { + $$.updateXAxisTickClip(); + } + var legendSize = { + right: config.legend_show && state.isLegendRight ? + $$.getLegendWidth() + (isFitPadding ? 0 : 20) : + 0, + bottom: !config.legend_show || state.isLegendRight || state.isLegendInset ? + 0 : + currLegend.height + }; + var xAxisHeight = isRotated || isNonAxis ? 0 : $$.getHorizontalAxisHeight("x"); + var subchartXAxisHeight = config.subchart_axis_x_show && config.subchart_axis_x_tick_text_show ? xAxisHeight : 30; + var subchartHeight = config.subchart_show && !isNonAxis ? + (config.subchart_size_height + subchartXAxisHeight) : + 0; + // when needle is shown with legend, it need some bottom space to not overlap with legend text + var gaugeHeight = $$.hasType("gauge") && config.arc_needle_show && + !config.gauge_fullCircle && !config.gauge_label_show ? + 10 : + 0; + var padding = $$.getCurrentPadding(true); + // for main + state.margin = !isNonAxis && isRotated ? + { + top: padding.top, + right: isNonAxis ? 0 : padding.right + legendSize.right, + bottom: legendSize.bottom + padding.bottom, + left: subchartHeight + (isNonAxis ? 0 : padding.left) + } : + { + top: (isFitPadding ? 0 : 4) + padding.top, // for top tick text + right: isNonAxis ? 0 : padding.right + legendSize.right, + bottom: gaugeHeight + subchartHeight + legendSize.bottom + padding.bottom, + left: isNonAxis ? 0 : padding.left + }; + state.margin = $$.getResettedPadding(state.margin); + // for subchart + state.margin2 = isRotated ? + { + top: state.margin.top, + right: NaN, + bottom: 20 + legendSize.bottom, + left: $$.state.rotatedPadding.left + } : + { + top: state.current.height - subchartHeight - legendSize.bottom, + right: NaN, + bottom: subchartXAxisHeight + legendSize.bottom, + left: state.margin.left + }; + // for legend + state.margin3 = { + top: 0, + right: NaN, + bottom: 0, + left: 0 + }; + (_b = $$.updateSizeForLegend) === null || _b === void 0 ? void 0 : _b.call($$, currLegend); + state.width = state.current.width - state.margin.left - state.margin.right; + state.height = state.current.height - state.margin.top - state.margin.bottom; + if (state.width < 0) { + state.width = 0; + } + if (state.height < 0) { + state.height = 0; + } + state.width2 = isRotated ? + state.margin.left - state.rotatedPadding.left - state.rotatedPadding.right : + state.width; + state.height2 = isRotated ? + state.height : + state.current.height - state.margin2.top - state.margin2.bottom; + if (state.width2 < 0) { + state.width2 = 0; + } + if (state.height2 < 0) { + state.height2 = 0; + } + // for arc + if ($$.hasArcType()) { + var hasGauge = $$.hasType("gauge"); + var isLegendRight = config.legend_show && state.isLegendRight; + var textWidth = (_c = (state.hasRadar && $$.cache.get(KEY.radarTextWidth))) !== null && _c !== void 0 ? _c : 0; + state.arcWidth = state.width - (isLegendRight ? currLegend.width + 10 : 0) - textWidth; + state.arcHeight = state.height - (isLegendRight && !hasGauge ? 0 : 10); + if ((_d = config.arc_rangeText_values) === null || _d === void 0 ? void 0 : _d.length) { + if (hasGauge) { + state.arcWidth -= 25; + state.arcHeight -= 10; + state.margin.left += 10; + } + else { + state.arcHeight -= 20; + state.margin.top += 10; + } + } + if (hasGauge && !config.gauge_fullCircle) { + state.arcHeight += state.height - $$.getPaddingBottomForGauge(); + } + (_e = $$.updateRadius) === null || _e === void 0 ? void 0 : _e.call($$); + } + if (state.isLegendRight && isNonAxis) { + state.margin3.left = state.arcWidth / 2 + state.radiusExpanded * 1.1; + } + } +}; + +var style = { + /** + * Add props color css rule to given selector + * @param {boolean} withShape Set shpes' prefix class + * @param {string} selector CSS selector + * @param {Array} props CSS props list + * @param {Function} propsFn Function to retrieve value or determine for props + * @returns {Function} + * @private + */ + setCssRule: function (withShape, selector, props, propsFn) { + var $$ = this; + var config = $$.config, _a = $$.state, cssRule = _a.cssRule, style = _a.style; + return config.boost_useCssRule ? + function (selection) { + selection.each(function (d) { + var res = propsFn && (propsFn === null || propsFn === void 0 ? void 0 : propsFn.call($$, d)); + var shapeSelector = "".concat(withShape ? ".".concat($SHAPE.shapes + $$.getTargetSelectorSuffix(d.id)) : "").concat(selector); + (selector in cssRule) && style.sheet.deleteRule(cssRule[shapeSelector]); + $$.state.cssRule[shapeSelector] = addCssRules(style, shapeSelector, props.filter(Boolean).map(function (v) { return (isString(res) && v.indexOf(":") === -1 ? "".concat(v, ": ").concat(res) : (v || "")); })); + }); + } : + function () { }; + }, + /** + * Get style prop value + * @param {Function|string} v Value + * @returns {string|null} + * @private + */ + getStylePropValue: function (v) { + var useCssRule = this.config.boost_useCssRule; + return useCssRule ? null : isFunction(v) ? v.bind(this) : v; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Get text-anchor according text.labels.rotate angle + * @param {number} angle Angle value + * @returns {string} Anchor string value + * @private + */ +function getRotateAnchor(angle) { + var anchor = "middle"; + if (angle > 0 && angle <= 170) { + anchor = "end"; + } + else if (angle > 190 && angle <= 360) { + anchor = "start"; + } + return anchor; +} +/** + * Set rotated position coordinate according text.labels.rotate angle + * @param {object} d Data object + * @param {object} pos Position object + * @param {object} pos.x x coordinate + * @param {object} pos.y y coordinate + * @param {string} anchor string value + * @param {boolean} isRotated If axis is rotated + * @param {boolean} isInverted If axis is inverted + * @returns {object} x, y coordinate + * @private + */ +function setRotatePos(d, pos, anchor, isRotated, isInverted) { + var _a; + var $$ = this; + var value = d.value; + var isCandlestickType = $$.isCandlestickType(d); + var isNegative = (isNumber(value) && value < 0) || (isCandlestickType && !((_a = $$.getCandlestickData(d)) === null || _a === void 0 ? void 0 : _a._isUp)); + var x = pos.x, y = pos.y; + var gap = 4; + var doubleGap = gap * 2; + if (isRotated) { + if (anchor === "start") { + x += isNegative ? 0 : doubleGap; + y += gap; + } + else if (anchor === "middle") { + x += doubleGap; + y -= doubleGap; + } + else if (anchor === "end") { + isNegative && (x -= doubleGap); + y += gap; + } + } + else { + if (anchor === "start") { + x += gap; + isNegative && (y += doubleGap * 2); + } + else if (anchor === "middle") { + y -= doubleGap; + } + else if (anchor === "end") { + x -= gap; + isNegative && (y += doubleGap * 2); + } + if (isInverted) { + y += isNegative ? -17 : (isCandlestickType ? 13 : 7); + } + } + return { x: x, y: y }; +} +/** + * Get data.labels.position value + * @param {object} d Data object + * @param {string} type x | y + * @returns {number} Position value + * @private + */ +function getTextPos(d, type) { + var _a; + var position = this.config.data_labels_position; + var id = d.id, index = d.index, value = d.value; + return (_a = (isFunction(position) ? + position.bind(this.api)(type, value, id, index, this.$el.text) : + (id in position ? position[id] : position)[type])) !== null && _a !== void 0 ? _a : 0; +} +var text = { + opacityForText: function (d) { + var $$ = this; + return $$.isBarType(d) && !$$.meetsLabelThreshold(Math.abs($$.getRatio("bar", d)), "bar") ? + "0" : + ($$.hasDataLabel ? null : "0"); + }, + /** + * Initializes the text + * @private + */ + initText: function () { + var $el = this.$el; + $el.main.select(".".concat($COMMON.chart)).append("g") + .attr("class", $TEXT.chartTexts) + .style("pointer-events", $el.funnel || $el.treemap ? "none" : null); + }, + /** + * Update chartText + * @param {object} targets $$.data.targets + * @private + */ + updateTargetsForText: function (targets) { + var $$ = this; + var classChartText = $$.getChartClass("Text"); + var classTexts = $$.getClass("texts", "id"); + var classFocus = $$.classFocus.bind($$); + var mainTextUpdate = $$.$el.main.select(".".concat($TEXT.chartTexts)) + .selectAll(".".concat($TEXT.chartText)) + .data(targets) + .attr("class", function (d) { return "".concat(classChartText(d)).concat(classFocus(d)).trim(); }); + var mainTextEnter = mainTextUpdate.enter().append("g") + .style("opacity", "0") + .attr("class", classChartText) + .call($$.setCssRule(true, " .".concat($TEXT.text), ["fill", "pointer-events:none"], $$.updateTextColor)); + mainTextEnter.append("g") + .attr("class", classTexts); + }, + /** + * Update text + * @private + */ + updateText: function () { + var $$ = this; + var $el = $$.$el, $T = $$.$T, config = $$.config, axis = $$.axis; + var classText = $$.getClass("text", "index"); + var labelsCentered = config.data_labels.centered; + var text = $el.main.selectAll(".".concat($TEXT.texts)) + .selectAll(".".concat($TEXT.text)) + .data($$.labelishData.bind($$)); + $T(text.exit()) + .style("fill-opacity", "0") + .remove(); + $el.text = text.enter() + .append("text") + .merge(text) + .attr("class", classText) + .attr("text-anchor", function (d) { + var isInverted = config["axis_".concat(axis === null || axis === void 0 ? void 0 : axis.getId(d.id), "_inverted")]; + // when value is negative or + var isEndAnchor = isInverted ? d.value > 0 : d.value < 0; + if ($$.isCandlestickType(d)) { + var data = $$.getCandlestickData(d); + isEndAnchor = !(data === null || data === void 0 ? void 0 : data._isUp); + } + else if ($$.isTreemapType(d)) { + return labelsCentered ? "middle" : "start"; + } + return (config.axis_rotated ? (isEndAnchor ? "end" : "start") : "middle"); + }) + .style("fill", $$.getStylePropValue($$.updateTextColor)) + .style("fill-opacity", "0") + .each(function (d, i, texts) { + var node = select(this); + var value = d.value; + if ($$.isBubbleZType(d)) { + value = $$.getBubbleZData(value, "z"); + } + else if ($$.isCandlestickType(d)) { + var data = $$.getCandlestickData(d); + if (data) { + value = data.close; + } + } + value = $$.isTreemapType(d) ? + $$.treemapDataLabelFormat(d)(node) : + $$.dataLabelFormat(d.id)(value, d.id, d.index, texts); + if (isNumber(value)) { + this.textContent = value; + } + else { + setTextValue(node, value); + } + }); + }, + updateTextColor: function (d) { + var $$ = this; + var config = $$.config; + var labelColors = config.data_labels_colors; + var defaultColor = ($$.isArcType(d) && !$$.isRadarType(d)) || $$.isFunnelType(d) || $$.isTreemapType(d) ? + null : + $$.color(d); + var color; + if (isString(labelColors)) { + color = labelColors; + } + else if (isObject(labelColors)) { + var id = (d.data || d).id; + color = labelColors[id]; + } + else if (isFunction(labelColors)) { + color = labelColors.bind($$.api)(defaultColor, d); + } + if ($$.isCandlestickType(d) && !isFunction(labelColors)) { + var value = $$.getCandlestickData(d); + if (!(value === null || value === void 0 ? void 0 : value._isUp)) { + var downColor = config.candlestick_color_down; + color = isObject(downColor) ? downColor[d.id] : downColor; + } + } + return color || defaultColor; + }, + /** + * Update data label text background color + * @param {object} d Data object + * @param {object|string} option option object + * @returns {string|null} + * @private + */ + updateTextBGColor: function (d, option) { + var $$ = this; + var $el = $$.$el; + var color = ""; + if (isString(option) || isObject(option)) { + var id = isString(option) ? + "" : + $$.getTargetSelectorSuffix("id" in d ? d.id : d.data.id); + var filter = $el.defs.select(["filter[id*='labels-bg", "']"].join(id)); + if (filter.size()) { + color = "url(#".concat(filter.attr("id"), ")"); + } + } + return color || null; + }, + /** + * Redraw chartText + * @param {Function} getX Positioning function for x + * @param {Function} getY Positioning function for y + * @param {boolean} forFlow Weather is flow + * @param {boolean} withTransition transition is enabled + * @returns {Array} + * @private + */ + redrawText: function (getX, getY, forFlow, withTransition) { + var $$ = this; + var $T = $$.$T, axis = $$.axis, config = $$.config, hasTreemap = $$.state.hasTreemap; + var t = getRandom(true); + var isRotated = config.axis_rotated; + var angle = config.data_labels.rotate; + var anchorString = getRotateAnchor(angle); + var rotateString = angle ? "rotate(".concat(angle, ")") : ""; + $$.$el.text + .style("fill", $$.getStylePropValue($$.updateTextColor)) + .attr("filter", function (d) { return $$.updateTextBGColor.bind($$)(d, config.data_labels_backgroundColors); }) + .style("fill-opacity", forFlow ? 0 : $$.opacityForText.bind($$)) + .each(function (d, i) { + // do not apply transition for newly added text elements + var node = $T(hasTreemap && this.childElementCount ? this.parentNode : this, !!(withTransition && this.getAttribute("x")), t); + var isInverted = config["axis_".concat(axis === null || axis === void 0 ? void 0 : axis.getId(d.id), "_inverted")]; + var pos = { + x: getX.bind(this)(d, i), + y: getY.bind(this)(d, i) + }; + if (angle) { + pos = setRotatePos.bind($$)(d, pos, anchorString, isRotated, isInverted); + node.attr("text-anchor", anchorString); + } + // when is multiline + if (this.childElementCount || angle) { + node.attr("transform", "translate(".concat(pos.x, " ").concat(pos.y, ") ").concat(rotateString)); + } + else { + node.attr("x", pos.x).attr("y", pos.y); + } + }); + // need to return 'true' as of being pushed to the redraw list + // ref: getRedrawList() + return true; + }, + /** + * Gets the getBoundingClientRect value of the element + * @param {HTMLElement|d3.selection} element Target element + * @param {string} className Class name + * @returns {object} value of element.getBoundingClientRect() + * @private + */ + getTextRect: function (element, className) { + var $$ = this; + var base = element.node ? element.node() : element; + if (!/text/i.test(base.tagName)) { + base = base.querySelector("text"); + } + var text = base.textContent; + var cacheKey = "".concat(KEY.textRect, "-").concat(text.replace(/\W/g, "_")); + var rect = $$.cache.get(cacheKey); + if (!rect) { + $$.$el.svg.append("text") + .style("visibility", "hidden") + .style("font", select(base).style("font")) + .classed(className, true) + .text(text) + .call(function (v) { + rect = getBoundingRect(v.node()); + }) + .remove(); + $$.cache.add(cacheKey, rect); + } + return rect; + }, + /** + * Gets the x or y coordinate of the text + * @param {object} indices Indices values + * @param {boolean} forX whether or not to x + * @returns {number} coordinates + * @private + */ + generateXYForText: function (indices, forX) { + var $$ = this; + var _a = $$.state, hasRadar = _a.hasRadar, hasFunnel = _a.hasFunnel, hasTreemap = _a.hasTreemap; + var types = Object.keys(indices); + var points = {}; + var getter = forX ? $$.getXForText : $$.getYForText; + hasFunnel && types.push("funnel"); + hasRadar && types.push("radar"); + hasTreemap && types.push("treemap"); + types.forEach(function (v) { + points[v] = $$["generateGet".concat(capitalize(v), "Points")](indices[v], false); + }); + return function (d, i) { + var type = ($$.isAreaType(d) && "area") || + ($$.isBarType(d) && "bar") || + ($$.isCandlestickType(d) && "candlestick") || + ($$.isFunnelType(d) && "funnel") || + ($$.isRadarType(d) && "radar") || + ($$.isTreemapType(d) && "treemap") || "line"; + return getter.call($$, points[type](d, i), d, this); + }; + }, + /** + * Get centerized text position for bar type data.label.text + * @param {object} d Data object + * @param {Array} points Data points position + * @param {HTMLElement} textElement Data label text element + * @param {string} type 'x' or 'y' + * @returns {number} Position value + * @private + */ + getCenteredTextPos: function (d, points, textElement, type) { + var $$ = this; + var config = $$.config; + var isRotated = config.axis_rotated; + var isBarType = $$.isBarType(d); + var isTreemapType = $$.isTreemapType(d); + if (config.data_labels.centered && (isBarType || isTreemapType)) { + var rect = getBoundingRect(textElement); + if (isBarType) { + var isPositive = $$.getRangedData(d, null, "bar") >= 0; + if (isRotated) { + var w = (isPositive ? + points[1][1] - points[0][1] : + points[0][1] - points[1][1]) / 2 + (rect.width / 2); + return isPositive ? -w - 3 : w + 2; + } + else { + var h = (isPositive ? + points[0][1] - points[1][1] : + points[1][1] - points[0][1]) / 2 + (rect.height / 2); + return isPositive ? h : -h - 2; + } + } + else if (isTreemapType) { + return type === "x" ? + (points[1][0] - points[0][0]) / 2 : + (points[1][1] - points[0][1]) / 2 + (rect.height / 2); + } + } + return 0; + }, + /** + * Gets the x coordinate of the text + * @param {object} points Data points position + * @param {object} d Data object + * @param {HTMLElement} textElement Data label text element + * @returns {number} x coordinate + * @private + */ + getXForText: function (points, d, textElement) { + var _a; + var $$ = this; + var config = $$.config; + var isRotated = config.axis_rotated; + var isFunnelType = $$.isFunnelType(d); + var isTreemapType = $$.isTreemapType(d); + var xPos = points ? points[0][0] : 0; + if ($$.isCandlestickType(d)) { + if (isRotated) { + xPos = ((_a = $$.getCandlestickData(d)) === null || _a === void 0 ? void 0 : _a._isUp) ? points[2][2] + 4 : points[2][1] - 4; + } + else { + xPos += (points[1][0] - xPos) / 2; + } + } + else if (isFunnelType) { + xPos += $$.state.current.width / 2; + } + else if (isTreemapType) { + xPos += config.data_labels.centered ? 0 : 5; + } + else { + if (isRotated) { + var isInverted = config["axis_".concat($$.axis.getId(d.id), "_inverted")]; + var padding = $$.isBarType(d) ? 4 : 6; + var value = d.value; + xPos = points[2][1]; + if (isInverted) { + xPos -= padding * (value > 0 ? 1 : -1); + } + else { + xPos += padding * (value < 0 ? -1 : 1); + } + } + else { + xPos = $$.hasType("bar") ? (points[2][0] + points[0][0]) / 2 : xPos; + } + } + if (isRotated || isTreemapType) { + xPos += $$.getCenteredTextPos(d, points, textElement, "x"); + } + return xPos + getTextPos.call(this, d, "x"); + }, + /** + * Gets the y coordinate of the text + * @param {object} points Data points position + * @param {object} d Data object + * @param {HTMLElement} textElement Data label text element + * @returns {number} y coordinate + * @private + */ + getYForText: function (points, d, textElement) { + var $$ = this; + var axis = $$.axis, config = $$.config, state = $$.state; + var isRotated = config.axis_rotated; + var isInverted = config["axis_".concat(axis === null || axis === void 0 ? void 0 : axis.getId(d.id), "_inverted")]; + var isBarType = $$.isBarType(d); + var isFunnelType = $$.isFunnelType(d); + var isTreemapType = $$.isTreemapType(d); + var r = config.point_r; + var rect = getBoundingRect(textElement); + var value = d.value; + var baseY = 3; + var yPos; + if ($$.isCandlestickType(d)) { + value = $$.getCandlestickData(d); + if (isRotated) { + yPos = points[0][0]; + yPos += ((points[1][0] - yPos) / 2) + baseY; + } + else { + yPos = value && value._isUp ? points[2][2] - baseY : points[2][1] + (baseY * 4); + if (isInverted) { + yPos += 15 * (value._isUp ? 1 : -1); + } + } + } + else if (isFunnelType) { + yPos = points ? + points[0][1] + ((points[1][1] - points[0][1]) / 2) + rect.height / 2 - 3 : + 0; + } + else if (isTreemapType) { + yPos = points[0][1] + (config.data_labels.centered ? 0 : rect.height + 5); + } + else { + if (isRotated) { + yPos = (points[0][0] + points[2][0] + rect.height * 0.6) / 2; + } + else { + yPos = points[2][1]; + if (isNumber(r) && r > 5 && ($$.isLineType(d) || $$.isScatterType(d))) { + baseY += config.point_r / 2.3; + } + if (value < 0 || (value === 0 && !state.hasPositiveValue && state.hasNegativeValue)) { + yPos += isInverted ? (isBarType ? -3 : -5) : (rect.height + (isBarType ? -baseY : baseY)); + } + else { + var diff = -baseY * 2; + if (isBarType) { + diff = -baseY; + } + else if ($$.isBubbleType(d)) { + diff = baseY; + } + if (isInverted) { + diff = isBarType ? 10 : 15; + } + yPos += diff; + } + } + } + if (!isRotated || isTreemapType) { + yPos += $$.getCenteredTextPos(d, points, textElement, "y"); + } + return yPos + getTextPos.call(this, d, "y"); + }, + /** + * Calculate if two or more text nodes are overlapping + * Mark overlapping text nodes with "text-overlapping" class + * @param {string} id Axis id + * @param {ChartInternal} $$ ChartInternal context + * @param {string} selector Selector string + * @private + */ + markOverlapped: function (id, $$, selector) { + var textNodes = $$.$el.arcs.selectAll(selector); + var filteredTextNodes = textNodes.filter(function (node) { return node.data.id !== id; }); + var textNode = textNodes.filter(function (node) { return node.data.id === id; }); + var translate = getTranslation(textNode.node()); + // Calculates the length of the hypotenuse + var calcHypo = function (x, y) { return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); }; + textNode.node() && filteredTextNodes.each(function () { + var coordinate = getTranslation(this); + var filteredTextNode = select(this); + var nodeForWidth = calcHypo(translate.e, translate.f) > calcHypo(coordinate.e, coordinate.f) ? + textNode : + filteredTextNode; + var overlapsX = Math.ceil(Math.abs(translate.e - coordinate.e)) < + Math.ceil(nodeForWidth.node().getComputedTextLength()); + var overlapsY = Math.ceil(Math.abs(translate.f - coordinate.f)) < + parseInt(textNode.style("font-size"), 10); + filteredTextNode.classed($TEXT.TextOverlapping, overlapsX && overlapsY); + }); + }, + /** + * Calculate if two or more text nodes are overlapping + * Remove "text-overlapping" class on selected text nodes + * @param {ChartInternal} $$ ChartInternal context + * @param {string} selector Selector string + * @private + */ + undoMarkOverlapped: function ($$, selector) { + $$.$el.arcs.selectAll(selector) + .each(function () { + selectAll([this, this.previousSibling]) + .classed($TEXT.TextOverlapping, false); + }); + }, + /** + * Check if meets the ratio to show data label text + * @param {number} ratio ratio to meet + * @param {string} type chart type + * @returns {boolean} + * @private + */ + meetsLabelThreshold: function (ratio, type) { + if (ratio === void 0) { ratio = 0; } + var $$ = this; + var config = $$.config; + var threshold = config["".concat(type, "_label_threshold")] || 0; + return ratio >= threshold; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Get the text position + * @param {string} pos right, left or center + * @param {number} width chart width + * @returns {string|number} text-anchor value or position in pixel + * @private + */ +function getTextXPos(pos, width) { + if (pos === void 0) { pos = "left"; } + var isNum = isNumber(width); + var position; + if (pos.indexOf("center") > -1) { + position = isNum ? width / 2 : "middle"; + } + else if (pos.indexOf("right") > -1) { + position = isNum ? width : "end"; + } + else { + position = isNum ? 0 : "start"; + } + return position; +} +var title = { + /** + * Initializes the title + * @private + */ + initTitle: function () { + var $$ = this; + var config = $$.config, $el = $$.$el; + if (config.title_text) { + $el.title = $el.svg.append("g"); + var text = $el.title + .append("text") + .style("text-anchor", getTextXPos(config.title_position)) + .attr("class", $TEXT.title); + setTextValue(text, config.title_text, [0.3, 1.5]); + } + }, + /** + * Redraw title + * @private + */ + redrawTitle: function () { + var $$ = this; + var config = $$.config, current = $$.state.current, title = $$.$el.title; + if (title) { + var x = getTextXPos(config.title_position, current.width); + var y = (config.title_padding.top || 0) + + $$.getTextRect($$.$el.title, $TEXT.title).height; + title.attr("transform", "translate(".concat(x, ", ").concat(y, ")")); + } + }, + /** + * Get title padding + * @returns {number} padding value + * @private + */ + getTitlePadding: function () { + var $$ = this; + var title = $$.$el.title, config = $$.config; + return (config.title_padding.top || 0) + + (title ? $$.getTextRect(title, $TEXT.title).height : 0) + + (config.title_padding.bottom || 0); + } +}; + +var tooltip$1 = { + /** + * Initializes the tooltip + * @private + */ + initTooltip: function () { + var $$ = this; + var config = $$.config, $el = $$.$el; + $el.tooltip = select(config.tooltip_contents.bindto); + if ($el.tooltip.empty()) { + $el.tooltip = $el.chart + .append("div") + .attr("class", $TOOLTIP.tooltipContainer) + .style("position", "absolute") + .style("pointer-events", "none") + .style("display", "none"); + } + $$.bindTooltipResizePos(); + }, + /** + * Show tooltip at initialization. + * Is called only when tooltip.init.show=true option is set + * @private + */ + initShowTooltip: function () { + var _a; + var _b; + var $$ = this; + var config = $$.config, $el = $$.$el, _c = $$.state, hasAxis = _c.hasAxis, hasRadar = _c.hasRadar; + // Show tooltip if needed + if (config.tooltip_init_show) { + var isArc = !(hasAxis || hasRadar); + if (((_b = $$.axis) === null || _b === void 0 ? void 0 : _b.isTimeSeries()) && isString(config.tooltip_init_x)) { + config.tooltip_init_x = parseDate.call($$, config.tooltip_init_x); + } + $$.api.tooltip.show({ + data: (_a = {}, + _a[isArc ? "index" : "x"] = config.tooltip_init_x, + _a) + }); + var position = config.tooltip_init_position; + if (!config.tooltip_contents.bindto && !isEmpty(position)) { + var _d = position.top, top_1 = _d === void 0 ? 0 : _d, _e = position.left, left = _e === void 0 ? 50 : _e; + $el.tooltip.style("top", isString(top_1) ? top_1 : "".concat(top_1, "px")) + .style("left", isString(left) ? left : "".concat(left, "px")) + .style("display", null); + } + } + }, + /** + * Get the tooltip HTML string + * @param {Array} args Arguments + * @returns {string} Formatted HTML string + * @private + */ + getTooltipHTML: function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var $$ = this; + var api = $$.api, config = $$.config; + return isFunction(config.tooltip_contents) ? config.tooltip_contents.bind(api).apply(void 0, args) : $$.getTooltipContent.apply($$, args); + }, + /** + * Returns the tooltip content(HTML string) + * @param {object} d data + * @param {Function} defaultTitleFormat Default title format + * @param {Function} defaultValueFormat Default format for each data value in the tooltip. + * @param {Function} color Color function + * @returns {string} html + * @private + */ + getTooltipContent: function (d, defaultTitleFormat, defaultValueFormat, color) { + var _a; + var $$ = this; + var api = $$.api, config = $$.config, state = $$.state, $el = $$.$el; + // get formatter function + var _b = ["title", "name", "value"].map(function (v) { + var fn = config["tooltip_format_".concat(v)]; + return isFunction(fn) ? fn.bind(api) : fn; + }), titleFn = _b[0], nameFn = _b[1], valueFn = _b[2]; + // determine fotmatter function with sanitization + var titleFormat = function () { + var arg = []; + for (var _i = 0; _i < arguments.length; _i++) { + arg[_i] = arguments[_i]; + } + return sanitize((titleFn || defaultTitleFormat).apply(void 0, arg)); + }; + var nameFormat = function () { + var arg = []; + for (var _i = 0; _i < arguments.length; _i++) { + arg[_i] = arguments[_i]; + } + return sanitize((nameFn || (function (name) { return name; })).apply(void 0, arg)); + }; + var valueFormat = function () { + var arg = []; + for (var _i = 0; _i < arguments.length; _i++) { + arg[_i] = arguments[_i]; + } + var fn = valueFn || (state.hasTreemap || $$.isStackNormalized() ? + function (v, ratio) { return "".concat((ratio * 100).toFixed(2), "%"); } : + defaultValueFormat); + return sanitize(fn.apply(void 0, arg)); + }; + var order = config.tooltip_order; + var getRowValue = function (row) { return ($$.axis && $$.isBubbleZType(row) ? + $$.getBubbleZData(row.value, "z") : + $$.getBaseValue(row)); }; + var getBgColor = $$.levelColor ? function (row) { return $$.levelColor(row.value); } : function (row) { return color(row); }; + var contents = config.tooltip_contents; + var tplStr = contents.template; + var targetIds = $$.mapToTargetIds(); + if (order === null && config.data_groups.length) { + // for stacked data, order should aligned with the visually displayed data + var ids_1 = $$.orderTargets($$.data.targets) + .map(function (i2) { return i2.id; }) + .reverse(); + d.sort(function (a, b) { + var v1 = a ? a.value : null; + var v2 = b ? b.value : null; + if (v1 > 0 && v2 > 0) { + v1 = a.id ? ids_1.indexOf(a.id) : null; + v2 = b.id ? ids_1.indexOf(b.id) : null; + } + return v1 - v2; + }); + } + else if (/^(asc|desc)$/.test(order)) { + var isAscending_1 = order === "asc"; + d.sort(function (a, b) { + var v1 = a ? getRowValue(a) : null; + var v2 = b ? getRowValue(b) : null; + return isAscending_1 ? v1 - v2 : v2 - v1; + }); + } + else if (isFunction(order)) { + d.sort(order.bind(api)); + } + var tpl = $$.getTooltipContentTemplate(tplStr); + var len = d.length; + var text; + var row; + var param; + var value; + var i; + var _loop_1 = function () { + row = d[i]; + if (!row || !(getRowValue(row) || getRowValue(row) === 0)) { + return "continue"; + } + if (isUndefined(text)) { + var title = (state.hasAxis || state.hasRadar) && titleFormat(row.x); + text = tplProcess(tpl[0], { + CLASS_TOOLTIP: $TOOLTIP.tooltip, + TITLE: isValue(title) ? + (tplStr ? title : "<tr><th colspan=\"2\">".concat(title, "</th></tr>")) : + "" + }); + } + if (!row.ratio && $el.arcs) { + param = ["arc", $$.$el.arcs.select("path.".concat($ARC.arc, "-").concat(row.id)).data()[0]]; + row.ratio = $$.getRatio.apply($$, param); + } + // arrange param to be passed to formatter + param = [row.ratio, row.id, row.index]; + if ($$.isAreaRangeType(row)) { + var _c = ["high", "low"].map(function (v) { + return valueFormat.apply(void 0, __spreadArray([$$.getRangedData(row, v)], param, false)); + }), high = _c[0], low = _c[1]; + var mid = valueFormat.apply(void 0, __spreadArray([getRowValue(row)], param, false)); + value = "<b>Mid:</b> ".concat(mid, " <b>High:</b> ").concat(high, " <b>Low:</b> ").concat(low); + } + else if ($$.isCandlestickType(row)) { + var _d = ["open", "high", "low", "close", "volume"] + .map(function (v) { + var value = $$.getRangedData(row, v, "candlestick"); + return value ? valueFormat.apply(void 0, __spreadArray([$$.getRangedData(row, v, "candlestick")], param, false)) : + undefined; + }), open_1 = _d[0], high = _d[1], low = _d[2], close_1 = _d[3], volume = _d[4]; + value = + "<b>Open:</b> ".concat(open_1, " <b>High:</b> ").concat(high, " <b>Low:</b> ").concat(low, " <b>Close:</b> ").concat(close_1).concat(volume ? " <b>Volume:</b> ".concat(volume) : ""); + } + else if ($$.isBarRangeType(row)) { + var rangeValue = row.value, id = row.id, index = row.index; + value = "".concat(valueFormat(rangeValue, undefined, id, index)); + } + else { + value = valueFormat.apply(void 0, __spreadArray([getRowValue(row)], param, false)); + } + if (value !== undefined) { + // Skip elements when their name is set to null + if (row.name === null) { + return "continue"; + } + var name_1 = nameFormat.apply(void 0, __spreadArray([(_a = row.name) !== null && _a !== void 0 ? _a : row.id], param, false)); + var color_1 = getBgColor(row); + var contentValue_1 = { + CLASS_TOOLTIP_NAME: $TOOLTIP.tooltipName + $$.getTargetSelectorSuffix(row.id), + COLOR: (tplStr || !$$.patterns) ? + color_1 : + "<svg><rect style=\"fill:".concat(color_1, "\" width=\"10\" height=\"10\"></rect></svg>"), + NAME: name_1, + VALUE: value + }; + if (tplStr && isObject(contents.text)) { + var index_1 = targetIds.indexOf(row.id); + Object.keys(contents.text).forEach(function (key) { + contentValue_1[key] = contents.text[key][index_1]; + }); + } + text += tplProcess(tpl[1], contentValue_1); + } + }; + for (i = 0; i < len; i++) { + _loop_1(); + } + return "".concat(text, "</table>"); + }, + /** + * Get the content template string + * @param {string} tplStr Tempalte string + * @returns {Array} Template string + * @private + */ + getTooltipContentTemplate: function (tplStr) { + return (tplStr || "<table class=\"{=CLASS_TOOLTIP}\"><tbody>\n\t\t\t\t{=TITLE}\n\t\t\t\t{{<tr class=\"{=CLASS_TOOLTIP_NAME}\">\n\t\t\t\t\t<td class=\"name\">".concat(this.patterns ? "{=COLOR}" : "<span style=\"background-color:{=COLOR}\"></span>", "{=NAME}</td>\n\t\t\t\t\t<td class=\"value\">{=VALUE}</td>\n\t\t\t\t</tr>}}\n\t\t\t</tbody></table>")) + .replace(/(\r?\n|\t)/g, "") + .split(/{{(.*)}}/); + }, + /** + * Update tooltip position coordinate + * @param {object} dataToShow Data object + * @param {SVGElement} eventTarget Event element + * @private + */ + setTooltipPosition: function (dataToShow, eventTarget) { + var _a, _b; + var $$ = this; + var config = $$.config, scale = $$.scale, state = $$.state, _c = $$.$el, eventRect = _c.eventRect, tooltip = _c.tooltip; + var bindto = config.tooltip_contents.bindto; + var isRotated = config.axis_rotated; + var datum = tooltip === null || tooltip === void 0 ? void 0 : tooltip.datum(); + if (!bindto && datum) { + var data = dataToShow !== null && dataToShow !== void 0 ? dataToShow : JSON.parse(datum.current); + var _d = getPointer(state.event, eventTarget !== null && eventTarget !== void 0 ? eventTarget : eventRect === null || eventRect === void 0 ? void 0 : eventRect.node()), x = _d[0], y = _d[1]; // get mouse event position + var currPos = { x: x, y: y }; + if (state.hasAxis && scale.x && datum && "x" in datum) { + var getYPos = function (value, id, axisId) { + var _a; + if (value === void 0) { value = 0; } + if (axisId === void 0) { axisId = "y"; } + var scaleFn = scale[id ? (_a = $$.axis) === null || _a === void 0 ? void 0 : _a.getId(id) : axisId]; + return scaleFn ? + scaleFn(value) + (isRotated ? state.margin.left : state.margin.top) : + 0; + }; + currPos.xAxis = scale.x(datum.x) + ( + // add margin only when user specified tooltip.position function + config.tooltip_position ? (isRotated ? state.margin.top : state.margin.left) : 0); + if (data.length === 1) { + currPos.yAxis = getYPos(data[0].value, data[0].id); + } + else { + currPos.yAxis = getYPos; + } + } + var _e = datum.width, width = _e === void 0 ? 0 : _e, _f = datum.height, height = _f === void 0 ? 0 : _f; + // Get tooltip position + var pos_1 = (_b = (_a = config.tooltip_position) === null || _a === void 0 ? void 0 : _a.bind($$.api)(data, width, height, eventRect === null || eventRect === void 0 ? void 0 : eventRect.node(), currPos)) !== null && _b !== void 0 ? _b : $$.getTooltipPosition.bind($$)(width, height, currPos); + ["top", "left"].forEach(function (v) { + var value = pos_1[v]; + tooltip.style(v, "".concat(value, "px")); + // Remember left pos in percentage to be used on resize call + if (v === "left" && !datum.xPosInPercent) { + datum.xPosInPercent = value / state.current.width * 100; + } + }); + } + }, + /** + * Returns the position of the tooltip + * @param {string} tWidth Width value of tooltip element + * @param {string} tHeight Height value of tooltip element + * @param {object} currPos Current mouse position + * @returns {object} top, left value + * @private + */ + getTooltipPosition: function (tWidth, tHeight, currPos) { + var _a, _b, _c; + var $$ = this; + var config = $$.config, scale = $$.scale, state = $$.state; + var width = state.width, height = state.height, current = state.current, hasFunnel = state.hasFunnel, hasRadar = state.hasRadar, hasTreemap = state.hasTreemap, isLegendRight = state.isLegendRight, inputType = state.inputType; + var hasGauge = $$.hasType("gauge") && !config.gauge_fullCircle; + var isRotated = config.axis_rotated; + var hasArcType = $$.hasArcType(); + var svgLeft = $$.getSvgLeft(true); + var chartRight = svgLeft + current.width - $$.getCurrentPaddingByDirection("right"); + var size = 20; + var x = currPos.x, y = currPos.y; + // Determine tooltip position + if (hasRadar) { + x += x >= (width / 2) ? 15 : -(tWidth + 15); + y += 15; + } + else if (hasArcType) { + var notTouch = inputType !== "touch"; + if (notTouch) { + var titlePadding = (_b = (_a = $$.getTitlePadding) === null || _a === void 0 ? void 0 : _a.call($$)) !== null && _b !== void 0 ? _b : 0; + if (titlePadding && hasGauge && ((_c = config.arc_rangeText_values) === null || _c === void 0 ? void 0 : _c.length)) { + titlePadding += 10; + } + x += (width - (isLegendRight ? $$.getLegendWidth() : 0)) / 2; + y += (hasGauge ? height : (height / 2) + tHeight) + titlePadding; + } + } + else if (hasFunnel || hasTreemap) { + y += tHeight; + } + else { + var padding = { + top: $$.getCurrentPaddingByDirection("top", true), + left: $$.getCurrentPaddingByDirection("left", true) + }; + if (isRotated) { + x += svgLeft + padding.left + size; + y = padding.top + currPos.xAxis + size; + chartRight -= svgLeft; + } + else { + x = svgLeft + padding.left + size + (scale.zoom ? x : currPos.xAxis); + y += padding.top - 5; + } + } + // when tooltip left + tWidth > chart's width + if ((x + tWidth + 15) > chartRight) { + x -= tWidth + (hasFunnel || hasTreemap || hasArcType ? 0 : (isRotated ? size * 2 : 38)); + } + if (y + tHeight > current.height) { + var gap = hasTreemap ? tHeight + 10 : 30; + y -= hasGauge ? tHeight * 1.5 : tHeight + gap; + } + var pos = { top: y, left: x }; + // make sure to not be positioned out of viewport + Object.keys(pos).forEach(function (v) { + if (pos[v] < 0) { + pos[v] = 0; + } + }); + return pos; + }, + /** + * Show the tooltip + * @param {object} selectedData Data object + * @param {SVGElement} eventTarget Event element + * @private + */ + showTooltip: function (selectedData, eventTarget) { + var $$ = this; + var config = $$.config, tooltip = $$.$el.tooltip; + var dataToShow = selectedData.filter(function (d) { return d && isValue($$.getBaseValue(d)); }); + if (!tooltip || dataToShow.length === 0 || !config.tooltip_show) { + return; + } + var datum = tooltip.datum(); + var dataStr = JSON.stringify(selectedData); + if (!datum || datum.current !== dataStr) { + var _a = selectedData.concat().sort()[0], index = _a.index, x = _a.x; + callFn(config.tooltip_onshow, $$.api, selectedData); + // set tooltip content + tooltip + .html($$.getTooltipHTML(selectedData, // data + $$.axis ? $$.axis.getXAxisTickFormat() : $$.categoryName.bind($$), // defaultTitleFormat + $$.getDefaultValueFormat(), // defaultValueFormat + $$.color // color + )) + .style("display", null) + .style("visibility", null) // for IE9 + .datum(datum = { + index: index, + x: x, + current: dataStr, + width: tooltip.property("offsetWidth"), + height: tooltip.property("offsetHeight") + }); + callFn(config.tooltip_onshown, $$.api, selectedData); + $$._handleLinkedCharts(true, index); + } + $$.setTooltipPosition(dataToShow, eventTarget); + }, + /** + * Adjust tooltip position on resize event + * @private + */ + bindTooltipResizePos: function () { + var $$ = this; + var resizeFunction = $$.resizeFunction, state = $$.state, tooltip = $$.$el.tooltip; + resizeFunction.add(function () { + if (tooltip.style("display") === "block") { + var current = state.current; + var _a = tooltip.datum(), width = _a.width, xPosInPercent = _a.xPosInPercent; + var value = current.width / 100 * xPosInPercent; + var diff = current.width - (value + width); + // if tooltip size overs current viewport size + if (diff < 0) { + value += diff; + } + tooltip.style("left", "".concat(value, "px")); + } + }); + }, + /** + * Hide the tooltip + * @param {boolean} force Force to hide + * @private + */ + hideTooltip: function (force) { + var _a; + var $$ = this; + var api = $$.api, config = $$.config, tooltip = $$.$el.tooltip; + if (tooltip && tooltip.style("display") !== "none" && (!config.tooltip_doNotHide || force)) { + var selectedData = JSON.parse((_a = tooltip.datum().current) !== null && _a !== void 0 ? _a : {}); + callFn(config.tooltip_onhide, api, selectedData); + // hide tooltip + tooltip + .style("display", "none") + .style("visibility", "hidden") // for IE9 + .datum(null); + callFn(config.tooltip_onhidden, api, selectedData); + } + }, + /** + * Toggle display for linked chart instances + * @param {boolean} show true: show, false: hide + * @param {number} index x Axis index + * @private + */ + _handleLinkedCharts: function (show, index) { + var $$ = this; + var charts = $$.charts, config = $$.config, event = $$.state.event; + // Prevent propagation among instances if isn't instantiated from the user's event + // https://github.com/naver/billboard.js/issues/1979 + if ((event === null || event === void 0 ? void 0 : event.isTrusted) && config.tooltip_linked && charts.length > 1) { + var linkedName_1 = config.tooltip_linked_name; + charts + .filter(function (c) { return c !== $$.api; }) + .forEach(function (c) { + var _a = c.internal, config = _a.config, $el = _a.$el; + var isLinked = config.tooltip_linked; + var name = config.tooltip_linked_name; + var isInDom = doc.body.contains($el.chart.node()); + if (isLinked && linkedName_1 === name && isInDom) { + var data = $el.tooltip.data()[0]; + var isNotSameIndex = index !== (data === null || data === void 0 ? void 0 : data.index); + try { + c.tooltip[show && isNotSameIndex ? "show" : "hide"]({ index: index }); + } + catch (e) { } + } + }); + } + }, + /** + * Update tooltip content on redraw + * - In a situation where tooltip is displayed and data load happens, it should reflect loaded data to tooltip + * @param {d3Selection} context Event rect element + * @param {number} index Data index + * @private + */ + updateTooltipOnRedraw: function (context, index) { + var _a; + var $$ = this; + var config = $$.config, _b = $$.$el, eventRect = _b.eventRect, svg = _b.svg, tooltip = _b.tooltip, _c = $$.state, event = _c.event, hasAxis = _c.hasAxis, hasRadar = _c.hasRadar, hasTreemap = _c.hasTreemap; + // Update tooltip, when tooltip is in shown state + if ((tooltip === null || tooltip === void 0 ? void 0 : tooltip.style("display")) === "block" && event) { + var rect = context !== null && context !== void 0 ? context : (_a = (hasRadar ? svg : eventRect)) === null || _a === void 0 ? void 0 : _a.node(); + // for Axis based & Radar + if (hasAxis || hasRadar) { + if ($$.isMultipleX()) { + $$.selectRectForMultipleXs(rect, false); + } + else { + var idx = index !== null && index !== void 0 ? index : $$.getDataIndexFromEvent(event); + if (index === -1) { + $$.api.tooltip.hide(); + } + else { + $$.selectRectForSingle(rect, idx); + $$.setExpand(idx, null, true); + } + } + // for Arc & Treemap + } + else { + var clientX_1 = event.clientX, clientY_1 = event.clientY; + setTimeout(function () { + var target = doc.elementFromPoint(clientX_1, clientY_1); + var data = select(target).datum(); + if (data) { + var d = $$.hasArcType() ? + $$.convertToArcData($$.updateAngle(data)) : + data === null || data === void 0 ? void 0 : data.data; + hasTreemap && (target = svg.node()); + d && $$.showTooltip([d], target); + } + else { + $$.api.tooltip.hide(); + } + }, config.transition_duration); + } + } + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var transform = { + getTranslate: function (target, index) { + var _a; + if (index === void 0) { index = 0; } + var $$ = this; + var config = $$.config, state = $$.state; + var isRotated = config.axis_rotated; + var padding = 0; + var x; + var y; + if (index && /^(x|y2?)$/.test(target)) { + padding = $$.getAxisSize(target) * index; + } + if (target === "main") { + x = asHalfPixel(state.margin.left); + y = asHalfPixel(state.margin.top); + } + else if (target === "context") { + x = asHalfPixel(state.margin2.left); + y = asHalfPixel(state.margin2.top); + } + else if (target === "legend") { + x = state.margin3.left; + y = state.margin3.top; + } + else if (target === "x") { + x = isRotated ? -padding : 0; + y = isRotated ? 0 : state.height + padding; + } + else if (target === "y") { + x = isRotated ? 0 : -padding; + y = isRotated ? state.height + padding : 0; + } + else if (target === "y2") { + x = isRotated ? 0 : state.width + padding; + y = isRotated ? -padding - 1 : 0; + } + else if (target === "subX") { + x = 0; + y = isRotated ? 0 : state.height2; + } + else if (target === "arc") { + x = state.arcWidth / 2; + y = state.arcHeight / 2; + if ((_a = config.arc_rangeText_values) === null || _a === void 0 ? void 0 : _a.length) { + y += 5 + ($$.hasType("gauge") && config.title_text ? 10 : 0); + } + } + else if (target === "polar") { + x = state.arcWidth / 2; + y = state.arcHeight / 2; + } + else if (target === "radar") { + var _b = $$.getRadarSize(), width = _b[0], height = _b[1]; + x = state.width / 2 - width; + y = state.height / 2 - height; + } + return "translate(".concat(x, ", ").concat(y, ")"); + }, + transformMain: function (withTransition, transitions) { + var $$ = this; + var main = $$.$el.main, $T = $$.$T; + var xAxis = (transitions === null || transitions === void 0 ? void 0 : transitions.axisX) ? + transitions.axisX : + $T(main.select(".".concat($AXIS.axisX)), withTransition); + var yAxis = (transitions === null || transitions === void 0 ? void 0 : transitions.axisY) ? + transitions.axisY : + $T(main.select(".".concat($AXIS.axisY)), withTransition); + var y2Axis = (transitions === null || transitions === void 0 ? void 0 : transitions.axisY2) ? + transitions.axisY2 : + $T(main.select(".".concat($AXIS.axisY2)), withTransition); + $T(main, withTransition) + .attr("transform", $$.getTranslate("main")); + xAxis.attr("transform", $$.getTranslate("x")); + yAxis.attr("transform", $$.getTranslate("y")); + y2Axis.attr("transform", $$.getTranslate("y2")); + main.select(".".concat($ARC.chartArcs)) + .attr("transform", $$.getTranslate("arc")); + }, + transformAll: function (withTransition, transitions) { + var $$ = this; + var config = $$.config, _a = $$.state, hasAxis = _a.hasAxis, hasFunnel = _a.hasFunnel, hasTreemap = _a.hasTreemap, $el = $$.$el; + !hasFunnel && !hasTreemap && $$.transformMain(withTransition, transitions); + hasAxis && config.subchart_show && + $$.transformContext(withTransition, transitions); + $el.legend && $$.transformLegend(withTransition); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var typeInternals = { + /** + * Check if the given chart type is valid + * @param {string} type Chart type string + * @returns {boolean} + * @private + */ + isValidChartType: function (type) { + return !!(type && Object.values(TYPE).indexOf(type) > -1); + }, + setTargetType: function (targetIds, type) { + var $$ = this; + var config = $$.config, withoutFadeIn = $$.state.withoutFadeIn; + $$.mapToTargetIds(targetIds).forEach(function (id) { + withoutFadeIn[id] = type === config.data_types[id]; + config.data_types[id] = type; + }); + if (!targetIds) { + config.data_type = type; + } + }, + /** + * Updte current used chart types + * @private + */ + updateTypesElements: function () { + var $$ = this; + var current = $$.state.current; + Object.keys(TYPE).forEach(function (v) { + var t = TYPE[v]; + var has = $$.hasType(t, null, true); + var idx = current.types.indexOf(t); + if (idx === -1 && has) { + current.types.push(t); + } + else if (idx > -1 && !has) { + current.types.splice(idx, 1); + } + }); + // Update current chart elements reference + $$.setChartElements(); + }, + /** + * Check if given chart types exists + * @param {string} type Chart type + * @param {Array} targetsValue Data array + * @param {boolean} checkFromData Force to check type cotains from data targets + * @returns {boolean} + * @private + */ + hasType: function (type, targetsValue, checkFromData) { + var _a; + if (checkFromData === void 0) { checkFromData = false; } + var $$ = this; + var config = $$.config, current = $$.state.current; + var types = config.data_types; + var targets = targetsValue || $$.data.targets; + var has = false; + if (!checkFromData && ((_a = current.types) === null || _a === void 0 ? void 0 : _a.indexOf(type)) > -1) { + has = true; + } + else if (targets === null || targets === void 0 ? void 0 : targets.length) { + targets.forEach(function (target) { + var t = types[target.id]; + if (t === type || (!t && type === "line")) { + has = true; + } + }); + } + else if (Object.keys(types).length) { + Object.keys(types).forEach(function (id) { + if (types[id] === type) { + has = true; + } + }); + } + else { + has = config.data_type === type; + } + return has; + }, + /** + * Check if contains given chart types + * @param {string} type Type key + * @param {object} targets Target data + * @param {Array} exclude Excluded types + * @returns {boolean} + * @private + */ + hasTypeOf: function (type, targets, exclude) { + var _this = this; + if (exclude === void 0) { exclude = []; } + if (type in TYPE_BY_CATEGORY) { + return !TYPE_BY_CATEGORY[type] + .filter(function (v) { return exclude.indexOf(v) === -1; }) + .every(function (v) { return !_this.hasType(v, targets); }); + } + return false; + }, + /** + * Check if given data is certain chart type + * @param {object} d Data object + * @param {string|Array} type chart type + * @returns {boolean} + * @private + */ + isTypeOf: function (d, type) { + var _a; + var id = isString(d) ? d : d.id; + var dataType = this.config && (((_a = this.config.data_types) === null || _a === void 0 ? void 0 : _a[id]) || this.config.data_type); + return isArray(type) ? type.indexOf(dataType) >= 0 : dataType === type; + }, + hasPointType: function () { + var $$ = this; + return $$.hasTypeOf("Line") || $$.hasType("bubble") || $$.hasType("scatter"); + }, + /** + * Check if contains arc types chart + * @param {object} targets Target data + * @param {Array} exclude Excluded types + * @returns {boolean} + * @private + */ + hasArcType: function (targets, exclude) { + return this.hasTypeOf("Arc", targets, exclude); + }, + hasMultiArcGauge: function () { + return this.hasType("gauge") && this.config.gauge_type === "multi"; + }, + isLineType: function (d) { + var id = isString(d) ? d : d.id; + return !this.config.data_types[id] || + this.isTypeOf(id, TYPE_BY_CATEGORY.Line); + }, + isStepType: function (d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.Step); + }, + isSplineType: function (d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.Spline); + }, + isAreaType: function (d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.Area); + }, + isAreaRangeType: function (d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.AreaRange); + }, + isBarType: function (d) { + return this.isTypeOf(d, "bar"); + }, + isBubbleType: function (d) { + return this.isTypeOf(d, "bubble"); + }, + isCandlestickType: function (d) { + return this.isTypeOf(d, "candlestick"); + }, + isScatterType: function (d) { + return this.isTypeOf(d, "scatter"); + }, + isTreemapType: function (d) { + return this.isTypeOf(d, "treemap"); + }, + isPieType: function (d) { + return this.isTypeOf(d, "pie"); + }, + isFunnelType: function (d) { + return this.isTypeOf(d, "funnel"); + }, + isGaugeType: function (d) { + return this.isTypeOf(d, "gauge"); + }, + isDonutType: function (d) { + return this.isTypeOf(d, "donut"); + }, + isPolarType: function (d) { + return this.isTypeOf(d, "polar"); + }, + isRadarType: function (d) { + return this.isTypeOf(d, "radar"); + }, + isArcType: function (d) { + return this.isPieType(d) || + this.isDonutType(d) || + this.isGaugeType(d) || + this.isPolarType(d) || + this.isRadarType(d); + }, + // determine if is 'circle' data point + isCirclePoint: function (node) { + var config = this.config; + var pattern = config.point_pattern; + var isCircle = false; + if ((node === null || node === void 0 ? void 0 : node.tagName) === "circle") { + isCircle = true; + } + else { + isCircle = config.point_type === "circle" && + (!pattern || (isArray(pattern) && pattern.length === 0)); + } + return isCircle; + }, + lineData: function (d) { + return this.isLineType(d) ? [d] : []; + }, + arcData: function (d) { + return this.isArcType(d.data) ? [d] : []; + }, + /** + * Get data adapt for data label showing + * @param {object} d Data object + * @returns {Array} + * @private + */ + labelishData: function (d) { + return this.isBarType(d) || + this.isLineType(d) || + this.isScatterType(d) || + this.isBubbleType(d) || + this.isCandlestickType(d) || + this.isFunnelType(d) || + this.isRadarType(d) || + this.isTreemapType(d) ? + d.values.filter(function (v) { return isNumber(v.value) || Boolean(v.value); }) : + []; + }, + barLineBubbleData: function (d) { + return this.isBarType(d) || this.isLineType(d) || this.isBubbleType(d) ? d.values : []; + }, + // https://github.com/d3/d3-shape#curves + isInterpolationType: function (type) { + return [ + "basis", + "basis-closed", + "basis-open", + "bundle", + "cardinal", + "cardinal-closed", + "cardinal-open", + "catmull-rom", + "catmull-rom-closed", + "catmull-rom-open", + "linear", + "linear-closed", + "monotone-x", + "monotone-y", + "natural" + ].indexOf(type) >= 0; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Get grouped data point function for y coordinate + * - Note: Grouped(stacking) works only for line and bar types + * @param {object} d data vlaue + * @returns {Function|undefined} + * @private + */ +function getGroupedDataPointsFn(d) { + var $$ = this; + var fn; + if ($$.isLineType(d)) { + fn = $$.generateGetLinePoints($$.getShapeIndices($$.isLineType)); + } + else if ($$.isBarType(d)) { + fn = $$.generateGetBarPoints($$.getShapeIndices($$.isBarType)); + } + return fn; +} +var shape = { + /** + * Get the shape draw function + * @returns {object} + * @private + */ + getDrawShape: function () { + var $$ = this; + var isRotated = $$.config.axis_rotated; + var _a = $$.state, hasRadar = _a.hasRadar, hasTreemap = _a.hasTreemap; + var shape = { type: {}, indices: {}, pos: {} }; + !hasTreemap && ["bar", "candlestick", "line", "area"].forEach(function (v) { + var name = capitalize(/^(bubble|scatter)$/.test(v) ? "line" : v); + if ($$.hasType(v) || $$.hasTypeOf(name) || (v === "line" && + ($$.hasType("bubble") || $$.hasType("scatter")))) { + var indices = $$.getShapeIndices($$["is".concat(name, "Type")]); + var drawFn = $$["generateDraw".concat(name)]; + shape.indices[v] = indices; + shape.type[v] = drawFn ? drawFn.bind($$)(indices, false) : undefined; + } + }); + if (!$$.hasArcType() || hasRadar || hasTreemap) { + var cx = void 0; + var cy = void 0; + // generate circle x/y functions depending on updated params + if (!hasTreemap) { + cx = hasRadar ? $$.radarCircleX : (isRotated ? $$.circleY : $$.circleX); + cy = hasRadar ? $$.radarCircleY : (isRotated ? $$.circleX : $$.circleY); + } + shape.pos = { + xForText: $$.generateXYForText(shape.indices, true), + yForText: $$.generateXYForText(shape.indices, false), + cx: (cx || function () { }).bind($$), + cy: (cy || function () { }).bind($$) + }; + } + return shape; + }, + /** + * Get shape's indices according it's position within each axis tick. + * + * From the below example, indices will be: + * ==> {data1: 0, data2: 0, data3: 1, data4: 1, __max__: 1} + * + * data1 data3 data1 data3 + * data2 data4 data2 data4 + * ------------------------- + * 0 1 + * @param {Function} typeFilter Chart type filter function + * @returns {object} Indices object with its position + */ + getShapeIndices: function (typeFilter) { + var $$ = this; + var config = $$.config; + var xs = config.data_xs; + var hasXs = notEmpty(xs); + var indices = {}; + var i = hasXs ? {} : 0; + if (hasXs) { + getUnique(Object.keys(xs).map(function (v) { return xs[v]; })) + .forEach(function (v) { + i[v] = 0; + indices[v] = {}; + }); + } + $$.filterTargetsToShow($$.data.targets.filter(typeFilter, $$)) + .forEach(function (d) { + var _a; + var xKey = d.id in xs ? xs[d.id] : ""; + var ind = xKey ? indices[xKey] : indices; + for (var j = 0, groups = void 0; (groups = config.data_groups[j]); j++) { + if (groups.indexOf(d.id) < 0) { + continue; + } + for (var k = 0, key = void 0; (key = groups[k]); k++) { + if (key in ind) { + ind[d.id] = ind[key]; + break; + } + // for same grouped data, add other data to same indices + if (d.id !== key && xKey) { + ind[key] = (_a = ind[d.id]) !== null && _a !== void 0 ? _a : i[xKey]; + } + } + } + if (isUndefined(ind[d.id])) { + ind[d.id] = xKey ? i[xKey]++ : i++; + ind.__max__ = (xKey ? i[xKey] : i) - 1; + } + }); + return indices; + }, + /** + * Get indices value based on data ID value + * @param {object} indices Indices object + * @param {object} d Data row + * @param {string} caller Caller function name (Used only for 'sparkline' plugin) + * @returns {object} Indices object + * @private + */ + getIndices: function (indices, d, caller) { + var $$ = this; + var _a = $$.config, xs = _a.data_xs, removeNull = _a.bar_indices_removeNull; + var id = d.id, index = d.index; + if ($$.isBarType(id) && removeNull) { + var ind_1 = {}; + // redefine bar indices order + $$.getAllValuesOnIndex(index, true) + .forEach(function (v, i) { + ind_1[v.id] = i; + ind_1.__max__ = i; + }); + return ind_1; + } + return notEmpty(xs) ? indices[xs[id]] : indices; + }, + /** + * Get indices max number + * @param {object} indices Indices object + * @returns {number} Max number + * @private + */ + getIndicesMax: function (indices) { + return notEmpty(this.config.data_xs) ? + // if is multiple xs, return total sum of xs' __max__ value + Object.keys(indices) + .map(function (v) { return indices[v].__max__ || 0; }) + .reduce(function (acc, curr) { return acc + curr; }) : + indices.__max__; + }, + getShapeX: function (offset, indices, isSub) { + var $$ = this; + var config = $$.config, scale = $$.scale; + var currScale = isSub ? scale.subX : (scale.zoom || scale.x); + var barOverlap = config.bar_overlap; + var barPadding = config.bar_padding; + var sum = function (p, c) { return p + c; }; + // total shapes half width + var halfWidth = isObjectType(offset) && (offset._$total.length ? offset._$total.reduce(sum) / 2 : 0); + return function (d) { + var ind = $$.getIndices(indices, d, "getShapeX"); + var index = d.id in ind ? ind[d.id] : 0; + var targetsNum = (ind.__max__ || 0) + 1; + var x = 0; + if (notEmpty(d.x)) { + var xPos = currScale(d.x, true); + if (halfWidth) { + var offsetWidth = offset[d.id] || offset._$width; + x = barOverlap ? xPos - offsetWidth / 2 : xPos - offsetWidth + + offset._$total.slice(0, index + 1).reduce(sum) - + halfWidth; + } + else { + x = xPos - (isNumber(offset) ? offset : offset._$width) * + (targetsNum / 2 - (barOverlap ? 1 : index)); + } + } + // adjust x position for bar.padding option + if (offset && x && targetsNum > 1 && barPadding) { + if (index) { + x += barPadding * index; + } + if (targetsNum > 2) { + x -= (targetsNum - 1) * barPadding / 2; + } + else if (targetsNum === 2) { + x -= barPadding / 2; + } + } + return x; + }; + }, + getShapeY: function (isSub) { + var $$ = this; + var isStackNormalized = $$.isStackNormalized(); + return function (d) { + var value = d.value; + if (isNumber(d)) { + value = d; + } + else if ($$.isAreaRangeType(d)) { + value = $$.getBaseValue(d, "mid"); + } + else if (isStackNormalized) { + value = $$.getRatio("index", d, true); + } + else if ($$.isBubbleZType(d)) { + value = $$.getBubbleZData(d.value, "y"); + } + else if ($$.isBarRangeType(d)) { + // TODO use range.getEnd() like method + value = value[1]; + } + return $$.getYScaleById(d.id, isSub)(value); + }; + }, + /** + * Get shape based y Axis min value + * @param {string} id Data id + * @returns {number} + * @private + */ + getShapeYMin: function (id) { + var $$ = this; + var axisId = $$.axis.getId(id); + var scale = $$.scale[axisId]; + var yMin = scale.domain()[0]; + var inverted = $$.config["axis_".concat(axisId, "_inverted")]; + return !$$.isGrouped(id) && !inverted && yMin > 0 ? yMin : 0; + }, + /** + * Get Shape's offset data + * @param {Function} typeFilter Type filter function + * @returns {object} + * @private + */ + getShapeOffsetData: function (typeFilter) { + var $$ = this; + var targets = $$.orderTargets($$.filterTargetsToShow($$.data.targets.filter(typeFilter, $$))); + var isStackNormalized = $$.isStackNormalized(); + var shapeOffsetTargets = targets.map(function (target) { + var rowValues = target.values; + var values = {}; + if ($$.isStepType(target)) { + rowValues = $$.convertValuesToStep(rowValues); + } + var rowValueMapByXValue = rowValues.reduce(function (out, d) { + var key = Number(d.x); + out[key] = d; + values[key] = isStackNormalized ? $$.getRatio("index", d, true) : d.value; + return out; + }, {}); + return { + id: target.id, + rowValues: rowValues, + rowValueMapByXValue: rowValueMapByXValue, + values: values + }; + }); + var indexMapByTargetId = targets.reduce(function (out, _a, index) { + var id = _a.id; + out[id] = index; + return out; + }, {}); + return { indexMapByTargetId: indexMapByTargetId, shapeOffsetTargets: shapeOffsetTargets }; + }, + getShapeOffset: function (typeFilter, indices, isSub) { + var $$ = this; + var _a = $$.getShapeOffsetData(typeFilter), shapeOffsetTargets = _a.shapeOffsetTargets, indexMapByTargetId = _a.indexMapByTargetId; + var groupsZeroAs = $$.config.data_groupsZeroAs; + return function (d, idx) { + var id = d.id, value = d.value, x = d.x; + var ind = $$.getIndices(indices, d); + var scale = $$.getYScaleById(id, isSub); + if ($$.isBarRangeType(d)) { + // TODO use range.getStart() + return scale(value[0]); + } + var dataXAsNumber = Number(x); + var y0 = scale(groupsZeroAs === "zero" ? 0 : $$.getShapeYMin(id)); + var offset = y0; + shapeOffsetTargets + .filter(function (t) { return t.id !== id && ind[t.id] === ind[id]; }) + .forEach(function (t) { + var tid = t.id, rowValueMapByXValue = t.rowValueMapByXValue, rowValues = t.rowValues, tvalues = t.values; + // for same stacked group (ind[tid] === ind[id]) + if (indexMapByTargetId[tid] < indexMapByTargetId[id]) { + var rValue = tvalues[dataXAsNumber]; + var row = rowValues[idx]; + // check if the x values line up + if (!row || Number(row.x) !== dataXAsNumber) { + row = rowValueMapByXValue[dataXAsNumber]; + } + if ((row === null || row === void 0 ? void 0 : row.value) * value >= 0 && isNumber(rValue)) { + var addOffset = value === 0 ? + ((groupsZeroAs === "positive" && + rValue > 0) || + (groupsZeroAs === "negative" && rValue < 0)) : + true; + if (addOffset) { + offset += scale(rValue) - y0; + } + } + } + }); + return offset; + }; + }, + /** + * Get data's y coordinate + * @param {object} d Target data + * @param {number} i Index number + * @returns {number} y coordinate + * @private + */ + circleY: function (d, i) { + var $$ = this; + var id = d.id; + var points; + if ($$.isGrouped(id)) { + points = getGroupedDataPointsFn.bind($$)(d); + } + return points ? points(d, i)[0][1] : $$.getYScaleById(id)($$.getBaseValue(d)); + }, + getBarW: function (type, axis, targetsNum) { + var _a, _b, _c, _d, _e; + var $$ = this; + var config = $$.config, org = $$.org, scale = $$.scale; + var maxDataCount = $$.getMaxDataCount(); + var isGrouped = type === "bar" && ((_a = config.data_groups) === null || _a === void 0 ? void 0 : _a.length); + var configName = "".concat(type, "_width"); + var k = ((_c = (_b = $$.getZoomTransform) === null || _b === void 0 ? void 0 : _b.call($$)) !== null && _c !== void 0 ? _c : { k: 1 }).k; + var xMinMax = [ + (_d = config.axis_x_min) !== null && _d !== void 0 ? _d : org.xDomain[0], + (_e = config.axis_x_max) !== null && _e !== void 0 ? _e : org.xDomain[1] + ].map($$.axis.isTimeSeries() ? parseDate.bind($$) : Number); + var tickInterval = axis.tickInterval(maxDataCount); + if (scale.zoom && !$$.axis.isCategorized() && k > 1) { + var isSameMinMax_1 = xMinMax.every(function (v, i) { return v === org.xDomain[i]; }); + tickInterval = org.xDomain.map(function (v, i) { + var value = isSameMinMax_1 ? v : v - Math.abs(xMinMax[i]); + return scale.zoom(value); + }).reduce(function (a, c) { return Math.abs(a) + c; }) / maxDataCount; + } + var getWidth = function (id) { + var width = id ? config[configName][id] : config[configName]; + var ratio = id ? width.ratio : config["".concat(configName, "_ratio")]; + var max = id ? width.max : config["".concat(configName, "_max")]; + var w = isNumber(width) ? + width : + (targetsNum ? (tickInterval * ratio) / targetsNum : 0); + return max && w > max ? max : w; + }; + var result = getWidth(); + if (!isGrouped && isObjectType(config[configName])) { + result = { _$width: result, _$total: [] }; + $$.filterTargetsToShow($$.data.targets).forEach(function (v) { + if (config[configName][v.id]) { + result[v.id] = getWidth(v.id); + result._$total.push(result[v.id] || result._$width); + } + }); + } + return result; + }, + /** + * Get shape element + * @param {string} shapeName Shape string + * @param {number} i Index number + * @param {string} id Data series id + * @returns {d3Selection} + * @private + */ + getShapeByIndex: function (shapeName, i, id) { + var $$ = this; + var $el = $$.$el; + var suffix = isValue(i) ? "-".concat(i) : ""; + var shape = $el[shapeName]; + // filter from shape reference if has + if (shape && !shape.empty()) { + shape = shape + .filter(function (d) { return (id ? d.id === id : true); }) + .filter(function (d) { return (isValue(i) ? d.index === i : true); }); + } + else { + shape = (id ? + $el.main + .selectAll(".".concat(CLASS["".concat(shapeName, "s")]).concat($$.getTargetSelectorSuffix(id))) : + $el.main) + .selectAll(".".concat(CLASS[shapeName]).concat(suffix)); + } + return shape; + }, + isWithinShape: function (that, d) { + var _a; + var $$ = this; + var shape = select(that); + var isWithin; + if (!$$.isTargetToShow(d.id)) { + isWithin = false; + } + else if ((_a = $$.hasValidPointType) === null || _a === void 0 ? void 0 : _a.call($$, that.nodeName)) { + isWithin = $$.isStepType(d) ? + $$.isWithinStep(that, $$.getYScaleById(d.id)(d.value)) : + $$.isWithinCircle(that, $$.isBubbleType(d) ? $$.pointSelectR(d) * 1.5 : 0); + } + else if (that.nodeName === "path") { + isWithin = shape.classed(CLASS.bar) ? $$.isWithinBar(that) : true; + } + return isWithin; + }, + getInterpolate: function (d) { + var $$ = this; + var interpolation = $$.getInterpolateType(d); + return { + basis: curveBasis, + "basis-closed": curveBasisClosed, + "basis-open": curveBasisOpen, + bundle: curveBundle, + cardinal: curveCardinal, + "cardinal-closed": curveCardinalClosed, + "cardinal-open": curveCardinalOpen, + "catmull-rom": curveCatmullRom, + "catmull-rom-closed": curveCatmullRomClosed, + "catmull-rom-open": curveCatmullRomOpen, + "monotone-x": curveMonotoneX, + "monotone-y": curveMonotoneY, + natural: curveNatural, + "linear-closed": curveLinearClosed, + linear: curveLinear, + step: curveStep, + "step-after": curveStepAfter, + "step-before": curveStepBefore + }[interpolation]; + }, + getInterpolateType: function (d) { + var $$ = this; + var config = $$.config; + var type = config.spline_interpolation_type; + var interpolation = $$.isInterpolationType(type) ? type : "cardinal"; + return $$.isSplineType(d) ? interpolation : ($$.isStepType(d) ? config.line_step_type : "linear"); + }, + isWithinBar: function (that) { + var mouse = getPointer(this.state.event, that); + var list = getRectSegList(that); + var seg0 = list[0], seg1 = list[1]; + var x = Math.min(seg0.x, seg1.x); + var y = Math.min(seg0.y, seg1.y); + var offset = this.config.bar_sensitivity; + var _a = that.getBBox(), width = _a.width, height = _a.height; + var sx = x - offset; + var ex = x + width + offset; + var sy = y + height + offset; + var ey = y - offset; + var isWithin = sx < mouse[0] && + mouse[0] < ex && + ey < mouse[1] && + mouse[1] < sy; + return isWithin; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * @ignore + */ +/** + * Internal chart class. + * - Note: Instantiated internally, not exposed for public. + * @class ChartInternal + * @ignore + * @private + */ +var ChartInternal = /** @class */ (function () { + function ChartInternal(api) { + // data object + this.data = { + xs: {}, + targets: [] + }; + // scales + this.scale = { + x: null, + y: null, + y2: null, + subX: null, + subY: null, + subY2: null, + zoom: null + }; + // original values + this.org = { + xScale: null, + xDomain: null + }; + // format function + this.format = { + extraLineClasses: null, + xAxisTick: null, + dataTime: null, // dataTimeFormat + defaultAxisTime: null, // defaultAxisTimeFormat + axisTime: null // axisTimeFormat + }; + var $$ = this; + $$.api = api; // Chart class instance alias + $$.config = new Options(); + $$.cache = new Cache(); + var store = new Store(); + $$.$el = store.getStore("element"); + $$.state = store.getStore("state"); + $$.$T = $$.$T.bind($$); + } + /** + * Get the selection based on transition config + * @param {SVGElement|d3Selection} selection Target selection + * @param {boolean} force Force transition + * @param {string} name Transition name + * @returns {d3Selection} + * @private + */ + ChartInternal.prototype.$T = function (selection, force, name) { + var _a = this, config = _a.config, state = _a.state; + var duration = config.transition_duration; + var subchart = config.subchart_show; + var t = selection; + if (t) { + // in case of non d3 selection, wrap with d3 selection + if ("tagName" in t) { + t = select(t); + } + // do not transit on: + // - wheel zoom (state.zooming = true) + // - when has no subchart + // - initialization + // - resizing + var transit = ((force !== false && duration) || force) && + (!state.zooming || state.dragging) && + !state.resizing && + state.rendered && + !subchart; + t = (transit ? t.transition(name).duration(duration) : t); + } + return t; + }; + ChartInternal.prototype.beforeInit = function () { + var $$ = this; + $$.callPluginHook("$beforeInit"); + // can do something + callFn($$.config.onbeforeinit, $$.api); + }; + ChartInternal.prototype.afterInit = function () { + var $$ = this; + $$.callPluginHook("$afterInit"); + // can do something + callFn($$.config.onafterinit, $$.api); + }; + ChartInternal.prototype.init = function () { + var $$ = this; + var config = $$.config, state = $$.state, $el = $$.$el; + var useCssRule = config.boost_useCssRule; + checkModuleImport($$); + state.hasRadar = !state.hasAxis && $$.hasType("radar"); + state.hasFunnel = !state.hasAxis && $$.hasType("funnel"); + state.hasTreemap = !state.hasAxis && $$.hasType("treemap"); + state.hasAxis = !$$.hasArcType() && !state.hasFunnel && !state.hasTreemap; + // datetime to be used for uniqueness + state.datetimeId = "bb-".concat(+new Date() * getRandom()); + if (useCssRule) { + // append style element + var styleEl = doc.createElement("style"); + // styleEl.id = styleId; + styleEl.type = "text/css"; + doc.head.appendChild(styleEl); + state.style = { + rootSelctor: ".".concat(state.datetimeId), + sheet: styleEl.sheet + }; + // used on .destroy() + $el.style = styleEl; + } + var bindto = { + element: config.bindto, + classname: "bb" + }; + if (isObject(config.bindto)) { + bindto.element = config.bindto.element || "#chart"; + bindto.classname = config.bindto.classname || bindto.classname; + } + // select bind element + $el.chart = isFunction(bindto.element.node) ? + config.bindto.element : + select(bindto.element || []); + if ($el.chart.empty()) { + $el.chart = select(doc.body.appendChild(doc.createElement("div"))); + } + $el.chart.html("") + .classed(bindto.classname, true) + .classed(state.datetimeId, useCssRule) + .style("position", "relative"); + $$.initParams(); + $$.initToRender(); + }; + /** + * Initialize the rendering process + * @param {boolean} forced Force to render process + * @private + */ + ChartInternal.prototype.initToRender = function (forced) { + var $$ = this; + var config = $$.config, state = $$.state, chart = $$.$el.chart; + var isHidden = function () { + return chart.style("display") === "none" || chart.style("visibility") === "hidden"; + }; + var isLazy = config.render.lazy || isHidden(); + var MutationObserver = win.MutationObserver; + if (isLazy && MutationObserver && config.render.observe !== false && !forced) { + new MutationObserver(function (mutation, observer) { + if (!isHidden()) { + observer.disconnect(); + !state.rendered && $$.initToRender(true); + } + }).observe(chart.node(), { + attributes: true, + attributeFilter: ["class", "style"] + }); + } + if (!isLazy || forced) { + $$.convertData(config, function (res) { + $$.initWithData(res); + $$.afterInit(); + }); + } + }; + ChartInternal.prototype.initParams = function () { + var _a; + var $$ = this; + var config = $$.config, format = $$.format, state = $$.state; + var isRotated = config.axis_rotated; + // color settings + $$.color = $$.generateColor(); + $$.levelColor = $$.generateLevelColor(); + // when 'padding=false' is set, disable axes and subchart. Because they are useless. + if (config.padding === false) { + config.axis_x_show = false; + config.axis_y_show = false; + config.axis_y2_show = false; + config.subchart_show = false; + } + if ($$.hasPointType() || ((_a = $$.hasLegendDefsPoint) === null || _a === void 0 ? void 0 : _a.call($$))) { + $$.point = $$.generatePoint(); + } + if (state.hasAxis) { + $$.initClip(); + format.extraLineClasses = $$.generateExtraLineClass(); + format.dataTime = config.data_xLocaltime ? timeParse : utcParse; + format.axisTime = config.axis_x_localtime ? timeFormat : utcFormat; + var isDragZoom_1 = $$.config.zoom_enabled && $$.config.zoom_type === "drag"; + format.defaultAxisTime = function (d) { + var _a = $$.scale, x = _a.x, zoom = _a.zoom; + var isZoomed = isDragZoom_1 ? + zoom : + zoom && x.orgDomain().toString() !== zoom.domain().toString(); + var specifier = (d.getMilliseconds() && ".%L") || + (d.getSeconds() && ".:%S") || + (d.getMinutes() && "%I:%M") || + (d.getHours() && "%I %p") || + (d.getDate() !== 1 && "%b %d") || + (isZoomed && d.getDate() === 1 && "%b'%y") || + (d.getMonth() && "%-m/%-d") || "%Y"; + return format.axisTime(specifier)(d); + }; + } + state.isLegendRight = config.legend_position === "right"; + state.isLegendInset = config.legend_position === "inset"; + state.isLegendTop = config.legend_inset_anchor === "top-left" || + config.legend_inset_anchor === "top-right"; + state.isLegendLeft = config.legend_inset_anchor === "top-left" || + config.legend_inset_anchor === "bottom-left"; + state.rotatedPadding.top = $$.getResettedPadding(state.rotatedPadding.top); + state.rotatedPadding.right = isRotated && !config.axis_x_show ? 0 : 30; + state.inputType = convertInputType(config.interaction_inputType_mouse, config.interaction_inputType_touch); + }; + ChartInternal.prototype.initWithData = function (data) { + var _a, _b, _c; + var $$ = this; + var config = $$.config, scale = $$.scale, state = $$.state, $el = $$.$el, org = $$.org; + var hasAxis = state.hasAxis, hasFunnel = state.hasFunnel, hasTreemap = state.hasTreemap; + var hasInteraction = config.interaction_enabled; + var hasPolar = $$.hasType("polar"); + var labelsBGColor = config.data_labels_backgroundColors; + // for arc type, set axes to not be shown + // $$.hasArcType() && ["x", "y", "y2"].forEach(id => (config[`axis_${id}_show`] = false)); + if (hasAxis) { + $$.axis = $$.getAxisInstance(); + config.zoom_enabled && $$.initZoom(); + } + // Init data as targets + $$.data.xs = {}; + $$.data.targets = $$.convertDataToTargets(data); + if (config.data_filter) { + $$.data.targets = $$.data.targets.filter(config.data_filter.bind($$.api)); + } + // Set targets to hide if needed + if (config.data_hide) { + $$.addHiddenTargetIds(config.data_hide === true ? $$.mapToIds($$.data.targets) : config.data_hide); + } + if (config.legend_hide) { + $$.addHiddenLegendIds(config.legend_hide === true ? $$.mapToIds($$.data.targets) : config.legend_hide); + } + // Init sizes and scales + $$.updateSizes(); + $$.updateScales(true); + // retrieve scale after the 'updateScales()' is called + if (hasAxis) { + var x = scale.x, y = scale.y, y2 = scale.y2, subX = scale.subX, subY = scale.subY, subY2 = scale.subY2; + // Set domains for each scale + if (x) { + x.domain(sortValue($$.getXDomain($$.data.targets), !config.axis_x_inverted)); + subX.domain(x.domain()); + // Save original x domain for zoom update + org.xDomain = x.domain(); + } + if (y) { + y.domain($$.getYDomain($$.data.targets, "y")); + subY.domain(y.domain()); + } + if (y2) { + y2.domain($$.getYDomain($$.data.targets, "y2")); + subY2 && subY2.domain(y2.domain()); + } + } + // -- Basic Elements -- + $el.svg = $el.chart.append("svg") + .style("overflow", "hidden") + .style("display", "block"); + if (hasInteraction && state.inputType) { + var isTouch = state.inputType === "touch"; + var onclick_1 = config.onclick, onover = config.onover, onout = config.onout; + $el.svg + .on("click", (onclick_1 === null || onclick_1 === void 0 ? void 0 : onclick_1.bind($$.api)) || null) + .on(isTouch ? "touchstart" : "mouseenter", (onover === null || onover === void 0 ? void 0 : onover.bind($$.api)) || null) + .on(isTouch ? "touchend" : "mouseleave", (onout === null || onout === void 0 ? void 0 : onout.bind($$.api)) || null); + } + config.svg_classname && $el.svg.attr("class", config.svg_classname); + // Define defs + var hasColorPatterns = isFunction(config.color_tiles) && $$.patterns; + if (hasAxis || hasColorPatterns || hasPolar || hasTreemap || + labelsBGColor || ((_a = $$.hasLegendDefsPoint) === null || _a === void 0 ? void 0 : _a.call($$))) { + $el.defs = $el.svg.append("defs"); + if (hasAxis) { + ["id", "idXAxis", "idYAxis", "idGrid"].forEach(function (v) { + $$.appendClip($el.defs, state.clip[v]); + }); + } + // Append data background color filter definition + $$.generateTextBGColorFilter(labelsBGColor); + // set color patterns + if (hasColorPatterns) { + $$.patterns.forEach(function (p) { return $el.defs.append(function () { return p.node; }); }); + } + } + $$.updateSvgSize(); + // Bind resize event + $$.bindResize(); + // Define regions + var main = $el.svg.append("g") + .classed($COMMON.main, true) + .attr("transform", hasFunnel || hasTreemap ? null : $$.getTranslate("main")); + $el.main = main; + // initialize subchart when subchart show option is set + config.subchart_show && $$.initSubchart(); + config.tooltip_show && $$.initTooltip(); + config.title_text && $$.initTitle(); + !hasTreemap && config.legend_show && $$.initLegend(); + // -- Main Region -- + // text when empty + if (config.data_empty_label_text) { + main.append("text") + .attr("class", "".concat($TEXT.text, " ").concat($COMMON.empty)) + .attr("text-anchor", "middle") // horizontal centering of text at x position in all browsers. + .attr("dominant-baseline", "middle"); // vertical centering of text at y position in all browsers, except IE. + } + if (hasAxis) { + // Regions + config.regions.length && $$.initRegion(); + // Add Axis here, when clipPath is 'false' + !config.clipPath && $$.axis.init(); + } + // Define g for chart area + main.append("g") + .classed($COMMON.chart, true) + .attr("clip-path", hasAxis ? state.clip.path : null); + $$.callPluginHook("$init"); + $$.initChartElements(); + if (hasAxis) { + // Cover whole with rects for events + hasInteraction && ((_b = $$.initEventRect) === null || _b === void 0 ? void 0 : _b.call($$)); + // Grids + $$.initGrid(); + // Add Axis here, when clipPath is 'true' + config.clipPath && ((_c = $$.axis) === null || _c === void 0 ? void 0 : _c.init()); + } + // Set targets + $$.updateTargets($$.data.targets); + // Draw with targets + $$.updateDimension(); + // oninit callback + callFn(config.oninit, $$.api); + // Set background + $$.setBackground(); + $$.redraw({ + withTransition: false, + withTransform: true, + withUpdateXDomain: true, + withUpdateOrgXDomain: true, + withTransitionForAxis: false, + initializing: true + }); + // data.onmin/max callback + if (config.data_onmin || config.data_onmax) { + var minMax = $$.getMinMaxData(); + callFn(config.data_onmin, $$.api, minMax.min); + callFn(config.data_onmax, $$.api, minMax.max); + } + config.tooltip_show && $$.initShowTooltip(); + state.rendered = true; + }; + /** + * Initialize chart elements + * @private + */ + ChartInternal.prototype.initChartElements = function () { + var $$ = this; + var _a = $$.state, hasAxis = _a.hasAxis, hasRadar = _a.hasRadar, hasTreemap = _a.hasTreemap; + var types = []; + if (hasAxis) { + var shapes = ["bar", "bubble", "candlestick", "line"]; + if ($$.config.bar_front) { + shapes.push(shapes.shift()); + } + shapes.forEach(function (v) { + var name = capitalize(v); + if ((v === "line" && $$.hasTypeOf(name)) || $$.hasType(v)) { + types.push(name); + } + }); + } + else if (hasTreemap) { + types.push("Treemap"); + } + else if ($$.hasType("funnel")) { + types.push("Funnel"); + } + else { + var hasPolar = $$.hasType("polar"); + if (!hasRadar) { + types.push("Arc", "Pie"); + } + if ($$.hasType("gauge")) { + types.push("Gauge"); + } + else if (hasRadar) { + types.push("Radar"); + } + else if (hasPolar) { + types.push("Polar"); + } + } + types.forEach(function (v) { + $$["init".concat(v)](); + }); + notEmpty($$.config.data_labels) && !$$.hasArcType(null, ["radar"]) && $$.initText(); + }; + /** + * Set chart elements + * @private + */ + ChartInternal.prototype.setChartElements = function () { + var $$ = this; + var _a = $$.$el, chart = _a.chart, svg = _a.svg, defs = _a.defs, main = _a.main, tooltip = _a.tooltip, legend = _a.legend, title = _a.title, grid = _a.grid, needle = _a.needle, arc = _a.arcs, circles = _a.circle, bars = _a.bar, candlestick = _a.candlestick, lines = _a.line, areas = _a.area, texts = _a.text; + // public + $$.api.$ = { + chart: chart, + svg: svg, + defs: defs, + main: main, + tooltip: tooltip, + legend: legend, + title: title, + grid: grid, + arc: arc, + circles: circles, + bar: { bars: bars }, + candlestick: candlestick, + line: { lines: lines, areas: areas }, + needle: needle, + text: { texts: texts } + }; + }; + /** + * Set background element/image + * @private + */ + ChartInternal.prototype.setBackground = function () { + var $$ = this; + var bg = $$.config.background, state = $$.state, svg = $$.$el.svg; + if (notEmpty(bg)) { + var element = svg.select("g") + .insert(bg.imgUrl ? "image" : "rect", ":first-child"); + if (bg.imgUrl) { + element.attr("href", bg.imgUrl); + } + else if (bg.color) { + element + .style("fill", bg.color) + .attr("clip-path", state.clip.path); + } + element + .attr("class", bg.class || null) + .attr("width", "100%") + .attr("height", "100%"); + } + }; + /** + * Update targeted element with given data + * @param {object} targets Data object formatted as 'target' + * @private + */ + ChartInternal.prototype.updateTargets = function (targets) { + var _a; + var $$ = this; + var _b = $$.state, hasAxis = _b.hasAxis, hasFunnel = _b.hasFunnel, hasRadar = _b.hasRadar, hasTreemap = _b.hasTreemap; + var helper = function (type) { + return $$["updateTargetsFor".concat(type)](targets.filter($$["is".concat(type, "Type")].bind($$))); + }; + // Text + $$.updateTargetsForText(targets); + if (hasAxis) { + ["bar", "candlestick", "line"].forEach(function (v) { + var name = capitalize(v); + if ((v === "line" && $$.hasTypeOf(name)) || $$.hasType(v)) { + helper(name); + } + }); + // Sub Chart + $$.updateTargetsForSubchart && + $$.updateTargetsForSubchart(targets); + // Arc, Polar, Radar + } + else if ($$.hasArcType(targets)) { + var type = "Arc"; + if (hasRadar) { + type = "Radar"; + } + else if ($$.hasType("polar")) { + type = "Polar"; + } + helper(type); + } + else if (hasFunnel) { + helper("Funnel"); + } + else if (hasTreemap) { + helper("Treemap"); + } + // Point types + var hasPointType = $$.hasType("bubble") || $$.hasType("scatter"); + if (hasPointType) { + (_a = $$.updateTargetForCircle) === null || _a === void 0 ? void 0 : _a.call($$); + } + // Fade-in each chart + $$.filterTargetsToShowAtInit(hasPointType); + }; + /** + * Display targeted elements at initialization + * @param {boolean} hasPointType whether has point type(bubble, scatter) or not + * @private + */ + ChartInternal.prototype.filterTargetsToShowAtInit = function (hasPointType) { + if (hasPointType === void 0) { hasPointType = false; } + var $$ = this; + var svg = $$.$el.svg, $T = $$.$T; + var selector = ".".concat($COMMON.target); + if (hasPointType) { + selector += ", .".concat($CIRCLE.chartCircles, " > .").concat($CIRCLE.circles); + } + $T(svg.selectAll(selector) + .filter(function (d) { return $$.isTargetToShow(d.id); })).style("opacity", null); + }; + ChartInternal.prototype.getWithOption = function (options) { + var withOptions = { + Dimension: true, + EventRect: true, + Legend: false, + Subchart: true, + Transform: false, + Transition: true, + TrimXDomain: true, + UpdateXAxis: "UpdateXDomain", + UpdateXDomain: false, + UpdateOrgXDomain: false, + TransitionForExit: "Transition", + TransitionForAxis: "Transition", + Y: true + }; + Object.keys(withOptions).forEach(function (key) { + var defVal = withOptions[key]; + if (isString(defVal)) { + defVal = withOptions[defVal]; + } + withOptions[key] = getOption(options, "with".concat(key), defVal); + }); + return withOptions; + }; + ChartInternal.prototype.initialOpacity = function (d) { + var $$ = this; + var withoutFadeIn = $$.state.withoutFadeIn; + var r = $$.getBaseValue(d) !== null && + withoutFadeIn[d.id] ? + null : + "0"; + return r; + }; + ChartInternal.prototype.bindResize = function () { + var $$ = this; + var config = $$.config, state = $$.state; + var resizeFunction = generateResize(config.resize_timer); + var list = []; + list.push(function () { return callFn(config.onresize, $$.api); }); + if (config.resize_auto) { + list.push(function () { + state.resizing = true; + // https://github.com/naver/billboard.js/issues/2650 + if (config.legend_show) { + $$.updateSizes(); + $$.updateLegend(); + } + $$.api.flush(false); + }); + } + list.push(function () { + callFn(config.onresized, $$.api); + state.resizing = false; + }); + // add resize functions + list.forEach(function (v) { return resizeFunction.add(v); }); + $$.resizeFunction = resizeFunction; + // attach resize event + win.addEventListener("resize", $$.resizeFunction = resizeFunction); + }; + /** + * Call plugin hook + * @param {string} phase The lifecycle phase + * @param {Array} args Arguments + * @private + */ + ChartInternal.prototype.callPluginHook = function (phase) { + var _this = this; + var args = []; + for (var _i = 1; _i < arguments.length; _i++) { + args[_i - 1] = arguments[_i]; + } + this.config.plugins.forEach(function (v) { + if (phase === "$beforeInit") { + v.$$ = _this; + _this.api.plugins.push(v); + } + v[phase].apply(v, args); + }); + }; + return ChartInternal; +}()); +extend(ChartInternal.prototype, [ + // common + dataConvert, + data$1, + dataLoad, + category, + classModule, + color, + domain, + interaction, + format, + legend$1, + redraw, + scale, + shape, + size, + style, + text, + title, + tooltip$1, + transform, + typeInternals +]); + +/** + * Load configuration option + * @param {object} config User's generation config value + * @private + */ +function loadConfig(config) { + var thisConfig = this.config; + var target; + var keys; + var read; + var find = function () { + var key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } + else if (!key) { + return target; + } + return undefined; + }; + Object.keys(thisConfig).forEach(function (key) { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + // only should run in the ChartInternal context + if (this.api) { + this.state.orgConfig = config; + } +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var apiChart = { + /** + * Resize the chart. + * @function resize + * @instance + * @memberof Chart + * @param {object} size This argument should include width and height in pixels. + * @param {number} [size.width] width value + * @param {number} [size.height] height value + * @example + * // Resize to 640x480 + * chart.resize({ + * width: 640, + * height: 480 + * }); + */ + resize: function (size) { + var $$ = this.internal; + var config = $$.config, state = $$.state; + if (state.rendered) { + config.size_width = size ? size.width : null; + config.size_height = size ? size.height : null; + state.resizing = true; + this.flush(false); + $$.resizeFunction(); + } + }, + /** + * Force to redraw. + * - **NOTE:** When zoom/subchart is used, the zoomed state will be resetted. + * @function flush + * @instance + * @memberof Chart + * @param {boolean} [soft] For soft redraw. + * @example + * chart.flush(); + * + * // for soft redraw + * chart.flush(true); + */ + flush: function (soft) { + var _a, _b; + var $$ = this.internal; + var state = $$.state, zoomResetBtn = $$.$el.zoomResetBtn; + if (state.rendered) { + // reset possible zoom scale when is called from resize event + if (state.resizing) { // arguments[1] is given when is called from resize + (_a = $$.brush) === null || _a === void 0 ? void 0 : _a.updateResize(); + } + else { + // re-update config info + (_b = $$.axis) === null || _b === void 0 ? void 0 : _b.setOrient(); + } + // hide possible reset zoom button + // https://github.com/naver/billboard.js/issues/2201 + zoomResetBtn === null || zoomResetBtn === void 0 ? void 0 : zoomResetBtn.style("display", "none"); + $$.scale.zoom = null; + soft ? + $$.redraw({ + withTransform: true, + withUpdateXDomain: true, + withUpdateOrgXDomain: true, + withLegend: true + }) : + $$.updateAndRedraw({ + withLegend: true, + withTransition: false, + withTransitionForTransform: false + }); + // reset subchart selection & selection state + if (!state.resizing && $$.brush) { + $$.brush.getSelection().call($$.brush.move); + $$.unselectRect(); + } + } + else { + $$.initToRender(true); + } + }, + /** + * Reset the chart object and remove element and events completely. + * @function destroy + * @instance + * @memberof Chart + * @returns {null} + * @example + * chart.destroy(); + */ + destroy: function () { + var _this = this; + var $$ = this.internal; + var _a = $$.$el, chart = _a.chart, style = _a.style, svg = _a.svg; + if (notEmpty($$)) { + $$.callPluginHook("$willDestroy"); + $$.charts.splice($$.charts.indexOf(this), 1); + // detach events + $$.unbindAllEvents(); + // clear timers && pending transition + svg.select("*").interrupt(); + $$.resizeFunction.clear(); + win.removeEventListener("resize", $$.resizeFunction); + chart.classed("bb", false) + .style("position", null) + .selectChildren() + .remove(); + // remove <style> element added by boost.useCssRule option + style && style.parentNode.removeChild(style); + // releasing own references + Object.keys(this).forEach(function (key) { + key === "internal" && Object.keys($$).forEach(function (k) { + $$[k] = null; + }); + _this[key] = null; + delete _this[key]; + }); + // release prototype chains + for (var key in this) { + this[key] = function () { }; + } + } + return null; + }, + /** + * Get or set config option value. + * - **NOTE** + * - The option key name must be specified as the last level. + * - when no argument is given, will return all specified generation options object only. (will exclude any other options not specified at the initialization) + * @function config + * @instance + * @memberof Chart + * @param {string} name The option key name. + * @param {*} [value] The value accepted for indicated option. + * @param {boolean} [redraw] Set to redraw with the new option changes. + * - **NOTE:** Doesn't guarantee work in all circumstances. It can be applied for limited options only. + * @returns {*} + * @example + * + * // Getter + * chart.config("gauge.max"); + * + * // Getter specified with top level key name will not work. + * // The option key name must be specified as the last level. + * // chart.config("gauge"); // will not work + * + * // without any arguments, it returns generation config object + * chart.config(); // {data: { ... }, axis: { ... }, ...} + * + * // Setter + * chart.config("gauge.max", 100); + * + * // Setter specified with top level key name will not work. + * // The option key name must be specified as the last level. + * // chart.config("gauge", {min: 10, max: 20}); // will not work + * + * // Setter & redraw with the new option + * chart.config("gauge.max", 100, true); + */ + config: function (name, value, redraw) { + var $$ = this.internal; + var config = $$.config, state = $$.state; + var key = name === null || name === void 0 ? void 0 : name.replace(/\./g, "_"); + var res; + if (name && key in config) { + if (isDefined(value)) { + config[key] = value; + res = value; + redraw && this.flush(); + } + else { + res = config[key]; + } + } + else if (arguments.length === 0 || isEmpty(name)) { + res = state.orgConfig; + } + return res; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var apiColor = { + /** + * Get the color + * @function color + * @instance + * @memberof Chart + * @param {string} id id to get the color + * @returns {string} + * @example + * chart.color("data1"); + */ + color: function (id) { + return this.internal.color(id); // more patterns + } +}; + +/** + * Get data loaded in the chart. + * @function data + * @instance + * @memberof Chart + * @param {string|Array} targetIds If this argument is given, this API returns the specified target data. If this argument is not given, all of data will be returned. + * @returns {Array} Data objects + * @example + * // Get only data1 data + * chart.data("data1"); + * // --> [{id: "data1", id_org: "data1", values: Array(6)}, ...] + * + * // Get data1 and data2 data + * chart.data(["data1", "data2"]); + * + * // Get all data + * chart.data(); + */ +var data = function (targetIds) { + var targets = this.internal.data.targets; + if (!isUndefined(targetIds)) { + var ids_1 = isArray(targetIds) ? targetIds : [targetIds]; + return targets.filter(function (t) { return ids_1.some(function (v) { return v === t.id; }); }); + } + return targets; +}; +extend(data, { + /** + * Get data shown in the chart. + * @function data․shown + * @instance + * @memberof Chart + * @param {string|Array} targetIds If this argument is given, this API filters the data with specified target ids. If this argument is not given, all shown data will be returned. + * @returns {Array} Data objects + * @example + * // Get shown data by filtering to include only data1 data + * chart.data.shown("data1"); + * // --> [{id: "data1", id_org: "data1", values: Array(6)}, ...] + * + * // Get shown data by filtering to include data1 and data2 data + * chart.data.shown(["data1", "data2"]); + * + * // Get all shown data + * chart.data.shown(); + */ + shown: function (targetIds) { + return this.internal.filterTargetsToShow(this.data(targetIds)); + }, + /** + * Get values of the data loaded in the chart. + * @function data․values + * @instance + * @memberof Chart + * @param {string|Array|null} targetIds This API returns the values of specified target. If this argument is not given, null will be retruned + * @param {boolean} [flat=true] Get flatten values + * @returns {Array} Data values + * @example + * // Get data1 values + * chart.data.values("data1"); + * // --> [10, 20, 30, 40] + */ + values: function (targetIds, flat) { + if (flat === void 0) { flat = true; } + var values = null; + if (targetIds) { + var targets = this.data(targetIds); + if (isArray(targets)) { + values = []; + targets.forEach(function (v) { + var dataValue = v.values.map(function (d) { return d.value; }); + flat ? (values = values.concat(dataValue)) : values.push(dataValue); + }); + } + } + return values; + }, + /** + * Get and set names of the data loaded in the chart. + * @function data․names + * @instance + * @memberof Chart + * @param {object} names If this argument is given, the names of data will be updated. If not given, the current names will be returned. The format of this argument is the same as [data.names](./Options.html#.data%25E2%2580%25A4names). + * @returns {object} Corresponding names according its key value, if specified names values. + * @example + * // Get current names + * chart.data.names(); + * // --> {data1: "test1", data2: "test2"} + * + * // Update names + * chart.data.names({ + * data1: "New Name 1", + * data2: "New Name 2" + * }); + */ + names: function (names) { + var $$ = this.internal; + return $$.updateDataAttributes("names", names); + }, + /** + * Get and set colors of the data loaded in the chart. + * @function data․colors + * @instance + * @memberof Chart + * @param {object} colors If this argument is given, the colors of data will be updated. If not given, the current colors will be returned. The format of this argument is the same as [data.colors](./Options.html#.data%25E2%2580%25A4colors). + * @returns {object} Corresponding data color value according its key value. + * @example + * // Get current colors + * chart.data.colors(); + * // --> {data1: "#00c73c", data2: "#fa7171"} + * + * // Update colors + * chart.data.colors({ + * data1: "#FFFFFF", + * data2: "#000000" + * }); + */ + colors: function (colors) { + return this.internal.updateDataAttributes("colors", colors); + }, + /** + * Get and set axes of the data loaded in the chart. + * - **NOTE:** If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data + * @function data․axes + * @instance + * @memberof Chart + * @param {object} axes If this argument is given, the axes of data will be updated. If not given, the current axes will be returned. The format of this argument is the same as + * @returns {object} Corresponding axes value for data, if specified axes value. + * @example + * // Get current axes + * chart.data.axes(); + * // --> {data1: "y"} + * + * // Update axes + * chart.data.axes({ + * data1: "y", + * data2: "y2" + * }); + */ + axes: function (axes) { + return this.internal.updateDataAttributes("axes", axes); + }, + /** + * Get the minimum data value bound to the chart + * @function data․min + * @instance + * @memberof Chart + * @returns {Array} Data objects + * @example + * // Get current axes + * chart.data.min(); + * // --> [{x: 0, value: 30, id: "data1", index: 0}, ...] + */ + min: function () { + return this.internal.getMinMaxData().min; + }, + /** + * Get the maximum data value bound to the chart + * @function data․max + * @instance + * @memberof Chart + * @returns {Array} Data objects + * @example + * // Get current axes + * chart.data.max(); + * // --> [{x: 3, value: 400, id: "data1", index: 3}, ...] + */ + max: function () { + return this.internal.getMinMaxData().max; + } +}); +var apiData = { data: data }; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Encode to base64 + * @param {string} str string to be encoded + * @returns {string} + * @private + * @see https://developer.mozilla.org/ko/docs/Web/API/WindowBase64/Base64_encoding_and_decoding + */ +var b64EncodeUnicode = function (str) { + var _a; + return (_a = win.btoa) === null || _a === void 0 ? void 0 : _a.call(win, encodeURIComponent(str) + .replace(/%([0-9A-F]{2})/g, function (match, p) { return String.fromCharCode(Number("0x".concat(p))); })); +}; +/** + * Convert svg node to data url + * @param {HTMLElement} node target node + * @param {object} option object containing {width, height, preserveAspectRatio} + * @param {object} orgSize object containing {width, height} + * @returns {string} + * @private + */ +function nodeToSvgDataUrl(node, option, orgSize) { + var _a = option || orgSize, width = _a.width, height = _a.height; + var serializer = new XMLSerializer(); + var clone = node.cloneNode(true); + var cssText = getCssRules(toArray(doc.styleSheets)) + .filter(function (r) { return r.cssText; }) + .map(function (r) { return r.cssText; }); + clone.setAttribute("xmlns", namespaces.xhtml); + // remove padding & margin + clone.style.margin = "0"; + clone.style.padding = "0"; + // remove text nodes + if (option.preserveFontStyle) { + clone.querySelectorAll("text").forEach(function (t) { + t.innerHTML = ""; + }); + } + var nodeXml = serializer.serializeToString(clone); + // escape css for XML + var style = doc.createElement("style"); + style.appendChild(doc.createTextNode(cssText.join("\n"))); + var styleXml = serializer.serializeToString(style); + // foreignObject not supported in IE11 and below + // https://msdn.microsoft.com/en-us/library/hh834675(v=vs.85).aspx + var dataStr = "<svg xmlns=\"".concat(namespaces.svg, "\" width=\"").concat(width, "\" height=\"").concat(height, "\" \n\t\tviewBox=\"0 0 ").concat(orgSize.width, " ").concat(orgSize.height, "\" \n\t\tpreserveAspectRatio=\"").concat((option === null || option === void 0 ? void 0 : option.preserveAspectRatio) === false ? "none" : "xMinYMid meet", "\">\n\t\t\t<foreignObject width=\"100%\" height=\"100%\">\n\t\t\t\t").concat(styleXml, "\n\t\t\t\t").concat(nodeXml.replace(/(url\()[^#]+/g, "$1"), "\n\t\t\t</foreignObject></svg>"); + return "data:image/svg+xml;base64,".concat(b64EncodeUnicode(dataStr)); +} +/** + * Get coordinate of the element + * @param {SVGElement} elem Target element + * @param {object} svgOffset SVG offset + * @returns {object} + * @private + */ +function getCoords(elem, svgOffset) { + var top = svgOffset.top, left = svgOffset.left; + var _a = elem.getBBox(), x = _a.x, y = _a.y; + var _b = elem.getScreenCTM(), a = _b.a, b = _b.b, c = _b.c, d = _b.d, e = _b.e, f = _b.f; + var _c = elem.getBoundingClientRect(), width = _c.width, height = _c.height; + return { + x: (a * x) + (c * y) + e - left, + y: (b * x) + (d * y) + f - top + (height - Math.round(height / 4)), + width: width, + height: height + }; +} +/** + * Get text glyph + * @param {SVGTextElement} svg Target svg node + * @returns {Array} + * @private + */ +function getGlyph(svg) { + var _a = svg.getBoundingClientRect(), left = _a.left, top = _a.top; + var filterFn = function (t) { return t.textContent || t.childElementCount; }; + var glyph = []; + toArray(svg.querySelectorAll("text")) + .filter(filterFn) + .forEach(function (t) { + var getStyleFn = function (ts) { + var _a; + var _b = win.getComputedStyle(ts), fill = _b.fill, fontFamily = _b.fontFamily, fontSize = _b.fontSize, textAnchor = _b.textAnchor, transform = _b.transform; + var _c = getCoords(ts, { left: left, top: top }), x = _c.x, y = _c.y, width = _c.width, height = _c.height; + return _a = {}, + _a[ts.textContent] = { + x: x, + y: y, + width: width, + height: height, + fill: fill, + fontFamily: fontFamily, + fontSize: fontSize, + textAnchor: textAnchor, + transform: transform + }, + _a; + }; + if (t.childElementCount > 1) { + var text = []; + toArray(t.querySelectorAll("tspan")) + .filter(filterFn) + .forEach(function (ts) { + glyph.push(getStyleFn(ts)); + }); + return text; + } + else { + glyph.push(getStyleFn(t)); + } + }); + return glyph; +} +/** + * Render text glyph + * - NOTE: Called when the 'preserveFontStyle' option is true + * @param {CanvasRenderingContext2D} ctx Canvas context + * @param {Array} glyph Text glyph array + * @private + */ +function renderText(ctx, glyph) { + glyph.forEach(function (g) { + Object.keys(g).forEach(function (key) { + var _a = g[key], x = _a.x, y = _a.y, width = _a.width, height = _a.height, fill = _a.fill, fontFamily = _a.fontFamily, fontSize = _a.fontSize, transform = _a.transform; + ctx.save(); + ctx.font = "".concat(fontSize, " ").concat(fontFamily); + ctx.fillStyle = fill; + if (transform === "none") { + ctx.fillText(key, x, y); + } + else { + var args = transform + .replace(/(matrix|\(|\))/g, "") + .split(","); + if (args.splice(4).every(function (v) { return +v === 0; })) { + args.push(x + width - (width / 4)); + args.push(y - height + (height / 3)); + } + else { + args.push(x); + args.push(y); + } + ctx.transform.apply(ctx, args); + ctx.fillText(key, 0, 0); + } + ctx.restore(); + }); + }); +} +var apiExport = { + /** + * Export chart as an image. + * - **NOTE:** + * - IE11 and below not work properly due to the lack of the feature(<a href="https://msdn.microsoft.com/en-us/library/hh834675(v=vs.85).aspx">foreignObject</a>) support + * - Every style applied to the chart & the basic CSS file(ex. billboard.css) should be at same domain as API call context to get correct styled export image. + * @function export + * @instance + * @memberof Chart + * @param {object} option Export option + * @param {string} [option.mimeType="image/png"] The desired output image format. (ex. 'image/png' for png, 'image/jpeg' for jpeg format) + * @param {number} [option.width={currentWidth}] width + * @param {number} [option.height={currentHeigth}] height + * @param {boolean} [option.preserveAspectRatio=true] Preserve aspect ratio on given size + * @param {boolean} [option.preserveFontStyle=false] Preserve font style(font-family).<br> + * **NOTE:** + * - This option is useful when outlink web font style's `font-family` are applied to chart's text element. + * - Text element's position(especially "transformed") can't be preserved correctly according the page's layout condition. + * - If need to preserve accurate text position, embed the web font data within to the page and set `preserveFontStyle=false`. + * - Checkout the embed example: <a href="https://stackblitz.com/edit/zfbya9-8nf9nn?file=index.html">https://stackblitz.com/edit/zfbya9-8nf9nn?file=index.html</a> + * @param {Function} [callback] The callback to be invoked when export is ready. + * @returns {string} dataURI + * @example + * chart.export(); + * // --> "data:image/svg+xml;base64,PHN..." + * + * // Initialize the download automatically + * chart.export({mimeType: "image/png"}, dataUrl => { + * const link = document.createElement("a"); + * + * link.download = `${Date.now()}.png`; + * link.href = dataUrl; + * link.innerHTML = "Download chart as image"; + * + * document.body.appendChild(link); + * }); + * + * // Resize the exported image + * chart.export( + * { + * width: 800, + * height: 600, + * preserveAspectRatio: false, + * preserveFontStyle: false, + * mimeType: "image/png" + * }, + * dataUrl => { ... } + * ); + */ + export: function (option, callback) { + var _this = this; + var $$ = this.internal; + var state = $$.state, _a = $$.$el, chart = _a.chart, svg = _a.svg; + var _b = state.current, width = _b.width, height = _b.height; + var opt = mergeObj({ + width: width, + height: height, + preserveAspectRatio: true, + preserveFontStyle: false, + mimeType: "image/png" + }, option); + var svgDataUrl = nodeToSvgDataUrl(chart.node(), opt, { width: width, height: height }); + var glyph = opt.preserveFontStyle ? getGlyph(svg.node()) : []; + if (callback && isFunction(callback)) { + var img_1 = new Image(); + img_1.crossOrigin = "Anonymous"; + img_1.onload = function () { + var canvas = doc.createElement("canvas"); + var ctx = canvas.getContext("2d"); + canvas.width = opt.width || width; + canvas.height = opt.height || height; + ctx.drawImage(img_1, 0, 0); + if (glyph.length) { + renderText(ctx, glyph); + // release glyph array + glyph.length = 0; + } + callback.bind(_this)(canvas.toDataURL(opt.mimeType)); + }; + img_1.src = svgDataUrl; + } + return svgDataUrl; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var apiFocus = { + /** + * This API highlights specified targets and fade out the others.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be highlighted. + * @function focus + * @instance + * @memberof Chart + * @param {string|Array} targetIdsValue Target ids to be highlighted. + * @example + * // data1 will be highlighted and the others will be faded out + * chart.focus("data1"); + * + * // data1 and data2 will be highlighted and the others will be faded out + * chart.focus(["data1", "data2"]); + * + * // all targets will be highlighted + * chart.focus(); + */ + focus: function (targetIdsValue) { + var $$ = this.internal; + var state = $$.state; + var targetIds = $$.mapToTargetIds(targetIdsValue); + var candidates = $$.$el.svg.selectAll($$.selectorTargets(targetIds.filter($$.isTargetToShow, $$))); + this.revert(); + this.defocus(); + candidates.classed($FOCUS.focused, true).classed($FOCUS.defocused, false); + if ($$.hasArcType() && !state.hasRadar) { + $$.expandArc(targetIds); + $$.hasType("gauge") && + $$.markOverlapped(targetIdsValue, $$, ".".concat($GAUGE.gaugeValue)); + } + $$.toggleFocusLegend(targetIds, true); + state.focusedTargetIds = targetIds; + state.defocusedTargetIds = state.defocusedTargetIds.filter(function (id) { return targetIds.indexOf(id) < 0; }); + }, + /** + * This API fades out specified targets and reverts the others.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be faded out. + * @function defocus + * @instance + * @memberof Chart + * @param {string|Array} targetIdsValue Target ids to be faded out. + * @example + * // data1 will be faded out and the others will be reverted. + * chart.defocus("data1"); + * + * // data1 and data2 will be faded out and the others will be reverted. + * chart.defocus(["data1", "data2"]); + * + * // all targets will be faded out. + * chart.defocus(); + */ + defocus: function (targetIdsValue) { + var $$ = this.internal; + var state = $$.state; + var targetIds = $$.mapToTargetIds(targetIdsValue); + var candidates = $$.$el.svg.selectAll($$.selectorTargets(targetIds.filter($$.isTargetToShow, $$))); + candidates.classed($FOCUS.focused, false).classed($FOCUS.defocused, true); + if ($$.hasArcType(null, ["polar"])) { + $$.unexpandArc(targetIds); + $$.hasType("gauge") && + $$.undoMarkOverlapped($$, ".".concat($GAUGE.gaugeValue)); + } + $$.toggleFocusLegend(targetIds, false); + state.focusedTargetIds = state.focusedTargetIds.filter(function (id) { return targetIds.indexOf(id) < 0; }); + state.defocusedTargetIds = targetIds; + }, + /** + * Revert focused or defocused state to initial state.<br><br> + * You can specify multiple targets by giving an array that includes id as string. If no argument is given, all of targets will be reverted. + * @function revert + * @instance + * @memberof Chart + * @param {string|Array} targetIdsValue Target ids to be reverted + * @example + * // 'data1' will be reverted. + * chart.revert("data1"); + * + * // 'data1' and 'data2' will be reverted. + * chart.revert(["data1", "data2"]); + * + * // all targets will be reverted. + * chart.revert(); + */ + revert: function (targetIdsValue) { + var $$ = this.internal; + var config = $$.config, state = $$.state, $el = $$.$el; + var targetIds = $$.mapToTargetIds(targetIdsValue); + var candidates = $el.svg.selectAll($$.selectorTargets(targetIds)); // should be for all targets + candidates.classed($FOCUS.focused, false).classed($FOCUS.defocused, false); + $$.hasArcType(null, ["polar"]) && $$.unexpandArc(targetIds); + if (config.legend_show) { + $$.showLegend(targetIds.filter($$.isLegendToShow.bind($$))); + $el.legend.selectAll($$.selectorLegends(targetIds)) + .filter(function () { + return select(this).classed($FOCUS.legendItemFocused); + }) + .classed($FOCUS.legendItemFocused, false); + } + state.focusedTargetIds = []; + state.defocusedTargetIds = []; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Define legend + * @ignore + */ +var legend = { + /** + * Show legend for each target. + * - **NOTE:** Legend APIs aren't supported for `treemap` type. + * @function legend․show + * @instance + * @memberof Chart + * @param {string|Array} targetIds + * - If targetIds is given, specified target's legend will be shown. + * - If only one target is the candidate, String can be passed. + * - If no argument is given, all of target's legend will be shown. + * @example + * // Show legend for data1. + * chart.legend.show("data1"); + * + * // Show legend for data1 and data2. + * chart.legend.show(["data1", "data2"]); + * + * // Show all legend. + * chart.legend.show(); + */ + show: function (targetIds) { + var $$ = this.internal; + $$.showLegend($$.mapToTargetIds(targetIds)); + $$.updateAndRedraw({ withLegend: true }); + }, + /** + * Hide legend for each target. + * @function legend․hide + * @instance + * @memberof Chart + * @param {string|Array} targetIds + * - If targetIds is given, specified target's legend will be hidden. + * - If only one target is the candidate, String can be passed. + * - If no argument is given, all of target's legend will be hidden. + * @example + * // Hide legend for data1. + * chart.legend.hide("data1"); + * + * // Hide legend for data1 and data2. + * chart.legend.hide(["data1", "data2"]); + * + * // Hide all legend. + * chart.legend.hide(); + */ + hide: function (targetIds) { + var $$ = this.internal; + $$.hideLegend($$.mapToTargetIds(targetIds)); + $$.updateAndRedraw({ withLegend: true }); + } +}; +var apiLegend = { legend: legend }; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var apiLoad = { + /** + * Load data to the chart.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be toggles. + * - <b>Note:</b> + * - unload should be used if some data needs to be unloaded simultaneously. + * If you call unload API soon after/before load instead of unload param, chart will not be rendered properly because of cancel of animation.<br> + * - done will be called after data loaded, but it's not after rendering. + * It's because rendering will finish after some transition and there is some time lag between loading and rendering + * @function load + * @instance + * @memberof Chart + * @param {object} args The object can consist with following members:<br> + * + * | Key | Type | Description | + * | --- | --- | --- | + * | columns | Array | The `columns` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * | json | Array | The `json` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * | rows | Array | The `rows` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * | url | string | The data from `url` will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * |   | | | + * | append | boolean | Load data appending it to the current dataseries.<br>If the existing chart has`x` value, should provide with corresponding `x` value for newly loaded data. | + * | axes | Object | The axes specified by data.axes will be updated. axes must be Object that has target id as keys. | + * | categories | Array | The categories specified by axis.x.categories or data.x will be updated. categories must be Array. | + * | classes | Object | The classes specified by data.classes will be updated. classes must be Object that has target id as keys. | + * | colors | Object | The colors specified by data.colors will be updated. colors must be Object that has target id as keys. | + * | data | Obejct | Data objects to be loaded. Checkout the example. | + * | done | Function | The specified function will be called after data loaded.| + * | headers | string | Set request header if loading via `data.url`.<br>@see [data․headers](Options.html#.data%25E2%2580%25A4headers) | + * | keys | Object | Choose which JSON objects keys correspond to desired data.<br>**NOTE:** Only for JSON object given as array.<br>@see [data․keys](Options.html#.data%25E2%2580%25A4keys) | + * | mimeType | string | Set 'json' if loading JSON via url.<br>@see [data․mimeType](Options.html#.data%25E2%2580%25A4mimeType) | + * | names | Object | Same as data.names() | + * | resizeAfter | boolean | Resize after the load. Default value is `false`.<br>- This option won't call `onresize` neither `onresized`.<br>- When set to 'true', will call `.flush(true)` at the end of load. | + * | type | string | The type of targets will be updated. | + * | types | Object | The types of targets will be updated. | + * | unload | Array | Specify the data will be unloaded before loading new data. If true given, all of data will be unloaded. If target ids given as String or Array, specified targets will be unloaded. If absent or false given, unload will not occur. | + * | xs | string | Same as data.xs option | + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataFromURL) + * @example + * // Load data1 and unload data2 and data3 + * chart.load({ + * columns: [ + * ["data1", 100, 200, 150, ...], + * ... + * ], + * unload: ["data2", "data3"], + * url: "...", + * done: function() { ... } + * resizeAfter: true // will resize after load + * }); + * @example + * const chart = bb.generate({ + * data: { + * columns: [ + * ["data1", 20, 30, 40] + * ] + * } + * }); + * + * chart.load({ + * columns: [ + * // with 'append' option, the 'data1' will have `[20,30,40,50,60]`. + * ["data1", 50, 60] + * ], + * append: true + * }); + * @example + * const chart = bb.generate({ + * data: { + * x: "x", + * xFormat: "%Y-%m-%dT%H:%M:%S", + * columns: [ + * ["x", "2021-01-03T03:00:00", "2021-01-04T12:00:00", "2021-01-05T21:00:00"], + * ["data1", 36, 30, 24] + * ] + * }, + * axis: { + * x: { + * type: "timeseries" + * } + * } + * }; + * + * chart.load({ + * columns: [ + * // when existing chart has `x` value, should provide correponding 'x' value. + * // with 'append' option, the 'data1' will have `[36,30,24,37]`. + * ["x", "2021-02-01T08:00:00"], + * ["data1", 37] + * ], + * append: true + * }); + * @example + * // myAPI.json + * // { + * // "data1": [220, 240, 270, 250, 280], + * // "data2": [180, 150, 300, 70, 120] + * // } + * + * chart.load({ + * url: './data/myAPI.json', + * mimeType: "json", + * + * // set request header if is needed + * headers: { + * "Content-Type": "text/json" + * } + * }); + * @example + * chart.load({ + * data: [ + * // equivalent as: columns: [["data1", 30, 200, 100]] + * {"data1": 30}, {"data1": 200}, {"data1": 100} + * + * // or + * // equivalent as: columns: [["data1", 10, 20], ["data2", 13, 30]] + * // {"data1": 10, "data2": 13}, {"data1": 20, "data2": 30}} + * ] + * }); + * @example + * chart.load({ + * json: [ + * {name: "www.site1.com", upload: 800, download: 500, total: 400}, + * ], + * keys: { + * x: "name", + * value: ["upload", "download"] + * } + * }); + * @example + * chart.load({ + * json: { + * data1:[30, 20, 50, 40, 60, 50], + * data2:[200, 130, 90, 240, 130, 220], + * } + * }); + */ + load: function (args) { + var $$ = this.internal; + var config = $$.config; + // update xs if specified + args.xs && $$.addXs(args.xs); + // update names if exists + "names" in args && this.data.names(args.names); + // update classes if exists + "classes" in args && Object.keys(args.classes).forEach(function (id) { + config.data_classes[id] = args.classes[id]; + }); + // update categories if exists + if ("categories" in args && $$.axis.isCategorized()) { + config.axis_x_categories = args.categories; + } + // update axes if exists + "axes" in args && Object.keys(args.axes).forEach(function (id) { + config.data_axes[id] = args.axes[id]; + }); + // update colors if exists + "colors" in args && Object.keys(args.colors).forEach(function (id) { + config.data_colors[id] = args.colors[id]; + }); + // unload if needed + if ("unload" in args && args.unload !== false) { + // TODO: do not unload if target will load (included in url/rows/columns) + $$.unload($$.mapToTargetIds(args.unload === true ? null : args.unload), function () { + // to mitigate improper rendering for multiple consecutive calls + // https://github.com/naver/billboard.js/issues/2121 + requestIdleCallback(function () { return $$.loadFromArgs(args); }); + }); + } + else { + $$.loadFromArgs(args); + } + }, + /** + * Unload data to the chart.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be toggles. + * - <b>Note:</b> + * If you call load API soon after/before unload, unload param of load should be used. Otherwise chart will not be rendered properly because of cancel of animation.<br> + * `done` will be called after data loaded, but it's not after rendering. It's because rendering will finish after some transition and there is some time lag between loading and rendering. + * @function unload + * @instance + * @memberof Chart + * @param {object} argsValue + * | key | Type | Description | + * | --- | --- | --- | + * | ids | String | Array | Target id data to be unloaded. If not given, all data will be unloaded. | + * | done | Fuction | Callback after data is unloaded. | + * | resizeAfter | boolean | Resize after the unload. Default value is `false`.<br>- This option won't call `onresize` neither `onresized`.<br>- When set to 'true', will call `.flush(true)` at the end of unload. | + * @example + * // Unload data2 and data3 + * chart.unload({ + * ids: ["data2", "data3"], + * done: function() { + * // called after the unloaded + * }, + * resizeAfter: true // will resize after unload + * }); + */ + unload: function (argsValue) { + var $$ = this.internal; + var args = argsValue || {}; + // hide possible tooltip display when data is completely unloaded + isEmpty(args) && this.tooltip.hide(); + if (isArray(args)) { + args = { ids: args }; + } + else if (isString(args)) { + args = { ids: [args] }; + } + var ids = $$.mapToTargetIds(args.ids); + $$.unload(ids, function () { + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true, + withLegend: true + }); + $$.cache.remove(ids); + callDone.call($$, args.done, args.resizeAfter); + }); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Show/Hide data series + * @param {boolean} show Show or hide + * @param {Array} targetIdsValue Target id values + * @param {object} options Options + * @private + */ +function showHide(show, targetIdsValue, options) { + var _this = this; + var $$ = this.internal; + var targetIds = $$.mapToTargetIds(targetIdsValue); + var hiddenIds = $$.state.hiddenTargetIds + .map(function (v) { return targetIds.indexOf(v) > -1 && v; }) + .filter(Boolean); + $$.state.toggling = true; + $$["".concat(show ? "remove" : "add", "HiddenTargetIds")](targetIds); + var targets = $$.$el.svg.selectAll($$.selectorTargets(targetIds)); + var opacity = show ? null : "0"; + if (show && hiddenIds.length) { + targets.style("display", null); + callFn($$.config.data_onshown, this, hiddenIds); + } + $$.$T(targets) + .style("opacity", opacity, "important") + .call(endall, function () { + // https://github.com/naver/billboard.js/issues/1758 + if (!show && hiddenIds.length === 0) { + targets.style("display", "none"); + callFn($$.config.data_onhidden, _this, targetIds); + } + targets.style("opacity", opacity); + }); + options.withLegend && $$["".concat(show ? "show" : "hide", "Legend")](targetIds); + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true, + withLegend: true + }); + $$.state.toggling = false; +} +var apiShow = { + /** + * Show data series on chart + * @function show + * @instance + * @memberof Chart + * @param {string|Array} [targetIdsValue] The target id value. + * @param {object} [options] The object can consist with following members:<br> + * + * | Key | Type | default | Description | + * | --- | --- | --- | --- | + * | withLegend | boolean | false | whether or not display legend | + * + * @example + * // show 'data1' + * chart.show("data1"); + * + * // show 'data1' and 'data3' + * chart.show(["data1", "data3"]); + */ + show: function (targetIdsValue, options) { + if (options === void 0) { options = {}; } + showHide.call(this, true, targetIdsValue, options); + }, + /** + * Hide data series from chart + * @function hide + * @instance + * @memberof Chart + * @param {string|Array} [targetIdsValue] The target id value. + * @param {object} [options] The object can consist with following members:<br> + * + * | Key | Type | default | Description | + * | --- | --- | --- | --- | + * | withLegend | boolean | false | whether or not display legend | + * + * @example + * // hide 'data1' + * chart.hide("data1"); + * + * // hide 'data1' and 'data3' + * chart.hide(["data1", "data3"]); + */ + hide: function (targetIdsValue, options) { + if (options === void 0) { options = {}; } + showHide.call(this, false, targetIdsValue, options); + }, + /** + * Toggle data series on chart. When target data is hidden, it will show. If is shown, it will hide in vice versa. + * @function toggle + * @instance + * @memberof Chart + * @param {string|Array} [targetIds] The target id value. + * @param {object} [options] The object can consist with following members:<br> + * + * | Key | Type | default | Description | + * | --- | --- | --- | --- | + * | withLegend | boolean | false | whether or not display legend | + * + * @example + * // toggle 'data1' + * chart.toggle("data1"); + * + * // toggle 'data1' and 'data3' + * chart.toggle(["data1", "data3"]); + */ + toggle: function (targetIds, options) { + var _this = this; + if (options === void 0) { options = {}; } + var $$ = this.internal; + var targets = { show: [], hide: [] }; + // sort show & hide target ids + $$.mapToTargetIds(targetIds) + .forEach(function (id) { return targets[$$.isTargetToShow(id) ? "hide" : "show"].push(id); }); + // perform show & hide task separately + // https://github.com/naver/billboard.js/issues/454 + targets.show.length && this.show(targets.show, options); + targets.hide.length && setTimeout(function () { return _this.hide(targets.hide, options); }, 0); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Define tooltip + * @ignore + */ +var tooltip = { + /** + * Show tooltip + * @function tooltip․show + * @instance + * @memberof Chart + * @param {object} args The object can consist with following members:<br> + * + * | Key | Type | Description | + * | --- | --- | --- | + * | index | Number | Determine focus by index | + * | x | Number | Date | Determine focus by x Axis index | + * | mouse | Array | Determine x and y coordinate value relative the targeted '.bb-event-rect' x Axis.<br>It should be used along with `data`, `index` or `x` value. The default value is set as `[0,0]` | + * | data | Object | When [data.xs](Options.html#.data%25E2%2580%25A4xs) option is used or [tooltip.grouped](Options.html#.tooltip) set to 'false', `should be used giving this param`.<br><br>**Key:**<br>- x {number | Date}: x Axis value<br>- index {number}: x Axis index (useless for data.xs)<br>- id {string}: data id<br>- value {number}: The corresponding value for tooltip. | + * + * @example + * // show the 2nd x Axis coordinate tooltip + * // for Arc(gauge, donut & pie) and radar type, approch showing tooltip by using "index" number. + * chart.tooltip.show({ + * index: 1 + * }); + * + * // show tooltip for the 3rd x Axis in x:50 and y:100 coordinate of '.bb-event-rect' of the x Axis. + * chart.tooltip.show({ + * x: 2, + * mouse: [50, 100] + * }); + * + * // show tooltip for timeseries x axis + * chart.tooltip.show({ + * x: new Date("2018-01-02 00:00") + * }); + * + * // treemap type can be shown by using "id" only. + * chart.tooltip.show({ + * data: { + * id: "data1" // data id + * } + * }); + * + * // for Arc types, specify 'id' or 'index' + * chart.tooltip.show({ data: { id: "data2" }}); + * chart.tooltip.show({ data: { index: 2 }}); + * + * // when data.xs is used + * chart.tooltip.show({ + * data: { + * x: 3, // x Axis value + * id: "data1", // data id + * value: 500 // data value + * } + * }); + * + * // when data.xs isn't used, but tooltip.grouped=false is set + * chart.tooltip.show({ + * data: { + * index: 3, // or 'x' key value + * id: "data1", // data id + * value: 500 // data value + * } + * }); + */ + show: function (args) { + var _a, _b, _c; + var $$ = this.internal; + var $el = $$.$el, config = $$.config, _d = $$.state, eventReceiver = _d.eventReceiver, hasFunnel = _d.hasFunnel, hasTreemap = _d.hasTreemap, inputType = _d.inputType; + var index; + var mouse; + // determine mouse position on the chart + if (args.mouse) { + mouse = args.mouse; + } + // determine focus data + if (args.data) { + var data = args.data; + var y = (_a = $$.getYScaleById(data.id)) === null || _a === void 0 ? void 0 : _a(data.value); + if ((hasFunnel || hasTreemap) && data.id) { + var selector = $$.selectorTarget(data.id, undefined, ".".concat($SHAPE.shape)); + eventReceiver.rect = $el.main.select(selector); + } + else if ($$.isMultipleX()) { + // if multiple xs, target point will be determined by mouse + mouse = [$$.xx(data), y]; + } + else { + if (!config.tooltip_grouped) { + mouse = [0, y]; + } + index = (_b = data.index) !== null && _b !== void 0 ? _b : ($$.hasArcType() && data.id ? + (_c = $$.getArcElementByIdOrIndex(data.id)) === null || _c === void 0 ? void 0 : _c.datum().index : + $$.getIndexByX(data.x)); + } + } + else if (isDefined(args.x)) { + index = $$.getIndexByX(args.x); + } + else if (isDefined(args.index)) { + index = args.index; + } + (inputType === "mouse" ? ["mouseover", "mousemove"] : ["touchstart"]).forEach(function (eventName) { + $$.dispatchEvent(eventName, index, mouse); + }); + }, + /** + * Hide tooltip + * @function tooltip․hide + * @instance + * @memberof Chart + */ + hide: function () { + var _a, _b, _c; + var $$ = this.internal; + var inputType = $$.state.inputType, tooltip = $$.$el.tooltip; + var data = tooltip === null || tooltip === void 0 ? void 0 : tooltip.datum(); + if (data) { + var index_1 = JSON.parse(data.current)[0].index; + // make to finalize, possible pending event flow set from '.tooltip.show()' call + (inputType === "mouse" ? ["mouseout"] : ["touchend"]).forEach(function (eventName) { + $$.dispatchEvent(eventName, index_1); + }); + } + // reset last touch point index + inputType === "touch" && $$.callOverOutForTouch(); + $$.hideTooltip(true); + (_a = $$.hideGridFocus) === null || _a === void 0 ? void 0 : _a.call($$); + (_b = $$.unexpandCircles) === null || _b === void 0 ? void 0 : _b.call($$); + (_c = $$.expandBarTypeShapes) === null || _c === void 0 ? void 0 : _c.call($$, false); + } +}; +var apiTooltip = { tooltip: tooltip }; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Main chart class. + * - Note: Instantiated via `bb.generate()`. + * @class Chart + * @example + * var chart = bb.generate({ + * data: { + * columns: [ + * ["x", "2015-11-02", "2015-12-01", "2016-01-01", "2016-02-01", "2016-03-01"], + * ["count1", 11, 8, 7, 6, 5 ], + * ["count2", 9, 3, 6, 2, 8 ] + * ]} + * } + * @see {@link bb.generate} for the initialization. + */ +/** + * Access instance's primary node elements + * @member {object} $ + * @property {object} $ Access instance's primary node elements + * @property {d3.selection} $.chart Wrapper element + * @property {d3.selection} $.svg Main svg element + * @property {d3.selection} $.defs Definition element + * @property {d3.selection} $.main Main grouping element + * @property {d3.selection} $.needle Needle element + * - **NOTE:** + * - The element will have `bb-needle` as class name. + * - Will provide speical helper `.updateHelper(value: number, updateConfig: boolean)` method to facilitate needle position update. + * @property {d3.selection} $.tooltip Tooltip element + * @property {d3.selection} $.legend Legend element + * @property {d3.selection} $.title Title element + * @property {d3.selection} $.grid Grid element + * @property {d3.selection} $.arc Arc element + * @property {d3.selection} $.circles Data point circle elements + * @property {object} $.bar Bar element object + * @property {d3.selection} $.bar.bars Bar elements + * @property {d3.selection} $.candlestick Candlestick elements + * @property {object} $.line Line element object + * @property {d3.selection} $.line.lines Line elements + * @property {d3.selection} $.line.areas Areas elements + * @property {object} $.text Text element object + * @property {d3.selection} $.text.texts Data label text elements + * @memberof Chart + * @example + * const chart = bb.generate({ ... }); + * + * chart.$.chart; // wrapper element + * chart.$.line.circles; // all data point circle elements + * @example + * // Update arc needle position + * const chart = bb.generate({ + * data: { + * type: "donut" + * }, + * arc: { + * needle: { + * show: true, + * ... + * } + * } + * }); + * + * chart.$.needle.updateHelper(70); // update needle position to point value 70. + * + * // update needle position to point value 70 and the config value. + * // NOTE: updating config value, will update needle pointer initial value too. + * chart.$.needle.updateHelper(70, true); + * + * // update needle point position every 1 second + * let i = 0; + * setInterval(() => { + * chart.$.needle.updateHelper(i += 10); + * }, 1000) + */ +/** + * Plugin instance array + * @member {Array} plugins + * @memberof Chart + * @example + * var chart = bb.generate({ + * ... + * plugins: [ + * new bb.plugin.stanford({ ... }), + * new PluginA() + * ] + * }); + * + * chart.plugins; // [Stanford, PluginA] - instance array + */ +var Chart = /** @class */ (function () { + function Chart(options) { + this.plugins = []; + var $$ = new ChartInternal(this); + this.internal = $$; + // bind to namespaced APIs + (function bindThis(fn, target, argThis) { + Object.keys(fn).forEach(function (key) { + var isFunc = isFunction(fn[key]); + var isChild = target !== argThis; + var isNotNil = notEmpty(fn[key]); + var hasChild = isNotNil && Object.keys(fn[key]).length > 0; + if (isFunc && ((!isChild && hasChild) || isChild)) { + target[key] = fn[key].bind(argThis); + } + else if (isNotNil && !isFunc) { + target[key] = {}; + } + else { + target[key] = fn[key]; + } + hasChild && bindThis(fn[key], target[key], argThis); + }); + })(Chart.prototype, this, this); + loadConfig.call($$, options); + $$.beforeInit(); + $$.init(); + } + return Chart; +}()); +// extend common APIs as part of Chart class +extend(Chart.prototype, [ + apiChart, + apiColor, + apiData, + apiExport, + apiFocus, + apiLegend, + apiLoad, + apiShow, + apiTooltip +]); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Set the min/max value + * @param {Chart} $$ Chart instance + * @param {string} type Set type 'min' or 'max' + * @param {object} value Value to be set + * @private + */ +function setMinMax($$, type, value) { + var config = $$.config; + var helper = function (key, value) { + var v = isNumber(value) ? value : (value === false ? undefined : null); + if (v !== null) { + config["axis_".concat(key, "_").concat(type)] = v; + } + }; + if (isDefined(value)) { + if (isObjectType(value)) { + Object.keys(value).forEach(function (key) { + helper(key, value[key]); + }); + } + else if (isNumber(value) || value === false) { + // shorthand values affects only y and y2. + ["y", "y2"].forEach(function (key) { + helper(key, value); + }); + } + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true + }); + } +} +/** + * Get the min/max value + * @param {Chart} $$ Chart instance + * @param {string} type Set type 'min' or 'max' + * @returns {{x, y, y2}} + * @private + */ +function getMinMax($$, type) { + var config = $$.config; + return { + x: config["axis_x_".concat(type)], + y: config["axis_y_".concat(type)], + y2: config["axis_y2_".concat(type)] + }; +} +/** + * Define axis + * @ignore + */ +var axis$1 = { + /** + * Get and set axis labels. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․labels + * @instance + * @memberof Chart + * @param {object} labels specified axis' label to be updated. + * @param {string} [labels.x] x Axis string + * @param {string} [labels.y] y Axis string + * @param {string} [labels.y2] y2 Axis string + * @returns {object|undefined} axis labels text object + * @example + * // Update axis' label + * chart.axis.labels({ + * x: "New X Axis Label", + * y: "New Y Axis Label", + * y2: "New Y2 Axis Label" + * }); + * + * chart.axis.labels(); + * // --> { + * // x: "New X Axis Label", + * // y: "New Y Axis Label", + * // y2: "New Y2 Axis Label" + * // } + */ + labels: function (labels) { + var $$ = this.internal; + var labelText; + if (labels) { + Object.keys(labels).forEach(function (axisId) { + $$.axis.setLabelText(axisId, labels[axisId]); + }); + $$.axis.updateLabels(); + } + ["x", "y", "y2"].forEach(function (v) { + var text = $$.axis.getLabelText(v); + if (text) { + !labelText && (labelText = {}); + labelText[v] = text; + } + }); + return labelText; + }, + /** + * Get and set axis min value. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․min + * @instance + * @memberof Chart + * @param {object} min If min is given, specified axis' min value will be updated.<br> + * If no argument is given, the min values set on generating option for each axis will be returned. + * If not set any min values on generation, it will return `undefined`.<br> + * To unset specific axis max, set `false` to each of them. + * @returns {object|undefined} + * @example + * // Update axis' min + * chart.axis.min({ + * x: -10, + * y: 1000, + * y2: 100 + * }); + * + * // To unset specific axis min, set false to each of them. + * chart.axis.min({ + * x: false, + * y: false, + * y2: false + * }); + * + * // shorthand (only affects y and y2 axis) + * chart.axis.min(-50); + * chart.axis.min(false); + */ + min: function (min) { + var $$ = this.internal; + return isValue(min) || min === false ? + setMinMax($$, "min", min) : + getMinMax($$, "min"); + }, + /** + * Get and set axis max value. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․max + * @instance + * @memberof Chart + * @param {object} max If max is given, specified axis' max value will be updated.<br> + * If no argument is given, the max values set on generating option for each axis will be returned. + * If not set any max values on generation, it will return `undefined`.<br> + * To unset specific axis max, set `false` to each of them. + * @returns {object|undefined} + * @example + * // Update axis' label + * chart.axis.max({ + * x: 100, + * y: 1000, + * y2: 10000 + * }); + * + * // To unset specific axis max, set false to each of them. + * chart.axis.max({ + * x: false, + * y: false, + * y2: false + * }); + * + * // shorthand (only affects y and y2 axis) + * chart.axis.max(10); + * chart.axis.max(false); + */ + max: function (max) { + var $$ = this.internal; + return isValue(max) || max === false ? + setMinMax($$, "max", max) : + getMinMax($$, "max"); + }, + /** + * Get and set axis min and max value. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․range + * @instance + * @memberof Chart + * @param {object} range If range is given, specified axis' min and max value will be updated. + * If no argument is given, the current min and max values for each axis will be returned.<br> + * To unset specific axis max, set `false` to each of them. + * @returns {object|undefined} + * @example + * // Update axis' label + * chart.axis.range({ + * min: { + * x: -10, + * y: -1000, + * y2: -10000 + * }, + * max: { + * x: 100, + * y: 1000, + * y2: 10000 + * }, + * }); + * + * // To unset specific axis max, set false to each of them. + * chart.axis.range({ + * min: { + * x: false, + * y: false, + * y2: false + * }, + * max: { + * x: false, + * y: false, + * y2: false + * }, + * }); + * + * // shorthand (only affects y and y2 axis) + * chart.axis.range({ min: -50, max: 1000 }); + * chart.axis.range({ min: false, max: false }); + */ + range: function (range) { + var axis = this.axis; + if (arguments.length) { + var min = range.min, max = range.max; + isDefined(max) && axis.max(max); + isDefined(min) && axis.min(min); + } + else { + return { + max: axis.max(), + min: axis.min() + }; + } + return undefined; + } +}; +var apiAxis = { axis: axis$1 }; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var apiCategory = { + /** + * Set specified category name on category axis. + * @function category + * @instance + * @memberof Chart + * @param {number} i index of category to be changed + * @param {string} category category value to be changed + * @returns {string} + * @example + * chart.category(2, "Category 3"); + */ + category: function (i, category) { + var $$ = this.internal; + var config = $$.config; + if (arguments.length > 1) { + config.axis_x_categories[i] = category; + $$.redraw(); + } + return config.axis_x_categories[i]; + }, + /** + * Set or get category names on category axis. + * @function categories + * @instance + * @memberof Chart + * @param {Array} categories This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required. + * @returns {Array} + * @example + * chart.categories([ + * "Category 1", "Category 2", ... + * ]); + */ + categories: function (categories) { + var $$ = this.internal; + var config = $$.config; + if (!categories || !Array.isArray(categories)) { + var cat = config.axis_x_categories; + return isEmpty(cat) ? Object.values($$.data.xs)[0] : cat; + } + config.axis_x_categories = categories; + $$.redraw(); + return config.axis_x_categories; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var apiFlow = { + /** + * Flow data to the chart.<br><br> + * By this API, you can append new data points to the chart. + * @function flow + * @instance + * @memberof Chart + * @param {object} args The object can consist with following members:<br> + * + * | Key | Type | Description | + * | --- | --- | --- | + * | json | Object | Data as JSON format (@see [data․json](Options.html#.data%25E2%2580%25A4json)) | + * | rows | Array | Data in array as row format (@see [data․rows](Options.html#.data%25E2%2580%25A4json)) | + * | columns | Array | Data in array as column format (@see [data․columns](Options.html#.data%25E2%2580%25A4columns)) | + * | to | String | The lower x edge will move to that point. If not given, the lower x edge will move by the number of given data points | + * | length | Number | The lower x edge will move by the number of this argument | + * | duration | Number | The duration of the transition will be specified value. If not given, transition.duration will be used as default | + * | done | Function | The specified function will be called when flow ends | + * + * - **NOTE:** + * - If json, rows and columns given, the data will be loaded. + * - If data that has the same target id is given, the chart will be appended. + * - Otherwise, new target will be added. One of these is required when calling. + * - If json specified, keys is required as well as data.json. + * - If tab isn't visible(by evaluating `document.hidden`), will not be executed to prevent unnecessary work. + * @example + * // 2 data points will be apprended to the tail and popped from the head. + * // After that, 4 data points will be appended and no data points will be poppoed. + * chart.flow({ + * columns: [ + * ["x", "2018-01-11", "2018-01-21"], + * ["data1", 500, 200], + * ["data2", 100, 300], + * ["data3", 200, 120] + * ], + * to: "2013-01-11", + * done: function () { + * chart.flow({ + * columns: [ + * ["x", "2018-02-11", "2018-02-12", "2018-02-13", "2018-02-14"], + * ["data1", 200, 300, 100, 250], + * ["data2", 100, 90, 40, 120], + * ["data3", 100, 100, 300, 500] + * ], + * length: 2, + * duration: 1500 + * }); + * } + * }); + */ + flow: function (args) { + var $$ = this.internal; + var data; + if (args.json || args.rows || args.columns) { + $$.convertData(args, function (res) { + data = res; + _(); + }); + } + /** + * Process flows + * @private + */ + function _() { + var domain; + var length = 0; + var tail = 0; + var diff; + var to; + if ($$.state.redrawing || !data || !isTabVisible()) { + return; + } + var notfoundIds = []; + var orgDataCount = $$.getMaxDataCount(); + var targets = $$.convertDataToTargets(data, true); + var isTimeSeries = $$.axis.isTimeSeries(); + // Update/Add data + $$.data.targets.forEach(function (t) { + var found = false; + for (var i = 0; i < targets.length; i++) { + if (t.id === targets[i].id) { + found = true; + if (t.values[t.values.length - 1]) { + tail = t.values[t.values.length - 1].index + 1; + } + length = targets[i].values.length; + for (var j = 0; j < length; j++) { + targets[i].values[j].index = tail + j; + if (!isTimeSeries) { + targets[i].values[j].x = tail + j; + } + } + t.values = t.values.concat(targets[i].values); + targets.splice(i, 1); + break; + } + } + !found && notfoundIds.push(t.id); + }); + // Append null for not found targets + $$.data.targets.forEach(function (t) { + for (var i = 0; i < notfoundIds.length; i++) { + if (t.id === notfoundIds[i]) { + tail = t.values[t.values.length - 1].index + 1; + for (var j = 0; j < length; j++) { + t.values.push({ + id: t.id, + index: tail + j, + x: isTimeSeries ? $$.getOtherTargetX(tail + j) : tail + j, + value: null + }); + } + } + } + }); + // Generate null values for new target + if ($$.data.targets.length) { + targets.forEach(function (t) { + var missing = []; + for (var i = $$.data.targets[0].values[0].index; i < tail; i++) { + missing.push({ + id: t.id, + index: i, + x: isTimeSeries ? $$.getOtherTargetX(i) : i, + value: null + }); + } + t.values.forEach(function (v) { + v.index += tail; + if (!isTimeSeries) { + v.x += tail; + } + }); + t.values = missing.concat(t.values); + }); + } + $$.data.targets = $$.data.targets.concat(targets); // add remained + // check data count because behavior needs to change when it"s only one + // const dataCount = $$.getMaxDataCount(); + var baseTarget = $$.data.targets[0]; + var baseValue = baseTarget.values[0]; + // Update length to flow if needed + if (isDefined(args.to)) { + length = 0; + to = isTimeSeries ? parseDate.call($$, args.to) : args.to; + baseTarget.values.forEach(function (v) { + v.x < to && length++; + }); + } + else if (isDefined(args.length)) { + length = args.length; + } + // If only one data, update the domain to flow from left edge of the chart + if (!orgDataCount) { + if (isTimeSeries) { + diff = baseTarget.values.length > 1 ? + baseTarget.values[baseTarget.values.length - 1].x - baseValue.x : + baseValue.x - $$.getXDomain($$.data.targets)[0]; + } + else { + diff = 1; + } + domain = [baseValue.x - diff, baseValue.x]; + } + else if (orgDataCount === 1 && isTimeSeries) { + diff = (baseTarget.values[baseTarget.values.length - 1].x - baseValue.x) / 2; + domain = [new Date(+baseValue.x - diff), new Date(+baseValue.x + diff)]; + } + domain && $$.updateXDomain(null, true, true, false, domain); + // Set targets + $$.updateTargets($$.data.targets); + // Redraw with new targets + $$.redraw({ + flow: { + index: baseValue.index, + length: length, + duration: isValue(args.duration) ? + args.duration : + $$.config.transition_duration, + done: args.done, + orgDataCount: orgDataCount + }, + withLegend: true, + withTransition: orgDataCount > 1, + withTrimXDomain: false, + withUpdateXAxis: true + }); + } + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Update grid lines. + * @param {Array} grids grid lines to update + * @param {string} axisId axis' id: "x" or "y" + * @returns {Array} + * @private + */ +function grid$1(grids, axisId) { + var $$ = this.internal; + var config = $$.config; + var withTransition = config.transition_duration && isTabVisible(); + var gridPropLines = "grid_".concat(axisId, "_lines"); + if (!grids) { + return config[gridPropLines]; + } + config[gridPropLines] = grids; + $$.updateGrid(); + $$.redrawGrid(withTransition); + return config[gridPropLines]; +} +/** + * Add grid lines. + * @param {Array|object} grids grid lines to add + * @param {string} axisId axis' id: "x" or "y" + * @returns {Array} + * @private + */ +function add(grids, axisId) { + var gridPropLines = "grid_".concat(axisId, "_lines"); + return grid$1.bind(this)(this.internal.config[gridPropLines].concat(grids || []), axisId); +} +/** + * Remove grid lines. + * @param {object} grids grid lines to remove + * @param {boolean} isXAxis weather is x axis or not + * @private + */ +function remove(grids, isXAxis) { + this.internal.removeGridLines(grids, isXAxis); +} +/** + * Update x grid lines. + * @function xgrids + * @instance + * @memberof Chart + * @param {Array} grids X grid lines will be replaced with this argument. The format of this argument is the same as grid.x.lines. + * @returns {Array} + * @example + * // Show 2 x grid lines + * chart.xgrids([ + * {value: 1, text: "Label 1"}, + * {value: 4, text: "Label 4"} + * ]); + * // --> Returns: [{value: 1, text: "Label 1"}, {value: 4, text: "Label 4"}] + */ +var xgrids = function (grids) { + return grid$1.bind(this)(grids, "x"); +}; +extend(xgrids, { + /** + * Add x grid lines.<br> + * This API adds new x grid lines instead of replacing like xgrids. + * @function xgrids․add + * @instance + * @memberof Chart + * @param {Array|object} grids New x grid lines will be added. The format of this argument is the same as grid.x.lines and it's possible to give an Object if only one line will be added. + * @returns {Array} + * @example + * // Add a new x grid line + * chart.xgrids.add( + * {value: 4, text: "Label 4"} + * ); + * + * // Add new x grid lines + * chart.xgrids.add([ + * {value: 2, text: "Label 2"}, + * {value: 4, text: "Label 4"} + * ]); + */ + add: function (grids) { + return add.bind(this)(grids, "x"); + }, + /** + * Remove x grid lines.<br> + * This API removes x grid lines. + * @function xgrids․remove + * @instance + * @memberof Chart + * @param {object} grids This argument should include value or class. If value is given, the x grid lines that have specified x value will be removed. If class is given, the x grid lines that have specified class will be removed. If args is not given, all of x grid lines will be removed. + * @param {number} [grids.value] target value + * @param {string} [grids.class] target class + * @returns {void} + * @example + * // x grid line on x = 2 will be removed + * chart.xgrids.remove({value: 2}); + * + * // x grid lines that have 'grid-A' will be removed + * chart.xgrids.remove({ + * class: "grid-A" + * }); + * + * // all of x grid lines will be removed + * chart.xgrids.remove(); + */ + remove: function (grids) { + return remove.bind(this)(grids, true); + } +}); +/** + * Update y grid lines. + * @function ygrids + * @instance + * @memberof Chart + * @param {Array} grids Y grid lines will be replaced with this argument. The format of this argument is the same as grid.y.lines. + * @returns {object} + * @example + * // Show 2 y grid lines + * chart.ygrids([ + * {value: 100, text: "Label 1"}, + * {value: 400, text: "Label 4"} + * ]); + * // --> Returns: [{value: 100, text: "Label 1"}, {value: 400, text: "Label 4"}] + */ +var ygrids = function (grids) { + return grid$1.bind(this)(grids, "y"); +}; +extend(ygrids, { + /** + * Add y grid lines.<br> + * This API adds new y grid lines instead of replacing like ygrids. + * @function ygrids․add + * @instance + * @memberof Chart + * @param {Array|object} grids New y grid lines will be added. The format of this argument is the same as grid.y.lines and it's possible to give an Object if only one line will be added. + * @returns {object} + * @example + * // Add a new x grid line + * chart.ygrids.add( + * {value: 400, text: "Label 4"} + * ); + * + * // Add new x grid lines + * chart.ygrids.add([ + * {value: 200, text: "Label 2"}, + * {value: 400, text: "Label 4"} + * ]); + */ + add: function (grids) { + return add.bind(this)(grids, "y"); + }, + /** + * Remove y grid lines.<br> + * This API removes x grid lines. + * @function ygrids․remove + * @instance + * @memberof Chart + * @param {object} grids This argument should include value or class. If value is given, the y grid lines that have specified y value will be removed. If class is given, the y grid lines that have specified class will be removed. If args is not given, all of y grid lines will be removed. + * @param {number} [grids.value] target value + * @param {string} [grids.class] target class + * @returns {void} + * @example + * // y grid line on y = 200 will be removed + * chart.ygrids.remove({value: 200}); + * + * // y grid lines that have 'grid-A' will be removed + * chart.ygrids.remove({ + * class: "grid-A" + * }); + * + * // all of y grid lines will be removed + * chart.ygrids.remove(); + */ + remove: function (grids) { + return remove.bind(this)(grids, false); + } +}); +var apiGrid = { xgrids: xgrids, ygrids: ygrids }; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var apiGroup = { + /** + * Update groups for the targets. + * @function groups + * @instance + * @memberof Chart + * @param {Array} groups This argument needs to be an Array that includes one or more Array that includes target ids to be grouped. + * @returns {Array} Grouped data names array + * @example + * // data1 and data2 will be a new group. + * chart.groups([ + * ["data1", "data2"] + * ]); + */ + groups: function (groups) { + var $$ = this.internal; + var config = $$.config; + if (isUndefined(groups)) { + return config.data_groups; + } + config.data_groups = groups; + $$.redraw(); + return config.data_groups; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Region add/update function + * @param {Array} regions Regions will be replaced with this argument. The format of this argument is the same as regions. + * @param {boolean} isAdd If true, add new regions, otherwise update regions + * @returns {Array} regions + * @private + */ +function regionsFn(regions, isAdd) { + if (isAdd === void 0) { isAdd = false; } + var $$ = this.internal; + var config = $$.config; + var withTransition = config.transition_duration && isTabVisible(); + if (!regions) { + return config.regions; + } + config.regions = isAdd ? config.regions.concat(regions) : regions; + $$.updateRegion(); + $$.redrawRegion(withTransition); + return isAdd ? config.regions : regions; +} +/** + * Update regions. + * @function regions + * @instance + * @memberof Chart + * @param {Array} regions Regions will be replaced with this argument. The format of this argument is the same as regions. + * @returns {Array} regions + * @example + * // Show 2 regions + * chart.regions([ + * {axis: "x", start: 5, class: "regionX"}, + * { + * axis: "y", end: 50, class: "regionY", + * label: { + * text: "Region Text", + * x: 5, // position relative of the initial x coordinate + * y: 5, // position relative of the initial y coordinate + * color: "red", // color string + * rotated: true // make text to show in vertical or horizontal + * } + * } + * ]); + */ +var regions = function (regions) { + return regionsFn.bind(this)(regions); +}; +extend(regions, { + /** + * Add new region.<br><br> + * This API adds new region instead of replacing like regions. + * @function regions․add + * @instance + * @memberof Chart + * @param {Array|object} regions New region will be added. The format of this argument is the same as regions and it's possible to give an Object if only one region will be added. + * @returns {Array} regions + * @example + * // Add a new region + * chart.regions.add( + * { + * axis: "x", start: 5, class: "regionX", + * label: { + * text: "Region Text", + * color: "red" // color string + * } + * } + * ); + * + * // Add new regions + * chart.regions.add([ + * {axis: "x", start: 5, class: "regionX"}, + * { + * axis: "y", end: 50, class: "regionY", + * label: { + * text: "Region Text", + * x: 5, // position relative of the initial x coordinate + * y: 5, // position relative of the initial y coordinate + * color: "red", // color string + * rotated: true // make text to show in vertical or horizontal + * } + * } + * ]); + */ + add: function (regions) { + return regionsFn.bind(this)(regions, true); + }, + /** + * Remove regions.<br><br> + * This API removes regions. + * @function regions․remove + * @instance + * @memberof Chart + * @param {object} optionsValue This argument should include classes. If classes is given, the regions that have one of the specified classes will be removed. If args is not given, all of regions will be removed. + * @returns {Array} regions Removed regions + * @example + * // regions that have 'region-A' or 'region-B' will be removed. + * chart.regions.remove({ + * classes: [ + * "region-A", "region-B" + * ] + * }); + * + * // all of regions will be removed. + * chart.regions.remove(); + */ + remove: function (optionsValue) { + var $$ = this.internal; + var config = $$.config, $T = $$.$T; + var options = optionsValue || {}; + var classes = getOption(options, "classes", [$REGION.region]); + var regions = $$.$el.main.select(".".concat($REGION.regions)) + .selectAll(classes.map(function (c) { return ".".concat(c); })); + $T(regions) + .style("opacity", "0") + .remove(); + regions = config.regions; + if (Object.keys(options).length) { + regions = regions.filter(function (region) { + var found = false; + if (!region.class) { + return true; + } + region.class.split(" ").forEach(function (c) { + if (classes.indexOf(c) >= 0) { + found = true; + } + }); + return !found; + }); + config.regions = regions; + } + else { + config.regions = []; + } + return regions; + } +}); +var apiRegion = { regions: regions }; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var apiX = { + /** + * Get and set x values for the chart. + * @function x + * @instance + * @memberof Chart + * @param {Array} x If x is given, x values of every target will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids. + * @returns {object} xs + * @example + * // Get current x values + * chart.x(); + * + * // Update x values for all targets + * chart.x([100, 200, 300, 400, ...]); + */ + x: function (x) { + var $$ = this.internal; + var axis = $$.axis, data = $$.data; + var isCategorized = axis.isCustomX() && axis.isCategorized(); + if (isArray(x)) { + if (isCategorized) { + this.categories(x); + } + else { + $$.updateTargetX(data.targets, x); + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true + }); + } + } + return isCategorized ? this.categories() : data.xs; + }, + /** + * Get and set x values for the chart. + * @function xs + * @instance + * @memberof Chart + * @param {Array} xs If xs is given, specified target's x values will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids. + * @returns {object} xs + * @example + * // Get current x values + * chart.xs(); + * + * // Update x values for all targets + * chart.xs({ + * data1: [10, 20, 30, 40, ...], + * data2: [100, 200, 300, 400, ...] + * }); + */ + xs: function (xs) { + var $$ = this.internal; + if (isObject(xs)) { + $$.updateTargetXs($$.data.targets, xs); + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true + }); + } + return $$.data.xs; + } +}; + +var AxisRendererHelper = /** @class */ (function () { + function AxisRendererHelper(owner) { + var scale = getScale(); + var config = owner.config, params = owner.params; + this.owner = owner; + this.config = config; + this.scale = scale; + if (config.noTransition || !params.config.transition_duration) { + config.withoutTransition = true; + } + // set range + config.range = this.scaleExtent((params.orgXScale || scale).range()); + } + /** + * Compute a character dimension + * @param {d3.selection} node <g class=tick> node + * @returns {{w: number, h: number}} + * @private + */ + AxisRendererHelper.getSizeFor1Char = function (node) { + // default size for one character + var size = { + w: 5.5, + h: 11.5 + }; + !node.empty() && node.select("text") + .text("0") + .call(function (el) { + try { + var _a = el.node().getBBox(), width = _a.width, height = _a.height; + if (width && height) { + size.w = width; + size.h = height; + } + } + catch (e) { + } + finally { + el.text(""); + } + }); + this.getSizeFor1Char = function () { return size; }; + return size; + }; + /** + * Get tick transform setter function + * @param {string} id Axis id + * @returns {Function} transfrom setter function + * @private + */ + AxisRendererHelper.prototype.getTickTransformSetter = function (id) { + var config = this.config; + var fn = id === "x" ? + function (value) { return "translate(".concat(value + config.tickOffset, ",0)"); } : + function (value) { return "translate(0,".concat(value, ")"); }; + return function (selection, scale) { + selection.attr("transform", function (d) { return (isValue(d) ? fn(Math.ceil(scale(d))) : null); }); + }; + }; + AxisRendererHelper.prototype.scaleExtent = function (domain) { + var start = domain[0]; + var stop = domain[domain.length - 1]; + return start < stop ? [start, stop] : [stop, start]; + }; + AxisRendererHelper.prototype.generateTicks = function (scale, isYAxes) { + var tickStepSize = this.owner.params.tickStepSize; + var _a = scale.domain(), start = _a[0], end = _a[1]; + var ticks = []; + // When 'axis[y|y2].tick.stepSize' option is set + if (isYAxes && tickStepSize) { + var interval = Math.round(start); + while (interval <= end) { + ticks.push(interval); + interval += tickStepSize; + } + } + else if (scale.ticks) { + var tickArguments = this.config.tickArguments; + // adjust excessive tick count show + if (scale.type === "log" && !tickArguments) { + // nicer symlog ticks didn't implemented yet: https://github.com/d3/d3-scale/issues/162 + // get ticks values from logScale + var s = getScale("_log") + .domain([start > 0 ? start : 1, end]) + .range(scale.range()); + ticks = s.ticks(); + for (var cnt = end.toFixed().length; ticks.length > 15; cnt--) { + ticks = s.ticks(cnt); + } + ticks.splice(0, 1, start); + ticks.splice(ticks.length - 1, 1, end); + } + else { + ticks = scale + .ticks.apply(scale, (this.config.tickArguments || [])); + } + ticks = ticks + .map(function (v) { + // round the tick value if is number + var r = (isString(v) && isNumber(v) && !isNaN(v) && + Math.round(v * 10) / 10) || v; + return r; + }); + } + return ticks; + }; + AxisRendererHelper.prototype.copyScale = function () { + var newScale = this.scale.copy(); + if (!newScale.domain().length) { + newScale.domain(this.scale.domain()); + } + newScale.type = this.scale.type; + return newScale; + }; + AxisRendererHelper.prototype.textFormatted = function (v) { + var tickFormat = this.config.tickFormat; + // to round float numbers from 'binary floating point' + // https://en.wikipedia.org/wiki/Double-precision_floating-point_format + // https://stackoverflow.com/questions/17849101/laymans-explanation-for-why-javascript-has-weird-floating-math-ieee-754-stand + var value = /\d+\.\d+0{5,}\d$/.test(v) ? +String(v).replace(/0+\d$/, "") : v; + var formatted = tickFormat ? tickFormat(value) : value; + return isDefined(formatted) ? formatted : ""; + }; + AxisRendererHelper.prototype.transitionise = function (selection) { + var config = this.config; + var transitionSelection = selection; + if (config.withoutTransition) { + transitionSelection = selection.interrupt(); + } + else if (config.transition || !this.owner.params.noTransition) { + // prevent for 'transition not found' case + // https://github.com/naver/billboard.js/issues/2140 + try { + transitionSelection = selection.transition(config.transition); + } + catch (e) { } + } + return transitionSelection; + }; + return AxisRendererHelper; +}()); + +var AxisRenderer = /** @class */ (function () { + function AxisRenderer(params) { + if (params === void 0) { params = {}; } + var config = { + innerTickSize: 6, + outerTickSize: params.outerTick ? 6 : 0, + orient: "bottom", + range: [], + tickArguments: null, + tickCentered: null, + tickCulling: true, + tickFormat: null, + tickLength: 9, + tickOffset: 0, + tickPadding: 3, + tickValues: null, + transition: null, + noTransition: params.noTransition + }; + config.tickLength = Math.max(config.innerTickSize, 0) + config.tickPadding; + this.config = config; + this.params = params; + this.helper = new AxisRendererHelper(this); + } + /** + * Create axis element + * @param {d3.selection} g Axis selection + * @private + */ + AxisRenderer.prototype.create = function (g) { + var ctx = this; + var config = ctx.config, helper = ctx.helper, params = ctx.params; + var scale = helper.scale; + var orient = config.orient; + var splitTickText = this.splitTickText.bind(ctx); + var isLeftRight = /^(left|right)$/.test(orient); + var isTopBottom = /^(top|bottom)$/.test(orient); + // line/text enter and path update + var tickTransform = helper.getTickTransformSetter(isTopBottom ? "x" : "y"); + var axisPx = tickTransform === helper.axisX ? "y" : "x"; + var sign = /^(top|left)$/.test(orient) ? -1 : 1; + // tick text helpers + var rotate = params.tickTextRotate; + this.config.range = scale.rangeExtent ? + scale.rangeExtent() : + helper.scaleExtent((params.orgXScale || scale).range()); + var innerTickSize = config.innerTickSize, tickLength = config.tickLength, range = config.range; + // // get the axis' tick position configuration + var id = params.id; + var tickTextPos = id && /^(x|y|y2)$/.test(id) ? + params.config["axis_".concat(id, "_tick_text_position")] : + { x: 0, y: 0 }; + // tick visiblity + var prefix = id === "subX" ? "subchart_axis_x" : "axis_".concat(id); + var axisShow = params.config["".concat(prefix, "_show")]; + var tickShow = { + tick: axisShow ? params.config["".concat(prefix, "_tick_show")] : false, + text: axisShow ? params.config["".concat(prefix, "_tick_text_show")] : false + }; + var $g; + g.each(function () { + var g = select(this); + var scale0 = this.__chart__ || scale; + var scale1 = helper.copyScale(); + $g = g; + this.__chart__ = scale1; + config.tickOffset = params.isCategory ? Math.ceil((scale1(1) - scale1(0)) / 2) : 0; + // update selection - data join + var path = g.selectAll(".domain").data([0]); + // enter + update selection + path.enter().append("path") + .attr("class", "domain") + // https://observablehq.com/@d3/d3-selection-2-0 + .merge(path) + .attr("d", function () { + var outerTickSized = config.outerTickSize * sign; + return isTopBottom ? + "M".concat(range[0], ",").concat(outerTickSized, "V0H").concat(range[1], "V").concat(outerTickSized) : + "M".concat(outerTickSized, ",").concat(range[0], "H0V").concat(range[1], "H").concat(outerTickSized); + }); + if (tickShow.tick || tickShow.text) { + // count of tick data in array + var ticks_1 = config.tickValues || helper.generateTicks(scale1, isLeftRight); + // set generated ticks + ctx.generatedTicks = ticks_1; + // update selection + var tick = g.selectAll(".tick") + .data(ticks_1, scale1); + // enter selection + var tickEnter = tick + .enter() + .insert("g", ".domain") + .attr("class", "tick"); + // MEMO: No exit transition. The reason is this transition affects max tick width calculation because old tick will be included in the ticks. + var tickExit = tick.exit().remove(); + // enter + update selection + tick = tickEnter.merge(tick); + tickShow.tick && tickEnter.append("line"); + tickShow.text && tickEnter.append("text"); + var sizeFor1Char_1 = AxisRendererHelper.getSizeFor1Char(tick); + var counts_1 = []; + var tspan = tick.select("text") + .selectAll("tspan") + .data(function (d, index) { + var split = params.tickMultiline ? + splitTickText(d, scale1, ticks_1, isLeftRight, sizeFor1Char_1.w) : + (isArray(helper.textFormatted(d)) ? + helper.textFormatted(d).concat() : + [helper.textFormatted(d)]); + counts_1[index] = split.length; + return split.map(function (splitted) { return ({ index: index, splitted: splitted }); }); + }); + tspan.exit().remove(); + tspan = tspan + .enter() + .append("tspan") + .merge(tspan) + .text(function (d) { return d.splitted; }); + // set <tspan>'s position + tspan + .attr("x", isTopBottom ? 0 : tickLength * sign) + .attr("dx", (function () { + var dx = 0; + if (/(top|bottom)/.test(orient) && rotate) { + dx = 8 * Math.sin(Math.PI * (rotate / 180)) * + (orient === "top" ? -1 : 1); + } + return dx + (tickTextPos.x || 0); + })()) + .attr("dy", function (d, i) { + var defValue = ".71em"; + var dy = 0; + if (orient !== "top") { + dy = sizeFor1Char_1.h; + if (i === 0) { + dy = isLeftRight ? + -((counts_1[d.index] - 1) * (sizeFor1Char_1.h / 2) - 3) : + (tickTextPos.y === 0 ? defValue : 0); + } + } + return isNumber(dy) && tickTextPos.y ? dy + tickTextPos.y : dy || defValue; + }); + var lineUpdate = tick.select("line"); + var textUpdate = tick.select("text"); + tickEnter.select("line").attr("".concat(axisPx, "2"), innerTickSize * sign); + tickEnter.select("text").attr(axisPx, tickLength * sign); + ctx.setTickLineTextPosition(lineUpdate, textUpdate); + // Append <title> for tooltip display + if (params.tickTitle) { + var title = textUpdate.select("title"); + (title.empty() ? textUpdate.append("title") : title) + .text(function (index) { return params.tickTitle[index]; }); + } + if (scale1.bandwidth) { + var x_1 = scale1; + var dx_1 = x_1.bandwidth() / 2; + scale0 = function (d) { return x_1(d) + dx_1; }; + scale1 = scale0; + } + else if (scale0.bandwidth) { + scale0 = scale1; + } + else { + tickTransform(tickExit, scale1); + } + // when .flow(), it should follow flow's transition config + // otherwise make to use ChartInternals.$T() + tick = params.owner.state.flowing ? + helper.transitionise(tick) : + params.owner.$T(tick); + tickTransform(tickEnter, scale0); + tickTransform(tick.style("opacity", null), scale1); + } + }); + this.g = $g; + }; + /** + * Get generated ticks + * @param {number} count Count of ticks + * @returns {Array} Generated ticks + * @private + */ + AxisRenderer.prototype.getGeneratedTicks = function (count) { + var _a; + var len = ((_a = this.generatedTicks) === null || _a === void 0 ? void 0 : _a.length) - 1; + var res = this.generatedTicks; + if (len > count) { + var interval_1 = Math.round((len / count) + 0.1); + res = this.generatedTicks + .map(function (v, i) { return (i % interval_1 === 0 ? v : null); }) + .filter(function (v) { return v !== null; }) + .splice(0, count); + } + return res; + }; + /** + * Get tick x/y coordinate + * @returns {{x: number, y: number}} + * @private + */ + AxisRenderer.prototype.getTickXY = function () { + var config = this.config; + var pos = { x: 0, y: 0 }; + if (this.params.isCategory) { + pos.x = config.tickCentered ? 0 : config.tickOffset; + pos.y = config.tickCentered ? config.tickOffset : 0; + } + return pos; + }; + /** + * Get tick size + * @param {object} d data object + * @returns {number} + * @private + */ + AxisRenderer.prototype.getTickSize = function (d) { + var scale = this.helper.scale; + var config = this.config; + var innerTickSize = config.innerTickSize, range = config.range; + var tickPosition = scale(d) + + (config.tickCentered ? 0 : config.tickOffset); + return range[0] < tickPosition && tickPosition < range[1] ? innerTickSize : 0; + }; + /** + * Set tick's line & text position + * @param {d3.selection} lineUpdate Line selection + * @param {d3.selection} textUpdate Text selection + * @private + */ + AxisRenderer.prototype.setTickLineTextPosition = function (lineUpdate, textUpdate) { + var tickPos = this.getTickXY(); + var _a = this.config, innerTickSize = _a.innerTickSize, orient = _a.orient, tickLength = _a.tickLength, tickOffset = _a.tickOffset; + var rotate = this.params.tickTextRotate; + var textAnchorForText = function (r) { + var value = ["start", "end"]; + orient === "top" && value.reverse(); + return !r ? "middle" : value[r > 0 ? 0 : 1]; + }; + var textTransform = function (r) { return (r ? "rotate(".concat(r, ")") : null); }; + var yForText = function (r) { + var r2 = r / (orient === "bottom" ? 15 : 23); + return r ? 11.5 - 2.5 * r2 * (r > 0 ? 1 : -1) : tickLength; + }; + var _b = this.params.owner.config, isRotated = _b.axis_rotated, inner = _b.axis_x_tick_text_inner; + switch (orient) { + case "bottom": + lineUpdate + .attr("x1", tickPos.x) + .attr("x2", tickPos.x) + .attr("y2", this.getTickSize.bind(this)); + textUpdate + .attr("x", 0) + .attr("y", yForText(rotate)) + .style("text-anchor", textAnchorForText(rotate)) + .style("text-anchor", function (d, i, _a) { + var length = _a.length; + if (!isRotated && i === 0 && (inner === true || inner.first)) { + return "start"; + } + else if (!isRotated && i === length - 1 && (inner === true || inner.last)) { + return "end"; + } + return textAnchorForText(rotate); + }) + .attr("transform", textTransform(rotate)); + break; + case "top": + lineUpdate + .attr("x2", 0) + .attr("y2", -innerTickSize); + textUpdate + .attr("x", 0) + .attr("y", -yForText(rotate) * 2) + .style("text-anchor", textAnchorForText(rotate)) + .attr("transform", textTransform(rotate)); + break; + case "left": + lineUpdate + .attr("x2", -innerTickSize) + .attr("y1", tickPos.y) + .attr("y2", tickPos.y); + textUpdate + .attr("x", -tickLength) + .attr("y", tickOffset) + .style("text-anchor", "end"); + break; + case "right": + lineUpdate + .attr("x2", innerTickSize) + .attr("y2", 0); + textUpdate + .attr("x", tickLength) + .attr("y", 0) + .style("text-anchor", "start"); + } + }; + // this should be called only when category axis + AxisRenderer.prototype.splitTickText = function (d, scale, ticks, isLeftRight, charWidth) { + var params = this.params; + var tickText = this.helper.textFormatted(d); + var splitted = isString(tickText) && tickText.indexOf("\n") > -1 ? + tickText.split("\n") : + []; + if (splitted.length) { + return splitted; + } + if (isArray(tickText)) { + return tickText; + } + var tickWidth = params.tickWidth; + if (!tickWidth || tickWidth <= 0) { + tickWidth = isLeftRight ? 95 : (params.isCategory ? + (Math.ceil(params.isInverted ? + scale(ticks[0]) - scale(ticks[1]) : + scale(ticks[1]) - scale(ticks[0])) - 12) : + 110); + } + // split given text by tick width size + // eslint-disable-next-line + function split(splitted, text) { + var subtext; + var spaceIndex; + var textWidth; + for (var i = 1; i < text.length; i++) { + if (text.charAt(i) === " ") { + spaceIndex = i; + } + subtext = text.substr(0, i + 1); + textWidth = charWidth * subtext.length; + // if text width gets over tick width, split by space index or current index + if (tickWidth < textWidth) { + return split(splitted.concat(text.substr(0, spaceIndex || i)), text.slice(spaceIndex ? spaceIndex + 1 : i)); + } + } + return splitted.concat(text); + } + return split(splitted, String(tickText)); + }; + AxisRenderer.prototype.scale = function (x) { + if (!arguments.length) { + return this.helper.scale; + } + this.helper.scale = x; + return this; + }; + AxisRenderer.prototype.orient = function (x) { + if (!arguments.length) { + return this.config.orient; + } + this.config.orient = x in { + top: 1, + right: 1, + bottom: 1, + left: 1 + } ? + String(x) : + "bottom"; + return this; + }; + AxisRenderer.prototype.tickFormat = function (format) { + var config = this.config; + if (!arguments.length) { + return config.tickFormat; + } + config.tickFormat = format; + return this; + }; + AxisRenderer.prototype.tickCentered = function (isCentered) { + var config = this.config; + if (!arguments.length) { + return config.tickCentered; + } + config.tickCentered = isCentered; + return this; + }; + /** + * Return tick's offset value. + * The value will be set for 'category' axis type. + * @returns {number} + * @private + */ + AxisRenderer.prototype.tickOffset = function () { + return this.config.tickOffset; + }; + /** + * Get tick interval count + * @private + * @param {number} size Total data size + * @returns {number} + */ + AxisRenderer.prototype.tickInterval = function (size) { + var _a; + var _b = this.config, outerTickSize = _b.outerTickSize, tickOffset = _b.tickOffset, tickValues = _b.tickValues; + var interval; + if (this.params.isCategory) { + interval = tickOffset * 2; + } + else { + var scale_1 = (_a = this.params.owner.scale.zoom) !== null && _a !== void 0 ? _a : this.helper.scale; + var length_1 = this.g.select("path.domain") + .node() + .getTotalLength() - outerTickSize * 2; + interval = length_1 / (size || this.g.selectAll("line").size()); + // get the interval by its values + var intervalByValue = tickValues ? + tickValues + .map(function (v, i, arr) { + var next = i + 1; + return next < arr.length ? scale_1(arr[next]) - scale_1(v) : null; + }).filter(Boolean) : + []; + interval = Math.min.apply(Math, __spreadArray(__spreadArray([], intervalByValue, false), [interval], false)); + } + return interval === Infinity ? 0 : interval; + }; + AxisRenderer.prototype.ticks = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var config = this.config; + if (!args.length) { + return config.tickArguments; + } + config.tickArguments = toArray(args); + return this; + }; + AxisRenderer.prototype.tickCulling = function (culling) { + var config = this.config; + if (!arguments.length) { + return config.tickCulling; + } + config.tickCulling = culling; + return this; + }; + AxisRenderer.prototype.tickValues = function (x) { + var _this = this; + var config = this.config; + if (isFunction(x)) { + config.tickValues = function () { return x(_this.helper.scale.domain()); }; + } + else { + if (!arguments.length) { + return config.tickValues; + } + config.tickValues = x; + } + return this; + }; + AxisRenderer.prototype.setTransition = function (t) { + this.config.transition = t; + return this; + }; + return AxisRenderer; +}()); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var axis = { + getAxisInstance: function () { + return this.axis || new Axis(this); + } +}; +var Axis = /** @class */ (function () { + function Axis(owner) { + this.axesList = {}; + this.tick = { + x: null, + y: null, + y2: null + }; + this.xs = []; + this.orient = { + x: "bottom", + y: "left", + y2: "right", + subX: "bottom" + }; + this.owner = owner; + this.setOrient(); + } + Axis.prototype.getAxisClassName = function (id) { + return "".concat($AXIS.axis, " ").concat($AXIS["axis".concat(capitalize(id))]); + }; + Axis.prototype.isHorizontal = function ($$, forHorizontal) { + var isRotated = $$.config.axis_rotated; + return forHorizontal ? isRotated : !isRotated; + }; + Axis.prototype.isCategorized = function () { + var _a = this.owner, config = _a.config, state = _a.state; + return config.axis_x_type.indexOf("category") >= 0 || state.hasRadar; + }; + Axis.prototype.isCustomX = function () { + var config = this.owner.config; + return !this.isTimeSeries() && (config.data_x || notEmpty(config.data_xs)); + }; + Axis.prototype.isTimeSeries = function (id) { + if (id === void 0) { id = "x"; } + return this.owner.config["axis_".concat(id, "_type")] === "timeseries"; + }; + Axis.prototype.isLog = function (id) { + if (id === void 0) { id = "x"; } + return this.owner.config["axis_".concat(id, "_type")] === "log"; + }; + Axis.prototype.isTimeSeriesY = function () { + return this.isTimeSeries("y"); + }; + Axis.prototype.getAxisType = function (id) { + if (id === void 0) { id = "x"; } + var type = "linear"; + if (this.isTimeSeries(id)) { + type = this.owner.config.axis_x_localtime ? "time" : "utc"; + } + else if (this.isLog(id)) { + type = "log"; + } + return type; + }; + Axis.prototype.init = function () { + var _this = this; + var $$ = this.owner; + var config = $$.config, _a = $$.$el, main = _a.main, axis = _a.axis, clip = $$.state.clip; + var isRotated = config.axis_rotated; + var target = ["x", "y"]; + config.axis_y2_show && target.push("y2"); + target.forEach(function (v) { + var classAxis = _this.getAxisClassName(v); + var classLabel = $AXIS["axis".concat(v.toUpperCase(), "Label")]; + axis[v] = main.append("g") + .attr("class", classAxis) + .attr("clip-path", function () { + var res = null; + if (v === "x") { + res = clip.pathXAxis; + } + else if (v === "y") { // || v === "y2") { + res = clip.pathYAxis; + } + return res; + }) + .attr("transform", $$.getTranslate(v)) + .style("visibility", config["axis_".concat(v, "_show")] ? null : "hidden"); + axis[v].append("text") + .attr("class", classLabel) + .attr("transform", ["rotate(-90)", null][v === "x" ? +!isRotated : +isRotated]) + .style("text-anchor", function () { return _this.textAnchorForAxisLabel(v); }); + _this.generateAxes(v); + }); + config.axis_tooltip && this.setAxisTooltip(); + }; + /** + * Set axis orient according option value + * @private + */ + Axis.prototype.setOrient = function () { + var $$ = this.owner; + var _a = $$.config, isRotated = _a.axis_rotated, yInner = _a.axis_y_inner, y2Inner = _a.axis_y2_inner; + this.orient = { + x: isRotated ? "left" : "bottom", + y: isRotated ? (yInner ? "top" : "bottom") : (yInner ? "right" : "left"), + y2: isRotated ? (y2Inner ? "bottom" : "top") : (y2Inner ? "left" : "right"), + subX: isRotated ? "left" : "bottom" + }; + }; + /** + * Generate axes + * It's used when axis' axes option is set + * @param {string} id Axis id + * @private + */ + Axis.prototype.generateAxes = function (id) { + var $$ = this.owner; + var config = $$.config; + var axes = []; + var axesConfig = config["axis_".concat(id, "_axes")]; + var isRotated = config.axis_rotated; + var d3Axis; + if (id === "x") { + d3Axis = isRotated ? axisLeft : axisBottom; + } + else if (id === "y") { + d3Axis = isRotated ? axisBottom : axisLeft; + } + else if (id === "y2") { + d3Axis = isRotated ? axisTop : axisRight; + } + if (axesConfig.length) { + axesConfig.forEach(function (v) { + var tick = v.tick || {}; + var scale = $$.scale[id].copy(); + v.domain && scale.domain(v.domain); + axes.push(d3Axis(scale) + .ticks(tick.count) + .tickFormat(isFunction(tick.format) ? tick.format.bind($$.api) : (function (x) { return x; })) + .tickValues(tick.values) + .tickSizeOuter(tick.outer === false ? 0 : 6)); + }); + } + this.axesList[id] = axes; + }; + /** + * Update axes nodes + * @private + */ + Axis.prototype.updateAxes = function () { + var _this = this; + var $$ = this.owner; + var config = $$.config, main = $$.$el.main, $T = $$.$T; + Object.keys(this.axesList).forEach(function (id) { + var axesConfig = config["axis_".concat(id, "_axes")]; + var scale = $$.scale[id].copy(); + var range = scale.range(); + _this.axesList[id].forEach(function (v, i) { + var axisRange = v.scale().range(); + // adjust range value with the current + // https://github.com/naver/billboard.js/issues/859 + if (!range.every(function (v, i) { return v === axisRange[i]; })) { + v.scale().range(range); + } + var className = "".concat(_this.getAxisClassName(id), "-").concat(i + 1); + var g = main.select(".".concat(className.replace(/\s/, "."))); + if (g.empty()) { + g = main.append("g") + .attr("class", className) + .style("visibility", config["axis_".concat(id, "_show")] ? null : "hidden") + .call(v); + } + else { + axesConfig[i].domain && scale.domain(axesConfig[i].domain); + $T(g).call(v.scale(scale)); + } + g.attr("transform", $$.getTranslate(id, i + 1)); + }); + }); + }; + /** + * Set Axis & tick values + * called from: updateScales() + * @param {string} id Axis id string + * @param {d3Scale} scale Scale + * @param {boolean} outerTick If show outer tick + * @param {boolean} noTransition If with no transition + * @private + */ + Axis.prototype.setAxis = function (id, scale, outerTick, noTransition) { + var $$ = this.owner; + if (id !== "subX") { + this.tick[id] = this.getTickValues(id); + } + // @ts-ignore + this[id] = this.getAxis(id, scale, outerTick, + // do not transit x Axis on zoom and resizing + // https://github.com/naver/billboard.js/issues/1949 + id === "x" && ($$.scale.zoom || $$.config.subchart_show || $$.state.resizing) ? + true : + noTransition); + }; + // called from : getMaxTickSize() + Axis.prototype.getAxis = function (id, scale, outerTick, noTransition, noTickTextRotate) { + var $$ = this.owner; + var config = $$.config; + var isX = /^(x|subX)$/.test(id); + var type = isX ? "x" : id; + var isCategory = isX && this.isCategorized(); + var orient = this.orient[id]; + var tickTextRotate = noTickTextRotate ? 0 : $$.getAxisTickRotate(type); + var tickFormat; + if (isX) { + tickFormat = (id === "subX") ? $$.format.subXAxisTick : $$.format.xAxisTick; + } + else { + var fn = config["axis_".concat(id, "_tick_format")]; + if (isFunction(fn)) { + tickFormat = fn.bind($$.api); + } + } + var tickValues = this.tick[type]; + var axisParams = mergeObj({ + outerTick: outerTick, + noTransition: noTransition, + config: config, + id: id, + tickTextRotate: tickTextRotate, + owner: $$ + }, isX && { + isCategory: isCategory, + isInverted: config.axis_x_inverted, + tickMultiline: config.axis_x_tick_multiline, + tickWidth: config.axis_x_tick_width, + tickTitle: isCategory && config.axis_x_tick_tooltip && $$.api.categories(), + orgXScale: $$.scale.x + }); + if (!isX) { + axisParams.tickStepSize = config["axis_".concat(type, "_tick_stepSize")]; + } + var axis = new AxisRenderer(axisParams) + .scale((isX && $$.scale.zoom) || scale) + .orient(orient); + if (isX && this.isTimeSeries() && tickValues && !isFunction(tickValues)) { + var fn_1 = parseDate.bind($$); + tickValues = tickValues.map(function (v) { return fn_1(v); }); + } + else if (!isX && this.isTimeSeriesY()) { + // https://github.com/d3/d3/blob/master/CHANGES.md#time-intervals-d3-time + axis.ticks(config.axis_y_tick_time_value); + tickValues = null; + } + tickValues && axis.tickValues(tickValues); + // Set tick + axis.tickFormat(tickFormat || (!isX && ($$.isStackNormalized() && (function (x) { return "".concat(x, "%"); })))); + if (isCategory) { + axis.tickCentered(config.axis_x_tick_centered); + if (isEmpty(config.axis_x_tick_culling)) { + config.axis_x_tick_culling = false; + } + } + var tickCount = config["axis_".concat(type, "_tick_count")]; + tickCount && axis.ticks(tickCount); + return axis; + }; + Axis.prototype.updateXAxisTickValues = function (targets, axis) { + var _a; + var $$ = this.owner; + var config = $$.config; + var fit = config.axis_x_tick_fit; + var count = config.axis_x_tick_count; + var values; + if (fit || (count && fit)) { + values = $$.mapTargetsToUniqueXs(targets); + // if given count is greater than the value length, then limit the count. + if (this.isCategorized() && count > values.length) { + count = values.length; + } + values = this.generateTickValues(values, count, this.isTimeSeries()); + } + if (axis) { + axis.tickValues(values); + } + else if (this.x) { + this.x.tickValues(values); + (_a = this.subX) === null || _a === void 0 ? void 0 : _a.tickValues(values); + } + return values; + }; + Axis.prototype.getId = function (id) { + var _a = this.owner, config = _a.config, scale = _a.scale; + var axis = config.data_axes[id]; + // when data.axes option has 'y2', but 'axis.y2.show=true' isn't set will return 'y' + if (!axis || !scale[axis]) { + axis = "y"; + } + return axis; + }; + Axis.prototype.getXAxisTickFormat = function (forSubchart) { + var $$ = this.owner; + var config = $$.config, format = $$.format; + // enable different tick format for x and subX - subX format defaults to x format if not defined + var tickFormat = forSubchart ? + config.subchart_axis_x_tick_format || config.axis_x_tick_format : + config.axis_x_tick_format; + var isTimeSeries = this.isTimeSeries(); + var isCategorized = this.isCategorized(); + var currFormat; + if (tickFormat) { + if (isFunction(tickFormat)) { + currFormat = tickFormat.bind($$.api); + } + else if (isTimeSeries) { + currFormat = function (date) { return (date ? format.axisTime(tickFormat)(date) : ""); }; + } + } + else { + currFormat = isTimeSeries ? format.defaultAxisTime : (isCategorized ? $$.categoryName : function (v) { return (v < 0 ? v.toFixed(0) : v); }); + } + return isFunction(currFormat) ? + function (v) { return currFormat.apply($$, isCategorized ? [v, $$.categoryName(v)] : [v]); } : + currFormat; + }; + Axis.prototype.getTickValues = function (id) { + var $$ = this.owner; + var tickValues = $$.config["axis_".concat(id, "_tick_values")]; + var axis = $$["".concat(id, "Axis")]; + return (isFunction(tickValues) ? tickValues.call($$.api) : tickValues) || + (axis ? axis.tickValues() : undefined); + }; + Axis.prototype.getLabelOptionByAxisId = function (id) { + return this.owner.config["axis_".concat(id, "_label")]; + }; + Axis.prototype.getLabelText = function (id) { + var option = this.getLabelOptionByAxisId(id); + return isString(option) ? option : (option ? option.text : null); + }; + Axis.prototype.setLabelText = function (id, text) { + var $$ = this.owner; + var config = $$.config; + var option = this.getLabelOptionByAxisId(id); + if (isString(option)) { + config["axis_".concat(id, "_label")] = text; + } + else if (option) { + option.text = text; + } + }; + Axis.prototype.getLabelPosition = function (id, defaultPosition) { + var isRotated = this.owner.config.axis_rotated; + var option = this.getLabelOptionByAxisId(id); + var position = (isObjectType(option) && option.position) ? + option.position : + defaultPosition[+!isRotated]; + var has = function (v) { return !!~position.indexOf(v); }; + return { + isInner: has("inner"), + isOuter: has("outer"), + isLeft: has("left"), + isCenter: has("center"), + isRight: has("right"), + isTop: has("top"), + isMiddle: has("middle"), + isBottom: has("bottom") + }; + }; + Axis.prototype.getAxisLabelPosition = function (id) { + return this.getLabelPosition(id, id === "x" ? ["inner-top", "inner-right"] : ["inner-right", "inner-top"]); + }; + Axis.prototype.getLabelPositionById = function (id) { + return this.getAxisLabelPosition(id); + }; + Axis.prototype.xForAxisLabel = function (id) { + var $$ = this.owner; + var _a = $$.state, width = _a.width, height = _a.height; + var position = this.getAxisLabelPosition(id); + var x = position.isMiddle ? -height / 2 : 0; + if (this.isHorizontal($$, id !== "x")) { + x = position.isLeft ? 0 : (position.isCenter ? width / 2 : width); + } + else if (position.isBottom) { + x = -height; + } + return x; + }; + Axis.prototype.dxForAxisLabel = function (id) { + var $$ = this.owner; + var position = this.getAxisLabelPosition(id); + var dx = position.isBottom ? "0.5em" : "0"; + if (this.isHorizontal($$, id !== "x")) { + dx = position.isLeft ? "0.5em" : (position.isRight ? "-0.5em" : "0"); + } + else if (position.isTop) { + dx = "-0.5em"; + } + return dx; + }; + Axis.prototype.textAnchorForAxisLabel = function (id) { + var $$ = this.owner; + var position = this.getAxisLabelPosition(id); + var anchor = position.isMiddle ? "middle" : "end"; + if (this.isHorizontal($$, id !== "x")) { + anchor = position.isLeft ? "start" : (position.isCenter ? "middle" : "end"); + } + else if (position.isBottom) { + anchor = "start"; + } + return anchor; + }; + Axis.prototype.dyForAxisLabel = function (id) { + var $$ = this.owner; + var config = $$.config; + var isRotated = config.axis_rotated; + var isInner = this.getAxisLabelPosition(id).isInner; + var tickRotate = config["axis_".concat(id, "_tick_rotate")] ? $$.getHorizontalAxisHeight(id) : 0; + var maxTickWidth = this.getMaxTickSize(id).width; + var dy; + if (id === "x") { + var xHeight = config.axis_x_height; + if (isRotated) { + dy = isInner ? "1.2em" : -25 - maxTickWidth; + } + else if (isInner) { + dy = "-0.5em"; + } + else if (xHeight) { + dy = xHeight - 10; + } + else if (tickRotate) { + dy = tickRotate - 10; + } + else { + dy = "3em"; + } + } + else { + dy = { + y: ["-0.5em", 10, "3em", "1.2em", 10], + y2: ["1.2em", -20, "-2.2em", "-0.5em", 15] + }[id]; + if (isRotated) { + if (isInner) { + dy = dy[0]; + } + else if (tickRotate) { + dy = tickRotate * (id === "y2" ? -1 : 1) - dy[1]; + } + else { + dy = dy[2]; + } + } + else { + dy = isInner ? dy[3] : (dy[4] + (config["axis_".concat(id, "_inner")] ? 0 : (maxTickWidth + dy[4]))) * (id === "y" ? -1 : 1); + } + } + return dy; + }; + /** + * Get max tick size + * @param {string} id axis id string + * @param {boolean} withoutRecompute wheather or not to recompute + * @returns {object} {width, height} + * @private + */ + Axis.prototype.getMaxTickSize = function (id, withoutRecompute) { + var $$ = this.owner; + var config = $$.config, current = $$.state.current, _a = $$.$el, svg = _a.svg, chart = _a.chart; + var currentTickMax = current.maxTickSize[id]; + var configPrefix = "axis_".concat(id); + var max = { + width: 0, + height: 0 + }; + if (withoutRecompute || !config["".concat(configPrefix, "_show")] || (currentTickMax.width > 0 && $$.filterTargetsToShow().length === 0)) { + return currentTickMax; + } + if (svg) { + var isYAxis_1 = /^y2?$/.test(id); + var targetsToShow = $$.filterTargetsToShow($$.data.targets); + var scale = $$.scale[id].copy().domain($$["get".concat(isYAxis_1 ? "Y" : "X", "Domain")](targetsToShow, id)); + var domain = scale.domain(); + var isDomainSame = domain[0] === domain[1] && domain.every(function (v) { return v > 0; }); + var isCurrentMaxTickDomainSame = isArray(currentTickMax.domain) && + currentTickMax.domain[0] === currentTickMax.domain[1] && + currentTickMax.domain.every(function (v) { return v > 0; }); + // do not compute if domain or currentMaxTickDomain is same + if (isDomainSame || isCurrentMaxTickDomainSame) { + return currentTickMax.size; + } + else { + currentTickMax.domain = domain; + } + // reset old max state value to prevent from new data loading + if (!isYAxis_1) { + currentTickMax.ticks.splice(0); + } + var axis = this.getAxis(id, scale, false, false, true); + var tickRotate = config["".concat(configPrefix, "_tick_rotate")]; + var tickCount = config["".concat(configPrefix, "_tick_count")]; + var tickValues = config["".concat(configPrefix, "_tick_values")]; + // Make to generate the final tick text to be rendered + // https://github.com/naver/billboard.js/issues/920 + // Do not generate if 'tick values' option is given + // https://github.com/naver/billboard.js/issues/1251 + if (!tickValues && tickCount) { + axis.tickValues(this.generateTickValues(domain, tickCount, isYAxis_1 ? this.isTimeSeriesY() : this.isTimeSeries())); + } + !isYAxis_1 && this.updateXAxisTickValues(targetsToShow, axis); + var dummy = chart.append("svg") + .style("visibility", "hidden") + .style("position", "fixed") + .style("top", "0") + .style("left", "0"); + axis.create(dummy); + dummy.selectAll("text") + .attr("transform", isNumber(tickRotate) ? "rotate(".concat(tickRotate, ")") : null) + .each(function (d, i) { + var _a = this.getBoundingClientRect(), width = _a.width, height = _a.height; + max.width = Math.max(max.width, width); + max.height = Math.max(max.height, height); + // cache tick text width for getXAxisTickTextY2Overflow() + if (!isYAxis_1) { + currentTickMax.ticks[i] = width; + } + }); + dummy.remove(); + } + Object.keys(max).forEach(function (key) { + if (max[key] > 0) { + currentTickMax[key] = max[key]; + } + }); + return currentTickMax; + }; + Axis.prototype.getXAxisTickTextY2Overflow = function (defaultPadding) { + var $$ = this.owner; + var axis = $$.axis, config = $$.config, _a = $$.state, current = _a.current, isLegendRight = _a.isLegendRight, legendItemWidth = _a.legendItemWidth; + var xAxisTickRotate = $$.getAxisTickRotate("x"); + var positiveRotation = xAxisTickRotate > 0 && xAxisTickRotate < 90; + if ((axis.isCategorized() || axis.isTimeSeries()) && + config.axis_x_tick_fit && + (!config.axis_x_tick_culling || isEmpty(config.axis_x_tick_culling)) && + !config.axis_x_tick_multiline && + positiveRotation) { + var y2AxisWidth = (config.axis_y2_show && current.maxTickSize.y2.width) || 0; + var legendWidth = (isLegendRight && legendItemWidth) || 0; + var widthWithoutCurrentPaddingLeft = current.width - + $$.getCurrentPaddingByDirection("left"); + var maxOverflow = this.getXAxisTickMaxOverflow(xAxisTickRotate, widthWithoutCurrentPaddingLeft - defaultPadding) - y2AxisWidth - legendWidth; + var xAxisTickTextY2Overflow = Math.max(0, maxOverflow) + + defaultPadding; // for display inconsistencies between browsers + return Math.min(xAxisTickTextY2Overflow, widthWithoutCurrentPaddingLeft / 2); + } + return 0; + }; + Axis.prototype.getXAxisTickMaxOverflow = function (xAxisTickRotate, widthWithoutCurrentPaddingLeft) { + var $$ = this.owner; + var axis = $$.axis, config = $$.config, state = $$.state; + var isTimeSeries = axis.isTimeSeries(); + var tickTextWidths = state.current.maxTickSize.x.ticks; + var tickCount = tickTextWidths.length; + var _a = state.axis.x.padding, left = _a.left, right = _a.right; + var maxOverflow = 0; + var remaining = tickCount - (isTimeSeries && config.axis_x_tick_fit ? 0.5 : 0); + for (var i = 0; i < tickCount; i++) { + var tickIndex = i + 1; + var rotatedTickTextWidth = Math.cos(Math.PI * xAxisTickRotate / 180) * + tickTextWidths[i]; + var ticksBeforeTickText = tickIndex - (isTimeSeries ? 1 : 0.5) + left; + // Skip ticks if there are no ticks before them + if (ticksBeforeTickText <= 0) { + continue; + } + var xAxisLengthWithoutTickTextWidth = widthWithoutCurrentPaddingLeft - + rotatedTickTextWidth; + var tickLength = xAxisLengthWithoutTickTextWidth / ticksBeforeTickText; + var remainingTicks = remaining - tickIndex; + var paddingRightLength = right * tickLength; + var remainingTickWidth = (remainingTicks * tickLength) + paddingRightLength; + var overflow = rotatedTickTextWidth - (tickLength / 2) - remainingTickWidth; + maxOverflow = Math.max(maxOverflow, overflow); + } + var filteredTargets = $$.filterTargetsToShow($$.data.targets); + var tickOffset = 0; + if (!isTimeSeries && + config.axis_x_tick_count <= filteredTargets.length && filteredTargets[0].values.length) { + var scale = getScale($$.axis.getAxisType("x"), 0, widthWithoutCurrentPaddingLeft - maxOverflow) + .domain([ + left * -1, + $$.getXDomainMax($$.data.targets) + 1 + right + ]); + tickOffset = Math.ceil((scale(1) - scale(0)) / 2); + } + return maxOverflow + tickOffset; + }; + Axis.prototype.updateLabels = function (withTransition) { + var _this = this; + var $$ = this.owner; + var main = $$.$el.main, $T = $$.$T; + var labels = { + x: main.select(".".concat($AXIS.axisX, " .").concat($AXIS.axisXLabel)), + y: main.select(".".concat($AXIS.axisY, " .").concat($AXIS.axisYLabel)), + y2: main.select(".".concat($AXIS.axisY2, " .").concat($AXIS.axisY2Label)) + }; + Object.keys(labels).filter(function (id) { return !labels[id].empty(); }) + .forEach(function (v) { + var node = labels[v]; + // @check $$.$T(node, withTransition) + $T(node, withTransition) + .attr("x", function () { return _this.xForAxisLabel(v); }) + .attr("dx", function () { return _this.dxForAxisLabel(v); }) + .attr("dy", function () { return _this.dyForAxisLabel(v); }) + .text(function () { return _this.getLabelText(v); }); + }); + }; + /** + * Get axis padding value + * @param {number|object} padding Padding object + * @param {string} key Key string of padding + * @param {Date|number} defaultValue Default value + * @param {number} domainLength Domain length + * @returns {number} Padding value in scale + * @private + */ + Axis.prototype.getPadding = function (padding, key, defaultValue, domainLength) { + var p = isNumber(padding) ? padding : padding[key]; + if (!isValue(p)) { + return defaultValue; + } + return this.owner.convertPixelToScale(/(bottom|top)/.test(key) ? "y" : "x", p, domainLength); + }; + Axis.prototype.generateTickValues = function (values, tickCount, forTimeSeries) { + var tickValues = values; + if (tickCount) { + var targetCount = isFunction(tickCount) ? tickCount() : tickCount; + // compute ticks according to tickCount + if (targetCount === 1) { + tickValues = [values[0]]; + } + else if (targetCount === 2) { + tickValues = [values[0], values[values.length - 1]]; + } + else if (targetCount > 2) { + var isCategorized = this.isCategorized(); + var count = targetCount - 2; + var start = values[0]; + var end = values[values.length - 1]; + var interval = (end - start) / (count + 1); + var tickValue = void 0; + // re-construct unique values + tickValues = [start]; + for (var i = 0; i < count; i++) { + tickValue = +start + interval * (i + 1); + tickValues.push(forTimeSeries ? new Date(tickValue) : (isCategorized ? Math.round(tickValue) : tickValue)); + } + tickValues.push(end); + } + } + if (!forTimeSeries) { + tickValues = tickValues.sort(function (a, b) { return a - b; }); + } + return tickValues; + }; + Axis.prototype.generateTransitions = function (withTransition) { + var $$ = this.owner; + var axis = $$.$el.axis, $T = $$.$T; + var _a = ["x", "y", "y2", "subX"] + .map(function (v) { return $T(axis[v], withTransition); }), axisX = _a[0], axisY = _a[1], axisY2 = _a[2], axisSubX = _a[3]; + return { axisX: axisX, axisY: axisY, axisY2: axisY2, axisSubX: axisSubX }; + }; + Axis.prototype.redraw = function (transitions, isHidden, isInit) { + var _this = this; + var $$ = this.owner; + var config = $$.config, $el = $$.$el; + var opacity = isHidden ? "0" : null; + ["x", "y", "y2", "subX"].forEach(function (id) { + var axis = _this[id]; + var $axis = $el.axis[id]; + if (axis && $axis) { + if (!isInit && !config.transition_duration) { + axis.config.withoutTransition = true; + } + $axis.style("opacity", opacity); + axis.create(transitions["axis".concat(capitalize(id))]); + } + }); + this.updateAxes(); + }; + /** + * Redraw axis + * @param {Array} targetsToShow targets data to be shown + * @param {object} wth option object + * @param {d3.Transition} transitions Transition object + * @param {object} flow flow object + * @param {boolean} isInit called from initialization + * @private + */ + Axis.prototype.redrawAxis = function (targetsToShow, wth, transitions, flow, isInit) { + var _this = this; + var _a, _b, _c; + var $$ = this.owner; + var config = $$.config, scale = $$.scale, $el = $$.$el; + var hasZoom = !!scale.zoom; + var xDomainForZoom; + if (!hasZoom && this.isCategorized() && targetsToShow.length === 0) { + scale.x.domain([0, $el.axis.x.selectAll(".tick").size()]); + } + if (scale.x && targetsToShow.length) { + !hasZoom && + $$.updateXDomain(targetsToShow, wth.UpdateXDomain, wth.UpdateOrgXDomain, wth.TrimXDomain); + if (!config.axis_x_tick_values) { + this.updateXAxisTickValues(targetsToShow); + } + } + else if (this.x) { + this.x.tickValues([]); + (_a = this.subX) === null || _a === void 0 ? void 0 : _a.tickValues([]); + } + if (config.zoom_rescale && !flow) { + xDomainForZoom = scale.x.orgDomain(); + } + ["y", "y2"].forEach(function (key) { + var prefix = "axis_".concat(key, "_"); + var axisScale = scale[key]; + if (axisScale) { + var tickValues = config["".concat(prefix, "tick_values")]; + var tickCount = config["".concat(prefix, "tick_count")]; + axisScale.domain($$.getYDomain(targetsToShow, key, xDomainForZoom)); + if (!tickValues && tickCount) { + var axis = $$.axis[key]; + var domain = axisScale.domain(); + axis.tickValues(_this.generateTickValues(domain, domain.every(function (v) { return v === 0; }) ? 1 : tickCount, _this.isTimeSeriesY())); + } + } + }); + // axes + this.redraw(transitions, $$.hasArcType(), isInit); + // Update axis label + this.updateLabels(wth.Transition); + // show/hide if manual culling needed + if ((wth.UpdateXDomain || wth.UpdateXAxis || wth.Y) && targetsToShow.length) { + this.setCulling(); + } + // Update sub domain + if (wth.Y) { + (_b = scale.subY) === null || _b === void 0 ? void 0 : _b.domain($$.getYDomain(targetsToShow, "y")); + (_c = scale.subY2) === null || _c === void 0 ? void 0 : _c.domain($$.getYDomain(targetsToShow, "y2")); + } + }; + /** + * Set manual culling + * @private + */ + Axis.prototype.setCulling = function () { + var $$ = this.owner; + var config = $$.config, _a = $$.state, clip = _a.clip, current = _a.current, $el = $$.$el; + ["subX", "x", "y", "y2"].forEach(function (type) { + var axis = $el.axis[type]; + // subchart x axis should be aligned with x axis culling + var id = type === "subX" ? "x" : type; + var cullingOptionPrefix = "axis_".concat(id, "_tick_culling"); + var toCull = config[cullingOptionPrefix]; + if (axis && toCull) { + var tickNodes = axis.selectAll(".tick"); + var tickValues_1 = sortValue(tickNodes.data()); + var tickSize = tickValues_1.length; + var cullingMax = config["".concat(cullingOptionPrefix, "_max")]; + var lines_1 = config["".concat(cullingOptionPrefix, "_lines")]; + var intervalForCulling_1; + if (tickSize) { + for (var i = 1; i < tickSize; i++) { + if (tickSize / i < cullingMax) { + intervalForCulling_1 = i; + break; + } + } + tickNodes + .each(function (d) { + var node = lines_1 ? this.querySelector("text") : this; + if (node) { + node.style.display = tickValues_1.indexOf(d) % intervalForCulling_1 ? + "none" : + null; + } + }); + } + else { + tickNodes.style("display", null); + } + // set/unset x_axis_tick_clippath + if (type === "x") { + var clipPath = current.maxTickSize.x.clipPath ? + clip.pathXAxisTickTexts : + null; + $el.svg.selectAll(".".concat($AXIS.axisX, " .tick text")) + .attr("clip-path", clipPath); + } + } + }); + }; + /** + * Set axis tooltip + * @private + */ + Axis.prototype.setAxisTooltip = function () { + var _a; + var $$ = this.owner; + var _b = $$.config, isRotated = _b.axis_rotated, axis_tooltip = _b.axis_tooltip, _c = $$.$el, axis = _c.axis, axisTooltip = _c.axisTooltip; + var bgColor = (_a = axis_tooltip.backgroundColor) !== null && _a !== void 0 ? _a : "black"; + $$.generateTextBGColorFilter(bgColor, { + x: -0.15, + y: -0.2, + width: 1.3, + height: 1.3 + }); + ["x", "y", "y2"].forEach(function (v) { + var _a, _b, _c; + axisTooltip[v] = (_a = axis[v]) === null || _a === void 0 ? void 0 : _a.append("text").classed($AXIS["axis".concat(v.toUpperCase(), "Tooltip")], true).attr("filter", $$.updateTextBGColor({ id: v }, bgColor)); + if (isRotated) { + var pos = v === "x" ? "x" : "y"; + var val = v === "y" ? "1.15em" : (v === "x" ? "-0.3em" : "-0.4em"); + (_b = axisTooltip[v]) === null || _b === void 0 ? void 0 : _b.attr(pos, val).attr("d".concat(v === "x" ? "y" : "x"), v === "x" ? "0.4em" : "-1.3em").style("text-anchor", v === "x" ? "end" : null); + } + else { + var pos = v === "x" ? "y" : "x"; + var val = v === "x" ? "1.15em" : "".concat(v === "y" ? "-" : "", "0.4em"); + (_c = axisTooltip[v]) === null || _c === void 0 ? void 0 : _c.attr(pos, val).attr("d".concat(v === "x" ? "x" : "y"), v === "x" ? "-1em" : "0.3em").style("text-anchor", v === "y" ? "end" : null); + } + }); + }; + return Axis; +}()); + +var eventrect = { + /** + * Initialize the area that detects the event. + * Add a container for the zone that detects the event. + * @private + */ + initEventRect: function () { + var $$ = this; + $$.$el.main.select(".".concat($COMMON.chart)) + .append("g") + .attr("class", $EVENT.eventRects) + .style("fill-opacity", "0"); + }, + /** + * Redraws the area that detects the event. + * @private + */ + redrawEventRect: function () { + var _a; + var $$ = this; + var config = $$.config, state = $$.state, $el = $$.$el; + var isMultipleX = $$.isMultipleX(); + var isInverted = config.axis_x_inverted; + if ($el.eventRect) { + $$.updateEventRect($el.eventRect, true); + // do not initialize eventRect when data is empty + } + else if ($$.data.targets.length) { + var eventRects = $$.$el.main.select(".".concat($EVENT.eventRects)) + .style("cursor", config.zoom_enabled && config.zoom_type !== "drag" ? + (config.axis_rotated ? "ns-resize" : "ew-resize") : + null) + .classed($EVENT.eventRectsMultiple, isMultipleX) + .classed($EVENT.eventRectsSingle, !isMultipleX); + // append event <rect> + var eventRectUpdate = eventRects.selectAll(".".concat($EVENT.eventRect)) + .data([0]) + .enter() + .append("rect"); + $$.updateEventRect(eventRectUpdate); + // bind event to <rect> element + $$.updateEventType(eventRectUpdate); + // bind draggable selection + eventRectUpdate.call($$.getDraggableSelection()); + $el.eventRect = eventRectUpdate; + if ($$.state.inputType === "touch" && !$el.svg.on("touchstart.eventRect") && + !$$.hasArcType()) { + $$.bindTouchOnEventRect(); + } + // when initilazed with empty data and data loaded later, need to update eventRect + state.rendered && $$.updateEventRect($el.eventRect, true); + } + if (!isMultipleX) { + // Set data and update eventReceiver.data + var xAxisTickValues = $$.getMaxDataCountTarget(); + if (!config.data_xSort || isInverted) { + xAxisTickValues.sort(function (a, b) { return (isInverted ? b.x - a.x : a.x - b.x); }); + } + // update data's index value to be alinged with the x Axis + $$.updateDataIndexByX(xAxisTickValues); + $$.updateXs(xAxisTickValues); + (_a = $$.updatePointClass) === null || _a === void 0 ? void 0 : _a.call($$, true); + state.eventReceiver.data = xAxisTickValues; + } + $$.updateEventRectData(); + }, + bindTouchOnEventRect: function () { + var $$ = this; + var config = $$.config, state = $$.state, _a = $$.$el, eventRect = _a.eventRect, svg = _a.svg; + var selectRect = function (context) { + if ($$.isMultipleX()) { + $$.selectRectForMultipleXs(context); + } + else { + var index = $$.getDataIndexFromEvent(state.event); + $$.callOverOutForTouch(index); + index === -1 ? $$.unselectRect() : $$.selectRectForSingle(context, index); + } + }; + var unselectRect = function () { + $$.unselectRect(); + $$.callOverOutForTouch(); + }; + // call event.preventDefault() + // according 'interaction.inputType.touch.preventDefault' option + var preventDefault = config.interaction_inputType_touch.preventDefault; + var isPrevented = (isBoolean(preventDefault) && preventDefault) || false; + var preventThreshold = (!isNaN(preventDefault) && preventDefault) || null; + var startPx; + var preventEvent = function (event) { + var eventType = event.type; + var touch = event.changedTouches[0]; + var currentXY = touch["client".concat(config.axis_rotated ? "Y" : "X")]; + // prevent document scrolling + if (eventType === "touchstart") { + if (isPrevented) { + event.preventDefault(); + } + else if (preventThreshold !== null) { + startPx = currentXY; + } + } + else if (eventType === "touchmove") { + if (isPrevented || startPx === true || (preventThreshold !== null && + Math.abs(startPx - currentXY) >= preventThreshold)) { + // once prevented, keep prevented during whole 'touchmove' context + startPx = true; + event.preventDefault(); + } + } + }; + // bind touch events + eventRect + .on("touchstart", function (event) { + state.event = event; + $$.updateEventRect(); + }) + .on("touchstart.eventRect touchmove.eventRect", function (event) { + state.event = event; + if (!eventRect.empty() && eventRect.classed($EVENT.eventRect)) { + // if touch points are > 1, means doing zooming interaction. In this case do not execute tooltip codes. + if (state.dragging || state.flowing || $$.hasArcType() || + event.touches.length > 1) { + return; + } + preventEvent(event); + selectRect(eventRect.node()); + } + else { + unselectRect(); + } + }, true) + .on("touchend.eventRect", function (event) { + state.event = event; + if (!eventRect.empty() && eventRect.classed($EVENT.eventRect)) { + if ($$.hasArcType() || !$$.toggleShape || state.cancelClick) { + state.cancelClick && (state.cancelClick = false); + } + } + }, true); + svg.on("touchstart", function (event) { + state.event = event; + var target = event.target; + if (target && target !== eventRect.node()) { + unselectRect(); + } + }); + }, + /** + * Update event rect size + * @param {d3Selection} eventRect Event <rect> element + * @param {boolean} force Force to update + * @private + */ + updateEventRect: function (eventRect, force) { + if (force === void 0) { force = false; } + var $$ = this; + var state = $$.state, $el = $$.$el; + var eventReceiver = state.eventReceiver, width = state.width, height = state.height, rendered = state.rendered, resizing = state.resizing; + var rectElement = eventRect || $el.eventRect; + var updateClientRect = function () { + if (eventReceiver) { + var scrollPos = getScrollPosition($el.chart.node()); + eventReceiver.rect = rectElement.node() + .getBoundingClientRect() + .toJSON(); + eventReceiver.rect.top += scrollPos.y; + eventReceiver.rect.left += scrollPos.x; + } + }; + if (!rendered || resizing || force) { + rectElement + .attr("x", 0) + .attr("y", 0) + .attr("width", width) + .attr("height", height); + // only for init + if (!rendered || force) { + rectElement.classed($EVENT.eventRect, true); + } + } + updateClientRect(); + }, + /** + * Update event type (single or multiple x) + * @param {d3Selection | boolean} target Target element or boolean to rebind event + */ + updateEventType: function (target) { + var $$ = this; + var isRebindCall = isBoolean(target); + var eventRect = isRebindCall ? $$.$el.eventRect : target; + var unbindEvent = isRebindCall ? target !== (eventRect === null || eventRect === void 0 ? void 0 : eventRect.datum().multipleX) : false; + if (eventRect) { + // release previous event listeners + unbindEvent && (eventRect === null || eventRect === void 0 ? void 0 : eventRect.on("mouseover mousemove mouseout click", null)); + $$.isMultipleX() ? + $$.generateEventRectsForMultipleXs(eventRect) : + $$.generateEventRectsForSingleX(eventRect); + } + }, + /** + * Updates the location and size of the eventRect. + * @private + */ + updateEventRectData: function () { + var $$ = this; + var config = $$.config, scale = $$.scale, state = $$.state; + var xScale = scale.zoom || scale.x; + var isRotated = config.axis_rotated; + var isMultipleX = $$.isMultipleX(); + var x; + var y; + var w; + var h; + $$.updateEventType(isMultipleX); + if (isMultipleX) { + // TODO: rotated not supported yet + x = 0; + y = 0; + w = state.width; + h = state.height; + } + else { + var rectW_1; + var rectX = void 0; + if ($$.axis.isCategorized()) { + rectW_1 = $$.getEventRectWidth(); + rectX = function (d) { return xScale(d.x) - (rectW_1 / 2); }; + } + else { + var getPrevNextX_1 = function (_a) { + var index = _a.index; + return ({ + prev: $$.getPrevX(index), + next: $$.getNextX(index) + }); + }; + rectW_1 = function (d) { + var x = getPrevNextX_1(d); + var xDomain = xScale.domain(); + var val; + // if there this is a single data point make the eventRect full width (or height) + if (x.prev === null && x.next === null) { + val = isRotated ? state.height : state.width; + } + else if (x.prev === null) { + val = (xScale(x.next) + xScale(d.x)) / 2; + } + else if (x.next === null) { + val = xScale(xDomain[1]) - ((xScale(x.prev) + xScale(d.x)) / 2); + } + else { + Object.keys(x).forEach(function (key, i) { + var _a; + x[key] = (_a = x[key]) !== null && _a !== void 0 ? _a : xDomain[i]; + }); + val = Math.max(0, (xScale(x.next) - xScale(x.prev)) / 2); + } + return val; + }; + rectX = function (d) { + var x = getPrevNextX_1(d); + var val; + // if there this is a single data point position the eventRect at 0 + if (x.prev === null && x.next === null) { + val = 0; + } + else if (x.prev === null) { + val = xScale(xScale.domain()[0]); + } + else { + val = (xScale(d.x) + xScale(x.prev)) / 2; + } + return val; + }; + } + x = isRotated ? 0 : rectX; + y = isRotated ? rectX : 0; + w = isRotated ? state.width : rectW_1; + h = isRotated ? rectW_1 : state.height; + } + var eventReceiver = state.eventReceiver; + var call = function (fn, v) { return (isFunction(fn) ? fn(v) : fn); }; + // reset for possible remains coords data before the data loading + eventReceiver.coords.splice(eventReceiver.data.length); + eventReceiver.data.forEach(function (d, i) { + eventReceiver.coords[i] = { + x: call(x, d), + y: call(y, d), + w: call(w, d), + h: call(h, d) + }; + }); + }, + /** + * Seletct rect for single x value + * @param {d3Selection} context Event rect element + * @param {number} index x Axis index + * @private + */ + selectRectForSingle: function (context, index) { + var _a, _b; + var $$ = this; + var config = $$.config, _c = $$.$el, main = _c.main, circle = _c.circle; + var isSelectionEnabled = config.data_selection_enabled; + var isSelectionGrouped = config.data_selection_grouped; + var isSelectable = config.data_selection_isselectable; + var isTooltipGrouped = config.tooltip_grouped; + var selectedData = $$.getAllValuesOnIndex(index); + if (isTooltipGrouped) { + $$.showTooltip(selectedData, context); + (_a = $$.showGridFocus) === null || _a === void 0 ? void 0 : _a.call($$, selectedData); + if (!isSelectionEnabled || isSelectionGrouped) { + return; + } + } + // remove possible previous focused state + !circle && + main.selectAll(".".concat($COMMON.EXPANDED, ":not(.").concat($SHAPE.shape, "-").concat(index, ")")).classed($COMMON.EXPANDED, false); + var shapeAtIndex = main.selectAll(".".concat($SHAPE.shape, "-").concat(index)) + .classed($COMMON.EXPANDED, true) + .style("cursor", isSelectable ? "pointer" : null) + .filter(function (d) { + return $$.isWithinShape(this, d); + }); + if (shapeAtIndex.empty() && !isTooltipGrouped) { + (_b = $$.hideGridFocus) === null || _b === void 0 ? void 0 : _b.call($$); + $$.hideTooltip(); + !isSelectionGrouped && $$.setExpand(index); + } + shapeAtIndex + .call(function (selected) { + var _a, _b; + var d = selected.data(); + if (isSelectionEnabled && + (isSelectionGrouped || (isSelectable === null || isSelectable === void 0 ? void 0 : isSelectable.bind($$.api)(d)))) { + context.style.cursor = "pointer"; + } + if (!isTooltipGrouped) { + $$.showTooltip(d, context); + (_a = $$.showGridFocus) === null || _a === void 0 ? void 0 : _a.call($$, d); + (_b = $$.unexpandCircles) === null || _b === void 0 ? void 0 : _b.call($$); + selected.each(function (d) { return $$.setExpand(index, d.id); }); + } + }); + }, + /** + * Select rect for multiple x values + * @param {d3Selection} context Event rect element + * @param {boolean} [triggerEvent=true] Whether trigger event or not + * @private + */ + selectRectForMultipleXs: function (context, triggerEvent) { + if (triggerEvent === void 0) { triggerEvent = true; } + var $$ = this; + var config = $$.config, state = $$.state; + var targetsToShow = $$.filterTargetsToShow($$.data.targets); + // do nothing when dragging + if (state.dragging || $$.hasArcType(targetsToShow)) { + return; + } + var mouse = getPointer(state.event, context); + var closest = $$.findClosestFromTargets(targetsToShow, mouse); + if (triggerEvent && state.mouseover && (!closest || closest.id !== state.mouseover.id)) { + config.data_onout.call($$.api, state.mouseover); + state.mouseover = undefined; + } + if (!closest) { + $$.unselectRect(); + return; + } + var sameXData = ($$.isBubbleType(closest) || $$.isScatterType(closest) || !config.tooltip_grouped) ? + [closest] : + $$.filterByX(targetsToShow, closest.x); + // show tooltip when cursor is close to some point + var selectedData = sameXData.map(function (d) { return $$.addName(d); }); + $$.showTooltip(selectedData, context); + // expand points + $$.setExpand(closest.index, closest.id, true); + // Show xgrid focus line + $$.showGridFocus(selectedData); + var dist = $$.dist(closest, mouse); + // Show cursor as pointer if point is close to mouse position + if ($$.isBarType(closest.id) || dist < $$.getPointSensitivity(closest)) { + $$.$el.svg.select(".".concat($EVENT.eventRect)).style("cursor", "pointer"); + if (triggerEvent && !state.mouseover) { + config.data_onover.call($$.api, closest); + state.mouseover = closest; + } + } + }, + /** + * Unselect EventRect. + * @private + */ + unselectRect: function () { + var $$ = this; + var _a = $$.$el, circle = _a.circle, tooltip = _a.tooltip; + $$.$el.svg.select(".".concat($EVENT.eventRect)).style("cursor", null); + $$.hideGridFocus(); + if (tooltip) { + $$.hideTooltip(); + $$._handleLinkedCharts(false); + } + circle && !$$.isPointFocusOnly() && $$.unexpandCircles(); + $$.expandBarTypeShapes(false); + }, + /** + * Create eventRect for each data on the x-axis. + * Register touch and drag events. + * @param {object} eventRectEnter d3.select($EVENT.eventRects) object. + * @returns {object} d3.select($EVENT.eventRects) object. + * @private + */ + generateEventRectsForSingleX: function (eventRectEnter) { + var $$ = this; + var config = $$.config, state = $$.state; + var eventReceiver = state.eventReceiver; + var rect = eventRectEnter + .style("cursor", config.data_selection_enabled && config.data_selection_grouped ? "pointer" : null) + .on("click", function (event) { + state.event = event; + var currentIdx = eventReceiver.currentIdx, data = eventReceiver.data; + var d = data[currentIdx === -1 ? $$.getDataIndexFromEvent(event) : currentIdx]; + $$.clickHandlerForSingleX.bind(this)(d, $$); + }) + .datum({ multipleX: false }); + if (state.inputType === "mouse") { + var getData_1 = function (event) { + var index = event ? $$.getDataIndexFromEvent(event) : eventReceiver.currentIdx; + return index > -1 ? eventReceiver.data[index] : null; + }; + rect + .on("mouseover", function (event) { + state.event = event; + $$.updateEventRect(); + Object.values($$.$el.axisTooltip) + .forEach(function (v) { return v === null || v === void 0 ? void 0 : v.style("display", null); }); + }) + .on("mousemove", function (event) { + var d = getData_1(event); + state.event = event; + if (!d) { + return; + } + var index = d.index; + var stepType = config.line_step_type; + // tooltip position match for step-before & step-after + if (config.line_step_tooltipMatch && $$.hasType("step") && + /^step\-(before|after)$/.test(stepType)) { + var scale = $$.scale.zoom || $$.scale.x; + var xs = $$.axis.xs[index]; + var inverted = scale.invert(getPointer(event, this)[0]); + if (stepType === "step-after" && inverted < xs) { + index -= 1; + } + else if (stepType === "step-before" && inverted > xs) { + index += 1; + } + } + $$.showAxisGridFocus(); + var eventOnSameIdx = config.tooltip_grouped && + index === eventReceiver.currentIdx; + // do nothing while dragging/flowing + if (state.dragging || state.flowing || $$.hasArcType() || eventOnSameIdx) { + config.tooltip_show && eventOnSameIdx && $$.setTooltipPosition(); + return; + } + if (index !== eventReceiver.currentIdx) { + $$.setOverOut(false, eventReceiver.currentIdx); + eventReceiver.currentIdx = index; + } + index === -1 ? $$.unselectRect() : $$.selectRectForSingle(this, index); + // As of individual data point(or <path>) element can't bind mouseover/out event + // to determine current interacting element, so use 'mousemove' event instead. + $$.setOverOut(index !== -1, index); + }) + .on("mouseout", function (event) { + state.event = event; + // chart is destroyed + if (!config || $$.hasArcType() || eventReceiver.currentIdx === -1) { + return; + } + $$.hideAxisGridFocus(); + $$.unselectRect(); + $$.setOverOut(false, eventReceiver.currentIdx); + // reset the event current index + eventReceiver.currentIdx = -1; + }); + } + return rect; + }, + clickHandlerForSingleX: function (d, ctx) { + var $$ = ctx; + var config = $$.config, state = $$.state, main = $$.$el.main; + if (!d || $$.hasArcType() || state.cancelClick) { + state.cancelClick && (state.cancelClick = false); + return; + } + var index = d.index; + main.selectAll(".".concat($SHAPE.shape, "-").concat(index)) + .each(function (d2) { + var _a; + if (config.data_selection_grouped || $$.isWithinShape(this, d2)) { + (_a = $$.toggleShape) === null || _a === void 0 ? void 0 : _a.call($$, this, d2, index); + config.data_onclick.bind($$.api)(d2, this); + } + }); + }, + /** + * Create an eventRect, + * Register touch and drag events. + * @param {object} eventRectEnter d3.select($EVENT.eventRects) object. + * @private + */ + generateEventRectsForMultipleXs: function (eventRectEnter) { + var $$ = this; + var state = $$.state; + eventRectEnter + .on("click", function (event) { + state.event = event; + $$.clickHandlerForMultipleXS.bind(this)($$); + }) + .datum({ multipleX: true }); + if (state.inputType === "mouse") { + eventRectEnter + .on("mouseover mousemove", function (event) { + state.event = event; + $$.selectRectForMultipleXs(this); + }) + .on("mouseout", function (event) { + state.event = event; + // chart is destroyed + if (!$$.config || $$.hasArcType()) { + return; + } + $$.unselectRect(); + }); + } + }, + clickHandlerForMultipleXS: function (ctx) { + var $$ = ctx; + var config = $$.config, state = $$.state; + var targetsToShow = $$.filterTargetsToShow($$.data.targets); + if ($$.hasArcType(targetsToShow)) { + return; + } + var mouse = getPointer(state.event, this); + var closest = $$.findClosestFromTargets(targetsToShow, mouse); + var sensitivity = config.point_sensitivity === "radius" ? + closest.r : + config.point_sensitivity; + if (!closest) { + return; + } + // select if selection enabled + if ($$.isBarType(closest.id) || $$.dist(closest, mouse) < sensitivity) { + $$.$el.main.selectAll(".".concat($SHAPE.shapes).concat($$.getTargetSelectorSuffix(closest.id))) + .selectAll(".".concat($SHAPE.shape, "-").concat(closest.index)) + .each(function () { + var _a; + if (config.data_selection_grouped || $$.isWithinShape(this, closest)) { + (_a = $$.toggleShape) === null || _a === void 0 ? void 0 : _a.call($$, this, closest, closest.index); + config.data_onclick.bind($$.api)(closest, this); + } + }); + } + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var flow = { + /** + * Generate flow + * @param {object} args option object + * @returns {Function} + * @private + */ + generateFlow: function (args) { + var $$ = this; + var data = $$.data, state = $$.state, $el = $$.$el; + return function () { + var flowLength = args.flow.length; + // set flag + state.flowing = true; + // remove head data after rendered + data.targets.forEach(function (d) { + d.values.splice(0, flowLength); + }); + // update elements related to x scale + if ($$.updateXGrid) { + $$.updateXGrid(true); + } + // target elements + var elements = {}; + [ + "axis.x", + "grid.x", + "gridLines.x", + "region.list", + "text", + "bar", + "line", + "area", + "circle" + ] + .forEach(function (v) { + var name = v.split("."); + var node = $el[name[0]]; + if (node && name.length > 1) { + node = node[name[1]]; + } + if (node === null || node === void 0 ? void 0 : node.size()) { + elements[v] = node; + } + }); + $$.hideGridFocus(); + $$.setFlowList(elements, args); + }; + }, + /** + * Set flow list + * @param {object} elements Target elements + * @param {object} args option object + * @private + */ + setFlowList: function (elements, args) { + var $$ = this; + var flow = args.flow, targets = args.targets; + var _a = flow.duration, duration = _a === void 0 ? args.duration : _a, flowIndex = flow.index, flowLength = flow.length, orgDataCount = flow.orgDataCount; + var transform = $$.getFlowTransform(targets, orgDataCount, flowIndex, flowLength); + var wait = generateWait(); + var n; + wait.add(Object.keys(elements).map(function (v) { + n = elements[v] + .transition() + .ease(easeLinear) + .duration(duration); + if (v === "axis.x") { + n = n.call(function (g) { + $$.axis.x.setTransition(g).create(g); + }); + } + else if (v === "region.list") { + n = n.filter($$.isRegionOnX) + .attr("transform", transform); + } + else { + n = n.attr("transform", transform); + } + return n; + })); + n.call(wait, function () { + $$.cleanUpFlow(elements, args); + }); + }, + /** + * Clean up flow + * @param {object} elements Target elements + * @param {object} args option object + * @private + */ + cleanUpFlow: function (elements, args) { + var $$ = this; + var config = $$.config, state = $$.state, svg = $$.$el.svg; + var isRotated = config.axis_rotated; + var flow = args.flow, shape = args.shape, xv = args.xv; + var _a = shape.pos, cx = _a.cx, cy = _a.cy, xForText = _a.xForText, yForText = _a.yForText; + var _b = flow.done, done = _b === void 0 ? function () { } : _b, flowLength = flow.length; + // Remove flowed elements + if (flowLength) { + ["circle", "text", "shape", "eventRect"].forEach(function (v) { + var target = []; + for (var i = 0; i < flowLength; i++) { + target.push(".".concat(CLASS[v], "-").concat(i)); + } + svg.selectAll(".".concat(CLASS["".concat(v, "s")])) // circles, shapes, texts, eventRects + .selectAll(target) + .remove(); + }); + svg.select(".".concat(CLASS.xgrid)) + .remove(); + } + // draw again for removing flowed elements and reverting attr + Object.keys(elements).forEach(function (v) { + var n = elements[v]; + if (v !== "axis.x") { + n.attr("transform", null); + } + if (v === "grid.x") { + n.attr(state.xgridAttr); + } + else if (v === "gridLines.x") { + n.attr("x1", isRotated ? 0 : xv) + .attr("x2", isRotated ? state.width : xv); + n.select("text") + .attr("x", isRotated ? state.width : 0) + .attr("y", xv); + } + else if (/^(area|bar|line)$/.test(v)) { + n.attr("d", shape.type[v]); + } + else if (v === "text") { + n.attr("x", xForText) + .attr("y", yForText) + .style("fill-opacity", $$.opacityForText.bind($$)); + } + else if (v === "circle") { + if ($$.isCirclePoint()) { + n.attr("cx", cx).attr("cy", cy); + } + else { + var xFunc = function (d) { return cx(d) - config.point_r; }; + var yFunc = function (d) { return cy(d) - config.point_r; }; + n.attr("x", xFunc).attr("y", yFunc); + } + } + else if (v === "region.list") { + n.select("rect").filter($$.isRegionOnX) + .attr("x", $$.regionX.bind($$)) + .attr("width", $$.regionWidth.bind($$)); + } + }); + config.interaction_enabled && $$.redrawEventRect(); + // callback for end of flow + done.call($$.api); + state.flowing = false; + }, + /** + * Get flow transform value + * @param {object} targets target + * @param {number} orgDataCount original data count + * @param {number} flowIndex flow index + * @param {number} flowLength flow length + * @returns {string} + * @private + */ + getFlowTransform: function (targets, orgDataCount, flowIndex, flowLength) { + var $$ = this; + var data = $$.data, x = $$.scale.x; + var dataValues = data.targets[0].values; + var flowStart = $$.getValueOnIndex(dataValues, flowIndex); + var flowEnd = $$.getValueOnIndex(dataValues, flowIndex + flowLength); + var translateX; + // update x domain to generate axis elements for flow + var orgDomain = x.domain(); + var domain = $$.updateXDomain(targets, true, true); + // generate transform to flow + if (!orgDataCount) { // if empty + if (dataValues.length !== 1) { + translateX = x(orgDomain[0]) - x(domain[0]); + } + else { + if ($$.axis.isTimeSeries()) { + flowStart = $$.getValueOnIndex(dataValues, 0); + flowEnd = $$.getValueOnIndex(dataValues, dataValues.length - 1); + translateX = x(flowStart.x) - x(flowEnd.x); + } + else { + translateX = diffDomain(domain) / 2; + } + } + } + else if (orgDataCount === 1 || (flowStart === null || flowStart === void 0 ? void 0 : flowStart.x) === (flowEnd === null || flowEnd === void 0 ? void 0 : flowEnd.x)) { + translateX = x(orgDomain[0]) - x(domain[0]); + } + else { + translateX = $$.axis.isTimeSeries() ? + x(orgDomain[0]) - x(domain[0]) : + x((flowStart === null || flowStart === void 0 ? void 0 : flowStart.x) || 0) - x(flowEnd.x); + } + var scaleX = diffDomain(orgDomain) / diffDomain(domain); + return "translate(".concat(translateX, ",0) scale(").concat(scaleX, ",1)"); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var clip = { + initClip: function () { + var $$ = this; + var _a = $$.state, clip = _a.clip, datetimeId = _a.datetimeId; + // MEMO: clipId needs to be unique because it conflicts when multiple charts exist + clip.id = "".concat(datetimeId, "-clip"); + clip.idXAxis = "".concat(clip.id, "-xaxis"); + clip.idYAxis = "".concat(clip.id, "-yaxis"); + clip.idGrid = "".concat(clip.id, "-grid"); + // Define 'clip-path' attribute values + clip.path = $$.getClipPath(clip.id); + clip.pathXAxis = $$.getClipPath(clip.idXAxis); + clip.pathYAxis = $$.getClipPath(clip.idYAxis); + clip.pathGrid = $$.getClipPath(clip.idGrid); + }, + getClipPath: function (id) { + var $$ = this; + var config = $$.config; + if ((!config.clipPath && /-clip$/.test(id)) || + (!config.axis_x_clipPath && /-clip-xaxis$/.test(id)) || + (!config.axis_y_clipPath && /-clip-yaxis$/.test(id))) { + return null; + } + return "url(#".concat(id, ")"); + }, + appendClip: function (parent, id) { + id && parent.append("clipPath") + .attr("id", id) + .append("rect"); + }, + /** + * Set x Axis clipPath dimension + * @param {d3Selecton} node clipPath <rect> selection + * @private + */ + setXAxisClipPath: function (node) { + var $$ = this; + var config = $$.config, _a = $$.state, margin = _a.margin, width = _a.width, height = _a.height; + var isRotated = config.axis_rotated; + var left = Math.max(30, margin.left) - (isRotated ? 0 : 20); + // less than 20 is not enough to show the axis label 'outer' without legend + var h = (isRotated ? (margin.top + height) + 10 : margin.bottom) + 20; + var x = isRotated ? -(1 + left) : -(left - 1); + var y = -15; // -Math.max(15, margin.top); + var w = isRotated ? margin.left + 20 : width + 10 + left; + node + .attr("x", x) + .attr("y", y) + .attr("width", w) + .attr("height", h); + }, + /** + * Set y Axis clipPath dimension + * @param {d3Selection} node clipPath <rect> selection + * @private + */ + setYAxisClipPath: function (node) { + var $$ = this; + var config = $$.config, _a = $$.state, margin = _a.margin, width = _a.width, height = _a.height; + var isRotated = config.axis_rotated; + var left = Math.max(30, margin.left) - (isRotated ? 20 : 0); + var isInner = config.axis_y_inner; + var x = isInner && !isRotated ? + (config.axis_y_label.text ? -20 : -1) : + (isRotated ? -(1 + left) : -(left - 1)); + var y = -(isRotated ? 20 : margin.top); + var w = (isRotated ? width + 15 + left : margin.left + 20) + (isInner ? 20 : 0); + var h = (isRotated ? margin.bottom + 10 : (margin.top + height)) + 10; + node + .attr("x", x) + .attr("y", y) + .attr("width", w) + .attr("height", h); + }, + updateXAxisTickClip: function () { + var $$ = this; + var config = $$.config, _a = $$.state, clip = _a.clip, xAxisHeight = _a.xAxisHeight, defs = $$.$el.defs; + var newXAxisHeight = $$.getHorizontalAxisHeight("x"); + if (defs && !clip.idXAxisTickTexts) { + var clipId = "".concat(clip.id, "-xaxisticktexts"); + $$.appendClip(defs, clipId); + clip.pathXAxisTickTexts = $$.getClipPath(clip.idXAxisTickTexts); + clip.idXAxisTickTexts = clipId; + } + if (!config.axis_x_tick_multiline && + $$.getAxisTickRotate("x") && + newXAxisHeight !== xAxisHeight) { + $$.setXAxisTickClipWidth(); + $$.setXAxisTickTextClipPathWidth(); + } + $$.state.xAxisHeight = newXAxisHeight; + }, + setXAxisTickClipWidth: function () { + var $$ = this; + var config = $$.config, maxTickSize = $$.state.current.maxTickSize; + var xAxisTickRotate = $$.getAxisTickRotate("x"); + if (!config.axis_x_tick_multiline && xAxisTickRotate) { + var sinRotation = Math.sin(Math.PI / 180 * Math.abs(xAxisTickRotate)); + maxTickSize.x.clipPath = ($$.getHorizontalAxisHeight("x") - 20) / sinRotation; + } + else { + maxTickSize.x.clipPath = null; + } + }, + setXAxisTickTextClipPathWidth: function () { + var $$ = this; + var _a = $$.state, clip = _a.clip, current = _a.current, svg = $$.$el.svg; + if (svg) { + svg.select("#".concat(clip.idXAxisTickTexts, " rect")) + .attr("width", current.maxTickSize.x.clipPath) + .attr("height", 30); + } + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +// Grid position and text anchor helpers +var getGridTextAnchor = function (d) { return isValue(d.position) || "end"; }; +var getGridTextDx = function (d) { return (d.position === "start" ? 4 : (d.position === "middle" ? 0 : -4)); }; +/** + * Get grid text x value getter function + * @param {boolean} isX Is x Axis + * @param {number} width Width value + * @param {number} height Height value + * @returns {Function} + * @private + */ +function getGridTextX(isX, width, height) { + return function (d) { + var x = isX ? 0 : width; + if (d.position === "start") { + x = isX ? -height : 0; + } + else if (d.position === "middle") { + x = (isX ? -height : width) / 2; + } + return x; + }; +} +/** + * Update coordinate attributes value + * @param {d3.selection} el Target node + * @param {string} type Type + * @private + */ +function smoothLines(el, type) { + { + el.each(function () { + var g = select(this); + ["x1", "x2", "y1", "y2"] + .forEach(function (v) { return g.attr(v, Math.ceil(+g.attr(v))); }); + }); + } +} +var grid = { + hasGrid: function () { + var config = this.config; + return ["x", "y"] + .some(function (v) { return config["grid_".concat(v, "_show")] || config["grid_".concat(v, "_lines")].length; }); + }, + initGrid: function () { + var $$ = this; + $$.hasGrid() && $$.initGridLines(); + $$.initFocusGrid(); + }, + initGridLines: function () { + var $$ = this; + var config = $$.config, clip = $$.state.clip, $el = $$.$el; + if (config.grid_x_lines.length || config.grid_y_lines.length) { + $el.gridLines.main = $el.main.insert("g", ".".concat($COMMON.chart).concat(config.grid_lines_front ? " + *" : "")) + .attr("clip-path", clip.pathGrid) + .attr("class", "".concat($GRID.grid, " ").concat($GRID.gridLines)); + $el.gridLines.main.append("g").attr("class", $GRID.xgridLines); + $el.gridLines.main.append("g").attr("class", $GRID.ygridLines); + $el.gridLines.x = selectAll([]); + } + }, + updateXGrid: function (withoutUpdate) { + var $$ = this; + var config = $$.config, scale = $$.scale, state = $$.state, _a = $$.$el, main = _a.main, grid = _a.grid; + var isRotated = config.axis_rotated; + var xgridData = $$.generateGridData(config.grid_x_type, scale.x); + var tickOffset = $$.axis.isCategorized() ? $$.axis.x.tickOffset() : 0; + var pos = function (d) { + return (scale.zoom || scale.x)(d) + (tickOffset * (isRotated ? -1 : 1)); + }; + state.xgridAttr = isRotated ? + { + x1: 0, + x2: state.width, + y1: pos, + y2: pos + } : + { + x1: pos, + x2: pos, + y1: 0, + y2: state.height + }; + grid.x = main.select(".".concat($GRID.xgrids)) + .selectAll(".".concat($GRID.xgrid)) + .data(xgridData); + grid.x.exit().remove(); + grid.x = grid.x.enter() + .append("line") + .attr("class", $GRID.xgrid) + .merge(grid.x); + if (!withoutUpdate) { + grid.x.each(function () { + var grid = select(this); + Object.keys(state.xgridAttr).forEach(function (id) { + grid.attr(id, state.xgridAttr[id]) + .style("opacity", function () { return (grid.attr(isRotated ? "y1" : "x1") === (isRotated ? state.height : 0) ? + "0" : + null); }); + }); + }); + } + }, + updateYGrid: function () { + var $$ = this; + var axis = $$.axis, config = $$.config, scale = $$.scale, state = $$.state, _a = $$.$el, grid = _a.grid, main = _a.main; + var isRotated = config.axis_rotated; + var pos = function (d) { return Math.ceil(scale.y(d)); }; + var gridValues = axis.y.getGeneratedTicks(config.grid_y_ticks) || + $$.scale.y.ticks(config.grid_y_ticks); + grid.y = main.select(".".concat($GRID.ygrids)) + .selectAll(".".concat($GRID.ygrid)) + .data(gridValues); + grid.y.exit().remove(); + grid.y = grid.y + .enter() + .append("line") + .attr("class", $GRID.ygrid) + .merge(grid.y); + grid.y.attr("x1", isRotated ? pos : 0) + .attr("x2", isRotated ? pos : state.width) + .attr("y1", isRotated ? 0 : pos) + .attr("y2", isRotated ? state.height : pos); + smoothLines(grid.y); + }, + updateGrid: function () { + var $$ = this; + var _a = $$.$el, grid = _a.grid, gridLines = _a.gridLines; + !gridLines.main && $$.initGridLines(); + // hide if arc type + grid.main.style("visibility", $$.hasArcType() ? "hidden" : null); + $$.hideGridFocus(); + $$.updateGridLines("x"); + $$.updateGridLines("y"); + }, + /** + * Update Grid lines + * @param {string} type x | y + * @private + */ + updateGridLines: function (type) { + var $$ = this; + var config = $$.config, _a = $$.$el, gridLines = _a.gridLines, main = _a.main, $T = $$.$T; + var isRotated = config.axis_rotated; + var isX = type === "x"; + config["grid_".concat(type, "_show")] && $$["update".concat(type.toUpperCase(), "Grid")](); + var lines = main.select(".".concat($GRID["".concat(type, "gridLines")])) + .selectAll(".".concat($GRID["".concat(type, "gridLine")])) + .data(config["grid_".concat(type, "_lines")]); + // exit + $T(lines.exit()) + .style("opacity", "0") + .remove(); + // enter + var gridLine = lines.enter().append("g"); + gridLine.append("line") + .style("opacity", "0"); + lines = gridLine.merge(lines); + lines.each(function (d) { + var g = select(this); + if (g.select("text").empty() && d.text) { + g.append("text") + .style("opacity", "0"); + } + }); + $T(lines + .attr("class", function (d) { return "".concat($GRID["".concat(type, "gridLine")], " ").concat(d.class || "").trim(); }) + .select("text") + .attr("text-anchor", getGridTextAnchor) + .attr("transform", function () { return (isX ? + (isRotated ? null : "rotate(-90)") : + (isRotated ? "rotate(-90)" : null)); }) + .attr("dx", getGridTextDx) + .attr("dy", -5)) + .text(function (d) { + var _a; + return (_a = d.text) !== null && _a !== void 0 ? _a : this.remove(); + }); + gridLines[type] = lines; + }, + redrawGrid: function (withTransition) { + var $$ = this; + var isRotated = $$.config.axis_rotated, _a = $$.state, width = _a.width, height = _a.height, gridLines = $$.$el.gridLines, $T = $$.$T; + var xv = $$.xv.bind($$); + var yv = $$.yv.bind($$); + var xLines = gridLines.x.select("line"); + var xTexts = gridLines.x.select("text"); + var yLines = gridLines.y.select("line"); + var yTexts = gridLines.y.select("text"); + xLines = $T(xLines, withTransition) + .attr("x1", isRotated ? 0 : xv) + .attr("x2", isRotated ? width : xv) + .attr("y1", isRotated ? xv : 0) + .attr("y2", isRotated ? xv : height); + xTexts = $T(xTexts, withTransition) + .attr("x", getGridTextX(!isRotated, width, height)) + .attr("y", xv); + yLines = $T(yLines, withTransition) + .attr("x1", isRotated ? yv : 0) + .attr("x2", isRotated ? yv : width) + .attr("y1", isRotated ? 0 : yv) + .attr("y2", isRotated ? height : yv); + yTexts = $T(yTexts, withTransition) + .attr("x", getGridTextX(isRotated, width, height)) + .attr("y", yv); + return [ + xLines.style("opacity", null), + xTexts.style("opacity", null), + yLines.style("opacity", null), + yTexts.style("opacity", null) + ]; + }, + initFocusGrid: function () { + var $$ = this; + var config = $$.config, clip = $$.state.clip, $el = $$.$el; + var isFront = config.grid_front; + var className = ".".concat(isFront && $el.gridLines.main ? $GRID.gridLines : $COMMON.chart).concat(isFront ? " + *" : ""); + var grid = $el.main.insert("g", className) + .attr("clip-path", clip.pathGrid) + .attr("class", $GRID.grid); + $el.grid.main = grid; + config.grid_x_show && + grid.append("g").attr("class", $GRID.xgrids); + config.grid_y_show && + grid.append("g").attr("class", $GRID.ygrids); + if (config.axis_tooltip) { + var axis = grid.append("g").attr("class", "bb-axis-tooltip"); + axis.append("line").attr("class", "bb-axis-tooltip-x"); + axis.append("line").attr("class", "bb-axis-tooltip-y"); + } + if (config.interaction_enabled && config.grid_focus_show && !config.axis_tooltip) { + grid.append("g") + .attr("class", $FOCUS.xgridFocus) + .append("line") + .attr("class", $FOCUS.xgridFocus); + // to show xy focus grid line, should be 'tooltip.grouped=false' + if (config.grid_focus_y && !config.tooltip_grouped) { + grid.append("g") + .attr("class", $FOCUS.ygridFocus) + .append("line") + .attr("class", $FOCUS.ygridFocus); + } + } + }, + showAxisGridFocus: function () { + var _a, _b; + var $$ = this; + var config = $$.config, format = $$.format, _c = $$.state, event = _c.event, width = _c.width, height = _c.height; + var isRotated = config.axis_rotated; + // get mouse event position + var _d = getPointer(event, (_a = $$.$el.eventRect) === null || _a === void 0 ? void 0 : _a.node()), x = _d[0], y = _d[1]; + var pos = { x: x, y: y }; + for (var _i = 0, _e = Object.entries($$.$el.axisTooltip); _i < _e.length; _i++) { + var _f = _e[_i], axis = _f[0], node = _f[1]; + var attr = (axis === "x" && !isRotated) || (axis !== "x" && isRotated) ? "x" : "y"; + var value = pos[attr]; + var scaleText = (_b = $$.scale[axis]) === null || _b === void 0 ? void 0 : _b.invert(value); + if (scaleText) { + scaleText = axis === "x" && $$.axis.isTimeSeries() ? + format.xAxisTick(scaleText) : + scaleText === null || scaleText === void 0 ? void 0 : scaleText.toFixed(2); + // set position & its text value based on position + node === null || node === void 0 ? void 0 : node.attr(attr, value).text(scaleText); + } + } + $$.$el.main.selectAll("line.bb-axis-tooltip-x, line.bb-axis-tooltip-y").style("visibility", null) + .each(function (d, i) { + var line = select(this); + if (i === 0) { + line + .attr("x1", x) + .attr("x2", x) + .attr("y1", i ? 0 : height) + .attr("y2", i ? height : 0); + } + else { + line + .attr("x1", i ? 0 : width) + .attr("x2", i ? width : 0) + .attr("y1", y) + .attr("y2", y); + } + }); + }, + hideAxisGridFocus: function () { + var $$ = this; + $$.$el.main.selectAll("line.bb-axis-tooltip-x, line.bb-axis-tooltip-y").style("visibility", "hidden"); + Object.values($$.$el.axisTooltip) + .forEach(function (v) { return v === null || v === void 0 ? void 0 : v.style("display", "none"); }); + }, + /** + * Show grid focus line + * @param {Array} data Selected data + * @private + */ + showGridFocus: function (data) { + var _a; + var $$ = this; + var config = $$.config, _b = $$.state, width = _b.width, height = _b.height; + var isRotated = config.axis_rotated; + var focusEl = $$.$el.main.selectAll("line.".concat($FOCUS.xgridFocus, ", line.").concat($FOCUS.ygridFocus)); + var dataToShow = (data || [focusEl.datum()]).filter(function (d) { + return d && isValue($$.getBaseValue(d)); + }); + // Hide when bubble/scatter/stanford plot exists + if (!config.tooltip_show || dataToShow.length === 0 || (!config.axis_x_forceAsSingle && $$.hasType("bubble")) || $$.hasArcType()) { + return; + } + var isEdge = config.grid_focus_edge && !config.tooltip_grouped; + var xx = $$.xx.bind($$); + focusEl + .style("visibility", null) + .data(dataToShow.concat(dataToShow)) + .each(function (d) { + var el = select(this); + var pos = { + x: xx(d), + y: $$.getYScaleById(d.id)(d.value) + }; + var xy; + if (el.classed($FOCUS.xgridFocus)) { + // will contain 'x1, y1, x2, y2' order + xy = isRotated ? + [ + null, // x1 + pos.x, // y1 + isEdge ? pos.y : width, // x2 + pos.x // y2 + ] : + [ + pos.x, + isEdge ? pos.y : null, + pos.x, + height + ]; + } + else { + var isY2 = $$.axis.getId(d.id) === "y2"; + xy = isRotated ? + [ + pos.y, // x1 + isEdge && !isY2 ? pos.x : null, // y1 + pos.y, // x2 + isEdge && isY2 ? pos.x : height // y2 + ] : + [ + isEdge && isY2 ? pos.x : null, + pos.y, + isEdge && !isY2 ? pos.x : width, + pos.y + ]; + } + ["x1", "y1", "x2", "y2"] + .forEach(function (v, i) { return el.attr(v, xy[i]); }); + }); + smoothLines(focusEl); + (_a = $$.showCircleFocus) === null || _a === void 0 ? void 0 : _a.call($$, data); + }, + hideGridFocus: function () { + var _a; + var $$ = this; + var _b = $$.state, inputType = _b.inputType, resizing = _b.resizing, main = $$.$el.main; + if (inputType === "mouse" || !resizing) { + main.selectAll("line.".concat($FOCUS.xgridFocus, ", line.").concat($FOCUS.ygridFocus)) + .style("visibility", "hidden"); + (_a = $$.hideCircleFocus) === null || _a === void 0 ? void 0 : _a.call($$); + } + }, + updateGridFocus: function () { + var _a; + var $$ = this; + var _b = $$.state, inputType = _b.inputType, width = _b.width, height = _b.height, resizing = _b.resizing, grid = $$.$el.grid; + var xgridFocus = grid.main.select("line.".concat($FOCUS.xgridFocus)); + if (inputType === "touch") { + if (xgridFocus.empty()) { + resizing && ((_a = $$.showCircleFocus) === null || _a === void 0 ? void 0 : _a.call($$)); + } + else { + $$.showGridFocus(); + } + } + else { + var isRotated = $$.config.axis_rotated; + xgridFocus + .attr("x1", isRotated ? 0 : -10) + .attr("x2", isRotated ? width : -10) + .attr("y1", isRotated ? -10 : 0) + .attr("y2", isRotated ? -10 : height); + } + // need to return 'true' as of being pushed to the redraw list + // ref: getRedrawList() + return true; + }, + generateGridData: function (type, scale) { + var $$ = this; + var tickNum = $$.$el.main.select(".".concat($AXIS.axisX)) + .selectAll(".tick") + .size(); + var gridData = []; + if (type === "year") { + var xDomain = $$.getXDomain(); + var _a = xDomain.map(function (v) { return v.getFullYear(); }), firstYear = _a[0], lastYear = _a[1]; + for (var i = firstYear; i <= lastYear; i++) { + gridData.push(new Date("".concat(i, "-01-01 00:00:00"))); + } + } + else { + gridData = scale.ticks(10); + if (gridData.length > tickNum) { // use only int + gridData = gridData.filter(function (d) { return String(d).indexOf(".") < 0; }); + } + } + return gridData; + }, + getGridFilterToRemove: function (params) { + return params ? + function (line) { + var found = false; + (isArray(params) ? params.concat() : [params]).forEach(function (param) { + if ((("value" in param && line.value === param.value) || + ("class" in param && line.class === param.class))) { + found = true; + } + }); + return found; + } : + function () { return true; }; + }, + removeGridLines: function (params, forX) { + var $$ = this; + var config = $$.config, $T = $$.$T; + var toRemove = $$.getGridFilterToRemove(params); + var toShow = function (line) { return !toRemove(line); }; + var classLines = forX ? $GRID.xgridLines : $GRID.ygridLines; + var classLine = forX ? $GRID.xgridLine : $GRID.ygridLine; + $T($$.$el.main.select(".".concat(classLines)) + .selectAll(".".concat(classLine)) + .filter(toRemove)) + .style("opacity", "0") + .remove(); + var gridLines = "grid_".concat(forX ? "x" : "y", "_lines"); + config[gridLines] = config[gridLines].filter(toShow); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var region = { + initRegion: function () { + var $$ = this; + var $el = $$.$el; + $el.region.main = $el.main + .insert("g", ":first-child") + .attr("clip-path", $$.state.clip.path) + .attr("class", $REGION.regions); + }, + updateRegion: function () { + var $$ = this; + var config = $$.config, region = $$.$el.region, $T = $$.$T; + if (!region.main) { + $$.initRegion(); + } + // hide if arc type + region.main.style("visibility", $$.hasArcType() ? "hidden" : null); + // select <g> element + var regions = region.main + .selectAll(".".concat($REGION.region)) + .data(config.regions); + $T(regions.exit()) + .style("opacity", "0") + .remove(); + var regionsEnter = regions + .enter() + .append("g"); + regionsEnter + .append("rect") + .style("fill-opacity", "0"); + region.list = regionsEnter + .merge(regions) + .attr("class", $$.classRegion.bind($$)); + region.list.each(function (d) { + var _a; + var g = select(this); + if (g.select("text").empty() && ((_a = d.label) === null || _a === void 0 ? void 0 : _a.text)) { + select(this).append("text") + .style("opacity", "0"); + } + }); + }, + redrawRegion: function (withTransition) { + var $$ = this; + var region = $$.$el.region, $T = $$.$T; + var regions = region.list.select("rect"); + var label = region.list.selectAll("text"); + regions = $T(regions, withTransition) + .attr("x", $$.regionX.bind($$)) + .attr("y", $$.regionY.bind($$)) + .attr("width", $$.regionWidth.bind($$)) + .attr("height", $$.regionHeight.bind($$)); + label = $T(label, withTransition) + .attr("transform", function (d) { + var _a; + var _b = (_a = d.label) !== null && _a !== void 0 ? _a : {}, _c = _b.x, x = _c === void 0 ? 0 : _c, _d = _b.y, y = _d === void 0 ? 0 : _d, _e = _b.rotated, rotated = _e === void 0 ? false : _e; + return "translate(".concat($$.regionX.bind($$)(d) + x, ", ").concat($$.regionY.bind($$)(d) + y, ")").concat(rotated ? " rotate(-90)" : ""); + }) + .attr("text-anchor", function (d) { var _a; return (((_a = d.label) === null || _a === void 0 ? void 0 : _a.rotated) ? "end" : null); }) + .attr("dy", "1em") + .style("fill", function (d) { var _a, _b; return (_b = (_a = d.label) === null || _a === void 0 ? void 0 : _a.color) !== null && _b !== void 0 ? _b : null; }) + .text(function (d) { var _a; return (_a = d.label) === null || _a === void 0 ? void 0 : _a.text; }); + return [ + regions + .style("fill-opacity", function (d) { return (isValue(d.opacity) ? d.opacity : null); }) + .on("end", function () { + // remove unnecessary rect after transition + select(this.parentNode) + .selectAll("rect:not([x])") + .remove(); + }), + label.style("opacity", null) + ]; + }, + getRegionXY: function (type, d) { + var $$ = this; + var config = $$.config, scale = $$.scale; + var isRotated = config.axis_rotated; + var isX = type === "x"; + var key = "start"; + var currScale; + var pos = 0; + if (d.axis === "y" || d.axis === "y2") { + if (!isX) { + key = "end"; + } + if ((isX ? isRotated : !isRotated) && key in d) { + currScale = scale[d.axis]; + pos = currScale(d[key]); + } + } + else if ((isX ? !isRotated : isRotated) && key in d) { + currScale = scale.zoom || scale.x; + pos = currScale($$.axis.isTimeSeries() ? parseDate.call($$, d[key]) : d[key]); + } + return pos; + }, + regionX: function (d) { + return this.getRegionXY("x", d); + }, + regionY: function (d) { + return this.getRegionXY("y", d); + }, + getRegionSize: function (type, d) { + var $$ = this; + var config = $$.config, scale = $$.scale, state = $$.state; + var isRotated = config.axis_rotated; + var isWidth = type === "width"; + var start = $$[isWidth ? "regionX" : "regionY"](d); + var currScale; + var key = "end"; + var end = state[type]; + if (d.axis === "y" || d.axis === "y2") { + if (!isWidth) { + key = "start"; + } + if ((isWidth ? isRotated : !isRotated) && key in d) { + currScale = scale[d.axis]; + end = currScale(d[key]); + } + } + else if ((isWidth ? !isRotated : isRotated) && key in d) { + currScale = scale.zoom || scale.x; + end = currScale($$.axis.isTimeSeries() ? parseDate.call($$, d[key]) : d[key]); + } + return end < start ? 0 : end - start; + }, + regionWidth: function (d) { + return this.getRegionSize("width", d); + }, + regionHeight: function (d) { + return this.getRegionSize("height", d); + }, + isRegionOnX: function (d) { + return !d.axis || d.axis === "x"; + } +}; + +var sizeAxis = { + /** + * Get Axis size according its position + * @param {string} id Axis id value - x, y or y2 + * @returns {number} size Axis size value + * @private + */ + getAxisSize: function (id) { + var $$ = this; + var isRotated = $$.config.axis_rotated; + return (isRotated && id === "x") || (!isRotated && /y2?/.test(id)) ? + $$.getAxisWidthByAxisId(id, true) : + $$.getHorizontalAxisHeight(id); + }, + getAxisWidthByAxisId: function (id, withoutRecompute) { + var _a, _b; + var $$ = this; + if ($$.axis) { + var position = (_a = $$.axis) === null || _a === void 0 ? void 0 : _a.getLabelPositionById(id); + var width = $$.axis.getMaxTickSize(id, withoutRecompute).width; + var gap = width === 0 ? 0.5 : 0; + return width + (((_b = $$.config.padding) === null || _b === void 0 ? void 0 : _b.mode) === "fit" ? + position.isInner ? (10 + gap) : 10 : + position.isInner ? + (20 + gap) : + 40); + } + else { + return 40; + } + }, + getHorizontalAxisHeight: function (id) { + var _a, _b; + var $$ = this; + var config = $$.config, state = $$.state; + var rotatedPadding = state.rotatedPadding, isLegendRight = state.isLegendRight, isLegendInset = state.isLegendInset; + var isRotated = config.axis_rotated; + var isFitPadding = ((_a = config.padding) === null || _a === void 0 ? void 0 : _a.mode) === "fit"; + var isInner = config["axis_".concat(id, "_inner")]; + var hasLabelText = config["axis_".concat(id, "_label")].text; + var defaultHeight = 13; + var h = ((_b = config.padding) === null || _b === void 0 ? void 0 : _b.mode) === "fit" ? + (isInner && !hasLabelText ? (id === "y" ? 1 : 0) : 20) : + 30; + if (id === "x" && !config.axis_x_show) { + return 8; + } + if (id === "x" && isNumber(config.axis_x_height)) { + return config.axis_x_height; + } + if (id === "y" && !config.axis_y_show) { + return config.legend_show && + !isLegendRight && + !isLegendInset ? + 10 : + 1; + } + if (id === "y2" && !config.axis_y2_show) { + return isFitPadding ? 0 : rotatedPadding.top; + } + var maxtickSize = $$.axis.getMaxTickSize(id); + var isXAxisTickRotated = Math.abs(config.axis_x_tick_rotate) > 0 && (!config.axis_x_tick_autorotate || $$.needToRotateXAxisTickTexts()); + if ((config.axis_x_tick_multiline || isXAxisTickRotated) && + maxtickSize.height > defaultHeight) { + h += maxtickSize.height - defaultHeight; + } + return h + + ($$.axis.getLabelPositionById(id).isInner ? 0 : 10) + + (id === "y2" && !isRotated ? -10 : 0); + }, + getEventRectWidth: function () { + var $$ = this; + var config = $$.config, axis = $$.axis; + var isInverted = config.axis_x_inverted; + var tickInterval = axis.x.tickInterval(); + return Math.max(0, isInverted ? Math.abs(tickInterval) : tickInterval); + }, + /** + * Get axis tick test rotate value + * @param {string} id Axis id + * @returns {number} rotate value + * @private + */ + getAxisTickRotate: function (id) { + var $$ = this; + var axis = $$.axis, config = $$.config, state = $$.state, $el = $$.$el; + var rotate = config["axis_".concat(id, "_tick_rotate")]; + if (id === "x") { + var allowedXAxisTypes = axis.isCategorized() || axis.isTimeSeries(); + if (config.axis_x_tick_fit && allowedXAxisTypes) { + var xTickCount = config.axis_x_tick_count; + var currentXTicksLength = state.current.maxTickSize.x.ticks.length; + var tickCount = 0; + if (xTickCount) { + tickCount = xTickCount > currentXTicksLength ? currentXTicksLength : xTickCount; + } + else if (currentXTicksLength) { + tickCount = currentXTicksLength; + } + if (tickCount !== state.axis.x.tickCount) { + var targets = $$.data.targets; + state.axis.x.padding = $$.getXDomainPadding([ + $$.getXDomainMinMax(targets, "min"), + $$.getXDomainMinMax(targets, "max") + ], tickCount); + } + state.axis.x.tickCount = tickCount; + } + if ($el.svg && + config.axis_x_tick_autorotate && + config.axis_x_tick_fit && + !config.axis_x_tick_multiline && + !config.axis_x_tick_culling && + allowedXAxisTypes) { + rotate = $$.needToRotateXAxisTickTexts() ? config.axis_x_tick_rotate : 0; + } + } + return rotate; + }, + /** + * Check weather axis tick text needs to be rotated + * @returns {boolean} + * @private + */ + needToRotateXAxisTickTexts: function () { + var $$ = this; + var _a = $$.state, axis = _a.axis, current = _a.current, isLegendRight = _a.isLegendRight, legendItemWidth = _a.legendItemWidth; + var legendWidth = isLegendRight && legendItemWidth; + var xAxisLength = current.width - legendWidth - + $$.getCurrentPaddingByDirection("left") - $$.getCurrentPaddingByDirection("right"); + var tickCountWithPadding = axis.x.tickCount + + axis.x.padding.left + axis.x.padding.right; + var width = $$.axis.getMaxTickSize("x").width; + var tickLength = tickCountWithPadding ? xAxisLength / tickCountWithPadding : 0; + return width > tickLength; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * x Axis config options + */ +var x = { + /** + * Set clip-path attribute for x axis element + * @name axis․x․clipPath + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo]() + * @example + * // don't set 'clip-path' attribute + * clipPath: false + */ + axis_x_clipPath: true, + /** + * Show or hide x axis. + * @name axis․x․show + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * show: false + * } + * } + */ + axis_x_show: true, + /** + * Force the x axis to interact as single rather than multiple x axes. + * - **NOTE:** The tooltip event will be triggered nearing each data points(for multiple xs) rather than x axis based(as single x does) in below condition: + * - for `bubble` & `scatter` type + * - when `data.xs` is set + * - when `tooltip.grouped=false` is set + * - `tooltip.grouped` options will take precedence over `axis.forceSingleX` option. + * @name axis․x․forceAsSingle + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.ForceAsSingle) + * @example + * axis: { + * x: { + * // will work as single x axis + * forceAsSingle: true + * } + * } + */ + axis_x_forceAsSingle: false, + /** + * Set type of x axis.<br><br> + * **Available Values:** + * - category + * - indexed + * - log + * - timeseries + * + * **NOTE:**<br> + * - **log** type: + * - the x values specified by [`data.x`](#.data%25E2%2580%25A4x)(or by any equivalent option), must be exclusively-positive. + * - x axis min value should be >= 0. + * - for 'category' type, `data.xs` option isn't supported. + * @name axis․x․type + * @memberof Options + * @type {string} + * @default indexed + * @see [Demo: indexed](https://naver.github.io/billboard.js/demo/#Chart.AreaChart) + * @see [Demo: timeseries](https://naver.github.io/billboard.js/demo/#Chart.TimeseriesChart) + * @see [Demo: category](https://naver.github.io/billboard.js/demo/#Data.CategoryData) + * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales) + * @example + * axis: { + * x: { + * type: "timeseries" + * } + * } + */ + axis_x_type: "indexed", + /** + * Set how to treat the timezone of x values.<br> + * If true, treat x value as localtime. If false, convert to UTC internally. + * @name axis․x․localtime + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * localtime: false + * } + * } + */ + axis_x_localtime: true, + /** + * Set category names on category axis. + * This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required. + * @name axis․x․categories + * @memberof Options + * @type {Array} + * @default [] + * @example + * axis: { + * x: { + * categories: ["Category 1", "Category 2", ...] + * } + * } + */ + axis_x_categories: [], + /** + * centerize ticks on category axis. + * @name axis․x․tick․centered + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * x: { + * tick: { + * centered: true + * } + * } + * } + */ + axis_x_tick_centered: false, + /** + * A function to format tick value. Format string is also available for timeseries data. + * @name axis․x․tick․format + * @memberof Options + * @type {Function|string} + * @default undefined + * @see [D3's time specifier](https://d3js.org/d3-time-format#locale_format) + * @example + * axis: { + * x: { + * tick: { + * // for timeseries, a 'datetime' object is given as parameter + * format: function(x) { + * return x.getFullYear(); + * } + * + * // for category, index(Number) and categoryName(String) are given as parameter + * format: function(index, categoryName) { + * return categoryName.substr(0, 10); + * }, + * + * // for timeseries format specifier + * format: "%Y-%m-%d %H:%M:%S" + * } + * } + * } + */ + axis_x_tick_format: undefined, + /** + * Setting for culling ticks. + * - `true`: the ticks will be culled, then only limited tick text will be shown.<br> + * This option does not hide the tick lines by default, if want to hide tick lines, set `axis.x.tick.culling.lines=false`. + * - `false`: all of ticks will be shown.<br><br> + * The number of ticks to be shown can be chaned by `axis.x.tick.culling.max`. + * @name axis․x․tick․culling + * @memberof Options + * @type {boolean} + * @default + * `true` for indexed axis and timeseries axis, `false` for category axis + * @example + * axis: { + * x: { + * tick: { + * culling: false + * } + * } + * } + */ + axis_x_tick_culling: {}, + /** + * The number of tick texts will be adjusted to less than this value. + * @name axis․x․tick․culling․max + * @memberof Options + * @type {number} + * @default 10 + * @example + * axis: { + * x: { + * tick: { + * culling: { + * max: 5 + * } + * } + * } + * } + */ + axis_x_tick_culling_max: 10, + /** + * Control visibility of tick lines within culling option, along with tick text. + * @name axis․x․tick․culling․lines + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * tick: { + * culling: { + * lines: false, + * } + * } + * } + * } + */ + axis_x_tick_culling_lines: true, + /** + * The number of x axis ticks to show.<br><br> + * This option hides tick lines together with tick text. If this option is used on timeseries axis, the ticks position will be determined precisely and not nicely positioned (e.g. it will have rough second value). + * @name axis․x․tick․count + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * x: { + * tick: { + * count: 5 + * } + * } + * } + */ + axis_x_tick_count: undefined, + /** + * Show or hide x axis tick line. + * @name axis․x․tick․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * x: { + * tick: { + * show: false + * } + * } + * } + */ + axis_x_tick_show: true, + /** + * Show or hide x axis tick text. + * @name axis․x․tick․text․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * x: { + * tick: { + * text: { + * show: false + * } + * } + * } + * } + */ + axis_x_tick_text_show: true, + /** + * Set the first/last axis tick text to be positioned inside of the chart on non-rotated axis. + * @name axis․x․tick․text․inner + * @memberof Options + * @type {boolean|object} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickInner) + * @example + * axis: { + * x: { + * tick: { + * text: { + * inner: true, + * + * // or specify each position of the first and last tick text + * inner: { + * first: true, + * last: true + * } + * } + * } + * } + * } + */ + axis_x_tick_text_inner: false, + /** + * Set the x Axis tick text's position relatively its original position + * @name axis․x․tick․text․position + * @memberof Options + * @type {object} + * @default {x: 0, y:0} + * @example + * axis: { + * x: { + * tick: { + * text: { + * position: { + * x: 10, + * y: 10 + * } + * } + * } + * } + * } + */ + axis_x_tick_text_position: { x: 0, y: 0 }, + /** + * Fit x axis ticks. + * - **true**: ticks will be shown according to x value of the data points. + * - **false**: ticks will be shown as to have same intervals. + * @name axis․x․tick․fit + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickFitting) + * @see [Demo: for timeseries zoom](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickTimeseries) + * @example + * axis: { + * x: { + * tick: { + * fit: false + * } + * } + * } + */ + axis_x_tick_fit: true, + /** + * Set the x values of ticks manually.<br><br> + * If this option is provided, the position of the ticks will be determined based on those values.<br> + * This option works with `timeseries` data and the x values will be parsed accoding to the type of the value and data.xFormat option. + * @name axis․x․tick․values + * @memberof Options + * @type {Array|Function} + * @default null + * @example + * axis: { + * x: { + * tick: { + * values: [1, 2, 4, 8, 16, 32, ...], + * + * // an Array value should be returned + * values: function() { + * return [ ... ]; + * } + * } + * } + * } + */ + axis_x_tick_values: null, + /** + * Rotate x axis tick text if there is not enough space for 'category' and 'timeseries' type axis. + * - **NOTE:** The conditions where `autorotate` is enabled are: + * - axis.x.type='category' or 'timeseries + * - axis.x.tick.multiline=false + * - axis.x.tick.culling=false + * - axis.x.tick.fit=true + * - **NOTE:** axis.x.tick.clippath=false is necessary for calculating the overflow padding between the end of x axis and the width of the SVG + * @name axis․x․tick․autorotate + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickAutorotate) + * @example + * axis: { + * x: { + * tick: { + * rotate: 15, + * autorotate: true, + * multiline: false, + * culling: false, + * fit: true + * }, + * clipPath: false + * } + * } + */ + axis_x_tick_autorotate: false, + /** + * Rotate x axis tick text. + * - If you set negative value, it will rotate to opposite direction. + * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `false`. + * - As long as `axis_x_tick_fit` is set to `true` it will calculate an overflow for the y2 axis and add this value to the right padding. + * @name axis․x․tick․rotate + * @memberof Options + * @type {number} + * @default 0 + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.RotateXAxisTickText) + * @example + * axis: { + * x: { + * tick: { + * rotate: 60 + * } + * } + * } + */ + axis_x_tick_rotate: 0, + /** + * Show x axis outer tick. + * @name axis․x․tick․outer + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * tick: { + * outer: false + * } + * } + * } + */ + axis_x_tick_outer: true, + /** + * Set tick text to be multiline + * - **NOTE:** + * > When x tick text contains `\n`, it's used as line break and 'axis.x.tick.width' option is ignored. + * @name axis․x․tick․multiline + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickMultiline) + * @example + * axis: { + * x: { + * tick: { + * multiline: false + * } + * } + * } + * @example + * // example of line break with '\n' + * // In this case, 'axis.x.tick.width' is ignored + * data: { + * x: "x", + * columns: [ + * ["x", "long\ntext", "Another\nLong\nText"], + * ... + * ], + * } + */ + axis_x_tick_multiline: true, + /** + * Set tick width + * - **NOTE:** + * > When x tick text contains `\n`, this option is ignored. + * @name axis․x․tick․width + * @memberof Options + * @type {number} + * @default null + * @example + * axis: { + * x: { + * tick: { + * width: 50 + * } + * } + * } + */ + axis_x_tick_width: null, + /** + * Set to display system tooltip(via `<title>` element) for tick text + * - **NOTE:** Only available for category axis type (`axis.x.type='category'`) + * @name axis․x․tick․tooltip + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * x: { + * tick: { + * tooltip: true + * } + * } + * } + */ + axis_x_tick_tooltip: false, + /** + * Set max value of x axis range. + * @name axis․x․max + * @memberof Options + * @property {number} max Set the max value + * @property {boolean} [max.fit=false] When specified `max.value` is greater than the bound data value, setting `true` will make x axis max to be fitted to the bound data max value. + * - **NOTE:** If the bound data max value is greater than the `max.value`, the x axis max will be limited as the given `max.value`. + * @property {number} [max.value] Set the max value + * @example + * axis: { + * x: { + * max: 100, + * + * max: { + * // 'fit=true' will make x axis max to be limited as the bound data value max when 'max.value' is greater. + * // - when bound data max is '10' and max.value: '100' ==> x axis max will be '10' + * // - when bound data max is '1000' and max.value: '100' ==> x axis max will be '100' + * fit: true, + * value: 100 + * } + * } + * } + */ + axis_x_max: undefined, + /** + * Set min value of x axis range. + * @name axis․x․min + * @memberof Options + * @property {number} min Set the min value + * @property {boolean} [min.fit=false] When specified `min.value` is lower than the bound data value, setting `true` will make x axis min to be fitted to the bound data min value. + * - **NOTE:** If the bound data min value is lower than the `min.value`, the x axis min will be limited as the given `min.value`. + * @property {number} [min.value] Set the min value + * @example + * axis: { + * x: { + * min: -100, + * + * min: { + * // 'fit=true' will make x axis min to be limited as the bound data value min when 'min.value' is lower. + * // - when bound data min is '-10' and min.value: '-100' ==> x axis min will be '-10' + * // - when bound data min is '-1000' and min.value: '-100' ==> x axis min will be '-100' + * fit: true, + * value: -100 + * } + * } + * } + */ + axis_x_min: undefined, + /** + * Change the direction of x axis.<br><br> + * If true set, the direction will be `right -> left`. + * @name axis․x․inverted + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis) + * @example + * axis: { + * x: { + * inverted: true + * } + * } + */ + axis_x_inverted: false, + /** + * Set padding for x axis.<br><br> + * If this option is set, the range of x axis will increase/decrease according to the values. + * If no padding is needed in the rage of x axis, 0 should be set. + * By default, left/right padding are set depending on x axis type or chart types. + * - **NOTE:** + * - The meaning of padding values, differs according axis types:<br> + * - **category/indexed:** The unit of tick value + * ex. the given value `1`, is same as the width of 1 tick width + * - **timeseries:** Numeric time value + * ex. the given value `1000*60*60*24`, which is numeric time equivalent of a day, is same as the width of 1 tick width + * - If want values to be treated as pixels, specify `unit:"px"`. + * - The pixel value will be convered based on the scale values. Hence can not reflect accurate padding result. + * @name axis․x․padding + * @memberof Options + * @type {object|number} + * @default {} + * @example + * axis: { + * x: { + * padding: { + * // when axis type is 'category' + * left: 1, // set left padding width of equivalent value of a tick's width + * right: 0.5 // set right padding width as half of equivalent value of tick's width + * + * // when axis type is 'timeseries' + * left: 1000*60*60*24, // set left padding width of equivalent value of a day tick's width + * right: 1000*60*60*12 // set right padding width as half of equivalent value of a day tick's width + * }, + * + * // or set both values at once. + * padding: 10, + * + * // or set padding values as pixel unit. + * padding: { + * left: 100, + * right: 50, + * unit: "px" + * }, + * } + * } + */ + axis_x_padding: {}, + /** + * Set height of x axis.<br><br> + * The height of x axis can be set manually by this option. If you need more space for x axis, please use this option for that. The unit is pixel. + * @name axis․x․height + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * x: { + * height: 20 + * } + * } + */ + axis_x_height: undefined, + /** + * Set default extent for subchart and zoom. This can be an array or function that returns an array. + * @name axis․x․extent + * @memberof Options + * @type {Array|Function} + * @default undefined + * @example + * axis: { + * x: { + * // extent range as a pixel value + * extent: [0, 200], + * + * // when axis is 'timeseries', parsable datetime string + * extent: ["2019-03-01", "2019-03-05"], + * + * // return extent value + * extent: function(domain, scale) { + * var extent = domain.map(function(v) { + * return scale(v); + * }); + * + * // it should return a format of array + * // ex) [0, 584] + * return extent; + * } + * } + * } + */ + axis_x_extent: undefined, + /** + * Set label on x axis.<br><br> + * You can set x axis label and change its position by this option. + * `string` and `object` can be passed and we can change the poisiton by passing object that has position key.<br> + * Available position differs according to the axis direction (vertical or horizontal). + * If string set, the position will be the default. + * + * - **If it's horizontal axis:** + * - inner-right [default] + * - inner-center + * - inner-left + * - outer-right + * - outer-center + * - outer-left + * - **If it's vertical axis:** + * - inner-top [default] + * - inner-middle + * - inner-bottom + * - outer-top + * - outer-middle + * - outer-bottom + * @name axis․x․label + * @memberof Options + * @type {string|object} + * @default undefined + * @example + * axis: { + * x: { + * label: "Your X Axis" + * } + * } + * + * axis: { + * x: { + * label: { + * text: "Your X Axis", + * position: "outer-center" + * } + * } + * } + */ + axis_x_label: {}, + /** + * Set additional axes for x Axis. + * - **NOTE:** Axis' scale is based on x Axis value if domain option isn't set. + * + * Each axis object should consist with following options: + * + * | Name | Type | Default | Description | + * | --- | --- | --- | --- | + * | domain | Array | - | Set the domain value | + * | tick.outer | boolean | true | Show outer tick | + * | tick.format | Function | - | Set formatter for tick text | + * | tick.count | Number | - | Set the number of y axis ticks | + * | tick.values | Array | - | Set tick values manually | + * @name axis․x․axes + * @memberof Options + * @type {Array} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes) + * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain) + * @example + * x: { + * axes: [ + * { + * // if set, will not be correlated with the main x Axis domain value + * domain: [0, 1000], + * tick: { + * outer: false, + * format: function(x) { + * return x + "%"; + * }, + * count: 2, + * values: [10, 20, 30] + * } + * }, + * ... + * ] + * } + */ + axis_x_axes: [] +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * y Axis config options + */ +var y = { + /** + * Set clip-path attribute for y axis element + * - **NOTE**: `clip-path` attribute for y Axis is set only when `axis.y.inner` option is true. + * @name axis․y․clipPath + * @memberof Options + * @type {boolean} + * @default true + * @example + * // don't set 'clip-path' attribute + * clipPath: false + */ + axis_y_clipPath: true, + /** + * Show or hide y axis. + * @name axis․y․show + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y: { + * show: false + * } + * } + */ + axis_y_show: true, + /** + * Set type of y axis.<br><br> + * **Available Values:** + * - indexed + * - log + * - timeseries + * + * **NOTE:**<br> + * - **log** type: + * - the bound data values must be exclusively-positive. + * - y axis min value should be >= 0. + * - [`data.groups`](#.data%25E2%2580%25A4groups)(stacked data) option aren't supported. + * + * @name axis․y․type + * @memberof Options + * @type {string} + * @default "indexed" + * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales) + * @example + * axis: { + * y: { + * type: "log" + * } + * } + */ + axis_y_type: "indexed", + /** + * Set max value of y axis. + * - **NOTE:** Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0). + * @name axis․y․max + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * max: 1000 + * } + * } + */ + axis_y_max: undefined, + /** + * Set min value of y axis. + * - **NOTE:** + * Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0). + * @name axis․y․min + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * min: 1000 + * } + * } + */ + axis_y_min: undefined, + /** + * Change the direction of y axis.<br><br> + * If true set, the direction will be `top -> bottom`. + * @name axis․y․inverted + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis) + * @example + * axis: { + * y: { + * inverted: true + * } + * } + */ + axis_y_inverted: false, + /** + * Set center value of y axis. + * @name axis․y․center + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * center: 0 + * } + * } + */ + axis_y_center: undefined, + /** + * Show y axis inside of the chart. + * @name axis․y․inner + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y: { + * inner: true + * } + * } + */ + axis_y_inner: false, + /** + * Set label on y axis.<br><br> + * You can set y axis label and change its position by this option. This option works in the same way as [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label). + * @name axis․y․label + * @memberof Options + * @type {string|object} + * @default {} + * @see [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label) for position string value. + * @example + * axis: { + * y: { + * label: "Your Y Axis" + * } + * } + * + * axis: { + * y: { + * label: { + * text: "Your Y Axis", + * position: "outer-middle" + * } + * } + * } + */ + axis_y_label: {}, + /** + * Set formatter for y axis tick text.<br><br> + * This option accepts d3.format object as well as a function you define. + * @name axis․y․tick․format + * @memberof Options + * @type {Function} + * @default undefined + * @example + * axis: { + * y: { + * tick: { + * format: function(x) { + * return x.getFullYear(); + * } + * } + * } + * } + */ + axis_y_tick_format: undefined, + /** + * Setting for culling ticks. + * - `true`: the ticks will be culled, then only limited tick text will be shown.<br> + * This option does not hide the tick lines by default, if want to hide tick lines, set `axis.y.tick.culling.lines=false`. + * - `false`: all of ticks will be shown.<br><br> + * The number of ticks to be shown can be chaned by `axis.y.tick.culling.max`. + * @name axis․y․tick․culling + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y: { + * tick: { + * culling: false + * } + * } + * } + */ + axis_y_tick_culling: false, + /** + * The number of tick texts will be adjusted to less than this value. + * @name axis․y․tick․culling․max + * @memberof Options + * @type {number} + * @default 5 + * @example + * axis: { + * y: { + * tick: { + * culling: { + * max: 5 + * } + * } + * } + * } + */ + axis_y_tick_culling_max: 5, + /** + * Control visibility of tick lines within culling option, along with tick text. + * @name axis․y․tick․culling․lines + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y: { + * tick: { + * culling: { + * lines: false, + * } + * } + * } + * } + */ + axis_y_tick_culling_lines: true, + /** + * Show y axis outer tick. + * @name axis․y․tick․outer + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y: { + * tick: { + * outer: false + * } + * } + * } + */ + axis_y_tick_outer: true, + /** + * Set y axis tick values manually. + * @name axis․y․tick․values + * @memberof Options + * @type {Array|Function} + * @default null + * @example + * axis: { + * y: { + * tick: { + * values: [100, 1000, 10000], + * + * // an Array value should be returned + * values: function() { + * return [ ... ]; + * } + * } + * } + * } + */ + axis_y_tick_values: null, + /** + * Rotate y axis tick text. + * - If you set negative value, it will rotate to opposite direction. + * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `true`. + * @name axis․y․tick․rotate + * @memberof Options + * @type {number} + * @default 0 + * @example + * axis: { + * y: { + * tick: { + * rotate: 60 + * } + * } + * } + */ + axis_y_tick_rotate: 0, + /** + * Set the number of y axis ticks.<br><br> + * - **NOTE:** The position of the ticks will be calculated precisely, so the values on the ticks will not be rounded nicely. In the case, axis.y.tick.format or axis.y.tick.values will be helpful. + * @name axis․y․tick․count + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * tick: { + * count: 5 + * } + * } + * } + */ + axis_y_tick_count: undefined, + /** + * Show or hide y axis tick line. + * @name axis․y․tick․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y: { + * tick: { + * show: false + * } + * } + * } + */ + axis_y_tick_show: true, + /** + * Set axis tick step(interval) size. + * - **NOTE:** Will be ignored if `axis.y.tick.count` or `axis.y.tick.values` options are set. + * @name axis․y․tick․stepSize + * @memberof Options + * @type {number} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.StepSizeForYAxis) + * @example + * axis: { + * y: { + * tick: { + * // tick value will step as indicated interval value. + * // ex) 'stepSize=15' ==> [0, 15, 30, 45, 60] + * stepSize: 15 + * } + * } + * } + */ + axis_y_tick_stepSize: null, + /** + * Show or hide y axis tick text. + * @name axis․y․tick․text․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y: { + * tick: { + * text: { + * show: false + * } + * } + * } + * } + */ + axis_y_tick_text_show: true, + /** + * Set the y Axis tick text's position relatively its original position + * @name axis․y․tick․text․position + * @memberof Options + * @type {object} + * @default {x: 0, y:0} + * @example + * axis: { + * y: { + * tick: { + * text: { + * position: { + * x: 10, + * y: 10 + * } + * } + * } + * } + * } + */ + axis_y_tick_text_position: { x: 0, y: 0 }, + /** + * Set the number of y axis ticks.<br><br> + * - **NOTE:** The position of the ticks will be calculated precisely, so the values on the ticks will not be rounded nicely. In the case, axis.y.tick.format or axis.y.tick.values will be helpful. + * @name axis․y․tick․time + * @memberof Options + * @private + * @type {object} + * @property {object} time time object + * @property {Function} [time.value] D3's time interval function (https://github.com/d3/d3-time#intervals) + * @example + * axis: { + * y: { + * tick: { + * time: { + * // ticks at 15-minute intervals + * // https://github.com/d3/d3-scale/blob/master/README.md#time_ticks + * value: d3.timeMinute.every(15) + * } + * } + * } + * } + */ + // @TODO: not fully implemented yet + axis_y_tick_time_value: undefined, + /** + * Set padding for y axis.<br><br> + * You can set padding for y axis to create more space on the edge of the axis. + * This option accepts object and it can include top and bottom. top, bottom will be treated as pixels. + * + * - **NOTE:** + * - Given values are translated relative to the y Axis domain value for padding + * - For area and bar type charts, [area.zerobased](#.area) or [bar.zerobased](#.bar) options should be set to 'false` to get padded bottom. + * @name axis․y․padding + * @memberof Options + * @type {object|number} + * @default {} + * @example + * axis: { + * y: { + * padding: { + * top: 0, + * bottom: 0 + * }, + * + * // or set both values at once. + * padding: 10 + * } + * } + */ + axis_y_padding: {}, + /** + * Set default range of y axis.<br><br> + * This option set the default value for y axis when there is no data on init. + * @name axis․y․default + * @memberof Options + * @type {Array} + * @default undefined + * @example + * axis: { + * y: { + * default: [0, 1000] + * } + * } + */ + axis_y_default: undefined, + /** + * Set additional axes for y Axis. + * - **NOTE:** Axis' scale is based on y Axis value if domain option isn't set. + * + * Each axis object should consist with following options: + * + * | Name | Type | Default | Description | + * | --- | --- | --- | --- | + * | domain | Array | - | Set the domain value | + * | tick.outer | boolean | true | Show outer tick | + * | tick.format | Function | - | Set formatter for tick text | + * | tick.count | Number | - | Set the number of y axis ticks | + * | tick.values | Array | - | Set tick values manually | + * @name axis․y․axes + * @memberof Options + * @type {Array} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes) + * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain) + * @example + * y: { + * axes: [ + * { + * // if set, will not be correlated with the main y Axis domain value + * domain: [0, 1000], + * tick: { + * outer: false, + * format: function(x) { + * return x + "%"; + * }, + * count: 2, + * values: [10, 20, 30] + * } + * }, + * ... + * ] + * } + */ + axis_y_axes: [] +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * y2 Axis config options + */ +var y2 = { + /** + * Show or hide y2 axis. + * - **NOTE**: + * - When set to `false` will not generate y2 axis node. In this case, all 'y2' axis related functionality won't work properly. + * - If need to use 'y2' related options while y2 isn't visible, set the value `true` and control visibility by css display property. + * @name axis․y2․show + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y2: { + * show: true + * } + * } + */ + axis_y2_show: false, + /** + * Set type of y2 axis.<br><br> + * **Available Values:** + * - indexed + * - log + * - timeseries + * + * **NOTE:**<br> + * - **log** type: + * - the bound data values must be exclusively-positive. + * - y2 axis min value should be >= 0. + * - [`data.groups`](#.data%25E2%2580%25A4groups)(stacked data) option aren't supported. + * + * @name axis․y2․type + * @memberof Options + * @type {string} + * @default "indexed" + * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales) + * @example + * axis: { + * y2: { + * type: "indexed" + * } + * } + */ + axis_y2_type: "indexed", + /** + * Set max value of y2 axis. + * @name axis․y2․max + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * max: 1000 + * } + * } + */ + axis_y2_max: undefined, + /** + * Set min value of y2 axis. + * @name axis․y2․min + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * min: -1000 + * } + * } + */ + axis_y2_min: undefined, + /** + * Change the direction of y2 axis.<br><br> + * If true set, the direction will be `top -> bottom`. + * @name axis․y2․inverted + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis) + * @example + * axis: { + * y2: { + * inverted: true + * } + * } + */ + axis_y2_inverted: false, + /** + * Set center value of y2 axis. + * @name axis․y2․center + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * center: 0 + * } + * } + */ + axis_y2_center: undefined, + /** + * Show y2 axis inside of the chart. + * @name axis․y2․inner + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y2: { + * inner: true + * } + * } + */ + axis_y2_inner: false, + /** + * Set label on y2 axis.<br><br> + * You can set y2 axis label and change its position by this option. This option works in the same way as [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label). + * @name axis․y2․label + * @memberof Options + * @type {string|object} + * @default {} + * @see [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label) for position string value. + * @example + * axis: { + * y2: { + * label: "Your Y2 Axis" + * } + * } + * + * axis: { + * y2: { + * label: { + * text: "Your Y2 Axis", + * position: "outer-middle" + * } + * } + * } + */ + axis_y2_label: {}, + /** + * Set formatter for y2 axis tick text.<br><br> + * This option works in the same way as axis.y.format. + * @name axis․y2․tick․format + * @memberof Options + * @type {Function} + * @default undefined + * @example + * axis: { + * y2: { + * tick: { + * format: d3.format("$,") + * //or format: function(d) { return "$" + d; } + * } + * } + * } + */ + axis_y2_tick_format: undefined, + /** + * Setting for culling ticks. + * - `true`: the ticks will be culled, then only limited tick text will be shown.<br> + * This option does not hide the tick lines by default, if want to hide tick lines, set `axis.y2.tick.culling.lines=false`. + * - `false`: all of ticks will be shown.<br><br> + * The number of ticks to be shown can be chaned by `axis.y2.tick.culling.max`. + * @name axis․y2․tick․culling + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y2: { + * tick: { + * culling: false + * } + * } + * } + */ + axis_y2_tick_culling: false, + /** + * The number of tick texts will be adjusted to less than this value. + * @name axis․y2․tick․culling․max + * @memberof Options + * @type {number} + * @default 5 + * @example + * axis: { + * y2: { + * tick: { + * culling: { + * max: 5 + * } + * } + * } + * } + */ + axis_y2_tick_culling_max: 5, + /** + * Control visibility of tick lines within culling option, along with tick text. + * @name axis․y2․tick․culling․lines + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y2: { + * tick: { + * culling: { + * lines: false, + * } + * } + * } + * } + */ + axis_y2_tick_culling_lines: true, + /** + * Show or hide y2 axis outer tick. + * @name axis․y2․tick․outer + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y2: { + * tick: { + * outer: false + * } + * } + * } + */ + axis_y2_tick_outer: true, + /** + * Set y2 axis tick values manually. + * @name axis․y2․tick․values + * @memberof Options + * @type {Array|Function} + * @default null + * @example + * axis: { + * y2: { + * tick: { + * values: [100, 1000, 10000], + * + * // an Array value should be returned + * values: function() { + * return [ ... ]; + * } + * } + * } + * } + */ + axis_y2_tick_values: null, + /** + * Rotate y2 axis tick text. + * - If you set negative value, it will rotate to opposite direction. + * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `true`. + * @name axis․y2․tick․rotate + * @memberof Options + * @type {number} + * @default 0 + * @example + * axis: { + * y2: { + * tick: { + * rotate: 60 + * } + * } + * } + */ + axis_y2_tick_rotate: 0, + /** + * Set the number of y2 axis ticks. + * - **NOTE:** This works in the same way as axis.y.tick.count. + * @name axis․y2․tick․count + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * tick: { + * count: 5 + * } + * } + * } + */ + axis_y2_tick_count: undefined, + /** + * Show or hide y2 axis tick line. + * @name axis․y2․tick․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y2: { + * tick: { + * show: false + * } + * } + * } + */ + axis_y2_tick_show: true, + /** + * Set axis tick step(interval) size. + * - **NOTE:** Will be ignored if `axis.y2.tick.count` or `axis.y2.tick.values` options are set. + * @name axis․y2․tick․stepSize + * @memberof Options + * @type {number} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.StepSizeForYAxis) + * @example + * axis: { + * y2: { + * tick: { + * // tick value will step as indicated interval value. + * // ex) 'stepSize=15' ==> [0, 15, 30, 45, 60] + * stepSize: 15 + * } + * } + * } + */ + axis_y2_tick_stepSize: null, + /** + * Show or hide y2 axis tick text. + * @name axis․y2․tick․text․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y2: { + * tick: { + * text: { + * show: false + * } + * } + * } + * } + */ + axis_y2_tick_text_show: true, + /** + * Set the y2 Axis tick text's position relatively its original position + * @name axis․y2․tick․text․position + * @memberof Options + * @type {object} + * @default {x: 0, y:0} + * @example + * axis: { + * y2: { + * tick: { + * text: { + * position: { + * x: 10, + * y: 10 + * } + * } + * } + * } + * } + */ + axis_y2_tick_text_position: { x: 0, y: 0 }, + /** + * Set padding for y2 axis.<br><br> + * You can set padding for y2 axis to create more space on the edge of the axis. + * This option accepts object and it can include top and bottom. top, bottom will be treated as pixels. + * + * - **NOTE:** + * - Given values are translated relative to the y2 Axis domain value for padding + * - For area and bar type charts, [area.zerobased](#.area) or [bar.zerobased](#.bar) options should be set to 'false` to get padded bottom. + * @name axis․y2․padding + * @memberof Options + * @type {object|number} + * @default {} + * @example + * axis: { + * y2: { + * padding: { + * top: 100, + * bottom: 100 + * } + * + * // or set both values at once. + * padding: 10 + * } + */ + axis_y2_padding: {}, + /** + * Set default range of y2 axis.<br><br> + * This option set the default value for y2 axis when there is no data on init. + * @name axis․y2․default + * @memberof Options + * @type {Array} + * @default undefined + * @example + * axis: { + * y2: { + * default: [0, 1000] + * } + * } + */ + axis_y2_default: undefined, + /** + * Set additional axes for y2 Axis. + * - **NOTE:** Axis' scale is based on y2 Axis value if domain option isn't set. + * + * Each axis object should consist with following options: + * + * | Name | Type | Default | Description | + * | --- | --- | --- | --- | + * | domain | Array | - | Set the domain value | + * | tick.outer | boolean | true | Show outer tick | + * | tick.format | Function | - | Set formatter for tick text | + * | tick.count | Number | - | Set the number of y axis ticks | + * | tick.values | Array | - | Set tick values manually | + * @name axis․y2․axes + * @memberof Options + * @type {Array} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes) + * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain) + * @example + * y2: { + * axes: [ + * { + * // if set, will not be correlated with the main y2 Axis domain value + * domain: [0, 1000], + * tick: { + * outer: false, + * format: function(x) { + * return x + "%"; + * }, + * count: 2, + * values: [10, 20, 30] + * } + * }, + * ... + * ] + * } + */ + axis_y2_axes: [] +}; + +/** + * y Axis config options + */ +var optAxis = __assign(__assign(__assign({ + /** + * Switch x and y axis position. + * @name axis․rotated + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * rotated: true + * } + */ + axis_rotated: false, + /** + * Set axis tooltip. + * - **NOTE:** + * - When enabled, will disable default focus grid line. + * - For `timeseries` x Axis, tootlip will be formatted using x Axis' tick format. + * - For `category` x Axis, tootlip will be displaying scales' value text. + * @name axis․tooltip + * @memberof Options + * @type {boolean} + * @default false + * @property {object} axis Axis object + * @property {boolean} [axis.tooltip=false] Show tooltip or not. + * @property {string|object} [axis.tooltip.backgroundColor] Set axis tooltip text background colors. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.AxisTooltip) + * @example + * axis: { + * tooltip: true, // default background color is + * + * // set backgound color for axis tooltip texts + * tooltip: { + * backgroundColor: "red", + * + * // set differenct backround colors per axes + * // NOTE: In this case, only specified axes tooltip will appear. + * backgroundColor: { + * x: "green", + * y: "yellow", + * y2: "red" + * } + * } + * } + */ + axis_tooltip: false }, x), y), y2); + +var optGrid = { + /** + * Set related options + * @name grid + * @memberof Options + * @type {object} + * @property {boolean} [front=false] Set 'grid & focus lines' to be positioned over grid lines and chart elements. + * @property {object} x Grid x object + * @property {boolean} [x.show=false] Show grids along x axis. + * @property {Array} [x.lines=[]] Show additional grid lines along x axis.<br> + * This option accepts array including object that has value, text, position and class. text, position and class are optional. For position, start, middle and end (default) are available. + * If x axis is category axis, value can be category name. If x axis is timeseries axis, value can be date string, Date object and unixtime integer. + * @property {object} y Grid y object + * @property {boolean} [y.show=false] Show grids along x axis. + * @property {Array} [y.lines=[]] Show additional grid lines along y axis.<br> + * This option accepts array including object that has value, text, position and class. + * @property {number} [y.ticks=undefined] Number of y grids to be shown. + * @property {object} focus Grid focus object + * @property {boolean} [focus.edge=false] Show edged focus grid line.<br>**NOTE:** Available when [`tooltip.grouped=false`](#.tooltip) option is set. + * @property {boolean} [focus.show=true] Show grid line when focus. + * @property {boolean} [focus.y=false] Show y coordinate focus grid line.<br>**NOTE:** Available when [`tooltip.grouped=false`](#.tooltip) option is set. + * @property {object} lines Grid lines object + * @property {boolean} [lines.front=true] Set grid lines to be positioned over chart elements. + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Grid.GridLines) + * @see [Demo: X Grid Lines](https://naver.github.io/billboard.js/demo/#Grid.OptionalXGridLines) + * @see [Demo: Y Grid Lines](https://naver.github.io/billboard.js/demo/#Grid.OptionalYGridLines) + * @example + * grid: { + * x: { + * show: true, + * lines: [ + * {value: 2, text: "Label on 2"}, + * {value: 5, text: "Label on 5", class: "label-5"}, + * {value: 6, text: "Label on 6", position: "start"} + * ] + * }, + * y: { + * show: true, + * lines: [ + * {value: 100, text: "Label on 100"}, + * {value: 200, text: "Label on 200", class: "label-200"}, + * {value: 300, text: "Label on 300", position: 'middle'} + * ], + * ticks: 5 + * }, + * front: true, + * focus: { + * show: false, + * + * // Below options are available when 'tooltip.grouped=false' option is set + * edge: true, + * y: true + * }, + * lines: { + * front: false + * } + * } + */ + grid_x_show: false, + grid_x_type: "tick", + grid_x_lines: [], + grid_y_show: false, + grid_y_lines: [], + grid_y_ticks: undefined, + grid_focus_edge: false, + grid_focus_show: true, + grid_focus_y: false, + grid_front: false, + grid_lines_front: true +}; + +/** + * Axis based chart data config options + */ +var optDataAxis = { + /** + * Specify the keys of the x values for each data.<br><br> + * This option can be used if we want to show the data that has different x values. + * @name data․xs + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * xs: { + * data1: "x1", + * data2: "x2" + * } + * } + */ + data_xs: {}, + /** + * Set a format specifier to parse string specifed as x. + * @name data․xFormat + * @memberof Options + * @type {string} + * @default %Y-%m-%d + * @example + * data: { + * x: "x", + * columns: [ + * ["x", "01012019", "02012019", "03012019"], + * ["data1", 30, 200, 100] + * ], + * // Format specifier to parse as datetime for given 'x' string value + * xFormat: "%m%d%Y" + * }, + * axis: { + * x: { + * type: "timeseries" + * } + * } + * @see [D3's time specifier](https://d3js.org/d3-time-format#locale_format) + */ + data_xFormat: "%Y-%m-%d", + /** + * Set localtime format to parse x axis. + * @name data․xLocaltime + * @memberof Options + * @type {boolean} + * @default true + * @example + * data: { + * xLocaltime: false + * } + */ + data_xLocaltime: true, + /** + * Sort on x axis. + * - **NOTE:** This option works for lineish(area/line/spline/step) types only. + * @name data․xSort + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataXSort) + * @example + * data: { + * xSort: false, + * x: "x", + * columns: [ + * // The line graph will start to be drawn following the x axis sequence + * // Below data, wil start drawing x=1: 200, x=2: 300, x=3: 100 + * ["x", 3, 1, 2], + * ["data1", 100, 200, 300] + * ] + * } + */ + data_xSort: true, + /** + * Set y axis the data related to. y and y2 can be used. + * - **NOTE:** If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data + * @name data․axes + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * axes: { + * data1: "y", + * data2: "y2" + * } + * } + */ + data_axes: {}, + /** + * Define regions for each data.<br> + * The values must be an array for each data and it should include an object that has `start`, `end` and `style`. + * - The object type should be as: + * - start {number}: Start data point number. If not set, the start will be the first data point. + * - [end] {number}: End data point number. If not set, the end will be the last data point. + * - [style.dasharray="2 2"] {object}: The first number specifies a distance for the filled area, and the second a distance for the unfilled area. + * - **NOTE:** Currently this option supports only line chart and dashed style. If this option specified, the line will be dashed only in the regions. + * @name data․regions + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * regions: { + * data1: [{ + * start: 1, + * end: 2, + * style: { + * dasharray: "5 2" + * } + * }, { + * start: 3 + * }], + * ... + * } + * } + */ + data_regions: {}, + /** + * Set the stacking to be normalized + * - **NOTE:** + * - For stacking, '[data.groups](#.data%25E2%2580%25A4groups)' option should be set + * - y Axis will be set in percentage value (0 ~ 100%) + * - Must have postive values + * @name data․stack․normalize + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataStackNormalized) + * @example + * data: { + * stack: { + * normalize: true + * } + * } + */ + data_stack_normalize: false +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Modules exports for Axis based chart + */ +// Chart +var api = [ + apiAxis, + apiCategory, + apiFlow, + apiGrid, + apiGroup, + apiRegion, + apiX +]; +var internal = { + axis: axis, + clip: clip, + eventrect: eventrect, + flow: flow, + grid: grid, + region: region, + sizeAxis: sizeAxis +}; +var options = { + optDataAxis: optDataAxis, + optAxis: optAxis, + optGrid: optGrid +}; + +/** + * Get radius functions + * @param {number} expandRate Expand rate number. + * - If 0, means for "normal" radius. + * - If > 0, means for "expanded" radius. + * @returns {object} radius functions + * @private + */ +function getRadiusFn(expandRate) { + if (expandRate === void 0) { expandRate = 0; } + var $$ = this; + var config = $$.config, state = $$.state; + var hasMultiArcGauge = $$.hasMultiArcGauge(); + var singleArcWidth = state.gaugeArcWidth / $$.filterTargetsToShow($$.data.targets).length; + var expandWidth = expandRate ? + (Math.min(state.radiusExpanded * expandRate - state.radius, singleArcWidth * 0.8 - (1 - expandRate) * 100)) : + 0; + return { + /** + * Getter of arc innerRadius value + * @param {IArcData} d Data object + * @returns {number} innerRadius value + * @private + */ + inner: function (d) { + var innerRadius = $$.getRadius(d).innerRadius; + return hasMultiArcGauge ? + state.radius - singleArcWidth * (d.index + 1) : + isNumber(innerRadius) ? + innerRadius : + 0; + }, + /** + * Getter of arc outerRadius value + * @param {IArcData} d Data object + * @returns {number} outerRadius value + * @private + */ + outer: function (d) { + var outerRadius = $$.getRadius(d).outerRadius; + var radius; + if (hasMultiArcGauge) { + radius = state.radius - singleArcWidth * d.index + expandWidth; + } + else if ($$.hasType("polar") && !expandRate) { + radius = $$.getPolarOuterRadius(d, outerRadius); + } + else { + radius = outerRadius; + if (expandRate) { + var radiusExpanded = state.radiusExpanded; + if (state.radius !== outerRadius) { + radiusExpanded -= Math.abs(state.radius - outerRadius); + } + radius = radiusExpanded * expandRate; + } + } + return radius; + }, + /** + * Getter of arc cornerRadius value + * @param {IArcData} d Data object + * @param {number} outerRadius outer radius value + * @returns {number} cornerRadius value + * @private + */ + corner: function (d, outerRadius) { + var _a = config.arc_cornerRadius_ratio, ratio = _a === void 0 ? 0 : _a, _b = config.arc_cornerRadius, cornerRadius = _b === void 0 ? 0 : _b; + var id = d.data.id, value = d.value; + var corner = 0; + if (ratio) { + corner = ratio * outerRadius; + } + else { + corner = isNumber(cornerRadius) ? + cornerRadius : + cornerRadius.call($$.api, id, value, outerRadius); + } + return corner; + } + }; +} +/** + * Get attrTween function to get interpolated value on transition + * @param {Function} fn Arc function to execute + * @returns {Function} attrTween function + * @private + */ +function getAttrTweenFn(fn) { + return function (d) { + var getAngleKeyValue = function (_a) { + var _b = _a.startAngle, startAngle = _b === void 0 ? 0 : _b, _c = _a.endAngle, endAngle = _c === void 0 ? 0 : _c, _d = _a.padAngle, padAngle = _d === void 0 ? 0 : _d; + return ({ + startAngle: startAngle, + endAngle: endAngle, + padAngle: padAngle + }); + }; + // d3.interpolate interpolates id value, if id is given as color string(ex. gold, silver, etc) + // to avoid unexpected behavior, interpolate only angle values + // https://github.com/naver/billboard.js/issues/3321 + var interpolate$1 = interpolate(getAngleKeyValue(this._current), getAngleKeyValue(d)); + this._current = d; + return function (t) { + var interpolated = interpolate$1(t); + var data = d.data, index = d.index, value = d.value; + return fn(__assign(__assign({}, interpolated), { data: data, index: index, value: value })); + }; + }; +} +var shapeArc = { + initPie: function () { + var $$ = this; + var config = $$.config; + var dataType = config.data_type; + var padding = config["".concat(dataType, "_padding")]; + var startingAngle = config["".concat(dataType, "_startingAngle")] || 0; + var padAngle = (padding ? padding * 0.01 : config["".concat(dataType, "_padAngle")]) || 0; + $$.pie = pie$1() + .startAngle(startingAngle) + .endAngle(startingAngle + (2 * Math.PI)) + .padAngle(padAngle) + .value(function (d) { var _a, _b; return (_b = (_a = d.values) === null || _a === void 0 ? void 0 : _a.reduce(function (a, b) { return a + b.value; }, 0)) !== null && _b !== void 0 ? _b : d; }) + .sort($$.getSortCompareFn.bind($$)(true)); + }, + updateRadius: function () { + var $$ = this; + var config = $$.config, state = $$.state; + var dataType = config.data_type; + var padding = config["".concat(dataType, "_padding")]; + var w = config.gauge_width || config.donut_width; + var gaugeArcWidth = $$.filterTargetsToShow($$.data.targets).length * + config.gauge_arcs_minWidth; + // determine radius + state.radiusExpanded = Math.min(state.arcWidth, state.arcHeight) / 2 * ($$.hasMultiArcGauge() && config.gauge_label_show ? 0.85 : 1); + state.radius = state.radiusExpanded * 0.95; + state.innerRadiusRatio = w ? (state.radius - w) / state.radius : 0.6; + state.gaugeArcWidth = w || (gaugeArcWidth <= state.radius - state.innerRadius ? + state.radius - state.innerRadius : + (gaugeArcWidth <= state.radius ? gaugeArcWidth : state.radius)); + var innerRadius = config.pie_innerRadius || (padding ? padding * (state.innerRadiusRatio + 0.1) : 0); + // NOTE: inner/outerRadius can be an object by user setting, only for 'pie' type + state.outerRadius = config.pie_outerRadius; + state.innerRadius = $$.hasType("donut") || $$.hasType("gauge") ? + state.radius * state.innerRadiusRatio : + innerRadius; + }, + /** + * Get pie's inner & outer radius value + * @param {object|undefined} d Data object + * @returns {object} + * @private + */ + getRadius: function (d) { + var $$ = this; + var data = d === null || d === void 0 ? void 0 : d.data; + var _a = $$.state, innerRadius = _a.innerRadius, outerRadius = _a.outerRadius; + if (!isNumber(innerRadius) && data) { + innerRadius = innerRadius[data.id] || 0; + } + if (isObject(outerRadius) && data && data.id in outerRadius) { + outerRadius = outerRadius[data.id]; + } + else if (!isNumber(outerRadius)) { + outerRadius = $$.state.radius; + } + return { innerRadius: innerRadius, outerRadius: outerRadius }; + }, + updateArc: function () { + var $$ = this; + $$.updateRadius(); + $$.svgArc = $$.getSvgArc(); + $$.svgArcExpanded = $$.getSvgArcExpanded(); + }, + getArcLength: function () { + var $$ = this; + var config = $$.config; + var arcLengthInPercent = config.gauge_arcLength * 3.6; + var len = 2 * (arcLengthInPercent / 360); + if (arcLengthInPercent < -360) { + len = -2; + } + else if (arcLengthInPercent > 360) { + len = 2; + } + return len * Math.PI; + }, + getStartingAngle: function () { + var $$ = this; + var config = $$.config; + var dataType = config.data_type; + var isFullCircle = $$.hasType("gauge") ? config.gauge_fullCircle : false; + var defaultStartAngle = -1 * Math.PI / 2; + var defaultEndAngle = Math.PI / 2; + var startAngle = config["".concat(dataType, "_startingAngle")] || 0; + if (!isFullCircle && startAngle <= defaultStartAngle) { + startAngle = defaultStartAngle; + } + else if (!isFullCircle && startAngle >= defaultEndAngle) { + startAngle = defaultEndAngle; + } + else if (startAngle > Math.PI || startAngle < -1 * Math.PI) { + startAngle = Math.PI; + } + return startAngle; + }, + /** + * Update angle data + * @param {object} dValue Data object + * @param {boolean} forRange Weather is for ranged text option(arc.rangeText.values) + * @returns {object|null} Updated angle data + * @private + */ + updateAngle: function (dValue, forRange) { + var _a; + if (forRange === void 0) { forRange = false; } + var $$ = this; + var config = $$.config, state = $$.state; + var hasGauge = forRange && $$.hasType("gauge"); + // to prevent excluding total data sum during the init(when data.hide option is used), use $$.rendered state value + // const totalSum = $$.getTotalDataSum(state.rendered); + var pie = $$.pie; + var d = dValue; + var found = false; + if (!config) { + return null; + } + var gStart = $$.getStartingAngle(); + var radius = config.gauge_fullCircle || (forRange && !hasGauge) ? + $$.getArcLength() : + gStart * -2; + if (d.data && $$.isGaugeType(d.data) && !$$.hasMultiArcGauge()) { + var gMin = config.gauge_min, gMax = config.gauge_max; + // to prevent excluding total data sum during the init(when data.hide option is used), use $$.rendered state value + var totalSum = $$.getTotalDataSum(state.rendered); + // https://github.com/naver/billboard.js/issues/2123 + var gEnd = radius * ((totalSum - gMin) / (gMax - gMin)); + pie = pie + .startAngle(gStart) + .endAngle(gEnd + gStart); + } + if (forRange === false) { + pie($$.filterTargetsToShow()) + .forEach(function (t, i) { + var _a; + if (!found && t.data.id === ((_a = d.data) === null || _a === void 0 ? void 0 : _a.id)) { + found = true; + d = t; + d.index = i; + } + }); + } + if (isNaN(d.startAngle)) { + d.startAngle = 0; + } + if (isNaN(d.endAngle)) { + d.endAngle = d.startAngle; + } + if (forRange || (d.data && (config.gauge_enforceMinMax || $$.hasMultiArcGauge()))) { + var gMin = config.gauge_min, gMax = config.gauge_max; + var max = forRange && !hasGauge ? $$.getTotalDataSum(state.rendered) : gMax; + var gTic = radius / (max - gMin); + var value = (_a = d.value) !== null && _a !== void 0 ? _a : 0; + var gValue = value < gMin ? 0 : value < max ? value - gMin : (max - gMin); + d.startAngle = gStart; + d.endAngle = gStart + gTic * gValue; + } + return found || forRange ? d : null; + }, + getSvgArc: function () { + var $$ = this; + var _a = getRadiusFn.call($$), inner = _a.inner, outer = _a.outer, corner = _a.corner; + var arc$1 = arc() + .innerRadius(inner) + .outerRadius(outer); + var newArc = function (d, withoutUpdate) { + var _a; + var path = "M 0 0"; + if (d.value || d.data) { + var data = withoutUpdate ? d : (_a = $$.updateAngle(d)) !== null && _a !== void 0 ? _a : null; + if (data) { + path = arc$1.cornerRadius(corner(data, outer(data)))(data); + } + } + return path; + }; + // TODO: extends all function + newArc.centroid = arc$1.centroid; + return newArc; + }, + /** + * Get expanded arc path function + * @param {number} rate Expand rate + * @returns {Function} Expanded arc path getter function + * @private + */ + getSvgArcExpanded: function (rate) { + if (rate === void 0) { rate = 1; } + var $$ = this; + var _a = getRadiusFn.call($$, rate), inner = _a.inner, outer = _a.outer, corner = _a.corner; + var arc$1 = arc() + .innerRadius(inner) + .outerRadius(outer); + return function (d) { + var updated = $$.updateAngle(d); + var outerR = outer(updated); + var cornerR = 0; + if (updated) { + cornerR = corner(updated, outerR); + } + return updated ? arc$1.cornerRadius(cornerR)(updated) : "M 0 0"; + }; + }, + getArc: function (d, withoutUpdate, force) { + return force || this.isArcType(d.data) ? this.svgArc(d, withoutUpdate) : "M 0 0"; + }, + /** + * Render range value text + * @private + */ + redrawArcRangeText: function () { + var $$ = this; + var config = $$.config, arcs = $$.$el.arcs, state = $$.state, $T = $$.$T; + var format = config.arc_rangeText_format; + var fixed = $$.hasType("gauge") && config.arc_rangeText_fixed; + var values = config.arc_rangeText_values; + if (values === null || values === void 0 ? void 0 : values.length) { + var isPercent_1 = config.arc_rangeText_unit === "%"; + var totalSum_1 = $$.getTotalDataSum(state.rendered); + if (isPercent_1) { + values = values.map(function (v) { return totalSum_1 / 100 * v; }); + } + var pieData_1 = $$.pie(values).map(function (d, i) { return ((d.index = i), d); }); + var rangeText = arcs.selectAll(".".concat($ARC.arcRange)) + .data(values); + rangeText.exit(); + rangeText = $T(rangeText.enter() + .append("text") + .attr("class", $ARC.arcRange) + .style("text-anchor", "middle") + .style("pointer-events", "none") + .style("opacity", "0") + .text(function (v) { + var range = isPercent_1 ? (v / totalSum_1 * 100) : v; + return isFunction(format) ? format(range) : ("".concat(range).concat(isPercent_1 ? "%" : "")); + }) + .merge(rangeText)); + if ((!state.rendered || (state.rendered && !fixed)) && totalSum_1 > 0) { + rangeText.attr("transform", function (d, i) { return $$.transformForArcLabel(pieData_1[i], true); }); + } + rangeText.style("opacity", function (d) { return (!fixed && (d > totalSum_1 || totalSum_1 === 0) ? "0" : null); }); + } + }, + /** + * Set transform attributes to arc label text + * @param {object} d Data object + * @param {boolean} forRange Weather is for ranged text option(arc.rangeText.values) + * @returns {string} Translate attribute string + * @private + */ + transformForArcLabel: function (d, forRange) { + var _a, _b, _c; + if (forRange === void 0) { forRange = false; } + var $$ = this; + var config = $$.config, radiusExpanded = $$.state.radiusExpanded; + var updated = $$.updateAngle(d, forRange); + var translate = ""; + if (updated) { + if (forRange || $$.hasMultiArcGauge()) { + var y1 = Math.sin(updated.endAngle - Math.PI / 2); + var rangeTextPosition = config.arc_rangeText_position; + var x = Math.cos(updated.endAngle - Math.PI / 2) * + (radiusExpanded + (forRange ? 5 : 25)); + var y = y1 * (radiusExpanded + 15 - Math.abs(y1 * 10)) + 3; + if (forRange && rangeTextPosition) { + var rangeValues = config.arc_rangeText_values; + var pos = isFunction(rangeTextPosition) ? + rangeTextPosition(rangeValues[d.index]) : + rangeTextPosition; + x += (_a = pos === null || pos === void 0 ? void 0 : pos.x) !== null && _a !== void 0 ? _a : 0; + y += (_b = pos === null || pos === void 0 ? void 0 : pos.y) !== null && _b !== void 0 ? _b : 0; + } + translate = "translate(".concat(x, ",").concat(y, ")"); + } + else if (!$$.hasType("gauge") || $$.data.targets.length > 1) { + var outerRadius = $$.getRadius(d).outerRadius; + if ($$.hasType("polar")) { + outerRadius = $$.getPolarOuterRadius(d, outerRadius); + } + var c = this.svgArc.centroid(updated); + var _d = c.map(function (v) { return (isNaN(v) ? 0 : v); }), x = _d[0], y = _d[1]; + var h = Math.sqrt(x * x + y * y); + var ratio = (_c = ["donut", "gauge", "pie", "polar"] + .filter($$.hasType.bind($$)) + .map(function (v) { return config["".concat(v, "_label_ratio")]; })) === null || _c === void 0 ? void 0 : _c[0]; + if (ratio) { + ratio = isFunction(ratio) ? ratio.bind($$.api)(d, outerRadius, h) : ratio; + } + else { + ratio = outerRadius && (h ? + (36 / outerRadius > 0.375 ? 1.175 - 36 / outerRadius : 0.8) * + outerRadius / h : + 0); + } + translate = "translate(".concat(x * ratio, ",").concat(y * ratio, ")"); + } + } + return translate; + }, + convertToArcData: function (d) { + return this.addName({ + id: "data" in d ? d.data.id : d.id, + value: d.value, + ratio: this.getRatio("arc", d), + index: d.index + }); + }, + textForArcLabel: function (selection) { + var $$ = this; + var hasGauge = $$.hasType("gauge"); + if ($$.shouldShowArcLabel()) { + selection + .style("fill", $$.updateTextColor.bind($$)) + .attr("filter", function (d) { + return $$.updateTextBGColor.bind($$)(d, $$.config.data_labels_backgroundColors); + }) + .each(function (d) { + var _a; + var node = select(this); + var updated = $$.updateAngle(d); + var ratio = $$.getRatio("arc", updated); + var isUnderThreshold = $$.meetsLabelThreshold(ratio, (_a = ["donut", "gauge", "pie", "polar"].filter($$.hasType.bind($$))) === null || _a === void 0 ? void 0 : _a[0]); + if (isUnderThreshold) { + var value = (updated || d).value; + var text = ($$.getArcLabelFormat() || $$.defaultArcValueFormat)(value, ratio, d.data.id).toString(); + setTextValue(node, text, [-1, 1], hasGauge); + } + else { + node.text(""); + } + }); + } + }, + expandArc: function (targetIds) { + var $$ = this; + var transiting = $$.state.transiting, $el = $$.$el; + // MEMO: avoid to cancel transition + if (transiting) { + var interval_1 = setInterval(function () { + if (!transiting) { + clearInterval(interval_1); + $el.legend.selectAll(".".concat($FOCUS.legendItemFocused)).size() > 0 && + $$.expandArc(targetIds); + } + }, 10); + return; + } + var newTargetIds = $$.mapToTargetIds(targetIds); + $el.svg.selectAll($$.selectorTargets(newTargetIds, ".".concat($ARC.chartArc))) + .each(function (d) { + if (!$$.shouldExpand(d.data.id)) { + return; + } + var expandDuration = $$.getExpandConfig(d.data.id, "duration"); + var svgArcExpandedSub = $$.getSvgArcExpanded($$.getExpandConfig(d.data.id, "rate")); + select(this).selectAll("path") + .transition() + .duration(expandDuration) + .attrTween("d", getAttrTweenFn($$.svgArcExpanded.bind($$))) + .transition() + .duration(expandDuration * 2) + .attrTween("d", getAttrTweenFn(svgArcExpandedSub.bind($$))); + }); + }, + unexpandArc: function (targetIds) { + var $$ = this; + var transiting = $$.state.transiting, svg = $$.$el.svg; + if (transiting) { + return; + } + var newTargetIds = $$.mapToTargetIds(targetIds); + svg.selectAll($$.selectorTargets(newTargetIds, ".".concat($ARC.chartArc))) + .selectAll("path") + .transition() + .duration(function (d) { return $$.getExpandConfig(d.data.id, "duration"); }) + .attrTween("d", getAttrTweenFn($$.svgArc.bind($$))); + svg.selectAll("".concat($ARC.arc)) + .style("opacity", null); + }, + /** + * Get expand config value + * @param {string} id data ID + * @param {string} key config key: 'duration | rate' + * @returns {number} + * @private + */ + getExpandConfig: function (id, key) { + var $$ = this; + var config = $$.config; + var def = { + duration: 50, + rate: 0.98 + }; + var type; + if ($$.isDonutType(id)) { + type = "donut"; + } + else if ($$.isGaugeType(id)) { + type = "gauge"; + } + else if ($$.isPieType(id)) { + type = "pie"; + } + return type ? config["".concat(type, "_expand_").concat(key)] : def[key]; + }, + shouldExpand: function (id) { + var $$ = this; + var config = $$.config; + return ($$.isDonutType(id) && config.donut_expand) || + ($$.isGaugeType(id) && config.gauge_expand) || + ($$.isPieType(id) && config.pie_expand); + }, + shouldShowArcLabel: function () { + var $$ = this; + var config = $$.config; + return ["donut", "gauge", "pie", "polar"] + .some(function (v) { return $$.hasType(v) && config["".concat(v, "_label_show")]; }); + }, + getArcLabelFormat: function () { + var $$ = this; + var config = $$.config; + var format = function (v) { return v; }; + ["donut", "gauge", "pie", "polar"] + .filter($$.hasType.bind($$)) + .forEach(function (v) { + format = config["".concat(v, "_label_format")]; + }); + return isFunction(format) ? format.bind($$.api) : format; + }, + updateTargetsForArc: function (targets) { + var $$ = this; + var $el = $$.$el; + var hasGauge = $$.hasType("gauge"); + var classChartArc = $$.getChartClass("Arc"); + var classArcs = $$.getClass("arcs", true); + var classFocus = $$.classFocus.bind($$); + var chartArcs = $el.main.select(".".concat($ARC.chartArcs)); + var mainPieUpdate = chartArcs + .selectAll(".".concat($ARC.chartArc)) + .data($$.pie(targets)) + .attr("class", function (d) { return classChartArc(d) + classFocus(d.data); }); + var mainPieEnter = mainPieUpdate.enter().append("g") + .attr("class", classChartArc) + .call(this.setCssRule(false, ".".concat($ARC.chartArcs, " text"), [ + "pointer-events:none", + "text-anchor:middle" + ])); + mainPieEnter.append("g") + .attr("class", classArcs) + .merge(mainPieUpdate); + mainPieEnter.append("text") + .attr("dy", hasGauge && !$$.hasMultiTargets() ? "-.1em" : ".35em") + .style("opacity", "0") + .style("text-anchor", $$.getStylePropValue("middle")) + .style("pointer-events", $$.getStylePropValue("none")); + $el.text = chartArcs.selectAll(".".concat($COMMON.target, " text")); + // MEMO: can not keep same color..., but not bad to update color in redraw + // mainPieUpdate.exit().remove(); + }, + initArc: function () { + var $$ = this; + var $el = $$.$el; + $el.arcs = $el.main.select(".".concat($COMMON.chart)) + .append("g") + .attr("class", $ARC.chartArcs) + .attr("transform", $$.getTranslate("arc")); + $$.setArcTitle(); + }, + /** + * Set arc title text + * @param {string} str Title text + * @private + */ + setArcTitle: function (str) { + var $$ = this; + var title = str || $$.getArcTitle(); + var hasGauge = $$.hasType("gauge"); + if (title) { + var className = hasGauge ? $GAUGE.chartArcsGaugeTitle : $ARC.chartArcsTitle; + var text = $$.$el.arcs.select(".".concat(className)); + if (text.empty()) { + text = $$.$el.arcs.append("text") + .attr("class", className) + .style("text-anchor", "middle"); + } + hasGauge && text.attr("dy", "-0.3em"); + setTextValue(text, title, hasGauge ? undefined : [-0.6, 1.35], true); + } + }, + /** + * Return arc title text + * @returns {string} Arc title text + * @private + */ + getArcTitle: function () { + var $$ = this; + var type = ($$.hasType("donut") && "donut") || ($$.hasType("gauge") && "gauge"); + return type ? $$.config["".concat(type, "_title")] : ""; + }, + /** + * Get arc title text with needle value + * @returns {string|boolean} When title contains needle template string will return processed string, otherwise false + * @private + */ + getArcTitleWithNeedleValue: function () { + var $$ = this; + var config = $$.config, state = $$.state; + var title = $$.getArcTitle(); + if (title && $$.config.arc_needle_show && /{=[A-Z_]+}/.test(title)) { + var value = state.current.needle; + if (!isNumber(value)) { + value = config.arc_needle_value; + } + return tplProcess(title, { + NEEDLE_VALUE: isNumber(value) ? value : 0 + }); + } + return false; + }, + redrawArc: function (duration, durationForExit, withTransform) { + var $$ = this; + var config = $$.config, state = $$.state, main = $$.$el.main; + var hasInteraction = config.interaction_enabled; + var isSelectable = hasInteraction && config.data_selection_isselectable; + var mainArc = main.selectAll(".".concat($ARC.arcs)) + .selectAll(".".concat($ARC.arc)) + .data($$.arcData.bind($$)); + mainArc.exit() + .transition() + .duration(durationForExit) + .style("opacity", "0") + .remove(); + mainArc = mainArc.enter() + .append("path") + .attr("class", $$.getClass("arc", true)) + .style("fill", function (d) { return $$.color(d.data); }) + .style("cursor", function (d) { var _a; return (((_a = isSelectable === null || isSelectable === void 0 ? void 0 : isSelectable.bind) === null || _a === void 0 ? void 0 : _a.call(isSelectable, $$.api)(d)) ? "pointer" : null); }) + .style("opacity", "0") + .each(function (d) { + if ($$.isGaugeType(d.data)) { + d.startAngle = config.gauge_startingAngle; + d.endAngle = config.gauge_startingAngle; + } + this._current = d; + }) + .merge(mainArc); + if ($$.hasType("gauge")) { + $$.updateGaugeMax(); + $$.hasMultiArcGauge() && $$.redrawArcGaugeLine(); + } + mainArc + .attr("transform", function (d) { return (!$$.isGaugeType(d.data) && withTransform ? "scale(0)" : ""); }) + .style("opacity", function (d) { + return d === this._current ? "0" : null; + }) + .each(function () { + state.transiting = true; + }) + .transition() + .duration(duration) + .attrTween("d", function (d) { + var updated = $$.updateAngle(d); + if (!updated) { + return function () { return "M 0 0"; }; + } + if (isNaN(this._current.startAngle)) { + this._current.startAngle = 0; + } + if (isNaN(this._current.endAngle)) { + this._current.endAngle = this._current.startAngle; + } + var interpolate$1 = interpolate(this._current, updated); + this._current = interpolate$1(0); + return function (t) { + var interpolated = interpolate$1(t); + interpolated.data = d.data; // data.id will be updated by interporator + return $$.getArc(interpolated, true); + }; + }) + .attr("transform", withTransform ? "scale(1)" : "") + .style("fill", function (d) { + var color; + if ($$.levelColor) { + color = $$.levelColor(d.data.values[0].value); + // update data's color + config.data_colors[d.data.id] = color; + } + else { + color = $$.color(d.data); + } + return color; + }) + // Where gauge reading color would receive customization. + .style("opacity", null) + .call(endall, function () { + if ($$.levelColor) { + var path = select(this); + var d = path.datum(this._current); + $$.updateLegendItemColor(d.data.id, path.style("fill")); + } + state.transiting = false; + callFn(config.onrendered, $$.api); + }); + // bind arc events + hasInteraction && $$.bindArcEvent(mainArc); + $$.hasType("polar") && $$.redrawPolar(); + $$.hasType("gauge") && $$.redrawBackgroundArcs(); + config.arc_needle_show && $$.redrawNeedle(); + $$.redrawArcText(duration); + $$.redrawArcRangeText(); + }, + /** + * Update needle element + * @private + */ + redrawNeedle: function () { + var $$ = this; + var $el = $$.$el, config = $$.config, _a = $$.state, hiddenTargetIds = _a.hiddenTargetIds, radius = _a.radius; + var length = (radius - 1) / 100 * config.arc_needle_length; + var hasDataToShow = hiddenTargetIds.length !== $$.data.targets.length; + var needle = $$.$el.arcs.select(".".concat($ARC.needle)); + // needle options + var pathFn = config.arc_needle_path; + var baseWidth = config.arc_needle_bottom_width / 2; + var topWidth = config.arc_needle_top_width / 2; + var topRx = config.arc_needle_top_rx; + var topRy = config.arc_needle_top_ry; + var bottomLen = config.arc_needle_bottom_len; + var bottomRx = config.arc_needle_bottom_rx; + var bottomRy = config.arc_needle_bottom_ry; + var needleAngle = $$.getNeedleAngle(); + var updateNeedleValue = function () { + var title = $$.getArcTitleWithNeedleValue(); + title && $$.setArcTitle(title); + }; + updateNeedleValue(); + if (needle.empty()) { + needle = $el.arcs + .append("path") + .classed($ARC.needle, true); + $el.needle = needle; + /** + * Function to be exposed as public to facilitate updating needle + * @param {number} v Value to be updated + * @param {boolean} updateConfig Weather update config's value + * @private + */ + $el.needle.updateHelper = function (v, updateConfig) { + if (updateConfig === void 0) { updateConfig = false; } + if ($el.needle.style("display") !== "none") { + $$.$T($el.needle) + .style("transform", "rotate(".concat($$.getNeedleAngle(v), "deg)")) + .call(endall, function () { + updateConfig && (config.arc_needle_value = v); + updateNeedleValue(); + }); + } + }; + } + if (hasDataToShow) { + var path = isFunction(pathFn) ? + pathFn.call($$, length) : + "M-".concat(baseWidth, " ").concat(bottomLen, " A").concat(bottomRx, " ").concat(bottomRy, " 0 0 0 ").concat(baseWidth, " ").concat(bottomLen, " L").concat(topWidth, " -").concat(length, " A").concat(topRx, " ").concat(topRy, " 0 0 0 -").concat(topWidth, " -").concat(length, " L-").concat(baseWidth, " ").concat(bottomLen, " Z"); + $$.$T(needle) + .attr("d", path) + .style("fill", config.arc_needle_color) + .style("display", null) + .style("transform", "rotate(".concat(needleAngle, "deg)")); + } + else { + needle.style("display", "none"); + } + }, + /** + * Get needle angle value relative given value + * @param {number} v Value to be calculated angle + * @returns {number} angle value + * @private + */ + getNeedleAngle: function (v) { + var $$ = this; + var config = $$.config, state = $$.state; + var arcLength = $$.getArcLength(); + var hasGauge = $$.hasType("gauge"); + var total = $$.getTotalDataSum(true); + var value = isDefined(v) ? v : config.arc_needle_value; + var startingAngle = config["".concat(config.data_type, "_startingAngle")] || 0; + var radian = 0; + if (!isNumber(value)) { + value = hasGauge && $$.data.targets.length === 1 ? total : 0; + } + state.current.needle = value; + if (hasGauge) { + startingAngle = $$.getStartingAngle(); + var radius = config.gauge_fullCircle ? arcLength : startingAngle * -2; + var min = config.gauge_min, max = config.gauge_max; + radian = radius * ((value - min) / (max - min)); + } + else { + radian = arcLength * (value / total); + } + return (startingAngle + radian) * (180 / Math.PI); + }, + redrawBackgroundArcs: function () { + var $$ = this; + var config = $$.config, state = $$.state; + var hasMultiArcGauge = $$.hasMultiArcGauge(); + var isFullCircle = config.gauge_fullCircle; + var showEmptyTextLabel = $$.filterTargetsToShow($$.data.targets).length === 0 && + !!config.data_empty_label_text; + var startAngle = $$.getStartingAngle(); + var endAngle = isFullCircle ? startAngle + $$.getArcLength() : startAngle * -1; + var backgroundArc = $$.$el.arcs.select("".concat(hasMultiArcGauge ? "g" : "", ".").concat($ARC.chartArcsBackground)); + if (hasMultiArcGauge) { + var index_1 = 0; + backgroundArc = backgroundArc + .selectAll("path.".concat($ARC.chartArcsBackground)) + .data($$.data.targets); + backgroundArc.enter() + .append("path") + .attr("class", function (d, i) { + return "".concat($ARC.chartArcsBackground, " ").concat($ARC.chartArcsBackground, "-").concat(i); + }) + .merge(backgroundArc) + .style("fill", (config.gauge_background) || null) + .attr("d", function (_a) { + var id = _a.id; + if (showEmptyTextLabel || state.hiddenTargetIds.indexOf(id) >= 0) { + return "M 0 0"; + } + var d = { + data: [{ value: config.gauge_max }], + startAngle: startAngle, + endAngle: endAngle, + index: index_1++ + }; + return $$.getArc(d, true, true); + }); + backgroundArc.exit().remove(); + } + else { + backgroundArc.attr("d", showEmptyTextLabel ? "M 0 0" : function () { + var d = { + data: [{ value: config.gauge_max }], + startAngle: startAngle, + endAngle: endAngle + }; + return $$.getArc(d, true, true); + }); + } + }, + bindArcEvent: function (arc) { + var $$ = this; + var config = $$.config, state = $$.state; + var isTouch = state.inputType === "touch"; + var isMouse = state.inputType === "mouse"; + // eslint-disable-next-line + function selectArc(_this, arcData, id) { + // transitions + $$.expandArc(id); + $$.api.focus(id); + $$.toggleFocusLegend(id, true); + $$.showTooltip([arcData], _this); + } + // eslint-disable-next-line + function unselectArc(arcData) { + var id = undefined; + $$.unexpandArc(id); + $$.api.revert(); + $$.revertLegend(); + $$.hideTooltip(); + } + arc + .on("click", function (event, d, i) { + var _a; + var updated = $$.updateAngle(d); + var arcData; + if (updated) { + arcData = $$.convertToArcData(updated); + (_a = $$.toggleShape) === null || _a === void 0 ? void 0 : _a.call($$, this, arcData, i); + config.data_onclick.bind($$.api)(arcData, this); + } + }); + // mouse events + if (isMouse) { + arc + .on("mouseover", function (event, d) { + if (state.transiting) { // skip while transiting + return; + } + state.event = event; + var updated = $$.updateAngle(d); + var arcData = updated ? $$.convertToArcData(updated) : null; + var id = (arcData === null || arcData === void 0 ? void 0 : arcData.id) || undefined; + selectArc(this, arcData, id); + $$.setOverOut(true, arcData); + }) + .on("mouseout", function (event, d) { + if (state.transiting) { // skip while transiting + return; + } + state.event = event; + var updated = $$.updateAngle(d); + var arcData = updated ? $$.convertToArcData(updated) : null; + unselectArc(); + $$.setOverOut(false, arcData); + }) + .on("mousemove", function (event, d) { + var updated = $$.updateAngle(d); + var arcData = updated ? $$.convertToArcData(updated) : null; + state.event = event; + $$.showTooltip([arcData], this); + }); + } + // touch events + if (isTouch && $$.hasArcType() && !$$.radars) { + var getEventArc_1 = function (event) { + var _a, _b; + var _c = (_b = (_a = event.changedTouches) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : { clientX: 0, clientY: 0 }, clientX = _c.clientX, clientY = _c.clientY; + var eventArc = select(doc.elementFromPoint(clientX, clientY)); + return eventArc; + }; + $$.$el.svg + .on("touchstart touchmove", function (event) { + if (state.transiting) { // skip while transiting + return; + } + state.event = event; + var eventArc = getEventArc_1(event); + var datum = eventArc.datum(); + var updated = ((datum === null || datum === void 0 ? void 0 : datum.data) && datum.data.id) ? $$.updateAngle(datum) : null; + var arcData = updated ? $$.convertToArcData(updated) : null; + var id = (arcData === null || arcData === void 0 ? void 0 : arcData.id) || undefined; + $$.callOverOutForTouch(arcData); + isUndefined(id) ? unselectArc() : selectArc(this, arcData, id); + }); + } + }, + redrawArcText: function (duration) { + var $$ = this; + var config = $$.config, state = $$.state, _a = $$.$el, main = _a.main, arcs = _a.arcs; + var hasGauge = $$.hasType("gauge"); + var hasMultiArcGauge = $$.hasMultiArcGauge(); + var text; + // for gauge type, update text when has no title & multi data + if (!(hasGauge && $$.data.targets.length === 1 && config.gauge_title)) { + text = main.selectAll(".".concat($ARC.chartArc)) + .select("text") + .style("opacity", "0") + .attr("class", function (d) { return ($$.isGaugeType(d.data) ? $GAUGE.gaugeValue : null); }) + .call($$.textForArcLabel.bind($$)) + .attr("transform", function (d) { return $$.transformForArcLabel.bind($$)(d); }) + .style("font-size", function (d) { return ($$.isGaugeType(d.data) && $$.data.targets.length === 1 && !hasMultiArcGauge ? + "".concat(Math.round(state.radius / 5), "px") : + null); }) + .transition() + .duration(duration) + .style("opacity", function (d) { return ($$.isTargetToShow(d.data.id) && $$.isArcType(d.data) ? null : "0"); }); + hasMultiArcGauge && text.attr("dy", "-.1em"); + } + main.select(".".concat($ARC.chartArcsTitle)) + .style("opacity", $$.hasType("donut") || hasGauge ? null : "0"); + if (hasGauge) { + var isFullCircle = config.gauge_fullCircle; + isFullCircle && + (text === null || text === void 0 ? void 0 : text.attr("dy", "".concat(hasMultiArcGauge ? 0 : Math.round(state.radius / 14)))); + if (config.gauge_label_show) { + arcs.select(".".concat($GAUGE.chartArcsGaugeUnit)) + .attr("dy", "".concat(isFullCircle ? 1.5 : 0.75, "em")) + .text(config.gauge_units); + arcs.select(".".concat($GAUGE.chartArcsGaugeMin)) + .attr("dx", "".concat(-1 * + (state.innerRadius + + ((state.radius - state.innerRadius) / (isFullCircle ? 1 : 2))), "px")) + .attr("dy", "1.2em") + .text($$.textForGaugeMinMax(config.gauge_min, false)); + // show max text when isn't fullCircle + !isFullCircle && arcs.select(".".concat($GAUGE.chartArcsGaugeMax)) + .attr("dx", "".concat(state.innerRadius + ((state.radius - state.innerRadius) / 2), "px")) + .attr("dy", "1.2em") + .text($$.textForGaugeMinMax(config.gauge_max, true)); + } + } + }, + /** + * Get Arc element by id or index + * @param {string|number} value id or index of Arc + * @returns {d3Selection} Arc path element + * @private + */ + getArcElementByIdOrIndex: function (value) { + var $$ = this; + var arcs = $$.$el.arcs; + var filterFn = isNumber(value) ? function (d) { return d.index === value; } : function (d) { return d.data.id === value; }; + return arcs === null || arcs === void 0 ? void 0 : arcs.selectAll(".".concat($COMMON.target, " path")).filter(filterFn); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var shapeArea = { + initArea: function (mainLine) { + var $$ = this; + var config = $$.config; + mainLine + .insert("g", ".".concat(config.area_front ? $CIRCLE.circles : $LINE.lines)) + .attr("class", $$.getClass("areas", true)); + }, + /** + * Update area color + * @param {object} d Data object + * @returns {string} Color string + * @private + */ + updateAreaColor: function (d) { + var $$ = this; + return $$.config.area_linearGradient ? $$.getGradienColortUrl(d.id) : $$.color(d); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateArea: function (withTransition, isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var config = $$.config, state = $$.state, $el = $$.$el, $T = $$.$T; + var $root = isSub ? $el.subchart : $el; + config.area_linearGradient && $$.updateLinearGradient(); + var area = $root.main.selectAll(".".concat($AREA.areas)) + .selectAll(".".concat($AREA.area)) + .data($$.lineData.bind($$)); + $T(area.exit(), withTransition) + .style("opacity", "0") + .remove(); + $root.area = area.enter().append("path") + .attr("class", $$.getClass("area", true)) + .style("fill", $$.updateAreaColor.bind($$)) + .style("opacity", function () { + state.orgAreaOpacity = select(this).style("opacity"); + return "0"; + }) + .merge(area); + area.style("opacity", state.orgAreaOpacity); + // calculate ratio if grouped data exists + $$.setRatioForGroupedData($root.area.data()); + }, + /** + * Redraw function + * @param {Function} drawFn Retuned functino from .generateDrawCandlestick() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + */ + redrawArea: function (drawFn, withTransition, isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var area = (isSub ? this.$el.subchart : this.$el).area; + var orgAreaOpacity = $$.state.orgAreaOpacity; + return [ + $$.$T(area, withTransition, getRandom()) + .attr("d", drawFn) + .style("fill", $$.updateAreaColor.bind($$)) + .style("opacity", function (d) { return String($$.isAreaRangeType(d) ? orgAreaOpacity / 1.75 : orgAreaOpacity); }) + ]; + }, + /** + * Generate area path data + * @param {object} areaIndices Indices + * @param {boolean} isSub Weather is sub axis + * @returns {Function} + * @private + */ + generateDrawArea: function (areaIndices, isSub) { + var $$ = this; + var config = $$.config; + var lineConnectNull = config.line_connectNull; + var isRotated = config.axis_rotated; + var getPoints = $$.generateGetAreaPoints(areaIndices, isSub); + var yScale = $$.getYScaleById.bind($$); + var xValue = function (d) { return (isSub ? $$.subxx : $$.xx).call($$, d); }; + var value0 = function (d, i) { return ($$.isGrouped(d.id) ? getPoints(d, i)[0][1] : yScale(d.id, isSub)($$.isAreaRangeType(d) ? $$.getRangedData(d, "high") : $$.getShapeYMin(d.id))); }; + var value1 = function (d, i) { return ($$.isGrouped(d.id) ? getPoints(d, i)[1][1] : yScale(d.id, isSub)($$.isAreaRangeType(d) ? $$.getRangedData(d, "low") : d.value)); }; + return function (d) { + var values = lineConnectNull ? $$.filterRemoveNull(d.values) : d.values; + var x0 = 0; + var y0 = 0; + var path; + if ($$.isAreaType(d)) { + var area = area$1(); + area = isRotated ? + area.y(xValue) + .x0(value0) + .x1(value1) : + area.x(xValue) + .y0(config.area_above ? 0 : (config.area_below ? $$.state.height : value0)) + .y1(value1); + if (!lineConnectNull) { + area = area.defined(function (d) { return $$.getBaseValue(d) !== null; }); + } + if ($$.isStepType(d)) { + values = $$.convertValuesToStep(values); + } + path = area.curve($$.getCurve(d))(values); + } + else { + if (values[0]) { + x0 = $$.scale.x(values[0].x); + y0 = $$.getYScaleById(d.id)(values[0].value); + } + path = isRotated ? "M ".concat(y0, " ").concat(x0) : "M ".concat(x0, " ").concat(y0); + } + return path || "M 0 0"; + }; + }, + generateGetAreaPoints: function (areaIndices, isSub) { + // partial duplication of generateGetBarPoints + var $$ = this; + var config = $$.config; + var x = $$.getShapeX(0, areaIndices, isSub); + var y = $$.getShapeY(!!isSub); + var areaOffset = $$.getShapeOffset($$.isAreaType, areaIndices, isSub); + var yScale = $$.getYScaleById.bind($$); + return function (d, i) { + var y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id)); + var offset = areaOffset(d, i) || y0; // offset is for stacked area chart + var posX = x(d); + var value = d.value; + var posY = y(d); + // fix posY not to overflow opposite quadrant + if (config.axis_rotated && ((value > 0 && posY < y0) || (value < 0 && y0 < posY))) { + posY = y0; + } + // 1 point that marks the area position + return [ + [posX, offset], + [posX, posY - (y0 - offset)], + [posX, posY - (y0 - offset)], // needed for compatibility + [posX, offset] // needed for compatibility + ]; + }; + } +}; + +var shapeBar = { + initBar: function () { + var _a = this, $el = _a.$el, config = _a.config, clip = _a.state.clip; + $el.bar = $el.main.select(".".concat($COMMON.chart)); + $el.bar = config.bar_front ? $el.bar.append("g") : $el.bar.insert("g", ":first-child"); + $el.bar + .attr("class", $BAR.chartBars) + .call(this.setCssRule(false, ".".concat($BAR.chartBars), ["pointer-events:none"])); + // set clip-path attribute when condition meet + // https://github.com/naver/billboard.js/issues/2421 + if (config.clipPath === false && (config.bar_radius || config.bar_radius_ratio)) { + $el.bar.attr("clip-path", clip.pathXAxis.replace(/#[^)]*/, "#".concat(clip.id))); + } + }, + updateTargetsForBar: function (targets) { + var $$ = this; + var config = $$.config, $el = $$.$el; + var classChartBar = $$.getChartClass("Bar"); + var classBars = $$.getClass("bars", true); + var classFocus = $$.classFocus.bind($$); + var isSelectable = config.interaction_enabled && config.data_selection_isselectable; + if (!$el.bar) { + $$.initBar(); + } + var mainBarUpdate = $el.main.select(".".concat($BAR.chartBars)) + .selectAll(".".concat($BAR.chartBar)) + .data( + // remove + targets.filter(function (v) { return v.values.some(function (d) { return (isNumber(d.value) || $$.isBarRangeType(d)); }); })) + .attr("class", function (d) { return classChartBar(d) + classFocus(d); }); + var mainBarEnter = mainBarUpdate.enter().append("g") + .attr("class", classChartBar) + .style("opacity", "0") + .style("pointer-events", $$.getStylePropValue("none")); + // Bars for each data + mainBarEnter.append("g") + .attr("class", classBars) + .style("cursor", function (d) { var _a; return (((_a = isSelectable === null || isSelectable === void 0 ? void 0 : isSelectable.bind) === null || _a === void 0 ? void 0 : _a.call(isSelectable, $$.api)(d)) ? "pointer" : null); }) + .call($$.setCssRule(true, " .".concat($BAR.bar), ["fill"], $$.color)); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateBar: function (withTransition, isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var config = $$.config, $el = $$.$el, $T = $$.$T; + var $root = isSub ? $el.subchart : $el; + var classBar = $$.getClass("bar", true); + var initialOpacity = $$.initialOpacity.bind($$); + config.bar_linearGradient && $$.updateLinearGradient(); + var bar = $root.main.selectAll(".".concat($BAR.bars)) + .selectAll(".".concat($BAR.bar)) + .data($$.labelishData.bind($$)); + $T(bar.exit(), withTransition) + .style("opacity", "0") + .remove(); + $root.bar = bar.enter().append("path") + .attr("class", classBar) + .style("fill", $$.updateBarColor.bind($$)) + .merge(bar) + .style("opacity", initialOpacity); + // calculate ratio if grouped data exists + $$.setRatioForGroupedData($root.bar.data()); + }, + /** + * Update bar color + * @param {object} d Data object + * @returns {string} Color string + * @private + */ + updateBarColor: function (d) { + var $$ = this; + var fn = $$.getStylePropValue($$.color); + return $$.config.bar_linearGradient ? $$.getGradienColortUrl(d.id) : (fn ? fn(d) : null); + }, + /** + * Redraw function + * @param {Function} drawFn Retuned function from .getDrawShape() => .generateDrawBar() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + * @private + */ + redrawBar: function (drawFn, withTransition, isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var bar = (isSub ? $$.$el.subchart : $$.$el).bar; + return [ + $$.$T(bar, withTransition, getRandom()) + .attr("d", function (d) { return (isNumber(d.value) || $$.isBarRangeType(d)) && drawFn(d); }) + .style("fill", $$.updateBarColor.bind($$)) + .style("opacity", null) + ]; + }, + /** + * Generate draw function + * @param {object} barIndices data order within x axis. + * barIndices ==> {data1: 0, data2: 0, data3: 1, data4: 1, __max__: 1} + * + * When gropus given as: + * groups: [ + * ["data1", "data2"], + * ["data3", "data4"] + * ], + * + * Will be rendered as: + * data1 data3 data1 data3 + * data2 data4 data2 data4 + * ------------------------- + * 0 1 + * @param {boolean} isSub If is for subchart + * @returns {Function} + * @private + */ + generateDrawBar: function (barIndices, isSub) { + var $$ = this; + var config = $$.config; + var getPoints = $$.generateGetBarPoints(barIndices, isSub); + var isRotated = config.axis_rotated; + var barRadius = config.bar_radius; + var barRadiusRatio = config.bar_radius_ratio; + // get the bar radius + var getRadius = isNumber(barRadius) && barRadius > 0 ? function () { return barRadius; } : (isNumber(barRadiusRatio) ? function (w) { return w * barRadiusRatio; } : null); + return function (d, i) { + // 4 points that make a bar + var points = getPoints(d, i); + // switch points if axis is rotated, not applicable for sub chart + var indexX = +isRotated; + var indexY = +!indexX; + var isUnderZero = d.value < 0; + var isInverted = config["axis_".concat($$.axis.getId(d.id), "_inverted")]; + var isNegative = (!isInverted && isUnderZero) || (isInverted && !isUnderZero); + var pathRadius = ["", ""]; + var radius = 0; + var isGrouped = $$.isGrouped(d.id); + var isRadiusData = getRadius && isGrouped ? $$.isStackingRadiusData(d) : false; + if (getRadius) { + var index = isRotated ? indexY : indexX; + var barW = points[2][index] - points[0][index]; + radius = !isGrouped || isRadiusData ? getRadius(barW) : 0; + var arc = "a".concat(radius, ",").concat(radius, " ").concat(isNegative ? "1 0 0" : "0 0 1", " "); + pathRadius[+!isRotated] = "".concat(arc).concat(radius, ",").concat(radius); + pathRadius[+isRotated] = "".concat(arc).concat([-radius, radius][isRotated ? "sort" : "reverse"]()); + isNegative && pathRadius.reverse(); + } + // path string data shouldn't be containing new line chars + // https://github.com/naver/billboard.js/issues/530 + var path = isRotated ? + "H".concat(points[1][indexX] + (isNegative ? radius : -radius), " ").concat(pathRadius[0], "V").concat(points[2][indexY] - radius, " ").concat(pathRadius[1], "H").concat(points[3][indexX]) : + "V".concat(points[1][indexY] + (isNegative ? -radius : radius), " ").concat(pathRadius[0], "H").concat(points[2][indexX] - radius, " ").concat(pathRadius[1], "V").concat(points[3][indexY]); + return "M".concat(points[0][indexX], ",").concat(points[0][indexY]).concat(path, "z"); + }; + }, + /** + * Determine if given stacking bar data is radius type + * @param {object} d Data row + * @returns {boolean} + */ + isStackingRadiusData: function (d) { + var $$ = this; + var $el = $$.$el, config = $$.config, data = $$.data, state = $$.state; + var id = d.id, index = d.index, value = d.value; + // when the data is hidden, check if has rounded edges + if (state.hiddenTargetIds.indexOf(id) > -1) { + var target = $el.bar.filter(function (d) { return d.id === id && d.value === value; }); + return !target.empty() && /a\d+/i.test(target.attr("d")); + } + // Find same grouped ids + var keys = config.data_groups.find(function (v) { return v.indexOf(id) > -1; }); + // Get sorted list + var sortedList = $$.orderTargets($$.filterTargetsToShow(data.targets.filter($$.isBarType, $$))).filter(function (v) { return keys.indexOf(v.id) > -1; }); + // Get sorted Ids. Filter positive or negative values Ids from given value + var sortedIds = sortedList + .map(function (v) { + return v.values.filter(function (v2) { + return v2.index === index && (isNumber(value) && value > 0 ? v2.value > 0 : v2.value < 0); + })[0]; + }) + .filter(Boolean) + .map(function (v) { return v.id; }); + // If the given id stays in the last position, then radius should be applied. + return value !== 0 && (sortedIds.indexOf(id) === sortedIds.length - 1); + }, + /** + * Generate bar coordinate points data + * @param {object} barIndices Data order within x axis. + * @param {boolean} isSub If is for subchart + * @returns {Array} Array of coordinate points + * @private + */ + generateGetBarPoints: function (barIndices, isSub) { + var $$ = this; + var config = $$.config; + var axis = isSub ? $$.axis.subX : $$.axis.x; + var barTargetsNum = $$.getIndicesMax(barIndices) + 1; + var barW = $$.getBarW("bar", axis, barTargetsNum); + var barX = $$.getShapeX(barW, barIndices, !!isSub); + var barY = $$.getShapeY(!!isSub); + var barOffset = $$.getShapeOffset($$.isBarType, barIndices, !!isSub); + var yScale = $$.getYScaleById.bind($$); + return function (d, i) { + var id = d.id; + var y0 = yScale.call($$, id, isSub)($$.getShapeYMin(id)); + var offset = barOffset(d, i) || y0; // offset is for stacked bar chart + var width = isNumber(barW) ? barW : barW[d.id] || barW._$width; + var isInverted = config["axis_".concat($$.axis.getId(id), "_inverted")]; + var value = d.value; + var posX = barX(d); + var posY = barY(d); + // fix posY not to overflow opposite quadrant + if (config.axis_rotated && !isInverted && ((value > 0 && posY < y0) || (value < 0 && y0 < posY))) { + posY = y0; + } + if (!$$.isBarRangeType(d)) { + posY -= y0 - offset; + } + var startPosX = posX + width; + // 4 points that make a bar + return [ + [posX, offset], + [posX, posY], + [startPosX, posY], + [startPosX, offset] + ]; + }; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var shapeBubble = { + /** + * Initializer + * @private + */ + initBubble: function () { + var $$ = this; + var config = $$.config; + if ($$.hasType("bubble")) { + config.point_show = true; + config.point_type = "circle"; + } + }, + /** + * Get user agent's computed value + * @returns {number} + * @private + */ + getBaseLength: function () { + var $$ = this; + var _a = $$.state, width = _a.width, height = _a.height; + var cacheKey = KEY.bubbleBaseLength; + var baseLength = $$.cache.get(cacheKey); + if (!baseLength) { + $$.cache.add(cacheKey, baseLength = getMinMax$1("min", [width, height])); + } + return baseLength; + }, + /** + * Get the radius value for bubble circle + * @param {object} d Data object + * @returns {number} + * @private + */ + getBubbleR: function (d) { + var $$ = this; + var maxR = $$.config.bubble_maxR; + if (isFunction(maxR)) { + maxR = maxR.bind($$.api)(d); + } + else if (!isNumber(maxR)) { + maxR = ($$.getBaseLength() / ($$.getMaxDataCount() * 2)) + 12; + } + var max = getMinMax$1("max", $$.getMinMaxData().max.map(function (d) { return ($$.isBubbleZType(d) ? $$.getBubbleZData(d.value, "y") : (isObject(d.value) ? d.value.mid : d.value)); })); + var maxArea = maxR * maxR * Math.PI; + var area = ($$.isBubbleZType(d) ? $$.getBubbleZData(d.value, "z") : d.value) * + (maxArea / max); + return Math.sqrt(area / Math.PI); + }, + /** + * Get bubble dimension data + * @param {object|Array} d data value + * @param {string} type - y or z + * @returns {number} + * @private + */ + getBubbleZData: function (d, type) { + return isObject(d) ? d[type] : d[type === "y" ? 0 : 1]; + } +}; + +var shapeCandlestick = { + initCandlestick: function () { + var $el = this.$el; + $el.candlestick = $el.main.select(".".concat($COMMON.chart)) + // should positioned at the beginning of the shape node to not overlap others + .append("g") + .attr("class", $CANDLESTICK.chartCandlesticks); + }, + /** + * Update targets by its data + * called from: ChartInternal.updateTargets() + * @param {Array} targets Filtered target by type + * @private + */ + updateTargetsForCandlestick: function (targets) { + var $$ = this; + var $el = $$.$el; + var classChart = $$.getChartClass("Candlestick"); + if (!$el.candlestick) { + $$.initCandlestick(); + } + var mainUpdate = $$.$el.main.select(".".concat($CANDLESTICK.chartCandlesticks)) + .selectAll(".".concat($CANDLESTICK.chartCandlestick)) + .data(targets); + mainUpdate.enter().append("g") + .attr("class", classChart) + .style("pointer-events", "none"); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateCandlestick: function (withTransition, isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var $el = $$.$el, $T = $$.$T; + var $root = isSub ? $el.subchart : $el; + var classSetter = $$.getClass("candlestick", true); + var initialOpacity = $$.initialOpacity.bind($$); + var candlestick = $root.main.selectAll(".".concat($CANDLESTICK.chartCandlestick)) + .selectAll(".".concat($CANDLESTICK.candlestick)) + .data($$.labelishData.bind($$)); + $T(candlestick.exit(), withTransition) + .style("opacity", "0") + .remove(); + var candlestickEnter = candlestick.enter() + .filter(function (d) { return d.value; }) + .append("g") + .attr("class", classSetter); + candlestickEnter.append("line"); + candlestickEnter.append("path"); + $root.candlestick = candlestick.merge(candlestickEnter) + .style("opacity", initialOpacity); + }, + /** + * Get draw function + * @param {object} indices Indice data + * @param {boolean} isSub Subchart draw + * @returns {Function} + * @private + */ + generateDrawCandlestick: function (indices, isSub) { + var $$ = this; + var config = $$.config; + var getPoints = $$.generateGetCandlestickPoints(indices, isSub); + var isRotated = config.axis_rotated; + var downColor = config.candlestick_color_down; + return function (d, i, g) { + var points = getPoints(d, i); + var value = $$.getCandlestickData(d); + var isUp = value === null || value === void 0 ? void 0 : value._isUp; + // switch points if axis is rotated, not applicable for sub chart + var indexX = +isRotated; + var indexY = +!indexX; + if (g.classed) { + g.classed($CANDLESTICK[isUp ? "valueUp" : "valueDown"], true); + } + var path = isRotated ? + "H".concat(points[1][1], " V").concat(points[1][0], " H").concat(points[0][1]) : + "V".concat(points[1][1], " H").concat(points[1][0], " V").concat(points[0][1]); + g.select("path") + .attr("d", "M".concat(points[0][indexX], ",").concat(points[0][indexY]).concat(path, "z")) + .style("fill", function (d) { + var color = isUp ? $$.color(d) : (isObject(downColor) ? downColor[d.id] : downColor); + return color || $$.color(d); + }); + // set line position + var line = g.select("line"); + var pos = isRotated ? + { + x1: points[2][1], + x2: points[2][2], + y1: points[2][0], + y2: points[2][0] + } : + { + x1: points[2][0], + x2: points[2][0], + y1: points[2][1], + y2: points[2][2] + }; + for (var x in pos) { + line.attr(x, pos[x]); + } + }; + }, + /** + * Generate shape drawing points + * @param {object} indices Indice data + * @param {boolean} isSub Subchart draw + * @returns {Function} + */ + generateGetCandlestickPoints: function (indices, isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var axis = isSub ? $$.axis.subX : $$.axis.x; + var targetsNum = $$.getIndicesMax(indices) + 1; + var barW = $$.getBarW("candlestick", axis, targetsNum); + var x = $$.getShapeX(barW, indices, !!isSub); + var y = $$.getShapeY(!!isSub); + var shapeOffset = $$.getShapeOffset($$.isBarType, indices, !!isSub); + var yScale = $$.getYScaleById.bind($$); + return function (d, i) { + var y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id)); + var offset = shapeOffset(d, i) || y0; // offset is for stacked bar chart + var width = isNumber(barW) ? barW : barW[d.id] || barW._$width; + var value = $$.getCandlestickData(d); + var points; + if (value && isNumber(value.open) && isNumber(value.close)) { + var posX = { + start: x(d), + end: 0 + }; + posX.end = posX.start + width; + var posY = { + start: y(value.open), + end: y(value.close) + }; + var posLine = { + x: posX.start + (width / 2), + high: y(value.high), + low: y(value.low) + }; + posY.start -= y0 - offset; + points = [ + [posX.start, posY.start], + [posX.end, posY.end], + [posLine.x, posLine.low, posLine.high] + ]; + } + else { + points = [[0, 0], [0, 0], [0, 0, 0]]; + } + return points; + }; + }, + /** + * Redraw function + * @param {Function} drawFn Retuned functino from .generateDrawCandlestick() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + */ + redrawCandlestick: function (drawFn, withTransition, isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var $el = $$.$el, $T = $$.$T; + var candlestick = (isSub ? $el.subchart : $el).candlestick; + var rand = getRandom(true); + return [ + candlestick + .each(function (d, i) { + var g = $T(select(this), withTransition, rand); + drawFn(d, i, g); + }) + .style("opacity", null) + ]; + }, + /** + * Get candlestick data as object + * @param {object} param Data object + * @param {Array|object} param.value Data value + * @returns {object|null} Converted data object + * @private + */ + getCandlestickData: function (_a) { + var value = _a.value; + var d; + if (isArray(value)) { + var open_1 = value[0], high = value[1], low = value[2], close_1 = value[3], _b = value[4], volume = _b === void 0 ? false : _b; + d = { open: open_1, high: high, low: low, close: close_1 }; + if (volume !== false) { + d.volume = volume; + } + } + else if (isObject(value)) { + d = __assign({}, value); + } + if (d) { + d._isUp = d.close >= d.open; + } + return d || null; + } +}; + +/** + * Get current size value + * @param {boolean} checkNeck Determine if container width to not be less than neck width + * @returns {object} size object + * @private + */ +function getSize(checkNeck) { + if (checkNeck === void 0) { checkNeck = false; } + var $$ = this; + var config = $$.config, _a = $$.state.current, width = _a.width, height = _a.height; + var padding = $$.getCurrentPadding(); + var size = __assign({ width: width - (padding.left + padding.right), height: height - (config.legend_show ? $$.getLegendHeight() + 10 : 0) - + (padding.top + padding.bottom) }, padding); + // determine if container width to not be less than neck width + if (checkNeck) { + var _b = getNecklSize.call($$, { + width: size.width, + height: size.height + }), neckWidth = _b.width, neckHeight = _b.height; + // prevent neck size to not exceeed funnel size + if (size.width < neckWidth) { + size.width = neckWidth; + } + if (size.height < neckHeight) { + size.height = neckHeight; + } + } + return size; +} +/** + * Return neck size in pixels + * @param {object} current Current size object + * @returns {object} size object + * @private + */ +function getNecklSize(current) { + var _a; + var $$ = this; + var config = $$.config; + var width = config.funnel_neck_width; + var height = config.funnel_neck_height; + _a = [width, height].map(function (v, i) { + var size = v; + if (isObject(v)) { + size = current[i ? "height" : "width"] * v.ratio; + } + return size; + }), width = _a[0], height = _a[1]; + return { + width: width, + height: height + }; +} +/** + * Get coordinate points + * @param {Array} d Data object + * @returns {Array} Coordinate points + * @private + */ +function getCoord(d) { + var $$ = this; + var _a = getSize.call($$, true), top = _a.top, left = _a.left, width = _a.width; + var coords = []; + d.forEach(function (d, i) { + var ratio = d.ratio; + var y = i > 0 ? coords[i - 1][2][1] : top; + // (M)(4) ------------> (1) + // ˄ | + // | | + // | ˅ + // (3) <-------------- (2) + coords.push(d.coords = [ + [left, y], // M + [left + width, y], // 1 + [left + width, i > 0 ? ratio + y : ratio + top], // 2 + [left, i > 0 ? ratio + y : ratio + top], // 3 + [left, y] // 4 + ]); + }); + return coords; +} +/** + * Get clip path + * @param {boolean} forBackground Determine if clip path for background + * @returns {string} path + * @private + */ +function getClipPath(forBackground) { + if (forBackground === void 0) { forBackground = false; } + var $$ = this; + var _a = getSize.call($$, true), width = _a.width, height = _a.height, top = _a.top, left = _a.left; + var neck = getNecklSize.call($$, { width: width, height: height }); + var leftX = (width - neck.width) / 2; + var rightX = (width + neck.width) / 2; + var bodyHeigth = height - neck.height; + var coords = [ + [0, 0], // M + [width, 0], // 1 + [rightX, bodyHeigth], // 2 + [rightX, height], // 3 + [leftX, height], // 4 + [leftX, bodyHeigth], // 5 + [0, 0] // 6 + ]; + if (forBackground) { + coords.forEach(function (d) { + d[0] += left; + d[1] += top; + }); + } + return "M".concat(coords.join("L"), "z"); +} +/** + * Get funnel data + * @param {object} d data object + * @returns {Array} + * @private + */ +function getFunnelData(d) { + var $$ = this; + var config = $$.config; + var data = d.map(function (d) { return ({ + id: d.id, + value: d.values.reduce(function (a, b) { return a + b.value; }, 0) + }); }); + if (config.data_order) { + data.sort($$.getSortCompareFn.bind($$)(true)); + } + return updateRatio.call($$, data); +} +/** + * Update ratio value + * @param {Array} data Data object + * @returns {Array} Updated data object + * @private + */ +function updateRatio(data) { + var $$ = this; + var height = getSize.call($$).height; + var total = $$.getTotalDataSum(true); + data.forEach(function (d) { + // ratio = shape's height + d.ratio = (d.value / total) * height; + }); + return data; +} +var shapeFunnel = { + /** + * Initialize polar + * @private + */ + initFunnel: function () { + var $$ = this; + var $el = $$.$el; + $el.funnel = $el.main.select(".".concat($COMMON.chart)) + .append("g") + .classed($FUNNEL.chartFunnels, true); + // define background to prevent shape overflow + $el.funnel.background = $el.funnel.append("path") + .classed($FUNNEL.funnelBackground, true); + $$.bindFunnelEvent(); + }, + /** + * Bind events + * @private + */ + bindFunnelEvent: function () { + var $$ = this; + var funnel = $$.$el.funnel, config = $$.config, state = $$.state; + var getTarget = function (event) { + var _a; + var target = event.isTrusted ? event.target : (_a = state.eventReceiver.rect) === null || _a === void 0 ? void 0 : _a.node(); + var data; + if (/^path$/i.test(target.tagName)) { + state.event = event; + data = select(target).datum(); + } + return data; + }; + if (config.interaction_enabled) { + var isTouch = state.inputType === "touch"; + funnel + .on(isTouch ? "touchstart" : "mouseover mousemove", function (event) { + var data = getTarget(event); + if (data) { + $$.showTooltip([data], event.target); + /^(touchstart|mouseover)$/.test(event.type) && $$.setOverOut(true, data); + } + }) + .on(isTouch ? "touchend" : "mouseout", function (event) { + var data = getTarget(event); + $$.hideTooltip(); + $$.setOverOut(false, data); + }); + } + }, + /** + * Update polar based on given data array + * @param {object} t Data object + * @private + */ + updateTargetsForFunnel: function (t) { + var $$ = this; + var funnel = $$.$el.funnel; + var classChartFunnel = $$.getChartClass("Funnel"); + var classFunnel = $$.getClass("funnel", true); + if (!funnel) { + $$.initFunnel(); + } + var targets = getFunnelData.call($$, t.filter($$.isFunnelType.bind($$))); + var mainFunnelUpdate = funnel + .selectAll(".".concat($FUNNEL.chartFunnel)) + .data(targets); + mainFunnelUpdate.exit().remove(); + var mainFunnelEnter = mainFunnelUpdate + .enter() + .insert("g", ".".concat($FUNNEL.funnelBackground)); + mainFunnelEnter + .append("path"); + funnel.path = mainFunnelEnter + .merge(mainFunnelUpdate) + .attr("class", function (d) { return classChartFunnel(d); }) + .select("path") + .attr("class", classFunnel) + .style("opacity", "0") + .style("fill", $$.color); + }, + /** + * Update funnel path selection + * @param {object} targets Updated target data + * @private + */ + updateFunnel: function (targets) { + var $$ = this; + var funnel = $$.$el.funnel; + var targetIds = targets.map(function (_a) { + var id = _a.id; + return id; + }); + funnel.path = funnel.path.filter(function (d) { return targetIds.indexOf(d.id) >= 0; }); + }, + /** + * Generate treemap coordinate points data + * @returns {Array} Array of coordinate points + * @private + */ + generateGetFunnelPoints: function () { + var $$ = this; + var funnel = $$.$el.funnel; + var targets = $$.filterTargetsToShow(funnel.path); + var _a = getSize.call($$), top = _a.top, left = _a.left, right = _a.right; + var center = (left - right) / 2; + var points = {}; + var accumulatedHeight = top !== null && top !== void 0 ? top : 0; + targets.each(function (d, i) { + var _a; + points[d.id] = [ + [center, accumulatedHeight], + [center, accumulatedHeight += ((_a = targets === null || targets === void 0 ? void 0 : targets[i]) !== null && _a !== void 0 ? _a : d).ratio] + ]; + }); + return function (d) { return points[d.id]; }; + }, + /** + * Called whenever redraw happens + * @private + */ + redrawFunnel: function () { + var $$ = this; + var $T = $$.$T, funnel = $$.$el.funnel; + var targets = $$.filterTargetsToShow(funnel.path); + var coords = getCoord.call($$, updateRatio.call($$, targets.data())); + // set neck path + funnel.attr("clip-path", "path('".concat(getClipPath.bind($$)(), "')")); + funnel.background.attr("d", getClipPath.call($$, true)); + $T(targets) + .attr("d", function (d, i) { return "M".concat(coords[i].join("L"), "z"); }) + .style("opacity", "1"); + funnel.selectAll("g").style("opacity", null); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var shapeGauge = { + initGauge: function () { + var $$ = this; + var config = $$.config, arcs = $$.$el.arcs; + var appendText = function (className, value) { + if (className === void 0) { className = null; } + if (value === void 0) { value = ""; } + arcs.append("text") + .attr("class", className) + .style("text-anchor", "middle") + .style("pointer-events", "none") + .text(value); + }; + if ($$.hasType("gauge")) { + var hasMulti = $$.hasMultiArcGauge(); + arcs.append(hasMulti ? "g" : "path") + .attr("class", $ARC.chartArcsBackground) + .style("fill", (!hasMulti && config.gauge_background) || null); + config.gauge_units && appendText($GAUGE.chartArcsGaugeUnit); + // append min/max value text + if (config.gauge_label_show) { + appendText($GAUGE.chartArcsGaugeMin); + !config.gauge_fullCircle && appendText($GAUGE.chartArcsGaugeMax); + } + } + }, + updateGaugeMax: function () { + var $$ = this; + var config = $$.config, state = $$.state; + var hasMultiGauge = $$.hasMultiArcGauge(); + // to prevent excluding total data sum during the init(when data.hide option is used), use $$.rendered state value + var max = hasMultiGauge ? + $$.getMinMaxData().max[0].value : + $$.getTotalDataSum(state.rendered); + // if gauge_max less than max, make max to max value + if (!config.gauge_enforceMinMax && (max + config.gauge_min * (config.gauge_min > 0 ? -1 : 1) > config.gauge_max)) { + config.gauge_max = max - config.gauge_min; + } + }, + redrawArcGaugeLine: function () { + var $$ = this; + var config = $$.config, state = $$.state, $el = $$.$el; + var hiddenTargetIds = $$.state.hiddenTargetIds; + var arcLabelLines = $el.main.selectAll(".".concat($ARC.arcs)) + .selectAll(".".concat($ARC.arcLabelLine)) + .data($$.arcData.bind($$)); + var mainArcLabelLine = arcLabelLines.enter() + .append("rect") + .attr("class", function (d) { return "".concat($ARC.arcLabelLine, " ").concat($COMMON.target, " ").concat($COMMON.target, "-").concat(d.data.id); }) + .merge(arcLabelLines); + mainArcLabelLine + .style("fill", function (d) { return ($$.levelColor ? $$.levelColor(d.data.values[0].value) : $$.color(d.data)); }) + .style("display", config.gauge_label_show ? null : "none") + .each(function (d) { + var lineLength = 0; + var lineThickness = 2; + var x = 0; + var y = 0; + var transform = ""; + if (hiddenTargetIds.indexOf(d.data.id) < 0) { + var updated = $$.updateAngle(d); + var innerLineLength = state.gaugeArcWidth / + $$.filterTargetsToShow($$.data.targets).length * + (updated.index + 1); + var lineAngle = updated.endAngle - Math.PI / 2; + var arcInnerRadius = state.radius - innerLineLength; + var linePositioningAngle = lineAngle - + (arcInnerRadius === 0 ? 0 : (1 / arcInnerRadius)); + lineLength = state.radiusExpanded - state.radius + innerLineLength; + x = Math.cos(linePositioningAngle) * arcInnerRadius; + y = Math.sin(linePositioningAngle) * arcInnerRadius; + transform = "rotate(".concat(lineAngle * 180 / Math.PI, ", ").concat(x, ", ").concat(y, ")"); + } + select(this) + .attr("x", x) + .attr("y", y) + .attr("width", lineLength) + .attr("height", lineThickness) + .attr("transform", transform) + .style("stroke-dasharray", "0, ".concat(lineLength + lineThickness, ", 0")); + }); + }, + textForGaugeMinMax: function (value, isMax) { + var $$ = this; + var config = $$.config; + var format = config.gauge_label_extents; + return isFunction(format) ? format.bind($$.api)(value, isMax) : value; + }, + getGaugeLabelHeight: function () { + var config = this.config; + return this.config.gauge_label_show && !config.gauge_fullCircle ? 20 : 0; + }, + getPaddingBottomForGauge: function () { + var $$ = this; + return $$.getGaugeLabelHeight() * ($$.config.gauge_label_show ? 2 : 2.5); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var shapeLine = { + initLine: function () { + var $el = this.$el; + $el.line = $el.main.select(".".concat($COMMON.chart)).append("g") + .attr("class", $LINE.chartLines) + .call(this.setCssRule(false, ".".concat($LINE.chartLines), ["pointer-events:none"])); + }, + updateTargetsForLine: function (t) { + var $$ = this; + var _a = $$.$el, area = _a.area, line = _a.line, main = _a.main; + var classChartLine = $$.getChartClass("Line"); + var classLines = $$.getClass("lines", true); + var classFocus = $$.classFocus.bind($$); + if (!line) { + $$.initLine(); + } + var targets = t.filter(function (d) { return !($$.isScatterType(d) || $$.isBubbleType(d)); }); + var mainLineUpdate = main.select(".".concat($LINE.chartLines)) + .selectAll(".".concat($LINE.chartLine)) + .data(targets) + .attr("class", function (d) { return classChartLine(d) + classFocus(d); }); + var mainLineEnter = mainLineUpdate.enter().append("g") + .attr("class", classChartLine) + .style("opacity", "0") + .style("pointer-events", $$.getStylePropValue("none")); + // Lines for each data + mainLineEnter.append("g") + .attr("class", classLines); + // Areas + if ($$.hasTypeOf("Area")) { + var mainLine = (!area && mainLineEnter.empty() ? mainLineUpdate : mainLineEnter).filter($$.isAreaType.bind($$)); + $$.initArea(mainLine); + } + $$.updateTargetForCircle(targets, mainLineEnter); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateLine: function (withTransition, isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var extraLineClasses = $$.format.extraLineClasses, $el = $$.$el, $T = $$.$T; + var $root = isSub ? $el.subchart : $el; + var line = $root.main + .selectAll(".".concat($LINE.lines)) + .selectAll(".".concat($LINE.line)) + .data($$.lineData.bind($$)); + $T(line.exit(), withTransition) + .style("opacity", "0") + .remove(); + $root.line = line.enter() + .append("path") + .attr("class", function (d) { return "".concat($$.getClass("line", true)(d), " ").concat(extraLineClasses(d) || ""); }) + .style("stroke", $$.color) + .merge(line) + .style("opacity", $$.initialOpacity.bind($$)) + .attr("transform", null); + }, + /** + * Redraw function + * @param {Function} drawFn Retuned functino from .generateDrawCandlestick() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + */ + redrawLine: function (drawFn, withTransition, isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var $el = $$.$el, $T = $$.$T; + var line = (isSub ? $el.subchart : $el).line; + return [ + $T(line, withTransition, getRandom()) + .attr("d", drawFn) + .style("stroke", this.color) + .style("opacity", null) + ]; + }, + /** + * Get the curve interpolate + * @param {Array} d Data object + * @returns {Function} + * @private + */ + getCurve: function (d) { + var $$ = this; + var isRotatedStepType = $$.config.axis_rotated && $$.isStepType(d); + // when is step & rotated, should be computed in different way + // https://github.com/naver/billboard.js/issues/471 + return isRotatedStepType ? + function (context) { + var step = $$.getInterpolate(d)(context); + // keep the original method + step.orgPoint = step.point; + // to get rotated path data + step.pointRotated = function (x, y) { + this._point === 1 && (this._point = 2); + var y1 = this._y * (1 - this._t) + y * this._t; + this._context.lineTo(this._x, y1); + this._context.lineTo(x, y1); + this._x = x; + this._y = y; + }; + step.point = function (x, y) { + this._point === 0 ? this.orgPoint(x, y) : this.pointRotated(x, y); + }; + return step; + } : + $$.getInterpolate(d); + }, + generateDrawLine: function (lineIndices, isSub) { + var $$ = this; + var config = $$.config, scale = $$.scale; + var lineConnectNull = config.line_connectNull; + var isRotated = config.axis_rotated; + var getPoints = $$.generateGetLinePoints(lineIndices, isSub); + var yScale = $$.getYScaleById.bind($$); + var xValue = function (d) { return (isSub ? $$.subxx : $$.xx).call($$, d); }; + var yValue = function (d, i) { return ($$.isGrouped(d.id) ? getPoints(d, i)[0][1] : yScale(d.id, isSub)($$.getBaseValue(d))); }; + var line = line$1(); + line = isRotated ? line.x(yValue).y(xValue) : line.x(xValue).y(yValue); + if (!lineConnectNull) { + line = line.defined(function (d) { return $$.getBaseValue(d) !== null; }); + } + var x = isSub ? scale.subX : scale.x; + return function (d) { + var y = yScale(d.id, isSub); + var values = lineConnectNull ? $$.filterRemoveNull(d.values) : d.values; + var x0 = 0; + var y0 = 0; + var path; + if ($$.isLineType(d)) { + var regions = config.data_regions[d.id]; + if (regions) { + path = $$.lineWithRegions(values, scale.zoom || x, y, regions); + } + else { + if ($$.isStepType(d)) { + values = $$.convertValuesToStep(values); + } + path = line.curve($$.getCurve(d))(values); + } + } + else { + if (values[0]) { + x0 = x(values[0].x); + y0 = y(values[0].value); + } + path = isRotated ? "M ".concat(y0, " ").concat(x0) : "M ".concat(x0, " ").concat(y0); + } + return path || "M 0 0"; + }; + }, + lineWithRegions: function (d, x, y, _regions) { + var $$ = this; + var config = $$.config; + var isRotated = config.axis_rotated; + var isTimeSeries = $$.axis.isTimeSeries(); + var regions = []; + var dasharray = "2 2"; // default value + var xp; + var yp; + var diff; + var diffx2; + // Check start/end of regions + if (isDefined(_regions)) { + var getValue = function (v, def) { return (isUndefined(v) ? def : (isTimeSeries ? parseDate.call($$, v) : v)); }; + for (var i = 0, reg = void 0; (reg = _regions[i]); i++) { + var start = getValue(reg.start, d[0].x); + var end = getValue(reg.end, d[d.length - 1].x); + var style = reg.style || { dasharray: dasharray }; + regions[i] = { start: start, end: end, style: style }; + } + } + // Set scales + var xValue = isRotated ? function (dt) { return y(dt.value); } : function (dt) { return x(dt.x); }; + var yValue = isRotated ? function (dt) { return x(dt.x); } : function (dt) { return y(dt.value); }; + // Define svg generator function for region + var generateM = function (points) { + return "M".concat(points[0][0], ",").concat(points[0][1], "L").concat(points[1][0], ",").concat(points[1][1]); + }; + var sWithRegion = isTimeSeries ? + function (d0, d1, k, timeseriesDiff) { + var x0 = d0.x.getTime(); + var xDiff = d1.x - d0.x; + var xv0 = new Date(x0 + xDiff * k); + var xv1 = new Date(x0 + xDiff * (k + timeseriesDiff)); + var points = isRotated ? + [[y(yp(k)), x(xv0)], [y(yp(k + diff)), x(xv1)]] : + [[x(xv0), y(yp(k))], [x(xv1), y(yp(k + diff))]]; + return generateM(points); + } : + function (d0, d1, k, otherDiff) { + var points = isRotated ? + [[y(yp(k), true), x(xp(k))], [ + y(yp(k + otherDiff), true), + x(xp(k + otherDiff)) + ]] : + [[x(xp(k), true), y(yp(k))], [ + x(xp(k + otherDiff), true), + y(yp(k + otherDiff)) + ]]; + return generateM(points); + }; + // Generate + var axisType = { x: $$.axis.getAxisType("x"), y: $$.axis.getAxisType("y") }; + var path = ""; + for (var i = 0, data = void 0; (data = d[i]); i++) { + var prevData = d[i - 1]; + var hasPrevData = prevData && isValue(prevData.value); + var style = $$.isWithinRegions(data.x, regions); + // https://github.com/naver/billboard.js/issues/1172 + if (!isValue(data.value)) { + continue; + } + // Draw as normal + if (isUndefined(regions) || !style || !hasPrevData) { + path += "".concat(i && hasPrevData ? "L" : "M").concat(xValue(data), ",").concat(yValue(data)); + } + else if (hasPrevData) { + try { + style = style.dasharray.split(" "); + } + catch (e) { + style = dasharray.split(" "); + } + // Draw with region // TODO: Fix for horizotal charts + xp = getScale(axisType.x, prevData.x, data.x); + yp = getScale(axisType.y, prevData.value, data.value); + var dx = x(data.x) - x(prevData.x); + var dy = y(data.value) - y(prevData.value); + var dd = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2)); + diff = style[0] / dd; + diffx2 = diff * style[1]; + for (var j = diff; j <= 1; j += diffx2) { + path += sWithRegion(prevData, data, j, diff); + // to make sure correct line drawing + if (j + diffx2 >= 1) { + path += sWithRegion(prevData, data, 1, 0); + } + } + } + } + return path; + }, + isWithinRegions: function (withinX, withinRegions) { + for (var i = 0, reg = void 0; (reg = withinRegions[i]); i++) { + if (reg.start < withinX && withinX <= reg.end) { + return reg.style; + } + } + return false; + }, + isWithinStep: function (that, y) { + return Math.abs(y - getPointer(this.state.event, that)[1]) < 30; + }, + shouldDrawPointsForLine: function (d) { + var linePoint = this.config.line_point; + return linePoint === true || + (isArray(linePoint) && linePoint.indexOf(d.id) !== -1); + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var getTransitionName = function () { return getRandom(); }; +var shapePoint = { + initialOpacityForCircle: function (d) { + var _a = this, config = _a.config, withoutFadeIn = _a.state.withoutFadeIn; + var opacity = config.point_opacity; + if (isUndefined(opacity)) { + opacity = this.getBaseValue(d) !== null && + withoutFadeIn[d.id] ? + this.opacityForCircle(d) : + "0"; + } + return opacity; + }, + opacityForCircle: function (d) { + var _a; + var config = this.config; + var opacity = config.point_opacity; + if (isUndefined(opacity)) { + opacity = config.point_show && !((_a = this.isPointFocusOnly) === null || _a === void 0 ? void 0 : _a.call(this)) ? null : "0"; + opacity = isValue(this.getBaseValue(d)) ? + (this.isBubbleType(d) || this.isScatterType(d) ? "0.5" : opacity) : + "0"; + } + return opacity; + }, + initCircle: function () { + var $$ = this; + var main = $$.$el.main; + !$$.point && ($$.point = $$.generatePoint()); + if (($$.hasType("bubble") || $$.hasType("scatter")) && + main.select(".".concat($COMMON.chart, " > .").concat($CIRCLE.chartCircles)).empty()) { + main.select(".".concat($COMMON.chart)) + .append("g") + .attr("class", $CIRCLE.chartCircles); + } + }, + updateTargetForCircle: function (targetsValue, enterNodeValue) { + var _this = this; + var $$ = this; + var config = $$.config, data = $$.data, $el = $$.$el; + var selectionEnabled = config.interaction_enabled && config.data_selection_enabled; + var isSelectable = selectionEnabled && config.data_selection_isselectable; + var classCircles = $$.getClass("circles", true); + if (!config.point_show) { + return; + } + $$.initCircle(); + var targets = targetsValue; + var enterNode = enterNodeValue; + // only for scatter & bubble type should generate seprate <g> node + if (!targets) { + targets = data.targets + .filter(function (d) { return _this.isScatterType(d) || _this.isBubbleType(d); }); + var mainCircle = $el.main.select(".".concat($CIRCLE.chartCircles)) + .style("pointer-events", "none") + .selectAll(".".concat($CIRCLE.circles)) + .data(targets); + mainCircle.exit().remove(); + enterNode = mainCircle.enter(); + } + // Circles for each data point on lines + selectionEnabled && enterNode.append("g") + .attr("class", function (d) { return $$.generateClass($SELECT.selectedCircles, d.id); }); + enterNode.append("g") + .attr("class", classCircles) + .call(function (selection) { + $$.setCssRule(true, ".".concat($CIRCLE.circles), ["cursor:pointer"], isSelectable)(selection); + $$.setCssRule(true, " .".concat($CIRCLE.circle), ["fill", "stroke"], $$.color)(selection); + }) + .style("opacity", function () { + var parent = select(this.parentNode); + // if the parent node is .bb-chart-circles (bubble, scatter), initialize <g bb-circles> with opacity "0" + return parent.attr("class").indexOf($CIRCLE.chartCircles) > -1 ? "0" : null; + }); + // Update date for selected circles + selectionEnabled && targets.forEach(function (t) { + $el.main.selectAll(".".concat($SELECT.selectedCircles).concat($$.getTargetSelectorSuffix(t.id))) + .selectAll("".concat($SELECT.selectedCircle)) + .each(function (d) { + d.value = t.values[d.index].value; + }); + }); + }, + updateCircle: function (isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var config = $$.config, state = $$.state, $el = $$.$el; + var focusOnly = $$.isPointFocusOnly(); + var $root = isSub ? $el.subchart : $el; + if (config.point_show && !state.toggling) { + config.point_radialGradient && $$.updateLinearGradient(); + var circles = $root.main.selectAll(".".concat($CIRCLE.circles)) + .selectAll(".".concat($CIRCLE.circle)) + .data(function (d) { return (($$.isLineType(d) && $$.shouldDrawPointsForLine(d)) || + $$.isBubbleType(d) || $$.isRadarType(d) || $$.isScatterType(d) ? + (focusOnly ? [d.values[0]] : d.values) : + []); }); + circles.exit().remove(); + circles.enter() + .filter(Boolean) + .append($$.point("create", this, $$.pointR.bind($$), $$.updateCircleColor.bind($$))); + $root.circle = $root.main.selectAll(".".concat($CIRCLE.circles, " .").concat($CIRCLE.circle)) + .style("stroke", $$.getStylePropValue($$.color)) + .style("opacity", $$.initialOpacityForCircle.bind($$)); + } + }, + /** + * Update circle color + * @param {object} d Data object + * @returns {string} Color string + * @private + */ + updateCircleColor: function (d) { + var $$ = this; + var fn = $$.getStylePropValue($$.color); + return $$.config.point_radialGradient ? $$.getGradienColortUrl(d.id) : (fn ? fn(d) : null); + }, + redrawCircle: function (cx, cy, withTransition, flow, isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var rendered = $$.state.rendered, $el = $$.$el, $T = $$.$T; + var $root = isSub ? $el.subchart : $el; + var selectedCircles = $root.main.selectAll(".".concat($SELECT.selectedCircle)); + if (!$$.config.point_show) { + return []; + } + var fn = $$.point("update", $$, cx, cy, $$.updateCircleColor.bind($$), withTransition, flow, selectedCircles); + var posAttr = $$.isCirclePoint() ? "c" : ""; + var t = getRandom(); + var opacityStyleFn = $$.opacityForCircle.bind($$); + var mainCircles = []; + $root.circle.each(function (d) { + var result = fn.bind(this)(d); + result = $T(result, withTransition || !rendered, t) + .style("opacity", opacityStyleFn); + mainCircles.push(result); + }); + return [ + mainCircles, + $T(selectedCircles, withTransition) + .attr("".concat(posAttr, "x"), cx) + .attr("".concat(posAttr, "y"), cy) + ]; + }, + /** + * Show focused data point circle + * @param {object} d Selected data + * @private + */ + showCircleFocus: function (d) { + var $$ = this; + var _a = $$.state, hasRadar = _a.hasRadar, resizing = _a.resizing, toggling = _a.toggling, transiting = _a.transiting, $el = $$.$el; + var circle = $el.circle; + if (transiting === false && circle && $$.isPointFocusOnly()) { + var cx = (hasRadar ? $$.radarCircleX : $$.circleX).bind($$); + var cy = (hasRadar ? $$.radarCircleY : $$.circleY).bind($$); + var withTransition = toggling || isUndefined(d); + var fn_1 = $$.point("update", $$, cx, cy, $$.getStylePropValue($$.color), resizing ? false : withTransition); + if (d) { + circle = circle + .filter(function (t) { + var _a; + var data = (_a = d.filter) === null || _a === void 0 ? void 0 : _a.call(d, function (v) { return v.id === t.id; }); + return data.length ? select(this).datum(data[0]) : false; + }); + } + circle + .attr("class", this.updatePointClass.bind(this)) + .style("opacity", null) + .each(function (d) { + var id = d.id, index = d.index, value = d.value; + var visibility = "hidden"; + if (isValue(value)) { + fn_1.bind(this)(d); + $$.expandCircles(index, id); + visibility = ""; + } + this.style.visibility = visibility; + }); + } + }, + /** + * Hide focused data point circle + * @private + */ + hideCircleFocus: function () { + var $$ = this; + var circle = $$.$el.circle; + if ($$.isPointFocusOnly() && circle) { + $$.unexpandCircles(); + circle.style("visibility", "hidden"); + } + }, + circleX: function (d) { + return this.xx(d); + }, + updateCircleY: function (isSub) { + if (isSub === void 0) { isSub = false; } + var $$ = this; + var getPoints = $$.generateGetLinePoints($$.getShapeIndices($$.isLineType), isSub); + return function (d, i) { + var id = d.id; + return $$.isGrouped(id) ? + getPoints(d, i)[0][1] : + $$.getYScaleById(id, isSub)($$.getBaseValue(d)); + }; + }, + expandCircles: function (i, id, reset) { + var $$ = this; + var r = $$.pointExpandedR.bind($$); + reset && $$.unexpandCircles(); + var circles = $$.getShapeByIndex("circle", i, id).classed($COMMON.EXPANDED, true); + var scale = r(circles) / $$.config.point_r; + var ratio = 1 - scale; + if ($$.isCirclePoint()) { + circles.attr("r", r); + } + else { + // transform must be applied to each node individually + circles.each(function () { + var point = select(this); + if (this.tagName === "circle") { + point.attr("r", r); + } + else { + var _a = this.getBBox(), width = _a.width, height = _a.height; + var x = ratio * (+point.attr("x") + width / 2); + var y = ratio * (+point.attr("y") + height / 2); + point.attr("transform", "translate(".concat(x, " ").concat(y, ") scale(").concat(scale, ")")); + } + }); + } + }, + unexpandCircles: function (i) { + var $$ = this; + var r = $$.pointR.bind($$); + var circles = $$.getShapeByIndex("circle", i) + .filter(function () { + return select(this).classed($COMMON.EXPANDED); + }) + .classed($COMMON.EXPANDED, false); + circles.attr("r", r); + if (!$$.isCirclePoint()) { + var scale = r(circles) / $$.config.point_r; + circles.attr("transform", scale !== 1 ? "scale(".concat(scale, ")") : null); + } + }, + pointR: function (d) { + var $$ = this; + var config = $$.config; + var pointR = config.point_r; + var r = pointR; + if ($$.isBubbleType(d)) { + r = $$.getBubbleR(d); + } + else if (isFunction(pointR)) { + r = pointR.bind($$.api)(d); + } + d.r = r; + return r; + }, + pointExpandedR: function (d) { + var $$ = this; + var config = $$.config; + var scale = $$.isBubbleType(d) ? 1.15 : 1.75; + return config.point_focus_expand_enabled ? + (config.point_focus_expand_r || $$.pointR(d) * scale) : + $$.pointR(d); + }, + pointSelectR: function (d) { + var $$ = this; + var selectR = $$.config.point_select_r; + return isFunction(selectR) ? selectR(d) : (selectR || $$.pointR(d) * 4); + }, + /** + * Check if point.focus.only option can be applied. + * @returns {boolean} + * @private + */ + isPointFocusOnly: function () { + var $$ = this; + return $$.config.point_focus_only && + !$$.hasType("bubble") && !$$.hasType("scatter") && !$$.hasArcType(null, ["radar"]); + }, + isWithinCircle: function (node, r) { + var _a = this, config = _a.config, state = _a.state; + var mouse = getPointer(state.event, node); + var element = select(node); + var prefix = this.isCirclePoint(node) ? "c" : ""; + var sensitivity = config.point_sensitivity === "radius" ? + node.getAttribute("r") : + config.point_sensitivity; + var cx = +element.attr("".concat(prefix, "x")); + var cy = +element.attr("".concat(prefix, "y")); + // if node don't have cx/y or x/y attribute value + if (!(cx || cy) && node.nodeType === 1) { + var _b = getBoundingRect(node), x = _b.x, y = _b.y; + cx = x; + cy = y; + } + return Math.sqrt(Math.pow(cx - mouse[0], 2) + Math.pow(cy - mouse[1], 2)) < (r || sensitivity); + }, + /** + * Get data point sensitivity radius + * @param {object} d Data point object + * @returns {number} return the sensitivity value + */ + getPointSensitivity: function (d) { + var $$ = this; + var sensitivity = $$.config.point_sensitivity; + if (isFunction(sensitivity)) { + sensitivity = sensitivity.call($$.api, d); + } + else if (sensitivity === "radius") { + sensitivity = d.r; + } + return sensitivity; + }, + updatePointClass: function (d) { + var $$ = this; + var circle = $$.$el.circle; + var pointClass = false; + if (isObject(d) || circle) { + pointClass = d === true ? + circle.each(function (d) { + var className = $$.getClass("circle", true)(d); + if (this.getAttribute("class").indexOf($COMMON.EXPANDED) > -1) { + className += " ".concat($COMMON.EXPANDED); + } + this.setAttribute("class", className); + }) : + $$.getClass("circle", true)(d); + } + return pointClass; + }, + generateGetLinePoints: function (lineIndices, isSub) { + var $$ = this; + var config = $$.config; + var x = $$.getShapeX(0, lineIndices, isSub); + var y = $$.getShapeY(isSub); + var lineOffset = $$.getShapeOffset($$.isLineType, lineIndices, isSub); + var yScale = $$.getYScaleById.bind($$); + return function (d, i) { + var y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id)); + var offset = lineOffset(d, i) || y0; // offset is for stacked area chart + var posX = x(d); + var posY = y(d); + // fix posY not to overflow opposite quadrant + if (config.axis_rotated && ((d.value > 0 && posY < y0) || (d.value < 0 && y0 < posY))) { + posY = y0; + } + // 1 point that marks the line position + var point = [posX, posY - (y0 - offset)]; + return [ + point, + point, // from here and below, needed for compatibility + point, + point + ]; + }; + }, + custom: { + create: function (element, id, fillStyleFn) { + return element.append("use") + .attr("xlink:href", "#".concat(id)) + .attr("class", this.updatePointClass.bind(this)) + .style("fill", fillStyleFn) + .node(); + }, + update: function (element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) { + var $$ = this; + var _a = element.node().getBBox(), width = _a.width, height = _a.height; + var xPosFn2 = function (d) { return (isValue(d.value) ? xPosFn(d) - width / 2 : 0); }; + var yPosFn2 = function (d) { return (isValue(d.value) ? yPosFn(d) - height / 2 : 0); }; + var mainCircles = element; + if (withTransition) { + flow && mainCircles.attr("x", xPosFn2); + mainCircles = $$.$T(mainCircles, withTransition, getTransitionName()); + selectedCircles && $$.$T(selectedCircles, withTransition, getTransitionName()); + } + return mainCircles + .attr("x", xPosFn2) + .attr("y", yPosFn2) + .style("fill", fillStyleFn); + } + }, + // 'circle' data point + circle: { + create: function (element, sizeFn, fillStyleFn) { + return element.append("circle") + .attr("class", this.updatePointClass.bind(this)) + .attr("r", sizeFn) + .style("fill", fillStyleFn) + .node(); + }, + update: function (element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) { + var $$ = this; + var mainCircles = element; + // when '.load()' called, bubble size should be updated + if ($$.hasType("bubble")) { + mainCircles.attr("r", $$.pointR.bind($$)); + } + if (withTransition) { + flow && mainCircles.attr("cx", xPosFn); + if (mainCircles.attr("cx")) { + mainCircles = $$.$T(mainCircles, withTransition, getTransitionName()); + } + selectedCircles && $$.$T(mainCircles, withTransition, getTransitionName()); + } + return mainCircles + .attr("cx", xPosFn) + .attr("cy", yPosFn) + .style("fill", fillStyleFn); + } + }, + // 'rectangle' data point + rectangle: { + create: function (element, sizeFn, fillStyleFn) { + var rectSizeFn = function (d) { return sizeFn(d) * 2.0; }; + return element.append("rect") + .attr("class", this.updatePointClass.bind(this)) + .attr("width", rectSizeFn) + .attr("height", rectSizeFn) + .style("fill", fillStyleFn) + .node(); + }, + update: function (element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) { + var $$ = this; + var r = $$.config.point_r; + var rectXPosFn = function (d) { return xPosFn(d) - r; }; + var rectYPosFn = function (d) { return yPosFn(d) - r; }; + var mainCircles = element; + if (withTransition) { + flow && mainCircles.attr("x", rectXPosFn); + mainCircles = $$.$T(mainCircles, withTransition, getTransitionName()); + selectedCircles && $$.$T(selectedCircles, withTransition, getTransitionName()); + } + return mainCircles + .attr("x", rectXPosFn) + .attr("y", rectYPosFn) + .style("fill", fillStyleFn); + } + } +}; + +/** + * Check if point draw methods are valid + * @param {string} point point type + * @returns {boolean} + * @private + */ +function hasValidPointDrawMethods(point) { + return isObjectType(point) && + isFunction(point.create) && isFunction(point.update); +} +/** + * Insert point info defs element + * @param {string} point Point element + * @param {string} id Point id + * @private + */ +function insertPointInfoDefs(point, id) { + var _a; + var $$ = this; + var copyAttr = function (from, target) { + var attribs = from.attributes; + for (var i = 0, name_1; (name_1 = attribs[i]); i++) { + name_1 = name_1.name; + target.setAttribute(name_1, from.getAttribute(name_1)); + } + }; + var doc$1 = new DOMParser().parseFromString(point, "image/svg+xml"); + var node = doc$1.documentElement; + var clone = doc.createElementNS(namespaces.svg, node.nodeName.toLowerCase()); + clone.id = id; + clone.style.fill = "inherit"; + clone.style.stroke = "inherit"; + copyAttr(node, clone); + if ((_a = node.childNodes) === null || _a === void 0 ? void 0 : _a.length) { + var parent_1 = select(clone); + if ("innerHTML" in clone) { + parent_1.html(node.innerHTML); + } + else { + toArray(node.childNodes).forEach(function (v) { + copyAttr(v, parent_1.append(v.tagName).node()); + }); + } + } + $$.$el.defs.node().appendChild(clone); +} +var shapePointCommon = { + /** + * Check if point type option is valid + * @param {string} type point type + * @returns {boolean} + * @private + */ + hasValidPointType: function (type) { + return /^(circle|rect(angle)?|polygon|ellipse|use)$/i.test(type || this.config.point_type); + }, + /** + * Check if pattern point is set to be used on legend + * @returns {boolean} + * @private + */ + hasLegendDefsPoint: function () { + var _a; + var config = this.config; + return config.legend_show && ((_a = config.point_pattern) === null || _a === void 0 ? void 0 : _a.length) && config.legend_usePoint; + }, + getDefsPointId: function (id) { + var datetimeId = this.state.datetimeId; + return "".concat(datetimeId, "-point").concat(id); + }, + /** + * Get generate point function + * @returns {Function} + * @private + */ + generatePoint: function () { + var $$ = this; + var $el = $$.$el, config = $$.config; + var ids = []; + var pattern = notEmpty(config.point_pattern) ? config.point_pattern : [config.point_type]; + return function (method, context) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + return function (d) { + var _a, _b, _c, _d; + var id = $$.getTargetSelectorSuffix(d.id || ((_a = d.data) === null || _a === void 0 ? void 0 : _a.id) || d); + var element = select(this); + ids.indexOf(id) < 0 && ids.push(id); + var point = pattern[ids.indexOf(id) % pattern.length]; + if ($$.hasValidPointType(point)) { + point = $$[point]; + } + else if (!hasValidPointDrawMethods(point || config.point_type)) { + var pointId = $$.getDefsPointId(id); + var defsPoint = $el.defs.select("#".concat(pointId)); + if (defsPoint.size() < 1) { + insertPointInfoDefs.bind($$)(point, pointId); + } + if (method === "create") { + return (_b = $$.custom) === null || _b === void 0 ? void 0 : _b.create.bind(context).apply(void 0, __spreadArray([element, pointId], args, false)); + } + else if (method === "update") { + return (_c = $$.custom) === null || _c === void 0 ? void 0 : _c.update.bind(context).apply(void 0, __spreadArray([element], args, false)); + } + } + return (_d = point[method]) === null || _d === void 0 ? void 0 : _d.bind(context).apply(void 0, __spreadArray([element], args, false)); + }; + }; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Get data max value + * @param {object} $$ ChartInternal instance + * @returns {number} max value + * @private + */ +function getDataMax($$) { + var levelMax = $$.config.polar_level_max; + var dataMax = $$.getMinMaxData().max[0].value; + // Apply level max only when is greater than the data max value + if (levelMax && levelMax > dataMax) { + dataMax = levelMax; + } + return dataMax; +} +var shapePolar = { + /** + * Initialize polar + * @private + */ + initPolar: function () { + var $$ = this; + var arcs = $$.$el.arcs, config = $$.config; + var levelTextShow = config.polar_level_text_show; + var levelTextBgColor = config.polar_level_text_backgroundColor; + // append <g> for level + arcs.levels = arcs.append("g") + .attr("class", $LEVEL.levels); + // set level text background color + if (levelTextShow && levelTextBgColor) { + $$.generateTextBGColorFilter(levelTextBgColor); + } + }, + /** + * Get polar outer radius according to the data value + * @param {object} d Data object + * @param {numbet} outerRadius Outer radius + * @returns {number} outer radius + * @private + */ + getPolarOuterRadius: function (d, outerRadius) { + var _a; + var dataMax = getDataMax(this); + return (((_a = d === null || d === void 0 ? void 0 : d.data.values[0].value) !== null && _a !== void 0 ? _a : 0) / dataMax) * outerRadius; + }, + /** + * Update polar based on given data array + * @param {object} targets Data object + * @private + */ + updateTargetsForPolar: function (targets) { + // borrow from Arc + this.updateTargetsForArc(targets); + }, + /** + * Called whenever redraw happens + * @private + */ + redrawPolar: function () { + var $$ = this; + var config = $$.config; + config.polar_level_show && $$.updatePolarLevel(); + }, + /** + * Update polar level circle + * @private + */ + updatePolarLevel: function () { + var $$ = this; + var config = $$.config, state = $$.state, levels = $$.$el.arcs.levels; + var depth = config.polar_level_depth; + var dataMax = getDataMax($$); + var levelData = getRange(0, depth); + var outerRadius = state.radius; + var levelRatio = levelData.map(function (l) { return outerRadius * ((l + 1) / depth); }); + var levelTextFormat = (config.polar_level_text_format || function () { }).bind($$.api); + var level = levels + .selectAll(".".concat($LEVEL.level)) + .data(levelData); + level.exit().remove(); + var levelEnter = level.enter().append("g") + .attr("class", function (d, i) { return "".concat($LEVEL.level, " ").concat($LEVEL.level, "-").concat(i); }); + // cx, cy, translate: Set center as origin (0,0) so that it can share same center with arcs + levelEnter.append("circle"); + levelEnter + .merge(level) + .selectAll("circle") + .style("visibility", config.polar_level_show ? null : "hidden") + .attr("cx", 0) + .attr("cy", 0) + .attr("r", function (d) { return levelRatio[d]; }); + if (config.polar_level_text_show) { + var levelTextBackgroundColor = config.polar_level_text_backgroundColor; + var defsId = "#".concat(state.datetimeId, "-labels-bg").concat($$.getTargetSelectorSuffix(levelTextBackgroundColor)); + levelEnter.append("text") + .style("text-anchor", "middle"); + levelEnter + .merge(level) + .selectAll("text") + .attr("dy", function (d) { return -levelRatio[d] + 5; }) + .attr("filter", levelTextBackgroundColor ? "url(".concat(defsId, ")") : null) + .text(function (d) { return levelTextFormat(dataMax / levelData.length * (d + 1)); }); + } + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Get the position value + * @param {boolean} isClockwise If the direction is clockwise + * @param {string} type Coordinate type 'x' or 'y' + * @param {number} edge Number of edge + * @param {number} pos The indexed position + * @param {number} range Range value + * @param {number} ratio Ratio value + * @returns {number} + * @private + */ +function getPosition(isClockwise, type, edge, pos, range, ratio) { + var index = isClockwise && pos > 0 ? edge - pos : pos; + var r = 2 * Math.PI; + var func = type === "x" ? Math.sin : Math.cos; + return range * (1 - ratio * func(index * r / edge)); +} +// cache key +var cacheKeyPoints = KEY.radarPoints; +var cacheKeyTextWidth = KEY.radarTextWidth; +var shapeRadar = { + initRadar: function () { + var $$ = this; + var config = $$.config, current = $$.state.current, $el = $$.$el; + if ($$.hasType("radar")) { + $el.radar = $el.main.select(".".concat($COMMON.chart)).append("g") + .attr("class", $RADAR.chartRadars); + // level + $el.radar.levels = $el.radar.append("g") + .attr("class", $LEVEL.levels); + // axis + $el.radar.axes = $el.radar.append("g") + .attr("class", $AXIS.axis); + // shapes + $el.radar.shapes = $el.radar.append("g") + .attr("class", $SHAPE.shapes); + current.dataMax = config.radar_axis_max || $$.getMinMaxData().max[0].value; + if (config.radar_axis_text_show) { + config.interaction_enabled && $$.bindRadarEvent(); + // it needs to calculate dimension at the initialization + $$.updateRadarLevel(); + $$.updateRadarAxes(); + } + } + }, + getRadarSize: function () { + var $$ = this; + var config = $$.config, _a = $$.state, arcWidth = _a.arcWidth, arcHeight = _a.arcHeight; + var padding = config.axis_x_categories.length < 4 ? -20 : 10; + var size = (Math.min(arcWidth, arcHeight) - padding) / 2; + return [size, size]; + }, + updateTargetsForRadar: function (targets) { + var $$ = this; + var config = $$.config; + if (isEmpty(config.axis_x_categories)) { + config.axis_x_categories = getRange(0, getMinMax$1("max", targets.map(function (v) { + return v.values.length; + }))); + } + $$.generateRadarPoints(); + }, + getRadarPosition: function (type, index, range, ratio) { + var $$ = this; + var config = $$.config; + var _a = $$.getRadarSize(), width = _a[0], height = _a[1]; + var edge = config.axis_x_categories.length; + var isClockwise = config.radar_direction_clockwise; + var pos = toArray(type).map(function (v) { + return getPosition(isClockwise, v, edge, index, isDefined(range) ? range : (type === "x" ? width : height), isNumber(ratio) ? ratio : config.radar_size_ratio); + }); + return pos.length === 1 ? pos[0] : pos; + }, + /** + * Generate data points + * @private + */ + generateRadarPoints: function () { + var $$ = this; + var targets = $$.data.targets; + var _a = $$.getRadarSize(), width = _a[0], height = _a[1]; + var points = $$.cache.get(cacheKeyPoints) || {}; + var size = points._size; + // recalculate position only when the previous dimension has been changed + if (!size || (size.width !== width && size.height !== height)) { + targets.forEach(function (d) { + points[d.id] = d.values.map(function (v, i) { return ($$.getRadarPosition(["x", "y"], i, undefined, $$.getRatio("radar", v))); }); + }); + points._size = { width: width, height: height }; + $$.cache.add(cacheKeyPoints, points); + } + }, + redrawRadar: function () { + var $$ = this; + var _a = $$.$el, radar = _a.radar, main = _a.main; + var translate = $$.getTranslate("radar"); + // Adjust radar, circles and texts' position + if (translate) { + radar.attr("transform", translate); + main.select(".".concat($TEXT.chartTexts)).attr("transform", translate); + $$.generateRadarPoints(); + $$.updateRadarLevel(); + $$.updateRadarAxes(); + $$.updateRadarShape(); + } + }, + generateGetRadarPoints: function () { + var points = this.cache.get(cacheKeyPoints); + return function (d, i) { + var point = points[d.id][i]; + return [ + point, + point, + point, + point + ]; + }; + }, + updateRadarLevel: function () { + var $$ = this; + var config = $$.config, state = $$.state, radar = $$.$el.radar; + var _a = $$.getRadarSize(), width = _a[0], height = _a[1]; + var depth = config.radar_level_depth; + var edge = config.axis_x_categories.length; + var showText = config.radar_level_text_show; + var radarLevels = radar.levels; + var levelData = getRange(0, depth); + var radius = config.radar_size_ratio * Math.min(width, height); + var levelRatio = levelData.map(function (l) { return radius * ((l + 1) / depth); }); + var levelTextFormat = (config.radar_level_text_format || function () { }).bind($$.api); + // Generate points + var points = levelData.map(function (v) { + var range = levelRatio[v]; + var pos = getRange(0, edge).map(function (i) { + return ($$.getRadarPosition(["x", "y"], i, range, 1)).join(","); + }); + return pos.join(" "); + }); + var level = radarLevels + .selectAll(".".concat($LEVEL.level)) + .data(levelData); + level.exit().remove(); + var levelEnter = level.enter().append("g") + .attr("class", function (d, i) { return "".concat($LEVEL.level, " ").concat($LEVEL.level, "-").concat(i); }); + levelEnter.append("polygon") + .style("visibility", config.radar_level_show ? null : "hidden"); + if (showText) { + if (radarLevels.select("text").empty()) { + radarLevels + .append("text") + .attr("dx", "-.5em") + .attr("dy", "-.7em") + .style("text-anchor", "end") + .text(function () { return levelTextFormat(0); }); + } + levelEnter.append("text") + .attr("dx", "-.5em") + .style("text-anchor", "end") + .text(function (d) { + return levelTextFormat(state.current.dataMax / levelData.length * (d + 1)); + }); + } + levelEnter + .merge(level) + .attr("transform", function (d) { return "translate(".concat(width - levelRatio[d], ", ").concat(height - levelRatio[d], ")"); }) + .selectAll("polygon") + .attr("points", function (d) { return points[d]; }); + // update level text position + if (showText) { + radarLevels.selectAll("text") + .attr("x", function (d) { return (isUndefined(d) ? width : points[d].split(",")[0]); }) + .attr("y", function (d) { return (isUndefined(d) ? height : 0); }); + } + }, + updateRadarAxes: function () { + var $$ = this; + var config = $$.config, radar = $$.$el.radar; + var _a = $$.getRadarSize(), width = _a[0], height = _a[1]; + var categories = config.axis_x_categories; + var axis = radar.axes.selectAll("g") + .data(categories); + axis.exit().remove(); + var axisEnter = axis.enter().append("g") + .attr("class", function (d, i) { return "".concat($AXIS.axis, "-").concat(i); }); + config.radar_axis_line_show && axisEnter.append("line"); + config.radar_axis_text_show && axisEnter.append("text"); + axis = axisEnter.merge(axis); + // axis line + if (config.radar_axis_line_show) { + axis.select("line") + .attr("x1", width) + .attr("y1", height) + .attr("x2", function (d, i) { return $$.getRadarPosition("x", i); }) + .attr("y2", function (d, i) { return $$.getRadarPosition("y", i); }); + } + // axis text + if (config.radar_axis_text_show) { + var _b = config.radar_axis_text_position, _c = _b.x, x_1 = _c === void 0 ? 0 : _c, _d = _b.y, y_1 = _d === void 0 ? 0 : _d; + var textWidth = $$.cache.get(cacheKeyTextWidth) || 0; + axis.select("text") + .style("text-anchor", "middle") + .attr("dy", ".5em") + .call(function (selection) { + selection.each(function (d) { + setTextValue(select(this), String(d), [-0.6, 1.2]); + }); + }) + .datum(function (d, i) { return ({ index: i }); }) + .attr("transform", function (d) { + if (isUndefined(this.width)) { + // cache evaluated axis text width + this.width = this.getBoundingClientRect().width / 2; + } + var posX = $$.getRadarPosition("x", d.index, undefined, 1); + var posY = Math.round($$.getRadarPosition("y", d.index, undefined, 1)); + if (posX > width) { + posX += this.width + x_1; + } + else if (Math.round(posX) < width) { + posX -= this.width + x_1; + } + if (posY > height) { + // update vertical centered edge axis text dy position + if (posY / 2 === height && this.firstChild.tagName === "tspan") { + this.firstChild.setAttribute("dy", "0em"); + } + posY += y_1; + } + else if (posY < height) { + posY -= y_1; + } + return "translate(".concat(posX, " ").concat(posY, ")"); + }); + if (!textWidth) { + var widths = [radar.axes, radar.levels].map(function (v) { return getPathBox(v.node()).width; }); + if (widths.every(function (v) { return v > 0; })) { + $$.cache.add(cacheKeyTextWidth, widths[0] - widths[1]); + } + } + } + }, + bindRadarEvent: function () { + var $$ = this; + var state = $$.state, _a = $$.$el, radar = _a.radar, svg = _a.svg; + var focusOnly = $$.isPointFocusOnly(); + var inputType = state.inputType, transiting = state.transiting; + var isMouse = inputType === "mouse"; + var hide = function (event) { + state.event = event; + // const index = getIndex(event); + var index = $$.getDataIndexFromEvent(event); + var noIndex = isUndefined(index); + if (isMouse || noIndex) { + $$.hideTooltip(); + focusOnly ? $$.hideCircleFocus() : $$.unexpandCircles(); + if (isMouse) { + $$.setOverOut(false, index); + } + else if (noIndex) { + $$.callOverOutForTouch(); + } + } + }; + radar.axes + .on(isMouse ? "mouseover " : "touchstart", function (event) { + if (transiting) { // skip while transiting + return; + } + state.event = event; + var index = $$.getDataIndexFromEvent(event); + $$.selectRectForSingle(svg.node(), index); + isMouse ? $$.setOverOut(true, index) : $$.callOverOutForTouch(index); + }) + .on("mouseout", isMouse ? hide : null); + if (!isMouse) { + svg.on("touchstart", hide); + } + }, + updateRadarShape: function () { + var $$ = this; + var targets = $$.data.targets.filter(function (d) { return $$.isRadarType(d); }); + var points = $$.cache.get(cacheKeyPoints); + var areas = $$.$el.radar.shapes + .selectAll("polygon") + .data(targets); + var areasEnter = areas.enter().append("g") + .attr("class", $$.getChartClass("Radar")); + $$.$T(areas.exit()) + .remove(); + areasEnter + .append("polygon") + .merge(areas) + .style("fill", $$.color) + .style("stroke", $$.color) + .attr("points", function (d) { return points[d.id].join(" "); }); + $$.updateTargetForCircle(targets, areasEnter); + }, + /** + * Get data point x coordinate + * @param {object} d Data object + * @returns {number} + * @private + */ + radarCircleX: function (d) { + return this.cache.get(cacheKeyPoints)[d.id][d.index][0]; + }, + /** + * Get data point y coordinate + * @param {object} d Data object + * @returns {number} + * @private + */ + radarCircleY: function (d) { + return this.cache.get(cacheKeyPoints)[d.id][d.index][1]; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Get treemap elements' position + * @param {d3Selection} group Root selection + * @param {object} root Root data + * @private + */ +function position(group, root) { + var $$ = this; + var _a = $$.scale, x = _a.x, y = _a.y, width = $$.state.width; + group.selectAll("g") + .attr("transform", function (d) { return ("translate(".concat(d === root ? "0,0" : "".concat(x(d.x0), ",").concat(y(d.y0)), ")")); }) + .select("rect") + .attr("width", function (d) { return (d === root ? width : x(d.x1) - x(d.x0)); }) + .attr("height", function (d) { return (d === root ? 0 : y(d.y1) - y(d.y0)); }); +} +/** + * Convert data for treemap hierarchy + * @param {object} data Data object + * @returns {Array} Array of data for treemap hierarchy + * @private + */ +function convertDataToTreemapData(data) { + var $$ = this; + return data.map(function (d) { + var id = d.id, values = d.values; + var value = values[0].value; + return { + name: id, + id: id, // needed to keep compatibility on whole code logic + value: value, + ratio: $$.getRatio("treemap", values[0]) + }; + }); +} +/** + * Get hierarchy data + * @param {object} data Data object + * @returns {Array} Array of hierarchy data + * @private + */ +function getHierachyData(data) { + var $$ = this; + var hierarchyData = hierarchy(data).sum(function (d) { return d.value; }); + var sortFn = $$.getSortCompareFn(true); + return [ + $$.treemap(sortFn ? hierarchyData.sort(sortFn) : hierarchyData) + ]; +} +var shapeTreemap = { + initTreemap: function () { + var $$ = this; + var $el = $$.$el, _a = $$.state, _b = _a.current, width = _b.width, height = _b.height, clip = _a.clip, datetimeId = _a.datetimeId; + clip.id = "".concat(datetimeId, "-clip"); + $$.treemap = treemap$1() + .tile($$.getTreemapTile()); + $el.defs + .append("clipPath") + .attr("id", clip.id) + .append("rect") + .attr("width", width) + .attr("height", height); + $el.treemap = $el.main.select(".".concat($COMMON.chart)) + .attr("clip-path", "url(#".concat(clip.id, ")")) + .append("g") + .classed($TREEMAP.chartTreemaps, true); + $$.bindTreemapEvent(); + }, + /** + * Bind events + * @private + */ + bindTreemapEvent: function () { + var $$ = this; + var $el = $$.$el, config = $$.config, state = $$.state; + var getTarget = function (event) { + var _a; + var target = event.isTrusted ? event.target : (_a = state.eventReceiver.rect) === null || _a === void 0 ? void 0 : _a.node(); + var data; + if (/^rect$/i.test(target.tagName)) { + state.event = event; + data = select(target).datum(); + } + return data === null || data === void 0 ? void 0 : data.data; + }; + if (config.interaction_enabled) { + var isTouch = state.inputType === "touch"; + $el.treemap + .on(isTouch ? "touchstart" : "mouseover mousemove", function (event) { + var data = getTarget(event); + if (data) { + $$.showTooltip([data], event.currentTarget); + /^(touchstart|mouseover)$/.test(event.type) && $$.setOverOut(true, data); + } + }) + .on(isTouch ? "touchend" : "mouseout", function (event) { + var data = getTarget(event); + $$.hideTooltip(); + $$.setOverOut(false, data); + }); + } + }, + /** + * Get tiling function + * @returns {Function} + * @private + */ + getTreemapTile: function () { + var _a, _b; + var $$ = this; + var config = $$.config, _c = $$.state.current, width = _c.width, height = _c.height; + var tile = (_b = { + binary: treemapBinary, + dice: treemapDice, + slice: treemapSlice, + sliceDice: treemapSliceDice, + squarify: treemapSquarify, + resquarify: treemapResquarify + }[(_a = config.treemap_tile) !== null && _a !== void 0 ? _a : "binary"]) !== null && _b !== void 0 ? _b : treemapBinary; + return function (node, x0, y0, x1, y1) { + tile(node, 0, 0, width, height); + for (var _i = 0, _a = node.children; _i < _a.length; _i++) { + var child = _a[_i]; + child.x0 = x0 + child.x0 / width * (x1 - x0); + child.x1 = x0 + child.x1 / width * (x1 - x0); + child.y0 = y0 + child.y0 / height * (y1 - y0); + child.y1 = y0 + child.y1 / height * (y1 - y0); + } + }; + }, + /** + * Get treemap hierarchy data + * @param {Array} targets Data targets + * @returns {object} + * @private + */ + getTreemapData: function (targets) { + var $$ = this; + return { + name: "root", + children: convertDataToTreemapData.bind($$)($$.filterTargetsToShow(targets.filter($$.isTreemapType, $$))) + }; + }, + /** + * Update treemap data + * @param {Array} targets Data targets + * @private + */ + updateTargetsForTreemap: function (targets) { + var $$ = this; + var treemap = $$.$el.treemap; + var treemapData = getHierachyData.call($$, $$.getTreemapData(targets !== null && targets !== void 0 ? targets : $$.data.targets)); + // using $el.treemap reference can alter data, so select treemap <g> again + treemap.data(treemapData); + }, + /** + * Render treemap + * @param {number} durationForExit Duration for exit transition + * @private + */ + updateTreemap: function (durationForExit) { + var $$ = this; + var $el = $$.$el, $T = $$.$T; + var data = $el.treemap.datum(); + var classChartTreemap = $$.getChartClass("Treemap"); + var classTreemap = $$.getClass("treemap", true); + var treemap = $el.treemap + .selectAll("g") + .data(data.children); + $T(treemap.exit(), durationForExit) + .style("opacity", "0") + .remove(); + treemap.enter() + .append("g") + .append("rect"); + $el.treemap.selectAll("g") + .attr("class", classChartTreemap) + .select("rect") + .attr("class", classTreemap) + .attr("fill", function (d) { return $$.color(d.data.name); }); + }, + /** + * Generate treemap coordinate points data + * @returns {Array} Array of coordinate points + * @private + */ + generateGetTreemapPoints: function () { + var $$ = this; + var $el = $$.$el, _a = $$.scale, x = _a.x, y = _a.y; + var points = {}; + $el.treemap.selectAll("g").each(function (d) { + points[d.data.name] = [ + [x(d.x0), y(d.y0)], + [x(d.x1), y(d.y1)] + ]; + }); + return function (d) { return points[d.id]; }; + }, + /** + * Redraw treemap + * @param {boolean} withTransition With or without transition + * @returns {Array} Selections + * @private + */ + redrawTreemap: function (withTransition) { + var $$ = this; + var $el = $$.$el, _a = $$.state.current, width = _a.width, height = _a.height; + // update defs + $el.defs.select("rect") + .attr("width", width) + .attr("height", height); + return [ + $$.$T($el.treemap, withTransition, getRandom()) + .call(position.bind($$), $el.treemap.datum()) + ]; + }, + /** + * Get treemap data label format function + * @param {object} d Data object + * @returns {Function} + * @private + */ + treemapDataLabelFormat: function (d) { + var $$ = this; + var config = $$.config; + var id = d.id, value = d.value; + var format = config.treemap_label_format; + var ratio = $$.getRatio("treemap", d); + var percentValue = (ratio * 100).toFixed(2); + var meetLabelThreshold = config.treemap_label_show && $$.meetsLabelThreshold(ratio, "treemap") ? + null : + "0"; + return function (node) { + node.style("opacity", meetLabelThreshold); + return isFunction(format) ? + format.bind($$.api)(value, ratio, id) : + "".concat(id, "\n").concat(percentValue, "%"); + }; + } +}; + +/** + * point config options + */ +var optPoint = { + /** + * Set point options + * @name point + * @memberof Options + * @type {object} + * @property {object} point Point object + * @property {boolean} [point.show=true] Whether to show each point in line. + * @property {number|Function} [point.r=2.5] The radius size of each point. + * - **NOTE:** Disabled for 'bubble' type + * @property {boolean|object} [point.radialGradient=false] Set the radial gradient on point.<br><br> + * Or customize by giving below object value: + * - cx {number}: `cx` value (default: `0.3`) + * - cy {number}: `cy` value (default: `0.3`) + * - r {number}: `r` value (default: `0.7`) + * - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values. + * - (default: `[[0.1, $DATA_COLOR, 1], [0.9, $DATA_COLOR, 0]]`) + * @property {boolean} [point.focus.expand.enabled=true] Whether to expand each point on focus. + * @property {number} [point.focus.expand.r=point.r*1.75] The radius size of each point on focus. + * - **NOTE:** For 'bubble' type, the default is `bubbleSize*1.15` + * @property {boolean} [point.focus.only=false] Show point only when is focused. + * @property {number|null} [point.opacity=undefined] Set point opacity value. + * - **NOTE:** + * - `null` will make to not set inline 'opacity' css prop. + * - when no value(or undefined) is set, it defaults to set opacity value according its chart types. + * @property {number|string|Function} [point.sensitivity=10] The senstivity value for interaction boundary. + * - **Available Values:** + * - {number}: Absolute sensitivity value which is the distance from the data point in pixel. + * - "radius": sensitivity based on point's radius + * - Function: callback for each point to determine the sensitivity<br> + * ```js + * sensitivity: function(d) { + * // ex. of argument d: + * // ==> {x: 2, value: 55, id: 'data3', index: 2, r: 19.820624179302296} + * + * // returning d.r, will make sensitivity same as point's radius value. + * return d.r; + * } + * ``` + * @property {number} [point.select.r=point.r*4] The radius size of each point on selected. + * @property {string} [point.type="circle"] The type of point to be drawn + * - **NOTE:** + * - If chart has 'bubble' type, only circle can be used. + * - For IE, non circle point expansions are not supported due to lack of transform support. + * - **Available Values:** + * - circle + * - rectangle + * @property {Array} [point.pattern=[]] The type of point or svg shape as string, to be drawn for each line + * - **NOTE:** + * - This is an `experimental` feature and can have some unexpected behaviors. + * - If chart has 'bubble' type, only circle can be used. + * - For IE, non circle point expansions are not supported due to lack of transform support. + * - **Available Values:** + * - circle + * - rectangle + * - svg shape tag interpreted as string<br> + * (ex. `<polygon points='2.5 0 0 5 5 5'></polygon>`) + * @see [Demo: point type](https://naver.github.io/billboard.js/demo/#Point.RectanglePoints) + * @see [Demo: point focus only](https://naver.github.io/billboard.js/demo/#Point.FocusOnly) + * @see [Demo: point radialGradient](https://naver.github.io/billboard.js/demo/#Point.RadialGradientPoint) + * @see [Demo: point sensitivity](https://naver.github.io/billboard.js/demo/#Point.PointSensitivity) + * @example + * point: { + * show: false, + * r: 5, + * + * // or customize the radius + * r: function(d) { + * ... + * return r; + * }, + * + * // will generate follwing radialGradient: + * // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/radialGradient + * // <radualGradient cx="0.3" cy="0.3" r="0.7"> + * // <stop offset="0.1" stop-color="$DATA_COLOR" stop-opacity="1"></stop> + * // <stop offset="0.9" stop-color="$DATA_COLOR" stop-opacity="0"></stop> + * // </radialrGradient> + * radialGradient: true, + * + * // Or customized gradient + * radialGradient: { + * cx: 0.3, // cx attributes + * cy: 0.5, // cy attributes + * r: 0.7, // r attributes + * stops: [ + * // offset, stop-color, stop-opacity + * [0, "#7cb5ec", 1], + * + * // setting 'null' for stop-color, will set its original data color + * [0.5, null, 0], + * + * // setting 'function' for stop-color, will pass data id as argument. + * // It should return color string or null value + * [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0], + * ] + * }, + * + * focus: { + * expand: { + * enabled: true, + * r: 1 + * }, + * only: true + * }, + * + * // do not set inline 'opacity' css prop setting + * opacity: null, + * + * // set every data point's opacity value + * opacity: 0.7, + * + * select: { + * r: 3 + * }, + * + * // having lower value, means how closer to be for interaction + * sensitivity: 3, + * + * // sensitivity based on point's radius + * sensitivity: "radius", + * + * // callback for each point to determine the sensitivity + * sensitivity: function(d) { + * // ex. of argument d: + * // ==> {x: 2, value: 55, id: 'data3', index: 2, r: 19.820624179302296} + * + * // returning d.r, will make sensitivity same as point's radius value. + * return d.r; + * } + * + * // valid values are "circle" or "rectangle" + * type: "rectangle", + * + * // or indicate as pattern + * pattern: [ + * "circle", + * "rectangle", + * "<polygon points='0 6 4 0 -4 0'></polygon>" + * ], + * } + */ + point_show: true, + point_r: 2.5, + point_radialGradient: false, + point_sensitivity: 10, + point_focus_expand_enabled: true, + point_focus_expand_r: undefined, + point_focus_only: false, + point_opacity: undefined, + point_pattern: [], + point_select_r: undefined, + point_type: "circle" +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * area config options + */ +var optArea = { + /** + * Set area options + * @name area + * @memberof Options + * @type {object} + * @property {object} area Area object + * @property {boolean} [area.above=false] Set background area `above` the data chart line. + * @property {boolean} [area.below=false] Set background area `below` the data chart line. + * - **NOTE**: Can't be used along with `above` option. When above & below options are set to true, `above` will be prioritized. + * @property {boolean} [area.front=true] Set area node to be positioned over line node. + * @property {boolean|object} [area.linearGradient=false] Set the linear gradient on area.<br><br> + * Or customize by giving below object value: + * - x {Array}: `x1`, `x2` value (default: `[0, 0]`) + * - y {Array}: `y1`, `y2` value (default: `[0, 1]`) + * - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values. + * - (default: `[[0, $DATA_COLOR, 1], [1, $DATA_COLOR, 0]]`) + * @property {boolean} [area.zerobased=true] Set if min or max value will be 0 on area chart. + * @see [MDN's <linearGradient>](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient), [<stop>](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/stop) + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.AreaChart) + * @see [Demo: above](https://naver.github.io/billboard.js/demo/#AreaChartOptions.Above) + * @see [Demo: below](https://naver.github.io/billboard.js/demo/#AreaChartOptions.Below) + * @see [Demo: linearGradient](https://naver.github.io/billboard.js/demo/#AreaChartOptions.LinearGradient) + * @example + * area: { + * above: true, + * below: false, + * zerobased: false, + * + * // <g class='bb-areas'> will be positioned behind the line <g class='bb-lines'> in stacking order + * front: false, + * + * // will generate follwing linearGradient: + * // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient + * // <linearGradient x1="0" x2="0" y1="0" y2="1"> + * // <stop offset="0" stop-color="$DATA_COLOR" stop-opacity="1"></stop> + * // <stop offset="1" stop-color="$DATA_COLOR" stop-opacity="0"></stop> + * // </linearGradient> + * linearGradient: true, + * + * // Or customized gradient + * linearGradient: { + * x: [0, 0], // x1, x2 attributes + * y: [0, 0], // y1, y2 attributes + * stops: [ + * // offset, stop-color, stop-opacity + * [0, "#7cb5ec", 1], + * + * // setting 'null' for stop-color, will set its original data color + * [0.5, null, 0], + * + * // setting 'function' for stop-color, will pass data id as argument. + * // It should return color string or null value + * [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0], + * ] + * } + * } + */ + area_above: false, + area_below: false, + area_front: true, + area_linearGradient: false, + area_zerobased: true +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * bar config options + */ +var optBar = { + /** + * Set bar options + * @name bar + * @memberof Options + * @type {object} + * @property {object} bar Bar object + * @property {boolean} [bar.front=false] Set 'bar' to be positioned over(on the top) other shapes elements. + * @property {number} [bar.indices.removeNull=false] Remove nullish data on bar indices positions. + * @property {number} [bar.label.threshold=0] Set threshold ratio to show/hide labels. + * @property {boolean|object} [bar.linearGradient=false] Set the linear gradient on bar.<br><br> + * Or customize by giving below object value: + * - x {Array}: `x1`, `x2` value (default: `[0, 0]`) + * - y {Array}: `y1`, `y2` value (default: `[0, 1]`) + * - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values. + * - (default: `[[0, $DATA_COLOR, 1], [1, $DATA_COLOR, 0]]`) + * @property {boolean} [bar.overlap=false] Bars will be rendered at same position, which will be overlapped each other. (for non-grouped bars only) + * @property {number} [bar.padding=0] The padding pixel value between each bar. + * @property {number} [bar.radius] Set the radius of bar edge in pixel. + * @property {number} [bar.radius.ratio] Set the radius ratio of bar edge in relative the bar's width. + * @property {number} [bar.sensitivity=2] The senstivity offset value for interaction boundary. + * @property {number} [bar.width] Change the width of bar chart. + * @property {number} [bar.width.ratio=0.6] Change the width of bar chart by ratio. + * @property {number} [bar.width.max] The maximum width value for ratio. + * @property {number} [bar.width.dataname] Change the width of bar for indicated dataset only. + * - **NOTE:** + * - Works only for non-stacked bar + * - Bars are centered accoding its total width value + * @property {number} [bar.width.dataname.ratio=0.6] Change the width of bar chart by ratio. + * @property {number} [bar.width.dataname.max] The maximum width value for ratio. + * @property {boolean} [bar.zerobased=true] Set if min or max value will be 0 on bar chart. + * @see [Demo: bar front](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarFront) + * @see [Demo: bar indices](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarIndices) + * @see [Demo: bar overlap](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarOverlap) + * @see [Demo: bar padding](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarPadding) + * @see [Demo: bar radius](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarRadius) + * @see [Demo: bar width](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarWidth) + * @see [Demo: bar width variant](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarWidthVariant) + * @example + * bar: { + * // make bar shape to be positioned over the other shape elements + * front: true, + * + * // remove nullish data on bar indices postions + * indices: { + * removeNull: true + * }, + * + * // will generate follwing linearGradient: + * // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient + * // <linearGradient x1="0" x2="0" y1="0" y2="1"> + * // <stop offset="0" stop-color="$DATA_COLOR" stop-opacity="1"></stop> + * // <stop offset="1" stop-color="$DATA_COLOR" stop-opacity="0"></stop> + * // </linearGradient> + * linearGradient: true, + * + * // Or customized gradient + * linearGradient: { + * x: [0, 0], // x1, x2 attributes + * y: [0, 0], // y1, y2 attributes + * stops: [ + * // offset, stop-color, stop-opacity + * [0, "#7cb5ec", 1], + * + * // setting 'null' for stop-color, will set its original data color + * [0.5, null, 0], + * + * // setting 'function' for stop-color, will pass data id as argument. + * // It should return color string or null value + * [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0], + * ] + * }, + * + * // remove nullish da + * overlap: true, + * + * padding: 1, + * + * // bar radius + * radius: 10, + * // or + * radius: { + * ratio: 0.5 + * } + * + * label: { + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the y Axis domain range value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * }, + * + * // will not have offset between each bar elements for interaction + * sensitivity: 0, + * + * width: 10, + * + * // or + * width: { + * ratio: 0.2, + * max: 20 + * }, + * + * // or specify width per dataset + * width: { + * data1: 20, + * data2: { + * ratio: 0.2, + * max: 20 + * } + * }, + * + * zerobased: false + * } + */ + bar_front: false, + bar_indices_removeNull: false, + bar_label_threshold: 0, + bar_linearGradient: false, + bar_overlap: false, + bar_padding: 0, + bar_radius: undefined, + bar_radius_ratio: undefined, + bar_sensitivity: 2, + bar_width: undefined, + bar_width_ratio: 0.6, + bar_width_max: undefined, + bar_zerobased: true +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * bubble config options + */ +var optBubble = { + /** + * Set bubble options + * @name bubble + * @memberof Options + * @type {object} + * @property {object} bubble bubble object + * @property {number|Function} [bubble.maxR=35] Set the max bubble radius value + * @property {boolean} [bubble.zerobased=false] Set if min or max value will be 0 on bubble chart. + * @example + * bubble: { + * // ex) If 100 is the highest value among data bound, the representation bubble of 100 will have radius of 50. + * // And the lesser will have radius relatively from tha max value. + * maxR: 50, + * + * // or set radius callback + * maxR: function(d) { + * // ex. of d param - {x: Fri Oct 06 2017 00:00:00 GMT+0900, value: 80, id: "data2", index: 5} + * ... + * return Math.sqrt(d.value * 2); + * }, + * zerobased: false + * } + */ + bubble_maxR: 35, + bubble_zerobased: false +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * candlestick config options + */ +var optCandlestick = { + /** + * Set candlestick options + * @name candlestick + * @memberof Options + * @type {object} + * @property {object} candlestick Candlestick object + * @property {number} [candlestick.width] Change the width. + * @property {number} [candlestick.width.ratio=0.6] Change the width by ratio. + * @property {number} [candlestick.width.max] The maximum width value for ratio. + * @property {number} [candlestick.width.dataname] Change the width for indicated dataset only. + * @property {number} [candlestick.width.dataname.ratio=0.6] Change the width of bar chart by ratio. + * @property {number} [candlestick.width.dataname.max] The maximum width value for ratio. + * @property {object} [candlestick.color] Color setting. + * @property {string|object} [candlestick.color.down] Change down(bearish) value color. + * @property {string} [candlestick.color.down.dataname] Change down value color for indicated dataset only. + * + * @see [Demo](https://naver.github.io/billboard.js/demo/##Chart.CandlestickChart) + * @example + * candlestick: { + * width: 10, + * + * // or + * width: { + * ratio: 0.2, + * max: 20 + * }, + * + * // or specify width per dataset + * width: { + * data1: 20, + * data2: { + * ratio: 0.2, + * max: 20 + * } + * }, + * color: { + * // spcify bearish color + * down: "red", + * + * // or specify color per dataset + * down: { + * data1: "red", + * data2: "blue", + * } + * } + * } + */ + candlestick_width: undefined, + candlestick_width_ratio: 0.6, + candlestick_width_max: undefined, + candlestick_color_down: "red" +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * line config options + */ +var optLine = { + /** + * Set line options + * @name line + * @memberof Options + * @type {object} + * @property {object} line Line object + * @property {boolean} [line.connectNull=false] Set if null data point will be connected or not.<br> + * If true set, the region of null data will be connected without any data point. If false set, the region of null data will not be connected and get empty. + * @property {Array} [line.classes=undefined] If set, used to set a css class on each line. + * @property {boolean} [line.step.type=step] Change step type for step chart.<br> + * **Available values:** + * - step + * - step-before + * - step-after + * @property {boolean} [line.step.tooltipMatch=false] Set to `true` for `step-before` and `step-after` types to have cursor/tooltip match to hovered step's point instead of nearest point. + * @property {boolean|Array} [line.point=true] Set to false to not draw points on linecharts. Or pass an array of line ids to draw points for. + * @property {boolean} [line.zerobased=false] Set if min or max value will be 0 on line chart. + * @example + * line: { + * connectNull: true, + * classes: [ + * "line-class1", + * "line-class2" + * ], + * step: { + * type: "step-after", + * + * // to have cursor/tooltip match to hovered step's point instead of nearest point. + * tooltipMatch: true + * }, + * + * // hide all data points ('point.show=false' also has similar effect) + * point: false, + * + * // show data points for only indicated datas + * point: [ + * "data1", "data3" + * ], + * + * zerobased: false + * } + */ + line_connectNull: false, + line_step_type: "step", + line_step_tooltipMatch: false, + line_zerobased: false, + line_classes: undefined, + line_point: true +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * scatter config options + */ +var optScatter = { + /** + * Set scatter options + * @name scatter + * @memberof Options + * @type {object} + * @property {object} [scatter] scatter object + * @property {boolean} [scatter.zerobased=false] Set if min or max value will be 0 on scatter chart. + * @example + * scatter: { + * connectNull: true, + * step: { + * type: "step-after" + * }, + * + * // hide all data points ('point.show=false' also has similar effect) + * point: false, + * + * // show data points for only indicated datas + * point: [ + * "data1", "data3" + * ], + * + * zerobased: false + * } + */ + scatter_zerobased: false +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * spline config options + */ +var optSpline = { + /** + * Set spline options + * - **Available interpolation type values:** + * - basis (d3.curveBasis) + * - basis-closed (d3.curveBasisClosed) + * - basis-open (d3.curveBasisOpen) + * - bundle (d3.curveBundle) + * - cardinal (d3.curveCardinal) + * - cardinal-closed (d3.curveCardinalClosed) + * - cardinal-open (d3.curveCardinalOpen) + * - catmull-rom (d3.curveCatmullRom) + * - catmull-rom-closed (d3.curveCatmullRomClosed) + * - catmull-rom-open (d3.curveCatmullRomOpen) + * - monotone-x (d3.curveMonotoneX) + * - monotone-y (d3.curveMonotoneY) + * - natural (d3.curveNatural) + * - linear-closed (d3.curveLinearClosed) + * - linear (d3.curveLinear) + * - step (d3.curveStep) + * - step-after (d3.curveStepAfter) + * - step-before (d3.curveStepBefore) + * @name spline + * @memberof Options + * @type {object} + * @property {object} spline Spline object + * @property {object} spline.interpolation Spline interpolation object + * @property {string} [spline.interpolation.type="cardinal"] Interpolation type + * @see [Interpolation (d3 v4)](http://bl.ocks.org/emmasaunders/c25a147970def2b02d8c7c2719dc7502) + * @example + * spline: { + * interpolation: { + * type: "cardinal" + * } + * } + */ + spline_interpolation_type: "cardinal" +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * arc config options + */ +var optArc = { + /** + * Set arc options + * @name arc + * @memberof Options + * @type {object} + * @property {object} arc Arc object + * @property {number|Function} [arc.cornerRadius=0] Set corner radius of Arc(donut/gauge/pie/polar) shape. + * - **NOTE:** + * - Corner radius can't surpass the `(outerRadius - innerRadius) /2` of indicated shape. + * @property {number} [arc.cornerRadius.ratio=0] Set ratio relative of outer radius. + * @property {object} [arc.needle] Set needle options. + * @property {boolean} [arc.needle.show=false] Show or hide needle. + * @property {string} [arc.needle.color] Set needle filled color. + * @property {Function} [arc.needle.path] Set custom needle path function. + * - **NOTE:** + * - The path should be starting from 0,0 (which is center) to top center coordinate. + * - The function will receive, `length`{number} parameter which indicating the needle length in pixel relative to radius. + * @property {number} [arc.needle.value] Set needle value. + * - **NOTE:** + * - For single gauge chart, needle will point the data value by default, otherwise will point 0(zero). + * @property {number} [arc.needle.length=100] Set needle length in percentages relative to radius. + * @property {object} [arc.needle.top] Set needle top options. + * @property {number} [arc.needle.top.rx=0] Set needle top [rx radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.top.ry=0] Set needle top [ry radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.top.width=0] Set needle top width in pixel. + * @property {object} [arc.needle.bottom] Set needle bottom options. + * @property {number} [arc.needle.bottom.rx=1] Set needle bottom [rx radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.bottom.ry=1] Set needle bottom [ry radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.bottom.width=15] Set needle bottom width in pixel. + * @property {number} [arc.needle.bottom.len=0] Set needle bottom length in pixel. Setting this value, will make bottom larger starting from center. + * @property {object} [arc.rangeText] Set rangeText options. + * @property {Array} [arc.rangeText.values] Set range text values to be shown around Arc. + * - When `unit: 'absolute'`: Given values are treated as absolute values. + * - When `unit: '%'`: Given values are treated as percentages. + * @property {string} [arc.rangeText.unit="absolute"] Specify the range text unit. + * - "absolute": Show absolute value + * - "%": Show percentage value + * @property {boolean} [arc.rangeText.fiexed=false] Set if range text shown will be fixed w/o data toggle update. Only available for gauge chart. + * @property {Function} [arc.rangeText.format] Set format function for the range text. + * @property {number} [arc.rangeText.position] Set position function or object for the range text. + * @see [Demo: Donut corner radius](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutCornerRadius) + * @see [Demo: Donut corner radius](https://naver.github.io/billboard.js/demo/#PieChartOptions.CornerRadius) + * @see [Demo: Donut needle](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutNeedle) + * @see [Demo: Donut RangeText](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutRangeText) + * @see [Demo: Gauge corner radius](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeCornerRadius) + * @see [Demo: Gauge needle](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeNeedle) + * @see [Demo: Gauge RangeText](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeRangeText) + * @example + * arc: { + * cornerRadius: 12, + * + * // can customize corner radius for each data with function callback + * // + * // The function will receive: + * // - id {string}: Data id + * // - value {number}: Data value + * // - outerRadius {number}: Outer radius value + * cornerRadius: function(id, value, outerRadius) { + * return (id === "data1" && value > 10) ? + * 50 : outerRadius * 1.2; + * }, + * + * // set ratio relative of outer radius + * cornerRadius: { + * ratio: 0.5 + * }, + * + * needle: { + * show: true, + * color: "red", // any valid CSS color + * path: function(length) { + * const len = length - 20; + * + * // will return upper arrow shape path + * // Note: The path should begun from '0,0' coordinate to top center. + * const path = `M 0 -${len + 20} + * L -12 -${len} + * L -5 -${len} + * L -5 0 + * A 1 1 0 0 0 5 0 + * L 5 -${len} + * L 12 -${len} Z`; + * + * return path; + * }, + * value: 40, // will make needle to point value 40. + * length: 80, // needle length in percentages relative to radius. + * + * top: { + * // rx and ry are the two radii of the ellipse; + * // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve + * rx: 1, + * ry: 1, + * width: 5 + * }, + * bottom: { + * // rx and ry are the two radii of the ellipse; + * // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve + * rx: 1, + * ry: 1, + * width: 10 + * len: 10 + * } + * }, + * + * rangeText: { + * values: [15, 30, 50, 75, 95], + * unit: "%", + * fixed: false, // only available for gauge chart + * format: function(v) { + * return v === 15 ? "Fifteen" : v; + * }, + * + * position: function(v) { + * return v === 15 ? {x: 20, y: 10} : null; // can return one props value also. + * }, + * position: {x: 10, y: 15}, + * position: {x: 10} + * } + * } + */ + arc_cornerRadius: 0, + arc_cornerRadius_ratio: 0, + arc_needle_show: false, + arc_needle_color: undefined, + arc_needle_value: undefined, + arc_needle_path: undefined, + arc_needle_length: 100, + arc_needle_top_rx: 0, + arc_needle_top_ry: 0, + arc_needle_top_width: 0, + arc_needle_bottom_rx: 1, + arc_needle_bottom_ry: 1, + arc_needle_bottom_width: 15, + arc_needle_bottom_len: 0, + arc_rangeText_values: undefined, + arc_rangeText_unit: "absolute", + arc_rangeText_fixed: false, + arc_rangeText_format: undefined, + arc_rangeText_position: undefined +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * donut config options + */ +var optDonut = { + /** + * Set donut options + * @name donut + * @memberof Options + * @type {object} + * @property {object} donut Donut object + * @property {boolean} [donut.label.show=true] Show or hide label on each donut piece. + * @property {Function} [donut.label.format] Set formatter for the label on each donut piece. + * @property {number} [donut.label.threshold=0.05] Set threshold ratio to show/hide labels. + * @property {number|Function} [donut.label.ratio=undefined] Set ratio of labels position. + * @property {boolean} [donut.expand=true] Enable or disable expanding donut pieces. + * @property {number} [donut.expand.rate=0.98] Set expand rate. + * @property {number} [donut.expand.duration=50] Set expand transition time in ms. + * @property {number} [donut.width] Set width of donut chart. + * @property {string} [donut.title=""] Set title of donut chart. Use `\n` character for line break. + * - **NOTE:** + * - When `arc.needle.show=true` is set, special template `{=NEEDLE_VALUE}` can be used inside the title text to show current needle value. + * @property {number} [donut.padAngle=0] Set padding between data. + * @property {number} [donut.startingAngle=0] Set starting angle where data draws. + * @example + * donut: { + * label: { + * show: false, + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * + * // disable expand transition for interaction + * expand: false, + * + * expand: { + * // set duration of expand transition to 500ms. + * duration: 500, + * + * // set expand area rate + * rate: 1 + * }, + * + * width: 10, + * padAngle: 0.2, + * startingAngle: 1, + * title: "Donut Title" + * + * // when 'arc.needle.show=true' is set, can show current needle value. + * title: "Needle value:\n{=NEEDLE_VALUE}", + * + * // title with line break + * title: "Title1\nTitle2" + * } + */ + donut_label_show: true, + donut_label_format: undefined, + donut_label_threshold: 0.05, + donut_label_ratio: undefined, + donut_width: undefined, + donut_title: "", + donut_expand: {}, + donut_expand_rate: 0.98, + donut_expand_duration: 50, + donut_padAngle: 0, + donut_startingAngle: 0 +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * funnel config options + */ +var optFunnel = { + /** + * Set funnel options + * @name funnel + * @memberof Options + * @type {object} + * @property {object} funnel Funnel object + * @property {number} [funnel.neck.width=0] Set funnel neck width. + * @property {number} [funnel.neck.height=0] Set funnel neck height. + * @property {number} [funnel.neck.width.ratio] Set funnel neck width in ratio. + * @property {number} [funnel.neck.height.ratio] Set funnel neck height in ratio. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.PolarChart) + * @example + * funnel: { + * neck: { + * width: 200, + * height: 100, + * + * // or specify as ratio value (relative to the chart size) + * width: { + * ratio: 0.5 + * }, + * height: { + * ratio: 0.5 + * } + * } + * } + */ + funnel_neck_width: 0, + funnel_neck_height: 0 +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * gauge config options + */ +var optGauge = { + /** + * Set gauge options + * @name gauge + * @memberof Options + * @type {object} + * @property {object} gauge Gauge object + * @property {boolean} [gauge.background=""] Set background color. (The `.bb-chart-arcs-background` element) + * @property {boolean} [gauge.fullCircle=false] Show full circle as donut. When set to 'true', the max label will not be showed due to start and end points are same location. + * @property {boolean} [gauge.label.show=true] Show or hide label on gauge. + * @property {Function} [gauge.label.extents] Set customized min/max label text. + * @property {Function} [gauge.label.format] Set formatter for the label on gauge. Label text can be multilined with `\n` character.<br> + * Will pass following arguments to the given function: + * - value {number}: absolute value + * - ratio {number}: value's ratio + * - id {string}: data's id value + * @property {number|Function} [gauge.label.ratio=undefined] Set ratio of labels position. + * @property {number} [gauge.label.threshold=0] Set threshold ratio to show/hide labels. + * @property {boolean} [gauge.expand=true] Enable or disable expanding gauge. + * @property {number} [gauge.expand.rate=0.98] Set expand rate. + * @property {number} [gauge.expand.duration=50] Set the expand transition time in milliseconds. + * @property {boolean} [gauge.enforceMinMax=false] Enforce to given min/max value. + * - When `gauge.min=50` and given value is `30`, gauge will render as empty value. + * - When `gauge.max=100` and given value is `120`, gauge will render till 100, not surpassing max value. + * @property {number} [gauge.min=0] Set min value of the gauge. + * @property {number} [gauge.max=100] Set max value of the gauge. + * @property {number} [gauge.startingAngle=-1 * Math.PI / 2] Set starting angle where data draws. + * + * **Limitations:** + * - when `gauge.fullCircle=false`: + * - -1 * Math.PI / 2 <= startingAngle <= Math.PI / 2 + * - `startingAngle <= -1 * Math.PI / 2` defaults to `-1 * Math.PI / 2` + * - `startingAngle >= Math.PI / 2` defaults to `Math.PI / 2` + * - when `gauge.fullCircle=true`: + * - -1 * Math.PI < startingAngle < Math.PI + * - `startingAngle < -1 * Math.PI` defaults to `Math.PI` + * - `startingAngle > Math.PI` defaults to `Math.PI` + * @property {number} [gauge.arcLength=100] Set the length of the arc to be drawn in percent from -100 to 100.<br> + * Negative value will draw the arc **counterclockwise**. Need to be used in conjunction with `gauge.fullCircle=true`. + * + * **Limitations:** + * - -100 <= arcLength (in percent) <= 100 + * - 'arcLength < -100' defaults to -100 + * - 'arcLength > 100' defaults to 100 + * @property {string} [gauge.title=""] Set title of gauge chart. Use `\n` character for line break. + * - **NOTE:** + * - When `arc.needle.show=true` is set, special template `{=NEEDLE_VALUE}` can be used inside the title text to show current needle value. + * @property {string} [gauge.units] Set units of the gauge. + * @property {number} [gauge.width] Set width of gauge chart. + * @property {string} [gauge.type="single"] Set type of gauge to be displayed.<br><br> + * **Available Values:** + * - single + * - multi + * @property {number} [gauge.arcs.minWidth=5] Set minimal width of gauge arcs until the innerRadius disappears. + * @see [Demo: enforceMinMax, min/max](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeMinMax) + * @see [Demo: archLength](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeArcLength) + * @see [Demo: startingAngle](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeStartingAngle) + * @see [Demo: labelRatio](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeLabelRatio) + * @example + * gauge: { + * background: "#eee", // will set 'fill' css prop for '.bb-chart-arcs-background' classed element. + * fullCircle: false, + * label: { + * show: false, + * format: function(value, ratio, id) { + * return value; + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * extents: function(value, isMax) { + * return (isMax ? "Max:" : "Min:") + value; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * + * // disable expand transition for interaction + * expand: false, + * + * expand: { + * // set duration of expand transition to 500ms. + * duration: 500, + * + * // set expand area rate + * rate: 1 + * }, + * + * // enforce min/max value. + * // when given value < min, will render as empty value. + * // when value > max, will render to given max value not surpassing it. + * enforceMinMax: true, + * + * min: -100, + * max: 200, + * type: "single" // or 'multi' + * title: "Title Text", + * + * // when 'arc.needle.show=true' is set, can show current needle value. + * title: "Needle value:\n{=NEEDLE_VALUE}", + * + * units: "%", + * width: 10, + * startingAngle: -1 * Math.PI / 2, + * arcLength: 100, + * arcs: { + * minWidth: 5 + * } + * } + */ + gauge_background: "", + gauge_fullCircle: false, + gauge_label_show: true, + gauge_label_extents: undefined, + gauge_label_format: undefined, + gauge_label_ratio: undefined, + gauge_label_threshold: 0, + gauge_enforceMinMax: false, + gauge_min: 0, + gauge_max: 100, + gauge_type: "single", + gauge_startingAngle: -1 * Math.PI / 2, + gauge_arcLength: 100, + gauge_title: "", + gauge_units: undefined, + gauge_width: undefined, + gauge_arcs_minWidth: 5, + gauge_expand: {}, + gauge_expand_rate: 0.98, + gauge_expand_duration: 50 +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * pie config options + */ +var optPie = { + /** + * Set pie options + * @name pie + * @memberof Options + * @type {object} + * @property {object} pie Pie object + * @property {boolean} [pie.label.show=true] Show or hide label on each pie piece. + * @property {Function} [pie.label.format] Set formatter for the label on each pie piece. + * @property {number|Function} [pie.label.ratio=undefined] Set ratio of labels position. + * @property {number} [pie.label.threshold=0.05] Set threshold ratio to show/hide labels. + * @property {boolean|object} [pie.expand=true] Enable or disable expanding pie pieces. + * @property {number} [pie.expand.rate=0.98] Set expand rate. + * @property {number} [pie.expand.duration=50] Set expand transition time in ms. + * @property {number|object} [pie.innerRadius=0] Sets the inner radius of pie arc. + * @property {number|object|undefined} [pie.outerRadius=undefined] Sets the outer radius of pie arc. + * @property {number} [pie.padAngle=0] Set padding between data. + * @property {number} [pie.padding=0] Sets the gap between pie arcs. + * @property {number} [pie.startingAngle=0] Set starting angle where data draws. + * @see [Demo: expand.rate](https://naver.github.io/billboard.js/demo/#PieChartOptions.ExpandRate) + * @see [Demo: innerRadius](https://naver.github.io/billboard.js/demo/#PieChartOptions.InnerRadius) + * @see [Demo: outerRadius](https://naver.github.io/billboard.js/demo/#PieChartOptions.OuterRadius) + * @see [Demo: startingAngle](https://naver.github.io/billboard.js/demo/#PieChartOptions.StartingAngle) + * @example + * pie: { + * label: { + * show: false, + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * + * // disable expand transition for interaction + * expand: false, + * + * expand: { + * // set duration of expand transition to 500ms. + * duration: 500, + * + * // set expand area rate + * rate: 1 + * }, + * + * innerRadius: 0, + * + * // set different innerRadius for each data + * innerRadius: { + * data1: 10, + * data2: 0 + * }, + * + * outerRadius: 100, + * + * // set different outerRadius for each data + * outerRadius: { + * data1: 50, + * data2: 100 + * } + * + * padAngle: 0.1, + * padding: 0, + * startingAngle: 1 + * } + */ + pie_label_show: true, + pie_label_format: undefined, + pie_label_ratio: undefined, + pie_label_threshold: 0.05, + pie_expand: {}, + pie_expand_rate: 0.98, + pie_expand_duration: 50, + pie_innerRadius: 0, + pie_outerRadius: undefined, + pie_padAngle: 0, + pie_padding: 0, + pie_startingAngle: 0 +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * polar config options + */ +var optPolar = { + /** + * Set polar options + * @name polar + * @memberof Options + * @type {object} + * @property {object} polar Polar object + * @property {boolean} [polar.label.show=true] Show or hide label on each polar piece. + * @property {Function} [polar.label.format] Set formatter for the label on each polar piece. + * @property {number} [polar.label.threshold=0.05] Set threshold ratio to show/hide labels. + * @property {number|Function} [polar.label.ratio=undefined] Set ratio of labels position. + * @property {number} [polar.level.depth=3] Set the level depth. + * @property {boolean} [polar.level.show=true] Show or hide level. + * @property {string} [polar.level.text.backgroundColor="#fff"] Set label text's background color. + * @property {Function} [polar.level.text.format] Set format function for the level value.<br>- Default value: `(x) => x % 1 === 0 ? x : x.toFixed(2)` + * @property {boolean} [polar.level.text.show=true] Show or hide level text. + * @property {number} [polar.padAngle=0] Set padding between data. + * @property {number} [polar.padding=0] Sets the gap between pie arcs. + * @property {number} [polar.startingAngle=0] Set starting angle where data draws. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.PolarChart) + * @example + * polar: { + * label: { + * show: false, + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * level: { + * depth: 3, + * max: 500, + * show: true, + * text: { + * format: function(x) { + * return x + "%"; + * }, + * show: true, + * backgroundColor: "red" + * } + * }, + * padAngle: 0.1, + * padding: 0, + * startingAngle: 1 + * } + */ + polar_label_show: true, + polar_label_format: undefined, + polar_label_threshold: 0.05, + polar_label_ratio: undefined, + polar_level_depth: 3, + polar_level_max: undefined, + polar_level_show: true, + polar_level_text_backgroundColor: "#fff", + polar_level_text_format: function (x) { return (x % 1 === 0 ? x : x.toFixed(2)); }, + polar_level_text_show: true, + polar_padAngle: 0, + polar_padding: 0, + polar_startingAngle: 0 +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * radar config options + */ +var optRadar = { + /** + * Set radar options + * - **NOTE:** + * > When x tick text contains `\n`, it's used as line break. + * @name radar + * @memberof Options + * @type {object} + * @property {object} radar Radar object + * @property {number} [radar.axis.max=undefined] The max value of axis. If not given, it'll take the max value from the given data. + * @property {boolean} [radar.axis.line.show=true] Show or hide axis line. + * @property {number} [radar.axis.text.position.x=0] x coordinate position, relative the original. + * @property {number} [radar.axis.text.position.y=0] y coordinate position, relative the original. + * @property {boolean} [radar.axis.text.show=true] Show or hide axis text. + * @property {boolean} [radar.direction.clockwise=false] Set the direction to be drawn. + * @property {number} [radar.level.depth=3] Set the level depth. + * @property {boolean} [radar.level.show=true] Show or hide level. + * @property {Function} [radar.level.text.format] Set format function for the level value.<br>- Default value: `(x) => x % 1 === 0 ? x : x.toFixed(2)` + * @property {boolean} [radar.level.text.show=true] Show or hide level text. + * @property {number} [radar.size.ratio=0.87] Set size ratio. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.RadarChart) + * @see [Demo: radar axis](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarAxis) + * @see [Demo: radar level](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarLevel) + * @see [Demo: radar size](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarSize) + * @see [Demo: radar axis multiline](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarAxisMultiline) + * @example + * radar: { + * axis: { + * max: 50, + * line: { + * show: false + * }, + * text: { + * position: { + * x: 0, + * y: 0 + * }, + * show: false + * } + * }, + * direction: { + * clockwise: true + * }, + * level: { + * show: false, + * text: { + * format: function(x) { + * return x + "%"; + * }, + * show: true + * } + * }, + * size: { + * ratio: 0.7 + * } + * } + */ + radar_axis_max: undefined, + radar_axis_line_show: true, + radar_axis_text_show: true, + radar_axis_text_position: {}, + radar_level_depth: 3, + radar_level_show: true, + radar_level_text_format: function (x) { return (x % 1 === 0 ? x : x.toFixed(2)); }, + radar_level_text_show: true, + radar_size_ratio: 0.87, + radar_direction_clockwise: false +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * treemap config options + */ +var optTreemap = { + /** + * Set treemap options + * @name treemap + * @memberof Options + * @type {object} + * @property {object} treemap Treemap object + * @property {string} [treemap.tile="binary"] Treemap tile type + * - **Available tile type values:** + * - binary ([d3.treemapBinary](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapBinary)) + * - dice ([d3.treemapDice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapDice)) + * - slice ([d3.treemapSlice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSlice)) + * - sliceDice ([d3.treemapSliceDice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSliceDice)) + * - squrify ([d3.treemapSquarify](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSquarify)) + * - resquarify ([d3.treemapResquarify](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapResquarify)) + * @property {Function} [treemap.label.format] Set formatter for the label text. + * @property {number} [treemap.label.threshold=0.05] Set threshold ratio to show/hide labels text. + * @property {number} [treemap.label.show=true] Show or hide label text. + * @see [Demo: treemap](https://naver.github.io/billboard.js/demo/#Chart.TreemapChart) + * @example + * treemap: { + * // "binary", "dice", "slice", "sliceDice", "squrify", "resquarify" + * tile: "dice", + * + * label: { + * // show or hide label text + * show: false, + * + * // set label text formatter + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // set ratio number + * ratio: 0.05 + * } + * } + */ + treemap_tile: "binary", + treemap_label_format: undefined, + treemap_label_threshold: 0.05, + treemap_label_show: true +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Extend Axis + * @param {Array} module Module to be extended + * @param {Array} option Option object to be extended + * @private + */ +function extendAxis(module, option) { + extend(ChartInternal.prototype, Object.values(internal).concat(module)); + extend(Chart.prototype, api); + Options.setOptions(Object.values(options).concat(option || [])); +} +/** + * Extend Line type modules + * @param {object} module Module to be extended + * @param {Array} option Option object to be extended + * @private + */ +function extendLine(module, option) { + extendAxis([shapePointCommon, shapePoint, shapeLine].concat(module || [])); + Options.setOptions([optPoint, optLine].concat(option || [])); +} +/** + * Extend Arc type modules + * @param {Array} module Module to be extended + * @param {Array} option Option object to be extended + * @private + */ +function extendArc(module, option) { + extend(ChartInternal.prototype, [shapeArc, shapePointCommon].concat(module || [])); + Options.setOptions([optPoint].concat(option || [])); +} +// Area types +var area = function () { return (extendLine(shapeArea, [optArea]), (area = function () { return TYPE.AREA; })()); }; +var areaLineRange = function () { return (extendLine(shapeArea, [optArea]), (areaLineRange = function () { return TYPE.AREA_LINE_RANGE; })()); }; +var areaSpline = function () { return (extendLine(shapeArea, [optArea, optSpline]), (areaSpline = function () { return TYPE.AREA_SPLINE; })()); }; +var areaSplineRange = function () { return (extendLine(shapeArea, [optArea, optSpline]), (areaSplineRange = function () { return TYPE.AREA_SPLINE_RANGE; })()); }; +var areaStep = function () { return (extendLine(shapeArea, [optArea]), (areaStep = function () { return TYPE.AREA_STEP; })()); }; +// Line types +var line = function () { return (extendLine(), (line = function () { return TYPE.LINE; })()); }; +var spline = function () { return (extendLine(undefined, [optSpline]), (spline = function () { return TYPE.SPLINE; })()); }; +var step = function () { return (extendLine(), (step = function () { return TYPE.STEP; })()); }; +// Arc types +var donut = function () { return (extendArc(undefined, [optArc, optDonut]), (donut = function () { return TYPE.DONUT; })()); }; +var gauge = function () { return (extendArc([shapeGauge], [optArc, optGauge]), (gauge = function () { return TYPE.GAUGE; })()); }; +var pie = function () { return (extendArc(undefined, [optArc, optPie]), (pie = function () { return TYPE.PIE; })()); }; +var polar = function () { return (extendArc([shapePolar], [optArc, optPolar]), (polar = function () { return TYPE.POLAR; })()); }; +var radar = function () { return (extendArc([internal.eventrect, shapePoint, shapeRadar], [optPoint, optRadar, { axis_x_categories: options.optAxis.axis_x_categories }]), (radar = function () { return TYPE.RADAR; })()); }; +// Axis based types +var bar = function () { return (extendAxis([shapeBar, shapePointCommon], [optBar, optPoint]), (bar = function () { return TYPE.BAR; })()); }; +var bubble = function () { return (extendAxis([shapePointCommon, shapePoint, shapeBubble], [optBubble, optPoint]), (bubble = function () { return TYPE.BUBBLE; })()); }; +var candlestick = function () { return (extendAxis([shapeCandlestick, shapePointCommon], [optCandlestick, optPoint]), (candlestick = function () { return TYPE.CANDLESTICK; })()); }; +var scatter = function () { return (extendAxis([shapePointCommon, shapePoint], [optPoint, optScatter]), (scatter = function () { return TYPE.SCATTER; })()); }; +// Non Axis based types +var funnel = function () { return (extendArc([shapeFunnel], [optFunnel]), (funnel = function () { return TYPE.FUNNEL; })()); }; +var treemap = function () { return (extendAxis([shapeTreemap], [optTreemap]), (treemap = function () { return TYPE.TREEMAP; })()); }; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Toggler function to select or unselect + * @param {boolean} isSelection Weather select or unselect + * @param {Array} ids Target ids + * @param {Array} indices Indices number + * @param {boolean} resetOther Weather reset other selected points (only for selection) + * @private + */ +function setSelection(isSelection, ids, indices, resetOther) { + if (isSelection === void 0) { isSelection = false; } + var $$ = this; + var config = $$.config, main = $$.$el.main; + var selectionGrouped = config.data_selection_grouped; + var isSelectable = config.data_selection_isselectable.bind($$.api); + if (!config.data_selection_enabled) { + return; + } + main.selectAll(".".concat($SHAPE.shapes)) + .selectAll(".".concat($SHAPE.shape)) + .each(function (d) { + var shape = select(this); + var _a = d.data ? d.data : d, id = _a.id, index = _a.index; + var toggle = $$.getToggle(this, d).bind($$); + var isTargetId = selectionGrouped || !ids || ids.indexOf(id) >= 0; + var isTargetIndex = !indices || indices.indexOf(index) >= 0; + var isSelected = shape.classed($SELECT.SELECTED); + // line/area selection not supported yet + if (shape.classed($LINE.line) || shape.classed($AREA.area)) { + return; + } + if (isSelection) { + if (isTargetId && isTargetIndex && isSelectable(d) && !isSelected) { + toggle(true, shape.classed($SELECT.SELECTED, true), d, index); + } + else if (isDefined(resetOther) && resetOther && isSelected) { + toggle(false, shape.classed($SELECT.SELECTED, false), d, index); + } + } + else { + if (isTargetId && isTargetIndex && isSelectable(d) && isSelected) { + toggle(false, shape.classed($SELECT.SELECTED, false), d, index); + } + } + }); +} +var apiSelection = { + /** + * Get selected data points.<br><br> + * By this API, you can get selected data points information. To use this API, data.selection.enabled needs to be set true. + * @function selected + * @instance + * @memberof Chart + * @param {string} [targetId] You can filter the result by giving target id that you want to get. If not given, all of data points will be returned. + * @returns {Array} dataPoint Array of the data points.<br>ex.) `[{x: 1, value: 200, id: "data1", index: 1, name: "data1"}, ...]` + * @example + * // all selected data points will be returned. + * chart.selected(); + * // --> ex.) [{x: 1, value: 200, id: "data1", index: 1, name: "data1"}, ... ] + * + * // all selected data points of data1 will be returned. + * chart.selected("data1"); + */ + selected: function (targetId) { + var $$ = this.internal; + var dataPoint = []; + $$.$el.main.selectAll(".".concat($SHAPE.shapes + $$.getTargetSelectorSuffix(targetId))) + .selectAll(".".concat($SHAPE.shape)) + .filter(function () { + return select(this).classed($SELECT.SELECTED); + }) + .each(function (d) { return dataPoint.push(d); }); + return dataPoint; + }, + /** + * Set data points to be selected. ([`data.selection.enabled`](Options.html#.data%25E2%2580%25A4selection%25E2%2580%25A4enabled) option should be set true to use this method) + * @function select + * @instance + * @memberof Chart + * @param {string|Array} [ids] id value to get selected. + * @param {Array} [indices] The index array of data points. If falsy value given, will select all data points. + * @param {boolean} [resetOther] Unselect already selected. + * @example + * // select all data points + * chart.select(); + * + * // select all from 'data2' + * chart.select("data2"); + * + * // select all from 'data1' and 'data2' + * chart.select(["data1", "data2"]); + * + * // select from 'data1', indices 2 and unselect others selected + * chart.select("data1", [2], true); + * + * // select from 'data1', indices 0, 3 and 5 + * chart.select("data1", [0, 3, 5]); + */ + select: function (ids, indices, resetOther) { + var $$ = this.internal; + setSelection.bind($$)(true, ids, indices, resetOther); + }, + /** + * Set data points to be un-selected. + * @function unselect + * @instance + * @memberof Chart + * @param {string|Array} [ids] id value to be unselected. + * @param {Array} [indices] The index array of data points. If falsy value given, will select all data points. + * @example + * // unselect all data points + * chart.unselect(); + * + * // unselect all from 'data1' + * chart.unselect("data1"); + * + * // unselect from 'data1', indices 2 + * chart.unselect("data1", [2]); + */ + unselect: function (ids, indices) { + var $$ = this.internal; + setSelection.bind($$)(false, ids, indices); + } +}; + +/** + * Select subchart by giving x domain range. + * - **ℹ️ NOTE:** + * - Due to the limitations of floating point precision, domain value may not be exact returning approximately values. + * @function subchart + * @instance + * @memberof Chart + * @param {Array} domainValue If domain range is given, the subchart will be seleted to the given domain. If no argument is given, the current subchart selection domain will be returned. + * @returns {Array} domain value in array + * @example + * // Specify domain for subchart selection + * chart.subchart([1, 2]); + * + * // Get the current subchart selection domain range + * // Domain value may not be exact returning approximately values. + * chart.subchart(); + */ +// NOTE: declared funciton assigning to variable to prevent duplicated method generation in JSDoc. +var subchart$1 = function (domainValue) { + var _a; + var $$ = this.internal; + var axis = $$.axis, brush = $$.brush, config = $$.config, _b = $$.scale, x = _b.x, subX = _b.subX, state = $$.state; + var domain; + if (config.subchart_show) { + domain = domainValue; + if (Array.isArray(domain)) { + if (axis.isTimeSeries()) { + domain = domain.map(function (x) { return parseDate.bind($$)(x); }); + } + var isWithinRange = $$.withinRange(domain, $$.getZoomDomain("subX", true), $$.getZoomDomain("subX")); + if (isWithinRange) { + state.domain = domain; + brush.move(brush.getSelection(), domain.map(subX)); + } + } + else { + domain = (_a = state.domain) !== null && _a !== void 0 ? _a : x.orgDomain(); + } + } + return domain; +}; +extend(subchart$1, { + /** + * Show subchart + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * @function subchart․show + * @instance + * @memberof Chart + * @example + * // for ESM imports, needs to import 'subchart' and must be instantiated first to enable subchart's API. + * import {subchart} from "billboard.js"; + * + * const chart = bb.generate({ + * ... + * subchart: { + * // need to be instantiated by calling 'subchart()' + * enabled: subchart() + * + * // in case don't want subchart to be shown at initialization, instantiate with '!subchart()' + * enabled: !subchart() + * } + * }); + * + * chart.subchart.show(); + */ + show: function () { + var _a, _b; + var $$ = this.internal; + var subchart = $$.$el.subchart, config = $$.config; + var show = config.subchart_show; + if (!show) { + // unbind zoom event bound to chart rect area + $$.unbindZoomEvent(); + config.subchart_show = !show; + !subchart.main && $$.initSubchart(); + var $target = subchart.main.selectAll(".".concat($COMMON.target)); + // need to cover when new data has been loaded + if ($$.data.targets.length !== $target.size()) { + $$.updateSizes(); + $$.updateTargetsForSubchart($$.data.targets); + $target = (_a = subchart.main) === null || _a === void 0 ? void 0 : _a.selectAll(".".concat($COMMON.target)); + } + $target === null || $target === void 0 ? void 0 : $target.style("opacity", null); + (_b = subchart.main) === null || _b === void 0 ? void 0 : _b.style("display", null); + this.resize(); + } + }, + /** + * Hide generated subchart + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * @function subchart․hide + * @instance + * @memberof Chart + * @example + * chart.subchart.hide(); + */ + hide: function () { + var $$ = this.internal; + var main = $$.$el.subchart.main, config = $$.config; + if (config.subchart_show && (main === null || main === void 0 ? void 0 : main.style("display")) !== "none") { + config.subchart_show = false; + main.style("display", "none"); + this.resize(); + } + }, + /** + * Toggle the visiblity of subchart + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * @function subchart․toggle + * @instance + * @memberof Chart + * @example + * // When subchart is hidden, will be shown + * // When subchart is shown, will be hidden + * chart.subchart.toggle(); + */ + toggle: function () { + var $$ = this.internal; + var config = $$.config; + this.subchart[config.subchart_show ? "hide" : "show"](); + }, + /** + * Reset subchart selection + * @function subchart․reset + * @instance + * @memberof Chart + * @example + * // Reset subchart selection + * chart.subchart.reset(); + */ + reset: function () { + var $$ = this.internal; + var brush = $$.brush; + brush.clear(brush.getSelection()); + } +}); +var apiSubchart = { + subchart: subchart$1 +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Zoom by giving x domain range. + * - **ℹ️ NOTE:** + * - For `wheel` type zoom, the minimum zoom range will be set as the given domain range. To get the initial state, [.unzoom()](#unzoom) should be called. + * - To be used [zoom.enabled](Options.html#.zoom) option should be set as `truthy`. + * - When x axis type is `category`, domain range should be specified as index numbers. + * - Due to the limitations of floating point precision, domain value may not be exact returning approximately values. + * @function zoom + * @instance + * @memberof Chart + * @param {Array} domainValue If domain range is given, the chart will be zoomed to the given domain. If no argument is given, the current zoomed domain will be returned. + * @returns {Array} domain value in array + * @example + * // Zoom to specified domain range + * chart.zoom([10, 20]); + * + * // For timeseries x axis, the domain value can be string, but the format should match with the 'data.xFormat' option. + * chart.zoom(["2021-02-03", "2021-02-08"]); + * + * // For category x axis, the domain value should be index number. + * chart.zoom([0, 3]); + * + * // Get the current zoomed domain range + * // Domain value may not be exact returning approximately values. + * chart.zoom(); + */ +// NOTE: declared funciton assigning to variable to prevent duplicated method generation in JSDoc. +var zoom$1 = function (domainValue) { + var _a; + var $$ = this.internal; + var axis = $$.axis, config = $$.config, org = $$.org, scale = $$.scale, state = $$.state; + var isCategorized = axis.isCategorized(); + var domain; + if (config.zoom_enabled) { + domain = domainValue; + if (Array.isArray(domain)) { + if (axis.isTimeSeries()) { + domain = domain.map(function (x) { return parseDate.bind($$)(x); }); + } + var isWithinRange = $$.withinRange(domain, $$.getZoomDomain("zoom", true), $$.getZoomDomain("zoom")); + if (isWithinRange) { + state.domain = domain; + domain = $$.getZoomDomainValue(domain); + // hide any possible tooltip show before the zoom + $$.api.tooltip.hide(); + if (config.subchart_show) { + var x = scale.zoom || scale.x; + $$.brush.getSelection().call($$.brush.move, domain.map(x)); + // resultDomain = domain; + } + else { + // in case of 'config.zoom_rescale=true', use org.xScale + var x = isCategorized ? scale.x.orgScale() : (org.xScale || scale.x); + $$.updateCurrentZoomTransform(x, domain); + } + $$.setZoomResetButton(); + } + } + else { + domain = $$.zoom.getDomain(); + } + } + return (_a = state.domain) !== null && _a !== void 0 ? _a : domain; +}; +extend(zoom$1, { + /** + * Enable and disable zooming. + * @function zoom․enable + * @instance + * @memberof Chart + * @param {string|boolean} enabled Possible string values are "wheel" or "drag". If enabled is true, "wheel" will be used. If false is given, zooming will be disabled.<br>When set to false, the current zooming status will be reset. + * @example + * // Enable zooming using the mouse wheel + * chart.zoom.enable(true); + * // Or + * chart.zoom.enable("wheel"); + * + * // Enable zooming by dragging + * chart.zoom.enable("drag"); + * + * // Disable zooming + * chart.zoom.enable(false); + */ + enable: function (enabled) { + var $$ = this.internal; + var config = $$.config; + if (/^(drag|wheel)$/.test(enabled)) { + config.zoom_type = enabled; + } + config.zoom_enabled = !!enabled; + if (!$$.zoom) { + $$.initZoom(); + $$.bindZoomEvent(); + } + else if (enabled === false) { + $$.bindZoomEvent(false); + } + $$.updateAndRedraw(); + }, + /** + * Set or get x Axis maximum zoom range value + * @function zoom․max + * @instance + * @memberof Chart + * @param {number} [max] maximum value to set for zoom + * @returns {number} zoom max value + * @example + * // Set maximum range value + * chart.zoom.max(20); + */ + max: function (max) { + var $$ = this.internal; + var config = $$.config, xDomain = $$.org.xDomain; + if (max === 0 || max) { + config.zoom_x_max = getMinMax$1("max", [xDomain[1], max]); + } + return config.zoom_x_max; + }, + /** + * Set or get x Axis minimum zoom range value + * @function zoom․min + * @instance + * @memberof Chart + * @param {number} [min] minimum value to set for zoom + * @returns {number} zoom min value + * @example + * // Set minimum range value + * chart.zoom.min(-1); + */ + min: function (min) { + var $$ = this.internal; + var config = $$.config, xDomain = $$.org.xDomain; + if (min === 0 || min) { + config.zoom_x_min = getMinMax$1("min", [xDomain[0], min]); + } + return config.zoom_x_min; + }, + /** + * Set zoom range + * @function zoom․range + * @instance + * @memberof Chart + * @param {object} [range] zoom range + * @returns {object} zoom range value + * { + * min: 0, + * max: 100 + * } + * @example + * chart.zoom.range({ + * min: 10, + * max: 100 + * }); + */ + range: function (range) { + var zoom = this.zoom; + if (isObject(range)) { + var min = range.min, max = range.max; + isDefined(min) && zoom.min(min); + isDefined(max) && zoom.max(max); + } + return { + min: zoom.min(), + max: zoom.max() + }; + } +}); +var apiZoom = { + zoom: zoom$1, + /** + * Unzoom zoomed area + * - **NOTE:** Calling .unzoom() will not trigger zoom events. + * @function unzoom + * @instance + * @memberof Chart + * @example + * chart.unzoom(); + */ + unzoom: function () { + var $$ = this.internal; + var config = $$.config, _a = $$.$el, eventRect = _a.eventRect, zoomResetBtn = _a.zoomResetBtn, zoom = $$.scale.zoom, state = $$.state; + if (zoom) { + config.subchart_show ? + $$.brush.getSelection().call($$.brush.move, null) : + $$.zoom.updateTransformScale(zoomIdentity); + $$.updateZoom(true); + zoomResetBtn === null || zoomResetBtn === void 0 ? void 0 : zoomResetBtn.style("display", "none"); + // reset transform + if (zoomTransform(eventRect.node()) !== zoomIdentity) { + $$.zoom.transform(eventRect, zoomIdentity); + } + state.domain = undefined; + } + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var subchart = { + /** + * Initialize the brush. + * @private + */ + initBrush: function () { + var $$ = this; + var config = $$.config, scale = $$.scale, subchart = $$.$el.subchart, state = $$.state; + var isRotated = config.axis_rotated; + var height = config.subchart_size_height; + var lastDomain; + var lastSelection; + var timeout; + // set the brush + $$.brush = (isRotated ? brushY() : brushX()).handleSize(5); + // bind brush event + $$.brush.on("start brush end", function (event) { + var selection = event.selection, sourceEvent = event.sourceEvent, target = event.target, type = event.type; + if (type === "start") { + $$.state.inputType === "touch" && $$.hideTooltip(); + lastSelection = sourceEvent ? selection : null; + // sourceEvent && (state.domain = null); + } + // if (type === "brush") { + if (/(start|brush)/.test(type)) { + // when brush selection updates happens on one edge, update only chainging edge and + // is only for adjustment of given domain range to be used to return current domain range. + type === "brush" && sourceEvent && state.domain && + (lastSelection === null || lastSelection === void 0 ? void 0 : lastSelection.forEach(function (v, i) { + if (v !== selection[i]) { + state.domain[i] = scale.x.orgDomain()[i]; + } + })); + $$.redrawForBrush(type !== "start"); + } + if (type === "end") { + lastDomain = scale.x.orgDomain(); + } + // handle brush's handle position & visibility + if (target === null || target === void 0 ? void 0 : target.handle) { + if (selection === null) { + $$.brush.handle.attr("display", "none"); + } + else { + $$.brush.handle.attr("display", null) + .attr("transform", function (d, i) { + var pos = [selection[i], height / 2]; + return "translate(".concat(isRotated ? pos.reverse() : pos, ")"); + }); + } + } + }); + $$.brush.updateResize = function () { + var _this = this; + timeout && clearTimeout(timeout); + timeout = setTimeout(function () { + var selection = _this.getSelection(); + lastDomain && brushSelection(selection.node()) && + _this.move(selection, lastDomain.map(scale.subX.orgScale())); + }, 0); + }; + $$.brush.update = function () { + var _a; + var extent = this.extent()(); + if (extent[1].filter(function (v) { return isNaN(v); }).length === 0) { + (_a = subchart.main) === null || _a === void 0 ? void 0 : _a.select(".".concat(CLASS.brush)).call(this); + } + return this; + }; + // set the brush extent + $$.brush.scale = function (scale) { + var h = config.subchart_size_height; + var extent = $$.getExtent(); + if (!extent && scale.range) { + extent = [[0, 0], [scale.range()[1], h]]; + } + else if (isArray(extent)) { + extent = extent.map(function (v, i) { return [v, i > 0 ? h : i]; }); + } + // [[x0, y0], [x1, y1]], where [x0, y0] is the top-left corner and [x1, y1] is the bottom-right corner + isRotated && extent[1].reverse(); + this.extent(extent); + // when extent updates, brush selection also be re-applied + // https://github.com/d3/d3/issues/2918 + this.update(); + }; + $$.brush.getSelection = function () { return ( + // @ts-ignore + subchart.main ? subchart.main.select(".".concat(CLASS.brush)) : select([])); }; + }, + /** + * Initialize the subchart. + * @private + */ + initSubchart: function () { + var $$ = this; + var config = $$.config, _a = $$.state, clip = _a.clip, hasAxis = _a.hasAxis, _b = $$.$el, defs = _b.defs, svg = _b.svg, subchart = _b.subchart, axis = _b.axis; + if (!hasAxis) { + return; + } + var visibility = config.subchart_show ? null : "hidden"; + var clipId = "".concat(clip.id, "-subchart"); + var clipPath = $$.getClipPath(clipId); + clip.idSubchart = clipId; + $$.appendClip(defs, clipId); + $$.initBrush(); + subchart.main = svg.append("g") + .classed(CLASS.subchart, true) + .attr("transform", $$.getTranslate("context")); + var main = subchart.main; + main.style("visibility", visibility); + // Define g for chart area + main.append("g") + .attr("clip-path", clipPath) + .attr("class", CLASS.chart); + // Define g for chart types area + ["bar", "line", "bubble", "candlestick", "scatter"].forEach(function (v) { + var type = capitalize(/^(bubble|scatter)$/.test(v) ? "circle" : v); + if ($$.hasType(v) || $$.hasTypeOf(type)) { + var chart = main.select(".".concat(CLASS.chart)); + var chartClassName = CLASS["chart".concat(type, "s")]; + if (chart.select(".".concat(chartClassName)).empty()) { + chart + .append("g") + .attr("class", chartClassName); + } + } + }); + // Add extent rect for Brush + var brush = main.append("g") + .attr("clip-path", clipPath) + .attr("class", CLASS.brush) + .call($$.brush); + config.subchart_showHandle && $$.addBrushHandle(brush); + // ATTENTION: This must be called AFTER chart added + // Add Axis + axis.subX = main.append("g") + .attr("class", CLASS.axisX) + .attr("transform", $$.getTranslate("subX")) + .attr("clip-path", config.axis_rotated ? "" : clip.pathXAxis) + .style("visibility", config.subchart_axis_x_show ? visibility : "hidden"); + }, + /** + * Add brush handle + * Enabled when: subchart.showHandle=true + * @param {d3Selection} brush Brush selection + * @private + */ + addBrushHandle: function (brush) { + var $$ = this; + var config = $$.config; + var isRotated = config.axis_rotated; + var initRange = config.subchart_init_range; + var customHandleClass = "handle--custom"; + // brush handle shape's path + var path = isRotated ? + [ + "M8.5 0 a6 6 0 0 0 -6 -6.5 H-2.5 a 6 6 0 0 0 -6 6.5 z m-5 -2 H-3.5 m7 -2 H-3.5z", + "M8.5 0 a6 -6 0 0 1 -6 6.5 H-2.5 a 6 -6 0 0 1 -6 -6.5z m-5 2 H-3.5 m7 2 H-3.5z" + ] : + [ + "M0 -8.5 A6 6 0 0 0 -6.5 -3.5 V2.5 A6 6 0 0 0 0 8.5 Z M-2 -3.5 V3.5 M-4 -3.5 V3.5z", + "M0 -8.5 A6 6 0 0 1 6.5 -3.5 V2.5 A6 6 0 0 1 0 8.5 Z M2 -3.5 V3.5 M4 -3.5 V3.5z" + ]; + $$.brush.handle = brush.selectAll(".".concat(customHandleClass)) + .data(isRotated ? [{ type: "n" }, { type: "s" }] : [{ type: "w" }, { type: "e" }]) + .enter() + .append("path") + .attr("class", customHandleClass) + .attr("cursor", "".concat(isRotated ? "ns" : "ew", "-resize")) + .attr("d", function (d) { return path[+/[se]/.test(d.type)]; }) + .attr("display", initRange ? null : "none"); + }, + /** + * Update sub chart + * @param {object} targets $$.data.targets + * @private + */ + updateTargetsForSubchart: function (targets) { + var $$ = this; + var config = $$.config, state = $$.state, main = $$.$el.subchart.main; + if (config.subchart_show) { + ["bar", "line", "bubble", "candlestick", "scatter"] + .filter(function (v) { return $$.hasType(v) || $$.hasTypeOf(capitalize(v)); }) + .forEach(function (v) { + var isPointType = /^(bubble|scatter)$/.test(v); + var name = capitalize(isPointType ? "circle" : v); + var chartClass = $$.getChartClass(name, true); + var shapeClass = $$.getClass(isPointType ? "circles" : "".concat(v, "s"), true); + var shapeChart = main.select(".".concat(CLASS["chart".concat("".concat(name, "s"))])); + if (isPointType) { + var circle = shapeChart + .selectAll(".".concat(CLASS.circles)) + .data(targets.filter($$["is".concat(capitalize(v), "Type")].bind($$))) + .attr("class", shapeClass); + circle.exit().remove(); + circle.enter().append("g") + .attr("class", shapeClass); + } + else { + var shapeUpdate = shapeChart + .selectAll(".".concat(CLASS["chart".concat(name)])) + .attr("class", chartClass) + .data(targets.filter($$["is".concat(name, "Type")].bind($$))); + var shapeEnter = shapeUpdate.enter() + .append("g") + .style("opacity", "0") + .attr("class", chartClass) + .append("g") + .attr("class", shapeClass); + shapeUpdate.exit().remove(); + // Area + v === "line" && $$.hasTypeOf("Area") && + shapeEnter.append("g").attr("class", $$.getClass("areas", true)); + } + }); + // -- Brush --// + main.selectAll(".".concat(CLASS.brush, " rect")) + .attr(config.axis_rotated ? "width" : "height", config.axis_rotated ? state.width2 : state.height2); + } + }, + /** + * Redraw subchart. + * @private + * @param {boolean} withSubchart whether or not to show subchart + * @param {number} duration duration + * @param {object} shape Shape's info + */ + redrawSubchart: function (withSubchart, duration, shape) { + var _a; + var $$ = this; + var config = $$.config, main = $$.$el.subchart.main, state = $$.state; + var withTransition = !!duration; + main.style("visibility", config.subchart_show ? null : "hidden"); + // subchart + if (config.subchart_show) { + // reflect main chart to extent on subchart if zoomed + if (((_a = state.event) === null || _a === void 0 ? void 0 : _a.type) === "zoom") { + $$.brush.update(); + } + // update subchart elements if needed + if (withSubchart) { + var initRange = config.subchart_init_range; + // extent rect + !brushEmpty($$) && $$.brush.update(); + Object.keys(shape.type).forEach(function (v) { + var name = capitalize(v); + var drawFn = $$["generateDraw".concat(name)](shape.indices[v], true); + // call shape's update & redraw method + $$["update".concat(name)](withTransition, true); + $$["redraw".concat(name)](drawFn, withTransition, true); + }); + if ($$.hasType("bubble") || $$.hasType("scatter")) { + var cx = shape.pos.cx; + var cy = $$.updateCircleY(true); + $$.updateCircle(true); + $$.redrawCircle(cx, cy, withTransition, undefined, true); + } + if (!state.rendered && initRange) { + state.domain = initRange; + $$.brush.move($$.brush.getSelection(), initRange.map($$.scale.x)); + } + } + } + }, + /** + * Redraw the brush. + * @param {boolean} [callCallbck=true] Call 'onbrush' callback or not. + * @private + */ + redrawForBrush: function (callCallbck) { + var _a; + if (callCallbck === void 0) { callCallbck = true; } + var $$ = this; + var _b = $$.config, onBrush = _b.subchart_onbrush, withY = _b.zoom_rescale, scale = $$.scale, state = $$.state; + $$.redraw({ + withTransition: false, + withY: withY, + withSubchart: false, + withUpdateXDomain: true, + withDimension: false + }); + callCallbck && state.rendered && + onBrush.bind($$.api)((_a = state.domain) !== null && _a !== void 0 ? _a : scale.x.orgDomain()); + }, + /** + * Transform context + * @param {boolean} withTransition indicates transition is enabled + * @param {object} transitions The return value of the generateTransitions method of Axis. + * @private + */ + transformContext: function (withTransition, transitions) { + var $$ = this; + var subchart = $$.$el.subchart, $T = $$.$T; + var subXAxis = (transitions === null || transitions === void 0 ? void 0 : transitions.axisSubX) ? + transitions.axisSubX : + $T(subchart.main.select(".".concat(CLASS.axisX)), withTransition); + subchart.main.attr("transform", $$.getTranslate("context")); + subXAxis.attr("transform", $$.getTranslate("subX")); + }, + /** + * Get extent value + * @returns {Array} default extent + * @private + */ + getExtent: function () { + var $$ = this; + var config = $$.config, scale = $$.scale; + var extent = config.axis_x_extent; + if (extent) { + if (isFunction(extent)) { + extent = extent.bind($$.api)($$.getXDomain($$.data.targets), scale.subX); + } + else if ($$.axis.isTimeSeries() && extent.every(isNaN)) { + var fn_1 = parseDate.bind($$); + extent = extent.map(function (v) { return scale.subX(fn_1(v)); }); + } + } + return extent; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var zoom = { + /** + * Initialize zoom. + * @private + */ + initZoom: function () { + var $$ = this; + $$.scale.zoom = null; + $$.generateZoom(); + $$.initZoomBehaviour(); + }, + /** + * Bind zoom event + * @param {boolean} bind Weather bind or unbound + * @private + */ + bindZoomEvent: function (bind) { + if (bind === void 0) { bind = true; } + var $$ = this; + var config = $$.config; + var zoomEnabled = config.zoom_enabled; + if (zoomEnabled && bind) { + // Do not bind zoom event when subchart is shown + !config.subchart_show && + $$.bindZoomOnEventRect(); + } + else if (bind === false) { + $$.api.unzoom(); + $$.unbindZoomEvent(); + } + }, + /** + * Generate zoom + * @private + */ + generateZoom: function () { + var $$ = this; + var config = $$.config, org = $$.org, scale = $$.scale; + var zoom = zoom$2().duration(0) + .on("start", $$.onZoomStart.bind($$)) + .on("zoom", $$.onZoom.bind($$)) + .on("end", $$.onZoomEnd.bind($$)); + // get zoom extent + // @ts-ignore + zoom.orgScaleExtent = function () { + var extent = config.zoom_extent || [1, 10]; + return [extent[0], Math.max($$.getMaxDataCount() / extent[1], extent[1])]; + }; + // @ts-ignore + zoom.updateScaleExtent = function () { + var ratio = diffDomain($$.scale.x.orgDomain()) / diffDomain($$.getZoomDomain()); + var extent = this.orgScaleExtent(); + this.scaleExtent([extent[0] * ratio, extent[1] * ratio]); + return this; + }; + /** + * Update scale according zoom transform value + * @param {object} transform transform object + * @param {boolean} correctTransform if the d3 transform should be updated after rescaling + * @private + */ + // @ts-ignore + zoom.updateTransformScale = function (transform, correctTransform) { + var _a; + var isRotated = config.axis_rotated; + // in case of resize, update range of orgXScale + (_a = org.xScale) === null || _a === void 0 ? void 0 : _a.range(scale.x.range()); + // rescale from the original scale + var newScale = transform[isRotated ? "rescaleY" : "rescaleX"](org.xScale || scale.x); + var domain = $$.trimXDomain(newScale.domain()); + var rescale = config.zoom_rescale; + newScale.domain(domain, org.xDomain); + // prevent chart from panning off the edge and feeling "stuck" + // https://github.com/naver/billboard.js/issues/2588 + if (correctTransform) { + var t = newScale(scale.x.domain()[0]); + var tX = isRotated ? transform.x : t; + var tY = isRotated ? t : transform.y; + $$.$el.eventRect.property("__zoom", zoomIdentity.translate(tX, tY).scale(transform.k)); + } + if (!$$.state.xTickOffset) { + $$.state.xTickOffset = $$.axis.x.tickOffset(); + } + scale.zoom = $$.getCustomizedXScale(newScale); + $$.axis.x.scale(scale.zoom); + if (rescale) { + // copy current initial x scale in case of rescale option is used + !org.xScale && (org.xScale = scale.x.copy()); + scale.x.domain(domain); + } + else if (org.xScale) { + scale.x.domain(org.xScale.domain()); + org.xScale = null; + } + }; + /** + * Get zoom domain + * @returns {Array} zoom domain + * @private + */ + // @ts-ignore + zoom.getDomain = function () { + var domain = scale[scale.zoom ? "zoom" : "subX"].domain(); + var isCategorized = $$.axis.isCategorized(); + if (isCategorized) { + domain[1] -= 2; + } + return domain; + }; + $$.zoom = zoom; + }, + /** + * 'start' event listener + * @param {object} event Event object + * @private + */ + onZoomStart: function (event) { + var $$ = this; + var sourceEvent = event.sourceEvent; + if (sourceEvent) { + $$.zoom.startEvent = sourceEvent; + $$.state.zooming = true; + callFn($$.config.zoom_onzoomstart, $$.api, event); + } + }, + /** + * 'zoom' event listener + * @param {object} event Event object + * @private + */ + onZoom: function (event) { + var _a; + var $$ = this; + var config = $$.config, scale = $$.scale, state = $$.state, org = $$.org; + var sourceEvent = event.sourceEvent; + var isUnZoom = (event === null || event === void 0 ? void 0 : event.transform) === zoomIdentity; + if (!config.zoom_enabled || + $$.filterTargetsToShow($$.data.targets).length === 0 || + (!scale.zoom && (sourceEvent === null || sourceEvent === void 0 ? void 0 : sourceEvent.type.indexOf("touch")) > -1 && + (sourceEvent === null || sourceEvent === void 0 ? void 0 : sourceEvent.touches.length) === 1)) { + return; + } + if (event.sourceEvent) { + state.zooming = true; + state.domain = undefined; + } + var isMousemove = (sourceEvent === null || sourceEvent === void 0 ? void 0 : sourceEvent.type) === "mousemove"; + var isZoomOut = (sourceEvent === null || sourceEvent === void 0 ? void 0 : sourceEvent.wheelDelta) < 0; + var transform = event.transform; + if (!isMousemove && isZoomOut && scale.x.domain().every(function (v, i) { return v !== org.xDomain[i]; })) { + scale.x.domain(org.xDomain); + } + $$.zoom.updateTransformScale(transform, config.zoom_type === "wheel" && sourceEvent); + // do zoom transiton when: + // - zoom type 'drag' + // - when .unzoom() is called (event.transform === d3ZoomIdentity) + var doTransition = config.transition_duration > 0 && + !config.subchart_show && (state.dragging || isUnZoom || !event.sourceEvent); + $$.redraw({ + withTransition: doTransition, + withY: config.zoom_rescale, + withSubchart: false, + withEventRect: false, + withDimension: false + }); + $$.state.cancelClick = isMousemove; + // do not call event cb when is .unzoom() is called + !isUnZoom && callFn(config.zoom_onzoom, $$.api, (_a = $$.state.domain) !== null && _a !== void 0 ? _a : $$.zoom.getDomain()); + }, + /** + * 'end' event listener + * @param {object} event Event object + * @private + */ + onZoomEnd: function (event) { + var _a, _b; + var $$ = this; + var config = $$.config, state = $$.state; + var startEvent = $$.zoom.startEvent; + var e = event === null || event === void 0 ? void 0 : event.sourceEvent; + var isUnZoom = (event === null || event === void 0 ? void 0 : event.transform) === zoomIdentity; + if ((startEvent === null || startEvent === void 0 ? void 0 : startEvent.type.indexOf("touch")) > -1) { + startEvent = startEvent.changedTouches[0]; + e = (_a = e === null || e === void 0 ? void 0 : e.changedTouches) === null || _a === void 0 ? void 0 : _a[0]; + } + // if click, do nothing. otherwise, click interaction will be canceled. + if (config.zoom_type === "drag" && (e && startEvent.clientX === e.clientX && startEvent.clientY === e.clientY)) { + return; + } + state.zooming = false; + $$.redrawEventRect(); + $$.updateZoom(); + // do not call event cb when is .unzoom() is called + !isUnZoom && (e || state.dragging) && callFn(config.zoom_onzoomend, $$.api, (_b = $$.state.domain) !== null && _b !== void 0 ? _b : $$.zoom.getDomain()); + }, + /** + * Update zoom + * @param {boolean} force Force unzoom + * @private + */ + updateZoom: function (force) { + var $$ = this; + var _a = $$.scale, subX = _a.subX, x = _a.x, zoom = _a.zoom; + if (zoom) { + var zoomDomain = zoom.domain(); + var xDomain = subX.domain(); + var delta = 0.015; // arbitrary value + var isfullyShown = $$.config.axis_x_inverted ? + (zoomDomain[0] >= xDomain[0] || (zoomDomain[0] + delta) >= xDomain[0]) && (xDomain[1] >= zoomDomain[1] || xDomain[1] >= (zoomDomain[1] + delta)) : + (zoomDomain[0] <= xDomain[0] || (zoomDomain[0] - delta) <= xDomain[0]) && (xDomain[1] <= zoomDomain[1] || xDomain[1] <= (zoomDomain[1] - delta)); + // check if the zoomed chart is fully shown, then reset scale when zoom is out as initial + if (force || isfullyShown) { + $$.axis.x.scale(subX); + x.domain(subX.orgDomain()); + $$.scale.zoom = null; + } + } + }, + /** + * Set zoom transform to event rect + * @param {Function} x x Axis scale function + * @param {Array} domain Domain value to be set + * @private + */ + updateCurrentZoomTransform: function (x, domain) { + var _a; + var $$ = this; + var eventRect = $$.$el.eventRect, config = $$.config; + var isRotated = config.axis_rotated; + // Get transform from given domain value + // https://github.com/d3/d3-zoom/issues/57#issuecomment-246434951 + var translate = [-x(domain[0]), 0]; + var transform = (_a = zoomIdentity + .scale(x.range()[1] / (x(domain[1]) - x(domain[0])))) + .translate.apply(_a, (isRotated ? translate.reverse() : translate)); + eventRect.call($$.zoom.transform, transform); + }, + /** + * Attach zoom event on <rect> + * @private + */ + bindZoomOnEventRect: function () { + var $$ = this; + var config = $$.config, eventRect = $$.$el.eventRect; + var behaviour = config.zoom_type === "drag" ? $$.zoomBehaviour : $$.zoom; + eventRect === null || eventRect === void 0 ? void 0 : eventRect.call(behaviour).on("dblclick.zoom", null); + }, + /** + * Initialize the drag behaviour used for zooming. + * @private + */ + initZoomBehaviour: function () { + var $$ = this; + var config = $$.config, state = $$.state; + var isRotated = config.axis_rotated; + var start = 0; + var end = 0; + var zoomRect; + var prop = { + axis: isRotated ? "y" : "x", + attr: isRotated ? "height" : "width", + index: isRotated ? 1 : 0 + }; + $$.zoomBehaviour = drag$1() + .clickDistance(4) + .on("start", function (event) { + state.event = event; + $$.setDragStatus(true); + $$.unselectRect(); + if (!zoomRect) { + zoomRect = $$.$el.main.append("rect") + .attr("clip-path", state.clip.path) + .attr("class", $ZOOM.zoomBrush) + .attr("width", isRotated ? state.width : 0) + .attr("height", isRotated ? 0 : state.height); + } + start = getPointer(event, this)[prop.index]; + end = start; + zoomRect + .attr(prop.axis, start) + .attr(prop.attr, 0); + $$.onZoomStart(event); + }) + .on("drag", function (event) { + end = getPointer(event, this)[prop.index]; + zoomRect + .attr(prop.axis, Math.min(start, end)) + .attr(prop.attr, Math.abs(end - start)); + }) + .on("end", function (event) { + var _a; + var scale = $$.scale.zoom || $$.scale.x; + state.event = event; + zoomRect + .attr(prop.axis, 0) + .attr(prop.attr, 0); + if (start > end) { + _a = [end, start], start = _a[0], end = _a[1]; + } + if (start < 0) { + end += Math.abs(start); + start = 0; + } + if (start !== end) { + $$.api.zoom([start, end].map(function (v) { return scale.invert(v); })); + } + $$.setDragStatus(false); + }); + }, + setZoomResetButton: function () { + var $$ = this; + var config = $$.config, $el = $$.$el; + var resetButton = config.zoom_resetButton; + if (resetButton && config.zoom_type === "drag") { + if (!$el.zoomResetBtn) { + $el.zoomResetBtn = $$.$el.chart.append("div") + .classed($COMMON.button, true) + .append("span") + .on("click", function () { + isFunction(resetButton.onclick) && resetButton.onclick.bind($$.api)(this); + $$.api.unzoom(); + }) + .classed($ZOOM.buttonZoomReset, true) + .text(resetButton.text || "Reset Zoom"); + } + else { + $el.zoomResetBtn.style("display", null); + } + } + }, + getZoomTransform: function () { + var $$ = this; + var eventRect = $$.$el.eventRect; + return (eventRect === null || eventRect === void 0 ? void 0 : eventRect.node()) ? zoomTransform(eventRect.node()) : { k: 1 }; + } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Module used for data.selection.draggable option + */ +var drag = { + /** + * Called when dragging. + * Data points can be selected. + * @private + * @param {object} mouse Object + */ + drag: function (mouse) { + var $$ = this; + var config = $$.config, state = $$.state, main = $$.$el.main; + var isSelectionGrouped = config.data_selection_grouped; + var isSelectable = config.interaction_enabled && config.data_selection_isselectable; + if ($$.hasArcType() || + !config.data_selection_enabled || // do nothing if not selectable + (config.zoom_enabled && !$$.zoom.altDomain) || // skip if zoomable because of conflict drag behavior + !config.data_selection_multiple // skip when single selection because drag is used for multiple selection + ) { + return; + } + var _a = state.dragStart || [0, 0], sx = _a[0], sy = _a[1]; + var mx = mouse[0], my = mouse[1]; + var minX = Math.min(sx, mx); + var maxX = Math.max(sx, mx); + var minY = isSelectionGrouped ? state.margin.top : Math.min(sy, my); + var maxY = isSelectionGrouped ? state.height : Math.max(sy, my); + main.select(".".concat($DRAG.dragarea)) + .attr("x", minX) + .attr("y", minY) + .attr("width", maxX - minX) + .attr("height", maxY - minY); + // TODO: binary search when multiple xs + main.selectAll(".".concat($SHAPE.shapes)) + .selectAll(".".concat($SHAPE.shape)) + .filter(function (d) { return isSelectable === null || isSelectable === void 0 ? void 0 : isSelectable.bind($$.api)(d); }) + .each(function (d, i) { + var shape = select(this); + var isSelected = shape.classed($SELECT.SELECTED); + var isIncluded = shape.classed($DRAG.INCLUDED); + var isWithin = false; + var toggle; + if (shape.classed($CIRCLE.circle)) { + var x = +shape.attr("cx") * 1; + var y = +shape.attr("cy") * 1; + toggle = $$.togglePoint; + isWithin = minX < x && x < maxX && minY < y && y < maxY; + } + else if (shape.classed($BAR.bar)) { + var _a = getPathBox(this), x = _a.x, y = _a.y, width = _a.width, height = _a.height; + toggle = $$.togglePath; + isWithin = !(maxX < x || x + width < minX) && !(maxY < y || y + height < minY); + } + else { + // line/area selection not supported yet + return; + } + // @ts-ignore + if (isWithin ^ isIncluded) { + shape.classed($DRAG.INCLUDED, !isIncluded); + // TODO: included/unincluded callback here + shape.classed($SELECT.SELECTED, !isSelected); + toggle.call($$, !isSelected, shape, d, i); + } + }); + }, + /** + * Called when the drag starts. + * Adds and Shows the drag area. + * @private + * @param {object} mouse Object + */ + dragstart: function (mouse) { + var $$ = this; + var config = $$.config, state = $$.state, main = $$.$el.main; + if ($$.hasArcType() || !config.data_selection_enabled) { + return; + } + state.dragStart = mouse; + main.select(".".concat($COMMON.chart)) + .append("rect") + .attr("class", $DRAG.dragarea) + .style("opacity", "0.1"); + $$.setDragStatus(true); + }, + /** + * Called when the drag finishes. + * Removes the drag area. + * @private + */ + dragend: function () { + var $$ = this; + var config = $$.config, main = $$.$el.main, $T = $$.$T; + if ($$.hasArcType() || !config.data_selection_enabled) { // do nothing if not selectable + return; + } + $T(main.select(".".concat($DRAG.dragarea))) + .style("opacity", "0") + .remove(); + main.selectAll(".".concat($SHAPE.shape)) + .classed($DRAG.INCLUDED, false); + $$.setDragStatus(false); + } +}; + +var selection = __assign(__assign({}, drag), { + /** + * Select a point + * @param {object} target Target point + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + selectPoint: function (target, d, i) { + var $$ = this; + var config = $$.config, main = $$.$el.main, $T = $$.$T; + var isRotated = config.axis_rotated; + var cx = (isRotated ? $$.circleY : $$.circleX).bind($$); + var cy = (isRotated ? $$.circleX : $$.circleY).bind($$); + var r = $$.pointSelectR.bind($$); + callFn(config.data_onselected, $$.api, d, target.node()); + // add selected-circle on low layer g + $T(main.select(".".concat($SELECT.selectedCircles).concat($$.getTargetSelectorSuffix(d.id))) + .selectAll(".".concat($SELECT.selectedCircle, "-").concat(i)) + .data([d]) + .enter() + .append("circle") + .attr("class", function () { return $$.generateClass($SELECT.selectedCircle, i); }) + .attr("cx", cx) + .attr("cy", cy) + .attr("stroke", $$.color) + .attr("r", function (d2) { return $$.pointSelectR(d2) * 1.4; })).attr("r", r); + }, + /** + * Unelect a point + * @param {object} target Target point + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + unselectPoint: function (target, d, i) { + var $$ = this; + var config = $$.config, main = $$.$el.main, $T = $$.$T; + callFn(config.data_onunselected, $$.api, d, target === null || target === void 0 ? void 0 : target.node()); + // remove selected-circle from low layer g + $T(main.select(".".concat($SELECT.selectedCircles).concat($$.getTargetSelectorSuffix(d.id))) + .selectAll(".".concat($SELECT.selectedCircle, "-").concat(i))) + .attr("r", 0) + .remove(); + }, + /** + * Toggles the selection of points + * @param {boolean} selected whether or not to select. + * @param {object} target Target object + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + togglePoint: function (selected, target, d, i) { + var method = "".concat(selected ? "" : "un", "selectPoint"); + this[method](target, d, i); + }, + /** + * Select a path + * @param {object} target Target path + * @param {object} d Data object + * @private + */ + selectPath: function (target, d) { + var $$ = this; + var config = $$.config; + callFn(config.data_onselected, $$.api, d, target.node()); + if (config.interaction_brighten) { + target.style("filter", "brightness(1.25)"); + } + }, + /** + * Unelect a path + * @private + * @param {object} target Target path + * @param {object} d Data object + */ + unselectPath: function (target, d) { + var $$ = this; + var config = $$.config; + callFn(config.data_onunselected, $$.api, d, target.node()); + if (config.interaction_brighten) { + target.style("filter", null); + } + }, + /** + * Toggles the selection of lines + * @param {boolean} selected whether or not to select. + * @param {object} target Target object + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + togglePath: function (selected, target, d, i) { + this["".concat(selected ? "" : "un", "selectPath")](target, d, i); + }, + /** + * Returns the toggle method of the target + * @param {object} that shape + * @param {object} d Data object + * @returns {Function} toggle method + * @private + */ + getToggle: function (that, d) { + var $$ = this; + return that.nodeName === "path" ? $$.togglePath : ($$.isStepType(d) ? + function () { } : // circle is hidden in step chart, so treat as within the click area + $$.togglePoint); + }, + /** + * Toggles the selection of shapes + * @param {object} that shape + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + toggleShape: function (that, d, i) { + var _a; + var $$ = this; + var config = $$.config, main = $$.$el.main; + if (config.data_selection_enabled && config.data_selection_isselectable.bind($$.api)(d)) { + var shape = select(that); + var isSelected = shape.classed($SELECT.SELECTED); + var toggle_1 = $$.getToggle(that, d).bind($$); + var toggledShape_1; + if (!config.data_selection_multiple) { + var focusOnly = (_a = $$.isPointFocusOnly) === null || _a === void 0 ? void 0 : _a.call($$); + var selector = ".".concat(focusOnly ? $SELECT.selectedCircles : $SHAPE.shapes); + if (config.data_selection_grouped) { + selector += $$.getTargetSelectorSuffix(d.id); + } + main.selectAll(selector) + .selectAll(focusOnly ? + ".".concat($SELECT.selectedCircle) : + ".".concat($SHAPE.shape, ".").concat($SELECT.SELECTED)) + .classed($SELECT.SELECTED, false) + .each(function (d) { + var shape = select(this); + toggledShape_1 = shape; + toggle_1(false, shape, d, d.index); + }); + } + if (!toggledShape_1 || toggledShape_1.node() !== shape.node()) { + shape.classed($SELECT.SELECTED, !isSelected); + toggle_1(!isSelected, shape, d, i); + } + } + } }); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * data.selection config options + */ +var optDataSelection = { + /** + * Set data selection enabled<br><br> + * If this option is set true, we can select the data points and get/set its state of selection by API (e.g. select, unselect, selected). + * - **NOTE:** for ESM imports, needs to import 'selection' exports and instantiate it by calling `selection()`. + * - `enabled: selection()` + * @name data․selection․enabled + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataSelection) + * @example + * data: { + * selection: { + * enabled: true + * } + * } + * @example + * // importing ESM + * import bb, {selection} from "billboard.js"; + * + * data: { + * selection: { + * enabled: selection(), + * ... + * } + * } + */ + data_selection_enabled: false, + /** + * Set grouped selection enabled.<br><br> + * If this option set true, multiple data points that have same x value will be selected by one selection. + * @name data․selection․grouped + * @memberof Options + * @type {boolean} + * @default false + * @example + * data: { + * selection: { + * grouped: true + * } + * } + */ + data_selection_grouped: false, + /** + * Set a callback for each data point to determine if it's selectable or not.<br><br> + * The callback will receive d as an argument and it has some parameters like id, value, index. This callback should return boolean. + * @name data․selection․isselectable + * @memberof Options + * @type {Function} + * @default function() { return true; } + * @example + * data: { + * selection: { + * isselectable: function(d) { ... } + * } + * } + */ + data_selection_isselectable: function () { return true; }, + /** + * Set multiple data points selection enabled.<br><br> + * If this option set true, multile data points can have the selected state at the same time. If false set, only one data point can have the selected state and the others will be unselected when the new data point is selected. + * @name data․selection․multiple + * @memberof Options + * @type {boolean} + * @default true + * @example + * data: { + * selection: { + * multiple: false + * } + * } + */ + data_selection_multiple: true, + /** + * Enable to select data points by dragging. + * If this option set true, data points can be selected by dragging. + * - **NOTE:** If this option set true, scrolling on the chart will be disabled because dragging event will handle the event. + * @name data․selection․draggable + * @memberof Options + * @type {boolean} + * @default false + * @example + * data: { + * selection: { + * draggable: true + * } + * } + */ + data_selection_draggable: false, + /** + * Set a callback for on data selection. + * @name data․onselected + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onselected: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"} + * // element - <circle> + * ... + * } + * } + */ + data_onselected: function () { }, + /** + * Set a callback for on data un-selection. + * @name data․onunselected + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onunselected: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"} + * // element - <circle> + * ... + * } + * } + */ + data_onunselected: function () { } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * x Axis config options + */ +var optSubchart = { + /** + * Set subchart options. + * - **NOTE:** Not supported for `bubble`, `scatter` and non-Axis based(pie, donut, gauge, radar) types. + * @name subchart + * @memberof Options + * @type {object} + * @property {object} subchart Subchart object + * @property {boolean} [subchart.show=false] Show sub chart on the bottom of the chart. + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * - `show: subchart()` + * @property {boolean} [subchart.showHandle=false] Show sub chart's handle. + * @property {boolean} [subchart.axis.x.show=true] Show or hide x axis. + * @property {boolean} [subchart.axis.x.tick.show=true] Show or hide x axis tick line. + * @property {Function|string} [subchart.axis.x.tick.format] Use custom format for x axis ticks - see [axis.x.tick.format](#.axis․x․tick․format) for details. + * @property {boolean} [subchart.axis.x.tick.text.show=true] Show or hide x axis tick text. + * @property {Array} [subchart.init.range] Set initial selection domain range. + * @property {number} [subchart.size.height] Change the height of the subchart. + * @property {Function} [subchart.onbrush] Set callback for brush event.<br> + * Specified function receives the current zoomed x domain. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Interaction.SubChart) + * @example + * subchart: { + * show: true, + * showHandle: true, + * size: { + * height: 20 + * }, + * init: { + * // specify initial range domain selection + * range: [1, 2] + * }, + * axis: { + * x: { + * show: true, + * tick: { + * show: true, + * format: (x) => d3Format(".1f")(x) + * text: { + * show: false + * } + * } + * } + * }, + * onbrush: function(domain) { ... } + * } + * @example + * // importing ESM + * import bb, {subchart} from "billboard.js"; + * + * subchart: { + * show: subchart(), + * ... + * } + */ + subchart_show: false, + subchart_showHandle: false, + subchart_size_height: 60, + subchart_axis_x_show: true, + subchart_axis_x_tick_show: true, + subchart_axis_x_tick_format: undefined, + subchart_axis_x_tick_text_show: true, + subchart_init_range: undefined, + subchart_onbrush: function () { } +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * zoom config options + */ +var optZoom = { + /** + * Set zoom options + * @name zoom + * @memberof Options + * @type {object} + * @property {object} zoom Zoom object + * @property {boolean} [zoom.enabled=false] Enable zooming. + * - **NOTE:** for ESM imports, needs to import 'zoom' exports and instantiate it by calling `zoom()`. + * - `enabled: zoom()` + * @property {string} [zoom.type='wheel'] Set zoom interaction type. + * - **Available types:** + * - wheel + * - drag + * @property {boolean} [zoom.rescale=false] Enable to rescale after zooming.<br> + * If true set, y domain will be updated according to the zoomed region. + * @property {Array} [zoom.extent=[1, 10]] Change zoom extent. + * @property {number|Date} [zoom.x.min] Set x Axis minimum zoom range + * @property {number|Date} [zoom.x.max] Set x Axis maximum zoom range + * @property {Function} [zoom.onzoomstart=undefined] Set callback that is called when zooming starts.<br> + * Specified function receives the zoom event. + * @property {Function} [zoom.onzoom=undefined] Set callback that is called when the chart is zooming.<br> + * Specified function receives the zoomed domain. + * @property {Function} [zoom.onzoomend=undefined] Set callback that is called when zooming ends.<br> + * Specified function receives the zoomed domain. + * @property {boolean|object} [zoom.resetButton=true] Set to display zoom reset button for 'drag' type zoom + * @property {Function} [zoom.resetButton.onclick] Set callback when clicks the reset button. The callback will receive reset button element reference as argument. + * @property {string} [zoom.resetButton.text='Reset Zoom'] Text value for zoom reset button. + * @see [Demo:zoom](https://naver.github.io/billboard.js/demo/#Interaction.Zoom) + * @see [Demo:drag zoom](https://naver.github.io/billboard.js/demo/#Interaction.DragZoom) + * @example + * zoom: { + * enabled: true, + * type: "drag", + * rescale: true, + * extent: [1, 100] // enable more zooming + * x: { + * min: -1, // set min range + * max: 10 // set max range + * }, + * onzoomstart: function(event) { ... }, + * onzoom: function(domain) { ... }, + * onzoomend: function(domain) { ... }, + * + * // show reset button when is zoomed-in + * resetButton: true, + * + * resetButton: { + * // onclick callback when reset button is clicked + * onclick: function(button) { + * button; // Reset button element reference + * ... + * }, + * + * // customized text value for reset zoom button + * text: "Unzoom" + * } + * } + * @example + * // importing ESM + * import bb, {zoom} from "billboard.js"; + * + * zoom: { + * enabled: zoom(), + * ... + * } + */ + zoom_enabled: false, + zoom_type: "wheel", + zoom_extent: undefined, + zoom_privileged: false, + zoom_rescale: false, + zoom_onzoom: undefined, + zoom_onzoomstart: undefined, + zoom_onzoomend: undefined, + zoom_resetButton: true, + zoom_x_min: undefined, + zoom_x_max: undefined +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +var selectionModule = function () { + extend(ChartInternal.prototype, selection); + extend(Chart.prototype, apiSelection); + Options.setOptions([optDataSelection]); + return (selectionModule = function () { return true; })(); +}; +var subchartModule = function () { + extend(ChartInternal.prototype, subchart); + extend(Chart.prototype, apiSubchart); + Options.setOptions([optSubchart]); + return (subchartModule = function () { return true; })(); +}; +var zoomModule = function () { + extend(ChartInternal.prototype, zoom); + extend(Chart.prototype, apiZoom); + Options.setOptions([optZoom]); + return (zoomModule = function () { return true; })(); +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard project is licensed under the MIT license + */ +var defaults = {}; +/** + * @namespace bb + * @version 3.12.4 + */ +var bb = { + /** + * Version information + * @property {string} version version + * @example + * bb.version; // "1.0.0" + * @memberof bb + */ + version: "3.12.4", + /** + * Generate chart + * - **NOTE:** Bear in mind for the possiblity of ***throwing an error***, during the generation when: + * - Unused option value is given. + * - ex) For `data.type="pie"` option, setting 'axis' option can cause unexpected generation error. + * - Insufficient value is given for certain option used. + * - ex) `data: { x: "x", columns: [["x"], ["data1", 30, 200, 100]] }` + * @param {Options} config chart options + * @memberof bb + * @returns {Chart} + * @see {@link Options} for different generation options + * @see {@link Chart} for different methods API + * @example + * <!-- chart holder --> + * <div id="LineChart"></div> + * @example + * // Generate chart with options + * var chart = bb.generate({ + * "bindto": "#LineChart" + * "data": { + * "columns": [ + * ["data1", 30, 200, 100, 400, 150, 250], + * ["data2", 50, 20, 10, 40, 15, 25] + * ], + * "type": "line" + * } + * }); + * + * // call some API + * // ex) get the data of 'data1' + * chart.data("data1"); + * @example + * // Generate chart by importing ESM + * // Import types to be used only, where this will make smaller bundle size. + * import bb, { + * area, + * areaLineRange, + * areaSpline, + * areaSplineRange, + * areaStep, + * bar, + * bubble, + * donut, + * gauge, + * line, + * pie, + * polar, + * radar, + * scatter, + * spline, + * step + * } + * + * bb.generate({ + * "bindto": "#LineChart" + * "data": { + * "columns": [ + * ["data1", 30, 200, 100, 400, 150, 250], + * ["data2", 50, 20, 10, 40, 15, 25] + * ] + * }, + * type: line(), + * + * // or + * types: { + * data1: bar(), + * data2: step() + * } + * }); + */ + generate: function (config) { + var options = mergeObj({}, defaults, config); + var inst = new Chart(options); + inst.internal.charts = this.instance; + this.instance.push(inst); + return inst; + }, + /** + * Set or get global default options. + * - **NOTE:** + * - The options values settings are valid within page context only. + * - If is called multiple times, will override the last value. + * @param {Options} options chart options + * @memberof bb + * @returns {Options} + * @see {@link Options} + * @example + * // Set same option value as for `.generate()` + * bb.defaults({ + * data: { + * type: "bar" + * } + * }); + * + * bb.defaults(); // {data:{type: "bar"}} + * + * // data.type defaults to 'bar' + * var chart = bb.generate({ ... }); + */ + defaults: function (options) { + if (isObject(options)) { + defaults = options; + } + return defaults; + }, + /** + * An array containing instance created + * @property {Array} instance instance array + * @example + * // generate charts + * var chart1 = bb.generate(...); + * var chart2 = bb.generate(...); + * + * bb.instance; // [ chart1, chart2, ... ] + * @memberof bb + */ + instance: [], + /** + * Namespace for plugins + * @property {object} plugin plugin namespace + * @example + * // Stanford diagram plugin + * bb.plugin.stanford; + * @memberof bb + */ + plugin: {} +}; + +export { area, areaLineRange, areaSpline, areaSplineRange, areaStep, bar, bb, bubble, candlestick, bb as default, donut, funnel, gauge, line, pie, polar, radar, scatter, selectionModule as selection, spline, step, subchartModule as subchart, treemap, zoomModule as zoom }; diff --git a/release/3.12.4/dist-esm/plugin/billboardjs-plugin-bubblecompare.d.ts b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-bubblecompare.d.ts new file mode 100644 index 000000000..59f361458 --- /dev/null +++ b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-bubblecompare.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +import PluginClass from "../../types/plugin/bubblecompare"; + +export default PluginClass; diff --git a/release/3.12.4/dist-esm/plugin/billboardjs-plugin-bubblecompare.js b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-bubblecompare.js new file mode 100644 index 000000000..880aea8a3 --- /dev/null +++ b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-bubblecompare.js @@ -0,0 +1,204 @@ +/*! +* Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin +*/ +import { select } from 'd3-selection'; + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise, SuppressedError, Symbol */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Base class to generate billboard.js plugin + * @class Plugin + */ +/** + * Version info string for plugin + * @name version + * @static + * @memberof Plugin + * @type {string} + * @example + * bb.plugin.stanford.version; // ex) 1.9.0 + */ +var Plugin = /** @class */ (function () { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + function Plugin(options) { + if (options === void 0) { options = {}; } + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + Plugin.prototype.$beforeInit = function () { }; + /** + * Lifecycle hook for 'init' phase. + * @private + */ + Plugin.prototype.$init = function () { }; + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + Plugin.prototype.$afterInit = function () { }; + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + Plugin.prototype.$redraw = function () { }; + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + Plugin.prototype.$willDestroy = function () { + var _this = this; + Object.keys(this).forEach(function (key) { + _this[key] = null; + delete _this[key]; + }); + }; + Plugin.version = "3.12.4"; + return Plugin; +}()); + +/** + * Bubble compare diagram plugin.<br> + * Compare data 3-dimensional ways: x-axis, y-axis & bubble-size. + * - **NOTE:** + * - Plugins aren't built-in. Need to be loaded or imported to be used. + * - Non required modules from billboard.js core, need to be installed separately. + * - **Required modules:** + * - [d3-selection](https://github.com/d3/d3-selection) + * @class plugin-bubblecompare + * @requires d3-selection + * @param {object} options bubble compare plugin options + * @augments Plugin + * @returns {BubbleCompare} + * @example + * // Plugin must be loaded before the use. + * <script src="$YOUR_PATH/plugin/billboardjs-plugin-bubblecompare.js"></script> + * + * var chart = bb.generate({ + * data: { + * columns: [ ... ], + * type: "bubble" + * } + * ... + * plugins: [ + * new bb.plugin.bubblecompare({ + * minR: 11, + * maxR: 74, + * expandScale: 1.1 + * }), + * ] + * }); + * @example + * import {bb} from "billboard.js"; + * import BubbleCompare from "billboard.js/dist/billboardjs-plugin-bubblecompare"; + * + * bb.generate({ + * plugins: [ + * new BubbleCompare({ ... }) + * ] + * }) + */ +var BubbleCompare = /** @class */ (function (_super) { + __extends(BubbleCompare, _super); + function BubbleCompare(options) { + var _this = _super.call(this, options) || this; + return _this; + } + BubbleCompare.prototype.$init = function () { + var $$ = this.$$; + $$.findClosest = this.findClosest.bind(this); + $$.getBubbleR = this.getBubbleR.bind(this); + $$.pointExpandedR = this.pointExpandedR.bind(this); + }; + BubbleCompare.prototype.pointExpandedR = function (d) { + var baseR = this.getBubbleR(d); + var _a = this.options.expandScale, expandScale = _a === void 0 ? 1 : _a; + BubbleCompare.raiseFocusedBubbleLayer(d); + this.changeCursorPoint(); + return baseR * expandScale; + }; + BubbleCompare.raiseFocusedBubbleLayer = function (d) { + d.raise && select(d.node().parentNode.parentNode).raise(); + }; + BubbleCompare.prototype.changeCursorPoint = function () { + this.$$.$el.eventRect.style("cursor", "pointer"); + }; + BubbleCompare.prototype.findClosest = function (values, pos) { + var _this = this; + var $$ = this.$$; + return values + .filter(function (v) { return v && !$$.isBarType(v.id); }) + .reduce(function (acc, cur) { + var d = $$.dist(cur, pos); + return d < _this.getBubbleR(cur) ? cur : acc; + }, 0); + }; + BubbleCompare.prototype.getBubbleR = function (d) { + var _this = this; + var _a = this.options, minR = _a.minR, maxR = _a.maxR; + var curVal = this.getZData(d); + if (!curVal) + return minR; + var _b = this.$$.data.targets.reduce(function (_a, cur) { + var accMin = _a[0], accMax = _a[1]; + var val = _this.getZData(cur.values[0]); + return [Math.min(accMin, val), Math.max(accMax, val)]; + }, [10000, 0]), min = _b[0], max = _b[1]; + var size = min > 0 && max === min ? 0 : curVal / max; + return Math.abs(size) * (maxR - minR) + minR; + }; + BubbleCompare.prototype.getZData = function (d) { + return this.$$.isBubbleZType(d) ? this.$$.getBubbleZData(d.value, "z") : d.value; + }; + BubbleCompare.version = "0.0.1"; + return BubbleCompare; +}(Plugin)); + +export { BubbleCompare as default }; diff --git a/release/3.12.4/dist-esm/plugin/billboardjs-plugin-sparkline.d.ts b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-sparkline.d.ts new file mode 100644 index 000000000..8ecf64294 --- /dev/null +++ b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-sparkline.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +import PluginClass from "../../types/plugin/sparkline"; + +export default PluginClass; diff --git a/release/3.12.4/dist-esm/plugin/billboardjs-plugin-sparkline.js b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-sparkline.js new file mode 100644 index 000000000..075daeb1c --- /dev/null +++ b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-sparkline.js @@ -0,0 +1,716 @@ +/*! +* Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin +*/ +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise, SuppressedError, Symbol */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * CSS class names definition + * @private + */ +var $COMMON = { + button: "bb-button", + chart: "bb-chart", + empty: "bb-empty", + main: "bb-main", + target: "bb-target", + EXPANDED: "_expanded_" +}; +var $ARC = { + arc: "bb-arc", + arcLabelLine: "bb-arc-label-line", + arcRange: "bb-arc-range", + arcs: "bb-arcs", + chartArc: "bb-chart-arc", + chartArcs: "bb-chart-arcs", + chartArcsBackground: "bb-chart-arcs-background", + chartArcsTitle: "bb-chart-arcs-title", + needle: "bb-needle" +}; +var $AREA = { + area: "bb-area", + areas: "bb-areas" +}; +var $AXIS = { + axis: "bb-axis", + axisX: "bb-axis-x", + axisXLabel: "bb-axis-x-label", + axisY: "bb-axis-y", + axisY2: "bb-axis-y2", + axisY2Label: "bb-axis-y2-label", + axisYLabel: "bb-axis-y-label", + axisXTooltip: "bb-axis-x-tooltip", + axisYTooltip: "bb-axis-y-tooltip", + axisY2Tooltip: "bb-axis-y2-tooltip" +}; +var $BAR = { + bar: "bb-bar", + bars: "bb-bars", + chartBar: "bb-chart-bar", + chartBars: "bb-chart-bars" +}; +var $CANDLESTICK = { + candlestick: "bb-candlestick", + candlesticks: "bb-candlesticks", + chartCandlestick: "bb-chart-candlestick", + chartCandlesticks: "bb-chart-candlesticks", + valueDown: "bb-value-down", + valueUp: "bb-value-up" +}; +var $CIRCLE = { + chartCircles: "bb-chart-circles", + circle: "bb-circle", + circles: "bb-circles" +}; +var $COLOR = { + colorPattern: "bb-color-pattern", + colorScale: "bb-colorscale" +}; +var $DRAG = { + dragarea: "bb-dragarea", + INCLUDED: "_included_" +}; +var $FUNNEL = { + funnel: "bb-funnel", + chartFunnel: "bb-chart-funnel", + chartFunnels: "bb-chart-funnels", + funnelBackground: "bb-funnel-background" +}; +var $GAUGE = { + chartArcsGaugeMax: "bb-chart-arcs-gauge-max", + chartArcsGaugeMin: "bb-chart-arcs-gauge-min", + chartArcsGaugeUnit: "bb-chart-arcs-gauge-unit", + chartArcsGaugeTitle: "bb-chart-arcs-gauge-title", + gaugeValue: "bb-gauge-value" +}; +var $LEGEND = { + legend: "bb-legend", + legendBackground: "bb-legend-background", + legendItem: "bb-legend-item", + legendItemEvent: "bb-legend-item-event", + legendItemHidden: "bb-legend-item-hidden", + legendItemPoint: "bb-legend-item-point", + legendItemTile: "bb-legend-item-tile" +}; +var $LINE = { + chartLine: "bb-chart-line", + chartLines: "bb-chart-lines", + line: "bb-line", + lines: "bb-lines" +}; +var $EVENT = { + eventRect: "bb-event-rect", + eventRects: "bb-event-rects", + eventRectsMultiple: "bb-event-rects-multiple", + eventRectsSingle: "bb-event-rects-single" +}; +var $FOCUS = { + focused: "bb-focused", + defocused: "bb-defocused", + legendItemFocused: "bb-legend-item-focused", + xgridFocus: "bb-xgrid-focus", + ygridFocus: "bb-ygrid-focus" +}; +var $GRID = { + grid: "bb-grid", + gridLines: "bb-grid-lines", + xgrid: "bb-xgrid", + xgridLine: "bb-xgrid-line", + xgridLines: "bb-xgrid-lines", + xgrids: "bb-xgrids", + ygrid: "bb-ygrid", + ygridLine: "bb-ygrid-line", + ygridLines: "bb-ygrid-lines", + ygrids: "bb-ygrids" +}; +var $RADAR = { + chartRadar: "bb-chart-radar", + chartRadars: "bb-chart-radars" +}; +var $REGION = { + region: "bb-region", + regions: "bb-regions" +}; +var $SELECT = { + selectedCircle: "bb-selected-circle", + selectedCircles: "bb-selected-circles", + SELECTED: "_selected_" +}; +var $SHAPE = { + shape: "bb-shape", + shapes: "bb-shapes" +}; +var $SUBCHART = { + brush: "bb-brush", + subchart: "bb-subchart" +}; +var $TEXT = { + chartText: "bb-chart-text", + chartTexts: "bb-chart-texts", + text: "bb-text", + texts: "bb-texts", + title: "bb-title", + TextOverlapping: "text-overlapping" +}; +var $TOOLTIP = { + tooltip: "bb-tooltip", + tooltipContainer: "bb-tooltip-container", + tooltipName: "bb-tooltip-name" +}; +var $TREEMAP = { + treemap: "bb-treemap", + chartTreemap: "bb-chart-treemap", + chartTreemaps: "bb-chart-treemaps" +}; +var $ZOOM = { + buttonZoomReset: "bb-zoom-reset", + zoomBrush: "bb-zoom-brush" +}; +__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, $COMMON), $ARC), $AREA), $AXIS), $BAR), $CANDLESTICK), $CIRCLE), $COLOR), $DRAG), $GAUGE), $LEGEND), $LINE), $EVENT), $FOCUS), $FUNNEL), $GRID), $RADAR), $REGION), $SELECT), $SHAPE), $SUBCHART), $TEXT), $TOOLTIP), $TREEMAP), $ZOOM); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Window object + * @private + */ +/* eslint-disable no-new-func, no-undef */ +/** + * Get global object + * @returns {object} window object + * @private + */ +function getGlobal() { + return (typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && + globalThis) || + (typeof global === "object" && global !== null && global.Object === Object && global) || + (typeof self === "object" && self !== null && self.Object === Object && self) || + Function("return this")(); +} +var win = getGlobal(); +var doc = win === null || win === void 0 ? void 0 : win.document; + +var isDefined = function (v) { return typeof v !== "undefined"; }; +var isObjectType = function (v) { return typeof v === "object"; }; +/** + * Check if is array + * @param {Array} arr Data to be checked + * @returns {boolean} + * @private + */ +var isArray = function (arr) { return Array.isArray(arr); }; +/** + * Check if is object + * @param {object} obj Data to be checked + * @returns {boolean} + * @private + */ +var isObject = function (obj) { return obj && !(obj === null || obj === void 0 ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); }; +/** + * Merge object returning new object + * @param {object} target Target object + * @param {object} objectN Source object + * @returns {object} merged target object + * @private + */ +function mergeObj(target) { + var objectN = []; + for (var _i = 1; _i < arguments.length; _i++) { + objectN[_i - 1] = arguments[_i]; + } + if (!objectN.length || (objectN.length === 1 && !objectN[0])) { + return target; + } + var source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach(function (key) { + var value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } + else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj.apply(void 0, __spreadArray([target], objectN, false)); +} +// emulate event +({ + mouse: (function () { + var getParams = function () { return ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); }; + try { + // eslint-disable-next-line no-new + new MouseEvent("t"); + return function (el, eventType, params) { + if (params === void 0) { params = getParams(); } + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } + catch (e) { + // Polyfills DOM4 MouseEvent + return function (el, eventType, params) { + if (params === void 0) { params = getParams(); } + var mouseEvent = doc.createEvent("MouseEvent"); + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent + mouseEvent.initMouseEvent(eventType, params.bubbles, params.cancelable, win, 0, // the event's mouse click count + params.screenX, params.screenY, params.clientX, params.clientY, false, false, false, false, 0, null); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: function (el, eventType, params) { + var touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}); + +/** + * Load configuration option + * @param {object} config User's generation config value + * @private + */ +function loadConfig(config) { + var thisConfig = this.config; + var target; + var keys; + var read; + var find = function () { + var key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } + else if (!key) { + return target; + } + return undefined; + }; + Object.keys(thisConfig).forEach(function (key) { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + // only should run in the ChartInternal context + if (this.api) { + this.state.orgConfig = config; + } +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Base class to generate billboard.js plugin + * @class Plugin + */ +/** + * Version info string for plugin + * @name version + * @static + * @memberof Plugin + * @type {string} + * @example + * bb.plugin.stanford.version; // ex) 1.9.0 + */ +var Plugin = /** @class */ (function () { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + function Plugin(options) { + if (options === void 0) { options = {}; } + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + Plugin.prototype.$beforeInit = function () { }; + /** + * Lifecycle hook for 'init' phase. + * @private + */ + Plugin.prototype.$init = function () { }; + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + Plugin.prototype.$afterInit = function () { }; + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + Plugin.prototype.$redraw = function () { }; + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + Plugin.prototype.$willDestroy = function () { + var _this = this; + Object.keys(this).forEach(function (key) { + _this[key] = null; + delete _this[key]; + }); + }; + Plugin.version = "3.12.4"; + return Plugin; +}()); + +/** + * Copyright (c) 2021 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Sparkline plugin option class + * @class SparklineOptions + * @param {Options} options Sparkline plugin options + * @augments Plugin + * @returns {TableviewOptions} + * @private + */ +var Options = /** @class */ (function () { + function Options() { + return { + /** + * Specify sparkline charts holder selector. + * - **NOTE:** The amount of holder should match with the amount of data. If has less, will append necessaray amount nodes as sibling of main chart. + * @name selector + * @memberof plugin-sparkline + * @type {string} + * @default undefined + * @example + * selector: ".sparkline" + */ + selector: undefined + }; + } + return Options; +}()); + +/** + * Sparkline plugin.<br> + * Generates sparkline charts + * - **NOTE:** + * - Plugins aren't built-in. Need to be loaded or imported to be used. + * - Non required modules from billboard.js core, need to be installed separately. + * + * - **Bear in mind:** + * - Use this plugin to visualize multiple tiny chart only and chart APIs won't work properly. + * - Sparkline chart size will be based on the main chart element size. To control spakrline charts, is highly recommended to set `size` option. + * - Bubble, scatter and Arc(pie, donut, ratdar) types aren't supported. + * - Some options will be stricted to be: + * - `resize.auto = false` + * - `axis.x.show = false` + * - `axis.y.show = false` + * - `axis.y.padding = 10` + * - `legend.show = false` + * + * @class plugin-sparkline + * @param {object} options sparkline plugin options + * @augments Plugin + * @returns {Sparkline} + * @example + * // Plugin must be loaded before the use. + * <script src="$YOUR_PATH/plugin/billboardjs-plugin-sparkline.js"></script> + * + * var chart = bb.generate({ + * ... + * plugins: [ + * new bb.plugin.sparkline({ + * selector: ".sparkline" + * }), + * ] + * }); + * @example + * import {bb} from "billboard.js"; + * import Sparkline from "billboard.js/dist/billboardjs-plugin-sparkline"; + * + * bb.generate({ + * ... + * plugins: [ + * new Sparkline({ ... }) + * ] + * }) + */ +var Sparkline = /** @class */ (function (_super) { + __extends(Sparkline, _super); + function Sparkline(options) { + var _this = _super.call(this, options) || this; + _this.config = new Options(); + return _this; + } + Sparkline.prototype.$beforeInit = function () { + loadConfig.call(this, this.options); + this.validate(); + this.element = [].slice.call(document.querySelectorAll(this.config.selector)); + // override internal methods + this.overrideInternals(); + // override options + this.overrideOptions(); + // bind event handlers's context + this.overHandler = this.overHandler.bind(this); + this.moveHandler = this.moveHandler.bind(this); + this.outHandler = this.outHandler.bind(this); + }; + Sparkline.prototype.validate = function () { + var _a = this, $$ = _a.$$, config = _a.config; + var msg = ""; + if (!config.selector || !document.querySelector(config.selector)) { + msg = "No holder elements found from given selector option."; + } + if ($$.hasType("bubble") || $$.hasType("scatter") || $$.hasArcType($$.data.targets)) { + msg = "Contains non supported chart types."; + } + if (msg) { + throw new Error("[Sparkline plugin] ".concat(msg)); + } + }; + Sparkline.prototype.overrideInternals = function () { + var $$ = this.$$; + var getBarW = $$.getBarW, getIndices = $$.getIndices; + // override internal methods to positioning bars + $$.getIndices = function (indices, d, caller) { + return caller === "getShapeX" ? {} : getIndices.call(this, indices, d); + }; + $$.getBarW = function (type, axis) { + return getBarW.call(this, type, axis, 1); + }; + }; + Sparkline.prototype.overrideOptions = function () { + var config = this.$$.config; + config.legend_show = false; + config.resize_auto = false; + config.axis_x_show = false; + // set default axes padding + if (config.padding !== false) { + var hasOption = function (o) { return Object.keys(o || {}).length > 0; }; + if (hasOption(config.axis_x_padding)) { + config.axis_x_padding = { + left: 15, + right: 15, + unit: "px" + }; + } + if (hasOption(config.axis_y_padding)) { + config.axis_y_padding = 5; + } + } + config.axis_y_show = false; + if (!config.tooltip_position) { + config.tooltip_position = function (data, width, height) { + var event = this.internal.state.event; + var top = event.pageY - (height * 1.35); + var left = event.pageX - (width / 2); + if (top < 0) { + top = 0; + } + if (left < 0) { + left = 0; + } + return { top: top, left: left }; + }; + } + }; + Sparkline.prototype.$init = function () { + var _a; + var $el = this.$$.$el; + // make disable-ish main chart element + $el.chart + .style("width", "0") + .style("height", "0") + .style("pointer-events", "none"); + ((_a = $el.tooltip) === null || _a === void 0 ? void 0 : _a.node()) && document.body.appendChild($el.tooltip.node()); + }; + Sparkline.prototype.$afterInit = function () { + var $$ = this.$$; + $$.$el.svg.attr("style", null) + .style("width", "0") + .style("height", "0"); + this.bindEvents(true); + }; + /** + * Bind tooltip event handlers for each sparkline elements. + * @param {boolean} bind or unbind + * @private + */ + Sparkline.prototype.bindEvents = function (bind) { + var _this = this; + if (bind === void 0) { bind = true; } + var config = this.$$.config; + if (config.interaction_enabled && config.tooltip_show) { + var method_1 = "".concat(bind ? "add" : "remove", "EventListener"); + this.element + .forEach(function (el) { + var svg = el.querySelector("svg"); + svg[method_1]("mouseover", _this.overHandler); + svg[method_1]("mousemove", _this.moveHandler); + svg[method_1]("mouseout", _this.outHandler); + }); + } + }; + Sparkline.prototype.overHandler = function (e) { + var $$ = this.$$; + var eventReceiver = $$.state.eventReceiver; + eventReceiver.rect = e.target.getBoundingClientRect(); + }; + Sparkline.prototype.moveHandler = function (e) { + var _a, _b, _c, _d; + var $$ = this.$$; + var index = $$.getDataIndexFromEvent(e); + var data = (_a = $$.api.data(e.target.__id)) === null || _a === void 0 ? void 0 : _a[0]; + var d = (_b = data === null || data === void 0 ? void 0 : data.values) === null || _b === void 0 ? void 0 : _b[index]; + if (d && !d.name) { + d.name = d.id; + } + $$.state.event = e; + if (((_c = $$.isPointFocusOnly) === null || _c === void 0 ? void 0 : _c.call($$)) && d) { + (_d = $$.showCircleFocus) === null || _d === void 0 ? void 0 : _d.call($$, [d]); + } + $$.setExpand(index, data.id, true); + $$.showTooltip([d], e.target); + }; + Sparkline.prototype.outHandler = function (e) { + var $$ = this.$$; + $$.state.event = e; + $$.isPointFocusOnly() ? $$.hideCircleFocus() : $$.unexpandCircles(); + $$.hideTooltip(); + }; + Sparkline.prototype.$redraw = function () { + var _a; + var $$ = this.$$; + var $el = $$.$el; + var el = this.element; + var data = $$.api.data(); + var svgWrapper = (_a = $el.chart.html().match(/<svg[^>]*>/)) === null || _a === void 0 ? void 0 : _a[0]; + // append sparkline holder if is less than the data length + if (el.length < data.length) { + var chart = $el.chart.node(); + for (var i = data.length - el.length; i > 0; i--) { + chart.parentNode.insertBefore(el[0].cloneNode(), chart.nextSibling); + } + this.element = document.querySelectorAll(this.config.selector); + el = this.element; + } + data.map(function (v) { return v.id; }) + .forEach(function (id, i) { + var selector = ".".concat($COMMON.target, "-").concat(id); + var shape = $el.main.selectAll(selector); + var svg = el[i].querySelector("svg"); + if (!svg) { + el[i].innerHTML = "".concat(svgWrapper, "</svg>"); + svg = el[i].querySelector("svg"); + svg.__id = id; + } + if (!svg.querySelector(selector)) { + shape.style("opacity", null); + } + shape + .style("fill", "none") + .style("opacity", null); + svg.innerHTML = ""; + svg.appendChild(shape.node()); + }); + }; + Sparkline.prototype.$willDestroy = function () { + this.bindEvents(false); + this.element + .forEach(function (el) { + el.innerHTML = ""; + }); + }; + Sparkline.version = "0.0.1"; + return Sparkline; +}(Plugin)); + +export { Sparkline as default }; diff --git a/release/3.12.4/dist-esm/plugin/billboardjs-plugin-stanford.d.ts b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-stanford.d.ts new file mode 100644 index 000000000..3ea42d846 --- /dev/null +++ b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-stanford.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +import PluginClass from "../../types/plugin/stanford"; + +export default PluginClass; diff --git a/release/3.12.4/dist-esm/plugin/billboardjs-plugin-stanford.js b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-stanford.js new file mode 100644 index 000000000..46514a5bc --- /dev/null +++ b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-stanford.js @@ -0,0 +1,1187 @@ +/*! +* Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin +*/ +import { hsl } from 'd3-color'; +import { interpolateHslLong } from 'd3-interpolate'; +import { scaleSequential, scaleSymlog, scaleSequentialLog } from 'd3-scale'; +import { axisRight } from 'd3-axis'; +import { format } from 'd3-format'; + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise, SuppressedError, Symbol */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * CSS class names definition + * @private + */ +var $COMMON = { + button: "bb-button", + chart: "bb-chart", + empty: "bb-empty", + main: "bb-main", + target: "bb-target", + EXPANDED: "_expanded_" +}; +var $ARC = { + arc: "bb-arc", + arcLabelLine: "bb-arc-label-line", + arcRange: "bb-arc-range", + arcs: "bb-arcs", + chartArc: "bb-chart-arc", + chartArcs: "bb-chart-arcs", + chartArcsBackground: "bb-chart-arcs-background", + chartArcsTitle: "bb-chart-arcs-title", + needle: "bb-needle" +}; +var $AREA = { + area: "bb-area", + areas: "bb-areas" +}; +var $AXIS = { + axis: "bb-axis", + axisX: "bb-axis-x", + axisXLabel: "bb-axis-x-label", + axisY: "bb-axis-y", + axisY2: "bb-axis-y2", + axisY2Label: "bb-axis-y2-label", + axisYLabel: "bb-axis-y-label", + axisXTooltip: "bb-axis-x-tooltip", + axisYTooltip: "bb-axis-y-tooltip", + axisY2Tooltip: "bb-axis-y2-tooltip" +}; +var $BAR = { + bar: "bb-bar", + bars: "bb-bars", + chartBar: "bb-chart-bar", + chartBars: "bb-chart-bars" +}; +var $CANDLESTICK = { + candlestick: "bb-candlestick", + candlesticks: "bb-candlesticks", + chartCandlestick: "bb-chart-candlestick", + chartCandlesticks: "bb-chart-candlesticks", + valueDown: "bb-value-down", + valueUp: "bb-value-up" +}; +var $CIRCLE = { + chartCircles: "bb-chart-circles", + circle: "bb-circle", + circles: "bb-circles" +}; +var $COLOR = { + colorPattern: "bb-color-pattern", + colorScale: "bb-colorscale" +}; +var $DRAG = { + dragarea: "bb-dragarea", + INCLUDED: "_included_" +}; +var $FUNNEL = { + funnel: "bb-funnel", + chartFunnel: "bb-chart-funnel", + chartFunnels: "bb-chart-funnels", + funnelBackground: "bb-funnel-background" +}; +var $GAUGE = { + chartArcsGaugeMax: "bb-chart-arcs-gauge-max", + chartArcsGaugeMin: "bb-chart-arcs-gauge-min", + chartArcsGaugeUnit: "bb-chart-arcs-gauge-unit", + chartArcsGaugeTitle: "bb-chart-arcs-gauge-title", + gaugeValue: "bb-gauge-value" +}; +var $LEGEND = { + legend: "bb-legend", + legendBackground: "bb-legend-background", + legendItem: "bb-legend-item", + legendItemEvent: "bb-legend-item-event", + legendItemHidden: "bb-legend-item-hidden", + legendItemPoint: "bb-legend-item-point", + legendItemTile: "bb-legend-item-tile" +}; +var $LINE = { + chartLine: "bb-chart-line", + chartLines: "bb-chart-lines", + line: "bb-line", + lines: "bb-lines" +}; +var $EVENT = { + eventRect: "bb-event-rect", + eventRects: "bb-event-rects", + eventRectsMultiple: "bb-event-rects-multiple", + eventRectsSingle: "bb-event-rects-single" +}; +var $FOCUS = { + focused: "bb-focused", + defocused: "bb-defocused", + legendItemFocused: "bb-legend-item-focused", + xgridFocus: "bb-xgrid-focus", + ygridFocus: "bb-ygrid-focus" +}; +var $GRID = { + grid: "bb-grid", + gridLines: "bb-grid-lines", + xgrid: "bb-xgrid", + xgridLine: "bb-xgrid-line", + xgridLines: "bb-xgrid-lines", + xgrids: "bb-xgrids", + ygrid: "bb-ygrid", + ygridLine: "bb-ygrid-line", + ygridLines: "bb-ygrid-lines", + ygrids: "bb-ygrids" +}; +var $RADAR = { + chartRadar: "bb-chart-radar", + chartRadars: "bb-chart-radars" +}; +var $REGION = { + region: "bb-region", + regions: "bb-regions" +}; +var $SELECT = { + selectedCircle: "bb-selected-circle", + selectedCircles: "bb-selected-circles", + SELECTED: "_selected_" +}; +var $SHAPE = { + shape: "bb-shape", + shapes: "bb-shapes" +}; +var $SUBCHART = { + brush: "bb-brush", + subchart: "bb-subchart" +}; +var $TEXT = { + chartText: "bb-chart-text", + chartTexts: "bb-chart-texts", + text: "bb-text", + texts: "bb-texts", + title: "bb-title", + TextOverlapping: "text-overlapping" +}; +var $TOOLTIP = { + tooltip: "bb-tooltip", + tooltipContainer: "bb-tooltip-container", + tooltipName: "bb-tooltip-name" +}; +var $TREEMAP = { + treemap: "bb-treemap", + chartTreemap: "bb-chart-treemap", + chartTreemaps: "bb-chart-treemaps" +}; +var $ZOOM = { + buttonZoomReset: "bb-zoom-reset", + zoomBrush: "bb-zoom-brush" +}; +__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, $COMMON), $ARC), $AREA), $AXIS), $BAR), $CANDLESTICK), $CIRCLE), $COLOR), $DRAG), $GAUGE), $LEGEND), $LINE), $EVENT), $FOCUS), $FUNNEL), $GRID), $RADAR), $REGION), $SELECT), $SHAPE), $SUBCHART), $TEXT), $TOOLTIP), $TREEMAP), $ZOOM); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Window object + * @private + */ +/* eslint-disable no-new-func, no-undef */ +/** + * Get global object + * @returns {object} window object + * @private + */ +function getGlobal() { + return (typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && + globalThis) || + (typeof global === "object" && global !== null && global.Object === Object && global) || + (typeof self === "object" && self !== null && self.Object === Object && self) || + Function("return this")(); +} +var win = getGlobal(); +var doc = win === null || win === void 0 ? void 0 : win.document; + +var isFunction = function (v) { return typeof v === "function"; }; +var isString = function (v) { return typeof v === "string"; }; +var isNumber = function (v) { return typeof v === "number"; }; +var isUndefined = function (v) { return typeof v === "undefined"; }; +var isDefined = function (v) { return typeof v !== "undefined"; }; +var isObjectType = function (v) { return typeof v === "object"; }; +var isEmpty = function (o) { return (isUndefined(o) || o === null || + (isString(o) && o.length === 0) || + (isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0) || + (isNumber(o) && isNaN(o))); }; +/** + * Check if is array + * @param {Array} arr Data to be checked + * @returns {boolean} + * @private + */ +var isArray = function (arr) { return Array.isArray(arr); }; +/** + * Check if is object + * @param {object} obj Data to be checked + * @returns {boolean} + * @private + */ +var isObject = function (obj) { return obj && !(obj === null || obj === void 0 ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); }; +/** + * Merge object returning new object + * @param {object} target Target object + * @param {object} objectN Source object + * @returns {object} merged target object + * @private + */ +function mergeObj(target) { + var objectN = []; + for (var _i = 1; _i < arguments.length; _i++) { + objectN[_i - 1] = arguments[_i]; + } + if (!objectN.length || (objectN.length === 1 && !objectN[0])) { + return target; + } + var source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach(function (key) { + var value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } + else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj.apply(void 0, __spreadArray([target], objectN, false)); +} +/** + * Get range + * @param {number} start Start number + * @param {number} end End number + * @param {number} step Step number + * @returns {Array} + * @private + */ +var getRange = function (start, end, step) { + var res = []; + var n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (var i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +// emulate event +({ + mouse: (function () { + var getParams = function () { return ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); }; + try { + // eslint-disable-next-line no-new + new MouseEvent("t"); + return function (el, eventType, params) { + if (params === void 0) { params = getParams(); } + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } + catch (e) { + // Polyfills DOM4 MouseEvent + return function (el, eventType, params) { + if (params === void 0) { params = getParams(); } + var mouseEvent = doc.createEvent("MouseEvent"); + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent + mouseEvent.initMouseEvent(eventType, params.bubbles, params.cancelable, win, 0, // the event's mouse click count + params.screenX, params.screenY, params.clientX, params.clientY, false, false, false, false, 0, null); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: function (el, eventType, params) { + var touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}); +/** + * Get parsed date value + * (It must be called in 'ChartInternal' context) + * @param {Date|string|number} date Value of date to be parsed + * @returns {Date} + * @private + */ +function parseDate(date) { + var _a; + var parsedDate; + if (date instanceof Date) { + parsedDate = date; + } + else if (isString(date)) { + var _b = this, config = _b.config, format = _b.format; + // if fails to parse, try by new Date() + // https://github.com/naver/billboard.js/issues/1714 + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) !== null && _a !== void 0 ? _a : new Date(date); + } + else if (isNumber(date) && !isNaN(date)) { + parsedDate = new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && + console.error("Failed to parse x '".concat(date, "' to Date object")); + } + return parsedDate; +} + +/** + * Load configuration option + * @param {object} config User's generation config value + * @private + */ +function loadConfig(config) { + var thisConfig = this.config; + var target; + var keys; + var read; + var find = function () { + var key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } + else if (!key) { + return target; + } + return undefined; + }; + Object.keys(thisConfig).forEach(function (key) { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + // only should run in the ChartInternal context + if (this.api) { + this.state.orgConfig = config; + } +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Base class to generate billboard.js plugin + * @class Plugin + */ +/** + * Version info string for plugin + * @name version + * @static + * @memberof Plugin + * @type {string} + * @example + * bb.plugin.stanford.version; // ex) 1.9.0 + */ +var Plugin = /** @class */ (function () { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + function Plugin(options) { + if (options === void 0) { options = {}; } + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + Plugin.prototype.$beforeInit = function () { }; + /** + * Lifecycle hook for 'init' phase. + * @private + */ + Plugin.prototype.$init = function () { }; + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + Plugin.prototype.$afterInit = function () { }; + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + Plugin.prototype.$redraw = function () { }; + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + Plugin.prototype.$willDestroy = function () { + var _this = this; + Object.keys(this).forEach(function (key) { + _this[key] = null; + delete _this[key]; + }); + }; + Plugin.version = "3.12.4"; + return Plugin; +}()); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * CSS class names definition + * @private + */ +var CLASS = { + colorScale: "bb-colorscale", + stanfordElements: "bb-stanford-elements", + stanfordLine: "bb-stanford-line", + stanfordLines: "bb-stanford-lines", + stanfordRegion: "bb-stanford-region", + stanfordRegions: "bb-stanford-regions" +}; + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * @ignore + */ +/** + * Check if point is in region + * @param {object} point Point + * @param {Array} region Region + * @returns {boolean} + * @private + */ +function pointInRegion(point, region) { + // ray-casting algorithm based on + // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html + var x = point.x; + var y = point.value; + var inside = false; + for (var i = 0, j = region.length - 1; i < region.length; j = i++) { + var xi = region[i].x; + var yi = region[i].y; + var xj = region[j].x; + var yj = region[j].y; + var intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi); + if (intersect) { + inside = !inside; + } + } + return inside; +} +/** + * Compare epochs + * @param {object} a Target + * @param {object} b Source + * @returns {number} + * @private + */ +function compareEpochs(a, b) { + if (a.epochs < b.epochs) { + return -1; + } + if (a.epochs > b.epochs) { + return 1; + } + return 0; +} +/** + * Get region area + * @param {Array} points Points + * @returns {number} + * @private + */ +function getRegionArea(points) { + var area = 0; + var point1; + var point2; + for (var i = 0, l = points.length, j = l - 1; i < l; j = i, i++) { + point1 = points[i]; + point2 = points[j]; + area += point1.x * point2.y; + area -= point1.y * point2.x; + } + area /= 2; + return area; +} +/** + * Get centroid + * @param {Array} points Points + * @returns {object} + * @private + */ +function getCentroid(points) { + var area = getRegionArea(points); + var x = 0; + var y = 0; + var f; + for (var i = 0, l = points.length, j = l - 1; i < l; j = i, i++) { + var point1 = points[i]; + var point2 = points[j]; + f = point1.x * point2.y - point2.x * point1.y; + x += (point1.x + point2.x) * f; + y += (point1.y + point2.y) * f; + } + f = area * 6; + return { + x: x / f, + y: y / f + }; +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Stanford diagram plugin color scale class + * @class ColorScale + * @param {Stanford} owner Stanford instance + * @private + */ +var ColorScale = /** @class */ (function () { + function ColorScale(owner) { + this.owner = owner; + } + ColorScale.prototype.drawColorScale = function () { + var _a = this.owner, $$ = _a.$$, config = _a.config; + var target = $$.data.targets[0]; + var height = $$.state.height - config.padding_bottom - config.padding_top; + var barWidth = config.scale_width; + var barHeight = 5; + var points = getRange(config.padding_bottom, height, barHeight); + var inverseScale = scaleSequential(target.colors) + .domain([points[points.length - 1], points[0]]); + if (this.colorScale) { + this.colorScale.remove(); + } + this.colorScale = $$.$el.svg.append("g") + .attr("width", 50) + .attr("height", height) + .attr("class", CLASS.colorScale); + this.colorScale.append("g") + .attr("transform", "translate(0, ".concat(config.padding_top, ")")) + .selectAll("bars") + .data(points) + .enter() + .append("rect") + .attr("y", function (d, i) { return i * barHeight; }) + .attr("x", 0) + .attr("width", barWidth) + .attr("height", barHeight) + .attr("fill", function (d) { return inverseScale(d); }); + // Legend Axis + var axisScale = scaleSymlog() + .domain([target.minEpochs, target.maxEpochs]) + .range([ + points[0] + config.padding_top + points[points.length - 1] + barHeight - 1, + points[0] + config.padding_top + ]); + var legendAxis = axisRight(axisScale); + var scaleFormat = config.scale_format; + if (scaleFormat === "pow10") { + legendAxis.tickValues([1, 10, 100, 1000, 10000, 100000, 1000000, 10000000]); + } + else if (isFunction(scaleFormat)) { + legendAxis.tickFormat(scaleFormat); + } + else { + legendAxis.tickFormat(format("d")); + } + // Draw Axis + var axis = this.colorScale.append("g") + .attr("class", "legend axis") + .attr("transform", "translate(".concat(barWidth, ",0)")) + .call(legendAxis); + if (scaleFormat === "pow10") { + axis.selectAll(".tick text") + .text(null) + .filter(function (d) { return d / Math.pow(10, Math.ceil(Math.log(d) / Math.LN10 - 1e-12)) === 1; }) // Power of Ten + .text(10) + .append("tspan") + .attr("dy", "-.7em") // https://bl.ocks.org/mbostock/6738229 + .text(function (d) { return Math.round(Math.log(d) / Math.LN10); }); + } + this.colorScale.attr("transform", "translate(".concat($$.state.current.width - this.xForColorScale(), ", 0)")); + }; + ColorScale.prototype.xForColorScale = function () { + return this.owner.config.padding_right + + this.colorScale.node().getBBox().width; + }; + ColorScale.prototype.getColorScalePadding = function () { + return this.xForColorScale() + this.owner.config.padding_left + 20; + }; + return ColorScale; +}()); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +// @ts-nocheck +/** + * Stanford diagram plugin element class + * @class ColorScale + * @param {Stanford} owner Stanford instance + * @private + */ +var Elements = /** @class */ (function () { + function Elements(owner) { + this.owner = owner; + // MEMO: Avoid blocking eventRect + var elements = owner.$$.$el.main.select(".bb-chart") + .append("g") + .attr("class", CLASS.stanfordElements); + elements.append("g").attr("class", CLASS.stanfordLines); + elements.append("g").attr("class", CLASS.stanfordRegions); + } + Elements.prototype.updateStanfordLines = function (duration) { + var $$ = this.owner.$$; + var config = $$.config, main = $$.$el.main; + var isRotated = config.axis_rotated; + var xvCustom = this.xvCustom.bind($$); + var yvCustom = this.yvCustom.bind($$); + // Stanford-Lines + var stanfordLine = main.select(".".concat(CLASS.stanfordLines)) + .style("shape-rendering", "geometricprecision") + .selectAll(".".concat(CLASS.stanfordLine)) + .data(this.owner.config.lines); + // exit + stanfordLine.exit().transition() + .duration(duration) + .style("opacity", "0") + .remove(); + // enter + var stanfordLineEnter = stanfordLine.enter().append("g"); + stanfordLineEnter.append("line") + .style("opacity", "0"); + stanfordLineEnter + .merge(stanfordLine) + .attr("class", function (d) { return CLASS.stanfordLine + (d.class ? " ".concat(d.class) : ""); }) + .select("line") + .transition() + .duration(duration) + .attr("x1", function (d) { + var v = isRotated ? yvCustom(d, "y1") : xvCustom(d, "x1"); + return v; + }) + .attr("x2", function (d) { return (isRotated ? yvCustom(d, "y2") : xvCustom(d, "x2")); }) + .attr("y1", function (d) { + var v = isRotated ? xvCustom(d, "x1") : yvCustom(d, "y1"); + return v; + }) + .attr("y2", function (d) { return (isRotated ? xvCustom(d, "x2") : yvCustom(d, "y2")); }) + .transition() + .style("opacity", null); + }; + Elements.prototype.updateStanfordRegions = function (duration) { + var $$ = this.owner.$$; + var config = $$.config, main = $$.$el.main; + var isRotated = config.axis_rotated; + var xvCustom = this.xvCustom.bind($$); + var yvCustom = this.yvCustom.bind($$); + var countPointsInRegion = this.owner.countEpochsInRegion.bind($$); + // Stanford-Regions + var stanfordRegion = main.select(".".concat(CLASS.stanfordRegions)) + .selectAll(".".concat(CLASS.stanfordRegion)) + .data(this.owner.config.regions); + // exit + stanfordRegion.exit().transition() + .duration(duration) + .style("opacity", "0") + .remove(); + // enter + var stanfordRegionEnter = stanfordRegion.enter().append("g"); + stanfordRegionEnter.append("polygon") + .style("opacity", "0"); + stanfordRegionEnter.append("text") + .attr("transform", isRotated ? "rotate(-90)" : "") + .style("opacity", "0"); + stanfordRegion = stanfordRegionEnter.merge(stanfordRegion); + // update + stanfordRegion + .attr("class", function (d) { return CLASS.stanfordRegion + (d.class ? " ".concat(d.class) : ""); }) + .select("polygon") + .transition() + .duration(duration) + .attr("points", function (d) { + return d.points.map(function (value) { + return [ + isRotated ? yvCustom(value, "y") : xvCustom(value, "x"), + isRotated ? xvCustom(value, "x") : yvCustom(value, "y") + ].join(","); + }).join(" "); + }) + .transition() + .style("opacity", function (d) { return String(d.opacity ? d.opacity : 0.2); }); + stanfordRegion.select("text") + .transition() + .duration(duration) + .attr("x", function (d) { return (isRotated ? + yvCustom(getCentroid(d.points), "y") : + xvCustom(getCentroid(d.points), "x")); }) + .attr("y", function (d) { return (isRotated ? + xvCustom(getCentroid(d.points), "x") : + yvCustom(getCentroid(d.points), "y")); }) + .text(function (d) { + if (d.text) { + var _a = countPointsInRegion(d.points), value = _a.value, percentage = _a.percentage; + return d.text(value, percentage); + } + return ""; + }) + .attr("text-anchor", "middle") + .attr("dominant-baseline", "middle") + .transition() + .style("opacity", null); + }; + Elements.prototype.updateStanfordElements = function (duration) { + if (duration === void 0) { duration = 0; } + this.updateStanfordLines(duration); + this.updateStanfordRegions(duration); + }; + Elements.prototype.xvCustom = function (d, xyValue) { + var $$ = this; + var axis = $$.axis, config = $$.config; + var value = xyValue ? d[xyValue] : $$.getBaseValue(d); + if (axis.isTimeSeries()) { + value = parseDate.call($$, value); + } + else if (axis.isCategorized() && isString(value)) { + value = config.axis_x_categories.indexOf(d.value); + } + return Math.ceil($$.scale.x(value)); + }; + Elements.prototype.yvCustom = function (d, xyValue) { + var $$ = this; + var yScale = d.axis && d.axis === "y2" ? $$.scale.y2 : $$.scale.y; + var value = xyValue ? d[xyValue] : $$.getBaseValue(d); + return Math.ceil(yScale(value)); + }; + return Elements; +}()); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Stanford diagram plugin option class + * @class StanfordOptions + * @param {Options} options Stanford plugin options + * @augments Plugin + * @returns {StanfordOptions} + * @private + */ +var Options = /** @class */ (function () { + function Options() { + return { + /** + * Set the color of the color scale. This function receives a value between 0 and 1, and should return a color. + * @name colors + * @memberof plugin-stanford + * @type {Function} + * @default undefined + * @example + * colors: d3.interpolateHslLong( + * d3.hsl(250, 1, 0.5), d3.hsl(0, 1, 0.5) + * ) + */ + colors: undefined, + /** + * Specify the key of epochs values in the data. + * @name epochs + * @memberof plugin-stanford + * @type {Array} + * @default [] + * @example + * epochs: [ 1, 1, 2, 2, ... ] + */ + epochs: [], + /** + * Show additional lines anywhere on the chart. + * - Each line object should consist with following options: + * + * | Key | Type | Description | + * | --- | --- | --- | + * | x1 | Number | Starting position on the x axis | + * | y1 | Number | Starting position on the y axis | + * | x2 | Number | Ending position on the x axis | + * | y2 | Number | Ending position on the y axis | + * | class | String | Optional value. Set a custom css class to this line. | + * @type {Array} + * @memberof plugin-stanford + * @default [] + * @example + * lines: [ + * { x1: 0, y1: 0, x2: 65, y2: 65, class: "line1" }, + * { x1: 0, x2: 65, y1: 40, y2: 40, class: "line2" } + * ] + */ + lines: [], + /** + * Set scale values + * @name scale + * @memberof plugin-stanford + * @type {object} + * @property {object} [scale] scale object + * @property {number} [scale.min=undefined] Minimum value of the color scale. Default: lowest value in epochs + * @property {number} [scale.max=undefined] Maximum value of the color scale. Default: highest value in epochs + * @property {number} [scale.width=20] Width of the color scale + * @property {string|Function} [scale.format=undefined] Format of the axis of the color scale. Use 'pow10' to format as powers of 10 or a custom function. Example: d3.format("d") + * @example + * scale: { + * max: 10000, + * min: 1, + * width: 500, + * + * // specify 'pow10' to format as powers of 10 + * format: "pow10", + * + * // or specify a format function + * format: function(x) { + * return x +"%"; + * } + * }, + */ + scale_min: undefined, + scale_max: undefined, + scale_width: 20, + scale_format: undefined, + /** + * The padding for color scale element + * @name padding + * @memberof plugin-stanford + * @type {object} + * @property {object} [padding] padding object + * @property {number} [padding.top=0] Top padding value. + * @property {number} [padding.right=0] Right padding value. + * @property {number} [padding.bottom=0] Bottom padding value. + * @property {number} [padding.left=0] Left padding value. + * @example + * padding: { + * top: 15, + * right: 0, + * bottom: 0, + * left: 0 + * }, + */ + padding_top: 0, + padding_right: 0, + padding_bottom: 0, + padding_left: 0, + /** + * Show additional regions anywhere on the chart. + * - Each region object should consist with following options: + * + * | Key | Type | Default | Attributes | Description | + * | --- | --- | --- | --- | --- | + * | points | Array | | | Accepts a group of objects that has x and y.<br>These points should be added in a counter-clockwise fashion to make a closed polygon. | + * | opacity | Number | `0.2` | <optional> | Sets the opacity of the region as value between 0 and 1 | + * | text | Function | | <optional> | This function receives a value and percentage of the number of epochs in this region.<br>Return a string to place text in the middle of the region. | + * | class | String | | <optional> | Se a custom css class to this region, use the fill property in css to set a background color. | + * @name regions + * @memberof plugin-stanford + * @type {Array} + * @default [] + * @example + * regions: [ + * { + * points: [ // add points counter-clockwise + * { x: 0, y: 0 }, + * { x: 40, y: 40 }, + * { x: 0, y: 40 }, + * ], + * text: function (value, percentage) { + * return `Normal Operations: ${value} (${percentage}%)`; + * }, + * opacity: 0.2, // 0 to 1 + * class: "test-polygon1" + * }, + * ... + * ] + */ + regions: [] + }; + } + return Options; +}()); + +/** + * Stanford diagram plugin + * - **NOTE:** + * - Plugins aren't built-in. Need to be loaded or imported to be used. + * - Non required modules from billboard.js core, need to be installed separately. + * - Is preferable use `scatter` as data.type + * - **Required modules:** + * - [d3-selection](https://github.com/d3/d3-selection) + * - [d3-interpolate](https://github.com/d3/d3-interpolate) + * - [d3-color](https://github.com/d3/d3-color) + * - [d3-scale](https://github.com/d3/d3-scale) + * - [d3-brush](https://github.com/d3/d3-brush) + * - [d3-axis](https://github.com/d3/d3-axis) + * - [d3-format](https://github.com/d3/d3-format) + * @class plugin-stanford + * @requires d3-selection + * @requires d3-interpolate + * @requires d3-color + * @requires d3-scale + * @requires d3-brush + * @requires d3-axis + * @requires d3-format + * @param {object} options Stanford plugin options + * @augments Plugin + * @returns {Stanford} + * @example + * // Plugin must be loaded before the use. + * <script src="$YOUR_PATH/plugin/billboardjs-plugin-stanford.js"></script> + * + * var chart = bb.generate({ + * data: { + * columns: [ ... ], + * type: "scatter" + * } + * ... + * plugins: [ + * new bb.plugin.stanford({ + * colors: d3.interpolateHslLong( + * d3.hsl(250, 1, 0.5), d3.hsl(0, 1, 0.5) + * ), + * epochs: [ 1, 1, 2, 2, ... ], + * lines: [ + * { x1: 0, y1: 0, x2: 65, y2: 65, class: "line1" }, + * { x1: 0, x2: 65, y1: 40, y2: 40, class: "line2" } + * ], + * scale: { + * max: 10000, + * min: 1, + * width: 500, + * format: 'pow10', + * }, + * padding: { + * top: 15, + * right: 0, + * bottom: 0, + * left: 0 + * }, + * regions: [ + * { + * points: [ // add points counter-clockwise + * { x: 0, y: 0 }, + * { x: 40, y: 40 }, + * { x: 0, y: 40 } + * ], + * text: function (value, percentage) { + * return `Normal Operations: ${value} (${percentage}%)`; + * }, + * opacity: 0.2, // 0 to 1 + * class: "test-polygon1" + * }, + * ... + * ] + * } + * ] + * }); + * @example + * import {bb} from "billboard.js"; + * import Stanford from "billboard.js/dist/billboardjs-plugin-stanford"; + * + * bb.generate({ + * plugins: [ + * new Stanford({ ... }) + * ] + * }) + */ +var Stanford = /** @class */ (function (_super) { + __extends(Stanford, _super); + function Stanford(options) { + var _this = _super.call(this, options) || this; + _this.config = new Options(); + return _this; + } + Stanford.prototype.$beforeInit = function () { + var _this = this; + var $$ = this.$$; + // override on config values & methods + $$.config.data_xSort = false; + $$.isMultipleX = function () { return true; }; + $$.showGridFocus = function () { }; + $$.labelishData = function (d) { return d.values; }; + $$.opacityForCircle = function () { return 1; }; + var getCurrentPadding = $$.getCurrentPadding.bind($$); + $$.getCurrentPadding = function () { + var padding = getCurrentPadding(); + padding.right += _this.colorScale ? _this.colorScale.getColorScalePadding() : 0; + return padding; + }; + }; + Stanford.prototype.$init = function () { + var $$ = this.$$; + loadConfig.call(this, this.options); + $$.color = this.getStanfordPointColor.bind($$); + this.colorScale = new ColorScale(this); + this.elements = new Elements(this); + this.convertData(); + this.initStanfordData(); + this.setStanfordTooltip(); + this.colorScale.drawColorScale(); + $$.right += this.colorScale ? this.colorScale.getColorScalePadding() : 0; + this.$redraw(); + }; + Stanford.prototype.$redraw = function (duration) { + var _a, _b; + (_a = this.colorScale) === null || _a === void 0 ? void 0 : _a.drawColorScale(); + (_b = this.elements) === null || _b === void 0 ? void 0 : _b.updateStanfordElements(duration); + }; + Stanford.prototype.getOptions = function () { + return new Options(); + }; + Stanford.prototype.convertData = function () { + var data = this.$$.data.targets; + var epochs = this.options.epochs; + data.forEach(function (d) { + d.values.forEach(function (v, i) { + v.epochs = epochs[i]; + }); + d.minEpochs = undefined; + d.maxEpochs = undefined; + d.colors = undefined; + d.colorscale = undefined; + }); + }; + Stanford.prototype.initStanfordData = function () { + var config = this.config; + var target = this.$$.data.targets[0]; + // TODO STANFORD see if (data.js -> orderTargets)+ can be used instead + // Make larger values appear on top + target.values.sort(compareEpochs); + // Get array of epochs + var epochs = target.values.map(function (a) { return a.epochs; }); + target.minEpochs = !isNaN(config.scale_min) ? config.scale_min : Math.min.apply(Math, epochs); + target.maxEpochs = !isNaN(config.scale_max) ? config.scale_max : Math.max.apply(Math, epochs); + target.colors = isFunction(config.colors) ? + config.colors : + interpolateHslLong(hsl(250, 1, 0.5), hsl(0, 1, 0.5)); + target.colorscale = scaleSequentialLog(target.colors) + .domain([target.minEpochs, target.maxEpochs]); + }; + Stanford.prototype.getStanfordPointColor = function (d) { + var target = this.data.targets[0]; + return target.colorscale(d.epochs); + }; + Stanford.prototype.setStanfordTooltip = function () { + var config = this.$$.config; + if (isEmpty(config.tooltip_contents)) { + config.tooltip_contents = function (d, defaultTitleFormat, defaultValueFormat, color) { + var data_x = config.data_x; + var html = "<table class=\"".concat($TOOLTIP.tooltip, "\"><tbody>"); + d.forEach(function (v) { + var _a = v.id, id = _a === void 0 ? "" : _a, _b = v.value, value = _b === void 0 ? 0 : _b, _c = v.epochs, epochs = _c === void 0 ? 0 : _c, _d = v.x, x = _d === void 0 ? "" : _d; + html += "<tr>\n\t\t\t\t\t\t\t<th>".concat(data_x || "", "</th>\n\t\t\t\t\t\t\t<th class=\"value\">").concat(defaultTitleFormat(x), "</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th>").concat(v.id, "</th>\n\t\t\t\t\t\t\t<th class=\"value\">").concat(defaultValueFormat(value), "</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class=\"").concat($TOOLTIP.tooltipName, "-").concat(id, "\">\n\t\t\t\t\t\t\t<td class=\"name\"><span style=\"background-color:").concat(color(v), "\"></span>Epochs</td>\n\t\t\t\t\t\t\t<td class=\"value\">").concat(defaultValueFormat(epochs), "</td>\n\t\t\t\t\t\t</tr>"); + }); + return "".concat(html, "</tbody></table>"); + }; + } + }; + Stanford.prototype.countEpochsInRegion = function (region) { + var $$ = this; + var target = $$.data.targets[0]; + var total = target.values.reduce(function (accumulator, currentValue) { return accumulator + Number(currentValue.epochs); }, 0); + var value = target.values.reduce(function (accumulator, currentValue) { + if (pointInRegion(currentValue, region)) { + return accumulator + Number(currentValue.epochs); + } + return accumulator; + }, 0); + return { + value: value, + percentage: value !== 0 ? +(value / total * 100).toFixed(1) : 0 + }; + }; + return Stanford; +}(Plugin)); + +export { Stanford as default }; diff --git a/release/3.12.4/dist-esm/plugin/billboardjs-plugin-tableview.d.ts b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-tableview.d.ts new file mode 100644 index 000000000..7724ef4be --- /dev/null +++ b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-tableview.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +import PluginClass from "../../types/plugin/tableview"; + +export default PluginClass; diff --git a/release/3.12.4/dist-esm/plugin/billboardjs-plugin-tableview.js b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-tableview.js new file mode 100644 index 000000000..e641f750b --- /dev/null +++ b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-tableview.js @@ -0,0 +1,562 @@ +/*! +* Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin +*/ +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise, SuppressedError, Symbol */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Window object + * @private + */ +/* eslint-disable no-new-func, no-undef */ +/** + * Get global object + * @returns {object} window object + * @private + */ +function getGlobal() { + return (typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && + globalThis) || + (typeof global === "object" && global !== null && global.Object === Object && global) || + (typeof self === "object" && self !== null && self.Object === Object && self) || + Function("return this")(); +} +var win = getGlobal(); +var doc = win === null || win === void 0 ? void 0 : win.document; + +var isNumber = function (v) { return typeof v === "number"; }; +var isDefined = function (v) { return typeof v !== "undefined"; }; +var isObjectType = function (v) { return typeof v === "object"; }; +/** + * Check if is array + * @param {Array} arr Data to be checked + * @returns {boolean} + * @private + */ +var isArray = function (arr) { return Array.isArray(arr); }; +/** + * Check if is object + * @param {object} obj Data to be checked + * @returns {boolean} + * @private + */ +var isObject = function (obj) { return obj && !(obj === null || obj === void 0 ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); }; +/** + * Merge object returning new object + * @param {object} target Target object + * @param {object} objectN Source object + * @returns {object} merged target object + * @private + */ +function mergeObj(target) { + var objectN = []; + for (var _i = 1; _i < arguments.length; _i++) { + objectN[_i - 1] = arguments[_i]; + } + if (!objectN.length || (objectN.length === 1 && !objectN[0])) { + return target; + } + var source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach(function (key) { + var value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } + else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj.apply(void 0, __spreadArray([target], objectN, false)); +} +// emulate event +({ + mouse: (function () { + var getParams = function () { return ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); }; + try { + // eslint-disable-next-line no-new + new MouseEvent("t"); + return function (el, eventType, params) { + if (params === void 0) { params = getParams(); } + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } + catch (e) { + // Polyfills DOM4 MouseEvent + return function (el, eventType, params) { + if (params === void 0) { params = getParams(); } + var mouseEvent = doc.createEvent("MouseEvent"); + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent + mouseEvent.initMouseEvent(eventType, params.bubbles, params.cancelable, win, 0, // the event's mouse click count + params.screenX, params.screenY, params.clientX, params.clientY, false, false, false, false, 0, null); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: function (el, eventType, params) { + var touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}); +/** + * Process the template & return bound string + * @param {string} tpl Template string + * @param {object} data Data value to be replaced + * @returns {string} + * @private + */ +function tplProcess(tpl, data) { + var res = tpl; + for (var x in data) { + res = res.replace(new RegExp("{=".concat(x, "}"), "g"), data[x]); + } + return res; +} + +/** + * Load configuration option + * @param {object} config User's generation config value + * @private + */ +function loadConfig(config) { + var thisConfig = this.config; + var target; + var keys; + var read; + var find = function () { + var key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } + else if (!key) { + return target; + } + return undefined; + }; + Object.keys(thisConfig).forEach(function (key) { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + // only should run in the ChartInternal context + if (this.api) { + this.state.orgConfig = config; + } +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Base class to generate billboard.js plugin + * @class Plugin + */ +/** + * Version info string for plugin + * @name version + * @static + * @memberof Plugin + * @type {string} + * @example + * bb.plugin.stanford.version; // ex) 1.9.0 + */ +var Plugin = /** @class */ (function () { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + function Plugin(options) { + if (options === void 0) { options = {}; } + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + Plugin.prototype.$beforeInit = function () { }; + /** + * Lifecycle hook for 'init' phase. + * @private + */ + Plugin.prototype.$init = function () { }; + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + Plugin.prototype.$afterInit = function () { }; + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + Plugin.prototype.$redraw = function () { }; + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + Plugin.prototype.$willDestroy = function () { + var _this = this; + Object.keys(this).forEach(function (key) { + _this[key] = null; + delete _this[key]; + }); + }; + Plugin.version = "3.12.4"; + return Plugin; +}()); + +/** + * Copyright (c) 2021 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Constants values for plugin option + * @ignore + */ +var defaultStyle = { + id: "__tableview-style__", + class: "bb-tableview", + rule: ".bb-tableview {\n\t\tborder-collapse:collapse;\n\t\tborder-spacing:0;\n\t\tbackground:#fff;\n\t\tmin-width:100%;\n\t\tmargin-top:10px;\n\t\tfont-family:sans-serif;\n\t\tfont-size:.9em;\n\t}\n\t.bb-tableview tr:hover {\n\t\tbackground:#eef7ff;\n\t}\n\t.bb-tableview thead tr {\n\t\tbackground:#f8f8f8;\n\t}\n\t.bb-tableview caption,.bb-tableview td,.bb-tableview th {\n\t\ttext-align: center;\n\t\tborder:1px solid silver;\n\t\tpadding:.5em;\n\t}\n\t.bb-tableview caption {\n\t\tfont-size:1.1em;\n\t\tfont-weight:700;\n\t\tmargin-bottom: -1px;\n\t}" +}; +// template +var tpl = { + body: "<caption>{=title}</caption>\n\t\t<thead><tr>{=thead}</tr></thead>\n\t\t<tbody>{=tbody}</tbody>", + thead: "<th scope=\"col\">{=title}</th>", + tbodyHeader: "<th scope=\"row\">{=value}</th>", + tbody: "<td>{=value}</td>" +}; + +/** + * Copyright (c) 2021 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * TableView plugin option class + * @class TableviewOptions + * @param {Options} options TableView plugin options + * @augments Plugin + * @returns {TableviewOptions} + * @private + */ +var Options = /** @class */ (function () { + function Options() { + return { + /** + * Set tableview holder selector. + * - **NOTE:** If not set, will append new holder element dynamically right after chart element. + * @name selector + * @memberof plugin-tableview + * @type {string} + * @default undefined + * @example + * selector: "#table-holder" + */ + selector: undefined, + /** + * Set category title text + * @name categoryTitle + * @memberof plugin-tableview + * @type {string} + * @default "Category" + * @example + * categoryTitle: "#table-holder" + */ + categoryTitle: "Category", + /** + * Set category text format function. + * @name categoryFormat + * @memberof plugin-tableview + * @type {Function} + * @returns {string} + * @default function(v) { // will return formatted value according x Axis type }} + * @example + * categoryFormat: "#table-holder" + */ + categoryFormat: function (v) { + var category = v; + if (this.$$.axis.isCategorized()) { + category = this.$$.categoryName(v); + } + else if (this.$$.axis.isTimeSeries()) { + category = v.toLocaleDateString(); + } + return category; + }, + /** + * Set tableview holder class name. + * @name class + * @memberof plugin-tableview + * @type {string} + * @default undefined + * @example + * class: "table-class-name" + */ + class: undefined, + /** + * Set to apply default style(`.bb-tableview`) to tableview element. + * @name style + * @memberof plugin-tableview + * @type {boolean} + * @default true + * @example + * style: false + */ + style: true, + /** + * Set tableview title text. + * - **NOTE:** If set [title.text](https://naver.github.io/billboard.js/release/latest/doc/Options.html#.title), will be used when this option value is empty. + * @name title + * @memberof plugin-tableview + * @type {string} + * @default undefined + * @example + * title: "Table Title Text" + */ + title: undefined, + /** + * Update tableview from data visibility update(ex. legend toggle). + * @name updateOnToggle + * @memberof plugin-tableview + * @type {boolean} + * @default true + * @example + * legendToggleUpdate: false + */ + updateOnToggle: true, + /** + * Set how null value to be shown. + * @name nullString + * @memberof plugin-tableview + * @type {string} + * @default "-" + * @example + * nullString: "N/A" + */ + nullString: "-" + }; + } + return Options; +}()); + +/** + * Table view plugin.<br> + * Generates table view for bound dataset. + * - **NOTE:** + * - Plugins aren't built-in. Need to be loaded or imported to be used. + * - Non required modules from billboard.js core, need to be installed separately. + * @class plugin-tableview + * @param {object} options table view plugin options + * @augments Plugin + * @returns {TableView} + * @example + * // Plugin must be loaded before the use. + * <script src="$YOUR_PATH/plugin/billboardjs-plugin-tableview.js"></script> + * + * var chart = bb.generate({ + * ... + * plugins: [ + * new bb.plugin.tableview({ + * selector: "#my-table-view", + * categoryTitle: "Category", + * categoryFormat: function(v) { + * // do some transformation + * ... + * return v; + * }, + * class: "my-class-name", + * style: true, + * title: "My Data List", + * updateOnToggle: false, + * nullString: "N/A" + * }), + * ] + * }); + * @example + * import {bb} from "billboard.js"; + * import TableView from "billboard.js/dist/billboardjs-plugin-tableview"; + * + * bb.generate({ + * ... + * plugins: [ + * new TableView({ ... }) + * ] + * }) + */ +var TableView = /** @class */ (function (_super) { + __extends(TableView, _super); + function TableView(options) { + var _this = _super.call(this, options) || this; + _this.config = new Options(); + return _this; + } + TableView.prototype.$beforeInit = function () { + loadConfig.call(this, this.options); + }; + TableView.prototype.$init = function () { + var _a; + var _b = this.config, className = _b.class, selector = _b.selector, style = _b.style; + var element = document.querySelector(selector || ".".concat(className || defaultStyle.class)); + if (!element) { + var chart = this.$$.$el.chart.node(); + element = document.createElement("table"); + chart.parentNode.insertBefore(element, chart.nextSibling); + } + if (element.tagName !== "TABLE") { + var table = document.createElement("table"); + element.appendChild(table); + element = table; + } + // append default css style + if (style && !document.getElementById(defaultStyle.id)) { + var s = document.createElement("style"); + s.id = defaultStyle.id; + s.innerHTML = defaultStyle.rule; + (document.head || document.getElementsByTagName("head")[0]) + .appendChild(s); + } + (_a = element.classList).add.apply(_a, [style && defaultStyle.class, className].filter(Boolean)); + this.element = element; + }; + /** + * Generate table + * @private + */ + TableView.prototype.generateTable = function () { + var _this = this; + var _a = this, $$ = _a.$$, config = _a.config, element = _a.element; + var dataToShow = $$.filterTargetsToShow($$.data.targets); + var thead = tplProcess(tpl.thead, { + title: dataToShow.length ? this.config.categoryTitle : "" + }); + var tbody = ""; + var rows = []; + dataToShow.forEach(function (v) { + thead += tplProcess(tpl.thead, { title: v.id }); + // make up value rows + v.values.forEach(function (d, i) { + if (!rows[i]) { + rows[i] = [d.x]; + } + rows[i].push(d.value); + }); + }); + rows.forEach(function (v) { + tbody += "<tr>".concat(v.map(function (d, i) { + return tplProcess(i ? tpl.tbody : tpl.tbodyHeader, { + value: i === 0 ? + config.categoryFormat.bind(_this)(d) : + (isNumber(d) ? d.toLocaleString() : config.nullString) + }); + }).join(""), "</tr>"); + }); + var rx = /(<\/?(script|img)[^>]*>|<[^>]+><\/[^>]+>)/ig; + var r = tplProcess(tpl.body, __assign(__assign({}, config), { title: config.title || $$.config.title_text || "", thead: thead, tbody: tbody })).replace(rx, ""); + element.innerHTML = r; + }; + TableView.prototype.$redraw = function () { + var state = this.$$.state; + var doNotUpdate = state.resizing || (!this.config.updateOnToggle && state.toggling); + !doNotUpdate && this.generateTable(); + }; + TableView.prototype.$willDestroy = function () { + var _a, _b; + (_a = this.element.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(this.element); + // remove default css style when left one chart instance + if (this.$$.charts.length === 1) { + var s = document.getElementById(defaultStyle.id); + (_b = s === null || s === void 0 ? void 0 : s.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(s); + } + }; + return TableView; +}(Plugin)); + +export { TableView as default }; diff --git a/release/3.12.4/dist-esm/plugin/billboardjs-plugin-textoverlap.d.ts b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-textoverlap.d.ts new file mode 100644 index 000000000..2ebbc04fc --- /dev/null +++ b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-textoverlap.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +import PluginClass from "../../types/plugin/textoverlap"; + +export default PluginClass; diff --git a/release/3.12.4/dist-esm/plugin/billboardjs-plugin-textoverlap.js b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-textoverlap.js new file mode 100644 index 000000000..b93940af7 --- /dev/null +++ b/release/3.12.4/dist-esm/plugin/billboardjs-plugin-textoverlap.js @@ -0,0 +1,435 @@ +/*! +* Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin +*/ +import { Delaunay } from 'd3-delaunay'; +import { polygonCentroid, polygonArea } from 'd3-polygon'; + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise, SuppressedError, Symbol */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Window object + * @private + */ +/* eslint-disable no-new-func, no-undef */ +/** + * Get global object + * @returns {object} window object + * @private + */ +function getGlobal() { + return (typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && + globalThis) || + (typeof global === "object" && global !== null && global.Object === Object && global) || + (typeof self === "object" && self !== null && self.Object === Object && self) || + Function("return this")(); +} +var win = getGlobal(); +var doc = win === null || win === void 0 ? void 0 : win.document; + +var isDefined = function (v) { return typeof v !== "undefined"; }; +var isObjectType = function (v) { return typeof v === "object"; }; +/** + * Check if is array + * @param {Array} arr Data to be checked + * @returns {boolean} + * @private + */ +var isArray = function (arr) { return Array.isArray(arr); }; +/** + * Check if is object + * @param {object} obj Data to be checked + * @returns {boolean} + * @private + */ +var isObject = function (obj) { return obj && !(obj === null || obj === void 0 ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); }; +/** + * Merge object returning new object + * @param {object} target Target object + * @param {object} objectN Source object + * @returns {object} merged target object + * @private + */ +function mergeObj(target) { + var objectN = []; + for (var _i = 1; _i < arguments.length; _i++) { + objectN[_i - 1] = arguments[_i]; + } + if (!objectN.length || (objectN.length === 1 && !objectN[0])) { + return target; + } + var source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach(function (key) { + var value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } + else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj.apply(void 0, __spreadArray([target], objectN, false)); +} +// emulate event +({ + mouse: (function () { + var getParams = function () { return ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); }; + try { + // eslint-disable-next-line no-new + new MouseEvent("t"); + return function (el, eventType, params) { + if (params === void 0) { params = getParams(); } + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } + catch (e) { + // Polyfills DOM4 MouseEvent + return function (el, eventType, params) { + if (params === void 0) { params = getParams(); } + var mouseEvent = doc.createEvent("MouseEvent"); + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent + mouseEvent.initMouseEvent(eventType, params.bubbles, params.cancelable, win, 0, // the event's mouse click count + params.screenX, params.screenY, params.clientX, params.clientY, false, false, false, false, 0, null); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: function (el, eventType, params) { + var touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}); + +/** + * Load configuration option + * @param {object} config User's generation config value + * @private + */ +function loadConfig(config) { + var thisConfig = this.config; + var target; + var keys; + var read; + var find = function () { + var key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } + else if (!key) { + return target; + } + return undefined; + }; + Object.keys(thisConfig).forEach(function (key) { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + // only should run in the ChartInternal context + if (this.api) { + this.state.orgConfig = config; + } +} + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * Base class to generate billboard.js plugin + * @class Plugin + */ +/** + * Version info string for plugin + * @name version + * @static + * @memberof Plugin + * @type {string} + * @example + * bb.plugin.stanford.version; // ex) 1.9.0 + */ +var Plugin = /** @class */ (function () { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + function Plugin(options) { + if (options === void 0) { options = {}; } + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + Plugin.prototype.$beforeInit = function () { }; + /** + * Lifecycle hook for 'init' phase. + * @private + */ + Plugin.prototype.$init = function () { }; + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + Plugin.prototype.$afterInit = function () { }; + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + Plugin.prototype.$redraw = function () { }; + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + Plugin.prototype.$willDestroy = function () { + var _this = this; + Object.keys(this).forEach(function (key) { + _this[key] = null; + delete _this[key]; + }); + }; + Plugin.version = "3.12.4"; + return Plugin; +}()); + +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +/** + * TextOverlap plugin option class + * @class TextOverlapOptions + * @param {Options} options TextOverlap plugin options + * @augments Plugin + * @returns {TextOverlapOptions} + * @private + */ +var Options = /** @class */ (function () { + function Options() { + return { + /** + * Selector string for target text nodes within chart element. + * - **NOTE:** If no value is given, defaults to data label text elements. + * @name selector + * @memberof plugin-textoverlap + * @type {string} + * @default undefined + * @example + * // selector for data label text nodes + * selector: ".bb-texts text" + */ + selector: undefined, + /** + * Extent of label overlap prevention. + * @name extent + * @memberof plugin-textoverlap + * @type {number} + * @default 1 + * @example + * extent: 1 + */ + extent: 1, + /** + * Minimum area needed to show a data label. + * @name area + * @memberof plugin-textoverlap + * @type {number} + * @default 0 + * @example + * area: 0 + */ + area: 0 + }; + } + return Options; +}()); + +/** + * TextOverlap plugin<br> + * Prevents label overlap using [Voronoi layout](https://en.wikipedia.org/wiki/Voronoi_diagram). + * - **NOTE:** + * - Plugins aren't built-in. Need to be loaded or imported to be used. + * - Non required modules from billboard.js core, need to be installed separately. + * - Appropriate and works for axis based chart. + * - **Required modules:** + * - [d3-polygon](https://github.com/d3/d3-polygon) + * - [d3-delaunay](https://github.com/d3/d3-delaunay) + * @class plugin-textoverlap + * @requires d3-polygon + * @requires d3-delaunay + * @param {object} options TextOverlap plugin options + * @augments Plugin + * @returns {TextOverlap} + * @example + * // Plugin must be loaded before the use. + * <script src="$YOUR_PATH/plugin/billboardjs-plugin-textoverlap.js"></script> + * + * var chart = bb.generate({ + * data: { + * columns: [ ... ] + * }, + * ... + * plugins: [ + * new bb.plugin.textoverlap({ + * selector: ".bb-texts text", + * extent: 8, + * area: 3 + * }) + * ] + * }); + * @example + * import {bb} from "billboard.js"; + * import TextOverlap from "billboard.js/dist/billboardjs-plugin-textoverlap"; + * + * bb.generate({ + * plugins: [ + * new TextOverlap({ ... }) + * ] + * }) + */ +var TextOverlap = /** @class */ (function (_super) { + __extends(TextOverlap, _super); + function TextOverlap(options) { + var _this = _super.call(this, options) || this; + _this.config = new Options(); + return _this; + } + TextOverlap.prototype.$init = function () { + loadConfig.call(this, this.options); + }; + TextOverlap.prototype.$redraw = function () { + var _a = this, $el = _a.$$.$el, selector = _a.config.selector; + var text = selector ? $el.main.selectAll(selector) : $el.text; + !text.empty() && this.preventLabelOverlap(text); + }; + /** + * Generates the voronoi layout for data labels + * @param {Array} points Indices values + * @returns {object} Voronoi layout points and corresponding Data points + * @private + */ + TextOverlap.prototype.generateVoronoi = function (points) { + var _a; + var $$ = this.$$; + var scale = $$.scale; + var _b = ["x", "y"].map(function (v) { return scale[v].domain(); }), min = _b[0], max = _b[1]; + _a = [max[0], min[1]], min[1] = _a[0], max[0] = _a[1]; + return Delaunay + .from(points) + .voronoi(__spreadArray(__spreadArray([], min, true), max, true)); // bounds = [xmin, ymin, xmax, ymax], default value: [0, 0, 960, 500] + }; + /** + * Set text label's position to preventg overlap. + * @param {d3Selection} text target text selection + * @private + */ + TextOverlap.prototype.preventLabelOverlap = function (text) { + var _a = this.config, extent = _a.extent, area = _a.area; + var points = text.data().map(function (v) { return [v.index, v.value]; }); + var voronoi = this.generateVoronoi(points); + var i = 0; + text.each(function () { + var cell = voronoi.cellPolygon(i); + if (cell && this) { + var _a = points[i], x = _a[0], y = _a[1]; + // @ts-ignore wrong type definiton for d3PolygonCentroid + var _b = polygonCentroid(cell), cx = _b[0], cy = _b[1]; + // @ts-ignore wrong type definiton for d3PolygonArea + var polygonArea$1 = Math.abs(polygonArea(cell)); + var angle = Math.round(Math.atan2(cy - y, cx - x) / Math.PI * 2); + var xTranslate = extent * (angle === 0 ? 1 : -1); + var yTranslate = angle === -1 ? -extent : extent + 5; + var txtAnchor = Math.abs(angle) === 1 ? + "middle" : + (angle === 0 ? "start" : "end"); + this.style.display = polygonArea$1 < area ? "none" : ""; + this.setAttribute("text-anchor", txtAnchor); + this.setAttribute("dy", "0.".concat(angle === 1 ? 71 : 35, "em")); + this.setAttribute("transform", "translate(".concat(xTranslate, ", ").concat(yTranslate, ")")); + } + i++; + }); + }; + return TextOverlap; +}(Plugin)); + +export { TextOverlap as default }; diff --git a/release/3.12.4/dist/billboard.css b/release/3.12.4/dist/billboard.css new file mode 100644 index 000000000..1e9343b7b --- /dev/null +++ b/release/3.12.4/dist/billboard.css @@ -0,0 +1,253 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */ +/*-- Chart --*/ +.bb svg { + font: 10px sans-serif; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + +.bb path, .bb line { + fill: none; + stroke: #000; } + +.bb text, .bb .bb-button { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; } + +.bb-legend-item-tile, +.bb-xgrid-focus, +.bb-ygrid-focus, +.bb-ygrid { + shape-rendering: crispEdges; } + +.bb-chart-arcs .bb-needle { + fill: #000; } + +.bb-chart-arc .bb-gauge-value { + fill: #000; } + +.bb-chart-arc path { + stroke: #fff; } + +.bb-chart-arc rect { + stroke: #fff; + stroke-width: 1; } + +.bb-chart-arc text { + fill: #fff; + font-size: 13px; } + +/*-- Funnel --*/ +.bb-chart-funnels path { + stroke-width: 0; } + +.bb-chart-funnels + .bb-chart-texts text { + font-size: 13px; + fill: #fff; } + +/*-- Axis --*/ +.bb-axis { + shape-rendering: crispEdges; } + .bb-axis .bb-axis-x-tooltip, .bb-axis .bb-axis-y-tooltip, .bb-axis .bb-axis-y2-tooltip { + font-size: 1em; + fill: #fff; + white-space: nowrap; } + +/*-- Grid --*/ +.bb-grid { + pointer-events: none; } + .bb-grid line { + stroke: #aaa; } + .bb-grid text { + fill: #aaa; } + +.bb-xgrid, .bb-ygrid { + stroke-dasharray: 3 3; } + +/*-- Text on Chart --*/ +.bb-text.bb-empty { + fill: #808080; + font-size: 2em; } + +/*-- Line --*/ +.bb-line { + stroke-width: 1px; } + +/*-- Point --*/ +.bb-circle._expanded_ { + stroke-width: 1px; + stroke: white; } + +.bb-selected-circle { + fill: white; + stroke-width: 2px; } + +/*-- Bar --*/ +.bb-bar { + stroke-width: 0; } + .bb-bar._expanded_ { + fill-opacity: 0.75; } + +/*-- Candlestick --*/ +.bb-candlestick { + stroke-width: 1px; } + .bb-candlestick._expanded_ { + fill-opacity: 0.75; } + +/*-- Focus --*/ +.bb-target.bb-focused, .bb-circles.bb-focused { + opacity: 1; } + +.bb-target.bb-focused path.bb-line, .bb-target.bb-focused path.bb-step, .bb-circles.bb-focused path.bb-line, .bb-circles.bb-focused path.bb-step { + stroke-width: 2px; } + +.bb-target.bb-defocused, .bb-circles.bb-defocused { + opacity: 0.3 !important; } + .bb-target.bb-defocused .text-overlapping, .bb-circles.bb-defocused .text-overlapping { + opacity: .05 !important; } + +/*-- Region --*/ +.bb-region { + fill: steelblue; } + .bb-region rect { + fill-opacity: .1; } + +/*-- Zoom region --*/ +.bb-zoom-brush { + fill-opacity: .1; } + +/*-- Brush --*/ +.bb-brush .extent { + fill-opacity: .1; } + +/*-- Legend --*/ +.bb-legend-item { + font-size: 12px; + user-select: none; } + +.bb-legend-item-hidden { + opacity: 0.15; } + +.bb-legend-background { + opacity: 0.75; + fill: white; + stroke: lightgray; + stroke-width: 1; } + +/*-- Title --*/ +.bb-title { + font: 14px sans-serif; } + +/*-- Treemap --*/ +.bb-chart-treemaps rect { + stroke: #fff; + stroke-width: 1px; } + +/*-- Tooltip --*/ +.bb-tooltip-container { + z-index: 10; + user-select: none; } + +.bb-tooltip { + border-collapse: collapse; + border-spacing: 0; + background-color: #fff; + empty-cells: show; + opacity: 0.9; + box-shadow: 7px 7px 12px -9px #777777; + white-space: nowrap; } + .bb-tooltip tr { + border: 1px solid #CCC; } + .bb-tooltip th { + background-color: #aaa; + font-size: 14px; + padding: 2px 5px; + text-align: left; + color: #FFF; } + .bb-tooltip td { + font-size: 13px; + padding: 3px 6px; + background-color: #fff; + border-left: 1px dotted #999; } + .bb-tooltip td > span, .bb-tooltip td > svg { + display: inline-block; + width: 10px; + height: 10px; + margin-right: 6px; } + .bb-tooltip.value { + text-align: right; } + +/*-- Area --*/ +.bb-area { + stroke-width: 0; + opacity: 0.2; } + +/*-- Arc --*/ +.bb-chart-arcs-title { + dominant-baseline: middle; + font-size: 1.3em; } + +text.bb-chart-arcs-gauge-title { + dominant-baseline: middle; + font-size: 2.7em; } + +.bb-chart-arcs { + /*-- Polar --*/ } + .bb-chart-arcs .bb-chart-arcs-background { + fill: #e0e0e0; + stroke: #fff; } + .bb-chart-arcs .bb-chart-arcs-gauge-unit { + fill: #000; + font-size: 16px; } + .bb-chart-arcs .bb-chart-arcs-gauge-max { + fill: #777; } + .bb-chart-arcs .bb-chart-arcs-gauge-min { + fill: #777; } + .bb-chart-arcs .bb-levels circle { + fill: none; + stroke: #848282; + stroke-width: .5px; } + .bb-chart-arcs .bb-levels text { + fill: #848282; } + +/*-- Radar --*/ +.bb-chart-radars .bb-levels polygon { + fill: none; + stroke: #848282; + stroke-width: .5px; } + +.bb-chart-radars .bb-levels text { + fill: #848282; } + +.bb-chart-radars .bb-axis line { + stroke: #848282; + stroke-width: .5px; } + +.bb-chart-radars .bb-axis text { + font-size: 1.15em; + cursor: default; } + +.bb-chart-radars .bb-shapes polygon { + fill-opacity: .2; + stroke-width: 1px; } + +/*-- Button --*/ +.bb-button { + position: absolute; + top: 10px; + right: 10px; } + .bb-button .bb-zoom-reset { + font-size: 11px; + border: solid 1px #ccc; + background-color: #fff; + padding: 5px; + border-radius: 5px; + cursor: pointer; } + diff --git a/release/3.12.4/dist/billboard.js b/release/3.12.4/dist/billboard.js new file mode 100644 index 000000000..056e1f105 --- /dev/null +++ b/release/3.12.4/dist/billboard.js @@ -0,0 +1,21674 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("d3-axis"), require("d3-brush"), require("d3-drag"), require("d3-dsv"), require("d3-ease"), require("d3-hierarchy"), require("d3-interpolate"), require("d3-scale"), require("d3-selection"), require("d3-shape"), require("d3-time-format"), require("d3-transition"), require("d3-zoom")); + else if(typeof define === 'function' && define.amd) + define(["d3-axis", "d3-brush", "d3-drag", "d3-dsv", "d3-ease", "d3-hierarchy", "d3-interpolate", "d3-scale", "d3-selection", "d3-shape", "d3-time-format", "d3-transition", "d3-zoom"], factory); + else { + var a = typeof exports === 'object' ? factory(require("d3-axis"), require("d3-brush"), require("d3-drag"), require("d3-dsv"), require("d3-ease"), require("d3-hierarchy"), require("d3-interpolate"), require("d3-scale"), require("d3-selection"), require("d3-shape"), require("d3-time-format"), require("d3-transition"), require("d3-zoom")) : factory(root["d3"], root["d3"], root["d3"], root["d3"], root["d3"], root["d3"], root["d3"], root["d3"], root["d3"], root["d3"], root["d3"], root["d3"], root["d3"]); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(this, function(__WEBPACK_EXTERNAL_MODULE__11__, __WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__6__, __WEBPACK_EXTERNAL_MODULE__5__, __WEBPACK_EXTERNAL_MODULE__12__, __WEBPACK_EXTERNAL_MODULE__14__, __WEBPACK_EXTERNAL_MODULE__13__, __WEBPACK_EXTERNAL_MODULE__7__, __WEBPACK_EXTERNAL_MODULE__2__, __WEBPACK_EXTERNAL_MODULE__9__, __WEBPACK_EXTERNAL_MODULE__3__, __WEBPACK_EXTERNAL_MODULE__8__, __WEBPACK_EXTERNAL_MODULE__10__) { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */, +/* 2 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__2__; + +/***/ }), +/* 3 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__3__; + +/***/ }), +/* 4 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__4__; + +/***/ }), +/* 5 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__5__; + +/***/ }), +/* 6 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__6__; + +/***/ }), +/* 7 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__7__; + +/***/ }), +/* 8 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__8__; + +/***/ }), +/* 9 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__9__; + +/***/ }), +/* 10 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__10__; + +/***/ }), +/* 11 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__11__; + +/***/ }), +/* 12 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__12__; + +/***/ }), +/* 13 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__13__; + +/***/ }), +/* 14 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__14__; + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other entry modules. +!function() { +// extracted by mini-css-extract-plugin + +}(); +// This entry need to be wrapped in an IIFE because it need to be isolated against other entry modules. +!function() { +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + bb: function() { return /* reexport */ bb; }, + "default": function() { return /* reexport */ bb; } +}); + +// NAMESPACE OBJECT: ./src/config/resolver/interaction.ts +var resolver_interaction_namespaceObject = {}; +__webpack_require__.r(resolver_interaction_namespaceObject); +__webpack_require__.d(resolver_interaction_namespaceObject, { + selection: function() { return selectionModule; }, + subchart: function() { return subchartModule; }, + zoom: function() { return zoomModule; } +}); + +// NAMESPACE OBJECT: ./src/config/resolver/shape.ts +var resolver_shape_namespaceObject = {}; +__webpack_require__.r(resolver_shape_namespaceObject); +__webpack_require__.d(resolver_shape_namespaceObject, { + area: function() { return resolver_shape_area; }, + areaLineRange: function() { return areaLineRange; }, + areaSpline: function() { return areaSpline; }, + areaSplineRange: function() { return areaSplineRange; }, + areaStep: function() { return areaStep; }, + bar: function() { return resolver_shape_bar; }, + bubble: function() { return resolver_shape_bubble; }, + candlestick: function() { return resolver_shape_candlestick; }, + donut: function() { return shape_donut; }, + funnel: function() { return resolver_shape_funnel; }, + gauge: function() { return resolver_shape_gauge; }, + line: function() { return resolver_shape_line; }, + pie: function() { return shape_pie; }, + polar: function() { return resolver_shape_polar; }, + radar: function() { return resolver_shape_radar; }, + scatter: function() { return shape_scatter; }, + spline: function() { return shape_spline; }, + step: function() { return step; }, + treemap: function() { return resolver_shape_treemap; } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-selection","commonjs2":"d3-selection","amd":"d3-selection","root":"d3"} +var external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_ = __webpack_require__(2); +// EXTERNAL MODULE: external {"commonjs":"d3-time-format","commonjs2":"d3-time-format","amd":"d3-time-format","root":"d3"} +var external_commonjs_d3_time_format_commonjs2_d3_time_format_amd_d3_time_format_root_d3_ = __webpack_require__(3); +;// CONCATENATED MODULE: ./src/config/classes.ts +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +const $COMMON = { + button: "bb-button", + chart: "bb-chart", + empty: "bb-empty", + main: "bb-main", + target: "bb-target", + EXPANDED: "_expanded_" +}; +const $ARC = { + arc: "bb-arc", + arcLabelLine: "bb-arc-label-line", + arcRange: "bb-arc-range", + arcs: "bb-arcs", + chartArc: "bb-chart-arc", + chartArcs: "bb-chart-arcs", + chartArcsBackground: "bb-chart-arcs-background", + chartArcsTitle: "bb-chart-arcs-title", + needle: "bb-needle" +}; +const $AREA = { + area: "bb-area", + areas: "bb-areas" +}; +const $AXIS = { + axis: "bb-axis", + axisX: "bb-axis-x", + axisXLabel: "bb-axis-x-label", + axisY: "bb-axis-y", + axisY2: "bb-axis-y2", + axisY2Label: "bb-axis-y2-label", + axisYLabel: "bb-axis-y-label", + axisXTooltip: "bb-axis-x-tooltip", + axisYTooltip: "bb-axis-y-tooltip", + axisY2Tooltip: "bb-axis-y2-tooltip" +}; +const $BAR = { + bar: "bb-bar", + bars: "bb-bars", + chartBar: "bb-chart-bar", + chartBars: "bb-chart-bars" +}; +const $CANDLESTICK = { + candlestick: "bb-candlestick", + candlesticks: "bb-candlesticks", + chartCandlestick: "bb-chart-candlestick", + chartCandlesticks: "bb-chart-candlesticks", + valueDown: "bb-value-down", + valueUp: "bb-value-up" +}; +const $CIRCLE = { + chartCircles: "bb-chart-circles", + circle: "bb-circle", + circles: "bb-circles" +}; +const $COLOR = { + colorPattern: "bb-color-pattern", + colorScale: "bb-colorscale" +}; +const $DRAG = { + dragarea: "bb-dragarea", + INCLUDED: "_included_" +}; +const $FUNNEL = { + funnel: "bb-funnel", + chartFunnel: "bb-chart-funnel", + chartFunnels: "bb-chart-funnels", + funnelBackground: "bb-funnel-background" +}; +const $GAUGE = { + chartArcsGaugeMax: "bb-chart-arcs-gauge-max", + chartArcsGaugeMin: "bb-chart-arcs-gauge-min", + chartArcsGaugeUnit: "bb-chart-arcs-gauge-unit", + chartArcsGaugeTitle: "bb-chart-arcs-gauge-title", + gaugeValue: "bb-gauge-value" +}; +const $LEGEND = { + legend: "bb-legend", + legendBackground: "bb-legend-background", + legendItem: "bb-legend-item", + legendItemEvent: "bb-legend-item-event", + legendItemHidden: "bb-legend-item-hidden", + legendItemPoint: "bb-legend-item-point", + legendItemTile: "bb-legend-item-tile" +}; +const $LINE = { + chartLine: "bb-chart-line", + chartLines: "bb-chart-lines", + line: "bb-line", + lines: "bb-lines" +}; +const $EVENT = { + eventRect: "bb-event-rect", + eventRects: "bb-event-rects", + eventRectsMultiple: "bb-event-rects-multiple", + eventRectsSingle: "bb-event-rects-single" +}; +const $FOCUS = { + focused: "bb-focused", + defocused: "bb-defocused", + legendItemFocused: "bb-legend-item-focused", + xgridFocus: "bb-xgrid-focus", + ygridFocus: "bb-ygrid-focus" +}; +const $GRID = { + grid: "bb-grid", + gridLines: "bb-grid-lines", + xgrid: "bb-xgrid", + xgridLine: "bb-xgrid-line", + xgridLines: "bb-xgrid-lines", + xgrids: "bb-xgrids", + ygrid: "bb-ygrid", + ygridLine: "bb-ygrid-line", + ygridLines: "bb-ygrid-lines", + ygrids: "bb-ygrids" +}; +const $LEVEL = { + level: "bb-level", + levels: "bb-levels" +}; +const $RADAR = { + chartRadar: "bb-chart-radar", + chartRadars: "bb-chart-radars" +}; +const $REGION = { + region: "bb-region", + regions: "bb-regions" +}; +const $SELECT = { + selectedCircle: "bb-selected-circle", + selectedCircles: "bb-selected-circles", + SELECTED: "_selected_" +}; +const $SHAPE = { + shape: "bb-shape", + shapes: "bb-shapes" +}; +const $SUBCHART = { + brush: "bb-brush", + subchart: "bb-subchart" +}; +const $TEXT = { + chartText: "bb-chart-text", + chartTexts: "bb-chart-texts", + text: "bb-text", + texts: "bb-texts", + title: "bb-title", + TextOverlapping: "text-overlapping" +}; +const $TOOLTIP = { + tooltip: "bb-tooltip", + tooltipContainer: "bb-tooltip-container", + tooltipName: "bb-tooltip-name" +}; +const $TREEMAP = { + treemap: "bb-treemap", + chartTreemap: "bb-chart-treemap", + chartTreemaps: "bb-chart-treemaps" +}; +const $ZOOM = { + buttonZoomReset: "bb-zoom-reset", + zoomBrush: "bb-zoom-brush" +}; +/* harmony default export */ var classes = (__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, $COMMON), $ARC), $AREA), $AXIS), $BAR), $CANDLESTICK), $CIRCLE), $COLOR), $DRAG), $GAUGE), $LEGEND), $LINE), $EVENT), $FOCUS), $FUNNEL), $GRID), $RADAR), $REGION), $SELECT), $SHAPE), $SUBCHART), $TEXT), $TOOLTIP), $TREEMAP), $ZOOM)); + +;// CONCATENATED MODULE: ./src/config/Options/common/boost.ts +/* harmony default export */ var boost = ({ + /** + * Set boost options + * @name boost + * @memberof Options + * @type {object} + * @property {object} boost boost object + * @property {boolean} [boost.useCssRule=false] Avoid setting inline styles for each shape elements. + * - **NOTE:** + * - Will append <style> to the head tag and will add shpes' CSS rules dynamically. + * - For now, covers colors related properties (fill, stroke, etc.) only. + * @property {boolean} [boost.useWorker=false] Use Web Worker as possible for processing. + * - **NOTE:** + * - For now, only applies for data conversion at the initial time. + * - As of Web Worker's async nature, handling chart instance synchrously is not recommended. + * @example + * boost: { + * useCssRule: true, + * useWorker: false + * } + */ + boost_useCssRule: false, + boost_useWorker: false +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/color.ts +/* harmony default export */ var color = ({ + /** + * Set color of the data values + * @name color + * @memberof Options + * @type {object} + * @property {object} color color object + * @property {string|object|Function} [color.onover] Set the color value for each data point when mouse/touch onover event occurs. + * @property {Array|null} [color.pattern=[]] Set custom color pattern. Passing `null` will not set a color for these elements, which requires the usage of custom CSS-based theming to work. + * @property {Function} [color.tiles] if defined, allows use svg's patterns to fill data area. It should return an array of [SVGPatternElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement). + * - **NOTE:** The pattern element's id will be defined as `bb-colorize-pattern-$COLOR-VALUE`.<br> + * ex. When color pattern value is `['red', '#fff']` and defined 2 patterns,then ids for pattern elements are:<br> + * - `bb-colorize-pattern-red` + * - `bb-colorize-pattern-fff` + * @property {object} [color.threshold] color threshold for gauge and tooltip color + * @property {string} [color.threshold.unit] If set to `value`, the threshold will be based on the data value. Otherwise it'll be based on equation of the `threshold.max` option value. + * @property {Array} [color.threshold.values] Threshold values for each steps + * @property {number} [color.threshold.max=100] The base value to determine threshold step value condition. When the given value is 15 and max 10, then the value for threshold is `15*100/10`. + * @example + * color: { + * pattern: ["#1f77b4", "#aec7e8", ...], + * + * // Set colors' patterns + * // it should return an array of SVGPatternElement + * tiles: function() { + * var pattern = document.createElementNS("http://www.w3.org/2000/svg", "pattern"); + * var g = document.createElementNS("http://www.w3.org/2000/svg", "g"); + * var circle1 = document.createElementNS("http://www.w3.org/2000/svg", "circle"); + * + * pattern.setAttribute("patternUnits", "userSpaceOnUse"); + * pattern.setAttribute("width", "32"); + * pattern.setAttribute("height", "32"); + * + * g.style.fill = "#000"; + * g.style.opacity = "0.2"; + * + * circle1.setAttribute("cx", "3"); + * circle1.setAttribute("cy", "3"); + * circle1.setAttribute("r", "3"); + * + * g.appendChild(circle1); + * pattern.appendChild(g); + * + * return [pattern]; + * }, + * + * // for threshold usage, pattern values should be set for each steps + * pattern: ["grey", "green", "yellow", "orange", "red"], + * threshold: { + * unit: "value", + * + * // when value is 20 => 'green', value is 40 => 'orange' will be set. + * values: [10, 20, 30, 40, 50], + * + * // the equation for max: + * // - unit == 'value': max => 30 + * // - unit != 'value': max => value*100/30 + * max: 30 + * }, + * + * // set all data to 'red' + * onover: "red", + * + * // set different color for data + * onover: { + * data1: "red", + * data2: "yellow" + * }, + * + * // will pass data object to the callback + * onover: function(d) { + * return d.id === "data1" ? "red" : "green"; + * } + * } + */ + color_pattern: [], + color_tiles: void 0, + color_threshold: {}, + color_onover: void 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/legend.ts +/* harmony default export */ var legend = ({ + /** + * Legend options + * @name legend + * @memberof Options + * @type {object} + * @property {object} legend Legend object + * @property {boolean} [legend.show=true] Show or hide legend. + * @property {boolean} [legend.hide=false] Hide legend + * If true given, all legend will be hidden. If string or array given, only the legend that has the id will be hidden. + * @property {string|HTMLElement} [legend.contents.bindto=undefined] Set CSS selector or element reference to bind legend items. + * - **NOTE:** Should be used along with `legend.contents.template`. + * @property {string|Function} [legend.contents.template="<span style='color:#fff;padding:5px;background-color:{=COLOR}'>{=TITLE}</span>"] Set item's template.<br> + * - If set `string` value, within template the 'color' and 'title' can be replaced using template-like syntax string: + * - {=COLOR}: data color value + * - {=TITLE}: data title value + * - If set `function` value, will pass following arguments to the given function: + * - title {string}: data's id value + * - color {string}: color string + * - data {Array}: data array + * @property {string} [legend.position=bottom] Change the position of legend.<br> + * Available values are: `bottom`, `right` and `inset` are supported. + * @property {object} [legend.inset={anchor: 'top-left',x: 10,y: 0,step: undefined}] Change inset legend attributes.<br> + * This option accepts object that has the keys `anchor`, `x`, `y` and `step`. + * - **anchor** decides the position of the legend: + * - top-left + * - top-right + * - bottom-left + * - bottom-right + * - **x** and **y**: + * - set the position of the legend based on the anchor. + * - **step**: + * - defines the max step the legend has (e.g. If 2 set and legend has 3 legend item, the legend 2 columns). + * @property {boolean} [legend.equally=false] Set to all items have same width size. + * @property {number} [legend.padding=0] Set padding value + * @property {boolean} [legend.item.interaction=true] Set legend item interaction. + * - **NOTE:** + * - This setting will not have effect on `.toggle()` method. + * - `legend.item.onXXX` listener options will work if set, regardless of this option value. + * @property {boolean} [legend.item.interaction.dblclick=false] Set legend item to interact on double click. + * - **NOTE:** + * - Double clicking will make focused clicked dataseries only, hiding all others. + * - for single click case, `click + altKey(Win)/optionKey(Mac OS)` to have same effect. + * - To return initial state(which all dataseries are showing), double click current focused legend item again. + * - for single click case, `click + altKey(Win)/optionKey(Mac OS)` to have same effect. + * - In this case, default `click` interaction will be disabled. + * @property {Function} [legend.item.onclick=undefined] Set click event handler to the legend item. + * - **NOTE:** + * - When set, default `click` interaction will be disabled. + * - When `interaction.dblclick=true` is set, will be called on double click. + * @property {Function} [legend.item.onover=undefined] Set mouse/touch over event handler to the legend item. + * - **NOTE:** When set, default `mouseover` interaction will be disabled. + * @property {Function} [legend.item.onout=undefined] Set mouse/touch out event handler to the legend item. + * - **NOTE:** When set, default `mouseout` interaction will be disabled. + * @property {number} [legend.item.tile.width=10] Set width for 'rectangle' legend item tile element. + * @property {number} [legend.item.tile.height=10] Set height for 'rectangle' legend item tile element. + * @property {number} [legend.item.tile.r=5] Set the radius for 'circle' legend item tile type. + * @property {string} [legend.item.tile.type="rectangle"] Set legend item shape type.<br> + * - **Available Values:** + * - circle + * - rectangle + * @property {boolean} [legend.format] Set formatter function for legend text. + * The argument:<br> + * - `id`: legend text value. When `data.names` is specified, will pass from it, otherwise will pass data id. + * @property {boolean} [legend.tooltip=false] Show full legend text value using system tooltip(via `<title>` element). + * @property {boolean} [legend.usePoint=false] Whether to use custom points in legend. + * @see [Demo: format](https://naver.github.io/billboard.js/demo/#Legend.LegendFormat) + * @see [Demo: item.interaction](https://naver.github.io/billboard.js/demo/#Legend.LegendItemInteraction) + * @see [Demo: item.tile.type](https://naver.github.io/billboard.js/demo/#Legend.LegendItemTileType) + * @see [Demo: position](https://naver.github.io/billboard.js/demo/#Legend.LegendPosition) + * @see [Demo: contents.template](https://naver.github.io/billboard.js/demo/#Legend.LegendTemplate1) + * @see [Demo: usePoint](https://naver.github.io/billboard.js/demo/#Legend.usePoint) + * @example + * legend: { + * show: true, + * hide: true, + * //or hide: "data1" + * //or hide: ["data1", "data2"] + * contents: { + * bindto: "#legend", // <ul id='legend'></ul> + * + * // will be as: <li style='background-color:#1f77b4'>data1</li> + * template: "<li style='background-color:{=COLOR}'>{=TITLE}</li>" + * + * // or using function + * template: function(id, color, data) { + * // if you want omit some legend, return falsy value + * if (id !== "data1") { + * return "<li style='background-color:"+ color +">"+ id +"</li>"; + * } + * } + * }, + * position: "bottom", // bottom, right, inset + * inset: { + * anchor: "top-right" // top-left, top-right, bottom-left, bottom-right + * x: 20, + * y: 10, + * step: 2 + * }, + * equally: false, + * padding: 10, + * item: { + * // will disable default interaction + * interaction: false, + * + * // set legend interact on double click + * // by double clicking, will make focused clicked dataseries only, hiding all others. + * interaction: { + * dblclick: true + * } + * + * // when set below callback, will disable corresponding default interactions + * onclick: function(id) { ... }, + * onover: function(id) { ... }, + * onout: function(id) { ... }, + * + * // set tile's size + * tile: { + * // set tile type + * type: "circle" // or "rectangle" (default) + * + * // width & height, are only applicable for 'rectangle' legend type + * width: 15, + * height: 15 + * + * // radis is only applicable for 'circle' legend type + * r: 10 + * } + * }, + * format: function(id) { + * // set ellipsis string when length is > 5 + * // to get full legend value, combine with 'legend.tooltip=true' + * if (id.length > 5) { + * id = id.substr(0, 5) + "..."; + * } + * + * return id; + * }, + * tooltip: true, + * usePoint: true + * } + */ + legend_contents_bindto: void 0, + legend_contents_template: "<span style='color:#fff;padding:5px;background-color:{=COLOR}'>{=TITLE}</span>", + legend_equally: false, + legend_hide: false, + legend_inset_anchor: "top-left", + legend_inset_x: 10, + legend_inset_y: 0, + legend_inset_step: void 0, + legend_item_interaction: true, + legend_item_dblclick: false, + legend_item_onclick: void 0, + legend_item_onover: void 0, + legend_item_onout: void 0, + legend_item_tile_width: 10, + legend_item_tile_height: 10, + legend_item_tile_r: 5, + legend_item_tile_type: "rectangle", + legend_format: void 0, + legend_padding: 0, + legend_position: "bottom", + legend_show: true, + legend_tooltip: false, + legend_usePoint: false +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/main.ts +/* harmony default export */ var main = ({ + /** + * Specify the CSS selector or the element which the chart will be set to. D3 selection object can be specified also.<br> + * If other chart is set already, it will be replaced with the new one (only one chart can be set in one element). + * - **NOTE:** In case of element doesn't exist or not specified, will add a `<div>` element to the body. + * @name bindto + * @memberof Options + * @property {string|HTMLElement|d3.selection|object} [bindto="#chart"] Specify the element where chart will be drawn. + * @property {string|HTMLElement|d3.selection} bindto.element="#chart" Specify the element where chart will be drawn. + * @property {string} [bindto.classname=bb] Specify the class name of bind element.<br> + * **NOTE:** When class name isn't `bb`, then you also need to update the default CSS to be rendered correctly. + * @default #chart + * @example + * bindto: "#myContainer" + * + * // or HTMLElement + * bindto: document.getElementById("myContainer") + * + * // or D3 selection object + * bindto: d3.select("#myContainer") + * + * // or to change default classname + * bindto: { + * element: "#chart", + * classname: "bill-board" // ex) <div id='chart' class='bill-board'> + * } + */ + bindto: "#chart", + /** + * Set chart background. + * @name background + * @memberof Options + * @property {object} background background object + * @property {string} background.class Specify the class name for background element. + * @property {string} background.color Specify the fill color for background element.<br>**NOTE:** Will be ignored if `imgUrl` option is set. + * @property {string} background.imgUrl Specify the image url string for background. + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.Background) + * @example + * background: { + * class: "myClass", + * color: "red", + * + * // Set image url for background. + * // If specified, 'color' option will be ignored. + * imgUrl: "https://naver.github.io/billboard.js/img/logo/billboard.js.svg", + * } + */ + background: {}, + /** + * Set 'clip-path' attribute for chart element + * - **NOTE:** + * > When is false, chart node element is positioned after the axis node in DOM tree hierarchy. + * > Is to make chart element positioned over axis element. + * @name clipPath + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.clipPath) + * @example + * // don't set 'clip-path' attribute + * clipPath: false + */ + clipPath: true, + /** + * Set svg element's class name + * @name svg + * @memberof Options + * @type {object} + * @property {object} [svg] svg object + * @property {string} [svg.classname] class name for svg element + * @example + * svg: { + * classname: "test_class" + * } + */ + svg_classname: void 0, + /** + * The desired size of the chart element. + * If value is not specified, the width of the chart will be calculated by the size of the parent element it's appended to. + * @name size + * @memberof Options + * @type {object} + * @property {object} [size] size object + * @property {number} [size.width] width of the chart element + * @property {number} [size.height] height of the chart element + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.ChartSize) + * @example + * size: { + * width: 640, + * height: 480 + * } + */ + size_width: void 0, + size_height: void 0, + /** + * The padding of the chart element. + * - **NOTE:** for more information, see the "[`Understanding padding`](https://github.com/naver/billboard.js/wiki/Understanding-padding)"" wiki documentaion. + * @name padding + * @memberof Options + * @type {object} + * @property {object|boolean} [padding=true] Set padding of chart, and accepts object or boolean type. + * - `Object`: Specify each side's padding. + * - `false`: Remove padding completely and make shape to fully occupy the container element. + * - In this case, axes and subchart will be hidden. + * - To adjust some padding from this state, use `axis.[x|y].padding` option. + * @property {string} [padding.mode] padding mode + * - `"fit"`: Reduce padding as much as possible to make chart fit to the container element for chart types w/axis.<br>When specified, all padding values will be relative from fitted value. + * @property {number} [padding.top] padding on the top of chart + * @property {number} [padding.right] padding on the right of chart + * @property {number} [padding.bottom] padding on the bottom of chart + * @property {number} [padding.left] padding on the left of chart + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.Padding) + * @see [Demo: Fit padding](https://naver.github.io/billboard.js/demo/#ChartOptions.FitPadding) + * @example + * // remove padding completely. + * padding: false, + * + * padding: { + * // specifying mode value, will reduce padding and make fit to the container element. + * mode: "fit" + * + * // when mode is "fit", all padding values will be relative from fitted value. + * // so, 0 will be initial fitted value. + * top: 20, + * right: 20, + * bottom: 20, + * left: 20 + * } + * + * // or specify padding value for each side + * padding: { + * top: 20, + * right: 20, + * bottom: 20, + * left: 20 + * } + */ + padding: true, + padding_mode: void 0, + padding_left: void 0, + padding_right: void 0, + padding_top: void 0, + padding_bottom: void 0, + /** + * Set chart resize options + * @name resize + * @memberof Options + * @type {object} + * @property {object} [resize] resize object + * @property {boolean} [resize.auto=true] Set chart resize automatically on viewport changes. + * @property {boolean|number} [resize.timer=true] Set resize timer option. + * - **NOTE:** + * - The resize function will be called using: + * - true: `setTimeout()` + * - false: `requestIdleCallback()` + * - Given number(delay in ms) value, resize function will be triggered using `setTimer()` with given delay. + * @example + * resize: { + * auto: false, + * + * // set resize function will be triggered using `setTimer()` + * timer: true, + * + * // set resize function will be triggered using `requestIdleCallback()` + * timer: false, + * + * // set resize function will be triggered using `setTimer()` with a delay of `100ms`. + * timer: 100 + * } + */ + resize_auto: true, + resize_timer: true, + /** + * Set a callback to execute when the chart is clicked. + * @name onclick + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onclick: function(event) { + * this; // chart instance itself + * event; // native event object + * ... + * } + */ + onclick: void 0, + /** + * Set a callback to execute when mouse/touch enters the chart. + * @name onover + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onover: function(event) { + * this; // chart instance itself + * event; // native event object + * ... + * } + */ + onover: void 0, + /** + * Set a callback to execute when mouse/touch leaves the chart. + * @name onout + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onout: function(event) { + * this; // chart instance itself + * event; // native event object + * ... + * } + */ + onout: void 0, + /** + * Set a callback to execute when user resizes the screen. + * @name onresize + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onresize: function() { + * this; // chart instance itself + * ... + * } + */ + onresize: void 0, + /** + * Set a callback to execute when screen resize finished. + * @name onresized + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onresized: function() { + * this; // chart instance itself + * ... + * } + */ + onresized: void 0, + /** + * Set a callback to execute before the chart is initialized + * @name onbeforeinit + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onbeforeinit: function() { + * this; // chart instance itself + * ... + * } + */ + onbeforeinit: void 0, + /** + * Set a callback to execute when the chart is initialized. + * @name oninit + * @memberof Options + * @type {Function} + * @default undefined + * @example + * oninit: function() { + * this; // chart instance itself + * ... + * } + */ + oninit: void 0, + /** + * Set a callback to execute after the chart is initialized + * @name onafterinit + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onafterinit: function() { + * this; // chart instance itself + * ... + * } + */ + onafterinit: void 0, + /** + * Set a callback which is executed when the chart is rendered. Basically, this callback will be called in each time when the chart is redrawed. + * @name onrendered + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onrendered: function() { + * this; // chart instance itself + * ... + * } + */ + onrendered: void 0, + /** + * Set duration of transition (in milliseconds) for chart animation.<br><br> + * - **NOTE:** If `0 `or `null` set, transition will be skipped. So, this makes initial rendering faster especially in case you have a lot of data. + * @name transition + * @memberof Options + * @type {object} + * @property {object} [transition] transition object + * @property {number} [transition.duration=350] duration in milliseconds + * @example + * transition: { + * duration: 500 + * } + */ + transition_duration: 250, + /** + * Set plugins + * @name plugins + * @memberof Options + * @type {Array} + * @example + * plugins: [ + * new bb.plugin.stanford({ ... }), + * new PluginA(), + * ... + * ] + */ + plugins: [], + /** + * Control the render timing + * @name render + * @memberof Options + * @type {object} + * @property {object} [render] render object + * @property {boolean} [render.lazy=true] Make to not render at initialization (enabled by default when bind element's visibility is hidden). + * @property {boolean} [render.observe=true] Observe bind element's visibility(`display` or `visiblity` inline css property or class value) & render when is visible automatically (for IEs, only works IE11+). When set to **false**, call [`.flush()`](./Chart.html#flush) to render. + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.LazyRender) + * @example + * render: { + * lazy: true, + * observe: true + * } + * + * @example + * // <!-- render.lazy will detect visibility defined --> + * // (a) <div id='chart' class='hide'></div> + * // (b) <div id='chart' style='display:none'></div> + * + * // render.lazy enabled by default when element is hidden + * var chart = bb.generate({ ... }); + * + * // chart will be rendered automatically when element's visibility changes + * // Note: works only for inlined css property or class attribute changes + * document.getElementById('chart').classList.remove('hide') // (a) + * document.getElementById('chart').style.display = 'block'; // (b) + * + * @example + * // chart won't be rendered and not observing bind element's visiblity changes + * var chart = bb.generate({ + * render: { + * lazy: true, + * observe: false + * } + * }); + * + * // call at any point when you want to render + * chart.flush(); + */ + render: {}, + /** + * Show rectangles inside the chart.<br><br> + * This option accepts array including object that has axis, start, end and class. + * The keys start, end and class are optional. + * axis must be x, y or y2. start and end should be the value where regions start and end. + * If not specified, the edge values will be used. + * If timeseries x axis, date string, Date object and unixtime integer can be used. + * If class is set, the region element will have it as class. + * @name regions + * @memberof Options + * @type {Array} + * @default [] + * @see [Demo](https://naver.github.io/billboard.js/demo/#Region.RegionLabel) + * @example + * regions: [ + * { + * axis: "x", + * start: 1, + * end: 4, + * class: "region-1-4", + * label: { + * text: "Region Text", + * x: 5, // position relative of the initial x coordinate + * y: 5, // position relative of the initial y coordinate + * color: "red", // color string + * rotated: true // make text to show in vertical or horizontal + * } + * } + * ] + */ + regions: [] +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/title.ts +/* harmony default export */ var title = ({ + /** + * Set title options + * @name title + * @memberof Options + * @type {object} + * @property {object} title Title object + * @property {string} [title.text] Title text. If contains `\n`, it's used as line break allowing multiline title. + * @property {number} [title.padding.top=0] Top padding value. + * @property {number} [title.padding.right=0] Right padding value. + * @property {number} [title.padding.bottom=0] Bottom padding value. + * @property {number} [title.padding.left=0] Left padding value. + * @property {string} [title.position=center] Available values are: 'center', 'right' and 'left'. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Title.MultilinedTitle) + * @example + * title: { + * text: "Title Text", + * + * // or Multiline title text + * text: "Main title text\nSub title text", + * + * padding: { + * top: 10, + * right: 10, + * bottom: 10, + * left: 10 + * }, + * position: "center" + * } + */ + title_text: void 0, + title_padding: { + top: 0, + right: 0, + bottom: 0, + left: 0 + }, + title_position: "center" +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/tooltip.ts +/* harmony default export */ var tooltip = ({ + /** + * Tooltip options + * @name tooltip + * @memberof Options + * @type {object} + * @property {object} tooltip Tooltip object + * @property {boolean} [tooltip.show=true] Show or hide tooltip. + * @property {boolean} [tooltip.doNotHide=false] Make tooltip keep showing not hiding on interaction. + * @property {boolean} [tooltip.grouped=true] Set if tooltip is grouped or not for the data points. + * - **NOTE:** The overlapped data points will be displayed as grouped even if set false. + * @property {boolean} [tooltip.linked=false] Set if tooltips on all visible charts with like x points are shown together when one is shown. + * @property {string} [tooltip.linked.name=""] Groping name for linked tooltip.<br>If specified, linked tooltip will be groped interacting to be worked only with the same name. + * @property {Function} [tooltip.format.title] Set format for the title of tooltip.<br> + * Specified function receives x of the data point to show. + * @property {Function} [tooltip.format.name] Set format for the name of each data in tooltip.<br> + * Specified function receives name, ratio, id and index of the data point to show. ratio will be undefined if the chart is not donut/pie/gauge. + * @property {Function} [tooltip.format.value] Set format for the value of each data value in tooltip. If undefined returned, the row of that value will be skipped to be called. + * - Will pass following arguments to the given function: + * - `value {string}`: Value of the data point. If data row contains multiple or ranged(ex. candlestick, area range, etc.) value, formatter will be called as value length. + * - `ratio {number}`: Ratio of the data point in the `pie/donut/gauge` and `area/bar` when contains grouped data. Otherwise is `undefined`. + * - `id {string}`: id of the data point + * - `index {number}`: Index of the data point + * @property {Function} [tooltip.position] Set custom position function for the tooltip.<br> + * This option can be used to modify the tooltip position by returning object that has top and left. + * - Will pass following arguments to the given function: + * - `data {Array}`: Current selected data array object. + * - `width {number}`: Width of tooltip. + * - `height {number}`: Height of tooltip. + * - `element {SVGElement}`: Tooltip event bound element + * - `pos {object}`: Current position of the tooltip. + * @property {Function|object} [tooltip.contents] Set custom HTML for the tooltip.<br> + * If tooltip.grouped is true, data includes multiple data points.<br><br> + * Specified function receives `data` array and `defaultTitleFormat`, `defaultValueFormat` and `color` functions of the data point to show. + * - **Note:** + * - defaultTitleFormat: + * - if `axis.x.tick.format` option will be used if set. + * - otherwise, will return function based on tick format type(category, timeseries). + * - defaultValueFormat: + * - for Arc type (except gauge, radar), the function will return value from `(ratio * 100).toFixed(1)`. + * - for Axis based types, will be used `axis.[y|y2].tick.format` option value if is set. + * - otherwise, will parse value and return as number. + * @property {string|HTMLElement} [tooltip.contents.bindto=undefined] Set CSS selector or element reference to bind tooltip. + * - **NOTE:** When is specified, will not be updating tooltip's position. + * @property {string} [tooltip.contents.template=undefined] Set tooltip's template.<br><br> + * Within template, below syntax will be replaced using template-like syntax string: + * - **{{ ... }}**: the doubly curly brackets indicate loop block for data rows. + * - **{=CLASS_TOOLTIP}**: default tooltip class name `bb-tooltip`. + * - **{=CLASS_TOOLTIP_NAME}**: default tooltip data class name (ex. `bb-tooltip-name-data1`) + * - **{=TITLE}**: title value. + * - **{=COLOR}**: data color. + * - **{=NAME}**: data id value. + * - **{=VALUE}**: data value. + * @property {object} [tooltip.contents.text=undefined] Set additional text content within data loop, using template syntax. + * - **NOTE:** It should contain `{ key: Array, ... }` value + * - 'key' name is used as substitution within template as '{=KEY}' + * - The value array length should match with the data length + * @property {boolean} [tooltip.init.show=false] Show tooltip at the initialization. + * @property {number} [tooltip.init.x=0] Set x Axis index(or index for Arc(donut, gauge, pie) types) to be shown at the initialization. + * @property {object} [tooltip.init.position] Set the position of tooltip at the initialization. + * @property {Function} [tooltip.onshow] Set a callback that will be invoked before the tooltip is shown. + * @property {Function} [tooltip.onhide] Set a callback that will be invoked before the tooltip is hidden. + * @property {Function} [tooltip.onshown] Set a callback that will be invoked after the tooltip is shown + * @property {Function} [tooltip.onhidden] Set a callback that will be invoked after the tooltip is hidden. + * @property {string|Function|null} [tooltip.order=null] Set tooltip data display order.<br><br> + * **Available Values:** + * - `desc`: In descending data value order + * - `asc`: In ascending data value order + * - `null`: It keeps the data display order<br> + * **NOTE:** When `data.groups` is set, the order will follow as the stacked graph order.<br> + * If want to order as data bound, set any value rather than asc, desc or null. (ex. empty string "") + * - `function(data1, data2) { ... }`: [Array.sort compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters) + * @see [Demo: Hide Tooltip](https://naver.github.io/billboard.js/demo/#Tooltip.HideTooltip) + * @see [Demo: Tooltip Grouping](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipGrouping) + * @see [Demo: Tooltip Format](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipFormat) + * @see [Demo: Linked Tooltip](https://naver.github.io/billboard.js/demo/#Tooltip.LinkedTooltips) + * @see [Demo: Tooltip Position](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipPosition) + * @see [Demo: Tooltip Template](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipTemplate) + * @example + * tooltip: { + * show: true, + * doNotHide: true, + * grouped: false, + * format: { + * title: function(x) { return "Data " + x; }, + * name: function(name, ratio, id, index) { return name; }, + * + * // If data row contains multiple or ranged(ex. candlestick, area range, etc.) value, + * // formatter will be called as value length times. + * value: function(value, ratio, id, index) { return ratio; } + * }, + * position: function(data, width, height, element, pos) { + * // data: [{x, index, id, name, value}, ...] + * // width: Tooltip width + * // height: Tooltip height + * // element: Tooltip event bound element + * // pos: { + * // x: Current mouse event x position, + * // y: Current mouse event y position, + * // xAxis: Current x Axis position (the value is given for axis based chart type only) + * // yAxis: Current y Axis position value or function(the value is given for axis based chart type only) + * // } + * + * // yAxis will work differently per data lenghts + * // - a) Single data: `yAxis` will return `number` value + * // - b) Multiple data: `yAxis` will return a function with property value + * + * // a) Single data: + * // Get y coordinate + * pos.yAxis; // y axis coordinate value of current data point + * + * // b) Multiple data: + * // Get y coordinate of value 500, where 'data1' scales(y or y2). + * // When 'data.axes' option is used, data can bound to different axes. + * // - when "data.axes={data1: 'y'}", wil return y value from y axis scale. + * // - when "data.axes={data1: 'y2'}", wil return y value from y2 axis scale. + * pos.yAxis(500, "data1"); // will return y coordinate value of data1 + * + * pos.yAxis(500); // get y coordinate with value of 500, using y axis scale + * pos.yAxis(500, null, "y2"); // get y coordinate with value of 500, using y2 axis scale + * + * return { + * top: 0, + * left: 0 + * } + * }, + * + * contents: function(d, defaultTitleFormat, defaultValueFormat, color) { + * return ... // formatted html as you want + * }, + * + * // specify tooltip contents using template + * // - example of HTML returned: + * // <ul class="bb-tooltip"> + * // <li class="bb-tooltip-name-data1"><span>250</span><br><span style="color:#00c73c">data1</span></li> + * // <li class="bb-tooltip-name-data2"><span>50</span><br><span style="color:#fa7171">data2</span></li> + * // </ul> + * contents: { + * bindto: "#tooltip", + * template: '<ul class={=CLASS_TOOLTIP}>{{' + + * '<li class="{=CLASS_TOOLTIP_NAME}"><span>{=VALUE}</span><br>' + + * '<span style=color:{=COLOR}>{=NAME}</span></li>' + + * '}}</ul>' + * } + * + * // with additional text value + * // - example of HTML returned: + * // <ul class="bb-tooltip"> + * // <li class="bb-tooltip-name-data1"><span>250</span><br>comment1<span style="color:#00c73c">data1</span>text1</li> + * // <li class="bb-tooltip-name-data2"><span>50</span><br>comment2<span style="color:#fa7171">data2</span>text2</li> + * // </ul> + * contents: { + * bindto: "#tooltip", + * text: { + * // a) 'key' name is used as substitution within template as '{=KEY}' + * // b) the length should match with the data length + * VAR1: ["text1", "text2"], + * VAR2: ["comment1", "comment2"], + * }, + * template: '<ul class={=CLASS_TOOLTIP}>{{' + + * '<li class="{=CLASS_TOOLTIP_NAME}"><span>{=VALUE}</span>{=VAR2}<br>' + + * '<span style=color:{=COLOR}>{=NAME}</span>{=VAR1}</li>' + + * '}}</ul>' + * } + * + * // sort tooltip data value display in ascending order + * order: "asc", + * + * // specifying sort function + * order: function(a, b) { + * // param data passed format + * {x: 5, value: 250, id: "data1", index: 5, name: "data1"} + * ... + * }, + * + * // show at the initialization + * init: { + * show: true, + * x: 2, // x Axis index (or index for Arc(donut, gauge, pie) types) + * position: { + * top: "150px", // specify as number or as string with 'px' unit string + * left: 250 // specify as number or as string with 'px' unit string + * } + * }, + * + * // fires prior tooltip is shown + * onshow: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // fires prior tooltip is hidden + * onhide: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // fires after tooltip is shown + * onshown: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // fires after tooltip is hidden + * onhidden: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // Link any tooltips when multiple charts are on the screen where same x coordinates are available + * // Useful for timeseries correlation + * linked: true, + * + * // Specify name to interact those with the same name only. + * linked: { + * name: "some-group" + * } + * } + */ + tooltip_show: true, + tooltip_doNotHide: false, + tooltip_grouped: true, + tooltip_format_title: void 0, + tooltip_format_name: void 0, + tooltip_format_value: void 0, + tooltip_position: void 0, + tooltip_contents: {}, + tooltip_init_show: false, + tooltip_init_x: 0, + tooltip_init_position: void 0, + tooltip_linked: false, + tooltip_linked_name: "", + tooltip_onshow: () => { + }, + tooltip_onhide: () => { + }, + tooltip_onshown: () => { + }, + tooltip_onhidden: () => { + }, + tooltip_order: null +}); + +;// CONCATENATED MODULE: ./src/config/Options/data/data.ts +/* harmony default export */ var data = ({ + /** + * Specify the key of x values in the data.<br><br> + * We can show the data with non-index x values by this option. This option is required when the type of x axis is timeseries. If this option is set on category axis, the values of the data on the key will be used for category names. + * @name data․x + * @memberof Options + * @type {string} + * @default undefined + * @example + * data: { + * x: "date" + * } + */ + data_x: void 0, + /** + * Converts data id value + * @name data․idConverter + * @memberof Options + * @type {Function} + * @default function(id) { return id; } + * @example + * data: { + * idConverter: function(id) { + * // when id is 'data1', converts to be 'data2' + * // 'data2' should be given as the initial data value + * if (id === "data1") { + * return "data2"; + * } else { + * return id; + * } + * } + * } + */ + data_idConverter: (id) => id, + /** + * Set custom data name. + * If a name is set to `null`, the series is omitted from the legend. + * @name data․names + * @memberof Options + * @type {object} + * @default {} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataName) + * @example + * data: { + * names: { + * data1: "Data Name 1", + * data2: "Data Name 2" + * } + * } + */ + data_names: {}, + /** + * Set custom data class.<br><br> + * If this option is specified, the element g for the data has an additional class that has the prefix 'bb-target-' (eg. bb-target-additional-data1-class). + * @name data․classes + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * classes: { + * data1: "additional-data1-class", + * data2: "additional-data2-class" + * } + * } + */ + data_classes: {}, + /** + * Set chart type at once.<br><br> + * If this option is specified, the type will be applied to every data. This setting can be overwritten by data.types.<br><br> + * **Available Values:** + * - area + * - area-line-range + * - area-spline + * - area-spline-range + * - area-step + * - bar + * - bubble + * - candlestick + * - donut + * - funnel + * - gauge + * - line + * - pie + * - polar + * - radar + * - scatter + * - spline + * - step + * - treemap + * @name data․type + * @memberof Options + * @type {string} + * @default "line"<br>NOTE: When importing shapes by ESM, `line()` should be specified for type. + * @example + * data: { + * type: "bar" + * } + * @example + * // Generate chart by importing ESM + * // Import types to be used only, where this will make smaller bundle size. + * import bb, { + * area, + * areaLineRange, + * areaSpline, + * areaSplineRange, + * areaStep, + * bar, + * bubble, + * candlestick, + * donut, + * funnel, + * gauge, + * line, + * pie, + * polar, + * radar, + * scatter, + * spline, + * step, + * treemap + * } + * + * bb.generate({ + * ..., + * data: { + * type: bar() + * } + * }); + */ + data_type: void 0, + /** + * Set chart type for each data.<br> + * This setting overwrites data.type setting. + * - **NOTE:** `radar` and `treemap` type can't be combined with other types. + * @name data․types + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * types: { + * data1: "bar", + * data2: "spline" + * } + * } + * @example + * // Generate chart by importing ESM + * // Import types to be used only, where this will make smaller bundle size. + * import bb, { + * area, + * areaLineRange, + * areaSpline, + * areaSplineRange, + * areaStep, + * bar, + * bubble, + * candlestick, + * donut, + * funnel, + * gauge, + * line, + * pie, + * polar, + * radar, + * scatter, + * spline, + * step, + * treemap + * } + * + * bb.generate({ + * ..., + * data: { + * types: { + * data1: bar(), + * data1: spline() + * } + * } + * }); + */ + data_types: {}, + /** + * This option changes the order of stacking data and pieces of pie/donut. + * - If `null` specified, it will be the order the data loaded. + * - If function specified, it will be used as [Array.sort compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters)<br><br> + * + * **Available Values:** + * - `desc`: In descending order + * - `asc`: In ascending order + * - `null`: It keeps the data load order + * - `function(data1, data2) { ... }`: Array.sort compareFunction + * + * **NOTE**: order function, only works for Axis based types & Arc types, except `Radar` type. + * @name data․order + * @memberof Options + * @type {string|Function|null} + * @default desc + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataOrder) + * @example + * data: { + * // in descending order (default) + * order: "desc" + * + * // in ascending order + * order: "asc" + * + * // keeps data input order + * order: null + * + * // specifying sort function + * order: function(a, b) { + * // param data passed format + * // { + * // id: "data1", id_org: "data1", values: [ + * // {x: 5, value: 250, id: "data1", index: 5, name: "data1"}, + * // ... + * // ] + * // } + * + * const reducer = (p, c) => p + Math.abs(c.value); + * const aSum = a.values.reduce(reducer, 0); + * const bSum = b.values.reduce(reducer, 0); + * + * // ascending order + * return aSum - bSum; + * + * // descending order + * // return bSum - aSum; + * } + * } + */ + data_order: "desc", + /** + * Set groups for the data for stacking. + * @name data․groups + * @memberof Options + * @type {Array} + * @default [] + * @example + * data: { + * groups: [ + * ["data1", "data2"], + * ["data3"] + * ] + * } + */ + data_groups: [], + /** + * Set how zero value will be treated on groups.<br> + * Possible values: + * - `zero`: 0 will be positioned at absolute axis zero point. + * - `positive`: 0 will be positioned at the top of a stack. + * - `negative`: 0 will be positioned at the bottom of a stack. + * @name data․groupsZeroAs + * @memberof Options + * @type {string} + * @default "positive" + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.Groups) + * @example + * data: { + * groupsZeroAs: "zero" // "positive" or "negative" + * } + */ + data_groupsZeroAs: "positive", + /** + * Set color converter function.<br><br> + * This option should a function and the specified function receives color (e.g. '#ff0000') and d that has data parameters like id, value, index, etc. And it must return a string that represents color (e.g. '#00ff00'). + * @name data․color + * @memberof Options + * @type {Function} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataColor) + * @example + * data: { + * color: function(color, d) { ... } + * } + */ + data_color: void 0, + /** + * Set color for each data. + * @name data․colors + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * colors: { + * data1: "#ff0000", + * data2: function(d) { + * return "#000"; + * } + * ... + * } + * } + */ + data_colors: {}, + /** + * Set labels options + * @name data․labels + * @memberof Options + * @type {object} + * @property {object} data Data object + * @property {boolean} [data.labels=false] Show or hide labels on each data points + * @property {boolean} [data.labels.centered=false] Centerize labels on `bar` shape. (**NOTE:** works only for 'bar' type) + * @property {Function} [data.labels.format] Set formatter function for data labels.<br> + * The formatter function receives 4 arguments such as `v, id, i, texts` and it **must return a string** (`\n` character will be used as line break) that will be shown as the label.<br><br> + * The arguments are:<br> + * - `v` is the value of the data point where the label is shown. + * - `id` is the id of the data where the label is shown. + * - `i` is the index of the data series point where the label is shown. + * - `texts` is the array of whole corresponding data series' text labels.<br><br> + * Formatter function can be defined for each data by specifying as an object and D3 formatter function can be set (ex. d3.format('$')) + * @property {string|object} [data.labels.backgroundColors] Set label text background colors. + * @property {string|object|Function} [data.labels.colors] Set label text colors. + * @property {object|Function} [data.labels.position] Set each dataset position, relative the original.<br><br> + * When function is specified, will receives 5 arguments such as `type, v, id, i, texts` and it must return a position number.<br><br> + * The arguments are:<br> + * - `type` coordinate type string, which will be 'x' or 'y'. + * - `v` is the value of the data point where the label is shown. + * - `id` is the id of the data where the label is shown. + * - `i` is the index of the data series point where the label is shown. + * - `texts` is the array of whole corresponding data series' text labels.<br><br> + * @property {number} [data.labels.position.x=0] x coordinate position, relative the original. + * @property {number} [data.labels.position.y=0] y coordinate position, relative the original. + * @property {object} [data.labels.rotate] Rotate label text. Specify degree value in a range of `0 ~ 360`. + * - **NOTE:** Depend on rotate value, text position need to be adjusted manually(using `data.labels.position` option) to be shown nicely. + * @memberof Options + * @type {object} + * @default {} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataLabel) + * @see [Demo: label colors](https://naver.github.io/billboard.js/demo/#Data.DataLabelColors) + * @see [Demo: label format](https://naver.github.io/billboard.js/demo/#Data.DataLabelFormat) + * @see [Demo: label multiline](https://naver.github.io/billboard.js/demo/#Data.DataLabelMultiline) + * @see [Demo: label overlap](https://naver.github.io/billboard.js/demo/#Data.DataLabelOverlap) + * @see [Demo: label position](https://naver.github.io/billboard.js/demo/#Data.DataLabelPosition) + * @see [Demo: label rotate](https://naver.github.io/billboard.js/demo/#Data.DataLabelRotate) + * @example + * data: { + * labels: true, + * + * // or set specific options + * labels: { + * format: function(v, id, i, texts) { + * ... + * // to multiline, return with '\n' character + * return "Line1\nLine2"; + * }, + * + * // it's possible to set for each data + * format: { + * data1: function(v, id, i, texts) { ... }, + * ... + * }, + * + * // align text to center of the 'bar' shape (works only for 'bar' type) + * centered: true, + * + * // apply backgound color for label texts + * backgroundColors: "red", + * + * // set differenct backround colors per dataset + * backgroundColors: { + * data1: "green", + * data2: "yellow" + * } + * + * // apply for all label texts + * colors: "red", + * + * // set different colors per dataset + * // for not specified dataset, will have the default color value + * colors: { + * data1: "yellow", + * data3: "green" + * }, + * + * // call back for label text color + * colors: function(color, d) { + * // color: the default data label color string + * // data: ex) {x: 0, value: 200, id: "data3", index: 0} + * .... + * return d.value > 200 ? "cyan" : color; + * }, + * + * // return x, y coordinate position + * // apt to handle each text position manually + * position: function(type, v, id, i, texts) { + * ... + * return type == "x" ? 10 : 20; + * }, + * + * // set x, y coordinate position + * position: { + * x: -10, + * y: 10 + * }, + * + * // or set x, y coordinate position by each dataset + * position: { + * data1: {x: 5, y: 5}, + * data2: {x: 10, y: -20} + * }, + * + * // rotate degree for label text + * rotate: 90 + * } + * } + */ + data_labels: {}, + data_labels_backgroundColors: void 0, + data_labels_colors: void 0, + data_labels_position: {}, + /** + * Hide each data when the chart appears.<br><br> + * If true specified, all of data will be hidden. If multiple ids specified as an array, those will be hidden. + * @name data․hide + * @memberof Options + * @type {boolean|Array} + * @default false + * @example + * data: { + * // all of data will be hidden + * hide: true + * + * // specified data will be hidden + * hide: ["data1", ...] + * } + */ + data_hide: false, + /** + * Filter values to be shown + * The data value is the same as the returned by `.data()`. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter + * @name data․filter + * @memberof Options + * @type {Function} + * @default undefined + * @example + * data: { + * // filter for id value + * filter: function(v) { + * // v: [{id: "data1", id_org: "data1", values: [ + * // {x: 0, value: 130, id: "data2", index: 0}, ...] + * // }, ...] + * return v.id !== "data1"; + * } + */ + data_filter: void 0, + /** + * Set a callback for click event on each data point.<br><br> + * This callback will be called when each data point clicked and will receive `d` and element as the arguments. + * - `d` is the data clicked and element is the element clicked. + * - `element` is the current interacting svg element. + * - In this callback, `this` will be the Chart object. + * @name data․onclick + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onclick: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"} + * // element - <circle> + * ... + * } + * } + */ + data_onclick: () => { + }, + /** + * Set a callback for mouse/touch over event on each data point.<br><br> + * This callback will be called when mouse cursor or via touch moves onto each data point and will receive `d` and `element` as the argument. + * - `d` is the data where mouse cursor moves onto. + * - `element` is the current interacting svg element. + * - In this callback, `this` will be the Chart object. + * @name data․onover + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onover: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4} + * // element - <circle> + * ... + * } + * } + */ + data_onover: () => { + }, + /** + * Set a callback for mouse/touch out event on each data point.<br><br> + * This callback will be called when mouse cursor or via touch moves out each data point and will receive `d` as the argument. + * - `d` is the data where mouse cursor moves out. + * - `element` is the current interacting svg element. + * - In this callback, `this` will be the Chart object. + * @name data․onout + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onout: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4} + * // element - <circle> + * ... + * } + * } + */ + data_onout: () => { + }, + /** + * Set a callback for when data is shown.<br> + * The callback will receive shown data ids in array. + * @name data․onshown + * @memberof Options + * @type {Function} + * @default undefined + * @example + * data: { + * onshown: function(ids) { + * // ids - ["data1", "data2", ...] + * ... + * } + * } + */ + data_onshown: void 0, + /** + * Set a callback for when data is hidden.<br> + * The callback will receive hidden data ids in array. + * @name data․onhidden + * @memberof Options + * @type {Function} + * @default undefined + * @example + * data: { + * onhidden: function(ids) { + * // ids - ["data1", "data2", ...] + * ... + * } + * } + */ + data_onhidden: void 0, + /** + * Set a callback for minimum data + * - **NOTE:** For 'area-line-range' and 'area-spline-range', `mid` data will be taken for the comparison + * @name data․onmin + * @memberof Options + * @type {Function} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.OnMinMaxCallback) + * @example + * onmin: function(data) { + * // data - ex) [{x: 3, value: 400, id: "data1", index: 3}, ... ] + * ... + * } + */ + data_onmin: void 0, + /** + * Set a callback for maximum data + * - **NOTE:** For 'area-line-range' and 'area-spline-range', `mid` data will be taken for the comparison + * @name data․onmax + * @memberof Options + * @type {Function} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.OnMinMaxCallback) + * @example + * onmax: function(data) { + * // data - ex) [{x: 3, value: 400, id: "data1", index: 3}, ... ] + * ... + * } + */ + data_onmax: void 0, + /** + * Load a CSV or JSON file from a URL. NOTE that this will not work if loading via the "file://" protocol as the most browsers will block XMLHTTPRequests. + * @name data․url + * @memberof Options + * @type {string} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.LoadData) + * @example + * data: { + * url: "/data/test.csv" + * } + */ + data_url: void 0, + /** + * XHR header value + * - **NOTE:** Should be used with `data.url` option + * @name data․headers + * @memberof Options + * @type {string} + * @default undefined + * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader + * @example + * data: { + * url: "/data/test.csv", + * headers: { + * "Content-Type": "text/xml", + * ... + * } + * } + */ + data_headers: void 0, + /** + * Parse a JSON object for data. See also data.keys. + * @name data․json + * @memberof Options + * @type {Array} + * @default undefined + * @see [data․keys](#.data%25E2%2580%25A4keys) + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.JSONData) + * @example + * data: { + * json: [ + * {name: "www.site1.com", upload: 200, download: 200, total: 400}, + * {name: "www.site2.com", upload: 100, download: 300, total: 400}, + * {name: "www.site3.com", upload: 300, download: 200, total: 500}, + * {name: "www.site4.com", upload: 400, download: 100, total: 500} + * ], + * keys: { + * // case 1: specify 'x' key for category axis + * x: "name", // 'name' key will be used as category x axis values + * value: ["upload", "download"] + * + * // case 2: without 'x' key for non-category axis + * value: ["upload", "download"] + * } + * } + */ + data_json: void 0, + /** + * Load data from a multidimensional array, with the first element containing the data names, the following containing related data in that order. + * @name data․rows + * @memberof Options + * @type {Array} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.RowOrientedData) + * @example + * data: { + * rows: [ + * ["A", "B", "C"], + * [90, 120, 300], + * [40, 160, 240], + * [50, 200, 290], + * [120, 160, 230], + * [80, 130, 300], + * [90, 220, 320] + * ] + * } + * + * // for 'bar' type, data can contain: + * // - an array of [start, end] data following the order + * data: { + * rows: [ + * ["data1", "data2"], + * [[100, 150], 120], + * [[200, 300], 55], + * [[-400, 500], 60] + * ], + * type: "bar" + * } + * + * // for 'range' types('area-line-range' or 'area-spline-range'), data should contain: + * // - an array of [high, mid, low] data following the order + * // - or an object with 'high', 'mid' and 'low' key value + * data: { + * rows: [ + * ["data1", "data2"], + * [ + * // or {high:150, mid: 140, low: 110}, 120 + * [150, 140, 110], 120 + * ], + * [[155, 130, 115], 55], + * [[160, 135, 120], 60] + * ], + * types: { + * data1: "area-line-range", + * data2: "line" + * } + * } + * + * // for 'bubble' type, data can contain dimension value: + * // - an array of [y, z] data following the order + * // - or an object with 'y' and 'z' key value + * // 'y' is for y axis coordination and 'z' is the bubble radius value + * data: { + * rows: [ + * ["data1", "data2"], + * [ + * // or {y:10, z: 140}, 120 + * [10, 140], 120 + * ], + * [[100, 30], 55], + * [[50, 100], 60] + * ], + * types: { + * data1: "bubble", + * data2: "line" + * } + * } + * + * // for 'canlestick' type, data should contain: + * // - an array of [open, high, low, close, volume(optional)] data following the order + * // - or an object with 'open', 'high', 'low', 'close' and 'value'(optional) key value + * data: { + * rows: [ + * ["data1", "data2"], + * [ + * // open, high, low, close, volume (optional) + * {open: 1300, high: 1369, low: 1200, close: 1339, volume: 100}, + * [1000, 1100, 850, 870] + * ], + * [ + * {open: 1348, high: 1371, low: 1271, close: 1320}, + * [870, 1250, 830, 1200, 50] + * ] + * ], + * type: "candlestick" + * } + */ + data_rows: void 0, + /** + * Load data from a multidimensional array, with each element containing an array consisting of a datum name and associated data values. + * @name data․columns + * @memberof Options + * @type {Array} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.ColumnOrientedData) + * @example + * data: { + * columns: [ + * ["data1", 30, 20, 50, 40, 60, 50], + * ["data2", 200, 130, 90, 240, 130, 220], + * ["data3", 300, 200, 160, 400, 250, 250] + * ] + * } + * + * // for 'bar' type, data can contain: + * // - an array of [start, end] data following the order + * data: { + * columns: [ + * ["data1", -100, 50, [100, 200], [200, 300]], + * ["data2", -200, 300, [-100, 100], [-50, -30]], + * ], + * type: "bar" + * } + * + * // for 'range' types('area-line-range' or 'area-spline-range'), data should contain: + * // - an array of [high, mid, low] data following the order + * // - or an object with 'high', 'mid' and 'low' key value + * data: { + * columns: [ + * ["data1", + * [150, 140, 110], // or {high:150, mid: 140, low: 110} + * [150, 140, 110], + * [150, 140, 110] + * ] + * ], + * type: "area-line-range" + * } + * + * // for 'bubble' type, data can contain dimension value: + * // - an array of [y, z] data following the order + * // - or an object with 'y' and 'z' key value + * // 'y' is for y axis coordination and 'z' is the bubble radius value + * data: { + * columns: [ + * ["data1", + * [10, 140], // or {y:10, z: 140} + * [100, 30], + * [50, 100] + * ] + * ], + * type: "bubble" + * } + * + * // for 'canlestick' type, data should contain: + * // - an array of [open, high, low, close, volume(optional)] data following the order + * // - or an object with 'open', 'high', 'low', 'close' and 'value'(optional) key value + * data: { + * columns: [ + * ["data1", + * [1000, 1100, 850, 870, 100], // or {open:1000, high: 1100, low: 870, volume: 100} + * [870, 1250, 830, 1200] // 'volume' can be omitted + * ] + * ], + * type: "candlestick" + * } + */ + data_columns: void 0, + /** + * Used if loading JSON via data.url. + * - **Available Values:** + * - json + * - csv + * - tsv + * @name data․mimeType + * @memberof Options + * @type {string} + * @default csv + * @example + * data: { + * mimeType: "json" + * } + */ + data_mimeType: "csv", + /** + * Choose which JSON object keys correspond to desired data. + * - **NOTE:** Only for JSON object given as array. + * @name data․keys + * @memberof Options + * @type {string} + * @default undefined + * @example + * data: { + * json: [ + * {name: "www.site1.com", upload: 200, download: 200, total: 400}, + * {name: "www.site2.com", upload: 100, download: 300, total: 400}, + * {name: "www.site3.com", upload: 300, download: 200, total: 500}, + * {name: "www.site4.com", upload: 400, download: 100, total: 500} + * ], + * keys: { + * // case 1: specify 'x' key for category axis + * x: "name", // 'name' key will be used as category x axis values + * value: ["upload", "download"] + * + * // case 2: without 'x' key for non-category axis + * value: ["upload", "download"] + * } + * } + */ + data_keys: void 0, + /** + * Set text label to be displayed when there's no data to show. + * - ex. Toggling all visible data to not be shown, unloading all current data, etc. + * @name data․empty․label․text + * @memberof Options + * @type {string} + * @default "" + * @example + * data: { + * empty: { + * label: { + * text: "No Data" + * } + * } + * } + */ + data_empty_label_text: "" +}); + +;// CONCATENATED MODULE: ./src/config/Options/interaction/interaction.ts +/* harmony default export */ var interaction = ({ + /** + * Interaction options + * @name interaction + * @memberof Options + * @type {object} + * @property {object} interaction Intersection object + * @property {boolean} [interaction.enabled=true] Indicate if the chart should have interactions.<br> + * If `false` is set, all of interactions (showing/hiding tooltip, selection, mouse events, etc) will be disabled. + * @property {boolean} [interaction.brighten=true] Make brighter for the selected area (ex. 'pie' type data selected area) + * @property {boolean} [interaction.inputType.mouse=true] enable or disable mouse interaction + * @property {boolean} [interaction.inputType.touch=true] enable or disable touch interaction + * @property {boolean|number} [interaction.inputType.touch.preventDefault=false] enable or disable to call event.preventDefault on touchstart & touchmove event. It's usually used to prevent document scrolling. + * @see [Demo: touch.preventDefault](https://naver.github.io/billboard.js/demo/#Interaction.PreventScrollOnTouch) + * @example + * interaction: { + * enabled: false, + * brighten: false, + * inputType: { + * mouse: true, + * touch: false + * + * // or declare preventDefault explicitly. + * // In this case touch inputType is enabled by default + * touch: { + * preventDefault: true + * + * // or threshold pixel value (pixel moved from touchstart to touchmove) + * preventDefault: 5 + * } + * } + * } + */ + interaction_enabled: true, + interaction_brighten: true, + interaction_inputType_mouse: true, + interaction_inputType_touch: {} +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-brush","commonjs2":"d3-brush","amd":"d3-brush","root":"d3"} +var external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_ = __webpack_require__(4); +;// CONCATENATED MODULE: ./src/module/browser.ts +function getGlobal() { + return typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && globalThis || typeof global === "object" && global !== null && global.Object === Object && global || typeof self === "object" && self !== null && self.Object === Object && self || Function("return this")(); +} +function getFallback(w) { + const hasRAF = typeof (w == null ? void 0 : w.requestAnimationFrame) === "function" && typeof (w == null ? void 0 : w.cancelAnimationFrame) === "function"; + const hasRIC = typeof (w == null ? void 0 : w.requestIdleCallback) === "function" && typeof (w == null ? void 0 : w.cancelIdleCallback) === "function"; + const request = (cb) => setTimeout(cb, 1); + const cancel = (id) => clearTimeout(id); + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +const win = getGlobal(); +const browser_doc = win == null ? void 0 : win.document; +const [ + requestAnimationFrame, + cancelAnimationFrame, + requestIdleCallback, + cancelIdleCallback +] = getFallback(win); + + +;// CONCATENATED MODULE: ./src/module/util.ts +var util_defProp = Object.defineProperty; +var util_getOwnPropSymbols = Object.getOwnPropertySymbols; +var util_hasOwnProp = Object.prototype.hasOwnProperty; +var util_propIsEnum = Object.prototype.propertyIsEnumerable; +var util_defNormalProp = (obj, key, value) => key in obj ? util_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var util_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (util_hasOwnProp.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + if (util_getOwnPropSymbols) + for (var prop of util_getOwnPropSymbols(b)) { + if (util_propIsEnum.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + + +const isValue = (v) => v || v === 0; +const isFunction = (v) => typeof v === "function"; +const isString = (v) => typeof v === "string"; +const isNumber = (v) => typeof v === "number"; +const isUndefined = (v) => typeof v === "undefined"; +const isDefined = (v) => typeof v !== "undefined"; +const isBoolean = (v) => typeof v === "boolean"; +const ceil10 = (v) => Math.ceil(v / 10) * 10; +const asHalfPixel = (n) => Math.ceil(n) + 0.5; +const diffDomain = (d) => d[1] - d[0]; +const isObjectType = (v) => typeof v === "object"; +const isEmpty = (o) => isUndefined(o) || o === null || isString(o) && o.length === 0 || isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0 || isNumber(o) && isNaN(o); +const notEmpty = (o) => !isEmpty(o); +const isArray = (arr) => Array.isArray(arr); +const isObject = (obj) => obj && !(obj == null ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +function hasValue(dict, value) { + let found = false; + Object.keys(dict).forEach((key) => dict[key] === value && (found = true)); + return found; +} +function callFn(fn, thisArg, ...args) { + const isFn = isFunction(fn); + isFn && fn.call(thisArg, ...args); + return isFn; +} +function endall(transition, cb) { + let n = 0; + const end = function(...args) { + !--n && cb.apply(this, ...args); + }; + if ("duration" in transition) { + transition.each(() => ++n).on("end", end); + } else { + ++n; + transition.call(end); + } +} +function sanitize(str) { + return isString(str) ? str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : str; +} +function setTextValue(node, text, dy = [-1, 1], toMiddle = false) { + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } else { + const diff = [node.text(), text].map((v) => v.replace(/[\s\n]/g, "")); + if (diff[0] !== diff[1]) { + const multiline = text.split("\n"); + const len = toMiddle ? multiline.length - 1 : 1; + node.html(""); + multiline.forEach((v, i) => { + node.append("tspan").attr("x", 0).attr("dy", `${i === 0 ? dy[0] * len : dy[1]}em`).text(v); + }); + } + } +} +function getRectSegList(path) { + const { x, y, width, height } = path.getBBox(); + return [ + { x, y: y + height }, + // seg0 + { x, y }, + // seg1 + { x: x + width, y }, + // seg2 + { x: x + width, y: y + height } + // seg3 + ]; +} +function getPathBox(path) { + const { width, height } = path.getBoundingClientRect(); + const items = getRectSegList(path); + const x = items[0].x; + const y = Math.min(items[0].y, items[1].y); + return { + x, + y, + width, + height + }; +} +function getPointer(event, element) { + var _a; + const touches = event && ((_a = event.touches || event.sourceEvent && event.sourceEvent.touches) == null ? void 0 : _a[0]); + let pointer = [0, 0]; + try { + pointer = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.pointer)(touches || event, element); + } catch (e) { + } + return pointer.map((v) => isNaN(v) ? 0 : v); +} +function getBrushSelection(ctx) { + const { event, $el } = ctx; + const main = $el.subchart.main || $el.main; + let selection; + if (event && event.type === "brush") { + selection = event.selection; + } else if (main && (selection = main.select(".bb-brush").node())) { + selection = (0,external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_.brushSelection)(selection); + } + return selection; +} +function getBoundingRect(node) { + const needEvaluate = !("rect" in node) || "rect" in node && node.hasAttribute("width") && node.rect.width !== +node.getAttribute("width"); + return needEvaluate ? node.rect = node.getBoundingClientRect() : node.rect; +} +function getRandom(asStr = true, min = 0, max = 1e4) { + const crpt = win.crypto || win.msCrypto; + const rand = crpt ? min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + const mid = Math.floor((start + end) / 2); + let { x, w = 0 } = arr[mid]; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? findIndex(arr, v, start, mid - 1, isRotated) : findIndex(arr, v, mid + 1, end, isRotated); +} +function brushEmpty(ctx) { + const selection = getBrushSelection(ctx); + if (selection) { + return selection[0] === selection[1]; + } + return true; +} +function deepClone(...objectN) { + const clone = (v) => { + if (isObject(v) && v.constructor) { + const r = new v.constructor(); + for (const k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map((v) => clone(v)).reduce((a, c) => util_spreadValues(util_spreadValues({}, a), c)); +} +function extend(target = {}, source) { + if (isArray(source)) { + source.forEach((v) => extend(target, v)); + } + for (const p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); +function camelize(str, separator = "-") { + return str.split(separator).map((v, i) => i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()).join(""); +} +const toArray = (v) => [].slice.call(v); +function addCssRules(style, selector, prop) { + const { rootSelector = "", sheet } = style; + const getSelector = (s) => s.replace(/\s?(bb-)/g, ".$1").replace(/\.+/g, "."); + const rule = `${rootSelector} ${getSelector(selector)} {${prop.join(";")}}`; + return sheet[sheet.insertRule ? "insertRule" : "addRule"]( + rule, + sheet.cssRules.length + ); +} +function getCssRules(styleSheets) { + let rules = []; + styleSheets.forEach((sheet) => { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } catch (e) { + (_a = win.console) == null ? void 0 : _a.warn(`Error while reading rules from ${sheet.href}: ${e.toString()}`); + } + }); + return rules; +} +function getScrollPosition(node) { + var _a, _b, _c, _d; + return { + x: ((_b = (_a = win.pageXOffset) != null ? _a : win.scrollX) != null ? _b : 0) + node.scrollLeft, + y: ((_d = (_c = win.pageYOffset) != null ? _c : win.scrollY) != null ? _d : 0) + node.scrollTop + }; +} +function getTranslation(node) { + const transform = node ? node.transform : null; + const baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? baseVal.getItem(0).matrix : { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +function getUnique(data) { + const isDate = data[0] instanceof Date; + const d = (isDate ? data.map(Number) : data).filter((v, i, self) => self.indexOf(v) === i); + return isDate ? d.map((v) => new Date(v)) : d; +} +function mergeArray(arr) { + return arr && arr.length ? arr.reduce((p, c) => p.concat(c)) : []; +} +function mergeObj(target, ...objectN) { + if (!objectN.length || objectN.length === 1 && !objectN[0]) { + return target; + } + const source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach((key) => { + const value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj(target, ...objectN); +} +function sortValue(data, isAsc = true) { + let fn; + if (data[0] instanceof Date) { + fn = isAsc ? (a, b) => a - b : (a, b) => b - a; + } else { + if (isAsc && !data.every(isNaN)) { + fn = (a, b) => a - b; + } else if (!isAsc) { + fn = (a, b) => a > b && -1 || a < b && 1 || a === b && 0; + } + } + return data.concat().sort(fn); +} +function getMinMax(type, data) { + let res = data.filter((v) => notEmpty(v)); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type](...res); + } else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } else { + res = void 0; + } + return res; +} +const getRange = (start, end, step = 1) => { + const res = []; + const n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (let i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +const emulateEvent = { + mouse: (() => { + const getParams = () => ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); + try { + new MouseEvent("t"); + return (el, eventType, params = getParams()) => { + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } catch (e) { + return (el, eventType, params = getParams()) => { + const mouseEvent = browser_doc.createEvent("MouseEvent"); + mouseEvent.initMouseEvent( + eventType, + params.bubbles, + params.cancelable, + win, + 0, + // the event's mouse click count + params.screenX, + params.screenY, + params.clientX, + params.clientY, + false, + false, + false, + false, + 0, + null + ); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: (el, eventType, params) => { + const touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +function tplProcess(tpl, data) { + let res = tpl; + for (const x in data) { + res = res.replace(new RegExp(`{=${x}}`, "g"), data[x]); + } + return res; +} +function parseDate(date) { + var _a; + let parsedDate; + if (date instanceof Date) { + parsedDate = date; + } else if (isString(date)) { + const { config, format } = this; + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) != null ? _a : new Date(date); + } else if (isNumber(date) && !isNaN(date)) { + parsedDate = /* @__PURE__ */ new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && console.error(`Failed to parse x '${date}' to Date object`); + } + return parsedDate; +} +function isTabVisible() { + var _a, _b; + return ((_a = browser_doc) == null ? void 0 : _a.hidden) === false || ((_b = browser_doc) == null ? void 0 : _b.visibilityState) === "visible"; +} +function convertInputType(mouse, touch) { + const { DocumentTouch, matchMedia, navigator } = win; + let hasTouch = false; + if (touch) { + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + } else if ("ontouchmove" in win || DocumentTouch && browser_doc instanceof DocumentTouch) { + hasTouch = true; + } else { + if (matchMedia == null ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } else { + const UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + const hasMouse = mouse && ((matchMedia == null ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia == null ? void 0 : matchMedia("any-pointer:fine").matches)); + return hasMouse && "mouse" || hasTouch && "touch" || "mouse"; +} +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(() => runUntil(fn, conditionFn)); + } else { + fn(); + } +} + +;// CONCATENATED MODULE: ./src/config/Options/Options.ts +var Options_defProp = Object.defineProperty; +var Options_getOwnPropSymbols = Object.getOwnPropertySymbols; +var Options_hasOwnProp = Object.prototype.hasOwnProperty; +var Options_propIsEnum = Object.prototype.propertyIsEnumerable; +var Options_defNormalProp = (obj, key, value) => key in obj ? Options_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var Options_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (Options_hasOwnProp.call(b, prop)) + Options_defNormalProp(a, prop, b[prop]); + if (Options_getOwnPropSymbols) + for (var prop of Options_getOwnPropSymbols(b)) { + if (Options_propIsEnum.call(b, prop)) + Options_defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __publicField = (obj, key, value) => { + Options_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + + + + + +const _Options = class _Options { + static setOptions(options) { + this.data = options.reduce((a, c) => Options_spreadValues(Options_spreadValues({}, a), c), this.data); + } + constructor() { + return deepClone( + main, + boost, + data, + color, + interaction, + legend, + title, + tooltip, + _Options.data + ); + } +}; +__publicField(_Options, "data", {}); +let Options = _Options; + + +;// CONCATENATED MODULE: ./src/config/Store/Element.ts +class Element { + constructor() { + const element = { + chart: null, + main: null, + svg: null, + axis: { + // axes + x: null, + y: null, + y2: null, + subX: null + }, + axisTooltip: { + x: null, + y: null, + y2: null + }, + defs: null, + tooltip: null, + legend: null, + title: null, + subchart: { + main: null, + // $$.context + bar: null, + // $$.contextBar + line: null, + // $$.contextLine + area: null + // $$.contextArea + }, + arcs: null, + bar: null, + // mainBar, + candlestick: null, + line: null, + // mainLine, + area: null, + // mainArea, + circle: null, + // mainCircle, + radar: null, + text: null, + // mainText, + grid: { + main: null, + // grid (also focus) + x: null, + // xgrid, + y: null + // ygrid, + }, + gridLines: { + main: null, + // gridLines + x: null, + // xgridLines, + y: null + // ygridLines + }, + region: { + main: null, + // region + list: null + // mainRegion + }, + eventRect: null, + zoomResetBtn: null + // drag zoom reset button + }; + return element; + } +} + +;// CONCATENATED MODULE: ./src/config/Store/State.ts +class State { + constructor() { + return { + // chart drawn area dimension, excluding axes + width: 0, + width2: 0, + height: 0, + height2: 0, + margin: { + top: 0, + bottom: 0, + left: 0, + right: 0 + }, + margin2: { + top: 0, + bottom: 0, + left: 0, + right: 0 + }, + margin3: { + top: 0, + bottom: 0, + left: 0, + right: 0 + }, + arcWidth: 0, + arcHeight: 0, + xAxisHeight: 0, + hasAxis: false, + hasFunnel: false, + hasRadar: false, + hasTreemap: false, + // for data CSS rule index (used when boost.useCssRule is true) + cssRule: {}, + current: { + // current domain value. Assigned when is zoom is called + domain: void 0, + // chart whole dimension + width: 0, + height: 0, + dataMax: 0, + maxTickSize: { + x: { + width: 0, + height: 0, + ticks: [], + clipPath: 0, + domain: "" + }, + y: { width: 0, height: 0, domain: "" }, + y2: { width: 0, height: 0, domain: "" } + }, + // current used chart type list + types: [], + needle: void 0 + // arc needle current value + }, + // legend + isLegendRight: false, + isLegendInset: false, + isLegendTop: false, + isLegendLeft: false, + legendStep: 0, + legendItemWidth: 0, + legendItemHeight: 0, + legendHasRendered: false, + eventReceiver: { + currentIdx: -1, + // current event interaction index + rect: {}, + // event rect's clientBoundingRect + data: [], + // event data bound of previoous eventRect + coords: [] + // coordination value of previous eventRect + }, + axis: { + x: { + padding: { left: 0, right: 0 }, + tickCount: 0 + } + }, + rotatedPadding: { + left: 30, + right: 0, + top: 5 + }, + withoutFadeIn: {}, + inputType: "", + datetimeId: "", + // clip id string + clip: { + id: "", + idXAxis: "", + idYAxis: "", + idXAxisTickTexts: "", + idGrid: "", + idSubchart: "", + // clipIdForSubchart + path: "", + pathXAxis: "", + pathYAxis: "", + pathXAxisTickTexts: "", + pathGrid: "" + }, + // state + event: null, + // event object + dragStart: null, + dragging: false, + flowing: false, + cancelClick: false, + mouseover: false, + rendered: false, + transiting: false, + redrawing: false, + // if redraw() is on process + resizing: false, + // resize event called + toggling: false, + // legend toggle + zooming: false, + hasNegativeValue: false, + hasPositiveValue: true, + orgAreaOpacity: "0.2", + orgConfig: {}, + // user original genration config + // ID strings + hiddenTargetIds: [], + hiddenLegendIds: [], + focusedTargetIds: [], + defocusedTargetIds: [], + // value for Arc + radius: 0, + innerRadius: 0, + outerRadius: void 0, + innerRadiusRatio: 0, + gaugeArcWidth: 0, + radiusExpanded: 0, + // xgrid attribute + xgridAttr: { + x1: null, + x2: null, + y1: null, + y2: null + } + }; + } +} + +;// CONCATENATED MODULE: ./src/config/Store/Store.ts + + +const Store_classes = { + element: Element, + state: State +}; +class Store { + constructor() { + Object.keys(Store_classes).forEach((v) => { + this[v] = new Store_classes[v](); + }); + } + getStore(name) { + return this[name]; + } +} + +;// CONCATENATED MODULE: ./src/module/Cache.ts +var Cache_defProp = Object.defineProperty; +var Cache_defNormalProp = (obj, key, value) => key in obj ? Cache_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var Cache_publicField = (obj, key, value) => { + Cache_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + +const KEY = { + bubbleBaseLength: "$baseLength", + colorPattern: "__colorPattern__", + dataMinMax: "$dataMinMax", + dataTotalSum: "$dataTotalSum", + dataTotalPerIndex: "$totalPerIndex", + legendItemTextBox: "legendItemTextBox", + radarPoints: "$radarPoints", + radarTextWidth: "$radarTextWidth", + setOverOut: "setOverOut", + callOverOutForTouch: "callOverOutForTouch", + textRect: "textRect" +}; +class Cache { + constructor() { + Cache_publicField(this, "cache", {}); + } + /** + * Add cache + * @param {string} key Cache key + * @param {*} value Value to be stored + * @param {boolean} isDataType Weather the cache is data typed '{id:'data', id_org: 'data', values: [{x:0, index:0,...}, ...]}' + * @returns {*} Added data value + * @private + */ + add(key, value, isDataType = false) { + this.cache[key] = isDataType ? this.cloneTarget(value) : value; + return this.cache[key]; + } + /** + * Remove cache + * @param {string|Array} key Cache key + * @private + */ + remove(key) { + (isString(key) ? [key] : key).forEach((v) => delete this.cache[v]); + } + /** + * Get cahce + * @param {string|Array} key Cache key + * @param {boolean} isDataType Weather the cache is data typed '{id:'data', id_org: 'data', values: [{x:0, index:0,...}, ...]}' + * @returns {*} + * @private + */ + get(key, isDataType = false) { + if (isDataType && Array.isArray(key)) { + const targets = []; + for (let i = 0, id; id = key[i]; i++) { + if (id in this.cache) { + targets.push(this.cloneTarget(this.cache[id])); + } + } + return targets; + } else { + const value = this.cache[key]; + return isValue(value) ? value : null; + } + } + /** + * Reset cached data + * @param {boolean} all true: reset all data, false: reset only '$' prefixed key data + * @private + */ + reset(all) { + const $$ = this; + for (const x in $$.cache) { + if (all || /^\$/.test(x)) { + $$.cache[x] = null; + } + } + } + /** + * Clone data target object + * @param {object} target Data object + * @returns {object} + * @private + */ + cloneTarget(target) { + return { + id: target.id, + id_org: target.id_org, + values: target.values.map((d) => ({ x: d.x, value: d.value, id: d.id })) + }; + } +} + +;// CONCATENATED MODULE: ./src/config/const.ts +const TYPE = { + AREA: "area", + AREA_LINE_RANGE: "area-line-range", + AREA_SPLINE: "area-spline", + AREA_SPLINE_RANGE: "area-spline-range", + AREA_STEP: "area-step", + BAR: "bar", + BUBBLE: "bubble", + CANDLESTICK: "candlestick", + DONUT: "donut", + FUNNEL: "funnel", + GAUGE: "gauge", + LINE: "line", + PIE: "pie", + POLAR: "polar", + RADAR: "radar", + SCATTER: "scatter", + SPLINE: "spline", + STEP: "step", + TREEMAP: "treemap" +}; +const TYPE_METHOD_NEEDED = { + AREA: "initArea", + AREA_LINE_RANGE: "initArea", + AREA_SPLINE: "initArea", + AREA_SPLINE_RANGE: "initArea", + AREA_STEP: "initArea", + BAR: "initBar", + BUBBLE: "initCircle", + CANDLESTICK: "initCandlestick", + DONUT: "initArc", + FUNNEL: "initFunnel", + GAUGE: "initArc", + LINE: "initLine", + PIE: "initArc", + POLAR: "initPolar", + RADAR: "initCircle", + SCATTER: "initCircle", + SPLINE: "initLine", + STEP: "initLine", + TREEMAP: "initTreemap" +}; +const TYPE_BY_CATEGORY = { + Area: [ + TYPE.AREA, + TYPE.AREA_SPLINE, + TYPE.AREA_SPLINE_RANGE, + TYPE.AREA_LINE_RANGE, + TYPE.AREA_STEP + ], + AreaRange: [ + TYPE.AREA_SPLINE_RANGE, + TYPE.AREA_LINE_RANGE + ], + Arc: [ + TYPE.PIE, + TYPE.DONUT, + TYPE.GAUGE, + TYPE.POLAR, + TYPE.RADAR + ], + Line: [ + TYPE.LINE, + TYPE.SPLINE, + TYPE.AREA, + TYPE.AREA_SPLINE, + TYPE.AREA_SPLINE_RANGE, + TYPE.AREA_LINE_RANGE, + TYPE.STEP, + TYPE.AREA_STEP + ], + Step: [ + TYPE.STEP, + TYPE.AREA_STEP + ], + Spline: [ + TYPE.SPLINE, + TYPE.AREA_SPLINE, + TYPE.AREA_SPLINE_RANGE + ] +}; + +;// CONCATENATED MODULE: ./src/module/error.ts + + + + +function checkModuleImport(ctx) { + const $$ = ctx; + const { config } = $$; + let type = ""; + if (isEmpty(config.data_type || config.data_types) && !$$[TYPE_METHOD_NEEDED.LINE]) { + type = "line"; + } else { + for (const x in TYPE_METHOD_NEEDED) { + const t = TYPE[x]; + if ($$.hasType(t) && !$$[TYPE_METHOD_NEEDED[x]]) { + type = t; + break; + } + } + } + type && logError( + `Please, make sure if %c${camelize(type)}`, + "module has been imported and specified correctly." + ); +} +function logError(head, tail) { + var _a; + const prefix = "[billboard.js]"; + const info = "https://github.com/naver/billboard.js/wiki/CHANGELOG-v2#modularization-by-its-functionality"; + const hasConsole = (_a = win.console) == null ? void 0 : _a.error; + if (hasConsole) { + console.error( + `\u274C ${prefix} ${head}`, + "background:red;color:white;display:block;font-size:15px", + tail + ); + console.info("%c\u2139\uFE0F", "font-size:15px", info); + } + throw Error(`${prefix} ${head.replace(/\%c([a-z-]+)/i, "'$1' ")} ${tail}`); +} + +;// CONCATENATED MODULE: ./src/module/generator.ts + + +const { setTimeout: generator_setTimeout, clearTimeout: generator_clearTimeout } = win; +function generateResize(option) { + const fn = []; + let timeout; + const callResizeFn = function() { + callResizeFn.clear(); + if (option === false) { + requestIdleCallback(() => { + fn.forEach((f) => f()); + }, { timeout: 200 }); + } else { + timeout = generator_setTimeout(() => { + fn.forEach((f) => f()); + }, isNumber(option) ? option : 200); + } + }; + callResizeFn.clear = () => { + if (timeout) { + generator_clearTimeout(timeout); + timeout = null; + } + }; + callResizeFn.add = (f) => fn.push(f); + callResizeFn.remove = (f) => fn.splice(fn.indexOf(f), 1); + return callResizeFn; +} +function generateWait() { + let transitionsToWait = []; + const f = function(selection, callback) { + function loop() { + var _a; + let done = 0; + for (let i = 0, t; t = transitionsToWait[i]; i++) { + if (t === true || ((_a = t.empty) == null ? void 0 : _a.call(t))) { + done++; + continue; + } + if (isTabVisible() === false) { + done = transitionsToWait.length; + break; + } + try { + t.transition(); + } catch (e) { + done++; + } + } + return done === transitionsToWait.length; + } + runUntil(() => { + callback == null ? void 0 : callback(); + }, loop); + }; + f.add = function(t) { + isArray(t) ? transitionsToWait = transitionsToWait.concat(t) : transitionsToWait.push(t); + }; + return f; +} + +;// CONCATENATED MODULE: ./src/module/worker.ts + +const blob = {}; +function getObjectURL(fn, depsFn) { + var _a; + const fnString = fn.toString(); + const key = fnString.replace(/(function|[\s\W\n])/g, "").substring(0, 15); + if (!(key in blob)) { + blob[key] = new win.Blob([ + `${(_a = depsFn == null ? void 0 : depsFn.map(String).join(";")) != null ? _a : ""} + + self.onmessage=function({data}) { + const result = (${fnString}).apply(null, data); + self.postMessage(result); + };` + ], { + type: "text/javascript" + }); + } + return win.URL.createObjectURL(blob[key]); +} +function getWorker(src) { + const worker = new win.Worker(src); + worker.onerror = function(e) { + console.error ? console.error(e) : console.log(e); + }; + return worker; +} +function runWorker(useWorker = true, fn, callback, depsFn) { + let runFn = function(...args) { + const res = fn(...args); + callback(res); + }; + if (win.Worker && useWorker) { + const src = getObjectURL(fn, depsFn); + const worker = getWorker(src); + runFn = function(...args) { + worker.postMessage(args); + worker.onmessage = function(e) { + win.URL.revokeObjectURL(src); + return callback(e.data); + }; + }; + } + return runFn; +} + +// EXTERNAL MODULE: external {"commonjs":"d3-dsv","commonjs2":"d3-dsv","amd":"d3-dsv","root":"d3"} +var external_commonjs_d3_dsv_commonjs2_d3_dsv_amd_d3_dsv_root_d3_ = __webpack_require__(5); +;// CONCATENATED MODULE: ./src/ChartInternal/data/convert.helper.ts + + +function columns(columns2) { + const newRows = []; + columns2.forEach(function(col, i) { + const key = col[0]; + col.forEach(function(v, j) { + if (j > 0) { + if (typeof newRows[j - 1] === "undefined") { + newRows[j - 1] = {}; + } + if (typeof v === "undefined") { + throw new Error(`Source data is missing a component at (${i}, ${j})!`); + } + newRows[j - 1][key] = v; + } + }); + }); + return newRows; +} +function rows(rows2) { + const keys = rows2[0]; + const newRows = []; + rows2.forEach(function(row, i) { + if (i > 0) { + const newRow = {}; + row.forEach(function(v, j) { + if (typeof v === "undefined") { + throw new Error(`Source data is missing a component at (${i}, ${j})!`); + } + newRow[keys[j]] = v; + }); + newRows.push(newRow); + } + }); + return newRows; +} +function json(json2, keysParam) { + const newRows = []; + let targetKeys; + let data; + if (Array.isArray(json2)) { + const findValueInJson = function(object, path) { + if (object[path] !== void 0) { + return object[path]; + } + const convertedPath = path.replace(/\[(\w+)\]/g, ".$1"); + const pathArray = convertedPath.replace(/^\./, "").split("."); + let target = object; + pathArray.some(function(k) { + return !(target = target && k in target ? target[k] : void 0); + }); + return target; + }; + if (keysParam.x) { + targetKeys = keysParam.value.concat(keysParam.x); + } else { + targetKeys = keysParam.value; + } + newRows.push(targetKeys); + json2.forEach(function(o) { + const newRow = targetKeys.map(function(key) { + let v = findValueInJson(o, key); + if (typeof v === "undefined") { + v = null; + } + return v; + }); + newRows.push(newRow); + }); + data = rows(newRows); + } else { + Object.keys(json2).forEach(function(key) { + var _a; + const tmp = json2[key].concat(); + (_a = tmp.unshift) == null ? void 0 : _a.call(tmp, key); + newRows.push(tmp); + }); + data = columns(newRows); + } + return data; +} +function url(url2, mimeType = "csv", headers, keys, done) { + const req = new XMLHttpRequest(); + const converter = { csv, tsv, json }; + req.open("GET", url2); + if (headers) { + Object.keys(headers).forEach(function(key) { + req.setRequestHeader(key, headers[key]); + }); + } + req.onreadystatechange = function() { + if (req.readyState === 4) { + if (req.status === 200) { + const response = req.responseText; + response && done.call(this, converter[mimeType]( + mimeType === "json" ? JSON.parse(response) : response, + keys + )); + } else { + throw new Error(`${url2}: Something went wrong loading!`); + } + } + }; + req.send(); +} +function convertCsvTsvToData(parser, xsv) { + const rows2 = parser.rows(xsv); + let d; + if (rows2.length === 1) { + d = [{}]; + rows2[0].forEach((id) => { + d[0][id] = null; + }); + } else { + d = parser.parse(xsv); + } + return d; +} +function csv(xsv) { + return convertCsvTsvToData({ + rows: external_commonjs_d3_dsv_commonjs2_d3_dsv_amd_d3_dsv_root_d3_.csvParseRows, + parse: external_commonjs_d3_dsv_commonjs2_d3_dsv_amd_d3_dsv_root_d3_.csvParse + }, xsv); +} +function tsv(tsv2) { + return convertCsvTsvToData({ + rows: external_commonjs_d3_dsv_commonjs2_d3_dsv_amd_d3_dsv_root_d3_.tsvParseRows, + parse: external_commonjs_d3_dsv_commonjs2_d3_dsv_amd_d3_dsv_root_d3_.tsvParse + }, tsv2); +} + +;// CONCATENATED MODULE: ./src/ChartInternal/data/convert.ts + + + +function getDataKeyForJson(keysParam, config) { + const keys = keysParam || (config == null ? void 0 : config.data_keys); + if (keys == null ? void 0 : keys.x) { + config.data_x = keys.x; + } + return keys; +} +/* harmony default export */ var convert = ({ + /** + * Convert data according its type + * @param {object} args data object + * @param {Function} [callback] callback for url(XHR) type loading + * @private + */ + convertData(args, callback) { + const { config } = this; + const useWorker = config.boost_useWorker; + let data = args; + if (args.bindto) { + data = {}; + ["url", "mimeType", "headers", "keys", "json", "keys", "rows", "columns"].forEach((v) => { + const key = `data_${v}`; + if (key in args) { + data[v] = args[key]; + } + }); + } + if (data.url && callback) { + url( + data.url, + data.mimeType, + data.headers, + getDataKeyForJson(data.keys, config), + callback + ); + } else if (data.json) { + runWorker(useWorker, json, callback, [columns, rows])( + data.json, + getDataKeyForJson(data.keys, config) + ); + } else if (data.rows) { + runWorker(useWorker, rows, callback)(data.rows); + } else if (data.columns) { + runWorker(useWorker, columns, callback)(data.columns); + } else if (args.bindto) { + throw Error("url or json or rows or columns is required."); + } + }, + convertDataToTargets(data, appendXs) { + const $$ = this; + const { axis, config, state } = $$; + const chartType = config.data_type; + let isCategorized = false; + let isTimeSeries = false; + let isCustomX = false; + if (axis) { + isCategorized = axis.isCategorized(); + isTimeSeries = axis.isTimeSeries(); + isCustomX = axis.isCustomX(); + } + const dataKeys = Object.keys(data[0] || {}); + const ids = dataKeys.length ? dataKeys.filter($$.isNotX, $$) : []; + const xs = dataKeys.length ? dataKeys.filter($$.isX, $$) : []; + let xsData; + ids.forEach((id) => { + const xKey = this.getXKey(id); + if (isCustomX || isTimeSeries) { + if (xs.indexOf(xKey) >= 0) { + xsData = (appendXs && $$.data.xs[id] || []).concat( + data.map((d) => d[xKey]).filter(isValue).map((rawX, i) => $$.generateTargetX(rawX, id, i)) + ); + } else if (config.data_x) { + xsData = this.getOtherTargetXs(); + } else if (notEmpty(config.data_xs)) { + xsData = $$.getXValuesOfXKey(xKey, $$.data.targets); + } + } else { + xsData = data.map((d, i) => i); + } + xsData && (this.data.xs[id] = xsData); + }); + ids.forEach((id) => { + if (!this.data.xs[id]) { + throw new Error(`x is not defined for id = "${id}".`); + } + }); + const targets = ids.map((id, index) => { + const convertedId = config.data_idConverter.bind($$.api)(id); + const xKey = $$.getXKey(id); + const isCategory = isCustomX && isCategorized; + const hasCategory = isCategory && data.map((v) => v.x).every((v) => config.axis_x_categories.indexOf(v) > -1); + const isDataAppend = data.__append__; + const xIndex = xKey === null && isDataAppend ? $$.api.data.values(id).length : 0; + return { + id: convertedId, + id_org: id, + values: data.map((d, i) => { + const rawX = d[xKey]; + let value = d[id]; + let x; + value = value !== null && !isNaN(value) && !isObject(value) ? +value : isArray(value) || isObject(value) ? value : null; + if ((isCategory || state.hasRadar) && index === 0 && !isUndefined(rawX)) { + if (!hasCategory && index === 0 && i === 0 && !isDataAppend) { + config.axis_x_categories = []; + } + x = config.axis_x_categories.indexOf(rawX); + if (x === -1) { + x = config.axis_x_categories.length; + config.axis_x_categories.push(rawX); + } + } else { + x = $$.generateTargetX(rawX, id, xIndex + i); + } + if (isUndefined(value) || $$.data.xs[id].length <= i) { + x = void 0; + } + return { + x, + value, + id: convertedId, + index: -1 + }; + }).filter((v) => isDefined(v.x)) + }; + }); + targets.forEach((t) => { + var _a; + if (config.data_xSort) { + t.values = t.values.sort((v1, v2) => { + const x1 = v1.x || v1.x === 0 ? v1.x : Infinity; + const x2 = v2.x || v2.x === 0 ? v2.x : Infinity; + return x1 - x2; + }); + } + t.values.forEach((v, i) => v.index = i); + (_a = $$.data.xs[t.id]) == null ? void 0 : _a.sort((v1, v2) => v1 - v2); + }); + state.hasNegativeValue = $$.hasNegativeValueInTargets(targets); + state.hasPositiveValue = $$.hasPositiveValueInTargets(targets); + if (chartType && $$.isValidChartType(chartType)) { + const targetIds = $$.mapToIds(targets).filter( + (id) => !(id in config.data_types) || !$$.isValidChartType(config.data_types[id]) + ); + $$.setTargetType(targetIds, chartType); + } + targets.forEach((d) => $$.cache.add(d.id_org, d, true)); + return targets; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/data/data.ts + + + + +/* harmony default export */ var data_data = ({ + isX(key) { + const $$ = this; + const { config } = $$; + const dataKey = config.data_x && key === config.data_x; + const existValue = notEmpty(config.data_xs) && hasValue(config.data_xs, key); + return dataKey || existValue; + }, + isNotX(key) { + return !this.isX(key); + }, + isStackNormalized() { + const { config } = this; + return !!(config.data_stack_normalize && config.data_groups.length); + }, + /** + * Check if given id is grouped data or has grouped data + * @param {string} id Data id value + * @returns {boolean} is grouped data or has grouped data + * @private + */ + isGrouped(id) { + const groups = this.config.data_groups; + return id ? groups.some((v) => v.indexOf(id) >= 0 && v.length > 1) : groups.length > 0; + }, + getXKey(id) { + const $$ = this; + const { config } = $$; + return config.data_x ? config.data_x : notEmpty(config.data_xs) ? config.data_xs[id] : null; + }, + getXValuesOfXKey(key, targets) { + const $$ = this; + const ids = targets && notEmpty(targets) ? $$.mapToIds(targets) : []; + let xValues; + ids.forEach((id) => { + if ($$.getXKey(id) === key) { + xValues = $$.data.xs[id]; + } + }); + return xValues; + }, + /** + * Get index number based on given x Axis value + * @param {Date|number|string} x x Axis to be compared + * @param {Array} basedX x Axis list to be based on + * @returns {number} index number + * @private + */ + getIndexByX(x, basedX) { + const $$ = this; + return basedX ? basedX.indexOf(isString(x) ? x : +x) : ($$.filterByX($$.data.targets, x)[0] || { index: null }).index; + }, + getXValue(id, i) { + const $$ = this; + return id in $$.data.xs && $$.data.xs[id] && isValue($$.data.xs[id][i]) ? $$.data.xs[id][i] : i; + }, + getOtherTargetXs() { + const $$ = this; + const idsForX = Object.keys($$.data.xs); + return idsForX.length ? $$.data.xs[idsForX[0]] : null; + }, + getOtherTargetX(index) { + const xs = this.getOtherTargetXs(); + return xs && index < xs.length ? xs[index] : null; + }, + addXs(xs) { + const $$ = this; + const { config } = $$; + Object.keys(xs).forEach((id) => { + config.data_xs[id] = xs[id]; + }); + }, + /** + * Determine if x axis is multiple + * @returns {boolean} true: multiple, false: single + * @private + */ + isMultipleX() { + return !this.config.axis_x_forceAsSingle && (notEmpty(this.config.data_xs) || this.hasType("bubble") || this.hasType("scatter")); + }, + addName(data) { + const $$ = this; + const { config } = $$; + let name; + if (data) { + name = config.data_names[data.id]; + data.name = name !== void 0 ? name : data.id; + } + return data; + }, + /** + * Get all values on given index + * @param {number} index Index + * @param {boolean} filterNull Filter nullish value + * @returns {Array} + * @private + */ + getAllValuesOnIndex(index, filterNull = false) { + const $$ = this; + let value = $$.filterTargetsToShow($$.data.targets).map((t) => $$.addName($$.getValueOnIndex(t.values, index))); + if (filterNull) { + value = value.filter((v) => v && "value" in v && isValue(v.value)); + } + return value; + }, + getValueOnIndex(values, index) { + const valueOnIndex = values.filter((v) => v.index === index); + return valueOnIndex.length ? valueOnIndex[0] : null; + }, + updateTargetX(targets, x) { + const $$ = this; + targets.forEach((t) => { + t.values.forEach((v, i) => { + v.x = $$.generateTargetX(x[i], t.id, i); + }); + $$.data.xs[t.id] = x; + }); + }, + updateTargetXs(targets, xs) { + const $$ = this; + targets.forEach((t) => { + xs[t.id] && $$.updateTargetX([t], xs[t.id]); + }); + }, + generateTargetX(rawX, id, index) { + const $$ = this; + const { axis } = $$; + let x = (axis == null ? void 0 : axis.isCategorized()) ? index : rawX || index; + if (axis == null ? void 0 : axis.isTimeSeries()) { + const fn = parseDate.bind($$); + x = rawX ? fn(rawX) : fn($$.getXValue(id, index)); + } else if ((axis == null ? void 0 : axis.isCustomX()) && !(axis == null ? void 0 : axis.isCategorized())) { + x = isValue(rawX) ? +rawX : $$.getXValue(id, index); + } + return x; + }, + updateXs(values) { + if (values.length) { + this.axis.xs = values.map((v) => v.x); + } + }, + getPrevX(i) { + const x = this.axis.xs[i - 1]; + return isDefined(x) ? x : null; + }, + getNextX(i) { + const x = this.axis.xs[i + 1]; + return isDefined(x) ? x : null; + }, + /** + * Get base value isAreaRangeType + * @param {object} data Data object + * @returns {number} + * @private + */ + getBaseValue(data) { + const $$ = this; + const { hasAxis } = $$.state; + let { value } = data; + if (value && hasAxis) { + if ($$.isAreaRangeType(data)) { + value = $$.getRangedData(data, "mid"); + } else if ($$.isBubbleZType(data)) { + value = $$.getBubbleZData(value, "y"); + } + } + return value; + }, + /** + * Get min/max value from the data + * @private + * @param {Array} data array data to be evaluated + * @returns {{min: {number}, max: {number}}} + */ + getMinMaxValue(data) { + const getBaseValue = this.getBaseValue.bind(this); + let min; + let max; + (data || this.data.targets.map((t) => t.values)).forEach((v, i) => { + const value = v.map(getBaseValue).filter(isNumber); + min = Math.min(i ? min : Infinity, ...value); + max = Math.max(i ? max : -Infinity, ...value); + }); + return { min, max }; + }, + /** + * Get the min/max data + * @private + * @returns {{min: Array, max: Array}} + */ + getMinMaxData() { + const $$ = this; + const cacheKey = KEY.dataMinMax; + let minMaxData = $$.cache.get(cacheKey); + if (!minMaxData) { + const data = $$.data.targets.map((t) => t.values); + const minMax = $$.getMinMaxValue(data); + let min = []; + let max = []; + data.forEach((v) => { + const minData = $$.getFilteredDataByValue(v, minMax.min); + const maxData = $$.getFilteredDataByValue(v, minMax.max); + if (minData.length) { + min = min.concat(minData); + } + if (maxData.length) { + max = max.concat(maxData); + } + }); + $$.cache.add(cacheKey, minMaxData = { min, max }); + } + return minMaxData; + }, + /** + * Get sum of data per index + * @private + * @returns {Array} + */ + getTotalPerIndex() { + const $$ = this; + const cacheKey = KEY.dataTotalPerIndex; + let sum = $$.cache.get(cacheKey); + if (($$.config.data_groups.length || $$.isStackNormalized()) && !sum) { + sum = []; + $$.data.targets.forEach((row) => { + row.values.forEach((v, i) => { + if (!sum[i]) { + sum[i] = 0; + } + sum[i] += isNumber(v.value) ? v.value : 0; + }); + }); + } + return sum; + }, + /** + * Get total data sum + * @param {boolean} subtractHidden Subtract hidden data from total + * @returns {number} + * @private + */ + getTotalDataSum(subtractHidden) { + const $$ = this; + const cacheKey = KEY.dataTotalSum; + let total = $$.cache.get(cacheKey); + if (!isNumber(total)) { + const sum = mergeArray($$.data.targets.map((t) => t.values)).map((v) => v.value); + total = sum.length ? sum.reduce((p, c) => p + c) : 0; + $$.cache.add(cacheKey, total); + } + if (subtractHidden) { + total -= $$.getHiddenTotalDataSum(); + } + return total; + }, + /** + * Get total hidden data sum + * @returns {number} + * @private + */ + getHiddenTotalDataSum() { + const $$ = this; + const { api, state: { hiddenTargetIds } } = $$; + let total = 0; + if (hiddenTargetIds.length) { + total = api.data.values.bind(api)(hiddenTargetIds).reduce((p, c) => p + c); + } + return total; + }, + /** + * Get filtered data by value + * @param {object} data Data + * @param {number} value Value to be filtered + * @returns {Array} filtered array data + * @private + */ + getFilteredDataByValue(data, value) { + return data.filter((t) => this.getBaseValue(t) === value); + }, + /** + * Return the max length of the data + * @returns {number} max data length + * @private + */ + getMaxDataCount() { + return Math.max(...this.data.targets.map((t) => t.values.length), 0); + }, + getMaxDataCountTarget() { + let target = this.filterTargetsToShow() || []; + const length = target.length; + const isInverted = this.config.axis_x_inverted; + if (length > 1) { + target = target.map((t) => t.values).reduce((a, b) => a.concat(b)).map((v) => v.x); + target = sortValue(getUnique(target)).map((x, index, array) => ({ + x, + index: isInverted ? array.length - index - 1 : index + })); + } else if (length) { + target = target[0].values.concat(); + } + return target; + }, + mapToIds(targets) { + return targets.map((d) => d.id); + }, + mapToTargetIds(ids) { + const $$ = this; + return ids ? isArray(ids) ? ids.concat() : [ids] : $$.mapToIds($$.data.targets); + }, + hasTarget(targets, id) { + const ids = this.mapToIds(targets); + for (let i = 0, val; val = ids[i]; i++) { + if (val === id) { + return true; + } + } + return false; + }, + isTargetToShow(targetId) { + return this.state.hiddenTargetIds.indexOf(targetId) < 0; + }, + isLegendToShow(targetId) { + return this.state.hiddenLegendIds.indexOf(targetId) < 0; + }, + filterTargetsToShow(targets) { + const $$ = this; + return (targets || $$.data.targets).filter((t) => $$.isTargetToShow(t.id)); + }, + mapTargetsToUniqueXs(targets) { + const $$ = this; + const { axis } = $$; + let xs = []; + if (targets == null ? void 0 : targets.length) { + xs = getUnique( + mergeArray(targets.map((t) => t.values.map((v) => +v.x))) + ); + xs = (axis == null ? void 0 : axis.isTimeSeries()) ? xs.map((x) => /* @__PURE__ */ new Date(+x)) : xs.map(Number); + } + return sortValue(xs); + }, + /** + * Add to the state target Ids + * @param {string} type State's prop name + * @param {Array|string} targetIds Target ids array + * @private + */ + addTargetIds(type, targetIds) { + const { state } = this; + const ids = isArray(targetIds) ? targetIds : [targetIds]; + ids.forEach((v) => { + state[type].indexOf(v) < 0 && state[type].push(v); + }); + }, + /** + * Remove from the state target Ids + * @param {string} type State's prop name + * @param {Array|string} targetIds Target ids array + * @private + */ + removeTargetIds(type, targetIds) { + const { state } = this; + const ids = isArray(targetIds) ? targetIds : [targetIds]; + ids.forEach((v) => { + const index = state[type].indexOf(v); + index >= 0 && state[type].splice(index, 1); + }); + }, + addHiddenTargetIds(targetIds) { + this.addTargetIds("hiddenTargetIds", targetIds); + }, + removeHiddenTargetIds(targetIds) { + this.removeTargetIds("hiddenTargetIds", targetIds); + }, + addHiddenLegendIds(targetIds) { + this.addTargetIds("hiddenLegendIds", targetIds); + }, + removeHiddenLegendIds(targetIds) { + this.removeTargetIds("hiddenLegendIds", targetIds); + }, + getValuesAsIdKeyed(targets) { + const $$ = this; + const { hasAxis } = $$.state; + const ys = {}; + const isMultipleX = $$.isMultipleX(); + const xs = isMultipleX ? $$.mapTargetsToUniqueXs(targets).map((v) => isString(v) ? v : +v) : null; + targets.forEach((t) => { + const data = []; + t.values.filter(({ value }) => isValue(value) || value === null).forEach((v) => { + let { value } = v; + if (value !== null && $$.isCandlestickType(v)) { + value = isArray(value) ? value.slice(0, 4) : [value.open, value.high, value.low, value.close]; + } + if (isArray(value)) { + data.push(...value); + } else if (isObject(value) && "high" in value) { + data.push(...Object.values(value)); + } else if ($$.isBubbleZType(v)) { + data.push(hasAxis && $$.getBubbleZData(value, "y")); + } else { + if (isMultipleX) { + data[$$.getIndexByX(v.x, xs)] = value; + } else { + data.push(value); + } + } + }); + ys[t.id] = data; + }); + return ys; + }, + checkValueInTargets(targets, checker) { + const ids = Object.keys(targets); + let values; + for (let i = 0; i < ids.length; i++) { + values = targets[ids[i]].values; + for (let j = 0; j < values.length; j++) { + if (checker(values[j].value)) { + return true; + } + } + } + return false; + }, + hasMultiTargets() { + return this.filterTargetsToShow().length > 1; + }, + hasNegativeValueInTargets(targets) { + return this.checkValueInTargets(targets, (v) => v < 0); + }, + hasPositiveValueInTargets(targets) { + return this.checkValueInTargets(targets, (v) => v > 0); + }, + /** + * Sort targets data + * Note: For stacked bar, will sort from the total sum of data series, not for each stacked bar + * @param {Array} targetsValue Target value + * @returns {Array} + * @private + */ + orderTargets(targetsValue) { + const $$ = this; + const targets = [...targetsValue]; + const fn = $$.getSortCompareFn(); + fn && targets.sort(fn); + return targets; + }, + /** + * Get data.order compare function + * @param {boolean} isReversed for Arc & Treemap type sort order needs to be reversed + * @returns {Function} compare function + * @private + */ + getSortCompareFn(isReversed = false) { + const $$ = this; + const { config } = $$; + const order = config.data_order; + const orderAsc = /asc/i.test(order); + const orderDesc = /desc/i.test(order); + let fn; + if (orderAsc || orderDesc) { + const reducer = (p, c) => p + Math.abs(c.value); + const sum = (v) => isNumber(v) ? v : "values" in v ? v.values.reduce(reducer, 0) : v.value; + fn = (t1, t2) => { + const t1Sum = sum(t1); + const t2Sum = sum(t2); + return isReversed ? orderAsc ? t1Sum - t2Sum : t2Sum - t1Sum : orderAsc ? t2Sum - t1Sum : t1Sum - t2Sum; + }; + } else if (isFunction(order)) { + fn = order.bind($$.api); + } + return fn || null; + }, + filterByX(targets, x) { + return mergeArray(targets.map((t) => t.values)).filter((v) => v.x - x === 0); + }, + filterRemoveNull(data) { + return data.filter((d) => isValue(this.getBaseValue(d))); + }, + filterByXDomain(targets, xDomain) { + return targets.map((t) => ({ + id: t.id, + id_org: t.id_org, + values: t.values.filter((v) => xDomain[0] <= v.x && v.x <= xDomain[1]) + })); + }, + hasDataLabel() { + const dataLabels = this.config.data_labels; + return isBoolean(dataLabels) && dataLabels || isObjectType(dataLabels) && notEmpty(dataLabels); + }, + /** + * Get data index from the event coodinates + * @param {Event} event Event object + * @returns {number} + */ + getDataIndexFromEvent(event) { + const $$ = this; + const { $el, config, state: { hasRadar, inputType, eventReceiver: { coords, rect } } } = $$; + let index; + if (hasRadar) { + let target = event.target; + if (/tspan/i.test(target.tagName)) { + target = target.parentNode; + } + const d = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(target).datum(); + index = d && Object.keys(d).length === 1 ? d.index : void 0; + } else { + const isRotated = config.axis_rotated; + const scrollPos = getScrollPosition($el.chart.node()); + const e = inputType === "touch" && event.changedTouches ? event.changedTouches[0] : event; + index = findIndex( + coords, + isRotated ? e.clientY + scrollPos.y - rect.top : e.clientX + scrollPos.x - rect.left, + 0, + coords.length - 1, + isRotated + ); + } + return index; + }, + getDataLabelLength(min, max, key) { + const $$ = this; + const lengths = [0, 0]; + const paddingCoef = 1.3; + $$.$el.chart.select("svg").selectAll(".dummy").data([min, max]).enter().append("text").text((d) => $$.dataLabelFormat(d.id)(d)).each(function(d, i) { + lengths[i] = this.getBoundingClientRect()[key] * paddingCoef; + }).remove(); + return lengths; + }, + isNoneArc(d) { + return this.hasTarget(this.data.targets, d.id); + }, + isArc(d) { + return "data" in d && this.hasTarget(this.data.targets, d.data.id); + }, + findSameXOfValues(values, index) { + const targetX = values[index].x; + const sames = []; + let i; + for (i = index - 1; i >= 0; i--) { + if (targetX !== values[i].x) { + break; + } + sames.push(values[i]); + } + for (i = index; i < values.length; i++) { + if (targetX !== values[i].x) { + break; + } + sames.push(values[i]); + } + return sames; + }, + findClosestFromTargets(targets, pos) { + const $$ = this; + const candidates = targets.map((target) => $$.findClosest(target.values, pos)); + return $$.findClosest(candidates, pos); + }, + findClosest(values, pos) { + const $$ = this; + const { $el: { main } } = $$; + const data = values.filter((v) => v && isValue(v.value)); + let minDist; + let closest; + data.filter((v) => $$.isBarType(v.id) || $$.isCandlestickType(v.id)).forEach((v) => { + const selector = $$.isBarType(v.id) ? `.${$BAR.chartBar}.${$COMMON.target}${$$.getTargetSelectorSuffix(v.id)} .${$BAR.bar}-${v.index}` : `.${$CANDLESTICK.chartCandlestick}.${$COMMON.target}${$$.getTargetSelectorSuffix(v.id)} .${$CANDLESTICK.candlestick}-${v.index} path`; + if (!closest && $$.isWithinBar(main.select(selector).node())) { + closest = v; + } + }); + data.filter((v) => !$$.isBarType(v.id) && !$$.isCandlestickType(v.id)).forEach((v) => { + const d = $$.dist(v, pos); + minDist = $$.getPointSensitivity(v); + if (d < minDist) { + minDist = d; + closest = v; + } + }); + return closest; + }, + dist(data, pos) { + const $$ = this; + const { config: { axis_rotated: isRotated }, scale } = $$; + const xIndex = +isRotated; + const yIndex = +!isRotated; + const y = $$.circleY(data, data.index); + const x = (scale.zoom || scale.x)(data.x); + return Math.sqrt(Math.pow(x - pos[xIndex], 2) + Math.pow(y - pos[yIndex], 2)); + }, + /** + * Convert data for step type + * @param {Array} values Object data values + * @returns {Array} + * @private + */ + convertValuesToStep(values) { + const $$ = this; + const { axis, config } = $$; + const stepType = config.line_step_type; + const isCategorized = axis ? axis.isCategorized() : false; + const converted = isArray(values) ? values.concat() : [values]; + if (!(isCategorized || /step\-(after|before)/.test(stepType))) { + return values; + } + if (converted.length) { + const head = converted[0]; + const tail = converted[converted.length - 1]; + const { id } = head; + let { x } = head; + converted.unshift({ x: --x, value: head.value, id }); + isCategorized && stepType === "step-after" && converted.unshift({ x: --x, value: head.value, id }); + x = tail.x; + converted.push({ x: ++x, value: tail.value, id }); + isCategorized && stepType === "step-before" && converted.push({ x: ++x, value: tail.value, id }); + } + return converted; + }, + convertValuesToRange(values) { + const converted = isArray(values) ? values.concat() : [values]; + const ranges = []; + converted.forEach((range) => { + const { x, id } = range; + ranges.push({ + x, + id, + value: range.value[0] + }); + ranges.push({ + x, + id, + value: range.value[2] + }); + }); + return ranges; + }, + updateDataAttributes(name, attrs) { + const $$ = this; + const { config } = $$; + const current = config[`data_${name}`]; + if (isUndefined(attrs)) { + return current; + } + Object.keys(attrs).forEach((id) => { + current[id] = attrs[id]; + }); + $$.redraw({ withLegend: true }); + return current; + }, + getRangedData(d, key = "", type = "areaRange") { + const value = d == null ? void 0 : d.value; + if (isArray(value)) { + if (type === "bar") { + return value.reduce((a, c) => c - a); + } else { + const index = { + areaRange: ["high", "mid", "low"], + candlestick: ["open", "high", "low", "close", "volume"] + }[type].indexOf(key); + return index >= 0 && value ? value[index] : void 0; + } + } else if (value && key) { + return value[key]; + } + return value; + }, + /** + * Set ratio for grouped data + * @param {Array} data Data array + * @private + */ + setRatioForGroupedData(data) { + const $$ = this; + const { config } = $$; + if (config.data_groups.length && data.some((d) => $$.isGrouped(d.id))) { + const setter = (d) => $$.getRatio("index", d, true); + data.forEach((v) => { + "values" in v ? v.values.forEach(setter) : setter(v); + }); + } + }, + /** + * Get ratio value + * @param {string} type Ratio for given type + * @param {object} d Data value object + * @param {boolean} asPercent Convert the return as percent or not + * @returns {number} Ratio value + * @private + */ + getRatio(type, d, asPercent = false) { + const $$ = this; + const { config, state } = $$; + const api = $$.api; + let ratio = 0; + if (d && api.data.shown().length) { + ratio = d.ratio || d.value; + if (type === "arc") { + if ($$.pie.padAngle()()) { + ratio = d.value / $$.getTotalDataSum(true); + } else { + const gaugeArcLength = config.gauge_fullCircle ? $$.getArcLength() : $$.getStartingAngle() * -2; + const arcLength = $$.hasType("gauge") ? gaugeArcLength : Math.PI * 2; + ratio = (d.endAngle - d.startAngle) / arcLength; + } + } else if (type === "index") { + const dataValues = api.data.values.bind(api); + let total = this.getTotalPerIndex(); + if (state.hiddenTargetIds.length) { + let hiddenSum = dataValues(state.hiddenTargetIds, false); + if (hiddenSum.length) { + hiddenSum = hiddenSum.reduce( + (acc, curr) => acc.map((v, i) => (isNumber(v) ? v : 0) + curr[i]) + ); + total = total.map((v, i) => v - hiddenSum[i]); + } + } + const divisor = total[d.index]; + d.ratio = isNumber(d.value) && total && divisor ? d.value / divisor : 0; + ratio = d.ratio; + } else if (type === "radar") { + ratio = parseFloat(String(Math.max(d.value, 0))) / state.current.dataMax * config.radar_size_ratio; + } else if (type === "bar") { + const yScale = $$.getYScaleById.bind($$)(d.id); + const max = yScale.domain().reduce((a, c) => c - a); + ratio = max === 0 ? 0 : Math.abs( + $$.getRangedData(d, null, type) / max + ); + } else if (type === "treemap") { + ratio /= $$.getTotalDataSum(true); + } + } + return asPercent && ratio ? ratio * 100 : ratio; + }, + /** + * Sort data index to be aligned with x axis. + * @param {Array} tickValues Tick array values + * @private + */ + updateDataIndexByX(tickValues) { + const $$ = this; + const tickValueMap = tickValues.reduce((out, tick, index) => { + out[Number(tick.x)] = index; + return out; + }, {}); + $$.data.targets.forEach((t) => { + t.values.forEach((value, valueIndex) => { + let index = tickValueMap[Number(value.x)]; + if (index === void 0) { + index = valueIndex; + } + value.index = index; + }); + }); + }, + /** + * Determine if bubble has dimension data + * @param {object|Array} d data value + * @returns {boolean} + * @private + */ + isBubbleZType(d) { + const $$ = this; + return $$.isBubbleType(d) && (isObject(d.value) && ("z" in d.value || "y" in d.value) || isArray(d.value) && d.value.length >= 2); + }, + /** + * Determine if bar has ranged data + * @param {Array} d data value + * @returns {boolean} + * @private + */ + isBarRangeType(d) { + const $$ = this; + const { value } = d; + return $$.isBarType(d) && isArray(value) && value.length >= 2 && value.every((v) => isNumber(v)); + }, + /** + * Get data object by id + * @param {string} id data id + * @returns {object} + * @private + */ + getDataById(id) { + var _a; + const d = this.cache.get(id) || this.api.data(id); + return (_a = d == null ? void 0 : d[0]) != null ? _a : d; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/data/load.ts + + +function callDone(fn, resizeAfter = false) { + const $$ = this; + const { api } = $$; + resizeAfter && $$.api.flush(true); + fn == null ? void 0 : fn.call(api); +} +/* harmony default export */ var load = ({ + load(rawTargets, args) { + const $$ = this; + const { axis, data, org, scale } = $$; + const { append } = args; + const zoomState = { + domain: null, + currentDomain: null, + x: null + }; + let targets = rawTargets; + if (targets) { + if (args.filter) { + targets = targets.filter(args.filter); + } + if (args.type || args.types) { + targets.forEach((t) => { + var _a; + const type = ((_a = args.types) == null ? void 0 : _a[t.id]) || args.type; + $$.setTargetType(t.id, type); + }); + } + data.targets.forEach((d) => { + for (let i = 0; i < targets.length; i++) { + if (d.id === targets[i].id) { + d.values = append ? d.values.concat(targets[i].values) : targets[i].values; + targets.splice(i, 1); + break; + } + } + }); + data.targets = data.targets.concat(targets); + } + $$.updateTargets(data.targets); + if (scale.zoom) { + zoomState.x = axis.isCategorized() ? scale.x.orgScale() : (org.xScale || scale.x).copy(); + zoomState.domain = $$.getXDomain(data.targets); + zoomState.x.domain(zoomState.domain); + zoomState.currentDomain = $$.zoom.getDomain(); + if (!$$.withinRange(zoomState.currentDomain, void 0, zoomState.domain)) { + scale.x.domain(zoomState.domain); + scale.zoom = null; + $$.$el.eventRect.property("__zoom", null); + } + } + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true, + withLegend: true + }); + if (scale.zoom) { + org.xDomain = zoomState.domain; + org.xScale = zoomState.x; + if (axis.isCategorized()) { + zoomState.currentDomain = $$.getZoomDomainValue(zoomState.currentDomain); + org.xDomain = $$.getZoomDomainValue(org.xDomain); + org.xScale = zoomState.x.domain(org.xDomain); + } + $$.updateCurrentZoomTransform(zoomState.x, zoomState.currentDomain); + } + $$.updateTypesElements(); + callDone.call($$, args.done, args.resizeAfter); + }, + loadFromArgs(args) { + const $$ = this; + if (!$$.config) { + return; + } + $$.cache.reset(); + $$.convertData(args, (d) => { + const data = args.data || d; + args.append && (data.__append__ = true); + data && $$.load($$.convertDataToTargets(data), args); + }); + }, + unload(rawTargetIds, customDoneCb) { + var _a; + const $$ = this; + const { state, $el, $T } = $$; + const hasLegendDefsPoint = !!((_a = $$.hasLegendDefsPoint) == null ? void 0 : _a.call($$)); + let done = customDoneCb; + let targetIds = rawTargetIds; + $$.cache.reset(); + if (!done) { + done = () => { + }; + } + targetIds = targetIds.filter((id) => $$.hasTarget($$.data.targets, id)); + if (!targetIds || targetIds.length === 0) { + done(); + return; + } + const targets = $el.svg.selectAll(targetIds.map((id) => $$.selectorTarget(id))); + $T(targets).style("opacity", "0").remove().call(endall, done); + targetIds.forEach((id) => { + var _a2; + const suffixId = $$.getTargetSelectorSuffix(id); + state.withoutFadeIn[id] = false; + if ($el.legend) { + $el.legend.selectAll(`.${$LEGEND.legendItem}${suffixId}`).remove(); + } + $$.data.targets = $$.data.targets.filter((t) => t.id !== id); + hasLegendDefsPoint && ((_a2 = $el.defs) == null ? void 0 : _a2.select(`#${$$.getDefsPointId(suffixId)}`).remove()); + }); + state.hasFunnel && $$.updateFunnel($$.data.targets); + state.hasTreemap && $$.updateTargetsForTreemap($$.data.targets); + $$.updateTypesElements(); + } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-drag","commonjs2":"d3-drag","amd":"d3-drag","root":"d3"} +var external_commonjs_d3_drag_commonjs2_d3_drag_amd_d3_drag_root_d3_ = __webpack_require__(6); +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/interaction.ts + + + + + +/* harmony default export */ var interactions_interaction = ({ + /** + * Expand data shape/point + * @param {number} index Index number + * @param {string} id Data id + * @param {boolean} reset Reset expand state + * @private + */ + setExpand(index, id, reset) { + const $$ = this; + const { config, $el: { circle } } = $$; + circle && config.point_focus_expand_enabled && $$.expandCircles(index, id, reset); + $$.expandBarTypeShapes(true, index, id, reset); + }, + /** + * Expand/Unexpand bar type shapes + * @param {boolean} expand Expand or unexpand + * @param {number} i Shape index + * @param {string} id Data id + * @param {boolean} reset Reset expand style + * @private + */ + expandBarTypeShapes(expand = true, i, id, reset) { + const $$ = this; + ["bar", "candlestick"].filter((v) => $$.$el[v]).forEach((v) => { + reset && $$.$el[v].classed($COMMON.EXPANDED, false); + $$.getShapeByIndex(v, i, id).classed($COMMON.EXPANDED, expand); + }); + }, + /** + * Handle data.onover/out callback options + * @param {boolean} isOver Over or not + * @param {number|object} d data object + * @private + */ + setOverOut(isOver, d) { + const $$ = this; + const { config, state: { hasFunnel, hasRadar, hasTreemap }, $el: { main } } = $$; + const isArcishData = isObject(d); + if (isArcishData || d !== -1) { + const callback = config[isOver ? "data_onover" : "data_onout"].bind($$.api); + config.color_onover && $$.setOverColor(isOver, d, isArcishData); + if (isArcishData && "id") { + const suffix = $$.getTargetSelectorSuffix(d.id); + const selector = hasFunnel || hasTreemap ? `${$COMMON.target + suffix} .${$SHAPE.shape}` : $ARC.arc + suffix; + callback(d, main.select(`.${selector}`).node()); + } else if (!config.tooltip_grouped) { + const last = $$.cache.get(KEY.setOverOut) || []; + const shapesAtIndex = main.selectAll(`.${$SHAPE.shape}-${d}`).filter(function(d2) { + return $$.isWithinShape(this, d2); + }); + const shape = shapesAtIndex.filter(function() { + return last.every((v) => v !== this); + }); + if (!isOver || shapesAtIndex.empty() || last.length === shape.size() && shape.nodes().every((v, i) => v !== last[i])) { + while (last.length) { + const target = last.pop(); + config.data_onout.bind($$.api)((0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(target).datum(), target); + } + } + shape.each(function() { + if (isOver) { + callback((0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).datum(), this); + last.push(this); + } + }); + $$.cache.add(KEY.setOverOut, last); + } else { + if (isOver) { + hasRadar && $$.isPointFocusOnly() ? $$.showCircleFocus($$.getAllValuesOnIndex(d, true)) : $$.setExpand(d, null, true); + } + !$$.isMultipleX() && main.selectAll(`.${$SHAPE.shape}-${d}`).each(function(d2) { + callback(d2, this); + }); + } + } + }, + /** + * Call data.onover/out callback for touch event + * @param {number|object} d target index or data object for Arc type + * @private + */ + callOverOutForTouch(d) { + const $$ = this; + const last = $$.cache.get(KEY.callOverOutForTouch); + if (isObject(d) && last ? d.id !== last.id : d !== last) { + (last || isNumber(last)) && $$.setOverOut(false, last); + (d || isNumber(d)) && $$.setOverOut(true, d); + $$.cache.add(KEY.callOverOutForTouch, d); + } + }, + /** + * Return draggable selection function + * @returns {Function} + * @private + */ + getDraggableSelection() { + const $$ = this; + const { config, state } = $$; + return config.interaction_enabled && config.data_selection_draggable && $$.drag ? (0,external_commonjs_d3_drag_commonjs2_d3_drag_amd_d3_drag_root_d3_.drag)().on("drag", function(event) { + state.event = event; + $$.drag(getPointer(event, this)); + }).on("start", function(event) { + state.event = event; + $$.dragstart(getPointer(event, this)); + }).on("end", (event) => { + state.event = event; + $$.dragend(); + }) : () => { + }; + }, + /** + * Dispatch a mouse event. + * @private + * @param {string} type event type + * @param {number} index Index of eventRect + * @param {Array} mouse x and y coordinate value + */ + dispatchEvent(type, index, mouse) { + var _a, _b; + const $$ = this; + const { + config, + state: { + eventReceiver, + hasAxis, + hasFunnel, + hasRadar, + hasTreemap + }, + $el: { eventRect, funnel, radar, treemap } + } = $$; + let element = (_b = (hasFunnel || hasTreemap) && eventReceiver.rect || hasRadar && radar.axes.select(`.${$AXIS.axis}-${index} text`) || (eventRect || ((_a = $$.getArcElementByIdOrIndex) == null ? void 0 : _a.call($$, index)))) == null ? void 0 : _b.node(); + if (element) { + const isMultipleX = $$.isMultipleX(); + const isRotated = config.axis_rotated; + let { width, left, top } = element.getBoundingClientRect(); + if (hasAxis && !hasRadar && !isMultipleX) { + const coords = eventReceiver.coords[index]; + if (coords) { + width = coords.w; + left += coords.x; + top += coords.y; + } else { + width = 0; + left = 0; + top = 0; + } + } + const x = left + (mouse ? mouse[0] : 0) + (isMultipleX || isRotated ? 0 : width / 2); + const y = top + (mouse ? mouse[1] : 0) + (isRotated ? 4 : 0); + const params = { + screenX: x, + screenY: y, + clientX: x, + clientY: y, + bubbles: hasRadar + // radar type needs to bubble up event + }; + if (hasFunnel || hasTreemap) { + element = (funnel != null ? funnel : treemap).node(); + } + emulateEvent[/^(mouse|click)/.test(type) ? "mouse" : "touch"]( + element, + type, + params + ); + } + }, + setDragStatus(isDragging) { + this.state.dragging = isDragging; + }, + /** + * Unbind zoom events + * @private + */ + unbindZoomEvent() { + const $$ = this; + const { $el: { eventRect, zoomResetBtn } } = $$; + eventRect == null ? void 0 : eventRect.on(".zoom wheel.zoom .drag", null); + zoomResetBtn == null ? void 0 : zoomResetBtn.on("click", null).style("display", "none"); + }, + /** + * Unbind all attached events + * @private + */ + unbindAllEvents() { + var _a; + const $$ = this; + const { $el: { arcs, eventRect, legend, region, svg, treemap }, brush } = $$; + const list = [ + "wheel", + "click", + "mouseover", + "mousemove", + "mouseout", + "touchstart", + "touchmove", + "touchend", + "touchstart.eventRect", + "touchmove.eventRect", + "touchend.eventRect", + ".brush", + ".drag", + ".zoom", + "wheel.zoom", + "dblclick.zoom" + ].join(" "); + [ + svg, + eventRect, + region == null ? void 0 : region.list, + brush == null ? void 0 : brush.getSelection(), + arcs == null ? void 0 : arcs.selectAll("path"), + legend == null ? void 0 : legend.selectAll("g"), + treemap + ].forEach((v) => v == null ? void 0 : v.on(list, null)); + (_a = $$.unbindZoomEvent) == null ? void 0 : _a.call($$); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/category.ts +/* harmony default export */ var category = ({ + /** + * Category Name + * @param {number} i Index number + * @returns {string} category Name + * @private + */ + categoryName(i) { + var _a; + const { axis_x_categories } = this.config; + return (_a = axis_x_categories == null ? void 0 : axis_x_categories[i]) != null ? _a : i; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/class.ts + +/* harmony default export */ var internals_class = ({ + generateClass(prefix, targetId) { + return ` ${prefix} ${prefix + this.getTargetSelectorSuffix(targetId)}`; + }, + /** + * Get class string + * @param {string} type Shape type + * @param {boolean} withShape Get with shape prefix + * @returns {string} Class string + * @private + */ + getClass(type, withShape) { + const isPlural = /s$/.test(type); + const useIdKey = /^(area|arc|line|funnel|treemap)s?$/.test(type); + const key = isPlural ? "id" : "index"; + return (d) => { + const data = d.data || d; + const result = (withShape ? this.generateClass(classes[isPlural ? "shapes" : "shape"], data[key]) : "") + this.generateClass(classes[type], data[useIdKey ? "id" : key]); + return result.trim(); + }; + }, + /** + * Get chart class string + * @param {string} type Shape type + * @returns {string} Class string + * @private + */ + getChartClass(type) { + return (d) => classes[`chart${type}`] + this.classTarget((d.data ? d.data : d).id); + }, + generateExtraLineClass() { + const $$ = this; + const classes = $$.config.line_classes || []; + const ids = []; + return function(d) { + var _a; + const id = d.id || ((_a = d.data) == null ? void 0 : _a.id) || d; + if (ids.indexOf(id) < 0) { + ids.push(id); + } + return classes[ids.indexOf(id) % classes.length]; + }; + }, + classRegion(d, i) { + return `${this.generateClass(classes.region, i)} ${"class" in d ? d.class : ""}`; + }, + classTarget(id) { + const additionalClassSuffix = this.config.data_classes[id]; + let additionalClass = ""; + if (additionalClassSuffix) { + additionalClass = ` ${classes.target}-${additionalClassSuffix}`; + } + return this.generateClass(classes.target, id) + additionalClass; + }, + classFocus(d) { + return this.classFocused(d) + this.classDefocused(d); + }, + classFocused(d) { + return ` ${this.state.focusedTargetIds.indexOf(d.id) >= 0 ? classes.focused : ""}`; + }, + classDefocused(d) { + return ` ${this.state.defocusedTargetIds.indexOf(d.id) >= 0 ? classes.defocused : ""}`; + }, + getTargetSelectorSuffix(targetId) { + const targetStr = targetId || targetId === 0 ? `-${targetId}` : ""; + return targetStr.replace(/[\x00-\x20\x7F-\xA0\s?!@#$%^&*()_=+,.<>'":;\[\]\/|~`{}\\]/g, "-"); + }, + selectorTarget(id, prefix = "", postfix = "") { + const target = this.getTargetSelectorSuffix(id); + return `${prefix}.${classes.target + target} ${postfix}, ${prefix}.${classes.circles + target} ${postfix}`; + }, + selectorTargets(idsValue, prefix) { + const ids = idsValue || []; + return ids.length ? ids.map((id) => this.selectorTarget(id, prefix)) : null; + }, + selectorLegend(id) { + return `.${classes.legendItem + this.getTargetSelectorSuffix(id)}`; + }, + selectorLegends(ids) { + return (ids == null ? void 0 : ids.length) ? ids.map((id) => this.selectorLegend(id)) : null; + } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-scale","commonjs2":"d3-scale","amd":"d3-scale","root":"d3"} +var external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_ = __webpack_require__(7); +;// CONCATENATED MODULE: ./src/ChartInternal/internals/color.ts + + + + + + +const colorizePattern = (pattern, color, id) => { + const node = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(pattern.cloneNode(true)); + node.attr("id", id).insert("rect", ":first-child").attr("width", node.attr("width")).attr("height", node.attr("height")).style("fill", color); + return { + id, + node: node.node() + }; +}; +function getColorFromCss(element) { + const cacheKey = KEY.colorPattern; + const { body } = browser_doc; + let pattern = body[cacheKey]; + if (!pattern) { + const delimiter = ";"; + const content = element.classed($COLOR.colorPattern, true).style("background-image"); + element.classed($COLOR.colorPattern, false); + if (content.indexOf(delimiter) > -1) { + pattern = content.replace(/url[^#]*|["'()]|(\s|%20)/g, "").split(delimiter).map((v) => v.trim().replace(/[\"'\s]/g, "")).filter(Boolean); + body[cacheKey] = pattern; + } + } + return pattern; +} +const schemeCategory10 = [ + "#1f77b4", + "#ff7f0e", + "#2ca02c", + "#d62728", + "#9467bd", + "#8c564b", + "#e377c2", + "#7f7f7f", + "#bcbd22", + "#17becf" +]; +/* harmony default export */ var internals_color = ({ + generateColor() { + const $$ = this; + const { $el, config } = $$; + const colors = config.data_colors; + const callback = config.data_color; + const ids = []; + let pattern = notEmpty(config.color_pattern) ? config.color_pattern : (0,external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleOrdinal)(getColorFromCss($el.chart) || schemeCategory10).range(); + const originalColorPattern = pattern; + if (isFunction(config.color_tiles)) { + const tiles = config.color_tiles.bind($$.api)(); + const colorizedPatterns = pattern.map((p, index) => { + const color = p.replace(/[#\(\)\s,]/g, ""); + const id = `${$$.state.datetimeId}-pattern-${color}-${index}`; + return colorizePattern(tiles[index % tiles.length], p, id); + }); + pattern = colorizedPatterns.map((p) => `url(#${p.id})`); + $$.patterns = colorizedPatterns; + } + return function(d) { + var _a; + const id = d.id || ((_a = d.data) == null ? void 0 : _a.id) || d; + const isLine = $$.isTypeOf(id, ["line", "spline", "step"]) || !config.data_types[id]; + let color; + if (isFunction(colors[id])) { + color = colors[id].bind($$.api)(d); + } else if (colors[id]) { + color = colors[id]; + } else { + if (ids.indexOf(id) < 0) { + ids.push(id); + } + color = isLine ? originalColorPattern[ids.indexOf(id) % originalColorPattern.length] : pattern[ids.indexOf(id) % pattern.length]; + colors[id] = color; + } + return isFunction(callback) ? callback.bind($$.api)(color, d) : color; + }; + }, + generateLevelColor() { + const $$ = this; + const { config } = $$; + const colors = config.color_pattern; + const threshold = config.color_threshold; + const asValue = threshold.unit === "value"; + const max = threshold.max || 100; + const values = threshold.values && threshold.values.length ? threshold.values : []; + return notEmpty(threshold) ? function(value) { + const v = asValue ? value : value * 100 / max; + let color = colors[colors.length - 1]; + for (let i = 0, l = values.length; i < l; i++) { + if (v <= values[i]) { + color = colors[i]; + break; + } + } + return color; + } : null; + }, + /** + * Append data backgound color filter definition + * @param {string|object} color Color string + * @param {object} attr filter attribute + * @private + */ + generateTextBGColorFilter(color, attr = { + x: 0, + y: 0, + width: 1, + height: 1 + }) { + const $$ = this; + const { $el, state } = $$; + if (color) { + let ids = []; + if (isString(color)) { + ids.push(""); + } else if (isObject(color)) { + ids = Object.keys(color); + } + ids.forEach((v) => { + const id = `${state.datetimeId}-labels-bg${$$.getTargetSelectorSuffix(v)}${isString(color) ? $$.getTargetSelectorSuffix(color) : ""}`; + $el.defs.append("filter").attr("x", attr.x).attr("y", attr.y).attr("width", attr.width).attr("height", attr.height).attr("id", id).html( + `<feFlood flood-color="${v === "" ? color : color[v]}" /> + <feComposite in="SourceGraphic" />` + ); + }); + } + }, + /** + * Get data gradient color url + * @param {string} id Data id + * @returns {string} + * @private + */ + getGradienColortUrl(id) { + return `url(#${this.state.datetimeId}-gradient${this.getTargetSelectorSuffix(id)})`; + }, + /** + * Update linear/radial gradient definition + * - linear: area & bar only + * - radial: type which has data points only + * @private + */ + updateLinearGradient() { + const $$ = this; + const { config, data: { targets }, state: { datetimeId }, $el: { defs } } = $$; + targets.forEach((d) => { + const id = `${datetimeId}-gradient${$$.getTargetSelectorSuffix(d.id)}`; + const radialGradient = $$.hasPointType() && config.point_radialGradient; + const supportedType = $$.isAreaType(d) && "area" || $$.isBarType(d) && "bar"; + if ((radialGradient || supportedType) && defs.select(`#${id}`).empty()) { + const color = $$.color(d); + const gradient = { + defs: null, + stops: [] + }; + if (radialGradient) { + const { + cx = 0.3, + cy = 0.3, + r = 0.7, + stops = [[0.1, color, 0], [0.9, color, 1]] + } = radialGradient; + gradient.stops = stops; + gradient.defs = defs.append("radialGradient").attr("id", `${id}`).attr("cx", cx).attr("cy", cy).attr("r", r); + } else { + const isRotated = config.axis_rotated; + const { + x = isRotated ? [1, 0] : [0, 0], + y = isRotated ? [0, 0] : [0, 1], + stops = [[0, color, 1], [1, color, 0]] + } = config[`${supportedType}_linearGradient`]; + gradient.stops = stops; + gradient.defs = defs.append("linearGradient").attr("id", `${id}`).attr("x1", x[0]).attr("x2", x[1]).attr("y1", y[0]).attr("y2", y[1]); + } + gradient.stops.forEach((v) => { + const [offset, stopColor, stopOpacity] = v; + const colorValue = isFunction(stopColor) ? stopColor.bind($$.api)(d.id) : stopColor; + gradient.defs && gradient.defs.append("stop").attr("offset", offset).attr("stop-color", colorValue || color).attr("stop-opacity", stopOpacity); + }); + } + }); + }, + /** + * Set the data over color. + * When is out, will restate in its previous color value + * @param {boolean} isOver true: set overed color, false: restore + * @param {number|object} d target index or data object for Arc type + * @private + */ + setOverColor(isOver, d) { + const $$ = this; + const { config, $el: { main } } = $$; + const onover = config.color_onover; + let color = isOver ? onover : $$.color; + if (isObject(color)) { + color = ({ id }) => id in onover ? onover[id] : $$.color(id); + } else if (isString(color)) { + color = () => onover; + } else if (isFunction(onover)) { + color = color.bind($$.api); + } + main.selectAll( + isObject(d) ? ( + // when is Arc type + `.${$ARC.arc}${$$.getTargetSelectorSuffix(d.id)}` + ) : `.${$SHAPE.shape}-${d}` + ).style("fill", color); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/domain.ts + + +/* harmony default export */ var domain = ({ + getYDomainMinMax(targets, type) { + const $$ = this; + const { axis, config } = $$; + const isMin = type === "min"; + const dataGroups = config.data_groups; + const ids = $$.mapToIds(targets); + const ys = $$.getValuesAsIdKeyed(targets); + if (dataGroups.length > 0) { + const hasValue = $$[`has${isMin ? "Negative" : "Positive"}ValueInTargets`](targets); + dataGroups.forEach((groupIds) => { + const idsInGroup = groupIds.filter((v) => ids.indexOf(v) >= 0); + if (idsInGroup.length) { + const baseId = idsInGroup[0]; + const baseAxisId = axis.getId(baseId); + if (hasValue && ys[baseId]) { + ys[baseId] = ys[baseId].map((v) => (isMin ? v < 0 : v > 0) ? v : 0); + } + idsInGroup.filter((v, i) => i > 0).forEach((id) => { + if (ys[id]) { + const axisId = axis.getId(id); + ys[id].forEach((v, i) => { + const val = +v; + const meetCondition = isMin ? val > 0 : val < 0; + if (axisId === baseAxisId && !(hasValue && meetCondition)) { + ys[baseId][i] += val; + } + }); + } + }); + } + }); + } + return getMinMax(type, Object.keys(ys).map((key) => getMinMax(type, ys[key]))); + }, + /** + * Check if hidden targets bound to the given axis id + * @param {string} id ID to be checked + * @returns {boolean} + * @private + */ + isHiddenTargetWithYDomain(id) { + const $$ = this; + return $$.state.hiddenTargetIds.some((v) => $$.axis.getId(v) === id); + }, + getYDomain(targets, axisId, xDomain) { + const $$ = this; + const { axis, config, scale } = $$; + const pfx = `axis_${axisId}`; + if ($$.isStackNormalized()) { + return [0, 100]; + } + const isLog = (scale == null ? void 0 : scale[axisId]) && scale[axisId].type === "log"; + const targetsByAxisId = targets.filter((t) => axis.getId(t.id) === axisId); + const yTargets = xDomain ? $$.filterByXDomain(targetsByAxisId, xDomain) : targetsByAxisId; + if (yTargets.length === 0) { + if ($$.isHiddenTargetWithYDomain(axisId)) { + return scale[axisId].domain(); + } else { + return axisId === "y2" ? scale.y.domain() : ( + // When all data bounds to y2, y Axis domain is called prior y2. + // So, it needs to call to get y2 domain here + $$.getYDomain(targets, "y2", xDomain) + ); + } + } + const yMin = config[`${pfx}_min`]; + const yMax = config[`${pfx}_max`]; + const center = config[`${pfx}_center`]; + const isInverted = config[`${pfx}_inverted`]; + const showHorizontalDataLabel = $$.hasDataLabel() && config.axis_rotated; + const showVerticalDataLabel = $$.hasDataLabel() && !config.axis_rotated; + let yDomainMin = $$.getYDomainMinMax(yTargets, "min"); + let yDomainMax = $$.getYDomainMinMax(yTargets, "max"); + let isZeroBased = [TYPE.BAR, TYPE.BUBBLE, TYPE.SCATTER, ...TYPE_BY_CATEGORY.Line].some((v) => { + const type = v.indexOf("area") > -1 ? "area" : v; + return $$.hasType(v, yTargets, true) && config[`${type}_zerobased`]; + }); + yDomainMin = isValue(yMin) ? yMin : isValue(yMax) ? yDomainMin <= yMax ? yDomainMin : yMax - 10 : yDomainMin; + yDomainMax = isValue(yMax) ? yMax : isValue(yMin) ? yMin <= yDomainMax ? yDomainMax : yMin + 10 : yDomainMax; + if (isNaN(yDomainMin)) { + yDomainMin = 0; + } + if (isNaN(yDomainMax)) { + yDomainMax = yDomainMin; + } + if (yDomainMin === yDomainMax) { + yDomainMin < 0 ? yDomainMax = 0 : yDomainMin = 0; + } + const isAllPositive = yDomainMin >= 0 && yDomainMax >= 0; + const isAllNegative = yDomainMin <= 0 && yDomainMax <= 0; + if (isValue(yMin) && isAllPositive || isValue(yMax) && isAllNegative) { + isZeroBased = false; + } + if (isZeroBased) { + isAllPositive && (yDomainMin = 0); + isAllNegative && (yDomainMax = 0); + } + const domainLength = Math.abs(yDomainMax - yDomainMin); + let padding = { top: domainLength * 0.1, bottom: domainLength * 0.1 }; + if (isDefined(center)) { + const yDomainAbs = Math.max(Math.abs(yDomainMin), Math.abs(yDomainMax)); + yDomainMax = center + yDomainAbs; + yDomainMin = center - yDomainAbs; + } + if (showHorizontalDataLabel) { + const diff = diffDomain(scale.y.range()); + const ratio = $$.getDataLabelLength(yDomainMin, yDomainMax, "width").map((v) => v / diff); + ["bottom", "top"].forEach((v, i) => { + padding[v] += domainLength * (ratio[i] / (1 - ratio[0] - ratio[1])); + }); + } else if (showVerticalDataLabel) { + const lengths = $$.getDataLabelLength(yDomainMin, yDomainMax, "height"); + ["bottom", "top"].forEach((v, i) => { + padding[v] += $$.convertPixelToScale("y", lengths[i], domainLength); + }); + } + padding = $$.getResettedPadding(padding); + const p = config[`${pfx}_padding`]; + if (notEmpty(p)) { + ["bottom", "top"].forEach((v) => { + padding[v] = axis.getPadding(p, v, padding[v], domainLength); + }); + } + if (isZeroBased) { + isAllPositive && (padding.bottom = yDomainMin); + isAllNegative && (padding.top = -yDomainMax); + } + const domain = isLog ? [yDomainMin, yDomainMax].map((v) => v < 0 ? 0 : v) : [yDomainMin - padding.bottom, yDomainMax + padding.top]; + return isInverted ? domain.reverse() : domain; + }, + getXDomainMinMax(targets, type) { + var _a; + const $$ = this; + const configValue = $$.config[`axis_x_${type}`]; + const dataValue = getMinMax( + type, + targets.map((t) => getMinMax(type, t.values.map((v) => v.x))) + ); + let value = isObject(configValue) ? configValue.value : configValue; + value = isDefined(value) && ((_a = $$.axis) == null ? void 0 : _a.isTimeSeries()) ? parseDate.bind(this)(value) : value; + if (isObject(configValue) && configValue.fit && (type === "min" && value < dataValue || type === "max" && value > dataValue)) { + value = void 0; + } + return isDefined(value) ? value : dataValue; + }, + /** + * Get x Axis padding + * @param {Array} domain x Axis domain + * @param {number} tickCount Tick count + * @returns {object} Padding object values with 'left' & 'right' key + * @private + */ + getXDomainPadding(domain, tickCount) { + const $$ = this; + const { axis, config } = $$; + const padding = config.axis_x_padding; + const isTimeSeriesTickCount = axis.isTimeSeries() && tickCount; + const diff = diffDomain(domain); + let defaultValue; + if (axis.isCategorized() || isTimeSeriesTickCount) { + defaultValue = 0; + } else if ($$.hasType("bar")) { + const maxDataCount = $$.getMaxDataCount(); + defaultValue = maxDataCount > 1 ? diff / (maxDataCount - 1) / 2 : 0.5; + } else { + defaultValue = $$.getResettedPadding(diff * 0.01); + } + let { left = defaultValue, right = defaultValue } = isNumber(padding) ? { left: padding, right: padding } : padding; + if (padding.unit === "px") { + const domainLength = Math.abs(diff + diff * 0.2); + left = axis.getPadding(padding, "left", defaultValue, domainLength); + right = axis.getPadding(padding, "right", defaultValue, domainLength); + } else { + const range = diff + left + right; + if (isTimeSeriesTickCount && range) { + const relativeTickWidth = diff / tickCount / range; + left = left / range / relativeTickWidth; + right = right / range / relativeTickWidth; + } + } + return { left, right }; + }, + /** + * Get x Axis domain + * @param {Array} targets targets + * @returns {Array} x Axis domain + * @private + */ + getXDomain(targets) { + const $$ = this; + const { axis, config, scale: { x } } = $$; + const isInverted = config.axis_x_inverted; + const domain = [ + $$.getXDomainMinMax(targets, "min"), + $$.getXDomainMinMax(targets, "max") + ]; + let [min = 0, max = 0] = domain; + if (x.type !== "log") { + const isCategorized = axis.isCategorized(); + const isTimeSeries = axis.isTimeSeries(); + const padding = $$.getXDomainPadding(domain); + let [firstX, lastX] = domain; + if (firstX - lastX === 0 && !isCategorized) { + if (isTimeSeries) { + firstX = new Date(firstX.getTime() * 0.5); + lastX = new Date(lastX.getTime() * 1.5); + } else { + firstX = firstX === 0 ? 1 : firstX * 0.5; + lastX = lastX === 0 ? -1 : lastX * 1.5; + } + } + if (firstX || firstX === 0) { + min = isTimeSeries ? new Date(firstX.getTime() - padding.left) : firstX - padding.left; + } + if (lastX || lastX === 0) { + max = isTimeSeries ? new Date(lastX.getTime() + padding.right) : lastX + padding.right; + } + } + return isInverted ? [max, min] : [min, max]; + }, + updateXDomain(targets, withUpdateXDomain, withUpdateOrgXDomain, withTrim, domain) { + var _a; + const $$ = this; + const { config, org, scale: { x, subX } } = $$; + const zoomEnabled = config.zoom_enabled; + if (withUpdateOrgXDomain) { + x.domain(domain || sortValue($$.getXDomain(targets), !config.axis_x_inverted)); + org.xDomain = x.domain(); + subX.domain(x.domain()); + (_a = $$.brush) == null ? void 0 : _a.scale(subX); + } + if (withUpdateXDomain) { + const domainValue = domain || (!$$.brush || brushEmpty($$)) ? org.xDomain : getBrushSelection($$).map(subX.invert); + x.domain(domainValue); + } + if (withUpdateOrgXDomain || withUpdateXDomain) { + zoomEnabled && $$.zoom.updateScaleExtent(); + } + withTrim && x.domain($$.trimXDomain(x.orgDomain())); + return x.domain(); + }, + /** + * Trim x domain when given domain surpasses the range + * @param {Array} domain Domain value + * @returns {Array} Trimed domain if given domain is out of range + * @private + */ + trimXDomain(domain) { + const $$ = this; + const isInverted = $$.config.axis_x_inverted; + const zoomDomain = $$.getZoomDomain(); + const [min, max] = zoomDomain; + if (isInverted ? domain[0] >= min : domain[0] <= min) { + domain[1] = +domain[1] + (min - domain[0]); + domain[0] = min; + } + if (isInverted ? domain[1] <= max : domain[1] >= max) { + domain[0] = +domain[0] - (domain[1] - max); + domain[1] = max; + } + return domain; + }, + /** + * Get subchart/zoom domain + * @param {string} type "subX" or "zoom" + * @param {boolean} getCurrent Get current domain if true + * @returns {Array} zoom domain + * @private + */ + getZoomDomain(type = "zoom", getCurrent = false) { + const $$ = this; + const { config, scale, org } = $$; + let [min, max] = getCurrent && scale[type] ? scale[type].domain() : org.xDomain; + if (type === "zoom") { + if (isDefined(config.zoom_x_min)) { + min = getMinMax("min", [min, config.zoom_x_min]); + } + if (isDefined(config.zoom_x_max)) { + max = getMinMax("max", [max, config.zoom_x_max]); + } + } + return [min, max]; + }, + /** + * Return zoom domain from given domain + * - 'category' type need to add offset to original value + * @param {Array} domainValue domain value + * @returns {Array} Zoom domain + * @private + */ + getZoomDomainValue(domainValue) { + const $$ = this; + const { config, axis } = $$; + if (axis.isCategorized() && Array.isArray(domainValue)) { + const isInverted = config.axis_x_inverted; + const domain = domainValue.map( + (v, i) => Number(v) + (i === 0 ? +isInverted : +!isInverted) + ); + return domain; + } + return domainValue; + }, + /** + * Converts pixels to axis' scale values + * @param {string} type Axis type + * @param {number} pixels Pixels + * @param {number} domainLength Domain length + * @returns {number} + * @private + */ + convertPixelToScale(type, pixels, domainLength) { + const $$ = this; + const { config, state } = $$; + const isRotated = config.axis_rotated; + let length; + if (type === "x") { + length = isRotated ? "height" : "width"; + } else { + length = isRotated ? "width" : "height"; + } + return domainLength * (pixels / state[length]); + }, + /** + * Check if the given domain is within subchart/zoom range + * @param {Array} domain Target domain value + * @param {Array} current Current subchart/zoom domain value + * @param {Array} range subchart/zoom range value + * @returns {boolean} + * @private + */ + withinRange(domain, current = [0, 0], range) { + const $$ = this; + const isInverted = $$.config.axis_x_inverted; + const [min, max] = range; + if (Array.isArray(domain)) { + const target = [...domain]; + isInverted && target.reverse(); + if (target[0] < target[1]) { + return domain.every( + (v, i) => (i === 0 ? isInverted ? +v <= min : +v >= min : isInverted ? +v >= max : +v <= max) && !domain.every((v2, i2) => v2 === current[i2]) + ); + } + } + return false; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/format.ts + +function getFormat($$, typeValue, v) { + const { config } = $$; + const type = `axis_${typeValue}_tick_format`; + const format = config[type] ? config[type] : $$.defaultValueFormat; + return format.call($$.api, v); +} +/* harmony default export */ var format = ({ + yFormat(v) { + return getFormat(this, "y", v); + }, + y2Format(v) { + return getFormat(this, "y2", v); + }, + /** + * Get default value format function + * @returns {Function} formatter function + * @private + */ + getDefaultValueFormat() { + const $$ = this; + const { defaultArcValueFormat, yFormat, y2Format } = $$; + const hasArc = $$.hasArcType(null, ["gauge", "polar", "radar"]); + return function(v, ratio, id) { + const format = hasArc ? defaultArcValueFormat : $$.axis && $$.axis.getId(id) === "y2" ? y2Format : yFormat; + return format.call($$, v, ratio); + }; + }, + defaultValueFormat(v) { + return isArray(v) ? v.join("~") : isValue(v) ? +v : ""; + }, + defaultArcValueFormat(v, ratio) { + return `${(ratio * 100).toFixed(1)}%`; + }, + defaultPolarValueFormat(v) { + return `${v}`; + }, + dataLabelFormat(targetId) { + const $$ = this; + const dataLabels = $$.config.data_labels; + const defaultFormat = (v) => { + const delimiter = "~"; + let res = v; + if (isArray(v)) { + res = v.join(delimiter); + } else if (isObject(v)) { + res = Object.values(v).join(delimiter); + } + return res; + }; + let format = defaultFormat; + if (isFunction(dataLabels.format)) { + format = dataLabels.format; + } else if (isObjectType(dataLabels.format)) { + if (dataLabels.format[targetId]) { + format = dataLabels.format[targetId] === true ? defaultFormat : dataLabels.format[targetId]; + } else { + format = () => ""; + } + } + return format.bind($$.api); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/legend.ts + + + + + +function getLegendColor(id) { + const $$ = this; + const data = $$.getDataById(id); + const color = $$.levelColor ? $$.levelColor(data.values[0].value) : $$.color(data); + return color; +} +function getFormattedText(id, formatted = true) { + var _a; + const { config } = this; + let text = (_a = config.data_names[id]) != null ? _a : id; + if (formatted && isFunction(config.legend_format)) { + text = config.legend_format(text); + } + return text; +} +/* harmony default export */ var internals_legend = ({ + /** + * Initialize the legend. + * @private + */ + initLegend() { + const $$ = this; + const { config, $el } = $$; + $$.legendItemTextBox = {}; + $$.state.legendHasRendered = false; + if (config.legend_show) { + if (!config.legend_contents_bindto) { + $el.legend = $$.$el.svg.append("g").classed($LEGEND.legend, true).attr("transform", $$.getTranslate("legend")); + } + $$.updateLegend(); + } else { + $$.state.hiddenLegendIds = $$.mapToIds($$.data.targets); + } + }, + /** + * Update legend element + * @param {Array} targetIds ID's of target + * @param {object} options withTransform : Whether to use the transform property / withTransitionForTransform: Whether transition is used when using the transform property / withTransition : whether or not to transition. + * @param {object} transitions Return value of the generateTransitions + * @private + */ + updateLegend(targetIds, options, transitions) { + var _a; + const $$ = this; + const { config, state, scale, $el } = $$; + const optionz = options || { + withTransform: false, + withTransitionForTransform: false, + withTransition: false + }; + optionz.withTransition = getOption(optionz, "withTransition", true); + optionz.withTransitionForTransform = getOption(optionz, "withTransitionForTransform", true); + if (config.legend_contents_bindto && config.legend_contents_template) { + $$.updateLegendTemplate(); + } else if (!state.hasTreemap) { + $$.updateLegendElement( + targetIds || $$.mapToIds($$.data.targets), + optionz, + transitions + ); + } + (_a = $el.legend) == null ? void 0 : _a.selectAll(`.${$LEGEND.legendItem}`).classed($LEGEND.legendItemHidden, function(id) { + const hide = !$$.isTargetToShow(id); + if (hide) { + this.style.opacity = null; + } + return hide; + }); + $$.updateScales(false, !scale.zoom); + $$.updateSvgSize(); + $$.transformAll(optionz.withTransitionForTransform, transitions); + state.legendHasRendered = true; + }, + /** + * Update legend using template option + * @private + */ + updateLegendTemplate() { + const $$ = this; + const { config, $el } = $$; + const wrapper = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(config.legend_contents_bindto); + const template = config.legend_contents_template; + if (!wrapper.empty()) { + const targets = $$.mapToIds($$.data.targets); + const ids = []; + let html = ""; + targets.forEach((v) => { + const content = isFunction(template) ? template.bind($$.api)(v, $$.color(v), $$.api.data(v)[0].values) : tplProcess(template, { + COLOR: $$.color(v), + TITLE: v + }); + if (content) { + ids.push(v); + html += content; + } + }); + const legendItem = wrapper.html(html).selectAll(function() { + return this.childNodes; + }).data(ids); + $$.setLegendItem(legendItem); + $el.legend = wrapper; + } + }, + /** + * Update the size of the legend. + * @param {Obejct} size Size object + * @private + */ + updateSizeForLegend(size) { + const $$ = this; + const { + config, + state: { + isLegendTop, + isLegendLeft, + isLegendRight, + isLegendInset, + current + } + } = $$; + const { width, height } = size; + const insetLegendPosition = { + top: isLegendTop ? $$.getCurrentPaddingByDirection("top") + config.legend_inset_y + 5.5 : current.height - height - $$.getCurrentPaddingByDirection("bottom") - config.legend_inset_y, + left: isLegendLeft ? $$.getCurrentPaddingByDirection("left") + config.legend_inset_x + 0.5 : current.width - width - $$.getCurrentPaddingByDirection("right") - config.legend_inset_x + 0.5 + }; + $$.state.margin3 = { + top: isLegendRight ? 0 : isLegendInset ? insetLegendPosition.top : current.height - height, + right: NaN, + bottom: 0, + left: isLegendRight ? current.width - width : isLegendInset ? insetLegendPosition.left : 0 + }; + }, + /** + * Transform Legend + * @param {boolean} withTransition whether or not to transition. + * @private + */ + transformLegend(withTransition) { + const $$ = this; + const { $el: { legend }, $T } = $$; + $T(legend, withTransition).attr("transform", $$.getTranslate("legend")); + }, + /** + * Update the legend step + * @param {number} step Step value + * @private + */ + updateLegendStep(step) { + this.state.legendStep = step; + }, + /** + * Update legend item width + * @param {number} width Width value + * @private + */ + updateLegendItemWidth(width) { + this.state.legendItemWidth = width; + }, + /** + * Update legend item height + * @param {number} height Height value + * @private + */ + updateLegendItemHeight(height) { + this.state.legendItemHeight = height; + }, + /** + * Update legend item color + * @param {string} id Corresponding data ID value + * @param {string} color Color value + * @private + */ + updateLegendItemColor(id, color) { + const { legend } = this.$el; + if (legend) { + legend.select(`.${$LEGEND.legendItem}-${id} line`).style("stroke", color); + } + }, + /** + * Get the width of the legend + * @returns {number} width + * @private + */ + getLegendWidth() { + const $$ = this; + const { current: { width }, isLegendRight, isLegendInset, legendItemWidth, legendStep } = $$.state; + return $$.config.legend_show ? isLegendRight || isLegendInset ? legendItemWidth * (legendStep + 1) : width : 0; + }, + /** + * Get the height of the legend + * @returns {number} height + * @private + */ + getLegendHeight() { + var _a; + const $$ = this; + const { current, isLegendRight, legendItemHeight, legendStep } = $$.state; + const isFitPadding = ((_a = $$.config.padding) == null ? void 0 : _a.mode) === "fit"; + return $$.config.legend_show ? isLegendRight ? current.height : (isFitPadding ? 10 : Math.max(20, legendItemHeight)) * (legendStep + 1) : 0; + }, + /** + * Get the opacity of the legend that is unfocused + * @param {d3.selection} legendItem Legend item node + * @returns {string|null} opacity + * @private + */ + opacityForUnfocusedLegend(legendItem) { + return legendItem.classed($LEGEND.legendItemHidden) ? null : "0.3"; + }, + /** + * Toggles the focus of the legend + * @param {Array} targetIds ID's of target + * @param {boolean} focus whether or not to focus. + * @private + */ + toggleFocusLegend(targetIds, focus) { + const $$ = this; + const { $el: { legend }, $T } = $$; + const targetIdz = $$.mapToTargetIds(targetIds); + legend && $T(legend.selectAll(`.${$LEGEND.legendItem}`).filter((id) => targetIdz.indexOf(id) >= 0).classed($FOCUS.legendItemFocused, focus)).style("opacity", function() { + return focus ? null : $$.opacityForUnfocusedLegend.call($$, (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this)); + }); + }, + /** + * Revert the legend to its default state + * @private + */ + revertLegend() { + const $$ = this; + const { $el: { legend }, $T } = $$; + legend && $T(legend.selectAll(`.${$LEGEND.legendItem}`).classed($FOCUS.legendItemFocused, false)).style("opacity", null); + }, + /** + * Shows the legend + * @param {Array} targetIds ID's of target + * @private + */ + showLegend(targetIds) { + const $$ = this; + const { config, $el, $T } = $$; + if (!config.legend_show) { + config.legend_show = true; + $el.legend ? $el.legend.style("visibility", null) : $$.initLegend(); + !$$.state.legendHasRendered && $$.updateLegend(); + } + $$.removeHiddenLegendIds(targetIds); + $T( + $el.legend.selectAll($$.selectorLegends(targetIds)).style("visibility", null) + ).style("opacity", null); + }, + /** + * Hide the legend + * @param {Array} targetIds ID's of target + * @private + */ + hideLegend(targetIds) { + const $$ = this; + const { config, $el: { legend } } = $$; + if (config.legend_show && isEmpty(targetIds)) { + config.legend_show = false; + legend.style("visibility", "hidden"); + } + $$.addHiddenLegendIds(targetIds); + legend.selectAll($$.selectorLegends(targetIds)).style("opacity", "0").style("visibility", "hidden"); + }, + /** + * Get legend item textbox dimension + * @param {string} id Data ID + * @param {HTMLElement|d3.selection} textElement Text node element + * @returns {object} Bounding rect + * @private + */ + getLegendItemTextBox(id, textElement) { + const $$ = this; + const { cache, state } = $$; + let data; + const cacheKey = KEY.legendItemTextBox; + if (id) { + data = !state.redrawing && cache.get(cacheKey) || {}; + if (!data[id]) { + data[id] = $$.getTextRect(textElement, $LEGEND.legendItem); + cache.add(cacheKey, data); + } + data = data[id]; + } + return data; + }, + /** + * Set legend item style & bind events + * @param {d3.selection} item Item node + * @private + */ + setLegendItem(item) { + const $$ = this; + const { $el, api, config, state } = $$; + const isTouch = state.inputType === "touch"; + const hasGauge = $$.hasType("gauge"); + const useCssRule = config.boost_useCssRule; + const interaction = config.legend_item_interaction; + item.attr("class", function(id) { + const node = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + const itemClass = !node.empty() && node.attr("class") || ""; + return itemClass + $$.generateClass($LEGEND.legendItem, id); + }).style("visibility", (id) => $$.isLegendToShow(id) ? null : "hidden"); + if (config.interaction_enabled) { + if (useCssRule) { + [ + [`.${$LEGEND.legendItem}`, "cursor:pointer"], + [`.${$LEGEND.legendItem} text`, "pointer-events:none"], + [`.${$LEGEND.legendItemPoint} text`, "pointer-events:none"], + [`.${$LEGEND.legendItemTile}`, "pointer-events:none"], + [`.${$LEGEND.legendItemEvent}`, "fill-opacity:0"] + ].forEach((v) => { + const [selector, props] = v; + $$.setCssRule(false, selector, [props])($el.legend); + }); + } + item.on( + interaction.dblclick ? "dblclick" : "click", + interaction || isFunction(config.legend_item_onclick) ? function(event, id) { + if (!callFn(config.legend_item_onclick, api, id)) { + const { altKey, target, type } = event; + if (type === "dblclick" || altKey) { + if (state.hiddenTargetIds.length && target.parentNode.getAttribute("class").indexOf( + $LEGEND.legendItemHidden + ) === -1) { + api.show(); + } else { + api.hide(); + api.show(id); + } + } else { + api.toggle(id); + (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).classed($FOCUS.legendItemFocused, false); + } + } + isTouch && $$.hideTooltip(); + } : null + ); + !isTouch && item.on("mouseout", interaction || isFunction(config.legend_item_onout) ? function(event, id) { + if (!callFn(config.legend_item_onout, api, id)) { + (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).classed($FOCUS.legendItemFocused, false); + if (hasGauge) { + $$.undoMarkOverlapped($$, `.${$GAUGE.gaugeValue}`); + } + $$.api.revert(); + } + } : null).on("mouseover", interaction || isFunction(config.legend_item_onover) ? function(event, id) { + if (!callFn(config.legend_item_onover, api, id)) { + (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).classed($FOCUS.legendItemFocused, true); + if (hasGauge) { + $$.markOverlapped(id, $$, `.${$GAUGE.gaugeValue}`); + } + if (!state.transiting && $$.isTargetToShow(id)) { + api.focus(id); + } + } + } : null); + !item.empty() && item.on("click mouseout mouseover") && item.style("cursor", $$.getStylePropValue("pointer")); + } + }, + /** + * Update the legend + * @param {Array} targetIds ID's of target + * @param {object} options withTransform : Whether to use the transform property / withTransitionForTransform: Whether transition is used when using the transform property / withTransition : whether or not to transition. + * @private + */ + updateLegendElement(targetIds, options) { + const $$ = this; + const { config, state, $el: { legend }, $T } = $$; + const legendType = config.legend_item_tile_type; + const isRectangle = legendType !== "circle"; + const legendItemR = config.legend_item_tile_r; + const itemTileSize = { + width: isRectangle ? config.legend_item_tile_width : legendItemR * 2, + height: isRectangle ? config.legend_item_tile_height : legendItemR * 2 + }; + const dimension = { + padding: { + top: 4, + right: 10 + }, + max: { + width: 0, + height: 0 + }, + posMin: 10, + step: 0, + tileWidth: itemTileSize.width + 5, + totalLength: 0 + }; + const sizes = { + offsets: {}, + widths: {}, + heights: {}, + margins: [0], + steps: {} + }; + let xForLegend; + let yForLegend; + let background; + const targetIdz = targetIds.filter((id) => !isDefined(config.data_names[id]) || config.data_names[id] !== null); + const withTransition = options.withTransition; + const updatePositions = $$.getUpdateLegendPositions(targetIdz, dimension, sizes); + if (state.isLegendInset) { + dimension.step = config.legend_inset_step ? config.legend_inset_step : targetIdz.length; + $$.updateLegendStep(dimension.step); + } + if (state.isLegendRight) { + xForLegend = (id) => dimension.max.width * sizes.steps[id]; + yForLegend = (id) => sizes.margins[sizes.steps[id]] + sizes.offsets[id]; + } else if (state.isLegendInset) { + xForLegend = (id) => dimension.max.width * sizes.steps[id] + 10; + yForLegend = (id) => sizes.margins[sizes.steps[id]] + sizes.offsets[id]; + } else { + xForLegend = (id) => sizes.margins[sizes.steps[id]] + sizes.offsets[id]; + yForLegend = (id) => dimension.max.height * sizes.steps[id]; + } + const posFn = { + xText: (id, i) => xForLegend(id, i) + 4 + itemTileSize.width, + xRect: (id, i) => xForLegend(id, i), + x1Tile: (id, i) => xForLegend(id, i) - 2, + x2Tile: (id, i) => xForLegend(id, i) - 2 + itemTileSize.width, + yText: (id, i) => yForLegend(id, i) + 9, + yRect: (id, i) => yForLegend(id, i) - 5, + yTile: (id, i) => yForLegend(id, i) + 4 + }; + $$.generateLegendItem(targetIdz, itemTileSize, updatePositions, posFn); + background = legend.select(`.${$LEGEND.legendBackground} rect`); + if (state.isLegendInset && dimension.max.width > 0 && background.size() === 0) { + background = legend.insert("g", `.${$LEGEND.legendItem}`).attr("class", $LEGEND.legendBackground).append("rect"); + } + if (config.legend_tooltip) { + legend.selectAll("title").data(targetIdz).text((id) => getFormattedText.bind($$)(id, false)); + } + const texts = legend.selectAll("text").data(targetIdz).text((id) => getFormattedText.bind($$)(id)).each(function(id, i) { + updatePositions(this, id, i); + }); + $T(texts, withTransition).attr("x", posFn.xText).attr("y", posFn.yText); + const rects = legend.selectAll(`rect.${$LEGEND.legendItemEvent}`).data(targetIdz); + $T(rects, withTransition).attr("width", (id) => sizes.widths[id]).attr("height", (id) => sizes.heights[id]).attr("x", posFn.xRect).attr("y", posFn.yRect); + $$.updateLegendItemPos(targetIdz, withTransition, posFn); + if (background) { + $T(background, withTransition).attr("height", $$.getLegendHeight() - 12).attr("width", dimension.max.width * (dimension.step + 1) + 10); + } + $$.updateLegendItemWidth(dimension.max.width); + $$.updateLegendItemHeight(dimension.max.height); + $$.updateLegendStep(dimension.step); + }, + /** + * Get position update function + * @param {Array} targetIdz Data ids + * @param {object} dimension Dimension object + * @param {object} sizes Size object + * @returns {Function} Update position function + * @private + */ + getUpdateLegendPositions(targetIdz, dimension, sizes) { + const $$ = this; + const { config, state } = $$; + const isLegendRightOrInset = state.isLegendRight || state.isLegendInset; + return function(textElement, id, index) { + const reset = index === 0; + const isLast = index === targetIdz.length - 1; + const box = $$.getLegendItemTextBox(id, textElement); + const itemWidth = box.width + dimension.tileWidth + (isLast && !isLegendRightOrInset ? 0 : dimension.padding.right) + config.legend_padding; + const itemHeight = box.height + dimension.padding.top; + const itemLength = isLegendRightOrInset ? itemHeight : itemWidth; + const areaLength = isLegendRightOrInset ? $$.getLegendHeight() : $$.getLegendWidth(); + let margin; + const updateValues = function(id2, withoutStep) { + if (!withoutStep) { + margin = (areaLength - dimension.totalLength - itemLength) / 2; + if (margin < dimension.posMin) { + margin = (areaLength - itemLength) / 2; + dimension.totalLength = 0; + dimension.step++; + } + } + sizes.steps[id2] = dimension.step; + sizes.margins[dimension.step] = state.isLegendInset ? 10 : margin; + sizes.offsets[id2] = dimension.totalLength; + dimension.totalLength += itemLength; + }; + if (reset) { + dimension.totalLength = 0; + dimension.step = 0; + dimension.max.width = 0; + dimension.max.height = 0; + } + if (config.legend_show && !$$.isLegendToShow(id)) { + sizes.widths[id] = 0; + sizes.heights[id] = 0; + sizes.steps[id] = 0; + sizes.offsets[id] = 0; + return; + } + sizes.widths[id] = itemWidth; + sizes.heights[id] = itemHeight; + if (!dimension.max.width || itemWidth >= dimension.max.width) { + dimension.max.width = itemWidth; + } + if (!dimension.max.height || itemHeight >= dimension.max.height) { + dimension.max.height = itemHeight; + } + const maxLength = isLegendRightOrInset ? dimension.max.height : dimension.max.width; + if (config.legend_equally) { + Object.keys(sizes.widths).forEach((id2) => sizes.widths[id2] = dimension.max.width); + Object.keys(sizes.heights).forEach( + (id2) => sizes.heights[id2] = dimension.max.height + ); + margin = (areaLength - maxLength * targetIdz.length) / 2; + if (margin < dimension.posMin) { + dimension.totalLength = 0; + dimension.step = 0; + targetIdz.forEach((id2) => updateValues(id2)); + } else { + updateValues(id, true); + } + } else { + updateValues(id); + } + }; + }, + /** + * Generate legend item elements + * @param {Array} targetIdz Data ids + * @param {object} itemTileSize Item tile size {width, height} + * @param {Function} updatePositions Update position function + * @param {object} posFn Position functions + * @private + */ + generateLegendItem(targetIdz, itemTileSize, updatePositions, posFn) { + const $$ = this; + const { config, state, $el: { legend } } = $$; + const usePoint = config.legend_usePoint; + const legendItemR = config.legend_item_tile_r; + const legendType = config.legend_item_tile_type; + const isRectangle = legendType !== "circle"; + const isLegendRightOrInset = state.isLegendRight || state.isLegendInset; + const pos = -200; + const l = legend.selectAll(`.${$LEGEND.legendItem}`).data(targetIdz).enter().append("g"); + $$.setLegendItem(l); + if (config.legend_tooltip) { + l.append("title").text((id) => id); + } + l.append("text").text((id) => getFormattedText.bind($$)(id)).each(function(id, i) { + updatePositions(this, id, i); + }).style("pointer-events", $$.getStylePropValue("none")).attr("x", isLegendRightOrInset ? posFn.xText : pos).attr("y", isLegendRightOrInset ? pos : posFn.yText); + l.append("rect").attr("class", $LEGEND.legendItemEvent).style("fill-opacity", $$.getStylePropValue("0")).attr("x", isLegendRightOrInset ? posFn.xRect : pos).attr("y", isLegendRightOrInset ? pos : posFn.yRect); + if (usePoint) { + const ids = []; + l.append((d) => { + const pattern = notEmpty(config.point_pattern) ? config.point_pattern : [config.point_type]; + ids.indexOf(d) === -1 && ids.push(d); + let point = pattern[ids.indexOf(d) % pattern.length]; + if (point === "rectangle") { + point = "rect"; + } + return browser_doc.createElementNS( + external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.namespaces.svg, + "hasValidPointType" in $$ && $$.hasValidPointType(point) ? point : "use" + ); + }).attr("class", $LEGEND.legendItemPoint).style("fill", getLegendColor.bind($$)).style("pointer-events", $$.getStylePropValue("none")).attr("href", (data, idx, selection) => { + const node = selection[idx]; + const nodeName = node.nodeName.toLowerCase(); + const id = $$.getTargetSelectorSuffix(data); + return nodeName === "use" ? `#${state.datetimeId}-point${id}` : void 0; + }); + } else { + l.append(isRectangle ? "line" : legendType).attr("class", $LEGEND.legendItemTile).style("stroke", getLegendColor.bind($$)).style("pointer-events", $$.getStylePropValue("none")).call((selection) => { + if (legendType === "circle") { + selection.attr("r", legendItemR).style("fill", getLegendColor.bind($$)).attr("cx", isLegendRightOrInset ? posFn.x2Tile : pos).attr("cy", isLegendRightOrInset ? pos : posFn.yTile); + } else if (isRectangle) { + selection.attr("stroke-width", itemTileSize.height).attr("x1", isLegendRightOrInset ? posFn.x1Tile : pos).attr("y1", isLegendRightOrInset ? pos : posFn.yTile).attr("x2", isLegendRightOrInset ? posFn.x2Tile : pos).attr("y2", isLegendRightOrInset ? pos : posFn.yTile); + } + }); + } + }, + /** + * Update legend item position + * @param {Array} targetIdz Data ids + * @param {boolean} withTransition Whether or not to apply transition + * @param {object} posFn Position functions + * @private + */ + updateLegendItemPos(targetIdz, withTransition, posFn) { + const $$ = this; + const { config, $el: { legend }, $T } = $$; + const usePoint = config.legend_usePoint; + const legendType = config.legend_item_tile_type; + const isRectangle = legendType !== "circle"; + if (usePoint) { + const tiles = legend.selectAll(`.${$LEGEND.legendItemPoint}`).data(targetIdz); + $T(tiles, withTransition).each(function() { + const nodeName = this.nodeName.toLowerCase(); + const pointR = config.point_r; + let x = "x"; + let y = "y"; + let xOffset = 2; + let yOffset = 2.5; + let radius = null; + let width = null; + let height = null; + if (nodeName === "circle") { + const size = pointR * 0.2; + x = "cx"; + y = "cy"; + radius = pointR + size; + xOffset = pointR * 2; + yOffset = -size; + } else if (nodeName === "rect") { + const size = pointR * 2.5; + width = size; + height = size; + yOffset = 3; + } + (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).attr(x, (d) => posFn.x1Tile(d) + xOffset).attr(y, (d) => posFn.yTile(d) - yOffset).attr("r", radius).attr("width", width).attr("height", height); + }); + } else { + const tiles = legend.selectAll(`.${$LEGEND.legendItemTile}`).data(targetIdz); + $T(tiles, withTransition).style("stroke", getLegendColor.bind($$)).call((selection) => { + if (legendType === "circle") { + selection.attr("cx", (d) => { + const x2 = posFn.x2Tile(d); + return x2 - (x2 - posFn.x1Tile(d)) / 2; + }).attr("cy", posFn.yTile); + } else if (isRectangle) { + selection.attr("x1", posFn.x1Tile).attr("y1", posFn.yTile).attr("x2", posFn.x2Tile).attr("y2", posFn.yTile); + } + }); + } + } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-transition","commonjs2":"d3-transition","amd":"d3-transition","root":"d3"} +var external_commonjs_d3_transition_commonjs2_d3_transition_amd_d3_transition_root_d3_ = __webpack_require__(8); +;// CONCATENATED MODULE: ./src/ChartInternal/internals/redraw.ts + + + + +/* harmony default export */ var redraw = ({ + redraw(options = {}) { + var _a, _b, _c, _d; + const $$ = this; + const { config, state, $el } = $$; + const { main, treemap } = $el; + state.redrawing = true; + const targetsToShow = $$.filterTargetsToShow($$.data.targets); + const { flow, initializing } = options; + const wth = $$.getWithOption(options); + const duration = wth.Transition ? config.transition_duration : 0; + const durationForExit = wth.TransitionForExit ? duration : 0; + const durationForAxis = wth.TransitionForAxis ? duration : 0; + const transitions = (_a = $$.axis) == null ? void 0 : _a.generateTransitions(durationForAxis); + $$.updateSizes(initializing); + if (wth.Legend && config.legend_show) { + options.withTransition = !!duration; + !treemap && $$.updateLegend($$.mapToIds($$.data.targets), options, transitions); + } else if (wth.Dimension) { + $$.updateDimension(true); + } + config.data_empty_label_text && main.select(`text.${$TEXT.text}.${$COMMON.empty}`).attr("x", state.width / 2).attr("y", state.height / 2).text(config.data_empty_label_text).style("display", targetsToShow.length ? "none" : null); + if (state.hasAxis) { + $$.axis.redrawAxis(targetsToShow, wth, transitions, flow, initializing); + $$.hasGrid() && $$.updateGrid(); + config.regions.length && $$.updateRegion(); + ["bar", "candlestick", "line", "area"].forEach((v) => { + const name = capitalize(v); + if (/^(line|area)$/.test(v) && $$.hasTypeOf(name) || $$.hasType(v)) { + $$[`update${name}`](wth.TransitionForExit); + } + }); + $el.text && main.selectAll(`.${$SELECT.selectedCircles}`).filter($$.isBarType.bind($$)).selectAll("circle").remove(); + if (config.interaction_enabled && !flow && wth.EventRect) { + $$.redrawEventRect(); + (_b = $$.bindZoomEvent) == null ? void 0 : _b.call($$); + } + } else { + $el.arcs && $$.redrawArc(duration, durationForExit, wth.Transform); + $el.radar && $$.redrawRadar(); + $el.polar && $$.redrawPolar(); + $el.funnel && $$.redrawFunnel(); + treemap && $$.updateTreemap(durationForExit); + } + if (!state.resizing && !treemap && ($$.hasPointType() || state.hasRadar)) { + $$.updateCircle(); + } else if ((_c = $$.hasLegendDefsPoint) == null ? void 0 : _c.call($$)) { + $$.data.targets.forEach($$.point("create", this)); + } + $$.hasDataLabel() && !$$.hasArcType(null, ["radar"]) && $$.updateText(); + (_d = $$.redrawTitle) == null ? void 0 : _d.call($$); + initializing && $$.updateTypesElements(); + $$.generateRedrawList(targetsToShow, flow, duration, wth.Subchart); + $$.updateTooltipOnRedraw(); + $$.callPluginHook("$redraw", options, duration); + }, + /** + * Generate redraw list + * @param {object} targets targets data to be shown + * @param {object} flow flow object + * @param {number} duration duration value + * @param {boolean} withSubchart whether or not to show subchart + * @private + */ + generateRedrawList(targets, flow, duration, withSubchart) { + const $$ = this; + const { config, state } = $$; + const shape = $$.getDrawShape(); + if (state.hasAxis) { + config.subchart_show && $$.redrawSubchart(withSubchart, duration, shape); + } + const flowFn = flow && $$.generateFlow({ + targets, + flow, + duration: flow.duration, + shape, + xv: $$.xv.bind($$) + }); + const withTransition = (duration || flowFn) && isTabVisible(); + const redrawList = $$.getRedrawList(shape, flow, flowFn, withTransition); + const afterRedraw = () => { + flowFn && flowFn(); + state.redrawing = false; + callFn(config.onrendered, $$.api); + }; + if (afterRedraw) { + if (withTransition && redrawList.length) { + const waitForDraw = generateWait(); + (0,external_commonjs_d3_transition_commonjs2_d3_transition_amd_d3_transition_root_d3_.transition)().duration(duration).each(() => { + redrawList.reduce((acc, t1) => acc.concat(t1), []).forEach((t) => waitForDraw.add(t)); + }).call(waitForDraw, afterRedraw); + } else if (!state.transiting) { + afterRedraw(); + } + } + $$.mapToIds($$.data.targets).forEach((id) => { + state.withoutFadeIn[id] = true; + }); + }, + getRedrawList(shape, flow, flowFn, withTransition) { + const $$ = this; + const { config, state: { hasAxis, hasRadar, hasTreemap }, $el: { grid } } = $$; + const { cx, cy, xForText, yForText } = shape.pos; + const list = []; + if (hasAxis) { + if (config.grid_x_lines.length || config.grid_y_lines.length) { + list.push($$.redrawGrid(withTransition)); + } + if (config.regions.length) { + list.push($$.redrawRegion(withTransition)); + } + Object.keys(shape.type).forEach((v) => { + const name = capitalize(v); + const drawFn = shape.type[v]; + if (/^(area|line)$/.test(v) && $$.hasTypeOf(name) || $$.hasType(v)) { + list.push($$[`redraw${name}`](drawFn, withTransition)); + } + }); + !flow && grid.main && list.push($$.updateGridFocus()); + } + if (!$$.hasArcType() || hasRadar) { + notEmpty(config.data_labels) && config.data_labels !== false && list.push($$.redrawText(xForText, yForText, flow, withTransition)); + } + if (($$.hasPointType() || hasRadar) && !$$.isPointFocusOnly()) { + $$.redrawCircle && list.push($$.redrawCircle(cx, cy, withTransition, flowFn)); + } + if (hasTreemap) { + list.push($$.redrawTreemap(withTransition)); + } + return list; + }, + updateAndRedraw(options = {}) { + const $$ = this; + const { config, state } = $$; + let transitions; + options.withTransition = getOption(options, "withTransition", true); + options.withTransform = getOption(options, "withTransform", false); + options.withLegend = getOption(options, "withLegend", false); + options.withUpdateXDomain = true; + options.withUpdateOrgXDomain = true; + options.withTransitionForExit = false; + options.withTransitionForTransform = getOption( + options, + "withTransitionForTransform", + options.withTransition + ); + if (!(options.withLegend && config.legend_show)) { + if (state.hasAxis) { + transitions = $$.axis.generateTransitions( + options.withTransitionForAxis ? config.transition_duration : 0 + ); + } + $$.updateScales(); + $$.updateSvgSize(); + $$.transformAll(options.withTransitionForTransform, transitions); + } + $$.redraw(options, transitions); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/scale.ts + + +function getScale(type = "linear", min = 0, max = 1) { + const scale = { + linear: external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleLinear, + log: external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleSymlog, + _log: external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleLog, + time: external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleTime, + utc: external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleUtc + }[type](); + scale.type = type; + /_?log/.test(type) && scale.clamp(true); + return scale.range([min, max]); +} +/* harmony default export */ var scale = ({ + /** + * Get x Axis scale function + * @param {number} min Min range value + * @param {number} max Max range value + * @param {Array} domain Domain value + * @param {Function} offset The offset getter to be sum + * @returns {Function} scale + * @private + */ + getXScale(min, max, domain, offset) { + const $$ = this; + const scale = $$.state.loading !== "append" && $$.scale.zoom || getScale($$.axis.getAxisType("x"), min, max); + return $$.getCustomizedXScale( + domain ? scale.domain(domain) : scale, + offset + ); + }, + /** + * Get y Axis scale function + * @param {string} id Axis id: 'y' or 'y2' + * @param {number} min Min value + * @param {number} max Max value + * @param {Array} domain Domain value + * @returns {Function} Scale function + * @private + */ + getYScale(id, min, max, domain) { + const $$ = this; + const scale = getScale($$.axis.getAxisType(id), min, max); + domain && scale.domain(domain); + return scale; + }, + /** + * Get y Axis scale + * @param {string} id Axis id + * @param {boolean} isSub Weather is sub Axis + * @returns {Function} Scale function + * @private + */ + getYScaleById(id, isSub = false) { + var _a; + const isY2 = ((_a = this.axis) == null ? void 0 : _a.getId(id)) === "y2"; + const key = isSub ? isY2 ? "subY2" : "subY" : isY2 ? "y2" : "y"; + return this.scale[key]; + }, + /** + * Get customized x axis scale + * @param {d3.scaleLinear|d3.scaleTime} scaleValue Scale function + * @param {Function} offsetValue Offset getter to be sum + * @returns {Function} Scale function + * @private + */ + getCustomizedXScale(scaleValue, offsetValue) { + const $$ = this; + const offset = offsetValue || (() => $$.axis.x.tickOffset()); + const isInverted = $$.config.axis_x_inverted; + const scale = function(d, raw) { + const v = scaleValue(d) + offset(); + return raw ? v : Math.ceil(v); + }; + for (const key in scaleValue) { + scale[key] = scaleValue[key]; + } + scale.orgDomain = () => scaleValue.domain(); + scale.orgScale = () => scaleValue; + if ($$.axis.isCategorized()) { + scale.domain = function(domainValue) { + let domain = domainValue; + if (!arguments.length) { + domain = this.orgDomain(); + return isInverted ? [domain[0] + 1, domain[1]] : [domain[0], domain[1] + 1]; + } + scaleValue.domain(domain); + return scale; + }; + } + return scale; + }, + /** + * Update scale + * @param {boolean} isInit Param is given at the init rendering + * @param {boolean} updateXDomain If update x domain + * @private + */ + updateScales(isInit, updateXDomain = true) { + var _a, _b; + const $$ = this; + const { + axis, + config, + format, + org, + scale, + state: { current, width, height, width2, height2, hasAxis, hasTreemap } + } = $$; + if (hasAxis) { + const isRotated = config.axis_rotated; + const resettedPadding = $$.getResettedPadding(1); + const min = { + x: isRotated ? resettedPadding : 0, + y: isRotated ? 0 : height, + subX: isRotated ? 1 : 0, + subY: isRotated ? 0 : height2 + }; + const max = { + x: isRotated ? height : width, + y: isRotated ? width : resettedPadding, + subX: isRotated ? height : width, + subY: isRotated ? width2 : 1 + }; + const xDomain = updateXDomain && ((_a = scale.x) == null ? void 0 : _a.orgDomain()); + const xSubDomain = updateXDomain && org.xDomain; + scale.x = $$.getXScale(min.x, max.x, xDomain, () => axis.x.tickOffset()); + scale.subX = $$.getXScale(min.x, max.x, xSubDomain, (d) => { + var _a2; + return d % 1 ? 0 : ((_a2 = axis.subX) != null ? _a2 : axis.x).tickOffset(); + }); + format.xAxisTick = axis.getXAxisTickFormat(); + format.subXAxisTick = axis.getXAxisTickFormat(true); + axis.setAxis("x", scale.x, config.axis_x_tick_outer, isInit); + if (config.subchart_show) { + axis.setAxis("subX", scale.subX, config.axis_x_tick_outer, isInit); + } + scale.y = $$.getYScale( + "y", + min.y, + max.y, + scale.y ? scale.y.domain() : config.axis_y_default + ); + scale.subY = $$.getYScale( + "y", + min.subY, + max.subY, + scale.subY ? scale.subY.domain() : config.axis_y_default + ); + axis.setAxis("y", scale.y, config.axis_y_tick_outer, isInit); + if (config.axis_y2_show) { + scale.y2 = $$.getYScale( + "y2", + min.y, + max.y, + scale.y2 ? scale.y2.domain() : config.axis_y2_default + ); + scale.subY2 = $$.getYScale( + "y2", + min.subY, + max.subY, + scale.subY2 ? scale.subY2.domain() : config.axis_y2_default + ); + axis.setAxis("y2", scale.y2, config.axis_y2_tick_outer, isInit); + } + } else if (hasTreemap) { + const padding = $$.getCurrentPadding(); + scale.x = (0,external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleLinear)().rangeRound([padding.left, current.width - padding.right]); + scale.y = (0,external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleLinear)().rangeRound([padding.top, current.height - padding.bottom]); + } else { + (_b = $$.updateArc) == null ? void 0 : _b.call($$); + } + }, + /** + * Get the zoom or unzoomed scaled value + * @param {Date|number|object} d Data value + * @returns {number|null} + * @private + */ + xx(d) { + const $$ = this; + const { config, scale: { x, zoom } } = $$; + const fn = config.zoom_enabled && zoom ? zoom : x; + return d ? fn(isValue(d.x) ? d.x : d) : null; + }, + xv(d) { + const $$ = this; + const { axis, config, scale: { x, zoom } } = $$; + const fn = config.zoom_enabled && zoom ? zoom : x; + let value = $$.getBaseValue(d); + if (axis.isTimeSeries()) { + value = parseDate.call($$, value); + } else if (axis.isCategorized() && isString(value)) { + value = config.axis_x_categories.indexOf(value); + } + return Math.ceil(fn(value)); + }, + yv(d) { + const $$ = this; + const { scale: { y, y2 } } = $$; + const yScale = d.axis && d.axis === "y2" ? y2 : y; + return Math.ceil(yScale($$.getBaseValue(d))); + }, + subxx(d) { + return d ? this.scale.subX(d.x) : null; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/size.ts + + + + +/* harmony default export */ var size = ({ + /** + * Update container size + * @private + */ + setContainerSize() { + const $$ = this; + const { state } = $$; + state.current.width = $$.getCurrentWidth(); + state.current.height = $$.getCurrentHeight(); + }, + getCurrentWidth() { + const $$ = this; + return $$.config.size_width || $$.getParentWidth(); + }, + getCurrentHeight() { + const $$ = this; + const { config } = $$; + const h = config.size_height || $$.getParentHeight(); + return h > 0 ? h : 320 / ($$.hasType("gauge") && !config.gauge_fullCircle ? 2 : 1); + }, + /** + * Get the parent rect element's size + * @param {string} key property/attribute name + * @returns {number} + * @private + */ + getParentRectValue(key) { + const offsetName = `offset${capitalize(key)}`; + let parent = this.$el.chart.node(); + let v = 0; + while (v < 30 && parent && parent.tagName !== "BODY") { + try { + v = parent.getBoundingClientRect()[key]; + } catch (e) { + if (offsetName in parent) { + v = parent[offsetName]; + } + } + parent = parent.parentNode; + } + const bodySize = browser_doc.body[offsetName]; + v > bodySize && (v = bodySize); + return v; + }, + getParentWidth() { + return this.getParentRectValue("width"); + }, + getParentHeight() { + const h = this.$el.chart.style("height"); + let height = 0; + if (h) { + height = /px$/.test(h) ? parseInt(h, 10) : this.getParentRectValue("height"); + } + return height; + }, + getSvgLeft(withoutRecompute) { + const $$ = this; + const { config, state: { hasAxis }, $el } = $$; + const isRotated = config.axis_rotated; + const hasLeftAxisRect = isRotated || !isRotated && !config.axis_y_inner; + const leftAxisClass = isRotated ? $AXIS.axisX : $AXIS.axisY; + const leftAxis = $el.main.select(`.${leftAxisClass}`).node(); + const leftLabel = hasAxis && config[`axis_${isRotated ? "x" : "y"}_label`]; + let labelWidth = 0; + if (hasAxis && (isString(leftLabel) || isString(leftLabel.text) || /^inner-/.test(leftLabel == null ? void 0 : leftLabel.position))) { + const label = $el.main.select(`.${leftAxisClass}-label`); + if (!label.empty()) { + labelWidth = label.node().getBoundingClientRect().left; + } + } + const svgRect = leftAxis && hasLeftAxisRect ? leftAxis.getBoundingClientRect() : { right: 0 }; + const chartRectLeft = $el.chart.node().getBoundingClientRect().left + labelWidth; + const hasArc = $$.hasArcType(); + const svgLeft = svgRect.right - chartRectLeft - (hasArc ? 0 : $$.getCurrentPaddingByDirection("left", withoutRecompute)); + return svgLeft > 0 ? svgLeft : 0; + }, + updateDimension(withoutAxis) { + var _a; + const $$ = this; + const { config, state: { hasAxis }, $el } = $$; + if (hasAxis && !withoutAxis && $$.axis.x && config.axis_rotated) { + (_a = $$.axis.subX) == null ? void 0 : _a.create($el.axis.subX); + } + $$.updateScales(withoutAxis); + $$.updateSvgSize(); + $$.transformAll(false); + }, + updateSvgSize() { + const $$ = this; + const { state: { clip, current, hasAxis, width, height }, $el: { svg } } = $$; + svg.attr("width", current.width).attr("height", current.height); + if (hasAxis) { + const brush = svg.select(`.${$SUBCHART.brush} .overlay`); + const brushSize = { width: 0, height: 0 }; + if (brush.size()) { + brushSize.width = +brush.attr("width"); + brushSize.height = +brush.attr("height"); + } + svg.selectAll([`#${clip.id}`, `#${clip.idGrid}`]).select("rect").attr("width", width).attr("height", height); + svg.select(`#${clip.idXAxis}`).select("rect").call($$.setXAxisClipPath.bind($$)); + svg.select(`#${clip.idYAxis}`).select("rect").call($$.setYAxisClipPath.bind($$)); + clip.idSubchart && svg.select(`#${clip.idSubchart}`).select("rect").attr("width", width).attr("height", brushSize.height); + } + }, + /** + * Get padding by the direction. + * @param {string} type "top" | "bottom" | "left" | "right" + * @param {boolean} [withoutRecompute=false] If set true, do not recompute the padding value. + * @param {boolean} [withXAxisTickTextOverflow=false] If set true, calculate x axis tick text overflow. + * @returns {number} padding value + * @private + */ + getCurrentPaddingByDirection(type, withoutRecompute = false, withXAxisTickTextOverflow = false) { + var _a; + const $$ = this; + const { config, $el, state: { hasAxis } } = $$; + const isRotated = config.axis_rotated; + const isFitPadding = ((_a = config.padding) == null ? void 0 : _a.mode) === "fit"; + const paddingOption = isNumber(config[`padding_${type}`]) ? config[`padding_${type}`] : void 0; + const axisId = hasAxis ? { + top: isRotated ? "y2" : null, + bottom: isRotated ? "y" : "x", + left: isRotated ? "x" : "y", + right: isRotated ? null : "y2" + }[type] : null; + const isLeftRight = /^(left|right)$/.test(type); + const isAxisInner = axisId && config[`axis_${axisId}_inner`]; + const isAxisShow = axisId && config[`axis_${axisId}_show`]; + const axesLen = axisId ? config[`axis_${axisId}_axes`].length : 0; + let axisSize = axisId ? isLeftRight ? $$.getAxisWidthByAxisId(axisId, withoutRecompute) : $$.getHorizontalAxisHeight(axisId) : 0; + const defaultPadding = 20; + let gap = 0; + if (!isFitPadding && isLeftRight) { + axisSize = ceil10(axisSize); + } + let padding = hasAxis && isLeftRight && (isAxisInner || isUndefined(paddingOption) && !isAxisShow) ? 0 : isFitPadding ? (isAxisShow ? axisSize : 0) + (paddingOption != null ? paddingOption : 0) : isUndefined(paddingOption) ? axisSize : paddingOption; + if (isLeftRight && hasAxis) { + if (axisId && (isFitPadding || isAxisInner) && config[`axis_${axisId}_label`].text) { + padding += $$.axis.getAxisLabelPosition(axisId).isOuter ? defaultPadding : 0; + } + if (type === "right") { + padding += isRotated ? !isFitPadding && isUndefined(paddingOption) ? 10 : 2 : !isAxisShow || isAxisInner ? isFitPadding ? 2 : 1 : 0; + padding += withXAxisTickTextOverflow ? $$.axis.getXAxisTickTextY2Overflow(defaultPadding) : 0; + } else if (type === "left" && isRotated && isUndefined(paddingOption)) { + padding = !config.axis_x_show ? 1 : isFitPadding ? axisSize : Math.max(axisSize, 40); + } + } else { + if (type === "top") { + if ($el.title && $el.title.node()) { + padding += $$.getTitlePadding(); + } + gap = isRotated && !isAxisInner ? axesLen : 0; + } else if (type === "bottom" && hasAxis && isRotated && !isAxisShow) { + padding += 1; + } + } + return padding + axisSize * axesLen - gap; + }, + getCurrentPadding(withXAxisTickTextOverflow = false) { + const $$ = this; + const [top, bottom, left, right] = ["top", "bottom", "left", "right"].map((v) => $$.getCurrentPaddingByDirection(v, null, withXAxisTickTextOverflow)); + return { top, bottom, left, right }; + }, + /** + * Get resetted padding values when 'padding=false' option is set + * https://github.com/naver/billboard.js/issues/2367 + * @param {number|object} v Padding values to be resetted + * @returns {number|object} Padding value + * @private + */ + getResettedPadding(v) { + const $$ = this; + const { config } = $$; + const isNum = isNumber(v); + let p = isNum ? 0 : {}; + if (config.padding === false) { + !isNum && Object.keys(v).forEach((key) => { + p[key] = !isEmpty(config.data_labels) && config.data_labels !== false && key === "top" ? v[key] : 0; + }); + } else { + p = v; + } + return p; + }, + /** + * Update size values + * @param {boolean} isInit If is called at initialization + * @private + */ + updateSizes(isInit) { + var _a, _b, _c, _d, _e; + const $$ = this; + const { config, state, $el: { legend } } = $$; + const isRotated = config.axis_rotated; + const isNonAxis = $$.hasArcType() || state.hasFunnel || state.hasTreemap; + const isFitPadding = ((_a = config.padding) == null ? void 0 : _a.mode) === "fit"; + !isInit && $$.setContainerSize(); + const currLegend = { + width: legend ? $$.getLegendWidth() : 0, + height: legend ? $$.getLegendHeight() : 0 + }; + if (!isNonAxis && config.axis_x_show && config.axis_x_tick_autorotate) { + $$.updateXAxisTickClip(); + } + const legendSize = { + right: config.legend_show && state.isLegendRight ? $$.getLegendWidth() + (isFitPadding ? 0 : 20) : 0, + bottom: !config.legend_show || state.isLegendRight || state.isLegendInset ? 0 : currLegend.height + }; + const xAxisHeight = isRotated || isNonAxis ? 0 : $$.getHorizontalAxisHeight("x"); + const subchartXAxisHeight = config.subchart_axis_x_show && config.subchart_axis_x_tick_text_show ? xAxisHeight : 30; + const subchartHeight = config.subchart_show && !isNonAxis ? config.subchart_size_height + subchartXAxisHeight : 0; + const gaugeHeight = $$.hasType("gauge") && config.arc_needle_show && !config.gauge_fullCircle && !config.gauge_label_show ? 10 : 0; + const padding = $$.getCurrentPadding(true); + state.margin = !isNonAxis && isRotated ? { + top: padding.top, + right: isNonAxis ? 0 : padding.right + legendSize.right, + bottom: legendSize.bottom + padding.bottom, + left: subchartHeight + (isNonAxis ? 0 : padding.left) + } : { + top: (isFitPadding ? 0 : 4) + padding.top, + // for top tick text + right: isNonAxis ? 0 : padding.right + legendSize.right, + bottom: gaugeHeight + subchartHeight + legendSize.bottom + padding.bottom, + left: isNonAxis ? 0 : padding.left + }; + state.margin = $$.getResettedPadding(state.margin); + state.margin2 = isRotated ? { + top: state.margin.top, + right: NaN, + bottom: 20 + legendSize.bottom, + left: $$.state.rotatedPadding.left + } : { + top: state.current.height - subchartHeight - legendSize.bottom, + right: NaN, + bottom: subchartXAxisHeight + legendSize.bottom, + left: state.margin.left + }; + state.margin3 = { + top: 0, + right: NaN, + bottom: 0, + left: 0 + }; + (_b = $$.updateSizeForLegend) == null ? void 0 : _b.call($$, currLegend); + state.width = state.current.width - state.margin.left - state.margin.right; + state.height = state.current.height - state.margin.top - state.margin.bottom; + if (state.width < 0) { + state.width = 0; + } + if (state.height < 0) { + state.height = 0; + } + state.width2 = isRotated ? state.margin.left - state.rotatedPadding.left - state.rotatedPadding.right : state.width; + state.height2 = isRotated ? state.height : state.current.height - state.margin2.top - state.margin2.bottom; + if (state.width2 < 0) { + state.width2 = 0; + } + if (state.height2 < 0) { + state.height2 = 0; + } + if ($$.hasArcType()) { + const hasGauge = $$.hasType("gauge"); + const isLegendRight = config.legend_show && state.isLegendRight; + const textWidth = (_c = state.hasRadar && $$.cache.get(KEY.radarTextWidth)) != null ? _c : 0; + state.arcWidth = state.width - (isLegendRight ? currLegend.width + 10 : 0) - textWidth; + state.arcHeight = state.height - (isLegendRight && !hasGauge ? 0 : 10); + if ((_d = config.arc_rangeText_values) == null ? void 0 : _d.length) { + if (hasGauge) { + state.arcWidth -= 25; + state.arcHeight -= 10; + state.margin.left += 10; + } else { + state.arcHeight -= 20; + state.margin.top += 10; + } + } + if (hasGauge && !config.gauge_fullCircle) { + state.arcHeight += state.height - $$.getPaddingBottomForGauge(); + } + (_e = $$.updateRadius) == null ? void 0 : _e.call($$); + } + if (state.isLegendRight && isNonAxis) { + state.margin3.left = state.arcWidth / 2 + state.radiusExpanded * 1.1; + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/style.ts + + +/* harmony default export */ var style = ({ + /** + * Add props color css rule to given selector + * @param {boolean} withShape Set shpes' prefix class + * @param {string} selector CSS selector + * @param {Array} props CSS props list + * @param {Function} propsFn Function to retrieve value or determine for props + * @returns {Function} + * @private + */ + setCssRule(withShape, selector, props, propsFn) { + const $$ = this; + const { config, state: { cssRule, style } } = $$; + return config.boost_useCssRule ? (selection) => { + selection.each((d) => { + const res = propsFn && (propsFn == null ? void 0 : propsFn.call($$, d)); + const shapeSelector = `${withShape ? `.${$SHAPE.shapes + $$.getTargetSelectorSuffix(d.id)}` : ""}${selector}`; + selector in cssRule && style.sheet.deleteRule(cssRule[shapeSelector]); + $$.state.cssRule[shapeSelector] = addCssRules( + style, + shapeSelector, + props.filter(Boolean).map((v) => isString(res) && v.indexOf(":") === -1 ? `${v}: ${res}` : v || "") + ); + }); + } : () => { + }; + }, + /** + * Get style prop value + * @param {Function|string} v Value + * @returns {string|null} + * @private + */ + getStylePropValue(v) { + const { config: { boost_useCssRule: useCssRule } } = this; + return useCssRule ? null : isFunction(v) ? v.bind(this) : v; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/text.ts + + + + +function getRotateAnchor(angle) { + let anchor = "middle"; + if (angle > 0 && angle <= 170) { + anchor = "end"; + } else if (angle > 190 && angle <= 360) { + anchor = "start"; + } + return anchor; +} +function setRotatePos(d, pos, anchor, isRotated, isInverted) { + var _a; + const $$ = this; + const { value } = d; + const isCandlestickType = $$.isCandlestickType(d); + const isNegative = isNumber(value) && value < 0 || isCandlestickType && !((_a = $$.getCandlestickData(d)) == null ? void 0 : _a._isUp); + let { x, y } = pos; + const gap = 4; + const doubleGap = gap * 2; + if (isRotated) { + if (anchor === "start") { + x += isNegative ? 0 : doubleGap; + y += gap; + } else if (anchor === "middle") { + x += doubleGap; + y -= doubleGap; + } else if (anchor === "end") { + isNegative && (x -= doubleGap); + y += gap; + } + } else { + if (anchor === "start") { + x += gap; + isNegative && (y += doubleGap * 2); + } else if (anchor === "middle") { + y -= doubleGap; + } else if (anchor === "end") { + x -= gap; + isNegative && (y += doubleGap * 2); + } + if (isInverted) { + y += isNegative ? -17 : isCandlestickType ? 13 : 7; + } + } + return { x, y }; +} +function getTextPos(d, type) { + var _a; + const position = this.config.data_labels_position; + const { id, index, value } = d; + return (_a = isFunction(position) ? position.bind(this.api)(type, value, id, index, this.$el.text) : (id in position ? position[id] : position)[type]) != null ? _a : 0; +} +/* harmony default export */ var internals_text = ({ + opacityForText(d) { + const $$ = this; + return $$.isBarType(d) && !$$.meetsLabelThreshold( + Math.abs($$.getRatio("bar", d)), + "bar" + ) ? "0" : $$.hasDataLabel ? null : "0"; + }, + /** + * Initializes the text + * @private + */ + initText() { + const { $el } = this; + $el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $TEXT.chartTexts).style("pointer-events", $el.funnel || $el.treemap ? "none" : null); + }, + /** + * Update chartText + * @param {object} targets $$.data.targets + * @private + */ + updateTargetsForText(targets) { + const $$ = this; + const classChartText = $$.getChartClass("Text"); + const classTexts = $$.getClass("texts", "id"); + const classFocus = $$.classFocus.bind($$); + const mainTextUpdate = $$.$el.main.select(`.${$TEXT.chartTexts}`).selectAll(`.${$TEXT.chartText}`).data(targets).attr("class", (d) => `${classChartText(d)}${classFocus(d)}`.trim()); + const mainTextEnter = mainTextUpdate.enter().append("g").style("opacity", "0").attr("class", classChartText).call( + $$.setCssRule( + true, + ` .${$TEXT.text}`, + ["fill", "pointer-events:none"], + $$.updateTextColor + ) + ); + mainTextEnter.append("g").attr("class", classTexts); + }, + /** + * Update text + * @private + */ + updateText() { + const $$ = this; + const { $el, $T, config, axis } = $$; + const classText = $$.getClass("text", "index"); + const labelsCentered = config.data_labels.centered; + const text = $el.main.selectAll(`.${$TEXT.texts}`).selectAll(`.${$TEXT.text}`).data($$.labelishData.bind($$)); + $T(text.exit()).style("fill-opacity", "0").remove(); + $el.text = text.enter().append("text").merge(text).attr("class", classText).attr("text-anchor", (d) => { + const isInverted = config[`axis_${axis == null ? void 0 : axis.getId(d.id)}_inverted`]; + let isEndAnchor = isInverted ? d.value > 0 : d.value < 0; + if ($$.isCandlestickType(d)) { + const data = $$.getCandlestickData(d); + isEndAnchor = !(data == null ? void 0 : data._isUp); + } else if ($$.isTreemapType(d)) { + return labelsCentered ? "middle" : "start"; + } + return config.axis_rotated ? isEndAnchor ? "end" : "start" : "middle"; + }).style("fill", $$.getStylePropValue($$.updateTextColor)).style("fill-opacity", "0").each(function(d, i, texts) { + const node = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + let { value } = d; + if ($$.isBubbleZType(d)) { + value = $$.getBubbleZData(value, "z"); + } else if ($$.isCandlestickType(d)) { + const data = $$.getCandlestickData(d); + if (data) { + value = data.close; + } + } + value = $$.isTreemapType(d) ? $$.treemapDataLabelFormat(d)(node) : $$.dataLabelFormat(d.id)(value, d.id, d.index, texts); + if (isNumber(value)) { + this.textContent = value; + } else { + setTextValue(node, value); + } + }); + }, + updateTextColor(d) { + const $$ = this; + const { config } = $$; + const labelColors = config.data_labels_colors; + const defaultColor = $$.isArcType(d) && !$$.isRadarType(d) || $$.isFunnelType(d) || $$.isTreemapType(d) ? null : $$.color(d); + let color; + if (isString(labelColors)) { + color = labelColors; + } else if (isObject(labelColors)) { + const { id } = d.data || d; + color = labelColors[id]; + } else if (isFunction(labelColors)) { + color = labelColors.bind($$.api)(defaultColor, d); + } + if ($$.isCandlestickType(d) && !isFunction(labelColors)) { + const value = $$.getCandlestickData(d); + if (!(value == null ? void 0 : value._isUp)) { + const downColor = config.candlestick_color_down; + color = isObject(downColor) ? downColor[d.id] : downColor; + } + } + return color || defaultColor; + }, + /** + * Update data label text background color + * @param {object} d Data object + * @param {object|string} option option object + * @returns {string|null} + * @private + */ + updateTextBGColor(d, option) { + const $$ = this; + const { $el } = $$; + let color = ""; + if (isString(option) || isObject(option)) { + const id = isString(option) ? "" : $$.getTargetSelectorSuffix("id" in d ? d.id : d.data.id); + const filter = $el.defs.select(["filter[id*='labels-bg", "']"].join(id)); + if (filter.size()) { + color = `url(#${filter.attr("id")})`; + } + } + return color || null; + }, + /** + * Redraw chartText + * @param {Function} getX Positioning function for x + * @param {Function} getY Positioning function for y + * @param {boolean} forFlow Weather is flow + * @param {boolean} withTransition transition is enabled + * @returns {Array} + * @private + */ + redrawText(getX, getY, forFlow, withTransition) { + const $$ = this; + const { $T, axis, config, state: { hasTreemap } } = $$; + const t = getRandom(true); + const isRotated = config.axis_rotated; + const angle = config.data_labels.rotate; + const anchorString = getRotateAnchor(angle); + const rotateString = angle ? `rotate(${angle})` : ""; + $$.$el.text.style("fill", $$.getStylePropValue($$.updateTextColor)).attr( + "filter", + (d) => $$.updateTextBGColor.bind($$)(d, config.data_labels_backgroundColors) + ).style("fill-opacity", forFlow ? 0 : $$.opacityForText.bind($$)).each(function(d, i) { + const node = $T( + hasTreemap && this.childElementCount ? this.parentNode : this, + !!(withTransition && this.getAttribute("x")), + t + ); + const isInverted = config[`axis_${axis == null ? void 0 : axis.getId(d.id)}_inverted`]; + let pos = { + x: getX.bind(this)(d, i), + y: getY.bind(this)(d, i) + }; + if (angle) { + pos = setRotatePos.bind($$)(d, pos, anchorString, isRotated, isInverted); + node.attr("text-anchor", anchorString); + } + if (this.childElementCount || angle) { + node.attr("transform", `translate(${pos.x} ${pos.y}) ${rotateString}`); + } else { + node.attr("x", pos.x).attr("y", pos.y); + } + }); + return true; + }, + /** + * Gets the getBoundingClientRect value of the element + * @param {HTMLElement|d3.selection} element Target element + * @param {string} className Class name + * @returns {object} value of element.getBoundingClientRect() + * @private + */ + getTextRect(element, className) { + const $$ = this; + let base = element.node ? element.node() : element; + if (!/text/i.test(base.tagName)) { + base = base.querySelector("text"); + } + const text = base.textContent; + const cacheKey = `${KEY.textRect}-${text.replace(/\W/g, "_")}`; + let rect = $$.cache.get(cacheKey); + if (!rect) { + $$.$el.svg.append("text").style("visibility", "hidden").style("font", (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(base).style("font")).classed(className, true).text(text).call((v) => { + rect = getBoundingRect(v.node()); + }).remove(); + $$.cache.add(cacheKey, rect); + } + return rect; + }, + /** + * Gets the x or y coordinate of the text + * @param {object} indices Indices values + * @param {boolean} forX whether or not to x + * @returns {number} coordinates + * @private + */ + generateXYForText(indices, forX) { + const $$ = this; + const { state: { hasRadar, hasFunnel, hasTreemap } } = $$; + const types = Object.keys(indices); + const points = {}; + const getter = forX ? $$.getXForText : $$.getYForText; + hasFunnel && types.push("funnel"); + hasRadar && types.push("radar"); + hasTreemap && types.push("treemap"); + types.forEach((v) => { + points[v] = $$[`generateGet${capitalize(v)}Points`](indices[v], false); + }); + return function(d, i) { + const type = $$.isAreaType(d) && "area" || $$.isBarType(d) && "bar" || $$.isCandlestickType(d) && "candlestick" || $$.isFunnelType(d) && "funnel" || $$.isRadarType(d) && "radar" || $$.isTreemapType(d) && "treemap" || "line"; + return getter.call($$, points[type](d, i), d, this); + }; + }, + /** + * Get centerized text position for bar type data.label.text + * @param {object} d Data object + * @param {Array} points Data points position + * @param {HTMLElement} textElement Data label text element + * @param {string} type 'x' or 'y' + * @returns {number} Position value + * @private + */ + getCenteredTextPos(d, points, textElement, type) { + const $$ = this; + const { config } = $$; + const isRotated = config.axis_rotated; + const isBarType = $$.isBarType(d); + const isTreemapType = $$.isTreemapType(d); + if (config.data_labels.centered && (isBarType || isTreemapType)) { + const rect = getBoundingRect(textElement); + if (isBarType) { + const isPositive = $$.getRangedData(d, null, "bar") >= 0; + if (isRotated) { + const w = (isPositive ? points[1][1] - points[0][1] : points[0][1] - points[1][1]) / 2 + rect.width / 2; + return isPositive ? -w - 3 : w + 2; + } else { + const h = (isPositive ? points[0][1] - points[1][1] : points[1][1] - points[0][1]) / 2 + rect.height / 2; + return isPositive ? h : -h - 2; + } + } else if (isTreemapType) { + return type === "x" ? (points[1][0] - points[0][0]) / 2 : (points[1][1] - points[0][1]) / 2 + rect.height / 2; + } + } + return 0; + }, + /** + * Gets the x coordinate of the text + * @param {object} points Data points position + * @param {object} d Data object + * @param {HTMLElement} textElement Data label text element + * @returns {number} x coordinate + * @private + */ + getXForText(points, d, textElement) { + var _a; + const $$ = this; + const { config } = $$; + const isRotated = config.axis_rotated; + const isFunnelType = $$.isFunnelType(d); + const isTreemapType = $$.isTreemapType(d); + let xPos = points ? points[0][0] : 0; + if ($$.isCandlestickType(d)) { + if (isRotated) { + xPos = ((_a = $$.getCandlestickData(d)) == null ? void 0 : _a._isUp) ? points[2][2] + 4 : points[2][1] - 4; + } else { + xPos += (points[1][0] - xPos) / 2; + } + } else if (isFunnelType) { + xPos += $$.state.current.width / 2; + } else if (isTreemapType) { + xPos += config.data_labels.centered ? 0 : 5; + } else { + if (isRotated) { + const isInverted = config[`axis_${$$.axis.getId(d.id)}_inverted`]; + const padding = $$.isBarType(d) ? 4 : 6; + const value = d.value; + xPos = points[2][1]; + if (isInverted) { + xPos -= padding * (value > 0 ? 1 : -1); + } else { + xPos += padding * (value < 0 ? -1 : 1); + } + } else { + xPos = $$.hasType("bar") ? (points[2][0] + points[0][0]) / 2 : xPos; + } + } + if (isRotated || isTreemapType) { + xPos += $$.getCenteredTextPos(d, points, textElement, "x"); + } + return xPos + getTextPos.call(this, d, "x"); + }, + /** + * Gets the y coordinate of the text + * @param {object} points Data points position + * @param {object} d Data object + * @param {HTMLElement} textElement Data label text element + * @returns {number} y coordinate + * @private + */ + getYForText(points, d, textElement) { + const $$ = this; + const { axis, config, state } = $$; + const isRotated = config.axis_rotated; + const isInverted = config[`axis_${axis == null ? void 0 : axis.getId(d.id)}_inverted`]; + const isBarType = $$.isBarType(d); + const isFunnelType = $$.isFunnelType(d); + const isTreemapType = $$.isTreemapType(d); + const r = config.point_r; + const rect = getBoundingRect(textElement); + let { value } = d; + let baseY = 3; + let yPos; + if ($$.isCandlestickType(d)) { + value = $$.getCandlestickData(d); + if (isRotated) { + yPos = points[0][0]; + yPos += (points[1][0] - yPos) / 2 + baseY; + } else { + yPos = value && value._isUp ? points[2][2] - baseY : points[2][1] + baseY * 4; + if (isInverted) { + yPos += 15 * (value._isUp ? 1 : -1); + } + } + } else if (isFunnelType) { + yPos = points ? points[0][1] + (points[1][1] - points[0][1]) / 2 + rect.height / 2 - 3 : 0; + } else if (isTreemapType) { + yPos = points[0][1] + (config.data_labels.centered ? 0 : rect.height + 5); + } else { + if (isRotated) { + yPos = (points[0][0] + points[2][0] + rect.height * 0.6) / 2; + } else { + yPos = points[2][1]; + if (isNumber(r) && r > 5 && ($$.isLineType(d) || $$.isScatterType(d))) { + baseY += config.point_r / 2.3; + } + if (value < 0 || value === 0 && !state.hasPositiveValue && state.hasNegativeValue) { + yPos += isInverted ? isBarType ? -3 : -5 : rect.height + (isBarType ? -baseY : baseY); + } else { + let diff = -baseY * 2; + if (isBarType) { + diff = -baseY; + } else if ($$.isBubbleType(d)) { + diff = baseY; + } + if (isInverted) { + diff = isBarType ? 10 : 15; + } + yPos += diff; + } + } + } + if (!isRotated || isTreemapType) { + yPos += $$.getCenteredTextPos(d, points, textElement, "y"); + } + return yPos + getTextPos.call(this, d, "y"); + }, + /** + * Calculate if two or more text nodes are overlapping + * Mark overlapping text nodes with "text-overlapping" class + * @param {string} id Axis id + * @param {ChartInternal} $$ ChartInternal context + * @param {string} selector Selector string + * @private + */ + markOverlapped(id, $$, selector) { + const textNodes = $$.$el.arcs.selectAll(selector); + const filteredTextNodes = textNodes.filter((node) => node.data.id !== id); + const textNode = textNodes.filter((node) => node.data.id === id); + const translate = getTranslation(textNode.node()); + const calcHypo = (x, y) => Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); + textNode.node() && filteredTextNodes.each(function() { + const coordinate = getTranslation(this); + const filteredTextNode = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + const nodeForWidth = calcHypo(translate.e, translate.f) > calcHypo(coordinate.e, coordinate.f) ? textNode : filteredTextNode; + const overlapsX = Math.ceil(Math.abs(translate.e - coordinate.e)) < Math.ceil(nodeForWidth.node().getComputedTextLength()); + const overlapsY = Math.ceil(Math.abs(translate.f - coordinate.f)) < parseInt(textNode.style("font-size"), 10); + filteredTextNode.classed($TEXT.TextOverlapping, overlapsX && overlapsY); + }); + }, + /** + * Calculate if two or more text nodes are overlapping + * Remove "text-overlapping" class on selected text nodes + * @param {ChartInternal} $$ ChartInternal context + * @param {string} selector Selector string + * @private + */ + undoMarkOverlapped($$, selector) { + $$.$el.arcs.selectAll(selector).each(function() { + (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.selectAll)([this, this.previousSibling]).classed($TEXT.TextOverlapping, false); + }); + }, + /** + * Check if meets the ratio to show data label text + * @param {number} ratio ratio to meet + * @param {string} type chart type + * @returns {boolean} + * @private + */ + meetsLabelThreshold(ratio = 0, type) { + const $$ = this; + const { config } = $$; + const threshold = config[`${type}_label_threshold`] || 0; + return ratio >= threshold; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/title.ts + + +function getTextXPos(pos = "left", width) { + const isNum = isNumber(width); + let position; + if (pos.indexOf("center") > -1) { + position = isNum ? width / 2 : "middle"; + } else if (pos.indexOf("right") > -1) { + position = isNum ? width : "end"; + } else { + position = isNum ? 0 : "start"; + } + return position; +} +/* harmony default export */ var internals_title = ({ + /** + * Initializes the title + * @private + */ + initTitle() { + const $$ = this; + const { config, $el } = $$; + if (config.title_text) { + $el.title = $el.svg.append("g"); + const text = $el.title.append("text").style("text-anchor", getTextXPos(config.title_position)).attr("class", $TEXT.title); + setTextValue(text, config.title_text, [0.3, 1.5]); + } + }, + /** + * Redraw title + * @private + */ + redrawTitle() { + const $$ = this; + const { config, state: { current }, $el: { title } } = $$; + if (title) { + const x = getTextXPos(config.title_position, current.width); + const y = (config.title_padding.top || 0) + $$.getTextRect($$.$el.title, $TEXT.title).height; + title.attr("transform", `translate(${x}, ${y})`); + } + }, + /** + * Get title padding + * @returns {number} padding value + * @private + */ + getTitlePadding() { + const $$ = this; + const { $el: { title }, config } = $$; + return (config.title_padding.top || 0) + (title ? $$.getTextRect(title, $TEXT.title).height : 0) + (config.title_padding.bottom || 0); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/tooltip.ts + + + + +/* harmony default export */ var internals_tooltip = ({ + /** + * Initializes the tooltip + * @private + */ + initTooltip() { + const $$ = this; + const { config, $el } = $$; + $el.tooltip = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(config.tooltip_contents.bindto); + if ($el.tooltip.empty()) { + $el.tooltip = $el.chart.append("div").attr("class", $TOOLTIP.tooltipContainer).style("position", "absolute").style("pointer-events", "none").style("display", "none"); + } + $$.bindTooltipResizePos(); + }, + /** + * Show tooltip at initialization. + * Is called only when tooltip.init.show=true option is set + * @private + */ + initShowTooltip() { + var _a; + const $$ = this; + const { config, $el, state: { hasAxis, hasRadar } } = $$; + if (config.tooltip_init_show) { + const isArc = !(hasAxis || hasRadar); + if (((_a = $$.axis) == null ? void 0 : _a.isTimeSeries()) && isString(config.tooltip_init_x)) { + config.tooltip_init_x = parseDate.call($$, config.tooltip_init_x); + } + $$.api.tooltip.show({ + data: { + [isArc ? "index" : "x"]: config.tooltip_init_x + } + }); + const position = config.tooltip_init_position; + if (!config.tooltip_contents.bindto && !isEmpty(position)) { + const { top = 0, left = 50 } = position; + $el.tooltip.style("top", isString(top) ? top : `${top}px`).style("left", isString(left) ? left : `${left}px`).style("display", null); + } + } + }, + /** + * Get the tooltip HTML string + * @param {Array} args Arguments + * @returns {string} Formatted HTML string + * @private + */ + getTooltipHTML(...args) { + const $$ = this; + const { api, config } = $$; + return isFunction(config.tooltip_contents) ? config.tooltip_contents.bind(api)(...args) : $$.getTooltipContent(...args); + }, + /** + * Returns the tooltip content(HTML string) + * @param {object} d data + * @param {Function} defaultTitleFormat Default title format + * @param {Function} defaultValueFormat Default format for each data value in the tooltip. + * @param {Function} color Color function + * @returns {string} html + * @private + */ + getTooltipContent(d, defaultTitleFormat, defaultValueFormat, color) { + var _a; + const $$ = this; + const { api, config, state, $el } = $$; + const [titleFn, nameFn, valueFn] = ["title", "name", "value"].map((v) => { + const fn = config[`tooltip_format_${v}`]; + return isFunction(fn) ? fn.bind(api) : fn; + }); + const titleFormat = (...arg) => sanitize((titleFn || defaultTitleFormat)(...arg)); + const nameFormat = (...arg) => sanitize((nameFn || ((name) => name))(...arg)); + const valueFormat = (...arg) => { + const fn = valueFn || (state.hasTreemap || $$.isStackNormalized() ? (v, ratio) => `${(ratio * 100).toFixed(2)}%` : defaultValueFormat); + return sanitize(fn(...arg)); + }; + const order = config.tooltip_order; + const getRowValue = (row2) => $$.axis && $$.isBubbleZType(row2) ? $$.getBubbleZData(row2.value, "z") : $$.getBaseValue(row2); + const getBgColor = $$.levelColor ? (row2) => $$.levelColor(row2.value) : (row2) => color(row2); + const contents = config.tooltip_contents; + const tplStr = contents.template; + const targetIds = $$.mapToTargetIds(); + if (order === null && config.data_groups.length) { + const ids = $$.orderTargets($$.data.targets).map((i2) => i2.id).reverse(); + d.sort((a, b) => { + let v1 = a ? a.value : null; + let v2 = b ? b.value : null; + if (v1 > 0 && v2 > 0) { + v1 = a.id ? ids.indexOf(a.id) : null; + v2 = b.id ? ids.indexOf(b.id) : null; + } + return v1 - v2; + }); + } else if (/^(asc|desc)$/.test(order)) { + const isAscending = order === "asc"; + d.sort((a, b) => { + const v1 = a ? getRowValue(a) : null; + const v2 = b ? getRowValue(b) : null; + return isAscending ? v1 - v2 : v2 - v1; + }); + } else if (isFunction(order)) { + d.sort(order.bind(api)); + } + const tpl = $$.getTooltipContentTemplate(tplStr); + const len = d.length; + let text; + let row; + let param; + let value; + let i; + for (i = 0; i < len; i++) { + row = d[i]; + if (!row || !(getRowValue(row) || getRowValue(row) === 0)) { + continue; + } + if (isUndefined(text)) { + const title = (state.hasAxis || state.hasRadar) && titleFormat(row.x); + text = tplProcess(tpl[0], { + CLASS_TOOLTIP: $TOOLTIP.tooltip, + TITLE: isValue(title) ? tplStr ? title : `<tr><th colspan="2">${title}</th></tr>` : "" + }); + } + if (!row.ratio && $el.arcs) { + param = ["arc", $$.$el.arcs.select(`path.${$ARC.arc}-${row.id}`).data()[0]]; + row.ratio = $$.getRatio(...param); + } + param = [row.ratio, row.id, row.index]; + if ($$.isAreaRangeType(row)) { + const [high, low] = ["high", "low"].map( + (v) => valueFormat($$.getRangedData(row, v), ...param) + ); + const mid = valueFormat(getRowValue(row), ...param); + value = `<b>Mid:</b> ${mid} <b>High:</b> ${high} <b>Low:</b> ${low}`; + } else if ($$.isCandlestickType(row)) { + const [open, high, low, close, volume] = ["open", "high", "low", "close", "volume"].map((v) => { + const value2 = $$.getRangedData(row, v, "candlestick"); + return value2 ? valueFormat( + $$.getRangedData(row, v, "candlestick"), + ...param + ) : void 0; + }); + value = `<b>Open:</b> ${open} <b>High:</b> ${high} <b>Low:</b> ${low} <b>Close:</b> ${close}${volume ? ` <b>Volume:</b> ${volume}` : ""}`; + } else if ($$.isBarRangeType(row)) { + const { value: rangeValue, id, index } = row; + value = `${valueFormat(rangeValue, void 0, id, index)}`; + } else { + value = valueFormat(getRowValue(row), ...param); + } + if (value !== void 0) { + if (row.name === null) { + continue; + } + const name = nameFormat((_a = row.name) != null ? _a : row.id, ...param); + const color2 = getBgColor(row); + const contentValue = { + CLASS_TOOLTIP_NAME: $TOOLTIP.tooltipName + $$.getTargetSelectorSuffix(row.id), + COLOR: tplStr || !$$.patterns ? color2 : `<svg><rect style="fill:${color2}" width="10" height="10"></rect></svg>`, + NAME: name, + VALUE: value + }; + if (tplStr && isObject(contents.text)) { + const index = targetIds.indexOf(row.id); + Object.keys(contents.text).forEach((key) => { + contentValue[key] = contents.text[key][index]; + }); + } + text += tplProcess(tpl[1], contentValue); + } + } + return `${text}</table>`; + }, + /** + * Get the content template string + * @param {string} tplStr Tempalte string + * @returns {Array} Template string + * @private + */ + getTooltipContentTemplate(tplStr) { + return (tplStr || `<table class="{=CLASS_TOOLTIP}"><tbody> + {=TITLE} + {{<tr class="{=CLASS_TOOLTIP_NAME}"> + <td class="name">${this.patterns ? `{=COLOR}` : `<span style="background-color:{=COLOR}"></span>`}{=NAME}</td> + <td class="value">{=VALUE}</td> + </tr>}} + </tbody></table>`).replace(/(\r?\n|\t)/g, "").split(/{{(.*)}}/); + }, + /** + * Update tooltip position coordinate + * @param {object} dataToShow Data object + * @param {SVGElement} eventTarget Event element + * @private + */ + setTooltipPosition(dataToShow, eventTarget) { + var _a, _b; + const $$ = this; + const { config, scale, state, $el: { eventRect, tooltip } } = $$; + const { bindto } = config.tooltip_contents; + const isRotated = config.axis_rotated; + const datum = tooltip == null ? void 0 : tooltip.datum(); + if (!bindto && datum) { + const data = dataToShow != null ? dataToShow : JSON.parse(datum.current); + const [x, y] = getPointer(state.event, eventTarget != null ? eventTarget : eventRect == null ? void 0 : eventRect.node()); + const currPos = { x, y }; + if (state.hasAxis && scale.x && datum && "x" in datum) { + const getYPos = (value = 0, id, axisId = "y") => { + var _a2; + const scaleFn = scale[id ? (_a2 = $$.axis) == null ? void 0 : _a2.getId(id) : axisId]; + return scaleFn ? scaleFn(value) + (isRotated ? state.margin.left : state.margin.top) : 0; + }; + currPos.xAxis = scale.x(datum.x) + // add margin only when user specified tooltip.position function + (config.tooltip_position ? isRotated ? state.margin.top : state.margin.left : 0); + if (data.length === 1) { + currPos.yAxis = getYPos(data[0].value, data[0].id); + } else { + currPos.yAxis = getYPos; + } + } + const { width = 0, height = 0 } = datum; + const pos = (_b = (_a = config.tooltip_position) == null ? void 0 : _a.bind($$.api)( + data, + width, + height, + eventRect == null ? void 0 : eventRect.node(), + currPos + )) != null ? _b : $$.getTooltipPosition.bind($$)(width, height, currPos); + ["top", "left"].forEach((v) => { + const value = pos[v]; + tooltip.style(v, `${value}px`); + if (v === "left" && !datum.xPosInPercent) { + datum.xPosInPercent = value / state.current.width * 100; + } + }); + } + }, + /** + * Returns the position of the tooltip + * @param {string} tWidth Width value of tooltip element + * @param {string} tHeight Height value of tooltip element + * @param {object} currPos Current mouse position + * @returns {object} top, left value + * @private + */ + getTooltipPosition(tWidth, tHeight, currPos) { + var _a, _b, _c; + const $$ = this; + const { config, scale, state } = $$; + const { width, height, current, hasFunnel, hasRadar, hasTreemap, isLegendRight, inputType } = state; + const hasGauge = $$.hasType("gauge") && !config.gauge_fullCircle; + const isRotated = config.axis_rotated; + const hasArcType = $$.hasArcType(); + const svgLeft = $$.getSvgLeft(true); + let chartRight = svgLeft + current.width - $$.getCurrentPaddingByDirection("right"); + const size = 20; + let { x, y } = currPos; + if (hasRadar) { + x += x >= width / 2 ? 15 : -(tWidth + 15); + y += 15; + } else if (hasArcType) { + const notTouch = inputType !== "touch"; + if (notTouch) { + let titlePadding = (_b = (_a = $$.getTitlePadding) == null ? void 0 : _a.call($$)) != null ? _b : 0; + if (titlePadding && hasGauge && ((_c = config.arc_rangeText_values) == null ? void 0 : _c.length)) { + titlePadding += 10; + } + x += (width - (isLegendRight ? $$.getLegendWidth() : 0)) / 2; + y += (hasGauge ? height : height / 2 + tHeight) + titlePadding; + } + } else if (hasFunnel || hasTreemap) { + y += tHeight; + } else { + const padding = { + top: $$.getCurrentPaddingByDirection("top", true), + left: $$.getCurrentPaddingByDirection("left", true) + }; + if (isRotated) { + x += svgLeft + padding.left + size; + y = padding.top + currPos.xAxis + size; + chartRight -= svgLeft; + } else { + x = svgLeft + padding.left + size + (scale.zoom ? x : currPos.xAxis); + y += padding.top - 5; + } + } + if (x + tWidth + 15 > chartRight) { + x -= tWidth + (hasFunnel || hasTreemap || hasArcType ? 0 : isRotated ? size * 2 : 38); + } + if (y + tHeight > current.height) { + const gap = hasTreemap ? tHeight + 10 : 30; + y -= hasGauge ? tHeight * 1.5 : tHeight + gap; + } + const pos = { top: y, left: x }; + Object.keys(pos).forEach((v) => { + if (pos[v] < 0) { + pos[v] = 0; + } + }); + return pos; + }, + /** + * Show the tooltip + * @param {object} selectedData Data object + * @param {SVGElement} eventTarget Event element + * @private + */ + showTooltip(selectedData, eventTarget) { + const $$ = this; + const { config, $el: { tooltip } } = $$; + const dataToShow = selectedData.filter((d) => d && isValue($$.getBaseValue(d))); + if (!tooltip || dataToShow.length === 0 || !config.tooltip_show) { + return; + } + let datum = tooltip.datum(); + const dataStr = JSON.stringify(selectedData); + if (!datum || datum.current !== dataStr) { + const { index, x } = selectedData.concat().sort()[0]; + callFn(config.tooltip_onshow, $$.api, selectedData); + tooltip.html($$.getTooltipHTML( + selectedData, + // data + $$.axis ? $$.axis.getXAxisTickFormat() : $$.categoryName.bind($$), + // defaultTitleFormat + $$.getDefaultValueFormat(), + // defaultValueFormat + $$.color + // color + )).style("display", null).style("visibility", null).datum(datum = { + index, + x, + current: dataStr, + width: tooltip.property("offsetWidth"), + height: tooltip.property("offsetHeight") + }); + callFn(config.tooltip_onshown, $$.api, selectedData); + $$._handleLinkedCharts(true, index); + } + $$.setTooltipPosition(dataToShow, eventTarget); + }, + /** + * Adjust tooltip position on resize event + * @private + */ + bindTooltipResizePos() { + const $$ = this; + const { resizeFunction, state, $el: { tooltip } } = $$; + resizeFunction.add(() => { + if (tooltip.style("display") === "block") { + const { current } = state; + const { width, xPosInPercent } = tooltip.datum(); + let value = current.width / 100 * xPosInPercent; + const diff = current.width - (value + width); + if (diff < 0) { + value += diff; + } + tooltip.style("left", `${value}px`); + } + }); + }, + /** + * Hide the tooltip + * @param {boolean} force Force to hide + * @private + */ + hideTooltip(force) { + var _a; + const $$ = this; + const { api, config, $el: { tooltip } } = $$; + if (tooltip && tooltip.style("display") !== "none" && (!config.tooltip_doNotHide || force)) { + const selectedData = JSON.parse((_a = tooltip.datum().current) != null ? _a : {}); + callFn(config.tooltip_onhide, api, selectedData); + tooltip.style("display", "none").style("visibility", "hidden").datum(null); + callFn(config.tooltip_onhidden, api, selectedData); + } + }, + /** + * Toggle display for linked chart instances + * @param {boolean} show true: show, false: hide + * @param {number} index x Axis index + * @private + */ + _handleLinkedCharts(show, index) { + const $$ = this; + const { charts, config, state: { event } } = $$; + if ((event == null ? void 0 : event.isTrusted) && config.tooltip_linked && charts.length > 1) { + const linkedName = config.tooltip_linked_name; + charts.filter((c) => c !== $$.api).forEach((c) => { + const { config: config2, $el } = c.internal; + const isLinked = config2.tooltip_linked; + const name = config2.tooltip_linked_name; + const isInDom = browser_doc.body.contains($el.chart.node()); + if (isLinked && linkedName === name && isInDom) { + const data = $el.tooltip.data()[0]; + const isNotSameIndex = index !== (data == null ? void 0 : data.index); + try { + c.tooltip[show && isNotSameIndex ? "show" : "hide"]({ index }); + } catch (e) { + } + } + }); + } + }, + /** + * Update tooltip content on redraw + * - In a situation where tooltip is displayed and data load happens, it should reflect loaded data to tooltip + * @param {d3Selection} context Event rect element + * @param {number} index Data index + * @private + */ + updateTooltipOnRedraw(context, index) { + var _a; + const $$ = this; + const { + config, + $el: { eventRect, svg, tooltip }, + state: { event, hasAxis, hasRadar, hasTreemap } + } = $$; + if ((tooltip == null ? void 0 : tooltip.style("display")) === "block" && event) { + const rect = context != null ? context : (_a = hasRadar ? svg : eventRect) == null ? void 0 : _a.node(); + if (hasAxis || hasRadar) { + if ($$.isMultipleX()) { + $$.selectRectForMultipleXs(rect, false); + } else { + const idx = index != null ? index : $$.getDataIndexFromEvent(event); + if (index === -1) { + $$.api.tooltip.hide(); + } else { + $$.selectRectForSingle(rect, idx); + $$.setExpand(idx, null, true); + } + } + } else { + const { clientX, clientY } = event; + setTimeout(() => { + let target = browser_doc.elementFromPoint(clientX, clientY); + const data = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(target).datum(); + if (data) { + const d = $$.hasArcType() ? $$.convertToArcData($$.updateAngle(data)) : data == null ? void 0 : data.data; + hasTreemap && (target = svg.node()); + d && $$.showTooltip([d], target); + } else { + $$.api.tooltip.hide(); + } + }, config.transition_duration); + } + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/transform.ts + + +/* harmony default export */ var transform = ({ + getTranslate(target, index = 0) { + var _a; + const $$ = this; + const { config, state } = $$; + const isRotated = config.axis_rotated; + let padding = 0; + let x; + let y; + if (index && /^(x|y2?)$/.test(target)) { + padding = $$.getAxisSize(target) * index; + } + if (target === "main") { + x = asHalfPixel(state.margin.left); + y = asHalfPixel(state.margin.top); + } else if (target === "context") { + x = asHalfPixel(state.margin2.left); + y = asHalfPixel(state.margin2.top); + } else if (target === "legend") { + x = state.margin3.left; + y = state.margin3.top; + } else if (target === "x") { + x = isRotated ? -padding : 0; + y = isRotated ? 0 : state.height + padding; + } else if (target === "y") { + x = isRotated ? 0 : -padding; + y = isRotated ? state.height + padding : 0; + } else if (target === "y2") { + x = isRotated ? 0 : state.width + padding; + y = isRotated ? -padding - 1 : 0; + } else if (target === "subX") { + x = 0; + y = isRotated ? 0 : state.height2; + } else if (target === "arc") { + x = state.arcWidth / 2; + y = state.arcHeight / 2; + if ((_a = config.arc_rangeText_values) == null ? void 0 : _a.length) { + y += 5 + ($$.hasType("gauge") && config.title_text ? 10 : 0); + } + } else if (target === "polar") { + x = state.arcWidth / 2; + y = state.arcHeight / 2; + } else if (target === "radar") { + const [width, height] = $$.getRadarSize(); + x = state.width / 2 - width; + y = state.height / 2 - height; + } + return `translate(${x}, ${y})`; + }, + transformMain(withTransition, transitions) { + const $$ = this; + const { $el: { main }, $T } = $$; + const xAxis = (transitions == null ? void 0 : transitions.axisX) ? transitions.axisX : $T(main.select(`.${$AXIS.axisX}`), withTransition); + const yAxis = (transitions == null ? void 0 : transitions.axisY) ? transitions.axisY : $T(main.select(`.${$AXIS.axisY}`), withTransition); + const y2Axis = (transitions == null ? void 0 : transitions.axisY2) ? transitions.axisY2 : $T(main.select(`.${$AXIS.axisY2}`), withTransition); + $T(main, withTransition).attr("transform", $$.getTranslate("main")); + xAxis.attr("transform", $$.getTranslate("x")); + yAxis.attr("transform", $$.getTranslate("y")); + y2Axis.attr("transform", $$.getTranslate("y2")); + main.select(`.${$ARC.chartArcs}`).attr("transform", $$.getTranslate("arc")); + }, + transformAll(withTransition, transitions) { + const $$ = this; + const { config, state: { hasAxis, hasFunnel, hasTreemap }, $el } = $$; + !hasFunnel && !hasTreemap && $$.transformMain(withTransition, transitions); + hasAxis && config.subchart_show && $$.transformContext(withTransition, transitions); + $el.legend && $$.transformLegend(withTransition); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/type.ts + + +/* harmony default export */ var type = ({ + /** + * Check if the given chart type is valid + * @param {string} type Chart type string + * @returns {boolean} + * @private + */ + isValidChartType(type) { + return !!(type && Object.values(TYPE).indexOf(type) > -1); + }, + setTargetType(targetIds, type) { + const $$ = this; + const { config, state: { withoutFadeIn } } = $$; + $$.mapToTargetIds(targetIds).forEach((id) => { + withoutFadeIn[id] = type === config.data_types[id]; + config.data_types[id] = type; + }); + if (!targetIds) { + config.data_type = type; + } + }, + /** + * Updte current used chart types + * @private + */ + updateTypesElements() { + const $$ = this; + const { state: { current } } = $$; + Object.keys(TYPE).forEach((v) => { + const t = TYPE[v]; + const has = $$.hasType(t, null, true); + const idx = current.types.indexOf(t); + if (idx === -1 && has) { + current.types.push(t); + } else if (idx > -1 && !has) { + current.types.splice(idx, 1); + } + }); + $$.setChartElements(); + }, + /** + * Check if given chart types exists + * @param {string} type Chart type + * @param {Array} targetsValue Data array + * @param {boolean} checkFromData Force to check type cotains from data targets + * @returns {boolean} + * @private + */ + hasType(type, targetsValue, checkFromData = false) { + var _a; + const $$ = this; + const { config, state: { current } } = $$; + const types = config.data_types; + const targets = targetsValue || $$.data.targets; + let has = false; + if (!checkFromData && ((_a = current.types) == null ? void 0 : _a.indexOf(type)) > -1) { + has = true; + } else if (targets == null ? void 0 : targets.length) { + targets.forEach((target) => { + const t = types[target.id]; + if (t === type || !t && type === "line") { + has = true; + } + }); + } else if (Object.keys(types).length) { + Object.keys(types).forEach((id) => { + if (types[id] === type) { + has = true; + } + }); + } else { + has = config.data_type === type; + } + return has; + }, + /** + * Check if contains given chart types + * @param {string} type Type key + * @param {object} targets Target data + * @param {Array} exclude Excluded types + * @returns {boolean} + * @private + */ + hasTypeOf(type, targets, exclude = []) { + if (type in TYPE_BY_CATEGORY) { + return !TYPE_BY_CATEGORY[type].filter((v) => exclude.indexOf(v) === -1).every((v) => !this.hasType(v, targets)); + } + return false; + }, + /** + * Check if given data is certain chart type + * @param {object} d Data object + * @param {string|Array} type chart type + * @returns {boolean} + * @private + */ + isTypeOf(d, type) { + var _a; + const id = isString(d) ? d : d.id; + const dataType = this.config && (((_a = this.config.data_types) == null ? void 0 : _a[id]) || this.config.data_type); + return isArray(type) ? type.indexOf(dataType) >= 0 : dataType === type; + }, + hasPointType() { + const $$ = this; + return $$.hasTypeOf("Line") || $$.hasType("bubble") || $$.hasType("scatter"); + }, + /** + * Check if contains arc types chart + * @param {object} targets Target data + * @param {Array} exclude Excluded types + * @returns {boolean} + * @private + */ + hasArcType(targets, exclude) { + return this.hasTypeOf("Arc", targets, exclude); + }, + hasMultiArcGauge() { + return this.hasType("gauge") && this.config.gauge_type === "multi"; + }, + isLineType(d) { + const id = isString(d) ? d : d.id; + return !this.config.data_types[id] || this.isTypeOf(id, TYPE_BY_CATEGORY.Line); + }, + isStepType(d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.Step); + }, + isSplineType(d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.Spline); + }, + isAreaType(d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.Area); + }, + isAreaRangeType(d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.AreaRange); + }, + isBarType(d) { + return this.isTypeOf(d, "bar"); + }, + isBubbleType(d) { + return this.isTypeOf(d, "bubble"); + }, + isCandlestickType(d) { + return this.isTypeOf(d, "candlestick"); + }, + isScatterType(d) { + return this.isTypeOf(d, "scatter"); + }, + isTreemapType(d) { + return this.isTypeOf(d, "treemap"); + }, + isPieType(d) { + return this.isTypeOf(d, "pie"); + }, + isFunnelType(d) { + return this.isTypeOf(d, "funnel"); + }, + isGaugeType(d) { + return this.isTypeOf(d, "gauge"); + }, + isDonutType(d) { + return this.isTypeOf(d, "donut"); + }, + isPolarType(d) { + return this.isTypeOf(d, "polar"); + }, + isRadarType(d) { + return this.isTypeOf(d, "radar"); + }, + isArcType(d) { + return this.isPieType(d) || this.isDonutType(d) || this.isGaugeType(d) || this.isPolarType(d) || this.isRadarType(d); + }, + // determine if is 'circle' data point + isCirclePoint(node) { + const { config } = this; + const pattern = config.point_pattern; + let isCircle = false; + if ((node == null ? void 0 : node.tagName) === "circle") { + isCircle = true; + } else { + isCircle = config.point_type === "circle" && (!pattern || isArray(pattern) && pattern.length === 0); + } + return isCircle; + }, + lineData(d) { + return this.isLineType(d) ? [d] : []; + }, + arcData(d) { + return this.isArcType(d.data) ? [d] : []; + }, + /** + * Get data adapt for data label showing + * @param {object} d Data object + * @returns {Array} + * @private + */ + labelishData(d) { + return this.isBarType(d) || this.isLineType(d) || this.isScatterType(d) || this.isBubbleType(d) || this.isCandlestickType(d) || this.isFunnelType(d) || this.isRadarType(d) || this.isTreemapType(d) ? d.values.filter((v) => isNumber(v.value) || Boolean(v.value)) : []; + }, + barLineBubbleData(d) { + return this.isBarType(d) || this.isLineType(d) || this.isBubbleType(d) ? d.values : []; + }, + // https://github.com/d3/d3-shape#curves + isInterpolationType(type) { + return [ + "basis", + "basis-closed", + "basis-open", + "bundle", + "cardinal", + "cardinal-closed", + "cardinal-open", + "catmull-rom", + "catmull-rom-closed", + "catmull-rom-open", + "linear", + "linear-closed", + "monotone-x", + "monotone-y", + "natural" + ].indexOf(type) >= 0; + } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-shape","commonjs2":"d3-shape","amd":"d3-shape","root":"d3"} +var external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_ = __webpack_require__(9); +;// CONCATENATED MODULE: ./src/ChartInternal/shape/shape.ts + + + + +function getGroupedDataPointsFn(d) { + const $$ = this; + let fn; + if ($$.isLineType(d)) { + fn = $$.generateGetLinePoints($$.getShapeIndices($$.isLineType)); + } else if ($$.isBarType(d)) { + fn = $$.generateGetBarPoints($$.getShapeIndices($$.isBarType)); + } + return fn; +} +/* harmony default export */ var shape = ({ + /** + * Get the shape draw function + * @returns {object} + * @private + */ + getDrawShape() { + const $$ = this; + const isRotated = $$.config.axis_rotated; + const { hasRadar, hasTreemap } = $$.state; + const shape = { type: {}, indices: {}, pos: {} }; + !hasTreemap && ["bar", "candlestick", "line", "area"].forEach((v) => { + const name = capitalize(/^(bubble|scatter)$/.test(v) ? "line" : v); + if ($$.hasType(v) || $$.hasTypeOf(name) || v === "line" && ($$.hasType("bubble") || $$.hasType("scatter"))) { + const indices = $$.getShapeIndices($$[`is${name}Type`]); + const drawFn = $$[`generateDraw${name}`]; + shape.indices[v] = indices; + shape.type[v] = drawFn ? drawFn.bind($$)(indices, false) : void 0; + } + }); + if (!$$.hasArcType() || hasRadar || hasTreemap) { + let cx; + let cy; + if (!hasTreemap) { + cx = hasRadar ? $$.radarCircleX : isRotated ? $$.circleY : $$.circleX; + cy = hasRadar ? $$.radarCircleY : isRotated ? $$.circleX : $$.circleY; + } + shape.pos = { + xForText: $$.generateXYForText(shape.indices, true), + yForText: $$.generateXYForText(shape.indices, false), + cx: (cx || function() { + }).bind($$), + cy: (cy || function() { + }).bind($$) + }; + } + return shape; + }, + /** + * Get shape's indices according it's position within each axis tick. + * + * From the below example, indices will be: + * ==> {data1: 0, data2: 0, data3: 1, data4: 1, __max__: 1} + * + * data1 data3 data1 data3 + * data2 data4 data2 data4 + * ------------------------- + * 0 1 + * @param {Function} typeFilter Chart type filter function + * @returns {object} Indices object with its position + */ + getShapeIndices(typeFilter) { + const $$ = this; + const { config } = $$; + const xs = config.data_xs; + const hasXs = notEmpty(xs); + const indices = {}; + let i = hasXs ? {} : 0; + if (hasXs) { + getUnique(Object.keys(xs).map((v) => xs[v])).forEach((v) => { + i[v] = 0; + indices[v] = {}; + }); + } + $$.filterTargetsToShow($$.data.targets.filter(typeFilter, $$)).forEach((d) => { + var _a; + const xKey = d.id in xs ? xs[d.id] : ""; + const ind = xKey ? indices[xKey] : indices; + for (let j = 0, groups; groups = config.data_groups[j]; j++) { + if (groups.indexOf(d.id) < 0) { + continue; + } + for (let k = 0, key; key = groups[k]; k++) { + if (key in ind) { + ind[d.id] = ind[key]; + break; + } + if (d.id !== key && xKey) { + ind[key] = (_a = ind[d.id]) != null ? _a : i[xKey]; + } + } + } + if (isUndefined(ind[d.id])) { + ind[d.id] = xKey ? i[xKey]++ : i++; + ind.__max__ = (xKey ? i[xKey] : i) - 1; + } + }); + return indices; + }, + /** + * Get indices value based on data ID value + * @param {object} indices Indices object + * @param {object} d Data row + * @param {string} caller Caller function name (Used only for 'sparkline' plugin) + * @returns {object} Indices object + * @private + */ + getIndices(indices, d, caller) { + const $$ = this; + const { data_xs: xs, bar_indices_removeNull: removeNull } = $$.config; + const { id, index } = d; + if ($$.isBarType(id) && removeNull) { + const ind = {}; + $$.getAllValuesOnIndex(index, true).forEach((v, i) => { + ind[v.id] = i; + ind.__max__ = i; + }); + return ind; + } + return notEmpty(xs) ? indices[xs[id]] : indices; + }, + /** + * Get indices max number + * @param {object} indices Indices object + * @returns {number} Max number + * @private + */ + getIndicesMax(indices) { + return notEmpty(this.config.data_xs) ? ( + // if is multiple xs, return total sum of xs' __max__ value + Object.keys(indices).map((v) => indices[v].__max__ || 0).reduce((acc, curr) => acc + curr) + ) : indices.__max__; + }, + getShapeX(offset, indices, isSub) { + const $$ = this; + const { config, scale } = $$; + const currScale = isSub ? scale.subX : scale.zoom || scale.x; + const barOverlap = config.bar_overlap; + const barPadding = config.bar_padding; + const sum = (p, c) => p + c; + const halfWidth = isObjectType(offset) && (offset._$total.length ? offset._$total.reduce(sum) / 2 : 0); + return (d) => { + const ind = $$.getIndices(indices, d, "getShapeX"); + const index = d.id in ind ? ind[d.id] : 0; + const targetsNum = (ind.__max__ || 0) + 1; + let x = 0; + if (notEmpty(d.x)) { + const xPos = currScale(d.x, true); + if (halfWidth) { + const offsetWidth = offset[d.id] || offset._$width; + x = barOverlap ? xPos - offsetWidth / 2 : xPos - offsetWidth + offset._$total.slice(0, index + 1).reduce(sum) - halfWidth; + } else { + x = xPos - (isNumber(offset) ? offset : offset._$width) * (targetsNum / 2 - (barOverlap ? 1 : index)); + } + } + if (offset && x && targetsNum > 1 && barPadding) { + if (index) { + x += barPadding * index; + } + if (targetsNum > 2) { + x -= (targetsNum - 1) * barPadding / 2; + } else if (targetsNum === 2) { + x -= barPadding / 2; + } + } + return x; + }; + }, + getShapeY(isSub) { + const $$ = this; + const isStackNormalized = $$.isStackNormalized(); + return (d) => { + let { value } = d; + if (isNumber(d)) { + value = d; + } else if ($$.isAreaRangeType(d)) { + value = $$.getBaseValue(d, "mid"); + } else if (isStackNormalized) { + value = $$.getRatio("index", d, true); + } else if ($$.isBubbleZType(d)) { + value = $$.getBubbleZData(d.value, "y"); + } else if ($$.isBarRangeType(d)) { + value = value[1]; + } + return $$.getYScaleById(d.id, isSub)(value); + }; + }, + /** + * Get shape based y Axis min value + * @param {string} id Data id + * @returns {number} + * @private + */ + getShapeYMin(id) { + const $$ = this; + const axisId = $$.axis.getId(id); + const scale = $$.scale[axisId]; + const [yMin] = scale.domain(); + const inverted = $$.config[`axis_${axisId}_inverted`]; + return !$$.isGrouped(id) && !inverted && yMin > 0 ? yMin : 0; + }, + /** + * Get Shape's offset data + * @param {Function} typeFilter Type filter function + * @returns {object} + * @private + */ + getShapeOffsetData(typeFilter) { + const $$ = this; + const targets = $$.orderTargets( + $$.filterTargetsToShow($$.data.targets.filter(typeFilter, $$)) + ); + const isStackNormalized = $$.isStackNormalized(); + const shapeOffsetTargets = targets.map((target) => { + let rowValues = target.values; + const values = {}; + if ($$.isStepType(target)) { + rowValues = $$.convertValuesToStep(rowValues); + } + const rowValueMapByXValue = rowValues.reduce((out, d) => { + const key = Number(d.x); + out[key] = d; + values[key] = isStackNormalized ? $$.getRatio("index", d, true) : d.value; + return out; + }, {}); + return { + id: target.id, + rowValues, + rowValueMapByXValue, + values + }; + }); + const indexMapByTargetId = targets.reduce((out, { id }, index) => { + out[id] = index; + return out; + }, {}); + return { indexMapByTargetId, shapeOffsetTargets }; + }, + getShapeOffset(typeFilter, indices, isSub) { + const $$ = this; + const { shapeOffsetTargets, indexMapByTargetId } = $$.getShapeOffsetData( + typeFilter + ); + const groupsZeroAs = $$.config.data_groupsZeroAs; + return (d, idx) => { + const { id, value, x } = d; + const ind = $$.getIndices(indices, d); + const scale = $$.getYScaleById(id, isSub); + if ($$.isBarRangeType(d)) { + return scale(value[0]); + } + const dataXAsNumber = Number(x); + const y0 = scale(groupsZeroAs === "zero" ? 0 : $$.getShapeYMin(id)); + let offset = y0; + shapeOffsetTargets.filter((t) => t.id !== id && ind[t.id] === ind[id]).forEach((t) => { + const { + id: tid, + rowValueMapByXValue, + rowValues, + values: tvalues + } = t; + if (indexMapByTargetId[tid] < indexMapByTargetId[id]) { + const rValue = tvalues[dataXAsNumber]; + let row = rowValues[idx]; + if (!row || Number(row.x) !== dataXAsNumber) { + row = rowValueMapByXValue[dataXAsNumber]; + } + if ((row == null ? void 0 : row.value) * value >= 0 && isNumber(rValue)) { + const addOffset = value === 0 ? groupsZeroAs === "positive" && rValue > 0 || groupsZeroAs === "negative" && rValue < 0 : true; + if (addOffset) { + offset += scale(rValue) - y0; + } + } + } + }); + return offset; + }; + }, + /** + * Get data's y coordinate + * @param {object} d Target data + * @param {number} i Index number + * @returns {number} y coordinate + * @private + */ + circleY(d, i) { + const $$ = this; + const id = d.id; + let points; + if ($$.isGrouped(id)) { + points = getGroupedDataPointsFn.bind($$)(d); + } + return points ? points(d, i)[0][1] : $$.getYScaleById(id)($$.getBaseValue(d)); + }, + getBarW(type, axis, targetsNum) { + var _a, _b, _c, _d, _e; + const $$ = this; + const { config, org, scale } = $$; + const maxDataCount = $$.getMaxDataCount(); + const isGrouped = type === "bar" && ((_a = config.data_groups) == null ? void 0 : _a.length); + const configName = `${type}_width`; + const { k } = (_c = (_b = $$.getZoomTransform) == null ? void 0 : _b.call($$)) != null ? _c : { k: 1 }; + const xMinMax = [ + (_d = config.axis_x_min) != null ? _d : org.xDomain[0], + (_e = config.axis_x_max) != null ? _e : org.xDomain[1] + ].map($$.axis.isTimeSeries() ? parseDate.bind($$) : Number); + let tickInterval = axis.tickInterval(maxDataCount); + if (scale.zoom && !$$.axis.isCategorized() && k > 1) { + const isSameMinMax = xMinMax.every((v, i) => v === org.xDomain[i]); + tickInterval = org.xDomain.map((v, i) => { + const value = isSameMinMax ? v : v - Math.abs(xMinMax[i]); + return scale.zoom(value); + }).reduce((a, c) => Math.abs(a) + c) / maxDataCount; + } + const getWidth = (id) => { + const width = id ? config[configName][id] : config[configName]; + const ratio = id ? width.ratio : config[`${configName}_ratio`]; + const max = id ? width.max : config[`${configName}_max`]; + const w = isNumber(width) ? width : targetsNum ? tickInterval * ratio / targetsNum : 0; + return max && w > max ? max : w; + }; + let result = getWidth(); + if (!isGrouped && isObjectType(config[configName])) { + result = { _$width: result, _$total: [] }; + $$.filterTargetsToShow($$.data.targets).forEach((v) => { + if (config[configName][v.id]) { + result[v.id] = getWidth(v.id); + result._$total.push(result[v.id] || result._$width); + } + }); + } + return result; + }, + /** + * Get shape element + * @param {string} shapeName Shape string + * @param {number} i Index number + * @param {string} id Data series id + * @returns {d3Selection} + * @private + */ + getShapeByIndex(shapeName, i, id) { + const $$ = this; + const { $el } = $$; + const suffix = isValue(i) ? `-${i}` : ``; + let shape = $el[shapeName]; + if (shape && !shape.empty()) { + shape = shape.filter((d) => id ? d.id === id : true).filter((d) => isValue(i) ? d.index === i : true); + } else { + shape = (id ? $el.main.selectAll( + `.${classes[`${shapeName}s`]}${$$.getTargetSelectorSuffix(id)}` + ) : $el.main).selectAll(`.${classes[shapeName]}${suffix}`); + } + return shape; + }, + isWithinShape(that, d) { + var _a; + const $$ = this; + const shape = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(that); + let isWithin; + if (!$$.isTargetToShow(d.id)) { + isWithin = false; + } else if ((_a = $$.hasValidPointType) == null ? void 0 : _a.call($$, that.nodeName)) { + isWithin = $$.isStepType(d) ? $$.isWithinStep(that, $$.getYScaleById(d.id)(d.value)) : $$.isWithinCircle( + that, + $$.isBubbleType(d) ? $$.pointSelectR(d) * 1.5 : 0 + ); + } else if (that.nodeName === "path") { + isWithin = shape.classed(classes.bar) ? $$.isWithinBar(that) : true; + } + return isWithin; + }, + getInterpolate(d) { + const $$ = this; + const interpolation = $$.getInterpolateType(d); + return { + basis: external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveBasis, + "basis-closed": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveBasisClosed, + "basis-open": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveBasisOpen, + bundle: external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveBundle, + cardinal: external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveCardinal, + "cardinal-closed": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveCardinalClosed, + "cardinal-open": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveCardinalOpen, + "catmull-rom": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveCatmullRom, + "catmull-rom-closed": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveCatmullRomClosed, + "catmull-rom-open": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveCatmullRomOpen, + "monotone-x": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveMonotoneX, + "monotone-y": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveMonotoneY, + natural: external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveNatural, + "linear-closed": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveLinearClosed, + linear: external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveLinear, + step: external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveStep, + "step-after": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveStepAfter, + "step-before": external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.curveStepBefore + }[interpolation]; + }, + getInterpolateType(d) { + const $$ = this; + const { config } = $$; + const type = config.spline_interpolation_type; + const interpolation = $$.isInterpolationType(type) ? type : "cardinal"; + return $$.isSplineType(d) ? interpolation : $$.isStepType(d) ? config.line_step_type : "linear"; + }, + isWithinBar(that) { + const mouse = getPointer(this.state.event, that); + const list = getRectSegList(that); + const [seg0, seg1] = list; + const x = Math.min(seg0.x, seg1.x); + const y = Math.min(seg0.y, seg1.y); + const offset = this.config.bar_sensitivity; + const { width, height } = that.getBBox(); + const sx = x - offset; + const ex = x + width + offset; + const sy = y + height + offset; + const ey = y - offset; + const isWithin = sx < mouse[0] && mouse[0] < ex && ey < mouse[1] && mouse[1] < sy; + return isWithin; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/ChartInternal.ts +var ChartInternal_defProp = Object.defineProperty; +var ChartInternal_defNormalProp = (obj, key, value) => key in obj ? ChartInternal_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var ChartInternal_publicField = (obj, key, value) => { + ChartInternal_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +class ChartInternal { + constructor(api) { + ChartInternal_publicField(this, "api"); + // API interface + ChartInternal_publicField(this, "config"); + // config object + ChartInternal_publicField(this, "cache"); + // cache instance + ChartInternal_publicField(this, "$el"); + // elements + ChartInternal_publicField(this, "state"); + // state variables + ChartInternal_publicField(this, "charts"); + // all Chart instances array within page (equivalent of 'bb.instances') + // data object + ChartInternal_publicField(this, "data", { + xs: {}, + targets: [] + }); + // Axis + ChartInternal_publicField(this, "axis"); + // Axis + // scales + ChartInternal_publicField(this, "scale", { + x: null, + y: null, + y2: null, + subX: null, + subY: null, + subY2: null, + zoom: null + }); + // original values + ChartInternal_publicField(this, "org", { + xScale: null, + xDomain: null + }); + // formatter function + ChartInternal_publicField(this, "color"); + ChartInternal_publicField(this, "patterns"); + ChartInternal_publicField(this, "levelColor"); + ChartInternal_publicField(this, "point"); + ChartInternal_publicField(this, "brush"); + // format function + ChartInternal_publicField(this, "format", { + extraLineClasses: null, + xAxisTick: null, + dataTime: null, + // dataTimeFormat + defaultAxisTime: null, + // defaultAxisTimeFormat + axisTime: null + // axisTimeFormat + }); + const $$ = this; + $$.api = api; + $$.config = new Options(); + $$.cache = new Cache(); + const store = new Store(); + $$.$el = store.getStore("element"); + $$.state = store.getStore("state"); + $$.$T = $$.$T.bind($$); + } + /** + * Get the selection based on transition config + * @param {SVGElement|d3Selection} selection Target selection + * @param {boolean} force Force transition + * @param {string} name Transition name + * @returns {d3Selection} + * @private + */ + $T(selection, force, name) { + const { config, state } = this; + const duration = config.transition_duration; + const subchart = config.subchart_show; + let t = selection; + if (t) { + if ("tagName" in t) { + t = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(t); + } + const transit = (force !== false && duration || force) && (!state.zooming || state.dragging) && !state.resizing && state.rendered && !subchart; + t = transit ? t.transition(name).duration(duration) : t; + } + return t; + } + beforeInit() { + const $$ = this; + $$.callPluginHook("$beforeInit"); + callFn($$.config.onbeforeinit, $$.api); + } + afterInit() { + const $$ = this; + $$.callPluginHook("$afterInit"); + callFn($$.config.onafterinit, $$.api); + } + init() { + const $$ = this; + const { config, state, $el } = $$; + const useCssRule = config.boost_useCssRule; + checkModuleImport($$); + state.hasRadar = !state.hasAxis && $$.hasType("radar"); + state.hasFunnel = !state.hasAxis && $$.hasType("funnel"); + state.hasTreemap = !state.hasAxis && $$.hasType("treemap"); + state.hasAxis = !$$.hasArcType() && !state.hasFunnel && !state.hasTreemap; + state.datetimeId = `bb-${+/* @__PURE__ */ new Date() * getRandom()}`; + if (useCssRule) { + const styleEl = browser_doc.createElement("style"); + styleEl.type = "text/css"; + browser_doc.head.appendChild(styleEl); + state.style = { + rootSelctor: `.${state.datetimeId}`, + sheet: styleEl.sheet + }; + $el.style = styleEl; + } + const bindto = { + element: config.bindto, + classname: "bb" + }; + if (isObject(config.bindto)) { + bindto.element = config.bindto.element || "#chart"; + bindto.classname = config.bindto.classname || bindto.classname; + } + $el.chart = isFunction(bindto.element.node) ? config.bindto.element : (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(bindto.element || []); + if ($el.chart.empty()) { + $el.chart = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(browser_doc.body.appendChild(browser_doc.createElement("div"))); + } + $el.chart.html("").classed(bindto.classname, true).classed(state.datetimeId, useCssRule).style("position", "relative"); + $$.initParams(); + $$.initToRender(); + } + /** + * Initialize the rendering process + * @param {boolean} forced Force to render process + * @private + */ + initToRender(forced) { + const $$ = this; + const { config, state, $el: { chart } } = $$; + const isHidden = () => chart.style("display") === "none" || chart.style("visibility") === "hidden"; + const isLazy = config.render.lazy || isHidden(); + const MutationObserver = win.MutationObserver; + if (isLazy && MutationObserver && config.render.observe !== false && !forced) { + new MutationObserver((mutation, observer) => { + if (!isHidden()) { + observer.disconnect(); + !state.rendered && $$.initToRender(true); + } + }).observe(chart.node(), { + attributes: true, + attributeFilter: ["class", "style"] + }); + } + if (!isLazy || forced) { + $$.convertData(config, (res) => { + $$.initWithData(res); + $$.afterInit(); + }); + } + } + initParams() { + var _a; + const $$ = this; + const { config, format: format2, state } = $$; + const isRotated = config.axis_rotated; + $$.color = $$.generateColor(); + $$.levelColor = $$.generateLevelColor(); + if (config.padding === false) { + config.axis_x_show = false; + config.axis_y_show = false; + config.axis_y2_show = false; + config.subchart_show = false; + } + if ($$.hasPointType() || ((_a = $$.hasLegendDefsPoint) == null ? void 0 : _a.call($$))) { + $$.point = $$.generatePoint(); + } + if (state.hasAxis) { + $$.initClip(); + format2.extraLineClasses = $$.generateExtraLineClass(); + format2.dataTime = config.data_xLocaltime ? external_commonjs_d3_time_format_commonjs2_d3_time_format_amd_d3_time_format_root_d3_.timeParse : external_commonjs_d3_time_format_commonjs2_d3_time_format_amd_d3_time_format_root_d3_.utcParse; + format2.axisTime = config.axis_x_localtime ? external_commonjs_d3_time_format_commonjs2_d3_time_format_amd_d3_time_format_root_d3_.timeFormat : external_commonjs_d3_time_format_commonjs2_d3_time_format_amd_d3_time_format_root_d3_.utcFormat; + const isDragZoom = $$.config.zoom_enabled && $$.config.zoom_type === "drag"; + format2.defaultAxisTime = (d) => { + const { x, zoom } = $$.scale; + const isZoomed = isDragZoom ? zoom : zoom && x.orgDomain().toString() !== zoom.domain().toString(); + const specifier = d.getMilliseconds() && ".%L" || d.getSeconds() && ".:%S" || d.getMinutes() && "%I:%M" || d.getHours() && "%I %p" || d.getDate() !== 1 && "%b %d" || isZoomed && d.getDate() === 1 && "%b'%y" || d.getMonth() && "%-m/%-d" || "%Y"; + return format2.axisTime(specifier)(d); + }; + } + state.isLegendRight = config.legend_position === "right"; + state.isLegendInset = config.legend_position === "inset"; + state.isLegendTop = config.legend_inset_anchor === "top-left" || config.legend_inset_anchor === "top-right"; + state.isLegendLeft = config.legend_inset_anchor === "top-left" || config.legend_inset_anchor === "bottom-left"; + state.rotatedPadding.top = $$.getResettedPadding(state.rotatedPadding.top); + state.rotatedPadding.right = isRotated && !config.axis_x_show ? 0 : 30; + state.inputType = convertInputType( + config.interaction_inputType_mouse, + config.interaction_inputType_touch + ); + } + initWithData(data2) { + var _a, _b, _c; + const $$ = this; + const { config, scale: scale2, state, $el, org } = $$; + const { hasAxis, hasFunnel, hasTreemap } = state; + const hasInteraction = config.interaction_enabled; + const hasPolar = $$.hasType("polar"); + const labelsBGColor = config.data_labels_backgroundColors; + if (hasAxis) { + $$.axis = $$.getAxisInstance(); + config.zoom_enabled && $$.initZoom(); + } + $$.data.xs = {}; + $$.data.targets = $$.convertDataToTargets(data2); + if (config.data_filter) { + $$.data.targets = $$.data.targets.filter(config.data_filter.bind($$.api)); + } + if (config.data_hide) { + $$.addHiddenTargetIds( + config.data_hide === true ? $$.mapToIds($$.data.targets) : config.data_hide + ); + } + if (config.legend_hide) { + $$.addHiddenLegendIds( + config.legend_hide === true ? $$.mapToIds($$.data.targets) : config.legend_hide + ); + } + $$.updateSizes(); + $$.updateScales(true); + if (hasAxis) { + const { x, y, y2, subX, subY, subY2 } = scale2; + if (x) { + x.domain(sortValue($$.getXDomain($$.data.targets), !config.axis_x_inverted)); + subX.domain(x.domain()); + org.xDomain = x.domain(); + } + if (y) { + y.domain($$.getYDomain($$.data.targets, "y")); + subY.domain(y.domain()); + } + if (y2) { + y2.domain($$.getYDomain($$.data.targets, "y2")); + subY2 && subY2.domain(y2.domain()); + } + } + $el.svg = $el.chart.append("svg").style("overflow", "hidden").style("display", "block"); + if (hasInteraction && state.inputType) { + const isTouch = state.inputType === "touch"; + const { onclick, onover, onout } = config; + $el.svg.on("click", (onclick == null ? void 0 : onclick.bind($$.api)) || null).on(isTouch ? "touchstart" : "mouseenter", (onover == null ? void 0 : onover.bind($$.api)) || null).on(isTouch ? "touchend" : "mouseleave", (onout == null ? void 0 : onout.bind($$.api)) || null); + } + config.svg_classname && $el.svg.attr("class", config.svg_classname); + const hasColorPatterns = isFunction(config.color_tiles) && $$.patterns; + if (hasAxis || hasColorPatterns || hasPolar || hasTreemap || labelsBGColor || ((_a = $$.hasLegendDefsPoint) == null ? void 0 : _a.call($$))) { + $el.defs = $el.svg.append("defs"); + if (hasAxis) { + ["id", "idXAxis", "idYAxis", "idGrid"].forEach((v) => { + $$.appendClip($el.defs, state.clip[v]); + }); + } + $$.generateTextBGColorFilter(labelsBGColor); + if (hasColorPatterns) { + $$.patterns.forEach((p) => $el.defs.append(() => p.node)); + } + } + $$.updateSvgSize(); + $$.bindResize(); + const main = $el.svg.append("g").classed($COMMON.main, true).attr("transform", hasFunnel || hasTreemap ? null : $$.getTranslate("main")); + $el.main = main; + config.subchart_show && $$.initSubchart(); + config.tooltip_show && $$.initTooltip(); + config.title_text && $$.initTitle(); + !hasTreemap && config.legend_show && $$.initLegend(); + if (config.data_empty_label_text) { + main.append("text").attr("class", `${$TEXT.text} ${$COMMON.empty}`).attr("text-anchor", "middle").attr("dominant-baseline", "middle"); + } + if (hasAxis) { + config.regions.length && $$.initRegion(); + !config.clipPath && $$.axis.init(); + } + main.append("g").classed($COMMON.chart, true).attr("clip-path", hasAxis ? state.clip.path : null); + $$.callPluginHook("$init"); + $$.initChartElements(); + if (hasAxis) { + hasInteraction && ((_b = $$.initEventRect) == null ? void 0 : _b.call($$)); + $$.initGrid(); + config.clipPath && ((_c = $$.axis) == null ? void 0 : _c.init()); + } + $$.updateTargets($$.data.targets); + $$.updateDimension(); + callFn(config.oninit, $$.api); + $$.setBackground(); + $$.redraw({ + withTransition: false, + withTransform: true, + withUpdateXDomain: true, + withUpdateOrgXDomain: true, + withTransitionForAxis: false, + initializing: true + }); + if (config.data_onmin || config.data_onmax) { + const minMax = $$.getMinMaxData(); + callFn(config.data_onmin, $$.api, minMax.min); + callFn(config.data_onmax, $$.api, minMax.max); + } + config.tooltip_show && $$.initShowTooltip(); + state.rendered = true; + } + /** + * Initialize chart elements + * @private + */ + initChartElements() { + const $$ = this; + const { hasAxis, hasRadar, hasTreemap } = $$.state; + const types = []; + if (hasAxis) { + const shapes = ["bar", "bubble", "candlestick", "line"]; + if ($$.config.bar_front) { + shapes.push(shapes.shift()); + } + shapes.forEach((v) => { + const name = capitalize(v); + if (v === "line" && $$.hasTypeOf(name) || $$.hasType(v)) { + types.push(name); + } + }); + } else if (hasTreemap) { + types.push("Treemap"); + } else if ($$.hasType("funnel")) { + types.push("Funnel"); + } else { + const hasPolar = $$.hasType("polar"); + if (!hasRadar) { + types.push("Arc", "Pie"); + } + if ($$.hasType("gauge")) { + types.push("Gauge"); + } else if (hasRadar) { + types.push("Radar"); + } else if (hasPolar) { + types.push("Polar"); + } + } + types.forEach((v) => { + $$[`init${v}`](); + }); + notEmpty($$.config.data_labels) && !$$.hasArcType(null, ["radar"]) && $$.initText(); + } + /** + * Set chart elements + * @private + */ + setChartElements() { + const $$ = this; + const { + $el: { + chart, + svg, + defs, + main, + tooltip: tooltip2, + legend: legend2, + title: title2, + grid, + needle, + arcs: arc, + circle: circles, + bar: bars, + candlestick, + line: lines, + area: areas, + text: texts + } + } = $$; + $$.api.$ = { + chart, + svg, + defs, + main, + tooltip: tooltip2, + legend: legend2, + title: title2, + grid, + arc, + circles, + bar: { bars }, + candlestick, + line: { lines, areas }, + needle, + text: { texts } + }; + } + /** + * Set background element/image + * @private + */ + setBackground() { + const $$ = this; + const { config: { background: bg }, state, $el: { svg } } = $$; + if (notEmpty(bg)) { + const element = svg.select("g").insert(bg.imgUrl ? "image" : "rect", ":first-child"); + if (bg.imgUrl) { + element.attr("href", bg.imgUrl); + } else if (bg.color) { + element.style("fill", bg.color).attr("clip-path", state.clip.path); + } + element.attr("class", bg.class || null).attr("width", "100%").attr("height", "100%"); + } + } + /** + * Update targeted element with given data + * @param {object} targets Data object formatted as 'target' + * @private + */ + updateTargets(targets) { + var _a; + const $$ = this; + const { hasAxis, hasFunnel, hasRadar, hasTreemap } = $$.state; + const helper = (type) => $$[`updateTargetsFor${type}`]( + targets.filter($$[`is${type}Type`].bind($$)) + ); + $$.updateTargetsForText(targets); + if (hasAxis) { + ["bar", "candlestick", "line"].forEach((v) => { + const name = capitalize(v); + if (v === "line" && $$.hasTypeOf(name) || $$.hasType(v)) { + helper(name); + } + }); + $$.updateTargetsForSubchart && $$.updateTargetsForSubchart(targets); + } else if ($$.hasArcType(targets)) { + let type = "Arc"; + if (hasRadar) { + type = "Radar"; + } else if ($$.hasType("polar")) { + type = "Polar"; + } + helper(type); + } else if (hasFunnel) { + helper("Funnel"); + } else if (hasTreemap) { + helper("Treemap"); + } + const hasPointType = $$.hasType("bubble") || $$.hasType("scatter"); + if (hasPointType) { + (_a = $$.updateTargetForCircle) == null ? void 0 : _a.call($$); + } + $$.filterTargetsToShowAtInit(hasPointType); + } + /** + * Display targeted elements at initialization + * @param {boolean} hasPointType whether has point type(bubble, scatter) or not + * @private + */ + filterTargetsToShowAtInit(hasPointType = false) { + const $$ = this; + const { $el: { svg }, $T } = $$; + let selector = `.${$COMMON.target}`; + if (hasPointType) { + selector += `, .${$CIRCLE.chartCircles} > .${$CIRCLE.circles}`; + } + $T(svg.selectAll(selector).filter((d) => $$.isTargetToShow(d.id))).style("opacity", null); + } + getWithOption(options) { + const withOptions = { + Dimension: true, + EventRect: true, + Legend: false, + Subchart: true, + Transform: false, + Transition: true, + TrimXDomain: true, + UpdateXAxis: "UpdateXDomain", + UpdateXDomain: false, + UpdateOrgXDomain: false, + TransitionForExit: "Transition", + TransitionForAxis: "Transition", + Y: true + }; + Object.keys(withOptions).forEach((key) => { + let defVal = withOptions[key]; + if (isString(defVal)) { + defVal = withOptions[defVal]; + } + withOptions[key] = getOption(options, `with${key}`, defVal); + }); + return withOptions; + } + initialOpacity(d) { + const $$ = this; + const { withoutFadeIn } = $$.state; + const r = $$.getBaseValue(d) !== null && withoutFadeIn[d.id] ? null : "0"; + return r; + } + bindResize() { + const $$ = this; + const { config, state } = $$; + const resizeFunction = generateResize(config.resize_timer); + const list = []; + list.push(() => callFn(config.onresize, $$.api)); + if (config.resize_auto) { + list.push(() => { + state.resizing = true; + if (config.legend_show) { + $$.updateSizes(); + $$.updateLegend(); + } + $$.api.flush(false); + }); + } + list.push(() => { + callFn(config.onresized, $$.api); + state.resizing = false; + }); + list.forEach((v) => resizeFunction.add(v)); + $$.resizeFunction = resizeFunction; + win.addEventListener("resize", $$.resizeFunction = resizeFunction); + } + /** + * Call plugin hook + * @param {string} phase The lifecycle phase + * @param {Array} args Arguments + * @private + */ + callPluginHook(phase, ...args) { + this.config.plugins.forEach((v) => { + if (phase === "$beforeInit") { + v.$$ = this; + this.api.plugins.push(v); + } + v[phase](...args); + }); + } +} +extend(ChartInternal.prototype, [ + // common + convert, + data_data, + load, + category, + internals_class, + internals_color, + domain, + interactions_interaction, + format, + internals_legend, + redraw, + scale, + shape, + size, + style, + internals_text, + internals_title, + internals_tooltip, + transform, + type +]); + +;// CONCATENATED MODULE: ./src/config/config.ts + +function loadConfig(config) { + const thisConfig = this.config; + let target; + let keys; + let read; + const find = () => { + const key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } else if (!key) { + return target; + } + return void 0; + }; + Object.keys(thisConfig).forEach((key) => { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + if (this.api) { + this.state.orgConfig = config; + } +} + +;// CONCATENATED MODULE: ./src/Chart/api/chart.ts + + +/* harmony default export */ var chart = ({ + /** + * Resize the chart. + * @function resize + * @instance + * @memberof Chart + * @param {object} size This argument should include width and height in pixels. + * @param {number} [size.width] width value + * @param {number} [size.height] height value + * @example + * // Resize to 640x480 + * chart.resize({ + * width: 640, + * height: 480 + * }); + */ + resize(size) { + const $$ = this.internal; + const { config, state } = $$; + if (state.rendered) { + config.size_width = size ? size.width : null; + config.size_height = size ? size.height : null; + state.resizing = true; + this.flush(false); + $$.resizeFunction(); + } + }, + /** + * Force to redraw. + * - **NOTE:** When zoom/subchart is used, the zoomed state will be resetted. + * @function flush + * @instance + * @memberof Chart + * @param {boolean} [soft] For soft redraw. + * @example + * chart.flush(); + * + * // for soft redraw + * chart.flush(true); + */ + flush(soft) { + var _a, _b; + const $$ = this.internal; + const { state, $el: { zoomResetBtn } } = $$; + if (state.rendered) { + if (state.resizing) { + (_a = $$.brush) == null ? void 0 : _a.updateResize(); + } else { + (_b = $$.axis) == null ? void 0 : _b.setOrient(); + } + zoomResetBtn == null ? void 0 : zoomResetBtn.style("display", "none"); + $$.scale.zoom = null; + soft ? $$.redraw({ + withTransform: true, + withUpdateXDomain: true, + withUpdateOrgXDomain: true, + withLegend: true + }) : $$.updateAndRedraw({ + withLegend: true, + withTransition: false, + withTransitionForTransform: false + }); + if (!state.resizing && $$.brush) { + $$.brush.getSelection().call($$.brush.move); + $$.unselectRect(); + } + } else { + $$.initToRender(true); + } + }, + /** + * Reset the chart object and remove element and events completely. + * @function destroy + * @instance + * @memberof Chart + * @returns {null} + * @example + * chart.destroy(); + */ + destroy() { + const $$ = this.internal; + const { $el: { chart, style, svg } } = $$; + if (notEmpty($$)) { + $$.callPluginHook("$willDestroy"); + $$.charts.splice($$.charts.indexOf(this), 1); + $$.unbindAllEvents(); + svg.select("*").interrupt(); + $$.resizeFunction.clear(); + win.removeEventListener("resize", $$.resizeFunction); + chart.classed("bb", false).style("position", null).selectChildren().remove(); + style && style.parentNode.removeChild(style); + Object.keys(this).forEach((key) => { + key === "internal" && Object.keys($$).forEach((k) => { + $$[k] = null; + }); + this[key] = null; + delete this[key]; + }); + for (const key in this) { + this[key] = () => { + }; + } + } + return null; + }, + /** + * Get or set config option value. + * - **NOTE** + * - The option key name must be specified as the last level. + * - when no argument is given, will return all specified generation options object only. (will exclude any other options not specified at the initialization) + * @function config + * @instance + * @memberof Chart + * @param {string} name The option key name. + * @param {*} [value] The value accepted for indicated option. + * @param {boolean} [redraw] Set to redraw with the new option changes. + * - **NOTE:** Doesn't guarantee work in all circumstances. It can be applied for limited options only. + * @returns {*} + * @example + * + * // Getter + * chart.config("gauge.max"); + * + * // Getter specified with top level key name will not work. + * // The option key name must be specified as the last level. + * // chart.config("gauge"); // will not work + * + * // without any arguments, it returns generation config object + * chart.config(); // {data: { ... }, axis: { ... }, ...} + * + * // Setter + * chart.config("gauge.max", 100); + * + * // Setter specified with top level key name will not work. + * // The option key name must be specified as the last level. + * // chart.config("gauge", {min: 10, max: 20}); // will not work + * + * // Setter & redraw with the new option + * chart.config("gauge.max", 100, true); + */ + config(name, value, redraw) { + const $$ = this.internal; + const { config, state } = $$; + const key = name == null ? void 0 : name.replace(/\./g, "_"); + let res; + if (name && key in config) { + if (isDefined(value)) { + config[key] = value; + res = value; + redraw && this.flush(); + } else { + res = config[key]; + } + } else if (arguments.length === 0 || isEmpty(name)) { + res = state.orgConfig; + } + return res; + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/color.ts +/* harmony default export */ var api_color = ({ + /** + * Get the color + * @function color + * @instance + * @memberof Chart + * @param {string} id id to get the color + * @returns {string} + * @example + * chart.color("data1"); + */ + color(id) { + return this.internal.color(id); + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/data.ts + +const api_data_data = function(targetIds) { + const { targets } = this.internal.data; + if (!isUndefined(targetIds)) { + const ids = isArray(targetIds) ? targetIds : [targetIds]; + return targets.filter((t) => ids.some((v) => v === t.id)); + } + return targets; +}; +extend(api_data_data, { + /** + * Get data shown in the chart. + * @function data․shown + * @instance + * @memberof Chart + * @param {string|Array} targetIds If this argument is given, this API filters the data with specified target ids. If this argument is not given, all shown data will be returned. + * @returns {Array} Data objects + * @example + * // Get shown data by filtering to include only data1 data + * chart.data.shown("data1"); + * // --> [{id: "data1", id_org: "data1", values: Array(6)}, ...] + * + * // Get shown data by filtering to include data1 and data2 data + * chart.data.shown(["data1", "data2"]); + * + * // Get all shown data + * chart.data.shown(); + */ + shown: function(targetIds) { + return this.internal.filterTargetsToShow(this.data(targetIds)); + }, + /** + * Get values of the data loaded in the chart. + * @function data․values + * @instance + * @memberof Chart + * @param {string|Array|null} targetIds This API returns the values of specified target. If this argument is not given, null will be retruned + * @param {boolean} [flat=true] Get flatten values + * @returns {Array} Data values + * @example + * // Get data1 values + * chart.data.values("data1"); + * // --> [10, 20, 30, 40] + */ + values: function(targetIds, flat = true) { + let values = null; + if (targetIds) { + const targets = this.data(targetIds); + if (isArray(targets)) { + values = []; + targets.forEach((v) => { + const dataValue = v.values.map((d) => d.value); + flat ? values = values.concat(dataValue) : values.push(dataValue); + }); + } + } + return values; + }, + /** + * Get and set names of the data loaded in the chart. + * @function data․names + * @instance + * @memberof Chart + * @param {object} names If this argument is given, the names of data will be updated. If not given, the current names will be returned. The format of this argument is the same as [data.names](./Options.html#.data%25E2%2580%25A4names). + * @returns {object} Corresponding names according its key value, if specified names values. + * @example + * // Get current names + * chart.data.names(); + * // --> {data1: "test1", data2: "test2"} + * + * // Update names + * chart.data.names({ + * data1: "New Name 1", + * data2: "New Name 2" + * }); + */ + names: function(names) { + const $$ = this.internal; + return $$.updateDataAttributes("names", names); + }, + /** + * Get and set colors of the data loaded in the chart. + * @function data․colors + * @instance + * @memberof Chart + * @param {object} colors If this argument is given, the colors of data will be updated. If not given, the current colors will be returned. The format of this argument is the same as [data.colors](./Options.html#.data%25E2%2580%25A4colors). + * @returns {object} Corresponding data color value according its key value. + * @example + * // Get current colors + * chart.data.colors(); + * // --> {data1: "#00c73c", data2: "#fa7171"} + * + * // Update colors + * chart.data.colors({ + * data1: "#FFFFFF", + * data2: "#000000" + * }); + */ + colors: function(colors) { + return this.internal.updateDataAttributes("colors", colors); + }, + /** + * Get and set axes of the data loaded in the chart. + * - **NOTE:** If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data + * @function data․axes + * @instance + * @memberof Chart + * @param {object} axes If this argument is given, the axes of data will be updated. If not given, the current axes will be returned. The format of this argument is the same as + * @returns {object} Corresponding axes value for data, if specified axes value. + * @example + * // Get current axes + * chart.data.axes(); + * // --> {data1: "y"} + * + * // Update axes + * chart.data.axes({ + * data1: "y", + * data2: "y2" + * }); + */ + axes: function(axes) { + return this.internal.updateDataAttributes("axes", axes); + }, + /** + * Get the minimum data value bound to the chart + * @function data․min + * @instance + * @memberof Chart + * @returns {Array} Data objects + * @example + * // Get current axes + * chart.data.min(); + * // --> [{x: 0, value: 30, id: "data1", index: 0}, ...] + */ + min: function() { + return this.internal.getMinMaxData().min; + }, + /** + * Get the maximum data value bound to the chart + * @function data․max + * @instance + * @memberof Chart + * @returns {Array} Data objects + * @example + * // Get current axes + * chart.data.max(); + * // --> [{x: 3, value: 400, id: "data1", index: 3}, ...] + */ + max: function() { + return this.internal.getMinMaxData().max; + } +}); +/* harmony default export */ var api_data = ({ data: api_data_data }); + +;// CONCATENATED MODULE: ./src/Chart/api/export.ts + + + +const b64EncodeUnicode = (str) => { + var _a, _b; + return (_b = (_a = win).btoa) == null ? void 0 : _b.call( + _a, + encodeURIComponent(str).replace( + /%([0-9A-F]{2})/g, + (match, p) => String.fromCharCode(Number(`0x${p}`)) + ) + ); +}; +function nodeToSvgDataUrl(node, option, orgSize) { + const { width, height } = option || orgSize; + const serializer = new XMLSerializer(); + const clone = node.cloneNode(true); + const cssText = getCssRules(toArray(browser_doc.styleSheets)).filter((r) => r.cssText).map((r) => r.cssText); + clone.setAttribute("xmlns", external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.namespaces.xhtml); + clone.style.margin = "0"; + clone.style.padding = "0"; + if (option.preserveFontStyle) { + clone.querySelectorAll("text").forEach((t) => { + t.innerHTML = ""; + }); + } + const nodeXml = serializer.serializeToString(clone); + const style = browser_doc.createElement("style"); + style.appendChild(browser_doc.createTextNode(cssText.join("\n"))); + const styleXml = serializer.serializeToString(style); + const dataStr = `<svg xmlns="${external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.namespaces.svg}" width="${width}" height="${height}" + viewBox="0 0 ${orgSize.width} ${orgSize.height}" + preserveAspectRatio="${(option == null ? void 0 : option.preserveAspectRatio) === false ? "none" : "xMinYMid meet"}"> + <foreignObject width="100%" height="100%"> + ${styleXml} + ${nodeXml.replace(/(url\()[^#]+/g, "$1")} + </foreignObject></svg>`; + return `data:image/svg+xml;base64,${b64EncodeUnicode(dataStr)}`; +} +function getCoords(elem, svgOffset) { + const { top, left } = svgOffset; + const { x, y } = elem.getBBox(); + const { a, b, c, d, e, f } = elem.getScreenCTM(); + const { width, height } = elem.getBoundingClientRect(); + return { + x: a * x + c * y + e - left, + y: b * x + d * y + f - top + (height - Math.round(height / 4)), + width, + height + }; +} +function getGlyph(svg) { + const { left, top } = svg.getBoundingClientRect(); + const filterFn = (t) => t.textContent || t.childElementCount; + const glyph = []; + toArray(svg.querySelectorAll("text")).filter(filterFn).forEach((t) => { + const getStyleFn = (ts) => { + const { fill, fontFamily, fontSize, textAnchor, transform } = win.getComputedStyle( + ts + ); + const { x, y, width, height } = getCoords(ts, { left, top }); + return { + [ts.textContent]: { + x, + y, + width, + height, + fill, + fontFamily, + fontSize, + textAnchor, + transform + } + }; + }; + if (t.childElementCount > 1) { + const text = []; + toArray(t.querySelectorAll("tspan")).filter(filterFn).forEach((ts) => { + glyph.push(getStyleFn(ts)); + }); + return text; + } else { + glyph.push(getStyleFn(t)); + } + }); + return glyph; +} +function renderText(ctx, glyph) { + glyph.forEach((g) => { + Object.keys(g).forEach((key) => { + const { x, y, width, height, fill, fontFamily, fontSize, transform } = g[key]; + ctx.save(); + ctx.font = `${fontSize} ${fontFamily}`; + ctx.fillStyle = fill; + if (transform === "none") { + ctx.fillText(key, x, y); + } else { + const args = transform.replace(/(matrix|\(|\))/g, "").split(","); + if (args.splice(4).every((v) => +v === 0)) { + args.push(x + width - width / 4); + args.push(y - height + height / 3); + } else { + args.push(x); + args.push(y); + } + ctx.transform(...args); + ctx.fillText(key, 0, 0); + } + ctx.restore(); + }); + }); +} +/* harmony default export */ var api_export = ({ + /** + * Export chart as an image. + * - **NOTE:** + * - IE11 and below not work properly due to the lack of the feature(<a href="https://msdn.microsoft.com/en-us/library/hh834675(v=vs.85).aspx">foreignObject</a>) support + * - Every style applied to the chart & the basic CSS file(ex. billboard.css) should be at same domain as API call context to get correct styled export image. + * @function export + * @instance + * @memberof Chart + * @param {object} option Export option + * @param {string} [option.mimeType="image/png"] The desired output image format. (ex. 'image/png' for png, 'image/jpeg' for jpeg format) + * @param {number} [option.width={currentWidth}] width + * @param {number} [option.height={currentHeigth}] height + * @param {boolean} [option.preserveAspectRatio=true] Preserve aspect ratio on given size + * @param {boolean} [option.preserveFontStyle=false] Preserve font style(font-family).<br> + * **NOTE:** + * - This option is useful when outlink web font style's `font-family` are applied to chart's text element. + * - Text element's position(especially "transformed") can't be preserved correctly according the page's layout condition. + * - If need to preserve accurate text position, embed the web font data within to the page and set `preserveFontStyle=false`. + * - Checkout the embed example: <a href="https://stackblitz.com/edit/zfbya9-8nf9nn?file=index.html">https://stackblitz.com/edit/zfbya9-8nf9nn?file=index.html</a> + * @param {Function} [callback] The callback to be invoked when export is ready. + * @returns {string} dataURI + * @example + * chart.export(); + * // --> "data:image/svg+xml;base64,PHN..." + * + * // Initialize the download automatically + * chart.export({mimeType: "image/png"}, dataUrl => { + * const link = document.createElement("a"); + * + * link.download = `${Date.now()}.png`; + * link.href = dataUrl; + * link.innerHTML = "Download chart as image"; + * + * document.body.appendChild(link); + * }); + * + * // Resize the exported image + * chart.export( + * { + * width: 800, + * height: 600, + * preserveAspectRatio: false, + * preserveFontStyle: false, + * mimeType: "image/png" + * }, + * dataUrl => { ... } + * ); + */ + export(option, callback) { + const $$ = this.internal; + const { state, $el: { chart, svg } } = $$; + const { width, height } = state.current; + const opt = mergeObj({ + width, + height, + preserveAspectRatio: true, + preserveFontStyle: false, + mimeType: "image/png" + }, option); + const svgDataUrl = nodeToSvgDataUrl(chart.node(), opt, { width, height }); + const glyph = opt.preserveFontStyle ? getGlyph(svg.node()) : []; + if (callback && isFunction(callback)) { + const img = new Image(); + img.crossOrigin = "Anonymous"; + img.onload = () => { + const canvas = browser_doc.createElement("canvas"); + const ctx = canvas.getContext("2d"); + canvas.width = opt.width || width; + canvas.height = opt.height || height; + ctx.drawImage(img, 0, 0); + if (glyph.length) { + renderText(ctx, glyph); + glyph.length = 0; + } + callback.bind(this)(canvas.toDataURL(opt.mimeType)); + }; + img.src = svgDataUrl; + } + return svgDataUrl; + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/focus.ts + + +/* harmony default export */ var api_focus = ({ + /** + * This API highlights specified targets and fade out the others.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be highlighted. + * @function focus + * @instance + * @memberof Chart + * @param {string|Array} targetIdsValue Target ids to be highlighted. + * @example + * // data1 will be highlighted and the others will be faded out + * chart.focus("data1"); + * + * // data1 and data2 will be highlighted and the others will be faded out + * chart.focus(["data1", "data2"]); + * + * // all targets will be highlighted + * chart.focus(); + */ + focus(targetIdsValue) { + const $$ = this.internal; + const { state } = $$; + const targetIds = $$.mapToTargetIds(targetIdsValue); + const candidates = $$.$el.svg.selectAll( + $$.selectorTargets(targetIds.filter($$.isTargetToShow, $$)) + ); + this.revert(); + this.defocus(); + candidates.classed($FOCUS.focused, true).classed($FOCUS.defocused, false); + if ($$.hasArcType() && !state.hasRadar) { + $$.expandArc(targetIds); + $$.hasType("gauge") && $$.markOverlapped(targetIdsValue, $$, `.${$GAUGE.gaugeValue}`); + } + $$.toggleFocusLegend(targetIds, true); + state.focusedTargetIds = targetIds; + state.defocusedTargetIds = state.defocusedTargetIds.filter((id) => targetIds.indexOf(id) < 0); + }, + /** + * This API fades out specified targets and reverts the others.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be faded out. + * @function defocus + * @instance + * @memberof Chart + * @param {string|Array} targetIdsValue Target ids to be faded out. + * @example + * // data1 will be faded out and the others will be reverted. + * chart.defocus("data1"); + * + * // data1 and data2 will be faded out and the others will be reverted. + * chart.defocus(["data1", "data2"]); + * + * // all targets will be faded out. + * chart.defocus(); + */ + defocus(targetIdsValue) { + const $$ = this.internal; + const { state } = $$; + const targetIds = $$.mapToTargetIds(targetIdsValue); + const candidates = $$.$el.svg.selectAll( + $$.selectorTargets(targetIds.filter($$.isTargetToShow, $$)) + ); + candidates.classed($FOCUS.focused, false).classed($FOCUS.defocused, true); + if ($$.hasArcType(null, ["polar"])) { + $$.unexpandArc(targetIds); + $$.hasType("gauge") && $$.undoMarkOverlapped($$, `.${$GAUGE.gaugeValue}`); + } + $$.toggleFocusLegend(targetIds, false); + state.focusedTargetIds = state.focusedTargetIds.filter((id) => targetIds.indexOf(id) < 0); + state.defocusedTargetIds = targetIds; + }, + /** + * Revert focused or defocused state to initial state.<br><br> + * You can specify multiple targets by giving an array that includes id as string. If no argument is given, all of targets will be reverted. + * @function revert + * @instance + * @memberof Chart + * @param {string|Array} targetIdsValue Target ids to be reverted + * @example + * // 'data1' will be reverted. + * chart.revert("data1"); + * + * // 'data1' and 'data2' will be reverted. + * chart.revert(["data1", "data2"]); + * + * // all targets will be reverted. + * chart.revert(); + */ + revert(targetIdsValue) { + const $$ = this.internal; + const { config, state, $el } = $$; + const targetIds = $$.mapToTargetIds(targetIdsValue); + const candidates = $el.svg.selectAll($$.selectorTargets(targetIds)); + candidates.classed($FOCUS.focused, false).classed($FOCUS.defocused, false); + $$.hasArcType(null, ["polar"]) && $$.unexpandArc(targetIds); + if (config.legend_show) { + $$.showLegend(targetIds.filter($$.isLegendToShow.bind($$))); + $el.legend.selectAll($$.selectorLegends(targetIds)).filter(function() { + return (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).classed($FOCUS.legendItemFocused); + }).classed($FOCUS.legendItemFocused, false); + } + state.focusedTargetIds = []; + state.defocusedTargetIds = []; + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/legend.ts +const legend_legend = { + /** + * Show legend for each target. + * - **NOTE:** Legend APIs aren't supported for `treemap` type. + * @function legend․show + * @instance + * @memberof Chart + * @param {string|Array} targetIds + * - If targetIds is given, specified target's legend will be shown. + * - If only one target is the candidate, String can be passed. + * - If no argument is given, all of target's legend will be shown. + * @example + * // Show legend for data1. + * chart.legend.show("data1"); + * + * // Show legend for data1 and data2. + * chart.legend.show(["data1", "data2"]); + * + * // Show all legend. + * chart.legend.show(); + */ + show: function(targetIds) { + const $$ = this.internal; + $$.showLegend($$.mapToTargetIds(targetIds)); + $$.updateAndRedraw({ withLegend: true }); + }, + /** + * Hide legend for each target. + * @function legend․hide + * @instance + * @memberof Chart + * @param {string|Array} targetIds + * - If targetIds is given, specified target's legend will be hidden. + * - If only one target is the candidate, String can be passed. + * - If no argument is given, all of target's legend will be hidden. + * @example + * // Hide legend for data1. + * chart.legend.hide("data1"); + * + * // Hide legend for data1 and data2. + * chart.legend.hide(["data1", "data2"]); + * + * // Hide all legend. + * chart.legend.hide(); + */ + hide: function(targetIds) { + const $$ = this.internal; + $$.hideLegend($$.mapToTargetIds(targetIds)); + $$.updateAndRedraw({ withLegend: true }); + } +}; +/* harmony default export */ var api_legend = ({ legend: legend_legend }); + +;// CONCATENATED MODULE: ./src/Chart/api/load.ts + + + +/* harmony default export */ var api_load = ({ + /** + * Load data to the chart.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be toggles. + * - <b>Note:</b> + * - unload should be used if some data needs to be unloaded simultaneously. + * If you call unload API soon after/before load instead of unload param, chart will not be rendered properly because of cancel of animation.<br> + * - done will be called after data loaded, but it's not after rendering. + * It's because rendering will finish after some transition and there is some time lag between loading and rendering + * @function load + * @instance + * @memberof Chart + * @param {object} args The object can consist with following members:<br> + * + * | Key | Type | Description | + * | --- | --- | --- | + * | columns | Array | The `columns` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * | json | Array | The `json` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * | rows | Array | The `rows` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * | url | string | The data from `url` will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * |   | | | + * | append | boolean | Load data appending it to the current dataseries.<br>If the existing chart has`x` value, should provide with corresponding `x` value for newly loaded data. | + * | axes | Object | The axes specified by data.axes will be updated. axes must be Object that has target id as keys. | + * | categories | Array | The categories specified by axis.x.categories or data.x will be updated. categories must be Array. | + * | classes | Object | The classes specified by data.classes will be updated. classes must be Object that has target id as keys. | + * | colors | Object | The colors specified by data.colors will be updated. colors must be Object that has target id as keys. | + * | data | Obejct | Data objects to be loaded. Checkout the example. | + * | done | Function | The specified function will be called after data loaded.| + * | headers | string | Set request header if loading via `data.url`.<br>@see [data․headers](Options.html#.data%25E2%2580%25A4headers) | + * | keys | Object | Choose which JSON objects keys correspond to desired data.<br>**NOTE:** Only for JSON object given as array.<br>@see [data․keys](Options.html#.data%25E2%2580%25A4keys) | + * | mimeType | string | Set 'json' if loading JSON via url.<br>@see [data․mimeType](Options.html#.data%25E2%2580%25A4mimeType) | + * | names | Object | Same as data.names() | + * | resizeAfter | boolean | Resize after the load. Default value is `false`.<br>- This option won't call `onresize` neither `onresized`.<br>- When set to 'true', will call `.flush(true)` at the end of load. | + * | type | string | The type of targets will be updated. | + * | types | Object | The types of targets will be updated. | + * | unload | Array | Specify the data will be unloaded before loading new data. If true given, all of data will be unloaded. If target ids given as String or Array, specified targets will be unloaded. If absent or false given, unload will not occur. | + * | xs | string | Same as data.xs option | + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataFromURL) + * @example + * // Load data1 and unload data2 and data3 + * chart.load({ + * columns: [ + * ["data1", 100, 200, 150, ...], + * ... + * ], + * unload: ["data2", "data3"], + * url: "...", + * done: function() { ... } + * resizeAfter: true // will resize after load + * }); + * @example + * const chart = bb.generate({ + * data: { + * columns: [ + * ["data1", 20, 30, 40] + * ] + * } + * }); + * + * chart.load({ + * columns: [ + * // with 'append' option, the 'data1' will have `[20,30,40,50,60]`. + * ["data1", 50, 60] + * ], + * append: true + * }); + * @example + * const chart = bb.generate({ + * data: { + * x: "x", + * xFormat: "%Y-%m-%dT%H:%M:%S", + * columns: [ + * ["x", "2021-01-03T03:00:00", "2021-01-04T12:00:00", "2021-01-05T21:00:00"], + * ["data1", 36, 30, 24] + * ] + * }, + * axis: { + * x: { + * type: "timeseries" + * } + * } + * }; + * + * chart.load({ + * columns: [ + * // when existing chart has `x` value, should provide correponding 'x' value. + * // with 'append' option, the 'data1' will have `[36,30,24,37]`. + * ["x", "2021-02-01T08:00:00"], + * ["data1", 37] + * ], + * append: true + * }); + * @example + * // myAPI.json + * // { + * // "data1": [220, 240, 270, 250, 280], + * // "data2": [180, 150, 300, 70, 120] + * // } + * + * chart.load({ + * url: './data/myAPI.json', + * mimeType: "json", + * + * // set request header if is needed + * headers: { + * "Content-Type": "text/json" + * } + * }); + * @example + * chart.load({ + * data: [ + * // equivalent as: columns: [["data1", 30, 200, 100]] + * {"data1": 30}, {"data1": 200}, {"data1": 100} + * + * // or + * // equivalent as: columns: [["data1", 10, 20], ["data2", 13, 30]] + * // {"data1": 10, "data2": 13}, {"data1": 20, "data2": 30}} + * ] + * }); + * @example + * chart.load({ + * json: [ + * {name: "www.site1.com", upload: 800, download: 500, total: 400}, + * ], + * keys: { + * x: "name", + * value: ["upload", "download"] + * } + * }); + * @example + * chart.load({ + * json: { + * data1:[30, 20, 50, 40, 60, 50], + * data2:[200, 130, 90, 240, 130, 220], + * } + * }); + */ + load(args) { + const $$ = this.internal; + const { config } = $$; + args.xs && $$.addXs(args.xs); + "names" in args && this.data.names(args.names); + "classes" in args && Object.keys(args.classes).forEach((id) => { + config.data_classes[id] = args.classes[id]; + }); + if ("categories" in args && $$.axis.isCategorized()) { + config.axis_x_categories = args.categories; + } + "axes" in args && Object.keys(args.axes).forEach((id) => { + config.data_axes[id] = args.axes[id]; + }); + "colors" in args && Object.keys(args.colors).forEach((id) => { + config.data_colors[id] = args.colors[id]; + }); + if ("unload" in args && args.unload !== false) { + $$.unload($$.mapToTargetIds(args.unload === true ? null : args.unload), () => { + requestIdleCallback(() => $$.loadFromArgs(args)); + }); + } else { + $$.loadFromArgs(args); + } + }, + /** + * Unload data to the chart.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be toggles. + * - <b>Note:</b> + * If you call load API soon after/before unload, unload param of load should be used. Otherwise chart will not be rendered properly because of cancel of animation.<br> + * `done` will be called after data loaded, but it's not after rendering. It's because rendering will finish after some transition and there is some time lag between loading and rendering. + * @function unload + * @instance + * @memberof Chart + * @param {object} argsValue + * | key | Type | Description | + * | --- | --- | --- | + * | ids | String | Array | Target id data to be unloaded. If not given, all data will be unloaded. | + * | done | Fuction | Callback after data is unloaded. | + * | resizeAfter | boolean | Resize after the unload. Default value is `false`.<br>- This option won't call `onresize` neither `onresized`.<br>- When set to 'true', will call `.flush(true)` at the end of unload. | + * @example + * // Unload data2 and data3 + * chart.unload({ + * ids: ["data2", "data3"], + * done: function() { + * // called after the unloaded + * }, + * resizeAfter: true // will resize after unload + * }); + */ + unload(argsValue) { + const $$ = this.internal; + let args = argsValue || {}; + isEmpty(args) && this.tooltip.hide(); + if (isArray(args)) { + args = { ids: args }; + } else if (isString(args)) { + args = { ids: [args] }; + } + const ids = $$.mapToTargetIds(args.ids); + $$.unload(ids, () => { + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true, + withLegend: true + }); + $$.cache.remove(ids); + callDone.call($$, args.done, args.resizeAfter); + }); + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/show.ts + +function showHide(show, targetIdsValue, options) { + const $$ = this.internal; + const targetIds = $$.mapToTargetIds(targetIdsValue); + const hiddenIds = $$.state.hiddenTargetIds.map((v) => targetIds.indexOf(v) > -1 && v).filter(Boolean); + $$.state.toggling = true; + $$[`${show ? "remove" : "add"}HiddenTargetIds`](targetIds); + const targets = $$.$el.svg.selectAll($$.selectorTargets(targetIds)); + const opacity = show ? null : "0"; + if (show && hiddenIds.length) { + targets.style("display", null); + callFn($$.config.data_onshown, this, hiddenIds); + } + $$.$T(targets).style("opacity", opacity, "important").call(endall, () => { + if (!show && hiddenIds.length === 0) { + targets.style("display", "none"); + callFn($$.config.data_onhidden, this, targetIds); + } + targets.style("opacity", opacity); + }); + options.withLegend && $$[`${show ? "show" : "hide"}Legend`](targetIds); + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true, + withLegend: true + }); + $$.state.toggling = false; +} +/* harmony default export */ var show = ({ + /** + * Show data series on chart + * @function show + * @instance + * @memberof Chart + * @param {string|Array} [targetIdsValue] The target id value. + * @param {object} [options] The object can consist with following members:<br> + * + * | Key | Type | default | Description | + * | --- | --- | --- | --- | + * | withLegend | boolean | false | whether or not display legend | + * + * @example + * // show 'data1' + * chart.show("data1"); + * + * // show 'data1' and 'data3' + * chart.show(["data1", "data3"]); + */ + show(targetIdsValue, options = {}) { + showHide.call(this, true, targetIdsValue, options); + }, + /** + * Hide data series from chart + * @function hide + * @instance + * @memberof Chart + * @param {string|Array} [targetIdsValue] The target id value. + * @param {object} [options] The object can consist with following members:<br> + * + * | Key | Type | default | Description | + * | --- | --- | --- | --- | + * | withLegend | boolean | false | whether or not display legend | + * + * @example + * // hide 'data1' + * chart.hide("data1"); + * + * // hide 'data1' and 'data3' + * chart.hide(["data1", "data3"]); + */ + hide(targetIdsValue, options = {}) { + showHide.call(this, false, targetIdsValue, options); + }, + /** + * Toggle data series on chart. When target data is hidden, it will show. If is shown, it will hide in vice versa. + * @function toggle + * @instance + * @memberof Chart + * @param {string|Array} [targetIds] The target id value. + * @param {object} [options] The object can consist with following members:<br> + * + * | Key | Type | default | Description | + * | --- | --- | --- | --- | + * | withLegend | boolean | false | whether or not display legend | + * + * @example + * // toggle 'data1' + * chart.toggle("data1"); + * + * // toggle 'data1' and 'data3' + * chart.toggle(["data1", "data3"]); + */ + toggle(targetIds, options = {}) { + const $$ = this.internal; + const targets = { show: [], hide: [] }; + $$.mapToTargetIds(targetIds).forEach((id) => targets[$$.isTargetToShow(id) ? "hide" : "show"].push(id)); + targets.show.length && this.show(targets.show, options); + targets.hide.length && setTimeout(() => this.hide(targets.hide, options), 0); + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/tooltip.ts + + +const tooltip_tooltip = { + /** + * Show tooltip + * @function tooltip․show + * @instance + * @memberof Chart + * @param {object} args The object can consist with following members:<br> + * + * | Key | Type | Description | + * | --- | --- | --- | + * | index | Number | Determine focus by index | + * | x | Number | Date | Determine focus by x Axis index | + * | mouse | Array | Determine x and y coordinate value relative the targeted '.bb-event-rect' x Axis.<br>It should be used along with `data`, `index` or `x` value. The default value is set as `[0,0]` | + * | data | Object | When [data.xs](Options.html#.data%25E2%2580%25A4xs) option is used or [tooltip.grouped](Options.html#.tooltip) set to 'false', `should be used giving this param`.<br><br>**Key:**<br>- x {number | Date}: x Axis value<br>- index {number}: x Axis index (useless for data.xs)<br>- id {string}: data id<br>- value {number}: The corresponding value for tooltip. | + * + * @example + * // show the 2nd x Axis coordinate tooltip + * // for Arc(gauge, donut & pie) and radar type, approch showing tooltip by using "index" number. + * chart.tooltip.show({ + * index: 1 + * }); + * + * // show tooltip for the 3rd x Axis in x:50 and y:100 coordinate of '.bb-event-rect' of the x Axis. + * chart.tooltip.show({ + * x: 2, + * mouse: [50, 100] + * }); + * + * // show tooltip for timeseries x axis + * chart.tooltip.show({ + * x: new Date("2018-01-02 00:00") + * }); + * + * // treemap type can be shown by using "id" only. + * chart.tooltip.show({ + * data: { + * id: "data1" // data id + * } + * }); + * + * // for Arc types, specify 'id' or 'index' + * chart.tooltip.show({ data: { id: "data2" }}); + * chart.tooltip.show({ data: { index: 2 }}); + * + * // when data.xs is used + * chart.tooltip.show({ + * data: { + * x: 3, // x Axis value + * id: "data1", // data id + * value: 500 // data value + * } + * }); + * + * // when data.xs isn't used, but tooltip.grouped=false is set + * chart.tooltip.show({ + * data: { + * index: 3, // or 'x' key value + * id: "data1", // data id + * value: 500 // data value + * } + * }); + */ + show: function(args) { + var _a, _b, _c; + const $$ = this.internal; + const { $el, config, state: { eventReceiver, hasFunnel, hasTreemap, inputType } } = $$; + let index; + let mouse; + if (args.mouse) { + mouse = args.mouse; + } + if (args.data) { + const { data } = args; + const y = (_a = $$.getYScaleById(data.id)) == null ? void 0 : _a(data.value); + if ((hasFunnel || hasTreemap) && data.id) { + const selector = $$.selectorTarget(data.id, void 0, `.${$SHAPE.shape}`); + eventReceiver.rect = $el.main.select(selector); + } else if ($$.isMultipleX()) { + mouse = [$$.xx(data), y]; + } else { + if (!config.tooltip_grouped) { + mouse = [0, y]; + } + index = (_c = data.index) != null ? _c : $$.hasArcType() && data.id ? (_b = $$.getArcElementByIdOrIndex(data.id)) == null ? void 0 : _b.datum().index : $$.getIndexByX(data.x); + } + } else if (isDefined(args.x)) { + index = $$.getIndexByX(args.x); + } else if (isDefined(args.index)) { + index = args.index; + } + (inputType === "mouse" ? ["mouseover", "mousemove"] : ["touchstart"]).forEach((eventName) => { + $$.dispatchEvent(eventName, index, mouse); + }); + }, + /** + * Hide tooltip + * @function tooltip․hide + * @instance + * @memberof Chart + */ + hide: function() { + var _a, _b, _c; + const $$ = this.internal; + const { state: { inputType }, $el: { tooltip: tooltip2 } } = $$; + const data = tooltip2 == null ? void 0 : tooltip2.datum(); + if (data) { + const { index } = JSON.parse(data.current)[0]; + (inputType === "mouse" ? ["mouseout"] : ["touchend"]).forEach((eventName) => { + $$.dispatchEvent(eventName, index); + }); + } + inputType === "touch" && $$.callOverOutForTouch(); + $$.hideTooltip(true); + (_a = $$.hideGridFocus) == null ? void 0 : _a.call($$); + (_b = $$.unexpandCircles) == null ? void 0 : _b.call($$); + (_c = $$.expandBarTypeShapes) == null ? void 0 : _c.call($$, false); + } +}; +/* harmony default export */ var api_tooltip = ({ tooltip: tooltip_tooltip }); + +;// CONCATENATED MODULE: ./src/Chart/Chart.ts +var Chart_defProp = Object.defineProperty; +var Chart_defNormalProp = (obj, key, value) => key in obj ? Chart_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var Chart_publicField = (obj, key, value) => { + Chart_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + + + + + + + + +class Chart { + constructor(options) { + Chart_publicField(this, "plugins", []); + Chart_publicField(this, "internal"); + const $$ = new ChartInternal(this); + this.internal = $$; + (function bindThis(fn, target, argThis) { + Object.keys(fn).forEach((key) => { + const isFunc = isFunction(fn[key]); + const isChild = target !== argThis; + const isNotNil = notEmpty(fn[key]); + const hasChild = isNotNil && Object.keys(fn[key]).length > 0; + if (isFunc && (!isChild && hasChild || isChild)) { + target[key] = fn[key].bind(argThis); + } else if (isNotNil && !isFunc) { + target[key] = {}; + } else { + target[key] = fn[key]; + } + hasChild && bindThis(fn[key], target[key], argThis); + }); + })(Chart.prototype, this, this); + loadConfig.call($$, options); + $$.beforeInit(); + $$.init(); + } +} +extend(Chart.prototype, [ + chart, + api_color, + api_data, + api_export, + api_focus, + api_legend, + api_load, + show, + api_tooltip +]); + +;// CONCATENATED MODULE: ./src/Chart/api/selection.ts + + + +function setSelection(isSelection = false, ids, indices, resetOther) { + const $$ = this; + const { config, $el: { main } } = $$; + const selectionGrouped = config.data_selection_grouped; + const isSelectable = config.data_selection_isselectable.bind($$.api); + if (!config.data_selection_enabled) { + return; + } + main.selectAll(`.${$SHAPE.shapes}`).selectAll(`.${$SHAPE.shape}`).each(function(d) { + const shape = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + const { id, index } = d.data ? d.data : d; + const toggle = $$.getToggle(this, d).bind($$); + const isTargetId = selectionGrouped || !ids || ids.indexOf(id) >= 0; + const isTargetIndex = !indices || indices.indexOf(index) >= 0; + const isSelected = shape.classed($SELECT.SELECTED); + if (shape.classed($LINE.line) || shape.classed($AREA.area)) { + return; + } + if (isSelection) { + if (isTargetId && isTargetIndex && isSelectable(d) && !isSelected) { + toggle(true, shape.classed($SELECT.SELECTED, true), d, index); + } else if (isDefined(resetOther) && resetOther && isSelected) { + toggle(false, shape.classed($SELECT.SELECTED, false), d, index); + } + } else { + if (isTargetId && isTargetIndex && isSelectable(d) && isSelected) { + toggle(false, shape.classed($SELECT.SELECTED, false), d, index); + } + } + }); +} +/* harmony default export */ var selection = ({ + /** + * Get selected data points.<br><br> + * By this API, you can get selected data points information. To use this API, data.selection.enabled needs to be set true. + * @function selected + * @instance + * @memberof Chart + * @param {string} [targetId] You can filter the result by giving target id that you want to get. If not given, all of data points will be returned. + * @returns {Array} dataPoint Array of the data points.<br>ex.) `[{x: 1, value: 200, id: "data1", index: 1, name: "data1"}, ...]` + * @example + * // all selected data points will be returned. + * chart.selected(); + * // --> ex.) [{x: 1, value: 200, id: "data1", index: 1, name: "data1"}, ... ] + * + * // all selected data points of data1 will be returned. + * chart.selected("data1"); + */ + selected(targetId) { + const $$ = this.internal; + const dataPoint = []; + $$.$el.main.selectAll(`.${$SHAPE.shapes + $$.getTargetSelectorSuffix(targetId)}`).selectAll(`.${$SHAPE.shape}`).filter(function() { + return (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).classed($SELECT.SELECTED); + }).each((d) => dataPoint.push(d)); + return dataPoint; + }, + /** + * Set data points to be selected. ([`data.selection.enabled`](Options.html#.data%25E2%2580%25A4selection%25E2%2580%25A4enabled) option should be set true to use this method) + * @function select + * @instance + * @memberof Chart + * @param {string|Array} [ids] id value to get selected. + * @param {Array} [indices] The index array of data points. If falsy value given, will select all data points. + * @param {boolean} [resetOther] Unselect already selected. + * @example + * // select all data points + * chart.select(); + * + * // select all from 'data2' + * chart.select("data2"); + * + * // select all from 'data1' and 'data2' + * chart.select(["data1", "data2"]); + * + * // select from 'data1', indices 2 and unselect others selected + * chart.select("data1", [2], true); + * + * // select from 'data1', indices 0, 3 and 5 + * chart.select("data1", [0, 3, 5]); + */ + select(ids, indices, resetOther) { + const $$ = this.internal; + setSelection.bind($$)(true, ids, indices, resetOther); + }, + /** + * Set data points to be un-selected. + * @function unselect + * @instance + * @memberof Chart + * @param {string|Array} [ids] id value to be unselected. + * @param {Array} [indices] The index array of data points. If falsy value given, will select all data points. + * @example + * // unselect all data points + * chart.unselect(); + * + * // unselect all from 'data1' + * chart.unselect("data1"); + * + * // unselect from 'data1', indices 2 + * chart.unselect("data1", [2]); + */ + unselect(ids, indices) { + const $$ = this.internal; + setSelection.bind($$)(false, ids, indices); + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/subchart.ts + + +const subchart = function(domainValue) { + var _a; + const $$ = this.internal; + const { axis, brush, config, scale: { x, subX }, state } = $$; + let domain; + if (config.subchart_show) { + domain = domainValue; + if (Array.isArray(domain)) { + if (axis.isTimeSeries()) { + domain = domain.map((x2) => parseDate.bind($$)(x2)); + } + const isWithinRange = $$.withinRange( + domain, + $$.getZoomDomain("subX", true), + $$.getZoomDomain("subX") + ); + if (isWithinRange) { + state.domain = domain; + brush.move( + brush.getSelection(), + domain.map(subX) + ); + } + } else { + domain = (_a = state.domain) != null ? _a : x.orgDomain(); + } + } + return domain; +}; +extend(subchart, { + /** + * Show subchart + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * @function subchart․show + * @instance + * @memberof Chart + * @example + * // for ESM imports, needs to import 'subchart' and must be instantiated first to enable subchart's API. + * import {subchart} from "billboard.js"; + * + * const chart = bb.generate({ + * ... + * subchart: { + * // need to be instantiated by calling 'subchart()' + * enabled: subchart() + * + * // in case don't want subchart to be shown at initialization, instantiate with '!subchart()' + * enabled: !subchart() + * } + * }); + * + * chart.subchart.show(); + */ + show() { + var _a, _b; + const $$ = this.internal; + const { $el: { subchart: subchart2 }, config } = $$; + const show = config.subchart_show; + if (!show) { + $$.unbindZoomEvent(); + config.subchart_show = !show; + !subchart2.main && $$.initSubchart(); + let $target = subchart2.main.selectAll(`.${$COMMON.target}`); + if ($$.data.targets.length !== $target.size()) { + $$.updateSizes(); + $$.updateTargetsForSubchart($$.data.targets); + $target = (_a = subchart2.main) == null ? void 0 : _a.selectAll(`.${$COMMON.target}`); + } + $target == null ? void 0 : $target.style("opacity", null); + (_b = subchart2.main) == null ? void 0 : _b.style("display", null); + this.resize(); + } + }, + /** + * Hide generated subchart + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * @function subchart․hide + * @instance + * @memberof Chart + * @example + * chart.subchart.hide(); + */ + hide() { + const $$ = this.internal; + const { $el: { subchart: { main } }, config } = $$; + if (config.subchart_show && (main == null ? void 0 : main.style("display")) !== "none") { + config.subchart_show = false; + main.style("display", "none"); + this.resize(); + } + }, + /** + * Toggle the visiblity of subchart + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * @function subchart․toggle + * @instance + * @memberof Chart + * @example + * // When subchart is hidden, will be shown + * // When subchart is shown, will be hidden + * chart.subchart.toggle(); + */ + toggle() { + const $$ = this.internal; + const { config } = $$; + this.subchart[config.subchart_show ? "hide" : "show"](); + }, + /** + * Reset subchart selection + * @function subchart․reset + * @instance + * @memberof Chart + * @example + * // Reset subchart selection + * chart.subchart.reset(); + */ + reset() { + const $$ = this.internal; + const { brush } = $$; + brush.clear(brush.getSelection()); + } +}); +/* harmony default export */ var api_subchart = ({ + subchart +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-zoom","commonjs2":"d3-zoom","amd":"d3-zoom","root":"d3"} +var external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_ = __webpack_require__(10); +;// CONCATENATED MODULE: ./src/Chart/api/zoom.ts + + +const zoom = function(domainValue) { + var _a; + const $$ = this.internal; + const { axis, config, org, scale, state } = $$; + const isCategorized = axis.isCategorized(); + let domain; + if (config.zoom_enabled) { + domain = domainValue; + if (Array.isArray(domain)) { + if (axis.isTimeSeries()) { + domain = domain.map((x) => parseDate.bind($$)(x)); + } + const isWithinRange = $$.withinRange( + domain, + $$.getZoomDomain("zoom", true), + $$.getZoomDomain("zoom") + ); + if (isWithinRange) { + state.domain = domain; + domain = $$.getZoomDomainValue(domain); + $$.api.tooltip.hide(); + if (config.subchart_show) { + const x = scale.zoom || scale.x; + $$.brush.getSelection().call($$.brush.move, domain.map(x)); + } else { + const x = isCategorized ? scale.x.orgScale() : org.xScale || scale.x; + $$.updateCurrentZoomTransform(x, domain); + } + $$.setZoomResetButton(); + } + } else { + domain = $$.zoom.getDomain(); + } + } + return (_a = state.domain) != null ? _a : domain; +}; +extend(zoom, { + /** + * Enable and disable zooming. + * @function zoom․enable + * @instance + * @memberof Chart + * @param {string|boolean} enabled Possible string values are "wheel" or "drag". If enabled is true, "wheel" will be used. If false is given, zooming will be disabled.<br>When set to false, the current zooming status will be reset. + * @example + * // Enable zooming using the mouse wheel + * chart.zoom.enable(true); + * // Or + * chart.zoom.enable("wheel"); + * + * // Enable zooming by dragging + * chart.zoom.enable("drag"); + * + * // Disable zooming + * chart.zoom.enable(false); + */ + enable(enabled) { + const $$ = this.internal; + const { config } = $$; + if (/^(drag|wheel)$/.test(enabled)) { + config.zoom_type = enabled; + } + config.zoom_enabled = !!enabled; + if (!$$.zoom) { + $$.initZoom(); + $$.bindZoomEvent(); + } else if (enabled === false) { + $$.bindZoomEvent(false); + } + $$.updateAndRedraw(); + }, + /** + * Set or get x Axis maximum zoom range value + * @function zoom․max + * @instance + * @memberof Chart + * @param {number} [max] maximum value to set for zoom + * @returns {number} zoom max value + * @example + * // Set maximum range value + * chart.zoom.max(20); + */ + max(max) { + const $$ = this.internal; + const { config, org: { xDomain } } = $$; + if (max === 0 || max) { + config.zoom_x_max = getMinMax("max", [xDomain[1], max]); + } + return config.zoom_x_max; + }, + /** + * Set or get x Axis minimum zoom range value + * @function zoom․min + * @instance + * @memberof Chart + * @param {number} [min] minimum value to set for zoom + * @returns {number} zoom min value + * @example + * // Set minimum range value + * chart.zoom.min(-1); + */ + min(min) { + const $$ = this.internal; + const { config, org: { xDomain } } = $$; + if (min === 0 || min) { + config.zoom_x_min = getMinMax("min", [xDomain[0], min]); + } + return config.zoom_x_min; + }, + /** + * Set zoom range + * @function zoom․range + * @instance + * @memberof Chart + * @param {object} [range] zoom range + * @returns {object} zoom range value + * { + * min: 0, + * max: 100 + * } + * @example + * chart.zoom.range({ + * min: 10, + * max: 100 + * }); + */ + range(range) { + const zoom2 = this.zoom; + if (isObject(range)) { + const { min, max } = range; + isDefined(min) && zoom2.min(min); + isDefined(max) && zoom2.max(max); + } + return { + min: zoom2.min(), + max: zoom2.max() + }; + } +}); +/* harmony default export */ var api_zoom = ({ + zoom, + /** + * Unzoom zoomed area + * - **NOTE:** Calling .unzoom() will not trigger zoom events. + * @function unzoom + * @instance + * @memberof Chart + * @example + * chart.unzoom(); + */ + unzoom() { + const $$ = this.internal; + const { config, $el: { eventRect, zoomResetBtn }, scale: { zoom: zoom2 }, state } = $$; + if (zoom2) { + config.subchart_show ? $$.brush.getSelection().call($$.brush.move, null) : $$.zoom.updateTransformScale(external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_.zoomIdentity); + $$.updateZoom(true); + zoomResetBtn == null ? void 0 : zoomResetBtn.style("display", "none"); + if ((0,external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_.zoomTransform)(eventRect.node()) !== external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_.zoomIdentity) { + $$.zoom.transform(eventRect, external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_.zoomIdentity); + } + state.domain = void 0; + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/subchart.ts + + + + +/* harmony default export */ var interactions_subchart = ({ + /** + * Initialize the brush. + * @private + */ + initBrush() { + const $$ = this; + const { config, scale, $el: { subchart }, state } = $$; + const isRotated = config.axis_rotated; + const height = config.subchart_size_height; + let lastDomain; + let lastSelection; + let timeout; + $$.brush = (isRotated ? (0,external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_.brushY)() : (0,external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_.brushX)()).handleSize(5); + $$.brush.on("start brush end", (event) => { + const { selection, sourceEvent, target, type } = event; + if (type === "start") { + $$.state.inputType === "touch" && $$.hideTooltip(); + lastSelection = sourceEvent ? selection : null; + } + if (/(start|brush)/.test(type)) { + type === "brush" && sourceEvent && state.domain && (lastSelection == null ? void 0 : lastSelection.forEach((v, i) => { + if (v !== selection[i]) { + state.domain[i] = scale.x.orgDomain()[i]; + } + })); + $$.redrawForBrush(type !== "start"); + } + if (type === "end") { + lastDomain = scale.x.orgDomain(); + } + if (target == null ? void 0 : target.handle) { + if (selection === null) { + $$.brush.handle.attr("display", "none"); + } else { + $$.brush.handle.attr("display", null).attr("transform", (d, i) => { + const pos = [selection[i], height / 2]; + return `translate(${isRotated ? pos.reverse() : pos})`; + }); + } + } + }); + $$.brush.updateResize = function() { + timeout && clearTimeout(timeout); + timeout = setTimeout(() => { + const selection = this.getSelection(); + lastDomain && (0,external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_.brushSelection)(selection.node()) && this.move(selection, lastDomain.map(scale.subX.orgScale())); + }, 0); + }; + $$.brush.update = function() { + var _a; + const extent = this.extent()(); + if (extent[1].filter((v) => isNaN(v)).length === 0) { + (_a = subchart.main) == null ? void 0 : _a.select(`.${classes.brush}`).call(this); + } + return this; + }; + $$.brush.scale = function(scale2) { + const h = config.subchart_size_height; + let extent = $$.getExtent(); + if (!extent && scale2.range) { + extent = [[0, 0], [scale2.range()[1], h]]; + } else if (isArray(extent)) { + extent = extent.map((v, i) => [v, i > 0 ? h : i]); + } + isRotated && extent[1].reverse(); + this.extent(extent); + this.update(); + }; + $$.brush.getSelection = () => ( + // @ts-ignore + subchart.main ? subchart.main.select(`.${classes.brush}`) : (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)([]) + ); + }, + /** + * Initialize the subchart. + * @private + */ + initSubchart() { + const $$ = this; + const { config, state: { clip, hasAxis }, $el: { defs, svg, subchart, axis } } = $$; + if (!hasAxis) { + return; + } + const visibility = config.subchart_show ? null : "hidden"; + const clipId = `${clip.id}-subchart`; + const clipPath = $$.getClipPath(clipId); + clip.idSubchart = clipId; + $$.appendClip(defs, clipId); + $$.initBrush(); + subchart.main = svg.append("g").classed(classes.subchart, true).attr("transform", $$.getTranslate("context")); + const { main } = subchart; + main.style("visibility", visibility); + main.append("g").attr("clip-path", clipPath).attr("class", classes.chart); + ["bar", "line", "bubble", "candlestick", "scatter"].forEach((v) => { + const type = capitalize(/^(bubble|scatter)$/.test(v) ? "circle" : v); + if ($$.hasType(v) || $$.hasTypeOf(type)) { + const chart = main.select(`.${classes.chart}`); + const chartClassName = classes[`chart${type}s`]; + if (chart.select(`.${chartClassName}`).empty()) { + chart.append("g").attr("class", chartClassName); + } + } + }); + const brush = main.append("g").attr("clip-path", clipPath).attr("class", classes.brush).call($$.brush); + config.subchart_showHandle && $$.addBrushHandle(brush); + axis.subX = main.append("g").attr("class", classes.axisX).attr("transform", $$.getTranslate("subX")).attr("clip-path", config.axis_rotated ? "" : clip.pathXAxis).style("visibility", config.subchart_axis_x_show ? visibility : "hidden"); + }, + /** + * Add brush handle + * Enabled when: subchart.showHandle=true + * @param {d3Selection} brush Brush selection + * @private + */ + addBrushHandle(brush) { + const $$ = this; + const { config } = $$; + const isRotated = config.axis_rotated; + const initRange = config.subchart_init_range; + const customHandleClass = "handle--custom"; + const path = isRotated ? [ + "M8.5 0 a6 6 0 0 0 -6 -6.5 H-2.5 a 6 6 0 0 0 -6 6.5 z m-5 -2 H-3.5 m7 -2 H-3.5z", + "M8.5 0 a6 -6 0 0 1 -6 6.5 H-2.5 a 6 -6 0 0 1 -6 -6.5z m-5 2 H-3.5 m7 2 H-3.5z" + ] : [ + "M0 -8.5 A6 6 0 0 0 -6.5 -3.5 V2.5 A6 6 0 0 0 0 8.5 Z M-2 -3.5 V3.5 M-4 -3.5 V3.5z", + "M0 -8.5 A6 6 0 0 1 6.5 -3.5 V2.5 A6 6 0 0 1 0 8.5 Z M2 -3.5 V3.5 M4 -3.5 V3.5z" + ]; + $$.brush.handle = brush.selectAll(`.${customHandleClass}`).data(isRotated ? [{ type: "n" }, { type: "s" }] : [{ type: "w" }, { type: "e" }]).enter().append("path").attr("class", customHandleClass).attr("cursor", `${isRotated ? "ns" : "ew"}-resize`).attr("d", (d) => path[+/[se]/.test(d.type)]).attr("display", initRange ? null : "none"); + }, + /** + * Update sub chart + * @param {object} targets $$.data.targets + * @private + */ + updateTargetsForSubchart(targets) { + const $$ = this; + const { config, state, $el: { subchart: { main } } } = $$; + if (config.subchart_show) { + ["bar", "line", "bubble", "candlestick", "scatter"].filter((v) => $$.hasType(v) || $$.hasTypeOf(capitalize(v))).forEach((v) => { + const isPointType = /^(bubble|scatter)$/.test(v); + const name = capitalize(isPointType ? "circle" : v); + const chartClass = $$.getChartClass(name, true); + const shapeClass = $$.getClass(isPointType ? "circles" : `${v}s`, true); + const shapeChart = main.select(`.${classes[`chart${`${name}s`}`]}`); + if (isPointType) { + const circle = shapeChart.selectAll(`.${classes.circles}`).data(targets.filter($$[`is${capitalize(v)}Type`].bind($$))).attr("class", shapeClass); + circle.exit().remove(); + circle.enter().append("g").attr("class", shapeClass); + } else { + const shapeUpdate = shapeChart.selectAll(`.${classes[`chart${name}`]}`).attr("class", chartClass).data(targets.filter($$[`is${name}Type`].bind($$))); + const shapeEnter = shapeUpdate.enter().append("g").style("opacity", "0").attr("class", chartClass).append("g").attr("class", shapeClass); + shapeUpdate.exit().remove(); + v === "line" && $$.hasTypeOf("Area") && shapeEnter.append("g").attr("class", $$.getClass("areas", true)); + } + }); + main.selectAll(`.${classes.brush} rect`).attr( + config.axis_rotated ? "width" : "height", + config.axis_rotated ? state.width2 : state.height2 + ); + } + }, + /** + * Redraw subchart. + * @private + * @param {boolean} withSubchart whether or not to show subchart + * @param {number} duration duration + * @param {object} shape Shape's info + */ + redrawSubchart(withSubchart, duration, shape) { + var _a; + const $$ = this; + const { config, $el: { subchart: { main } }, state } = $$; + const withTransition = !!duration; + main.style("visibility", config.subchart_show ? null : "hidden"); + if (config.subchart_show) { + if (((_a = state.event) == null ? void 0 : _a.type) === "zoom") { + $$.brush.update(); + } + if (withSubchart) { + const initRange = config.subchart_init_range; + !brushEmpty($$) && $$.brush.update(); + Object.keys(shape.type).forEach((v) => { + const name = capitalize(v); + const drawFn = $$[`generateDraw${name}`](shape.indices[v], true); + $$[`update${name}`](withTransition, true); + $$[`redraw${name}`](drawFn, withTransition, true); + }); + if ($$.hasType("bubble") || $$.hasType("scatter")) { + const { cx } = shape.pos; + const cy = $$.updateCircleY(true); + $$.updateCircle(true); + $$.redrawCircle(cx, cy, withTransition, void 0, true); + } + if (!state.rendered && initRange) { + state.domain = initRange; + $$.brush.move( + $$.brush.getSelection(), + initRange.map($$.scale.x) + ); + } + } + } + }, + /** + * Redraw the brush. + * @param {boolean} [callCallbck=true] Call 'onbrush' callback or not. + * @private + */ + redrawForBrush(callCallbck = true) { + var _a; + const $$ = this; + const { + config: { + subchart_onbrush: onBrush, + zoom_rescale: withY + }, + scale, + state + } = $$; + $$.redraw({ + withTransition: false, + withY, + withSubchart: false, + withUpdateXDomain: true, + withDimension: false + }); + callCallbck && state.rendered && onBrush.bind($$.api)((_a = state.domain) != null ? _a : scale.x.orgDomain()); + }, + /** + * Transform context + * @param {boolean} withTransition indicates transition is enabled + * @param {object} transitions The return value of the generateTransitions method of Axis. + * @private + */ + transformContext(withTransition, transitions) { + const $$ = this; + const { $el: { subchart }, $T } = $$; + const subXAxis = (transitions == null ? void 0 : transitions.axisSubX) ? transitions.axisSubX : $T(subchart.main.select(`.${classes.axisX}`), withTransition); + subchart.main.attr("transform", $$.getTranslate("context")); + subXAxis.attr("transform", $$.getTranslate("subX")); + }, + /** + * Get extent value + * @returns {Array} default extent + * @private + */ + getExtent() { + const $$ = this; + const { config, scale } = $$; + let extent = config.axis_x_extent; + if (extent) { + if (isFunction(extent)) { + extent = extent.bind($$.api)($$.getXDomain($$.data.targets), scale.subX); + } else if ($$.axis.isTimeSeries() && extent.every(isNaN)) { + const fn = parseDate.bind($$); + extent = extent.map((v) => scale.subX(fn(v))); + } + } + return extent; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/zoom.ts + + + + +/* harmony default export */ var interactions_zoom = ({ + /** + * Initialize zoom. + * @private + */ + initZoom() { + const $$ = this; + $$.scale.zoom = null; + $$.generateZoom(); + $$.initZoomBehaviour(); + }, + /** + * Bind zoom event + * @param {boolean} bind Weather bind or unbound + * @private + */ + bindZoomEvent(bind = true) { + const $$ = this; + const { config } = $$; + const zoomEnabled = config.zoom_enabled; + if (zoomEnabled && bind) { + !config.subchart_show && $$.bindZoomOnEventRect(); + } else if (bind === false) { + $$.api.unzoom(); + $$.unbindZoomEvent(); + } + }, + /** + * Generate zoom + * @private + */ + generateZoom() { + const $$ = this; + const { config, org, scale } = $$; + const zoom = (0,external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_.zoom)().duration(0).on("start", $$.onZoomStart.bind($$)).on("zoom", $$.onZoom.bind($$)).on("end", $$.onZoomEnd.bind($$)); + zoom.orgScaleExtent = () => { + const extent = config.zoom_extent || [1, 10]; + return [extent[0], Math.max($$.getMaxDataCount() / extent[1], extent[1])]; + }; + zoom.updateScaleExtent = function() { + const ratio = diffDomain($$.scale.x.orgDomain()) / diffDomain($$.getZoomDomain()); + const extent = this.orgScaleExtent(); + this.scaleExtent([extent[0] * ratio, extent[1] * ratio]); + return this; + }; + zoom.updateTransformScale = (transform, correctTransform) => { + var _a; + const isRotated = config.axis_rotated; + (_a = org.xScale) == null ? void 0 : _a.range(scale.x.range()); + const newScale = transform[isRotated ? "rescaleY" : "rescaleX"](org.xScale || scale.x); + const domain = $$.trimXDomain(newScale.domain()); + const rescale = config.zoom_rescale; + newScale.domain(domain, org.xDomain); + if (correctTransform) { + const t = newScale(scale.x.domain()[0]); + const tX = isRotated ? transform.x : t; + const tY = isRotated ? t : transform.y; + $$.$el.eventRect.property( + "__zoom", + external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_.zoomIdentity.translate(tX, tY).scale(transform.k) + ); + } + if (!$$.state.xTickOffset) { + $$.state.xTickOffset = $$.axis.x.tickOffset(); + } + scale.zoom = $$.getCustomizedXScale(newScale); + $$.axis.x.scale(scale.zoom); + if (rescale) { + !org.xScale && (org.xScale = scale.x.copy()); + scale.x.domain(domain); + } else if (org.xScale) { + scale.x.domain(org.xScale.domain()); + org.xScale = null; + } + }; + zoom.getDomain = () => { + const domain = scale[scale.zoom ? "zoom" : "subX"].domain(); + const isCategorized = $$.axis.isCategorized(); + if (isCategorized) { + domain[1] -= 2; + } + return domain; + }; + $$.zoom = zoom; + }, + /** + * 'start' event listener + * @param {object} event Event object + * @private + */ + onZoomStart(event) { + const $$ = this; + const { sourceEvent } = event; + if (sourceEvent) { + $$.zoom.startEvent = sourceEvent; + $$.state.zooming = true; + callFn($$.config.zoom_onzoomstart, $$.api, event); + } + }, + /** + * 'zoom' event listener + * @param {object} event Event object + * @private + */ + onZoom(event) { + var _a; + const $$ = this; + const { config, scale, state, org } = $$; + const { sourceEvent } = event; + const isUnZoom = (event == null ? void 0 : event.transform) === external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_.zoomIdentity; + if (!config.zoom_enabled || $$.filterTargetsToShow($$.data.targets).length === 0 || !scale.zoom && (sourceEvent == null ? void 0 : sourceEvent.type.indexOf("touch")) > -1 && (sourceEvent == null ? void 0 : sourceEvent.touches.length) === 1) { + return; + } + if (event.sourceEvent) { + state.zooming = true; + state.domain = void 0; + } + const isMousemove = (sourceEvent == null ? void 0 : sourceEvent.type) === "mousemove"; + const isZoomOut = (sourceEvent == null ? void 0 : sourceEvent.wheelDelta) < 0; + const { transform } = event; + if (!isMousemove && isZoomOut && scale.x.domain().every((v, i) => v !== org.xDomain[i])) { + scale.x.domain(org.xDomain); + } + $$.zoom.updateTransformScale(transform, config.zoom_type === "wheel" && sourceEvent); + const doTransition = config.transition_duration > 0 && !config.subchart_show && (state.dragging || isUnZoom || !event.sourceEvent); + $$.redraw({ + withTransition: doTransition, + withY: config.zoom_rescale, + withSubchart: false, + withEventRect: false, + withDimension: false + }); + $$.state.cancelClick = isMousemove; + !isUnZoom && callFn( + config.zoom_onzoom, + $$.api, + (_a = $$.state.domain) != null ? _a : $$.zoom.getDomain() + ); + }, + /** + * 'end' event listener + * @param {object} event Event object + * @private + */ + onZoomEnd(event) { + var _a, _b; + const $$ = this; + const { config, state } = $$; + let { startEvent } = $$.zoom; + let e = event == null ? void 0 : event.sourceEvent; + const isUnZoom = (event == null ? void 0 : event.transform) === external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_.zoomIdentity; + if ((startEvent == null ? void 0 : startEvent.type.indexOf("touch")) > -1) { + startEvent = startEvent.changedTouches[0]; + e = (_a = e == null ? void 0 : e.changedTouches) == null ? void 0 : _a[0]; + } + if (config.zoom_type === "drag" && (e && startEvent.clientX === e.clientX && startEvent.clientY === e.clientY)) { + return; + } + state.zooming = false; + $$.redrawEventRect(); + $$.updateZoom(); + !isUnZoom && (e || state.dragging) && callFn( + config.zoom_onzoomend, + $$.api, + (_b = $$.state.domain) != null ? _b : $$.zoom.getDomain() + ); + }, + /** + * Update zoom + * @param {boolean} force Force unzoom + * @private + */ + updateZoom(force) { + const $$ = this; + const { subX, x, zoom } = $$.scale; + if (zoom) { + const zoomDomain = zoom.domain(); + const xDomain = subX.domain(); + const delta = 0.015; + const isfullyShown = $$.config.axis_x_inverted ? (zoomDomain[0] >= xDomain[0] || zoomDomain[0] + delta >= xDomain[0]) && (xDomain[1] >= zoomDomain[1] || xDomain[1] >= zoomDomain[1] + delta) : (zoomDomain[0] <= xDomain[0] || zoomDomain[0] - delta <= xDomain[0]) && (xDomain[1] <= zoomDomain[1] || xDomain[1] <= zoomDomain[1] - delta); + if (force || isfullyShown) { + $$.axis.x.scale(subX); + x.domain(subX.orgDomain()); + $$.scale.zoom = null; + } + } + }, + /** + * Set zoom transform to event rect + * @param {Function} x x Axis scale function + * @param {Array} domain Domain value to be set + * @private + */ + updateCurrentZoomTransform(x, domain) { + const $$ = this; + const { $el: { eventRect }, config } = $$; + const isRotated = config.axis_rotated; + const translate = [-x(domain[0]), 0]; + const transform = external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_.zoomIdentity.scale(x.range()[1] / (x(domain[1]) - x(domain[0]))).translate( + ...isRotated ? translate.reverse() : translate + ); + eventRect.call($$.zoom.transform, transform); + }, + /** + * Attach zoom event on <rect> + * @private + */ + bindZoomOnEventRect() { + const $$ = this; + const { config, $el: { eventRect } } = $$; + const behaviour = config.zoom_type === "drag" ? $$.zoomBehaviour : $$.zoom; + eventRect == null ? void 0 : eventRect.call(behaviour).on("dblclick.zoom", null); + }, + /** + * Initialize the drag behaviour used for zooming. + * @private + */ + initZoomBehaviour() { + const $$ = this; + const { config, state } = $$; + const isRotated = config.axis_rotated; + let start = 0; + let end = 0; + let zoomRect; + const prop = { + axis: isRotated ? "y" : "x", + attr: isRotated ? "height" : "width", + index: isRotated ? 1 : 0 + }; + $$.zoomBehaviour = (0,external_commonjs_d3_drag_commonjs2_d3_drag_amd_d3_drag_root_d3_.drag)().clickDistance(4).on("start", function(event) { + state.event = event; + $$.setDragStatus(true); + $$.unselectRect(); + if (!zoomRect) { + zoomRect = $$.$el.main.append("rect").attr("clip-path", state.clip.path).attr("class", $ZOOM.zoomBrush).attr("width", isRotated ? state.width : 0).attr("height", isRotated ? 0 : state.height); + } + start = getPointer(event, this)[prop.index]; + end = start; + zoomRect.attr(prop.axis, start).attr(prop.attr, 0); + $$.onZoomStart(event); + }).on("drag", function(event) { + end = getPointer(event, this)[prop.index]; + zoomRect.attr(prop.axis, Math.min(start, end)).attr(prop.attr, Math.abs(end - start)); + }).on("end", (event) => { + const scale = $$.scale.zoom || $$.scale.x; + state.event = event; + zoomRect.attr(prop.axis, 0).attr(prop.attr, 0); + if (start > end) { + [start, end] = [end, start]; + } + if (start < 0) { + end += Math.abs(start); + start = 0; + } + if (start !== end) { + $$.api.zoom([start, end].map((v) => scale.invert(v))); + } + $$.setDragStatus(false); + }); + }, + setZoomResetButton() { + const $$ = this; + const { config, $el } = $$; + const resetButton = config.zoom_resetButton; + if (resetButton && config.zoom_type === "drag") { + if (!$el.zoomResetBtn) { + $el.zoomResetBtn = $$.$el.chart.append("div").classed($COMMON.button, true).append("span").on("click", function() { + isFunction(resetButton.onclick) && resetButton.onclick.bind($$.api)(this); + $$.api.unzoom(); + }).classed($ZOOM.buttonZoomReset, true).text(resetButton.text || "Reset Zoom"); + } else { + $el.zoomResetBtn.style("display", null); + } + } + }, + getZoomTransform() { + const $$ = this; + const { $el: { eventRect } } = $$; + return (eventRect == null ? void 0 : eventRect.node()) ? (0,external_commonjs_d3_zoom_commonjs2_d3_zoom_amd_d3_zoom_root_d3_.zoomTransform)(eventRect.node()) : { k: 1 }; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/drag.ts + + + +/* harmony default export */ var drag = ({ + /** + * Called when dragging. + * Data points can be selected. + * @private + * @param {object} mouse Object + */ + drag(mouse) { + const $$ = this; + const { config, state, $el: { main } } = $$; + const isSelectionGrouped = config.data_selection_grouped; + const isSelectable = config.interaction_enabled && config.data_selection_isselectable; + if ($$.hasArcType() || !config.data_selection_enabled || // do nothing if not selectable + config.zoom_enabled && !$$.zoom.altDomain || // skip if zoomable because of conflict drag behavior + !config.data_selection_multiple) { + return; + } + const [sx, sy] = state.dragStart || [0, 0]; + const [mx, my] = mouse; + const minX = Math.min(sx, mx); + const maxX = Math.max(sx, mx); + const minY = isSelectionGrouped ? state.margin.top : Math.min(sy, my); + const maxY = isSelectionGrouped ? state.height : Math.max(sy, my); + main.select(`.${$DRAG.dragarea}`).attr("x", minX).attr("y", minY).attr("width", maxX - minX).attr("height", maxY - minY); + main.selectAll(`.${$SHAPE.shapes}`).selectAll(`.${$SHAPE.shape}`).filter((d) => isSelectable == null ? void 0 : isSelectable.bind($$.api)(d)).each(function(d, i) { + const shape = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + const isSelected = shape.classed($SELECT.SELECTED); + const isIncluded = shape.classed($DRAG.INCLUDED); + let isWithin = false; + let toggle; + if (shape.classed($CIRCLE.circle)) { + const x = +shape.attr("cx") * 1; + const y = +shape.attr("cy") * 1; + toggle = $$.togglePoint; + isWithin = minX < x && x < maxX && minY < y && y < maxY; + } else if (shape.classed($BAR.bar)) { + const { x, y, width, height } = getPathBox(this); + toggle = $$.togglePath; + isWithin = !(maxX < x || x + width < minX) && !(maxY < y || y + height < minY); + } else { + return; + } + if (isWithin ^ isIncluded) { + shape.classed($DRAG.INCLUDED, !isIncluded); + shape.classed($SELECT.SELECTED, !isSelected); + toggle.call($$, !isSelected, shape, d, i); + } + }); + }, + /** + * Called when the drag starts. + * Adds and Shows the drag area. + * @private + * @param {object} mouse Object + */ + dragstart(mouse) { + const $$ = this; + const { config, state, $el: { main } } = $$; + if ($$.hasArcType() || !config.data_selection_enabled) { + return; + } + state.dragStart = mouse; + main.select(`.${$COMMON.chart}`).append("rect").attr("class", $DRAG.dragarea).style("opacity", "0.1"); + $$.setDragStatus(true); + }, + /** + * Called when the drag finishes. + * Removes the drag area. + * @private + */ + dragend() { + const $$ = this; + const { config, $el: { main }, $T } = $$; + if ($$.hasArcType() || !config.data_selection_enabled) { + return; + } + $T(main.select(`.${$DRAG.dragarea}`)).style("opacity", "0").remove(); + main.selectAll(`.${$SHAPE.shape}`).classed($DRAG.INCLUDED, false); + $$.setDragStatus(false); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/selection.ts +var selection_defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var selection_getOwnPropSymbols = Object.getOwnPropertySymbols; +var selection_hasOwnProp = Object.prototype.hasOwnProperty; +var selection_propIsEnum = Object.prototype.propertyIsEnumerable; +var selection_defNormalProp = (obj, key, value) => key in obj ? selection_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var selection_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (selection_hasOwnProp.call(b, prop)) + selection_defNormalProp(a, prop, b[prop]); + if (selection_getOwnPropSymbols) + for (var prop of selection_getOwnPropSymbols(b)) { + if (selection_propIsEnum.call(b, prop)) + selection_defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); + + + + +/* harmony default export */ var internals_selection = (__spreadProps(selection_spreadValues({}, drag), { + /** + * Select a point + * @param {object} target Target point + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + selectPoint(target, d, i) { + const $$ = this; + const { config, $el: { main }, $T } = $$; + const isRotated = config.axis_rotated; + const cx = (isRotated ? $$.circleY : $$.circleX).bind($$); + const cy = (isRotated ? $$.circleX : $$.circleY).bind($$); + const r = $$.pointSelectR.bind($$); + callFn(config.data_onselected, $$.api, d, target.node()); + $T(main.select(`.${$SELECT.selectedCircles}${$$.getTargetSelectorSuffix(d.id)}`).selectAll(`.${$SELECT.selectedCircle}-${i}`).data([d]).enter().append("circle").attr("class", () => $$.generateClass($SELECT.selectedCircle, i)).attr("cx", cx).attr("cy", cy).attr("stroke", $$.color).attr("r", (d2) => $$.pointSelectR(d2) * 1.4)).attr("r", r); + }, + /** + * Unelect a point + * @param {object} target Target point + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + unselectPoint(target, d, i) { + const $$ = this; + const { config, $el: { main }, $T } = $$; + callFn(config.data_onunselected, $$.api, d, target == null ? void 0 : target.node()); + $T(main.select(`.${$SELECT.selectedCircles}${$$.getTargetSelectorSuffix(d.id)}`).selectAll(`.${$SELECT.selectedCircle}-${i}`)).attr("r", 0).remove(); + }, + /** + * Toggles the selection of points + * @param {boolean} selected whether or not to select. + * @param {object} target Target object + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + togglePoint(selected, target, d, i) { + const method = `${selected ? "" : "un"}selectPoint`; + this[method](target, d, i); + }, + /** + * Select a path + * @param {object} target Target path + * @param {object} d Data object + * @private + */ + selectPath(target, d) { + const $$ = this; + const { config } = $$; + callFn(config.data_onselected, $$.api, d, target.node()); + if (config.interaction_brighten) { + target.style("filter", "brightness(1.25)"); + } + }, + /** + * Unelect a path + * @private + * @param {object} target Target path + * @param {object} d Data object + */ + unselectPath(target, d) { + const $$ = this; + const { config } = $$; + callFn(config.data_onunselected, $$.api, d, target.node()); + if (config.interaction_brighten) { + target.style("filter", null); + } + }, + /** + * Toggles the selection of lines + * @param {boolean} selected whether or not to select. + * @param {object} target Target object + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + togglePath(selected, target, d, i) { + this[`${selected ? "" : "un"}selectPath`](target, d, i); + }, + /** + * Returns the toggle method of the target + * @param {object} that shape + * @param {object} d Data object + * @returns {Function} toggle method + * @private + */ + getToggle(that, d) { + const $$ = this; + return that.nodeName === "path" ? $$.togglePath : $$.isStepType(d) ? () => { + } : ( + // circle is hidden in step chart, so treat as within the click area + $$.togglePoint + ); + }, + /** + * Toggles the selection of shapes + * @param {object} that shape + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + toggleShape(that, d, i) { + var _a; + const $$ = this; + const { config, $el: { main } } = $$; + if (config.data_selection_enabled && config.data_selection_isselectable.bind($$.api)(d)) { + const shape = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(that); + const isSelected = shape.classed($SELECT.SELECTED); + const toggle = $$.getToggle(that, d).bind($$); + let toggledShape; + if (!config.data_selection_multiple) { + const focusOnly = (_a = $$.isPointFocusOnly) == null ? void 0 : _a.call($$); + let selector = `.${focusOnly ? $SELECT.selectedCircles : $SHAPE.shapes}`; + if (config.data_selection_grouped) { + selector += $$.getTargetSelectorSuffix(d.id); + } + main.selectAll(selector).selectAll( + focusOnly ? `.${$SELECT.selectedCircle}` : `.${$SHAPE.shape}.${$SELECT.SELECTED}` + ).classed($SELECT.SELECTED, false).each(function(d2) { + const shape2 = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + toggledShape = shape2; + toggle(false, shape2, d2, d2.index); + }); + } + if (!toggledShape || toggledShape.node() !== shape.node()) { + shape.classed($SELECT.SELECTED, !isSelected); + toggle(!isSelected, shape, d, i); + } + } + } +})); + +;// CONCATENATED MODULE: ./src/config/Options/data/selection.ts +/* harmony default export */ var data_selection = ({ + /** + * Set data selection enabled<br><br> + * If this option is set true, we can select the data points and get/set its state of selection by API (e.g. select, unselect, selected). + * - **NOTE:** for ESM imports, needs to import 'selection' exports and instantiate it by calling `selection()`. + * - `enabled: selection()` + * @name data․selection․enabled + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataSelection) + * @example + * data: { + * selection: { + * enabled: true + * } + * } + * @example + * // importing ESM + * import bb, {selection} from "billboard.js"; + * + * data: { + * selection: { + * enabled: selection(), + * ... + * } + * } + */ + data_selection_enabled: false, + /** + * Set grouped selection enabled.<br><br> + * If this option set true, multiple data points that have same x value will be selected by one selection. + * @name data․selection․grouped + * @memberof Options + * @type {boolean} + * @default false + * @example + * data: { + * selection: { + * grouped: true + * } + * } + */ + data_selection_grouped: false, + /** + * Set a callback for each data point to determine if it's selectable or not.<br><br> + * The callback will receive d as an argument and it has some parameters like id, value, index. This callback should return boolean. + * @name data․selection․isselectable + * @memberof Options + * @type {Function} + * @default function() { return true; } + * @example + * data: { + * selection: { + * isselectable: function(d) { ... } + * } + * } + */ + data_selection_isselectable: () => true, + /** + * Set multiple data points selection enabled.<br><br> + * If this option set true, multile data points can have the selected state at the same time. If false set, only one data point can have the selected state and the others will be unselected when the new data point is selected. + * @name data․selection․multiple + * @memberof Options + * @type {boolean} + * @default true + * @example + * data: { + * selection: { + * multiple: false + * } + * } + */ + data_selection_multiple: true, + /** + * Enable to select data points by dragging. + * If this option set true, data points can be selected by dragging. + * - **NOTE:** If this option set true, scrolling on the chart will be disabled because dragging event will handle the event. + * @name data․selection․draggable + * @memberof Options + * @type {boolean} + * @default false + * @example + * data: { + * selection: { + * draggable: true + * } + * } + */ + data_selection_draggable: false, + /** + * Set a callback for on data selection. + * @name data․onselected + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onselected: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"} + * // element - <circle> + * ... + * } + * } + */ + data_onselected: () => { + }, + /** + * Set a callback for on data un-selection. + * @name data․onunselected + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onunselected: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"} + * // element - <circle> + * ... + * } + * } + */ + data_onunselected: () => { + } +}); + +;// CONCATENATED MODULE: ./src/config/Options/interaction/subchart.ts +/* harmony default export */ var interaction_subchart = ({ + /** + * Set subchart options. + * - **NOTE:** Not supported for `bubble`, `scatter` and non-Axis based(pie, donut, gauge, radar) types. + * @name subchart + * @memberof Options + * @type {object} + * @property {object} subchart Subchart object + * @property {boolean} [subchart.show=false] Show sub chart on the bottom of the chart. + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * - `show: subchart()` + * @property {boolean} [subchart.showHandle=false] Show sub chart's handle. + * @property {boolean} [subchart.axis.x.show=true] Show or hide x axis. + * @property {boolean} [subchart.axis.x.tick.show=true] Show or hide x axis tick line. + * @property {Function|string} [subchart.axis.x.tick.format] Use custom format for x axis ticks - see [axis.x.tick.format](#.axis․x․tick․format) for details. + * @property {boolean} [subchart.axis.x.tick.text.show=true] Show or hide x axis tick text. + * @property {Array} [subchart.init.range] Set initial selection domain range. + * @property {number} [subchart.size.height] Change the height of the subchart. + * @property {Function} [subchart.onbrush] Set callback for brush event.<br> + * Specified function receives the current zoomed x domain. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Interaction.SubChart) + * @example + * subchart: { + * show: true, + * showHandle: true, + * size: { + * height: 20 + * }, + * init: { + * // specify initial range domain selection + * range: [1, 2] + * }, + * axis: { + * x: { + * show: true, + * tick: { + * show: true, + * format: (x) => d3Format(".1f")(x) + * text: { + * show: false + * } + * } + * } + * }, + * onbrush: function(domain) { ... } + * } + * @example + * // importing ESM + * import bb, {subchart} from "billboard.js"; + * + * subchart: { + * show: subchart(), + * ... + * } + */ + subchart_show: false, + subchart_showHandle: false, + subchart_size_height: 60, + subchart_axis_x_show: true, + subchart_axis_x_tick_show: true, + subchart_axis_x_tick_format: void 0, + subchart_axis_x_tick_text_show: true, + subchart_init_range: void 0, + subchart_onbrush: () => { + } +}); + +;// CONCATENATED MODULE: ./src/config/Options/interaction/zoom.ts +/* harmony default export */ var interaction_zoom = ({ + /** + * Set zoom options + * @name zoom + * @memberof Options + * @type {object} + * @property {object} zoom Zoom object + * @property {boolean} [zoom.enabled=false] Enable zooming. + * - **NOTE:** for ESM imports, needs to import 'zoom' exports and instantiate it by calling `zoom()`. + * - `enabled: zoom()` + * @property {string} [zoom.type='wheel'] Set zoom interaction type. + * - **Available types:** + * - wheel + * - drag + * @property {boolean} [zoom.rescale=false] Enable to rescale after zooming.<br> + * If true set, y domain will be updated according to the zoomed region. + * @property {Array} [zoom.extent=[1, 10]] Change zoom extent. + * @property {number|Date} [zoom.x.min] Set x Axis minimum zoom range + * @property {number|Date} [zoom.x.max] Set x Axis maximum zoom range + * @property {Function} [zoom.onzoomstart=undefined] Set callback that is called when zooming starts.<br> + * Specified function receives the zoom event. + * @property {Function} [zoom.onzoom=undefined] Set callback that is called when the chart is zooming.<br> + * Specified function receives the zoomed domain. + * @property {Function} [zoom.onzoomend=undefined] Set callback that is called when zooming ends.<br> + * Specified function receives the zoomed domain. + * @property {boolean|object} [zoom.resetButton=true] Set to display zoom reset button for 'drag' type zoom + * @property {Function} [zoom.resetButton.onclick] Set callback when clicks the reset button. The callback will receive reset button element reference as argument. + * @property {string} [zoom.resetButton.text='Reset Zoom'] Text value for zoom reset button. + * @see [Demo:zoom](https://naver.github.io/billboard.js/demo/#Interaction.Zoom) + * @see [Demo:drag zoom](https://naver.github.io/billboard.js/demo/#Interaction.DragZoom) + * @example + * zoom: { + * enabled: true, + * type: "drag", + * rescale: true, + * extent: [1, 100] // enable more zooming + * x: { + * min: -1, // set min range + * max: 10 // set max range + * }, + * onzoomstart: function(event) { ... }, + * onzoom: function(domain) { ... }, + * onzoomend: function(domain) { ... }, + * + * // show reset button when is zoomed-in + * resetButton: true, + * + * resetButton: { + * // onclick callback when reset button is clicked + * onclick: function(button) { + * button; // Reset button element reference + * ... + * }, + * + * // customized text value for reset zoom button + * text: "Unzoom" + * } + * } + * @example + * // importing ESM + * import bb, {zoom} from "billboard.js"; + * + * zoom: { + * enabled: zoom(), + * ... + * } + */ + zoom_enabled: false, + zoom_type: "wheel", + zoom_extent: void 0, + zoom_privileged: false, + zoom_rescale: false, + zoom_onzoom: void 0, + zoom_onzoomstart: void 0, + zoom_onzoomend: void 0, + zoom_resetButton: true, + zoom_x_min: void 0, + zoom_x_max: void 0 +}); + +;// CONCATENATED MODULE: ./src/config/resolver/interaction.ts + + + + + + + + + + + + + + +let selectionModule = () => { + extend(ChartInternal.prototype, internals_selection); + extend(Chart.prototype, selection); + Options.setOptions([data_selection]); + return (selectionModule = () => true)(); +}; +let subchartModule = () => { + extend(ChartInternal.prototype, interactions_subchart); + extend(Chart.prototype, api_subchart); + Options.setOptions([interaction_subchart]); + return (subchartModule = () => true)(); +}; +let zoomModule = () => { + extend(ChartInternal.prototype, interactions_zoom); + extend(Chart.prototype, api_zoom); + Options.setOptions([interaction_zoom]); + return (zoomModule = () => true)(); +}; + +;// CONCATENATED MODULE: ./src/Chart/api/axis.ts + +function setMinMax($$, type, value) { + const { config } = $$; + const helper = (key, value2) => { + const v = isNumber(value2) ? value2 : value2 === false ? void 0 : null; + if (v !== null) { + config[`axis_${key}_${type}`] = v; + } + }; + if (isDefined(value)) { + if (isObjectType(value)) { + Object.keys(value).forEach((key) => { + helper(key, value[key]); + }); + } else if (isNumber(value) || value === false) { + ["y", "y2"].forEach((key) => { + helper(key, value); + }); + } + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true + }); + } +} +function axis_getMinMax($$, type) { + const { config } = $$; + return { + x: config[`axis_x_${type}`], + y: config[`axis_y_${type}`], + y2: config[`axis_y2_${type}`] + }; +} +const axis = { + /** + * Get and set axis labels. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․labels + * @instance + * @memberof Chart + * @param {object} labels specified axis' label to be updated. + * @param {string} [labels.x] x Axis string + * @param {string} [labels.y] y Axis string + * @param {string} [labels.y2] y2 Axis string + * @returns {object|undefined} axis labels text object + * @example + * // Update axis' label + * chart.axis.labels({ + * x: "New X Axis Label", + * y: "New Y Axis Label", + * y2: "New Y2 Axis Label" + * }); + * + * chart.axis.labels(); + * // --> { + * // x: "New X Axis Label", + * // y: "New Y Axis Label", + * // y2: "New Y2 Axis Label" + * // } + */ + labels: function(labels) { + const $$ = this.internal; + let labelText; + if (labels) { + Object.keys(labels).forEach((axisId) => { + $$.axis.setLabelText(axisId, labels[axisId]); + }); + $$.axis.updateLabels(); + } + ["x", "y", "y2"].forEach((v) => { + const text = $$.axis.getLabelText(v); + if (text) { + !labelText && (labelText = {}); + labelText[v] = text; + } + }); + return labelText; + }, + /** + * Get and set axis min value. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․min + * @instance + * @memberof Chart + * @param {object} min If min is given, specified axis' min value will be updated.<br> + * If no argument is given, the min values set on generating option for each axis will be returned. + * If not set any min values on generation, it will return `undefined`.<br> + * To unset specific axis max, set `false` to each of them. + * @returns {object|undefined} + * @example + * // Update axis' min + * chart.axis.min({ + * x: -10, + * y: 1000, + * y2: 100 + * }); + * + * // To unset specific axis min, set false to each of them. + * chart.axis.min({ + * x: false, + * y: false, + * y2: false + * }); + * + * // shorthand (only affects y and y2 axis) + * chart.axis.min(-50); + * chart.axis.min(false); + */ + min: function(min) { + const $$ = this.internal; + return isValue(min) || min === false ? setMinMax($$, "min", min) : axis_getMinMax($$, "min"); + }, + /** + * Get and set axis max value. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․max + * @instance + * @memberof Chart + * @param {object} max If max is given, specified axis' max value will be updated.<br> + * If no argument is given, the max values set on generating option for each axis will be returned. + * If not set any max values on generation, it will return `undefined`.<br> + * To unset specific axis max, set `false` to each of them. + * @returns {object|undefined} + * @example + * // Update axis' label + * chart.axis.max({ + * x: 100, + * y: 1000, + * y2: 10000 + * }); + * + * // To unset specific axis max, set false to each of them. + * chart.axis.max({ + * x: false, + * y: false, + * y2: false + * }); + * + * // shorthand (only affects y and y2 axis) + * chart.axis.max(10); + * chart.axis.max(false); + */ + max: function(max) { + const $$ = this.internal; + return isValue(max) || max === false ? setMinMax($$, "max", max) : axis_getMinMax($$, "max"); + }, + /** + * Get and set axis min and max value. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․range + * @instance + * @memberof Chart + * @param {object} range If range is given, specified axis' min and max value will be updated. + * If no argument is given, the current min and max values for each axis will be returned.<br> + * To unset specific axis max, set `false` to each of them. + * @returns {object|undefined} + * @example + * // Update axis' label + * chart.axis.range({ + * min: { + * x: -10, + * y: -1000, + * y2: -10000 + * }, + * max: { + * x: 100, + * y: 1000, + * y2: 10000 + * }, + * }); + * + * // To unset specific axis max, set false to each of them. + * chart.axis.range({ + * min: { + * x: false, + * y: false, + * y2: false + * }, + * max: { + * x: false, + * y: false, + * y2: false + * }, + * }); + * + * // shorthand (only affects y and y2 axis) + * chart.axis.range({ min: -50, max: 1000 }); + * chart.axis.range({ min: false, max: false }); + */ + range: function(range) { + const { axis: axis2 } = this; + if (arguments.length) { + const { min, max } = range; + isDefined(max) && axis2.max(max); + isDefined(min) && axis2.min(min); + } else { + return { + max: axis2.max(), + min: axis2.min() + }; + } + return void 0; + } +}; +/* harmony default export */ var api_axis = ({ axis }); + +;// CONCATENATED MODULE: ./src/Chart/api/category.ts + +/* harmony default export */ var api_category = ({ + /** + * Set specified category name on category axis. + * @function category + * @instance + * @memberof Chart + * @param {number} i index of category to be changed + * @param {string} category category value to be changed + * @returns {string} + * @example + * chart.category(2, "Category 3"); + */ + category(i, category) { + const $$ = this.internal; + const { config } = $$; + if (arguments.length > 1) { + config.axis_x_categories[i] = category; + $$.redraw(); + } + return config.axis_x_categories[i]; + }, + /** + * Set or get category names on category axis. + * @function categories + * @instance + * @memberof Chart + * @param {Array} categories This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required. + * @returns {Array} + * @example + * chart.categories([ + * "Category 1", "Category 2", ... + * ]); + */ + categories(categories) { + const $$ = this.internal; + const { config } = $$; + if (!categories || !Array.isArray(categories)) { + const cat = config.axis_x_categories; + return isEmpty(cat) ? Object.values($$.data.xs)[0] : cat; + } + config.axis_x_categories = categories; + $$.redraw(); + return config.axis_x_categories; + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/flow.ts + +/* harmony default export */ var flow = ({ + /** + * Flow data to the chart.<br><br> + * By this API, you can append new data points to the chart. + * @function flow + * @instance + * @memberof Chart + * @param {object} args The object can consist with following members:<br> + * + * | Key | Type | Description | + * | --- | --- | --- | + * | json | Object | Data as JSON format (@see [data․json](Options.html#.data%25E2%2580%25A4json)) | + * | rows | Array | Data in array as row format (@see [data․rows](Options.html#.data%25E2%2580%25A4json)) | + * | columns | Array | Data in array as column format (@see [data․columns](Options.html#.data%25E2%2580%25A4columns)) | + * | to | String | The lower x edge will move to that point. If not given, the lower x edge will move by the number of given data points | + * | length | Number | The lower x edge will move by the number of this argument | + * | duration | Number | The duration of the transition will be specified value. If not given, transition.duration will be used as default | + * | done | Function | The specified function will be called when flow ends | + * + * - **NOTE:** + * - If json, rows and columns given, the data will be loaded. + * - If data that has the same target id is given, the chart will be appended. + * - Otherwise, new target will be added. One of these is required when calling. + * - If json specified, keys is required as well as data.json. + * - If tab isn't visible(by evaluating `document.hidden`), will not be executed to prevent unnecessary work. + * @example + * // 2 data points will be apprended to the tail and popped from the head. + * // After that, 4 data points will be appended and no data points will be poppoed. + * chart.flow({ + * columns: [ + * ["x", "2018-01-11", "2018-01-21"], + * ["data1", 500, 200], + * ["data2", 100, 300], + * ["data3", 200, 120] + * ], + * to: "2013-01-11", + * done: function () { + * chart.flow({ + * columns: [ + * ["x", "2018-02-11", "2018-02-12", "2018-02-13", "2018-02-14"], + * ["data1", 200, 300, 100, 250], + * ["data2", 100, 90, 40, 120], + * ["data3", 100, 100, 300, 500] + * ], + * length: 2, + * duration: 1500 + * }); + * } + * }); + */ + flow(args) { + const $$ = this.internal; + let data; + if (args.json || args.rows || args.columns) { + $$.convertData(args, (res) => { + data = res; + _(); + }); + } + function _() { + let domain; + let length = 0; + let tail = 0; + let diff; + let to; + if ($$.state.redrawing || !data || !isTabVisible()) { + return; + } + const notfoundIds = []; + const orgDataCount = $$.getMaxDataCount(); + const targets = $$.convertDataToTargets(data, true); + const isTimeSeries = $$.axis.isTimeSeries(); + $$.data.targets.forEach((t) => { + let found = false; + for (let i = 0; i < targets.length; i++) { + if (t.id === targets[i].id) { + found = true; + if (t.values[t.values.length - 1]) { + tail = t.values[t.values.length - 1].index + 1; + } + length = targets[i].values.length; + for (let j = 0; j < length; j++) { + targets[i].values[j].index = tail + j; + if (!isTimeSeries) { + targets[i].values[j].x = tail + j; + } + } + t.values = t.values.concat(targets[i].values); + targets.splice(i, 1); + break; + } + } + !found && notfoundIds.push(t.id); + }); + $$.data.targets.forEach((t) => { + for (let i = 0; i < notfoundIds.length; i++) { + if (t.id === notfoundIds[i]) { + tail = t.values[t.values.length - 1].index + 1; + for (let j = 0; j < length; j++) { + t.values.push({ + id: t.id, + index: tail + j, + x: isTimeSeries ? $$.getOtherTargetX(tail + j) : tail + j, + value: null + }); + } + } + } + }); + if ($$.data.targets.length) { + targets.forEach((t) => { + const missing = []; + for (let i = $$.data.targets[0].values[0].index; i < tail; i++) { + missing.push({ + id: t.id, + index: i, + x: isTimeSeries ? $$.getOtherTargetX(i) : i, + value: null + }); + } + t.values.forEach((v) => { + v.index += tail; + if (!isTimeSeries) { + v.x += tail; + } + }); + t.values = missing.concat(t.values); + }); + } + $$.data.targets = $$.data.targets.concat(targets); + const baseTarget = $$.data.targets[0]; + const baseValue = baseTarget.values[0]; + if (isDefined(args.to)) { + length = 0; + to = isTimeSeries ? parseDate.call($$, args.to) : args.to; + baseTarget.values.forEach((v) => { + v.x < to && length++; + }); + } else if (isDefined(args.length)) { + length = args.length; + } + if (!orgDataCount) { + if (isTimeSeries) { + diff = baseTarget.values.length > 1 ? baseTarget.values[baseTarget.values.length - 1].x - baseValue.x : baseValue.x - $$.getXDomain($$.data.targets)[0]; + } else { + diff = 1; + } + domain = [baseValue.x - diff, baseValue.x]; + } else if (orgDataCount === 1 && isTimeSeries) { + diff = (baseTarget.values[baseTarget.values.length - 1].x - baseValue.x) / 2; + domain = [new Date(+baseValue.x - diff), new Date(+baseValue.x + diff)]; + } + domain && $$.updateXDomain(null, true, true, false, domain); + $$.updateTargets($$.data.targets); + $$.redraw({ + flow: { + index: baseValue.index, + length, + duration: isValue(args.duration) ? args.duration : $$.config.transition_duration, + done: args.done, + orgDataCount + }, + withLegend: true, + withTransition: orgDataCount > 1, + withTrimXDomain: false, + withUpdateXAxis: true + }); + } + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/grid.ts + +function grid(grids, axisId) { + const $$ = this.internal; + const { config } = $$; + const withTransition = config.transition_duration && isTabVisible(); + const gridPropLines = `grid_${axisId}_lines`; + if (!grids) { + return config[gridPropLines]; + } + config[gridPropLines] = grids; + $$.updateGrid(); + $$.redrawGrid(withTransition); + return config[gridPropLines]; +} +function add(grids, axisId) { + const gridPropLines = `grid_${axisId}_lines`; + return grid.bind(this)( + this.internal.config[gridPropLines].concat(grids || []), + axisId + ); +} +function remove(grids, isXAxis) { + this.internal.removeGridLines(grids, isXAxis); +} +const xgrids = function(grids) { + return grid.bind(this)(grids, "x"); +}; +extend(xgrids, { + /** + * Add x grid lines.<br> + * This API adds new x grid lines instead of replacing like xgrids. + * @function xgrids․add + * @instance + * @memberof Chart + * @param {Array|object} grids New x grid lines will be added. The format of this argument is the same as grid.x.lines and it's possible to give an Object if only one line will be added. + * @returns {Array} + * @example + * // Add a new x grid line + * chart.xgrids.add( + * {value: 4, text: "Label 4"} + * ); + * + * // Add new x grid lines + * chart.xgrids.add([ + * {value: 2, text: "Label 2"}, + * {value: 4, text: "Label 4"} + * ]); + */ + add(grids) { + return add.bind(this)(grids, "x"); + }, + /** + * Remove x grid lines.<br> + * This API removes x grid lines. + * @function xgrids․remove + * @instance + * @memberof Chart + * @param {object} grids This argument should include value or class. If value is given, the x grid lines that have specified x value will be removed. If class is given, the x grid lines that have specified class will be removed. If args is not given, all of x grid lines will be removed. + * @param {number} [grids.value] target value + * @param {string} [grids.class] target class + * @returns {void} + * @example + * // x grid line on x = 2 will be removed + * chart.xgrids.remove({value: 2}); + * + * // x grid lines that have 'grid-A' will be removed + * chart.xgrids.remove({ + * class: "grid-A" + * }); + * + * // all of x grid lines will be removed + * chart.xgrids.remove(); + */ + remove(grids) { + return remove.bind(this)(grids, true); + } +}); +const ygrids = function(grids) { + return grid.bind(this)(grids, "y"); +}; +extend(ygrids, { + /** + * Add y grid lines.<br> + * This API adds new y grid lines instead of replacing like ygrids. + * @function ygrids․add + * @instance + * @memberof Chart + * @param {Array|object} grids New y grid lines will be added. The format of this argument is the same as grid.y.lines and it's possible to give an Object if only one line will be added. + * @returns {object} + * @example + * // Add a new x grid line + * chart.ygrids.add( + * {value: 400, text: "Label 4"} + * ); + * + * // Add new x grid lines + * chart.ygrids.add([ + * {value: 200, text: "Label 2"}, + * {value: 400, text: "Label 4"} + * ]); + */ + add(grids) { + return add.bind(this)(grids, "y"); + }, + /** + * Remove y grid lines.<br> + * This API removes x grid lines. + * @function ygrids․remove + * @instance + * @memberof Chart + * @param {object} grids This argument should include value or class. If value is given, the y grid lines that have specified y value will be removed. If class is given, the y grid lines that have specified class will be removed. If args is not given, all of y grid lines will be removed. + * @param {number} [grids.value] target value + * @param {string} [grids.class] target class + * @returns {void} + * @example + * // y grid line on y = 200 will be removed + * chart.ygrids.remove({value: 200}); + * + * // y grid lines that have 'grid-A' will be removed + * chart.ygrids.remove({ + * class: "grid-A" + * }); + * + * // all of y grid lines will be removed + * chart.ygrids.remove(); + */ + remove(grids) { + return remove.bind(this)(grids, false); + } +}); +/* harmony default export */ var api_grid = ({ xgrids, ygrids }); + +;// CONCATENATED MODULE: ./src/Chart/api/group.ts + +/* harmony default export */ var group = ({ + /** + * Update groups for the targets. + * @function groups + * @instance + * @memberof Chart + * @param {Array} groups This argument needs to be an Array that includes one or more Array that includes target ids to be grouped. + * @returns {Array} Grouped data names array + * @example + * // data1 and data2 will be a new group. + * chart.groups([ + * ["data1", "data2"] + * ]); + */ + groups(groups) { + const $$ = this.internal; + const { config } = $$; + if (isUndefined(groups)) { + return config.data_groups; + } + config.data_groups = groups; + $$.redraw(); + return config.data_groups; + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/regions.ts + + +function regionsFn(regions2, isAdd = false) { + const $$ = this.internal; + const { config } = $$; + const withTransition = config.transition_duration && isTabVisible(); + if (!regions2) { + return config.regions; + } + config.regions = isAdd ? config.regions.concat(regions2) : regions2; + $$.updateRegion(); + $$.redrawRegion(withTransition); + return isAdd ? config.regions : regions2; +} +const regions = function(regions2) { + return regionsFn.bind(this)(regions2); +}; +extend(regions, { + /** + * Add new region.<br><br> + * This API adds new region instead of replacing like regions. + * @function regions․add + * @instance + * @memberof Chart + * @param {Array|object} regions New region will be added. The format of this argument is the same as regions and it's possible to give an Object if only one region will be added. + * @returns {Array} regions + * @example + * // Add a new region + * chart.regions.add( + * { + * axis: "x", start: 5, class: "regionX", + * label: { + * text: "Region Text", + * color: "red" // color string + * } + * } + * ); + * + * // Add new regions + * chart.regions.add([ + * {axis: "x", start: 5, class: "regionX"}, + * { + * axis: "y", end: 50, class: "regionY", + * label: { + * text: "Region Text", + * x: 5, // position relative of the initial x coordinate + * y: 5, // position relative of the initial y coordinate + * color: "red", // color string + * rotated: true // make text to show in vertical or horizontal + * } + * } + * ]); + */ + add: function(regions2) { + return regionsFn.bind(this)(regions2, true); + }, + /** + * Remove regions.<br><br> + * This API removes regions. + * @function regions․remove + * @instance + * @memberof Chart + * @param {object} optionsValue This argument should include classes. If classes is given, the regions that have one of the specified classes will be removed. If args is not given, all of regions will be removed. + * @returns {Array} regions Removed regions + * @example + * // regions that have 'region-A' or 'region-B' will be removed. + * chart.regions.remove({ + * classes: [ + * "region-A", "region-B" + * ] + * }); + * + * // all of regions will be removed. + * chart.regions.remove(); + */ + remove: function(optionsValue) { + const $$ = this.internal; + const { config, $T } = $$; + const options = optionsValue || {}; + const classes = getOption(options, "classes", [$REGION.region]); + let regions2 = $$.$el.main.select(`.${$REGION.regions}`).selectAll(classes.map((c) => `.${c}`)); + $T(regions2).style("opacity", "0").remove(); + regions2 = config.regions; + if (Object.keys(options).length) { + regions2 = regions2.filter((region) => { + let found = false; + if (!region.class) { + return true; + } + region.class.split(" ").forEach((c) => { + if (classes.indexOf(c) >= 0) { + found = true; + } + }); + return !found; + }); + config.regions = regions2; + } else { + config.regions = []; + } + return regions2; + } +}); +/* harmony default export */ var api_regions = ({ regions }); + +;// CONCATENATED MODULE: ./src/Chart/api/x.ts + +/* harmony default export */ var x = ({ + /** + * Get and set x values for the chart. + * @function x + * @instance + * @memberof Chart + * @param {Array} x If x is given, x values of every target will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids. + * @returns {object} xs + * @example + * // Get current x values + * chart.x(); + * + * // Update x values for all targets + * chart.x([100, 200, 300, 400, ...]); + */ + x(x) { + const $$ = this.internal; + const { axis, data } = $$; + const isCategorized = axis.isCustomX() && axis.isCategorized(); + if (isArray(x)) { + if (isCategorized) { + this.categories(x); + } else { + $$.updateTargetX(data.targets, x); + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true + }); + } + } + return isCategorized ? this.categories() : data.xs; + }, + /** + * Get and set x values for the chart. + * @function xs + * @instance + * @memberof Chart + * @param {Array} xs If xs is given, specified target's x values will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids. + * @returns {object} xs + * @example + * // Get current x values + * chart.xs(); + * + * // Update x values for all targets + * chart.xs({ + * data1: [10, 20, 30, 40, ...], + * data2: [100, 200, 300, 400, ...] + * }); + */ + xs(xs) { + const $$ = this.internal; + if (isObject(xs)) { + $$.updateTargetXs($$.data.targets, xs); + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true + }); + } + return $$.data.xs; + } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-axis","commonjs2":"d3-axis","amd":"d3-axis","root":"d3"} +var external_commonjs_d3_axis_commonjs2_d3_axis_amd_d3_axis_root_d3_ = __webpack_require__(11); +;// CONCATENATED MODULE: ./src/ChartInternal/Axis/AxisRendererHelper.ts +var AxisRendererHelper_defProp = Object.defineProperty; +var AxisRendererHelper_defNormalProp = (obj, key, value) => key in obj ? AxisRendererHelper_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var AxisRendererHelper_publicField = (obj, key, value) => { + AxisRendererHelper_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + +class AxisRendererHelper { + constructor(owner) { + AxisRendererHelper_publicField(this, "owner"); + AxisRendererHelper_publicField(this, "config"); + AxisRendererHelper_publicField(this, "scale"); + const scale = getScale(); + const { config, params } = owner; + this.owner = owner; + this.config = config; + this.scale = scale; + if (config.noTransition || !params.config.transition_duration) { + config.withoutTransition = true; + } + config.range = this.scaleExtent((params.orgXScale || scale).range()); + } + /** + * Compute a character dimension + * @param {d3.selection} node <g class=tick> node + * @returns {{w: number, h: number}} + * @private + */ + static getSizeFor1Char(node) { + const size = { + w: 5.5, + h: 11.5 + }; + !node.empty() && node.select("text").text("0").call((el) => { + try { + const { width, height } = el.node().getBBox(); + if (width && height) { + size.w = width; + size.h = height; + } + } catch (e) { + } finally { + el.text(""); + } + }); + this.getSizeFor1Char = () => size; + return size; + } + /** + * Get tick transform setter function + * @param {string} id Axis id + * @returns {Function} transfrom setter function + * @private + */ + getTickTransformSetter(id) { + const { config } = this; + const fn = id === "x" ? (value) => `translate(${value + config.tickOffset},0)` : (value) => `translate(0,${value})`; + return (selection, scale) => { + selection.attr("transform", (d) => isValue(d) ? fn(Math.ceil(scale(d))) : null); + }; + } + scaleExtent(domain) { + const start = domain[0]; + const stop = domain[domain.length - 1]; + return start < stop ? [start, stop] : [stop, start]; + } + generateTicks(scale, isYAxes) { + const { tickStepSize } = this.owner.params; + const [start, end] = scale.domain(); + let ticks = []; + if (isYAxes && tickStepSize) { + let interval = Math.round(start); + while (interval <= end) { + ticks.push(interval); + interval += tickStepSize; + } + } else if (scale.ticks) { + const { tickArguments } = this.config; + if (scale.type === "log" && !tickArguments) { + const s = getScale("_log").domain([start > 0 ? start : 1, end]).range(scale.range()); + ticks = s.ticks(); + for (let cnt = end.toFixed().length; ticks.length > 15; cnt--) { + ticks = s.ticks(cnt); + } + ticks.splice(0, 1, start); + ticks.splice(ticks.length - 1, 1, end); + } else { + ticks = scale.ticks(...this.config.tickArguments || []); + } + ticks = ticks.map((v) => { + const r = isString(v) && isNumber(v) && !isNaN(v) && Math.round(v * 10) / 10 || v; + return r; + }); + } + return ticks; + } + copyScale() { + const newScale = this.scale.copy(); + if (!newScale.domain().length) { + newScale.domain(this.scale.domain()); + } + newScale.type = this.scale.type; + return newScale; + } + textFormatted(v) { + const tickFormat = this.config.tickFormat; + const value = /\d+\.\d+0{5,}\d$/.test(v) ? +String(v).replace(/0+\d$/, "") : v; + const formatted = tickFormat ? tickFormat(value) : value; + return isDefined(formatted) ? formatted : ""; + } + transitionise(selection) { + const { config } = this; + let transitionSelection = selection; + if (config.withoutTransition) { + transitionSelection = selection.interrupt(); + } else if (config.transition || !this.owner.params.noTransition) { + try { + transitionSelection = selection.transition(config.transition); + } catch (e) { + } + } + return transitionSelection; + } +} + +;// CONCATENATED MODULE: ./src/ChartInternal/Axis/AxisRenderer.ts +var AxisRenderer_defProp = Object.defineProperty; +var AxisRenderer_defNormalProp = (obj, key, value) => key in obj ? AxisRenderer_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var AxisRenderer_publicField = (obj, key, value) => { + AxisRenderer_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + +class AxisRenderer { + constructor(params = {}) { + AxisRenderer_publicField(this, "helper"); + AxisRenderer_publicField(this, "config"); + AxisRenderer_publicField(this, "params"); + AxisRenderer_publicField(this, "g"); + AxisRenderer_publicField(this, "generatedTicks"); + const config = { + innerTickSize: 6, + outerTickSize: params.outerTick ? 6 : 0, + orient: "bottom", + range: [], + tickArguments: null, + tickCentered: null, + tickCulling: true, + tickFormat: null, + tickLength: 9, + tickOffset: 0, + tickPadding: 3, + tickValues: null, + transition: null, + noTransition: params.noTransition + }; + config.tickLength = Math.max(config.innerTickSize, 0) + config.tickPadding; + this.config = config; + this.params = params; + this.helper = new AxisRendererHelper(this); + } + /** + * Create axis element + * @param {d3.selection} g Axis selection + * @private + */ + create(g) { + const ctx = this; + const { config, helper, params } = ctx; + const { scale } = helper; + const { orient } = config; + const splitTickText = this.splitTickText.bind(ctx); + const isLeftRight = /^(left|right)$/.test(orient); + const isTopBottom = /^(top|bottom)$/.test(orient); + const tickTransform = helper.getTickTransformSetter(isTopBottom ? "x" : "y"); + const axisPx = tickTransform === helper.axisX ? "y" : "x"; + const sign = /^(top|left)$/.test(orient) ? -1 : 1; + const rotate = params.tickTextRotate; + this.config.range = scale.rangeExtent ? scale.rangeExtent() : helper.scaleExtent((params.orgXScale || scale).range()); + const { innerTickSize, tickLength, range } = config; + const id = params.id; + const tickTextPos = id && /^(x|y|y2)$/.test(id) ? params.config[`axis_${id}_tick_text_position`] : { x: 0, y: 0 }; + const prefix = id === "subX" ? `subchart_axis_x` : `axis_${id}`; + const axisShow = params.config[`${prefix}_show`]; + const tickShow = { + tick: axisShow ? params.config[`${prefix}_tick_show`] : false, + text: axisShow ? params.config[`${prefix}_tick_text_show`] : false + }; + let $g; + g.each(function() { + const g2 = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + let scale0 = this.__chart__ || scale; + let scale1 = helper.copyScale(); + $g = g2; + this.__chart__ = scale1; + config.tickOffset = params.isCategory ? Math.ceil((scale1(1) - scale1(0)) / 2) : 0; + const path = g2.selectAll(".domain").data([0]); + path.enter().append("path").attr("class", "domain").merge(path).attr("d", () => { + const outerTickSized = config.outerTickSize * sign; + return isTopBottom ? `M${range[0]},${outerTickSized}V0H${range[1]}V${outerTickSized}` : `M${outerTickSized},${range[0]}H0V${range[1]}H${outerTickSized}`; + }); + if (tickShow.tick || tickShow.text) { + const ticks = config.tickValues || helper.generateTicks(scale1, isLeftRight); + ctx.generatedTicks = ticks; + let tick = g2.selectAll(".tick").data(ticks, scale1); + const tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick"); + const tickExit = tick.exit().remove(); + tick = tickEnter.merge(tick); + tickShow.tick && tickEnter.append("line"); + tickShow.text && tickEnter.append("text"); + const sizeFor1Char = AxisRendererHelper.getSizeFor1Char(tick); + const counts = []; + let tspan = tick.select("text").selectAll("tspan").data((d, index) => { + const split = params.tickMultiline ? splitTickText(d, scale1, ticks, isLeftRight, sizeFor1Char.w) : isArray(helper.textFormatted(d)) ? helper.textFormatted(d).concat() : [helper.textFormatted(d)]; + counts[index] = split.length; + return split.map((splitted) => ({ index, splitted })); + }); + tspan.exit().remove(); + tspan = tspan.enter().append("tspan").merge(tspan).text((d) => d.splitted); + tspan.attr("x", isTopBottom ? 0 : tickLength * sign).attr("dx", (() => { + let dx = 0; + if (/(top|bottom)/.test(orient) && rotate) { + dx = 8 * Math.sin(Math.PI * (rotate / 180)) * (orient === "top" ? -1 : 1); + } + return dx + (tickTextPos.x || 0); + })()).attr("dy", (d, i) => { + const defValue = ".71em"; + let dy = 0; + if (orient !== "top") { + dy = sizeFor1Char.h; + if (i === 0) { + dy = isLeftRight ? -((counts[d.index] - 1) * (sizeFor1Char.h / 2) - 3) : tickTextPos.y === 0 ? defValue : 0; + } + } + return isNumber(dy) && tickTextPos.y ? dy + tickTextPos.y : dy || defValue; + }); + const lineUpdate = tick.select("line"); + const textUpdate = tick.select("text"); + tickEnter.select("line").attr(`${axisPx}2`, innerTickSize * sign); + tickEnter.select("text").attr(axisPx, tickLength * sign); + ctx.setTickLineTextPosition(lineUpdate, textUpdate); + if (params.tickTitle) { + const title = textUpdate.select("title"); + (title.empty() ? textUpdate.append("title") : title).text((index) => params.tickTitle[index]); + } + if (scale1.bandwidth) { + const x = scale1; + const dx = x.bandwidth() / 2; + scale0 = (d) => x(d) + dx; + scale1 = scale0; + } else if (scale0.bandwidth) { + scale0 = scale1; + } else { + tickTransform(tickExit, scale1); + } + tick = params.owner.state.flowing ? helper.transitionise(tick) : params.owner.$T(tick); + tickTransform(tickEnter, scale0); + tickTransform(tick.style("opacity", null), scale1); + } + }); + this.g = $g; + } + /** + * Get generated ticks + * @param {number} count Count of ticks + * @returns {Array} Generated ticks + * @private + */ + getGeneratedTicks(count) { + var _a; + const len = ((_a = this.generatedTicks) == null ? void 0 : _a.length) - 1; + let res = this.generatedTicks; + if (len > count) { + const interval = Math.round(len / count + 0.1); + res = this.generatedTicks.map((v, i) => i % interval === 0 ? v : null).filter((v) => v !== null).splice(0, count); + } + return res; + } + /** + * Get tick x/y coordinate + * @returns {{x: number, y: number}} + * @private + */ + getTickXY() { + const { config } = this; + const pos = { x: 0, y: 0 }; + if (this.params.isCategory) { + pos.x = config.tickCentered ? 0 : config.tickOffset; + pos.y = config.tickCentered ? config.tickOffset : 0; + } + return pos; + } + /** + * Get tick size + * @param {object} d data object + * @returns {number} + * @private + */ + getTickSize(d) { + const { scale } = this.helper; + const { config } = this; + const { innerTickSize, range } = config; + const tickPosition = scale(d) + (config.tickCentered ? 0 : config.tickOffset); + return range[0] < tickPosition && tickPosition < range[1] ? innerTickSize : 0; + } + /** + * Set tick's line & text position + * @param {d3.selection} lineUpdate Line selection + * @param {d3.selection} textUpdate Text selection + * @private + */ + setTickLineTextPosition(lineUpdate, textUpdate) { + const tickPos = this.getTickXY(); + const { innerTickSize, orient, tickLength, tickOffset } = this.config; + const rotate = this.params.tickTextRotate; + const textAnchorForText = (r) => { + const value = ["start", "end"]; + orient === "top" && value.reverse(); + return !r ? "middle" : value[r > 0 ? 0 : 1]; + }; + const textTransform = (r) => r ? `rotate(${r})` : null; + const yForText = (r) => { + const r2 = r / (orient === "bottom" ? 15 : 23); + return r ? 11.5 - 2.5 * r2 * (r > 0 ? 1 : -1) : tickLength; + }; + const { + config: { + axis_rotated: isRotated, + axis_x_tick_text_inner: inner + } + } = this.params.owner; + switch (orient) { + case "bottom": + lineUpdate.attr("x1", tickPos.x).attr("x2", tickPos.x).attr("y2", this.getTickSize.bind(this)); + textUpdate.attr("x", 0).attr("y", yForText(rotate)).style("text-anchor", textAnchorForText(rotate)).style("text-anchor", (d, i, { length }) => { + if (!isRotated && i === 0 && (inner === true || inner.first)) { + return "start"; + } else if (!isRotated && i === length - 1 && (inner === true || inner.last)) { + return "end"; + } + return textAnchorForText(rotate); + }).attr("transform", textTransform(rotate)); + break; + case "top": + lineUpdate.attr("x2", 0).attr("y2", -innerTickSize); + textUpdate.attr("x", 0).attr("y", -yForText(rotate) * 2).style("text-anchor", textAnchorForText(rotate)).attr("transform", textTransform(rotate)); + break; + case "left": + lineUpdate.attr("x2", -innerTickSize).attr("y1", tickPos.y).attr("y2", tickPos.y); + textUpdate.attr("x", -tickLength).attr("y", tickOffset).style("text-anchor", "end"); + break; + case "right": + lineUpdate.attr("x2", innerTickSize).attr("y2", 0); + textUpdate.attr("x", tickLength).attr("y", 0).style("text-anchor", "start"); + } + } + // this should be called only when category axis + splitTickText(d, scale, ticks, isLeftRight, charWidth) { + const { params } = this; + const tickText = this.helper.textFormatted(d); + const splitted = isString(tickText) && tickText.indexOf("\n") > -1 ? tickText.split("\n") : []; + if (splitted.length) { + return splitted; + } + if (isArray(tickText)) { + return tickText; + } + let tickWidth = params.tickWidth; + if (!tickWidth || tickWidth <= 0) { + tickWidth = isLeftRight ? 95 : params.isCategory ? Math.ceil( + params.isInverted ? scale(ticks[0]) - scale(ticks[1]) : scale(ticks[1]) - scale(ticks[0]) + ) - 12 : 110; + } + function split(splitted2, text) { + let subtext; + let spaceIndex; + let textWidth; + for (let i = 1; i < text.length; i++) { + if (text.charAt(i) === " ") { + spaceIndex = i; + } + subtext = text.substr(0, i + 1); + textWidth = charWidth * subtext.length; + if (tickWidth < textWidth) { + return split( + splitted2.concat(text.substr(0, spaceIndex || i)), + text.slice(spaceIndex ? spaceIndex + 1 : i) + ); + } + } + return splitted2.concat(text); + } + return split(splitted, String(tickText)); + } + scale(x) { + if (!arguments.length) { + return this.helper.scale; + } + this.helper.scale = x; + return this; + } + orient(x) { + if (!arguments.length) { + return this.config.orient; + } + this.config.orient = x in { + top: 1, + right: 1, + bottom: 1, + left: 1 + } ? String(x) : "bottom"; + return this; + } + tickFormat(format) { + const { config } = this; + if (!arguments.length) { + return config.tickFormat; + } + config.tickFormat = format; + return this; + } + tickCentered(isCentered) { + const { config } = this; + if (!arguments.length) { + return config.tickCentered; + } + config.tickCentered = isCentered; + return this; + } + /** + * Return tick's offset value. + * The value will be set for 'category' axis type. + * @returns {number} + * @private + */ + tickOffset() { + return this.config.tickOffset; + } + /** + * Get tick interval count + * @private + * @param {number} size Total data size + * @returns {number} + */ + tickInterval(size) { + var _a; + const { outerTickSize, tickOffset, tickValues } = this.config; + let interval; + if (this.params.isCategory) { + interval = tickOffset * 2; + } else { + const scale = (_a = this.params.owner.scale.zoom) != null ? _a : this.helper.scale; + const length = this.g.select("path.domain").node().getTotalLength() - outerTickSize * 2; + interval = length / (size || this.g.selectAll("line").size()); + const intervalByValue = tickValues ? tickValues.map((v, i, arr) => { + const next = i + 1; + return next < arr.length ? scale(arr[next]) - scale(v) : null; + }).filter(Boolean) : []; + interval = Math.min(...intervalByValue, interval); + } + return interval === Infinity ? 0 : interval; + } + ticks(...args) { + const { config } = this; + if (!args.length) { + return config.tickArguments; + } + config.tickArguments = toArray(args); + return this; + } + tickCulling(culling) { + const { config } = this; + if (!arguments.length) { + return config.tickCulling; + } + config.tickCulling = culling; + return this; + } + tickValues(x) { + const { config } = this; + if (isFunction(x)) { + config.tickValues = () => x(this.helper.scale.domain()); + } else { + if (!arguments.length) { + return config.tickValues; + } + config.tickValues = x; + } + return this; + } + setTransition(t) { + this.config.transition = t; + return this; + } +} + +;// CONCATENATED MODULE: ./src/ChartInternal/Axis/Axis.ts +var Axis_defProp = Object.defineProperty; +var Axis_defNormalProp = (obj, key, value) => key in obj ? Axis_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var Axis_publicField = (obj, key, value) => { + Axis_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + +/* harmony default export */ var Axis = ({ + getAxisInstance: function() { + return this.axis || new Axis_Axis(this); + } +}); +class Axis_Axis { + constructor(owner) { + Axis_publicField(this, "owner"); + Axis_publicField(this, "x"); + Axis_publicField(this, "subX"); + Axis_publicField(this, "y"); + Axis_publicField(this, "y2"); + Axis_publicField(this, "axesList", {}); + Axis_publicField(this, "tick", { + x: null, + y: null, + y2: null + }); + Axis_publicField(this, "xs", []); + Axis_publicField(this, "orient", { + x: "bottom", + y: "left", + y2: "right", + subX: "bottom" + }); + this.owner = owner; + this.setOrient(); + } + getAxisClassName(id) { + return `${$AXIS.axis} ${$AXIS[`axis${capitalize(id)}`]}`; + } + isHorizontal($$, forHorizontal) { + const isRotated = $$.config.axis_rotated; + return forHorizontal ? isRotated : !isRotated; + } + isCategorized() { + const { config, state } = this.owner; + return config.axis_x_type.indexOf("category") >= 0 || state.hasRadar; + } + isCustomX() { + const { config } = this.owner; + return !this.isTimeSeries() && (config.data_x || notEmpty(config.data_xs)); + } + isTimeSeries(id = "x") { + return this.owner.config[`axis_${id}_type`] === "timeseries"; + } + isLog(id = "x") { + return this.owner.config[`axis_${id}_type`] === "log"; + } + isTimeSeriesY() { + return this.isTimeSeries("y"); + } + getAxisType(id = "x") { + let type = "linear"; + if (this.isTimeSeries(id)) { + type = this.owner.config.axis_x_localtime ? "time" : "utc"; + } else if (this.isLog(id)) { + type = "log"; + } + return type; + } + init() { + const $$ = this.owner; + const { config, $el: { main, axis }, state: { clip } } = $$; + const isRotated = config.axis_rotated; + const target = ["x", "y"]; + config.axis_y2_show && target.push("y2"); + target.forEach((v) => { + const classAxis = this.getAxisClassName(v); + const classLabel = $AXIS[`axis${v.toUpperCase()}Label`]; + axis[v] = main.append("g").attr("class", classAxis).attr("clip-path", () => { + let res = null; + if (v === "x") { + res = clip.pathXAxis; + } else if (v === "y") { + res = clip.pathYAxis; + } + return res; + }).attr("transform", $$.getTranslate(v)).style("visibility", config[`axis_${v}_show`] ? null : "hidden"); + axis[v].append("text").attr("class", classLabel).attr("transform", ["rotate(-90)", null][v === "x" ? +!isRotated : +isRotated]).style("text-anchor", () => this.textAnchorForAxisLabel(v)); + this.generateAxes(v); + }); + config.axis_tooltip && this.setAxisTooltip(); + } + /** + * Set axis orient according option value + * @private + */ + setOrient() { + const $$ = this.owner; + const { + axis_rotated: isRotated, + axis_y_inner: yInner, + axis_y2_inner: y2Inner + } = $$.config; + this.orient = { + x: isRotated ? "left" : "bottom", + y: isRotated ? yInner ? "top" : "bottom" : yInner ? "right" : "left", + y2: isRotated ? y2Inner ? "bottom" : "top" : y2Inner ? "left" : "right", + subX: isRotated ? "left" : "bottom" + }; + } + /** + * Generate axes + * It's used when axis' axes option is set + * @param {string} id Axis id + * @private + */ + generateAxes(id) { + const $$ = this.owner; + const { config } = $$; + const axes = []; + const axesConfig = config[`axis_${id}_axes`]; + const isRotated = config.axis_rotated; + let d3Axis; + if (id === "x") { + d3Axis = isRotated ? external_commonjs_d3_axis_commonjs2_d3_axis_amd_d3_axis_root_d3_.axisLeft : external_commonjs_d3_axis_commonjs2_d3_axis_amd_d3_axis_root_d3_.axisBottom; + } else if (id === "y") { + d3Axis = isRotated ? external_commonjs_d3_axis_commonjs2_d3_axis_amd_d3_axis_root_d3_.axisBottom : external_commonjs_d3_axis_commonjs2_d3_axis_amd_d3_axis_root_d3_.axisLeft; + } else if (id === "y2") { + d3Axis = isRotated ? external_commonjs_d3_axis_commonjs2_d3_axis_amd_d3_axis_root_d3_.axisTop : external_commonjs_d3_axis_commonjs2_d3_axis_amd_d3_axis_root_d3_.axisRight; + } + if (axesConfig.length) { + axesConfig.forEach((v) => { + const tick = v.tick || {}; + const scale = $$.scale[id].copy(); + v.domain && scale.domain(v.domain); + axes.push( + d3Axis(scale).ticks(tick.count).tickFormat( + isFunction(tick.format) ? tick.format.bind($$.api) : (x) => x + ).tickValues(tick.values).tickSizeOuter(tick.outer === false ? 0 : 6) + ); + }); + } + this.axesList[id] = axes; + } + /** + * Update axes nodes + * @private + */ + updateAxes() { + const $$ = this.owner; + const { config, $el: { main }, $T } = $$; + Object.keys(this.axesList).forEach((id) => { + const axesConfig = config[`axis_${id}_axes`]; + const scale = $$.scale[id].copy(); + const range = scale.range(); + this.axesList[id].forEach((v, i) => { + const axisRange = v.scale().range(); + if (!range.every((v2, i2) => v2 === axisRange[i2])) { + v.scale().range(range); + } + const className = `${this.getAxisClassName(id)}-${i + 1}`; + let g = main.select(`.${className.replace(/\s/, ".")}`); + if (g.empty()) { + g = main.append("g").attr("class", className).style("visibility", config[`axis_${id}_show`] ? null : "hidden").call(v); + } else { + axesConfig[i].domain && scale.domain(axesConfig[i].domain); + $T(g).call(v.scale(scale)); + } + g.attr("transform", $$.getTranslate(id, i + 1)); + }); + }); + } + /** + * Set Axis & tick values + * called from: updateScales() + * @param {string} id Axis id string + * @param {d3Scale} scale Scale + * @param {boolean} outerTick If show outer tick + * @param {boolean} noTransition If with no transition + * @private + */ + setAxis(id, scale, outerTick, noTransition) { + const $$ = this.owner; + if (id !== "subX") { + this.tick[id] = this.getTickValues(id); + } + this[id] = this.getAxis( + id, + scale, + outerTick, + // do not transit x Axis on zoom and resizing + // https://github.com/naver/billboard.js/issues/1949 + id === "x" && ($$.scale.zoom || $$.config.subchart_show || $$.state.resizing) ? true : noTransition + ); + } + // called from : getMaxTickSize() + getAxis(id, scale, outerTick, noTransition, noTickTextRotate) { + const $$ = this.owner; + const { config } = $$; + const isX = /^(x|subX)$/.test(id); + const type = isX ? "x" : id; + const isCategory = isX && this.isCategorized(); + const orient = this.orient[id]; + const tickTextRotate = noTickTextRotate ? 0 : $$.getAxisTickRotate(type); + let tickFormat; + if (isX) { + tickFormat = id === "subX" ? $$.format.subXAxisTick : $$.format.xAxisTick; + } else { + const fn = config[`axis_${id}_tick_format`]; + if (isFunction(fn)) { + tickFormat = fn.bind($$.api); + } + } + let tickValues = this.tick[type]; + const axisParams = mergeObj({ + outerTick, + noTransition, + config, + id, + tickTextRotate, + owner: $$ + }, isX && { + isCategory, + isInverted: config.axis_x_inverted, + tickMultiline: config.axis_x_tick_multiline, + tickWidth: config.axis_x_tick_width, + tickTitle: isCategory && config.axis_x_tick_tooltip && $$.api.categories(), + orgXScale: $$.scale.x + }); + if (!isX) { + axisParams.tickStepSize = config[`axis_${type}_tick_stepSize`]; + } + const axis = new AxisRenderer(axisParams).scale(isX && $$.scale.zoom || scale).orient(orient); + if (isX && this.isTimeSeries() && tickValues && !isFunction(tickValues)) { + const fn = parseDate.bind($$); + tickValues = tickValues.map((v) => fn(v)); + } else if (!isX && this.isTimeSeriesY()) { + axis.ticks(config.axis_y_tick_time_value); + tickValues = null; + } + tickValues && axis.tickValues(tickValues); + axis.tickFormat( + tickFormat || !isX && ($$.isStackNormalized() && ((x) => `${x}%`)) + ); + if (isCategory) { + axis.tickCentered(config.axis_x_tick_centered); + if (isEmpty(config.axis_x_tick_culling)) { + config.axis_x_tick_culling = false; + } + } + const tickCount = config[`axis_${type}_tick_count`]; + tickCount && axis.ticks(tickCount); + return axis; + } + updateXAxisTickValues(targets, axis) { + var _a; + const $$ = this.owner; + const { config } = $$; + const fit = config.axis_x_tick_fit; + let count = config.axis_x_tick_count; + let values; + if (fit || count && fit) { + values = $$.mapTargetsToUniqueXs(targets); + if (this.isCategorized() && count > values.length) { + count = values.length; + } + values = this.generateTickValues( + values, + count, + this.isTimeSeries() + ); + } + if (axis) { + axis.tickValues(values); + } else if (this.x) { + this.x.tickValues(values); + (_a = this.subX) == null ? void 0 : _a.tickValues(values); + } + return values; + } + getId(id) { + const { config, scale } = this.owner; + let axis = config.data_axes[id]; + if (!axis || !scale[axis]) { + axis = "y"; + } + return axis; + } + getXAxisTickFormat(forSubchart) { + const $$ = this.owner; + const { config, format } = $$; + const tickFormat = forSubchart ? config.subchart_axis_x_tick_format || config.axis_x_tick_format : config.axis_x_tick_format; + const isTimeSeries = this.isTimeSeries(); + const isCategorized = this.isCategorized(); + let currFormat; + if (tickFormat) { + if (isFunction(tickFormat)) { + currFormat = tickFormat.bind($$.api); + } else if (isTimeSeries) { + currFormat = (date) => date ? format.axisTime(tickFormat)(date) : ""; + } + } else { + currFormat = isTimeSeries ? format.defaultAxisTime : isCategorized ? $$.categoryName : (v) => v < 0 ? v.toFixed(0) : v; + } + return isFunction(currFormat) ? (v) => currFormat.apply($$, isCategorized ? [v, $$.categoryName(v)] : [v]) : currFormat; + } + getTickValues(id) { + const $$ = this.owner; + const tickValues = $$.config[`axis_${id}_tick_values`]; + const axis = $$[`${id}Axis`]; + return (isFunction(tickValues) ? tickValues.call($$.api) : tickValues) || (axis ? axis.tickValues() : void 0); + } + getLabelOptionByAxisId(id) { + return this.owner.config[`axis_${id}_label`]; + } + getLabelText(id) { + const option = this.getLabelOptionByAxisId(id); + return isString(option) ? option : option ? option.text : null; + } + setLabelText(id, text) { + const $$ = this.owner; + const { config } = $$; + const option = this.getLabelOptionByAxisId(id); + if (isString(option)) { + config[`axis_${id}_label`] = text; + } else if (option) { + option.text = text; + } + } + getLabelPosition(id, defaultPosition) { + const isRotated = this.owner.config.axis_rotated; + const option = this.getLabelOptionByAxisId(id); + const position = isObjectType(option) && option.position ? option.position : defaultPosition[+!isRotated]; + const has = (v) => !!~position.indexOf(v); + return { + isInner: has("inner"), + isOuter: has("outer"), + isLeft: has("left"), + isCenter: has("center"), + isRight: has("right"), + isTop: has("top"), + isMiddle: has("middle"), + isBottom: has("bottom") + }; + } + getAxisLabelPosition(id) { + return this.getLabelPosition( + id, + id === "x" ? ["inner-top", "inner-right"] : ["inner-right", "inner-top"] + ); + } + getLabelPositionById(id) { + return this.getAxisLabelPosition(id); + } + xForAxisLabel(id) { + const $$ = this.owner; + const { state: { width, height } } = $$; + const position = this.getAxisLabelPosition(id); + let x = position.isMiddle ? -height / 2 : 0; + if (this.isHorizontal($$, id !== "x")) { + x = position.isLeft ? 0 : position.isCenter ? width / 2 : width; + } else if (position.isBottom) { + x = -height; + } + return x; + } + dxForAxisLabel(id) { + const $$ = this.owner; + const position = this.getAxisLabelPosition(id); + let dx = position.isBottom ? "0.5em" : "0"; + if (this.isHorizontal($$, id !== "x")) { + dx = position.isLeft ? "0.5em" : position.isRight ? "-0.5em" : "0"; + } else if (position.isTop) { + dx = "-0.5em"; + } + return dx; + } + textAnchorForAxisLabel(id) { + const $$ = this.owner; + const position = this.getAxisLabelPosition(id); + let anchor = position.isMiddle ? "middle" : "end"; + if (this.isHorizontal($$, id !== "x")) { + anchor = position.isLeft ? "start" : position.isCenter ? "middle" : "end"; + } else if (position.isBottom) { + anchor = "start"; + } + return anchor; + } + dyForAxisLabel(id) { + const $$ = this.owner; + const { config } = $$; + const isRotated = config.axis_rotated; + const isInner = this.getAxisLabelPosition(id).isInner; + const tickRotate = config[`axis_${id}_tick_rotate`] ? $$.getHorizontalAxisHeight(id) : 0; + const { width: maxTickWidth } = this.getMaxTickSize(id); + let dy; + if (id === "x") { + const xHeight = config.axis_x_height; + if (isRotated) { + dy = isInner ? "1.2em" : -25 - maxTickWidth; + } else if (isInner) { + dy = "-0.5em"; + } else if (xHeight) { + dy = xHeight - 10; + } else if (tickRotate) { + dy = tickRotate - 10; + } else { + dy = "3em"; + } + } else { + dy = { + y: ["-0.5em", 10, "3em", "1.2em", 10], + y2: ["1.2em", -20, "-2.2em", "-0.5em", 15] + }[id]; + if (isRotated) { + if (isInner) { + dy = dy[0]; + } else if (tickRotate) { + dy = tickRotate * (id === "y2" ? -1 : 1) - dy[1]; + } else { + dy = dy[2]; + } + } else { + dy = isInner ? dy[3] : (dy[4] + (config[`axis_${id}_inner`] ? 0 : maxTickWidth + dy[4])) * (id === "y" ? -1 : 1); + } + } + return dy; + } + /** + * Get max tick size + * @param {string} id axis id string + * @param {boolean} withoutRecompute wheather or not to recompute + * @returns {object} {width, height} + * @private + */ + getMaxTickSize(id, withoutRecompute) { + const $$ = this.owner; + const { config, state: { current }, $el: { svg, chart } } = $$; + const currentTickMax = current.maxTickSize[id]; + const configPrefix = `axis_${id}`; + const max = { + width: 0, + height: 0 + }; + if (withoutRecompute || !config[`${configPrefix}_show`] || currentTickMax.width > 0 && $$.filterTargetsToShow().length === 0) { + return currentTickMax; + } + if (svg) { + const isYAxis = /^y2?$/.test(id); + const targetsToShow = $$.filterTargetsToShow($$.data.targets); + const scale = $$.scale[id].copy().domain( + $$[`get${isYAxis ? "Y" : "X"}Domain`](targetsToShow, id) + ); + const domain = scale.domain(); + const isDomainSame = domain[0] === domain[1] && domain.every((v) => v > 0); + const isCurrentMaxTickDomainSame = isArray(currentTickMax.domain) && currentTickMax.domain[0] === currentTickMax.domain[1] && currentTickMax.domain.every((v) => v > 0); + if (isDomainSame || isCurrentMaxTickDomainSame) { + return currentTickMax.size; + } else { + currentTickMax.domain = domain; + } + if (!isYAxis) { + currentTickMax.ticks.splice(0); + } + const axis = this.getAxis(id, scale, false, false, true); + const tickRotate = config[`${configPrefix}_tick_rotate`]; + const tickCount = config[`${configPrefix}_tick_count`]; + const tickValues = config[`${configPrefix}_tick_values`]; + if (!tickValues && tickCount) { + axis.tickValues( + this.generateTickValues( + domain, + tickCount, + isYAxis ? this.isTimeSeriesY() : this.isTimeSeries() + ) + ); + } + !isYAxis && this.updateXAxisTickValues(targetsToShow, axis); + const dummy = chart.append("svg").style("visibility", "hidden").style("position", "fixed").style("top", "0").style("left", "0"); + axis.create(dummy); + dummy.selectAll("text").attr("transform", isNumber(tickRotate) ? `rotate(${tickRotate})` : null).each(function(d, i) { + const { width, height } = this.getBoundingClientRect(); + max.width = Math.max(max.width, width); + max.height = Math.max(max.height, height); + if (!isYAxis) { + currentTickMax.ticks[i] = width; + } + }); + dummy.remove(); + } + Object.keys(max).forEach((key) => { + if (max[key] > 0) { + currentTickMax[key] = max[key]; + } + }); + return currentTickMax; + } + getXAxisTickTextY2Overflow(defaultPadding) { + const $$ = this.owner; + const { axis, config, state: { current, isLegendRight, legendItemWidth } } = $$; + const xAxisTickRotate = $$.getAxisTickRotate("x"); + const positiveRotation = xAxisTickRotate > 0 && xAxisTickRotate < 90; + if ((axis.isCategorized() || axis.isTimeSeries()) && config.axis_x_tick_fit && (!config.axis_x_tick_culling || isEmpty(config.axis_x_tick_culling)) && !config.axis_x_tick_multiline && positiveRotation) { + const y2AxisWidth = config.axis_y2_show && current.maxTickSize.y2.width || 0; + const legendWidth = isLegendRight && legendItemWidth || 0; + const widthWithoutCurrentPaddingLeft = current.width - $$.getCurrentPaddingByDirection("left"); + const maxOverflow = this.getXAxisTickMaxOverflow( + xAxisTickRotate, + widthWithoutCurrentPaddingLeft - defaultPadding + ) - y2AxisWidth - legendWidth; + const xAxisTickTextY2Overflow = Math.max(0, maxOverflow) + defaultPadding; + return Math.min(xAxisTickTextY2Overflow, widthWithoutCurrentPaddingLeft / 2); + } + return 0; + } + getXAxisTickMaxOverflow(xAxisTickRotate, widthWithoutCurrentPaddingLeft) { + const $$ = this.owner; + const { axis, config, state } = $$; + const isTimeSeries = axis.isTimeSeries(); + const tickTextWidths = state.current.maxTickSize.x.ticks; + const tickCount = tickTextWidths.length; + const { left, right } = state.axis.x.padding; + let maxOverflow = 0; + const remaining = tickCount - (isTimeSeries && config.axis_x_tick_fit ? 0.5 : 0); + for (let i = 0; i < tickCount; i++) { + const tickIndex = i + 1; + const rotatedTickTextWidth = Math.cos(Math.PI * xAxisTickRotate / 180) * tickTextWidths[i]; + const ticksBeforeTickText = tickIndex - (isTimeSeries ? 1 : 0.5) + left; + if (ticksBeforeTickText <= 0) { + continue; + } + const xAxisLengthWithoutTickTextWidth = widthWithoutCurrentPaddingLeft - rotatedTickTextWidth; + const tickLength = xAxisLengthWithoutTickTextWidth / ticksBeforeTickText; + const remainingTicks = remaining - tickIndex; + const paddingRightLength = right * tickLength; + const remainingTickWidth = remainingTicks * tickLength + paddingRightLength; + const overflow = rotatedTickTextWidth - tickLength / 2 - remainingTickWidth; + maxOverflow = Math.max(maxOverflow, overflow); + } + const filteredTargets = $$.filterTargetsToShow($$.data.targets); + let tickOffset = 0; + if (!isTimeSeries && config.axis_x_tick_count <= filteredTargets.length && filteredTargets[0].values.length) { + const scale = getScale( + $$.axis.getAxisType("x"), + 0, + widthWithoutCurrentPaddingLeft - maxOverflow + ).domain([ + left * -1, + $$.getXDomainMax($$.data.targets) + 1 + right + ]); + tickOffset = Math.ceil((scale(1) - scale(0)) / 2); + } + return maxOverflow + tickOffset; + } + updateLabels(withTransition) { + const $$ = this.owner; + const { $el: { main }, $T } = $$; + const labels = { + x: main.select(`.${$AXIS.axisX} .${$AXIS.axisXLabel}`), + y: main.select(`.${$AXIS.axisY} .${$AXIS.axisYLabel}`), + y2: main.select(`.${$AXIS.axisY2} .${$AXIS.axisY2Label}`) + }; + Object.keys(labels).filter((id) => !labels[id].empty()).forEach((v) => { + const node = labels[v]; + $T(node, withTransition).attr("x", () => this.xForAxisLabel(v)).attr("dx", () => this.dxForAxisLabel(v)).attr("dy", () => this.dyForAxisLabel(v)).text(() => this.getLabelText(v)); + }); + } + /** + * Get axis padding value + * @param {number|object} padding Padding object + * @param {string} key Key string of padding + * @param {Date|number} defaultValue Default value + * @param {number} domainLength Domain length + * @returns {number} Padding value in scale + * @private + */ + getPadding(padding, key, defaultValue, domainLength) { + const p = isNumber(padding) ? padding : padding[key]; + if (!isValue(p)) { + return defaultValue; + } + return this.owner.convertPixelToScale( + /(bottom|top)/.test(key) ? "y" : "x", + p, + domainLength + ); + } + generateTickValues(values, tickCount, forTimeSeries) { + let tickValues = values; + if (tickCount) { + const targetCount = isFunction(tickCount) ? tickCount() : tickCount; + if (targetCount === 1) { + tickValues = [values[0]]; + } else if (targetCount === 2) { + tickValues = [values[0], values[values.length - 1]]; + } else if (targetCount > 2) { + const isCategorized = this.isCategorized(); + const count = targetCount - 2; + const start = values[0]; + const end = values[values.length - 1]; + const interval = (end - start) / (count + 1); + let tickValue; + tickValues = [start]; + for (let i = 0; i < count; i++) { + tickValue = +start + interval * (i + 1); + tickValues.push( + forTimeSeries ? new Date(tickValue) : isCategorized ? Math.round(tickValue) : tickValue + ); + } + tickValues.push(end); + } + } + if (!forTimeSeries) { + tickValues = tickValues.sort((a, b) => a - b); + } + return tickValues; + } + generateTransitions(withTransition) { + const $$ = this.owner; + const { $el: { axis }, $T } = $$; + const [axisX, axisY, axisY2, axisSubX] = ["x", "y", "y2", "subX"].map((v) => $T(axis[v], withTransition)); + return { axisX, axisY, axisY2, axisSubX }; + } + redraw(transitions, isHidden, isInit) { + const $$ = this.owner; + const { config, $el } = $$; + const opacity = isHidden ? "0" : null; + ["x", "y", "y2", "subX"].forEach((id) => { + const axis = this[id]; + const $axis = $el.axis[id]; + if (axis && $axis) { + if (!isInit && !config.transition_duration) { + axis.config.withoutTransition = true; + } + $axis.style("opacity", opacity); + axis.create(transitions[`axis${capitalize(id)}`]); + } + }); + this.updateAxes(); + } + /** + * Redraw axis + * @param {Array} targetsToShow targets data to be shown + * @param {object} wth option object + * @param {d3.Transition} transitions Transition object + * @param {object} flow flow object + * @param {boolean} isInit called from initialization + * @private + */ + redrawAxis(targetsToShow, wth, transitions, flow, isInit) { + var _a, _b, _c; + const $$ = this.owner; + const { config, scale, $el } = $$; + const hasZoom = !!scale.zoom; + let xDomainForZoom; + if (!hasZoom && this.isCategorized() && targetsToShow.length === 0) { + scale.x.domain([0, $el.axis.x.selectAll(".tick").size()]); + } + if (scale.x && targetsToShow.length) { + !hasZoom && $$.updateXDomain( + targetsToShow, + wth.UpdateXDomain, + wth.UpdateOrgXDomain, + wth.TrimXDomain + ); + if (!config.axis_x_tick_values) { + this.updateXAxisTickValues(targetsToShow); + } + } else if (this.x) { + this.x.tickValues([]); + (_a = this.subX) == null ? void 0 : _a.tickValues([]); + } + if (config.zoom_rescale && !flow) { + xDomainForZoom = scale.x.orgDomain(); + } + ["y", "y2"].forEach((key) => { + const prefix = `axis_${key}_`; + const axisScale = scale[key]; + if (axisScale) { + const tickValues = config[`${prefix}tick_values`]; + const tickCount = config[`${prefix}tick_count`]; + axisScale.domain($$.getYDomain(targetsToShow, key, xDomainForZoom)); + if (!tickValues && tickCount) { + const axis = $$.axis[key]; + const domain = axisScale.domain(); + axis.tickValues( + this.generateTickValues( + domain, + domain.every((v) => v === 0) ? 1 : tickCount, + this.isTimeSeriesY() + ) + ); + } + } + }); + this.redraw(transitions, $$.hasArcType(), isInit); + this.updateLabels(wth.Transition); + if ((wth.UpdateXDomain || wth.UpdateXAxis || wth.Y) && targetsToShow.length) { + this.setCulling(); + } + if (wth.Y) { + (_b = scale.subY) == null ? void 0 : _b.domain($$.getYDomain(targetsToShow, "y")); + (_c = scale.subY2) == null ? void 0 : _c.domain($$.getYDomain(targetsToShow, "y2")); + } + } + /** + * Set manual culling + * @private + */ + setCulling() { + const $$ = this.owner; + const { config, state: { clip, current }, $el } = $$; + ["subX", "x", "y", "y2"].forEach((type) => { + const axis = $el.axis[type]; + const id = type === "subX" ? "x" : type; + const cullingOptionPrefix = `axis_${id}_tick_culling`; + const toCull = config[cullingOptionPrefix]; + if (axis && toCull) { + const tickNodes = axis.selectAll(".tick"); + const tickValues = sortValue(tickNodes.data()); + const tickSize = tickValues.length; + const cullingMax = config[`${cullingOptionPrefix}_max`]; + const lines = config[`${cullingOptionPrefix}_lines`]; + let intervalForCulling; + if (tickSize) { + for (let i = 1; i < tickSize; i++) { + if (tickSize / i < cullingMax) { + intervalForCulling = i; + break; + } + } + tickNodes.each(function(d) { + const node = lines ? this.querySelector("text") : this; + if (node) { + node.style.display = tickValues.indexOf(d) % intervalForCulling ? "none" : null; + } + }); + } else { + tickNodes.style("display", null); + } + if (type === "x") { + const clipPath = current.maxTickSize.x.clipPath ? clip.pathXAxisTickTexts : null; + $el.svg.selectAll(`.${$AXIS.axisX} .tick text`).attr("clip-path", clipPath); + } + } + }); + } + /** + * Set axis tooltip + * @private + */ + setAxisTooltip() { + var _a; + const $$ = this.owner; + const { config: { axis_rotated: isRotated, axis_tooltip }, $el: { axis, axisTooltip } } = $$; + const bgColor = (_a = axis_tooltip.backgroundColor) != null ? _a : "black"; + $$.generateTextBGColorFilter( + bgColor, + { + x: -0.15, + y: -0.2, + width: 1.3, + height: 1.3 + } + ); + ["x", "y", "y2"].forEach((v) => { + var _a2, _b, _c; + axisTooltip[v] = (_a2 = axis[v]) == null ? void 0 : _a2.append("text").classed($AXIS[`axis${v.toUpperCase()}Tooltip`], true).attr("filter", $$.updateTextBGColor({ id: v }, bgColor)); + if (isRotated) { + const pos = v === "x" ? "x" : "y"; + const val = v === "y" ? "1.15em" : v === "x" ? "-0.3em" : "-0.4em"; + (_b = axisTooltip[v]) == null ? void 0 : _b.attr(pos, val).attr(`d${v === "x" ? "y" : "x"}`, v === "x" ? "0.4em" : "-1.3em").style("text-anchor", v === "x" ? "end" : null); + } else { + const pos = v === "x" ? "y" : "x"; + const val = v === "x" ? "1.15em" : `${v === "y" ? "-" : ""}0.4em`; + (_c = axisTooltip[v]) == null ? void 0 : _c.attr(pos, val).attr(`d${v === "x" ? "x" : "y"}`, v === "x" ? "-1em" : "0.3em").style("text-anchor", v === "y" ? "end" : null); + } + }); + } +} + +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/eventrect.ts + + +/* harmony default export */ var eventrect = ({ + /** + * Initialize the area that detects the event. + * Add a container for the zone that detects the event. + * @private + */ + initEventRect() { + const $$ = this; + $$.$el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $EVENT.eventRects).style("fill-opacity", "0"); + }, + /** + * Redraws the area that detects the event. + * @private + */ + redrawEventRect() { + var _a; + const $$ = this; + const { config, state, $el } = $$; + const isMultipleX = $$.isMultipleX(); + const isInverted = config.axis_x_inverted; + if ($el.eventRect) { + $$.updateEventRect($el.eventRect, true); + } else if ($$.data.targets.length) { + const eventRects = $$.$el.main.select(`.${$EVENT.eventRects}`).style("cursor", config.zoom_enabled && config.zoom_type !== "drag" ? config.axis_rotated ? "ns-resize" : "ew-resize" : null).classed($EVENT.eventRectsMultiple, isMultipleX).classed($EVENT.eventRectsSingle, !isMultipleX); + const eventRectUpdate = eventRects.selectAll(`.${$EVENT.eventRect}`).data([0]).enter().append("rect"); + $$.updateEventRect(eventRectUpdate); + $$.updateEventType(eventRectUpdate); + eventRectUpdate.call($$.getDraggableSelection()); + $el.eventRect = eventRectUpdate; + if ($$.state.inputType === "touch" && !$el.svg.on("touchstart.eventRect") && !$$.hasArcType()) { + $$.bindTouchOnEventRect(); + } + state.rendered && $$.updateEventRect($el.eventRect, true); + } + if (!isMultipleX) { + const xAxisTickValues = $$.getMaxDataCountTarget(); + if (!config.data_xSort || isInverted) { + xAxisTickValues.sort((a, b) => isInverted ? b.x - a.x : a.x - b.x); + } + $$.updateDataIndexByX(xAxisTickValues); + $$.updateXs(xAxisTickValues); + (_a = $$.updatePointClass) == null ? void 0 : _a.call($$, true); + state.eventReceiver.data = xAxisTickValues; + } + $$.updateEventRectData(); + }, + bindTouchOnEventRect() { + const $$ = this; + const { config, state, $el: { eventRect, svg } } = $$; + const selectRect = (context) => { + if ($$.isMultipleX()) { + $$.selectRectForMultipleXs(context); + } else { + const index = $$.getDataIndexFromEvent(state.event); + $$.callOverOutForTouch(index); + index === -1 ? $$.unselectRect() : $$.selectRectForSingle(context, index); + } + }; + const unselectRect = () => { + $$.unselectRect(); + $$.callOverOutForTouch(); + }; + const preventDefault = config.interaction_inputType_touch.preventDefault; + const isPrevented = isBoolean(preventDefault) && preventDefault || false; + const preventThreshold = !isNaN(preventDefault) && preventDefault || null; + let startPx; + const preventEvent = (event) => { + const eventType = event.type; + const touch = event.changedTouches[0]; + const currentXY = touch[`client${config.axis_rotated ? "Y" : "X"}`]; + if (eventType === "touchstart") { + if (isPrevented) { + event.preventDefault(); + } else if (preventThreshold !== null) { + startPx = currentXY; + } + } else if (eventType === "touchmove") { + if (isPrevented || startPx === true || preventThreshold !== null && Math.abs(startPx - currentXY) >= preventThreshold) { + startPx = true; + event.preventDefault(); + } + } + }; + eventRect.on("touchstart", (event) => { + state.event = event; + $$.updateEventRect(); + }).on("touchstart.eventRect touchmove.eventRect", (event) => { + state.event = event; + if (!eventRect.empty() && eventRect.classed($EVENT.eventRect)) { + if (state.dragging || state.flowing || $$.hasArcType() || event.touches.length > 1) { + return; + } + preventEvent(event); + selectRect(eventRect.node()); + } else { + unselectRect(); + } + }, true).on("touchend.eventRect", (event) => { + state.event = event; + if (!eventRect.empty() && eventRect.classed($EVENT.eventRect)) { + if ($$.hasArcType() || !$$.toggleShape || state.cancelClick) { + state.cancelClick && (state.cancelClick = false); + } + } + }, true); + svg.on("touchstart", (event) => { + state.event = event; + const { target } = event; + if (target && target !== eventRect.node()) { + unselectRect(); + } + }); + }, + /** + * Update event rect size + * @param {d3Selection} eventRect Event <rect> element + * @param {boolean} force Force to update + * @private + */ + updateEventRect(eventRect, force = false) { + const $$ = this; + const { state, $el } = $$; + const { eventReceiver, width, height, rendered, resizing } = state; + const rectElement = eventRect || $el.eventRect; + const updateClientRect = () => { + if (eventReceiver) { + const scrollPos = getScrollPosition($el.chart.node()); + eventReceiver.rect = rectElement.node().getBoundingClientRect().toJSON(); + eventReceiver.rect.top += scrollPos.y; + eventReceiver.rect.left += scrollPos.x; + } + }; + if (!rendered || resizing || force) { + rectElement.attr("x", 0).attr("y", 0).attr("width", width).attr("height", height); + if (!rendered || force) { + rectElement.classed($EVENT.eventRect, true); + } + } + updateClientRect(); + }, + /** + * Update event type (single or multiple x) + * @param {d3Selection | boolean} target Target element or boolean to rebind event + */ + updateEventType(target) { + const $$ = this; + const isRebindCall = isBoolean(target); + const eventRect = isRebindCall ? $$.$el.eventRect : target; + const unbindEvent = isRebindCall ? target !== (eventRect == null ? void 0 : eventRect.datum().multipleX) : false; + if (eventRect) { + unbindEvent && (eventRect == null ? void 0 : eventRect.on("mouseover mousemove mouseout click", null)); + $$.isMultipleX() ? $$.generateEventRectsForMultipleXs(eventRect) : $$.generateEventRectsForSingleX(eventRect); + } + }, + /** + * Updates the location and size of the eventRect. + * @private + */ + updateEventRectData() { + const $$ = this; + const { config, scale, state } = $$; + const xScale = scale.zoom || scale.x; + const isRotated = config.axis_rotated; + const isMultipleX = $$.isMultipleX(); + let x; + let y; + let w; + let h; + $$.updateEventType(isMultipleX); + if (isMultipleX) { + x = 0; + y = 0; + w = state.width; + h = state.height; + } else { + let rectW; + let rectX; + if ($$.axis.isCategorized()) { + rectW = $$.getEventRectWidth(); + rectX = (d) => xScale(d.x) - rectW / 2; + } else { + const getPrevNextX = ({ index }) => ({ + prev: $$.getPrevX(index), + next: $$.getNextX(index) + }); + rectW = (d) => { + const x2 = getPrevNextX(d); + const xDomain = xScale.domain(); + let val; + if (x2.prev === null && x2.next === null) { + val = isRotated ? state.height : state.width; + } else if (x2.prev === null) { + val = (xScale(x2.next) + xScale(d.x)) / 2; + } else if (x2.next === null) { + val = xScale(xDomain[1]) - (xScale(x2.prev) + xScale(d.x)) / 2; + } else { + Object.keys(x2).forEach((key, i) => { + var _a; + x2[key] = (_a = x2[key]) != null ? _a : xDomain[i]; + }); + val = Math.max(0, (xScale(x2.next) - xScale(x2.prev)) / 2); + } + return val; + }; + rectX = (d) => { + const x2 = getPrevNextX(d); + let val; + if (x2.prev === null && x2.next === null) { + val = 0; + } else if (x2.prev === null) { + val = xScale(xScale.domain()[0]); + } else { + val = (xScale(d.x) + xScale(x2.prev)) / 2; + } + return val; + }; + } + x = isRotated ? 0 : rectX; + y = isRotated ? rectX : 0; + w = isRotated ? state.width : rectW; + h = isRotated ? rectW : state.height; + } + const { eventReceiver } = state; + const call = (fn, v) => isFunction(fn) ? fn(v) : fn; + eventReceiver.coords.splice(eventReceiver.data.length); + eventReceiver.data.forEach((d, i) => { + eventReceiver.coords[i] = { + x: call(x, d), + y: call(y, d), + w: call(w, d), + h: call(h, d) + }; + }); + }, + /** + * Seletct rect for single x value + * @param {d3Selection} context Event rect element + * @param {number} index x Axis index + * @private + */ + selectRectForSingle(context, index) { + var _a, _b; + const $$ = this; + const { config, $el: { main, circle } } = $$; + const isSelectionEnabled = config.data_selection_enabled; + const isSelectionGrouped = config.data_selection_grouped; + const isSelectable = config.data_selection_isselectable; + const isTooltipGrouped = config.tooltip_grouped; + const selectedData = $$.getAllValuesOnIndex(index); + if (isTooltipGrouped) { + $$.showTooltip(selectedData, context); + (_a = $$.showGridFocus) == null ? void 0 : _a.call($$, selectedData); + if (!isSelectionEnabled || isSelectionGrouped) { + return; + } + } + !circle && main.selectAll(`.${$COMMON.EXPANDED}:not(.${$SHAPE.shape}-${index})`).classed( + $COMMON.EXPANDED, + false + ); + const shapeAtIndex = main.selectAll(`.${$SHAPE.shape}-${index}`).classed($COMMON.EXPANDED, true).style("cursor", isSelectable ? "pointer" : null).filter(function(d) { + return $$.isWithinShape(this, d); + }); + if (shapeAtIndex.empty() && !isTooltipGrouped) { + (_b = $$.hideGridFocus) == null ? void 0 : _b.call($$); + $$.hideTooltip(); + !isSelectionGrouped && $$.setExpand(index); + } + shapeAtIndex.call((selected) => { + var _a2, _b2; + const d = selected.data(); + if (isSelectionEnabled && (isSelectionGrouped || (isSelectable == null ? void 0 : isSelectable.bind($$.api)(d)))) { + context.style.cursor = "pointer"; + } + if (!isTooltipGrouped) { + $$.showTooltip(d, context); + (_a2 = $$.showGridFocus) == null ? void 0 : _a2.call($$, d); + (_b2 = $$.unexpandCircles) == null ? void 0 : _b2.call($$); + selected.each((d2) => $$.setExpand(index, d2.id)); + } + }); + }, + /** + * Select rect for multiple x values + * @param {d3Selection} context Event rect element + * @param {boolean} [triggerEvent=true] Whether trigger event or not + * @private + */ + selectRectForMultipleXs(context, triggerEvent = true) { + const $$ = this; + const { config, state } = $$; + const targetsToShow = $$.filterTargetsToShow($$.data.targets); + if (state.dragging || $$.hasArcType(targetsToShow)) { + return; + } + const mouse = getPointer(state.event, context); + const closest = $$.findClosestFromTargets(targetsToShow, mouse); + if (triggerEvent && state.mouseover && (!closest || closest.id !== state.mouseover.id)) { + config.data_onout.call($$.api, state.mouseover); + state.mouseover = void 0; + } + if (!closest) { + $$.unselectRect(); + return; + } + const sameXData = $$.isBubbleType(closest) || $$.isScatterType(closest) || !config.tooltip_grouped ? [closest] : $$.filterByX(targetsToShow, closest.x); + const selectedData = sameXData.map((d) => $$.addName(d)); + $$.showTooltip(selectedData, context); + $$.setExpand(closest.index, closest.id, true); + $$.showGridFocus(selectedData); + const dist = $$.dist(closest, mouse); + if ($$.isBarType(closest.id) || dist < $$.getPointSensitivity(closest)) { + $$.$el.svg.select(`.${$EVENT.eventRect}`).style("cursor", "pointer"); + if (triggerEvent && !state.mouseover) { + config.data_onover.call($$.api, closest); + state.mouseover = closest; + } + } + }, + /** + * Unselect EventRect. + * @private + */ + unselectRect() { + const $$ = this; + const { $el: { circle, tooltip } } = $$; + $$.$el.svg.select(`.${$EVENT.eventRect}`).style("cursor", null); + $$.hideGridFocus(); + if (tooltip) { + $$.hideTooltip(); + $$._handleLinkedCharts(false); + } + circle && !$$.isPointFocusOnly() && $$.unexpandCircles(); + $$.expandBarTypeShapes(false); + }, + /** + * Create eventRect for each data on the x-axis. + * Register touch and drag events. + * @param {object} eventRectEnter d3.select($EVENT.eventRects) object. + * @returns {object} d3.select($EVENT.eventRects) object. + * @private + */ + generateEventRectsForSingleX(eventRectEnter) { + const $$ = this; + const { config, state } = $$; + const { eventReceiver } = state; + const rect = eventRectEnter.style( + "cursor", + config.data_selection_enabled && config.data_selection_grouped ? "pointer" : null + ).on("click", function(event) { + state.event = event; + const { currentIdx, data } = eventReceiver; + const d = data[currentIdx === -1 ? $$.getDataIndexFromEvent(event) : currentIdx]; + $$.clickHandlerForSingleX.bind(this)(d, $$); + }).datum({ multipleX: false }); + if (state.inputType === "mouse") { + const getData = (event) => { + const index = event ? $$.getDataIndexFromEvent(event) : eventReceiver.currentIdx; + return index > -1 ? eventReceiver.data[index] : null; + }; + rect.on("mouseover", (event) => { + state.event = event; + $$.updateEventRect(); + Object.values($$.$el.axisTooltip).forEach((v) => v == null ? void 0 : v.style("display", null)); + }).on("mousemove", function(event) { + const d = getData(event); + state.event = event; + if (!d) { + return; + } + let { index } = d; + const stepType = config.line_step_type; + if (config.line_step_tooltipMatch && $$.hasType("step") && /^step\-(before|after)$/.test(stepType)) { + const scale = $$.scale.zoom || $$.scale.x; + const xs = $$.axis.xs[index]; + const inverted = scale.invert(getPointer(event, this)[0]); + if (stepType === "step-after" && inverted < xs) { + index -= 1; + } else if (stepType === "step-before" && inverted > xs) { + index += 1; + } + } + $$.showAxisGridFocus(); + const eventOnSameIdx = config.tooltip_grouped && index === eventReceiver.currentIdx; + if (state.dragging || state.flowing || $$.hasArcType() || eventOnSameIdx) { + config.tooltip_show && eventOnSameIdx && $$.setTooltipPosition(); + return; + } + if (index !== eventReceiver.currentIdx) { + $$.setOverOut(false, eventReceiver.currentIdx); + eventReceiver.currentIdx = index; + } + index === -1 ? $$.unselectRect() : $$.selectRectForSingle(this, index); + $$.setOverOut(index !== -1, index); + }).on("mouseout", (event) => { + state.event = event; + if (!config || $$.hasArcType() || eventReceiver.currentIdx === -1) { + return; + } + $$.hideAxisGridFocus(); + $$.unselectRect(); + $$.setOverOut(false, eventReceiver.currentIdx); + eventReceiver.currentIdx = -1; + }); + } + return rect; + }, + clickHandlerForSingleX(d, ctx) { + const $$ = ctx; + const { config, state, $el: { main } } = $$; + if (!d || $$.hasArcType() || state.cancelClick) { + state.cancelClick && (state.cancelClick = false); + return; + } + const { index } = d; + main.selectAll(`.${$SHAPE.shape}-${index}`).each(function(d2) { + var _a; + if (config.data_selection_grouped || $$.isWithinShape(this, d2)) { + (_a = $$.toggleShape) == null ? void 0 : _a.call($$, this, d2, index); + config.data_onclick.bind($$.api)(d2, this); + } + }); + }, + /** + * Create an eventRect, + * Register touch and drag events. + * @param {object} eventRectEnter d3.select($EVENT.eventRects) object. + * @private + */ + generateEventRectsForMultipleXs(eventRectEnter) { + const $$ = this; + const { state } = $$; + eventRectEnter.on("click", function(event) { + state.event = event; + $$.clickHandlerForMultipleXS.bind(this)($$); + }).datum({ multipleX: true }); + if (state.inputType === "mouse") { + eventRectEnter.on("mouseover mousemove", function(event) { + state.event = event; + $$.selectRectForMultipleXs(this); + }).on("mouseout", (event) => { + state.event = event; + if (!$$.config || $$.hasArcType()) { + return; + } + $$.unselectRect(); + }); + } + }, + clickHandlerForMultipleXS(ctx) { + const $$ = ctx; + const { config, state } = $$; + const targetsToShow = $$.filterTargetsToShow($$.data.targets); + if ($$.hasArcType(targetsToShow)) { + return; + } + const mouse = getPointer(state.event, this); + const closest = $$.findClosestFromTargets(targetsToShow, mouse); + const sensitivity = config.point_sensitivity === "radius" ? closest.r : config.point_sensitivity; + if (!closest) { + return; + } + if ($$.isBarType(closest.id) || $$.dist(closest, mouse) < sensitivity) { + $$.$el.main.selectAll(`.${$SHAPE.shapes}${$$.getTargetSelectorSuffix(closest.id)}`).selectAll(`.${$SHAPE.shape}-${closest.index}`).each(function() { + var _a; + if (config.data_selection_grouped || $$.isWithinShape(this, closest)) { + (_a = $$.toggleShape) == null ? void 0 : _a.call($$, this, closest, closest.index); + config.data_onclick.bind($$.api)(closest, this); + } + }); + } + } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-ease","commonjs2":"d3-ease","amd":"d3-ease","root":"d3"} +var external_commonjs_d3_ease_commonjs2_d3_ease_amd_d3_ease_root_d3_ = __webpack_require__(12); +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/flow.ts + + + + +/* harmony default export */ var interactions_flow = ({ + /** + * Generate flow + * @param {object} args option object + * @returns {Function} + * @private + */ + generateFlow(args) { + const $$ = this; + const { data, state, $el } = $$; + return function() { + const flowLength = args.flow.length; + state.flowing = true; + data.targets.forEach((d) => { + d.values.splice(0, flowLength); + }); + if ($$.updateXGrid) { + $$.updateXGrid(true); + } + const elements = {}; + [ + "axis.x", + "grid.x", + "gridLines.x", + "region.list", + "text", + "bar", + "line", + "area", + "circle" + ].forEach((v) => { + const name = v.split("."); + let node = $el[name[0]]; + if (node && name.length > 1) { + node = node[name[1]]; + } + if (node == null ? void 0 : node.size()) { + elements[v] = node; + } + }); + $$.hideGridFocus(); + $$.setFlowList(elements, args); + }; + }, + /** + * Set flow list + * @param {object} elements Target elements + * @param {object} args option object + * @private + */ + setFlowList(elements, args) { + const $$ = this; + const { flow, targets } = args; + const { + duration = args.duration, + index: flowIndex, + length: flowLength, + orgDataCount + } = flow; + const transform = $$.getFlowTransform(targets, orgDataCount, flowIndex, flowLength); + const wait = generateWait(); + let n; + wait.add(Object.keys(elements).map((v) => { + n = elements[v].transition().ease(external_commonjs_d3_ease_commonjs2_d3_ease_amd_d3_ease_root_d3_.easeLinear).duration(duration); + if (v === "axis.x") { + n = n.call((g) => { + $$.axis.x.setTransition(g).create(g); + }); + } else if (v === "region.list") { + n = n.filter($$.isRegionOnX).attr("transform", transform); + } else { + n = n.attr("transform", transform); + } + return n; + })); + n.call(wait, () => { + $$.cleanUpFlow(elements, args); + }); + }, + /** + * Clean up flow + * @param {object} elements Target elements + * @param {object} args option object + * @private + */ + cleanUpFlow(elements, args) { + const $$ = this; + const { config, state, $el: { svg } } = $$; + const isRotated = config.axis_rotated; + const { flow, shape, xv } = args; + const { cx, cy, xForText, yForText } = shape.pos; + const { + done = () => { + }, + length: flowLength + } = flow; + if (flowLength) { + ["circle", "text", "shape", "eventRect"].forEach((v) => { + const target = []; + for (let i = 0; i < flowLength; i++) { + target.push(`.${classes[v]}-${i}`); + } + svg.selectAll(`.${classes[`${v}s`]}`).selectAll(target).remove(); + }); + svg.select(`.${classes.xgrid}`).remove(); + } + Object.keys(elements).forEach((v) => { + const n = elements[v]; + if (v !== "axis.x") { + n.attr("transform", null); + } + if (v === "grid.x") { + n.attr(state.xgridAttr); + } else if (v === "gridLines.x") { + n.attr("x1", isRotated ? 0 : xv).attr("x2", isRotated ? state.width : xv); + n.select("text").attr("x", isRotated ? state.width : 0).attr("y", xv); + } else if (/^(area|bar|line)$/.test(v)) { + n.attr("d", shape.type[v]); + } else if (v === "text") { + n.attr("x", xForText).attr("y", yForText).style("fill-opacity", $$.opacityForText.bind($$)); + } else if (v === "circle") { + if ($$.isCirclePoint()) { + n.attr("cx", cx).attr("cy", cy); + } else { + const xFunc = (d) => cx(d) - config.point_r; + const yFunc = (d) => cy(d) - config.point_r; + n.attr("x", xFunc).attr("y", yFunc); + } + } else if (v === "region.list") { + n.select("rect").filter($$.isRegionOnX).attr("x", $$.regionX.bind($$)).attr("width", $$.regionWidth.bind($$)); + } + }); + config.interaction_enabled && $$.redrawEventRect(); + done.call($$.api); + state.flowing = false; + }, + /** + * Get flow transform value + * @param {object} targets target + * @param {number} orgDataCount original data count + * @param {number} flowIndex flow index + * @param {number} flowLength flow length + * @returns {string} + * @private + */ + getFlowTransform(targets, orgDataCount, flowIndex, flowLength) { + const $$ = this; + const { data, scale: { x } } = $$; + const dataValues = data.targets[0].values; + let flowStart = $$.getValueOnIndex(dataValues, flowIndex); + let flowEnd = $$.getValueOnIndex(dataValues, flowIndex + flowLength); + let translateX; + const orgDomain = x.domain(); + const domain = $$.updateXDomain(targets, true, true); + if (!orgDataCount) { + if (dataValues.length !== 1) { + translateX = x(orgDomain[0]) - x(domain[0]); + } else { + if ($$.axis.isTimeSeries()) { + flowStart = $$.getValueOnIndex(dataValues, 0); + flowEnd = $$.getValueOnIndex(dataValues, dataValues.length - 1); + translateX = x(flowStart.x) - x(flowEnd.x); + } else { + translateX = diffDomain(domain) / 2; + } + } + } else if (orgDataCount === 1 || (flowStart == null ? void 0 : flowStart.x) === (flowEnd == null ? void 0 : flowEnd.x)) { + translateX = x(orgDomain[0]) - x(domain[0]); + } else { + translateX = $$.axis.isTimeSeries() ? x(orgDomain[0]) - x(domain[0]) : x((flowStart == null ? void 0 : flowStart.x) || 0) - x(flowEnd.x); + } + const scaleX = diffDomain(orgDomain) / diffDomain(domain); + return `translate(${translateX},0) scale(${scaleX},1)`; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/clip.ts +/* harmony default export */ var clip = ({ + initClip() { + const $$ = this; + const { clip, datetimeId } = $$.state; + clip.id = `${datetimeId}-clip`; + clip.idXAxis = `${clip.id}-xaxis`; + clip.idYAxis = `${clip.id}-yaxis`; + clip.idGrid = `${clip.id}-grid`; + clip.path = $$.getClipPath(clip.id); + clip.pathXAxis = $$.getClipPath(clip.idXAxis); + clip.pathYAxis = $$.getClipPath(clip.idYAxis); + clip.pathGrid = $$.getClipPath(clip.idGrid); + }, + getClipPath(id) { + const $$ = this; + const { config } = $$; + if (!config.clipPath && /-clip$/.test(id) || !config.axis_x_clipPath && /-clip-xaxis$/.test(id) || !config.axis_y_clipPath && /-clip-yaxis$/.test(id)) { + return null; + } + return `url(#${id})`; + }, + appendClip(parent, id) { + id && parent.append("clipPath").attr("id", id).append("rect"); + }, + /** + * Set x Axis clipPath dimension + * @param {d3Selecton} node clipPath <rect> selection + * @private + */ + setXAxisClipPath(node) { + const $$ = this; + const { config, state: { margin, width, height } } = $$; + const isRotated = config.axis_rotated; + const left = Math.max(30, margin.left) - (isRotated ? 0 : 20); + const h = (isRotated ? margin.top + height + 10 : margin.bottom) + 20; + const x = isRotated ? -(1 + left) : -(left - 1); + const y = -15; + const w = isRotated ? margin.left + 20 : width + 10 + left; + node.attr("x", x).attr("y", y).attr("width", w).attr("height", h); + }, + /** + * Set y Axis clipPath dimension + * @param {d3Selection} node clipPath <rect> selection + * @private + */ + setYAxisClipPath(node) { + const $$ = this; + const { config, state: { margin, width, height } } = $$; + const isRotated = config.axis_rotated; + const left = Math.max(30, margin.left) - (isRotated ? 20 : 0); + const isInner = config.axis_y_inner; + const x = isInner && !isRotated ? config.axis_y_label.text ? -20 : -1 : isRotated ? -(1 + left) : -(left - 1); + const y = -(isRotated ? 20 : margin.top); + const w = (isRotated ? width + 15 + left : margin.left + 20) + (isInner ? 20 : 0); + const h = (isRotated ? margin.bottom + 10 : margin.top + height) + 10; + node.attr("x", x).attr("y", y).attr("width", w).attr("height", h); + }, + updateXAxisTickClip() { + const $$ = this; + const { config, state: { clip, xAxisHeight }, $el: { defs } } = $$; + const newXAxisHeight = $$.getHorizontalAxisHeight("x"); + if (defs && !clip.idXAxisTickTexts) { + const clipId = `${clip.id}-xaxisticktexts`; + $$.appendClip(defs, clipId); + clip.pathXAxisTickTexts = $$.getClipPath(clip.idXAxisTickTexts); + clip.idXAxisTickTexts = clipId; + } + if (!config.axis_x_tick_multiline && $$.getAxisTickRotate("x") && newXAxisHeight !== xAxisHeight) { + $$.setXAxisTickClipWidth(); + $$.setXAxisTickTextClipPathWidth(); + } + $$.state.xAxisHeight = newXAxisHeight; + }, + setXAxisTickClipWidth() { + const $$ = this; + const { config, state: { current: { maxTickSize } } } = $$; + const xAxisTickRotate = $$.getAxisTickRotate("x"); + if (!config.axis_x_tick_multiline && xAxisTickRotate) { + const sinRotation = Math.sin(Math.PI / 180 * Math.abs(xAxisTickRotate)); + maxTickSize.x.clipPath = ($$.getHorizontalAxisHeight("x") - 20) / sinRotation; + } else { + maxTickSize.x.clipPath = null; + } + }, + setXAxisTickTextClipPathWidth() { + const $$ = this; + const { state: { clip, current }, $el: { svg } } = $$; + if (svg) { + svg.select(`#${clip.idXAxisTickTexts} rect`).attr("width", current.maxTickSize.x.clipPath).attr("height", 30); + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/grid.ts + + + +const getGridTextAnchor = (d) => isValue(d.position) || "end"; +const getGridTextDx = (d) => d.position === "start" ? 4 : d.position === "middle" ? 0 : -4; +function getGridTextX(isX, width, height) { + return (d) => { + let x = isX ? 0 : width; + if (d.position === "start") { + x = isX ? -height : 0; + } else if (d.position === "middle") { + x = (isX ? -height : width) / 2; + } + return x; + }; +} +function smoothLines(el, type) { + if (type === "grid") { + el.each(function() { + const g = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + ["x1", "x2", "y1", "y2"].forEach((v) => g.attr(v, Math.ceil(+g.attr(v)))); + }); + } +} +/* harmony default export */ var internals_grid = ({ + hasGrid() { + const { config } = this; + return ["x", "y"].some((v) => config[`grid_${v}_show`] || config[`grid_${v}_lines`].length); + }, + initGrid() { + const $$ = this; + $$.hasGrid() && $$.initGridLines(); + $$.initFocusGrid(); + }, + initGridLines() { + const $$ = this; + const { config, state: { clip }, $el } = $$; + if (config.grid_x_lines.length || config.grid_y_lines.length) { + $el.gridLines.main = $el.main.insert( + "g", + `.${$COMMON.chart}${config.grid_lines_front ? " + *" : ""}` + ).attr("clip-path", clip.pathGrid).attr("class", `${$GRID.grid} ${$GRID.gridLines}`); + $el.gridLines.main.append("g").attr("class", $GRID.xgridLines); + $el.gridLines.main.append("g").attr("class", $GRID.ygridLines); + $el.gridLines.x = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.selectAll)([]); + } + }, + updateXGrid(withoutUpdate) { + const $$ = this; + const { config, scale, state, $el: { main, grid } } = $$; + const isRotated = config.axis_rotated; + const xgridData = $$.generateGridData(config.grid_x_type, scale.x); + const tickOffset = $$.axis.isCategorized() ? $$.axis.x.tickOffset() : 0; + const pos = (d) => (scale.zoom || scale.x)(d) + tickOffset * (isRotated ? -1 : 1); + state.xgridAttr = isRotated ? { + x1: 0, + x2: state.width, + y1: pos, + y2: pos + } : { + x1: pos, + x2: pos, + y1: 0, + y2: state.height + }; + grid.x = main.select(`.${$GRID.xgrids}`).selectAll(`.${$GRID.xgrid}`).data(xgridData); + grid.x.exit().remove(); + grid.x = grid.x.enter().append("line").attr("class", $GRID.xgrid).merge(grid.x); + if (!withoutUpdate) { + grid.x.each(function() { + const grid2 = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + Object.keys(state.xgridAttr).forEach((id) => { + grid2.attr(id, state.xgridAttr[id]).style("opacity", () => grid2.attr(isRotated ? "y1" : "x1") === (isRotated ? state.height : 0) ? "0" : null); + }); + }); + } + }, + updateYGrid() { + const $$ = this; + const { axis, config, scale, state, $el: { grid, main } } = $$; + const isRotated = config.axis_rotated; + const pos = (d) => Math.ceil(scale.y(d)); + const gridValues = axis.y.getGeneratedTicks(config.grid_y_ticks) || $$.scale.y.ticks(config.grid_y_ticks); + grid.y = main.select(`.${$GRID.ygrids}`).selectAll(`.${$GRID.ygrid}`).data(gridValues); + grid.y.exit().remove(); + grid.y = grid.y.enter().append("line").attr("class", $GRID.ygrid).merge(grid.y); + grid.y.attr("x1", isRotated ? pos : 0).attr("x2", isRotated ? pos : state.width).attr("y1", isRotated ? 0 : pos).attr("y2", isRotated ? state.height : pos); + smoothLines(grid.y, "grid"); + }, + updateGrid() { + const $$ = this; + const { $el: { grid, gridLines } } = $$; + !gridLines.main && $$.initGridLines(); + grid.main.style("visibility", $$.hasArcType() ? "hidden" : null); + $$.hideGridFocus(); + $$.updateGridLines("x"); + $$.updateGridLines("y"); + }, + /** + * Update Grid lines + * @param {string} type x | y + * @private + */ + updateGridLines(type) { + const $$ = this; + const { config, $el: { gridLines, main }, $T } = $$; + const isRotated = config.axis_rotated; + const isX = type === "x"; + config[`grid_${type}_show`] && $$[`update${type.toUpperCase()}Grid`](); + let lines = main.select(`.${$GRID[`${type}gridLines`]}`).selectAll(`.${$GRID[`${type}gridLine`]}`).data(config[`grid_${type}_lines`]); + $T(lines.exit()).style("opacity", "0").remove(); + const gridLine = lines.enter().append("g"); + gridLine.append("line").style("opacity", "0"); + lines = gridLine.merge(lines); + lines.each(function(d) { + const g = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + if (g.select("text").empty() && d.text) { + g.append("text").style("opacity", "0"); + } + }); + $T(lines.attr("class", (d) => `${$GRID[`${type}gridLine`]} ${d.class || ""}`.trim()).select("text").attr("text-anchor", getGridTextAnchor).attr( + "transform", + () => isX ? isRotated ? null : "rotate(-90)" : isRotated ? "rotate(-90)" : null + ).attr("dx", getGridTextDx).attr("dy", -5)).text(function(d) { + var _a; + return (_a = d.text) != null ? _a : this.remove(); + }); + gridLines[type] = lines; + }, + redrawGrid(withTransition) { + const $$ = this; + const { + config: { axis_rotated: isRotated }, + state: { width, height }, + $el: { gridLines }, + $T + } = $$; + const xv = $$.xv.bind($$); + const yv = $$.yv.bind($$); + let xLines = gridLines.x.select("line"); + let xTexts = gridLines.x.select("text"); + let yLines = gridLines.y.select("line"); + let yTexts = gridLines.y.select("text"); + xLines = $T(xLines, withTransition).attr("x1", isRotated ? 0 : xv).attr("x2", isRotated ? width : xv).attr("y1", isRotated ? xv : 0).attr("y2", isRotated ? xv : height); + xTexts = $T(xTexts, withTransition).attr("x", getGridTextX(!isRotated, width, height)).attr("y", xv); + yLines = $T(yLines, withTransition).attr("x1", isRotated ? yv : 0).attr("x2", isRotated ? yv : width).attr("y1", isRotated ? 0 : yv).attr("y2", isRotated ? height : yv); + yTexts = $T(yTexts, withTransition).attr("x", getGridTextX(isRotated, width, height)).attr("y", yv); + return [ + xLines.style("opacity", null), + xTexts.style("opacity", null), + yLines.style("opacity", null), + yTexts.style("opacity", null) + ]; + }, + initFocusGrid() { + const $$ = this; + const { config, state: { clip }, $el } = $$; + const isFront = config.grid_front; + const className = `.${isFront && $el.gridLines.main ? $GRID.gridLines : $COMMON.chart}${isFront ? " + *" : ""}`; + const grid = $el.main.insert("g", className).attr("clip-path", clip.pathGrid).attr("class", $GRID.grid); + $el.grid.main = grid; + config.grid_x_show && grid.append("g").attr("class", $GRID.xgrids); + config.grid_y_show && grid.append("g").attr("class", $GRID.ygrids); + if (config.axis_tooltip) { + const axis = grid.append("g").attr("class", "bb-axis-tooltip"); + axis.append("line").attr("class", "bb-axis-tooltip-x"); + axis.append("line").attr("class", "bb-axis-tooltip-y"); + } + if (config.interaction_enabled && config.grid_focus_show && !config.axis_tooltip) { + grid.append("g").attr("class", $FOCUS.xgridFocus).append("line").attr("class", $FOCUS.xgridFocus); + if (config.grid_focus_y && !config.tooltip_grouped) { + grid.append("g").attr("class", $FOCUS.ygridFocus).append("line").attr("class", $FOCUS.ygridFocus); + } + } + }, + showAxisGridFocus() { + var _a, _b; + const $$ = this; + const { config, format, state: { event, width, height } } = $$; + const isRotated = config.axis_rotated; + const [x, y] = getPointer(event, (_a = $$.$el.eventRect) == null ? void 0 : _a.node()); + const pos = { x, y }; + for (const [axis, node] of Object.entries($$.$el.axisTooltip)) { + const attr = axis === "x" && !isRotated || axis !== "x" && isRotated ? "x" : "y"; + const value = pos[attr]; + let scaleText = (_b = $$.scale[axis]) == null ? void 0 : _b.invert(value); + if (scaleText) { + scaleText = axis === "x" && $$.axis.isTimeSeries() ? format.xAxisTick(scaleText) : scaleText == null ? void 0 : scaleText.toFixed(2); + node == null ? void 0 : node.attr(attr, value).text(scaleText); + } + } + $$.$el.main.selectAll( + `line.bb-axis-tooltip-x, line.bb-axis-tooltip-y` + ).style("visibility", null).each(function(d, i) { + const line = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + if (i === 0) { + line.attr("x1", x).attr("x2", x).attr("y1", i ? 0 : height).attr("y2", i ? height : 0); + } else { + line.attr("x1", i ? 0 : width).attr("x2", i ? width : 0).attr("y1", y).attr("y2", y); + } + }); + }, + hideAxisGridFocus() { + const $$ = this; + $$.$el.main.selectAll( + `line.bb-axis-tooltip-x, line.bb-axis-tooltip-y` + ).style("visibility", "hidden"); + Object.values($$.$el.axisTooltip).forEach((v) => v == null ? void 0 : v.style("display", "none")); + }, + /** + * Show grid focus line + * @param {Array} data Selected data + * @private + */ + showGridFocus(data) { + var _a; + const $$ = this; + const { config, state: { width, height } } = $$; + const isRotated = config.axis_rotated; + const focusEl = $$.$el.main.selectAll( + `line.${$FOCUS.xgridFocus}, line.${$FOCUS.ygridFocus}` + ); + const dataToShow = (data || [focusEl.datum()]).filter( + (d) => d && isValue($$.getBaseValue(d)) + ); + if (!config.tooltip_show || dataToShow.length === 0 || !config.axis_x_forceAsSingle && $$.hasType("bubble") || $$.hasArcType()) { + return; + } + const isEdge = config.grid_focus_edge && !config.tooltip_grouped; + const xx = $$.xx.bind($$); + focusEl.style("visibility", null).data(dataToShow.concat(dataToShow)).each(function(d) { + const el = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + const pos = { + x: xx(d), + y: $$.getYScaleById(d.id)(d.value) + }; + let xy; + if (el.classed($FOCUS.xgridFocus)) { + xy = isRotated ? [ + null, + // x1 + pos.x, + // y1 + isEdge ? pos.y : width, + // x2 + pos.x + // y2 + ] : [ + pos.x, + isEdge ? pos.y : null, + pos.x, + height + ]; + } else { + const isY2 = $$.axis.getId(d.id) === "y2"; + xy = isRotated ? [ + pos.y, + // x1 + isEdge && !isY2 ? pos.x : null, + // y1 + pos.y, + // x2 + isEdge && isY2 ? pos.x : height + // y2 + ] : [ + isEdge && isY2 ? pos.x : null, + pos.y, + isEdge && !isY2 ? pos.x : width, + pos.y + ]; + } + ["x1", "y1", "x2", "y2"].forEach((v, i) => el.attr(v, xy[i])); + }); + smoothLines(focusEl, "grid"); + (_a = $$.showCircleFocus) == null ? void 0 : _a.call($$, data); + }, + hideGridFocus() { + var _a; + const $$ = this; + const { state: { inputType, resizing }, $el: { main } } = $$; + if (inputType === "mouse" || !resizing) { + main.selectAll(`line.${$FOCUS.xgridFocus}, line.${$FOCUS.ygridFocus}`).style("visibility", "hidden"); + (_a = $$.hideCircleFocus) == null ? void 0 : _a.call($$); + } + }, + updateGridFocus() { + var _a; + const $$ = this; + const { state: { inputType, width, height, resizing }, $el: { grid } } = $$; + const xgridFocus = grid.main.select(`line.${$FOCUS.xgridFocus}`); + if (inputType === "touch") { + if (xgridFocus.empty()) { + resizing && ((_a = $$.showCircleFocus) == null ? void 0 : _a.call($$)); + } else { + $$.showGridFocus(); + } + } else { + const isRotated = $$.config.axis_rotated; + xgridFocus.attr("x1", isRotated ? 0 : -10).attr("x2", isRotated ? width : -10).attr("y1", isRotated ? -10 : 0).attr("y2", isRotated ? -10 : height); + } + return true; + }, + generateGridData(type, scale) { + const $$ = this; + const tickNum = $$.$el.main.select(`.${$AXIS.axisX}`).selectAll(".tick").size(); + let gridData = []; + if (type === "year") { + const xDomain = $$.getXDomain(); + const [firstYear, lastYear] = xDomain.map((v) => v.getFullYear()); + for (let i = firstYear; i <= lastYear; i++) { + gridData.push(/* @__PURE__ */ new Date(`${i}-01-01 00:00:00`)); + } + } else { + gridData = scale.ticks(10); + if (gridData.length > tickNum) { + gridData = gridData.filter((d) => String(d).indexOf(".") < 0); + } + } + return gridData; + }, + getGridFilterToRemove(params) { + return params ? (line) => { + let found = false; + (isArray(params) ? params.concat() : [params]).forEach((param) => { + if ("value" in param && line.value === param.value || "class" in param && line.class === param.class) { + found = true; + } + }); + return found; + } : () => true; + }, + removeGridLines(params, forX) { + const $$ = this; + const { config, $T } = $$; + const toRemove = $$.getGridFilterToRemove(params); + const toShow = (line) => !toRemove(line); + const classLines = forX ? $GRID.xgridLines : $GRID.ygridLines; + const classLine = forX ? $GRID.xgridLine : $GRID.ygridLine; + $T($$.$el.main.select(`.${classLines}`).selectAll(`.${classLine}`).filter(toRemove)).style("opacity", "0").remove(); + const gridLines = `grid_${forX ? "x" : "y"}_lines`; + config[gridLines] = config[gridLines].filter(toShow); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/region.ts + + + +/* harmony default export */ var region = ({ + initRegion() { + const $$ = this; + const { $el } = $$; + $el.region.main = $el.main.insert("g", ":first-child").attr("clip-path", $$.state.clip.path).attr("class", $REGION.regions); + }, + updateRegion() { + const $$ = this; + const { config, $el: { region }, $T } = $$; + if (!region.main) { + $$.initRegion(); + } + region.main.style("visibility", $$.hasArcType() ? "hidden" : null); + const regions = region.main.selectAll(`.${$REGION.region}`).data(config.regions); + $T(regions.exit()).style("opacity", "0").remove(); + const regionsEnter = regions.enter().append("g"); + regionsEnter.append("rect").style("fill-opacity", "0"); + region.list = regionsEnter.merge(regions).attr("class", $$.classRegion.bind($$)); + region.list.each(function(d) { + var _a; + const g = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + if (g.select("text").empty() && ((_a = d.label) == null ? void 0 : _a.text)) { + (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).append("text").style("opacity", "0"); + } + }); + }, + redrawRegion(withTransition) { + const $$ = this; + const { $el: { region }, $T } = $$; + let regions = region.list.select("rect"); + let label = region.list.selectAll("text"); + regions = $T(regions, withTransition).attr("x", $$.regionX.bind($$)).attr("y", $$.regionY.bind($$)).attr("width", $$.regionWidth.bind($$)).attr("height", $$.regionHeight.bind($$)); + label = $T(label, withTransition).attr("transform", (d) => { + var _a; + const { x = 0, y = 0, rotated = false } = (_a = d.label) != null ? _a : {}; + return `translate(${$$.regionX.bind($$)(d) + x}, ${$$.regionY.bind($$)(d) + y})${rotated ? ` rotate(-90)` : ``}`; + }).attr("text-anchor", (d) => { + var _a; + return ((_a = d.label) == null ? void 0 : _a.rotated) ? "end" : null; + }).attr("dy", "1em").style("fill", (d) => { + var _a, _b; + return (_b = (_a = d.label) == null ? void 0 : _a.color) != null ? _b : null; + }).text((d) => { + var _a; + return (_a = d.label) == null ? void 0 : _a.text; + }); + return [ + regions.style("fill-opacity", (d) => isValue(d.opacity) ? d.opacity : null).on("end", function() { + (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this.parentNode).selectAll("rect:not([x])").remove(); + }), + label.style("opacity", null) + ]; + }, + getRegionXY(type, d) { + const $$ = this; + const { config, scale } = $$; + const isRotated = config.axis_rotated; + const isX = type === "x"; + let key = "start"; + let currScale; + let pos = 0; + if (d.axis === "y" || d.axis === "y2") { + if (!isX) { + key = "end"; + } + if ((isX ? isRotated : !isRotated) && key in d) { + currScale = scale[d.axis]; + pos = currScale(d[key]); + } + } else if ((isX ? !isRotated : isRotated) && key in d) { + currScale = scale.zoom || scale.x; + pos = currScale($$.axis.isTimeSeries() ? parseDate.call($$, d[key]) : d[key]); + } + return pos; + }, + regionX(d) { + return this.getRegionXY("x", d); + }, + regionY(d) { + return this.getRegionXY("y", d); + }, + getRegionSize(type, d) { + const $$ = this; + const { config, scale, state } = $$; + const isRotated = config.axis_rotated; + const isWidth = type === "width"; + const start = $$[isWidth ? "regionX" : "regionY"](d); + let currScale; + let key = "end"; + let end = state[type]; + if (d.axis === "y" || d.axis === "y2") { + if (!isWidth) { + key = "start"; + } + if ((isWidth ? isRotated : !isRotated) && key in d) { + currScale = scale[d.axis]; + end = currScale(d[key]); + } + } else if ((isWidth ? !isRotated : isRotated) && key in d) { + currScale = scale.zoom || scale.x; + end = currScale($$.axis.isTimeSeries() ? parseDate.call($$, d[key]) : d[key]); + } + return end < start ? 0 : end - start; + }, + regionWidth(d) { + return this.getRegionSize("width", d); + }, + regionHeight(d) { + return this.getRegionSize("height", d); + }, + isRegionOnX(d) { + return !d.axis || d.axis === "x"; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/size.axis.ts + +/* harmony default export */ var size_axis = ({ + /** + * Get Axis size according its position + * @param {string} id Axis id value - x, y or y2 + * @returns {number} size Axis size value + * @private + */ + getAxisSize(id) { + const $$ = this; + const isRotated = $$.config.axis_rotated; + return isRotated && id === "x" || !isRotated && /y2?/.test(id) ? $$.getAxisWidthByAxisId(id, true) : $$.getHorizontalAxisHeight(id); + }, + getAxisWidthByAxisId(id, withoutRecompute) { + var _a, _b; + const $$ = this; + if ($$.axis) { + const position = (_a = $$.axis) == null ? void 0 : _a.getLabelPositionById(id); + const { width } = $$.axis.getMaxTickSize(id, withoutRecompute); + const gap = width === 0 ? 0.5 : 0; + return width + (((_b = $$.config.padding) == null ? void 0 : _b.mode) === "fit" ? position.isInner ? 10 + gap : 10 : position.isInner ? 20 + gap : 40); + } else { + return 40; + } + }, + getHorizontalAxisHeight(id) { + var _a, _b; + const $$ = this; + const { config, state } = $$; + const { rotatedPadding, isLegendRight, isLegendInset } = state; + const isRotated = config.axis_rotated; + const isFitPadding = ((_a = config.padding) == null ? void 0 : _a.mode) === "fit"; + const isInner = config[`axis_${id}_inner`]; + const hasLabelText = config[`axis_${id}_label`].text; + const defaultHeight = 13; + let h = ((_b = config.padding) == null ? void 0 : _b.mode) === "fit" ? isInner && !hasLabelText ? id === "y" ? 1 : 0 : 20 : 30; + if (id === "x" && !config.axis_x_show) { + return 8; + } + if (id === "x" && isNumber(config.axis_x_height)) { + return config.axis_x_height; + } + if (id === "y" && !config.axis_y_show) { + return config.legend_show && !isLegendRight && !isLegendInset ? 10 : 1; + } + if (id === "y2" && !config.axis_y2_show) { + return isFitPadding ? 0 : rotatedPadding.top; + } + const maxtickSize = $$.axis.getMaxTickSize(id); + const isXAxisTickRotated = Math.abs(config.axis_x_tick_rotate) > 0 && (!config.axis_x_tick_autorotate || $$.needToRotateXAxisTickTexts()); + if ((config.axis_x_tick_multiline || isXAxisTickRotated) && maxtickSize.height > defaultHeight) { + h += maxtickSize.height - defaultHeight; + } + return h + ($$.axis.getLabelPositionById(id).isInner ? 0 : 10) + (id === "y2" && !isRotated ? -10 : 0); + }, + getEventRectWidth() { + const $$ = this; + const { config, axis } = $$; + const isInverted = config.axis_x_inverted; + const tickInterval = axis.x.tickInterval(); + return Math.max(0, isInverted ? Math.abs(tickInterval) : tickInterval); + }, + /** + * Get axis tick test rotate value + * @param {string} id Axis id + * @returns {number} rotate value + * @private + */ + getAxisTickRotate(id) { + const $$ = this; + const { axis, config, state, $el } = $$; + let rotate = config[`axis_${id}_tick_rotate`]; + if (id === "x") { + const allowedXAxisTypes = axis.isCategorized() || axis.isTimeSeries(); + if (config.axis_x_tick_fit && allowedXAxisTypes) { + const xTickCount = config.axis_x_tick_count; + const currentXTicksLength = state.current.maxTickSize.x.ticks.length; + let tickCount = 0; + if (xTickCount) { + tickCount = xTickCount > currentXTicksLength ? currentXTicksLength : xTickCount; + } else if (currentXTicksLength) { + tickCount = currentXTicksLength; + } + if (tickCount !== state.axis.x.tickCount) { + const { targets } = $$.data; + state.axis.x.padding = $$.getXDomainPadding([ + $$.getXDomainMinMax(targets, "min"), + $$.getXDomainMinMax(targets, "max") + ], tickCount); + } + state.axis.x.tickCount = tickCount; + } + if ($el.svg && config.axis_x_tick_autorotate && config.axis_x_tick_fit && !config.axis_x_tick_multiline && !config.axis_x_tick_culling && allowedXAxisTypes) { + rotate = $$.needToRotateXAxisTickTexts() ? config.axis_x_tick_rotate : 0; + } + } + return rotate; + }, + /** + * Check weather axis tick text needs to be rotated + * @returns {boolean} + * @private + */ + needToRotateXAxisTickTexts() { + const $$ = this; + const { state: { axis, current, isLegendRight, legendItemWidth } } = $$; + const legendWidth = isLegendRight && legendItemWidth; + const xAxisLength = current.width - legendWidth - $$.getCurrentPaddingByDirection("left") - $$.getCurrentPaddingByDirection("right"); + const tickCountWithPadding = axis.x.tickCount + axis.x.padding.left + axis.x.padding.right; + const { width } = $$.axis.getMaxTickSize("x"); + const tickLength = tickCountWithPadding ? xAxisLength / tickCountWithPadding : 0; + return width > tickLength; + } +}); + +;// CONCATENATED MODULE: ./src/config/Options/axis/x.ts +/* harmony default export */ var axis_x = ({ + /** + * Set clip-path attribute for x axis element + * @name axis․x․clipPath + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo]() + * @example + * // don't set 'clip-path' attribute + * clipPath: false + */ + axis_x_clipPath: true, + /** + * Show or hide x axis. + * @name axis․x․show + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * show: false + * } + * } + */ + axis_x_show: true, + /** + * Force the x axis to interact as single rather than multiple x axes. + * - **NOTE:** The tooltip event will be triggered nearing each data points(for multiple xs) rather than x axis based(as single x does) in below condition: + * - for `bubble` & `scatter` type + * - when `data.xs` is set + * - when `tooltip.grouped=false` is set + * - `tooltip.grouped` options will take precedence over `axis.forceSingleX` option. + * @name axis․x․forceAsSingle + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.ForceAsSingle) + * @example + * axis: { + * x: { + * // will work as single x axis + * forceAsSingle: true + * } + * } + */ + axis_x_forceAsSingle: false, + /** + * Set type of x axis.<br><br> + * **Available Values:** + * - category + * - indexed + * - log + * - timeseries + * + * **NOTE:**<br> + * - **log** type: + * - the x values specified by [`data.x`](#.data%25E2%2580%25A4x)(or by any equivalent option), must be exclusively-positive. + * - x axis min value should be >= 0. + * - for 'category' type, `data.xs` option isn't supported. + * @name axis․x․type + * @memberof Options + * @type {string} + * @default indexed + * @see [Demo: indexed](https://naver.github.io/billboard.js/demo/#Chart.AreaChart) + * @see [Demo: timeseries](https://naver.github.io/billboard.js/demo/#Chart.TimeseriesChart) + * @see [Demo: category](https://naver.github.io/billboard.js/demo/#Data.CategoryData) + * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales) + * @example + * axis: { + * x: { + * type: "timeseries" + * } + * } + */ + axis_x_type: "indexed", + /** + * Set how to treat the timezone of x values.<br> + * If true, treat x value as localtime. If false, convert to UTC internally. + * @name axis․x․localtime + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * localtime: false + * } + * } + */ + axis_x_localtime: true, + /** + * Set category names on category axis. + * This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required. + * @name axis․x․categories + * @memberof Options + * @type {Array} + * @default [] + * @example + * axis: { + * x: { + * categories: ["Category 1", "Category 2", ...] + * } + * } + */ + axis_x_categories: [], + /** + * centerize ticks on category axis. + * @name axis․x․tick․centered + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * x: { + * tick: { + * centered: true + * } + * } + * } + */ + axis_x_tick_centered: false, + /** + * A function to format tick value. Format string is also available for timeseries data. + * @name axis․x․tick․format + * @memberof Options + * @type {Function|string} + * @default undefined + * @see [D3's time specifier](https://d3js.org/d3-time-format#locale_format) + * @example + * axis: { + * x: { + * tick: { + * // for timeseries, a 'datetime' object is given as parameter + * format: function(x) { + * return x.getFullYear(); + * } + * + * // for category, index(Number) and categoryName(String) are given as parameter + * format: function(index, categoryName) { + * return categoryName.substr(0, 10); + * }, + * + * // for timeseries format specifier + * format: "%Y-%m-%d %H:%M:%S" + * } + * } + * } + */ + axis_x_tick_format: void 0, + /** + * Setting for culling ticks. + * - `true`: the ticks will be culled, then only limited tick text will be shown.<br> + * This option does not hide the tick lines by default, if want to hide tick lines, set `axis.x.tick.culling.lines=false`. + * - `false`: all of ticks will be shown.<br><br> + * The number of ticks to be shown can be chaned by `axis.x.tick.culling.max`. + * @name axis․x․tick․culling + * @memberof Options + * @type {boolean} + * @default + * `true` for indexed axis and timeseries axis, `false` for category axis + * @example + * axis: { + * x: { + * tick: { + * culling: false + * } + * } + * } + */ + axis_x_tick_culling: {}, + /** + * The number of tick texts will be adjusted to less than this value. + * @name axis․x․tick․culling․max + * @memberof Options + * @type {number} + * @default 10 + * @example + * axis: { + * x: { + * tick: { + * culling: { + * max: 5 + * } + * } + * } + * } + */ + axis_x_tick_culling_max: 10, + /** + * Control visibility of tick lines within culling option, along with tick text. + * @name axis․x․tick․culling․lines + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * tick: { + * culling: { + * lines: false, + * } + * } + * } + * } + */ + axis_x_tick_culling_lines: true, + /** + * The number of x axis ticks to show.<br><br> + * This option hides tick lines together with tick text. If this option is used on timeseries axis, the ticks position will be determined precisely and not nicely positioned (e.g. it will have rough second value). + * @name axis․x․tick․count + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * x: { + * tick: { + * count: 5 + * } + * } + * } + */ + axis_x_tick_count: void 0, + /** + * Show or hide x axis tick line. + * @name axis․x․tick․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * x: { + * tick: { + * show: false + * } + * } + * } + */ + axis_x_tick_show: true, + /** + * Show or hide x axis tick text. + * @name axis․x․tick․text․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * x: { + * tick: { + * text: { + * show: false + * } + * } + * } + * } + */ + axis_x_tick_text_show: true, + /** + * Set the first/last axis tick text to be positioned inside of the chart on non-rotated axis. + * @name axis․x․tick․text․inner + * @memberof Options + * @type {boolean|object} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickInner) + * @example + * axis: { + * x: { + * tick: { + * text: { + * inner: true, + * + * // or specify each position of the first and last tick text + * inner: { + * first: true, + * last: true + * } + * } + * } + * } + * } + */ + axis_x_tick_text_inner: false, + /** + * Set the x Axis tick text's position relatively its original position + * @name axis․x․tick․text․position + * @memberof Options + * @type {object} + * @default {x: 0, y:0} + * @example + * axis: { + * x: { + * tick: { + * text: { + * position: { + * x: 10, + * y: 10 + * } + * } + * } + * } + * } + */ + axis_x_tick_text_position: { x: 0, y: 0 }, + /** + * Fit x axis ticks. + * - **true**: ticks will be shown according to x value of the data points. + * - **false**: ticks will be shown as to have same intervals. + * @name axis․x․tick․fit + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickFitting) + * @see [Demo: for timeseries zoom](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickTimeseries) + * @example + * axis: { + * x: { + * tick: { + * fit: false + * } + * } + * } + */ + axis_x_tick_fit: true, + /** + * Set the x values of ticks manually.<br><br> + * If this option is provided, the position of the ticks will be determined based on those values.<br> + * This option works with `timeseries` data and the x values will be parsed accoding to the type of the value and data.xFormat option. + * @name axis․x․tick․values + * @memberof Options + * @type {Array|Function} + * @default null + * @example + * axis: { + * x: { + * tick: { + * values: [1, 2, 4, 8, 16, 32, ...], + * + * // an Array value should be returned + * values: function() { + * return [ ... ]; + * } + * } + * } + * } + */ + axis_x_tick_values: null, + /** + * Rotate x axis tick text if there is not enough space for 'category' and 'timeseries' type axis. + * - **NOTE:** The conditions where `autorotate` is enabled are: + * - axis.x.type='category' or 'timeseries + * - axis.x.tick.multiline=false + * - axis.x.tick.culling=false + * - axis.x.tick.fit=true + * - **NOTE:** axis.x.tick.clippath=false is necessary for calculating the overflow padding between the end of x axis and the width of the SVG + * @name axis․x․tick․autorotate + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickAutorotate) + * @example + * axis: { + * x: { + * tick: { + * rotate: 15, + * autorotate: true, + * multiline: false, + * culling: false, + * fit: true + * }, + * clipPath: false + * } + * } + */ + axis_x_tick_autorotate: false, + /** + * Rotate x axis tick text. + * - If you set negative value, it will rotate to opposite direction. + * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `false`. + * - As long as `axis_x_tick_fit` is set to `true` it will calculate an overflow for the y2 axis and add this value to the right padding. + * @name axis․x․tick․rotate + * @memberof Options + * @type {number} + * @default 0 + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.RotateXAxisTickText) + * @example + * axis: { + * x: { + * tick: { + * rotate: 60 + * } + * } + * } + */ + axis_x_tick_rotate: 0, + /** + * Show x axis outer tick. + * @name axis․x․tick․outer + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * tick: { + * outer: false + * } + * } + * } + */ + axis_x_tick_outer: true, + /** + * Set tick text to be multiline + * - **NOTE:** + * > When x tick text contains `\n`, it's used as line break and 'axis.x.tick.width' option is ignored. + * @name axis․x․tick․multiline + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickMultiline) + * @example + * axis: { + * x: { + * tick: { + * multiline: false + * } + * } + * } + * @example + * // example of line break with '\n' + * // In this case, 'axis.x.tick.width' is ignored + * data: { + * x: "x", + * columns: [ + * ["x", "long\ntext", "Another\nLong\nText"], + * ... + * ], + * } + */ + axis_x_tick_multiline: true, + /** + * Set tick width + * - **NOTE:** + * > When x tick text contains `\n`, this option is ignored. + * @name axis․x․tick․width + * @memberof Options + * @type {number} + * @default null + * @example + * axis: { + * x: { + * tick: { + * width: 50 + * } + * } + * } + */ + axis_x_tick_width: null, + /** + * Set to display system tooltip(via `<title>` element) for tick text + * - **NOTE:** Only available for category axis type (`axis.x.type='category'`) + * @name axis․x․tick․tooltip + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * x: { + * tick: { + * tooltip: true + * } + * } + * } + */ + axis_x_tick_tooltip: false, + /** + * Set max value of x axis range. + * @name axis․x․max + * @memberof Options + * @property {number} max Set the max value + * @property {boolean} [max.fit=false] When specified `max.value` is greater than the bound data value, setting `true` will make x axis max to be fitted to the bound data max value. + * - **NOTE:** If the bound data max value is greater than the `max.value`, the x axis max will be limited as the given `max.value`. + * @property {number} [max.value] Set the max value + * @example + * axis: { + * x: { + * max: 100, + * + * max: { + * // 'fit=true' will make x axis max to be limited as the bound data value max when 'max.value' is greater. + * // - when bound data max is '10' and max.value: '100' ==> x axis max will be '10' + * // - when bound data max is '1000' and max.value: '100' ==> x axis max will be '100' + * fit: true, + * value: 100 + * } + * } + * } + */ + axis_x_max: void 0, + /** + * Set min value of x axis range. + * @name axis․x․min + * @memberof Options + * @property {number} min Set the min value + * @property {boolean} [min.fit=false] When specified `min.value` is lower than the bound data value, setting `true` will make x axis min to be fitted to the bound data min value. + * - **NOTE:** If the bound data min value is lower than the `min.value`, the x axis min will be limited as the given `min.value`. + * @property {number} [min.value] Set the min value + * @example + * axis: { + * x: { + * min: -100, + * + * min: { + * // 'fit=true' will make x axis min to be limited as the bound data value min when 'min.value' is lower. + * // - when bound data min is '-10' and min.value: '-100' ==> x axis min will be '-10' + * // - when bound data min is '-1000' and min.value: '-100' ==> x axis min will be '-100' + * fit: true, + * value: -100 + * } + * } + * } + */ + axis_x_min: void 0, + /** + * Change the direction of x axis.<br><br> + * If true set, the direction will be `right -> left`. + * @name axis․x․inverted + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis) + * @example + * axis: { + * x: { + * inverted: true + * } + * } + */ + axis_x_inverted: false, + /** + * Set padding for x axis.<br><br> + * If this option is set, the range of x axis will increase/decrease according to the values. + * If no padding is needed in the rage of x axis, 0 should be set. + * By default, left/right padding are set depending on x axis type or chart types. + * - **NOTE:** + * - The meaning of padding values, differs according axis types:<br> + * - **category/indexed:** The unit of tick value + * ex. the given value `1`, is same as the width of 1 tick width + * - **timeseries:** Numeric time value + * ex. the given value `1000*60*60*24`, which is numeric time equivalent of a day, is same as the width of 1 tick width + * - If want values to be treated as pixels, specify `unit:"px"`. + * - The pixel value will be convered based on the scale values. Hence can not reflect accurate padding result. + * @name axis․x․padding + * @memberof Options + * @type {object|number} + * @default {} + * @example + * axis: { + * x: { + * padding: { + * // when axis type is 'category' + * left: 1, // set left padding width of equivalent value of a tick's width + * right: 0.5 // set right padding width as half of equivalent value of tick's width + * + * // when axis type is 'timeseries' + * left: 1000*60*60*24, // set left padding width of equivalent value of a day tick's width + * right: 1000*60*60*12 // set right padding width as half of equivalent value of a day tick's width + * }, + * + * // or set both values at once. + * padding: 10, + * + * // or set padding values as pixel unit. + * padding: { + * left: 100, + * right: 50, + * unit: "px" + * }, + * } + * } + */ + axis_x_padding: {}, + /** + * Set height of x axis.<br><br> + * The height of x axis can be set manually by this option. If you need more space for x axis, please use this option for that. The unit is pixel. + * @name axis․x․height + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * x: { + * height: 20 + * } + * } + */ + axis_x_height: void 0, + /** + * Set default extent for subchart and zoom. This can be an array or function that returns an array. + * @name axis․x․extent + * @memberof Options + * @type {Array|Function} + * @default undefined + * @example + * axis: { + * x: { + * // extent range as a pixel value + * extent: [0, 200], + * + * // when axis is 'timeseries', parsable datetime string + * extent: ["2019-03-01", "2019-03-05"], + * + * // return extent value + * extent: function(domain, scale) { + * var extent = domain.map(function(v) { + * return scale(v); + * }); + * + * // it should return a format of array + * // ex) [0, 584] + * return extent; + * } + * } + * } + */ + axis_x_extent: void 0, + /** + * Set label on x axis.<br><br> + * You can set x axis label and change its position by this option. + * `string` and `object` can be passed and we can change the poisiton by passing object that has position key.<br> + * Available position differs according to the axis direction (vertical or horizontal). + * If string set, the position will be the default. + * + * - **If it's horizontal axis:** + * - inner-right [default] + * - inner-center + * - inner-left + * - outer-right + * - outer-center + * - outer-left + * - **If it's vertical axis:** + * - inner-top [default] + * - inner-middle + * - inner-bottom + * - outer-top + * - outer-middle + * - outer-bottom + * @name axis․x․label + * @memberof Options + * @type {string|object} + * @default undefined + * @example + * axis: { + * x: { + * label: "Your X Axis" + * } + * } + * + * axis: { + * x: { + * label: { + * text: "Your X Axis", + * position: "outer-center" + * } + * } + * } + */ + axis_x_label: {}, + /** + * Set additional axes for x Axis. + * - **NOTE:** Axis' scale is based on x Axis value if domain option isn't set. + * + * Each axis object should consist with following options: + * + * | Name | Type | Default | Description | + * | --- | --- | --- | --- | + * | domain | Array | - | Set the domain value | + * | tick.outer | boolean | true | Show outer tick | + * | tick.format | Function | - | Set formatter for tick text | + * | tick.count | Number | - | Set the number of y axis ticks | + * | tick.values | Array | - | Set tick values manually | + * @name axis․x․axes + * @memberof Options + * @type {Array} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes) + * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain) + * @example + * x: { + * axes: [ + * { + * // if set, will not be correlated with the main x Axis domain value + * domain: [0, 1000], + * tick: { + * outer: false, + * format: function(x) { + * return x + "%"; + * }, + * count: 2, + * values: [10, 20, 30] + * } + * }, + * ... + * ] + * } + */ + axis_x_axes: [] +}); + +;// CONCATENATED MODULE: ./src/config/Options/axis/y.ts +/* harmony default export */ var y = ({ + /** + * Set clip-path attribute for y axis element + * - **NOTE**: `clip-path` attribute for y Axis is set only when `axis.y.inner` option is true. + * @name axis․y․clipPath + * @memberof Options + * @type {boolean} + * @default true + * @example + * // don't set 'clip-path' attribute + * clipPath: false + */ + axis_y_clipPath: true, + /** + * Show or hide y axis. + * @name axis․y․show + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y: { + * show: false + * } + * } + */ + axis_y_show: true, + /** + * Set type of y axis.<br><br> + * **Available Values:** + * - indexed + * - log + * - timeseries + * + * **NOTE:**<br> + * - **log** type: + * - the bound data values must be exclusively-positive. + * - y axis min value should be >= 0. + * - [`data.groups`](#.data%25E2%2580%25A4groups)(stacked data) option aren't supported. + * + * @name axis․y․type + * @memberof Options + * @type {string} + * @default "indexed" + * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales) + * @example + * axis: { + * y: { + * type: "log" + * } + * } + */ + axis_y_type: "indexed", + /** + * Set max value of y axis. + * - **NOTE:** Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0). + * @name axis․y․max + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * max: 1000 + * } + * } + */ + axis_y_max: void 0, + /** + * Set min value of y axis. + * - **NOTE:** + * Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0). + * @name axis․y․min + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * min: 1000 + * } + * } + */ + axis_y_min: void 0, + /** + * Change the direction of y axis.<br><br> + * If true set, the direction will be `top -> bottom`. + * @name axis․y․inverted + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis) + * @example + * axis: { + * y: { + * inverted: true + * } + * } + */ + axis_y_inverted: false, + /** + * Set center value of y axis. + * @name axis․y․center + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * center: 0 + * } + * } + */ + axis_y_center: void 0, + /** + * Show y axis inside of the chart. + * @name axis․y․inner + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y: { + * inner: true + * } + * } + */ + axis_y_inner: false, + /** + * Set label on y axis.<br><br> + * You can set y axis label and change its position by this option. This option works in the same way as [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label). + * @name axis․y․label + * @memberof Options + * @type {string|object} + * @default {} + * @see [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label) for position string value. + * @example + * axis: { + * y: { + * label: "Your Y Axis" + * } + * } + * + * axis: { + * y: { + * label: { + * text: "Your Y Axis", + * position: "outer-middle" + * } + * } + * } + */ + axis_y_label: {}, + /** + * Set formatter for y axis tick text.<br><br> + * This option accepts d3.format object as well as a function you define. + * @name axis․y․tick․format + * @memberof Options + * @type {Function} + * @default undefined + * @example + * axis: { + * y: { + * tick: { + * format: function(x) { + * return x.getFullYear(); + * } + * } + * } + * } + */ + axis_y_tick_format: void 0, + /** + * Setting for culling ticks. + * - `true`: the ticks will be culled, then only limited tick text will be shown.<br> + * This option does not hide the tick lines by default, if want to hide tick lines, set `axis.y.tick.culling.lines=false`. + * - `false`: all of ticks will be shown.<br><br> + * The number of ticks to be shown can be chaned by `axis.y.tick.culling.max`. + * @name axis․y․tick․culling + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y: { + * tick: { + * culling: false + * } + * } + * } + */ + axis_y_tick_culling: false, + /** + * The number of tick texts will be adjusted to less than this value. + * @name axis․y․tick․culling․max + * @memberof Options + * @type {number} + * @default 5 + * @example + * axis: { + * y: { + * tick: { + * culling: { + * max: 5 + * } + * } + * } + * } + */ + axis_y_tick_culling_max: 5, + /** + * Control visibility of tick lines within culling option, along with tick text. + * @name axis․y․tick․culling․lines + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y: { + * tick: { + * culling: { + * lines: false, + * } + * } + * } + * } + */ + axis_y_tick_culling_lines: true, + /** + * Show y axis outer tick. + * @name axis․y․tick․outer + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y: { + * tick: { + * outer: false + * } + * } + * } + */ + axis_y_tick_outer: true, + /** + * Set y axis tick values manually. + * @name axis․y․tick․values + * @memberof Options + * @type {Array|Function} + * @default null + * @example + * axis: { + * y: { + * tick: { + * values: [100, 1000, 10000], + * + * // an Array value should be returned + * values: function() { + * return [ ... ]; + * } + * } + * } + * } + */ + axis_y_tick_values: null, + /** + * Rotate y axis tick text. + * - If you set negative value, it will rotate to opposite direction. + * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `true`. + * @name axis․y․tick․rotate + * @memberof Options + * @type {number} + * @default 0 + * @example + * axis: { + * y: { + * tick: { + * rotate: 60 + * } + * } + * } + */ + axis_y_tick_rotate: 0, + /** + * Set the number of y axis ticks.<br><br> + * - **NOTE:** The position of the ticks will be calculated precisely, so the values on the ticks will not be rounded nicely. In the case, axis.y.tick.format or axis.y.tick.values will be helpful. + * @name axis․y․tick․count + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * tick: { + * count: 5 + * } + * } + * } + */ + axis_y_tick_count: void 0, + /** + * Show or hide y axis tick line. + * @name axis․y․tick․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y: { + * tick: { + * show: false + * } + * } + * } + */ + axis_y_tick_show: true, + /** + * Set axis tick step(interval) size. + * - **NOTE:** Will be ignored if `axis.y.tick.count` or `axis.y.tick.values` options are set. + * @name axis․y․tick․stepSize + * @memberof Options + * @type {number} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.StepSizeForYAxis) + * @example + * axis: { + * y: { + * tick: { + * // tick value will step as indicated interval value. + * // ex) 'stepSize=15' ==> [0, 15, 30, 45, 60] + * stepSize: 15 + * } + * } + * } + */ + axis_y_tick_stepSize: null, + /** + * Show or hide y axis tick text. + * @name axis․y․tick․text․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y: { + * tick: { + * text: { + * show: false + * } + * } + * } + * } + */ + axis_y_tick_text_show: true, + /** + * Set the y Axis tick text's position relatively its original position + * @name axis․y․tick․text․position + * @memberof Options + * @type {object} + * @default {x: 0, y:0} + * @example + * axis: { + * y: { + * tick: { + * text: { + * position: { + * x: 10, + * y: 10 + * } + * } + * } + * } + * } + */ + axis_y_tick_text_position: { x: 0, y: 0 }, + /** + * Set the number of y axis ticks.<br><br> + * - **NOTE:** The position of the ticks will be calculated precisely, so the values on the ticks will not be rounded nicely. In the case, axis.y.tick.format or axis.y.tick.values will be helpful. + * @name axis․y․tick․time + * @memberof Options + * @private + * @type {object} + * @property {object} time time object + * @property {Function} [time.value] D3's time interval function (https://github.com/d3/d3-time#intervals) + * @example + * axis: { + * y: { + * tick: { + * time: { + * // ticks at 15-minute intervals + * // https://github.com/d3/d3-scale/blob/master/README.md#time_ticks + * value: d3.timeMinute.every(15) + * } + * } + * } + * } + */ + // @TODO: not fully implemented yet + axis_y_tick_time_value: void 0, + /** + * Set padding for y axis.<br><br> + * You can set padding for y axis to create more space on the edge of the axis. + * This option accepts object and it can include top and bottom. top, bottom will be treated as pixels. + * + * - **NOTE:** + * - Given values are translated relative to the y Axis domain value for padding + * - For area and bar type charts, [area.zerobased](#.area) or [bar.zerobased](#.bar) options should be set to 'false` to get padded bottom. + * @name axis․y․padding + * @memberof Options + * @type {object|number} + * @default {} + * @example + * axis: { + * y: { + * padding: { + * top: 0, + * bottom: 0 + * }, + * + * // or set both values at once. + * padding: 10 + * } + * } + */ + axis_y_padding: {}, + /** + * Set default range of y axis.<br><br> + * This option set the default value for y axis when there is no data on init. + * @name axis․y․default + * @memberof Options + * @type {Array} + * @default undefined + * @example + * axis: { + * y: { + * default: [0, 1000] + * } + * } + */ + axis_y_default: void 0, + /** + * Set additional axes for y Axis. + * - **NOTE:** Axis' scale is based on y Axis value if domain option isn't set. + * + * Each axis object should consist with following options: + * + * | Name | Type | Default | Description | + * | --- | --- | --- | --- | + * | domain | Array | - | Set the domain value | + * | tick.outer | boolean | true | Show outer tick | + * | tick.format | Function | - | Set formatter for tick text | + * | tick.count | Number | - | Set the number of y axis ticks | + * | tick.values | Array | - | Set tick values manually | + * @name axis․y․axes + * @memberof Options + * @type {Array} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes) + * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain) + * @example + * y: { + * axes: [ + * { + * // if set, will not be correlated with the main y Axis domain value + * domain: [0, 1000], + * tick: { + * outer: false, + * format: function(x) { + * return x + "%"; + * }, + * count: 2, + * values: [10, 20, 30] + * } + * }, + * ... + * ] + * } + */ + axis_y_axes: [] +}); + +;// CONCATENATED MODULE: ./src/config/Options/axis/y2.ts +/* harmony default export */ var y2 = ({ + /** + * Show or hide y2 axis. + * - **NOTE**: + * - When set to `false` will not generate y2 axis node. In this case, all 'y2' axis related functionality won't work properly. + * - If need to use 'y2' related options while y2 isn't visible, set the value `true` and control visibility by css display property. + * @name axis․y2․show + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y2: { + * show: true + * } + * } + */ + axis_y2_show: false, + /** + * Set type of y2 axis.<br><br> + * **Available Values:** + * - indexed + * - log + * - timeseries + * + * **NOTE:**<br> + * - **log** type: + * - the bound data values must be exclusively-positive. + * - y2 axis min value should be >= 0. + * - [`data.groups`](#.data%25E2%2580%25A4groups)(stacked data) option aren't supported. + * + * @name axis․y2․type + * @memberof Options + * @type {string} + * @default "indexed" + * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales) + * @example + * axis: { + * y2: { + * type: "indexed" + * } + * } + */ + axis_y2_type: "indexed", + /** + * Set max value of y2 axis. + * @name axis․y2․max + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * max: 1000 + * } + * } + */ + axis_y2_max: void 0, + /** + * Set min value of y2 axis. + * @name axis․y2․min + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * min: -1000 + * } + * } + */ + axis_y2_min: void 0, + /** + * Change the direction of y2 axis.<br><br> + * If true set, the direction will be `top -> bottom`. + * @name axis․y2․inverted + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis) + * @example + * axis: { + * y2: { + * inverted: true + * } + * } + */ + axis_y2_inverted: false, + /** + * Set center value of y2 axis. + * @name axis․y2․center + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * center: 0 + * } + * } + */ + axis_y2_center: void 0, + /** + * Show y2 axis inside of the chart. + * @name axis․y2․inner + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y2: { + * inner: true + * } + * } + */ + axis_y2_inner: false, + /** + * Set label on y2 axis.<br><br> + * You can set y2 axis label and change its position by this option. This option works in the same way as [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label). + * @name axis․y2․label + * @memberof Options + * @type {string|object} + * @default {} + * @see [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label) for position string value. + * @example + * axis: { + * y2: { + * label: "Your Y2 Axis" + * } + * } + * + * axis: { + * y2: { + * label: { + * text: "Your Y2 Axis", + * position: "outer-middle" + * } + * } + * } + */ + axis_y2_label: {}, + /** + * Set formatter for y2 axis tick text.<br><br> + * This option works in the same way as axis.y.format. + * @name axis․y2․tick․format + * @memberof Options + * @type {Function} + * @default undefined + * @example + * axis: { + * y2: { + * tick: { + * format: d3.format("$,") + * //or format: function(d) { return "$" + d; } + * } + * } + * } + */ + axis_y2_tick_format: void 0, + /** + * Setting for culling ticks. + * - `true`: the ticks will be culled, then only limited tick text will be shown.<br> + * This option does not hide the tick lines by default, if want to hide tick lines, set `axis.y2.tick.culling.lines=false`. + * - `false`: all of ticks will be shown.<br><br> + * The number of ticks to be shown can be chaned by `axis.y2.tick.culling.max`. + * @name axis․y2․tick․culling + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y2: { + * tick: { + * culling: false + * } + * } + * } + */ + axis_y2_tick_culling: false, + /** + * The number of tick texts will be adjusted to less than this value. + * @name axis․y2․tick․culling․max + * @memberof Options + * @type {number} + * @default 5 + * @example + * axis: { + * y2: { + * tick: { + * culling: { + * max: 5 + * } + * } + * } + * } + */ + axis_y2_tick_culling_max: 5, + /** + * Control visibility of tick lines within culling option, along with tick text. + * @name axis․y2․tick․culling․lines + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y2: { + * tick: { + * culling: { + * lines: false, + * } + * } + * } + * } + */ + axis_y2_tick_culling_lines: true, + /** + * Show or hide y2 axis outer tick. + * @name axis․y2․tick․outer + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y2: { + * tick: { + * outer: false + * } + * } + * } + */ + axis_y2_tick_outer: true, + /** + * Set y2 axis tick values manually. + * @name axis․y2․tick․values + * @memberof Options + * @type {Array|Function} + * @default null + * @example + * axis: { + * y2: { + * tick: { + * values: [100, 1000, 10000], + * + * // an Array value should be returned + * values: function() { + * return [ ... ]; + * } + * } + * } + * } + */ + axis_y2_tick_values: null, + /** + * Rotate y2 axis tick text. + * - If you set negative value, it will rotate to opposite direction. + * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `true`. + * @name axis․y2․tick․rotate + * @memberof Options + * @type {number} + * @default 0 + * @example + * axis: { + * y2: { + * tick: { + * rotate: 60 + * } + * } + * } + */ + axis_y2_tick_rotate: 0, + /** + * Set the number of y2 axis ticks. + * - **NOTE:** This works in the same way as axis.y.tick.count. + * @name axis․y2․tick․count + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * tick: { + * count: 5 + * } + * } + * } + */ + axis_y2_tick_count: void 0, + /** + * Show or hide y2 axis tick line. + * @name axis․y2․tick․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y2: { + * tick: { + * show: false + * } + * } + * } + */ + axis_y2_tick_show: true, + /** + * Set axis tick step(interval) size. + * - **NOTE:** Will be ignored if `axis.y2.tick.count` or `axis.y2.tick.values` options are set. + * @name axis․y2․tick․stepSize + * @memberof Options + * @type {number} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.StepSizeForYAxis) + * @example + * axis: { + * y2: { + * tick: { + * // tick value will step as indicated interval value. + * // ex) 'stepSize=15' ==> [0, 15, 30, 45, 60] + * stepSize: 15 + * } + * } + * } + */ + axis_y2_tick_stepSize: null, + /** + * Show or hide y2 axis tick text. + * @name axis․y2․tick․text․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y2: { + * tick: { + * text: { + * show: false + * } + * } + * } + * } + */ + axis_y2_tick_text_show: true, + /** + * Set the y2 Axis tick text's position relatively its original position + * @name axis․y2․tick․text․position + * @memberof Options + * @type {object} + * @default {x: 0, y:0} + * @example + * axis: { + * y2: { + * tick: { + * text: { + * position: { + * x: 10, + * y: 10 + * } + * } + * } + * } + * } + */ + axis_y2_tick_text_position: { x: 0, y: 0 }, + /** + * Set padding for y2 axis.<br><br> + * You can set padding for y2 axis to create more space on the edge of the axis. + * This option accepts object and it can include top and bottom. top, bottom will be treated as pixels. + * + * - **NOTE:** + * - Given values are translated relative to the y2 Axis domain value for padding + * - For area and bar type charts, [area.zerobased](#.area) or [bar.zerobased](#.bar) options should be set to 'false` to get padded bottom. + * @name axis․y2․padding + * @memberof Options + * @type {object|number} + * @default {} + * @example + * axis: { + * y2: { + * padding: { + * top: 100, + * bottom: 100 + * } + * + * // or set both values at once. + * padding: 10 + * } + */ + axis_y2_padding: {}, + /** + * Set default range of y2 axis.<br><br> + * This option set the default value for y2 axis when there is no data on init. + * @name axis․y2․default + * @memberof Options + * @type {Array} + * @default undefined + * @example + * axis: { + * y2: { + * default: [0, 1000] + * } + * } + */ + axis_y2_default: void 0, + /** + * Set additional axes for y2 Axis. + * - **NOTE:** Axis' scale is based on y2 Axis value if domain option isn't set. + * + * Each axis object should consist with following options: + * + * | Name | Type | Default | Description | + * | --- | --- | --- | --- | + * | domain | Array | - | Set the domain value | + * | tick.outer | boolean | true | Show outer tick | + * | tick.format | Function | - | Set formatter for tick text | + * | tick.count | Number | - | Set the number of y axis ticks | + * | tick.values | Array | - | Set tick values manually | + * @name axis․y2․axes + * @memberof Options + * @type {Array} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes) + * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain) + * @example + * y2: { + * axes: [ + * { + * // if set, will not be correlated with the main y2 Axis domain value + * domain: [0, 1000], + * tick: { + * outer: false, + * format: function(x) { + * return x + "%"; + * }, + * count: 2, + * values: [10, 20, 30] + * } + * }, + * ... + * ] + * } + */ + axis_y2_axes: [] +}); + +;// CONCATENATED MODULE: ./src/config/Options/axis/axis.ts +var axis_defProp = Object.defineProperty; +var axis_getOwnPropSymbols = Object.getOwnPropertySymbols; +var axis_hasOwnProp = Object.prototype.hasOwnProperty; +var axis_propIsEnum = Object.prototype.propertyIsEnumerable; +var axis_defNormalProp = (obj, key, value) => key in obj ? axis_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var axis_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (axis_hasOwnProp.call(b, prop)) + axis_defNormalProp(a, prop, b[prop]); + if (axis_getOwnPropSymbols) + for (var prop of axis_getOwnPropSymbols(b)) { + if (axis_propIsEnum.call(b, prop)) + axis_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + +/* harmony default export */ var axis_axis = (axis_spreadValues(axis_spreadValues(axis_spreadValues({ + /** + * Switch x and y axis position. + * @name axis․rotated + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * rotated: true + * } + */ + axis_rotated: false, + /** + * Set axis tooltip. + * - **NOTE:** + * - When enabled, will disable default focus grid line. + * - For `timeseries` x Axis, tootlip will be formatted using x Axis' tick format. + * - For `category` x Axis, tootlip will be displaying scales' value text. + * @name axis․tooltip + * @memberof Options + * @type {boolean} + * @default false + * @property {object} axis Axis object + * @property {boolean} [axis.tooltip=false] Show tooltip or not. + * @property {string|object} [axis.tooltip.backgroundColor] Set axis tooltip text background colors. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.AxisTooltip) + * @example + * axis: { + * tooltip: true, // default background color is + * + * // set backgound color for axis tooltip texts + * tooltip: { + * backgroundColor: "red", + * + * // set differenct backround colors per axes + * // NOTE: In this case, only specified axes tooltip will appear. + * backgroundColor: { + * x: "green", + * y: "yellow", + * y2: "red" + * } + * } + * } + */ + axis_tooltip: false +}, axis_x), y), y2)); + +;// CONCATENATED MODULE: ./src/config/Options/common/grid.ts +/* harmony default export */ var common_grid = ({ + /** + * Set related options + * @name grid + * @memberof Options + * @type {object} + * @property {boolean} [front=false] Set 'grid & focus lines' to be positioned over grid lines and chart elements. + * @property {object} x Grid x object + * @property {boolean} [x.show=false] Show grids along x axis. + * @property {Array} [x.lines=[]] Show additional grid lines along x axis.<br> + * This option accepts array including object that has value, text, position and class. text, position and class are optional. For position, start, middle and end (default) are available. + * If x axis is category axis, value can be category name. If x axis is timeseries axis, value can be date string, Date object and unixtime integer. + * @property {object} y Grid y object + * @property {boolean} [y.show=false] Show grids along x axis. + * @property {Array} [y.lines=[]] Show additional grid lines along y axis.<br> + * This option accepts array including object that has value, text, position and class. + * @property {number} [y.ticks=undefined] Number of y grids to be shown. + * @property {object} focus Grid focus object + * @property {boolean} [focus.edge=false] Show edged focus grid line.<br>**NOTE:** Available when [`tooltip.grouped=false`](#.tooltip) option is set. + * @property {boolean} [focus.show=true] Show grid line when focus. + * @property {boolean} [focus.y=false] Show y coordinate focus grid line.<br>**NOTE:** Available when [`tooltip.grouped=false`](#.tooltip) option is set. + * @property {object} lines Grid lines object + * @property {boolean} [lines.front=true] Set grid lines to be positioned over chart elements. + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Grid.GridLines) + * @see [Demo: X Grid Lines](https://naver.github.io/billboard.js/demo/#Grid.OptionalXGridLines) + * @see [Demo: Y Grid Lines](https://naver.github.io/billboard.js/demo/#Grid.OptionalYGridLines) + * @example + * grid: { + * x: { + * show: true, + * lines: [ + * {value: 2, text: "Label on 2"}, + * {value: 5, text: "Label on 5", class: "label-5"}, + * {value: 6, text: "Label on 6", position: "start"} + * ] + * }, + * y: { + * show: true, + * lines: [ + * {value: 100, text: "Label on 100"}, + * {value: 200, text: "Label on 200", class: "label-200"}, + * {value: 300, text: "Label on 300", position: 'middle'} + * ], + * ticks: 5 + * }, + * front: true, + * focus: { + * show: false, + * + * // Below options are available when 'tooltip.grouped=false' option is set + * edge: true, + * y: true + * }, + * lines: { + * front: false + * } + * } + */ + grid_x_show: false, + grid_x_type: "tick", + grid_x_lines: [], + grid_y_show: false, + grid_y_lines: [], + grid_y_ticks: void 0, + grid_focus_edge: false, + grid_focus_show: true, + grid_focus_y: false, + grid_front: false, + grid_lines_front: true +}); + +;// CONCATENATED MODULE: ./src/config/Options/data/axis.ts +/* harmony default export */ var data_axis = ({ + /** + * Specify the keys of the x values for each data.<br><br> + * This option can be used if we want to show the data that has different x values. + * @name data․xs + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * xs: { + * data1: "x1", + * data2: "x2" + * } + * } + */ + data_xs: {}, + /** + * Set a format specifier to parse string specifed as x. + * @name data․xFormat + * @memberof Options + * @type {string} + * @default %Y-%m-%d + * @example + * data: { + * x: "x", + * columns: [ + * ["x", "01012019", "02012019", "03012019"], + * ["data1", 30, 200, 100] + * ], + * // Format specifier to parse as datetime for given 'x' string value + * xFormat: "%m%d%Y" + * }, + * axis: { + * x: { + * type: "timeseries" + * } + * } + * @see [D3's time specifier](https://d3js.org/d3-time-format#locale_format) + */ + data_xFormat: "%Y-%m-%d", + /** + * Set localtime format to parse x axis. + * @name data․xLocaltime + * @memberof Options + * @type {boolean} + * @default true + * @example + * data: { + * xLocaltime: false + * } + */ + data_xLocaltime: true, + /** + * Sort on x axis. + * - **NOTE:** This option works for lineish(area/line/spline/step) types only. + * @name data․xSort + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataXSort) + * @example + * data: { + * xSort: false, + * x: "x", + * columns: [ + * // The line graph will start to be drawn following the x axis sequence + * // Below data, wil start drawing x=1: 200, x=2: 300, x=3: 100 + * ["x", 3, 1, 2], + * ["data1", 100, 200, 300] + * ] + * } + */ + data_xSort: true, + /** + * Set y axis the data related to. y and y2 can be used. + * - **NOTE:** If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data + * @name data․axes + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * axes: { + * data1: "y", + * data2: "y2" + * } + * } + */ + data_axes: {}, + /** + * Define regions for each data.<br> + * The values must be an array for each data and it should include an object that has `start`, `end` and `style`. + * - The object type should be as: + * - start {number}: Start data point number. If not set, the start will be the first data point. + * - [end] {number}: End data point number. If not set, the end will be the last data point. + * - [style.dasharray="2 2"] {object}: The first number specifies a distance for the filled area, and the second a distance for the unfilled area. + * - **NOTE:** Currently this option supports only line chart and dashed style. If this option specified, the line will be dashed only in the regions. + * @name data․regions + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * regions: { + * data1: [{ + * start: 1, + * end: 2, + * style: { + * dasharray: "5 2" + * } + * }, { + * start: 3 + * }], + * ... + * } + * } + */ + data_regions: {}, + /** + * Set the stacking to be normalized + * - **NOTE:** + * - For stacking, '[data.groups](#.data%25E2%2580%25A4groups)' option should be set + * - y Axis will be set in percentage value (0 ~ 100%) + * - Must have postive values + * @name data․stack․normalize + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataStackNormalized) + * @example + * data: { + * stack: { + * normalize: true + * } + * } + */ + data_stack_normalize: false +}); + +;// CONCATENATED MODULE: ./src/config/resolver/axis.ts + + + + + + + + + + + + + + + + + +const api = [ + api_axis, + api_category, + flow, + api_grid, + group, + api_regions, + x +]; +const internal = { + axis: Axis, + clip: clip, + eventrect: eventrect, + flow: interactions_flow, + grid: internals_grid, + region: region, + sizeAxis: size_axis +}; +const options = { + optDataAxis: data_axis, + optAxis: axis_axis, + optGrid: common_grid +}; + +// EXTERNAL MODULE: external {"commonjs":"d3-interpolate","commonjs2":"d3-interpolate","amd":"d3-interpolate","root":"d3"} +var external_commonjs_d3_interpolate_commonjs2_d3_interpolate_amd_d3_interpolate_root_d3_ = __webpack_require__(13); +;// CONCATENATED MODULE: ./src/ChartInternal/shape/arc.ts +var arc_defProp = Object.defineProperty; +var arc_defProps = Object.defineProperties; +var arc_getOwnPropDescs = Object.getOwnPropertyDescriptors; +var arc_getOwnPropSymbols = Object.getOwnPropertySymbols; +var arc_hasOwnProp = Object.prototype.hasOwnProperty; +var arc_propIsEnum = Object.prototype.propertyIsEnumerable; +var arc_defNormalProp = (obj, key, value) => key in obj ? arc_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var arc_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (arc_hasOwnProp.call(b, prop)) + arc_defNormalProp(a, prop, b[prop]); + if (arc_getOwnPropSymbols) + for (var prop of arc_getOwnPropSymbols(b)) { + if (arc_propIsEnum.call(b, prop)) + arc_defNormalProp(a, prop, b[prop]); + } + return a; +}; +var arc_spreadProps = (a, b) => arc_defProps(a, arc_getOwnPropDescs(b)); + + + + + + +function getRadiusFn(expandRate = 0) { + const $$ = this; + const { config, state } = $$; + const hasMultiArcGauge = $$.hasMultiArcGauge(); + const singleArcWidth = state.gaugeArcWidth / $$.filterTargetsToShow($$.data.targets).length; + const expandWidth = expandRate ? Math.min( + state.radiusExpanded * expandRate - state.radius, + singleArcWidth * 0.8 - (1 - expandRate) * 100 + ) : 0; + return { + /** + * Getter of arc innerRadius value + * @param {IArcData} d Data object + * @returns {number} innerRadius value + * @private + */ + inner(d) { + const { innerRadius } = $$.getRadius(d); + return hasMultiArcGauge ? state.radius - singleArcWidth * (d.index + 1) : isNumber(innerRadius) ? innerRadius : 0; + }, + /** + * Getter of arc outerRadius value + * @param {IArcData} d Data object + * @returns {number} outerRadius value + * @private + */ + outer(d) { + const { outerRadius } = $$.getRadius(d); + let radius; + if (hasMultiArcGauge) { + radius = state.radius - singleArcWidth * d.index + expandWidth; + } else if ($$.hasType("polar") && !expandRate) { + radius = $$.getPolarOuterRadius(d, outerRadius); + } else { + radius = outerRadius; + if (expandRate) { + let { radiusExpanded } = state; + if (state.radius !== outerRadius) { + radiusExpanded -= Math.abs(state.radius - outerRadius); + } + radius = radiusExpanded * expandRate; + } + } + return radius; + }, + /** + * Getter of arc cornerRadius value + * @param {IArcData} d Data object + * @param {number} outerRadius outer radius value + * @returns {number} cornerRadius value + * @private + */ + corner(d, outerRadius) { + const { + arc_cornerRadius_ratio: ratio = 0, + arc_cornerRadius: cornerRadius = 0 + } = config; + const { data: { id }, value } = d; + let corner = 0; + if (ratio) { + corner = ratio * outerRadius; + } else { + corner = isNumber(cornerRadius) ? cornerRadius : cornerRadius.call($$.api, id, value, outerRadius); + } + return corner; + } + }; +} +function getAttrTweenFn(fn) { + return function(d) { + const getAngleKeyValue = ({ startAngle = 0, endAngle = 0, padAngle = 0 }) => ({ + startAngle, + endAngle, + padAngle + }); + const interpolate = (0,external_commonjs_d3_interpolate_commonjs2_d3_interpolate_amd_d3_interpolate_root_d3_.interpolate)( + getAngleKeyValue(this._current), + getAngleKeyValue(d) + ); + this._current = d; + return function(t) { + const interpolated = interpolate(t); + const { data, index, value } = d; + return fn(arc_spreadProps(arc_spreadValues({}, interpolated), { data, index, value })); + }; + }; +} +/* harmony default export */ var arc = ({ + initPie() { + const $$ = this; + const { config } = $$; + const dataType = config.data_type; + const padding = config[`${dataType}_padding`]; + const startingAngle = config[`${dataType}_startingAngle`] || 0; + const padAngle = (padding ? padding * 0.01 : config[`${dataType}_padAngle`]) || 0; + $$.pie = (0,external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.pie)().startAngle(startingAngle).endAngle(startingAngle + 2 * Math.PI).padAngle(padAngle).value((d) => { + var _a, _b; + return (_b = (_a = d.values) == null ? void 0 : _a.reduce((a, b) => a + b.value, 0)) != null ? _b : d; + }).sort($$.getSortCompareFn.bind($$)(true)); + }, + updateRadius() { + const $$ = this; + const { config, state } = $$; + const dataType = config.data_type; + const padding = config[`${dataType}_padding`]; + const w = config.gauge_width || config.donut_width; + const gaugeArcWidth = $$.filterTargetsToShow($$.data.targets).length * config.gauge_arcs_minWidth; + state.radiusExpanded = Math.min(state.arcWidth, state.arcHeight) / 2 * ($$.hasMultiArcGauge() && config.gauge_label_show ? 0.85 : 1); + state.radius = state.radiusExpanded * 0.95; + state.innerRadiusRatio = w ? (state.radius - w) / state.radius : 0.6; + state.gaugeArcWidth = w || (gaugeArcWidth <= state.radius - state.innerRadius ? state.radius - state.innerRadius : gaugeArcWidth <= state.radius ? gaugeArcWidth : state.radius); + const innerRadius = config.pie_innerRadius || (padding ? padding * (state.innerRadiusRatio + 0.1) : 0); + state.outerRadius = config.pie_outerRadius; + state.innerRadius = $$.hasType("donut") || $$.hasType("gauge") ? state.radius * state.innerRadiusRatio : innerRadius; + }, + /** + * Get pie's inner & outer radius value + * @param {object|undefined} d Data object + * @returns {object} + * @private + */ + getRadius(d) { + const $$ = this; + const data = d == null ? void 0 : d.data; + let { innerRadius, outerRadius } = $$.state; + if (!isNumber(innerRadius) && data) { + innerRadius = innerRadius[data.id] || 0; + } + if (isObject(outerRadius) && data && data.id in outerRadius) { + outerRadius = outerRadius[data.id]; + } else if (!isNumber(outerRadius)) { + outerRadius = $$.state.radius; + } + return { innerRadius, outerRadius }; + }, + updateArc() { + const $$ = this; + $$.updateRadius(); + $$.svgArc = $$.getSvgArc(); + $$.svgArcExpanded = $$.getSvgArcExpanded(); + }, + getArcLength() { + const $$ = this; + const { config } = $$; + const arcLengthInPercent = config.gauge_arcLength * 3.6; + let len = 2 * (arcLengthInPercent / 360); + if (arcLengthInPercent < -360) { + len = -2; + } else if (arcLengthInPercent > 360) { + len = 2; + } + return len * Math.PI; + }, + getStartingAngle() { + const $$ = this; + const { config } = $$; + const dataType = config.data_type; + const isFullCircle = $$.hasType("gauge") ? config.gauge_fullCircle : false; + const defaultStartAngle = -1 * Math.PI / 2; + const defaultEndAngle = Math.PI / 2; + let startAngle = config[`${dataType}_startingAngle`] || 0; + if (!isFullCircle && startAngle <= defaultStartAngle) { + startAngle = defaultStartAngle; + } else if (!isFullCircle && startAngle >= defaultEndAngle) { + startAngle = defaultEndAngle; + } else if (startAngle > Math.PI || startAngle < -1 * Math.PI) { + startAngle = Math.PI; + } + return startAngle; + }, + /** + * Update angle data + * @param {object} dValue Data object + * @param {boolean} forRange Weather is for ranged text option(arc.rangeText.values) + * @returns {object|null} Updated angle data + * @private + */ + updateAngle(dValue, forRange = false) { + var _a; + const $$ = this; + const { config, state } = $$; + const hasGauge = forRange && $$.hasType("gauge"); + let { pie } = $$; + let d = dValue; + let found = false; + if (!config) { + return null; + } + const gStart = $$.getStartingAngle(); + const radius = config.gauge_fullCircle || forRange && !hasGauge ? $$.getArcLength() : gStart * -2; + if (d.data && $$.isGaugeType(d.data) && !$$.hasMultiArcGauge()) { + const { gauge_min: gMin, gauge_max: gMax } = config; + const totalSum = $$.getTotalDataSum(state.rendered); + const gEnd = radius * ((totalSum - gMin) / (gMax - gMin)); + pie = pie.startAngle(gStart).endAngle(gEnd + gStart); + } + if (forRange === false) { + pie($$.filterTargetsToShow()).forEach((t, i) => { + var _a2; + if (!found && t.data.id === ((_a2 = d.data) == null ? void 0 : _a2.id)) { + found = true; + d = t; + d.index = i; + } + }); + } + if (isNaN(d.startAngle)) { + d.startAngle = 0; + } + if (isNaN(d.endAngle)) { + d.endAngle = d.startAngle; + } + if (forRange || d.data && (config.gauge_enforceMinMax || $$.hasMultiArcGauge())) { + const { gauge_min: gMin, gauge_max: gMax } = config; + const max = forRange && !hasGauge ? $$.getTotalDataSum(state.rendered) : gMax; + const gTic = radius / (max - gMin); + const value = (_a = d.value) != null ? _a : 0; + const gValue = value < gMin ? 0 : value < max ? value - gMin : max - gMin; + d.startAngle = gStart; + d.endAngle = gStart + gTic * gValue; + } + return found || forRange ? d : null; + }, + getSvgArc() { + const $$ = this; + const { inner, outer, corner } = getRadiusFn.call($$); + const arc = (0,external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.arc)().innerRadius(inner).outerRadius(outer); + const newArc = function(d, withoutUpdate) { + var _a; + let path = "M 0 0"; + if (d.value || d.data) { + const data = withoutUpdate ? d : (_a = $$.updateAngle(d)) != null ? _a : null; + if (data) { + path = arc.cornerRadius( + corner(data, outer(data)) + )(data); + } + } + return path; + }; + newArc.centroid = arc.centroid; + return newArc; + }, + /** + * Get expanded arc path function + * @param {number} rate Expand rate + * @returns {Function} Expanded arc path getter function + * @private + */ + getSvgArcExpanded(rate = 1) { + const $$ = this; + const { inner, outer, corner } = getRadiusFn.call($$, rate); + const arc = (0,external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.arc)().innerRadius(inner).outerRadius(outer); + return (d) => { + const updated = $$.updateAngle(d); + const outerR = outer(updated); + let cornerR = 0; + if (updated) { + cornerR = corner(updated, outerR); + } + return updated ? arc.cornerRadius(cornerR)(updated) : "M 0 0"; + }; + }, + getArc(d, withoutUpdate, force) { + return force || this.isArcType(d.data) ? this.svgArc(d, withoutUpdate) : "M 0 0"; + }, + /** + * Render range value text + * @private + */ + redrawArcRangeText() { + const $$ = this; + const { config, $el: { arcs }, state, $T } = $$; + const format = config.arc_rangeText_format; + const fixed = $$.hasType("gauge") && config.arc_rangeText_fixed; + let values = config.arc_rangeText_values; + if (values == null ? void 0 : values.length) { + const isPercent = config.arc_rangeText_unit === "%"; + const totalSum = $$.getTotalDataSum(state.rendered); + if (isPercent) { + values = values.map((v) => totalSum / 100 * v); + } + const pieData = $$.pie(values).map((d, i) => (d.index = i, d)); + let rangeText = arcs.selectAll(`.${$ARC.arcRange}`).data(values); + rangeText.exit(); + rangeText = $T(rangeText.enter().append("text").attr("class", $ARC.arcRange).style("text-anchor", "middle").style("pointer-events", "none").style("opacity", "0").text((v) => { + const range = isPercent ? v / totalSum * 100 : v; + return isFunction(format) ? format(range) : `${range}${isPercent ? "%" : ""}`; + }).merge(rangeText)); + if ((!state.rendered || state.rendered && !fixed) && totalSum > 0) { + rangeText.attr("transform", (d, i) => $$.transformForArcLabel(pieData[i], true)); + } + rangeText.style( + "opacity", + (d) => !fixed && (d > totalSum || totalSum === 0) ? "0" : null + ); + } + }, + /** + * Set transform attributes to arc label text + * @param {object} d Data object + * @param {boolean} forRange Weather is for ranged text option(arc.rangeText.values) + * @returns {string} Translate attribute string + * @private + */ + transformForArcLabel(d, forRange = false) { + var _a, _b, _c; + const $$ = this; + const { config, state: { radiusExpanded } } = $$; + const updated = $$.updateAngle(d, forRange); + let translate = ""; + if (updated) { + if (forRange || $$.hasMultiArcGauge()) { + const y1 = Math.sin(updated.endAngle - Math.PI / 2); + const rangeTextPosition = config.arc_rangeText_position; + let x = Math.cos(updated.endAngle - Math.PI / 2) * (radiusExpanded + (forRange ? 5 : 25)); + let y = y1 * (radiusExpanded + 15 - Math.abs(y1 * 10)) + 3; + if (forRange && rangeTextPosition) { + const rangeValues = config.arc_rangeText_values; + const pos = isFunction(rangeTextPosition) ? rangeTextPosition(rangeValues[d.index]) : rangeTextPosition; + x += (_a = pos == null ? void 0 : pos.x) != null ? _a : 0; + y += (_b = pos == null ? void 0 : pos.y) != null ? _b : 0; + } + translate = `translate(${x},${y})`; + } else if (!$$.hasType("gauge") || $$.data.targets.length > 1) { + let { outerRadius } = $$.getRadius(d); + if ($$.hasType("polar")) { + outerRadius = $$.getPolarOuterRadius(d, outerRadius); + } + const c = this.svgArc.centroid(updated); + const [x, y] = c.map((v) => isNaN(v) ? 0 : v); + const h = Math.sqrt(x * x + y * y); + let ratio = (_c = ["donut", "gauge", "pie", "polar"].filter($$.hasType.bind($$)).map((v) => config[`${v}_label_ratio`])) == null ? void 0 : _c[0]; + if (ratio) { + ratio = isFunction(ratio) ? ratio.bind($$.api)(d, outerRadius, h) : ratio; + } else { + ratio = outerRadius && (h ? (36 / outerRadius > 0.375 ? 1.175 - 36 / outerRadius : 0.8) * outerRadius / h : 0); + } + translate = `translate(${x * ratio},${y * ratio})`; + } + } + return translate; + }, + convertToArcData(d) { + return this.addName({ + id: "data" in d ? d.data.id : d.id, + value: d.value, + ratio: this.getRatio("arc", d), + index: d.index + }); + }, + textForArcLabel(selection) { + const $$ = this; + const hasGauge = $$.hasType("gauge"); + if ($$.shouldShowArcLabel()) { + selection.style("fill", $$.updateTextColor.bind($$)).attr("filter", (d) => $$.updateTextBGColor.bind($$)(d, $$.config.data_labels_backgroundColors)).each(function(d) { + var _a; + const node = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + const updated = $$.updateAngle(d); + const ratio = $$.getRatio("arc", updated); + const isUnderThreshold = $$.meetsLabelThreshold( + ratio, + (_a = ["donut", "gauge", "pie", "polar"].filter($$.hasType.bind($$))) == null ? void 0 : _a[0] + ); + if (isUnderThreshold) { + const { value } = updated || d; + const text = ($$.getArcLabelFormat() || $$.defaultArcValueFormat)(value, ratio, d.data.id).toString(); + setTextValue(node, text, [-1, 1], hasGauge); + } else { + node.text(""); + } + }); + } + }, + expandArc(targetIds) { + const $$ = this; + const { state: { transiting }, $el } = $$; + if (transiting) { + const interval = setInterval(() => { + if (!transiting) { + clearInterval(interval); + $el.legend.selectAll(`.${$FOCUS.legendItemFocused}`).size() > 0 && $$.expandArc(targetIds); + } + }, 10); + return; + } + const newTargetIds = $$.mapToTargetIds(targetIds); + $el.svg.selectAll($$.selectorTargets(newTargetIds, `.${$ARC.chartArc}`)).each(function(d) { + if (!$$.shouldExpand(d.data.id)) { + return; + } + const expandDuration = $$.getExpandConfig(d.data.id, "duration"); + const svgArcExpandedSub = $$.getSvgArcExpanded( + $$.getExpandConfig(d.data.id, "rate") + ); + (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).selectAll("path").transition().duration(expandDuration).attrTween("d", getAttrTweenFn($$.svgArcExpanded.bind($$))).transition().duration(expandDuration * 2).attrTween("d", getAttrTweenFn(svgArcExpandedSub.bind($$))); + }); + }, + unexpandArc(targetIds) { + const $$ = this; + const { state: { transiting }, $el: { svg } } = $$; + if (transiting) { + return; + } + const newTargetIds = $$.mapToTargetIds(targetIds); + svg.selectAll($$.selectorTargets(newTargetIds, `.${$ARC.chartArc}`)).selectAll("path").transition().duration((d) => $$.getExpandConfig(d.data.id, "duration")).attrTween("d", getAttrTweenFn($$.svgArc.bind($$))); + svg.selectAll(`${$ARC.arc}`).style("opacity", null); + }, + /** + * Get expand config value + * @param {string} id data ID + * @param {string} key config key: 'duration | rate' + * @returns {number} + * @private + */ + getExpandConfig(id, key) { + const $$ = this; + const { config } = $$; + const def = { + duration: 50, + rate: 0.98 + }; + let type; + if ($$.isDonutType(id)) { + type = "donut"; + } else if ($$.isGaugeType(id)) { + type = "gauge"; + } else if ($$.isPieType(id)) { + type = "pie"; + } + return type ? config[`${type}_expand_${key}`] : def[key]; + }, + shouldExpand(id) { + const $$ = this; + const { config } = $$; + return $$.isDonutType(id) && config.donut_expand || $$.isGaugeType(id) && config.gauge_expand || $$.isPieType(id) && config.pie_expand; + }, + shouldShowArcLabel() { + const $$ = this; + const { config } = $$; + return ["donut", "gauge", "pie", "polar"].some((v) => $$.hasType(v) && config[`${v}_label_show`]); + }, + getArcLabelFormat() { + const $$ = this; + const { config } = $$; + let format = (v) => v; + ["donut", "gauge", "pie", "polar"].filter($$.hasType.bind($$)).forEach((v) => { + format = config[`${v}_label_format`]; + }); + return isFunction(format) ? format.bind($$.api) : format; + }, + updateTargetsForArc(targets) { + const $$ = this; + const { $el } = $$; + const hasGauge = $$.hasType("gauge"); + const classChartArc = $$.getChartClass("Arc"); + const classArcs = $$.getClass("arcs", true); + const classFocus = $$.classFocus.bind($$); + const chartArcs = $el.main.select(`.${$ARC.chartArcs}`); + const mainPieUpdate = chartArcs.selectAll(`.${$ARC.chartArc}`).data($$.pie(targets)).attr("class", (d) => classChartArc(d) + classFocus(d.data)); + const mainPieEnter = mainPieUpdate.enter().append("g").attr("class", classChartArc).call( + this.setCssRule(false, `.${$ARC.chartArcs} text`, [ + "pointer-events:none", + "text-anchor:middle" + ]) + ); + mainPieEnter.append("g").attr("class", classArcs).merge(mainPieUpdate); + mainPieEnter.append("text").attr("dy", hasGauge && !$$.hasMultiTargets() ? "-.1em" : ".35em").style("opacity", "0").style("text-anchor", $$.getStylePropValue("middle")).style("pointer-events", $$.getStylePropValue("none")); + $el.text = chartArcs.selectAll(`.${$COMMON.target} text`); + }, + initArc() { + const $$ = this; + const { $el } = $$; + $el.arcs = $el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $ARC.chartArcs).attr("transform", $$.getTranslate("arc")); + $$.setArcTitle(); + }, + /** + * Set arc title text + * @param {string} str Title text + * @private + */ + setArcTitle(str) { + const $$ = this; + const title = str || $$.getArcTitle(); + const hasGauge = $$.hasType("gauge"); + if (title) { + const className = hasGauge ? $GAUGE.chartArcsGaugeTitle : $ARC.chartArcsTitle; + let text = $$.$el.arcs.select(`.${className}`); + if (text.empty()) { + text = $$.$el.arcs.append("text").attr("class", className).style("text-anchor", "middle"); + } + hasGauge && text.attr("dy", "-0.3em"); + setTextValue(text, title, hasGauge ? void 0 : [-0.6, 1.35], true); + } + }, + /** + * Return arc title text + * @returns {string} Arc title text + * @private + */ + getArcTitle() { + const $$ = this; + const type = $$.hasType("donut") && "donut" || $$.hasType("gauge") && "gauge"; + return type ? $$.config[`${type}_title`] : ""; + }, + /** + * Get arc title text with needle value + * @returns {string|boolean} When title contains needle template string will return processed string, otherwise false + * @private + */ + getArcTitleWithNeedleValue() { + const $$ = this; + const { config, state } = $$; + const title = $$.getArcTitle(); + if (title && $$.config.arc_needle_show && /{=[A-Z_]+}/.test(title)) { + let value = state.current.needle; + if (!isNumber(value)) { + value = config.arc_needle_value; + } + return tplProcess(title, { + NEEDLE_VALUE: isNumber(value) ? value : 0 + }); + } + return false; + }, + redrawArc(duration, durationForExit, withTransform) { + const $$ = this; + const { config, state, $el: { main } } = $$; + const hasInteraction = config.interaction_enabled; + const isSelectable = hasInteraction && config.data_selection_isselectable; + let mainArc = main.selectAll(`.${$ARC.arcs}`).selectAll(`.${$ARC.arc}`).data($$.arcData.bind($$)); + mainArc.exit().transition().duration(durationForExit).style("opacity", "0").remove(); + mainArc = mainArc.enter().append("path").attr("class", $$.getClass("arc", true)).style("fill", (d) => $$.color(d.data)).style("cursor", (d) => { + var _a; + return ((_a = isSelectable == null ? void 0 : isSelectable.bind) == null ? void 0 : _a.call(isSelectable, $$.api)(d)) ? "pointer" : null; + }).style("opacity", "0").each(function(d) { + if ($$.isGaugeType(d.data)) { + d.startAngle = config.gauge_startingAngle; + d.endAngle = config.gauge_startingAngle; + } + this._current = d; + }).merge(mainArc); + if ($$.hasType("gauge")) { + $$.updateGaugeMax(); + $$.hasMultiArcGauge() && $$.redrawArcGaugeLine(); + } + mainArc.attr("transform", (d) => !$$.isGaugeType(d.data) && withTransform ? "scale(0)" : "").style("opacity", function(d) { + return d === this._current ? "0" : null; + }).each(() => { + state.transiting = true; + }).transition().duration(duration).attrTween("d", function(d) { + const updated = $$.updateAngle(d); + if (!updated) { + return () => "M 0 0"; + } + if (isNaN(this._current.startAngle)) { + this._current.startAngle = 0; + } + if (isNaN(this._current.endAngle)) { + this._current.endAngle = this._current.startAngle; + } + const interpolate = (0,external_commonjs_d3_interpolate_commonjs2_d3_interpolate_amd_d3_interpolate_root_d3_.interpolate)(this._current, updated); + this._current = interpolate(0); + return function(t) { + const interpolated = interpolate(t); + interpolated.data = d.data; + return $$.getArc(interpolated, true); + }; + }).attr("transform", withTransform ? "scale(1)" : "").style("fill", (d) => { + let color; + if ($$.levelColor) { + color = $$.levelColor(d.data.values[0].value); + config.data_colors[d.data.id] = color; + } else { + color = $$.color(d.data); + } + return color; + }).style("opacity", null).call(endall, function() { + if ($$.levelColor) { + const path = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + const d = path.datum(this._current); + $$.updateLegendItemColor(d.data.id, path.style("fill")); + } + state.transiting = false; + callFn(config.onrendered, $$.api); + }); + hasInteraction && $$.bindArcEvent(mainArc); + $$.hasType("polar") && $$.redrawPolar(); + $$.hasType("gauge") && $$.redrawBackgroundArcs(); + config.arc_needle_show && $$.redrawNeedle(); + $$.redrawArcText(duration); + $$.redrawArcRangeText(); + }, + /** + * Update needle element + * @private + */ + redrawNeedle() { + const $$ = this; + const { $el, config, state: { hiddenTargetIds, radius } } = $$; + const length = (radius - 1) / 100 * config.arc_needle_length; + const hasDataToShow = hiddenTargetIds.length !== $$.data.targets.length; + let needle = $$.$el.arcs.select(`.${$ARC.needle}`); + const pathFn = config.arc_needle_path; + const baseWidth = config.arc_needle_bottom_width / 2; + const topWidth = config.arc_needle_top_width / 2; + const topRx = config.arc_needle_top_rx; + const topRy = config.arc_needle_top_ry; + const bottomLen = config.arc_needle_bottom_len; + const bottomRx = config.arc_needle_bottom_rx; + const bottomRy = config.arc_needle_bottom_ry; + const needleAngle = $$.getNeedleAngle(); + const updateNeedleValue = () => { + const title = $$.getArcTitleWithNeedleValue(); + title && $$.setArcTitle(title); + }; + updateNeedleValue(); + if (needle.empty()) { + needle = $el.arcs.append("path").classed($ARC.needle, true); + $el.needle = needle; + $el.needle.updateHelper = (v, updateConfig = false) => { + if ($el.needle.style("display") !== "none") { + $$.$T($el.needle).style("transform", `rotate(${$$.getNeedleAngle(v)}deg)`).call(endall, () => { + updateConfig && (config.arc_needle_value = v); + updateNeedleValue(); + }); + } + }; + } + if (hasDataToShow) { + const path = isFunction(pathFn) ? pathFn.call($$, length) : `M-${baseWidth} ${bottomLen} A${bottomRx} ${bottomRy} 0 0 0 ${baseWidth} ${bottomLen} L${topWidth} -${length} A${topRx} ${topRy} 0 0 0 -${topWidth} -${length} L-${baseWidth} ${bottomLen} Z`; + $$.$T(needle).attr("d", path).style("fill", config.arc_needle_color).style("display", null).style("transform", `rotate(${needleAngle}deg)`); + } else { + needle.style("display", "none"); + } + }, + /** + * Get needle angle value relative given value + * @param {number} v Value to be calculated angle + * @returns {number} angle value + * @private + */ + getNeedleAngle(v) { + const $$ = this; + const { config, state } = $$; + const arcLength = $$.getArcLength(); + const hasGauge = $$.hasType("gauge"); + const total = $$.getTotalDataSum(true); + let value = isDefined(v) ? v : config.arc_needle_value; + let startingAngle = config[`${config.data_type}_startingAngle`] || 0; + let radian = 0; + if (!isNumber(value)) { + value = hasGauge && $$.data.targets.length === 1 ? total : 0; + } + state.current.needle = value; + if (hasGauge) { + startingAngle = $$.getStartingAngle(); + const radius = config.gauge_fullCircle ? arcLength : startingAngle * -2; + const { gauge_min: min, gauge_max: max } = config; + radian = radius * ((value - min) / (max - min)); + } else { + radian = arcLength * (value / total); + } + return (startingAngle + radian) * (180 / Math.PI); + }, + redrawBackgroundArcs() { + const $$ = this; + const { config, state } = $$; + const hasMultiArcGauge = $$.hasMultiArcGauge(); + const isFullCircle = config.gauge_fullCircle; + const showEmptyTextLabel = $$.filterTargetsToShow($$.data.targets).length === 0 && !!config.data_empty_label_text; + const startAngle = $$.getStartingAngle(); + const endAngle = isFullCircle ? startAngle + $$.getArcLength() : startAngle * -1; + let backgroundArc = $$.$el.arcs.select( + `${hasMultiArcGauge ? "g" : ""}.${$ARC.chartArcsBackground}` + ); + if (hasMultiArcGauge) { + let index = 0; + backgroundArc = backgroundArc.selectAll(`path.${$ARC.chartArcsBackground}`).data($$.data.targets); + backgroundArc.enter().append("path").attr("class", (d, i) => `${$ARC.chartArcsBackground} ${$ARC.chartArcsBackground}-${i}`).merge(backgroundArc).style("fill", config.gauge_background || null).attr("d", ({ id }) => { + if (showEmptyTextLabel || state.hiddenTargetIds.indexOf(id) >= 0) { + return "M 0 0"; + } + const d = { + data: [{ value: config.gauge_max }], + startAngle, + endAngle, + index: index++ + }; + return $$.getArc(d, true, true); + }); + backgroundArc.exit().remove(); + } else { + backgroundArc.attr("d", showEmptyTextLabel ? "M 0 0" : () => { + const d = { + data: [{ value: config.gauge_max }], + startAngle, + endAngle + }; + return $$.getArc(d, true, true); + }); + } + }, + bindArcEvent(arc) { + const $$ = this; + const { config, state } = $$; + const isTouch = state.inputType === "touch"; + const isMouse = state.inputType === "mouse"; + function selectArc(_this, arcData, id) { + $$.expandArc(id); + $$.api.focus(id); + $$.toggleFocusLegend(id, true); + $$.showTooltip([arcData], _this); + } + function unselectArc(arcData) { + const id = (arcData == null ? void 0 : arcData.id) || void 0; + $$.unexpandArc(id); + $$.api.revert(); + $$.revertLegend(); + $$.hideTooltip(); + } + arc.on("click", function(event, d, i) { + var _a; + const updated = $$.updateAngle(d); + let arcData; + if (updated) { + arcData = $$.convertToArcData(updated); + (_a = $$.toggleShape) == null ? void 0 : _a.call($$, this, arcData, i); + config.data_onclick.bind($$.api)(arcData, this); + } + }); + if (isMouse) { + arc.on("mouseover", function(event, d) { + if (state.transiting) { + return; + } + state.event = event; + const updated = $$.updateAngle(d); + const arcData = updated ? $$.convertToArcData(updated) : null; + const id = (arcData == null ? void 0 : arcData.id) || void 0; + selectArc(this, arcData, id); + $$.setOverOut(true, arcData); + }).on("mouseout", (event, d) => { + if (state.transiting) { + return; + } + state.event = event; + const updated = $$.updateAngle(d); + const arcData = updated ? $$.convertToArcData(updated) : null; + unselectArc(); + $$.setOverOut(false, arcData); + }).on("mousemove", function(event, d) { + const updated = $$.updateAngle(d); + const arcData = updated ? $$.convertToArcData(updated) : null; + state.event = event; + $$.showTooltip([arcData], this); + }); + } + if (isTouch && $$.hasArcType() && !$$.radars) { + const getEventArc = (event) => { + var _a, _b; + const { clientX, clientY } = (_b = (_a = event.changedTouches) == null ? void 0 : _a[0]) != null ? _b : { clientX: 0, clientY: 0 }; + const eventArc = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(browser_doc.elementFromPoint(clientX, clientY)); + return eventArc; + }; + $$.$el.svg.on("touchstart touchmove", function(event) { + if (state.transiting) { + return; + } + state.event = event; + const eventArc = getEventArc(event); + const datum = eventArc.datum(); + const updated = (datum == null ? void 0 : datum.data) && datum.data.id ? $$.updateAngle(datum) : null; + const arcData = updated ? $$.convertToArcData(updated) : null; + const id = (arcData == null ? void 0 : arcData.id) || void 0; + $$.callOverOutForTouch(arcData); + isUndefined(id) ? unselectArc() : selectArc(this, arcData, id); + }); + } + }, + redrawArcText(duration) { + const $$ = this; + const { config, state, $el: { main, arcs } } = $$; + const hasGauge = $$.hasType("gauge"); + const hasMultiArcGauge = $$.hasMultiArcGauge(); + let text; + if (!(hasGauge && $$.data.targets.length === 1 && config.gauge_title)) { + text = main.selectAll(`.${$ARC.chartArc}`).select("text").style("opacity", "0").attr("class", (d) => $$.isGaugeType(d.data) ? $GAUGE.gaugeValue : null).call($$.textForArcLabel.bind($$)).attr("transform", (d) => $$.transformForArcLabel.bind($$)(d)).style("font-size", (d) => $$.isGaugeType(d.data) && $$.data.targets.length === 1 && !hasMultiArcGauge ? `${Math.round(state.radius / 5)}px` : null).transition().duration(duration).style( + "opacity", + (d) => $$.isTargetToShow(d.data.id) && $$.isArcType(d.data) ? null : "0" + ); + hasMultiArcGauge && text.attr("dy", "-.1em"); + } + main.select(`.${$ARC.chartArcsTitle}`).style("opacity", $$.hasType("donut") || hasGauge ? null : "0"); + if (hasGauge) { + const isFullCircle = config.gauge_fullCircle; + isFullCircle && (text == null ? void 0 : text.attr("dy", `${hasMultiArcGauge ? 0 : Math.round(state.radius / 14)}`)); + if (config.gauge_label_show) { + arcs.select(`.${$GAUGE.chartArcsGaugeUnit}`).attr("dy", `${isFullCircle ? 1.5 : 0.75}em`).text(config.gauge_units); + arcs.select(`.${$GAUGE.chartArcsGaugeMin}`).attr("dx", `${-1 * (state.innerRadius + (state.radius - state.innerRadius) / (isFullCircle ? 1 : 2))}px`).attr("dy", "1.2em").text($$.textForGaugeMinMax(config.gauge_min, false)); + !isFullCircle && arcs.select(`.${$GAUGE.chartArcsGaugeMax}`).attr("dx", `${state.innerRadius + (state.radius - state.innerRadius) / 2}px`).attr("dy", "1.2em").text($$.textForGaugeMinMax(config.gauge_max, true)); + } + } + }, + /** + * Get Arc element by id or index + * @param {string|number} value id or index of Arc + * @returns {d3Selection} Arc path element + * @private + */ + getArcElementByIdOrIndex(value) { + const $$ = this; + const { $el: { arcs } } = $$; + const filterFn = isNumber(value) ? (d) => d.index === value : (d) => d.data.id === value; + return arcs == null ? void 0 : arcs.selectAll(`.${$COMMON.target} path`).filter(filterFn); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/area.ts + + + + +/* harmony default export */ var shape_area = ({ + initArea(mainLine) { + const $$ = this; + const { config } = $$; + mainLine.insert("g", `.${config.area_front ? $CIRCLE.circles : $LINE.lines}`).attr("class", $$.getClass("areas", true)); + }, + /** + * Update area color + * @param {object} d Data object + * @returns {string} Color string + * @private + */ + updateAreaColor(d) { + const $$ = this; + return $$.config.area_linearGradient ? $$.getGradienColortUrl(d.id) : $$.color(d); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateArea(withTransition, isSub = false) { + const $$ = this; + const { config, state, $el, $T } = $$; + const $root = isSub ? $el.subchart : $el; + config.area_linearGradient && $$.updateLinearGradient(); + const area = $root.main.selectAll(`.${$AREA.areas}`).selectAll(`.${$AREA.area}`).data($$.lineData.bind($$)); + $T(area.exit(), withTransition).style("opacity", "0").remove(); + $root.area = area.enter().append("path").attr("class", $$.getClass("area", true)).style("fill", $$.updateAreaColor.bind($$)).style("opacity", function() { + state.orgAreaOpacity = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).style("opacity"); + return "0"; + }).merge(area); + area.style("opacity", state.orgAreaOpacity); + $$.setRatioForGroupedData($root.area.data()); + }, + /** + * Redraw function + * @param {Function} drawFn Retuned functino from .generateDrawCandlestick() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + */ + redrawArea(drawFn, withTransition, isSub = false) { + const $$ = this; + const { area } = isSub ? this.$el.subchart : this.$el; + const { orgAreaOpacity } = $$.state; + return [ + $$.$T(area, withTransition, getRandom()).attr("d", drawFn).style("fill", $$.updateAreaColor.bind($$)).style( + "opacity", + (d) => String($$.isAreaRangeType(d) ? orgAreaOpacity / 1.75 : orgAreaOpacity) + ) + ]; + }, + /** + * Generate area path data + * @param {object} areaIndices Indices + * @param {boolean} isSub Weather is sub axis + * @returns {Function} + * @private + */ + generateDrawArea(areaIndices, isSub) { + const $$ = this; + const { config } = $$; + const lineConnectNull = config.line_connectNull; + const isRotated = config.axis_rotated; + const getPoints = $$.generateGetAreaPoints(areaIndices, isSub); + const yScale = $$.getYScaleById.bind($$); + const xValue = (d) => (isSub ? $$.subxx : $$.xx).call($$, d); + const value0 = (d, i) => $$.isGrouped(d.id) ? getPoints(d, i)[0][1] : yScale(d.id, isSub)( + $$.isAreaRangeType(d) ? $$.getRangedData(d, "high") : $$.getShapeYMin(d.id) + ); + const value1 = (d, i) => $$.isGrouped(d.id) ? getPoints(d, i)[1][1] : yScale(d.id, isSub)( + $$.isAreaRangeType(d) ? $$.getRangedData(d, "low") : d.value + ); + return (d) => { + let values = lineConnectNull ? $$.filterRemoveNull(d.values) : d.values; + let x0 = 0; + let y0 = 0; + let path; + if ($$.isAreaType(d)) { + let area = (0,external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.area)(); + area = isRotated ? area.y(xValue).x0(value0).x1(value1) : area.x(xValue).y0(config.area_above ? 0 : config.area_below ? $$.state.height : value0).y1(value1); + if (!lineConnectNull) { + area = area.defined((d2) => $$.getBaseValue(d2) !== null); + } + if ($$.isStepType(d)) { + values = $$.convertValuesToStep(values); + } + path = area.curve($$.getCurve(d))(values); + } else { + if (values[0]) { + x0 = $$.scale.x(values[0].x); + y0 = $$.getYScaleById(d.id)(values[0].value); + } + path = isRotated ? `M ${y0} ${x0}` : `M ${x0} ${y0}`; + } + return path || "M 0 0"; + }; + }, + generateGetAreaPoints(areaIndices, isSub) { + const $$ = this; + const { config } = $$; + const x = $$.getShapeX(0, areaIndices, isSub); + const y = $$.getShapeY(!!isSub); + const areaOffset = $$.getShapeOffset($$.isAreaType, areaIndices, isSub); + const yScale = $$.getYScaleById.bind($$); + return function(d, i) { + const y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id)); + const offset = areaOffset(d, i) || y0; + const posX = x(d); + const value = d.value; + let posY = y(d); + if (config.axis_rotated && (value > 0 && posY < y0 || value < 0 && y0 < posY)) { + posY = y0; + } + return [ + [posX, offset], + [posX, posY - (y0 - offset)], + [posX, posY - (y0 - offset)], + // needed for compatibility + [posX, offset] + // needed for compatibility + ]; + }; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/bar.ts + + +/* harmony default export */ var bar = ({ + initBar() { + const { $el, config, state: { clip } } = this; + $el.bar = $el.main.select(`.${$COMMON.chart}`); + $el.bar = config.bar_front ? $el.bar.append("g") : $el.bar.insert("g", ":first-child"); + $el.bar.attr("class", $BAR.chartBars).call(this.setCssRule(false, `.${$BAR.chartBars}`, ["pointer-events:none"])); + if (config.clipPath === false && (config.bar_radius || config.bar_radius_ratio)) { + $el.bar.attr("clip-path", clip.pathXAxis.replace(/#[^)]*/, `#${clip.id}`)); + } + }, + updateTargetsForBar(targets) { + const $$ = this; + const { config, $el } = $$; + const classChartBar = $$.getChartClass("Bar"); + const classBars = $$.getClass("bars", true); + const classFocus = $$.classFocus.bind($$); + const isSelectable = config.interaction_enabled && config.data_selection_isselectable; + if (!$el.bar) { + $$.initBar(); + } + const mainBarUpdate = $el.main.select(`.${$BAR.chartBars}`).selectAll(`.${$BAR.chartBar}`).data( + // remove + targets.filter( + (v) => v.values.some((d) => isNumber(d.value) || $$.isBarRangeType(d)) + ) + ).attr("class", (d) => classChartBar(d) + classFocus(d)); + const mainBarEnter = mainBarUpdate.enter().append("g").attr("class", classChartBar).style("opacity", "0").style("pointer-events", $$.getStylePropValue("none")); + mainBarEnter.append("g").attr("class", classBars).style("cursor", (d) => { + var _a; + return ((_a = isSelectable == null ? void 0 : isSelectable.bind) == null ? void 0 : _a.call(isSelectable, $$.api)(d)) ? "pointer" : null; + }).call($$.setCssRule(true, ` .${$BAR.bar}`, ["fill"], $$.color)); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateBar(withTransition, isSub = false) { + const $$ = this; + const { config, $el, $T } = $$; + const $root = isSub ? $el.subchart : $el; + const classBar = $$.getClass("bar", true); + const initialOpacity = $$.initialOpacity.bind($$); + config.bar_linearGradient && $$.updateLinearGradient(); + const bar = $root.main.selectAll(`.${$BAR.bars}`).selectAll(`.${$BAR.bar}`).data($$.labelishData.bind($$)); + $T(bar.exit(), withTransition).style("opacity", "0").remove(); + $root.bar = bar.enter().append("path").attr("class", classBar).style("fill", $$.updateBarColor.bind($$)).merge(bar).style("opacity", initialOpacity); + $$.setRatioForGroupedData($root.bar.data()); + }, + /** + * Update bar color + * @param {object} d Data object + * @returns {string} Color string + * @private + */ + updateBarColor(d) { + const $$ = this; + const fn = $$.getStylePropValue($$.color); + return $$.config.bar_linearGradient ? $$.getGradienColortUrl(d.id) : fn ? fn(d) : null; + }, + /** + * Redraw function + * @param {Function} drawFn Retuned function from .getDrawShape() => .generateDrawBar() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + * @private + */ + redrawBar(drawFn, withTransition, isSub = false) { + const $$ = this; + const { bar } = isSub ? $$.$el.subchart : $$.$el; + return [ + $$.$T(bar, withTransition, getRandom()).attr("d", (d) => (isNumber(d.value) || $$.isBarRangeType(d)) && drawFn(d)).style("fill", $$.updateBarColor.bind($$)).style("opacity", null) + ]; + }, + /** + * Generate draw function + * @param {object} barIndices data order within x axis. + * barIndices ==> {data1: 0, data2: 0, data3: 1, data4: 1, __max__: 1} + * + * When gropus given as: + * groups: [ + * ["data1", "data2"], + * ["data3", "data4"] + * ], + * + * Will be rendered as: + * data1 data3 data1 data3 + * data2 data4 data2 data4 + * ------------------------- + * 0 1 + * @param {boolean} isSub If is for subchart + * @returns {Function} + * @private + */ + generateDrawBar(barIndices, isSub) { + const $$ = this; + const { config } = $$; + const getPoints = $$.generateGetBarPoints(barIndices, isSub); + const isRotated = config.axis_rotated; + const barRadius = config.bar_radius; + const barRadiusRatio = config.bar_radius_ratio; + const getRadius = isNumber(barRadius) && barRadius > 0 ? () => barRadius : isNumber(barRadiusRatio) ? (w) => w * barRadiusRatio : null; + return (d, i) => { + const points = getPoints(d, i); + const indexX = +isRotated; + const indexY = +!indexX; + const isUnderZero = d.value < 0; + const isInverted = config[`axis_${$$.axis.getId(d.id)}_inverted`]; + const isNegative = !isInverted && isUnderZero || isInverted && !isUnderZero; + const pathRadius = ["", ""]; + let radius = 0; + const isGrouped = $$.isGrouped(d.id); + const isRadiusData = getRadius && isGrouped ? $$.isStackingRadiusData(d) : false; + if (getRadius) { + const index = isRotated ? indexY : indexX; + const barW = points[2][index] - points[0][index]; + radius = !isGrouped || isRadiusData ? getRadius(barW) : 0; + const arc = `a${radius},${radius} ${isNegative ? `1 0 0` : `0 0 1`} `; + pathRadius[+!isRotated] = `${arc}${radius},${radius}`; + pathRadius[+isRotated] = `${arc}${[-radius, radius][isRotated ? "sort" : "reverse"]()}`; + isNegative && pathRadius.reverse(); + } + const path = isRotated ? `H${points[1][indexX] + (isNegative ? radius : -radius)} ${pathRadius[0]}V${points[2][indexY] - radius} ${pathRadius[1]}H${points[3][indexX]}` : `V${points[1][indexY] + (isNegative ? -radius : radius)} ${pathRadius[0]}H${points[2][indexX] - radius} ${pathRadius[1]}V${points[3][indexY]}`; + return `M${points[0][indexX]},${points[0][indexY]}${path}z`; + }; + }, + /** + * Determine if given stacking bar data is radius type + * @param {object} d Data row + * @returns {boolean} + */ + isStackingRadiusData(d) { + const $$ = this; + const { $el, config, data, state } = $$; + const { id, index, value } = d; + if (state.hiddenTargetIds.indexOf(id) > -1) { + const target = $el.bar.filter((d2) => d2.id === id && d2.value === value); + return !target.empty() && /a\d+/i.test(target.attr("d")); + } + const keys = config.data_groups.find((v) => v.indexOf(id) > -1); + const sortedList = $$.orderTargets( + $$.filterTargetsToShow(data.targets.filter($$.isBarType, $$)) + ).filter((v) => keys.indexOf(v.id) > -1); + const sortedIds = sortedList.map( + (v) => v.values.filter( + (v2) => v2.index === index && (isNumber(value) && value > 0 ? v2.value > 0 : v2.value < 0) + )[0] + ).filter(Boolean).map((v) => v.id); + return value !== 0 && sortedIds.indexOf(id) === sortedIds.length - 1; + }, + /** + * Generate bar coordinate points data + * @param {object} barIndices Data order within x axis. + * @param {boolean} isSub If is for subchart + * @returns {Array} Array of coordinate points + * @private + */ + generateGetBarPoints(barIndices, isSub) { + const $$ = this; + const { config } = $$; + const axis = isSub ? $$.axis.subX : $$.axis.x; + const barTargetsNum = $$.getIndicesMax(barIndices) + 1; + const barW = $$.getBarW("bar", axis, barTargetsNum); + const barX = $$.getShapeX(barW, barIndices, !!isSub); + const barY = $$.getShapeY(!!isSub); + const barOffset = $$.getShapeOffset($$.isBarType, barIndices, !!isSub); + const yScale = $$.getYScaleById.bind($$); + return (d, i) => { + const { id } = d; + const y0 = yScale.call($$, id, isSub)($$.getShapeYMin(id)); + const offset = barOffset(d, i) || y0; + const width = isNumber(barW) ? barW : barW[d.id] || barW._$width; + const isInverted = config[`axis_${$$.axis.getId(id)}_inverted`]; + const value = d.value; + const posX = barX(d); + let posY = barY(d); + if (config.axis_rotated && !isInverted && (value > 0 && posY < y0 || value < 0 && y0 < posY)) { + posY = y0; + } + if (!$$.isBarRangeType(d)) { + posY -= y0 - offset; + } + const startPosX = posX + width; + return [ + [posX, offset], + [posX, posY], + [startPosX, posY], + [startPosX, offset] + ]; + }; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/bubble.ts + + +/* harmony default export */ var bubble = ({ + /** + * Initializer + * @private + */ + initBubble() { + const $$ = this; + const { config } = $$; + if ($$.hasType("bubble")) { + config.point_show = true; + config.point_type = "circle"; + } + }, + /** + * Get user agent's computed value + * @returns {number} + * @private + */ + getBaseLength() { + const $$ = this; + const { width, height } = $$.state; + const cacheKey = KEY.bubbleBaseLength; + let baseLength = $$.cache.get(cacheKey); + if (!baseLength) { + $$.cache.add(cacheKey, baseLength = getMinMax("min", [width, height])); + } + return baseLength; + }, + /** + * Get the radius value for bubble circle + * @param {object} d Data object + * @returns {number} + * @private + */ + getBubbleR(d) { + const $$ = this; + let maxR = $$.config.bubble_maxR; + if (isFunction(maxR)) { + maxR = maxR.bind($$.api)(d); + } else if (!isNumber(maxR)) { + maxR = $$.getBaseLength() / ($$.getMaxDataCount() * 2) + 12; + } + const max = getMinMax("max", $$.getMinMaxData().max.map((d2) => $$.isBubbleZType(d2) ? $$.getBubbleZData(d2.value, "y") : isObject(d2.value) ? d2.value.mid : d2.value)); + const maxArea = maxR * maxR * Math.PI; + const area = ($$.isBubbleZType(d) ? $$.getBubbleZData(d.value, "z") : d.value) * (maxArea / max); + return Math.sqrt(area / Math.PI); + }, + /** + * Get bubble dimension data + * @param {object|Array} d data value + * @param {string} type - y or z + * @returns {number} + * @private + */ + getBubbleZData(d, type) { + return isObject(d) ? d[type] : d[type === "y" ? 0 : 1]; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/candlestick.ts +var candlestick_defProp = Object.defineProperty; +var candlestick_getOwnPropSymbols = Object.getOwnPropertySymbols; +var candlestick_hasOwnProp = Object.prototype.hasOwnProperty; +var candlestick_propIsEnum = Object.prototype.propertyIsEnumerable; +var candlestick_defNormalProp = (obj, key, value) => key in obj ? candlestick_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var candlestick_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (candlestick_hasOwnProp.call(b, prop)) + candlestick_defNormalProp(a, prop, b[prop]); + if (candlestick_getOwnPropSymbols) + for (var prop of candlestick_getOwnPropSymbols(b)) { + if (candlestick_propIsEnum.call(b, prop)) + candlestick_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + +/* harmony default export */ var candlestick = ({ + initCandlestick() { + const { $el } = this; + $el.candlestick = $el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $CANDLESTICK.chartCandlesticks); + }, + /** + * Update targets by its data + * called from: ChartInternal.updateTargets() + * @param {Array} targets Filtered target by type + * @private + */ + updateTargetsForCandlestick(targets) { + const $$ = this; + const { $el } = $$; + const classChart = $$.getChartClass("Candlestick"); + if (!$el.candlestick) { + $$.initCandlestick(); + } + const mainUpdate = $$.$el.main.select(`.${$CANDLESTICK.chartCandlesticks}`).selectAll(`.${$CANDLESTICK.chartCandlestick}`).data(targets); + mainUpdate.enter().append("g").attr("class", classChart).style("pointer-events", "none"); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateCandlestick(withTransition, isSub = false) { + const $$ = this; + const { $el, $T } = $$; + const $root = isSub ? $el.subchart : $el; + const classSetter = $$.getClass("candlestick", true); + const initialOpacity = $$.initialOpacity.bind($$); + const candlestick = $root.main.selectAll(`.${$CANDLESTICK.chartCandlestick}`).selectAll(`.${$CANDLESTICK.candlestick}`).data($$.labelishData.bind($$)); + $T(candlestick.exit(), withTransition).style("opacity", "0").remove(); + const candlestickEnter = candlestick.enter().filter((d) => d.value).append("g").attr("class", classSetter); + candlestickEnter.append("line"); + candlestickEnter.append("path"); + $root.candlestick = candlestick.merge(candlestickEnter).style("opacity", initialOpacity); + }, + /** + * Get draw function + * @param {object} indices Indice data + * @param {boolean} isSub Subchart draw + * @returns {Function} + * @private + */ + generateDrawCandlestick(indices, isSub) { + const $$ = this; + const { config } = $$; + const getPoints = $$.generateGetCandlestickPoints(indices, isSub); + const isRotated = config.axis_rotated; + const downColor = config.candlestick_color_down; + return (d, i, g) => { + const points = getPoints(d, i); + const value = $$.getCandlestickData(d); + const isUp = value == null ? void 0 : value._isUp; + const indexX = +isRotated; + const indexY = +!indexX; + if (g.classed) { + g.classed($CANDLESTICK[isUp ? "valueUp" : "valueDown"], true); + } + const path = isRotated ? `H${points[1][1]} V${points[1][0]} H${points[0][1]}` : `V${points[1][1]} H${points[1][0]} V${points[0][1]}`; + g.select("path").attr("d", `M${points[0][indexX]},${points[0][indexY]}${path}z`).style("fill", (d2) => { + const color = isUp ? $$.color(d2) : isObject(downColor) ? downColor[d2.id] : downColor; + return color || $$.color(d2); + }); + const line = g.select("line"); + const pos = isRotated ? { + x1: points[2][1], + x2: points[2][2], + y1: points[2][0], + y2: points[2][0] + } : { + x1: points[2][0], + x2: points[2][0], + y1: points[2][1], + y2: points[2][2] + }; + for (const x in pos) { + line.attr(x, pos[x]); + } + }; + }, + /** + * Generate shape drawing points + * @param {object} indices Indice data + * @param {boolean} isSub Subchart draw + * @returns {Function} + */ + generateGetCandlestickPoints(indices, isSub = false) { + const $$ = this; + const axis = isSub ? $$.axis.subX : $$.axis.x; + const targetsNum = $$.getIndicesMax(indices) + 1; + const barW = $$.getBarW("candlestick", axis, targetsNum); + const x = $$.getShapeX(barW, indices, !!isSub); + const y = $$.getShapeY(!!isSub); + const shapeOffset = $$.getShapeOffset($$.isBarType, indices, !!isSub); + const yScale = $$.getYScaleById.bind($$); + return (d, i) => { + const y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id)); + const offset = shapeOffset(d, i) || y0; + const width = isNumber(barW) ? barW : barW[d.id] || barW._$width; + const value = $$.getCandlestickData(d); + let points; + if (value && isNumber(value.open) && isNumber(value.close)) { + const posX = { + start: x(d), + end: 0 + }; + posX.end = posX.start + width; + const posY = { + start: y(value.open), + end: y(value.close) + }; + const posLine = { + x: posX.start + width / 2, + high: y(value.high), + low: y(value.low) + }; + posY.start -= y0 - offset; + points = [ + [posX.start, posY.start], + [posX.end, posY.end], + [posLine.x, posLine.low, posLine.high] + ]; + } else { + points = [[0, 0], [0, 0], [0, 0, 0]]; + } + return points; + }; + }, + /** + * Redraw function + * @param {Function} drawFn Retuned functino from .generateDrawCandlestick() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + */ + redrawCandlestick(drawFn, withTransition, isSub = false) { + const $$ = this; + const { $el, $T } = $$; + const { candlestick } = isSub ? $el.subchart : $el; + const rand = getRandom(true); + return [ + candlestick.each(function(d, i) { + const g = $T((0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this), withTransition, rand); + drawFn(d, i, g); + }).style("opacity", null) + ]; + }, + /** + * Get candlestick data as object + * @param {object} param Data object + * @param {Array|object} param.value Data value + * @returns {object|null} Converted data object + * @private + */ + getCandlestickData({ value }) { + let d; + if (isArray(value)) { + const [open, high, low, close, volume = false] = value; + d = { open, high, low, close }; + if (volume !== false) { + d.volume = volume; + } + } else if (isObject(value)) { + d = candlestick_spreadValues({}, value); + } + if (d) { + d._isUp = d.close >= d.open; + } + return d || null; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/funnel.ts +var funnel_defProp = Object.defineProperty; +var funnel_getOwnPropSymbols = Object.getOwnPropertySymbols; +var funnel_hasOwnProp = Object.prototype.hasOwnProperty; +var funnel_propIsEnum = Object.prototype.propertyIsEnumerable; +var funnel_defNormalProp = (obj, key, value) => key in obj ? funnel_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var funnel_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (funnel_hasOwnProp.call(b, prop)) + funnel_defNormalProp(a, prop, b[prop]); + if (funnel_getOwnPropSymbols) + for (var prop of funnel_getOwnPropSymbols(b)) { + if (funnel_propIsEnum.call(b, prop)) + funnel_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + +function getSize(checkNeck = false) { + const $$ = this; + const { config, state: { current: { width, height } } } = $$; + const padding = $$.getCurrentPadding(); + const size = funnel_spreadValues({ + width: width - (padding.left + padding.right), + height: height - (config.legend_show ? $$.getLegendHeight() + 10 : 0) - (padding.top + padding.bottom) + }, padding); + if (checkNeck) { + const { width: neckWidth, height: neckHeight } = getNecklSize.call($$, { + width: size.width, + height: size.height + }); + if (size.width < neckWidth) { + size.width = neckWidth; + } + if (size.height < neckHeight) { + size.height = neckHeight; + } + } + return size; +} +function getNecklSize(current) { + const $$ = this; + const { config } = $$; + let width = config.funnel_neck_width; + let height = config.funnel_neck_height; + [width, height] = [width, height].map((v, i) => { + let size = v; + if (isObject(v)) { + size = current[i ? "height" : "width"] * v.ratio; + } + return size; + }); + return { + width, + height + }; +} +function getCoord(d) { + const $$ = this; + const { top, left, width } = getSize.call($$, true); + const coords = []; + d.forEach((d2, i) => { + const { ratio } = d2; + const y = i > 0 ? coords[i - 1][2][1] : top; + coords.push(d2.coords = [ + [left, y], + // M + [left + width, y], + // 1 + [left + width, i > 0 ? ratio + y : ratio + top], + // 2 + [left, i > 0 ? ratio + y : ratio + top], + // 3 + [left, y] + // 4 + ]); + }); + return coords; +} +function getClipPath(forBackground = false) { + const $$ = this; + const { width, height, top, left } = getSize.call($$, true); + const neck = getNecklSize.call($$, { width, height }); + const leftX = (width - neck.width) / 2; + const rightX = (width + neck.width) / 2; + const bodyHeigth = height - neck.height; + const coords = [ + [0, 0], + // M + [width, 0], + // 1 + [rightX, bodyHeigth], + // 2 + [rightX, height], + // 3 + [leftX, height], + // 4 + [leftX, bodyHeigth], + // 5 + [0, 0] + // 6 + ]; + if (forBackground) { + coords.forEach((d) => { + d[0] += left; + d[1] += top; + }); + } + return `M${coords.join("L")}z`; +} +function getFunnelData(d) { + const $$ = this; + const { config } = $$; + const data = d.map((d2) => ({ + id: d2.id, + value: d2.values.reduce((a, b) => a + b.value, 0) + })); + if (config.data_order) { + data.sort($$.getSortCompareFn.bind($$)(true)); + } + return updateRatio.call($$, data); +} +function updateRatio(data) { + const $$ = this; + const { height } = getSize.call($$); + const total = $$.getTotalDataSum(true); + data.forEach((d) => { + d.ratio = d.value / total * height; + }); + return data; +} +/* harmony default export */ var funnel = ({ + /** + * Initialize polar + * @private + */ + initFunnel() { + const $$ = this; + const { $el } = $$; + $el.funnel = $el.main.select(`.${$COMMON.chart}`).append("g").classed($FUNNEL.chartFunnels, true); + $el.funnel.background = $el.funnel.append("path").classed($FUNNEL.funnelBackground, true); + $$.bindFunnelEvent(); + }, + /** + * Bind events + * @private + */ + bindFunnelEvent() { + const $$ = this; + const { $el: { funnel }, config, state } = $$; + const getTarget = (event) => { + var _a; + const target = event.isTrusted ? event.target : (_a = state.eventReceiver.rect) == null ? void 0 : _a.node(); + let data; + if (/^path$/i.test(target.tagName)) { + state.event = event; + data = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(target).datum(); + } + return data; + }; + if (config.interaction_enabled) { + const isTouch = state.inputType === "touch"; + funnel.on(isTouch ? "touchstart" : "mouseover mousemove", (event) => { + const data = getTarget(event); + if (data) { + $$.showTooltip([data], event.target); + /^(touchstart|mouseover)$/.test(event.type) && $$.setOverOut(true, data); + } + }).on(isTouch ? "touchend" : "mouseout", (event) => { + const data = getTarget(event); + $$.hideTooltip(); + $$.setOverOut(false, data); + }); + } + }, + /** + * Update polar based on given data array + * @param {object} t Data object + * @private + */ + updateTargetsForFunnel(t) { + const $$ = this; + const { $el: { funnel } } = $$; + const classChartFunnel = $$.getChartClass("Funnel"); + const classFunnel = $$.getClass("funnel", true); + if (!funnel) { + $$.initFunnel(); + } + const targets = getFunnelData.call($$, t.filter($$.isFunnelType.bind($$))); + const mainFunnelUpdate = funnel.selectAll(`.${$FUNNEL.chartFunnel}`).data(targets); + mainFunnelUpdate.exit().remove(); + const mainFunnelEnter = mainFunnelUpdate.enter().insert("g", `.${$FUNNEL.funnelBackground}`); + mainFunnelEnter.append("path"); + funnel.path = mainFunnelEnter.merge(mainFunnelUpdate).attr("class", (d) => classChartFunnel(d)).select("path").attr("class", classFunnel).style("opacity", "0").style("fill", $$.color); + }, + /** + * Update funnel path selection + * @param {object} targets Updated target data + * @private + */ + updateFunnel(targets) { + const $$ = this; + const { $el: { funnel } } = $$; + const targetIds = targets.map(({ id }) => id); + funnel.path = funnel.path.filter((d) => targetIds.indexOf(d.id) >= 0); + }, + /** + * Generate treemap coordinate points data + * @returns {Array} Array of coordinate points + * @private + */ + generateGetFunnelPoints() { + const $$ = this; + const { $el: { funnel } } = $$; + const targets = $$.filterTargetsToShow(funnel.path); + const { top, left, right } = getSize.call($$); + const center = (left - right) / 2; + const points = {}; + let accumulatedHeight = top != null ? top : 0; + targets.each((d, i) => { + var _a; + points[d.id] = [ + [center, accumulatedHeight], + [center, accumulatedHeight += ((_a = targets == null ? void 0 : targets[i]) != null ? _a : d).ratio] + ]; + }); + return (d) => points[d.id]; + }, + /** + * Called whenever redraw happens + * @private + */ + redrawFunnel() { + const $$ = this; + const { $T, $el: { funnel } } = $$; + const targets = $$.filterTargetsToShow(funnel.path); + const coords = getCoord.call($$, updateRatio.call($$, targets.data())); + funnel.attr("clip-path", `path('${getClipPath.bind($$)()}')`); + funnel.background.attr("d", getClipPath.call($$, true)); + $T(targets).attr("d", (d, i) => `M${coords[i].join("L")}z`).style("opacity", "1"); + funnel.selectAll("g").style("opacity", null); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/gauge.ts + + + +/* harmony default export */ var gauge = ({ + initGauge() { + const $$ = this; + const { config, $el: { arcs } } = $$; + const appendText = (className = null, value = "") => { + arcs.append("text").attr("class", className).style("text-anchor", "middle").style("pointer-events", "none").text(value); + }; + if ($$.hasType("gauge")) { + const hasMulti = $$.hasMultiArcGauge(); + arcs.append(hasMulti ? "g" : "path").attr("class", $ARC.chartArcsBackground).style("fill", !hasMulti && config.gauge_background || null); + config.gauge_units && appendText($GAUGE.chartArcsGaugeUnit); + if (config.gauge_label_show) { + appendText($GAUGE.chartArcsGaugeMin); + !config.gauge_fullCircle && appendText($GAUGE.chartArcsGaugeMax); + } + } + }, + updateGaugeMax() { + const $$ = this; + const { config, state } = $$; + const hasMultiGauge = $$.hasMultiArcGauge(); + const max = hasMultiGauge ? $$.getMinMaxData().max[0].value : $$.getTotalDataSum(state.rendered); + if (!config.gauge_enforceMinMax && max + config.gauge_min * (config.gauge_min > 0 ? -1 : 1) > config.gauge_max) { + config.gauge_max = max - config.gauge_min; + } + }, + redrawArcGaugeLine() { + const $$ = this; + const { config, state, $el } = $$; + const { hiddenTargetIds } = $$.state; + const arcLabelLines = $el.main.selectAll(`.${$ARC.arcs}`).selectAll(`.${$ARC.arcLabelLine}`).data($$.arcData.bind($$)); + const mainArcLabelLine = arcLabelLines.enter().append("rect").attr( + "class", + (d) => `${$ARC.arcLabelLine} ${$COMMON.target} ${$COMMON.target}-${d.data.id}` + ).merge(arcLabelLines); + mainArcLabelLine.style( + "fill", + (d) => $$.levelColor ? $$.levelColor(d.data.values[0].value) : $$.color(d.data) + ).style("display", config.gauge_label_show ? null : "none").each(function(d) { + let lineLength = 0; + const lineThickness = 2; + let x = 0; + let y = 0; + let transform = ""; + if (hiddenTargetIds.indexOf(d.data.id) < 0) { + const updated = $$.updateAngle(d); + const innerLineLength = state.gaugeArcWidth / $$.filterTargetsToShow($$.data.targets).length * (updated.index + 1); + const lineAngle = updated.endAngle - Math.PI / 2; + const arcInnerRadius = state.radius - innerLineLength; + const linePositioningAngle = lineAngle - (arcInnerRadius === 0 ? 0 : 1 / arcInnerRadius); + lineLength = state.radiusExpanded - state.radius + innerLineLength; + x = Math.cos(linePositioningAngle) * arcInnerRadius; + y = Math.sin(linePositioningAngle) * arcInnerRadius; + transform = `rotate(${lineAngle * 180 / Math.PI}, ${x}, ${y})`; + } + (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).attr("x", x).attr("y", y).attr("width", lineLength).attr("height", lineThickness).attr("transform", transform).style("stroke-dasharray", `0, ${lineLength + lineThickness}, 0`); + }); + }, + textForGaugeMinMax(value, isMax) { + const $$ = this; + const { config } = $$; + const format = config.gauge_label_extents; + return isFunction(format) ? format.bind($$.api)(value, isMax) : value; + }, + getGaugeLabelHeight() { + const { config } = this; + return this.config.gauge_label_show && !config.gauge_fullCircle ? 20 : 0; + }, + getPaddingBottomForGauge() { + const $$ = this; + return $$.getGaugeLabelHeight() * ($$.config.gauge_label_show ? 2 : 2.5); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/line.ts + + + + +/* harmony default export */ var line = ({ + initLine() { + const { $el } = this; + $el.line = $el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $LINE.chartLines).call(this.setCssRule(false, `.${$LINE.chartLines}`, ["pointer-events:none"])); + }, + updateTargetsForLine(t) { + const $$ = this; + const { $el: { area, line, main } } = $$; + const classChartLine = $$.getChartClass("Line"); + const classLines = $$.getClass("lines", true); + const classFocus = $$.classFocus.bind($$); + if (!line) { + $$.initLine(); + } + const targets = t.filter((d) => !($$.isScatterType(d) || $$.isBubbleType(d))); + const mainLineUpdate = main.select(`.${$LINE.chartLines}`).selectAll(`.${$LINE.chartLine}`).data(targets).attr("class", (d) => classChartLine(d) + classFocus(d)); + const mainLineEnter = mainLineUpdate.enter().append("g").attr("class", classChartLine).style("opacity", "0").style("pointer-events", $$.getStylePropValue("none")); + mainLineEnter.append("g").attr("class", classLines); + if ($$.hasTypeOf("Area")) { + const mainLine = (!area && mainLineEnter.empty() ? mainLineUpdate : mainLineEnter).filter($$.isAreaType.bind($$)); + $$.initArea(mainLine); + } + $$.updateTargetForCircle(targets, mainLineEnter); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateLine(withTransition, isSub = false) { + const $$ = this; + const { format: { extraLineClasses }, $el, $T } = $$; + const $root = isSub ? $el.subchart : $el; + const line = $root.main.selectAll(`.${$LINE.lines}`).selectAll(`.${$LINE.line}`).data($$.lineData.bind($$)); + $T(line.exit(), withTransition).style("opacity", "0").remove(); + $root.line = line.enter().append("path").attr("class", (d) => `${$$.getClass("line", true)(d)} ${extraLineClasses(d) || ""}`).style("stroke", $$.color).merge(line).style("opacity", $$.initialOpacity.bind($$)).attr("transform", null); + }, + /** + * Redraw function + * @param {Function} drawFn Retuned functino from .generateDrawCandlestick() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + */ + redrawLine(drawFn, withTransition, isSub = false) { + const $$ = this; + const { $el, $T } = $$; + const { line } = isSub ? $el.subchart : $el; + return [ + $T(line, withTransition, getRandom()).attr("d", drawFn).style("stroke", this.color).style("opacity", null) + ]; + }, + /** + * Get the curve interpolate + * @param {Array} d Data object + * @returns {Function} + * @private + */ + getCurve(d) { + const $$ = this; + const isRotatedStepType = $$.config.axis_rotated && $$.isStepType(d); + return isRotatedStepType ? (context) => { + const step = $$.getInterpolate(d)(context); + step.orgPoint = step.point; + step.pointRotated = function(x, y) { + this._point === 1 && (this._point = 2); + const y1 = this._y * (1 - this._t) + y * this._t; + this._context.lineTo(this._x, y1); + this._context.lineTo(x, y1); + this._x = x; + this._y = y; + }; + step.point = function(x, y) { + this._point === 0 ? this.orgPoint(x, y) : this.pointRotated(x, y); + }; + return step; + } : $$.getInterpolate(d); + }, + generateDrawLine(lineIndices, isSub) { + const $$ = this; + const { config, scale } = $$; + const lineConnectNull = config.line_connectNull; + const isRotated = config.axis_rotated; + const getPoints = $$.generateGetLinePoints(lineIndices, isSub); + const yScale = $$.getYScaleById.bind($$); + const xValue = (d) => (isSub ? $$.subxx : $$.xx).call($$, d); + const yValue = (d, i) => $$.isGrouped(d.id) ? getPoints(d, i)[0][1] : yScale(d.id, isSub)($$.getBaseValue(d)); + let line = (0,external_commonjs_d3_shape_commonjs2_d3_shape_amd_d3_shape_root_d3_.line)(); + line = isRotated ? line.x(yValue).y(xValue) : line.x(xValue).y(yValue); + if (!lineConnectNull) { + line = line.defined((d) => $$.getBaseValue(d) !== null); + } + const x = isSub ? scale.subX : scale.x; + return (d) => { + const y = yScale(d.id, isSub); + let values = lineConnectNull ? $$.filterRemoveNull(d.values) : d.values; + let x0 = 0; + let y0 = 0; + let path; + if ($$.isLineType(d)) { + const regions = config.data_regions[d.id]; + if (regions) { + path = $$.lineWithRegions(values, scale.zoom || x, y, regions); + } else { + if ($$.isStepType(d)) { + values = $$.convertValuesToStep(values); + } + path = line.curve($$.getCurve(d))(values); + } + } else { + if (values[0]) { + x0 = x(values[0].x); + y0 = y(values[0].value); + } + path = isRotated ? `M ${y0} ${x0}` : `M ${x0} ${y0}`; + } + return path || "M 0 0"; + }; + }, + lineWithRegions(d, x, y, _regions) { + const $$ = this; + const { config } = $$; + const isRotated = config.axis_rotated; + const isTimeSeries = $$.axis.isTimeSeries(); + const regions = []; + const dasharray = "2 2"; + let xp; + let yp; + let diff; + let diffx2; + if (isDefined(_regions)) { + const getValue = (v, def) => isUndefined(v) ? def : isTimeSeries ? parseDate.call($$, v) : v; + for (let i = 0, reg; reg = _regions[i]; i++) { + const start = getValue(reg.start, d[0].x); + const end = getValue(reg.end, d[d.length - 1].x); + const style = reg.style || { dasharray }; + regions[i] = { start, end, style }; + } + } + const xValue = isRotated ? (dt) => y(dt.value) : (dt) => x(dt.x); + const yValue = isRotated ? (dt) => x(dt.x) : (dt) => y(dt.value); + const generateM = (points) => `M${points[0][0]},${points[0][1]}L${points[1][0]},${points[1][1]}`; + const sWithRegion = isTimeSeries ? (d0, d1, k, timeseriesDiff) => { + const x0 = d0.x.getTime(); + const xDiff = d1.x - d0.x; + const xv0 = new Date(x0 + xDiff * k); + const xv1 = new Date(x0 + xDiff * (k + timeseriesDiff)); + const points = isRotated ? [[y(yp(k)), x(xv0)], [y(yp(k + diff)), x(xv1)]] : [[x(xv0), y(yp(k))], [x(xv1), y(yp(k + diff))]]; + return generateM(points); + } : (d0, d1, k, otherDiff) => { + const points = isRotated ? [[y(yp(k), true), x(xp(k))], [ + y(yp(k + otherDiff), true), + x(xp(k + otherDiff)) + ]] : [[x(xp(k), true), y(yp(k))], [ + x(xp(k + otherDiff), true), + y(yp(k + otherDiff)) + ]]; + return generateM(points); + }; + const axisType = { x: $$.axis.getAxisType("x"), y: $$.axis.getAxisType("y") }; + let path = ""; + for (let i = 0, data; data = d[i]; i++) { + const prevData = d[i - 1]; + const hasPrevData = prevData && isValue(prevData.value); + let style = $$.isWithinRegions(data.x, regions); + if (!isValue(data.value)) { + continue; + } + if (isUndefined(regions) || !style || !hasPrevData) { + path += `${i && hasPrevData ? "L" : "M"}${xValue(data)},${yValue(data)}`; + } else if (hasPrevData) { + try { + style = style.dasharray.split(" "); + } catch (e) { + style = dasharray.split(" "); + } + xp = getScale(axisType.x, prevData.x, data.x); + yp = getScale(axisType.y, prevData.value, data.value); + const dx = x(data.x) - x(prevData.x); + const dy = y(data.value) - y(prevData.value); + const dd = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2)); + diff = style[0] / dd; + diffx2 = diff * style[1]; + for (let j = diff; j <= 1; j += diffx2) { + path += sWithRegion(prevData, data, j, diff); + if (j + diffx2 >= 1) { + path += sWithRegion(prevData, data, 1, 0); + } + } + } + } + return path; + }, + isWithinRegions(withinX, withinRegions) { + for (let i = 0, reg; reg = withinRegions[i]; i++) { + if (reg.start < withinX && withinX <= reg.end) { + return reg.style; + } + } + return false; + }, + isWithinStep(that, y) { + return Math.abs(y - getPointer(this.state.event, that)[1]) < 30; + }, + shouldDrawPointsForLine(d) { + const linePoint = this.config.line_point; + return linePoint === true || isArray(linePoint) && linePoint.indexOf(d.id) !== -1; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/point.ts + + + +const getTransitionName = () => getRandom(); +/* harmony default export */ var point = ({ + initialOpacityForCircle(d) { + const { config, state: { withoutFadeIn } } = this; + let opacity = config.point_opacity; + if (isUndefined(opacity)) { + opacity = this.getBaseValue(d) !== null && withoutFadeIn[d.id] ? this.opacityForCircle(d) : "0"; + } + return opacity; + }, + opacityForCircle(d) { + var _a; + const { config } = this; + let opacity = config.point_opacity; + if (isUndefined(opacity)) { + opacity = config.point_show && !((_a = this.isPointFocusOnly) == null ? void 0 : _a.call(this)) ? null : "0"; + opacity = isValue(this.getBaseValue(d)) ? this.isBubbleType(d) || this.isScatterType(d) ? "0.5" : opacity : "0"; + } + return opacity; + }, + initCircle() { + const $$ = this; + const { $el: { main } } = $$; + !$$.point && ($$.point = $$.generatePoint()); + if (($$.hasType("bubble") || $$.hasType("scatter")) && main.select(`.${$COMMON.chart} > .${$CIRCLE.chartCircles}`).empty()) { + main.select(`.${$COMMON.chart}`).append("g").attr("class", $CIRCLE.chartCircles); + } + }, + updateTargetForCircle(targetsValue, enterNodeValue) { + const $$ = this; + const { config, data, $el } = $$; + const selectionEnabled = config.interaction_enabled && config.data_selection_enabled; + const isSelectable = selectionEnabled && config.data_selection_isselectable; + const classCircles = $$.getClass("circles", true); + if (!config.point_show) { + return; + } + $$.initCircle(); + let targets = targetsValue; + let enterNode = enterNodeValue; + if (!targets) { + targets = data.targets.filter((d) => this.isScatterType(d) || this.isBubbleType(d)); + const mainCircle = $el.main.select(`.${$CIRCLE.chartCircles}`).style("pointer-events", "none").selectAll(`.${$CIRCLE.circles}`).data(targets); + mainCircle.exit().remove(); + enterNode = mainCircle.enter(); + } + selectionEnabled && enterNode.append("g").attr("class", (d) => $$.generateClass($SELECT.selectedCircles, d.id)); + enterNode.append("g").attr("class", classCircles).call((selection) => { + $$.setCssRule(true, `.${$CIRCLE.circles}`, ["cursor:pointer"], isSelectable)( + selection + ); + $$.setCssRule(true, ` .${$CIRCLE.circle}`, ["fill", "stroke"], $$.color)(selection); + }).style("opacity", function() { + const parent = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this.parentNode); + return parent.attr("class").indexOf($CIRCLE.chartCircles) > -1 ? "0" : null; + }); + selectionEnabled && targets.forEach((t) => { + $el.main.selectAll(`.${$SELECT.selectedCircles}${$$.getTargetSelectorSuffix(t.id)}`).selectAll(`${$SELECT.selectedCircle}`).each((d) => { + d.value = t.values[d.index].value; + }); + }); + }, + updateCircle(isSub = false) { + const $$ = this; + const { config, state, $el } = $$; + const focusOnly = $$.isPointFocusOnly(); + const $root = isSub ? $el.subchart : $el; + if (config.point_show && !state.toggling) { + config.point_radialGradient && $$.updateLinearGradient(); + const circles = $root.main.selectAll(`.${$CIRCLE.circles}`).selectAll(`.${$CIRCLE.circle}`).data((d) => $$.isLineType(d) && $$.shouldDrawPointsForLine(d) || $$.isBubbleType(d) || $$.isRadarType(d) || $$.isScatterType(d) ? focusOnly ? [d.values[0]] : d.values : []); + circles.exit().remove(); + circles.enter().filter(Boolean).append( + $$.point("create", this, $$.pointR.bind($$), $$.updateCircleColor.bind($$)) + ); + $root.circle = $root.main.selectAll(`.${$CIRCLE.circles} .${$CIRCLE.circle}`).style("stroke", $$.getStylePropValue($$.color)).style("opacity", $$.initialOpacityForCircle.bind($$)); + } + }, + /** + * Update circle color + * @param {object} d Data object + * @returns {string} Color string + * @private + */ + updateCircleColor(d) { + const $$ = this; + const fn = $$.getStylePropValue($$.color); + return $$.config.point_radialGradient ? $$.getGradienColortUrl(d.id) : fn ? fn(d) : null; + }, + redrawCircle(cx, cy, withTransition, flow, isSub = false) { + const $$ = this; + const { state: { rendered }, $el, $T } = $$; + const $root = isSub ? $el.subchart : $el; + const selectedCircles = $root.main.selectAll(`.${$SELECT.selectedCircle}`); + if (!$$.config.point_show) { + return []; + } + const fn = $$.point( + "update", + $$, + cx, + cy, + $$.updateCircleColor.bind($$), + withTransition, + flow, + selectedCircles + ); + const posAttr = $$.isCirclePoint() ? "c" : ""; + const t = getRandom(); + const opacityStyleFn = $$.opacityForCircle.bind($$); + const mainCircles = []; + $root.circle.each(function(d) { + let result = fn.bind(this)(d); + result = $T(result, withTransition || !rendered, t).style("opacity", opacityStyleFn); + mainCircles.push(result); + }); + return [ + mainCircles, + $T(selectedCircles, withTransition).attr(`${posAttr}x`, cx).attr(`${posAttr}y`, cy) + ]; + }, + /** + * Show focused data point circle + * @param {object} d Selected data + * @private + */ + showCircleFocus(d) { + const $$ = this; + const { state: { hasRadar, resizing, toggling, transiting }, $el } = $$; + let { circle } = $el; + if (transiting === false && circle && $$.isPointFocusOnly()) { + const cx = (hasRadar ? $$.radarCircleX : $$.circleX).bind($$); + const cy = (hasRadar ? $$.radarCircleY : $$.circleY).bind($$); + const withTransition = toggling || isUndefined(d); + const fn = $$.point( + "update", + $$, + cx, + cy, + $$.getStylePropValue($$.color), + resizing ? false : withTransition + ); + if (d) { + circle = circle.filter(function(t) { + var _a; + const data = (_a = d.filter) == null ? void 0 : _a.call(d, (v) => v.id === t.id); + return data.length ? (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).datum(data[0]) : false; + }); + } + circle.attr("class", this.updatePointClass.bind(this)).style("opacity", null).each(function(d2) { + const { id, index, value } = d2; + let visibility = "hidden"; + if (isValue(value)) { + fn.bind(this)(d2); + $$.expandCircles(index, id); + visibility = ""; + } + this.style.visibility = visibility; + }); + } + }, + /** + * Hide focused data point circle + * @private + */ + hideCircleFocus() { + const $$ = this; + const { $el: { circle } } = $$; + if ($$.isPointFocusOnly() && circle) { + $$.unexpandCircles(); + circle.style("visibility", "hidden"); + } + }, + circleX(d) { + return this.xx(d); + }, + updateCircleY(isSub = false) { + const $$ = this; + const getPoints = $$.generateGetLinePoints($$.getShapeIndices($$.isLineType), isSub); + return (d, i) => { + const id = d.id; + return $$.isGrouped(id) ? getPoints(d, i)[0][1] : $$.getYScaleById(id, isSub)($$.getBaseValue(d)); + }; + }, + expandCircles(i, id, reset) { + const $$ = this; + const r = $$.pointExpandedR.bind($$); + reset && $$.unexpandCircles(); + const circles = $$.getShapeByIndex("circle", i, id).classed($COMMON.EXPANDED, true); + const scale = r(circles) / $$.config.point_r; + const ratio = 1 - scale; + if ($$.isCirclePoint()) { + circles.attr("r", r); + } else { + circles.each(function() { + const point = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + if (this.tagName === "circle") { + point.attr("r", r); + } else { + const { width, height } = this.getBBox(); + const x = ratio * (+point.attr("x") + width / 2); + const y = ratio * (+point.attr("y") + height / 2); + point.attr("transform", `translate(${x} ${y}) scale(${scale})`); + } + }); + } + }, + unexpandCircles(i) { + const $$ = this; + const r = $$.pointR.bind($$); + const circles = $$.getShapeByIndex("circle", i).filter(function() { + return (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this).classed($COMMON.EXPANDED); + }).classed($COMMON.EXPANDED, false); + circles.attr("r", r); + if (!$$.isCirclePoint()) { + const scale = r(circles) / $$.config.point_r; + circles.attr("transform", scale !== 1 ? `scale(${scale})` : null); + } + }, + pointR(d) { + const $$ = this; + const { config } = $$; + const pointR = config.point_r; + let r = pointR; + if ($$.isBubbleType(d)) { + r = $$.getBubbleR(d); + } else if (isFunction(pointR)) { + r = pointR.bind($$.api)(d); + } + d.r = r; + return r; + }, + pointExpandedR(d) { + const $$ = this; + const { config } = $$; + const scale = $$.isBubbleType(d) ? 1.15 : 1.75; + return config.point_focus_expand_enabled ? config.point_focus_expand_r || $$.pointR(d) * scale : $$.pointR(d); + }, + pointSelectR(d) { + const $$ = this; + const selectR = $$.config.point_select_r; + return isFunction(selectR) ? selectR(d) : selectR || $$.pointR(d) * 4; + }, + /** + * Check if point.focus.only option can be applied. + * @returns {boolean} + * @private + */ + isPointFocusOnly() { + const $$ = this; + return $$.config.point_focus_only && !$$.hasType("bubble") && !$$.hasType("scatter") && !$$.hasArcType(null, ["radar"]); + }, + isWithinCircle(node, r) { + const { config, state } = this; + const mouse = getPointer(state.event, node); + const element = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(node); + const prefix = this.isCirclePoint(node) ? "c" : ""; + const sensitivity = config.point_sensitivity === "radius" ? node.getAttribute("r") : config.point_sensitivity; + let cx = +element.attr(`${prefix}x`); + let cy = +element.attr(`${prefix}y`); + if (!(cx || cy) && node.nodeType === 1) { + const { x, y } = getBoundingRect(node); + cx = x; + cy = y; + } + return Math.sqrt( + Math.pow(cx - mouse[0], 2) + Math.pow(cy - mouse[1], 2) + ) < (r || sensitivity); + }, + /** + * Get data point sensitivity radius + * @param {object} d Data point object + * @returns {number} return the sensitivity value + */ + getPointSensitivity(d) { + const $$ = this; + let sensitivity = $$.config.point_sensitivity; + if (isFunction(sensitivity)) { + sensitivity = sensitivity.call($$.api, d); + } else if (sensitivity === "radius") { + sensitivity = d.r; + } + return sensitivity; + }, + updatePointClass(d) { + const $$ = this; + const { circle } = $$.$el; + let pointClass = false; + if (isObject(d) || circle) { + pointClass = d === true ? circle.each(function(d2) { + let className = $$.getClass("circle", true)(d2); + if (this.getAttribute("class").indexOf($COMMON.EXPANDED) > -1) { + className += ` ${$COMMON.EXPANDED}`; + } + this.setAttribute("class", className); + }) : $$.getClass("circle", true)(d); + } + return pointClass; + }, + generateGetLinePoints(lineIndices, isSub) { + const $$ = this; + const { config } = $$; + const x = $$.getShapeX(0, lineIndices, isSub); + const y = $$.getShapeY(isSub); + const lineOffset = $$.getShapeOffset($$.isLineType, lineIndices, isSub); + const yScale = $$.getYScaleById.bind($$); + return (d, i) => { + const y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id)); + const offset = lineOffset(d, i) || y0; + const posX = x(d); + let posY = y(d); + if (config.axis_rotated && (d.value > 0 && posY < y0 || d.value < 0 && y0 < posY)) { + posY = y0; + } + const point = [posX, posY - (y0 - offset)]; + return [ + point, + point, + // from here and below, needed for compatibility + point, + point + ]; + }; + }, + custom: { + create(element, id, fillStyleFn) { + return element.append("use").attr("xlink:href", `#${id}`).attr("class", this.updatePointClass.bind(this)).style("fill", fillStyleFn).node(); + }, + update(element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) { + const $$ = this; + const { width, height } = element.node().getBBox(); + const xPosFn2 = (d) => isValue(d.value) ? xPosFn(d) - width / 2 : 0; + const yPosFn2 = (d) => isValue(d.value) ? yPosFn(d) - height / 2 : 0; + let mainCircles = element; + if (withTransition) { + flow && mainCircles.attr("x", xPosFn2); + mainCircles = $$.$T(mainCircles, withTransition, getTransitionName()); + selectedCircles && $$.$T(selectedCircles, withTransition, getTransitionName()); + } + return mainCircles.attr("x", xPosFn2).attr("y", yPosFn2).style("fill", fillStyleFn); + } + }, + // 'circle' data point + circle: { + create(element, sizeFn, fillStyleFn) { + return element.append("circle").attr("class", this.updatePointClass.bind(this)).attr("r", sizeFn).style("fill", fillStyleFn).node(); + }, + update(element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) { + const $$ = this; + let mainCircles = element; + if ($$.hasType("bubble")) { + mainCircles.attr("r", $$.pointR.bind($$)); + } + if (withTransition) { + flow && mainCircles.attr("cx", xPosFn); + if (mainCircles.attr("cx")) { + mainCircles = $$.$T(mainCircles, withTransition, getTransitionName()); + } + selectedCircles && $$.$T(mainCircles, withTransition, getTransitionName()); + } + return mainCircles.attr("cx", xPosFn).attr("cy", yPosFn).style("fill", fillStyleFn); + } + }, + // 'rectangle' data point + rectangle: { + create(element, sizeFn, fillStyleFn) { + const rectSizeFn = (d) => sizeFn(d) * 2; + return element.append("rect").attr("class", this.updatePointClass.bind(this)).attr("width", rectSizeFn).attr("height", rectSizeFn).style("fill", fillStyleFn).node(); + }, + update(element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) { + const $$ = this; + const r = $$.config.point_r; + const rectXPosFn = (d) => xPosFn(d) - r; + const rectYPosFn = (d) => yPosFn(d) - r; + let mainCircles = element; + if (withTransition) { + flow && mainCircles.attr("x", rectXPosFn); + mainCircles = $$.$T(mainCircles, withTransition, getTransitionName()); + selectedCircles && $$.$T(selectedCircles, withTransition, getTransitionName()); + } + return mainCircles.attr("x", rectXPosFn).attr("y", rectYPosFn).style("fill", fillStyleFn); + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/point.common.ts + + + +function hasValidPointDrawMethods(point) { + return isObjectType(point) && isFunction(point.create) && isFunction(point.update); +} +function insertPointInfoDefs(point, id) { + var _a; + const $$ = this; + const copyAttr = (from, target) => { + const attribs = from.attributes; + for (let i = 0, name; name = attribs[i]; i++) { + name = name.name; + target.setAttribute(name, from.getAttribute(name)); + } + }; + const doc = new DOMParser().parseFromString(point, "image/svg+xml"); + const node = doc.documentElement; + const clone = browser_doc.createElementNS(external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.namespaces.svg, node.nodeName.toLowerCase()); + clone.id = id; + clone.style.fill = "inherit"; + clone.style.stroke = "inherit"; + copyAttr(node, clone); + if ((_a = node.childNodes) == null ? void 0 : _a.length) { + const parent = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(clone); + if ("innerHTML" in clone) { + parent.html(node.innerHTML); + } else { + toArray(node.childNodes).forEach((v) => { + copyAttr(v, parent.append(v.tagName).node()); + }); + } + } + $$.$el.defs.node().appendChild(clone); +} +/* harmony default export */ var point_common = ({ + /** + * Check if point type option is valid + * @param {string} type point type + * @returns {boolean} + * @private + */ + hasValidPointType(type) { + return /^(circle|rect(angle)?|polygon|ellipse|use)$/i.test(type || this.config.point_type); + }, + /** + * Check if pattern point is set to be used on legend + * @returns {boolean} + * @private + */ + hasLegendDefsPoint() { + var _a; + const { config } = this; + return config.legend_show && ((_a = config.point_pattern) == null ? void 0 : _a.length) && config.legend_usePoint; + }, + getDefsPointId(id) { + const { state: { datetimeId } } = this; + return `${datetimeId}-point${id}`; + }, + /** + * Get generate point function + * @returns {Function} + * @private + */ + generatePoint() { + const $$ = this; + const { $el, config } = $$; + const ids = []; + const pattern = notEmpty(config.point_pattern) ? config.point_pattern : [config.point_type]; + return function(method, context, ...args) { + return function(d) { + var _a, _b, _c, _d; + const id = $$.getTargetSelectorSuffix(d.id || ((_a = d.data) == null ? void 0 : _a.id) || d); + const element = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this); + ids.indexOf(id) < 0 && ids.push(id); + let point = pattern[ids.indexOf(id) % pattern.length]; + if ($$.hasValidPointType(point)) { + point = $$[point]; + } else if (!hasValidPointDrawMethods(point || config.point_type)) { + const pointId = $$.getDefsPointId(id); + const defsPoint = $el.defs.select(`#${pointId}`); + if (defsPoint.size() < 1) { + insertPointInfoDefs.bind($$)(point, pointId); + } + if (method === "create") { + return (_b = $$.custom) == null ? void 0 : _b.create.bind(context)(element, pointId, ...args); + } else if (method === "update") { + return (_c = $$.custom) == null ? void 0 : _c.update.bind(context)(element, ...args); + } + } + return (_d = point[method]) == null ? void 0 : _d.bind(context)(element, ...args); + }; + }; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/polar.ts + + +function getDataMax($$) { + const levelMax = $$.config.polar_level_max; + let dataMax = $$.getMinMaxData().max[0].value; + if (levelMax && levelMax > dataMax) { + dataMax = levelMax; + } + return dataMax; +} +/* harmony default export */ var polar = ({ + /** + * Initialize polar + * @private + */ + initPolar() { + const $$ = this; + const { $el: { arcs }, config } = $$; + const levelTextShow = config.polar_level_text_show; + const levelTextBgColor = config.polar_level_text_backgroundColor; + arcs.levels = arcs.append("g").attr("class", $LEVEL.levels); + if (levelTextShow && levelTextBgColor) { + $$.generateTextBGColorFilter(levelTextBgColor); + } + }, + /** + * Get polar outer radius according to the data value + * @param {object} d Data object + * @param {numbet} outerRadius Outer radius + * @returns {number} outer radius + * @private + */ + getPolarOuterRadius(d, outerRadius) { + var _a; + const dataMax = getDataMax(this); + return ((_a = d == null ? void 0 : d.data.values[0].value) != null ? _a : 0) / dataMax * outerRadius; + }, + /** + * Update polar based on given data array + * @param {object} targets Data object + * @private + */ + updateTargetsForPolar(targets) { + this.updateTargetsForArc(targets); + }, + /** + * Called whenever redraw happens + * @private + */ + redrawPolar() { + const $$ = this; + const { config } = $$; + config.polar_level_show && $$.updatePolarLevel(); + }, + /** + * Update polar level circle + * @private + */ + updatePolarLevel() { + const $$ = this; + const { config, state, $el: { arcs: { levels } } } = $$; + const depth = config.polar_level_depth; + const dataMax = getDataMax($$); + const levelData = getRange(0, depth); + const outerRadius = state.radius; + const levelRatio = levelData.map((l) => outerRadius * ((l + 1) / depth)); + const levelTextFormat = (config.polar_level_text_format || function() { + }).bind($$.api); + const level = levels.selectAll(`.${$LEVEL.level}`).data(levelData); + level.exit().remove(); + const levelEnter = level.enter().append("g").attr("class", (d, i) => `${$LEVEL.level} ${$LEVEL.level}-${i}`); + levelEnter.append("circle"); + levelEnter.merge(level).selectAll("circle").style("visibility", config.polar_level_show ? null : "hidden").attr("cx", 0).attr("cy", 0).attr("r", (d) => levelRatio[d]); + if (config.polar_level_text_show) { + const levelTextBackgroundColor = config.polar_level_text_backgroundColor; + const defsId = `#${state.datetimeId}-labels-bg${$$.getTargetSelectorSuffix(levelTextBackgroundColor)}`; + levelEnter.append("text").style("text-anchor", "middle"); + levelEnter.merge(level).selectAll("text").attr("dy", (d) => -levelRatio[d] + 5).attr("filter", levelTextBackgroundColor ? `url(${defsId})` : null).text((d) => levelTextFormat(dataMax / levelData.length * (d + 1))); + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/radar.ts + + + + +function getPosition(isClockwise, type, edge, pos, range, ratio) { + const index = isClockwise && pos > 0 ? edge - pos : pos; + const r = 2 * Math.PI; + const func = type === "x" ? Math.sin : Math.cos; + return range * (1 - ratio * func(index * r / edge)); +} +const cacheKeyPoints = KEY.radarPoints; +const cacheKeyTextWidth = KEY.radarTextWidth; +/* harmony default export */ var radar = ({ + initRadar() { + const $$ = this; + const { config, state: { current }, $el } = $$; + if ($$.hasType("radar")) { + $el.radar = $el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $RADAR.chartRadars); + $el.radar.levels = $el.radar.append("g").attr("class", $LEVEL.levels); + $el.radar.axes = $el.radar.append("g").attr("class", $AXIS.axis); + $el.radar.shapes = $el.radar.append("g").attr("class", $SHAPE.shapes); + current.dataMax = config.radar_axis_max || $$.getMinMaxData().max[0].value; + if (config.radar_axis_text_show) { + config.interaction_enabled && $$.bindRadarEvent(); + $$.updateRadarLevel(); + $$.updateRadarAxes(); + } + } + }, + getRadarSize() { + const $$ = this; + const { config, state: { arcWidth, arcHeight } } = $$; + const padding = config.axis_x_categories.length < 4 ? -20 : 10; + const size = (Math.min(arcWidth, arcHeight) - padding) / 2; + return [size, size]; + }, + updateTargetsForRadar(targets) { + const $$ = this; + const { config } = $$; + if (isEmpty(config.axis_x_categories)) { + config.axis_x_categories = getRange(0, getMinMax("max", targets.map( + (v) => v.values.length + ))); + } + $$.generateRadarPoints(); + }, + getRadarPosition(type, index, range, ratio) { + const $$ = this; + const { config } = $$; + const [width, height] = $$.getRadarSize(); + const edge = config.axis_x_categories.length; + const isClockwise = config.radar_direction_clockwise; + const pos = toArray(type).map( + (v) => getPosition( + isClockwise, + v, + edge, + index, + isDefined(range) ? range : type === "x" ? width : height, + isNumber(ratio) ? ratio : config.radar_size_ratio + ) + ); + return pos.length === 1 ? pos[0] : pos; + }, + /** + * Generate data points + * @private + */ + generateRadarPoints() { + const $$ = this; + const targets = $$.data.targets; + const [width, height] = $$.getRadarSize(); + const points = $$.cache.get(cacheKeyPoints) || {}; + const size = points._size; + if (!size || size.width !== width && size.height !== height) { + targets.forEach((d) => { + points[d.id] = d.values.map((v, i) => $$.getRadarPosition(["x", "y"], i, void 0, $$.getRatio("radar", v))); + }); + points._size = { width, height }; + $$.cache.add(cacheKeyPoints, points); + } + }, + redrawRadar() { + const $$ = this; + const { radar, main } = $$.$el; + const translate = $$.getTranslate("radar"); + if (translate) { + radar.attr("transform", translate); + main.select(`.${$TEXT.chartTexts}`).attr("transform", translate); + $$.generateRadarPoints(); + $$.updateRadarLevel(); + $$.updateRadarAxes(); + $$.updateRadarShape(); + } + }, + generateGetRadarPoints() { + const points = this.cache.get(cacheKeyPoints); + return (d, i) => { + const point = points[d.id][i]; + return [ + point, + point, + point, + point + ]; + }; + }, + updateRadarLevel() { + const $$ = this; + const { config, state, $el: { radar } } = $$; + const [width, height] = $$.getRadarSize(); + const depth = config.radar_level_depth; + const edge = config.axis_x_categories.length; + const showText = config.radar_level_text_show; + const radarLevels = radar.levels; + const levelData = getRange(0, depth); + const radius = config.radar_size_ratio * Math.min(width, height); + const levelRatio = levelData.map((l) => radius * ((l + 1) / depth)); + const levelTextFormat = (config.radar_level_text_format || function() { + }).bind($$.api); + const points = levelData.map((v) => { + const range = levelRatio[v]; + const pos = getRange(0, edge).map( + (i) => $$.getRadarPosition(["x", "y"], i, range, 1).join(",") + ); + return pos.join(" "); + }); + const level = radarLevels.selectAll(`.${$LEVEL.level}`).data(levelData); + level.exit().remove(); + const levelEnter = level.enter().append("g").attr("class", (d, i) => `${$LEVEL.level} ${$LEVEL.level}-${i}`); + levelEnter.append("polygon").style("visibility", config.radar_level_show ? null : "hidden"); + if (showText) { + if (radarLevels.select("text").empty()) { + radarLevels.append("text").attr("dx", "-.5em").attr("dy", "-.7em").style("text-anchor", "end").text(() => levelTextFormat(0)); + } + levelEnter.append("text").attr("dx", "-.5em").style("text-anchor", "end").text( + (d) => levelTextFormat( + state.current.dataMax / levelData.length * (d + 1) + ) + ); + } + levelEnter.merge(level).attr( + "transform", + (d) => `translate(${width - levelRatio[d]}, ${height - levelRatio[d]})` + ).selectAll("polygon").attr("points", (d) => points[d]); + if (showText) { + radarLevels.selectAll("text").attr("x", (d) => isUndefined(d) ? width : points[d].split(",")[0]).attr("y", (d) => isUndefined(d) ? height : 0); + } + }, + updateRadarAxes() { + const $$ = this; + const { config, $el: { radar } } = $$; + const [width, height] = $$.getRadarSize(); + const categories = config.axis_x_categories; + let axis = radar.axes.selectAll("g").data(categories); + axis.exit().remove(); + const axisEnter = axis.enter().append("g").attr("class", (d, i) => `${$AXIS.axis}-${i}`); + config.radar_axis_line_show && axisEnter.append("line"); + config.radar_axis_text_show && axisEnter.append("text"); + axis = axisEnter.merge(axis); + if (config.radar_axis_line_show) { + axis.select("line").attr("x1", width).attr("y1", height).attr("x2", (d, i) => $$.getRadarPosition("x", i)).attr("y2", (d, i) => $$.getRadarPosition("y", i)); + } + if (config.radar_axis_text_show) { + const { x = 0, y = 0 } = config.radar_axis_text_position; + const textWidth = $$.cache.get(cacheKeyTextWidth) || 0; + axis.select("text").style("text-anchor", "middle").attr("dy", ".5em").call((selection) => { + selection.each(function(d) { + setTextValue((0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(this), String(d), [-0.6, 1.2]); + }); + }).datum((d, i) => ({ index: i })).attr("transform", function(d) { + if (isUndefined(this.width)) { + this.width = this.getBoundingClientRect().width / 2; + } + let posX = $$.getRadarPosition("x", d.index, void 0, 1); + let posY = Math.round($$.getRadarPosition("y", d.index, void 0, 1)); + if (posX > width) { + posX += this.width + x; + } else if (Math.round(posX) < width) { + posX -= this.width + x; + } + if (posY > height) { + if (posY / 2 === height && this.firstChild.tagName === "tspan") { + this.firstChild.setAttribute("dy", "0em"); + } + posY += y; + } else if (posY < height) { + posY -= y; + } + return `translate(${posX} ${posY})`; + }); + if (!textWidth) { + const widths = [radar.axes, radar.levels].map((v) => getPathBox(v.node()).width); + if (widths.every((v) => v > 0)) { + $$.cache.add(cacheKeyTextWidth, widths[0] - widths[1]); + } + } + } + }, + bindRadarEvent() { + const $$ = this; + const { state, $el: { radar, svg } } = $$; + const focusOnly = $$.isPointFocusOnly(); + const { inputType, transiting } = state; + const isMouse = inputType === "mouse"; + const hide = (event) => { + state.event = event; + const index = $$.getDataIndexFromEvent(event); + const noIndex = isUndefined(index); + if (isMouse || noIndex) { + $$.hideTooltip(); + focusOnly ? $$.hideCircleFocus() : $$.unexpandCircles(); + if (isMouse) { + $$.setOverOut(false, index); + } else if (noIndex) { + $$.callOverOutForTouch(); + } + } + }; + radar.axes.on(isMouse ? "mouseover " : "touchstart", (event) => { + if (transiting) { + return; + } + state.event = event; + const index = $$.getDataIndexFromEvent(event); + $$.selectRectForSingle(svg.node(), index); + isMouse ? $$.setOverOut(true, index) : $$.callOverOutForTouch(index); + }).on("mouseout", isMouse ? hide : null); + if (!isMouse) { + svg.on("touchstart", hide); + } + }, + updateRadarShape() { + const $$ = this; + const targets = $$.data.targets.filter((d) => $$.isRadarType(d)); + const points = $$.cache.get(cacheKeyPoints); + const areas = $$.$el.radar.shapes.selectAll("polygon").data(targets); + const areasEnter = areas.enter().append("g").attr("class", $$.getChartClass("Radar")); + $$.$T(areas.exit()).remove(); + areasEnter.append("polygon").merge(areas).style("fill", $$.color).style("stroke", $$.color).attr("points", (d) => points[d.id].join(" ")); + $$.updateTargetForCircle(targets, areasEnter); + }, + /** + * Get data point x coordinate + * @param {object} d Data object + * @returns {number} + * @private + */ + radarCircleX(d) { + return this.cache.get(cacheKeyPoints)[d.id][d.index][0]; + }, + /** + * Get data point y coordinate + * @param {object} d Data object + * @returns {number} + * @private + */ + radarCircleY(d) { + return this.cache.get(cacheKeyPoints)[d.id][d.index][1]; + } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-hierarchy","commonjs2":"d3-hierarchy","amd":"d3-hierarchy","root":"d3"} +var external_commonjs_d3_hierarchy_commonjs2_d3_hierarchy_amd_d3_hierarchy_root_d3_ = __webpack_require__(14); +;// CONCATENATED MODULE: ./src/ChartInternal/shape/treemap.ts + + + + +function position(group, root) { + const $$ = this; + const { scale: { x, y }, state: { width } } = $$; + group.selectAll("g").attr("transform", (d) => `translate(${d === root ? "0,0" : `${x(d.x0)},${y(d.y0)}`})`).select("rect").attr("width", (d) => d === root ? width : x(d.x1) - x(d.x0)).attr("height", (d) => d === root ? 0 : y(d.y1) - y(d.y0)); +} +function convertDataToTreemapData(data) { + const $$ = this; + return data.map((d) => { + const { id, values } = d; + const { value } = values[0]; + return { + name: id, + id, + // needed to keep compatibility on whole code logic + value, + ratio: $$.getRatio("treemap", values[0]) + }; + }); +} +function getHierachyData(data) { + const $$ = this; + const hierarchyData = (0,external_commonjs_d3_hierarchy_commonjs2_d3_hierarchy_amd_d3_hierarchy_root_d3_.hierarchy)(data).sum((d) => d.value); + const sortFn = $$.getSortCompareFn(true); + return [ + $$.treemap( + sortFn ? hierarchyData.sort(sortFn) : hierarchyData + ) + ]; +} +/* harmony default export */ var treemap = ({ + initTreemap() { + const $$ = this; + const { + $el, + state: { + current: { width, height }, + clip, + datetimeId + } + } = $$; + clip.id = `${datetimeId}-clip`; + $$.treemap = (0,external_commonjs_d3_hierarchy_commonjs2_d3_hierarchy_amd_d3_hierarchy_root_d3_.treemap)().tile($$.getTreemapTile()); + $el.defs.append("clipPath").attr("id", clip.id).append("rect").attr("width", width).attr("height", height); + $el.treemap = $el.main.select(`.${$COMMON.chart}`).attr("clip-path", `url(#${clip.id})`).append("g").classed($TREEMAP.chartTreemaps, true); + $$.bindTreemapEvent(); + }, + /** + * Bind events + * @private + */ + bindTreemapEvent() { + const $$ = this; + const { $el, config, state } = $$; + const getTarget = (event) => { + var _a; + const target = event.isTrusted ? event.target : (_a = state.eventReceiver.rect) == null ? void 0 : _a.node(); + let data; + if (/^rect$/i.test(target.tagName)) { + state.event = event; + data = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(target).datum(); + } + return data == null ? void 0 : data.data; + }; + if (config.interaction_enabled) { + const isTouch = state.inputType === "touch"; + $el.treemap.on(isTouch ? "touchstart" : "mouseover mousemove", (event) => { + const data = getTarget(event); + if (data) { + $$.showTooltip([data], event.currentTarget); + /^(touchstart|mouseover)$/.test(event.type) && $$.setOverOut(true, data); + } + }).on(isTouch ? "touchend" : "mouseout", (event) => { + const data = getTarget(event); + $$.hideTooltip(); + $$.setOverOut(false, data); + }); + } + }, + /** + * Get tiling function + * @returns {Function} + * @private + */ + getTreemapTile() { + var _a, _b; + const $$ = this; + const { config, state: { current: { width, height } } } = $$; + const tile = (_b = { + binary: external_commonjs_d3_hierarchy_commonjs2_d3_hierarchy_amd_d3_hierarchy_root_d3_.treemapBinary, + dice: external_commonjs_d3_hierarchy_commonjs2_d3_hierarchy_amd_d3_hierarchy_root_d3_.treemapDice, + slice: external_commonjs_d3_hierarchy_commonjs2_d3_hierarchy_amd_d3_hierarchy_root_d3_.treemapSlice, + sliceDice: external_commonjs_d3_hierarchy_commonjs2_d3_hierarchy_amd_d3_hierarchy_root_d3_.treemapSliceDice, + squarify: external_commonjs_d3_hierarchy_commonjs2_d3_hierarchy_amd_d3_hierarchy_root_d3_.treemapSquarify, + resquarify: external_commonjs_d3_hierarchy_commonjs2_d3_hierarchy_amd_d3_hierarchy_root_d3_.treemapResquarify + }[(_a = config.treemap_tile) != null ? _a : "binary"]) != null ? _b : external_commonjs_d3_hierarchy_commonjs2_d3_hierarchy_amd_d3_hierarchy_root_d3_.treemapBinary; + return (node, x0, y0, x1, y1) => { + tile(node, 0, 0, width, height); + for (const child of node.children) { + child.x0 = x0 + child.x0 / width * (x1 - x0); + child.x1 = x0 + child.x1 / width * (x1 - x0); + child.y0 = y0 + child.y0 / height * (y1 - y0); + child.y1 = y0 + child.y1 / height * (y1 - y0); + } + }; + }, + /** + * Get treemap hierarchy data + * @param {Array} targets Data targets + * @returns {object} + * @private + */ + getTreemapData(targets) { + const $$ = this; + return { + name: "root", + children: convertDataToTreemapData.bind($$)( + $$.filterTargetsToShow(targets.filter($$.isTreemapType, $$)) + ) + }; + }, + /** + * Update treemap data + * @param {Array} targets Data targets + * @private + */ + updateTargetsForTreemap(targets) { + const $$ = this; + const { $el: { treemap } } = $$; + const treemapData = getHierachyData.call($$, $$.getTreemapData(targets != null ? targets : $$.data.targets)); + treemap.data(treemapData); + }, + /** + * Render treemap + * @param {number} durationForExit Duration for exit transition + * @private + */ + updateTreemap(durationForExit) { + const $$ = this; + const { $el, $T } = $$; + const data = $el.treemap.datum(); + const classChartTreemap = $$.getChartClass("Treemap"); + const classTreemap = $$.getClass("treemap", true); + const treemap = $el.treemap.selectAll("g").data(data.children); + $T(treemap.exit(), durationForExit).style("opacity", "0").remove(); + treemap.enter().append("g").append("rect"); + $el.treemap.selectAll("g").attr("class", classChartTreemap).select("rect").attr("class", classTreemap).attr("fill", (d) => $$.color(d.data.name)); + }, + /** + * Generate treemap coordinate points data + * @returns {Array} Array of coordinate points + * @private + */ + generateGetTreemapPoints() { + const $$ = this; + const { $el, scale: { x, y } } = $$; + const points = {}; + $el.treemap.selectAll("g").each((d) => { + points[d.data.name] = [ + [x(d.x0), y(d.y0)], + [x(d.x1), y(d.y1)] + ]; + }); + return (d) => points[d.id]; + }, + /** + * Redraw treemap + * @param {boolean} withTransition With or without transition + * @returns {Array} Selections + * @private + */ + redrawTreemap(withTransition) { + const $$ = this; + const { $el, state: { current: { width, height } } } = $$; + $el.defs.select("rect").attr("width", width).attr("height", height); + return [ + $$.$T($el.treemap, withTransition, getRandom()).call(position.bind($$), $el.treemap.datum()) + ]; + }, + /** + * Get treemap data label format function + * @param {object} d Data object + * @returns {Function} + * @private + */ + treemapDataLabelFormat(d) { + const $$ = this; + const { config } = $$; + const { id, value } = d; + const format = config.treemap_label_format; + const ratio = $$.getRatio("treemap", d); + const percentValue = (ratio * 100).toFixed(2); + const meetLabelThreshold = config.treemap_label_show && $$.meetsLabelThreshold( + ratio, + "treemap" + ) ? null : "0"; + return function(node) { + node.style("opacity", meetLabelThreshold); + return isFunction(format) ? format.bind($$.api)(value, ratio, id) : `${id} +${percentValue}%`; + }; + } +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/point.ts +/* harmony default export */ var common_point = ({ + /** + * Set point options + * @name point + * @memberof Options + * @type {object} + * @property {object} point Point object + * @property {boolean} [point.show=true] Whether to show each point in line. + * @property {number|Function} [point.r=2.5] The radius size of each point. + * - **NOTE:** Disabled for 'bubble' type + * @property {boolean|object} [point.radialGradient=false] Set the radial gradient on point.<br><br> + * Or customize by giving below object value: + * - cx {number}: `cx` value (default: `0.3`) + * - cy {number}: `cy` value (default: `0.3`) + * - r {number}: `r` value (default: `0.7`) + * - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values. + * - (default: `[[0.1, $DATA_COLOR, 1], [0.9, $DATA_COLOR, 0]]`) + * @property {boolean} [point.focus.expand.enabled=true] Whether to expand each point on focus. + * @property {number} [point.focus.expand.r=point.r*1.75] The radius size of each point on focus. + * - **NOTE:** For 'bubble' type, the default is `bubbleSize*1.15` + * @property {boolean} [point.focus.only=false] Show point only when is focused. + * @property {number|null} [point.opacity=undefined] Set point opacity value. + * - **NOTE:** + * - `null` will make to not set inline 'opacity' css prop. + * - when no value(or undefined) is set, it defaults to set opacity value according its chart types. + * @property {number|string|Function} [point.sensitivity=10] The senstivity value for interaction boundary. + * - **Available Values:** + * - {number}: Absolute sensitivity value which is the distance from the data point in pixel. + * - "radius": sensitivity based on point's radius + * - Function: callback for each point to determine the sensitivity<br> + * ```js + * sensitivity: function(d) { + * // ex. of argument d: + * // ==> {x: 2, value: 55, id: 'data3', index: 2, r: 19.820624179302296} + * + * // returning d.r, will make sensitivity same as point's radius value. + * return d.r; + * } + * ``` + * @property {number} [point.select.r=point.r*4] The radius size of each point on selected. + * @property {string} [point.type="circle"] The type of point to be drawn + * - **NOTE:** + * - If chart has 'bubble' type, only circle can be used. + * - For IE, non circle point expansions are not supported due to lack of transform support. + * - **Available Values:** + * - circle + * - rectangle + * @property {Array} [point.pattern=[]] The type of point or svg shape as string, to be drawn for each line + * - **NOTE:** + * - This is an `experimental` feature and can have some unexpected behaviors. + * - If chart has 'bubble' type, only circle can be used. + * - For IE, non circle point expansions are not supported due to lack of transform support. + * - **Available Values:** + * - circle + * - rectangle + * - svg shape tag interpreted as string<br> + * (ex. `<polygon points='2.5 0 0 5 5 5'></polygon>`) + * @see [Demo: point type](https://naver.github.io/billboard.js/demo/#Point.RectanglePoints) + * @see [Demo: point focus only](https://naver.github.io/billboard.js/demo/#Point.FocusOnly) + * @see [Demo: point radialGradient](https://naver.github.io/billboard.js/demo/#Point.RadialGradientPoint) + * @see [Demo: point sensitivity](https://naver.github.io/billboard.js/demo/#Point.PointSensitivity) + * @example + * point: { + * show: false, + * r: 5, + * + * // or customize the radius + * r: function(d) { + * ... + * return r; + * }, + * + * // will generate follwing radialGradient: + * // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/radialGradient + * // <radualGradient cx="0.3" cy="0.3" r="0.7"> + * // <stop offset="0.1" stop-color="$DATA_COLOR" stop-opacity="1"></stop> + * // <stop offset="0.9" stop-color="$DATA_COLOR" stop-opacity="0"></stop> + * // </radialrGradient> + * radialGradient: true, + * + * // Or customized gradient + * radialGradient: { + * cx: 0.3, // cx attributes + * cy: 0.5, // cy attributes + * r: 0.7, // r attributes + * stops: [ + * // offset, stop-color, stop-opacity + * [0, "#7cb5ec", 1], + * + * // setting 'null' for stop-color, will set its original data color + * [0.5, null, 0], + * + * // setting 'function' for stop-color, will pass data id as argument. + * // It should return color string or null value + * [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0], + * ] + * }, + * + * focus: { + * expand: { + * enabled: true, + * r: 1 + * }, + * only: true + * }, + * + * // do not set inline 'opacity' css prop setting + * opacity: null, + * + * // set every data point's opacity value + * opacity: 0.7, + * + * select: { + * r: 3 + * }, + * + * // having lower value, means how closer to be for interaction + * sensitivity: 3, + * + * // sensitivity based on point's radius + * sensitivity: "radius", + * + * // callback for each point to determine the sensitivity + * sensitivity: function(d) { + * // ex. of argument d: + * // ==> {x: 2, value: 55, id: 'data3', index: 2, r: 19.820624179302296} + * + * // returning d.r, will make sensitivity same as point's radius value. + * return d.r; + * } + * + * // valid values are "circle" or "rectangle" + * type: "rectangle", + * + * // or indicate as pattern + * pattern: [ + * "circle", + * "rectangle", + * "<polygon points='0 6 4 0 -4 0'></polygon>" + * ], + * } + */ + point_show: true, + point_r: 2.5, + point_radialGradient: false, + point_sensitivity: 10, + point_focus_expand_enabled: true, + point_focus_expand_r: void 0, + point_focus_only: false, + point_opacity: void 0, + point_pattern: [], + point_select_r: void 0, + point_type: "circle" +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/area.ts +/* harmony default export */ var Options_shape_area = ({ + /** + * Set area options + * @name area + * @memberof Options + * @type {object} + * @property {object} area Area object + * @property {boolean} [area.above=false] Set background area `above` the data chart line. + * @property {boolean} [area.below=false] Set background area `below` the data chart line. + * - **NOTE**: Can't be used along with `above` option. When above & below options are set to true, `above` will be prioritized. + * @property {boolean} [area.front=true] Set area node to be positioned over line node. + * @property {boolean|object} [area.linearGradient=false] Set the linear gradient on area.<br><br> + * Or customize by giving below object value: + * - x {Array}: `x1`, `x2` value (default: `[0, 0]`) + * - y {Array}: `y1`, `y2` value (default: `[0, 1]`) + * - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values. + * - (default: `[[0, $DATA_COLOR, 1], [1, $DATA_COLOR, 0]]`) + * @property {boolean} [area.zerobased=true] Set if min or max value will be 0 on area chart. + * @see [MDN's <linearGradient>](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient), [<stop>](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/stop) + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.AreaChart) + * @see [Demo: above](https://naver.github.io/billboard.js/demo/#AreaChartOptions.Above) + * @see [Demo: below](https://naver.github.io/billboard.js/demo/#AreaChartOptions.Below) + * @see [Demo: linearGradient](https://naver.github.io/billboard.js/demo/#AreaChartOptions.LinearGradient) + * @example + * area: { + * above: true, + * below: false, + * zerobased: false, + * + * // <g class='bb-areas'> will be positioned behind the line <g class='bb-lines'> in stacking order + * front: false, + * + * // will generate follwing linearGradient: + * // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient + * // <linearGradient x1="0" x2="0" y1="0" y2="1"> + * // <stop offset="0" stop-color="$DATA_COLOR" stop-opacity="1"></stop> + * // <stop offset="1" stop-color="$DATA_COLOR" stop-opacity="0"></stop> + * // </linearGradient> + * linearGradient: true, + * + * // Or customized gradient + * linearGradient: { + * x: [0, 0], // x1, x2 attributes + * y: [0, 0], // y1, y2 attributes + * stops: [ + * // offset, stop-color, stop-opacity + * [0, "#7cb5ec", 1], + * + * // setting 'null' for stop-color, will set its original data color + * [0.5, null, 0], + * + * // setting 'function' for stop-color, will pass data id as argument. + * // It should return color string or null value + * [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0], + * ] + * } + * } + */ + area_above: false, + area_below: false, + area_front: true, + area_linearGradient: false, + area_zerobased: true +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/bar.ts +/* harmony default export */ var shape_bar = ({ + /** + * Set bar options + * @name bar + * @memberof Options + * @type {object} + * @property {object} bar Bar object + * @property {boolean} [bar.front=false] Set 'bar' to be positioned over(on the top) other shapes elements. + * @property {number} [bar.indices.removeNull=false] Remove nullish data on bar indices positions. + * @property {number} [bar.label.threshold=0] Set threshold ratio to show/hide labels. + * @property {boolean|object} [bar.linearGradient=false] Set the linear gradient on bar.<br><br> + * Or customize by giving below object value: + * - x {Array}: `x1`, `x2` value (default: `[0, 0]`) + * - y {Array}: `y1`, `y2` value (default: `[0, 1]`) + * - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values. + * - (default: `[[0, $DATA_COLOR, 1], [1, $DATA_COLOR, 0]]`) + * @property {boolean} [bar.overlap=false] Bars will be rendered at same position, which will be overlapped each other. (for non-grouped bars only) + * @property {number} [bar.padding=0] The padding pixel value between each bar. + * @property {number} [bar.radius] Set the radius of bar edge in pixel. + * @property {number} [bar.radius.ratio] Set the radius ratio of bar edge in relative the bar's width. + * @property {number} [bar.sensitivity=2] The senstivity offset value for interaction boundary. + * @property {number} [bar.width] Change the width of bar chart. + * @property {number} [bar.width.ratio=0.6] Change the width of bar chart by ratio. + * @property {number} [bar.width.max] The maximum width value for ratio. + * @property {number} [bar.width.dataname] Change the width of bar for indicated dataset only. + * - **NOTE:** + * - Works only for non-stacked bar + * - Bars are centered accoding its total width value + * @property {number} [bar.width.dataname.ratio=0.6] Change the width of bar chart by ratio. + * @property {number} [bar.width.dataname.max] The maximum width value for ratio. + * @property {boolean} [bar.zerobased=true] Set if min or max value will be 0 on bar chart. + * @see [Demo: bar front](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarFront) + * @see [Demo: bar indices](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarIndices) + * @see [Demo: bar overlap](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarOverlap) + * @see [Demo: bar padding](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarPadding) + * @see [Demo: bar radius](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarRadius) + * @see [Demo: bar width](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarWidth) + * @see [Demo: bar width variant](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarWidthVariant) + * @example + * bar: { + * // make bar shape to be positioned over the other shape elements + * front: true, + * + * // remove nullish data on bar indices postions + * indices: { + * removeNull: true + * }, + * + * // will generate follwing linearGradient: + * // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient + * // <linearGradient x1="0" x2="0" y1="0" y2="1"> + * // <stop offset="0" stop-color="$DATA_COLOR" stop-opacity="1"></stop> + * // <stop offset="1" stop-color="$DATA_COLOR" stop-opacity="0"></stop> + * // </linearGradient> + * linearGradient: true, + * + * // Or customized gradient + * linearGradient: { + * x: [0, 0], // x1, x2 attributes + * y: [0, 0], // y1, y2 attributes + * stops: [ + * // offset, stop-color, stop-opacity + * [0, "#7cb5ec", 1], + * + * // setting 'null' for stop-color, will set its original data color + * [0.5, null, 0], + * + * // setting 'function' for stop-color, will pass data id as argument. + * // It should return color string or null value + * [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0], + * ] + * }, + * + * // remove nullish da + * overlap: true, + * + * padding: 1, + * + * // bar radius + * radius: 10, + * // or + * radius: { + * ratio: 0.5 + * } + * + * label: { + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the y Axis domain range value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * }, + * + * // will not have offset between each bar elements for interaction + * sensitivity: 0, + * + * width: 10, + * + * // or + * width: { + * ratio: 0.2, + * max: 20 + * }, + * + * // or specify width per dataset + * width: { + * data1: 20, + * data2: { + * ratio: 0.2, + * max: 20 + * } + * }, + * + * zerobased: false + * } + */ + bar_front: false, + bar_indices_removeNull: false, + bar_label_threshold: 0, + bar_linearGradient: false, + bar_overlap: false, + bar_padding: 0, + bar_radius: void 0, + bar_radius_ratio: void 0, + bar_sensitivity: 2, + bar_width: void 0, + bar_width_ratio: 0.6, + bar_width_max: void 0, + bar_zerobased: true +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/bubble.ts +/* harmony default export */ var shape_bubble = ({ + /** + * Set bubble options + * @name bubble + * @memberof Options + * @type {object} + * @property {object} bubble bubble object + * @property {number|Function} [bubble.maxR=35] Set the max bubble radius value + * @property {boolean} [bubble.zerobased=false] Set if min or max value will be 0 on bubble chart. + * @example + * bubble: { + * // ex) If 100 is the highest value among data bound, the representation bubble of 100 will have radius of 50. + * // And the lesser will have radius relatively from tha max value. + * maxR: 50, + * + * // or set radius callback + * maxR: function(d) { + * // ex. of d param - {x: Fri Oct 06 2017 00:00:00 GMT+0900, value: 80, id: "data2", index: 5} + * ... + * return Math.sqrt(d.value * 2); + * }, + * zerobased: false + * } + */ + bubble_maxR: 35, + bubble_zerobased: false +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/candlestick.ts +/* harmony default export */ var shape_candlestick = ({ + /** + * Set candlestick options + * @name candlestick + * @memberof Options + * @type {object} + * @property {object} candlestick Candlestick object + * @property {number} [candlestick.width] Change the width. + * @property {number} [candlestick.width.ratio=0.6] Change the width by ratio. + * @property {number} [candlestick.width.max] The maximum width value for ratio. + * @property {number} [candlestick.width.dataname] Change the width for indicated dataset only. + * @property {number} [candlestick.width.dataname.ratio=0.6] Change the width of bar chart by ratio. + * @property {number} [candlestick.width.dataname.max] The maximum width value for ratio. + * @property {object} [candlestick.color] Color setting. + * @property {string|object} [candlestick.color.down] Change down(bearish) value color. + * @property {string} [candlestick.color.down.dataname] Change down value color for indicated dataset only. + * + * @see [Demo](https://naver.github.io/billboard.js/demo/##Chart.CandlestickChart) + * @example + * candlestick: { + * width: 10, + * + * // or + * width: { + * ratio: 0.2, + * max: 20 + * }, + * + * // or specify width per dataset + * width: { + * data1: 20, + * data2: { + * ratio: 0.2, + * max: 20 + * } + * }, + * color: { + * // spcify bearish color + * down: "red", + * + * // or specify color per dataset + * down: { + * data1: "red", + * data2: "blue", + * } + * } + * } + */ + candlestick_width: void 0, + candlestick_width_ratio: 0.6, + candlestick_width_max: void 0, + candlestick_color_down: "red" +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/line.ts +/* harmony default export */ var shape_line = ({ + /** + * Set line options + * @name line + * @memberof Options + * @type {object} + * @property {object} line Line object + * @property {boolean} [line.connectNull=false] Set if null data point will be connected or not.<br> + * If true set, the region of null data will be connected without any data point. If false set, the region of null data will not be connected and get empty. + * @property {Array} [line.classes=undefined] If set, used to set a css class on each line. + * @property {boolean} [line.step.type=step] Change step type for step chart.<br> + * **Available values:** + * - step + * - step-before + * - step-after + * @property {boolean} [line.step.tooltipMatch=false] Set to `true` for `step-before` and `step-after` types to have cursor/tooltip match to hovered step's point instead of nearest point. + * @property {boolean|Array} [line.point=true] Set to false to not draw points on linecharts. Or pass an array of line ids to draw points for. + * @property {boolean} [line.zerobased=false] Set if min or max value will be 0 on line chart. + * @example + * line: { + * connectNull: true, + * classes: [ + * "line-class1", + * "line-class2" + * ], + * step: { + * type: "step-after", + * + * // to have cursor/tooltip match to hovered step's point instead of nearest point. + * tooltipMatch: true + * }, + * + * // hide all data points ('point.show=false' also has similar effect) + * point: false, + * + * // show data points for only indicated datas + * point: [ + * "data1", "data3" + * ], + * + * zerobased: false + * } + */ + line_connectNull: false, + line_step_type: "step", + line_step_tooltipMatch: false, + line_zerobased: false, + line_classes: void 0, + line_point: true +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/scatter.ts +/* harmony default export */ var scatter = ({ + /** + * Set scatter options + * @name scatter + * @memberof Options + * @type {object} + * @property {object} [scatter] scatter object + * @property {boolean} [scatter.zerobased=false] Set if min or max value will be 0 on scatter chart. + * @example + * scatter: { + * connectNull: true, + * step: { + * type: "step-after" + * }, + * + * // hide all data points ('point.show=false' also has similar effect) + * point: false, + * + * // show data points for only indicated datas + * point: [ + * "data1", "data3" + * ], + * + * zerobased: false + * } + */ + scatter_zerobased: false +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/spline.ts +/* harmony default export */ var spline = ({ + /** + * Set spline options + * - **Available interpolation type values:** + * - basis (d3.curveBasis) + * - basis-closed (d3.curveBasisClosed) + * - basis-open (d3.curveBasisOpen) + * - bundle (d3.curveBundle) + * - cardinal (d3.curveCardinal) + * - cardinal-closed (d3.curveCardinalClosed) + * - cardinal-open (d3.curveCardinalOpen) + * - catmull-rom (d3.curveCatmullRom) + * - catmull-rom-closed (d3.curveCatmullRomClosed) + * - catmull-rom-open (d3.curveCatmullRomOpen) + * - monotone-x (d3.curveMonotoneX) + * - monotone-y (d3.curveMonotoneY) + * - natural (d3.curveNatural) + * - linear-closed (d3.curveLinearClosed) + * - linear (d3.curveLinear) + * - step (d3.curveStep) + * - step-after (d3.curveStepAfter) + * - step-before (d3.curveStepBefore) + * @name spline + * @memberof Options + * @type {object} + * @property {object} spline Spline object + * @property {object} spline.interpolation Spline interpolation object + * @property {string} [spline.interpolation.type="cardinal"] Interpolation type + * @see [Interpolation (d3 v4)](http://bl.ocks.org/emmasaunders/c25a147970def2b02d8c7c2719dc7502) + * @example + * spline: { + * interpolation: { + * type: "cardinal" + * } + * } + */ + spline_interpolation_type: "cardinal" +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/arc.ts +/* harmony default export */ var shape_arc = ({ + /** + * Set arc options + * @name arc + * @memberof Options + * @type {object} + * @property {object} arc Arc object + * @property {number|Function} [arc.cornerRadius=0] Set corner radius of Arc(donut/gauge/pie/polar) shape. + * - **NOTE:** + * - Corner radius can't surpass the `(outerRadius - innerRadius) /2` of indicated shape. + * @property {number} [arc.cornerRadius.ratio=0] Set ratio relative of outer radius. + * @property {object} [arc.needle] Set needle options. + * @property {boolean} [arc.needle.show=false] Show or hide needle. + * @property {string} [arc.needle.color] Set needle filled color. + * @property {Function} [arc.needle.path] Set custom needle path function. + * - **NOTE:** + * - The path should be starting from 0,0 (which is center) to top center coordinate. + * - The function will receive, `length`{number} parameter which indicating the needle length in pixel relative to radius. + * @property {number} [arc.needle.value] Set needle value. + * - **NOTE:** + * - For single gauge chart, needle will point the data value by default, otherwise will point 0(zero). + * @property {number} [arc.needle.length=100] Set needle length in percentages relative to radius. + * @property {object} [arc.needle.top] Set needle top options. + * @property {number} [arc.needle.top.rx=0] Set needle top [rx radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.top.ry=0] Set needle top [ry radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.top.width=0] Set needle top width in pixel. + * @property {object} [arc.needle.bottom] Set needle bottom options. + * @property {number} [arc.needle.bottom.rx=1] Set needle bottom [rx radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.bottom.ry=1] Set needle bottom [ry radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.bottom.width=15] Set needle bottom width in pixel. + * @property {number} [arc.needle.bottom.len=0] Set needle bottom length in pixel. Setting this value, will make bottom larger starting from center. + * @property {object} [arc.rangeText] Set rangeText options. + * @property {Array} [arc.rangeText.values] Set range text values to be shown around Arc. + * - When `unit: 'absolute'`: Given values are treated as absolute values. + * - When `unit: '%'`: Given values are treated as percentages. + * @property {string} [arc.rangeText.unit="absolute"] Specify the range text unit. + * - "absolute": Show absolute value + * - "%": Show percentage value + * @property {boolean} [arc.rangeText.fiexed=false] Set if range text shown will be fixed w/o data toggle update. Only available for gauge chart. + * @property {Function} [arc.rangeText.format] Set format function for the range text. + * @property {number} [arc.rangeText.position] Set position function or object for the range text. + * @see [Demo: Donut corner radius](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutCornerRadius) + * @see [Demo: Donut corner radius](https://naver.github.io/billboard.js/demo/#PieChartOptions.CornerRadius) + * @see [Demo: Donut needle](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutNeedle) + * @see [Demo: Donut RangeText](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutRangeText) + * @see [Demo: Gauge corner radius](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeCornerRadius) + * @see [Demo: Gauge needle](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeNeedle) + * @see [Demo: Gauge RangeText](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeRangeText) + * @example + * arc: { + * cornerRadius: 12, + * + * // can customize corner radius for each data with function callback + * // + * // The function will receive: + * // - id {string}: Data id + * // - value {number}: Data value + * // - outerRadius {number}: Outer radius value + * cornerRadius: function(id, value, outerRadius) { + * return (id === "data1" && value > 10) ? + * 50 : outerRadius * 1.2; + * }, + * + * // set ratio relative of outer radius + * cornerRadius: { + * ratio: 0.5 + * }, + * + * needle: { + * show: true, + * color: "red", // any valid CSS color + * path: function(length) { + * const len = length - 20; + * + * // will return upper arrow shape path + * // Note: The path should begun from '0,0' coordinate to top center. + * const path = `M 0 -${len + 20} + * L -12 -${len} + * L -5 -${len} + * L -5 0 + * A 1 1 0 0 0 5 0 + * L 5 -${len} + * L 12 -${len} Z`; + * + * return path; + * }, + * value: 40, // will make needle to point value 40. + * length: 80, // needle length in percentages relative to radius. + * + * top: { + * // rx and ry are the two radii of the ellipse; + * // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve + * rx: 1, + * ry: 1, + * width: 5 + * }, + * bottom: { + * // rx and ry are the two radii of the ellipse; + * // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve + * rx: 1, + * ry: 1, + * width: 10 + * len: 10 + * } + * }, + * + * rangeText: { + * values: [15, 30, 50, 75, 95], + * unit: "%", + * fixed: false, // only available for gauge chart + * format: function(v) { + * return v === 15 ? "Fifteen" : v; + * }, + * + * position: function(v) { + * return v === 15 ? {x: 20, y: 10} : null; // can return one props value also. + * }, + * position: {x: 10, y: 15}, + * position: {x: 10} + * } + * } + */ + arc_cornerRadius: 0, + arc_cornerRadius_ratio: 0, + arc_needle_show: false, + arc_needle_color: void 0, + arc_needle_value: void 0, + arc_needle_path: void 0, + arc_needle_length: 100, + arc_needle_top_rx: 0, + arc_needle_top_ry: 0, + arc_needle_top_width: 0, + arc_needle_bottom_rx: 1, + arc_needle_bottom_ry: 1, + arc_needle_bottom_width: 15, + arc_needle_bottom_len: 0, + arc_rangeText_values: void 0, + arc_rangeText_unit: "absolute", + arc_rangeText_fixed: false, + arc_rangeText_format: void 0, + arc_rangeText_position: void 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/donut.ts +/* harmony default export */ var donut = ({ + /** + * Set donut options + * @name donut + * @memberof Options + * @type {object} + * @property {object} donut Donut object + * @property {boolean} [donut.label.show=true] Show or hide label on each donut piece. + * @property {Function} [donut.label.format] Set formatter for the label on each donut piece. + * @property {number} [donut.label.threshold=0.05] Set threshold ratio to show/hide labels. + * @property {number|Function} [donut.label.ratio=undefined] Set ratio of labels position. + * @property {boolean} [donut.expand=true] Enable or disable expanding donut pieces. + * @property {number} [donut.expand.rate=0.98] Set expand rate. + * @property {number} [donut.expand.duration=50] Set expand transition time in ms. + * @property {number} [donut.width] Set width of donut chart. + * @property {string} [donut.title=""] Set title of donut chart. Use `\n` character for line break. + * - **NOTE:** + * - When `arc.needle.show=true` is set, special template `{=NEEDLE_VALUE}` can be used inside the title text to show current needle value. + * @property {number} [donut.padAngle=0] Set padding between data. + * @property {number} [donut.startingAngle=0] Set starting angle where data draws. + * @example + * donut: { + * label: { + * show: false, + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * + * // disable expand transition for interaction + * expand: false, + * + * expand: { + * // set duration of expand transition to 500ms. + * duration: 500, + * + * // set expand area rate + * rate: 1 + * }, + * + * width: 10, + * padAngle: 0.2, + * startingAngle: 1, + * title: "Donut Title" + * + * // when 'arc.needle.show=true' is set, can show current needle value. + * title: "Needle value:\n{=NEEDLE_VALUE}", + * + * // title with line break + * title: "Title1\nTitle2" + * } + */ + donut_label_show: true, + donut_label_format: void 0, + donut_label_threshold: 0.05, + donut_label_ratio: void 0, + donut_width: void 0, + donut_title: "", + donut_expand: {}, + donut_expand_rate: 0.98, + donut_expand_duration: 50, + donut_padAngle: 0, + donut_startingAngle: 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/funnel.ts +/* harmony default export */ var shape_funnel = ({ + /** + * Set funnel options + * @name funnel + * @memberof Options + * @type {object} + * @property {object} funnel Funnel object + * @property {number} [funnel.neck.width=0] Set funnel neck width. + * @property {number} [funnel.neck.height=0] Set funnel neck height. + * @property {number} [funnel.neck.width.ratio] Set funnel neck width in ratio. + * @property {number} [funnel.neck.height.ratio] Set funnel neck height in ratio. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.PolarChart) + * @example + * funnel: { + * neck: { + * width: 200, + * height: 100, + * + * // or specify as ratio value (relative to the chart size) + * width: { + * ratio: 0.5 + * }, + * height: { + * ratio: 0.5 + * } + * } + * } + */ + funnel_neck_width: 0, + funnel_neck_height: 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/gauge.ts +/* harmony default export */ var shape_gauge = ({ + /** + * Set gauge options + * @name gauge + * @memberof Options + * @type {object} + * @property {object} gauge Gauge object + * @property {boolean} [gauge.background=""] Set background color. (The `.bb-chart-arcs-background` element) + * @property {boolean} [gauge.fullCircle=false] Show full circle as donut. When set to 'true', the max label will not be showed due to start and end points are same location. + * @property {boolean} [gauge.label.show=true] Show or hide label on gauge. + * @property {Function} [gauge.label.extents] Set customized min/max label text. + * @property {Function} [gauge.label.format] Set formatter for the label on gauge. Label text can be multilined with `\n` character.<br> + * Will pass following arguments to the given function: + * - value {number}: absolute value + * - ratio {number}: value's ratio + * - id {string}: data's id value + * @property {number|Function} [gauge.label.ratio=undefined] Set ratio of labels position. + * @property {number} [gauge.label.threshold=0] Set threshold ratio to show/hide labels. + * @property {boolean} [gauge.expand=true] Enable or disable expanding gauge. + * @property {number} [gauge.expand.rate=0.98] Set expand rate. + * @property {number} [gauge.expand.duration=50] Set the expand transition time in milliseconds. + * @property {boolean} [gauge.enforceMinMax=false] Enforce to given min/max value. + * - When `gauge.min=50` and given value is `30`, gauge will render as empty value. + * - When `gauge.max=100` and given value is `120`, gauge will render till 100, not surpassing max value. + * @property {number} [gauge.min=0] Set min value of the gauge. + * @property {number} [gauge.max=100] Set max value of the gauge. + * @property {number} [gauge.startingAngle=-1 * Math.PI / 2] Set starting angle where data draws. + * + * **Limitations:** + * - when `gauge.fullCircle=false`: + * - -1 * Math.PI / 2 <= startingAngle <= Math.PI / 2 + * - `startingAngle <= -1 * Math.PI / 2` defaults to `-1 * Math.PI / 2` + * - `startingAngle >= Math.PI / 2` defaults to `Math.PI / 2` + * - when `gauge.fullCircle=true`: + * - -1 * Math.PI < startingAngle < Math.PI + * - `startingAngle < -1 * Math.PI` defaults to `Math.PI` + * - `startingAngle > Math.PI` defaults to `Math.PI` + * @property {number} [gauge.arcLength=100] Set the length of the arc to be drawn in percent from -100 to 100.<br> + * Negative value will draw the arc **counterclockwise**. Need to be used in conjunction with `gauge.fullCircle=true`. + * + * **Limitations:** + * - -100 <= arcLength (in percent) <= 100 + * - 'arcLength < -100' defaults to -100 + * - 'arcLength > 100' defaults to 100 + * @property {string} [gauge.title=""] Set title of gauge chart. Use `\n` character for line break. + * - **NOTE:** + * - When `arc.needle.show=true` is set, special template `{=NEEDLE_VALUE}` can be used inside the title text to show current needle value. + * @property {string} [gauge.units] Set units of the gauge. + * @property {number} [gauge.width] Set width of gauge chart. + * @property {string} [gauge.type="single"] Set type of gauge to be displayed.<br><br> + * **Available Values:** + * - single + * - multi + * @property {number} [gauge.arcs.minWidth=5] Set minimal width of gauge arcs until the innerRadius disappears. + * @see [Demo: enforceMinMax, min/max](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeMinMax) + * @see [Demo: archLength](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeArcLength) + * @see [Demo: startingAngle](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeStartingAngle) + * @see [Demo: labelRatio](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeLabelRatio) + * @example + * gauge: { + * background: "#eee", // will set 'fill' css prop for '.bb-chart-arcs-background' classed element. + * fullCircle: false, + * label: { + * show: false, + * format: function(value, ratio, id) { + * return value; + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * extents: function(value, isMax) { + * return (isMax ? "Max:" : "Min:") + value; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * + * // disable expand transition for interaction + * expand: false, + * + * expand: { + * // set duration of expand transition to 500ms. + * duration: 500, + * + * // set expand area rate + * rate: 1 + * }, + * + * // enforce min/max value. + * // when given value < min, will render as empty value. + * // when value > max, will render to given max value not surpassing it. + * enforceMinMax: true, + * + * min: -100, + * max: 200, + * type: "single" // or 'multi' + * title: "Title Text", + * + * // when 'arc.needle.show=true' is set, can show current needle value. + * title: "Needle value:\n{=NEEDLE_VALUE}", + * + * units: "%", + * width: 10, + * startingAngle: -1 * Math.PI / 2, + * arcLength: 100, + * arcs: { + * minWidth: 5 + * } + * } + */ + gauge_background: "", + gauge_fullCircle: false, + gauge_label_show: true, + gauge_label_extents: void 0, + gauge_label_format: void 0, + gauge_label_ratio: void 0, + gauge_label_threshold: 0, + gauge_enforceMinMax: false, + gauge_min: 0, + gauge_max: 100, + gauge_type: "single", + gauge_startingAngle: -1 * Math.PI / 2, + gauge_arcLength: 100, + gauge_title: "", + gauge_units: void 0, + gauge_width: void 0, + gauge_arcs_minWidth: 5, + gauge_expand: {}, + gauge_expand_rate: 0.98, + gauge_expand_duration: 50 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/pie.ts +/* harmony default export */ var pie = ({ + /** + * Set pie options + * @name pie + * @memberof Options + * @type {object} + * @property {object} pie Pie object + * @property {boolean} [pie.label.show=true] Show or hide label on each pie piece. + * @property {Function} [pie.label.format] Set formatter for the label on each pie piece. + * @property {number|Function} [pie.label.ratio=undefined] Set ratio of labels position. + * @property {number} [pie.label.threshold=0.05] Set threshold ratio to show/hide labels. + * @property {boolean|object} [pie.expand=true] Enable or disable expanding pie pieces. + * @property {number} [pie.expand.rate=0.98] Set expand rate. + * @property {number} [pie.expand.duration=50] Set expand transition time in ms. + * @property {number|object} [pie.innerRadius=0] Sets the inner radius of pie arc. + * @property {number|object|undefined} [pie.outerRadius=undefined] Sets the outer radius of pie arc. + * @property {number} [pie.padAngle=0] Set padding between data. + * @property {number} [pie.padding=0] Sets the gap between pie arcs. + * @property {number} [pie.startingAngle=0] Set starting angle where data draws. + * @see [Demo: expand.rate](https://naver.github.io/billboard.js/demo/#PieChartOptions.ExpandRate) + * @see [Demo: innerRadius](https://naver.github.io/billboard.js/demo/#PieChartOptions.InnerRadius) + * @see [Demo: outerRadius](https://naver.github.io/billboard.js/demo/#PieChartOptions.OuterRadius) + * @see [Demo: startingAngle](https://naver.github.io/billboard.js/demo/#PieChartOptions.StartingAngle) + * @example + * pie: { + * label: { + * show: false, + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * + * // disable expand transition for interaction + * expand: false, + * + * expand: { + * // set duration of expand transition to 500ms. + * duration: 500, + * + * // set expand area rate + * rate: 1 + * }, + * + * innerRadius: 0, + * + * // set different innerRadius for each data + * innerRadius: { + * data1: 10, + * data2: 0 + * }, + * + * outerRadius: 100, + * + * // set different outerRadius for each data + * outerRadius: { + * data1: 50, + * data2: 100 + * } + * + * padAngle: 0.1, + * padding: 0, + * startingAngle: 1 + * } + */ + pie_label_show: true, + pie_label_format: void 0, + pie_label_ratio: void 0, + pie_label_threshold: 0.05, + pie_expand: {}, + pie_expand_rate: 0.98, + pie_expand_duration: 50, + pie_innerRadius: 0, + pie_outerRadius: void 0, + pie_padAngle: 0, + pie_padding: 0, + pie_startingAngle: 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/polar.ts +/* harmony default export */ var shape_polar = ({ + /** + * Set polar options + * @name polar + * @memberof Options + * @type {object} + * @property {object} polar Polar object + * @property {boolean} [polar.label.show=true] Show or hide label on each polar piece. + * @property {Function} [polar.label.format] Set formatter for the label on each polar piece. + * @property {number} [polar.label.threshold=0.05] Set threshold ratio to show/hide labels. + * @property {number|Function} [polar.label.ratio=undefined] Set ratio of labels position. + * @property {number} [polar.level.depth=3] Set the level depth. + * @property {boolean} [polar.level.show=true] Show or hide level. + * @property {string} [polar.level.text.backgroundColor="#fff"] Set label text's background color. + * @property {Function} [polar.level.text.format] Set format function for the level value.<br>- Default value: `(x) => x % 1 === 0 ? x : x.toFixed(2)` + * @property {boolean} [polar.level.text.show=true] Show or hide level text. + * @property {number} [polar.padAngle=0] Set padding between data. + * @property {number} [polar.padding=0] Sets the gap between pie arcs. + * @property {number} [polar.startingAngle=0] Set starting angle where data draws. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.PolarChart) + * @example + * polar: { + * label: { + * show: false, + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * level: { + * depth: 3, + * max: 500, + * show: true, + * text: { + * format: function(x) { + * return x + "%"; + * }, + * show: true, + * backgroundColor: "red" + * } + * }, + * padAngle: 0.1, + * padding: 0, + * startingAngle: 1 + * } + */ + polar_label_show: true, + polar_label_format: void 0, + polar_label_threshold: 0.05, + polar_label_ratio: void 0, + polar_level_depth: 3, + polar_level_max: void 0, + polar_level_show: true, + polar_level_text_backgroundColor: "#fff", + polar_level_text_format: (x) => x % 1 === 0 ? x : x.toFixed(2), + polar_level_text_show: true, + polar_padAngle: 0, + polar_padding: 0, + polar_startingAngle: 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/radar.ts +/* harmony default export */ var shape_radar = ({ + /** + * Set radar options + * - **NOTE:** + * > When x tick text contains `\n`, it's used as line break. + * @name radar + * @memberof Options + * @type {object} + * @property {object} radar Radar object + * @property {number} [radar.axis.max=undefined] The max value of axis. If not given, it'll take the max value from the given data. + * @property {boolean} [radar.axis.line.show=true] Show or hide axis line. + * @property {number} [radar.axis.text.position.x=0] x coordinate position, relative the original. + * @property {number} [radar.axis.text.position.y=0] y coordinate position, relative the original. + * @property {boolean} [radar.axis.text.show=true] Show or hide axis text. + * @property {boolean} [radar.direction.clockwise=false] Set the direction to be drawn. + * @property {number} [radar.level.depth=3] Set the level depth. + * @property {boolean} [radar.level.show=true] Show or hide level. + * @property {Function} [radar.level.text.format] Set format function for the level value.<br>- Default value: `(x) => x % 1 === 0 ? x : x.toFixed(2)` + * @property {boolean} [radar.level.text.show=true] Show or hide level text. + * @property {number} [radar.size.ratio=0.87] Set size ratio. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.RadarChart) + * @see [Demo: radar axis](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarAxis) + * @see [Demo: radar level](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarLevel) + * @see [Demo: radar size](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarSize) + * @see [Demo: radar axis multiline](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarAxisMultiline) + * @example + * radar: { + * axis: { + * max: 50, + * line: { + * show: false + * }, + * text: { + * position: { + * x: 0, + * y: 0 + * }, + * show: false + * } + * }, + * direction: { + * clockwise: true + * }, + * level: { + * show: false, + * text: { + * format: function(x) { + * return x + "%"; + * }, + * show: true + * } + * }, + * size: { + * ratio: 0.7 + * } + * } + */ + radar_axis_max: void 0, + radar_axis_line_show: true, + radar_axis_text_show: true, + radar_axis_text_position: {}, + radar_level_depth: 3, + radar_level_show: true, + radar_level_text_format: (x) => x % 1 === 0 ? x : x.toFixed(2), + radar_level_text_show: true, + radar_size_ratio: 0.87, + radar_direction_clockwise: false +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/treemap.ts +/* harmony default export */ var shape_treemap = ({ + /** + * Set treemap options + * @name treemap + * @memberof Options + * @type {object} + * @property {object} treemap Treemap object + * @property {string} [treemap.tile="binary"] Treemap tile type + * - **Available tile type values:** + * - binary ([d3.treemapBinary](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapBinary)) + * - dice ([d3.treemapDice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapDice)) + * - slice ([d3.treemapSlice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSlice)) + * - sliceDice ([d3.treemapSliceDice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSliceDice)) + * - squrify ([d3.treemapSquarify](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSquarify)) + * - resquarify ([d3.treemapResquarify](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapResquarify)) + * @property {Function} [treemap.label.format] Set formatter for the label text. + * @property {number} [treemap.label.threshold=0.05] Set threshold ratio to show/hide labels text. + * @property {number} [treemap.label.show=true] Show or hide label text. + * @see [Demo: treemap](https://naver.github.io/billboard.js/demo/#Chart.TreemapChart) + * @example + * treemap: { + * // "binary", "dice", "slice", "sliceDice", "squrify", "resquarify" + * tile: "dice", + * + * label: { + * // show or hide label text + * show: false, + * + * // set label text formatter + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // set ratio number + * ratio: 0.05 + * } + * } + */ + treemap_tile: "binary", + treemap_label_format: void 0, + treemap_label_threshold: 0.05, + treemap_label_show: true +}); + +;// CONCATENATED MODULE: ./src/config/resolver/shape.ts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +function extendAxis(module, option) { + extend(ChartInternal.prototype, Object.values(internal).concat(module)); + extend(Chart.prototype, api); + Options.setOptions(Object.values(options).concat(option || [])); +} +function extendLine(module, option) { + extendAxis([point_common, point, line].concat(module || [])); + Options.setOptions([common_point, shape_line].concat(option || [])); +} +function extendArc(module, option) { + extend(ChartInternal.prototype, [arc, point_common].concat(module || [])); + Options.setOptions([common_point].concat(option || [])); +} +let resolver_shape_area = () => (extendLine(shape_area, [Options_shape_area]), (resolver_shape_area = () => TYPE.AREA)()); +let areaLineRange = () => (extendLine(shape_area, [Options_shape_area]), (areaLineRange = () => TYPE.AREA_LINE_RANGE)()); +let areaSpline = () => (extendLine(shape_area, [Options_shape_area, spline]), (areaSpline = () => TYPE.AREA_SPLINE)()); +let areaSplineRange = () => (extendLine(shape_area, [Options_shape_area, spline]), (areaSplineRange = () => TYPE.AREA_SPLINE_RANGE)()); +let areaStep = () => (extendLine(shape_area, [Options_shape_area]), (areaStep = () => TYPE.AREA_STEP)()); +let resolver_shape_line = () => (extendLine(), (resolver_shape_line = () => TYPE.LINE)()); +let shape_spline = () => (extendLine(void 0, [spline]), (shape_spline = () => TYPE.SPLINE)()); +let step = () => (extendLine(), (step = () => TYPE.STEP)()); +let shape_donut = () => (extendArc(void 0, [shape_arc, donut]), (shape_donut = () => TYPE.DONUT)()); +let resolver_shape_gauge = () => (extendArc([gauge], [shape_arc, shape_gauge]), (resolver_shape_gauge = () => TYPE.GAUGE)()); +let shape_pie = () => (extendArc(void 0, [shape_arc, pie]), (shape_pie = () => TYPE.PIE)()); +let resolver_shape_polar = () => (extendArc([polar], [shape_arc, shape_polar]), (resolver_shape_polar = () => TYPE.POLAR)()); +let resolver_shape_radar = () => (extendArc( + [internal.eventrect, point, radar], + [common_point, shape_radar, { axis_x_categories: options.optAxis.axis_x_categories }] +), (resolver_shape_radar = () => TYPE.RADAR)()); +let resolver_shape_bar = () => (extendAxis([bar, point_common], [shape_bar, common_point]), (resolver_shape_bar = () => TYPE.BAR)()); +let resolver_shape_bubble = () => (extendAxis( + [point_common, point, bubble], + [shape_bubble, common_point] +), (resolver_shape_bubble = () => TYPE.BUBBLE)()); +let resolver_shape_candlestick = () => (extendAxis( + [candlestick, point_common], + [shape_candlestick, common_point] +), (resolver_shape_candlestick = () => TYPE.CANDLESTICK)()); +let shape_scatter = () => (extendAxis( + [point_common, point], + [common_point, scatter] +), (shape_scatter = () => TYPE.SCATTER)()); +let resolver_shape_funnel = () => (extendArc([funnel], [shape_funnel]), (resolver_shape_funnel = () => TYPE.FUNNEL)()); +let resolver_shape_treemap = () => (extendAxis([treemap], [shape_treemap]), (resolver_shape_treemap = () => TYPE.TREEMAP)()); + +;// CONCATENATED MODULE: ./src/core.ts + + +let defaults = {}; +const bb = { + /** + * Version information + * @property {string} version version + * @example + * bb.version; // "1.0.0" + * @memberof bb + */ + version: "3.12.4", + /** + * Generate chart + * - **NOTE:** Bear in mind for the possiblity of ***throwing an error***, during the generation when: + * - Unused option value is given. + * - ex) For `data.type="pie"` option, setting 'axis' option can cause unexpected generation error. + * - Insufficient value is given for certain option used. + * - ex) `data: { x: "x", columns: [["x"], ["data1", 30, 200, 100]] }` + * @param {Options} config chart options + * @memberof bb + * @returns {Chart} + * @see {@link Options} for different generation options + * @see {@link Chart} for different methods API + * @example + * <!-- chart holder --> + * <div id="LineChart"></div> + * @example + * // Generate chart with options + * var chart = bb.generate({ + * "bindto": "#LineChart" + * "data": { + * "columns": [ + * ["data1", 30, 200, 100, 400, 150, 250], + * ["data2", 50, 20, 10, 40, 15, 25] + * ], + * "type": "line" + * } + * }); + * + * // call some API + * // ex) get the data of 'data1' + * chart.data("data1"); + * @example + * // Generate chart by importing ESM + * // Import types to be used only, where this will make smaller bundle size. + * import bb, { + * area, + * areaLineRange, + * areaSpline, + * areaSplineRange, + * areaStep, + * bar, + * bubble, + * donut, + * gauge, + * line, + * pie, + * polar, + * radar, + * scatter, + * spline, + * step + * } + * + * bb.generate({ + * "bindto": "#LineChart" + * "data": { + * "columns": [ + * ["data1", 30, 200, 100, 400, 150, 250], + * ["data2", 50, 20, 10, 40, 15, 25] + * ] + * }, + * type: line(), + * + * // or + * types: { + * data1: bar(), + * data2: step() + * } + * }); + */ + generate(config) { + const options = mergeObj({}, defaults, config); + const inst = new Chart(options); + inst.internal.charts = this.instance; + this.instance.push(inst); + return inst; + }, + /** + * Set or get global default options. + * - **NOTE:** + * - The options values settings are valid within page context only. + * - If is called multiple times, will override the last value. + * @param {Options} options chart options + * @memberof bb + * @returns {Options} + * @see {@link Options} + * @example + * // Set same option value as for `.generate()` + * bb.defaults({ + * data: { + * type: "bar" + * } + * }); + * + * bb.defaults(); // {data:{type: "bar"}} + * + * // data.type defaults to 'bar' + * var chart = bb.generate({ ... }); + */ + defaults(options) { + if (isObject(options)) { + defaults = options; + } + return defaults; + }, + /** + * An array containing instance created + * @property {Array} instance instance array + * @example + * // generate charts + * var chart1 = bb.generate(...); + * var chart2 = bb.generate(...); + * + * bb.instance; // [ chart1, chart2, ... ] + * @memberof bb + */ + instance: [], + /** + * Namespace for plugins + * @property {object} plugin plugin namespace + * @example + * // Stanford diagram plugin + * bb.plugin.stanford; + * @memberof bb + */ + plugin: {} +}; + + +;// CONCATENATED MODULE: ./src/index.ts + + +Object.keys(resolver_shape_namespaceObject).forEach((v) => resolver_shape_namespaceObject[v]()); +Object.keys(resolver_interaction_namespaceObject).forEach((v) => resolver_interaction_namespaceObject[v]()); + + +}(); +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/billboard.min.css b/release/3.12.4/dist/billboard.min.css new file mode 100644 index 000000000..6dac9123a --- /dev/null +++ b/release/3.12.4/dist/billboard.min.css @@ -0,0 +1,9 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */.bb svg{font:10px sans-serif;-webkit-tap-highlight-color:rgba(0,0,0,0)}.bb path,.bb line{fill:none;stroke:#000}.bb text,.bb .bb-button{-webkit-user-select:none;-moz-user-select:none;user-select:none}.bb-legend-item-tile,.bb-xgrid-focus,.bb-ygrid-focus,.bb-ygrid{shape-rendering:crispEdges}.bb-chart-arcs .bb-needle,.bb-chart-arc .bb-gauge-value{fill:#000}.bb-chart-arc path{stroke:#fff}.bb-chart-arc rect{stroke:#fff;stroke-width:1}.bb-chart-arc text{fill:#fff;font-size:13px}.bb-chart-funnels path{stroke-width:0}.bb-chart-funnels+.bb-chart-texts text{font-size:13px;fill:#fff}.bb-axis{shape-rendering:crispEdges}.bb-axis .bb-axis-x-tooltip,.bb-axis .bb-axis-y-tooltip,.bb-axis .bb-axis-y2-tooltip{font-size:1em;fill:#fff;white-space:nowrap}.bb-grid{pointer-events:none}.bb-grid line{stroke:#aaa}.bb-grid text{fill:#aaa}.bb-xgrid,.bb-ygrid{stroke-dasharray:3 3}.bb-text.bb-empty{fill:gray;font-size:2em}.bb-line{stroke-width:1px}.bb-circle._expanded_{stroke-width:1px;stroke:#fff}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:0}.bb-bar._expanded_{fill-opacity:.75}.bb-candlestick{stroke-width:1px}.bb-candlestick._expanded_{fill-opacity:.75}.bb-target.bb-focused,.bb-circles.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step,.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused,.bb-circles.bb-defocused{opacity:.3!important}.bb-target.bb-defocused .text-overlapping,.bb-circles.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#4682b4}.bb-region rect{fill-opacity:.1}.bb-zoom-brush,.bb-brush .extent{fill-opacity:.1}.bb-legend-item{font-size:12px;user-select:none}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.bb-title{font:14px sans-serif}.bb-chart-treemaps rect{stroke:#fff;stroke-width:1px}.bb-tooltip-container{z-index:10;user-select:none}.bb-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;opacity:.9;box-shadow:7px 7px 12px -9px #777;white-space:nowrap}.bb-tooltip tr{border:1px solid #CCC}.bb-tooltip th{background-color:#aaa;font-size:14px;padding:2px 5px;text-align:left;color:#fff}.bb-tooltip td{font-size:13px;padding:3px 6px;background-color:#fff;border-left:1px dotted #999}.bb-tooltip td>span,.bb-tooltip td>svg{display:inline-block;width:10px;height:10px;margin-right:6px}.bb-tooltip.value{text-align:right}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}text.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:#fff}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-max,.bb-chart-arcs .bb-chart-arcs-gauge-min{fill:#777}.bb-chart-arcs .bb-levels circle{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-arcs .bb-levels text{fill:#848282}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#848282}.bb-chart-radars .bb-axis line{stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-axis text{font-size:1.15em;cursor:default}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:1px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{font-size:11px;border:solid 1px #ccc;background-color:#fff;padding:5px;border-radius:5px;cursor:pointer} diff --git a/release/3.12.4/dist/billboard.min.js b/release/3.12.4/dist/billboard.min.js new file mode 100644 index 000000000..d017caeed --- /dev/null +++ b/release/3.12.4/dist/billboard.min.js @@ -0,0 +1,33 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */(function(lt,Wt){if(typeof exports=="object"&&typeof module=="object")module.exports=Wt(require("d3-axis"),require("d3-brush"),require("d3-drag"),require("d3-dsv"),require("d3-ease"),require("d3-hierarchy"),require("d3-interpolate"),require("d3-scale"),require("d3-selection"),require("d3-shape"),require("d3-time-format"),require("d3-transition"),require("d3-zoom"));else if(typeof define=="function"&&define.amd)define(["d3-axis","d3-brush","d3-drag","d3-dsv","d3-ease","d3-hierarchy","d3-interpolate","d3-scale","d3-selection","d3-shape","d3-time-format","d3-transition","d3-zoom"],Wt);else{var ce=typeof exports=="object"?Wt(require("d3-axis"),require("d3-brush"),require("d3-drag"),require("d3-dsv"),require("d3-ease"),require("d3-hierarchy"),require("d3-interpolate"),require("d3-scale"),require("d3-selection"),require("d3-shape"),require("d3-time-format"),require("d3-transition"),require("d3-zoom")):Wt(lt.d3,lt.d3,lt.d3,lt.d3,lt.d3,lt.d3,lt.d3,lt.d3,lt.d3,lt.d3,lt.d3,lt.d3,lt.d3);for(var de in ce)(typeof exports=="object"?exports:lt)[de]=ce[de]}})(this,function(We,lt,Wt,ce,de,Li,Pi,Oi,Ii,Di,zi,Fi,Mi){return function(){"use strict";var Xi=[,,function(P){P.exports=Ii},function(P){P.exports=zi},function(P){P.exports=lt},function(P){P.exports=ce},function(P){P.exports=Wt},function(P){P.exports=Oi},function(P){P.exports=Fi},function(P){P.exports=Di},function(P){P.exports=Mi},function(P){P.exports=We},function(P){P.exports=de},function(P){P.exports=Pi},function(P){P.exports=Li}],Ue={};function j(P){var pt=Ue[P];if(pt!==void 0)return pt.exports;var w=Ue[P]={exports:{}};return Xi[P](w,w.exports,j),w.exports}(function(){j.d=function(P,pt){for(var w in pt)j.o(pt,w)&&!j.o(P,w)&&Object.defineProperty(P,w,{enumerable:!0,get:pt[w]})}})(),function(){j.o=function(P,pt){return Object.prototype.hasOwnProperty.call(P,pt)}}(),function(){j.r=function(P){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(P,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(P,"__esModule",{value:!0})}}();var we={};return function(){j.r(we),j.d(we,{bb:function(){return Ci},default:function(){return Ci}});var P={};j.r(P),j.d(P,{selection:function(){return Ps},subchart:function(){return Os},zoom:function(){return Is}});var pt={};j.r(pt),j.d(pt,{area:function(){return ci},areaLineRange:function(){return di},areaSpline:function(){return ui},areaSplineRange:function(){return hi},areaStep:function(){return gi},bar:function(){return vi},bubble:function(){return Ti},candlestick:function(){return Ai},donut:function(){return _i},funnel:function(){return Si},gauge:function(){return mi},line:function(){return fi},pie:function(){return $i},polar:function(){return yi},radar:function(){return bi},scatter:function(){return wi},spline:function(){return pi},step:function(){return xi},treemap:function(){return Ri}});var w=j(2),ue=j(3),Bi=Object.defineProperty,Ze=Object.getOwnPropertySymbols,Ni=Object.prototype.hasOwnProperty,Gi=Object.prototype.propertyIsEnumerable,qe=(e,t,s)=>t in e?Bi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,H=(e,t)=>{for(var s in t||(t={}))Ni.call(t,s)&&qe(e,s,t[s]);if(Ze)for(var s of Ze(t))Gi.call(t,s)&&qe(e,s,t[s]);return e};const O={button:"bb-button",chart:"bb-chart",empty:"bb-empty",main:"bb-main",target:"bb-target",EXPANDED:"_expanded_"},N={arc:"bb-arc",arcLabelLine:"bb-arc-label-line",arcRange:"bb-arc-range",arcs:"bb-arcs",chartArc:"bb-chart-arc",chartArcs:"bb-chart-arcs",chartArcsBackground:"bb-chart-arcs-background",chartArcsTitle:"bb-chart-arcs-title",needle:"bb-needle"},he={area:"bb-area",areas:"bb-areas"},st={axis:"bb-axis",axisX:"bb-axis-x",axisXLabel:"bb-axis-x-label",axisY:"bb-axis-y",axisY2:"bb-axis-y2",axisY2Label:"bb-axis-y2-label",axisYLabel:"bb-axis-y-label",axisXTooltip:"bb-axis-x-tooltip",axisYTooltip:"bb-axis-y-tooltip",axisY2Tooltip:"bb-axis-y2-tooltip"},$t={bar:"bb-bar",bars:"bb-bars",chartBar:"bb-chart-bar",chartBars:"bb-chart-bars"},wt={candlestick:"bb-candlestick",candlesticks:"bb-candlesticks",chartCandlestick:"bb-chart-candlestick",chartCandlesticks:"bb-chart-candlesticks",valueDown:"bb-value-down",valueUp:"bb-value-up"},ct={chartCircles:"bb-chart-circles",circle:"bb-circle",circles:"bb-circles"},Se={colorPattern:"bb-color-pattern",colorScale:"bb-colorscale"},Mt={dragarea:"bb-dragarea",INCLUDED:"_included_"},se={funnel:"bb-funnel",chartFunnel:"bb-chart-funnel",chartFunnels:"bb-chart-funnels",funnelBackground:"bb-funnel-background"},xt={chartArcsGaugeMax:"bb-chart-arcs-gauge-max",chartArcsGaugeMin:"bb-chart-arcs-gauge-min",chartArcsGaugeUnit:"bb-chart-arcs-gauge-unit",chartArcsGaugeTitle:"bb-chart-arcs-gauge-title",gaugeValue:"bb-gauge-value"},V={legend:"bb-legend",legendBackground:"bb-legend-background",legendItem:"bb-legend-item",legendItemEvent:"bb-legend-item-event",legendItemHidden:"bb-legend-item-hidden",legendItemPoint:"bb-legend-item-point",legendItemTile:"bb-legend-item-tile"},St={chartLine:"bb-chart-line",chartLines:"bb-chart-lines",line:"bb-line",lines:"bb-lines"},yt={eventRect:"bb-event-rect",eventRects:"bb-event-rects",eventRectsMultiple:"bb-event-rects-multiple",eventRectsSingle:"bb-event-rects-single"},W={focused:"bb-focused",defocused:"bb-defocused",legendItemFocused:"bb-legend-item-focused",xgridFocus:"bb-xgrid-focus",ygridFocus:"bb-ygrid-focus"},J={grid:"bb-grid",gridLines:"bb-grid-lines",xgrid:"bb-xgrid",xgridLine:"bb-xgrid-line",xgridLines:"bb-xgrid-lines",xgrids:"bb-xgrids",ygrid:"bb-ygrid",ygridLine:"bb-ygrid-line",ygridLines:"bb-ygrid-lines",ygrids:"bb-ygrids"},Et={level:"bb-level",levels:"bb-levels"},Ke={chartRadar:"bb-chart-radar",chartRadars:"bb-chart-radars"},ie={region:"bb-region",regions:"bb-regions"},q={selectedCircle:"bb-selected-circle",selectedCircles:"bb-selected-circles",SELECTED:"_selected_"},Q={shape:"bb-shape",shapes:"bb-shapes"},Je={brush:"bb-brush",subchart:"bb-subchart"},ut={chartText:"bb-chart-text",chartTexts:"bb-chart-texts",text:"bb-text",texts:"bb-texts",title:"bb-title",TextOverlapping:"text-overlapping"},ge={tooltip:"bb-tooltip",tooltipContainer:"bb-tooltip-container",tooltipName:"bb-tooltip-name"},Qe={treemap:"bb-treemap",chartTreemap:"bb-chart-treemap",chartTreemaps:"bb-chart-treemaps"},Re={buttonZoomReset:"bb-zoom-reset",zoomBrush:"bb-zoom-brush"};var X=H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H(H({},O),N),he),st),$t),wt),ct),Se),Mt),xt),V),St),yt),W),se),J),Ke),ie),q),Q),Je),ut),ge),Qe),Re),Vi={boost_useCssRule:!1,boost_useWorker:!1},Yi={color_pattern:[],color_tiles:void 0,color_threshold:{},color_onover:void 0},ji={legend_contents_bindto:void 0,legend_contents_template:"<span style='color:#fff;padding:5px;background-color:{=COLOR}'>{=TITLE}</span>",legend_equally:!1,legend_hide:!1,legend_inset_anchor:"top-left",legend_inset_x:10,legend_inset_y:0,legend_inset_step:void 0,legend_item_interaction:!0,legend_item_dblclick:!1,legend_item_onclick:void 0,legend_item_onover:void 0,legend_item_onout:void 0,legend_item_tile_width:10,legend_item_tile_height:10,legend_item_tile_r:5,legend_item_tile_type:"rectangle",legend_format:void 0,legend_padding:0,legend_position:"bottom",legend_show:!0,legend_tooltip:!1,legend_usePoint:!1},Hi={bindto:"#chart",background:{},clipPath:!0,svg_classname:void 0,size_width:void 0,size_height:void 0,padding:!0,padding_mode:void 0,padding_left:void 0,padding_right:void 0,padding_top:void 0,padding_bottom:void 0,resize_auto:!0,resize_timer:!0,onclick:void 0,onover:void 0,onout:void 0,onresize:void 0,onresized:void 0,onbeforeinit:void 0,oninit:void 0,onafterinit:void 0,onrendered:void 0,transition_duration:250,plugins:[],render:{},regions:[]},Wi={title_text:void 0,title_padding:{top:0,right:0,bottom:0,left:0},title_position:"center"},Ui={tooltip_show:!0,tooltip_doNotHide:!1,tooltip_grouped:!0,tooltip_format_title:void 0,tooltip_format_name:void 0,tooltip_format_value:void 0,tooltip_position:void 0,tooltip_contents:{},tooltip_init_show:!1,tooltip_init_x:0,tooltip_init_position:void 0,tooltip_linked:!1,tooltip_linked_name:"",tooltip_onshow:()=>{},tooltip_onhide:()=>{},tooltip_onshown:()=>{},tooltip_onhidden:()=>{},tooltip_order:null},Zi={data_x:void 0,data_idConverter:e=>e,data_names:{},data_classes:{},data_type:void 0,data_types:{},data_order:"desc",data_groups:[],data_groupsZeroAs:"positive",data_color:void 0,data_colors:{},data_labels:{},data_labels_backgroundColors:void 0,data_labels_colors:void 0,data_labels_position:{},data_hide:!1,data_filter:void 0,data_onclick:()=>{},data_onover:()=>{},data_onout:()=>{},data_onshown:void 0,data_onhidden:void 0,data_onmin:void 0,data_onmax:void 0,data_url:void 0,data_headers:void 0,data_json:void 0,data_rows:void 0,data_columns:void 0,data_mimeType:"csv",data_keys:void 0,data_empty_label_text:""},qi={interaction_enabled:!0,interaction_brighten:!0,interaction_inputType_mouse:!0,interaction_inputType_touch:{}},fe=j(4);function Ki(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function Ji(e){const t=typeof(e==null?void 0:e.requestAnimationFrame)=="function"&&typeof(e==null?void 0:e.cancelAnimationFrame)=="function",s=typeof(e==null?void 0:e.requestIdleCallback)=="function"&&typeof(e==null?void 0:e.cancelIdleCallback)=="function",i=a=>setTimeout(a,1),n=a=>clearTimeout(a);return[t?e.requestAnimationFrame:i,t?e.cancelAnimationFrame:n,s?e.requestIdleCallback:i,s?e.cancelIdleCallback:n]}const U=Ki(),it=U==null?void 0:U.document,[Qi,pr,ts,xr]=Ji(U);var tn=Object.defineProperty,es=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable,ss=(e,t,s)=>t in e?tn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,is=(e,t)=>{for(var s in t||(t={}))en.call(t,s)&&ss(e,s,t[s]);if(es)for(var s of es(t))sn.call(t,s)&&ss(e,s,t[s]);return e};const D=e=>e||e===0,E=e=>typeof e=="function",G=e=>typeof e=="string",C=e=>typeof e=="number",tt=e=>typeof e=="undefined",Y=e=>typeof e!="undefined",Ce=e=>typeof e=="boolean",nn=e=>Math.ceil(e/10)*10,pe=e=>Math.ceil(e)+.5,Xt=e=>e[1]-e[0],Tt=e=>typeof e=="object",bt=e=>tt(e)||e===null||G(e)&&e.length===0||Tt(e)&&!(e instanceof Date)&&Object.keys(e).length===0||C(e)&&isNaN(e),et=e=>!bt(e),B=e=>Array.isArray(e),F=e=>e&&!(e!=null&&e.nodeType)&&Tt(e)&&!B(e);function Lt(e,t,s){return Y(e[t])?e[t]:s}function an(e,t){let s=!1;return Object.keys(e).forEach(i=>e[i]===t&&(s=!0)),s}function Z(e,t,...s){const i=E(e);return i&&e.call(t,...s),i}function xe(e,t){let s=0;const i=function(...n){!--s&&t.apply(this,...n)};"duration"in e?e.each(()=>++s).on("end",i):(++s,e.call(i))}function ke(e){return G(e)?e.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):e}function ne(e,t,s=[-1,1],i=!1){if(!(!e||!G(t)))if(t.indexOf(` +`)===-1)e.text(t);else{const n=[e.text(),t].map(a=>a.replace(/[\s\n]/g,""));if(n[0]!==n[1]){const a=t.split(` +`),o=i?a.length-1:1;e.html(""),a.forEach((r,l)=>{e.append("tspan").attr("x",0).attr("dy",`${l===0?s[0]*o:s[1]}em`).text(r)})}}}function ns(e){const{x:t,y:s,width:i,height:n}=e.getBBox();return[{x:t,y:s+n},{x:t,y:s},{x:t+i,y:s},{x:t+i,y:s+n}]}function as(e){const{width:t,height:s}=e.getBoundingClientRect(),i=ns(e),n=i[0].x,a=Math.min(i[0].y,i[1].y);return{x:n,y:a,width:t,height:s}}function mt(e,t){var s;const i=e&&((s=e.touches||e.sourceEvent&&e.sourceEvent.touches)==null?void 0:s[0]);let n=[0,0];try{n=(0,w.pointer)(i||e,t)}catch(a){}return n.map(a=>isNaN(a)?0:a)}function os(e){const{event:t,$el:s}=e,i=s.subchart.main||s.main;let n;return t&&t.type==="brush"?n=t.selection:i&&(n=i.select(".bb-brush").node())&&(n=(0,fe.brushSelection)(n)),n}function _e(e){return!("rect"in e)||"rect"in e&&e.hasAttribute("width")&&e.rect.width!==+e.getAttribute("width")?e.rect=e.getBoundingClientRect():e.rect}function Rt(e=!0,t=0,s=1e4){const i=U.crypto||U.msCrypto,n=i?t+i.getRandomValues(new Uint32Array(1))[0]%(s-t+1):Math.floor(Math.random()*(s-t)+t);return e?String(n):n}function Ee(e,t,s,i,n){if(s>i)return-1;const a=Math.floor((s+i)/2);let{x:o,w:r=0}=e[a];return n&&(o=e[a].y,r=e[a].h),t>=o&&t<=o+r?a:t<o?Ee(e,t,s,a-1,n):Ee(e,t,a+1,i,n)}function rs(e){const t=os(e);return t?t[0]===t[1]:!0}function on(...e){const t=s=>{if(F(s)&&s.constructor){const i=new s.constructor;for(const n in s)i[n]=t(s[n]);return i}return s};return e.map(s=>t(s)).reduce((s,i)=>is(is({},s),i))}function nt(e={},t){B(t)&&t.forEach(s=>nt(e,s));for(const s in t)/^\d+$/.test(s)||s in e||(e[s]=t[s]);return e}const gt=e=>e.charAt(0).toUpperCase()+e.slice(1);function rn(e,t="-"){return e.split(t).map((s,i)=>i?s.charAt(0).toUpperCase()+s.slice(1).toLowerCase():s.toLowerCase()).join("")}const Bt=e=>[].slice.call(e);function ln(e,t,s){const{rootSelector:i="",sheet:n}=e,o=`${i} ${(r=>r.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(t)} {${s.join(";")}}`;return n[n.insertRule?"insertRule":"addRule"](o,n.cssRules.length)}function cn(e){let t=[];return e.forEach(s=>{var i;try{s.cssRules&&s.cssRules.length&&(t=t.concat(Bt(s.cssRules)))}catch(n){(i=U.console)==null||i.warn(`Error while reading rules from ${s.href}: ${n.toString()}`)}}),t}function ls(e){var t,s,i,n;return{x:((s=(t=U.pageXOffset)!=null?t:U.scrollX)!=null?s:0)+e.scrollLeft,y:((n=(i=U.pageYOffset)!=null?i:U.scrollY)!=null?n:0)+e.scrollTop}}function cs(e){const t=e?e.transform:null,s=t&&t.baseVal;return s&&s.numberOfItems?s.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function Le(e){const t=e[0]instanceof Date,s=(t?e.map(Number):e).filter((i,n,a)=>a.indexOf(i)===n);return t?s.map(i=>new Date(i)):s}function Pe(e){return e&&e.length?e.reduce((t,s)=>t.concat(s)):[]}function Ut(e,...t){if(!t.length||t.length===1&&!t[0])return e;const s=t.shift();return F(e)&&F(s)&&Object.keys(s).forEach(i=>{const n=s[i];F(n)?(!e[i]&&(e[i]={}),e[i]=Ut(e[i],n)):e[i]=B(n)?n.concat():n}),Ut(e,...t)}function Zt(e,t=!0){let s;return e[0]instanceof Date?s=t?(i,n)=>i-n:(i,n)=>n-i:t&&!e.every(isNaN)?s=(i,n)=>i-n:t||(s=(i,n)=>i>n&&-1||i<n&&1||i===n&&0),e.concat().sort(s)}function vt(e,t){let s=t.filter(i=>et(i));return s.length?C(s[0])?s=Math[e](...s):s[0]instanceof Date&&(s=Zt(s,e==="min")[0]):s=void 0,s}const me=(e,t,s=1)=>{const i=[],n=Math.max(0,Math.ceil((t-e)/s))|0;for(let a=e;a<n;a++)i.push(e+a*s);return i},dn={mouse:(()=>{const e=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(t,s,i=e())=>{t.dispatchEvent(new MouseEvent(s,i))}}catch(t){return(s,i,n=e())=>{const a=it.createEvent("MouseEvent");a.initMouseEvent(i,n.bubbles,n.cancelable,U,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),s.dispatchEvent(a)}}})(),touch:(e,t,s)=>{const i=new Touch(Ut({identifier:Date.now(),target:e,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},s));e.dispatchEvent(new TouchEvent(t,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[i],targetTouches:[],changedTouches:[i]}))}};function $e(e,t){let s=e;for(const i in t)s=s.replace(new RegExp(`{=${i}}`,"g"),t[i]);return s}function _t(e){var t;let s;if(e instanceof Date)s=e;else if(G(e)){const{config:i,format:n}=this;s=(t=n.dataTime(i.data_xFormat)(e))!=null?t:new Date(e)}else C(e)&&!isNaN(e)&&(s=new Date(+e));return(!s||isNaN(+s))&&console&&console.error&&console.error(`Failed to parse x '${e}' to Date object`),s}function ae(){var e,t;return((e=it)==null?void 0:e.hidden)===!1||((t=it)==null?void 0:t.visibilityState)==="visible"}function un(e,t){const{DocumentTouch:s,matchMedia:i,navigator:n}=U;let a=!1;if(t)if(n&&"maxTouchPoints"in n)a=n.maxTouchPoints>0;else if("ontouchmove"in U||s&&it instanceof s)a=!0;else if(i!=null&&i("(pointer:coarse)").matches)a=!0;else{const r=n.userAgent;a=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(r)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(r)}return e&&((i==null?void 0:i("any-hover:hover").matches)||(i==null?void 0:i("any-pointer:fine").matches))&&"mouse"||a&&"touch"||"mouse"}function ds(e,t){t()===!1?Qi(()=>ds(e,t)):e()}var hn=Object.defineProperty,us=Object.getOwnPropertySymbols,gn=Object.prototype.hasOwnProperty,fn=Object.prototype.propertyIsEnumerable,Oe=(e,t,s)=>t in e?hn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,hs=(e,t)=>{for(var s in t||(t={}))gn.call(t,s)&&Oe(e,s,t[s]);if(us)for(var s of us(t))fn.call(t,s)&&Oe(e,s,t[s]);return e},pn=(e,t,s)=>(Oe(e,typeof t!="symbol"?t+"":t,s),s);const gs=class Ei{static setOptions(t){this.data=t.reduce((s,i)=>hs(hs({},s),i),this.data)}constructor(){return on(Hi,Vi,Zi,Yi,qi,ji,Wi,Ui,Ei.data)}};pn(gs,"data",{});let Nt=gs;class xn{constructor(){return{chart:null,main:null,svg:null,axis:{x:null,y:null,y2:null,subX:null},axisTooltip:{x:null,y:null,y2:null},defs:null,tooltip:null,legend:null,title:null,subchart:{main:null,bar:null,line:null,area:null},arcs:null,bar:null,candlestick:null,line:null,area:null,circle:null,radar:null,text:null,grid:{main:null,x:null,y:null},gridLines:{main:null,x:null,y:null},region:{main:null,list:null},eventRect:null,zoomResetBtn:null}}}class _n{constructor(){return{width:0,width2:0,height:0,height2:0,margin:{top:0,bottom:0,left:0,right:0},margin2:{top:0,bottom:0,left:0,right:0},margin3:{top:0,bottom:0,left:0,right:0},arcWidth:0,arcHeight:0,xAxisHeight:0,hasAxis:!1,hasFunnel:!1,hasRadar:!1,hasTreemap:!1,cssRule:{},current:{domain:void 0,width:0,height:0,dataMax:0,maxTickSize:{x:{width:0,height:0,ticks:[],clipPath:0,domain:""},y:{width:0,height:0,domain:""},y2:{width:0,height:0,domain:""}},types:[],needle:void 0},isLegendRight:!1,isLegendInset:!1,isLegendTop:!1,isLegendLeft:!1,legendStep:0,legendItemWidth:0,legendItemHeight:0,legendHasRendered:!1,eventReceiver:{currentIdx:-1,rect:{},data:[],coords:[]},axis:{x:{padding:{left:0,right:0},tickCount:0}},rotatedPadding:{left:30,right:0,top:5},withoutFadeIn:{},inputType:"",datetimeId:"",clip:{id:"",idXAxis:"",idYAxis:"",idXAxisTickTexts:"",idGrid:"",idSubchart:"",path:"",pathXAxis:"",pathYAxis:"",pathXAxisTickTexts:"",pathGrid:""},event:null,dragStart:null,dragging:!1,flowing:!1,cancelClick:!1,mouseover:!1,rendered:!1,transiting:!1,redrawing:!1,resizing:!1,toggling:!1,zooming:!1,hasNegativeValue:!1,hasPositiveValue:!0,orgAreaOpacity:"0.2",orgConfig:{},hiddenTargetIds:[],hiddenLegendIds:[],focusedTargetIds:[],defocusedTargetIds:[],radius:0,innerRadius:0,outerRadius:void 0,innerRadiusRatio:0,gaugeArcWidth:0,radiusExpanded:0,xgridAttr:{x1:null,x2:null,y1:null,y2:null}}}}const fs={element:xn,state:_n};class mn{constructor(){Object.keys(fs).forEach(t=>{this[t]=new fs[t]})}getStore(t){return this[t]}}var $n=Object.defineProperty,yn=(e,t,s)=>t in e?$n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,bn=(e,t,s)=>(yn(e,typeof t!="symbol"?t+"":t,s),s);const ft={bubbleBaseLength:"$baseLength",colorPattern:"__colorPattern__",dataMinMax:"$dataMinMax",dataTotalSum:"$dataTotalSum",dataTotalPerIndex:"$totalPerIndex",legendItemTextBox:"legendItemTextBox",radarPoints:"$radarPoints",radarTextWidth:"$radarTextWidth",setOverOut:"setOverOut",callOverOutForTouch:"callOverOutForTouch",textRect:"textRect"};class vn{constructor(){bn(this,"cache",{})}add(t,s,i=!1){return this.cache[t]=i?this.cloneTarget(s):s,this.cache[t]}remove(t){(G(t)?[t]:t).forEach(s=>delete this.cache[s])}get(t,s=!1){if(s&&Array.isArray(t)){const i=[];for(let n=0,a;a=t[n];n++)a in this.cache&&i.push(this.cloneTarget(this.cache[a]));return i}else{const i=this.cache[t];return D(i)?i:null}}reset(t){const s=this;for(const i in s.cache)(t||/^\$/.test(i))&&(s.cache[i]=null)}cloneTarget(t){return{id:t.id,id_org:t.id_org,values:t.values.map(s=>({x:s.x,value:s.value,id:s.id}))}}}const k={AREA:"area",AREA_LINE_RANGE:"area-line-range",AREA_SPLINE:"area-spline",AREA_SPLINE_RANGE:"area-spline-range",AREA_STEP:"area-step",BAR:"bar",BUBBLE:"bubble",CANDLESTICK:"candlestick",DONUT:"donut",FUNNEL:"funnel",GAUGE:"gauge",LINE:"line",PIE:"pie",POLAR:"polar",RADAR:"radar",SCATTER:"scatter",SPLINE:"spline",STEP:"step",TREEMAP:"treemap"},Ie={AREA:"initArea",AREA_LINE_RANGE:"initArea",AREA_SPLINE:"initArea",AREA_SPLINE_RANGE:"initArea",AREA_STEP:"initArea",BAR:"initBar",BUBBLE:"initCircle",CANDLESTICK:"initCandlestick",DONUT:"initArc",FUNNEL:"initFunnel",GAUGE:"initArc",LINE:"initLine",PIE:"initArc",POLAR:"initPolar",RADAR:"initCircle",SCATTER:"initCircle",SPLINE:"initLine",STEP:"initLine",TREEMAP:"initTreemap"},Pt={Area:[k.AREA,k.AREA_SPLINE,k.AREA_SPLINE_RANGE,k.AREA_LINE_RANGE,k.AREA_STEP],AreaRange:[k.AREA_SPLINE_RANGE,k.AREA_LINE_RANGE],Arc:[k.PIE,k.DONUT,k.GAUGE,k.POLAR,k.RADAR],Line:[k.LINE,k.SPLINE,k.AREA,k.AREA_SPLINE,k.AREA_SPLINE_RANGE,k.AREA_LINE_RANGE,k.STEP,k.AREA_STEP],Step:[k.STEP,k.AREA_STEP],Spline:[k.SPLINE,k.AREA_SPLINE,k.AREA_SPLINE_RANGE]};function Tn(e){const t=e,{config:s}=t;let i="";if(bt(s.data_type||s.data_types)&&!t[Ie.LINE])i="line";else for(const n in Ie){const a=k[n];if(t.hasType(a)&&!t[Ie[n]]){i=a;break}}i&&An(`Please, make sure if %c${rn(i)}`,"module has been imported and specified correctly.")}function An(e,t){var s;const i="[billboard.js]";throw((s=U.console)==null?void 0:s.error)&&(console.error(`\u274C ${i} ${e}`,"background:red;color:white;display:block;font-size:15px",t),console.info("%c\u2139\uFE0F","font-size:15px","https://github.com/naver/billboard.js/wiki/CHANGELOG-v2#modularization-by-its-functionality")),Error(`${i} ${e.replace(/\%c([a-z-]+)/i,"'$1' ")} ${t}`)}const{setTimeout:wn,clearTimeout:Sn}=U;function Rn(e){const t=[];let s;const i=function(){i.clear(),e===!1?ts(()=>{t.forEach(n=>n())},{timeout:200}):s=wn(()=>{t.forEach(n=>n())},C(e)?e:200)};return i.clear=()=>{s&&(Sn(s),s=null)},i.add=n=>t.push(n),i.remove=n=>t.splice(t.indexOf(n),1),i}function ps(){let e=[];const t=function(s,i){function n(){var a;let o=0;for(let r=0,l;l=e[r];r++){if(l===!0||(a=l.empty)!=null&&a.call(l)){o++;continue}if(ae()===!1){o=e.length;break}try{l.transition()}catch(c){o++}}return o===e.length}ds(()=>{i==null||i()},n)};return t.add=function(s){B(s)?e=e.concat(s):e.push(s)},t}const De={};function Cn(e,t){var s;const i=e.toString(),n=i.replace(/(function|[\s\W\n])/g,"").substring(0,15);return n in De||(De[n]=new U.Blob([`${(s=t==null?void 0:t.map(String).join(";"))!=null?s:""} + + self.onmessage=function({data}) { + const result = (${i}).apply(null, data); + self.postMessage(result); + };`],{type:"text/javascript"})),U.URL.createObjectURL(De[n])}function kn(e){const t=new U.Worker(e);return t.onerror=function(s){console.error?console.error(s):console.log(s)},t}function ze(e=!0,t,s,i){let n=function(...a){const o=t(...a);s(o)};if(U.Worker&&e){const a=Cn(t,i),o=kn(a);n=function(...r){o.postMessage(r),o.onmessage=function(l){return U.URL.revokeObjectURL(a),s(l.data)}}}return n}var ye=j(5);function Fe(e){const t=[];return e.forEach(function(s,i){const n=s[0];s.forEach(function(a,o){if(o>0){if(typeof t[o-1]=="undefined"&&(t[o-1]={}),typeof a=="undefined")throw new Error(`Source data is missing a component at (${i}, ${o})!`);t[o-1][n]=a}})}),t}function Me(e){const t=e[0],s=[];return e.forEach(function(i,n){if(n>0){const a={};i.forEach(function(o,r){if(typeof o=="undefined")throw new Error(`Source data is missing a component at (${n}, ${r})!`);a[t[r]]=o}),s.push(a)}}),s}function xs(e,t){const s=[];let i,n;if(Array.isArray(e)){const a=function(o,r){if(o[r]!==void 0)return o[r];const c=r.replace(/\[(\w+)\]/g,".$1").replace(/^\./,"").split(".");let u=o;return c.some(function(d){return!(u=u&&d in u?u[d]:void 0)}),u};t.x?i=t.value.concat(t.x):i=t.value,s.push(i),e.forEach(function(o){const r=i.map(function(l){let c=a(o,l);return typeof c=="undefined"&&(c=null),c});s.push(r)}),n=Me(s)}else Object.keys(e).forEach(function(a){var o;const r=e[a].concat();(o=r.unshift)==null||o.call(r,a),s.push(r)}),n=Fe(s);return n}function En(e,t="csv",s,i,n){const a=new XMLHttpRequest,o={csv:Ln,tsv:Pn,json:xs};a.open("GET",e),s&&Object.keys(s).forEach(function(r){a.setRequestHeader(r,s[r])}),a.onreadystatechange=function(){if(a.readyState===4)if(a.status===200){const r=a.responseText;r&&n.call(this,o[t](t==="json"?JSON.parse(r):r,i))}else throw new Error(`${e}: Something went wrong loading!`)},a.send()}function _s(e,t){const s=e.rows(t);let i;return s.length===1?(i=[{}],s[0].forEach(n=>{i[0][n]=null})):i=e.parse(t),i}function Ln(e){return _s({rows:ye.csvParseRows,parse:ye.csvParse},e)}function Pn(e){return _s({rows:ye.tsvParseRows,parse:ye.tsvParse},e)}function ms(e,t){const s=e||(t==null?void 0:t.data_keys);return s!=null&&s.x&&(t.data_x=s.x),s}var On={convertData(e,t){const{config:s}=this,i=s.boost_useWorker;let n=e;if(e.bindto&&(n={},["url","mimeType","headers","keys","json","keys","rows","columns"].forEach(a=>{const o=`data_${a}`;o in e&&(n[a]=e[o])})),n.url&&t)En(n.url,n.mimeType,n.headers,ms(n.keys,s),t);else if(n.json)ze(i,xs,t,[Fe,Me])(n.json,ms(n.keys,s));else if(n.rows)ze(i,Me,t)(n.rows);else if(n.columns)ze(i,Fe,t)(n.columns);else if(e.bindto)throw Error("url or json or rows or columns is required.")},convertDataToTargets(e,t){const s=this,{axis:i,config:n,state:a}=s,o=n.data_type;let r=!1,l=!1,c=!1;i&&(r=i.isCategorized(),l=i.isTimeSeries(),c=i.isCustomX());const u=Object.keys(e[0]||{}),d=u.length?u.filter(s.isNotX,s):[],h=u.length?u.filter(s.isX,s):[];let g;d.forEach(p=>{const _=this.getXKey(p);c||l?h.indexOf(_)>=0?g=(t&&s.data.xs[p]||[]).concat(e.map(x=>x[_]).filter(D).map((x,m)=>s.generateTargetX(x,p,m))):n.data_x?g=this.getOtherTargetXs():et(n.data_xs)&&(g=s.getXValuesOfXKey(_,s.data.targets)):g=e.map((x,m)=>m),g&&(this.data.xs[p]=g)}),d.forEach(p=>{if(!this.data.xs[p])throw new Error(`x is not defined for id = "${p}".`)});const f=d.map((p,_)=>{const x=n.data_idConverter.bind(s.api)(p),m=s.getXKey(p),y=c&&r,b=y&&e.map(T=>T.x).every(T=>n.axis_x_categories.indexOf(T)>-1),v=e.__append__,$=m===null&&v?s.api.data.values(p).length:0;return{id:x,id_org:p,values:e.map((T,S)=>{const A=T[m];let R=T[p],I;return R=R!==null&&!isNaN(R)&&!F(R)?+R:B(R)||F(R)?R:null,(y||a.hasRadar)&&_===0&&!tt(A)?(!b&&_===0&&S===0&&!v&&(n.axis_x_categories=[]),I=n.axis_x_categories.indexOf(A),I===-1&&(I=n.axis_x_categories.length,n.axis_x_categories.push(A))):I=s.generateTargetX(A,p,$+S),(tt(R)||s.data.xs[p].length<=S)&&(I=void 0),{x:I,value:R,id:x,index:-1}}).filter(T=>Y(T.x))}});if(f.forEach(p=>{var _;n.data_xSort&&(p.values=p.values.sort((x,m)=>{const y=x.x||x.x===0?x.x:1/0,b=m.x||m.x===0?m.x:1/0;return y-b})),p.values.forEach((x,m)=>x.index=m),(_=s.data.xs[p.id])==null||_.sort((x,m)=>x-m)}),a.hasNegativeValue=s.hasNegativeValueInTargets(f),a.hasPositiveValue=s.hasPositiveValueInTargets(f),o&&s.isValidChartType(o)){const p=s.mapToIds(f).filter(_=>!(_ in n.data_types)||!s.isValidChartType(n.data_types[_]));s.setTargetType(p,o)}return f.forEach(p=>s.cache.add(p.id_org,p,!0)),f}},In={isX(e){const t=this,{config:s}=t,i=s.data_x&&e===s.data_x,n=et(s.data_xs)&&an(s.data_xs,e);return i||n},isNotX(e){return!this.isX(e)},isStackNormalized(){const{config:e}=this;return!!(e.data_stack_normalize&&e.data_groups.length)},isGrouped(e){const t=this.config.data_groups;return e?t.some(s=>s.indexOf(e)>=0&&s.length>1):t.length>0},getXKey(e){const t=this,{config:s}=t;return s.data_x?s.data_x:et(s.data_xs)?s.data_xs[e]:null},getXValuesOfXKey(e,t){const s=this,i=t&&et(t)?s.mapToIds(t):[];let n;return i.forEach(a=>{s.getXKey(a)===e&&(n=s.data.xs[a])}),n},getIndexByX(e,t){const s=this;return t?t.indexOf(G(e)?e:+e):(s.filterByX(s.data.targets,e)[0]||{index:null}).index},getXValue(e,t){const s=this;return e in s.data.xs&&s.data.xs[e]&&D(s.data.xs[e][t])?s.data.xs[e][t]:t},getOtherTargetXs(){const e=this,t=Object.keys(e.data.xs);return t.length?e.data.xs[t[0]]:null},getOtherTargetX(e){const t=this.getOtherTargetXs();return t&&e<t.length?t[e]:null},addXs(e){const t=this,{config:s}=t;Object.keys(e).forEach(i=>{s.data_xs[i]=e[i]})},isMultipleX(){return!this.config.axis_x_forceAsSingle&&(et(this.config.data_xs)||this.hasType("bubble")||this.hasType("scatter"))},addName(e){const t=this,{config:s}=t;let i;return e&&(i=s.data_names[e.id],e.name=i!==void 0?i:e.id),e},getAllValuesOnIndex(e,t=!1){const s=this;let i=s.filterTargetsToShow(s.data.targets).map(n=>s.addName(s.getValueOnIndex(n.values,e)));return t&&(i=i.filter(n=>n&&"value"in n&&D(n.value))),i},getValueOnIndex(e,t){const s=e.filter(i=>i.index===t);return s.length?s[0]:null},updateTargetX(e,t){const s=this;e.forEach(i=>{i.values.forEach((n,a)=>{n.x=s.generateTargetX(t[a],i.id,a)}),s.data.xs[i.id]=t})},updateTargetXs(e,t){const s=this;e.forEach(i=>{t[i.id]&&s.updateTargetX([i],t[i.id])})},generateTargetX(e,t,s){const i=this,{axis:n}=i;let a=n!=null&&n.isCategorized()?s:e||s;if(n!=null&&n.isTimeSeries()){const o=_t.bind(i);a=o(e||i.getXValue(t,s))}else n!=null&&n.isCustomX()&&!(n!=null&&n.isCategorized())&&(a=D(e)?+e:i.getXValue(t,s));return a},updateXs(e){e.length&&(this.axis.xs=e.map(t=>t.x))},getPrevX(e){const t=this.axis.xs[e-1];return Y(t)?t:null},getNextX(e){const t=this.axis.xs[e+1];return Y(t)?t:null},getBaseValue(e){const t=this,{hasAxis:s}=t.state;let{value:i}=e;return i&&s&&(t.isAreaRangeType(e)?i=t.getRangedData(e,"mid"):t.isBubbleZType(e)&&(i=t.getBubbleZData(i,"y"))),i},getMinMaxValue(e){const t=this.getBaseValue.bind(this);let s,i;return(e||this.data.targets.map(n=>n.values)).forEach((n,a)=>{const o=n.map(t).filter(C);s=Math.min(a?s:1/0,...o),i=Math.max(a?i:-1/0,...o)}),{min:s,max:i}},getMinMaxData(){const e=this,t=ft.dataMinMax;let s=e.cache.get(t);if(!s){const i=e.data.targets.map(r=>r.values),n=e.getMinMaxValue(i);let a=[],o=[];i.forEach(r=>{const l=e.getFilteredDataByValue(r,n.min),c=e.getFilteredDataByValue(r,n.max);l.length&&(a=a.concat(l)),c.length&&(o=o.concat(c))}),e.cache.add(t,s={min:a,max:o})}return s},getTotalPerIndex(){const e=this,t=ft.dataTotalPerIndex;let s=e.cache.get(t);return(e.config.data_groups.length||e.isStackNormalized())&&!s&&(s=[],e.data.targets.forEach(i=>{i.values.forEach((n,a)=>{s[a]||(s[a]=0),s[a]+=C(n.value)?n.value:0})})),s},getTotalDataSum(e){const t=this,s=ft.dataTotalSum;let i=t.cache.get(s);if(!C(i)){const n=Pe(t.data.targets.map(a=>a.values)).map(a=>a.value);i=n.length?n.reduce((a,o)=>a+o):0,t.cache.add(s,i)}return e&&(i-=t.getHiddenTotalDataSum()),i},getHiddenTotalDataSum(){const e=this,{api:t,state:{hiddenTargetIds:s}}=e;let i=0;return s.length&&(i=t.data.values.bind(t)(s).reduce((n,a)=>n+a)),i},getFilteredDataByValue(e,t){return e.filter(s=>this.getBaseValue(s)===t)},getMaxDataCount(){return Math.max(...this.data.targets.map(e=>e.values.length),0)},getMaxDataCountTarget(){let e=this.filterTargetsToShow()||[];const t=e.length,s=this.config.axis_x_inverted;return t>1?(e=e.map(i=>i.values).reduce((i,n)=>i.concat(n)).map(i=>i.x),e=Zt(Le(e)).map((i,n,a)=>({x:i,index:s?a.length-n-1:n}))):t&&(e=e[0].values.concat()),e},mapToIds(e){return e.map(t=>t.id)},mapToTargetIds(e){const t=this;return e?B(e)?e.concat():[e]:t.mapToIds(t.data.targets)},hasTarget(e,t){const s=this.mapToIds(e);for(let i=0,n;n=s[i];i++)if(n===t)return!0;return!1},isTargetToShow(e){return this.state.hiddenTargetIds.indexOf(e)<0},isLegendToShow(e){return this.state.hiddenLegendIds.indexOf(e)<0},filterTargetsToShow(e){const t=this;return(e||t.data.targets).filter(s=>t.isTargetToShow(s.id))},mapTargetsToUniqueXs(e){const t=this,{axis:s}=t;let i=[];return e!=null&&e.length&&(i=Le(Pe(e.map(n=>n.values.map(a=>+a.x)))),i=s!=null&&s.isTimeSeries()?i.map(n=>new Date(+n)):i.map(Number)),Zt(i)},addTargetIds(e,t){const{state:s}=this;(B(t)?t:[t]).forEach(n=>{s[e].indexOf(n)<0&&s[e].push(n)})},removeTargetIds(e,t){const{state:s}=this;(B(t)?t:[t]).forEach(n=>{const a=s[e].indexOf(n);a>=0&&s[e].splice(a,1)})},addHiddenTargetIds(e){this.addTargetIds("hiddenTargetIds",e)},removeHiddenTargetIds(e){this.removeTargetIds("hiddenTargetIds",e)},addHiddenLegendIds(e){this.addTargetIds("hiddenLegendIds",e)},removeHiddenLegendIds(e){this.removeTargetIds("hiddenLegendIds",e)},getValuesAsIdKeyed(e){const t=this,{hasAxis:s}=t.state,i={},n=t.isMultipleX(),a=n?t.mapTargetsToUniqueXs(e).map(o=>G(o)?o:+o):null;return e.forEach(o=>{const r=[];o.values.filter(({value:l})=>D(l)||l===null).forEach(l=>{let{value:c}=l;c!==null&&t.isCandlestickType(l)&&(c=B(c)?c.slice(0,4):[c.open,c.high,c.low,c.close]),B(c)?r.push(...c):F(c)&&"high"in c?r.push(...Object.values(c)):t.isBubbleZType(l)?r.push(s&&t.getBubbleZData(c,"y")):n?r[t.getIndexByX(l.x,a)]=c:r.push(c)}),i[o.id]=r}),i},checkValueInTargets(e,t){const s=Object.keys(e);let i;for(let n=0;n<s.length;n++){i=e[s[n]].values;for(let a=0;a<i.length;a++)if(t(i[a].value))return!0}return!1},hasMultiTargets(){return this.filterTargetsToShow().length>1},hasNegativeValueInTargets(e){return this.checkValueInTargets(e,t=>t<0)},hasPositiveValueInTargets(e){return this.checkValueInTargets(e,t=>t>0)},orderTargets(e){const t=this,s=[...e],i=t.getSortCompareFn();return i&&s.sort(i),s},getSortCompareFn(e=!1){const t=this,{config:s}=t,i=s.data_order,n=/asc/i.test(i),a=/desc/i.test(i);let o;if(n||a){const r=(c,u)=>c+Math.abs(u.value),l=c=>C(c)?c:"values"in c?c.values.reduce(r,0):c.value;o=(c,u)=>{const d=l(c),h=l(u);return e?n?d-h:h-d:n?h-d:d-h}}else E(i)&&(o=i.bind(t.api));return o||null},filterByX(e,t){return Pe(e.map(s=>s.values)).filter(s=>s.x-t===0)},filterRemoveNull(e){return e.filter(t=>D(this.getBaseValue(t)))},filterByXDomain(e,t){return e.map(s=>({id:s.id,id_org:s.id_org,values:s.values.filter(i=>t[0]<=i.x&&i.x<=t[1])}))},hasDataLabel(){const e=this.config.data_labels;return Ce(e)&&e||Tt(e)&&et(e)},getDataIndexFromEvent(e){const t=this,{$el:s,config:i,state:{hasRadar:n,inputType:a,eventReceiver:{coords:o,rect:r}}}=t;let l;if(n){let c=e.target;/tspan/i.test(c.tagName)&&(c=c.parentNode);const u=(0,w.select)(c).datum();l=u&&Object.keys(u).length===1?u.index:void 0}else{const c=i.axis_rotated,u=ls(s.chart.node()),d=a==="touch"&&e.changedTouches?e.changedTouches[0]:e;l=Ee(o,c?d.clientY+u.y-r.top:d.clientX+u.x-r.left,0,o.length-1,c)}return l},getDataLabelLength(e,t,s){const i=this,n=[0,0],a=1.3;return i.$el.chart.select("svg").selectAll(".dummy").data([e,t]).enter().append("text").text(o=>i.dataLabelFormat(o.id)(o)).each(function(o,r){n[r]=this.getBoundingClientRect()[s]*a}).remove(),n},isNoneArc(e){return this.hasTarget(this.data.targets,e.id)},isArc(e){return"data"in e&&this.hasTarget(this.data.targets,e.data.id)},findSameXOfValues(e,t){const s=e[t].x,i=[];let n;for(n=t-1;n>=0&&s===e[n].x;n--)i.push(e[n]);for(n=t;n<e.length&&s===e[n].x;n++)i.push(e[n]);return i},findClosestFromTargets(e,t){const s=this,i=e.map(n=>s.findClosest(n.values,t));return s.findClosest(i,t)},findClosest(e,t){const s=this,{$el:{main:i}}=s,n=e.filter(r=>r&&D(r.value));let a,o;return n.filter(r=>s.isBarType(r.id)||s.isCandlestickType(r.id)).forEach(r=>{const l=s.isBarType(r.id)?`.${$t.chartBar}.${O.target}${s.getTargetSelectorSuffix(r.id)} .${$t.bar}-${r.index}`:`.${wt.chartCandlestick}.${O.target}${s.getTargetSelectorSuffix(r.id)} .${wt.candlestick}-${r.index} path`;!o&&s.isWithinBar(i.select(l).node())&&(o=r)}),n.filter(r=>!s.isBarType(r.id)&&!s.isCandlestickType(r.id)).forEach(r=>{const l=s.dist(r,t);a=s.getPointSensitivity(r),l<a&&(a=l,o=r)}),o},dist(e,t){const s=this,{config:{axis_rotated:i},scale:n}=s,a=+i,o=+!i,r=s.circleY(e,e.index),l=(n.zoom||n.x)(e.x);return Math.sqrt(Math.pow(l-t[a],2)+Math.pow(r-t[o],2))},convertValuesToStep(e){const t=this,{axis:s,config:i}=t,n=i.line_step_type,a=s?s.isCategorized():!1,o=B(e)?e.concat():[e];if(!(a||/step\-(after|before)/.test(n)))return e;if(o.length){const r=o[0],l=o[o.length-1],{id:c}=r;let{x:u}=r;o.unshift({x:--u,value:r.value,id:c}),a&&n==="step-after"&&o.unshift({x:--u,value:r.value,id:c}),u=l.x,o.push({x:++u,value:l.value,id:c}),a&&n==="step-before"&&o.push({x:++u,value:l.value,id:c})}return o},convertValuesToRange(e){const t=B(e)?e.concat():[e],s=[];return t.forEach(i=>{const{x:n,id:a}=i;s.push({x:n,id:a,value:i.value[0]}),s.push({x:n,id:a,value:i.value[2]})}),s},updateDataAttributes(e,t){const s=this,{config:i}=s,n=i[`data_${e}`];return tt(t)||(Object.keys(t).forEach(a=>{n[a]=t[a]}),s.redraw({withLegend:!0})),n},getRangedData(e,t="",s="areaRange"){const i=e==null?void 0:e.value;if(B(i)){if(s==="bar")return i.reduce((n,a)=>a-n);{const n={areaRange:["high","mid","low"],candlestick:["open","high","low","close","volume"]}[s].indexOf(t);return n>=0&&i?i[n]:void 0}}else if(i&&t)return i[t];return i},setRatioForGroupedData(e){const t=this,{config:s}=t;if(s.data_groups.length&&e.some(i=>t.isGrouped(i.id))){const i=n=>t.getRatio("index",n,!0);e.forEach(n=>{"values"in n?n.values.forEach(i):i(n)})}},getRatio(e,t,s=!1){const i=this,{config:n,state:a}=i,o=i.api;let r=0;if(t&&o.data.shown().length)if(r=t.ratio||t.value,e==="arc")if(i.pie.padAngle()())r=t.value/i.getTotalDataSum(!0);else{const l=n.gauge_fullCircle?i.getArcLength():i.getStartingAngle()*-2,c=i.hasType("gauge")?l:Math.PI*2;r=(t.endAngle-t.startAngle)/c}else if(e==="index"){const l=o.data.values.bind(o);let c=this.getTotalPerIndex();if(a.hiddenTargetIds.length){let d=l(a.hiddenTargetIds,!1);d.length&&(d=d.reduce((h,g)=>h.map((f,p)=>(C(f)?f:0)+g[p])),c=c.map((h,g)=>h-d[g]))}const u=c[t.index];t.ratio=C(t.value)&&c&&u?t.value/u:0,r=t.ratio}else if(e==="radar")r=parseFloat(String(Math.max(t.value,0)))/a.current.dataMax*n.radar_size_ratio;else if(e==="bar"){const c=i.getYScaleById.bind(i)(t.id).domain().reduce((u,d)=>d-u);r=c===0?0:Math.abs(i.getRangedData(t,null,e)/c)}else e==="treemap"&&(r/=i.getTotalDataSum(!0));return s&&r?r*100:r},updateDataIndexByX(e){const t=this,s=e.reduce((i,n,a)=>(i[Number(n.x)]=a,i),{});t.data.targets.forEach(i=>{i.values.forEach((n,a)=>{let o=s[Number(n.x)];o===void 0&&(o=a),n.index=o})})},isBubbleZType(e){return this.isBubbleType(e)&&(F(e.value)&&("z"in e.value||"y"in e.value)||B(e.value)&&e.value.length>=2)},isBarRangeType(e){const t=this,{value:s}=e;return t.isBarType(e)&&B(s)&&s.length>=2&&s.every(i=>C(i))},getDataById(e){var t;const s=this.cache.get(e)||this.api.data(e);return(t=s==null?void 0:s[0])!=null?t:s}};function $s(e,t=!1){const s=this,{api:i}=s;t&&s.api.flush(!0),e==null||e.call(i)}var Dn={load(e,t){const s=this,{axis:i,data:n,org:a,scale:o}=s,{append:r}=t,l={domain:null,currentDomain:null,x:null};let c=e;c&&(t.filter&&(c=c.filter(t.filter)),(t.type||t.types)&&c.forEach(u=>{var d;const h=((d=t.types)==null?void 0:d[u.id])||t.type;s.setTargetType(u.id,h)}),n.targets.forEach(u=>{for(let d=0;d<c.length;d++)if(u.id===c[d].id){u.values=r?u.values.concat(c[d].values):c[d].values,c.splice(d,1);break}}),n.targets=n.targets.concat(c)),s.updateTargets(n.targets),o.zoom&&(l.x=i.isCategorized()?o.x.orgScale():(a.xScale||o.x).copy(),l.domain=s.getXDomain(n.targets),l.x.domain(l.domain),l.currentDomain=s.zoom.getDomain(),s.withinRange(l.currentDomain,void 0,l.domain)||(o.x.domain(l.domain),o.zoom=null,s.$el.eventRect.property("__zoom",null))),s.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0}),o.zoom&&(a.xDomain=l.domain,a.xScale=l.x,i.isCategorized()&&(l.currentDomain=s.getZoomDomainValue(l.currentDomain),a.xDomain=s.getZoomDomainValue(a.xDomain),a.xScale=l.x.domain(a.xDomain)),s.updateCurrentZoomTransform(l.x,l.currentDomain)),s.updateTypesElements(),$s.call(s,t.done,t.resizeAfter)},loadFromArgs(e){const t=this;t.config&&(t.cache.reset(),t.convertData(e,s=>{const i=e.data||s;e.append&&(i.__append__=!0),i&&t.load(t.convertDataToTargets(i),e)}))},unload(e,t){var s;const i=this,{state:n,$el:a,$T:o}=i,r=!!((s=i.hasLegendDefsPoint)!=null&&s.call(i));let l=t,c=e;if(i.cache.reset(),l||(l=()=>{}),c=c.filter(d=>i.hasTarget(i.data.targets,d)),!c||c.length===0){l();return}const u=a.svg.selectAll(c.map(d=>i.selectorTarget(d)));o(u).style("opacity","0").remove().call(xe,l),c.forEach(d=>{var h;const g=i.getTargetSelectorSuffix(d);n.withoutFadeIn[d]=!1,a.legend&&a.legend.selectAll(`.${V.legendItem}${g}`).remove(),i.data.targets=i.data.targets.filter(f=>f.id!==d),r&&((h=a.defs)==null||h.select(`#${i.getDefsPointId(g)}`).remove())}),n.hasFunnel&&i.updateFunnel(i.data.targets),n.hasTreemap&&i.updateTargetsForTreemap(i.data.targets),i.updateTypesElements()}},ys=j(6),zn={setExpand(e,t,s){const i=this,{config:n,$el:{circle:a}}=i;a&&n.point_focus_expand_enabled&&i.expandCircles(e,t,s),i.expandBarTypeShapes(!0,e,t,s)},expandBarTypeShapes(e=!0,t,s,i){const n=this;["bar","candlestick"].filter(a=>n.$el[a]).forEach(a=>{i&&n.$el[a].classed(O.EXPANDED,!1),n.getShapeByIndex(a,t,s).classed(O.EXPANDED,e)})},setOverOut(e,t){const s=this,{config:i,state:{hasFunnel:n,hasRadar:a,hasTreemap:o},$el:{main:r}}=s,l=F(t);if(l||t!==-1){const c=i[e?"data_onover":"data_onout"].bind(s.api);if(i.color_onover&&s.setOverColor(e,t,l),l){const u=s.getTargetSelectorSuffix(t.id),d=n||o?`${O.target+u} .${Q.shape}`:N.arc+u;c(t,r.select(`.${d}`).node())}else if(i.tooltip_grouped)e&&(a&&s.isPointFocusOnly()?s.showCircleFocus(s.getAllValuesOnIndex(t,!0)):s.setExpand(t,null,!0)),!s.isMultipleX()&&r.selectAll(`.${Q.shape}-${t}`).each(function(u){c(u,this)});else{const u=s.cache.get(ft.setOverOut)||[],d=r.selectAll(`.${Q.shape}-${t}`).filter(function(g){return s.isWithinShape(this,g)}),h=d.filter(function(){return u.every(g=>g!==this)});if(!e||d.empty()||u.length===h.size()&&h.nodes().every((g,f)=>g!==u[f]))for(;u.length;){const g=u.pop();i.data_onout.bind(s.api)((0,w.select)(g).datum(),g)}h.each(function(){e&&(c((0,w.select)(this).datum(),this),u.push(this))}),s.cache.add(ft.setOverOut,u)}}},callOverOutForTouch(e){const t=this,s=t.cache.get(ft.callOverOutForTouch);(F(e)&&s?e.id!==s.id:e!==s)&&((s||C(s))&&t.setOverOut(!1,s),(e||C(e))&&t.setOverOut(!0,e),t.cache.add(ft.callOverOutForTouch,e))},getDraggableSelection(){const e=this,{config:t,state:s}=e;return t.interaction_enabled&&t.data_selection_draggable&&e.drag?(0,ys.drag)().on("drag",function(i){s.event=i,e.drag(mt(i,this))}).on("start",function(i){s.event=i,e.dragstart(mt(i,this))}).on("end",i=>{s.event=i,e.dragend()}):()=>{}},dispatchEvent(e,t,s){var i,n;const a=this,{config:o,state:{eventReceiver:r,hasAxis:l,hasFunnel:c,hasRadar:u,hasTreemap:d},$el:{eventRect:h,funnel:g,radar:f,treemap:p}}=a;let _=(n=(c||d)&&r.rect||u&&f.axes.select(`.${st.axis}-${t} text`)||h||((i=a.getArcElementByIdOrIndex)==null?void 0:i.call(a,t)))==null?void 0:n.node();if(_){const x=a.isMultipleX(),m=o.axis_rotated;let{width:y,left:b,top:v}=_.getBoundingClientRect();if(l&&!u&&!x){const A=r.coords[t];A?(y=A.w,b+=A.x,v+=A.y):(y=0,b=0,v=0)}const $=b+(s?s[0]:0)+(x||m?0:y/2),T=v+(s?s[1]:0)+(m?4:0),S={screenX:$,screenY:T,clientX:$,clientY:T,bubbles:u};(c||d)&&(_=(g!=null?g:p).node()),dn[/^(mouse|click)/.test(e)?"mouse":"touch"](_,e,S)}},setDragStatus(e){this.state.dragging=e},unbindZoomEvent(){const e=this,{$el:{eventRect:t,zoomResetBtn:s}}=e;t==null||t.on(".zoom wheel.zoom .drag",null),s==null||s.on("click",null).style("display","none")},unbindAllEvents(){var e;const t=this,{$el:{arcs:s,eventRect:i,legend:n,region:a,svg:o,treemap:r},brush:l}=t,c=["wheel","click","mouseover","mousemove","mouseout","touchstart","touchmove","touchend","touchstart.eventRect","touchmove.eventRect","touchend.eventRect",".brush",".drag",".zoom","wheel.zoom","dblclick.zoom"].join(" ");[o,i,a==null?void 0:a.list,l==null?void 0:l.getSelection(),s==null?void 0:s.selectAll("path"),n==null?void 0:n.selectAll("g"),r].forEach(u=>u==null?void 0:u.on(c,null)),(e=t.unbindZoomEvent)==null||e.call(t)}},Fn={categoryName(e){var t;const{axis_x_categories:s}=this.config;return(t=s==null?void 0:s[e])!=null?t:e}},Mn={generateClass(e,t){return` ${e} ${e+this.getTargetSelectorSuffix(t)}`},getClass(e,t){const s=/s$/.test(e),i=/^(area|arc|line|funnel|treemap)s?$/.test(e),n=s?"id":"index";return a=>{const o=a.data||a;return((t?this.generateClass(X[s?"shapes":"shape"],o[n]):"")+this.generateClass(X[e],o[i?"id":n])).trim()}},getChartClass(e){return t=>X[`chart${e}`]+this.classTarget((t.data?t.data:t).id)},generateExtraLineClass(){const t=this.config.line_classes||[],s=[];return function(i){var n;const a=i.id||((n=i.data)==null?void 0:n.id)||i;return s.indexOf(a)<0&&s.push(a),t[s.indexOf(a)%t.length]}},classRegion(e,t){return`${this.generateClass(X.region,t)} ${"class"in e?e.class:""}`},classTarget(e){const t=this.config.data_classes[e];let s="";return t&&(s=` ${X.target}-${t}`),this.generateClass(X.target,e)+s},classFocus(e){return this.classFocused(e)+this.classDefocused(e)},classFocused(e){return` ${this.state.focusedTargetIds.indexOf(e.id)>=0?X.focused:""}`},classDefocused(e){return` ${this.state.defocusedTargetIds.indexOf(e.id)>=0?X.defocused:""}`},getTargetSelectorSuffix(e){return(e||e===0?`-${e}`:"").replace(/[\x00-\x20\x7F-\xA0\s?!@#$%^&*()_=+,.<>'":;\[\]\/|~`{}\\]/g,"-")},selectorTarget(e,t="",s=""){const i=this.getTargetSelectorSuffix(e);return`${t}.${X.target+i} ${s}, ${t}.${X.circles+i} ${s}`},selectorTargets(e,t){const s=e||[];return s.length?s.map(i=>this.selectorTarget(i,t)):null},selectorLegend(e){return`.${X.legendItem+this.getTargetSelectorSuffix(e)}`},selectorLegends(e){return e!=null&&e.length?e.map(t=>this.selectorLegend(t)):null}},Ot=j(7);const Xn=(e,t,s)=>{const i=(0,w.select)(e.cloneNode(!0));return i.attr("id",s).insert("rect",":first-child").attr("width",i.attr("width")).attr("height",i.attr("height")).style("fill",t),{id:s,node:i.node()}};function Bn(e){const t=ft.colorPattern,{body:s}=it;let i=s[t];if(!i){const n=";",a=e.classed(Se.colorPattern,!0).style("background-image");e.classed(Se.colorPattern,!1),a.indexOf(n)>-1&&(i=a.replace(/url[^#]*|["'()]|(\s|%20)/g,"").split(n).map(o=>o.trim().replace(/[\"'\s]/g,"")).filter(Boolean),s[t]=i)}return i}const Nn=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"];var Gn={generateColor(){const e=this,{$el:t,config:s}=e,i=s.data_colors,n=s.data_color,a=[];let o=et(s.color_pattern)?s.color_pattern:(0,Ot.scaleOrdinal)(Bn(t.chart)||Nn).range();const r=o;if(E(s.color_tiles)){const l=s.color_tiles.bind(e.api)(),c=o.map((u,d)=>{const h=u.replace(/[#\(\)\s,]/g,""),g=`${e.state.datetimeId}-pattern-${h}-${d}`;return Xn(l[d%l.length],u,g)});o=c.map(u=>`url(#${u.id})`),e.patterns=c}return function(l){var c;const u=l.id||((c=l.data)==null?void 0:c.id)||l,d=e.isTypeOf(u,["line","spline","step"])||!s.data_types[u];let h;return E(i[u])?h=i[u].bind(e.api)(l):i[u]?h=i[u]:(a.indexOf(u)<0&&a.push(u),h=d?r[a.indexOf(u)%r.length]:o[a.indexOf(u)%o.length],i[u]=h),E(n)?n.bind(e.api)(h,l):h}},generateLevelColor(){const e=this,{config:t}=e,s=t.color_pattern,i=t.color_threshold,n=i.unit==="value",a=i.max||100,o=i.values&&i.values.length?i.values:[];return et(i)?function(r){const l=n?r:r*100/a;let c=s[s.length-1];for(let u=0,d=o.length;u<d;u++)if(l<=o[u]){c=s[u];break}return c}:null},generateTextBGColorFilter(e,t={x:0,y:0,width:1,height:1}){const s=this,{$el:i,state:n}=s;if(e){let a=[];G(e)?a.push(""):F(e)&&(a=Object.keys(e)),a.forEach(o=>{const r=`${n.datetimeId}-labels-bg${s.getTargetSelectorSuffix(o)}${G(e)?s.getTargetSelectorSuffix(e):""}`;i.defs.append("filter").attr("x",t.x).attr("y",t.y).attr("width",t.width).attr("height",t.height).attr("id",r).html(`<feFlood flood-color="${o===""?e:e[o]}" /> + <feComposite in="SourceGraphic" />`)})}},getGradienColortUrl(e){return`url(#${this.state.datetimeId}-gradient${this.getTargetSelectorSuffix(e)})`},updateLinearGradient(){const e=this,{config:t,data:{targets:s},state:{datetimeId:i},$el:{defs:n}}=e;s.forEach(a=>{const o=`${i}-gradient${e.getTargetSelectorSuffix(a.id)}`,r=e.hasPointType()&&t.point_radialGradient,l=e.isAreaType(a)&&"area"||e.isBarType(a)&&"bar";if((r||l)&&n.select(`#${o}`).empty()){const c=e.color(a),u={defs:null,stops:[]};if(r){const{cx:d=.3,cy:h=.3,r:g=.7,stops:f=[[.1,c,0],[.9,c,1]]}=r;u.stops=f,u.defs=n.append("radialGradient").attr("id",`${o}`).attr("cx",d).attr("cy",h).attr("r",g)}else{const d=t.axis_rotated,{x:h=d?[1,0]:[0,0],y:g=d?[0,0]:[0,1],stops:f=[[0,c,1],[1,c,0]]}=t[`${l}_linearGradient`];u.stops=f,u.defs=n.append("linearGradient").attr("id",`${o}`).attr("x1",h[0]).attr("x2",h[1]).attr("y1",g[0]).attr("y2",g[1])}u.stops.forEach(d=>{const[h,g,f]=d,p=E(g)?g.bind(e.api)(a.id):g;u.defs&&u.defs.append("stop").attr("offset",h).attr("stop-color",p||c).attr("stop-opacity",f)})}})},setOverColor(e,t){const s=this,{config:i,$el:{main:n}}=s,a=i.color_onover;let o=e?a:s.color;F(o)?o=({id:r})=>r in a?a[r]:s.color(r):G(o)?o=()=>a:E(a)&&(o=o.bind(s.api)),n.selectAll(F(t)?`.${N.arc}${s.getTargetSelectorSuffix(t.id)}`:`.${Q.shape}-${t}`).style("fill",o)}},Vn={getYDomainMinMax(e,t){const s=this,{axis:i,config:n}=s,a=t==="min",o=n.data_groups,r=s.mapToIds(e),l=s.getValuesAsIdKeyed(e);if(o.length>0){const c=s[`has${a?"Negative":"Positive"}ValueInTargets`](e);o.forEach(u=>{const d=u.filter(h=>r.indexOf(h)>=0);if(d.length){const h=d[0],g=i.getId(h);c&&l[h]&&(l[h]=l[h].map(f=>(a?f<0:f>0)?f:0)),d.filter((f,p)=>p>0).forEach(f=>{if(l[f]){const p=i.getId(f);l[f].forEach((_,x)=>{const m=+_,y=a?m>0:m<0;p===g&&!(c&&y)&&(l[h][x]+=m)})}})}})}return vt(t,Object.keys(l).map(c=>vt(t,l[c])))},isHiddenTargetWithYDomain(e){const t=this;return t.state.hiddenTargetIds.some(s=>t.axis.getId(s)===e)},getYDomain(e,t,s){const i=this,{axis:n,config:a,scale:o}=i,r=`axis_${t}`;if(i.isStackNormalized())return[0,100];const l=(o==null?void 0:o[t])&&o[t].type==="log",c=e.filter(R=>n.getId(R.id)===t),u=s?i.filterByXDomain(c,s):c;if(u.length===0)return i.isHiddenTargetWithYDomain(t)?o[t].domain():t==="y2"?o.y.domain():i.getYDomain(e,"y2",s);const d=a[`${r}_min`],h=a[`${r}_max`],g=a[`${r}_center`],f=a[`${r}_inverted`],p=i.hasDataLabel()&&a.axis_rotated,_=i.hasDataLabel()&&!a.axis_rotated;let x=i.getYDomainMinMax(u,"min"),m=i.getYDomainMinMax(u,"max"),y=[k.BAR,k.BUBBLE,k.SCATTER,...Pt.Line].some(R=>{const I=R.indexOf("area")>-1?"area":R;return i.hasType(R,u,!0)&&a[`${I}_zerobased`]});x=D(d)?d:D(h)?x<=h?x:h-10:x,m=D(h)?h:D(d)?d<=m?m:d+10:m,isNaN(x)&&(x=0),isNaN(m)&&(m=x),x===m&&(x<0?m=0:x=0);const b=x>=0&&m>=0,v=x<=0&&m<=0;(D(d)&&b||D(h)&&v)&&(y=!1),y&&(b&&(x=0),v&&(m=0));const $=Math.abs(m-x);let T={top:$*.1,bottom:$*.1};if(Y(g)){const R=Math.max(Math.abs(x),Math.abs(m));m=g+R,x=g-R}if(p){const R=Xt(o.y.range()),I=i.getDataLabelLength(x,m,"width").map(M=>M/R);["bottom","top"].forEach((M,L)=>{T[M]+=$*(I[L]/(1-I[0]-I[1]))})}else if(_){const R=i.getDataLabelLength(x,m,"height");["bottom","top"].forEach((I,M)=>{T[I]+=i.convertPixelToScale("y",R[M],$)})}T=i.getResettedPadding(T);const S=a[`${r}_padding`];et(S)&&["bottom","top"].forEach(R=>{T[R]=n.getPadding(S,R,T[R],$)}),y&&(b&&(T.bottom=x),v&&(T.top=-m));const A=l?[x,m].map(R=>R<0?0:R):[x-T.bottom,m+T.top];return f?A.reverse():A},getXDomainMinMax(e,t){var s;const i=this,n=i.config[`axis_x_${t}`],a=vt(t,e.map(r=>vt(t,r.values.map(l=>l.x))));let o=F(n)?n.value:n;return o=Y(o)&&((s=i.axis)!=null&&s.isTimeSeries())?_t.bind(this)(o):o,F(n)&&n.fit&&(t==="min"&&o<a||t==="max"&&o>a)&&(o=void 0),Y(o)?o:a},getXDomainPadding(e,t){const s=this,{axis:i,config:n}=s,a=n.axis_x_padding,o=i.isTimeSeries()&&t,r=Xt(e);let l;if(i.isCategorized()||o)l=0;else if(s.hasType("bar")){const d=s.getMaxDataCount();l=d>1?r/(d-1)/2:.5}else l=s.getResettedPadding(r*.01);let{left:c=l,right:u=l}=C(a)?{left:a,right:a}:a;if(a.unit==="px"){const d=Math.abs(r+r*.2);c=i.getPadding(a,"left",l,d),u=i.getPadding(a,"right",l,d)}else{const d=r+c+u;if(o&&d){const h=r/t/d;c=c/d/h,u=u/d/h}}return{left:c,right:u}},getXDomain(e){const t=this,{axis:s,config:i,scale:{x:n}}=t,a=i.axis_x_inverted,o=[t.getXDomainMinMax(e,"min"),t.getXDomainMinMax(e,"max")];let[r=0,l=0]=o;if(n.type!=="log"){const c=s.isCategorized(),u=s.isTimeSeries(),d=t.getXDomainPadding(o);let[h,g]=o;h-g===0&&!c&&(u?(h=new Date(h.getTime()*.5),g=new Date(g.getTime()*1.5)):(h=h===0?1:h*.5,g=g===0?-1:g*1.5)),(h||h===0)&&(r=u?new Date(h.getTime()-d.left):h-d.left),(g||g===0)&&(l=u?new Date(g.getTime()+d.right):g+d.right)}return a?[l,r]:[r,l]},updateXDomain(e,t,s,i,n){var a;const o=this,{config:r,org:l,scale:{x:c,subX:u}}=o,d=r.zoom_enabled;if(s&&(c.domain(n||Zt(o.getXDomain(e),!r.axis_x_inverted)),l.xDomain=c.domain(),u.domain(c.domain()),(a=o.brush)==null||a.scale(u)),t){const h=n||!o.brush||rs(o)?l.xDomain:os(o).map(u.invert);c.domain(h)}return(s||t)&&d&&o.zoom.updateScaleExtent(),i&&c.domain(o.trimXDomain(c.orgDomain())),c.domain()},trimXDomain(e){const t=this,s=t.config.axis_x_inverted,i=t.getZoomDomain(),[n,a]=i;return(s?e[0]>=n:e[0]<=n)&&(e[1]=+e[1]+(n-e[0]),e[0]=n),(s?e[1]<=a:e[1]>=a)&&(e[0]=+e[0]-(e[1]-a),e[1]=a),e},getZoomDomain(e="zoom",t=!1){const s=this,{config:i,scale:n,org:a}=s;let[o,r]=t&&n[e]?n[e].domain():a.xDomain;return e==="zoom"&&(Y(i.zoom_x_min)&&(o=vt("min",[o,i.zoom_x_min])),Y(i.zoom_x_max)&&(r=vt("max",[r,i.zoom_x_max]))),[o,r]},getZoomDomainValue(e){const t=this,{config:s,axis:i}=t;if(i.isCategorized()&&Array.isArray(e)){const n=s.axis_x_inverted;return e.map((o,r)=>Number(o)+(r===0?+n:+!n))}return e},convertPixelToScale(e,t,s){const i=this,{config:n,state:a}=i,o=n.axis_rotated;let r;return e==="x"?r=o?"height":"width":r=o?"width":"height",s*(t/a[r])},withinRange(e,t=[0,0],s){const n=this.config.axis_x_inverted,[a,o]=s;if(Array.isArray(e)){const r=[...e];if(n&&r.reverse(),r[0]<r[1])return e.every((l,c)=>(c===0?n?+l<=a:+l>=a:n?+l>=o:+l<=o)&&!e.every((u,d)=>u===t[d]))}return!1}};function bs(e,t,s){const{config:i}=e,n=`axis_${t}_tick_format`;return(i[n]?i[n]:e.defaultValueFormat).call(e.api,s)}var Yn={yFormat(e){return bs(this,"y",e)},y2Format(e){return bs(this,"y2",e)},getDefaultValueFormat(){const e=this,{defaultArcValueFormat:t,yFormat:s,y2Format:i}=e,n=e.hasArcType(null,["gauge","polar","radar"]);return function(a,o,r){return(n?t:e.axis&&e.axis.getId(r)==="y2"?i:s).call(e,a,o)}},defaultValueFormat(e){return B(e)?e.join("~"):D(e)?+e:""},defaultArcValueFormat(e,t){return`${(t*100).toFixed(1)}%`},defaultPolarValueFormat(e){return`${e}`},dataLabelFormat(e){const t=this,s=t.config.data_labels,i=a=>{const o="~";let r=a;return B(a)?r=a.join(o):F(a)&&(r=Object.values(a).join(o)),r};let n=i;return E(s.format)?n=s.format:Tt(s.format)&&(s.format[e]?n=s.format[e]===!0?i:s.format[e]:n=()=>""),n.bind(t.api)}};function be(e){const t=this,s=t.getDataById(e);return t.levelColor?t.levelColor(s.values[0].value):t.color(s)}function Xe(e,t=!0){var s;const{config:i}=this;let n=(s=i.data_names[e])!=null?s:e;return t&&E(i.legend_format)&&(n=i.legend_format(n)),n}var jn={initLegend(){const e=this,{config:t,$el:s}=e;e.legendItemTextBox={},e.state.legendHasRendered=!1,t.legend_show?(t.legend_contents_bindto||(s.legend=e.$el.svg.append("g").classed(V.legend,!0).attr("transform",e.getTranslate("legend"))),e.updateLegend()):e.state.hiddenLegendIds=e.mapToIds(e.data.targets)},updateLegend(e,t,s){var i;const n=this,{config:a,state:o,scale:r,$el:l}=n,c=t||{withTransform:!1,withTransitionForTransform:!1,withTransition:!1};c.withTransition=Lt(c,"withTransition",!0),c.withTransitionForTransform=Lt(c,"withTransitionForTransform",!0),a.legend_contents_bindto&&a.legend_contents_template?n.updateLegendTemplate():o.hasTreemap||n.updateLegendElement(e||n.mapToIds(n.data.targets),c,s),(i=l.legend)==null||i.selectAll(`.${V.legendItem}`).classed(V.legendItemHidden,function(u){const d=!n.isTargetToShow(u);return d&&(this.style.opacity=null),d}),n.updateScales(!1,!r.zoom),n.updateSvgSize(),n.transformAll(c.withTransitionForTransform,s),o.legendHasRendered=!0},updateLegendTemplate(){const e=this,{config:t,$el:s}=e,i=(0,w.select)(t.legend_contents_bindto),n=t.legend_contents_template;if(!i.empty()){const a=e.mapToIds(e.data.targets),o=[];let r="";a.forEach(c=>{const u=E(n)?n.bind(e.api)(c,e.color(c),e.api.data(c)[0].values):$e(n,{COLOR:e.color(c),TITLE:c});u&&(o.push(c),r+=u)});const l=i.html(r).selectAll(function(){return this.childNodes}).data(o);e.setLegendItem(l),s.legend=i}},updateSizeForLegend(e){const t=this,{config:s,state:{isLegendTop:i,isLegendLeft:n,isLegendRight:a,isLegendInset:o,current:r}}=t,{width:l,height:c}=e,u={top:i?t.getCurrentPaddingByDirection("top")+s.legend_inset_y+5.5:r.height-c-t.getCurrentPaddingByDirection("bottom")-s.legend_inset_y,left:n?t.getCurrentPaddingByDirection("left")+s.legend_inset_x+.5:r.width-l-t.getCurrentPaddingByDirection("right")-s.legend_inset_x+.5};t.state.margin3={top:a?0:o?u.top:r.height-c,right:NaN,bottom:0,left:a?r.width-l:o?u.left:0}},transformLegend(e){const t=this,{$el:{legend:s},$T:i}=t;i(s,e).attr("transform",t.getTranslate("legend"))},updateLegendStep(e){this.state.legendStep=e},updateLegendItemWidth(e){this.state.legendItemWidth=e},updateLegendItemHeight(e){this.state.legendItemHeight=e},updateLegendItemColor(e,t){const{legend:s}=this.$el;s&&s.select(`.${V.legendItem}-${e} line`).style("stroke",t)},getLegendWidth(){const e=this,{current:{width:t},isLegendRight:s,isLegendInset:i,legendItemWidth:n,legendStep:a}=e.state;return e.config.legend_show?s||i?n*(a+1):t:0},getLegendHeight(){var e;const t=this,{current:s,isLegendRight:i,legendItemHeight:n,legendStep:a}=t.state,o=((e=t.config.padding)==null?void 0:e.mode)==="fit";return t.config.legend_show?i?s.height:(o?10:Math.max(20,n))*(a+1):0},opacityForUnfocusedLegend(e){return e.classed(V.legendItemHidden)?null:"0.3"},toggleFocusLegend(e,t){const s=this,{$el:{legend:i},$T:n}=s,a=s.mapToTargetIds(e);i&&n(i.selectAll(`.${V.legendItem}`).filter(o=>a.indexOf(o)>=0).classed(W.legendItemFocused,t)).style("opacity",function(){return t?null:s.opacityForUnfocusedLegend.call(s,(0,w.select)(this))})},revertLegend(){const e=this,{$el:{legend:t},$T:s}=e;t&&s(t.selectAll(`.${V.legendItem}`).classed(W.legendItemFocused,!1)).style("opacity",null)},showLegend(e){const t=this,{config:s,$el:i,$T:n}=t;s.legend_show||(s.legend_show=!0,i.legend?i.legend.style("visibility",null):t.initLegend(),!t.state.legendHasRendered&&t.updateLegend()),t.removeHiddenLegendIds(e),n(i.legend.selectAll(t.selectorLegends(e)).style("visibility",null)).style("opacity",null)},hideLegend(e){const t=this,{config:s,$el:{legend:i}}=t;s.legend_show&&bt(e)&&(s.legend_show=!1,i.style("visibility","hidden")),t.addHiddenLegendIds(e),i.selectAll(t.selectorLegends(e)).style("opacity","0").style("visibility","hidden")},getLegendItemTextBox(e,t){const s=this,{cache:i,state:n}=s;let a;const o=ft.legendItemTextBox;return e&&(a=!n.redrawing&&i.get(o)||{},a[e]||(a[e]=s.getTextRect(t,V.legendItem),i.add(o,a)),a=a[e]),a},setLegendItem(e){const t=this,{$el:s,api:i,config:n,state:a}=t,o=a.inputType==="touch",r=t.hasType("gauge"),l=n.boost_useCssRule,c=n.legend_item_interaction;e.attr("class",function(u){const d=(0,w.select)(this);return(!d.empty()&&d.attr("class")||"")+t.generateClass(V.legendItem,u)}).style("visibility",u=>t.isLegendToShow(u)?null:"hidden"),n.interaction_enabled&&(l&&[[`.${V.legendItem}`,"cursor:pointer"],[`.${V.legendItem} text`,"pointer-events:none"],[`.${V.legendItemPoint} text`,"pointer-events:none"],[`.${V.legendItemTile}`,"pointer-events:none"],[`.${V.legendItemEvent}`,"fill-opacity:0"]].forEach(u=>{const[d,h]=u;t.setCssRule(!1,d,[h])(s.legend)}),e.on(c.dblclick?"dblclick":"click",c||E(n.legend_item_onclick)?function(u,d){if(!Z(n.legend_item_onclick,i,d)){const{altKey:h,target:g,type:f}=u;f==="dblclick"||h?a.hiddenTargetIds.length&&g.parentNode.getAttribute("class").indexOf(V.legendItemHidden)===-1?i.show():(i.hide(),i.show(d)):(i.toggle(d),(0,w.select)(this).classed(W.legendItemFocused,!1))}o&&t.hideTooltip()}:null),!o&&e.on("mouseout",c||E(n.legend_item_onout)?function(u,d){Z(n.legend_item_onout,i,d)||((0,w.select)(this).classed(W.legendItemFocused,!1),r&&t.undoMarkOverlapped(t,`.${xt.gaugeValue}`),t.api.revert())}:null).on("mouseover",c||E(n.legend_item_onover)?function(u,d){Z(n.legend_item_onover,i,d)||((0,w.select)(this).classed(W.legendItemFocused,!0),r&&t.markOverlapped(d,t,`.${xt.gaugeValue}`),!a.transiting&&t.isTargetToShow(d)&&i.focus(d))}:null),!e.empty()&&e.on("click mouseout mouseover")&&e.style("cursor",t.getStylePropValue("pointer")))},updateLegendElement(e,t){const s=this,{config:i,state:n,$el:{legend:a},$T:o}=s,l=i.legend_item_tile_type!=="circle",c=i.legend_item_tile_r,u={width:l?i.legend_item_tile_width:c*2,height:l?i.legend_item_tile_height:c*2},d={padding:{top:4,right:10},max:{width:0,height:0},posMin:10,step:0,tileWidth:u.width+5,totalLength:0},h={offsets:{},widths:{},heights:{},margins:[0],steps:{}};let g,f,p;const _=e.filter($=>!Y(i.data_names[$])||i.data_names[$]!==null),x=t.withTransition,m=s.getUpdateLegendPositions(_,d,h);n.isLegendInset&&(d.step=i.legend_inset_step?i.legend_inset_step:_.length,s.updateLegendStep(d.step)),n.isLegendRight?(g=$=>d.max.width*h.steps[$],f=$=>h.margins[h.steps[$]]+h.offsets[$]):n.isLegendInset?(g=$=>d.max.width*h.steps[$]+10,f=$=>h.margins[h.steps[$]]+h.offsets[$]):(g=$=>h.margins[h.steps[$]]+h.offsets[$],f=$=>d.max.height*h.steps[$]);const y={xText:($,T)=>g($,T)+4+u.width,xRect:($,T)=>g($,T),x1Tile:($,T)=>g($,T)-2,x2Tile:($,T)=>g($,T)-2+u.width,yText:($,T)=>f($,T)+9,yRect:($,T)=>f($,T)-5,yTile:($,T)=>f($,T)+4};s.generateLegendItem(_,u,m,y),p=a.select(`.${V.legendBackground} rect`),n.isLegendInset&&d.max.width>0&&p.size()===0&&(p=a.insert("g",`.${V.legendItem}`).attr("class",V.legendBackground).append("rect")),i.legend_tooltip&&a.selectAll("title").data(_).text($=>Xe.bind(s)($,!1));const b=a.selectAll("text").data(_).text($=>Xe.bind(s)($)).each(function($,T){m(this,$,T)});o(b,x).attr("x",y.xText).attr("y",y.yText);const v=a.selectAll(`rect.${V.legendItemEvent}`).data(_);o(v,x).attr("width",$=>h.widths[$]).attr("height",$=>h.heights[$]).attr("x",y.xRect).attr("y",y.yRect),s.updateLegendItemPos(_,x,y),p&&o(p,x).attr("height",s.getLegendHeight()-12).attr("width",d.max.width*(d.step+1)+10),s.updateLegendItemWidth(d.max.width),s.updateLegendItemHeight(d.max.height),s.updateLegendStep(d.step)},getUpdateLegendPositions(e,t,s){const i=this,{config:n,state:a}=i,o=a.isLegendRight||a.isLegendInset;return function(r,l,c){const u=c===0,d=c===e.length-1,h=i.getLegendItemTextBox(l,r),g=h.width+t.tileWidth+(d&&!o?0:t.padding.right)+n.legend_padding,f=h.height+t.padding.top,p=o?f:g,_=o?i.getLegendHeight():i.getLegendWidth();let x;const m=function(b,v){v||(x=(_-t.totalLength-p)/2,x<t.posMin&&(x=(_-p)/2,t.totalLength=0,t.step++)),s.steps[b]=t.step,s.margins[t.step]=a.isLegendInset?10:x,s.offsets[b]=t.totalLength,t.totalLength+=p};if(u&&(t.totalLength=0,t.step=0,t.max.width=0,t.max.height=0),n.legend_show&&!i.isLegendToShow(l)){s.widths[l]=0,s.heights[l]=0,s.steps[l]=0,s.offsets[l]=0;return}s.widths[l]=g,s.heights[l]=f,(!t.max.width||g>=t.max.width)&&(t.max.width=g),(!t.max.height||f>=t.max.height)&&(t.max.height=f);const y=o?t.max.height:t.max.width;n.legend_equally?(Object.keys(s.widths).forEach(b=>s.widths[b]=t.max.width),Object.keys(s.heights).forEach(b=>s.heights[b]=t.max.height),x=(_-y*e.length)/2,x<t.posMin?(t.totalLength=0,t.step=0,e.forEach(b=>m(b))):m(l,!0)):m(l)}},generateLegendItem(e,t,s,i){const n=this,{config:a,state:o,$el:{legend:r}}=n,l=a.legend_usePoint,c=a.legend_item_tile_r,u=a.legend_item_tile_type,d=u!=="circle",h=o.isLegendRight||o.isLegendInset,g=-200,f=r.selectAll(`.${V.legendItem}`).data(e).enter().append("g");if(n.setLegendItem(f),a.legend_tooltip&&f.append("title").text(p=>p),f.append("text").text(p=>Xe.bind(n)(p)).each(function(p,_){s(this,p,_)}).style("pointer-events",n.getStylePropValue("none")).attr("x",h?i.xText:g).attr("y",h?g:i.yText),f.append("rect").attr("class",V.legendItemEvent).style("fill-opacity",n.getStylePropValue("0")).attr("x",h?i.xRect:g).attr("y",h?g:i.yRect),l){const p=[];f.append(_=>{const x=et(a.point_pattern)?a.point_pattern:[a.point_type];p.indexOf(_)===-1&&p.push(_);let m=x[p.indexOf(_)%x.length];return m==="rectangle"&&(m="rect"),it.createElementNS(w.namespaces.svg,"hasValidPointType"in n&&n.hasValidPointType(m)?m:"use")}).attr("class",V.legendItemPoint).style("fill",be.bind(n)).style("pointer-events",n.getStylePropValue("none")).attr("href",(_,x,m)=>{const b=m[x].nodeName.toLowerCase(),v=n.getTargetSelectorSuffix(_);return b==="use"?`#${o.datetimeId}-point${v}`:void 0})}else f.append(d?"line":u).attr("class",V.legendItemTile).style("stroke",be.bind(n)).style("pointer-events",n.getStylePropValue("none")).call(p=>{u==="circle"?p.attr("r",c).style("fill",be.bind(n)).attr("cx",h?i.x2Tile:g).attr("cy",h?g:i.yTile):d&&p.attr("stroke-width",t.height).attr("x1",h?i.x1Tile:g).attr("y1",h?g:i.yTile).attr("x2",h?i.x2Tile:g).attr("y2",h?g:i.yTile)})},updateLegendItemPos(e,t,s){const i=this,{config:n,$el:{legend:a},$T:o}=i,r=n.legend_usePoint,l=n.legend_item_tile_type,c=l!=="circle";if(r){const u=a.selectAll(`.${V.legendItemPoint}`).data(e);o(u,t).each(function(){const d=this.nodeName.toLowerCase(),h=n.point_r;let g="x",f="y",p=2,_=2.5,x=null,m=null,y=null;if(d==="circle"){const b=h*.2;g="cx",f="cy",x=h+b,p=h*2,_=-b}else if(d==="rect"){const b=h*2.5;m=b,y=b,_=3}(0,w.select)(this).attr(g,b=>s.x1Tile(b)+p).attr(f,b=>s.yTile(b)-_).attr("r",x).attr("width",m).attr("height",y)})}else{const u=a.selectAll(`.${V.legendItemTile}`).data(e);o(u,t).style("stroke",be.bind(i)).call(d=>{l==="circle"?d.attr("cx",h=>{const g=s.x2Tile(h);return g-(g-s.x1Tile(h))/2}).attr("cy",s.yTile):c&&d.attr("x1",s.x1Tile).attr("y1",s.yTile).attr("x2",s.x2Tile).attr("y2",s.yTile)})}}},Hn=j(8),Wn={redraw(e={}){var t,s,i,n;const a=this,{config:o,state:r,$el:l}=a,{main:c,treemap:u}=l;r.redrawing=!0;const d=a.filterTargetsToShow(a.data.targets),{flow:h,initializing:g}=e,f=a.getWithOption(e),p=f.Transition?o.transition_duration:0,_=f.TransitionForExit?p:0,x=f.TransitionForAxis?p:0,m=(t=a.axis)==null?void 0:t.generateTransitions(x);a.updateSizes(g),f.Legend&&o.legend_show?(e.withTransition=!!p,!u&&a.updateLegend(a.mapToIds(a.data.targets),e,m)):f.Dimension&&a.updateDimension(!0),o.data_empty_label_text&&c.select(`text.${ut.text}.${O.empty}`).attr("x",r.width/2).attr("y",r.height/2).text(o.data_empty_label_text).style("display",d.length?"none":null),r.hasAxis?(a.axis.redrawAxis(d,f,m,h,g),a.hasGrid()&&a.updateGrid(),o.regions.length&&a.updateRegion(),["bar","candlestick","line","area"].forEach(y=>{const b=gt(y);(/^(line|area)$/.test(y)&&a.hasTypeOf(b)||a.hasType(y))&&a[`update${b}`](f.TransitionForExit)}),l.text&&c.selectAll(`.${q.selectedCircles}`).filter(a.isBarType.bind(a)).selectAll("circle").remove(),o.interaction_enabled&&!h&&f.EventRect&&(a.redrawEventRect(),(s=a.bindZoomEvent)==null||s.call(a))):(l.arcs&&a.redrawArc(p,_,f.Transform),l.radar&&a.redrawRadar(),l.polar&&a.redrawPolar(),l.funnel&&a.redrawFunnel(),u&&a.updateTreemap(_)),!r.resizing&&!u&&(a.hasPointType()||r.hasRadar)?a.updateCircle():(i=a.hasLegendDefsPoint)!=null&&i.call(a)&&a.data.targets.forEach(a.point("create",this)),a.hasDataLabel()&&!a.hasArcType(null,["radar"])&&a.updateText(),(n=a.redrawTitle)==null||n.call(a),g&&a.updateTypesElements(),a.generateRedrawList(d,h,p,f.Subchart),a.updateTooltipOnRedraw(),a.callPluginHook("$redraw",e,p)},generateRedrawList(e,t,s,i){const n=this,{config:a,state:o}=n,r=n.getDrawShape();o.hasAxis&&a.subchart_show&&n.redrawSubchart(i,s,r);const l=t&&n.generateFlow({targets:e,flow:t,duration:t.duration,shape:r,xv:n.xv.bind(n)}),c=(s||l)&&ae(),u=n.getRedrawList(r,t,l,c),d=()=>{l&&l(),o.redrawing=!1,Z(a.onrendered,n.api)};if(d)if(c&&u.length){const h=ps();(0,Hn.transition)().duration(s).each(()=>{u.reduce((g,f)=>g.concat(f),[]).forEach(g=>h.add(g))}).call(h,d)}else o.transiting||d();n.mapToIds(n.data.targets).forEach(h=>{o.withoutFadeIn[h]=!0})},getRedrawList(e,t,s,i){const n=this,{config:a,state:{hasAxis:o,hasRadar:r,hasTreemap:l},$el:{grid:c}}=n,{cx:u,cy:d,xForText:h,yForText:g}=e.pos,f=[];return o&&((a.grid_x_lines.length||a.grid_y_lines.length)&&f.push(n.redrawGrid(i)),a.regions.length&&f.push(n.redrawRegion(i)),Object.keys(e.type).forEach(p=>{const _=gt(p),x=e.type[p];(/^(area|line)$/.test(p)&&n.hasTypeOf(_)||n.hasType(p))&&f.push(n[`redraw${_}`](x,i))}),!t&&c.main&&f.push(n.updateGridFocus())),(!n.hasArcType()||r)&&et(a.data_labels)&&a.data_labels!==!1&&f.push(n.redrawText(h,g,t,i)),(n.hasPointType()||r)&&!n.isPointFocusOnly()&&n.redrawCircle&&f.push(n.redrawCircle(u,d,i,s)),l&&f.push(n.redrawTreemap(i)),f},updateAndRedraw(e={}){const t=this,{config:s,state:i}=t;let n;e.withTransition=Lt(e,"withTransition",!0),e.withTransform=Lt(e,"withTransform",!1),e.withLegend=Lt(e,"withLegend",!1),e.withUpdateXDomain=!0,e.withUpdateOrgXDomain=!0,e.withTransitionForExit=!1,e.withTransitionForTransform=Lt(e,"withTransitionForTransform",e.withTransition),e.withLegend&&s.legend_show||(i.hasAxis&&(n=t.axis.generateTransitions(e.withTransitionForAxis?s.transition_duration:0)),t.updateScales(),t.updateSvgSize(),t.transformAll(e.withTransitionForTransform,n)),t.redraw(e,n)}};function Gt(e="linear",t=0,s=1){const i={linear:Ot.scaleLinear,log:Ot.scaleSymlog,_log:Ot.scaleLog,time:Ot.scaleTime,utc:Ot.scaleUtc}[e]();return i.type=e,/_?log/.test(e)&&i.clamp(!0),i.range([t,s])}var Un={getXScale(e,t,s,i){const n=this,a=n.state.loading!=="append"&&n.scale.zoom||Gt(n.axis.getAxisType("x"),e,t);return n.getCustomizedXScale(s?a.domain(s):a,i)},getYScale(e,t,s,i){const a=Gt(this.axis.getAxisType(e),t,s);return i&&a.domain(i),a},getYScaleById(e,t=!1){var s;const i=((s=this.axis)==null?void 0:s.getId(e))==="y2",n=t?i?"subY2":"subY":i?"y2":"y";return this.scale[n]},getCustomizedXScale(e,t){const s=this,i=t||(()=>s.axis.x.tickOffset()),n=s.config.axis_x_inverted,a=function(o,r){const l=e(o)+i();return r?l:Math.ceil(l)};for(const o in e)a[o]=e[o];return a.orgDomain=()=>e.domain(),a.orgScale=()=>e,s.axis.isCategorized()&&(a.domain=function(o){let r=o;return arguments.length?(e.domain(r),a):(r=this.orgDomain(),n?[r[0]+1,r[1]]:[r[0],r[1]+1])}),a},updateScales(e,t=!0){var s,i;const n=this,{axis:a,config:o,format:r,org:l,scale:c,state:{current:u,width:d,height:h,width2:g,height2:f,hasAxis:p,hasTreemap:_}}=n;if(p){const x=o.axis_rotated,m=n.getResettedPadding(1),y={x:x?m:0,y:x?0:h,subX:x?1:0,subY:x?0:f},b={x:x?h:d,y:x?d:m,subX:x?h:d,subY:x?g:1},v=t&&((s=c.x)==null?void 0:s.orgDomain()),$=t&&l.xDomain;c.x=n.getXScale(y.x,b.x,v,()=>a.x.tickOffset()),c.subX=n.getXScale(y.x,b.x,$,T=>{var S;return T%1?0:((S=a.subX)!=null?S:a.x).tickOffset()}),r.xAxisTick=a.getXAxisTickFormat(),r.subXAxisTick=a.getXAxisTickFormat(!0),a.setAxis("x",c.x,o.axis_x_tick_outer,e),o.subchart_show&&a.setAxis("subX",c.subX,o.axis_x_tick_outer,e),c.y=n.getYScale("y",y.y,b.y,c.y?c.y.domain():o.axis_y_default),c.subY=n.getYScale("y",y.subY,b.subY,c.subY?c.subY.domain():o.axis_y_default),a.setAxis("y",c.y,o.axis_y_tick_outer,e),o.axis_y2_show&&(c.y2=n.getYScale("y2",y.y,b.y,c.y2?c.y2.domain():o.axis_y2_default),c.subY2=n.getYScale("y2",y.subY,b.subY,c.subY2?c.subY2.domain():o.axis_y2_default),a.setAxis("y2",c.y2,o.axis_y2_tick_outer,e))}else if(_){const x=n.getCurrentPadding();c.x=(0,Ot.scaleLinear)().rangeRound([x.left,u.width-x.right]),c.y=(0,Ot.scaleLinear)().rangeRound([x.top,u.height-x.bottom])}else(i=n.updateArc)==null||i.call(n)},xx(e){const t=this,{config:s,scale:{x:i,zoom:n}}=t,a=s.zoom_enabled&&n?n:i;return e?a(D(e.x)?e.x:e):null},xv(e){const t=this,{axis:s,config:i,scale:{x:n,zoom:a}}=t,o=i.zoom_enabled&&a?a:n;let r=t.getBaseValue(e);return s.isTimeSeries()?r=_t.call(t,r):s.isCategorized()&&G(r)&&(r=i.axis_x_categories.indexOf(r)),Math.ceil(o(r))},yv(e){const t=this,{scale:{y:s,y2:i}}=t,n=e.axis&&e.axis==="y2"?i:s;return Math.ceil(n(t.getBaseValue(e)))},subxx(e){return e?this.scale.subX(e.x):null}},Zn={setContainerSize(){const e=this,{state:t}=e;t.current.width=e.getCurrentWidth(),t.current.height=e.getCurrentHeight()},getCurrentWidth(){const e=this;return e.config.size_width||e.getParentWidth()},getCurrentHeight(){const e=this,{config:t}=e,s=t.size_height||e.getParentHeight();return s>0?s:320/(e.hasType("gauge")&&!t.gauge_fullCircle?2:1)},getParentRectValue(e){const t=`offset${gt(e)}`;let s=this.$el.chart.node(),i=0;for(;i<30&&s&&s.tagName!=="BODY";){try{i=s.getBoundingClientRect()[e]}catch(a){t in s&&(i=s[t])}s=s.parentNode}const n=it.body[t];return i>n&&(i=n),i},getParentWidth(){return this.getParentRectValue("width")},getParentHeight(){const e=this.$el.chart.style("height");let t=0;return e&&(t=/px$/.test(e)?parseInt(e,10):this.getParentRectValue("height")),t},getSvgLeft(e){const t=this,{config:s,state:{hasAxis:i},$el:n}=t,a=s.axis_rotated,o=a||!a&&!s.axis_y_inner,r=a?st.axisX:st.axisY,l=n.main.select(`.${r}`).node(),c=i&&s[`axis_${a?"x":"y"}_label`];let u=0;if(i&&(G(c)||G(c.text)||/^inner-/.test(c==null?void 0:c.position))){const p=n.main.select(`.${r}-label`);p.empty()||(u=p.node().getBoundingClientRect().left)}const d=l&&o?l.getBoundingClientRect():{right:0},h=n.chart.node().getBoundingClientRect().left+u,g=t.hasArcType(),f=d.right-h-(g?0:t.getCurrentPaddingByDirection("left",e));return f>0?f:0},updateDimension(e){var t;const s=this,{config:i,state:{hasAxis:n},$el:a}=s;n&&!e&&s.axis.x&&i.axis_rotated&&((t=s.axis.subX)==null||t.create(a.axis.subX)),s.updateScales(e),s.updateSvgSize(),s.transformAll(!1)},updateSvgSize(){const e=this,{state:{clip:t,current:s,hasAxis:i,width:n,height:a},$el:{svg:o}}=e;if(o.attr("width",s.width).attr("height",s.height),i){const r=o.select(`.${Je.brush} .overlay`),l={width:0,height:0};r.size()&&(l.width=+r.attr("width"),l.height=+r.attr("height")),o.selectAll([`#${t.id}`,`#${t.idGrid}`]).select("rect").attr("width",n).attr("height",a),o.select(`#${t.idXAxis}`).select("rect").call(e.setXAxisClipPath.bind(e)),o.select(`#${t.idYAxis}`).select("rect").call(e.setYAxisClipPath.bind(e)),t.idSubchart&&o.select(`#${t.idSubchart}`).select("rect").attr("width",n).attr("height",l.height)}},getCurrentPaddingByDirection(e,t=!1,s=!1){var i;const n=this,{config:a,$el:o,state:{hasAxis:r}}=n,l=a.axis_rotated,c=((i=a.padding)==null?void 0:i.mode)==="fit",u=C(a[`padding_${e}`])?a[`padding_${e}`]:void 0,d=r?{top:l?"y2":null,bottom:l?"y":"x",left:l?"x":"y",right:l?null:"y2"}[e]:null,h=/^(left|right)$/.test(e),g=d&&a[`axis_${d}_inner`],f=d&&a[`axis_${d}_show`],p=d?a[`axis_${d}_axes`].length:0;let _=d?h?n.getAxisWidthByAxisId(d,t):n.getHorizontalAxisHeight(d):0;const x=20;let m=0;!c&&h&&(_=nn(_));let y=r&&h&&(g||tt(u)&&!f)?0:c?(f?_:0)+(u!=null?u:0):tt(u)?_:u;return h&&r?(d&&(c||g)&&a[`axis_${d}_label`].text&&(y+=n.axis.getAxisLabelPosition(d).isOuter?x:0),e==="right"?(y+=l?!c&&tt(u)?10:2:!f||g?c?2:1:0,y+=s?n.axis.getXAxisTickTextY2Overflow(x):0):e==="left"&&l&&tt(u)&&(y=a.axis_x_show?c?_:Math.max(_,40):1)):e==="top"?(o.title&&o.title.node()&&(y+=n.getTitlePadding()),m=l&&!g?p:0):e==="bottom"&&r&&l&&!f&&(y+=1),y+_*p-m},getCurrentPadding(e=!1){const t=this,[s,i,n,a]=["top","bottom","left","right"].map(o=>t.getCurrentPaddingByDirection(o,null,e));return{top:s,bottom:i,left:n,right:a}},getResettedPadding(e){const t=this,{config:s}=t,i=C(e);let n=i?0:{};return s.padding===!1?!i&&Object.keys(e).forEach(a=>{n[a]=!bt(s.data_labels)&&s.data_labels!==!1&&a==="top"?e[a]:0}):n=e,n},updateSizes(e){var t,s,i,n,a;const o=this,{config:r,state:l,$el:{legend:c}}=o,u=r.axis_rotated,d=o.hasArcType()||l.hasFunnel||l.hasTreemap,h=((t=r.padding)==null?void 0:t.mode)==="fit";!e&&o.setContainerSize();const g={width:c?o.getLegendWidth():0,height:c?o.getLegendHeight():0};!d&&r.axis_x_show&&r.axis_x_tick_autorotate&&o.updateXAxisTickClip();const f={right:r.legend_show&&l.isLegendRight?o.getLegendWidth()+(h?0:20):0,bottom:!r.legend_show||l.isLegendRight||l.isLegendInset?0:g.height},p=u||d?0:o.getHorizontalAxisHeight("x"),_=r.subchart_axis_x_show&&r.subchart_axis_x_tick_text_show?p:30,x=r.subchart_show&&!d?r.subchart_size_height+_:0,m=o.hasType("gauge")&&r.arc_needle_show&&!r.gauge_fullCircle&&!r.gauge_label_show?10:0,y=o.getCurrentPadding(!0);if(l.margin=!d&&u?{top:y.top,right:d?0:y.right+f.right,bottom:f.bottom+y.bottom,left:x+(d?0:y.left)}:{top:(h?0:4)+y.top,right:d?0:y.right+f.right,bottom:m+x+f.bottom+y.bottom,left:d?0:y.left},l.margin=o.getResettedPadding(l.margin),l.margin2=u?{top:l.margin.top,right:NaN,bottom:20+f.bottom,left:o.state.rotatedPadding.left}:{top:l.current.height-x-f.bottom,right:NaN,bottom:_+f.bottom,left:l.margin.left},l.margin3={top:0,right:NaN,bottom:0,left:0},(s=o.updateSizeForLegend)==null||s.call(o,g),l.width=l.current.width-l.margin.left-l.margin.right,l.height=l.current.height-l.margin.top-l.margin.bottom,l.width<0&&(l.width=0),l.height<0&&(l.height=0),l.width2=u?l.margin.left-l.rotatedPadding.left-l.rotatedPadding.right:l.width,l.height2=u?l.height:l.current.height-l.margin2.top-l.margin2.bottom,l.width2<0&&(l.width2=0),l.height2<0&&(l.height2=0),o.hasArcType()){const b=o.hasType("gauge"),v=r.legend_show&&l.isLegendRight,$=(i=l.hasRadar&&o.cache.get(ft.radarTextWidth))!=null?i:0;l.arcWidth=l.width-(v?g.width+10:0)-$,l.arcHeight=l.height-(v&&!b?0:10),(n=r.arc_rangeText_values)!=null&&n.length&&(b?(l.arcWidth-=25,l.arcHeight-=10,l.margin.left+=10):(l.arcHeight-=20,l.margin.top+=10)),b&&!r.gauge_fullCircle&&(l.arcHeight+=l.height-o.getPaddingBottomForGauge()),(a=o.updateRadius)==null||a.call(o)}l.isLegendRight&&d&&(l.margin3.left=l.arcWidth/2+l.radiusExpanded*1.1)}},qn={setCssRule(e,t,s,i){const n=this,{config:a,state:{cssRule:o,style:r}}=n;return a.boost_useCssRule?l=>{l.each(c=>{const u=i&&(i==null?void 0:i.call(n,c)),d=`${e?`.${Q.shapes+n.getTargetSelectorSuffix(c.id)}`:""}${t}`;t in o&&r.sheet.deleteRule(o[d]),n.state.cssRule[d]=ln(r,d,s.filter(Boolean).map(h=>G(u)&&h.indexOf(":")===-1?`${h}: ${u}`:h||""))})}:()=>{}},getStylePropValue(e){const{config:{boost_useCssRule:t}}=this;return t?null:E(e)?e.bind(this):e}};function Kn(e){let t="middle";return e>0&&e<=170?t="end":e>190&&e<=360&&(t="start"),t}function Jn(e,t,s,i,n){var a;const o=this,{value:r}=e,l=o.isCandlestickType(e),c=C(r)&&r<0||l&&!((a=o.getCandlestickData(e))!=null&&a._isUp);let{x:u,y:d}=t;const h=4,g=h*2;return i?s==="start"?(u+=c?0:g,d+=h):s==="middle"?(u+=g,d-=g):s==="end"&&(c&&(u-=g),d+=h):(s==="start"?(u+=h,c&&(d+=g*2)):s==="middle"?d-=g:s==="end"&&(u-=h,c&&(d+=g*2)),n&&(d+=c?-17:l?13:7)),{x:u,y:d}}function vs(e,t){var s;const i=this.config.data_labels_position,{id:n,index:a,value:o}=e;return(s=E(i)?i.bind(this.api)(t,o,n,a,this.$el.text):(n in i?i[n]:i)[t])!=null?s:0}var Qn={opacityForText(e){const t=this;return t.isBarType(e)&&!t.meetsLabelThreshold(Math.abs(t.getRatio("bar",e)),"bar")?"0":t.hasDataLabel?null:"0"},initText(){const{$el:e}=this;e.main.select(`.${O.chart}`).append("g").attr("class",ut.chartTexts).style("pointer-events",e.funnel||e.treemap?"none":null)},updateTargetsForText(e){const t=this,s=t.getChartClass("Text"),i=t.getClass("texts","id"),n=t.classFocus.bind(t);t.$el.main.select(`.${ut.chartTexts}`).selectAll(`.${ut.chartText}`).data(e).attr("class",r=>`${s(r)}${n(r)}`.trim()).enter().append("g").style("opacity","0").attr("class",s).call(t.setCssRule(!0,` .${ut.text}`,["fill","pointer-events:none"],t.updateTextColor)).append("g").attr("class",i)},updateText(){const e=this,{$el:t,$T:s,config:i,axis:n}=e,a=e.getClass("text","index"),o=i.data_labels.centered,r=t.main.selectAll(`.${ut.texts}`).selectAll(`.${ut.text}`).data(e.labelishData.bind(e));s(r.exit()).style("fill-opacity","0").remove(),t.text=r.enter().append("text").merge(r).attr("class",a).attr("text-anchor",l=>{let u=i[`axis_${n==null?void 0:n.getId(l.id)}_inverted`]?l.value>0:l.value<0;if(e.isCandlestickType(l)){const d=e.getCandlestickData(l);u=!(d!=null&&d._isUp)}else if(e.isTreemapType(l))return o?"middle":"start";return i.axis_rotated?u?"end":"start":"middle"}).style("fill",e.getStylePropValue(e.updateTextColor)).style("fill-opacity","0").each(function(l,c,u){const d=(0,w.select)(this);let{value:h}=l;if(e.isBubbleZType(l))h=e.getBubbleZData(h,"z");else if(e.isCandlestickType(l)){const g=e.getCandlestickData(l);g&&(h=g.close)}h=e.isTreemapType(l)?e.treemapDataLabelFormat(l)(d):e.dataLabelFormat(l.id)(h,l.id,l.index,u),C(h)?this.textContent=h:ne(d,h)})},updateTextColor(e){const t=this,{config:s}=t,i=s.data_labels_colors,n=t.isArcType(e)&&!t.isRadarType(e)||t.isFunnelType(e)||t.isTreemapType(e)?null:t.color(e);let a;if(G(i))a=i;else if(F(i)){const{id:o}=e.data||e;a=i[o]}else E(i)&&(a=i.bind(t.api)(n,e));if(t.isCandlestickType(e)&&!E(i)){const o=t.getCandlestickData(e);if(!(o!=null&&o._isUp)){const r=s.candlestick_color_down;a=F(r)?r[e.id]:r}}return a||n},updateTextBGColor(e,t){const s=this,{$el:i}=s;let n="";if(G(t)||F(t)){const a=G(t)?"":s.getTargetSelectorSuffix("id"in e?e.id:e.data.id),o=i.defs.select(["filter[id*='labels-bg","']"].join(a));o.size()&&(n=`url(#${o.attr("id")})`)}return n||null},redrawText(e,t,s,i){const n=this,{$T:a,axis:o,config:r,state:{hasTreemap:l}}=n,c=Rt(!0),u=r.axis_rotated,d=r.data_labels.rotate,h=Kn(d),g=d?`rotate(${d})`:"";return n.$el.text.style("fill",n.getStylePropValue(n.updateTextColor)).attr("filter",f=>n.updateTextBGColor.bind(n)(f,r.data_labels_backgroundColors)).style("fill-opacity",s?0:n.opacityForText.bind(n)).each(function(f,p){const _=a(l&&this.childElementCount?this.parentNode:this,!!(i&&this.getAttribute("x")),c),x=r[`axis_${o==null?void 0:o.getId(f.id)}_inverted`];let m={x:e.bind(this)(f,p),y:t.bind(this)(f,p)};d&&(m=Jn.bind(n)(f,m,h,u,x),_.attr("text-anchor",h)),this.childElementCount||d?_.attr("transform",`translate(${m.x} ${m.y}) ${g}`):_.attr("x",m.x).attr("y",m.y)}),!0},getTextRect(e,t){const s=this;let i=e.node?e.node():e;/text/i.test(i.tagName)||(i=i.querySelector("text"));const n=i.textContent,a=`${ft.textRect}-${n.replace(/\W/g,"_")}`;let o=s.cache.get(a);return o||(s.$el.svg.append("text").style("visibility","hidden").style("font",(0,w.select)(i).style("font")).classed(t,!0).text(n).call(r=>{o=_e(r.node())}).remove(),s.cache.add(a,o)),o},generateXYForText(e,t){const s=this,{state:{hasRadar:i,hasFunnel:n,hasTreemap:a}}=s,o=Object.keys(e),r={},l=t?s.getXForText:s.getYForText;return n&&o.push("funnel"),i&&o.push("radar"),a&&o.push("treemap"),o.forEach(c=>{r[c]=s[`generateGet${gt(c)}Points`](e[c],!1)}),function(c,u){const d=s.isAreaType(c)&&"area"||s.isBarType(c)&&"bar"||s.isCandlestickType(c)&&"candlestick"||s.isFunnelType(c)&&"funnel"||s.isRadarType(c)&&"radar"||s.isTreemapType(c)&&"treemap"||"line";return l.call(s,r[d](c,u),c,this)}},getCenteredTextPos(e,t,s,i){const n=this,{config:a}=n,o=a.axis_rotated,r=n.isBarType(e),l=n.isTreemapType(e);if(a.data_labels.centered&&(r||l)){const c=_e(s);if(r){const u=n.getRangedData(e,null,"bar")>=0;if(o){const d=(u?t[1][1]-t[0][1]:t[0][1]-t[1][1])/2+c.width/2;return u?-d-3:d+2}else{const d=(u?t[0][1]-t[1][1]:t[1][1]-t[0][1])/2+c.height/2;return u?d:-d-2}}else if(l)return i==="x"?(t[1][0]-t[0][0])/2:(t[1][1]-t[0][1])/2+c.height/2}return 0},getXForText(e,t,s){var i;const n=this,{config:a}=n,o=a.axis_rotated,r=n.isFunnelType(t),l=n.isTreemapType(t);let c=e?e[0][0]:0;if(n.isCandlestickType(t))o?c=(i=n.getCandlestickData(t))!=null&&i._isUp?e[2][2]+4:e[2][1]-4:c+=(e[1][0]-c)/2;else if(r)c+=n.state.current.width/2;else if(l)c+=a.data_labels.centered?0:5;else if(o){const u=a[`axis_${n.axis.getId(t.id)}_inverted`],d=n.isBarType(t)?4:6,h=t.value;c=e[2][1],u?c-=d*(h>0?1:-1):c+=d*(h<0?-1:1)}else c=n.hasType("bar")?(e[2][0]+e[0][0])/2:c;return(o||l)&&(c+=n.getCenteredTextPos(t,e,s,"x")),c+vs.call(this,t,"x")},getYForText(e,t,s){const i=this,{axis:n,config:a,state:o}=i,r=a.axis_rotated,l=a[`axis_${n==null?void 0:n.getId(t.id)}_inverted`],c=i.isBarType(t),u=i.isFunnelType(t),d=i.isTreemapType(t),h=a.point_r,g=_e(s);let{value:f}=t,p=3,_;if(i.isCandlestickType(t))f=i.getCandlestickData(t),r?(_=e[0][0],_+=(e[1][0]-_)/2+p):(_=f&&f._isUp?e[2][2]-p:e[2][1]+p*4,l&&(_+=15*(f._isUp?1:-1)));else if(u)_=e?e[0][1]+(e[1][1]-e[0][1])/2+g.height/2-3:0;else if(d)_=e[0][1]+(a.data_labels.centered?0:g.height+5);else if(r)_=(e[0][0]+e[2][0]+g.height*.6)/2;else if(_=e[2][1],C(h)&&h>5&&(i.isLineType(t)||i.isScatterType(t))&&(p+=a.point_r/2.3),f<0||f===0&&!o.hasPositiveValue&&o.hasNegativeValue)_+=l?c?-3:-5:g.height+(c?-p:p);else{let x=-p*2;c?x=-p:i.isBubbleType(t)&&(x=p),l&&(x=c?10:15),_+=x}return(!r||d)&&(_+=i.getCenteredTextPos(t,e,s,"y")),_+vs.call(this,t,"y")},markOverlapped(e,t,s){const i=t.$el.arcs.selectAll(s),n=i.filter(l=>l.data.id!==e),a=i.filter(l=>l.data.id===e),o=cs(a.node()),r=(l,c)=>Math.sqrt(Math.pow(l,2)+Math.pow(c,2));a.node()&&n.each(function(){const l=cs(this),c=(0,w.select)(this),u=r(o.e,o.f)>r(l.e,l.f)?a:c,d=Math.ceil(Math.abs(o.e-l.e))<Math.ceil(u.node().getComputedTextLength()),h=Math.ceil(Math.abs(o.f-l.f))<parseInt(a.style("font-size"),10);c.classed(ut.TextOverlapping,d&&h)})},undoMarkOverlapped(e,t){e.$el.arcs.selectAll(t).each(function(){(0,w.selectAll)([this,this.previousSibling]).classed(ut.TextOverlapping,!1)})},meetsLabelThreshold(e=0,t){const s=this,{config:i}=s,n=i[`${t}_label_threshold`]||0;return e>=n}};function Ts(e="left",t){const s=C(t);let i;return e.indexOf("center")>-1?i=s?t/2:"middle":e.indexOf("right")>-1?i=s?t:"end":i=s?0:"start",i}var ta={initTitle(){const e=this,{config:t,$el:s}=e;if(t.title_text){s.title=s.svg.append("g");const i=s.title.append("text").style("text-anchor",Ts(t.title_position)).attr("class",ut.title);ne(i,t.title_text,[.3,1.5])}},redrawTitle(){const e=this,{config:t,state:{current:s},$el:{title:i}}=e;if(i){const n=Ts(t.title_position,s.width),a=(t.title_padding.top||0)+e.getTextRect(e.$el.title,ut.title).height;i.attr("transform",`translate(${n}, ${a})`)}},getTitlePadding(){const e=this,{$el:{title:t},config:s}=e;return(s.title_padding.top||0)+(t?e.getTextRect(t,ut.title).height:0)+(s.title_padding.bottom||0)}},ea={initTooltip(){const e=this,{config:t,$el:s}=e;s.tooltip=(0,w.select)(t.tooltip_contents.bindto),s.tooltip.empty()&&(s.tooltip=s.chart.append("div").attr("class",ge.tooltipContainer).style("position","absolute").style("pointer-events","none").style("display","none")),e.bindTooltipResizePos()},initShowTooltip(){var e;const t=this,{config:s,$el:i,state:{hasAxis:n,hasRadar:a}}=t;if(s.tooltip_init_show){const o=!(n||a);(e=t.axis)!=null&&e.isTimeSeries()&&G(s.tooltip_init_x)&&(s.tooltip_init_x=_t.call(t,s.tooltip_init_x)),t.api.tooltip.show({data:{[o?"index":"x"]:s.tooltip_init_x}});const r=s.tooltip_init_position;if(!s.tooltip_contents.bindto&&!bt(r)){const{top:l=0,left:c=50}=r;i.tooltip.style("top",G(l)?l:`${l}px`).style("left",G(c)?c:`${c}px`).style("display",null)}}},getTooltipHTML(...e){const t=this,{api:s,config:i}=t;return E(i.tooltip_contents)?i.tooltip_contents.bind(s)(...e):t.getTooltipContent(...e)},getTooltipContent(e,t,s,i){var n;const a=this,{api:o,config:r,state:l,$el:c}=a,[u,d,h]=["title","name","value"].map(L=>{const z=r[`tooltip_format_${L}`];return E(z)?z.bind(o):z}),g=(...L)=>ke((u||t)(...L)),f=(...L)=>ke((d||(z=>z))(...L)),p=(...L)=>{const z=h||(l.hasTreemap||a.isStackNormalized()?(at,ot)=>`${(ot*100).toFixed(2)}%`:s);return ke(z(...L))},_=r.tooltip_order,x=L=>a.axis&&a.isBubbleZType(L)?a.getBubbleZData(L.value,"z"):a.getBaseValue(L),m=a.levelColor?L=>a.levelColor(L.value):L=>i(L),y=r.tooltip_contents,b=y.template,v=a.mapToTargetIds();if(_===null&&r.data_groups.length){const L=a.orderTargets(a.data.targets).map(z=>z.id).reverse();e.sort((z,at)=>{let ot=z?z.value:null,ht=at?at.value:null;return ot>0&&ht>0&&(ot=z.id?L.indexOf(z.id):null,ht=at.id?L.indexOf(at.id):null),ot-ht})}else if(/^(asc|desc)$/.test(_)){const L=_==="asc";e.sort((z,at)=>{const ot=z?x(z):null,ht=at?x(at):null;return L?ot-ht:ht-ot})}else E(_)&&e.sort(_.bind(o));const $=a.getTooltipContentTemplate(b),T=e.length;let S,A,R,I,M;for(M=0;M<T;M++)if(A=e[M],!(!A||!(x(A)||x(A)===0))){if(tt(S)){const L=(l.hasAxis||l.hasRadar)&&g(A.x);S=$e($[0],{CLASS_TOOLTIP:ge.tooltip,TITLE:D(L)?b?L:`<tr><th colspan="2">${L}</th></tr>`:""})}if(!A.ratio&&c.arcs&&(R=["arc",a.$el.arcs.select(`path.${N.arc}-${A.id}`).data()[0]],A.ratio=a.getRatio(...R)),R=[A.ratio,A.id,A.index],a.isAreaRangeType(A)){const[L,z]=["high","low"].map(ot=>p(a.getRangedData(A,ot),...R));I=`<b>Mid:</b> ${p(x(A),...R)} <b>High:</b> ${L} <b>Low:</b> ${z}`}else if(a.isCandlestickType(A)){const[L,z,at,ot,ht]=["open","high","low","close","volume"].map(zt=>a.getRangedData(A,zt,"candlestick")?p(a.getRangedData(A,zt,"candlestick"),...R):void 0);I=`<b>Open:</b> ${L} <b>High:</b> ${z} <b>Low:</b> ${at} <b>Close:</b> ${ot}${ht?` <b>Volume:</b> ${ht}`:""}`}else if(a.isBarRangeType(A)){const{value:L,id:z,index:at}=A;I=`${p(L,void 0,z,at)}`}else I=p(x(A),...R);if(I!==void 0){if(A.name===null)continue;const L=f((n=A.name)!=null?n:A.id,...R),z=m(A),at={CLASS_TOOLTIP_NAME:ge.tooltipName+a.getTargetSelectorSuffix(A.id),COLOR:b||!a.patterns?z:`<svg><rect style="fill:${z}" width="10" height="10"></rect></svg>`,NAME:L,VALUE:I};if(b&&F(y.text)){const ot=v.indexOf(A.id);Object.keys(y.text).forEach(ht=>{at[ht]=y.text[ht][ot]})}S+=$e($[1],at)}}return`${S}</table>`},getTooltipContentTemplate(e){return(e||`<table class="{=CLASS_TOOLTIP}"><tbody> + {=TITLE} + {{<tr class="{=CLASS_TOOLTIP_NAME}"> + <td class="name">${this.patterns?"{=COLOR}":'<span style="background-color:{=COLOR}"></span>'}{=NAME}</td> + <td class="value">{=VALUE}</td> + </tr>}} + </tbody></table>`).replace(/(\r?\n|\t)/g,"").split(/{{(.*)}}/)},setTooltipPosition(e,t){var s,i;const n=this,{config:a,scale:o,state:r,$el:{eventRect:l,tooltip:c}}=n,{bindto:u}=a.tooltip_contents,d=a.axis_rotated,h=c==null?void 0:c.datum();if(!u&&h){const g=e!=null?e:JSON.parse(h.current),[f,p]=mt(r.event,t!=null?t:l==null?void 0:l.node()),_={x:f,y:p};if(r.hasAxis&&o.x&&h&&"x"in h){const b=(v=0,$,T="y")=>{var S;const A=o[$?(S=n.axis)==null?void 0:S.getId($):T];return A?A(v)+(d?r.margin.left:r.margin.top):0};_.xAxis=o.x(h.x)+(a.tooltip_position?d?r.margin.top:r.margin.left:0),g.length===1?_.yAxis=b(g[0].value,g[0].id):_.yAxis=b}const{width:x=0,height:m=0}=h,y=(i=(s=a.tooltip_position)==null?void 0:s.bind(n.api)(g,x,m,l==null?void 0:l.node(),_))!=null?i:n.getTooltipPosition.bind(n)(x,m,_);["top","left"].forEach(b=>{const v=y[b];c.style(b,`${v}px`),b==="left"&&!h.xPosInPercent&&(h.xPosInPercent=v/r.current.width*100)})}},getTooltipPosition(e,t,s){var i,n,a;const o=this,{config:r,scale:l,state:c}=o,{width:u,height:d,current:h,hasFunnel:g,hasRadar:f,hasTreemap:p,isLegendRight:_,inputType:x}=c,m=o.hasType("gauge")&&!r.gauge_fullCircle,y=r.axis_rotated,b=o.hasArcType(),v=o.getSvgLeft(!0);let $=v+h.width-o.getCurrentPaddingByDirection("right");const T=20;let{x:S,y:A}=s;if(f)S+=S>=u/2?15:-(e+15),A+=15;else if(b){if(x!=="touch"){let M=(n=(i=o.getTitlePadding)==null?void 0:i.call(o))!=null?n:0;M&&m&&((a=r.arc_rangeText_values)!=null&&a.length)&&(M+=10),S+=(u-(_?o.getLegendWidth():0))/2,A+=(m?d:d/2+t)+M}}else if(g||p)A+=t;else{const I={top:o.getCurrentPaddingByDirection("top",!0),left:o.getCurrentPaddingByDirection("left",!0)};y?(S+=v+I.left+T,A=I.top+s.xAxis+T,$-=v):(S=v+I.left+T+(l.zoom?S:s.xAxis),A+=I.top-5)}if(S+e+15>$&&(S-=e+(g||p||b?0:y?T*2:38)),A+t>h.height){const I=p?t+10:30;A-=m?t*1.5:t+I}const R={top:A,left:S};return Object.keys(R).forEach(I=>{R[I]<0&&(R[I]=0)}),R},showTooltip(e,t){const s=this,{config:i,$el:{tooltip:n}}=s,a=e.filter(l=>l&&D(s.getBaseValue(l)));if(!n||a.length===0||!i.tooltip_show)return;let o=n.datum();const r=JSON.stringify(e);if(!o||o.current!==r){const{index:l,x:c}=e.concat().sort()[0];Z(i.tooltip_onshow,s.api,e),n.html(s.getTooltipHTML(e,s.axis?s.axis.getXAxisTickFormat():s.categoryName.bind(s),s.getDefaultValueFormat(),s.color)).style("display",null).style("visibility",null).datum(o={index:l,x:c,current:r,width:n.property("offsetWidth"),height:n.property("offsetHeight")}),Z(i.tooltip_onshown,s.api,e),s._handleLinkedCharts(!0,l)}s.setTooltipPosition(a,t)},bindTooltipResizePos(){const e=this,{resizeFunction:t,state:s,$el:{tooltip:i}}=e;t.add(()=>{if(i.style("display")==="block"){const{current:n}=s,{width:a,xPosInPercent:o}=i.datum();let r=n.width/100*o;const l=n.width-(r+a);l<0&&(r+=l),i.style("left",`${r}px`)}})},hideTooltip(e){var t;const s=this,{api:i,config:n,$el:{tooltip:a}}=s;if(a&&a.style("display")!=="none"&&(!n.tooltip_doNotHide||e)){const o=JSON.parse((t=a.datum().current)!=null?t:{});Z(n.tooltip_onhide,i,o),a.style("display","none").style("visibility","hidden").datum(null),Z(n.tooltip_onhidden,i,o)}},_handleLinkedCharts(e,t){const s=this,{charts:i,config:n,state:{event:a}}=s;if(a!=null&&a.isTrusted&&n.tooltip_linked&&i.length>1){const o=n.tooltip_linked_name;i.filter(r=>r!==s.api).forEach(r=>{const{config:l,$el:c}=r.internal,u=l.tooltip_linked,d=l.tooltip_linked_name,h=it.body.contains(c.chart.node());if(u&&o===d&&h){const g=c.tooltip.data()[0],f=t!==(g==null?void 0:g.index);try{r.tooltip[e&&f?"show":"hide"]({index:t})}catch(p){}}})}},updateTooltipOnRedraw(e,t){var s;const i=this,{config:n,$el:{eventRect:a,svg:o,tooltip:r},state:{event:l,hasAxis:c,hasRadar:u,hasTreemap:d}}=i;if((r==null?void 0:r.style("display"))==="block"&&l){const h=e!=null?e:(s=u?o:a)==null?void 0:s.node();if(c||u)if(i.isMultipleX())i.selectRectForMultipleXs(h,!1);else{const g=t!=null?t:i.getDataIndexFromEvent(l);t===-1?i.api.tooltip.hide():(i.selectRectForSingle(h,g),i.setExpand(g,null,!0))}else{const{clientX:g,clientY:f}=l;setTimeout(()=>{let p=it.elementFromPoint(g,f);const _=(0,w.select)(p).datum();if(_){const x=i.hasArcType()?i.convertToArcData(i.updateAngle(_)):_==null?void 0:_.data;d&&(p=o.node()),x&&i.showTooltip([x],p)}else i.api.tooltip.hide()},n.transition_duration)}}}},sa={getTranslate(e,t=0){var s;const i=this,{config:n,state:a}=i,o=n.axis_rotated;let r=0,l,c;if(t&&/^(x|y2?)$/.test(e)&&(r=i.getAxisSize(e)*t),e==="main")l=pe(a.margin.left),c=pe(a.margin.top);else if(e==="context")l=pe(a.margin2.left),c=pe(a.margin2.top);else if(e==="legend")l=a.margin3.left,c=a.margin3.top;else if(e==="x")l=o?-r:0,c=o?0:a.height+r;else if(e==="y")l=o?0:-r,c=o?a.height+r:0;else if(e==="y2")l=o?0:a.width+r,c=o?-r-1:0;else if(e==="subX")l=0,c=o?0:a.height2;else if(e==="arc")l=a.arcWidth/2,c=a.arcHeight/2,(s=n.arc_rangeText_values)!=null&&s.length&&(c+=5+(i.hasType("gauge")&&n.title_text?10:0));else if(e==="polar")l=a.arcWidth/2,c=a.arcHeight/2;else if(e==="radar"){const[u,d]=i.getRadarSize();l=a.width/2-u,c=a.height/2-d}return`translate(${l}, ${c})`},transformMain(e,t){const s=this,{$el:{main:i},$T:n}=s,a=t!=null&&t.axisX?t.axisX:n(i.select(`.${st.axisX}`),e),o=t!=null&&t.axisY?t.axisY:n(i.select(`.${st.axisY}`),e),r=t!=null&&t.axisY2?t.axisY2:n(i.select(`.${st.axisY2}`),e);n(i,e).attr("transform",s.getTranslate("main")),a.attr("transform",s.getTranslate("x")),o.attr("transform",s.getTranslate("y")),r.attr("transform",s.getTranslate("y2")),i.select(`.${N.chartArcs}`).attr("transform",s.getTranslate("arc"))},transformAll(e,t){const s=this,{config:i,state:{hasAxis:n,hasFunnel:a,hasTreemap:o},$el:r}=s;!a&&!o&&s.transformMain(e,t),n&&i.subchart_show&&s.transformContext(e,t),r.legend&&s.transformLegend(e)}},ia={isValidChartType(e){return!!(e&&Object.values(k).indexOf(e)>-1)},setTargetType(e,t){const s=this,{config:i,state:{withoutFadeIn:n}}=s;s.mapToTargetIds(e).forEach(a=>{n[a]=t===i.data_types[a],i.data_types[a]=t}),e||(i.data_type=t)},updateTypesElements(){const e=this,{state:{current:t}}=e;Object.keys(k).forEach(s=>{const i=k[s],n=e.hasType(i,null,!0),a=t.types.indexOf(i);a===-1&&n?t.types.push(i):a>-1&&!n&&t.types.splice(a,1)}),e.setChartElements()},hasType(e,t,s=!1){var i;const n=this,{config:a,state:{current:o}}=n,r=a.data_types,l=t||n.data.targets;let c=!1;return!s&&((i=o.types)==null?void 0:i.indexOf(e))>-1?c=!0:l!=null&&l.length?l.forEach(u=>{const d=r[u.id];(d===e||!d&&e==="line")&&(c=!0)}):Object.keys(r).length?Object.keys(r).forEach(u=>{r[u]===e&&(c=!0)}):c=a.data_type===e,c},hasTypeOf(e,t,s=[]){return e in Pt?!Pt[e].filter(i=>s.indexOf(i)===-1).every(i=>!this.hasType(i,t)):!1},isTypeOf(e,t){var s;const i=G(e)?e:e.id,n=this.config&&(((s=this.config.data_types)==null?void 0:s[i])||this.config.data_type);return B(t)?t.indexOf(n)>=0:n===t},hasPointType(){const e=this;return e.hasTypeOf("Line")||e.hasType("bubble")||e.hasType("scatter")},hasArcType(e,t){return this.hasTypeOf("Arc",e,t)},hasMultiArcGauge(){return this.hasType("gauge")&&this.config.gauge_type==="multi"},isLineType(e){const t=G(e)?e:e.id;return!this.config.data_types[t]||this.isTypeOf(t,Pt.Line)},isStepType(e){return this.isTypeOf(e,Pt.Step)},isSplineType(e){return this.isTypeOf(e,Pt.Spline)},isAreaType(e){return this.isTypeOf(e,Pt.Area)},isAreaRangeType(e){return this.isTypeOf(e,Pt.AreaRange)},isBarType(e){return this.isTypeOf(e,"bar")},isBubbleType(e){return this.isTypeOf(e,"bubble")},isCandlestickType(e){return this.isTypeOf(e,"candlestick")},isScatterType(e){return this.isTypeOf(e,"scatter")},isTreemapType(e){return this.isTypeOf(e,"treemap")},isPieType(e){return this.isTypeOf(e,"pie")},isFunnelType(e){return this.isTypeOf(e,"funnel")},isGaugeType(e){return this.isTypeOf(e,"gauge")},isDonutType(e){return this.isTypeOf(e,"donut")},isPolarType(e){return this.isTypeOf(e,"polar")},isRadarType(e){return this.isTypeOf(e,"radar")},isArcType(e){return this.isPieType(e)||this.isDonutType(e)||this.isGaugeType(e)||this.isPolarType(e)||this.isRadarType(e)},isCirclePoint(e){const{config:t}=this,s=t.point_pattern;let i=!1;return(e==null?void 0:e.tagName)==="circle"?i=!0:i=t.point_type==="circle"&&(!s||B(s)&&s.length===0),i},lineData(e){return this.isLineType(e)?[e]:[]},arcData(e){return this.isArcType(e.data)?[e]:[]},labelishData(e){return this.isBarType(e)||this.isLineType(e)||this.isScatterType(e)||this.isBubbleType(e)||this.isCandlestickType(e)||this.isFunnelType(e)||this.isRadarType(e)||this.isTreemapType(e)?e.values.filter(t=>C(t.value)||!!t.value):[]},barLineBubbleData(e){return this.isBarType(e)||this.isLineType(e)||this.isBubbleType(e)?e.values:[]},isInterpolationType(e){return["basis","basis-closed","basis-open","bundle","cardinal","cardinal-closed","cardinal-open","catmull-rom","catmull-rom-closed","catmull-rom-open","linear","linear-closed","monotone-x","monotone-y","natural"].indexOf(e)>=0}},K=j(9);function na(e){const t=this;let s;return t.isLineType(e)?s=t.generateGetLinePoints(t.getShapeIndices(t.isLineType)):t.isBarType(e)&&(s=t.generateGetBarPoints(t.getShapeIndices(t.isBarType))),s}var aa={getDrawShape(){const e=this,t=e.config.axis_rotated,{hasRadar:s,hasTreemap:i}=e.state,n={type:{},indices:{},pos:{}};if(!i&&["bar","candlestick","line","area"].forEach(a=>{const o=gt(/^(bubble|scatter)$/.test(a)?"line":a);if(e.hasType(a)||e.hasTypeOf(o)||a==="line"&&(e.hasType("bubble")||e.hasType("scatter"))){const r=e.getShapeIndices(e[`is${o}Type`]),l=e[`generateDraw${o}`];n.indices[a]=r,n.type[a]=l?l.bind(e)(r,!1):void 0}}),!e.hasArcType()||s||i){let a,o;i||(a=s?e.radarCircleX:t?e.circleY:e.circleX,o=s?e.radarCircleY:t?e.circleX:e.circleY),n.pos={xForText:e.generateXYForText(n.indices,!0),yForText:e.generateXYForText(n.indices,!1),cx:(a||function(){}).bind(e),cy:(o||function(){}).bind(e)}}return n},getShapeIndices(e){const t=this,{config:s}=t,i=s.data_xs,n=et(i),a={};let o=n?{}:0;return n&&Le(Object.keys(i).map(r=>i[r])).forEach(r=>{o[r]=0,a[r]={}}),t.filterTargetsToShow(t.data.targets.filter(e,t)).forEach(r=>{var l;const c=r.id in i?i[r.id]:"",u=c?a[c]:a;for(let d=0,h;h=s.data_groups[d];d++)if(!(h.indexOf(r.id)<0))for(let g=0,f;f=h[g];g++){if(f in u){u[r.id]=u[f];break}r.id!==f&&c&&(u[f]=(l=u[r.id])!=null?l:o[c])}tt(u[r.id])&&(u[r.id]=c?o[c]++:o++,u.__max__=(c?o[c]:o)-1)}),a},getIndices(e,t,s){const i=this,{data_xs:n,bar_indices_removeNull:a}=i.config,{id:o,index:r}=t;if(i.isBarType(o)&&a){const l={};return i.getAllValuesOnIndex(r,!0).forEach((c,u)=>{l[c.id]=u,l.__max__=u}),l}return et(n)?e[n[o]]:e},getIndicesMax(e){return et(this.config.data_xs)?Object.keys(e).map(t=>e[t].__max__||0).reduce((t,s)=>t+s):e.__max__},getShapeX(e,t,s){const i=this,{config:n,scale:a}=i,o=s?a.subX:a.zoom||a.x,r=n.bar_overlap,l=n.bar_padding,c=(d,h)=>d+h,u=Tt(e)&&(e._$total.length?e._$total.reduce(c)/2:0);return d=>{const h=i.getIndices(t,d,"getShapeX"),g=d.id in h?h[d.id]:0,f=(h.__max__||0)+1;let p=0;if(et(d.x)){const _=o(d.x,!0);if(u){const x=e[d.id]||e._$width;p=r?_-x/2:_-x+e._$total.slice(0,g+1).reduce(c)-u}else p=_-(C(e)?e:e._$width)*(f/2-(r?1:g))}return e&&p&&f>1&&l&&(g&&(p+=l*g),f>2?p-=(f-1)*l/2:f===2&&(p-=l/2)),p}},getShapeY(e){const t=this,s=t.isStackNormalized();return i=>{let{value:n}=i;return C(i)?n=i:t.isAreaRangeType(i)?n=t.getBaseValue(i,"mid"):s?n=t.getRatio("index",i,!0):t.isBubbleZType(i)?n=t.getBubbleZData(i.value,"y"):t.isBarRangeType(i)&&(n=n[1]),t.getYScaleById(i.id,e)(n)}},getShapeYMin(e){const t=this,s=t.axis.getId(e),i=t.scale[s],[n]=i.domain(),a=t.config[`axis_${s}_inverted`];return!t.isGrouped(e)&&!a&&n>0?n:0},getShapeOffsetData(e){const t=this,s=t.orderTargets(t.filterTargetsToShow(t.data.targets.filter(e,t))),i=t.isStackNormalized(),n=s.map(o=>{let r=o.values;const l={};t.isStepType(o)&&(r=t.convertValuesToStep(r));const c=r.reduce((u,d)=>{const h=Number(d.x);return u[h]=d,l[h]=i?t.getRatio("index",d,!0):d.value,u},{});return{id:o.id,rowValues:r,rowValueMapByXValue:c,values:l}});return{indexMapByTargetId:s.reduce((o,{id:r},l)=>(o[r]=l,o),{}),shapeOffsetTargets:n}},getShapeOffset(e,t,s){const i=this,{shapeOffsetTargets:n,indexMapByTargetId:a}=i.getShapeOffsetData(e),o=i.config.data_groupsZeroAs;return(r,l)=>{const{id:c,value:u,x:d}=r,h=i.getIndices(t,r),g=i.getYScaleById(c,s);if(i.isBarRangeType(r))return g(u[0]);const f=Number(d),p=g(o==="zero"?0:i.getShapeYMin(c));let _=p;return n.filter(x=>x.id!==c&&h[x.id]===h[c]).forEach(x=>{const{id:m,rowValueMapByXValue:y,rowValues:b,values:v}=x;if(a[m]<a[c]){const $=v[f];let T=b[l];(!T||Number(T.x)!==f)&&(T=y[f]),(T==null?void 0:T.value)*u>=0&&C($)&&(u!==0||o==="positive"&&$>0||o==="negative"&&$<0)&&(_+=g($)-p)}}),_}},circleY(e,t){const s=this,i=e.id;let n;return s.isGrouped(i)&&(n=na.bind(s)(e)),n?n(e,t)[0][1]:s.getYScaleById(i)(s.getBaseValue(e))},getBarW(e,t,s){var i,n,a,o,r;const l=this,{config:c,org:u,scale:d}=l,h=l.getMaxDataCount(),g=e==="bar"&&((i=c.data_groups)==null?void 0:i.length),f=`${e}_width`,{k:p}=(a=(n=l.getZoomTransform)==null?void 0:n.call(l))!=null?a:{k:1},_=[(o=c.axis_x_min)!=null?o:u.xDomain[0],(r=c.axis_x_max)!=null?r:u.xDomain[1]].map(l.axis.isTimeSeries()?_t.bind(l):Number);let x=t.tickInterval(h);if(d.zoom&&!l.axis.isCategorized()&&p>1){const b=_.every((v,$)=>v===u.xDomain[$]);x=u.xDomain.map((v,$)=>{const T=b?v:v-Math.abs(_[$]);return d.zoom(T)}).reduce((v,$)=>Math.abs(v)+$)/h}const m=b=>{const v=b?c[f][b]:c[f],$=b?v.ratio:c[`${f}_ratio`],T=b?v.max:c[`${f}_max`],S=C(v)?v:s?x*$/s:0;return T&&S>T?T:S};let y=m();return!g&&Tt(c[f])&&(y={_$width:y,_$total:[]},l.filterTargetsToShow(l.data.targets).forEach(b=>{c[f][b.id]&&(y[b.id]=m(b.id),y._$total.push(y[b.id]||y._$width))})),y},getShapeByIndex(e,t,s){const i=this,{$el:n}=i,a=D(t)?`-${t}`:"";let o=n[e];return o&&!o.empty()?o=o.filter(r=>s?r.id===s:!0).filter(r=>D(t)?r.index===t:!0):o=(s?n.main.selectAll(`.${X[`${e}s`]}${i.getTargetSelectorSuffix(s)}`):n.main).selectAll(`.${X[e]}${a}`),o},isWithinShape(e,t){var s;const i=this,n=(0,w.select)(e);let a;return i.isTargetToShow(t.id)?(s=i.hasValidPointType)!=null&&s.call(i,e.nodeName)?a=i.isStepType(t)?i.isWithinStep(e,i.getYScaleById(t.id)(t.value)):i.isWithinCircle(e,i.isBubbleType(t)?i.pointSelectR(t)*1.5:0):e.nodeName==="path"&&(a=n.classed(X.bar)?i.isWithinBar(e):!0):a=!1,a},getInterpolate(e){const s=this.getInterpolateType(e);return{basis:K.curveBasis,"basis-closed":K.curveBasisClosed,"basis-open":K.curveBasisOpen,bundle:K.curveBundle,cardinal:K.curveCardinal,"cardinal-closed":K.curveCardinalClosed,"cardinal-open":K.curveCardinalOpen,"catmull-rom":K.curveCatmullRom,"catmull-rom-closed":K.curveCatmullRomClosed,"catmull-rom-open":K.curveCatmullRomOpen,"monotone-x":K.curveMonotoneX,"monotone-y":K.curveMonotoneY,natural:K.curveNatural,"linear-closed":K.curveLinearClosed,linear:K.curveLinear,step:K.curveStep,"step-after":K.curveStepAfter,"step-before":K.curveStepBefore}[s]},getInterpolateType(e){const t=this,{config:s}=t,i=s.spline_interpolation_type,n=t.isInterpolationType(i)?i:"cardinal";return t.isSplineType(e)?n:t.isStepType(e)?s.line_step_type:"linear"},isWithinBar(e){const t=mt(this.state.event,e),s=ns(e),[i,n]=s,a=Math.min(i.x,n.x),o=Math.min(i.y,n.y),r=this.config.bar_sensitivity,{width:l,height:c}=e.getBBox(),u=a-r,d=a+l+r,h=o+c+r,g=o-r;return u<t[0]&&t[0]<d&&g<t[1]&&t[1]<h}},oa=Object.defineProperty,ra=(e,t,s)=>t in e?oa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,dt=(e,t,s)=>(ra(e,typeof t!="symbol"?t+"":t,s),s);class Vt{constructor(t){dt(this,"api"),dt(this,"config"),dt(this,"cache"),dt(this,"$el"),dt(this,"state"),dt(this,"charts"),dt(this,"data",{xs:{},targets:[]}),dt(this,"axis"),dt(this,"scale",{x:null,y:null,y2:null,subX:null,subY:null,subY2:null,zoom:null}),dt(this,"org",{xScale:null,xDomain:null}),dt(this,"color"),dt(this,"patterns"),dt(this,"levelColor"),dt(this,"point"),dt(this,"brush"),dt(this,"format",{extraLineClasses:null,xAxisTick:null,dataTime:null,defaultAxisTime:null,axisTime:null});const s=this;s.api=t,s.config=new Nt,s.cache=new vn;const i=new mn;s.$el=i.getStore("element"),s.state=i.getStore("state"),s.$T=s.$T.bind(s)}$T(t,s,i){const{config:n,state:a}=this,o=n.transition_duration,r=n.subchart_show;let l=t;return l&&("tagName"in l&&(l=(0,w.select)(l)),l=(s!==!1&&o||s)&&(!a.zooming||a.dragging)&&!a.resizing&&a.rendered&&!r?l.transition(i).duration(o):l),l}beforeInit(){const t=this;t.callPluginHook("$beforeInit"),Z(t.config.onbeforeinit,t.api)}afterInit(){const t=this;t.callPluginHook("$afterInit"),Z(t.config.onafterinit,t.api)}init(){const t=this,{config:s,state:i,$el:n}=t,a=s.boost_useCssRule;if(Tn(t),i.hasRadar=!i.hasAxis&&t.hasType("radar"),i.hasFunnel=!i.hasAxis&&t.hasType("funnel"),i.hasTreemap=!i.hasAxis&&t.hasType("treemap"),i.hasAxis=!t.hasArcType()&&!i.hasFunnel&&!i.hasTreemap,i.datetimeId=`bb-${+new Date*Rt()}`,a){const r=it.createElement("style");r.type="text/css",it.head.appendChild(r),i.style={rootSelctor:`.${i.datetimeId}`,sheet:r.sheet},n.style=r}const o={element:s.bindto,classname:"bb"};F(s.bindto)&&(o.element=s.bindto.element||"#chart",o.classname=s.bindto.classname||o.classname),n.chart=E(o.element.node)?s.bindto.element:(0,w.select)(o.element||[]),n.chart.empty()&&(n.chart=(0,w.select)(it.body.appendChild(it.createElement("div")))),n.chart.html("").classed(o.classname,!0).classed(i.datetimeId,a).style("position","relative"),t.initParams(),t.initToRender()}initToRender(t){const s=this,{config:i,state:n,$el:{chart:a}}=s,o=()=>a.style("display")==="none"||a.style("visibility")==="hidden",r=i.render.lazy||o(),l=U.MutationObserver;r&&l&&i.render.observe!==!1&&!t&&new l((c,u)=>{o()||(u.disconnect(),!n.rendered&&s.initToRender(!0))}).observe(a.node(),{attributes:!0,attributeFilter:["class","style"]}),(!r||t)&&s.convertData(i,c=>{s.initWithData(c),s.afterInit()})}initParams(){var t;const s=this,{config:i,format:n,state:a}=s,o=i.axis_rotated;if(s.color=s.generateColor(),s.levelColor=s.generateLevelColor(),i.padding===!1&&(i.axis_x_show=!1,i.axis_y_show=!1,i.axis_y2_show=!1,i.subchart_show=!1),(s.hasPointType()||(t=s.hasLegendDefsPoint)!=null&&t.call(s))&&(s.point=s.generatePoint()),a.hasAxis){s.initClip(),n.extraLineClasses=s.generateExtraLineClass(),n.dataTime=i.data_xLocaltime?ue.timeParse:ue.utcParse,n.axisTime=i.axis_x_localtime?ue.timeFormat:ue.utcFormat;const r=s.config.zoom_enabled&&s.config.zoom_type==="drag";n.defaultAxisTime=l=>{const{x:c,zoom:u}=s.scale,d=r?u:u&&c.orgDomain().toString()!==u.domain().toString(),h=l.getMilliseconds()&&".%L"||l.getSeconds()&&".:%S"||l.getMinutes()&&"%I:%M"||l.getHours()&&"%I %p"||l.getDate()!==1&&"%b %d"||d&&l.getDate()===1&&"%b'%y"||l.getMonth()&&"%-m/%-d"||"%Y";return n.axisTime(h)(l)}}a.isLegendRight=i.legend_position==="right",a.isLegendInset=i.legend_position==="inset",a.isLegendTop=i.legend_inset_anchor==="top-left"||i.legend_inset_anchor==="top-right",a.isLegendLeft=i.legend_inset_anchor==="top-left"||i.legend_inset_anchor==="bottom-left",a.rotatedPadding.top=s.getResettedPadding(a.rotatedPadding.top),a.rotatedPadding.right=o&&!i.axis_x_show?0:30,a.inputType=un(i.interaction_inputType_mouse,i.interaction_inputType_touch)}initWithData(t){var s,i,n;const a=this,{config:o,scale:r,state:l,$el:c,org:u}=a,{hasAxis:d,hasFunnel:h,hasTreemap:g}=l,f=o.interaction_enabled,p=a.hasType("polar"),_=o.data_labels_backgroundColors;if(d&&(a.axis=a.getAxisInstance(),o.zoom_enabled&&a.initZoom()),a.data.xs={},a.data.targets=a.convertDataToTargets(t),o.data_filter&&(a.data.targets=a.data.targets.filter(o.data_filter.bind(a.api))),o.data_hide&&a.addHiddenTargetIds(o.data_hide===!0?a.mapToIds(a.data.targets):o.data_hide),o.legend_hide&&a.addHiddenLegendIds(o.legend_hide===!0?a.mapToIds(a.data.targets):o.legend_hide),a.updateSizes(),a.updateScales(!0),d){const{x:y,y:b,y2:v,subX:$,subY:T,subY2:S}=r;y&&(y.domain(Zt(a.getXDomain(a.data.targets),!o.axis_x_inverted)),$.domain(y.domain()),u.xDomain=y.domain()),b&&(b.domain(a.getYDomain(a.data.targets,"y")),T.domain(b.domain())),v&&(v.domain(a.getYDomain(a.data.targets,"y2")),S&&S.domain(v.domain()))}if(c.svg=c.chart.append("svg").style("overflow","hidden").style("display","block"),f&&l.inputType){const y=l.inputType==="touch",{onclick:b,onover:v,onout:$}=o;c.svg.on("click",(b==null?void 0:b.bind(a.api))||null).on(y?"touchstart":"mouseenter",(v==null?void 0:v.bind(a.api))||null).on(y?"touchend":"mouseleave",($==null?void 0:$.bind(a.api))||null)}o.svg_classname&&c.svg.attr("class",o.svg_classname);const x=E(o.color_tiles)&&a.patterns;(d||x||p||g||_||(s=a.hasLegendDefsPoint)!=null&&s.call(a))&&(c.defs=c.svg.append("defs"),d&&["id","idXAxis","idYAxis","idGrid"].forEach(y=>{a.appendClip(c.defs,l.clip[y])}),a.generateTextBGColorFilter(_),x&&a.patterns.forEach(y=>c.defs.append(()=>y.node))),a.updateSvgSize(),a.bindResize();const m=c.svg.append("g").classed(O.main,!0).attr("transform",h||g?null:a.getTranslate("main"));if(c.main=m,o.subchart_show&&a.initSubchart(),o.tooltip_show&&a.initTooltip(),o.title_text&&a.initTitle(),!g&&o.legend_show&&a.initLegend(),o.data_empty_label_text&&m.append("text").attr("class",`${ut.text} ${O.empty}`).attr("text-anchor","middle").attr("dominant-baseline","middle"),d&&(o.regions.length&&a.initRegion(),!o.clipPath&&a.axis.init()),m.append("g").classed(O.chart,!0).attr("clip-path",d?l.clip.path:null),a.callPluginHook("$init"),a.initChartElements(),d&&(f&&((i=a.initEventRect)==null||i.call(a)),a.initGrid(),o.clipPath&&((n=a.axis)==null||n.init())),a.updateTargets(a.data.targets),a.updateDimension(),Z(o.oninit,a.api),a.setBackground(),a.redraw({withTransition:!1,withTransform:!0,withUpdateXDomain:!0,withUpdateOrgXDomain:!0,withTransitionForAxis:!1,initializing:!0}),o.data_onmin||o.data_onmax){const y=a.getMinMaxData();Z(o.data_onmin,a.api,y.min),Z(o.data_onmax,a.api,y.max)}o.tooltip_show&&a.initShowTooltip(),l.rendered=!0}initChartElements(){const t=this,{hasAxis:s,hasRadar:i,hasTreemap:n}=t.state,a=[];if(s){const o=["bar","bubble","candlestick","line"];t.config.bar_front&&o.push(o.shift()),o.forEach(r=>{const l=gt(r);(r==="line"&&t.hasTypeOf(l)||t.hasType(r))&&a.push(l)})}else if(n)a.push("Treemap");else if(t.hasType("funnel"))a.push("Funnel");else{const o=t.hasType("polar");i||a.push("Arc","Pie"),t.hasType("gauge")?a.push("Gauge"):i?a.push("Radar"):o&&a.push("Polar")}a.forEach(o=>{t[`init${o}`]()}),et(t.config.data_labels)&&!t.hasArcType(null,["radar"])&&t.initText()}setChartElements(){const t=this,{$el:{chart:s,svg:i,defs:n,main:a,tooltip:o,legend:r,title:l,grid:c,needle:u,arcs:d,circle:h,bar:g,candlestick:f,line:p,area:_,text:x}}=t;t.api.$={chart:s,svg:i,defs:n,main:a,tooltip:o,legend:r,title:l,grid:c,arc:d,circles:h,bar:{bars:g},candlestick:f,line:{lines:p,areas:_},needle:u,text:{texts:x}}}setBackground(){const t=this,{config:{background:s},state:i,$el:{svg:n}}=t;if(et(s)){const a=n.select("g").insert(s.imgUrl?"image":"rect",":first-child");s.imgUrl?a.attr("href",s.imgUrl):s.color&&a.style("fill",s.color).attr("clip-path",i.clip.path),a.attr("class",s.class||null).attr("width","100%").attr("height","100%")}}updateTargets(t){var s;const i=this,{hasAxis:n,hasFunnel:a,hasRadar:o,hasTreemap:r}=i.state,l=u=>i[`updateTargetsFor${u}`](t.filter(i[`is${u}Type`].bind(i)));if(i.updateTargetsForText(t),n)["bar","candlestick","line"].forEach(u=>{const d=gt(u);(u==="line"&&i.hasTypeOf(d)||i.hasType(u))&&l(d)}),i.updateTargetsForSubchart&&i.updateTargetsForSubchart(t);else if(i.hasArcType(t)){let u="Arc";o?u="Radar":i.hasType("polar")&&(u="Polar"),l(u)}else a?l("Funnel"):r&&l("Treemap");const c=i.hasType("bubble")||i.hasType("scatter");c&&((s=i.updateTargetForCircle)==null||s.call(i)),i.filterTargetsToShowAtInit(c)}filterTargetsToShowAtInit(t=!1){const s=this,{$el:{svg:i},$T:n}=s;let a=`.${O.target}`;t&&(a+=`, .${ct.chartCircles} > .${ct.circles}`),n(i.selectAll(a).filter(o=>s.isTargetToShow(o.id))).style("opacity",null)}getWithOption(t){const s={Dimension:!0,EventRect:!0,Legend:!1,Subchart:!0,Transform:!1,Transition:!0,TrimXDomain:!0,UpdateXAxis:"UpdateXDomain",UpdateXDomain:!1,UpdateOrgXDomain:!1,TransitionForExit:"Transition",TransitionForAxis:"Transition",Y:!0};return Object.keys(s).forEach(i=>{let n=s[i];G(n)&&(n=s[n]),s[i]=Lt(t,`with${i}`,n)}),s}initialOpacity(t){const s=this,{withoutFadeIn:i}=s.state;return s.getBaseValue(t)!==null&&i[t.id]?null:"0"}bindResize(){const t=this,{config:s,state:i}=t,n=Rn(s.resize_timer),a=[];a.push(()=>Z(s.onresize,t.api)),s.resize_auto&&a.push(()=>{i.resizing=!0,s.legend_show&&(t.updateSizes(),t.updateLegend()),t.api.flush(!1)}),a.push(()=>{Z(s.onresized,t.api),i.resizing=!1}),a.forEach(o=>n.add(o)),t.resizeFunction=n,U.addEventListener("resize",t.resizeFunction=n)}callPluginHook(t,...s){this.config.plugins.forEach(i=>{t==="$beforeInit"&&(i.$$=this,this.api.plugins.push(i)),i[t](...s)})}}nt(Vt.prototype,[On,In,Dn,Fn,Mn,Gn,Vn,zn,Yn,jn,Wn,Un,aa,Zn,qn,Qn,ta,ea,sa,ia]);function la(e){const t=this.config;let s,i,n;const a=()=>{const o=i.shift();if(o&&s&&Tt(s)&&o in s)return s=s[o],a();if(!o)return s};Object.keys(t).forEach(o=>{s=e,i=o.split("_"),n=a(),Y(n)&&(t[o]=n)}),this.api&&(this.state.orgConfig=e)}var ca={resize(e){const t=this.internal,{config:s,state:i}=t;i.rendered&&(s.size_width=e?e.width:null,s.size_height=e?e.height:null,i.resizing=!0,this.flush(!1),t.resizeFunction())},flush(e){var t,s;const i=this.internal,{state:n,$el:{zoomResetBtn:a}}=i;n.rendered?(n.resizing?(t=i.brush)==null||t.updateResize():(s=i.axis)==null||s.setOrient(),a==null||a.style("display","none"),i.scale.zoom=null,e?i.redraw({withTransform:!0,withUpdateXDomain:!0,withUpdateOrgXDomain:!0,withLegend:!0}):i.updateAndRedraw({withLegend:!0,withTransition:!1,withTransitionForTransform:!1}),!n.resizing&&i.brush&&(i.brush.getSelection().call(i.brush.move),i.unselectRect())):i.initToRender(!0)},destroy(){const e=this.internal,{$el:{chart:t,style:s,svg:i}}=e;if(et(e)){e.callPluginHook("$willDestroy"),e.charts.splice(e.charts.indexOf(this),1),e.unbindAllEvents(),i.select("*").interrupt(),e.resizeFunction.clear(),U.removeEventListener("resize",e.resizeFunction),t.classed("bb",!1).style("position",null).selectChildren().remove(),s&&s.parentNode.removeChild(s),Object.keys(this).forEach(n=>{n==="internal"&&Object.keys(e).forEach(a=>{e[a]=null}),this[n]=null,delete this[n]});for(const n in this)this[n]=()=>{}}return null},config(e,t,s){const i=this.internal,{config:n,state:a}=i,o=e==null?void 0:e.replace(/\./g,"_");let r;return e&&o in n?Y(t)?(n[o]=t,r=t,s&&this.flush()):r=n[o]:(arguments.length===0||bt(e))&&(r=a.orgConfig),r}},da={color(e){return this.internal.color(e)}};const As=function(e){const{targets:t}=this.internal.data;if(!tt(e)){const s=B(e)?e:[e];return t.filter(i=>s.some(n=>n===i.id))}return t};nt(As,{shown:function(e){return this.internal.filterTargetsToShow(this.data(e))},values:function(e,t=!0){let s=null;if(e){const i=this.data(e);B(i)&&(s=[],i.forEach(n=>{const a=n.values.map(o=>o.value);t?s=s.concat(a):s.push(a)}))}return s},names:function(e){return this.internal.updateDataAttributes("names",e)},colors:function(e){return this.internal.updateDataAttributes("colors",e)},axes:function(e){return this.internal.updateDataAttributes("axes",e)},min:function(){return this.internal.getMinMaxData().min},max:function(){return this.internal.getMinMaxData().max}});var ua={data:As};const ha=e=>{var t,s;return(s=(t=U).btoa)==null?void 0:s.call(t,encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(i,n)=>String.fromCharCode(+`0x${n}`)))};function ga(e,t,s){const{width:i,height:n}=t||s,a=new XMLSerializer,o=e.cloneNode(!0),r=cn(Bt(it.styleSheets)).filter(h=>h.cssText).map(h=>h.cssText);o.setAttribute("xmlns",w.namespaces.xhtml),o.style.margin="0",o.style.padding="0",t.preserveFontStyle&&o.querySelectorAll("text").forEach(h=>{h.innerHTML=""});const l=a.serializeToString(o),c=it.createElement("style");c.appendChild(it.createTextNode(r.join(` +`)));const u=a.serializeToString(c),d=`<svg xmlns="${w.namespaces.svg}" width="${i}" height="${n}" + viewBox="0 0 ${s.width} ${s.height}" + preserveAspectRatio="${(t==null?void 0:t.preserveAspectRatio)===!1?"none":"xMinYMid meet"}"> + <foreignObject width="100%" height="100%"> + ${u} + ${l.replace(/(url\()[^#]+/g,"$1")} + </foreignObject></svg>`;return`data:image/svg+xml;base64,${ha(d)}`}function fa(e,t){const{top:s,left:i}=t,{x:n,y:a}=e.getBBox(),{a:o,b:r,c:l,d:c,e:u,f:d}=e.getScreenCTM(),{width:h,height:g}=e.getBoundingClientRect();return{x:o*n+l*a+u-i,y:r*n+c*a+d-s+(g-Math.round(g/4)),width:h,height:g}}function pa(e){const{left:t,top:s}=e.getBoundingClientRect(),i=a=>a.textContent||a.childElementCount,n=[];return Bt(e.querySelectorAll("text")).filter(i).forEach(a=>{const o=r=>{const{fill:l,fontFamily:c,fontSize:u,textAnchor:d,transform:h}=U.getComputedStyle(r),{x:g,y:f,width:p,height:_}=fa(r,{left:t,top:s});return{[r.textContent]:{x:g,y:f,width:p,height:_,fill:l,fontFamily:c,fontSize:u,textAnchor:d,transform:h}}};if(a.childElementCount>1){const r=[];return Bt(a.querySelectorAll("tspan")).filter(i).forEach(l=>{n.push(o(l))}),r}else n.push(o(a))}),n}function xa(e,t){t.forEach(s=>{Object.keys(s).forEach(i=>{const{x:n,y:a,width:o,height:r,fill:l,fontFamily:c,fontSize:u,transform:d}=s[i];if(e.save(),e.font=`${u} ${c}`,e.fillStyle=l,d==="none")e.fillText(i,n,a);else{const h=d.replace(/(matrix|\(|\))/g,"").split(",");h.splice(4).every(g=>+g==0)?(h.push(n+o-o/4),h.push(a-r+r/3)):(h.push(n),h.push(a)),e.transform(...h),e.fillText(i,0,0)}e.restore()})})}var _a={export(e,t){const s=this.internal,{state:i,$el:{chart:n,svg:a}}=s,{width:o,height:r}=i.current,l=Ut({width:o,height:r,preserveAspectRatio:!0,preserveFontStyle:!1,mimeType:"image/png"},e),c=ga(n.node(),l,{width:o,height:r}),u=l.preserveFontStyle?pa(a.node()):[];if(t&&E(t)){const d=new Image;d.crossOrigin="Anonymous",d.onload=()=>{const h=it.createElement("canvas"),g=h.getContext("2d");h.width=l.width||o,h.height=l.height||r,g.drawImage(d,0,0),u.length&&(xa(g,u),u.length=0),t.bind(this)(h.toDataURL(l.mimeType))},d.src=c}return c}},ma={focus(e){const t=this.internal,{state:s}=t,i=t.mapToTargetIds(e),n=t.$el.svg.selectAll(t.selectorTargets(i.filter(t.isTargetToShow,t)));this.revert(),this.defocus(),n.classed(W.focused,!0).classed(W.defocused,!1),t.hasArcType()&&!s.hasRadar&&(t.expandArc(i),t.hasType("gauge")&&t.markOverlapped(e,t,`.${xt.gaugeValue}`)),t.toggleFocusLegend(i,!0),s.focusedTargetIds=i,s.defocusedTargetIds=s.defocusedTargetIds.filter(a=>i.indexOf(a)<0)},defocus(e){const t=this.internal,{state:s}=t,i=t.mapToTargetIds(e);t.$el.svg.selectAll(t.selectorTargets(i.filter(t.isTargetToShow,t))).classed(W.focused,!1).classed(W.defocused,!0),t.hasArcType(null,["polar"])&&(t.unexpandArc(i),t.hasType("gauge")&&t.undoMarkOverlapped(t,`.${xt.gaugeValue}`)),t.toggleFocusLegend(i,!1),s.focusedTargetIds=s.focusedTargetIds.filter(a=>i.indexOf(a)<0),s.defocusedTargetIds=i},revert(e){const t=this.internal,{config:s,state:i,$el:n}=t,a=t.mapToTargetIds(e);n.svg.selectAll(t.selectorTargets(a)).classed(W.focused,!1).classed(W.defocused,!1),t.hasArcType(null,["polar"])&&t.unexpandArc(a),s.legend_show&&(t.showLegend(a.filter(t.isLegendToShow.bind(t))),n.legend.selectAll(t.selectorLegends(a)).filter(function(){return(0,w.select)(this).classed(W.legendItemFocused)}).classed(W.legendItemFocused,!1)),i.focusedTargetIds=[],i.defocusedTargetIds=[]}},$a={legend:{show:function(e){const t=this.internal;t.showLegend(t.mapToTargetIds(e)),t.updateAndRedraw({withLegend:!0})},hide:function(e){const t=this.internal;t.hideLegend(t.mapToTargetIds(e)),t.updateAndRedraw({withLegend:!0})}}},ya={load(e){const t=this.internal,{config:s}=t;e.xs&&t.addXs(e.xs),"names"in e&&this.data.names(e.names),"classes"in e&&Object.keys(e.classes).forEach(i=>{s.data_classes[i]=e.classes[i]}),"categories"in e&&t.axis.isCategorized()&&(s.axis_x_categories=e.categories),"axes"in e&&Object.keys(e.axes).forEach(i=>{s.data_axes[i]=e.axes[i]}),"colors"in e&&Object.keys(e.colors).forEach(i=>{s.data_colors[i]=e.colors[i]}),"unload"in e&&e.unload!==!1?t.unload(t.mapToTargetIds(e.unload===!0?null:e.unload),()=>{ts(()=>t.loadFromArgs(e))}):t.loadFromArgs(e)},unload(e){const t=this.internal;let s=e||{};bt(s)&&this.tooltip.hide(),B(s)?s={ids:s}:G(s)&&(s={ids:[s]});const i=t.mapToTargetIds(s.ids);t.unload(i,()=>{t.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0}),t.cache.remove(i),$s.call(t,s.done,s.resizeAfter)})}};function ws(e,t,s){const i=this.internal,n=i.mapToTargetIds(t),a=i.state.hiddenTargetIds.map(l=>n.indexOf(l)>-1&&l).filter(Boolean);i.state.toggling=!0,i[`${e?"remove":"add"}HiddenTargetIds`](n);const o=i.$el.svg.selectAll(i.selectorTargets(n)),r=e?null:"0";e&&a.length&&(o.style("display",null),Z(i.config.data_onshown,this,a)),i.$T(o).style("opacity",r,"important").call(xe,()=>{!e&&a.length===0&&(o.style("display","none"),Z(i.config.data_onhidden,this,n)),o.style("opacity",r)}),s.withLegend&&i[`${e?"show":"hide"}Legend`](n),i.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0}),i.state.toggling=!1}var ba={show(e,t={}){ws.call(this,!0,e,t)},hide(e,t={}){ws.call(this,!1,e,t)},toggle(e,t={}){const s=this.internal,i={show:[],hide:[]};s.mapToTargetIds(e).forEach(n=>i[s.isTargetToShow(n)?"hide":"show"].push(n)),i.show.length&&this.show(i.show,t),i.hide.length&&setTimeout(()=>this.hide(i.hide,t),0)}},va={tooltip:{show:function(e){var t,s,i;const n=this.internal,{$el:a,config:o,state:{eventReceiver:r,hasFunnel:l,hasTreemap:c,inputType:u}}=n;let d,h;if(e.mouse&&(h=e.mouse),e.data){const{data:g}=e,f=(t=n.getYScaleById(g.id))==null?void 0:t(g.value);if((l||c)&&g.id){const p=n.selectorTarget(g.id,void 0,`.${Q.shape}`);r.rect=a.main.select(p)}else n.isMultipleX()?h=[n.xx(g),f]:(o.tooltip_grouped||(h=[0,f]),d=(i=g.index)!=null?i:n.hasArcType()&&g.id?(s=n.getArcElementByIdOrIndex(g.id))==null?void 0:s.datum().index:n.getIndexByX(g.x))}else Y(e.x)?d=n.getIndexByX(e.x):Y(e.index)&&(d=e.index);(u==="mouse"?["mouseover","mousemove"]:["touchstart"]).forEach(g=>{n.dispatchEvent(g,d,h)})},hide:function(){var e,t,s;const i=this.internal,{state:{inputType:n},$el:{tooltip:a}}=i,o=a==null?void 0:a.datum();if(o){const{index:r}=JSON.parse(o.current)[0];(n==="mouse"?["mouseout"]:["touchend"]).forEach(l=>{i.dispatchEvent(l,r)})}n==="touch"&&i.callOverOutForTouch(),i.hideTooltip(!0),(e=i.hideGridFocus)==null||e.call(i),(t=i.unexpandCircles)==null||t.call(i),(s=i.expandBarTypeShapes)==null||s.call(i,!1)}}},Ta=Object.defineProperty,Aa=(e,t,s)=>t in e?Ta(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Ss=(e,t,s)=>(Aa(e,typeof t!="symbol"?t+"":t,s),s);class It{constructor(t){Ss(this,"plugins",[]),Ss(this,"internal");const s=new Vt(this);this.internal=s,function i(n,a,o){Object.keys(n).forEach(r=>{const l=E(n[r]),c=a!==o,u=et(n[r]),d=u&&Object.keys(n[r]).length>0;l&&(!c&&d||c)?a[r]=n[r].bind(o):u&&!l?a[r]={}:a[r]=n[r],d&&i(n[r],a[r],o)})}(It.prototype,this,this),la.call(s,t),s.beforeInit(),s.init()}}nt(It.prototype,[ca,da,ua,_a,ma,$a,ya,ba,va]);function Rs(e=!1,t,s,i){const n=this,{config:a,$el:{main:o}}=n,r=a.data_selection_grouped,l=a.data_selection_isselectable.bind(n.api);a.data_selection_enabled&&o.selectAll(`.${Q.shapes}`).selectAll(`.${Q.shape}`).each(function(c){const u=(0,w.select)(this),{id:d,index:h}=c.data?c.data:c,g=n.getToggle(this,c).bind(n),f=r||!t||t.indexOf(d)>=0,p=!s||s.indexOf(h)>=0,_=u.classed(q.SELECTED);u.classed(St.line)||u.classed(he.area)||(e?f&&p&&l(c)&&!_?g(!0,u.classed(q.SELECTED,!0),c,h):Y(i)&&i&&_&&g(!1,u.classed(q.SELECTED,!1),c,h):f&&p&&l(c)&&_&&g(!1,u.classed(q.SELECTED,!1),c,h))})}var wa={selected(e){const t=this.internal,s=[];return t.$el.main.selectAll(`.${Q.shapes+t.getTargetSelectorSuffix(e)}`).selectAll(`.${Q.shape}`).filter(function(){return(0,w.select)(this).classed(q.SELECTED)}).each(i=>s.push(i)),s},select(e,t,s){const i=this.internal;Rs.bind(i)(!0,e,t,s)},unselect(e,t){const s=this.internal;Rs.bind(s)(!1,e,t)}};const Cs=function(e){var t;const s=this.internal,{axis:i,brush:n,config:a,scale:{x:o,subX:r},state:l}=s;let c;return a.subchart_show&&(c=e,Array.isArray(c)?(i.isTimeSeries()&&(c=c.map(d=>_t.bind(s)(d))),s.withinRange(c,s.getZoomDomain("subX",!0),s.getZoomDomain("subX"))&&(l.domain=c,n.move(n.getSelection(),c.map(r)))):c=(t=l.domain)!=null?t:o.orgDomain()),c};nt(Cs,{show(){var e,t;const s=this.internal,{$el:{subchart:i},config:n}=s,a=n.subchart_show;if(!a){s.unbindZoomEvent(),n.subchart_show=!a,!i.main&&s.initSubchart();let o=i.main.selectAll(`.${O.target}`);s.data.targets.length!==o.size()&&(s.updateSizes(),s.updateTargetsForSubchart(s.data.targets),o=(e=i.main)==null?void 0:e.selectAll(`.${O.target}`)),o==null||o.style("opacity",null),(t=i.main)==null||t.style("display",null),this.resize()}},hide(){const e=this.internal,{$el:{subchart:{main:t}},config:s}=e;s.subchart_show&&(t==null?void 0:t.style("display"))!=="none"&&(s.subchart_show=!1,t.style("display","none"),this.resize())},toggle(){const e=this.internal,{config:t}=e;this.subchart[t.subchart_show?"hide":"show"]()},reset(){const e=this.internal,{brush:t}=e;t.clear(t.getSelection())}});var Sa={subchart:Cs},At=j(10);const ks=function(e){var t;const s=this.internal,{axis:i,config:n,org:a,scale:o,state:r}=s,l=i.isCategorized();let c;if(n.zoom_enabled)if(c=e,Array.isArray(c)){if(i.isTimeSeries()&&(c=c.map(d=>_t.bind(s)(d))),s.withinRange(c,s.getZoomDomain("zoom",!0),s.getZoomDomain("zoom"))){if(r.domain=c,c=s.getZoomDomainValue(c),s.api.tooltip.hide(),n.subchart_show){const d=o.zoom||o.x;s.brush.getSelection().call(s.brush.move,c.map(d))}else{const d=l?o.x.orgScale():a.xScale||o.x;s.updateCurrentZoomTransform(d,c)}s.setZoomResetButton()}}else c=s.zoom.getDomain();return(t=r.domain)!=null?t:c};nt(ks,{enable(e){const t=this.internal,{config:s}=t;/^(drag|wheel)$/.test(e)&&(s.zoom_type=e),s.zoom_enabled=!!e,t.zoom?e===!1&&t.bindZoomEvent(!1):(t.initZoom(),t.bindZoomEvent()),t.updateAndRedraw()},max(e){const t=this.internal,{config:s,org:{xDomain:i}}=t;return(e===0||e)&&(s.zoom_x_max=vt("max",[i[1],e])),s.zoom_x_max},min(e){const t=this.internal,{config:s,org:{xDomain:i}}=t;return(e===0||e)&&(s.zoom_x_min=vt("min",[i[0],e])),s.zoom_x_min},range(e){const t=this.zoom;if(F(e)){const{min:s,max:i}=e;Y(s)&&t.min(s),Y(i)&&t.max(i)}return{min:t.min(),max:t.max()}}});var Ra={zoom:ks,unzoom(){const e=this.internal,{config:t,$el:{eventRect:s,zoomResetBtn:i},scale:{zoom:n},state:a}=e;n&&(t.subchart_show?e.brush.getSelection().call(e.brush.move,null):e.zoom.updateTransformScale(At.zoomIdentity),e.updateZoom(!0),i==null||i.style("display","none"),(0,At.zoomTransform)(s.node())!==At.zoomIdentity&&e.zoom.transform(s,At.zoomIdentity),a.domain=void 0)}},Ca={initBrush(){const e=this,{config:t,scale:s,$el:{subchart:i},state:n}=e,a=t.axis_rotated,o=t.subchart_size_height;let r,l,c;e.brush=(a?(0,fe.brushY)():(0,fe.brushX)()).handleSize(5),e.brush.on("start brush end",u=>{const{selection:d,sourceEvent:h,target:g,type:f}=u;f==="start"&&(e.state.inputType==="touch"&&e.hideTooltip(),l=h?d:null),/(start|brush)/.test(f)&&(f==="brush"&&h&&n.domain&&(l==null||l.forEach((p,_)=>{p!==d[_]&&(n.domain[_]=s.x.orgDomain()[_])})),e.redrawForBrush(f!=="start")),f==="end"&&(r=s.x.orgDomain()),g!=null&&g.handle&&(d===null?e.brush.handle.attr("display","none"):e.brush.handle.attr("display",null).attr("transform",(p,_)=>{const x=[d[_],o/2];return`translate(${a?x.reverse():x})`}))}),e.brush.updateResize=function(){c&&clearTimeout(c),c=setTimeout(()=>{const u=this.getSelection();r&&(0,fe.brushSelection)(u.node())&&this.move(u,r.map(s.subX.orgScale()))},0)},e.brush.update=function(){var u;return this.extent()()[1].filter(h=>isNaN(h)).length===0&&((u=i.main)==null||u.select(`.${X.brush}`).call(this)),this},e.brush.scale=function(u){const d=t.subchart_size_height;let h=e.getExtent();!h&&u.range?h=[[0,0],[u.range()[1],d]]:B(h)&&(h=h.map((g,f)=>[g,f>0?d:f])),a&&h[1].reverse(),this.extent(h),this.update()},e.brush.getSelection=()=>i.main?i.main.select(`.${X.brush}`):(0,w.select)([])},initSubchart(){const e=this,{config:t,state:{clip:s,hasAxis:i},$el:{defs:n,svg:a,subchart:o,axis:r}}=e;if(!i)return;const l=t.subchart_show?null:"hidden",c=`${s.id}-subchart`,u=e.getClipPath(c);s.idSubchart=c,e.appendClip(n,c),e.initBrush(),o.main=a.append("g").classed(X.subchart,!0).attr("transform",e.getTranslate("context"));const{main:d}=o;d.style("visibility",l),d.append("g").attr("clip-path",u).attr("class",X.chart),["bar","line","bubble","candlestick","scatter"].forEach(g=>{const f=gt(/^(bubble|scatter)$/.test(g)?"circle":g);if(e.hasType(g)||e.hasTypeOf(f)){const p=d.select(`.${X.chart}`),_=X[`chart${f}s`];p.select(`.${_}`).empty()&&p.append("g").attr("class",_)}});const h=d.append("g").attr("clip-path",u).attr("class",X.brush).call(e.brush);t.subchart_showHandle&&e.addBrushHandle(h),r.subX=d.append("g").attr("class",X.axisX).attr("transform",e.getTranslate("subX")).attr("clip-path",t.axis_rotated?"":s.pathXAxis).style("visibility",t.subchart_axis_x_show?l:"hidden")},addBrushHandle(e){const t=this,{config:s}=t,i=s.axis_rotated,n=s.subchart_init_range,a="handle--custom",o=i?["M8.5 0 a6 6 0 0 0 -6 -6.5 H-2.5 a 6 6 0 0 0 -6 6.5 z m-5 -2 H-3.5 m7 -2 H-3.5z","M8.5 0 a6 -6 0 0 1 -6 6.5 H-2.5 a 6 -6 0 0 1 -6 -6.5z m-5 2 H-3.5 m7 2 H-3.5z"]:["M0 -8.5 A6 6 0 0 0 -6.5 -3.5 V2.5 A6 6 0 0 0 0 8.5 Z M-2 -3.5 V3.5 M-4 -3.5 V3.5z","M0 -8.5 A6 6 0 0 1 6.5 -3.5 V2.5 A6 6 0 0 1 0 8.5 Z M2 -3.5 V3.5 M4 -3.5 V3.5z"];t.brush.handle=e.selectAll(`.${a}`).data(i?[{type:"n"},{type:"s"}]:[{type:"w"},{type:"e"}]).enter().append("path").attr("class",a).attr("cursor",`${i?"ns":"ew"}-resize`).attr("d",r=>o[+/[se]/.test(r.type)]).attr("display",n?null:"none")},updateTargetsForSubchart(e){const t=this,{config:s,state:i,$el:{subchart:{main:n}}}=t;s.subchart_show&&(["bar","line","bubble","candlestick","scatter"].filter(a=>t.hasType(a)||t.hasTypeOf(gt(a))).forEach(a=>{const o=/^(bubble|scatter)$/.test(a),r=gt(o?"circle":a),l=t.getChartClass(r,!0),c=t.getClass(o?"circles":`${a}s`,!0),u=n.select(`.${X[`chart${`${r}s`}`]}`);if(o){const d=u.selectAll(`.${X.circles}`).data(e.filter(t[`is${gt(a)}Type`].bind(t))).attr("class",c);d.exit().remove(),d.enter().append("g").attr("class",c)}else{const d=u.selectAll(`.${X[`chart${r}`]}`).attr("class",l).data(e.filter(t[`is${r}Type`].bind(t))),h=d.enter().append("g").style("opacity","0").attr("class",l).append("g").attr("class",c);d.exit().remove(),a==="line"&&t.hasTypeOf("Area")&&h.append("g").attr("class",t.getClass("areas",!0))}}),n.selectAll(`.${X.brush} rect`).attr(s.axis_rotated?"width":"height",s.axis_rotated?i.width2:i.height2))},redrawSubchart(e,t,s){var i;const n=this,{config:a,$el:{subchart:{main:o}},state:r}=n,l=!!t;if(o.style("visibility",a.subchart_show?null:"hidden"),a.subchart_show&&(((i=r.event)==null?void 0:i.type)==="zoom"&&n.brush.update(),e)){const c=a.subchart_init_range;if(!rs(n)&&n.brush.update(),Object.keys(s.type).forEach(u=>{const d=gt(u),h=n[`generateDraw${d}`](s.indices[u],!0);n[`update${d}`](l,!0),n[`redraw${d}`](h,l,!0)}),n.hasType("bubble")||n.hasType("scatter")){const{cx:u}=s.pos,d=n.updateCircleY(!0);n.updateCircle(!0),n.redrawCircle(u,d,l,void 0,!0)}!r.rendered&&c&&(r.domain=c,n.brush.move(n.brush.getSelection(),c.map(n.scale.x)))}},redrawForBrush(e=!0){var t;const s=this,{config:{subchart_onbrush:i,zoom_rescale:n},scale:a,state:o}=s;s.redraw({withTransition:!1,withY:n,withSubchart:!1,withUpdateXDomain:!0,withDimension:!1}),e&&o.rendered&&i.bind(s.api)((t=o.domain)!=null?t:a.x.orgDomain())},transformContext(e,t){const s=this,{$el:{subchart:i},$T:n}=s,a=t!=null&&t.axisSubX?t.axisSubX:n(i.main.select(`.${X.axisX}`),e);i.main.attr("transform",s.getTranslate("context")),a.attr("transform",s.getTranslate("subX"))},getExtent(){const e=this,{config:t,scale:s}=e;let i=t.axis_x_extent;if(i){if(E(i))i=i.bind(e.api)(e.getXDomain(e.data.targets),s.subX);else if(e.axis.isTimeSeries()&&i.every(isNaN)){const n=_t.bind(e);i=i.map(a=>s.subX(n(a)))}}return i}},ka={initZoom(){const e=this;e.scale.zoom=null,e.generateZoom(),e.initZoomBehaviour()},bindZoomEvent(e=!0){const t=this,{config:s}=t;s.zoom_enabled&&e?!s.subchart_show&&t.bindZoomOnEventRect():e===!1&&(t.api.unzoom(),t.unbindZoomEvent())},generateZoom(){const e=this,{config:t,org:s,scale:i}=e,n=(0,At.zoom)().duration(0).on("start",e.onZoomStart.bind(e)).on("zoom",e.onZoom.bind(e)).on("end",e.onZoomEnd.bind(e));n.orgScaleExtent=()=>{const a=t.zoom_extent||[1,10];return[a[0],Math.max(e.getMaxDataCount()/a[1],a[1])]},n.updateScaleExtent=function(){const a=Xt(e.scale.x.orgDomain())/Xt(e.getZoomDomain()),o=this.orgScaleExtent();return this.scaleExtent([o[0]*a,o[1]*a]),this},n.updateTransformScale=(a,o)=>{var r;const l=t.axis_rotated;(r=s.xScale)==null||r.range(i.x.range());const c=a[l?"rescaleY":"rescaleX"](s.xScale||i.x),u=e.trimXDomain(c.domain()),d=t.zoom_rescale;if(c.domain(u,s.xDomain),o){const h=c(i.x.domain()[0]),g=l?a.x:h,f=l?h:a.y;e.$el.eventRect.property("__zoom",At.zoomIdentity.translate(g,f).scale(a.k))}e.state.xTickOffset||(e.state.xTickOffset=e.axis.x.tickOffset()),i.zoom=e.getCustomizedXScale(c),e.axis.x.scale(i.zoom),d?(!s.xScale&&(s.xScale=i.x.copy()),i.x.domain(u)):s.xScale&&(i.x.domain(s.xScale.domain()),s.xScale=null)},n.getDomain=()=>{const a=i[i.zoom?"zoom":"subX"].domain();return e.axis.isCategorized()&&(a[1]-=2),a},e.zoom=n},onZoomStart(e){const t=this,{sourceEvent:s}=e;s&&(t.zoom.startEvent=s,t.state.zooming=!0,Z(t.config.zoom_onzoomstart,t.api,e))},onZoom(e){var t;const s=this,{config:i,scale:n,state:a,org:o}=s,{sourceEvent:r}=e,l=(e==null?void 0:e.transform)===At.zoomIdentity;if(!i.zoom_enabled||s.filterTargetsToShow(s.data.targets).length===0||!n.zoom&&(r==null?void 0:r.type.indexOf("touch"))>-1&&(r==null?void 0:r.touches.length)===1)return;e.sourceEvent&&(a.zooming=!0,a.domain=void 0);const c=(r==null?void 0:r.type)==="mousemove",u=(r==null?void 0:r.wheelDelta)<0,{transform:d}=e;!c&&u&&n.x.domain().every((g,f)=>g!==o.xDomain[f])&&n.x.domain(o.xDomain),s.zoom.updateTransformScale(d,i.zoom_type==="wheel"&&r);const h=i.transition_duration>0&&!i.subchart_show&&(a.dragging||l||!e.sourceEvent);s.redraw({withTransition:h,withY:i.zoom_rescale,withSubchart:!1,withEventRect:!1,withDimension:!1}),s.state.cancelClick=c,!l&&Z(i.zoom_onzoom,s.api,(t=s.state.domain)!=null?t:s.zoom.getDomain())},onZoomEnd(e){var t,s;const i=this,{config:n,state:a}=i;let{startEvent:o}=i.zoom,r=e==null?void 0:e.sourceEvent;const l=(e==null?void 0:e.transform)===At.zoomIdentity;(o==null?void 0:o.type.indexOf("touch"))>-1&&(o=o.changedTouches[0],r=(t=r==null?void 0:r.changedTouches)==null?void 0:t[0]),!(n.zoom_type==="drag"&&r&&o.clientX===r.clientX&&o.clientY===r.clientY)&&(a.zooming=!1,i.redrawEventRect(),i.updateZoom(),!l&&(r||a.dragging)&&Z(n.zoom_onzoomend,i.api,(s=i.state.domain)!=null?s:i.zoom.getDomain()))},updateZoom(e){const t=this,{subX:s,x:i,zoom:n}=t.scale;if(n){const a=n.domain(),o=s.domain(),r=.015,l=t.config.axis_x_inverted?(a[0]>=o[0]||a[0]+r>=o[0])&&(o[1]>=a[1]||o[1]>=a[1]+r):(a[0]<=o[0]||a[0]-r<=o[0])&&(o[1]<=a[1]||o[1]<=a[1]-r);(e||l)&&(t.axis.x.scale(s),i.domain(s.orgDomain()),t.scale.zoom=null)}},updateCurrentZoomTransform(e,t){const s=this,{$el:{eventRect:i},config:n}=s,a=n.axis_rotated,o=[-e(t[0]),0],r=At.zoomIdentity.scale(e.range()[1]/(e(t[1])-e(t[0]))).translate(...a?o.reverse():o);i.call(s.zoom.transform,r)},bindZoomOnEventRect(){const e=this,{config:t,$el:{eventRect:s}}=e,i=t.zoom_type==="drag"?e.zoomBehaviour:e.zoom;s==null||s.call(i).on("dblclick.zoom",null)},initZoomBehaviour(){const e=this,{config:t,state:s}=e,i=t.axis_rotated;let n=0,a=0,o;const r={axis:i?"y":"x",attr:i?"height":"width",index:i?1:0};e.zoomBehaviour=(0,ys.drag)().clickDistance(4).on("start",function(l){s.event=l,e.setDragStatus(!0),e.unselectRect(),o||(o=e.$el.main.append("rect").attr("clip-path",s.clip.path).attr("class",Re.zoomBrush).attr("width",i?s.width:0).attr("height",i?0:s.height)),n=mt(l,this)[r.index],a=n,o.attr(r.axis,n).attr(r.attr,0),e.onZoomStart(l)}).on("drag",function(l){a=mt(l,this)[r.index],o.attr(r.axis,Math.min(n,a)).attr(r.attr,Math.abs(a-n))}).on("end",l=>{const c=e.scale.zoom||e.scale.x;s.event=l,o.attr(r.axis,0).attr(r.attr,0),n>a&&([n,a]=[a,n]),n<0&&(a+=Math.abs(n),n=0),n!==a&&e.api.zoom([n,a].map(u=>c.invert(u))),e.setDragStatus(!1)})},setZoomResetButton(){const e=this,{config:t,$el:s}=e,i=t.zoom_resetButton;i&&t.zoom_type==="drag"&&(s.zoomResetBtn?s.zoomResetBtn.style("display",null):s.zoomResetBtn=e.$el.chart.append("div").classed(O.button,!0).append("span").on("click",function(){E(i.onclick)&&i.onclick.bind(e.api)(this),e.api.unzoom()}).classed(Re.buttonZoomReset,!0).text(i.text||"Reset Zoom"))},getZoomTransform(){const e=this,{$el:{eventRect:t}}=e;return t!=null&&t.node()?(0,At.zoomTransform)(t.node()):{k:1}}},Ea={drag(e){const t=this,{config:s,state:i,$el:{main:n}}=t,a=s.data_selection_grouped,o=s.interaction_enabled&&s.data_selection_isselectable;if(t.hasArcType()||!s.data_selection_enabled||s.zoom_enabled&&!t.zoom.altDomain||!s.data_selection_multiple)return;const[r,l]=i.dragStart||[0,0],[c,u]=e,d=Math.min(r,c),h=Math.max(r,c),g=a?i.margin.top:Math.min(l,u),f=a?i.height:Math.max(l,u);n.select(`.${Mt.dragarea}`).attr("x",d).attr("y",g).attr("width",h-d).attr("height",f-g),n.selectAll(`.${Q.shapes}`).selectAll(`.${Q.shape}`).filter(p=>o==null?void 0:o.bind(t.api)(p)).each(function(p,_){const x=(0,w.select)(this),m=x.classed(q.SELECTED),y=x.classed(Mt.INCLUDED);let b=!1,v;if(x.classed(ct.circle)){const $=+x.attr("cx")*1,T=+x.attr("cy")*1;v=t.togglePoint,b=d<$&&$<h&&g<T&&T<f}else if(x.classed($t.bar)){const{x:$,y:T,width:S,height:A}=as(this);v=t.togglePath,b=!(h<$||$+S<d)&&!(f<T||T+A<g)}else return;b^y&&(x.classed(Mt.INCLUDED,!y),x.classed(q.SELECTED,!m),v.call(t,!m,x,p,_))})},dragstart(e){const t=this,{config:s,state:i,$el:{main:n}}=t;t.hasArcType()||!s.data_selection_enabled||(i.dragStart=e,n.select(`.${O.chart}`).append("rect").attr("class",Mt.dragarea).style("opacity","0.1"),t.setDragStatus(!0))},dragend(){const e=this,{config:t,$el:{main:s},$T:i}=e;e.hasArcType()||!t.data_selection_enabled||(i(s.select(`.${Mt.dragarea}`)).style("opacity","0").remove(),s.selectAll(`.${Q.shape}`).classed(Mt.INCLUDED,!1),e.setDragStatus(!1))}},La=Object.defineProperty,Pa=Object.defineProperties,Oa=Object.getOwnPropertyDescriptors,Es=Object.getOwnPropertySymbols,Ia=Object.prototype.hasOwnProperty,Da=Object.prototype.propertyIsEnumerable,Ls=(e,t,s)=>t in e?La(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,za=(e,t)=>{for(var s in t||(t={}))Ia.call(t,s)&&Ls(e,s,t[s]);if(Es)for(var s of Es(t))Da.call(t,s)&&Ls(e,s,t[s]);return e},Fa=(e,t)=>Pa(e,Oa(t)),Ma=Fa(za({},Ea),{selectPoint(e,t,s){const i=this,{config:n,$el:{main:a},$T:o}=i,r=n.axis_rotated,l=(r?i.circleY:i.circleX).bind(i),c=(r?i.circleX:i.circleY).bind(i),u=i.pointSelectR.bind(i);Z(n.data_onselected,i.api,t,e.node()),o(a.select(`.${q.selectedCircles}${i.getTargetSelectorSuffix(t.id)}`).selectAll(`.${q.selectedCircle}-${s}`).data([t]).enter().append("circle").attr("class",()=>i.generateClass(q.selectedCircle,s)).attr("cx",l).attr("cy",c).attr("stroke",i.color).attr("r",d=>i.pointSelectR(d)*1.4)).attr("r",u)},unselectPoint(e,t,s){const i=this,{config:n,$el:{main:a},$T:o}=i;Z(n.data_onunselected,i.api,t,e==null?void 0:e.node()),o(a.select(`.${q.selectedCircles}${i.getTargetSelectorSuffix(t.id)}`).selectAll(`.${q.selectedCircle}-${s}`)).attr("r",0).remove()},togglePoint(e,t,s,i){this[`${e?"":"un"}selectPoint`](t,s,i)},selectPath(e,t){const s=this,{config:i}=s;Z(i.data_onselected,s.api,t,e.node()),i.interaction_brighten&&e.style("filter","brightness(1.25)")},unselectPath(e,t){const s=this,{config:i}=s;Z(i.data_onunselected,s.api,t,e.node()),i.interaction_brighten&&e.style("filter",null)},togglePath(e,t,s,i){this[`${e?"":"un"}selectPath`](t,s,i)},getToggle(e,t){const s=this;return e.nodeName==="path"?s.togglePath:s.isStepType(t)?()=>{}:s.togglePoint},toggleShape(e,t,s){var i;const n=this,{config:a,$el:{main:o}}=n;if(a.data_selection_enabled&&a.data_selection_isselectable.bind(n.api)(t)){const r=(0,w.select)(e),l=r.classed(q.SELECTED),c=n.getToggle(e,t).bind(n);let u;if(!a.data_selection_multiple){const d=(i=n.isPointFocusOnly)==null?void 0:i.call(n);let h=`.${d?q.selectedCircles:Q.shapes}`;a.data_selection_grouped&&(h+=n.getTargetSelectorSuffix(t.id)),o.selectAll(h).selectAll(d?`.${q.selectedCircle}`:`.${Q.shape}.${q.SELECTED}`).classed(q.SELECTED,!1).each(function(g){const f=(0,w.select)(this);u=f,c(!1,f,g,g.index)})}(!u||u.node()!==r.node())&&(r.classed(q.SELECTED,!l),c(!l,r,t,s))}}}),Xa={data_selection_enabled:!1,data_selection_grouped:!1,data_selection_isselectable:()=>!0,data_selection_multiple:!0,data_selection_draggable:!1,data_onselected:()=>{},data_onunselected:()=>{}},Ba={subchart_show:!1,subchart_showHandle:!1,subchart_size_height:60,subchart_axis_x_show:!0,subchart_axis_x_tick_show:!0,subchart_axis_x_tick_format:void 0,subchart_axis_x_tick_text_show:!0,subchart_init_range:void 0,subchart_onbrush:()=>{}},Na={zoom_enabled:!1,zoom_type:"wheel",zoom_extent:void 0,zoom_privileged:!1,zoom_rescale:!1,zoom_onzoom:void 0,zoom_onzoomstart:void 0,zoom_onzoomend:void 0,zoom_resetButton:!0,zoom_x_min:void 0,zoom_x_max:void 0};let Ps=()=>(nt(Vt.prototype,Ma),nt(It.prototype,wa),Nt.setOptions([Xa]),(Ps=()=>!0)()),Os=()=>(nt(Vt.prototype,Ca),nt(It.prototype,Sa),Nt.setOptions([Ba]),(Os=()=>!0)()),Is=()=>(nt(Vt.prototype,ka),nt(It.prototype,Ra),Nt.setOptions([Na]),(Is=()=>!0)());function Ds(e,t,s){const{config:i}=e,n=(a,o)=>{const r=C(o)?o:o===!1?void 0:null;r!==null&&(i[`axis_${a}_${t}`]=r)};Y(s)&&(Tt(s)?Object.keys(s).forEach(a=>{n(a,s[a])}):(C(s)||s===!1)&&["y","y2"].forEach(a=>{n(a,s)}),e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0}))}function zs(e,t){const{config:s}=e;return{x:s[`axis_x_${t}`],y:s[`axis_y_${t}`],y2:s[`axis_y2_${t}`]}}var Ga={axis:{labels:function(e){const t=this.internal;let s;return e&&(Object.keys(e).forEach(i=>{t.axis.setLabelText(i,e[i])}),t.axis.updateLabels()),["x","y","y2"].forEach(i=>{const n=t.axis.getLabelText(i);n&&(!s&&(s={}),s[i]=n)}),s},min:function(e){const t=this.internal;return D(e)||e===!1?Ds(t,"min",e):zs(t,"min")},max:function(e){const t=this.internal;return D(e)||e===!1?Ds(t,"max",e):zs(t,"max")},range:function(e){const{axis:t}=this;if(arguments.length){const{min:s,max:i}=e;Y(i)&&t.max(i),Y(s)&&t.min(s)}else return{max:t.max(),min:t.min()}}}},Va={category(e,t){const s=this.internal,{config:i}=s;return arguments.length>1&&(i.axis_x_categories[e]=t,s.redraw()),i.axis_x_categories[e]},categories(e){const t=this.internal,{config:s}=t;if(!e||!Array.isArray(e)){const i=s.axis_x_categories;return bt(i)?Object.values(t.data.xs)[0]:i}return s.axis_x_categories=e,t.redraw(),s.axis_x_categories}},Ya={flow(e){const t=this.internal;let s;(e.json||e.rows||e.columns)&&t.convertData(e,n=>{s=n,i()});function i(){let n,a=0,o=0,r,l;if(t.state.redrawing||!s||!ae())return;const c=[],u=t.getMaxDataCount(),d=t.convertDataToTargets(s,!0),h=t.axis.isTimeSeries();t.data.targets.forEach(p=>{let _=!1;for(let x=0;x<d.length;x++)if(p.id===d[x].id){_=!0,p.values[p.values.length-1]&&(o=p.values[p.values.length-1].index+1),a=d[x].values.length;for(let m=0;m<a;m++)d[x].values[m].index=o+m,h||(d[x].values[m].x=o+m);p.values=p.values.concat(d[x].values),d.splice(x,1);break}!_&&c.push(p.id)}),t.data.targets.forEach(p=>{for(let _=0;_<c.length;_++)if(p.id===c[_]){o=p.values[p.values.length-1].index+1;for(let x=0;x<a;x++)p.values.push({id:p.id,index:o+x,x:h?t.getOtherTargetX(o+x):o+x,value:null})}}),t.data.targets.length&&d.forEach(p=>{const _=[];for(let x=t.data.targets[0].values[0].index;x<o;x++)_.push({id:p.id,index:x,x:h?t.getOtherTargetX(x):x,value:null});p.values.forEach(x=>{x.index+=o,h||(x.x+=o)}),p.values=_.concat(p.values)}),t.data.targets=t.data.targets.concat(d);const g=t.data.targets[0],f=g.values[0];Y(e.to)?(a=0,l=h?_t.call(t,e.to):e.to,g.values.forEach(p=>{p.x<l&&a++})):Y(e.length)&&(a=e.length),u?u===1&&h&&(r=(g.values[g.values.length-1].x-f.x)/2,n=[new Date(+f.x-r),new Date(+f.x+r)]):(h?r=g.values.length>1?g.values[g.values.length-1].x-f.x:f.x-t.getXDomain(t.data.targets)[0]:r=1,n=[f.x-r,f.x]),n&&t.updateXDomain(null,!0,!0,!1,n),t.updateTargets(t.data.targets),t.redraw({flow:{index:f.index,length:a,duration:D(e.duration)?e.duration:t.config.transition_duration,done:e.done,orgDataCount:u},withLegend:!0,withTransition:u>1,withTrimXDomain:!1,withUpdateXAxis:!0})}}};function Be(e,t){const s=this.internal,{config:i}=s,n=i.transition_duration&&ae(),a=`grid_${t}_lines`;return e&&(i[a]=e,s.updateGrid(),s.redrawGrid(n)),i[a]}function Fs(e,t){const s=`grid_${t}_lines`;return Be.bind(this)(this.internal.config[s].concat(e||[]),t)}function Ms(e,t){this.internal.removeGridLines(e,t)}const Xs=function(e){return Be.bind(this)(e,"x")};nt(Xs,{add(e){return Fs.bind(this)(e,"x")},remove(e){return Ms.bind(this)(e,!0)}});const Bs=function(e){return Be.bind(this)(e,"y")};nt(Bs,{add(e){return Fs.bind(this)(e,"y")},remove(e){return Ms.bind(this)(e,!1)}});var ja={xgrids:Xs,ygrids:Bs},Ha={groups(e){const t=this.internal,{config:s}=t;return tt(e)||(s.data_groups=e,t.redraw()),s.data_groups}};function Ns(e,t=!1){const s=this.internal,{config:i}=s,n=i.transition_duration&&ae();return e?(i.regions=t?i.regions.concat(e):e,s.updateRegion(),s.redrawRegion(n),t?i.regions:e):i.regions}const Gs=function(e){return Ns.bind(this)(e)};nt(Gs,{add:function(e){return Ns.bind(this)(e,!0)},remove:function(e){const t=this.internal,{config:s,$T:i}=t,n=e||{},a=Lt(n,"classes",[ie.region]);let o=t.$el.main.select(`.${ie.regions}`).selectAll(a.map(r=>`.${r}`));return i(o).style("opacity","0").remove(),o=s.regions,Object.keys(n).length?(o=o.filter(r=>{let l=!1;return r.class?(r.class.split(" ").forEach(c=>{a.indexOf(c)>=0&&(l=!0)}),!l):!0}),s.regions=o):s.regions=[],o}});var Wa={regions:Gs},Ua={x(e){const t=this.internal,{axis:s,data:i}=t,n=s.isCustomX()&&s.isCategorized();return B(e)&&(n?this.categories(e):(t.updateTargetX(i.targets,e),t.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0}))),n?this.categories():i.xs},xs(e){const t=this.internal;return F(e)&&(t.updateTargetXs(t.data.targets,e),t.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})),t.data.xs}},qt=j(11),Za=Object.defineProperty,qa=(e,t,s)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Ne=(e,t,s)=>(qa(e,typeof t!="symbol"?t+"":t,s),s);class Vs{constructor(t){Ne(this,"owner"),Ne(this,"config"),Ne(this,"scale");const s=Gt(),{config:i,params:n}=t;this.owner=t,this.config=i,this.scale=s,(i.noTransition||!n.config.transition_duration)&&(i.withoutTransition=!0),i.range=this.scaleExtent((n.orgXScale||s).range())}static getSizeFor1Char(t){const s={w:5.5,h:11.5};return!t.empty()&&t.select("text").text("0").call(i=>{try{const{width:n,height:a}=i.node().getBBox();n&&a&&(s.w=n,s.h=a)}catch(n){}finally{i.text("")}}),this.getSizeFor1Char=()=>s,s}getTickTransformSetter(t){const{config:s}=this,i=t==="x"?n=>`translate(${n+s.tickOffset},0)`:n=>`translate(0,${n})`;return(n,a)=>{n.attr("transform",o=>D(o)?i(Math.ceil(a(o))):null)}}scaleExtent(t){const s=t[0],i=t[t.length-1];return s<i?[s,i]:[i,s]}generateTicks(t,s){const{tickStepSize:i}=this.owner.params,[n,a]=t.domain();let o=[];if(s&&i){let r=Math.round(n);for(;r<=a;)o.push(r),r+=i}else if(t.ticks){const{tickArguments:r}=this.config;if(t.type==="log"&&!r){const l=Gt("_log").domain([n>0?n:1,a]).range(t.range());o=l.ticks();for(let c=a.toFixed().length;o.length>15;c--)o=l.ticks(c);o.splice(0,1,n),o.splice(o.length-1,1,a)}else o=t.ticks(...this.config.tickArguments||[]);o=o.map(l=>G(l)&&C(l)&&!isNaN(l)&&Math.round(l*10)/10||l)}return o}copyScale(){const t=this.scale.copy();return t.domain().length||t.domain(this.scale.domain()),t.type=this.scale.type,t}textFormatted(t){const s=this.config.tickFormat,i=/\d+\.\d+0{5,}\d$/.test(t)?+String(t).replace(/0+\d$/,""):t,n=s?s(i):i;return Y(n)?n:""}transitionise(t){const{config:s}=this;let i=t;if(s.withoutTransition)i=t.interrupt();else if(s.transition||!this.owner.params.noTransition)try{i=t.transition(s.transition)}catch(n){}return i}}var Ka=Object.defineProperty,Ja=(e,t,s)=>t in e?Ka(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,oe=(e,t,s)=>(Ja(e,typeof t!="symbol"?t+"":t,s),s);class Qa{constructor(t={}){oe(this,"helper"),oe(this,"config"),oe(this,"params"),oe(this,"g"),oe(this,"generatedTicks");const s={innerTickSize:6,outerTickSize:t.outerTick?6:0,orient:"bottom",range:[],tickArguments:null,tickCentered:null,tickCulling:!0,tickFormat:null,tickLength:9,tickOffset:0,tickPadding:3,tickValues:null,transition:null,noTransition:t.noTransition};s.tickLength=Math.max(s.innerTickSize,0)+s.tickPadding,this.config=s,this.params=t,this.helper=new Vs(this)}create(t){const s=this,{config:i,helper:n,params:a}=s,{scale:o}=n,{orient:r}=i,l=this.splitTickText.bind(s),c=/^(left|right)$/.test(r),u=/^(top|bottom)$/.test(r),d=n.getTickTransformSetter(u?"x":"y"),h=d===n.axisX?"y":"x",g=/^(top|left)$/.test(r)?-1:1,f=a.tickTextRotate;this.config.range=o.rangeExtent?o.rangeExtent():n.scaleExtent((a.orgXScale||o).range());const{innerTickSize:p,tickLength:_,range:x}=i,m=a.id,y=m&&/^(x|y|y2)$/.test(m)?a.config[`axis_${m}_tick_text_position`]:{x:0,y:0},b=m==="subX"?"subchart_axis_x":`axis_${m}`,v=a.config[`${b}_show`],$={tick:v?a.config[`${b}_tick_show`]:!1,text:v?a.config[`${b}_tick_text_show`]:!1};let T;t.each(function(){const S=(0,w.select)(this);let A=this.__chart__||o,R=n.copyScale();T=S,this.__chart__=R,i.tickOffset=a.isCategory?Math.ceil((R(1)-R(0))/2):0;const I=S.selectAll(".domain").data([0]);if(I.enter().append("path").attr("class","domain").merge(I).attr("d",()=>{const M=i.outerTickSize*g;return u?`M${x[0]},${M}V0H${x[1]}V${M}`:`M${M},${x[0]}H0V${x[1]}H${M}`}),$.tick||$.text){const M=i.tickValues||n.generateTicks(R,c);s.generatedTicks=M;let L=S.selectAll(".tick").data(M,R);const z=L.enter().insert("g",".domain").attr("class","tick"),at=L.exit().remove();L=z.merge(L),$.tick&&z.append("line"),$.text&&z.append("text");const ot=Vs.getSizeFor1Char(L),ht=[];let zt=L.select("text").selectAll("tspan").data((rt,Ft)=>{const jt=a.tickMultiline?l(rt,R,M,c,ot.w):B(n.textFormatted(rt))?n.textFormatted(rt).concat():[n.textFormatted(rt)];return ht[Ft]=jt.length,jt.map(Ht=>({index:Ft,splitted:Ht}))});zt.exit().remove(),zt=zt.enter().append("tspan").merge(zt).text(rt=>rt.splitted),zt.attr("x",u?0:_*g).attr("dx",(()=>{let rt=0;return/(top|bottom)/.test(r)&&f&&(rt=8*Math.sin(Math.PI*(f/180))*(r==="top"?-1:1)),rt+(y.x||0)})()).attr("dy",(rt,Ft)=>{const jt=".71em";let Ht=0;return r!=="top"&&(Ht=ot.h,Ft===0&&(Ht=c?-((ht[rt.index]-1)*(ot.h/2)-3):y.y===0?jt:0)),C(Ht)&&y.y?Ht+y.y:Ht||jt});const ki=L.select("line"),He=L.select("text");if(z.select("line").attr(`${h}2`,p*g),z.select("text").attr(h,_*g),s.setTickLineTextPosition(ki,He),a.tickTitle){const rt=He.select("title");(rt.empty()?He.append("title"):rt).text(Ft=>a.tickTitle[Ft])}if(R.bandwidth){const rt=R,Ft=rt.bandwidth()/2;A=jt=>rt(jt)+Ft,R=A}else A.bandwidth?A=R:d(at,R);L=a.owner.state.flowing?n.transitionise(L):a.owner.$T(L),d(z,A),d(L.style("opacity",null),R)}}),this.g=T}getGeneratedTicks(t){var s;const i=((s=this.generatedTicks)==null?void 0:s.length)-1;let n=this.generatedTicks;if(i>t){const a=Math.round(i/t+.1);n=this.generatedTicks.map((o,r)=>r%a===0?o:null).filter(o=>o!==null).splice(0,t)}return n}getTickXY(){const{config:t}=this,s={x:0,y:0};return this.params.isCategory&&(s.x=t.tickCentered?0:t.tickOffset,s.y=t.tickCentered?t.tickOffset:0),s}getTickSize(t){const{scale:s}=this.helper,{config:i}=this,{innerTickSize:n,range:a}=i,o=s(t)+(i.tickCentered?0:i.tickOffset);return a[0]<o&&o<a[1]?n:0}setTickLineTextPosition(t,s){const i=this.getTickXY(),{innerTickSize:n,orient:a,tickLength:o,tickOffset:r}=this.config,l=this.params.tickTextRotate,c=f=>{const p=["start","end"];return a==="top"&&p.reverse(),f?p[f>0?0:1]:"middle"},u=f=>f?`rotate(${f})`:null,d=f=>{const p=f/(a==="bottom"?15:23);return f?11.5-2.5*p*(f>0?1:-1):o},{config:{axis_rotated:h,axis_x_tick_text_inner:g}}=this.params.owner;switch(a){case"bottom":t.attr("x1",i.x).attr("x2",i.x).attr("y2",this.getTickSize.bind(this)),s.attr("x",0).attr("y",d(l)).style("text-anchor",c(l)).style("text-anchor",(f,p,{length:_})=>!h&&p===0&&(g===!0||g.first)?"start":!h&&p===_-1&&(g===!0||g.last)?"end":c(l)).attr("transform",u(l));break;case"top":t.attr("x2",0).attr("y2",-n),s.attr("x",0).attr("y",-d(l)*2).style("text-anchor",c(l)).attr("transform",u(l));break;case"left":t.attr("x2",-n).attr("y1",i.y).attr("y2",i.y),s.attr("x",-o).attr("y",r).style("text-anchor","end");break;case"right":t.attr("x2",n).attr("y2",0),s.attr("x",o).attr("y",0).style("text-anchor","start")}}splitTickText(t,s,i,n,a){const{params:o}=this,r=this.helper.textFormatted(t),l=G(r)&&r.indexOf(` +`)>-1?r.split(` +`):[];if(l.length)return l;if(B(r))return r;let c=o.tickWidth;(!c||c<=0)&&(c=n?95:o.isCategory?Math.ceil(o.isInverted?s(i[0])-s(i[1]):s(i[1])-s(i[0]))-12:110);function u(d,h){let g,f,p;for(let _=1;_<h.length;_++)if(h.charAt(_)===" "&&(f=_),g=h.substr(0,_+1),p=a*g.length,c<p)return u(d.concat(h.substr(0,f||_)),h.slice(f?f+1:_));return d.concat(h)}return u(l,String(r))}scale(t){return arguments.length?(this.helper.scale=t,this):this.helper.scale}orient(t){return arguments.length?(this.config.orient=t in{top:1,right:1,bottom:1,left:1}?String(t):"bottom",this):this.config.orient}tickFormat(t){const{config:s}=this;return arguments.length?(s.tickFormat=t,this):s.tickFormat}tickCentered(t){const{config:s}=this;return arguments.length?(s.tickCentered=t,this):s.tickCentered}tickOffset(){return this.config.tickOffset}tickInterval(t){var s;const{outerTickSize:i,tickOffset:n,tickValues:a}=this.config;let o;if(this.params.isCategory)o=n*2;else{const r=(s=this.params.owner.scale.zoom)!=null?s:this.helper.scale;o=(this.g.select("path.domain").node().getTotalLength()-i*2)/(t||this.g.selectAll("line").size());const c=a?a.map((u,d,h)=>{const g=d+1;return g<h.length?r(h[g])-r(u):null}).filter(Boolean):[];o=Math.min(...c,o)}return o===1/0?0:o}ticks(...t){const{config:s}=this;return t.length?(s.tickArguments=Bt(t),this):s.tickArguments}tickCulling(t){const{config:s}=this;return arguments.length?(s.tickCulling=t,this):s.tickCulling}tickValues(t){const{config:s}=this;if(E(t))s.tickValues=()=>t(this.helper.scale.domain());else{if(!arguments.length)return s.tickValues;s.tickValues=t}return this}setTransition(t){return this.config.transition=t,this}}var to=Object.defineProperty,eo=(e,t,s)=>t in e?to(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Ct=(e,t,s)=>(eo(e,typeof t!="symbol"?t+"":t,s),s),so={getAxisInstance:function(){return this.axis||new io(this)}};class io{constructor(t){Ct(this,"owner"),Ct(this,"x"),Ct(this,"subX"),Ct(this,"y"),Ct(this,"y2"),Ct(this,"axesList",{}),Ct(this,"tick",{x:null,y:null,y2:null}),Ct(this,"xs",[]),Ct(this,"orient",{x:"bottom",y:"left",y2:"right",subX:"bottom"}),this.owner=t,this.setOrient()}getAxisClassName(t){return`${st.axis} ${st[`axis${gt(t)}`]}`}isHorizontal(t,s){const i=t.config.axis_rotated;return s?i:!i}isCategorized(){const{config:t,state:s}=this.owner;return t.axis_x_type.indexOf("category")>=0||s.hasRadar}isCustomX(){const{config:t}=this.owner;return!this.isTimeSeries()&&(t.data_x||et(t.data_xs))}isTimeSeries(t="x"){return this.owner.config[`axis_${t}_type`]==="timeseries"}isLog(t="x"){return this.owner.config[`axis_${t}_type`]==="log"}isTimeSeriesY(){return this.isTimeSeries("y")}getAxisType(t="x"){let s="linear";return this.isTimeSeries(t)?s=this.owner.config.axis_x_localtime?"time":"utc":this.isLog(t)&&(s="log"),s}init(){const t=this.owner,{config:s,$el:{main:i,axis:n},state:{clip:a}}=t,o=s.axis_rotated,r=["x","y"];s.axis_y2_show&&r.push("y2"),r.forEach(l=>{const c=this.getAxisClassName(l),u=st[`axis${l.toUpperCase()}Label`];n[l]=i.append("g").attr("class",c).attr("clip-path",()=>{let d=null;return l==="x"?d=a.pathXAxis:l==="y"&&(d=a.pathYAxis),d}).attr("transform",t.getTranslate(l)).style("visibility",s[`axis_${l}_show`]?null:"hidden"),n[l].append("text").attr("class",u).attr("transform",["rotate(-90)",null][l==="x"?+!o:+o]).style("text-anchor",()=>this.textAnchorForAxisLabel(l)),this.generateAxes(l)}),s.axis_tooltip&&this.setAxisTooltip()}setOrient(){const t=this.owner,{axis_rotated:s,axis_y_inner:i,axis_y2_inner:n}=t.config;this.orient={x:s?"left":"bottom",y:s?i?"top":"bottom":i?"right":"left",y2:s?n?"bottom":"top":n?"left":"right",subX:s?"left":"bottom"}}generateAxes(t){const s=this.owner,{config:i}=s,n=[],a=i[`axis_${t}_axes`],o=i.axis_rotated;let r;t==="x"?r=o?qt.axisLeft:qt.axisBottom:t==="y"?r=o?qt.axisBottom:qt.axisLeft:t==="y2"&&(r=o?qt.axisTop:qt.axisRight),a.length&&a.forEach(l=>{const c=l.tick||{},u=s.scale[t].copy();l.domain&&u.domain(l.domain),n.push(r(u).ticks(c.count).tickFormat(E(c.format)?c.format.bind(s.api):d=>d).tickValues(c.values).tickSizeOuter(c.outer===!1?0:6))}),this.axesList[t]=n}updateAxes(){const t=this.owner,{config:s,$el:{main:i},$T:n}=t;Object.keys(this.axesList).forEach(a=>{const o=s[`axis_${a}_axes`],r=t.scale[a].copy(),l=r.range();this.axesList[a].forEach((c,u)=>{const d=c.scale().range();l.every((f,p)=>f===d[p])||c.scale().range(l);const h=`${this.getAxisClassName(a)}-${u+1}`;let g=i.select(`.${h.replace(/\s/,".")}`);g.empty()?g=i.append("g").attr("class",h).style("visibility",s[`axis_${a}_show`]?null:"hidden").call(c):(o[u].domain&&r.domain(o[u].domain),n(g).call(c.scale(r))),g.attr("transform",t.getTranslate(a,u+1))})})}setAxis(t,s,i,n){const a=this.owner;t!=="subX"&&(this.tick[t]=this.getTickValues(t)),this[t]=this.getAxis(t,s,i,t==="x"&&(a.scale.zoom||a.config.subchart_show||a.state.resizing)?!0:n)}getAxis(t,s,i,n,a){const o=this.owner,{config:r}=o,l=/^(x|subX)$/.test(t),c=l?"x":t,u=l&&this.isCategorized(),d=this.orient[t],h=a?0:o.getAxisTickRotate(c);let g;if(l)g=t==="subX"?o.format.subXAxisTick:o.format.xAxisTick;else{const m=r[`axis_${t}_tick_format`];E(m)&&(g=m.bind(o.api))}let f=this.tick[c];const p=Ut({outerTick:i,noTransition:n,config:r,id:t,tickTextRotate:h,owner:o},l&&{isCategory:u,isInverted:r.axis_x_inverted,tickMultiline:r.axis_x_tick_multiline,tickWidth:r.axis_x_tick_width,tickTitle:u&&r.axis_x_tick_tooltip&&o.api.categories(),orgXScale:o.scale.x});l||(p.tickStepSize=r[`axis_${c}_tick_stepSize`]);const _=new Qa(p).scale(l&&o.scale.zoom||s).orient(d);if(l&&this.isTimeSeries()&&f&&!E(f)){const m=_t.bind(o);f=f.map(y=>m(y))}else!l&&this.isTimeSeriesY()&&(_.ticks(r.axis_y_tick_time_value),f=null);f&&_.tickValues(f),_.tickFormat(g||!l&&o.isStackNormalized()&&(m=>`${m}%`)),u&&(_.tickCentered(r.axis_x_tick_centered),bt(r.axis_x_tick_culling)&&(r.axis_x_tick_culling=!1));const x=r[`axis_${c}_tick_count`];return x&&_.ticks(x),_}updateXAxisTickValues(t,s){var i;const n=this.owner,{config:a}=n,o=a.axis_x_tick_fit;let r=a.axis_x_tick_count,l;return(o||r&&o)&&(l=n.mapTargetsToUniqueXs(t),this.isCategorized()&&r>l.length&&(r=l.length),l=this.generateTickValues(l,r,this.isTimeSeries())),s?s.tickValues(l):this.x&&(this.x.tickValues(l),(i=this.subX)==null||i.tickValues(l)),l}getId(t){const{config:s,scale:i}=this.owner;let n=s.data_axes[t];return(!n||!i[n])&&(n="y"),n}getXAxisTickFormat(t){const s=this.owner,{config:i,format:n}=s,a=t&&i.subchart_axis_x_tick_format||i.axis_x_tick_format,o=this.isTimeSeries(),r=this.isCategorized();let l;return a?E(a)?l=a.bind(s.api):o&&(l=c=>c?n.axisTime(a)(c):""):l=o?n.defaultAxisTime:r?s.categoryName:c=>c<0?c.toFixed(0):c,E(l)?c=>l.apply(s,r?[c,s.categoryName(c)]:[c]):l}getTickValues(t){const s=this.owner,i=s.config[`axis_${t}_tick_values`],n=s[`${t}Axis`];return(E(i)?i.call(s.api):i)||(n?n.tickValues():void 0)}getLabelOptionByAxisId(t){return this.owner.config[`axis_${t}_label`]}getLabelText(t){const s=this.getLabelOptionByAxisId(t);return G(s)?s:s?s.text:null}setLabelText(t,s){const i=this.owner,{config:n}=i,a=this.getLabelOptionByAxisId(t);G(a)?n[`axis_${t}_label`]=s:a&&(a.text=s)}getLabelPosition(t,s){const i=this.owner.config.axis_rotated,n=this.getLabelOptionByAxisId(t),a=Tt(n)&&n.position?n.position:s[+!i],o=r=>!!~a.indexOf(r);return{isInner:o("inner"),isOuter:o("outer"),isLeft:o("left"),isCenter:o("center"),isRight:o("right"),isTop:o("top"),isMiddle:o("middle"),isBottom:o("bottom")}}getAxisLabelPosition(t){return this.getLabelPosition(t,t==="x"?["inner-top","inner-right"]:["inner-right","inner-top"])}getLabelPositionById(t){return this.getAxisLabelPosition(t)}xForAxisLabel(t){const s=this.owner,{state:{width:i,height:n}}=s,a=this.getAxisLabelPosition(t);let o=a.isMiddle?-n/2:0;return this.isHorizontal(s,t!=="x")?o=a.isLeft?0:a.isCenter?i/2:i:a.isBottom&&(o=-n),o}dxForAxisLabel(t){const s=this.owner,i=this.getAxisLabelPosition(t);let n=i.isBottom?"0.5em":"0";return this.isHorizontal(s,t!=="x")?n=i.isLeft?"0.5em":i.isRight?"-0.5em":"0":i.isTop&&(n="-0.5em"),n}textAnchorForAxisLabel(t){const s=this.owner,i=this.getAxisLabelPosition(t);let n=i.isMiddle?"middle":"end";return this.isHorizontal(s,t!=="x")?n=i.isLeft?"start":i.isCenter?"middle":"end":i.isBottom&&(n="start"),n}dyForAxisLabel(t){const s=this.owner,{config:i}=s,n=i.axis_rotated,a=this.getAxisLabelPosition(t).isInner,o=i[`axis_${t}_tick_rotate`]?s.getHorizontalAxisHeight(t):0,{width:r}=this.getMaxTickSize(t);let l;if(t==="x"){const c=i.axis_x_height;n?l=a?"1.2em":-25-r:a?l="-0.5em":c?l=c-10:o?l=o-10:l="3em"}else l={y:["-0.5em",10,"3em","1.2em",10],y2:["1.2em",-20,"-2.2em","-0.5em",15]}[t],n?a?l=l[0]:o?l=o*(t==="y2"?-1:1)-l[1]:l=l[2]:l=a?l[3]:(l[4]+(i[`axis_${t}_inner`]?0:r+l[4]))*(t==="y"?-1:1);return l}getMaxTickSize(t,s){const i=this.owner,{config:n,state:{current:a},$el:{svg:o,chart:r}}=i,l=a.maxTickSize[t],c=`axis_${t}`,u={width:0,height:0};if(s||!n[`${c}_show`]||l.width>0&&i.filterTargetsToShow().length===0)return l;if(o){const d=/^y2?$/.test(t),h=i.filterTargetsToShow(i.data.targets),g=i.scale[t].copy().domain(i[`get${d?"Y":"X"}Domain`](h,t)),f=g.domain(),p=f[0]===f[1]&&f.every($=>$>0),_=B(l.domain)&&l.domain[0]===l.domain[1]&&l.domain.every($=>$>0);if(p||_)return l.size;l.domain=f,d||l.ticks.splice(0);const x=this.getAxis(t,g,!1,!1,!0),m=n[`${c}_tick_rotate`],y=n[`${c}_tick_count`];!n[`${c}_tick_values`]&&y&&x.tickValues(this.generateTickValues(f,y,d?this.isTimeSeriesY():this.isTimeSeries())),!d&&this.updateXAxisTickValues(h,x);const v=r.append("svg").style("visibility","hidden").style("position","fixed").style("top","0").style("left","0");x.create(v),v.selectAll("text").attr("transform",C(m)?`rotate(${m})`:null).each(function($,T){const{width:S,height:A}=this.getBoundingClientRect();u.width=Math.max(u.width,S),u.height=Math.max(u.height,A),d||(l.ticks[T]=S)}),v.remove()}return Object.keys(u).forEach(d=>{u[d]>0&&(l[d]=u[d])}),l}getXAxisTickTextY2Overflow(t){const s=this.owner,{axis:i,config:n,state:{current:a,isLegendRight:o,legendItemWidth:r}}=s,l=s.getAxisTickRotate("x"),c=l>0&&l<90;if((i.isCategorized()||i.isTimeSeries())&&n.axis_x_tick_fit&&(!n.axis_x_tick_culling||bt(n.axis_x_tick_culling))&&!n.axis_x_tick_multiline&&c){const u=n.axis_y2_show&&a.maxTickSize.y2.width||0,d=o&&r||0,h=a.width-s.getCurrentPaddingByDirection("left"),g=this.getXAxisTickMaxOverflow(l,h-t)-u-d,f=Math.max(0,g)+t;return Math.min(f,h/2)}return 0}getXAxisTickMaxOverflow(t,s){const i=this.owner,{axis:n,config:a,state:o}=i,r=n.isTimeSeries(),l=o.current.maxTickSize.x.ticks,c=l.length,{left:u,right:d}=o.axis.x.padding;let h=0;const g=c-(r&&a.axis_x_tick_fit?.5:0);for(let _=0;_<c;_++){const x=_+1,m=Math.cos(Math.PI*t/180)*l[_],y=x-(r?1:.5)+u;if(y<=0)continue;const v=(s-m)/y,$=g-x,T=d*v,S=$*v+T,A=m-v/2-S;h=Math.max(h,A)}const f=i.filterTargetsToShow(i.data.targets);let p=0;if(!r&&a.axis_x_tick_count<=f.length&&f[0].values.length){const _=Gt(i.axis.getAxisType("x"),0,s-h).domain([u*-1,i.getXDomainMax(i.data.targets)+1+d]);p=Math.ceil((_(1)-_(0))/2)}return h+p}updateLabels(t){const s=this.owner,{$el:{main:i},$T:n}=s,a={x:i.select(`.${st.axisX} .${st.axisXLabel}`),y:i.select(`.${st.axisY} .${st.axisYLabel}`),y2:i.select(`.${st.axisY2} .${st.axisY2Label}`)};Object.keys(a).filter(o=>!a[o].empty()).forEach(o=>{const r=a[o];n(r,t).attr("x",()=>this.xForAxisLabel(o)).attr("dx",()=>this.dxForAxisLabel(o)).attr("dy",()=>this.dyForAxisLabel(o)).text(()=>this.getLabelText(o))})}getPadding(t,s,i,n){const a=C(t)?t:t[s];return D(a)?this.owner.convertPixelToScale(/(bottom|top)/.test(s)?"y":"x",a,n):i}generateTickValues(t,s,i){let n=t;if(s){const a=E(s)?s():s;if(a===1)n=[t[0]];else if(a===2)n=[t[0],t[t.length-1]];else if(a>2){const o=this.isCategorized(),r=a-2,l=t[0],c=t[t.length-1],u=(c-l)/(r+1);let d;n=[l];for(let h=0;h<r;h++)d=+l+u*(h+1),n.push(i?new Date(d):o?Math.round(d):d);n.push(c)}}return i||(n=n.sort((a,o)=>a-o)),n}generateTransitions(t){const s=this.owner,{$el:{axis:i},$T:n}=s,[a,o,r,l]=["x","y","y2","subX"].map(c=>n(i[c],t));return{axisX:a,axisY:o,axisY2:r,axisSubX:l}}redraw(t,s,i){const n=this.owner,{config:a,$el:o}=n,r=s?"0":null;["x","y","y2","subX"].forEach(l=>{const c=this[l],u=o.axis[l];c&&u&&(!i&&!a.transition_duration&&(c.config.withoutTransition=!0),u.style("opacity",r),c.create(t[`axis${gt(l)}`]))}),this.updateAxes()}redrawAxis(t,s,i,n,a){var o,r,l;const c=this.owner,{config:u,scale:d,$el:h}=c,g=!!d.zoom;let f;!g&&this.isCategorized()&&t.length===0&&d.x.domain([0,h.axis.x.selectAll(".tick").size()]),d.x&&t.length?(!g&&c.updateXDomain(t,s.UpdateXDomain,s.UpdateOrgXDomain,s.TrimXDomain),u.axis_x_tick_values||this.updateXAxisTickValues(t)):this.x&&(this.x.tickValues([]),(o=this.subX)==null||o.tickValues([])),u.zoom_rescale&&!n&&(f=d.x.orgDomain()),["y","y2"].forEach(p=>{const _=`axis_${p}_`,x=d[p];if(x){const m=u[`${_}tick_values`],y=u[`${_}tick_count`];if(x.domain(c.getYDomain(t,p,f)),!m&&y){const b=c.axis[p],v=x.domain();b.tickValues(this.generateTickValues(v,v.every($=>$===0)?1:y,this.isTimeSeriesY()))}}}),this.redraw(i,c.hasArcType(),a),this.updateLabels(s.Transition),(s.UpdateXDomain||s.UpdateXAxis||s.Y)&&t.length&&this.setCulling(),s.Y&&((r=d.subY)==null||r.domain(c.getYDomain(t,"y")),(l=d.subY2)==null||l.domain(c.getYDomain(t,"y2")))}setCulling(){const t=this.owner,{config:s,state:{clip:i,current:n},$el:a}=t;["subX","x","y","y2"].forEach(o=>{const r=a.axis[o],c=`axis_${o==="subX"?"x":o}_tick_culling`,u=s[c];if(r&&u){const d=r.selectAll(".tick"),h=Zt(d.data()),g=h.length,f=s[`${c}_max`],p=s[`${c}_lines`];let _;if(g){for(let x=1;x<g;x++)if(g/x<f){_=x;break}d.each(function(x){const m=p?this.querySelector("text"):this;m&&(m.style.display=h.indexOf(x)%_?"none":null)})}else d.style("display",null);if(o==="x"){const x=n.maxTickSize.x.clipPath?i.pathXAxisTickTexts:null;a.svg.selectAll(`.${st.axisX} .tick text`).attr("clip-path",x)}}})}setAxisTooltip(){var t;const s=this.owner,{config:{axis_rotated:i,axis_tooltip:n},$el:{axis:a,axisTooltip:o}}=s,r=(t=n.backgroundColor)!=null?t:"black";s.generateTextBGColorFilter(r,{x:-.15,y:-.2,width:1.3,height:1.3}),["x","y","y2"].forEach(l=>{var c,u,d;if(o[l]=(c=a[l])==null?void 0:c.append("text").classed(st[`axis${l.toUpperCase()}Tooltip`],!0).attr("filter",s.updateTextBGColor({id:l},r)),i){const h=l==="x"?"x":"y",g=l==="y"?"1.15em":l==="x"?"-0.3em":"-0.4em";(u=o[l])==null||u.attr(h,g).attr(`d${l==="x"?"y":"x"}`,l==="x"?"0.4em":"-1.3em").style("text-anchor",l==="x"?"end":null)}else{const h=l==="x"?"y":"x",g=l==="x"?"1.15em":`${l==="y"?"-":""}0.4em`;(d=o[l])==null||d.attr(h,g).attr(`d${l==="x"?"x":"y"}`,l==="x"?"-1em":"0.3em").style("text-anchor",l==="y"?"end":null)}})}}var no={initEventRect(){this.$el.main.select(`.${O.chart}`).append("g").attr("class",yt.eventRects).style("fill-opacity","0")},redrawEventRect(){var e;const t=this,{config:s,state:i,$el:n}=t,a=t.isMultipleX(),o=s.axis_x_inverted;if(n.eventRect)t.updateEventRect(n.eventRect,!0);else if(t.data.targets.length){const l=t.$el.main.select(`.${yt.eventRects}`).style("cursor",s.zoom_enabled&&s.zoom_type!=="drag"?s.axis_rotated?"ns-resize":"ew-resize":null).classed(yt.eventRectsMultiple,a).classed(yt.eventRectsSingle,!a).selectAll(`.${yt.eventRect}`).data([0]).enter().append("rect");t.updateEventRect(l),t.updateEventType(l),l.call(t.getDraggableSelection()),n.eventRect=l,t.state.inputType==="touch"&&!n.svg.on("touchstart.eventRect")&&!t.hasArcType()&&t.bindTouchOnEventRect(),i.rendered&&t.updateEventRect(n.eventRect,!0)}if(!a){const r=t.getMaxDataCountTarget();(!s.data_xSort||o)&&r.sort((l,c)=>o?c.x-l.x:l.x-c.x),t.updateDataIndexByX(r),t.updateXs(r),(e=t.updatePointClass)==null||e.call(t,!0),i.eventReceiver.data=r}t.updateEventRectData()},bindTouchOnEventRect(){const e=this,{config:t,state:s,$el:{eventRect:i,svg:n}}=e,a=h=>{if(e.isMultipleX())e.selectRectForMultipleXs(h);else{const g=e.getDataIndexFromEvent(s.event);e.callOverOutForTouch(g),g===-1?e.unselectRect():e.selectRectForSingle(h,g)}},o=()=>{e.unselectRect(),e.callOverOutForTouch()},r=t.interaction_inputType_touch.preventDefault,l=Ce(r)&&r||!1,c=!isNaN(r)&&r||null;let u;const d=h=>{const g=h.type,p=h.changedTouches[0][`client${t.axis_rotated?"Y":"X"}`];g==="touchstart"?l?h.preventDefault():c!==null&&(u=p):g==="touchmove"&&(l||u===!0||c!==null&&Math.abs(u-p)>=c)&&(u=!0,h.preventDefault())};i.on("touchstart",h=>{s.event=h,e.updateEventRect()}).on("touchstart.eventRect touchmove.eventRect",h=>{if(s.event=h,!i.empty()&&i.classed(yt.eventRect)){if(s.dragging||s.flowing||e.hasArcType()||h.touches.length>1)return;d(h),a(i.node())}else o()},!0).on("touchend.eventRect",h=>{s.event=h,!i.empty()&&i.classed(yt.eventRect)&&(e.hasArcType()||!e.toggleShape||s.cancelClick)&&s.cancelClick&&(s.cancelClick=!1)},!0),n.on("touchstart",h=>{s.event=h;const{target:g}=h;g&&g!==i.node()&&o()})},updateEventRect(e,t=!1){const s=this,{state:i,$el:n}=s,{eventReceiver:a,width:o,height:r,rendered:l,resizing:c}=i,u=e||n.eventRect,d=()=>{if(a){const h=ls(n.chart.node());a.rect=u.node().getBoundingClientRect().toJSON(),a.rect.top+=h.y,a.rect.left+=h.x}};(!l||c||t)&&(u.attr("x",0).attr("y",0).attr("width",o).attr("height",r),(!l||t)&&u.classed(yt.eventRect,!0)),d()},updateEventType(e){const t=this,s=Ce(e),i=s?t.$el.eventRect:e,n=s?e!==(i==null?void 0:i.datum().multipleX):!1;i&&(n&&(i==null||i.on("mouseover mousemove mouseout click",null)),t.isMultipleX()?t.generateEventRectsForMultipleXs(i):t.generateEventRectsForSingleX(i))},updateEventRectData(){const e=this,{config:t,scale:s,state:i}=e,n=s.zoom||s.x,a=t.axis_rotated,o=e.isMultipleX();let r,l,c,u;if(e.updateEventType(o),o)r=0,l=0,c=i.width,u=i.height;else{let g,f;if(e.axis.isCategorized())g=e.getEventRectWidth(),f=p=>n(p.x)-g/2;else{const p=({index:_})=>({prev:e.getPrevX(_),next:e.getNextX(_)});g=_=>{const x=p(_),m=n.domain();let y;return x.prev===null&&x.next===null?y=a?i.height:i.width:x.prev===null?y=(n(x.next)+n(_.x))/2:x.next===null?y=n(m[1])-(n(x.prev)+n(_.x))/2:(Object.keys(x).forEach((b,v)=>{var $;x[b]=($=x[b])!=null?$:m[v]}),y=Math.max(0,(n(x.next)-n(x.prev))/2)),y},f=_=>{const x=p(_);let m;return x.prev===null&&x.next===null?m=0:x.prev===null?m=n(n.domain()[0]):m=(n(_.x)+n(x.prev))/2,m}}r=a?0:f,l=a?f:0,c=a?i.width:g,u=a?g:i.height}const{eventReceiver:d}=i,h=(g,f)=>E(g)?g(f):g;d.coords.splice(d.data.length),d.data.forEach((g,f)=>{d.coords[f]={x:h(r,g),y:h(l,g),w:h(c,g),h:h(u,g)}})},selectRectForSingle(e,t){var s,i;const n=this,{config:a,$el:{main:o,circle:r}}=n,l=a.data_selection_enabled,c=a.data_selection_grouped,u=a.data_selection_isselectable,d=a.tooltip_grouped,h=n.getAllValuesOnIndex(t);if(d&&(n.showTooltip(h,e),(s=n.showGridFocus)==null||s.call(n,h),!l||c))return;!r&&o.selectAll(`.${O.EXPANDED}:not(.${Q.shape}-${t})`).classed(O.EXPANDED,!1);const g=o.selectAll(`.${Q.shape}-${t}`).classed(O.EXPANDED,!0).style("cursor",u?"pointer":null).filter(function(f){return n.isWithinShape(this,f)});g.empty()&&!d&&((i=n.hideGridFocus)==null||i.call(n),n.hideTooltip(),!c&&n.setExpand(t)),g.call(f=>{var p,_;const x=f.data();l&&(c||u!=null&&u.bind(n.api)(x))&&(e.style.cursor="pointer"),d||(n.showTooltip(x,e),(p=n.showGridFocus)==null||p.call(n,x),(_=n.unexpandCircles)==null||_.call(n),f.each(m=>n.setExpand(t,m.id)))})},selectRectForMultipleXs(e,t=!0){const s=this,{config:i,state:n}=s,a=s.filterTargetsToShow(s.data.targets);if(n.dragging||s.hasArcType(a))return;const o=mt(n.event,e),r=s.findClosestFromTargets(a,o);if(t&&n.mouseover&&(!r||r.id!==n.mouseover.id)&&(i.data_onout.call(s.api,n.mouseover),n.mouseover=void 0),!r){s.unselectRect();return}const c=(s.isBubbleType(r)||s.isScatterType(r)||!i.tooltip_grouped?[r]:s.filterByX(a,r.x)).map(d=>s.addName(d));s.showTooltip(c,e),s.setExpand(r.index,r.id,!0),s.showGridFocus(c);const u=s.dist(r,o);(s.isBarType(r.id)||u<s.getPointSensitivity(r))&&(s.$el.svg.select(`.${yt.eventRect}`).style("cursor","pointer"),t&&!n.mouseover&&(i.data_onover.call(s.api,r),n.mouseover=r))},unselectRect(){const e=this,{$el:{circle:t,tooltip:s}}=e;e.$el.svg.select(`.${yt.eventRect}`).style("cursor",null),e.hideGridFocus(),s&&(e.hideTooltip(),e._handleLinkedCharts(!1)),t&&!e.isPointFocusOnly()&&e.unexpandCircles(),e.expandBarTypeShapes(!1)},generateEventRectsForSingleX(e){const t=this,{config:s,state:i}=t,{eventReceiver:n}=i,a=e.style("cursor",s.data_selection_enabled&&s.data_selection_grouped?"pointer":null).on("click",function(o){i.event=o;const{currentIdx:r,data:l}=n,c=l[r===-1?t.getDataIndexFromEvent(o):r];t.clickHandlerForSingleX.bind(this)(c,t)}).datum({multipleX:!1});if(i.inputType==="mouse"){const o=r=>{const l=r?t.getDataIndexFromEvent(r):n.currentIdx;return l>-1?n.data[l]:null};a.on("mouseover",r=>{i.event=r,t.updateEventRect(),Object.values(t.$el.axisTooltip).forEach(l=>l==null?void 0:l.style("display",null))}).on("mousemove",function(r){const l=o(r);if(i.event=r,!l)return;let{index:c}=l;const u=s.line_step_type;if(s.line_step_tooltipMatch&&t.hasType("step")&&/^step\-(before|after)$/.test(u)){const h=t.scale.zoom||t.scale.x,g=t.axis.xs[c],f=h.invert(mt(r,this)[0]);u==="step-after"&&f<g?c-=1:u==="step-before"&&f>g&&(c+=1)}t.showAxisGridFocus();const d=s.tooltip_grouped&&c===n.currentIdx;if(i.dragging||i.flowing||t.hasArcType()||d){s.tooltip_show&&d&&t.setTooltipPosition();return}c!==n.currentIdx&&(t.setOverOut(!1,n.currentIdx),n.currentIdx=c),c===-1?t.unselectRect():t.selectRectForSingle(this,c),t.setOverOut(c!==-1,c)}).on("mouseout",r=>{i.event=r,!(!s||t.hasArcType()||n.currentIdx===-1)&&(t.hideAxisGridFocus(),t.unselectRect(),t.setOverOut(!1,n.currentIdx),n.currentIdx=-1)})}return a},clickHandlerForSingleX(e,t){const s=t,{config:i,state:n,$el:{main:a}}=s;if(!e||s.hasArcType()||n.cancelClick){n.cancelClick&&(n.cancelClick=!1);return}const{index:o}=e;a.selectAll(`.${Q.shape}-${o}`).each(function(r){var l;(i.data_selection_grouped||s.isWithinShape(this,r))&&((l=s.toggleShape)==null||l.call(s,this,r,o),i.data_onclick.bind(s.api)(r,this))})},generateEventRectsForMultipleXs(e){const t=this,{state:s}=t;e.on("click",function(i){s.event=i,t.clickHandlerForMultipleXS.bind(this)(t)}).datum({multipleX:!0}),s.inputType==="mouse"&&e.on("mouseover mousemove",function(i){s.event=i,t.selectRectForMultipleXs(this)}).on("mouseout",i=>{s.event=i,!(!t.config||t.hasArcType())&&t.unselectRect()})},clickHandlerForMultipleXS(e){const t=e,{config:s,state:i}=t,n=t.filterTargetsToShow(t.data.targets);if(t.hasArcType(n))return;const a=mt(i.event,this),o=t.findClosestFromTargets(n,a),r=s.point_sensitivity==="radius"?o.r:s.point_sensitivity;o&&(t.isBarType(o.id)||t.dist(o,a)<r)&&t.$el.main.selectAll(`.${Q.shapes}${t.getTargetSelectorSuffix(o.id)}`).selectAll(`.${Q.shape}-${o.index}`).each(function(){var l;(s.data_selection_grouped||t.isWithinShape(this,o))&&((l=t.toggleShape)==null||l.call(t,this,o,o.index),s.data_onclick.bind(t.api)(o,this))})}},ao=j(12),oo={generateFlow(e){const t=this,{data:s,state:i,$el:n}=t;return function(){const a=e.flow.length;i.flowing=!0,s.targets.forEach(r=>{r.values.splice(0,a)}),t.updateXGrid&&t.updateXGrid(!0);const o={};["axis.x","grid.x","gridLines.x","region.list","text","bar","line","area","circle"].forEach(r=>{const l=r.split(".");let c=n[l[0]];c&&l.length>1&&(c=c[l[1]]),c!=null&&c.size()&&(o[r]=c)}),t.hideGridFocus(),t.setFlowList(o,e)}},setFlowList(e,t){const s=this,{flow:i,targets:n}=t,{duration:a=t.duration,index:o,length:r,orgDataCount:l}=i,c=s.getFlowTransform(n,l,o,r),u=ps();let d;u.add(Object.keys(e).map(h=>(d=e[h].transition().ease(ao.easeLinear).duration(a),h==="axis.x"?d=d.call(g=>{s.axis.x.setTransition(g).create(g)}):h==="region.list"?d=d.filter(s.isRegionOnX).attr("transform",c):d=d.attr("transform",c),d))),d.call(u,()=>{s.cleanUpFlow(e,t)})},cleanUpFlow(e,t){const s=this,{config:i,state:n,$el:{svg:a}}=s,o=i.axis_rotated,{flow:r,shape:l,xv:c}=t,{cx:u,cy:d,xForText:h,yForText:g}=l.pos,{done:f=()=>{},length:p}=r;p&&(["circle","text","shape","eventRect"].forEach(_=>{const x=[];for(let m=0;m<p;m++)x.push(`.${X[_]}-${m}`);a.selectAll(`.${X[`${_}s`]}`).selectAll(x).remove()}),a.select(`.${X.xgrid}`).remove()),Object.keys(e).forEach(_=>{const x=e[_];if(_!=="axis.x"&&x.attr("transform",null),_==="grid.x")x.attr(n.xgridAttr);else if(_==="gridLines.x")x.attr("x1",o?0:c).attr("x2",o?n.width:c),x.select("text").attr("x",o?n.width:0).attr("y",c);else if(/^(area|bar|line)$/.test(_))x.attr("d",l.type[_]);else if(_==="text")x.attr("x",h).attr("y",g).style("fill-opacity",s.opacityForText.bind(s));else if(_==="circle")if(s.isCirclePoint())x.attr("cx",u).attr("cy",d);else{const m=b=>u(b)-i.point_r,y=b=>d(b)-i.point_r;x.attr("x",m).attr("y",y)}else _==="region.list"&&x.select("rect").filter(s.isRegionOnX).attr("x",s.regionX.bind(s)).attr("width",s.regionWidth.bind(s))}),i.interaction_enabled&&s.redrawEventRect(),f.call(s.api),n.flowing=!1},getFlowTransform(e,t,s,i){const n=this,{data:a,scale:{x:o}}=n,r=a.targets[0].values;let l=n.getValueOnIndex(r,s),c=n.getValueOnIndex(r,s+i),u;const d=o.domain(),h=n.updateXDomain(e,!0,!0);t?t===1||(l==null?void 0:l.x)===(c==null?void 0:c.x)?u=o(d[0])-o(h[0]):u=n.axis.isTimeSeries()?o(d[0])-o(h[0]):o((l==null?void 0:l.x)||0)-o(c.x):r.length!==1?u=o(d[0])-o(h[0]):n.axis.isTimeSeries()?(l=n.getValueOnIndex(r,0),c=n.getValueOnIndex(r,r.length-1),u=o(l.x)-o(c.x)):u=Xt(h)/2;const g=Xt(d)/Xt(h);return`translate(${u},0) scale(${g},1)`}},ro={initClip(){const e=this,{clip:t,datetimeId:s}=e.state;t.id=`${s}-clip`,t.idXAxis=`${t.id}-xaxis`,t.idYAxis=`${t.id}-yaxis`,t.idGrid=`${t.id}-grid`,t.path=e.getClipPath(t.id),t.pathXAxis=e.getClipPath(t.idXAxis),t.pathYAxis=e.getClipPath(t.idYAxis),t.pathGrid=e.getClipPath(t.idGrid)},getClipPath(e){const t=this,{config:s}=t;return!s.clipPath&&/-clip$/.test(e)||!s.axis_x_clipPath&&/-clip-xaxis$/.test(e)||!s.axis_y_clipPath&&/-clip-yaxis$/.test(e)?null:`url(#${e})`},appendClip(e,t){t&&e.append("clipPath").attr("id",t).append("rect")},setXAxisClipPath(e){const t=this,{config:s,state:{margin:i,width:n,height:a}}=t,o=s.axis_rotated,r=Math.max(30,i.left)-(o?0:20),l=(o?i.top+a+10:i.bottom)+20,c=o?-(1+r):-(r-1),u=-15,d=o?i.left+20:n+10+r;e.attr("x",c).attr("y",u).attr("width",d).attr("height",l)},setYAxisClipPath(e){const t=this,{config:s,state:{margin:i,width:n,height:a}}=t,o=s.axis_rotated,r=Math.max(30,i.left)-(o?20:0),l=s.axis_y_inner,c=l&&!o?s.axis_y_label.text?-20:-1:o?-(1+r):-(r-1),u=-(o?20:i.top),d=(o?n+15+r:i.left+20)+(l?20:0),h=(o?i.bottom+10:i.top+a)+10;e.attr("x",c).attr("y",u).attr("width",d).attr("height",h)},updateXAxisTickClip(){const e=this,{config:t,state:{clip:s,xAxisHeight:i},$el:{defs:n}}=e,a=e.getHorizontalAxisHeight("x");if(n&&!s.idXAxisTickTexts){const o=`${s.id}-xaxisticktexts`;e.appendClip(n,o),s.pathXAxisTickTexts=e.getClipPath(s.idXAxisTickTexts),s.idXAxisTickTexts=o}!t.axis_x_tick_multiline&&e.getAxisTickRotate("x")&&a!==i&&(e.setXAxisTickClipWidth(),e.setXAxisTickTextClipPathWidth()),e.state.xAxisHeight=a},setXAxisTickClipWidth(){const e=this,{config:t,state:{current:{maxTickSize:s}}}=e,i=e.getAxisTickRotate("x");if(!t.axis_x_tick_multiline&&i){const n=Math.sin(Math.PI/180*Math.abs(i));s.x.clipPath=(e.getHorizontalAxisHeight("x")-20)/n}else s.x.clipPath=null},setXAxisTickTextClipPathWidth(){const e=this,{state:{clip:t,current:s},$el:{svg:i}}=e;i&&i.select(`#${t.idXAxisTickTexts} rect`).attr("width",s.maxTickSize.x.clipPath).attr("height",30)}};const lo=e=>D(e.position)||"end",co=e=>e.position==="start"?4:e.position==="middle"?0:-4;function Ys(e,t,s){return i=>{let n=e?0:t;return i.position==="start"?n=e?-s:0:i.position==="middle"&&(n=(e?-s:t)/2),n}}function js(e,t){t==="grid"&&e.each(function(){const s=(0,w.select)(this);["x1","x2","y1","y2"].forEach(i=>s.attr(i,Math.ceil(+s.attr(i))))})}var uo={hasGrid(){const{config:e}=this;return["x","y"].some(t=>e[`grid_${t}_show`]||e[`grid_${t}_lines`].length)},initGrid(){const e=this;e.hasGrid()&&e.initGridLines(),e.initFocusGrid()},initGridLines(){const e=this,{config:t,state:{clip:s},$el:i}=e;(t.grid_x_lines.length||t.grid_y_lines.length)&&(i.gridLines.main=i.main.insert("g",`.${O.chart}${t.grid_lines_front?" + *":""}`).attr("clip-path",s.pathGrid).attr("class",`${J.grid} ${J.gridLines}`),i.gridLines.main.append("g").attr("class",J.xgridLines),i.gridLines.main.append("g").attr("class",J.ygridLines),i.gridLines.x=(0,w.selectAll)([]))},updateXGrid(e){const t=this,{config:s,scale:i,state:n,$el:{main:a,grid:o}}=t,r=s.axis_rotated,l=t.generateGridData(s.grid_x_type,i.x),c=t.axis.isCategorized()?t.axis.x.tickOffset():0,u=d=>(i.zoom||i.x)(d)+c*(r?-1:1);n.xgridAttr=r?{x1:0,x2:n.width,y1:u,y2:u}:{x1:u,x2:u,y1:0,y2:n.height},o.x=a.select(`.${J.xgrids}`).selectAll(`.${J.xgrid}`).data(l),o.x.exit().remove(),o.x=o.x.enter().append("line").attr("class",J.xgrid).merge(o.x),e||o.x.each(function(){const d=(0,w.select)(this);Object.keys(n.xgridAttr).forEach(h=>{d.attr(h,n.xgridAttr[h]).style("opacity",()=>d.attr(r?"y1":"x1")===(r?n.height:0)?"0":null)})})},updateYGrid(){const e=this,{axis:t,config:s,scale:i,state:n,$el:{grid:a,main:o}}=e,r=s.axis_rotated,l=u=>Math.ceil(i.y(u)),c=t.y.getGeneratedTicks(s.grid_y_ticks)||e.scale.y.ticks(s.grid_y_ticks);a.y=o.select(`.${J.ygrids}`).selectAll(`.${J.ygrid}`).data(c),a.y.exit().remove(),a.y=a.y.enter().append("line").attr("class",J.ygrid).merge(a.y),a.y.attr("x1",r?l:0).attr("x2",r?l:n.width).attr("y1",r?0:l).attr("y2",r?n.height:l),js(a.y,"grid")},updateGrid(){const e=this,{$el:{grid:t,gridLines:s}}=e;!s.main&&e.initGridLines(),t.main.style("visibility",e.hasArcType()?"hidden":null),e.hideGridFocus(),e.updateGridLines("x"),e.updateGridLines("y")},updateGridLines(e){const t=this,{config:s,$el:{gridLines:i,main:n},$T:a}=t,o=s.axis_rotated,r=e==="x";s[`grid_${e}_show`]&&t[`update${e.toUpperCase()}Grid`]();let l=n.select(`.${J[`${e}gridLines`]}`).selectAll(`.${J[`${e}gridLine`]}`).data(s[`grid_${e}_lines`]);a(l.exit()).style("opacity","0").remove();const c=l.enter().append("g");c.append("line").style("opacity","0"),l=c.merge(l),l.each(function(u){const d=(0,w.select)(this);d.select("text").empty()&&u.text&&d.append("text").style("opacity","0")}),a(l.attr("class",u=>`${J[`${e}gridLine`]} ${u.class||""}`.trim()).select("text").attr("text-anchor",lo).attr("transform",()=>r?o?null:"rotate(-90)":o?"rotate(-90)":null).attr("dx",co).attr("dy",-5)).text(function(u){var d;return(d=u.text)!=null?d:this.remove()}),i[e]=l},redrawGrid(e){const t=this,{config:{axis_rotated:s},state:{width:i,height:n},$el:{gridLines:a},$T:o}=t,r=t.xv.bind(t),l=t.yv.bind(t);let c=a.x.select("line"),u=a.x.select("text"),d=a.y.select("line"),h=a.y.select("text");return c=o(c,e).attr("x1",s?0:r).attr("x2",s?i:r).attr("y1",s?r:0).attr("y2",s?r:n),u=o(u,e).attr("x",Ys(!s,i,n)).attr("y",r),d=o(d,e).attr("x1",s?l:0).attr("x2",s?l:i).attr("y1",s?0:l).attr("y2",s?n:l),h=o(h,e).attr("x",Ys(s,i,n)).attr("y",l),[c.style("opacity",null),u.style("opacity",null),d.style("opacity",null),h.style("opacity",null)]},initFocusGrid(){const e=this,{config:t,state:{clip:s},$el:i}=e,n=t.grid_front,a=`.${n&&i.gridLines.main?J.gridLines:O.chart}${n?" + *":""}`,o=i.main.insert("g",a).attr("clip-path",s.pathGrid).attr("class",J.grid);if(i.grid.main=o,t.grid_x_show&&o.append("g").attr("class",J.xgrids),t.grid_y_show&&o.append("g").attr("class",J.ygrids),t.axis_tooltip){const r=o.append("g").attr("class","bb-axis-tooltip");r.append("line").attr("class","bb-axis-tooltip-x"),r.append("line").attr("class","bb-axis-tooltip-y")}t.interaction_enabled&&t.grid_focus_show&&!t.axis_tooltip&&(o.append("g").attr("class",W.xgridFocus).append("line").attr("class",W.xgridFocus),t.grid_focus_y&&!t.tooltip_grouped&&o.append("g").attr("class",W.ygridFocus).append("line").attr("class",W.ygridFocus))},showAxisGridFocus(){var e,t;const s=this,{config:i,format:n,state:{event:a,width:o,height:r}}=s,l=i.axis_rotated,[c,u]=mt(a,(e=s.$el.eventRect)==null?void 0:e.node()),d={x:c,y:u};for(const[h,g]of Object.entries(s.$el.axisTooltip)){const f=h==="x"&&!l||h!=="x"&&l?"x":"y",p=d[f];let _=(t=s.scale[h])==null?void 0:t.invert(p);_&&(_=h==="x"&&s.axis.isTimeSeries()?n.xAxisTick(_):_==null?void 0:_.toFixed(2),g==null||g.attr(f,p).text(_))}s.$el.main.selectAll("line.bb-axis-tooltip-x, line.bb-axis-tooltip-y").style("visibility",null).each(function(h,g){const f=(0,w.select)(this);g===0?f.attr("x1",c).attr("x2",c).attr("y1",g?0:r).attr("y2",g?r:0):f.attr("x1",g?0:o).attr("x2",g?o:0).attr("y1",u).attr("y2",u)})},hideAxisGridFocus(){const e=this;e.$el.main.selectAll("line.bb-axis-tooltip-x, line.bb-axis-tooltip-y").style("visibility","hidden"),Object.values(e.$el.axisTooltip).forEach(t=>t==null?void 0:t.style("display","none"))},showGridFocus(e){var t;const s=this,{config:i,state:{width:n,height:a}}=s,o=i.axis_rotated,r=s.$el.main.selectAll(`line.${W.xgridFocus}, line.${W.ygridFocus}`),l=(e||[r.datum()]).filter(d=>d&&D(s.getBaseValue(d)));if(!i.tooltip_show||l.length===0||!i.axis_x_forceAsSingle&&s.hasType("bubble")||s.hasArcType())return;const c=i.grid_focus_edge&&!i.tooltip_grouped,u=s.xx.bind(s);r.style("visibility",null).data(l.concat(l)).each(function(d){const h=(0,w.select)(this),g={x:u(d),y:s.getYScaleById(d.id)(d.value)};let f;if(h.classed(W.xgridFocus))f=o?[null,g.x,c?g.y:n,g.x]:[g.x,c?g.y:null,g.x,a];else{const p=s.axis.getId(d.id)==="y2";f=o?[g.y,c&&!p?g.x:null,g.y,c&&p?g.x:a]:[c&&p?g.x:null,g.y,c&&!p?g.x:n,g.y]}["x1","y1","x2","y2"].forEach((p,_)=>h.attr(p,f[_]))}),js(r,"grid"),(t=s.showCircleFocus)==null||t.call(s,e)},hideGridFocus(){var e;const t=this,{state:{inputType:s,resizing:i},$el:{main:n}}=t;(s==="mouse"||!i)&&(n.selectAll(`line.${W.xgridFocus}, line.${W.ygridFocus}`).style("visibility","hidden"),(e=t.hideCircleFocus)==null||e.call(t))},updateGridFocus(){var e;const t=this,{state:{inputType:s,width:i,height:n,resizing:a},$el:{grid:o}}=t,r=o.main.select(`line.${W.xgridFocus}`);if(s==="touch")r.empty()?a&&((e=t.showCircleFocus)==null||e.call(t)):t.showGridFocus();else{const l=t.config.axis_rotated;r.attr("x1",l?0:-10).attr("x2",l?i:-10).attr("y1",l?-10:0).attr("y2",l?-10:n)}return!0},generateGridData(e,t){const s=this,i=s.$el.main.select(`.${st.axisX}`).selectAll(".tick").size();let n=[];if(e==="year"){const a=s.getXDomain(),[o,r]=a.map(l=>l.getFullYear());for(let l=o;l<=r;l++)n.push(new Date(`${l}-01-01 00:00:00`))}else n=t.ticks(10),n.length>i&&(n=n.filter(a=>String(a).indexOf(".")<0));return n},getGridFilterToRemove(e){return e?t=>{let s=!1;return(B(e)?e.concat():[e]).forEach(i=>{("value"in i&&t.value===i.value||"class"in i&&t.class===i.class)&&(s=!0)}),s}:()=>!0},removeGridLines(e,t){const s=this,{config:i,$T:n}=s,a=s.getGridFilterToRemove(e),o=u=>!a(u),r=t?J.xgridLines:J.ygridLines,l=t?J.xgridLine:J.ygridLine;n(s.$el.main.select(`.${r}`).selectAll(`.${l}`).filter(a)).style("opacity","0").remove();const c=`grid_${t?"x":"y"}_lines`;i[c]=i[c].filter(o)}},ho={initRegion(){const e=this,{$el:t}=e;t.region.main=t.main.insert("g",":first-child").attr("clip-path",e.state.clip.path).attr("class",ie.regions)},updateRegion(){const e=this,{config:t,$el:{region:s},$T:i}=e;s.main||e.initRegion(),s.main.style("visibility",e.hasArcType()?"hidden":null);const n=s.main.selectAll(`.${ie.region}`).data(t.regions);i(n.exit()).style("opacity","0").remove();const a=n.enter().append("g");a.append("rect").style("fill-opacity","0"),s.list=a.merge(n).attr("class",e.classRegion.bind(e)),s.list.each(function(o){var r;(0,w.select)(this).select("text").empty()&&((r=o.label)!=null&&r.text)&&(0,w.select)(this).append("text").style("opacity","0")})},redrawRegion(e){const t=this,{$el:{region:s},$T:i}=t;let n=s.list.select("rect"),a=s.list.selectAll("text");return n=i(n,e).attr("x",t.regionX.bind(t)).attr("y",t.regionY.bind(t)).attr("width",t.regionWidth.bind(t)).attr("height",t.regionHeight.bind(t)),a=i(a,e).attr("transform",o=>{var r;const{x:l=0,y:c=0,rotated:u=!1}=(r=o.label)!=null?r:{};return`translate(${t.regionX.bind(t)(o)+l}, ${t.regionY.bind(t)(o)+c})${u?" rotate(-90)":""}`}).attr("text-anchor",o=>{var r;return(r=o.label)!=null&&r.rotated?"end":null}).attr("dy","1em").style("fill",o=>{var r,l;return(l=(r=o.label)==null?void 0:r.color)!=null?l:null}).text(o=>{var r;return(r=o.label)==null?void 0:r.text}),[n.style("fill-opacity",o=>D(o.opacity)?o.opacity:null).on("end",function(){(0,w.select)(this.parentNode).selectAll("rect:not([x])").remove()}),a.style("opacity",null)]},getRegionXY(e,t){const s=this,{config:i,scale:n}=s,a=i.axis_rotated,o=e==="x";let r="start",l,c=0;return t.axis==="y"||t.axis==="y2"?(o||(r="end"),(o?a:!a)&&r in t&&(l=n[t.axis],c=l(t[r]))):(o?!a:a)&&r in t&&(l=n.zoom||n.x,c=l(s.axis.isTimeSeries()?_t.call(s,t[r]):t[r])),c},regionX(e){return this.getRegionXY("x",e)},regionY(e){return this.getRegionXY("y",e)},getRegionSize(e,t){const s=this,{config:i,scale:n,state:a}=s,o=i.axis_rotated,r=e==="width",l=s[r?"regionX":"regionY"](t);let c,u="end",d=a[e];return t.axis==="y"||t.axis==="y2"?(r||(u="start"),(r?o:!o)&&u in t&&(c=n[t.axis],d=c(t[u]))):(r?!o:o)&&u in t&&(c=n.zoom||n.x,d=c(s.axis.isTimeSeries()?_t.call(s,t[u]):t[u])),d<l?0:d-l},regionWidth(e){return this.getRegionSize("width",e)},regionHeight(e){return this.getRegionSize("height",e)},isRegionOnX(e){return!e.axis||e.axis==="x"}},go={getAxisSize(e){const t=this,s=t.config.axis_rotated;return s&&e==="x"||!s&&/y2?/.test(e)?t.getAxisWidthByAxisId(e,!0):t.getHorizontalAxisHeight(e)},getAxisWidthByAxisId(e,t){var s,i;const n=this;if(n.axis){const a=(s=n.axis)==null?void 0:s.getLabelPositionById(e),{width:o}=n.axis.getMaxTickSize(e,t),r=o===0?.5:0;return o+(((i=n.config.padding)==null?void 0:i.mode)==="fit"?a.isInner?10+r:10:a.isInner?20+r:40)}else return 40},getHorizontalAxisHeight(e){var t,s;const i=this,{config:n,state:a}=i,{rotatedPadding:o,isLegendRight:r,isLegendInset:l}=a,c=n.axis_rotated,u=((t=n.padding)==null?void 0:t.mode)==="fit",d=n[`axis_${e}_inner`],h=n[`axis_${e}_label`].text,g=13;let f=((s=n.padding)==null?void 0:s.mode)==="fit"?d&&!h?e==="y"?1:0:20:30;if(e==="x"&&!n.axis_x_show)return 8;if(e==="x"&&C(n.axis_x_height))return n.axis_x_height;if(e==="y"&&!n.axis_y_show)return n.legend_show&&!r&&!l?10:1;if(e==="y2"&&!n.axis_y2_show)return u?0:o.top;const p=i.axis.getMaxTickSize(e),_=Math.abs(n.axis_x_tick_rotate)>0&&(!n.axis_x_tick_autorotate||i.needToRotateXAxisTickTexts());return(n.axis_x_tick_multiline||_)&&p.height>g&&(f+=p.height-g),f+(i.axis.getLabelPositionById(e).isInner?0:10)+(e==="y2"&&!c?-10:0)},getEventRectWidth(){const e=this,{config:t,axis:s}=e,i=t.axis_x_inverted,n=s.x.tickInterval();return Math.max(0,i?Math.abs(n):n)},getAxisTickRotate(e){const t=this,{axis:s,config:i,state:n,$el:a}=t;let o=i[`axis_${e}_tick_rotate`];if(e==="x"){const r=s.isCategorized()||s.isTimeSeries();if(i.axis_x_tick_fit&&r){const l=i.axis_x_tick_count,c=n.current.maxTickSize.x.ticks.length;let u=0;if(l?u=l>c?c:l:c&&(u=c),u!==n.axis.x.tickCount){const{targets:d}=t.data;n.axis.x.padding=t.getXDomainPadding([t.getXDomainMinMax(d,"min"),t.getXDomainMinMax(d,"max")],u)}n.axis.x.tickCount=u}a.svg&&i.axis_x_tick_autorotate&&i.axis_x_tick_fit&&!i.axis_x_tick_multiline&&!i.axis_x_tick_culling&&r&&(o=t.needToRotateXAxisTickTexts()?i.axis_x_tick_rotate:0)}return o},needToRotateXAxisTickTexts(){const e=this,{state:{axis:t,current:s,isLegendRight:i,legendItemWidth:n}}=e,a=i&&n,o=s.width-a-e.getCurrentPaddingByDirection("left")-e.getCurrentPaddingByDirection("right"),r=t.x.tickCount+t.x.padding.left+t.x.padding.right,{width:l}=e.axis.getMaxTickSize("x"),c=r?o/r:0;return l>c}},fo={axis_x_clipPath:!0,axis_x_show:!0,axis_x_forceAsSingle:!1,axis_x_type:"indexed",axis_x_localtime:!0,axis_x_categories:[],axis_x_tick_centered:!1,axis_x_tick_format:void 0,axis_x_tick_culling:{},axis_x_tick_culling_max:10,axis_x_tick_culling_lines:!0,axis_x_tick_count:void 0,axis_x_tick_show:!0,axis_x_tick_text_show:!0,axis_x_tick_text_inner:!1,axis_x_tick_text_position:{x:0,y:0},axis_x_tick_fit:!0,axis_x_tick_values:null,axis_x_tick_autorotate:!1,axis_x_tick_rotate:0,axis_x_tick_outer:!0,axis_x_tick_multiline:!0,axis_x_tick_width:null,axis_x_tick_tooltip:!1,axis_x_max:void 0,axis_x_min:void 0,axis_x_inverted:!1,axis_x_padding:{},axis_x_height:void 0,axis_x_extent:void 0,axis_x_label:{},axis_x_axes:[]},po={axis_y_clipPath:!0,axis_y_show:!0,axis_y_type:"indexed",axis_y_max:void 0,axis_y_min:void 0,axis_y_inverted:!1,axis_y_center:void 0,axis_y_inner:!1,axis_y_label:{},axis_y_tick_format:void 0,axis_y_tick_culling:!1,axis_y_tick_culling_max:5,axis_y_tick_culling_lines:!0,axis_y_tick_outer:!0,axis_y_tick_values:null,axis_y_tick_rotate:0,axis_y_tick_count:void 0,axis_y_tick_show:!0,axis_y_tick_stepSize:null,axis_y_tick_text_show:!0,axis_y_tick_text_position:{x:0,y:0},axis_y_tick_time_value:void 0,axis_y_padding:{},axis_y_default:void 0,axis_y_axes:[]},xo={axis_y2_show:!1,axis_y2_type:"indexed",axis_y2_max:void 0,axis_y2_min:void 0,axis_y2_inverted:!1,axis_y2_center:void 0,axis_y2_inner:!1,axis_y2_label:{},axis_y2_tick_format:void 0,axis_y2_tick_culling:!1,axis_y2_tick_culling_max:5,axis_y2_tick_culling_lines:!0,axis_y2_tick_outer:!0,axis_y2_tick_values:null,axis_y2_tick_rotate:0,axis_y2_tick_count:void 0,axis_y2_tick_show:!0,axis_y2_tick_stepSize:null,axis_y2_tick_text_show:!0,axis_y2_tick_text_position:{x:0,y:0},axis_y2_padding:{},axis_y2_default:void 0,axis_y2_axes:[]},_o=Object.defineProperty,Hs=Object.getOwnPropertySymbols,mo=Object.prototype.hasOwnProperty,$o=Object.prototype.propertyIsEnumerable,Ws=(e,t,s)=>t in e?_o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Ge=(e,t)=>{for(var s in t||(t={}))mo.call(t,s)&&Ws(e,s,t[s]);if(Hs)for(var s of Hs(t))$o.call(t,s)&&Ws(e,s,t[s]);return e},yo=Ge(Ge(Ge({axis_rotated:!1,axis_tooltip:!1},fo),po),xo),bo={grid_x_show:!1,grid_x_type:"tick",grid_x_lines:[],grid_y_show:!1,grid_y_lines:[],grid_y_ticks:void 0,grid_focus_edge:!1,grid_focus_show:!0,grid_focus_y:!1,grid_front:!1,grid_lines_front:!0},vo={data_xs:{},data_xFormat:"%Y-%m-%d",data_xLocaltime:!0,data_xSort:!0,data_axes:{},data_regions:{},data_stack_normalize:!1};const To=[Ga,Va,Ya,ja,Ha,Wa,Ua],Us={axis:so,clip:ro,eventrect:no,flow:oo,grid:uo,region:ho,sizeAxis:go},Zs={optDataAxis:vo,optAxis:yo,optGrid:bo};var qs=j(13),Ao=Object.defineProperty,wo=Object.defineProperties,So=Object.getOwnPropertyDescriptors,Ks=Object.getOwnPropertySymbols,Ro=Object.prototype.hasOwnProperty,Co=Object.prototype.propertyIsEnumerable,Js=(e,t,s)=>t in e?Ao(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,ko=(e,t)=>{for(var s in t||(t={}))Ro.call(t,s)&&Js(e,s,t[s]);if(Ks)for(var s of Ks(t))Co.call(t,s)&&Js(e,s,t[s]);return e},Eo=(e,t)=>wo(e,So(t));function Qs(e=0){const t=this,{config:s,state:i}=t,n=t.hasMultiArcGauge(),a=i.gaugeArcWidth/t.filterTargetsToShow(t.data.targets).length,o=e?Math.min(i.radiusExpanded*e-i.radius,a*.8-(1-e)*100):0;return{inner(r){const{innerRadius:l}=t.getRadius(r);return n?i.radius-a*(r.index+1):C(l)?l:0},outer(r){const{outerRadius:l}=t.getRadius(r);let c;if(n)c=i.radius-a*r.index+o;else if(t.hasType("polar")&&!e)c=t.getPolarOuterRadius(r,l);else if(c=l,e){let{radiusExpanded:u}=i;i.radius!==l&&(u-=Math.abs(i.radius-l)),c=u*e}return c},corner(r,l){const{arc_cornerRadius_ratio:c=0,arc_cornerRadius:u=0}=s,{data:{id:d},value:h}=r;let g=0;return c?g=c*l:g=C(u)?u:u.call(t.api,d,h,l),g}}}function Ve(e){return function(t){const s=({startAngle:n=0,endAngle:a=0,padAngle:o=0})=>({startAngle:n,endAngle:a,padAngle:o}),i=(0,qs.interpolate)(s(this._current),s(t));return this._current=t,function(n){const a=i(n),{data:o,index:r,value:l}=t;return e(Eo(ko({},a),{data:o,index:r,value:l}))}}}var Lo={initPie(){const e=this,{config:t}=e,s=t.data_type,i=t[`${s}_padding`],n=t[`${s}_startingAngle`]||0,a=(i?i*.01:t[`${s}_padAngle`])||0;e.pie=(0,K.pie)().startAngle(n).endAngle(n+2*Math.PI).padAngle(a).value(o=>{var r,l;return(l=(r=o.values)==null?void 0:r.reduce((c,u)=>c+u.value,0))!=null?l:o}).sort(e.getSortCompareFn.bind(e)(!0))},updateRadius(){const e=this,{config:t,state:s}=e,i=t.data_type,n=t[`${i}_padding`],a=t.gauge_width||t.donut_width,o=e.filterTargetsToShow(e.data.targets).length*t.gauge_arcs_minWidth;s.radiusExpanded=Math.min(s.arcWidth,s.arcHeight)/2*(e.hasMultiArcGauge()&&t.gauge_label_show?.85:1),s.radius=s.radiusExpanded*.95,s.innerRadiusRatio=a?(s.radius-a)/s.radius:.6,s.gaugeArcWidth=a||(o<=s.radius-s.innerRadius?s.radius-s.innerRadius:o<=s.radius?o:s.radius);const r=t.pie_innerRadius||(n?n*(s.innerRadiusRatio+.1):0);s.outerRadius=t.pie_outerRadius,s.innerRadius=e.hasType("donut")||e.hasType("gauge")?s.radius*s.innerRadiusRatio:r},getRadius(e){const t=this,s=e==null?void 0:e.data;let{innerRadius:i,outerRadius:n}=t.state;return!C(i)&&s&&(i=i[s.id]||0),F(n)&&s&&s.id in n?n=n[s.id]:C(n)||(n=t.state.radius),{innerRadius:i,outerRadius:n}},updateArc(){const e=this;e.updateRadius(),e.svgArc=e.getSvgArc(),e.svgArcExpanded=e.getSvgArcExpanded()},getArcLength(){const e=this,{config:t}=e,s=t.gauge_arcLength*3.6;let i=2*(s/360);return s<-360?i=-2:s>360&&(i=2),i*Math.PI},getStartingAngle(){const e=this,{config:t}=e,s=t.data_type,i=e.hasType("gauge")?t.gauge_fullCircle:!1,n=-1*Math.PI/2,a=Math.PI/2;let o=t[`${s}_startingAngle`]||0;return!i&&o<=n?o=n:!i&&o>=a?o=a:(o>Math.PI||o<-1*Math.PI)&&(o=Math.PI),o},updateAngle(e,t=!1){var s;const i=this,{config:n,state:a}=i,o=t&&i.hasType("gauge");let{pie:r}=i,l=e,c=!1;if(!n)return null;const u=i.getStartingAngle(),d=n.gauge_fullCircle||t&&!o?i.getArcLength():u*-2;if(l.data&&i.isGaugeType(l.data)&&!i.hasMultiArcGauge()){const{gauge_min:h,gauge_max:g}=n,f=i.getTotalDataSum(a.rendered),p=d*((f-h)/(g-h));r=r.startAngle(u).endAngle(p+u)}if(t===!1&&r(i.filterTargetsToShow()).forEach((h,g)=>{var f;!c&&h.data.id===((f=l.data)==null?void 0:f.id)&&(c=!0,l=h,l.index=g)}),isNaN(l.startAngle)&&(l.startAngle=0),isNaN(l.endAngle)&&(l.endAngle=l.startAngle),t||l.data&&(n.gauge_enforceMinMax||i.hasMultiArcGauge())){const{gauge_min:h,gauge_max:g}=n,f=t&&!o?i.getTotalDataSum(a.rendered):g,p=d/(f-h),_=(s=l.value)!=null?s:0,x=_<h?0:_<f?_-h:f-h;l.startAngle=u,l.endAngle=u+p*x}return c||t?l:null},getSvgArc(){const e=this,{inner:t,outer:s,corner:i}=Qs.call(e),n=(0,K.arc)().innerRadius(t).outerRadius(s),a=function(o,r){var l;let c="M 0 0";if(o.value||o.data){const u=r?o:(l=e.updateAngle(o))!=null?l:null;u&&(c=n.cornerRadius(i(u,s(u)))(u))}return c};return a.centroid=n.centroid,a},getSvgArcExpanded(e=1){const t=this,{inner:s,outer:i,corner:n}=Qs.call(t,e),a=(0,K.arc)().innerRadius(s).outerRadius(i);return o=>{const r=t.updateAngle(o),l=i(r);let c=0;return r&&(c=n(r,l)),r?a.cornerRadius(c)(r):"M 0 0"}},getArc(e,t,s){return s||this.isArcType(e.data)?this.svgArc(e,t):"M 0 0"},redrawArcRangeText(){const e=this,{config:t,$el:{arcs:s},state:i,$T:n}=e,a=t.arc_rangeText_format,o=e.hasType("gauge")&&t.arc_rangeText_fixed;let r=t.arc_rangeText_values;if(r!=null&&r.length){const l=t.arc_rangeText_unit==="%",c=e.getTotalDataSum(i.rendered);l&&(r=r.map(h=>c/100*h));const u=e.pie(r).map((h,g)=>(h.index=g,h));let d=s.selectAll(`.${N.arcRange}`).data(r);d.exit(),d=n(d.enter().append("text").attr("class",N.arcRange).style("text-anchor","middle").style("pointer-events","none").style("opacity","0").text(h=>{const g=l?h/c*100:h;return E(a)?a(g):`${g}${l?"%":""}`}).merge(d)),(!i.rendered||i.rendered&&!o)&&c>0&&d.attr("transform",(h,g)=>e.transformForArcLabel(u[g],!0)),d.style("opacity",h=>!o&&(h>c||c===0)?"0":null)}},transformForArcLabel(e,t=!1){var s,i,n;const a=this,{config:o,state:{radiusExpanded:r}}=a,l=a.updateAngle(e,t);let c="";if(l){if(t||a.hasMultiArcGauge()){const u=Math.sin(l.endAngle-Math.PI/2),d=o.arc_rangeText_position;let h=Math.cos(l.endAngle-Math.PI/2)*(r+(t?5:25)),g=u*(r+15-Math.abs(u*10))+3;if(t&&d){const f=o.arc_rangeText_values,p=E(d)?d(f[e.index]):d;h+=(s=p==null?void 0:p.x)!=null?s:0,g+=(i=p==null?void 0:p.y)!=null?i:0}c=`translate(${h},${g})`}else if(!a.hasType("gauge")||a.data.targets.length>1){let{outerRadius:u}=a.getRadius(e);a.hasType("polar")&&(u=a.getPolarOuterRadius(e,u));const d=this.svgArc.centroid(l),[h,g]=d.map(_=>isNaN(_)?0:_),f=Math.sqrt(h*h+g*g);let p=(n=["donut","gauge","pie","polar"].filter(a.hasType.bind(a)).map(_=>o[`${_}_label_ratio`]))==null?void 0:n[0];p?p=E(p)?p.bind(a.api)(e,u,f):p:p=u&&(f?(36/u>.375?1.175-36/u:.8)*u/f:0),c=`translate(${h*p},${g*p})`}}return c},convertToArcData(e){return this.addName({id:"data"in e?e.data.id:e.id,value:e.value,ratio:this.getRatio("arc",e),index:e.index})},textForArcLabel(e){const t=this,s=t.hasType("gauge");t.shouldShowArcLabel()&&e.style("fill",t.updateTextColor.bind(t)).attr("filter",i=>t.updateTextBGColor.bind(t)(i,t.config.data_labels_backgroundColors)).each(function(i){var n;const a=(0,w.select)(this),o=t.updateAngle(i),r=t.getRatio("arc",o);if(t.meetsLabelThreshold(r,(n=["donut","gauge","pie","polar"].filter(t.hasType.bind(t)))==null?void 0:n[0])){const{value:c}=o||i,u=(t.getArcLabelFormat()||t.defaultArcValueFormat)(c,r,i.data.id).toString();ne(a,u,[-1,1],s)}else a.text("")})},expandArc(e){const t=this,{state:{transiting:s},$el:i}=t;if(s){const a=setInterval(()=>{s||(clearInterval(a),i.legend.selectAll(`.${W.legendItemFocused}`).size()>0&&t.expandArc(e))},10);return}const n=t.mapToTargetIds(e);i.svg.selectAll(t.selectorTargets(n,`.${N.chartArc}`)).each(function(a){if(!t.shouldExpand(a.data.id))return;const o=t.getExpandConfig(a.data.id,"duration"),r=t.getSvgArcExpanded(t.getExpandConfig(a.data.id,"rate"));(0,w.select)(this).selectAll("path").transition().duration(o).attrTween("d",Ve(t.svgArcExpanded.bind(t))).transition().duration(o*2).attrTween("d",Ve(r.bind(t)))})},unexpandArc(e){const t=this,{state:{transiting:s},$el:{svg:i}}=t;if(s)return;const n=t.mapToTargetIds(e);i.selectAll(t.selectorTargets(n,`.${N.chartArc}`)).selectAll("path").transition().duration(a=>t.getExpandConfig(a.data.id,"duration")).attrTween("d",Ve(t.svgArc.bind(t))),i.selectAll(`${N.arc}`).style("opacity",null)},getExpandConfig(e,t){const s=this,{config:i}=s,n={duration:50,rate:.98};let a;return s.isDonutType(e)?a="donut":s.isGaugeType(e)?a="gauge":s.isPieType(e)&&(a="pie"),a?i[`${a}_expand_${t}`]:n[t]},shouldExpand(e){const t=this,{config:s}=t;return t.isDonutType(e)&&s.donut_expand||t.isGaugeType(e)&&s.gauge_expand||t.isPieType(e)&&s.pie_expand},shouldShowArcLabel(){const e=this,{config:t}=e;return["donut","gauge","pie","polar"].some(s=>e.hasType(s)&&t[`${s}_label_show`])},getArcLabelFormat(){const e=this,{config:t}=e;let s=i=>i;return["donut","gauge","pie","polar"].filter(e.hasType.bind(e)).forEach(i=>{s=t[`${i}_label_format`]}),E(s)?s.bind(e.api):s},updateTargetsForArc(e){const t=this,{$el:s}=t,i=t.hasType("gauge"),n=t.getChartClass("Arc"),a=t.getClass("arcs",!0),o=t.classFocus.bind(t),r=s.main.select(`.${N.chartArcs}`),l=r.selectAll(`.${N.chartArc}`).data(t.pie(e)).attr("class",u=>n(u)+o(u.data)),c=l.enter().append("g").attr("class",n).call(this.setCssRule(!1,`.${N.chartArcs} text`,["pointer-events:none","text-anchor:middle"]));c.append("g").attr("class",a).merge(l),c.append("text").attr("dy",i&&!t.hasMultiTargets()?"-.1em":".35em").style("opacity","0").style("text-anchor",t.getStylePropValue("middle")).style("pointer-events",t.getStylePropValue("none")),s.text=r.selectAll(`.${O.target} text`)},initArc(){const e=this,{$el:t}=e;t.arcs=t.main.select(`.${O.chart}`).append("g").attr("class",N.chartArcs).attr("transform",e.getTranslate("arc")),e.setArcTitle()},setArcTitle(e){const t=this,s=e||t.getArcTitle(),i=t.hasType("gauge");if(s){const n=i?xt.chartArcsGaugeTitle:N.chartArcsTitle;let a=t.$el.arcs.select(`.${n}`);a.empty()&&(a=t.$el.arcs.append("text").attr("class",n).style("text-anchor","middle")),i&&a.attr("dy","-0.3em"),ne(a,s,i?void 0:[-.6,1.35],!0)}},getArcTitle(){const e=this,t=e.hasType("donut")&&"donut"||e.hasType("gauge")&&"gauge";return t?e.config[`${t}_title`]:""},getArcTitleWithNeedleValue(){const e=this,{config:t,state:s}=e,i=e.getArcTitle();if(i&&e.config.arc_needle_show&&/{=[A-Z_]+}/.test(i)){let n=s.current.needle;return C(n)||(n=t.arc_needle_value),$e(i,{NEEDLE_VALUE:C(n)?n:0})}return!1},redrawArc(e,t,s){const i=this,{config:n,state:a,$el:{main:o}}=i,r=n.interaction_enabled,l=r&&n.data_selection_isselectable;let c=o.selectAll(`.${N.arcs}`).selectAll(`.${N.arc}`).data(i.arcData.bind(i));c.exit().transition().duration(t).style("opacity","0").remove(),c=c.enter().append("path").attr("class",i.getClass("arc",!0)).style("fill",u=>i.color(u.data)).style("cursor",u=>{var d;return(d=l==null?void 0:l.bind)!=null&&d.call(l,i.api)(u)?"pointer":null}).style("opacity","0").each(function(u){i.isGaugeType(u.data)&&(u.startAngle=n.gauge_startingAngle,u.endAngle=n.gauge_startingAngle),this._current=u}).merge(c),i.hasType("gauge")&&(i.updateGaugeMax(),i.hasMultiArcGauge()&&i.redrawArcGaugeLine()),c.attr("transform",u=>!i.isGaugeType(u.data)&&s?"scale(0)":"").style("opacity",function(u){return u===this._current?"0":null}).each(()=>{a.transiting=!0}).transition().duration(e).attrTween("d",function(u){const d=i.updateAngle(u);if(!d)return()=>"M 0 0";isNaN(this._current.startAngle)&&(this._current.startAngle=0),isNaN(this._current.endAngle)&&(this._current.endAngle=this._current.startAngle);const h=(0,qs.interpolate)(this._current,d);return this._current=h(0),function(g){const f=h(g);return f.data=u.data,i.getArc(f,!0)}}).attr("transform",s?"scale(1)":"").style("fill",u=>{let d;return i.levelColor?(d=i.levelColor(u.data.values[0].value),n.data_colors[u.data.id]=d):d=i.color(u.data),d}).style("opacity",null).call(xe,function(){if(i.levelColor){const u=(0,w.select)(this),d=u.datum(this._current);i.updateLegendItemColor(d.data.id,u.style("fill"))}a.transiting=!1,Z(n.onrendered,i.api)}),r&&i.bindArcEvent(c),i.hasType("polar")&&i.redrawPolar(),i.hasType("gauge")&&i.redrawBackgroundArcs(),n.arc_needle_show&&i.redrawNeedle(),i.redrawArcText(e),i.redrawArcRangeText()},redrawNeedle(){const e=this,{$el:t,config:s,state:{hiddenTargetIds:i,radius:n}}=e,a=(n-1)/100*s.arc_needle_length,o=i.length!==e.data.targets.length;let r=e.$el.arcs.select(`.${N.needle}`);const l=s.arc_needle_path,c=s.arc_needle_bottom_width/2,u=s.arc_needle_top_width/2,d=s.arc_needle_top_rx,h=s.arc_needle_top_ry,g=s.arc_needle_bottom_len,f=s.arc_needle_bottom_rx,p=s.arc_needle_bottom_ry,_=e.getNeedleAngle(),x=()=>{const m=e.getArcTitleWithNeedleValue();m&&e.setArcTitle(m)};if(x(),r.empty()&&(r=t.arcs.append("path").classed(N.needle,!0),t.needle=r,t.needle.updateHelper=(m,y=!1)=>{t.needle.style("display")!=="none"&&e.$T(t.needle).style("transform",`rotate(${e.getNeedleAngle(m)}deg)`).call(xe,()=>{y&&(s.arc_needle_value=m),x()})}),o){const m=E(l)?l.call(e,a):`M-${c} ${g} A${f} ${p} 0 0 0 ${c} ${g} L${u} -${a} A${d} ${h} 0 0 0 -${u} -${a} L-${c} ${g} Z`;e.$T(r).attr("d",m).style("fill",s.arc_needle_color).style("display",null).style("transform",`rotate(${_}deg)`)}else r.style("display","none")},getNeedleAngle(e){const t=this,{config:s,state:i}=t,n=t.getArcLength(),a=t.hasType("gauge"),o=t.getTotalDataSum(!0);let r=Y(e)?e:s.arc_needle_value,l=s[`${s.data_type}_startingAngle`]||0,c=0;if(C(r)||(r=a&&t.data.targets.length===1?o:0),i.current.needle=r,a){l=t.getStartingAngle();const u=s.gauge_fullCircle?n:l*-2,{gauge_min:d,gauge_max:h}=s;c=u*((r-d)/(h-d))}else c=n*(r/o);return(l+c)*(180/Math.PI)},redrawBackgroundArcs(){const e=this,{config:t,state:s}=e,i=e.hasMultiArcGauge(),n=t.gauge_fullCircle,a=e.filterTargetsToShow(e.data.targets).length===0&&!!t.data_empty_label_text,o=e.getStartingAngle(),r=n?o+e.getArcLength():o*-1;let l=e.$el.arcs.select(`${i?"g":""}.${N.chartArcsBackground}`);if(i){let c=0;l=l.selectAll(`path.${N.chartArcsBackground}`).data(e.data.targets),l.enter().append("path").attr("class",(u,d)=>`${N.chartArcsBackground} ${N.chartArcsBackground}-${d}`).merge(l).style("fill",t.gauge_background||null).attr("d",({id:u})=>{if(a||s.hiddenTargetIds.indexOf(u)>=0)return"M 0 0";const d={data:[{value:t.gauge_max}],startAngle:o,endAngle:r,index:c++};return e.getArc(d,!0,!0)}),l.exit().remove()}else l.attr("d",a?"M 0 0":()=>{const c={data:[{value:t.gauge_max}],startAngle:o,endAngle:r};return e.getArc(c,!0,!0)})},bindArcEvent(e){const t=this,{config:s,state:i}=t,n=i.inputType==="touch",a=i.inputType==="mouse";function o(l,c,u){t.expandArc(u),t.api.focus(u),t.toggleFocusLegend(u,!0),t.showTooltip([c],l)}function r(l){const c=(l==null?void 0:l.id)||void 0;t.unexpandArc(c),t.api.revert(),t.revertLegend(),t.hideTooltip()}if(e.on("click",function(l,c,u){var d;const h=t.updateAngle(c);let g;h&&(g=t.convertToArcData(h),(d=t.toggleShape)==null||d.call(t,this,g,u),s.data_onclick.bind(t.api)(g,this))}),a&&e.on("mouseover",function(l,c){if(i.transiting)return;i.event=l;const u=t.updateAngle(c),d=u?t.convertToArcData(u):null,h=(d==null?void 0:d.id)||void 0;o(this,d,h),t.setOverOut(!0,d)}).on("mouseout",(l,c)=>{if(i.transiting)return;i.event=l;const u=t.updateAngle(c),d=u?t.convertToArcData(u):null;r(),t.setOverOut(!1,d)}).on("mousemove",function(l,c){const u=t.updateAngle(c),d=u?t.convertToArcData(u):null;i.event=l,t.showTooltip([d],this)}),n&&t.hasArcType()&&!t.radars){const l=c=>{var u,d;const{clientX:h,clientY:g}=(d=(u=c.changedTouches)==null?void 0:u[0])!=null?d:{clientX:0,clientY:0};return(0,w.select)(it.elementFromPoint(h,g))};t.$el.svg.on("touchstart touchmove",function(c){if(i.transiting)return;i.event=c;const d=l(c).datum(),h=d!=null&&d.data&&d.data.id?t.updateAngle(d):null,g=h?t.convertToArcData(h):null,f=(g==null?void 0:g.id)||void 0;t.callOverOutForTouch(g),tt(f)?r():o(this,g,f)})}},redrawArcText(e){const t=this,{config:s,state:i,$el:{main:n,arcs:a}}=t,o=t.hasType("gauge"),r=t.hasMultiArcGauge();let l;if(o&&t.data.targets.length===1&&s.gauge_title||(l=n.selectAll(`.${N.chartArc}`).select("text").style("opacity","0").attr("class",c=>t.isGaugeType(c.data)?xt.gaugeValue:null).call(t.textForArcLabel.bind(t)).attr("transform",c=>t.transformForArcLabel.bind(t)(c)).style("font-size",c=>t.isGaugeType(c.data)&&t.data.targets.length===1&&!r?`${Math.round(i.radius/5)}px`:null).transition().duration(e).style("opacity",c=>t.isTargetToShow(c.data.id)&&t.isArcType(c.data)?null:"0"),r&&l.attr("dy","-.1em")),n.select(`.${N.chartArcsTitle}`).style("opacity",t.hasType("donut")||o?null:"0"),o){const c=s.gauge_fullCircle;c&&(l==null||l.attr("dy",`${r?0:Math.round(i.radius/14)}`)),s.gauge_label_show&&(a.select(`.${xt.chartArcsGaugeUnit}`).attr("dy",`${c?1.5:.75}em`).text(s.gauge_units),a.select(`.${xt.chartArcsGaugeMin}`).attr("dx",`${-1*(i.innerRadius+(i.radius-i.innerRadius)/(c?1:2))}px`).attr("dy","1.2em").text(t.textForGaugeMinMax(s.gauge_min,!1)),!c&&a.select(`.${xt.chartArcsGaugeMax}`).attr("dx",`${i.innerRadius+(i.radius-i.innerRadius)/2}px`).attr("dy","1.2em").text(t.textForGaugeMinMax(s.gauge_max,!0)))}},getArcElementByIdOrIndex(e){const t=this,{$el:{arcs:s}}=t,i=C(e)?n=>n.index===e:n=>n.data.id===e;return s==null?void 0:s.selectAll(`.${O.target} path`).filter(i)}},re={initArea(e){const t=this,{config:s}=t;e.insert("g",`.${s.area_front?ct.circles:St.lines}`).attr("class",t.getClass("areas",!0))},updateAreaColor(e){const t=this;return t.config.area_linearGradient?t.getGradienColortUrl(e.id):t.color(e)},updateArea(e,t=!1){const s=this,{config:i,state:n,$el:a,$T:o}=s,r=t?a.subchart:a;i.area_linearGradient&&s.updateLinearGradient();const l=r.main.selectAll(`.${he.areas}`).selectAll(`.${he.area}`).data(s.lineData.bind(s));o(l.exit(),e).style("opacity","0").remove(),r.area=l.enter().append("path").attr("class",s.getClass("area",!0)).style("fill",s.updateAreaColor.bind(s)).style("opacity",function(){return n.orgAreaOpacity=(0,w.select)(this).style("opacity"),"0"}).merge(l),l.style("opacity",n.orgAreaOpacity),s.setRatioForGroupedData(r.area.data())},redrawArea(e,t,s=!1){const i=this,{area:n}=s?this.$el.subchart:this.$el,{orgAreaOpacity:a}=i.state;return[i.$T(n,t,Rt()).attr("d",e).style("fill",i.updateAreaColor.bind(i)).style("opacity",o=>String(i.isAreaRangeType(o)?a/1.75:a))]},generateDrawArea(e,t){const s=this,{config:i}=s,n=i.line_connectNull,a=i.axis_rotated,o=s.generateGetAreaPoints(e,t),r=s.getYScaleById.bind(s),l=d=>(t?s.subxx:s.xx).call(s,d),c=(d,h)=>s.isGrouped(d.id)?o(d,h)[0][1]:r(d.id,t)(s.isAreaRangeType(d)?s.getRangedData(d,"high"):s.getShapeYMin(d.id)),u=(d,h)=>s.isGrouped(d.id)?o(d,h)[1][1]:r(d.id,t)(s.isAreaRangeType(d)?s.getRangedData(d,"low"):d.value);return d=>{let h=n?s.filterRemoveNull(d.values):d.values,g=0,f=0,p;if(s.isAreaType(d)){let _=(0,K.area)();_=a?_.y(l).x0(c).x1(u):_.x(l).y0(i.area_above?0:i.area_below?s.state.height:c).y1(u),n||(_=_.defined(x=>s.getBaseValue(x)!==null)),s.isStepType(d)&&(h=s.convertValuesToStep(h)),p=_.curve(s.getCurve(d))(h)}else h[0]&&(g=s.scale.x(h[0].x),f=s.getYScaleById(d.id)(h[0].value)),p=a?`M ${f} ${g}`:`M ${g} ${f}`;return p||"M 0 0"}},generateGetAreaPoints(e,t){const s=this,{config:i}=s,n=s.getShapeX(0,e,t),a=s.getShapeY(!!t),o=s.getShapeOffset(s.isAreaType,e,t),r=s.getYScaleById.bind(s);return function(l,c){const u=r.call(s,l.id,t)(s.getShapeYMin(l.id)),d=o(l,c)||u,h=n(l),g=l.value;let f=a(l);return i.axis_rotated&&(g>0&&f<u||g<0&&u<f)&&(f=u),[[h,d],[h,f-(u-d)],[h,f-(u-d)],[h,d]]}}},Po={initBar(){const{$el:e,config:t,state:{clip:s}}=this;e.bar=e.main.select(`.${O.chart}`),e.bar=t.bar_front?e.bar.append("g"):e.bar.insert("g",":first-child"),e.bar.attr("class",$t.chartBars).call(this.setCssRule(!1,`.${$t.chartBars}`,["pointer-events:none"])),t.clipPath===!1&&(t.bar_radius||t.bar_radius_ratio)&&e.bar.attr("clip-path",s.pathXAxis.replace(/#[^)]*/,`#${s.id}`))},updateTargetsForBar(e){const t=this,{config:s,$el:i}=t,n=t.getChartClass("Bar"),a=t.getClass("bars",!0),o=t.classFocus.bind(t),r=s.interaction_enabled&&s.data_selection_isselectable;i.bar||t.initBar(),i.main.select(`.${$t.chartBars}`).selectAll(`.${$t.chartBar}`).data(e.filter(u=>u.values.some(d=>C(d.value)||t.isBarRangeType(d)))).attr("class",u=>n(u)+o(u)).enter().append("g").attr("class",n).style("opacity","0").style("pointer-events",t.getStylePropValue("none")).append("g").attr("class",a).style("cursor",u=>{var d;return(d=r==null?void 0:r.bind)!=null&&d.call(r,t.api)(u)?"pointer":null}).call(t.setCssRule(!0,` .${$t.bar}`,["fill"],t.color))},updateBar(e,t=!1){const s=this,{config:i,$el:n,$T:a}=s,o=t?n.subchart:n,r=s.getClass("bar",!0),l=s.initialOpacity.bind(s);i.bar_linearGradient&&s.updateLinearGradient();const c=o.main.selectAll(`.${$t.bars}`).selectAll(`.${$t.bar}`).data(s.labelishData.bind(s));a(c.exit(),e).style("opacity","0").remove(),o.bar=c.enter().append("path").attr("class",r).style("fill",s.updateBarColor.bind(s)).merge(c).style("opacity",l),s.setRatioForGroupedData(o.bar.data())},updateBarColor(e){const t=this,s=t.getStylePropValue(t.color);return t.config.bar_linearGradient?t.getGradienColortUrl(e.id):s?s(e):null},redrawBar(e,t,s=!1){const i=this,{bar:n}=s?i.$el.subchart:i.$el;return[i.$T(n,t,Rt()).attr("d",a=>(C(a.value)||i.isBarRangeType(a))&&e(a)).style("fill",i.updateBarColor.bind(i)).style("opacity",null)]},generateDrawBar(e,t){const s=this,{config:i}=s,n=s.generateGetBarPoints(e,t),a=i.axis_rotated,o=i.bar_radius,r=i.bar_radius_ratio,l=C(o)&&o>0?()=>o:C(r)?c=>c*r:null;return(c,u)=>{const d=n(c,u),h=+a,g=+!h,f=c.value<0,p=i[`axis_${s.axis.getId(c.id)}_inverted`],_=!p&&f||p&&!f,x=["",""];let m=0;const y=s.isGrouped(c.id),b=l&&y?s.isStackingRadiusData(c):!1;if(l){const $=a?g:h,T=d[2][$]-d[0][$];m=!y||b?l(T):0;const S=`a${m},${m} ${_?"1 0 0":"0 0 1"} `;x[+!a]=`${S}${m},${m}`,x[+a]=`${S}${[-m,m][a?"sort":"reverse"]()}`,_&&x.reverse()}const v=a?`H${d[1][h]+(_?m:-m)} ${x[0]}V${d[2][g]-m} ${x[1]}H${d[3][h]}`:`V${d[1][g]+(_?-m:m)} ${x[0]}H${d[2][h]-m} ${x[1]}V${d[3][g]}`;return`M${d[0][h]},${d[0][g]}${v}z`}},isStackingRadiusData(e){const t=this,{$el:s,config:i,data:n,state:a}=t,{id:o,index:r,value:l}=e;if(a.hiddenTargetIds.indexOf(o)>-1){const h=s.bar.filter(g=>g.id===o&&g.value===l);return!h.empty()&&/a\d+/i.test(h.attr("d"))}const c=i.data_groups.find(h=>h.indexOf(o)>-1),d=t.orderTargets(t.filterTargetsToShow(n.targets.filter(t.isBarType,t))).filter(h=>c.indexOf(h.id)>-1).map(h=>h.values.filter(g=>g.index===r&&(C(l)&&l>0?g.value>0:g.value<0))[0]).filter(Boolean).map(h=>h.id);return l!==0&&d.indexOf(o)===d.length-1},generateGetBarPoints(e,t){const s=this,{config:i}=s,n=t?s.axis.subX:s.axis.x,a=s.getIndicesMax(e)+1,o=s.getBarW("bar",n,a),r=s.getShapeX(o,e,!!t),l=s.getShapeY(!!t),c=s.getShapeOffset(s.isBarType,e,!!t),u=s.getYScaleById.bind(s);return(d,h)=>{const{id:g}=d,f=u.call(s,g,t)(s.getShapeYMin(g)),p=c(d,h)||f,_=C(o)?o:o[d.id]||o._$width,x=i[`axis_${s.axis.getId(g)}_inverted`],m=d.value,y=r(d);let b=l(d);i.axis_rotated&&!x&&(m>0&&b<f||m<0&&f<b)&&(b=f),s.isBarRangeType(d)||(b-=f-p);const v=y+_;return[[y,p],[y,b],[v,b],[v,p]]}}},Oo={initBubble(){const e=this,{config:t}=e;e.hasType("bubble")&&(t.point_show=!0,t.point_type="circle")},getBaseLength(){const e=this,{width:t,height:s}=e.state,i=ft.bubbleBaseLength;let n=e.cache.get(i);return n||e.cache.add(i,n=vt("min",[t,s])),n},getBubbleR(e){const t=this;let s=t.config.bubble_maxR;E(s)?s=s.bind(t.api)(e):C(s)||(s=t.getBaseLength()/(t.getMaxDataCount()*2)+12);const i=vt("max",t.getMinMaxData().max.map(o=>t.isBubbleZType(o)?t.getBubbleZData(o.value,"y"):F(o.value)?o.value.mid:o.value)),n=s*s*Math.PI,a=(t.isBubbleZType(e)?t.getBubbleZData(e.value,"z"):e.value)*(n/i);return Math.sqrt(a/Math.PI)},getBubbleZData(e,t){return F(e)?e[t]:e[t==="y"?0:1]}},Io=Object.defineProperty,ti=Object.getOwnPropertySymbols,Do=Object.prototype.hasOwnProperty,zo=Object.prototype.propertyIsEnumerable,ei=(e,t,s)=>t in e?Io(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Fo=(e,t)=>{for(var s in t||(t={}))Do.call(t,s)&&ei(e,s,t[s]);if(ti)for(var s of ti(t))zo.call(t,s)&&ei(e,s,t[s]);return e},Mo={initCandlestick(){const{$el:e}=this;e.candlestick=e.main.select(`.${O.chart}`).append("g").attr("class",wt.chartCandlesticks)},updateTargetsForCandlestick(e){const t=this,{$el:s}=t,i=t.getChartClass("Candlestick");s.candlestick||t.initCandlestick(),t.$el.main.select(`.${wt.chartCandlesticks}`).selectAll(`.${wt.chartCandlestick}`).data(e).enter().append("g").attr("class",i).style("pointer-events","none")},updateCandlestick(e,t=!1){const s=this,{$el:i,$T:n}=s,a=t?i.subchart:i,o=s.getClass("candlestick",!0),r=s.initialOpacity.bind(s),l=a.main.selectAll(`.${wt.chartCandlestick}`).selectAll(`.${wt.candlestick}`).data(s.labelishData.bind(s));n(l.exit(),e).style("opacity","0").remove();const c=l.enter().filter(u=>u.value).append("g").attr("class",o);c.append("line"),c.append("path"),a.candlestick=l.merge(c).style("opacity",r)},generateDrawCandlestick(e,t){const s=this,{config:i}=s,n=s.generateGetCandlestickPoints(e,t),a=i.axis_rotated,o=i.candlestick_color_down;return(r,l,c)=>{const u=n(r,l),d=s.getCandlestickData(r),h=d==null?void 0:d._isUp,g=+a,f=+!g;c.classed&&c.classed(wt[h?"valueUp":"valueDown"],!0);const p=a?`H${u[1][1]} V${u[1][0]} H${u[0][1]}`:`V${u[1][1]} H${u[1][0]} V${u[0][1]}`;c.select("path").attr("d",`M${u[0][g]},${u[0][f]}${p}z`).style("fill",m=>(h?s.color(m):F(o)?o[m.id]:o)||s.color(m));const _=c.select("line"),x=a?{x1:u[2][1],x2:u[2][2],y1:u[2][0],y2:u[2][0]}:{x1:u[2][0],x2:u[2][0],y1:u[2][1],y2:u[2][2]};for(const m in x)_.attr(m,x[m])}},generateGetCandlestickPoints(e,t=!1){const s=this,i=t?s.axis.subX:s.axis.x,n=s.getIndicesMax(e)+1,a=s.getBarW("candlestick",i,n),o=s.getShapeX(a,e,!!t),r=s.getShapeY(!!t),l=s.getShapeOffset(s.isBarType,e,!!t),c=s.getYScaleById.bind(s);return(u,d)=>{const h=c.call(s,u.id,t)(s.getShapeYMin(u.id)),g=l(u,d)||h,f=C(a)?a:a[u.id]||a._$width,p=s.getCandlestickData(u);let _;if(p&&C(p.open)&&C(p.close)){const x={start:o(u),end:0};x.end=x.start+f;const m={start:r(p.open),end:r(p.close)},y={x:x.start+f/2,high:r(p.high),low:r(p.low)};m.start-=h-g,_=[[x.start,m.start],[x.end,m.end],[y.x,y.low,y.high]]}else _=[[0,0],[0,0],[0,0,0]];return _}},redrawCandlestick(e,t,s=!1){const i=this,{$el:n,$T:a}=i,{candlestick:o}=s?n.subchart:n,r=Rt(!0);return[o.each(function(l,c){const u=a((0,w.select)(this),t,r);e(l,c,u)}).style("opacity",null)]},getCandlestickData({value:e}){let t;if(B(e)){const[s,i,n,a,o=!1]=e;t={open:s,high:i,low:n,close:a},o!==!1&&(t.volume=o)}else F(e)&&(t=Fo({},e));return t&&(t._isUp=t.close>=t.open),t||null}},Xo=Object.defineProperty,si=Object.getOwnPropertySymbols,Bo=Object.prototype.hasOwnProperty,No=Object.prototype.propertyIsEnumerable,ii=(e,t,s)=>t in e?Xo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Go=(e,t)=>{for(var s in t||(t={}))Bo.call(t,s)&&ii(e,s,t[s]);if(si)for(var s of si(t))No.call(t,s)&&ii(e,s,t[s]);return e};function ve(e=!1){const t=this,{config:s,state:{current:{width:i,height:n}}}=t,a=t.getCurrentPadding(),o=Go({width:i-(a.left+a.right),height:n-(s.legend_show?t.getLegendHeight()+10:0)-(a.top+a.bottom)},a);if(e){const{width:r,height:l}=ni.call(t,{width:o.width,height:o.height});o.width<r&&(o.width=r),o.height<l&&(o.height=l)}return o}function ni(e){const t=this,{config:s}=t;let i=s.funnel_neck_width,n=s.funnel_neck_height;return[i,n]=[i,n].map((a,o)=>{let r=a;return F(a)&&(r=e[o?"height":"width"]*a.ratio),r}),{width:i,height:n}}function Vo(e){const t=this,{top:s,left:i,width:n}=ve.call(t,!0),a=[];return e.forEach((o,r)=>{const{ratio:l}=o,c=r>0?a[r-1][2][1]:s;a.push(o.coords=[[i,c],[i+n,c],[i+n,r>0?l+c:l+s],[i,r>0?l+c:l+s],[i,c]])}),a}function ai(e=!1){const t=this,{width:s,height:i,top:n,left:a}=ve.call(t,!0),o=ni.call(t,{width:s,height:i}),r=(s-o.width)/2,l=(s+o.width)/2,c=i-o.height,u=[[0,0],[s,0],[l,c],[l,i],[r,i],[r,c],[0,0]];return e&&u.forEach(d=>{d[0]+=a,d[1]+=n}),`M${u.join("L")}z`}function Yo(e){const t=this,{config:s}=t,i=e.map(n=>({id:n.id,value:n.values.reduce((a,o)=>a+o.value,0)}));return s.data_order&&i.sort(t.getSortCompareFn.bind(t)(!0)),oi.call(t,i)}function oi(e){const t=this,{height:s}=ve.call(t),i=t.getTotalDataSum(!0);return e.forEach(n=>{n.ratio=n.value/i*s}),e}var jo={initFunnel(){const e=this,{$el:t}=e;t.funnel=t.main.select(`.${O.chart}`).append("g").classed(se.chartFunnels,!0),t.funnel.background=t.funnel.append("path").classed(se.funnelBackground,!0),e.bindFunnelEvent()},bindFunnelEvent(){const e=this,{$el:{funnel:t},config:s,state:i}=e,n=a=>{var o;const r=a.isTrusted?a.target:(o=i.eventReceiver.rect)==null?void 0:o.node();let l;return/^path$/i.test(r.tagName)&&(i.event=a,l=(0,w.select)(r).datum()),l};if(s.interaction_enabled){const a=i.inputType==="touch";t.on(a?"touchstart":"mouseover mousemove",o=>{const r=n(o);r&&(e.showTooltip([r],o.target),/^(touchstart|mouseover)$/.test(o.type)&&e.setOverOut(!0,r))}).on(a?"touchend":"mouseout",o=>{const r=n(o);e.hideTooltip(),e.setOverOut(!1,r)})}},updateTargetsForFunnel(e){const t=this,{$el:{funnel:s}}=t,i=t.getChartClass("Funnel"),n=t.getClass("funnel",!0);s||t.initFunnel();const a=Yo.call(t,e.filter(t.isFunnelType.bind(t))),o=s.selectAll(`.${se.chartFunnel}`).data(a);o.exit().remove();const r=o.enter().insert("g",`.${se.funnelBackground}`);r.append("path"),s.path=r.merge(o).attr("class",l=>i(l)).select("path").attr("class",n).style("opacity","0").style("fill",t.color)},updateFunnel(e){const t=this,{$el:{funnel:s}}=t,i=e.map(({id:n})=>n);s.path=s.path.filter(n=>i.indexOf(n.id)>=0)},generateGetFunnelPoints(){const e=this,{$el:{funnel:t}}=e,s=e.filterTargetsToShow(t.path),{top:i,left:n,right:a}=ve.call(e),o=(n-a)/2,r={};let l=i!=null?i:0;return s.each((c,u)=>{var d;r[c.id]=[[o,l],[o,l+=((d=s==null?void 0:s[u])!=null?d:c).ratio]]}),c=>r[c.id]},redrawFunnel(){const e=this,{$T:t,$el:{funnel:s}}=e,i=e.filterTargetsToShow(s.path),n=Vo.call(e,oi.call(e,i.data()));s.attr("clip-path",`path('${ai.bind(e)()}')`),s.background.attr("d",ai.call(e,!0)),t(i).attr("d",(a,o)=>`M${n[o].join("L")}z`).style("opacity","1"),s.selectAll("g").style("opacity",null)}},Ho={initGauge(){const e=this,{config:t,$el:{arcs:s}}=e,i=(n=null,a="")=>{s.append("text").attr("class",n).style("text-anchor","middle").style("pointer-events","none").text(a)};if(e.hasType("gauge")){const n=e.hasMultiArcGauge();s.append(n?"g":"path").attr("class",N.chartArcsBackground).style("fill",!n&&t.gauge_background||null),t.gauge_units&&i(xt.chartArcsGaugeUnit),t.gauge_label_show&&(i(xt.chartArcsGaugeMin),!t.gauge_fullCircle&&i(xt.chartArcsGaugeMax))}},updateGaugeMax(){const e=this,{config:t,state:s}=e,n=e.hasMultiArcGauge()?e.getMinMaxData().max[0].value:e.getTotalDataSum(s.rendered);!t.gauge_enforceMinMax&&n+t.gauge_min*(t.gauge_min>0?-1:1)>t.gauge_max&&(t.gauge_max=n-t.gauge_min)},redrawArcGaugeLine(){const e=this,{config:t,state:s,$el:i}=e,{hiddenTargetIds:n}=e.state,a=i.main.selectAll(`.${N.arcs}`).selectAll(`.${N.arcLabelLine}`).data(e.arcData.bind(e));a.enter().append("rect").attr("class",r=>`${N.arcLabelLine} ${O.target} ${O.target}-${r.data.id}`).merge(a).style("fill",r=>e.levelColor?e.levelColor(r.data.values[0].value):e.color(r.data)).style("display",t.gauge_label_show?null:"none").each(function(r){let l=0;const c=2;let u=0,d=0,h="";if(n.indexOf(r.data.id)<0){const g=e.updateAngle(r),f=s.gaugeArcWidth/e.filterTargetsToShow(e.data.targets).length*(g.index+1),p=g.endAngle-Math.PI/2,_=s.radius-f,x=p-(_===0?0:1/_);l=s.radiusExpanded-s.radius+f,u=Math.cos(x)*_,d=Math.sin(x)*_,h=`rotate(${p*180/Math.PI}, ${u}, ${d})`}(0,w.select)(this).attr("x",u).attr("y",d).attr("width",l).attr("height",c).attr("transform",h).style("stroke-dasharray",`0, ${l+c}, 0`)})},textForGaugeMinMax(e,t){const s=this,{config:i}=s,n=i.gauge_label_extents;return E(n)?n.bind(s.api)(e,t):e},getGaugeLabelHeight(){const{config:e}=this;return this.config.gauge_label_show&&!e.gauge_fullCircle?20:0},getPaddingBottomForGauge(){const e=this;return e.getGaugeLabelHeight()*(e.config.gauge_label_show?2:2.5)}},Wo={initLine(){const{$el:e}=this;e.line=e.main.select(`.${O.chart}`).append("g").attr("class",St.chartLines).call(this.setCssRule(!1,`.${St.chartLines}`,["pointer-events:none"]))},updateTargetsForLine(e){const t=this,{$el:{area:s,line:i,main:n}}=t,a=t.getChartClass("Line"),o=t.getClass("lines",!0),r=t.classFocus.bind(t);i||t.initLine();const l=e.filter(d=>!(t.isScatterType(d)||t.isBubbleType(d))),c=n.select(`.${St.chartLines}`).selectAll(`.${St.chartLine}`).data(l).attr("class",d=>a(d)+r(d)),u=c.enter().append("g").attr("class",a).style("opacity","0").style("pointer-events",t.getStylePropValue("none"));if(u.append("g").attr("class",o),t.hasTypeOf("Area")){const d=(!s&&u.empty()?c:u).filter(t.isAreaType.bind(t));t.initArea(d)}t.updateTargetForCircle(l,u)},updateLine(e,t=!1){const s=this,{format:{extraLineClasses:i},$el:n,$T:a}=s,o=t?n.subchart:n,r=o.main.selectAll(`.${St.lines}`).selectAll(`.${St.line}`).data(s.lineData.bind(s));a(r.exit(),e).style("opacity","0").remove(),o.line=r.enter().append("path").attr("class",l=>`${s.getClass("line",!0)(l)} ${i(l)||""}`).style("stroke",s.color).merge(r).style("opacity",s.initialOpacity.bind(s)).attr("transform",null)},redrawLine(e,t,s=!1){const i=this,{$el:n,$T:a}=i,{line:o}=s?n.subchart:n;return[a(o,t,Rt()).attr("d",e).style("stroke",this.color).style("opacity",null)]},getCurve(e){const t=this;return t.config.axis_rotated&&t.isStepType(e)?i=>{const n=t.getInterpolate(e)(i);return n.orgPoint=n.point,n.pointRotated=function(a,o){this._point===1&&(this._point=2);const r=this._y*(1-this._t)+o*this._t;this._context.lineTo(this._x,r),this._context.lineTo(a,r),this._x=a,this._y=o},n.point=function(a,o){this._point===0?this.orgPoint(a,o):this.pointRotated(a,o)},n}:t.getInterpolate(e)},generateDrawLine(e,t){const s=this,{config:i,scale:n}=s,a=i.line_connectNull,o=i.axis_rotated,r=s.generateGetLinePoints(e,t),l=s.getYScaleById.bind(s),c=g=>(t?s.subxx:s.xx).call(s,g),u=(g,f)=>s.isGrouped(g.id)?r(g,f)[0][1]:l(g.id,t)(s.getBaseValue(g));let d=(0,K.line)();d=o?d.x(u).y(c):d.x(c).y(u),a||(d=d.defined(g=>s.getBaseValue(g)!==null));const h=t?n.subX:n.x;return g=>{const f=l(g.id,t);let p=a?s.filterRemoveNull(g.values):g.values,_=0,x=0,m;if(s.isLineType(g)){const y=i.data_regions[g.id];y?m=s.lineWithRegions(p,n.zoom||h,f,y):(s.isStepType(g)&&(p=s.convertValuesToStep(p)),m=d.curve(s.getCurve(g))(p))}else p[0]&&(_=h(p[0].x),x=f(p[0].value)),m=o?`M ${x} ${_}`:`M ${_} ${x}`;return m||"M 0 0"}},lineWithRegions(e,t,s,i){const n=this,{config:a}=n,o=a.axis_rotated,r=n.axis.isTimeSeries(),l=[],c="2 2";let u,d,h,g;if(Y(i)){const b=(v,$)=>tt(v)?$:r?_t.call(n,v):v;for(let v=0,$;$=i[v];v++){const T=b($.start,e[0].x),S=b($.end,e[e.length-1].x),A=$.style||{dasharray:c};l[v]={start:T,end:S,style:A}}}const f=o?b=>s(b.value):b=>t(b.x),p=o?b=>t(b.x):b=>s(b.value),_=b=>`M${b[0][0]},${b[0][1]}L${b[1][0]},${b[1][1]}`,x=r?(b,v,$,T)=>{const S=b.x.getTime(),A=v.x-b.x,R=new Date(S+A*$),I=new Date(S+A*($+T)),M=o?[[s(d($)),t(R)],[s(d($+h)),t(I)]]:[[t(R),s(d($))],[t(I),s(d($+h))]];return _(M)}:(b,v,$,T)=>{const S=o?[[s(d($),!0),t(u($))],[s(d($+T),!0),t(u($+T))]]:[[t(u($),!0),s(d($))],[t(u($+T),!0),s(d($+T))]];return _(S)},m={x:n.axis.getAxisType("x"),y:n.axis.getAxisType("y")};let y="";for(let b=0,v;v=e[b];b++){const $=e[b-1],T=$&&D($.value);let S=n.isWithinRegions(v.x,l);if(D(v.value)){if(tt(l)||!S||!T)y+=`${b&&T?"L":"M"}${f(v)},${p(v)}`;else if(T){try{S=S.dasharray.split(" ")}catch(M){S=c.split(" ")}u=Gt(m.x,$.x,v.x),d=Gt(m.y,$.value,v.value);const A=t(v.x)-t($.x),R=s(v.value)-s($.value),I=Math.sqrt(Math.pow(A,2)+Math.pow(R,2));h=S[0]/I,g=h*S[1];for(let M=h;M<=1;M+=g)y+=x($,v,M,h),M+g>=1&&(y+=x($,v,1,0))}}}return y},isWithinRegions(e,t){for(let s=0,i;i=t[s];s++)if(i.start<e&&e<=i.end)return i.style;return!1},isWithinStep(e,t){return Math.abs(t-mt(this.state.event,e)[1])<30},shouldDrawPointsForLine(e){const t=this.config.line_point;return t===!0||B(t)&&t.indexOf(e.id)!==-1}};const Kt=()=>Rt();var Te={initialOpacityForCircle(e){const{config:t,state:{withoutFadeIn:s}}=this;let i=t.point_opacity;return tt(i)&&(i=this.getBaseValue(e)!==null&&s[e.id]?this.opacityForCircle(e):"0"),i},opacityForCircle(e){var t;const{config:s}=this;let i=s.point_opacity;return tt(i)&&(i=s.point_show&&!((t=this.isPointFocusOnly)!=null&&t.call(this))?null:"0",i=D(this.getBaseValue(e))?this.isBubbleType(e)||this.isScatterType(e)?"0.5":i:"0"),i},initCircle(){const e=this,{$el:{main:t}}=e;!e.point&&(e.point=e.generatePoint()),(e.hasType("bubble")||e.hasType("scatter"))&&t.select(`.${O.chart} > .${ct.chartCircles}`).empty()&&t.select(`.${O.chart}`).append("g").attr("class",ct.chartCircles)},updateTargetForCircle(e,t){const s=this,{config:i,data:n,$el:a}=s,o=i.interaction_enabled&&i.data_selection_enabled,r=o&&i.data_selection_isselectable,l=s.getClass("circles",!0);if(!i.point_show)return;s.initCircle();let c=e,u=t;if(!c){c=n.targets.filter(h=>this.isScatterType(h)||this.isBubbleType(h));const d=a.main.select(`.${ct.chartCircles}`).style("pointer-events","none").selectAll(`.${ct.circles}`).data(c);d.exit().remove(),u=d.enter()}o&&u.append("g").attr("class",d=>s.generateClass(q.selectedCircles,d.id)),u.append("g").attr("class",l).call(d=>{s.setCssRule(!0,`.${ct.circles}`,["cursor:pointer"],r)(d),s.setCssRule(!0,` .${ct.circle}`,["fill","stroke"],s.color)(d)}).style("opacity",function(){return(0,w.select)(this.parentNode).attr("class").indexOf(ct.chartCircles)>-1?"0":null}),o&&c.forEach(d=>{a.main.selectAll(`.${q.selectedCircles}${s.getTargetSelectorSuffix(d.id)}`).selectAll(`${q.selectedCircle}`).each(h=>{h.value=d.values[h.index].value})})},updateCircle(e=!1){const t=this,{config:s,state:i,$el:n}=t,a=t.isPointFocusOnly(),o=e?n.subchart:n;if(s.point_show&&!i.toggling){s.point_radialGradient&&t.updateLinearGradient();const r=o.main.selectAll(`.${ct.circles}`).selectAll(`.${ct.circle}`).data(l=>t.isLineType(l)&&t.shouldDrawPointsForLine(l)||t.isBubbleType(l)||t.isRadarType(l)||t.isScatterType(l)?a?[l.values[0]]:l.values:[]);r.exit().remove(),r.enter().filter(Boolean).append(t.point("create",this,t.pointR.bind(t),t.updateCircleColor.bind(t))),o.circle=o.main.selectAll(`.${ct.circles} .${ct.circle}`).style("stroke",t.getStylePropValue(t.color)).style("opacity",t.initialOpacityForCircle.bind(t))}},updateCircleColor(e){const t=this,s=t.getStylePropValue(t.color);return t.config.point_radialGradient?t.getGradienColortUrl(e.id):s?s(e):null},redrawCircle(e,t,s,i,n=!1){const a=this,{state:{rendered:o},$el:r,$T:l}=a,c=n?r.subchart:r,u=c.main.selectAll(`.${q.selectedCircle}`);if(!a.config.point_show)return[];const d=a.point("update",a,e,t,a.updateCircleColor.bind(a),s,i,u),h=a.isCirclePoint()?"c":"",g=Rt(),f=a.opacityForCircle.bind(a),p=[];return c.circle.each(function(_){let x=d.bind(this)(_);x=l(x,s||!o,g).style("opacity",f),p.push(x)}),[p,l(u,s).attr(`${h}x`,e).attr(`${h}y`,t)]},showCircleFocus(e){const t=this,{state:{hasRadar:s,resizing:i,toggling:n,transiting:a},$el:o}=t;let{circle:r}=o;if(a===!1&&r&&t.isPointFocusOnly()){const l=(s?t.radarCircleX:t.circleX).bind(t),c=(s?t.radarCircleY:t.circleY).bind(t),u=n||tt(e),d=t.point("update",t,l,c,t.getStylePropValue(t.color),i?!1:u);e&&(r=r.filter(function(h){var g;const f=(g=e.filter)==null?void 0:g.call(e,p=>p.id===h.id);return f.length?(0,w.select)(this).datum(f[0]):!1})),r.attr("class",this.updatePointClass.bind(this)).style("opacity",null).each(function(h){const{id:g,index:f,value:p}=h;let _="hidden";D(p)&&(d.bind(this)(h),t.expandCircles(f,g),_=""),this.style.visibility=_})}},hideCircleFocus(){const e=this,{$el:{circle:t}}=e;e.isPointFocusOnly()&&t&&(e.unexpandCircles(),t.style("visibility","hidden"))},circleX(e){return this.xx(e)},updateCircleY(e=!1){const t=this,s=t.generateGetLinePoints(t.getShapeIndices(t.isLineType),e);return(i,n)=>{const a=i.id;return t.isGrouped(a)?s(i,n)[0][1]:t.getYScaleById(a,e)(t.getBaseValue(i))}},expandCircles(e,t,s){const i=this,n=i.pointExpandedR.bind(i);s&&i.unexpandCircles();const a=i.getShapeByIndex("circle",e,t).classed(O.EXPANDED,!0),o=n(a)/i.config.point_r,r=1-o;i.isCirclePoint()?a.attr("r",n):a.each(function(){const l=(0,w.select)(this);if(this.tagName==="circle")l.attr("r",n);else{const{width:c,height:u}=this.getBBox(),d=r*(+l.attr("x")+c/2),h=r*(+l.attr("y")+u/2);l.attr("transform",`translate(${d} ${h}) scale(${o})`)}})},unexpandCircles(e){const t=this,s=t.pointR.bind(t),i=t.getShapeByIndex("circle",e).filter(function(){return(0,w.select)(this).classed(O.EXPANDED)}).classed(O.EXPANDED,!1);if(i.attr("r",s),!t.isCirclePoint()){const n=s(i)/t.config.point_r;i.attr("transform",n!==1?`scale(${n})`:null)}},pointR(e){const t=this,{config:s}=t,i=s.point_r;let n=i;return t.isBubbleType(e)?n=t.getBubbleR(e):E(i)&&(n=i.bind(t.api)(e)),e.r=n,n},pointExpandedR(e){const t=this,{config:s}=t,i=t.isBubbleType(e)?1.15:1.75;return s.point_focus_expand_enabled?s.point_focus_expand_r||t.pointR(e)*i:t.pointR(e)},pointSelectR(e){const t=this,s=t.config.point_select_r;return E(s)?s(e):s||t.pointR(e)*4},isPointFocusOnly(){const e=this;return e.config.point_focus_only&&!e.hasType("bubble")&&!e.hasType("scatter")&&!e.hasArcType(null,["radar"])},isWithinCircle(e,t){const{config:s,state:i}=this,n=mt(i.event,e),a=(0,w.select)(e),o=this.isCirclePoint(e)?"c":"",r=s.point_sensitivity==="radius"?e.getAttribute("r"):s.point_sensitivity;let l=+a.attr(`${o}x`),c=+a.attr(`${o}y`);if(!(l||c)&&e.nodeType===1){const{x:u,y:d}=_e(e);l=u,c=d}return Math.sqrt(Math.pow(l-n[0],2)+Math.pow(c-n[1],2))<(t||r)},getPointSensitivity(e){const t=this;let s=t.config.point_sensitivity;return E(s)?s=s.call(t.api,e):s==="radius"&&(s=e.r),s},updatePointClass(e){const t=this,{circle:s}=t.$el;let i=!1;return(F(e)||s)&&(i=e===!0?s.each(function(n){let a=t.getClass("circle",!0)(n);this.getAttribute("class").indexOf(O.EXPANDED)>-1&&(a+=` ${O.EXPANDED}`),this.setAttribute("class",a)}):t.getClass("circle",!0)(e)),i},generateGetLinePoints(e,t){const s=this,{config:i}=s,n=s.getShapeX(0,e,t),a=s.getShapeY(t),o=s.getShapeOffset(s.isLineType,e,t),r=s.getYScaleById.bind(s);return(l,c)=>{const u=r.call(s,l.id,t)(s.getShapeYMin(l.id)),d=o(l,c)||u,h=n(l);let g=a(l);i.axis_rotated&&(l.value>0&&g<u||l.value<0&&u<g)&&(g=u);const f=[h,g-(u-d)];return[f,f,f,f]}},custom:{create(e,t,s){return e.append("use").attr("xlink:href",`#${t}`).attr("class",this.updatePointClass.bind(this)).style("fill",s).node()},update(e,t,s,i,n,a,o){const r=this,{width:l,height:c}=e.node().getBBox(),u=g=>D(g.value)?t(g)-l/2:0,d=g=>D(g.value)?s(g)-c/2:0;let h=e;return n&&(a&&h.attr("x",u),h=r.$T(h,n,Kt()),o&&r.$T(o,n,Kt())),h.attr("x",u).attr("y",d).style("fill",i)}},circle:{create(e,t,s){return e.append("circle").attr("class",this.updatePointClass.bind(this)).attr("r",t).style("fill",s).node()},update(e,t,s,i,n,a,o){const r=this;let l=e;return r.hasType("bubble")&&l.attr("r",r.pointR.bind(r)),n&&(a&&l.attr("cx",t),l.attr("cx")&&(l=r.$T(l,n,Kt())),o&&r.$T(l,n,Kt())),l.attr("cx",t).attr("cy",s).style("fill",i)}},rectangle:{create(e,t,s){const i=n=>t(n)*2;return e.append("rect").attr("class",this.updatePointClass.bind(this)).attr("width",i).attr("height",i).style("fill",s).node()},update(e,t,s,i,n,a,o){const r=this,l=r.config.point_r,c=h=>t(h)-l,u=h=>s(h)-l;let d=e;return n&&(a&&d.attr("x",c),d=r.$T(d,n,Kt()),o&&r.$T(o,n,Kt())),d.attr("x",c).attr("y",u).style("fill",i)}}};function Uo(e){return Tt(e)&&E(e.create)&&E(e.update)}function Zo(e,t){var s;const i=this,n=(l,c)=>{const u=l.attributes;for(let d=0,h;h=u[d];d++)h=h.name,c.setAttribute(h,l.getAttribute(h))},o=new DOMParser().parseFromString(e,"image/svg+xml").documentElement,r=it.createElementNS(w.namespaces.svg,o.nodeName.toLowerCase());if(r.id=t,r.style.fill="inherit",r.style.stroke="inherit",n(o,r),(s=o.childNodes)!=null&&s.length){const l=(0,w.select)(r);"innerHTML"in r?l.html(o.innerHTML):Bt(o.childNodes).forEach(c=>{n(c,l.append(c.tagName).node())})}i.$el.defs.node().appendChild(r)}var Jt={hasValidPointType(e){return/^(circle|rect(angle)?|polygon|ellipse|use)$/i.test(e||this.config.point_type)},hasLegendDefsPoint(){var e;const{config:t}=this;return t.legend_show&&((e=t.point_pattern)==null?void 0:e.length)&&t.legend_usePoint},getDefsPointId(e){const{state:{datetimeId:t}}=this;return`${t}-point${e}`},generatePoint(){const e=this,{$el:t,config:s}=e,i=[],n=et(s.point_pattern)?s.point_pattern:[s.point_type];return function(a,o,...r){return function(l){var c,u,d,h;const g=e.getTargetSelectorSuffix(l.id||((c=l.data)==null?void 0:c.id)||l),f=(0,w.select)(this);i.indexOf(g)<0&&i.push(g);let p=n[i.indexOf(g)%n.length];if(e.hasValidPointType(p))p=e[p];else if(!Uo(p||s.point_type)){const _=e.getDefsPointId(g);if(t.defs.select(`#${_}`).size()<1&&Zo.bind(e)(p,_),a==="create")return(u=e.custom)==null?void 0:u.create.bind(o)(f,_,...r);if(a==="update")return(d=e.custom)==null?void 0:d.update.bind(o)(f,...r)}return(h=p[a])==null?void 0:h.bind(o)(f,...r)}}}};function ri(e){const t=e.config.polar_level_max;let s=e.getMinMaxData().max[0].value;return t&&t>s&&(s=t),s}var qo={initPolar(){const e=this,{$el:{arcs:t},config:s}=e,i=s.polar_level_text_show,n=s.polar_level_text_backgroundColor;t.levels=t.append("g").attr("class",Et.levels),i&&n&&e.generateTextBGColorFilter(n)},getPolarOuterRadius(e,t){var s;const i=ri(this);return((s=e==null?void 0:e.data.values[0].value)!=null?s:0)/i*t},updateTargetsForPolar(e){this.updateTargetsForArc(e)},redrawPolar(){const e=this,{config:t}=e;t.polar_level_show&&e.updatePolarLevel()},updatePolarLevel(){const e=this,{config:t,state:s,$el:{arcs:{levels:i}}}=e,n=t.polar_level_depth,a=ri(e),o=me(0,n),r=s.radius,l=o.map(h=>r*((h+1)/n)),c=(t.polar_level_text_format||function(){}).bind(e.api),u=i.selectAll(`.${Et.level}`).data(o);u.exit().remove();const d=u.enter().append("g").attr("class",(h,g)=>`${Et.level} ${Et.level}-${g}`);if(d.append("circle"),d.merge(u).selectAll("circle").style("visibility",t.polar_level_show?null:"hidden").attr("cx",0).attr("cy",0).attr("r",h=>l[h]),t.polar_level_text_show){const h=t.polar_level_text_backgroundColor,g=`#${s.datetimeId}-labels-bg${e.getTargetSelectorSuffix(h)}`;d.append("text").style("text-anchor","middle"),d.merge(u).selectAll("text").attr("dy",f=>-l[f]+5).attr("filter",h?`url(${g})`:null).text(f=>c(a/o.length*(f+1)))}}};function Ko(e,t,s,i,n,a){const o=e&&i>0?s-i:i,r=2*Math.PI;return n*(1-a*(t==="x"?Math.sin:Math.cos)(o*r/s))}const Qt=ft.radarPoints,li=ft.radarTextWidth;var Jo={initRadar(){const e=this,{config:t,state:{current:s},$el:i}=e;e.hasType("radar")&&(i.radar=i.main.select(`.${O.chart}`).append("g").attr("class",Ke.chartRadars),i.radar.levels=i.radar.append("g").attr("class",Et.levels),i.radar.axes=i.radar.append("g").attr("class",st.axis),i.radar.shapes=i.radar.append("g").attr("class",Q.shapes),s.dataMax=t.radar_axis_max||e.getMinMaxData().max[0].value,t.radar_axis_text_show&&(t.interaction_enabled&&e.bindRadarEvent(),e.updateRadarLevel(),e.updateRadarAxes()))},getRadarSize(){const e=this,{config:t,state:{arcWidth:s,arcHeight:i}}=e,n=t.axis_x_categories.length<4?-20:10,a=(Math.min(s,i)-n)/2;return[a,a]},updateTargetsForRadar(e){const t=this,{config:s}=t;bt(s.axis_x_categories)&&(s.axis_x_categories=me(0,vt("max",e.map(i=>i.values.length)))),t.generateRadarPoints()},getRadarPosition(e,t,s,i){const n=this,{config:a}=n,[o,r]=n.getRadarSize(),l=a.axis_x_categories.length,c=a.radar_direction_clockwise,u=Bt(e).map(d=>Ko(c,d,l,t,Y(s)?s:e==="x"?o:r,C(i)?i:a.radar_size_ratio));return u.length===1?u[0]:u},generateRadarPoints(){const e=this,t=e.data.targets,[s,i]=e.getRadarSize(),n=e.cache.get(Qt)||{},a=n._size;(!a||a.width!==s&&a.height!==i)&&(t.forEach(o=>{n[o.id]=o.values.map((r,l)=>e.getRadarPosition(["x","y"],l,void 0,e.getRatio("radar",r)))}),n._size={width:s,height:i},e.cache.add(Qt,n))},redrawRadar(){const e=this,{radar:t,main:s}=e.$el,i=e.getTranslate("radar");i&&(t.attr("transform",i),s.select(`.${ut.chartTexts}`).attr("transform",i),e.generateRadarPoints(),e.updateRadarLevel(),e.updateRadarAxes(),e.updateRadarShape())},generateGetRadarPoints(){const e=this.cache.get(Qt);return(t,s)=>{const i=e[t.id][s];return[i,i,i,i]}},updateRadarLevel(){const e=this,{config:t,state:s,$el:{radar:i}}=e,[n,a]=e.getRadarSize(),o=t.radar_level_depth,r=t.axis_x_categories.length,l=t.radar_level_text_show,c=i.levels,u=me(0,o),d=t.radar_size_ratio*Math.min(n,a),h=u.map(x=>d*((x+1)/o)),g=(t.radar_level_text_format||function(){}).bind(e.api),f=u.map(x=>{const m=h[x];return me(0,r).map(b=>e.getRadarPosition(["x","y"],b,m,1).join(",")).join(" ")}),p=c.selectAll(`.${Et.level}`).data(u);p.exit().remove();const _=p.enter().append("g").attr("class",(x,m)=>`${Et.level} ${Et.level}-${m}`);_.append("polygon").style("visibility",t.radar_level_show?null:"hidden"),l&&(c.select("text").empty()&&c.append("text").attr("dx","-.5em").attr("dy","-.7em").style("text-anchor","end").text(()=>g(0)),_.append("text").attr("dx","-.5em").style("text-anchor","end").text(x=>g(s.current.dataMax/u.length*(x+1)))),_.merge(p).attr("transform",x=>`translate(${n-h[x]}, ${a-h[x]})`).selectAll("polygon").attr("points",x=>f[x]),l&&c.selectAll("text").attr("x",x=>tt(x)?n:f[x].split(",")[0]).attr("y",x=>tt(x)?a:0)},updateRadarAxes(){const e=this,{config:t,$el:{radar:s}}=e,[i,n]=e.getRadarSize(),a=t.axis_x_categories;let o=s.axes.selectAll("g").data(a);o.exit().remove();const r=o.enter().append("g").attr("class",(l,c)=>`${st.axis}-${c}`);if(t.radar_axis_line_show&&r.append("line"),t.radar_axis_text_show&&r.append("text"),o=r.merge(o),t.radar_axis_line_show&&o.select("line").attr("x1",i).attr("y1",n).attr("x2",(l,c)=>e.getRadarPosition("x",c)).attr("y2",(l,c)=>e.getRadarPosition("y",c)),t.radar_axis_text_show){const{x:l=0,y:c=0}=t.radar_axis_text_position,u=e.cache.get(li)||0;if(o.select("text").style("text-anchor","middle").attr("dy",".5em").call(d=>{d.each(function(h){ne((0,w.select)(this),String(h),[-.6,1.2])})}).datum((d,h)=>({index:h})).attr("transform",function(d){tt(this.width)&&(this.width=this.getBoundingClientRect().width/2);let h=e.getRadarPosition("x",d.index,void 0,1),g=Math.round(e.getRadarPosition("y",d.index,void 0,1));return h>i?h+=this.width+l:Math.round(h)<i&&(h-=this.width+l),g>n?(g/2===n&&this.firstChild.tagName==="tspan"&&this.firstChild.setAttribute("dy","0em"),g+=c):g<n&&(g-=c),`translate(${h} ${g})`}),!u){const d=[s.axes,s.levels].map(h=>as(h.node()).width);d.every(h=>h>0)&&e.cache.add(li,d[0]-d[1])}}},bindRadarEvent(){const e=this,{state:t,$el:{radar:s,svg:i}}=e,n=e.isPointFocusOnly(),{inputType:a,transiting:o}=t,r=a==="mouse",l=c=>{t.event=c;const u=e.getDataIndexFromEvent(c),d=tt(u);(r||d)&&(e.hideTooltip(),n?e.hideCircleFocus():e.unexpandCircles(),r?e.setOverOut(!1,u):d&&e.callOverOutForTouch())};s.axes.on(r?"mouseover ":"touchstart",c=>{if(o)return;t.event=c;const u=e.getDataIndexFromEvent(c);e.selectRectForSingle(i.node(),u),r?e.setOverOut(!0,u):e.callOverOutForTouch(u)}).on("mouseout",r?l:null),r||i.on("touchstart",l)},updateRadarShape(){const e=this,t=e.data.targets.filter(a=>e.isRadarType(a)),s=e.cache.get(Qt),i=e.$el.radar.shapes.selectAll("polygon").data(t),n=i.enter().append("g").attr("class",e.getChartClass("Radar"));e.$T(i.exit()).remove(),n.append("polygon").merge(i).style("fill",e.color).style("stroke",e.color).attr("points",a=>s[a.id].join(" ")),e.updateTargetForCircle(t,n)},radarCircleX(e){return this.cache.get(Qt)[e.id][e.index][0]},radarCircleY(e){return this.cache.get(Qt)[e.id][e.index][1]}},kt=j(14);function Qo(e,t){const s=this,{scale:{x:i,y:n},state:{width:a}}=s;e.selectAll("g").attr("transform",o=>`translate(${o===t?"0,0":`${i(o.x0)},${n(o.y0)}`})`).select("rect").attr("width",o=>o===t?a:i(o.x1)-i(o.x0)).attr("height",o=>o===t?0:n(o.y1)-n(o.y0))}function tr(e){const t=this;return e.map(s=>{const{id:i,values:n}=s,{value:a}=n[0];return{name:i,id:i,value:a,ratio:t.getRatio("treemap",n[0])}})}function er(e){const t=this,s=(0,kt.hierarchy)(e).sum(n=>n.value),i=t.getSortCompareFn(!0);return[t.treemap(i?s.sort(i):s)]}var sr={initTreemap(){const e=this,{$el:t,state:{current:{width:s,height:i},clip:n,datetimeId:a}}=e;n.id=`${a}-clip`,e.treemap=(0,kt.treemap)().tile(e.getTreemapTile()),t.defs.append("clipPath").attr("id",n.id).append("rect").attr("width",s).attr("height",i),t.treemap=t.main.select(`.${O.chart}`).attr("clip-path",`url(#${n.id})`).append("g").classed(Qe.chartTreemaps,!0),e.bindTreemapEvent()},bindTreemapEvent(){const e=this,{$el:t,config:s,state:i}=e,n=a=>{var o;const r=a.isTrusted?a.target:(o=i.eventReceiver.rect)==null?void 0:o.node();let l;return/^rect$/i.test(r.tagName)&&(i.event=a,l=(0,w.select)(r).datum()),l==null?void 0:l.data};if(s.interaction_enabled){const a=i.inputType==="touch";t.treemap.on(a?"touchstart":"mouseover mousemove",o=>{const r=n(o);r&&(e.showTooltip([r],o.currentTarget),/^(touchstart|mouseover)$/.test(o.type)&&e.setOverOut(!0,r))}).on(a?"touchend":"mouseout",o=>{const r=n(o);e.hideTooltip(),e.setOverOut(!1,r)})}},getTreemapTile(){var e,t;const s=this,{config:i,state:{current:{width:n,height:a}}}=s,o=(t={binary:kt.treemapBinary,dice:kt.treemapDice,slice:kt.treemapSlice,sliceDice:kt.treemapSliceDice,squarify:kt.treemapSquarify,resquarify:kt.treemapResquarify}[(e=i.treemap_tile)!=null?e:"binary"])!=null?t:kt.treemapBinary;return(r,l,c,u,d)=>{o(r,0,0,n,a);for(const h of r.children)h.x0=l+h.x0/n*(u-l),h.x1=l+h.x1/n*(u-l),h.y0=c+h.y0/a*(d-c),h.y1=c+h.y1/a*(d-c)}},getTreemapData(e){const t=this;return{name:"root",children:tr.bind(t)(t.filterTargetsToShow(e.filter(t.isTreemapType,t)))}},updateTargetsForTreemap(e){const t=this,{$el:{treemap:s}}=t,i=er.call(t,t.getTreemapData(e!=null?e:t.data.targets));s.data(i)},updateTreemap(e){const t=this,{$el:s,$T:i}=t,n=s.treemap.datum(),a=t.getChartClass("Treemap"),o=t.getClass("treemap",!0),r=s.treemap.selectAll("g").data(n.children);i(r.exit(),e).style("opacity","0").remove(),r.enter().append("g").append("rect"),s.treemap.selectAll("g").attr("class",a).select("rect").attr("class",o).attr("fill",l=>t.color(l.data.name))},generateGetTreemapPoints(){const e=this,{$el:t,scale:{x:s,y:i}}=e,n={};return t.treemap.selectAll("g").each(a=>{n[a.data.name]=[[s(a.x0),i(a.y0)],[s(a.x1),i(a.y1)]]}),a=>n[a.id]},redrawTreemap(e){const t=this,{$el:s,state:{current:{width:i,height:n}}}=t;return s.defs.select("rect").attr("width",i).attr("height",n),[t.$T(s.treemap,e,Rt()).call(Qo.bind(t),s.treemap.datum())]},treemapDataLabelFormat(e){const t=this,{config:s}=t,{id:i,value:n}=e,a=s.treemap_label_format,o=t.getRatio("treemap",e),r=(o*100).toFixed(2),l=s.treemap_label_show&&t.meetsLabelThreshold(o,"treemap")?null:"0";return function(c){return c.style("opacity",l),E(a)?a.bind(t.api)(n,o,i):`${i} +${r}%`}}},Yt={point_show:!0,point_r:2.5,point_radialGradient:!1,point_sensitivity:10,point_focus_expand_enabled:!0,point_focus_expand_r:void 0,point_focus_only:!1,point_opacity:void 0,point_pattern:[],point_select_r:void 0,point_type:"circle"},le={area_above:!1,area_below:!1,area_front:!0,area_linearGradient:!1,area_zerobased:!0},ir={bar_front:!1,bar_indices_removeNull:!1,bar_label_threshold:0,bar_linearGradient:!1,bar_overlap:!1,bar_padding:0,bar_radius:void 0,bar_radius_ratio:void 0,bar_sensitivity:2,bar_width:void 0,bar_width_ratio:.6,bar_width_max:void 0,bar_zerobased:!0},nr={bubble_maxR:35,bubble_zerobased:!1},ar={candlestick_width:void 0,candlestick_width_ratio:.6,candlestick_width_max:void 0,candlestick_color_down:"red"},or={line_connectNull:!1,line_step_type:"step",line_step_tooltipMatch:!1,line_zerobased:!1,line_classes:void 0,line_point:!0},rr={scatter_zerobased:!1},Ye={spline_interpolation_type:"cardinal"},Ae={arc_cornerRadius:0,arc_cornerRadius_ratio:0,arc_needle_show:!1,arc_needle_color:void 0,arc_needle_value:void 0,arc_needle_path:void 0,arc_needle_length:100,arc_needle_top_rx:0,arc_needle_top_ry:0,arc_needle_top_width:0,arc_needle_bottom_rx:1,arc_needle_bottom_ry:1,arc_needle_bottom_width:15,arc_needle_bottom_len:0,arc_rangeText_values:void 0,arc_rangeText_unit:"absolute",arc_rangeText_fixed:!1,arc_rangeText_format:void 0,arc_rangeText_position:void 0},lr={donut_label_show:!0,donut_label_format:void 0,donut_label_threshold:.05,donut_label_ratio:void 0,donut_width:void 0,donut_title:"",donut_expand:{},donut_expand_rate:.98,donut_expand_duration:50,donut_padAngle:0,donut_startingAngle:0},cr={funnel_neck_width:0,funnel_neck_height:0},dr={gauge_background:"",gauge_fullCircle:!1,gauge_label_show:!0,gauge_label_extents:void 0,gauge_label_format:void 0,gauge_label_ratio:void 0,gauge_label_threshold:0,gauge_enforceMinMax:!1,gauge_min:0,gauge_max:100,gauge_type:"single",gauge_startingAngle:-1*Math.PI/2,gauge_arcLength:100,gauge_title:"",gauge_units:void 0,gauge_width:void 0,gauge_arcs_minWidth:5,gauge_expand:{},gauge_expand_rate:.98,gauge_expand_duration:50},ur={pie_label_show:!0,pie_label_format:void 0,pie_label_ratio:void 0,pie_label_threshold:.05,pie_expand:{},pie_expand_rate:.98,pie_expand_duration:50,pie_innerRadius:0,pie_outerRadius:void 0,pie_padAngle:0,pie_padding:0,pie_startingAngle:0},hr={polar_label_show:!0,polar_label_format:void 0,polar_label_threshold:.05,polar_label_ratio:void 0,polar_level_depth:3,polar_level_max:void 0,polar_level_show:!0,polar_level_text_backgroundColor:"#fff",polar_level_text_format:e=>e%1===0?e:e.toFixed(2),polar_level_text_show:!0,polar_padAngle:0,polar_padding:0,polar_startingAngle:0},gr={radar_axis_max:void 0,radar_axis_line_show:!0,radar_axis_text_show:!0,radar_axis_text_position:{},radar_level_depth:3,radar_level_show:!0,radar_level_text_format:e=>e%1===0?e:e.toFixed(2),radar_level_text_show:!0,radar_size_ratio:.87,radar_direction_clockwise:!1},fr={treemap_tile:"binary",treemap_label_format:void 0,treemap_label_threshold:.05,treemap_label_show:!0};function te(e,t){nt(Vt.prototype,Object.values(Us).concat(e)),nt(It.prototype,To),Nt.setOptions(Object.values(Zs).concat(t||[]))}function Dt(e,t){te([Jt,Te,Wo].concat(e||[])),Nt.setOptions([Yt,or].concat(t||[]))}function ee(e,t){nt(Vt.prototype,[Lo,Jt].concat(e||[])),Nt.setOptions([Yt].concat(t||[]))}let ci=()=>(Dt(re,[le]),(ci=()=>k.AREA)()),di=()=>(Dt(re,[le]),(di=()=>k.AREA_LINE_RANGE)()),ui=()=>(Dt(re,[le,Ye]),(ui=()=>k.AREA_SPLINE)()),hi=()=>(Dt(re,[le,Ye]),(hi=()=>k.AREA_SPLINE_RANGE)()),gi=()=>(Dt(re,[le]),(gi=()=>k.AREA_STEP)()),fi=()=>(Dt(),(fi=()=>k.LINE)()),pi=()=>(Dt(void 0,[Ye]),(pi=()=>k.SPLINE)()),xi=()=>(Dt(),(xi=()=>k.STEP)()),_i=()=>(ee(void 0,[Ae,lr]),(_i=()=>k.DONUT)()),mi=()=>(ee([Ho],[Ae,dr]),(mi=()=>k.GAUGE)()),$i=()=>(ee(void 0,[Ae,ur]),($i=()=>k.PIE)()),yi=()=>(ee([qo],[Ae,hr]),(yi=()=>k.POLAR)()),bi=()=>(ee([Us.eventrect,Te,Jo],[Yt,gr,{axis_x_categories:Zs.optAxis.axis_x_categories}]),(bi=()=>k.RADAR)()),vi=()=>(te([Po,Jt],[ir,Yt]),(vi=()=>k.BAR)()),Ti=()=>(te([Jt,Te,Oo],[nr,Yt]),(Ti=()=>k.BUBBLE)()),Ai=()=>(te([Mo,Jt],[ar,Yt]),(Ai=()=>k.CANDLESTICK)()),wi=()=>(te([Jt,Te],[Yt,rr]),(wi=()=>k.SCATTER)()),Si=()=>(ee([jo],[cr]),(Si=()=>k.FUNNEL)()),Ri=()=>(te([sr],[fr]),(Ri=()=>k.TREEMAP)()),je={};const Ci={version:"3.12.4",generate(e){const t=Ut({},je,e),s=new It(t);return s.internal.charts=this.instance,this.instance.push(s),s},defaults(e){return F(e)&&(je=e),je},instance:[],plugin:{}};Object.keys(pt).forEach(e=>pt[e]()),Object.keys(P).forEach(e=>P[e]())}(),we}()}); diff --git a/release/3.12.4/dist/billboard.pkgd.js b/release/3.12.4/dist/billboard.pkgd.js new file mode 100644 index 000000000..423f6c7c8 --- /dev/null +++ b/release/3.12.4/dist/billboard.pkgd.js @@ -0,0 +1,48785 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * + * All-in-one packaged file for ease use of 'billboard.js' with dependant d3.js modules & polyfills. + * - @types/d3-selection ^3.0.0 + * - @types/d3-transition ^3.0.0 + * - d3-axis ^3.0.0 + * - d3-brush ^3.0.0 + * - d3-drag ^3.0.0 + * - d3-dsv ^3.0.1 + * - d3-ease ^3.0.1 + * - d3-hierarchy ^3.1.2 + * - d3-interpolate ^3.0.1 + * - d3-scale ^4.0.2 + * - d3-selection ^3.0.0 + * - d3-shape ^3.2.0 + * - d3-time-format ^4.1.0 + * - d3-transition ^3.0.1 + * - d3-zoom ^3.0.0 + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(this, function() { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +__webpack_require__(1); +__webpack_require__(97); +__webpack_require__(98); +__webpack_require__(99); +__webpack_require__(100); +__webpack_require__(101); +__webpack_require__(102); +__webpack_require__(103); +__webpack_require__(104); +__webpack_require__(105); +__webpack_require__(106); +__webpack_require__(107); +__webpack_require__(108); +__webpack_require__(109); +__webpack_require__(110); +__webpack_require__(111); +__webpack_require__(124); +__webpack_require__(126); +__webpack_require__(136); +__webpack_require__(137); +__webpack_require__(139); +__webpack_require__(143); +__webpack_require__(146); +__webpack_require__(148); +__webpack_require__(150); +__webpack_require__(151); +__webpack_require__(152); +__webpack_require__(153); +__webpack_require__(155); +__webpack_require__(156); +__webpack_require__(158); +__webpack_require__(159); +__webpack_require__(161); +__webpack_require__(165); +__webpack_require__(166); +__webpack_require__(167); +__webpack_require__(168); +__webpack_require__(173); +__webpack_require__(174); +__webpack_require__(176); +__webpack_require__(177); +__webpack_require__(178); +__webpack_require__(180); +__webpack_require__(183); +__webpack_require__(184); +__webpack_require__(185); +__webpack_require__(186); +__webpack_require__(187); +__webpack_require__(192); +__webpack_require__(194); +__webpack_require__(195); +__webpack_require__(197); +__webpack_require__(200); +__webpack_require__(201); +__webpack_require__(202); +__webpack_require__(203); +__webpack_require__(204); +__webpack_require__(206); +__webpack_require__(216); +__webpack_require__(218); +__webpack_require__(221); +__webpack_require__(223); +__webpack_require__(226); +__webpack_require__(233); +__webpack_require__(234); +__webpack_require__(235); +__webpack_require__(236); +__webpack_require__(237); +__webpack_require__(238); +__webpack_require__(242); +__webpack_require__(243); +__webpack_require__(245); +__webpack_require__(246); +__webpack_require__(247); +__webpack_require__(249); +__webpack_require__(250); +__webpack_require__(251); +__webpack_require__(93); +__webpack_require__(252); +__webpack_require__(253); +__webpack_require__(261); +__webpack_require__(263); +__webpack_require__(265); +__webpack_require__(266); +__webpack_require__(267); +__webpack_require__(268); +__webpack_require__(269); +__webpack_require__(271); +__webpack_require__(272); +__webpack_require__(273); +__webpack_require__(274); +__webpack_require__(275); +__webpack_require__(277); +__webpack_require__(278); +__webpack_require__(279); +__webpack_require__(280); +__webpack_require__(281); +__webpack_require__(282); +__webpack_require__(283); +__webpack_require__(284); +__webpack_require__(288); +__webpack_require__(289); +__webpack_require__(291); +__webpack_require__(293); +__webpack_require__(294); +__webpack_require__(295); +__webpack_require__(296); +__webpack_require__(297); +__webpack_require__(299); +__webpack_require__(301); +__webpack_require__(302); +__webpack_require__(303); +__webpack_require__(304); +__webpack_require__(306); +__webpack_require__(307); +__webpack_require__(309); +__webpack_require__(310); +__webpack_require__(311); +__webpack_require__(312); +__webpack_require__(314); +__webpack_require__(315); +__webpack_require__(316); +__webpack_require__(317); +__webpack_require__(318); +__webpack_require__(319); +__webpack_require__(320); +__webpack_require__(321); +__webpack_require__(322); +__webpack_require__(324); +__webpack_require__(325); +__webpack_require__(326); +__webpack_require__(327); +__webpack_require__(328); +__webpack_require__(329); +__webpack_require__(330); +__webpack_require__(331); +__webpack_require__(332); +__webpack_require__(333); +__webpack_require__(334); +__webpack_require__(336); +__webpack_require__(337); +__webpack_require__(338); +__webpack_require__(339); +__webpack_require__(361); +__webpack_require__(362); +__webpack_require__(363); +__webpack_require__(364); +__webpack_require__(365); +__webpack_require__(366); +__webpack_require__(367); +__webpack_require__(368); +__webpack_require__(369); +__webpack_require__(371); +__webpack_require__(372); +__webpack_require__(373); +__webpack_require__(374); +__webpack_require__(375); +__webpack_require__(376); +__webpack_require__(377); +__webpack_require__(378); +__webpack_require__(379); +__webpack_require__(380); +__webpack_require__(387); +__webpack_require__(388); +__webpack_require__(390); +__webpack_require__(391); +__webpack_require__(392); +__webpack_require__(393); +__webpack_require__(394); +__webpack_require__(396); +__webpack_require__(407); +__webpack_require__(409); +__webpack_require__(411); +__webpack_require__(413); +__webpack_require__(415); +__webpack_require__(417); +__webpack_require__(419); +__webpack_require__(420); +__webpack_require__(422); +__webpack_require__(425); +__webpack_require__(426); +__webpack_require__(427); +__webpack_require__(428); +__webpack_require__(429); +__webpack_require__(433); +__webpack_require__(434); +__webpack_require__(436); +__webpack_require__(437); +__webpack_require__(438); +__webpack_require__(439); +__webpack_require__(441); +__webpack_require__(442); +__webpack_require__(443); +__webpack_require__(444); +__webpack_require__(445); +__webpack_require__(446); +__webpack_require__(447); +__webpack_require__(449); +__webpack_require__(452); +__webpack_require__(455); +__webpack_require__(458); +__webpack_require__(459); +__webpack_require__(460); +__webpack_require__(461); +__webpack_require__(462); +__webpack_require__(463); +__webpack_require__(464); +__webpack_require__(465); +__webpack_require__(466); +__webpack_require__(467); +__webpack_require__(468); +__webpack_require__(469); +__webpack_require__(470); +__webpack_require__(479); +__webpack_require__(480); +__webpack_require__(481); +__webpack_require__(482); +__webpack_require__(483); +__webpack_require__(484); +__webpack_require__(485); +__webpack_require__(486); +__webpack_require__(487); +__webpack_require__(488); +__webpack_require__(489); +__webpack_require__(490); +__webpack_require__(491); +__webpack_require__(494); +__webpack_require__(495); +__webpack_require__(496); +__webpack_require__(497); +__webpack_require__(498); +__webpack_require__(499); +__webpack_require__(500); +__webpack_require__(501); +__webpack_require__(502); +__webpack_require__(503); +__webpack_require__(504); +__webpack_require__(505); +__webpack_require__(506); +__webpack_require__(507); +__webpack_require__(508); +__webpack_require__(509); +__webpack_require__(510); +__webpack_require__(511); +__webpack_require__(512); +__webpack_require__(513); +__webpack_require__(514); +__webpack_require__(515); +__webpack_require__(516); +__webpack_require__(517); +__webpack_require__(518); +__webpack_require__(519); +__webpack_require__(520); +__webpack_require__(521); +__webpack_require__(524); +__webpack_require__(526); +__webpack_require__(528); +__webpack_require__(529); +__webpack_require__(532); +__webpack_require__(533); +__webpack_require__(535); +__webpack_require__(536); +__webpack_require__(537); +__webpack_require__(542); +__webpack_require__(543); +__webpack_require__(544); +__webpack_require__(545); +__webpack_require__(548); +__webpack_require__(553); +__webpack_require__(554); +__webpack_require__(555); +__webpack_require__(556); +__webpack_require__(557); +__webpack_require__(558); +__webpack_require__(559); + +/* unused reexport */ __webpack_require__(80); + + +/***/ }), +/* 1 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(2); +__webpack_require__(90); +__webpack_require__(92); +__webpack_require__(93); +__webpack_require__(96); + + +/***/ }), +/* 2 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var $toString = __webpack_require__(68); +var createPropertyDescriptor = __webpack_require__(11); +var nativeObjectCreate = __webpack_require__(71); +var objectKeys = __webpack_require__(73); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternal = __webpack_require__(75); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); +var definePropertiesModule = __webpack_require__(72); +var propertyIsEnumerableModule = __webpack_require__(10); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var shared = __webpack_require__(34); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); +var uid = __webpack_require__(40); +var wellKnownSymbol = __webpack_require__(33); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); +var $forEach = (__webpack_require__(83).forEach); + +var HIDDEN = sharedKey('hidden'); +var SYMBOL = 'Symbol'; +var PROTOTYPE = 'prototype'; + +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(SYMBOL); + +var ObjectPrototype = Object[PROTOTYPE]; +var $Symbol = global.Symbol; +var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; +var RangeError = global.RangeError; +var TypeError = global.TypeError; +var QObject = global.QObject; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; +var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; +var push = uncurryThis([].push); + +var AllSymbols = shared('symbols'); +var ObjectPrototypeSymbols = shared('op-symbols'); +var WellKnownSymbolsStore = shared('wks'); + +// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 +var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var fallbackDefineProperty = function (O, P, Attributes) { + var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); + if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; + nativeDefineProperty(O, P, Attributes); + if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { + nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); + } +}; + +var setSymbolDescriptor = DESCRIPTORS && fails(function () { + return nativeObjectCreate(nativeDefineProperty({}, 'a', { + get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } + })).a !== 7; +}) ? fallbackDefineProperty : nativeDefineProperty; + +var wrap = function (tag, description) { + var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype); + setInternalState(symbol, { + type: SYMBOL, + tag: tag, + description: description + }); + if (!DESCRIPTORS) symbol.description = description; + return symbol; +}; + +var $defineProperty = function defineProperty(O, P, Attributes) { + if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); + anObject(O); + var key = toPropertyKey(P); + anObject(Attributes); + if (hasOwn(AllSymbols, key)) { + if (!Attributes.enumerable) { + if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null))); + O[HIDDEN][key] = true; + } else { + if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; + Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); + } return setSymbolDescriptor(O, key, Attributes); + } return nativeDefineProperty(O, key, Attributes); +}; + +var $defineProperties = function defineProperties(O, Properties) { + anObject(O); + var properties = toIndexedObject(Properties); + var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); + $forEach(keys, function (key) { + if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); + }); + return O; +}; + +var $create = function create(O, Properties) { + return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); +}; + +var $propertyIsEnumerable = function propertyIsEnumerable(V) { + var P = toPropertyKey(V); + var enumerable = call(nativePropertyIsEnumerable, this, P); + if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false; + return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P] + ? enumerable : true; +}; + +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { + var it = toIndexedObject(O); + var key = toPropertyKey(P); + if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return; + var descriptor = nativeGetOwnPropertyDescriptor(it, key); + if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) { + descriptor.enumerable = true; + } + return descriptor; +}; + +var $getOwnPropertyNames = function getOwnPropertyNames(O) { + var names = nativeGetOwnPropertyNames(toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key); + }); + return result; +}; + +var $getOwnPropertySymbols = function (O) { + var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; + var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) { + push(result, AllSymbols[key]); + } + }); + return result; +}; + +// `Symbol` constructor +// https://tc39.es/ecma262/#sec-symbol-constructor +if (!NATIVE_SYMBOL) { + $Symbol = function Symbol() { + if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor'); + var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]); + var tag = uid(description); + var setter = function (value) { + var $this = this === undefined ? global : this; + if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value); + if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false; + var descriptor = createPropertyDescriptor(1, value); + try { + setSymbolDescriptor($this, tag, descriptor); + } catch (error) { + if (!(error instanceof RangeError)) throw error; + fallbackDefineProperty($this, tag, descriptor); + } + }; + if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); + return wrap(tag, description); + }; + + SymbolPrototype = $Symbol[PROTOTYPE]; + + defineBuiltIn(SymbolPrototype, 'toString', function toString() { + return getInternalState(this).tag; + }); + + defineBuiltIn($Symbol, 'withoutSetter', function (description) { + return wrap(uid(description), description); + }); + + propertyIsEnumerableModule.f = $propertyIsEnumerable; + definePropertyModule.f = $defineProperty; + definePropertiesModule.f = $defineProperties; + getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; + getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; + getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; + + wrappedWellKnownSymbolModule.f = function (name) { + return wrap(wellKnownSymbol(name), name); + }; + + if (DESCRIPTORS) { + // https://github.com/tc39/proposal-Symbol-description + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + return getInternalState(this).description; + } + }); + if (!IS_PURE) { + defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { + Symbol: $Symbol +}); + +$forEach(objectKeys(WellKnownSymbolsStore), function (name) { + defineWellKnownSymbol(name); +}); + +$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { + useSetter: function () { USE_SETTER = true; }, + useSimple: function () { USE_SETTER = false; } +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, { + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + create: $create, + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + defineProperty: $defineProperty, + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + defineProperties: $defineProperties, + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors + getOwnPropertyDescriptor: $getOwnPropertyDescriptor +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + getOwnPropertyNames: $getOwnPropertyNames +}); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag($Symbol, SYMBOL); + +hiddenKeys[HIDDEN] = true; + + +/***/ }), +/* 3 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineGlobalProperty = __webpack_require__(37); +var copyConstructorProperties = __webpack_require__(55); +var isForced = __webpack_require__(67); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global[TARGET] && global[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn(target, key, sourceProperty, options); + } +}; + + +/***/ }), +/* 4 */ +/***/ (function(module) { + + +var check = function (it) { + return it && it.Math === Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + check(typeof this == 'object' && this) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + +/***/ }), +/* 5 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var call = __webpack_require__(8); +var propertyIsEnumerableModule = __webpack_require__(10); +var createPropertyDescriptor = __webpack_require__(11); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var IE8_DOM_DEFINE = __webpack_require__(41); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); +}; + + +/***/ }), +/* 6 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; +}); + + +/***/ }), +/* 7 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var call = Function.prototype.call; + +module.exports = NATIVE_BIND ? call.bind(call) : function () { + return call.apply(call, arguments); +}; + + +/***/ }), +/* 9 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + + +/***/ }), +/* 10 */ +/***/ (function(__unused_webpack_module, exports) { + + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + + +/***/ }), +/* 11 */ +/***/ (function(module) { + + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), +/* 12 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = __webpack_require__(13); +var requireObjectCoercible = __webpack_require__(16); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + + +/***/ }), +/* 13 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var classof = __webpack_require__(15); + +var $Object = Object; +var split = uncurryThis(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) === 'String' ? split(it, '') : $Object(it); +} : $Object; + + +/***/ }), +/* 14 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var call = FunctionPrototype.call; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); + +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + + +/***/ }), +/* 15 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var toString = uncurryThis({}.toString); +var stringSlice = uncurryThis(''.slice); + +module.exports = function (it) { + return stringSlice(toString(it), 8, -1); +}; + + +/***/ }), +/* 16 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isNullOrUndefined = __webpack_require__(17); + +var $TypeError = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), +/* 17 */ +/***/ (function(module) { + + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +module.exports = function (it) { + return it === null || it === undefined; +}; + + +/***/ }), +/* 18 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); +var isSymbol = __webpack_require__(22); + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +module.exports = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + + +/***/ }), +/* 19 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var getMethod = __webpack_require__(29); +var ordinaryToPrimitive = __webpack_require__(32); +var wellKnownSymbol = __webpack_require__(33); + +var $TypeError = TypeError; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +module.exports = function (input, pref) { + if (!isObject(input) || isSymbol(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) return result; + throw new $TypeError("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + + +/***/ }), +/* 20 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); + +module.exports = function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); +}; + + +/***/ }), +/* 21 */ +/***/ (function(module) { + + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +var documentAll = typeof document == 'object' && document.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; +} : function (argument) { + return typeof argument == 'function'; +}; + + +/***/ }), +/* 22 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var $Object = Object; + +module.exports = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); +}; + + +/***/ }), +/* 23 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; +}; + + +/***/ }), +/* 24 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis({}.isPrototypeOf); + + +/***/ }), +/* 25 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var NATIVE_SYMBOL = __webpack_require__(26); + +module.exports = NATIVE_SYMBOL + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + +/***/ }), +/* 26 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var V8_VERSION = __webpack_require__(27); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +var $String = global.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); + + +/***/ }), +/* 27 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var userAgent = __webpack_require__(28); + +var process = global.process; +var Deno = global.Deno; +var versions = process && process.versions || Deno && Deno.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +module.exports = version; + + +/***/ }), +/* 28 */ +/***/ (function(module) { + + +module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + +/***/ }), +/* 29 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var isNullOrUndefined = __webpack_require__(17); + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +module.exports = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable(func); +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsCallable(argument) is true` +module.exports = function (argument) { + if (isCallable(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a function'); +}; + + +/***/ }), +/* 31 */ +/***/ (function(module) { + + +var $String = String; + +module.exports = function (argument) { + try { + return $String(argument); + } catch (error) { + return 'Object'; + } +}; + + +/***/ }), +/* 32 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); + +var $TypeError = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +module.exports = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + throw new $TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), +/* 33 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var shared = __webpack_require__(34); +var hasOwn = __webpack_require__(38); +var uid = __webpack_require__(40); +var NATIVE_SYMBOL = __webpack_require__(26); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var Symbol = global.Symbol; +var WellKnownSymbolsStore = shared('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!hasOwn(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) + ? Symbol[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + + +/***/ }), +/* 34 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var store = __webpack_require__(35); + +module.exports = function (key, value) { + return store[key] || (store[key] = value || {}); +}; + + +/***/ }), +/* 35 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var globalThis = __webpack_require__(4); +var defineGlobalProperty = __webpack_require__(37); + +var SHARED = '__core-js_shared__'; +var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {}); + +(store.versions || (store.versions = [])).push({ + version: '3.37.1', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + + +/***/ }), +/* 36 */ +/***/ (function(module) { + + +module.exports = false; + + +/***/ }), +/* 37 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(global, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global[key] = value; + } return value; +}; + + +/***/ }), +/* 38 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var hasOwnProperty = uncurryThis({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +module.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); +}; + + +/***/ }), +/* 39 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var requireObjectCoercible = __webpack_require__(16); + +var $Object = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return $Object(requireObjectCoercible(argument)); +}; + + +/***/ }), +/* 40 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var id = 0; +var postfix = Math.random(); +var toString = uncurryThis(1.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + + +/***/ }), +/* 41 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var createElement = __webpack_require__(42); + +// Thanks to IE8 for its funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; +}); + + +/***/ }), +/* 42 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); + +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + + +/***/ }), +/* 43 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), +/* 44 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var IE8_DOM_DEFINE = __webpack_require__(41); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), +/* 45 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +module.exports = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; +}); + + +/***/ }), +/* 46 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var $String = String; +var $TypeError = TypeError; + +// `Assert: Type(argument) is Object` +module.exports = function (argument) { + if (isObject(argument)) return argument; + throw new $TypeError($String(argument) + ' is not an object'); +}; + + +/***/ }), +/* 47 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var definePropertyModule = __webpack_require__(44); +var makeBuiltIn = __webpack_require__(48); +var defineGlobalProperty = __webpack_require__(37); + +module.exports = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + + +/***/ }), +/* 48 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var DESCRIPTORS = __webpack_require__(6); +var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(49).CONFIGURABLE); +var inspectSource = __webpack_require__(50); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var $String = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var stringSlice = uncurryThis(''.slice); +var replace = uncurryThis(''.replace); +var join = uncurryThis([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { + return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn = module.exports = function (value, name, options) { + if (stringSlice($String(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { + defineProperty(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn(options, 'constructor') && options.constructor) { + if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn(function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); +}, 'toString'); + + +/***/ }), +/* 49 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var hasOwn = __webpack_require__(38); + +var FunctionPrototype = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn(FunctionPrototype, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); + +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + + +/***/ }), +/* 50 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isCallable = __webpack_require__(21); +var store = __webpack_require__(35); + +var functionToString = uncurryThis(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; +} + +module.exports = store.inspectSource; + + +/***/ }), +/* 51 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_WEAK_MAP = __webpack_require__(52); +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); +var hasOwn = __webpack_require__(38); +var shared = __webpack_require__(35); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError = global.TypeError; +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw new TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), +/* 52 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var WeakMap = global.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); + + +/***/ }), +/* 53 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var shared = __webpack_require__(34); +var uid = __webpack_require__(40); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + + +/***/ }), +/* 54 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 55 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var ownKeys = __webpack_require__(56); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); + +module.exports = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + + +/***/ }), +/* 56 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var anObject = __webpack_require__(46); + +var concat = uncurryThis([].concat); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), +/* 57 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), +/* 58 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var toIndexedObject = __webpack_require__(12); +var indexOf = (__webpack_require__(59).indexOf); +var hiddenKeys = __webpack_require__(54); + +var push = uncurryThis([].push); + +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + + +/***/ }), +/* 59 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), +/* 60 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), +/* 61 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var trunc = __webpack_require__(62); + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +module.exports = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + + +/***/ }), +/* 62 */ +/***/ (function(module) { + + +var ceil = Math.ceil; +var floor = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +module.exports = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + + +/***/ }), +/* 63 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toLength = __webpack_require__(64); + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +module.exports = function (obj) { + return toLength(obj.length); +}; + + +/***/ }), +/* 64 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), +/* 65 */ +/***/ (function(module) { + + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), +/* 66 */ +/***/ (function(__unused_webpack_module, exports) { + + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 67 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable(detection) ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + + +/***/ }), +/* 68 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +var $String = String; + +module.exports = function (argument) { + if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + + +/***/ }), +/* 69 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var isCallable = __webpack_require__(21); +var classofRaw = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Object = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result; +}; + + +/***/ }), +/* 70 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + + +/***/ }), +/* 71 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* global ActiveXObject -- old IE, WSH */ +var anObject = __webpack_require__(46); +var definePropertiesModule = __webpack_require__(72); +var enumBugKeys = __webpack_require__(65); +var hiddenKeys = __webpack_require__(54); +var html = __webpack_require__(74); +var documentCreateElement = __webpack_require__(42); +var sharedKey = __webpack_require__(53); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + + +/***/ }), +/* 72 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var definePropertyModule = __webpack_require__(44); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var objectKeys = __webpack_require__(73); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var props = toIndexedObject(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + + +/***/ }), +/* 73 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + + +/***/ }), +/* 74 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), +/* 75 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-object-getownpropertynames -- safe */ +var classof = __webpack_require__(15); +var toIndexedObject = __webpack_require__(12); +var $getOwnPropertyNames = (__webpack_require__(57).f); +var arraySlice = __webpack_require__(76); + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && classof(it) === 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); +}; + + +/***/ }), +/* 76 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis([].slice); + + +/***/ }), +/* 77 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var makeBuiltIn = __webpack_require__(48); +var defineProperty = __webpack_require__(44); + +module.exports = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty.f(target, name, descriptor); +}; + + +/***/ }), +/* 78 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +exports.f = wellKnownSymbol; + + +/***/ }), +/* 79 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var path = __webpack_require__(80); +var hasOwn = __webpack_require__(38); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (NAME) { + var Symbol = path.Symbol || (path.Symbol = {}); + if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, { + value: wrappedWellKnownSymbolModule.f(NAME) + }); +}; + + +/***/ }), +/* 80 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global; + + +/***/ }), +/* 81 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var getBuiltIn = __webpack_require__(23); +var wellKnownSymbol = __webpack_require__(33); +var defineBuiltIn = __webpack_require__(47); + +module.exports = function () { + var Symbol = getBuiltIn('Symbol'); + var SymbolPrototype = Symbol && Symbol.prototype; + var valueOf = SymbolPrototype && SymbolPrototype.valueOf; + var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + + if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) { + // `Symbol.prototype[@@toPrimitive]` method + // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive + // eslint-disable-next-line no-unused-vars -- required for .length + defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) { + return call(valueOf, this); + }, { arity: 1 }); + } +}; + + +/***/ }), +/* 82 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +module.exports = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } +}; + + +/***/ }), +/* 83 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +var push = uncurryThis([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +module.exports = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) +}; + + +/***/ }), +/* 84 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(85); +var aCallable = __webpack_require__(30); +var NATIVE_BIND = __webpack_require__(9); + +var bind = uncurryThis(uncurryThis.bind); + +// optional / simple context binding +module.exports = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), +/* 85 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classofRaw = __webpack_require__(15); +var uncurryThis = __webpack_require__(14); + +module.exports = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis(fn); +}; + + +/***/ }), +/* 86 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySpeciesConstructor = __webpack_require__(87); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + + +/***/ }), +/* 87 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; +}; + + +/***/ }), +/* 88 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(15); + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +module.exports = Array.isArray || function isArray(argument) { + return classof(argument) === 'Array'; +}; + + +/***/ }), +/* 89 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(69); +var getBuiltIn = __webpack_require__(23); +var inspectSource = __webpack_require__(50); + +var noop = function () { /* empty */ }; +var construct = getBuiltIn('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) return false; + switch (classof(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +module.exports = !construct || fails(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + + +/***/ }), +/* 90 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var toString = __webpack_require__(68); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var StringToSymbolRegistry = shared('string-to-symbol-registry'); +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.for` method +// https://tc39.es/ecma262/#sec-symbol.for +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + 'for': function (key) { + var string = toString(key); + if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; + var symbol = getBuiltIn('Symbol')(string); + StringToSymbolRegistry[string] = symbol; + SymbolToStringRegistry[symbol] = string; + return symbol; + } +}); + + +/***/ }), +/* 91 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_SYMBOL = __webpack_require__(26); + +/* eslint-disable es/no-symbol -- safe */ +module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor; + + +/***/ }), +/* 92 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); +var isSymbol = __webpack_require__(22); +var tryToString = __webpack_require__(31); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.keyFor` method +// https://tc39.es/ecma262/#sec-symbol.keyfor +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol'); + if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; + } +}); + + +/***/ }), +/* 93 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isSymbol = __webpack_require__(22); +var arraySlice = __webpack_require__(76); +var getReplacerFunction = __webpack_require__(95); +var NATIVE_SYMBOL = __webpack_require__(26); + +var $String = String; +var $stringify = getBuiltIn('JSON', 'stringify'); +var exec = uncurryThis(/./.exec); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var replace = uncurryThis(''.replace); +var numberToString = uncurryThis(1.0.toString); + +var tester = /[\uD800-\uDFFF]/g; +var low = /^[\uD800-\uDBFF]$/; +var hi = /^[\uDC00-\uDFFF]$/; + +var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () { + var symbol = getBuiltIn('Symbol')('stringify detection'); + // MS Edge converts symbol values to JSON as {} + return $stringify([symbol]) !== '[null]' + // WebKit converts symbol values to JSON as null + || $stringify({ a: symbol }) !== '{}' + // V8 throws on boxed symbols + || $stringify(Object(symbol)) !== '{}'; +}); + +// https://github.com/tc39/proposal-well-formed-stringify +var ILL_FORMED_UNICODE = fails(function () { + return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' + || $stringify('\uDEAD') !== '"\\udead"'; +}); + +var stringifyWithSymbolsFix = function (it, replacer) { + var args = arraySlice(arguments); + var $replacer = getReplacerFunction(replacer); + if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined + args[1] = function (key, value) { + // some old implementations (like WebKit) could pass numbers as keys + if (isCallable($replacer)) value = call($replacer, this, $String(key), value); + if (!isSymbol(value)) return value; + }; + return apply($stringify, null, args); +}; + +var fixIllFormed = function (match, offset, string) { + var prev = charAt(string, offset - 1); + var next = charAt(string, offset + 1); + if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) { + return '\\u' + numberToString(charCodeAt(match, 0), 16); + } return match; +}; + +if ($stringify) { + // `JSON.stringify` method + // https://tc39.es/ecma262/#sec-json.stringify + $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + stringify: function stringify(it, replacer, space) { + var args = arraySlice(arguments); + var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args); + return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result; + } + }); +} + + +/***/ }), +/* 94 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var apply = FunctionPrototype.apply; +var call = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () { + return call.apply(apply, arguments); +}); + + +/***/ }), +/* 95 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var toString = __webpack_require__(68); + +var push = uncurryThis([].push); + +module.exports = function (replacer) { + if (isCallable(replacer)) return replacer; + if (!isArray(replacer)) return; + var rawLength = replacer.length; + var keys = []; + for (var i = 0; i < rawLength; i++) { + var element = replacer[i]; + if (typeof element == 'string') push(keys, element); + else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element)); + } + var keysLength = keys.length; + var root = true; + return function (key, value) { + if (root) { + root = false; + return value; + } + if (isArray(this)) return value; + for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value; + }; +}; + + +/***/ }), +/* 96 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var toObject = __webpack_require__(39); + +// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives +// https://bugs.chromium.org/p/v8/issues/detail?id=3443 +var FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); }); + +// `Object.getOwnPropertySymbols` method +// https://tc39.es/ecma262/#sec-object.getownpropertysymbols +$({ target: 'Object', stat: true, forced: FORCED }, { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : []; + } +}); + + +/***/ }), +/* 97 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +// `Symbol.prototype.description` getter +// https://tc39.es/ecma262/#sec-symbol.prototype.description + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var toString = __webpack_require__(68); +var defineBuiltInAccessor = __webpack_require__(77); +var copyConstructorProperties = __webpack_require__(55); + +var NativeSymbol = global.Symbol; +var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; + +if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || + // Safari 12 bug + NativeSymbol().description !== undefined +)) { + var EmptyStringDescriptionStore = {}; + // wrap Symbol constructor for correct work with undefined description + var SymbolWrapper = function Symbol() { + var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]); + var result = isPrototypeOf(SymbolPrototype, this) + ? new NativeSymbol(description) + // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' + : description === undefined ? NativeSymbol() : NativeSymbol(description); + if (description === '') EmptyStringDescriptionStore[result] = true; + return result; + }; + + copyConstructorProperties(SymbolWrapper, NativeSymbol); + SymbolWrapper.prototype = SymbolPrototype; + SymbolPrototype.constructor = SymbolWrapper; + + var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)'; + var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf); + var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString); + var regexp = /^Symbol\((.*)\)[^)]+$/; + var replace = uncurryThis(''.replace); + var stringSlice = uncurryThis(''.slice); + + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + var symbol = thisSymbolValue(this); + if (hasOwn(EmptyStringDescriptionStore, symbol)) return ''; + var string = symbolDescriptiveString(symbol); + var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1'); + return desc === '' ? undefined : desc; + } + }); + + $({ global: true, constructor: true, forced: true }, { + Symbol: SymbolWrapper + }); +} + + +/***/ }), +/* 98 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.asyncIterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.asynciterator +defineWellKnownSymbol('asyncIterator'); + + +/***/ }), +/* 99 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.hasInstance` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.hasinstance +defineWellKnownSymbol('hasInstance'); + + +/***/ }), +/* 100 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.isConcatSpreadable` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable +defineWellKnownSymbol('isConcatSpreadable'); + + +/***/ }), +/* 101 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.iterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.iterator +defineWellKnownSymbol('iterator'); + + +/***/ }), +/* 102 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.match` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.match +defineWellKnownSymbol('match'); + + +/***/ }), +/* 103 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.matchAll` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.matchall +defineWellKnownSymbol('matchAll'); + + +/***/ }), +/* 104 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.replace` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.replace +defineWellKnownSymbol('replace'); + + +/***/ }), +/* 105 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.search` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.search +defineWellKnownSymbol('search'); + + +/***/ }), +/* 106 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.species` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.species +defineWellKnownSymbol('species'); + + +/***/ }), +/* 107 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.split` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.split +defineWellKnownSymbol('split'); + + +/***/ }), +/* 108 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); + +// `Symbol.toPrimitive` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.toprimitive +defineWellKnownSymbol('toPrimitive'); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + + +/***/ }), +/* 109 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineWellKnownSymbol = __webpack_require__(79); +var setToStringTag = __webpack_require__(82); + +// `Symbol.toStringTag` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.tostringtag +defineWellKnownSymbol('toStringTag'); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag(getBuiltIn('Symbol'), 'Symbol'); + + +/***/ }), +/* 110 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.unscopables` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.unscopables +defineWellKnownSymbol('unscopables'); + + +/***/ }), +/* 111 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-unused-vars -- required for functions `.length` */ +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var WEB_ASSEMBLY = 'WebAssembly'; +var WebAssembly = global[WEB_ASSEMBLY]; + +// eslint-disable-next-line es/no-error-cause -- feature detection +var FORCED = new Error('e', { cause: 7 }).cause !== 7; + +var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED); + $({ global: true, constructor: true, arity: 1, forced: FORCED }, O); +}; + +var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) { + if (WebAssembly && WebAssembly[ERROR_NAME]) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED); + $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O); + } +}; + +// https://tc39.es/ecma262/#sec-nativeerror +exportGlobalErrorCauseWrapper('Error', function (init) { + return function Error(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('EvalError', function (init) { + return function EvalError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('RangeError', function (init) { + return function RangeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('ReferenceError', function (init) { + return function ReferenceError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('SyntaxError', function (init) { + return function SyntaxError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('TypeError', function (init) { + return function TypeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('URIError', function (init) { + return function URIError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('CompileError', function (init) { + return function CompileError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('LinkError', function (init) { + return function LinkError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) { + return function RuntimeError(message) { return apply(init, this, arguments); }; +}); + + +/***/ }), +/* 112 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var createNonEnumerableProperty = __webpack_require__(43); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var proxyAccessor = __webpack_require__(117); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +module.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) { + var STACK_TRACE_LIMIT = 'stackTraceLimit'; + var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1; + var path = FULL_NAME.split('.'); + var ERROR_NAME = path[path.length - 1]; + var OriginalError = getBuiltIn.apply(null, path); + + if (!OriginalError) return; + + var OriginalErrorPrototype = OriginalError.prototype; + + // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006 + if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause; + + if (!FORCED) return OriginalError; + + var BaseError = getBuiltIn('Error'); + + var WrappedError = wrapper(function (a, b) { + var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined); + var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError(); + if (message !== undefined) createNonEnumerableProperty(result, 'message', message); + installErrorStack(result, WrappedError, result.stack, 2); + if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError); + if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]); + return result; + }); + + WrappedError.prototype = OriginalErrorPrototype; + + if (ERROR_NAME !== 'Error') { + if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError); + else copyConstructorProperties(WrappedError, BaseError, { name: true }); + } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) { + proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT); + proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace'); + } + + copyConstructorProperties(WrappedError, OriginalError); + + if (!IS_PURE) try { + // Safari 13- bug: WebAssembly errors does not have a proper `.name` + if (OriginalErrorPrototype.name !== ERROR_NAME) { + createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME); + } + OriginalErrorPrototype.constructor = WrappedError; + } catch (error) { /* empty */ } + + return WrappedError; +}; + + +/***/ }), +/* 113 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-proto -- safe */ +var uncurryThisAccessor = __webpack_require__(114); +var isObject = __webpack_require__(20); +var requireObjectCoercible = __webpack_require__(16); +var aPossiblePrototype = __webpack_require__(115); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + requireObjectCoercible(O); + aPossiblePrototype(proto); + if (!isObject(O)) return O; + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + + +/***/ }), +/* 114 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); + +module.exports = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 115 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPossiblePrototype = __webpack_require__(116); + +var $String = String; +var $TypeError = TypeError; + +module.exports = function (argument) { + if (isPossiblePrototype(argument)) return argument; + throw new $TypeError("Can't set " + $String(argument) + ' as a prototype'); +}; + + +/***/ }), +/* 116 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +module.exports = function (argument) { + return isObject(argument) || argument === null; +}; + + +/***/ }), +/* 117 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (Target, Source, key) { + key in Target || defineProperty(Target, key, { + configurable: true, + get: function () { return Source[key]; }, + set: function (it) { Source[key] = it; } + }); +}; + + +/***/ }), +/* 118 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var setPrototypeOf = __webpack_require__(113); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), +/* 119 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toString = __webpack_require__(68); + +module.exports = function (argument, $default) { + return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument); +}; + + +/***/ }), +/* 120 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); + +// `InstallErrorCause` abstract operation +// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause +module.exports = function (O, options) { + if (isObject(options) && 'cause' in options) { + createNonEnumerableProperty(O, 'cause', options.cause); + } +}; + + +/***/ }), +/* 121 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var createNonEnumerableProperty = __webpack_require__(43); +var clearErrorStack = __webpack_require__(122); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); + +// non-standard V8 +var captureStackTrace = Error.captureStackTrace; + +module.exports = function (error, C, stack, dropEntries) { + if (ERROR_STACK_INSTALLABLE) { + if (captureStackTrace) captureStackTrace(error, C); + else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries)); + } +}; + + +/***/ }), +/* 122 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var $Error = Error; +var replace = uncurryThis(''.replace); + +var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd'); +// eslint-disable-next-line redos/no-vulnerable -- safe +var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; +var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); + +module.exports = function (stack, dropEntries) { + if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) { + while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); + } return stack; +}; + + +/***/ }), +/* 123 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = !fails(function () { + var error = new Error('a'); + if (!('stack' in error)) return true; + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); + return error.stack !== 7; +}); + + +/***/ }), +/* 124 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var errorToString = __webpack_require__(125); + +var ErrorPrototype = Error.prototype; + +// `Error.prototype.toString` method fix +// https://tc39.es/ecma262/#sec-error.prototype.tostring +if (ErrorPrototype.toString !== errorToString) { + defineBuiltIn(ErrorPrototype, 'toString', errorToString); +} + + +/***/ }), +/* 125 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var normalizeStringArgument = __webpack_require__(119); + +var nativeErrorToString = Error.prototype.toString; + +var INCORRECT_TO_STRING = fails(function () { + if (DESCRIPTORS) { + // Chrome 32- incorrectly call accessor + // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe + var object = Object.create(Object.defineProperty({}, 'name', { get: function () { + return this === object; + } })); + if (nativeErrorToString.call(object) !== 'true') return true; + } + // FF10- does not properly handle non-strings + return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1' + // IE8 does not properly handle defaults + || nativeErrorToString.call({}) !== 'Error'; +}); + +module.exports = INCORRECT_TO_STRING ? function toString() { + var O = anObject(this); + var name = normalizeStringArgument(O.name, 'Error'); + var message = normalizeStringArgument(O.message); + return !name ? message : !message ? name : name + ': ' + message; +} : nativeErrorToString; + + +/***/ }), +/* 126 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(127); + + +/***/ }), +/* 127 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var create = __webpack_require__(71); +var createNonEnumerableProperty = __webpack_require__(43); +var createPropertyDescriptor = __webpack_require__(11); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var iterate = __webpack_require__(130); +var normalizeStringArgument = __webpack_require__(119); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Error = Error; +var push = [].push; + +var $AggregateError = function AggregateError(errors, message /* , options */) { + var isInstance = isPrototypeOf(AggregateErrorPrototype, this); + var that; + if (setPrototypeOf) { + that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype); + } else { + that = isInstance ? this : create(AggregateErrorPrototype); + createNonEnumerableProperty(that, TO_STRING_TAG, 'Error'); + } + if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message)); + installErrorStack(that, $AggregateError, that.stack, 1); + if (arguments.length > 2) installErrorCause(that, arguments[2]); + var errorsArray = []; + iterate(errors, push, { that: errorsArray }); + createNonEnumerableProperty(that, 'errors', errorsArray); + return that; +}; + +if (setPrototypeOf) setPrototypeOf($AggregateError, $Error); +else copyConstructorProperties($AggregateError, $Error, { name: true }); + +var AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, { + constructor: createPropertyDescriptor(1, $AggregateError), + message: createPropertyDescriptor(1, ''), + name: createPropertyDescriptor(1, 'AggregateError') +}); + +// `AggregateError` constructor +// https://tc39.es/ecma262/#sec-aggregate-error-constructor +$({ global: true, constructor: true, arity: 2 }, { + AggregateError: $AggregateError +}); + + +/***/ }), +/* 128 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var toObject = __webpack_require__(39); +var sharedKey = __webpack_require__(53); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + + +/***/ }), +/* 129 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + + +/***/ }), +/* 130 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var isArrayIteratorMethod = __webpack_require__(131); +var lengthOfArrayLike = __webpack_require__(63); +var isPrototypeOf = __webpack_require__(24); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var iteratorClose = __webpack_require__(135); + +var $TypeError = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +module.exports = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + + +/***/ }), +/* 131 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; + + +/***/ }), +/* 132 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 133 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var getIteratorMethod = __webpack_require__(134); + +var $TypeError = TypeError; + +module.exports = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); + throw new $TypeError(tryToString(argument) + ' is not iterable'); +}; + + +/***/ }), +/* 134 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); +var getMethod = __webpack_require__(29); +var isNullOrUndefined = __webpack_require__(17); +var Iterators = __webpack_require__(132); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = function (it) { + if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) + || getMethod(it, '@@iterator') + || Iterators[classof(it)]; +}; + + +/***/ }), +/* 135 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var getMethod = __webpack_require__(29); + +module.exports = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject(innerResult); + return value; +}; + + +/***/ }), +/* 136 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var fails = __webpack_require__(7); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var AGGREGATE_ERROR = 'AggregateError'; +var $AggregateError = getBuiltIn(AGGREGATE_ERROR); + +var FORCED = !fails(function () { + return $AggregateError([1]).errors[0] !== 1; +}) && fails(function () { + return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7; +}); + +// https://tc39.es/ecma262/#sec-aggregate-error +$({ global: true, constructor: true, arity: 2, forced: FORCED }, { + AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) { + // eslint-disable-next-line no-unused-vars -- required for functions `.length` + return function AggregateError(errors, message) { return apply(init, this, arguments); }; + }, FORCED, true) +}); + + +/***/ }), +/* 137 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.at` method +// https://tc39.es/ecma262/#sec-array.prototype.at +$({ target: 'Array', proto: true }, { + at: function at(index) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; + } +}); + +addToUnscopables('at'); + + +/***/ }), +/* 138 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var create = __webpack_require__(71); +var defineProperty = (__webpack_require__(44).f); + +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + + +/***/ }), +/* 139 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isArray = __webpack_require__(88); +var isObject = __webpack_require__(20); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var createProperty = __webpack_require__(141); +var arraySpeciesCreate = __webpack_require__(86); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); + +// We can't use this feature detection in V8 since it causes +// deoptimization and serious performance degradation +// https://github.com/zloirock/core-js/issues/679 +var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; +}); + +var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); +}; + +var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + +// `Array.prototype.concat` method +// https://tc39.es/ecma262/#sec-array.prototype.concat +// with adding support of @@isConcatSpreadable and @@species +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } +}); + + +/***/ }), +/* 140 */ +/***/ (function(module) { + + +var $TypeError = TypeError; +var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + +module.exports = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded'); + return it; +}; + + +/***/ }), +/* 141 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = function (object, key, value) { + if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; +}; + + +/***/ }), +/* 142 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + + +/***/ }), +/* 143 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var copyWithin = __webpack_require__(144); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +$({ target: 'Array', proto: true }, { + copyWithin: copyWithin +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('copyWithin'); + + +/***/ }), +/* 144 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); + +var min = Math.min; + +// `Array.prototype.copyWithin` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +// eslint-disable-next-line es/no-array-prototype-copywithin -- safe +module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + while (count-- > 0) { + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + to += inc; + from += inc; + } return O; +}; + + +/***/ }), +/* 145 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +module.exports = function (O, P) { + if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O)); +}; + + +/***/ }), +/* 146 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $every = (__webpack_require__(83).every); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('every'); + +// `Array.prototype.every` method +// https://tc39.es/ecma262/#sec-array.prototype.every +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + every: function every(callbackfn /* , thisArg */) { + return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 147 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); +}; + + +/***/ }), +/* 148 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fill = __webpack_require__(149); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.fill` method +// https://tc39.es/ecma262/#sec-array.prototype.fill +$({ target: 'Array', proto: true }, { + fill: fill +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('fill'); + + +/***/ }), +/* 149 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.fill` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.fill +module.exports = function fill(value /* , start = 0, end = @length */) { + var O = toObject(this); + var length = lengthOfArrayLike(O); + var argumentsLength = arguments.length; + var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); + var end = argumentsLength > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + while (endPos > index) O[index++] = value; + return O; +}; + + +/***/ }), +/* 150 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $filter = (__webpack_require__(83).filter); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + +// `Array.prototype.filter` method +// https://tc39.es/ecma262/#sec-array.prototype.filter +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 151 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $find = (__webpack_require__(83).find); +var addToUnscopables = __webpack_require__(138); + +var FIND = 'find'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-find -- testing +if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.find` method +// https://tc39.es/ecma262/#sec-array.prototype.find +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND); + + +/***/ }), +/* 152 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findIndex = (__webpack_require__(83).findIndex); +var addToUnscopables = __webpack_require__(138); + +var FIND_INDEX = 'findIndex'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-findindex -- testing +if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findindex +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + findIndex: function findIndex(callbackfn /* , that = undefined */) { + return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND_INDEX); + + +/***/ }), +/* 153 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLast = (__webpack_require__(154).findLast); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLast` method +// https://tc39.es/ecma262/#sec-array.prototype.findlast +$({ target: 'Array', proto: true }, { + findLast: function findLast(callbackfn /* , that = undefined */) { + return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLast'); + + +/***/ }), +/* 154 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ findLast, findLastIndex }` methods implementation +var createMethod = function (TYPE) { + var IS_FIND_LAST_INDEX = TYPE === 1; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IndexedObject(O); + var index = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var value, result; + while (index-- > 0) { + value = self[index]; + result = boundFunction(value, index, O); + if (result) switch (TYPE) { + case 0: return value; // findLast + case 1: return index; // findLastIndex + } + } + return IS_FIND_LAST_INDEX ? -1 : undefined; + }; +}; + +module.exports = { + // `Array.prototype.findLast` method + // https://github.com/tc39/proposal-array-find-from-last + findLast: createMethod(0), + // `Array.prototype.findLastIndex` method + // https://github.com/tc39/proposal-array-find-from-last + findLastIndex: createMethod(1) +}; + + +/***/ }), +/* 155 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLastIndex = (__webpack_require__(154).findLastIndex); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findlastindex +$({ target: 'Array', proto: true }, { + findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) { + return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLastIndex'); + + +/***/ }), +/* 156 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flat` method +// https://tc39.es/ecma262/#sec-array.prototype.flat +$({ target: 'Array', proto: true }, { + flat: function flat(/* depthArg = 1 */) { + var depthArg = arguments.length ? arguments[0] : undefined; + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg)); + return A; + } +}); + + +/***/ }), +/* 157 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var bind = __webpack_require__(84); + +// `FlattenIntoArray` abstract operation +// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray +var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? bind(mapper, thisArg) : false; + var element, elementLen; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + if (depth > 0 && isArray(element)) { + elementLen = lengthOfArrayLike(element); + targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1; + } else { + doesNotExceedSafeInteger(targetIndex + 1); + target[targetIndex] = element; + } + + targetIndex++; + } + sourceIndex++; + } + return targetIndex; +}; + +module.exports = flattenIntoArray; + + +/***/ }), +/* 158 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flatMap` method +// https://tc39.es/ecma262/#sec-array.prototype.flatmap +$({ target: 'Array', proto: true }, { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A; + aCallable(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return A; + } +}); + + +/***/ }), +/* 159 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var forEach = __webpack_require__(160); + +// `Array.prototype.forEach` method +// https://tc39.es/ecma262/#sec-array.prototype.foreach +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, { + forEach: forEach +}); + + +/***/ }), +/* 160 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $forEach = (__webpack_require__(83).forEach); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('forEach'); + +// `Array.prototype.forEach` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.foreach +module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +} : [].forEach; + + +/***/ }), +/* 161 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var from = __webpack_require__(162); +var checkCorrectnessOfIteration = __webpack_require__(164); + +var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); +}); + +// `Array.from` method +// https://tc39.es/ecma262/#sec-array.from +$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from +}); + + +/***/ }), +/* 162 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var toObject = __webpack_require__(39); +var callWithSafeIterationClosing = __webpack_require__(163); +var isArrayIteratorMethod = __webpack_require__(131); +var isConstructor = __webpack_require__(89); +var lengthOfArrayLike = __webpack_require__(63); +var createProperty = __webpack_require__(141); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); + +var $Array = Array; + +// `Array.from` method implementation +// https://tc39.es/ecma262/#sec-array.from +module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + result = IS_CONSTRUCTOR ? new this() : []; + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + for (;!(step = call(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; +}; + + +/***/ }), +/* 163 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var iteratorClose = __webpack_require__(135); + +// call something on iterator step with safe closing on error +module.exports = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } +}; + + +/***/ }), +/* 164 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +module.exports = function (exec, SKIP_CLOSING) { + try { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + } catch (error) { return false; } // workaround of old WebKit + `eval` bug + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + + +/***/ }), +/* 165 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $includes = (__webpack_require__(59).includes); +var fails = __webpack_require__(7); +var addToUnscopables = __webpack_require__(138); + +// FF99+ bug +var BROKEN_ON_SPARSE = fails(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); +}); + +// `Array.prototype.includes` method +// https://tc39.es/ecma262/#sec-array.prototype.includes +$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('includes'); + + +/***/ }), +/* 166 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-indexof -- required for testing */ +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var $indexOf = (__webpack_require__(59).indexOf); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeIndexOf = uncurryThis([].indexOf); + +var NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0; +var FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf'); + +// `Array.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.indexof +$({ target: 'Array', proto: true, forced: FORCED }, { + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + var fromIndex = arguments.length > 1 ? arguments[1] : undefined; + return NEGATIVE_ZERO + // convert -0 to +0 + ? nativeIndexOf(this, searchElement, fromIndex) || 0 + : $indexOf(this, searchElement, fromIndex); + } +}); + + +/***/ }), +/* 167 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); + +// `Array.isArray` method +// https://tc39.es/ecma262/#sec-array.isarray +$({ target: 'Array', stat: true }, { + isArray: isArray +}); + + +/***/ }), +/* 168 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); +var Iterators = __webpack_require__(132); +var InternalStateModule = __webpack_require__(51); +var defineProperty = (__webpack_require__(44).f); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +module.exports = defineIterator(Array, 'Array', function (iterated, kind) { + setInternalState(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + switch (state.kind) { + case 'keys': return createIterResultObject(index, false); + case 'values': return createIterResultObject(target[index], false); + } return createIterResultObject([index, target[index]], false); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +// V8 ~ Chrome 45- bug +if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try { + defineProperty(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 169 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var IS_PURE = __webpack_require__(36); +var FunctionName = __webpack_require__(49); +var isCallable = __webpack_require__(21); +var createIteratorConstructor = __webpack_require__(170); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); +var IteratorsCore = __webpack_require__(171); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR = wellKnownSymbol('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND]; + + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } + + return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { + defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn(IterablePrototype, KEY, methods[KEY]); + } + } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); + } + Iterators[NAME] = defaultIterator; + + return methods; +}; + + +/***/ }), +/* 170 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IteratorPrototype = (__webpack_require__(171).IteratorPrototype); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var setToStringTag = __webpack_require__(82); +var Iterators = __webpack_require__(132); + +var returnThis = function () { return this; }; + +module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; +}; + + +/***/ }), +/* 171 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var getPrototypeOf = __webpack_require__(128); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype[ITERATOR].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; +else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable(IteratorPrototype[ITERATOR])) { + defineBuiltIn(IteratorPrototype, ITERATOR, function () { + return this; + }); +} + +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + + +/***/ }), +/* 172 */ +/***/ (function(module) { + + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +module.exports = function (value, done) { + return { value: value, done: done }; +}; + + +/***/ }), +/* 173 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toIndexedObject = __webpack_require__(12); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeJoin = uncurryThis([].join); + +var ES3_STRINGS = IndexedObject !== Object; +var FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ','); + +// `Array.prototype.join` method +// https://tc39.es/ecma262/#sec-array.prototype.join +$({ target: 'Array', proto: true, forced: FORCED }, { + join: function join(separator) { + return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator); + } +}); + + +/***/ }), +/* 174 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var lastIndexOf = __webpack_require__(175); + +// `Array.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing +$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, { + lastIndexOf: lastIndexOf +}); + + +/***/ }), +/* 175 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-lastindexof -- safe */ +var apply = __webpack_require__(94); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var arrayMethodIsStrict = __webpack_require__(147); + +var min = Math.min; +var $lastIndexOf = [].lastIndexOf; +var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; +var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); +var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; + +// `Array.prototype.lastIndexOf` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0; + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + if (length === 0) return -1; + var index = length - 1; + if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1])); + if (index < 0) index = length + index; + for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; + return -1; +} : $lastIndexOf; + + +/***/ }), +/* 176 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $map = (__webpack_require__(83).map); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); + +// `Array.prototype.map` method +// https://tc39.es/ecma262/#sec-array.prototype.map +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 177 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isConstructor = __webpack_require__(89); +var createProperty = __webpack_require__(141); + +var $Array = Array; + +var ISNT_GENERIC = fails(function () { + function F() { /* empty */ } + // eslint-disable-next-line es/no-array-of -- safe + return !($Array.of.call(F) instanceof F); +}); + +// `Array.of` method +// https://tc39.es/ecma262/#sec-array.of +// WebKit Array.of isn't generic +$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { + of: function of(/* ...args */) { + var index = 0; + var argumentsLength = arguments.length; + var result = new (isConstructor(this) ? this : $Array)(argumentsLength); + while (argumentsLength > index) createProperty(result, index, arguments[index++]); + result.length = argumentsLength; + return result; + } +}); + + +/***/ }), +/* 178 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var fails = __webpack_require__(7); + +var INCORRECT_TO_LENGTH = fails(function () { + return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; +}); + +// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError +// https://bugs.chromium.org/p/v8/issues/detail?id=12681 +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).push(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); + +// `Array.prototype.push` method +// https://tc39.es/ecma262/#sec-array.prototype.push +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + push: function push(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + doesNotExceedSafeInteger(len + argCount); + for (var i = 0; i < argCount; i++) { + O[len] = arguments[i]; + len++; + } + setArrayLength(O, len); + return len; + } +}); + + +/***/ }), +/* 179 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var isArray = __webpack_require__(88); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Safari < 13 does not throw an error in this case +var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () { + // makes no sense without proper strict mode support + if (this !== undefined) return true; + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).length = 1; + } catch (error) { + return error instanceof TypeError; + } +}(); + +module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) { + if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) { + throw new $TypeError('Cannot set read only .length'); + } return O.length = length; +} : function (O, length) { + return O.length = length; +}; + + +/***/ }), +/* 180 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduce = (__webpack_require__(181).left); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce'); + +// `Array.prototype.reduce` method +// https://tc39.es/ecma262/#sec-array.prototype.reduce +$({ target: 'Array', proto: true, forced: FORCED }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 181 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); +var lengthOfArrayLike = __webpack_require__(63); + +var $TypeError = TypeError; + +var REDUCE_EMPTY = 'Reduce of empty array with no initial value'; + +// `Array.prototype.{ reduce, reduceRight }` methods implementation +var createMethod = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + var O = toObject(that); + var self = IndexedObject(O); + var length = lengthOfArrayLike(O); + aCallable(callbackfn); + if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw new $TypeError(REDUCE_EMPTY); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; +}; + +module.exports = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod(true) +}; + + +/***/ }), +/* 182 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var classof = __webpack_require__(15); + +module.exports = classof(global.process) === 'process'; + + +/***/ }), +/* 183 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduceRight = (__webpack_require__(181).right); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight'); + +// `Array.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-array.prototype.reduceright +$({ target: 'Array', proto: true, forced: FORCED }, { + reduceRight: function reduceRight(callbackfn /* , initialValue */) { + return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 184 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); + +var nativeReverse = uncurryThis([].reverse); +var test = [1, 2]; + +// `Array.prototype.reverse` method +// https://tc39.es/ecma262/#sec-array.prototype.reverse +// fix for Safari 12.0 bug +// https://bugs.webkit.org/show_bug.cgi?id=188794 +$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, { + reverse: function reverse() { + // eslint-disable-next-line no-self-assign -- dirty hack + if (isArray(this)) this.length = this.length; + return nativeReverse(this); + } +}); + + +/***/ }), +/* 185 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var toIndexedObject = __webpack_require__(12); +var createProperty = __webpack_require__(141); +var wellKnownSymbol = __webpack_require__(33); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var nativeSlice = __webpack_require__(76); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; +var max = Math.max; + +// `Array.prototype.slice` method +// https://tc39.es/ecma262/#sec-array.prototype.slice +// fallback for not array-like ES3 strings and DOM objects +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + slice: function slice(start, end) { + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject(Constructor)) { + Constructor = Constructor[SPECIES]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); + result.length = n; + return result; + } +}); + + +/***/ }), +/* 186 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $some = (__webpack_require__(83).some); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('some'); + +// `Array.prototype.some` method +// https://tc39.es/ecma262/#sec-array.prototype.some +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + some: function some(callbackfn /* , thisArg */) { + return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 187 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var internalSort = __webpack_require__(188); +var arrayMethodIsStrict = __webpack_require__(147); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var test = []; +var nativeSort = uncurryThis(test.sort); +var push = uncurryThis(test.push); + +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var STABLE_SORT = !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; +}); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString(x) > toString(y) ? 1 : -1; + }; +}; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + + var array = toObject(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = lengthOfArrayLike(items); + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) deletePropertyOrThrow(array, index++); + + return array; + } +}); + + +/***/ }), +/* 188 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySlice = __webpack_require__(76); + +var floor = Math.floor; + +var sort = function (array, comparefn) { + var length = array.length; + + if (length < 8) { + // insertion sort + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } + } else { + // merge sort + var middle = floor(length / 2); + var left = sort(arraySlice(array, 0, middle), comparefn); + var right = sort(arraySlice(array, middle), comparefn); + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } + } + + return array; +}; + +module.exports = sort; + + +/***/ }), +/* 189 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var firefox = userAgent.match(/firefox\/(\d+)/i); + +module.exports = !!firefox && +firefox[1]; + + +/***/ }), +/* 190 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var UA = __webpack_require__(28); + +module.exports = /MSIE|Trident/.test(UA); + + +/***/ }), +/* 191 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + +module.exports = !!webkit && +webkit[1]; + + +/***/ }), +/* 192 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setSpecies = __webpack_require__(193); + +// `Array[@@species]` getter +// https://tc39.es/ecma262/#sec-get-array-@@species +setSpecies('Array'); + + +/***/ }), +/* 193 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineBuiltInAccessor = __webpack_require__(77); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + + if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + defineBuiltInAccessor(Constructor, SPECIES, { + configurable: true, + get: function () { return this; } + }); + } +}; + + +/***/ }), +/* 194 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var arraySpeciesCreate = __webpack_require__(86); +var createProperty = __webpack_require__(141); +var deletePropertyOrThrow = __webpack_require__(145); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); + +var max = Math.max; +var min = Math.min; + +// `Array.prototype.splice` method +// https://tc39.es/ecma262/#sec-array.prototype.splice +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + splice: function splice(start, deleteCount /* , ...items */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var insertCount, actualDeleteCount, A, k, from, to; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = arraySpeciesCreate(O, actualDeleteCount); + for (k = 0; k < actualDeleteCount; k++) { + from = actualStart + k; + if (from in O) createProperty(A, k, O[from]); + } + A.length = actualDeleteCount; + if (insertCount < actualDeleteCount) { + for (k = actualStart; k < len - actualDeleteCount; k++) { + from = k + actualDeleteCount; + to = k + insertCount; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1); + } else if (insertCount > actualDeleteCount) { + for (k = len - actualDeleteCount; k > actualStart; k--) { + from = k + actualDeleteCount - 1; + to = k + insertCount - 1; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + } + for (k = 0; k < insertCount; k++) { + O[k + actualStart] = arguments[k + 2]; + } + setArrayLength(O, len - actualDeleteCount + insertCount); + return A; + } +}); + + +/***/ }), +/* 195 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayToReversed = __webpack_require__(196); +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; + +// `Array.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-array.prototype.toreversed +$({ target: 'Array', proto: true }, { + toReversed: function toReversed() { + return arrayToReversed(toIndexedObject(this), $Array); + } +}); + +addToUnscopables('toReversed'); + + +/***/ }), +/* 196 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed +module.exports = function (O, C) { + var len = lengthOfArrayLike(O); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = O[len - k - 1]; + return A; +}; + + +/***/ }), +/* 197 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toIndexedObject = __webpack_require__(12); +var arrayFromConstructorAndList = __webpack_require__(198); +var getBuiltInPrototypeMethod = __webpack_require__(199); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; +var sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort')); + +// `Array.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-array.prototype.tosorted +$({ target: 'Array', proto: true }, { + toSorted: function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = toIndexedObject(this); + var A = arrayFromConstructorAndList($Array, O); + return sort(A, compareFn); + } +}); + +addToUnscopables('toSorted'); + + +/***/ }), +/* 198 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +module.exports = function (Constructor, list, $length) { + var index = 0; + var length = arguments.length > 2 ? $length : lengthOfArrayLike(list); + var result = new Constructor(length); + while (length > index) result[index] = list[index++]; + return result; +}; + + +/***/ }), +/* 199 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = function (CONSTRUCTOR, METHOD) { + var Constructor = global[CONSTRUCTOR]; + var Prototype = Constructor && Constructor.prototype; + return Prototype && Prototype[METHOD]; +}; + + +/***/ }), +/* 200 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var addToUnscopables = __webpack_require__(138); +var doesNotExceedSafeInteger = __webpack_require__(140); +var lengthOfArrayLike = __webpack_require__(63); +var toAbsoluteIndex = __webpack_require__(60); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); + +var $Array = Array; +var max = Math.max; +var min = Math.min; + +// `Array.prototype.toSpliced` method +// https://tc39.es/ecma262/#sec-array.prototype.tospliced +$({ target: 'Array', proto: true }, { + toSpliced: function toSpliced(start, deleteCount /* , ...items */) { + var O = toIndexedObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var k = 0; + var insertCount, actualDeleteCount, newLen, A; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = $Array(newLen); + + for (; k < actualStart; k++) A[k] = O[k]; + for (; k < actualStart + insertCount; k++) A[k] = arguments[k - actualStart + 2]; + for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount]; + + return A; + } +}); + +addToUnscopables('toSpliced'); + + +/***/ }), +/* 201 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flat'); + + +/***/ }), +/* 202 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flatMap'); + + +/***/ }), +/* 203 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var deletePropertyOrThrow = __webpack_require__(145); +var doesNotExceedSafeInteger = __webpack_require__(140); + +// IE8- +var INCORRECT_RESULT = [].unshift(0) !== 1; + +// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).unshift(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength(); + +// `Array.prototype.unshift` method +// https://tc39.es/ecma262/#sec-array.prototype.unshift +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + unshift: function unshift(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + if (argCount) { + doesNotExceedSafeInteger(len + argCount); + var k = len; + while (k--) { + var to = k + argCount; + if (k in O) O[to] = O[k]; + else deletePropertyOrThrow(O, to); + } + for (var j = 0; j < argCount; j++) { + O[j] = arguments[j]; + } + } return setArrayLength(O, len + argCount); + } +}); + + +/***/ }), +/* 204 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayWith = __webpack_require__(205); +var toIndexedObject = __webpack_require__(12); + +var $Array = Array; + +// `Array.prototype.with` method +// https://tc39.es/ecma262/#sec-array.prototype.with +$({ target: 'Array', proto: true }, { + 'with': function (index, value) { + return arrayWith(toIndexedObject(this), $Array, index, value); + } +}); + + +/***/ }), +/* 205 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with +module.exports = function (O, C, index, value) { + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; + if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index'); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = k === actualIndex ? value : O[k]; + return A; +}; + + +/***/ }), +/* 206 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var arrayBufferModule = __webpack_require__(207); +var setSpecies = __webpack_require__(193); + +var ARRAY_BUFFER = 'ArrayBuffer'; +var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER]; +var NativeArrayBuffer = global[ARRAY_BUFFER]; + +// `ArrayBuffer` constructor +// https://tc39.es/ecma262/#sec-arraybuffer-constructor +$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, { + ArrayBuffer: ArrayBuffer +}); + +setSpecies(ARRAY_BUFFER); + + +/***/ }), +/* 207 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var FunctionName = __webpack_require__(49); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var fails = __webpack_require__(7); +var anInstance = __webpack_require__(210); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var fround = __webpack_require__(212); +var IEEE754 = __webpack_require__(215); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var arrayFill = __webpack_require__(149); +var arraySlice = __webpack_require__(76); +var inheritIfRequired = __webpack_require__(118); +var copyConstructorProperties = __webpack_require__(55); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var ARRAY_BUFFER = 'ArrayBuffer'; +var DATA_VIEW = 'DataView'; +var PROTOTYPE = 'prototype'; +var WRONG_LENGTH = 'Wrong length'; +var WRONG_INDEX = 'Wrong index'; +var getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER); +var getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW); +var setInternalState = InternalStateModule.set; +var NativeArrayBuffer = global[ARRAY_BUFFER]; +var $ArrayBuffer = NativeArrayBuffer; +var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE]; +var $DataView = global[DATA_VIEW]; +var DataViewPrototype = $DataView && $DataView[PROTOTYPE]; +var ObjectPrototype = Object.prototype; +var Array = global.Array; +var RangeError = global.RangeError; +var fill = uncurryThis(arrayFill); +var reverse = uncurryThis([].reverse); + +var packIEEE754 = IEEE754.pack; +var unpackIEEE754 = IEEE754.unpack; + +var packInt8 = function (number) { + return [number & 0xFF]; +}; + +var packInt16 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF]; +}; + +var packInt32 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF]; +}; + +var unpackInt32 = function (buffer) { + return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0]; +}; + +var packFloat32 = function (number) { + return packIEEE754(fround(number), 23, 4); +}; + +var packFloat64 = function (number) { + return packIEEE754(number, 52, 8); +}; + +var addGetter = function (Constructor, key, getInternalState) { + defineBuiltInAccessor(Constructor[PROTOTYPE], key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var get = function (view, count, index, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + var pack = arraySlice(bytes, start, start + count); + return boolIsLittleEndian ? pack : reverse(pack); +}; + +var set = function (view, count, index, conversion, value, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var pack = conversion(+value); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1]; +}; + +if (!NATIVE_ARRAY_BUFFER) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + var byteLength = toIndex(length); + setInternalState(this, { + type: ARRAY_BUFFER, + bytes: fill(Array(byteLength), 0), + byteLength: byteLength + }); + if (!DESCRIPTORS) { + this.byteLength = byteLength; + this.detached = false; + } + }; + + ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE]; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, DataViewPrototype); + anInstance(buffer, ArrayBufferPrototype); + var bufferState = getInternalArrayBufferState(buffer); + var bufferLength = bufferState.byteLength; + var offset = toIntegerOrInfinity(byteOffset); + if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH); + setInternalState(this, { + type: DATA_VIEW, + buffer: buffer, + byteLength: byteLength, + byteOffset: offset, + bytes: bufferState.bytes + }); + if (!DESCRIPTORS) { + this.buffer = buffer; + this.byteLength = byteLength; + this.byteOffset = offset; + } + }; + + DataViewPrototype = $DataView[PROTOTYPE]; + + if (DESCRIPTORS) { + addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState); + addGetter($DataView, 'buffer', getInternalDataViewState); + addGetter($DataView, 'byteLength', getInternalDataViewState); + addGetter($DataView, 'byteOffset', getInternalDataViewState); + } + + defineBuiltIns(DataViewPrototype, { + getInt8: function getInt8(byteOffset) { + return get(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)); + }, + getUint32: function getUint32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0; + }, + getFloat32: function getFloat32(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23); + }, + getFloat64: function getFloat64(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52); + }, + setInt8: function setInt8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setInt16: function setInt16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint16: function setUint16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setInt32: function setInt32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint32: function setUint32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { + set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false); + } + }); +} else { + var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER; + /* eslint-disable no-new -- required for testing */ + if (!fails(function () { + NativeArrayBuffer(1); + }) || !fails(function () { + new NativeArrayBuffer(-1); + }) || fails(function () { + new NativeArrayBuffer(); + new NativeArrayBuffer(1.5); + new NativeArrayBuffer(NaN); + return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME; + })) { + /* eslint-enable no-new -- required for testing */ + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer); + }; + + $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype; + + ArrayBufferPrototype.constructor = $ArrayBuffer; + + copyConstructorProperties($ArrayBuffer, NativeArrayBuffer); + } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER); + } + + // WebKit bug - the same parent prototype for typed arrays and data view + if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) { + setPrototypeOf(DataViewPrototype, ObjectPrototype); + } + + // iOS Safari 7.x bug + var testView = new $DataView(new $ArrayBuffer(2)); + var $setInt8 = uncurryThis(DataViewPrototype.setInt8); + testView.setInt8(0, 2147483648); + testView.setInt8(1, 2147483649); + if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, { + setInt8: function setInt8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + } + }, { unsafe: true }); +} + +setToStringTag($ArrayBuffer, ARRAY_BUFFER); +setToStringTag($DataView, DATA_VIEW); + +module.exports = { + ArrayBuffer: $ArrayBuffer, + DataView: $DataView +}; + + +/***/ }), +/* 208 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-typed-arrays -- safe +module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; + + +/***/ }), +/* 209 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); + +module.exports = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; +}; + + +/***/ }), +/* 210 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPrototypeOf = __webpack_require__(24); + +var $TypeError = TypeError; + +module.exports = function (it, Prototype) { + if (isPrototypeOf(Prototype, it)) return it; + throw new $TypeError('Incorrect invocation'); +}; + + +/***/ }), +/* 211 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); + +var $RangeError = RangeError; + +// `ToIndex` abstract operation +// https://tc39.es/ecma262/#sec-toindex +module.exports = function (it) { + if (it === undefined) return 0; + var number = toIntegerOrInfinity(it); + var length = toLength(number); + if (number !== length) throw new $RangeError('Wrong length or index'); + return length; +}; + + +/***/ }), +/* 212 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var floatRound = __webpack_require__(213); + +var FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23; +var FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104 +var FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126; + +// `Math.fround` method implementation +// https://tc39.es/ecma262/#sec-math.fround +// eslint-disable-next-line es/no-math-fround -- safe +module.exports = Math.fround || function fround(x) { + return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE); +}; + + +/***/ }), +/* 213 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var sign = __webpack_require__(214); + +var abs = Math.abs; + +var EPSILON = 2.220446049250313e-16; // Number.EPSILON +var INVERSE_EPSILON = 1 / EPSILON; + +var roundTiesToEven = function (n) { + return n + INVERSE_EPSILON - INVERSE_EPSILON; +}; + +module.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) { + var n = +x; + var absolute = abs(n); + var s = sign(n); + if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON; + var a = (1 + FLOAT_EPSILON / EPSILON) * absolute; + var result = a - (a - absolute); + // eslint-disable-next-line no-self-compare -- NaN check + if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity; + return s * result; +}; + + +/***/ }), +/* 214 */ +/***/ (function(module) { + + +// `Math.sign` method implementation +// https://tc39.es/ecma262/#sec-math.sign +// eslint-disable-next-line es/no-math-sign -- safe +module.exports = Math.sign || function sign(x) { + var n = +x; + // eslint-disable-next-line no-self-compare -- NaN check + return n === 0 || n !== n ? n : n < 0 ? -1 : 1; +}; + + +/***/ }), +/* 215 */ +/***/ (function(module) { + + +// IEEE754 conversions based on https://github.com/feross/ieee754 +var $Array = Array; +var abs = Math.abs; +var pow = Math.pow; +var floor = Math.floor; +var log = Math.log; +var LN2 = Math.LN2; + +var pack = function (number, mantissaLength, bytes) { + var buffer = $Array(bytes); + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0; + var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; + var index = 0; + var exponent, mantissa, c; + number = abs(number); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number || number === Infinity) { + // eslint-disable-next-line no-self-compare -- NaN check + mantissa = number !== number ? 1 : 0; + exponent = eMax; + } else { + exponent = floor(log(number) / LN2); + c = pow(2, -exponent); + if (number * c < 1) { + exponent--; + c *= 2; + } + if (exponent + eBias >= 1) { + number += rt / c; + } else { + number += rt * pow(2, 1 - eBias); + } + if (number * c >= 2) { + exponent++; + c /= 2; + } + if (exponent + eBias >= eMax) { + mantissa = 0; + exponent = eMax; + } else if (exponent + eBias >= 1) { + mantissa = (number * c - 1) * pow(2, mantissaLength); + exponent += eBias; + } else { + mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength); + exponent = 0; + } + } + while (mantissaLength >= 8) { + buffer[index++] = mantissa & 255; + mantissa /= 256; + mantissaLength -= 8; + } + exponent = exponent << mantissaLength | mantissa; + exponentLength += mantissaLength; + while (exponentLength > 0) { + buffer[index++] = exponent & 255; + exponent /= 256; + exponentLength -= 8; + } + buffer[--index] |= sign * 128; + return buffer; +}; + +var unpack = function (buffer, mantissaLength) { + var bytes = buffer.length; + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var nBits = exponentLength - 7; + var index = bytes - 1; + var sign = buffer[index--]; + var exponent = sign & 127; + var mantissa; + sign >>= 7; + while (nBits > 0) { + exponent = exponent * 256 + buffer[index--]; + nBits -= 8; + } + mantissa = exponent & (1 << -nBits) - 1; + exponent >>= -nBits; + nBits += mantissaLength; + while (nBits > 0) { + mantissa = mantissa * 256 + buffer[index--]; + nBits -= 8; + } + if (exponent === 0) { + exponent = 1 - eBias; + } else if (exponent === eMax) { + return mantissa ? NaN : sign ? -Infinity : Infinity; + } else { + mantissa += pow(2, mantissaLength); + exponent -= eBias; + } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength); +}; + +module.exports = { + pack: pack, + unpack: unpack +}; + + +/***/ }), +/* 216 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferViewCore = __webpack_require__(217); + +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; + +// `ArrayBuffer.isView` method +// https://tc39.es/ecma262/#sec-arraybuffer.isview +$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + isView: ArrayBufferViewCore.isView +}); + + +/***/ }), +/* 217 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var tryToString = __webpack_require__(31); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var wellKnownSymbol = __webpack_require__(33); +var uid = __webpack_require__(40); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = global.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; +var TypeError = global.TypeError; + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); +var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; +// Fixing native typed arrays in Opera Presto crashes the browser, see #595 +var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera'; +var TYPED_ARRAY_TAG_REQUIRED = false; +var NAME, Constructor, Prototype; + +var TypedArrayConstructorsList = { + Int8Array: 1, + Uint8Array: 1, + Uint8ClampedArray: 1, + Int16Array: 2, + Uint16Array: 2, + Int32Array: 4, + Uint32Array: 4, + Float32Array: 4, + Float64Array: 8 +}; + +var BigIntArrayConstructorsList = { + BigInt64Array: 8, + BigUint64Array: 8 +}; + +var isView = function isView(it) { + if (!isObject(it)) return false; + var klass = classof(it); + return klass === 'DataView' + || hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var getTypedArrayConstructor = function (it) { + var proto = getPrototypeOf(it); + if (!isObject(proto)) return; + var state = getInternalState(proto); + return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto); +}; + +var isTypedArray = function (it) { + if (!isObject(it)) return false; + var klass = classof(it); + return hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var aTypedArray = function (it) { + if (isTypedArray(it)) return it; + throw new TypeError('Target is not a typed array'); +}; + +var aTypedArrayConstructor = function (C) { + if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C; + throw new TypeError(tryToString(C) + ' is not a typed array constructor'); +}; + +var exportTypedArrayMethod = function (KEY, property, forced, options) { + if (!DESCRIPTORS) return; + if (forced) for (var ARRAY in TypedArrayConstructorsList) { + var TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try { + delete TypedArrayConstructor.prototype[KEY]; + } catch (error) { + // old WebKit bug - some methods are non-configurable + try { + TypedArrayConstructor.prototype[KEY] = property; + } catch (error2) { /* empty */ } + } + } + if (!TypedArrayPrototype[KEY] || forced) { + defineBuiltIn(TypedArrayPrototype, KEY, forced ? property + : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options); + } +}; + +var exportTypedArrayStaticMethod = function (KEY, property, forced) { + var ARRAY, TypedArrayConstructor; + if (!DESCRIPTORS) return; + if (setPrototypeOf) { + if (forced) for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try { + delete TypedArrayConstructor[KEY]; + } catch (error) { /* empty */ } + } + if (!TypedArray[KEY] || forced) { + // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable + try { + return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property); + } catch (error) { /* empty */ } + } else return; + } + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); + } + } +}; + +for (NAME in TypedArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else NATIVE_ARRAY_BUFFER_VIEWS = false; +} + +for (NAME in BigIntArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; +} + +// WebKit bug - typed arrays constructors prototype is Object.prototype +if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) { + // eslint-disable-next-line no-shadow -- safe + TypedArray = function TypedArray() { + throw new TypeError('Incorrect invocation'); + }; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME], TypedArray); + } +} + +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype); + } +} + +// WebKit bug - one more object in Uint8ClampedArray prototype chain +if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { + setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); +} + +if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { + TYPED_ARRAY_TAG_REQUIRED = true; + defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, { + configurable: true, + get: function () { + return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; + } + }); + for (NAME in TypedArrayConstructorsList) if (global[NAME]) { + createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME); + } +} + +module.exports = { + NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, + TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG, + aTypedArray: aTypedArray, + aTypedArrayConstructor: aTypedArrayConstructor, + exportTypedArrayMethod: exportTypedArrayMethod, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, + getTypedArrayConstructor: getTypedArrayConstructor, + isView: isView, + isTypedArray: isTypedArray, + TypedArray: TypedArray, + TypedArrayPrototype: TypedArrayPrototype +}; + + +/***/ }), +/* 218 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var ArrayBufferModule = __webpack_require__(207); +var anObject = __webpack_require__(46); +var toAbsoluteIndex = __webpack_require__(60); +var toLength = __webpack_require__(64); +var speciesConstructor = __webpack_require__(219); + +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var DataView = ArrayBufferModule.DataView; +var DataViewPrototype = DataView.prototype; +var nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice); +var getUint8 = uncurryThis(DataViewPrototype.getUint8); +var setUint8 = uncurryThis(DataViewPrototype.setUint8); + +var INCORRECT_SLICE = fails(function () { + return !new ArrayBuffer(2).slice(1, undefined).byteLength; +}); + +// `ArrayBuffer.prototype.slice` method +// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice +$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, { + slice: function slice(start, end) { + if (nativeArrayBufferSlice && end === undefined) { + return nativeArrayBufferSlice(anObject(this), start); // FF fix + } + var length = anObject(this).byteLength; + var first = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first)); + var viewSource = new DataView(this); + var viewTarget = new DataView(result); + var index = 0; + while (first < fin) { + setUint8(viewTarget, index++, getUint8(viewSource, first++)); + } return result; + } +}); + + +/***/ }), +/* 219 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var aConstructor = __webpack_require__(220); +var isNullOrUndefined = __webpack_require__(17); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +module.exports = function (O, defaultConstructor) { + var C = anObject(O).constructor; + var S; + return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S); +}; + + +/***/ }), +/* 220 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isConstructor = __webpack_require__(89); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsConstructor(argument) is true` +module.exports = function (argument) { + if (isConstructor(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a constructor'); +}; + + +/***/ }), +/* 221 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(222); + + +/***/ }), +/* 222 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferModule = __webpack_require__(207); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); + +// `DataView` constructor +// https://tc39.es/ecma262/#sec-dataview-constructor +$({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, { + DataView: ArrayBufferModule.DataView +}); + + +/***/ }), +/* 223 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isDetached = __webpack_require__(224); + +var ArrayBufferPrototype = ArrayBuffer.prototype; + +if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) { + defineBuiltInAccessor(ArrayBufferPrototype, 'detached', { + configurable: true, + get: function detached() { + return isDetached(this); + } + }); +} + + +/***/ }), +/* 224 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var arrayBufferByteLength = __webpack_require__(225); + +var slice = uncurryThis(ArrayBuffer.prototype.slice); + +module.exports = function (O) { + if (arrayBufferByteLength(O) !== 0) return false; + try { + slice(O, 0, 0); + return false; + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 225 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var classof = __webpack_require__(15); + +var $TypeError = TypeError; + +// Includes +// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). +// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. +module.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) { + if (classof(O) !== 'ArrayBuffer') throw new $TypeError('ArrayBuffer expected'); + return O.byteLength; +}; + + +/***/ }), +/* 226 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transfer` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transfer: function transfer() { + return $transfer(this, arguments.length ? arguments[0] : undefined, true); + } +}); + + +/***/ }), +/* 227 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var uncurryThisAccessor = __webpack_require__(114); +var toIndex = __webpack_require__(211); +var isDetached = __webpack_require__(224); +var arrayBufferByteLength = __webpack_require__(225); +var detachTransferable = __webpack_require__(228); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var ArrayBuffer = global.ArrayBuffer; +var DataView = global.DataView; +var TypeError = global.TypeError; +var min = Math.min; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataViewPrototype = DataView.prototype; +var slice = uncurryThis(ArrayBufferPrototype.slice); +var isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get'); +var maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get'); +var getInt8 = uncurryThis(DataViewPrototype.getInt8); +var setInt8 = uncurryThis(DataViewPrototype.setInt8); + +module.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) { + var byteLength = arrayBufferByteLength(arrayBuffer); + var newByteLength = newLength === undefined ? byteLength : toIndex(newLength); + var fixedLength = !isResizable || !isResizable(arrayBuffer); + var newBuffer; + if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached'); + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] }); + if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer; + } + if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) { + newBuffer = slice(arrayBuffer, 0, newByteLength); + } else { + var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined; + newBuffer = new ArrayBuffer(newByteLength, options); + var a = new DataView(arrayBuffer); + var b = new DataView(newBuffer); + var copyLength = min(newByteLength, byteLength); + for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i)); + } + if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer); + return newBuffer; +}; + + +/***/ }), +/* 228 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var tryNodeRequire = __webpack_require__(229); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var $ArrayBuffer = global.ArrayBuffer; +var $MessageChannel = global.MessageChannel; +var detach = false; +var WorkerThreads, channel, buffer, $detach; + +if (PROPER_STRUCTURED_CLONE_TRANSFER) { + detach = function (transferable) { + structuredClone(transferable, { transfer: [transferable] }); + }; +} else if ($ArrayBuffer) try { + if (!$MessageChannel) { + WorkerThreads = tryNodeRequire('worker_threads'); + if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel; + } + + if ($MessageChannel) { + channel = new $MessageChannel(); + buffer = new $ArrayBuffer(2); + + $detach = function (transferable) { + channel.port1.postMessage(null, [transferable]); + }; + + if (buffer.byteLength === 2) { + $detach(buffer); + if (buffer.byteLength === 0) detach = $detach; + } + } +} catch (error) { /* empty */ } + +module.exports = detach; + + +/***/ }), +/* 229 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_NODE = __webpack_require__(182); + +module.exports = function (name) { + try { + // eslint-disable-next-line no-new-func -- safe + if (IS_NODE) return Function('return require("' + name + '")')(); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 230 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var V8 = __webpack_require__(27); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +var structuredClone = global.structuredClone; + +module.exports = !!structuredClone && !fails(function () { + // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false; + var buffer = new ArrayBuffer(8); + var clone = structuredClone(buffer, { transfer: [buffer] }); + return buffer.byteLength !== 0 || clone.byteLength !== 8; +}); + + +/***/ }), +/* 231 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +module.exports = !IS_DENO && !IS_NODE + && typeof window == 'object' + && typeof document == 'object'; + + +/***/ }), +/* 232 */ +/***/ (function(module) { + + +/* global Deno -- Deno case */ +module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + +/***/ }), +/* 233 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transferToFixedLength` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transferToFixedLength: function transferToFixedLength() { + return $transfer(this, arguments.length ? arguments[0] : undefined, false); + } +}); + + +/***/ }), +/* 234 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +// IE8- non-standard case +var FORCED = fails(function () { + // eslint-disable-next-line es/no-date-prototype-getyear-setyear -- detection + return new Date(16e11).getYear() !== 120; +}); + +var getFullYear = uncurryThis(Date.prototype.getFullYear); + +// `Date.prototype.getYear` method +// https://tc39.es/ecma262/#sec-date.prototype.getyear +$({ target: 'Date', proto: true, forced: FORCED }, { + getYear: function getYear() { + return getFullYear(this) - 1900; + } +}); + + +/***/ }), +/* 235 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); + +var $Date = Date; +var thisTimeValue = uncurryThis($Date.prototype.getTime); + +// `Date.now` method +// https://tc39.es/ecma262/#sec-date.now +$({ target: 'Date', stat: true }, { + now: function now() { + return thisTimeValue(new $Date()); + } +}); + + +/***/ }), +/* 236 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); + +var DatePrototype = Date.prototype; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var setFullYear = uncurryThis(DatePrototype.setFullYear); + +// `Date.prototype.setYear` method +// https://tc39.es/ecma262/#sec-date.prototype.setyear +$({ target: 'Date', proto: true }, { + setYear: function setYear(year) { + // validate + thisTimeValue(this); + var yi = toIntegerOrInfinity(year); + var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi; + return setFullYear(this, yyyy); + } +}); + + +/***/ }), +/* 237 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Date.prototype.toGMTString` method +// https://tc39.es/ecma262/#sec-date.prototype.togmtstring +$({ target: 'Date', proto: true }, { + toGMTString: Date.prototype.toUTCString +}); + + +/***/ }), +/* 238 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toISOString = __webpack_require__(239); + +// `Date.prototype.toISOString` method +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit has a broken implementations +$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, { + toISOString: toISOString +}); + + +/***/ }), +/* 239 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var padStart = (__webpack_require__(240).start); + +var $RangeError = RangeError; +var $isFinite = isFinite; +var abs = Math.abs; +var DatePrototype = Date.prototype; +var nativeDateToISOString = DatePrototype.toISOString; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var getUTCDate = uncurryThis(DatePrototype.getUTCDate); +var getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear); +var getUTCHours = uncurryThis(DatePrototype.getUTCHours); +var getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds); +var getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes); +var getUTCMonth = uncurryThis(DatePrototype.getUTCMonth); +var getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds); + +// `Date.prototype.toISOString` method implementation +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit fails here: +module.exports = (fails(function () { + return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z'; +}) || !fails(function () { + nativeDateToISOString.call(new Date(NaN)); +})) ? function toISOString() { + if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value'); + var date = this; + var year = getUTCFullYear(date); + var milliseconds = getUTCMilliseconds(date); + var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; + return sign + padStart(abs(year), sign ? 6 : 4, 0) + + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + + '-' + padStart(getUTCDate(date), 2, 0) + + 'T' + padStart(getUTCHours(date), 2, 0) + + ':' + padStart(getUTCMinutes(date), 2, 0) + + ':' + padStart(getUTCSeconds(date), 2, 0) + + '.' + padStart(milliseconds, 3, 0) + + 'Z'; +} : nativeDateToISOString; + + +/***/ }), +/* 240 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/tc39/proposal-string-pad-start-end +var uncurryThis = __webpack_require__(14); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var $repeat = __webpack_require__(241); +var requireObjectCoercible = __webpack_require__(16); + +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var ceil = Math.ceil; + +// `String.prototype.{ padStart, padEnd }` methods implementation +var createMethod = function (IS_END) { + return function ($this, maxLength, fillString) { + var S = toString(requireObjectCoercible($this)); + var intMaxLength = toLength(maxLength); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : toString(fillString); + var fillLen, stringFiller; + if (intMaxLength <= stringLength || fillStr === '') return S; + fillLen = intMaxLength - stringLength; + stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen); + return IS_END ? S + stringFiller : stringFiller + S; + }; +}; + +module.exports = { + // `String.prototype.padStart` method + // https://tc39.es/ecma262/#sec-string.prototype.padstart + start: createMethod(false), + // `String.prototype.padEnd` method + // https://tc39.es/ecma262/#sec-string.prototype.padend + end: createMethod(true) +}; + + +/***/ }), +/* 241 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var $RangeError = RangeError; + +// `String.prototype.repeat` method implementation +// https://tc39.es/ecma262/#sec-string.prototype.repeat +module.exports = function repeat(count) { + var str = toString(requireObjectCoercible(this)); + var result = ''; + var n = toIntegerOrInfinity(count); + if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions'); + for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; + return result; +}; + + +/***/ }), +/* 242 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var toPrimitive = __webpack_require__(19); + +var FORCED = fails(function () { + return new Date(NaN).toJSON() !== null + || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; +}); + +// `Date.prototype.toJSON` method +// https://tc39.es/ecma262/#sec-date.prototype.tojson +$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O, 'number'); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } +}); + + +/***/ }), +/* 243 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var defineBuiltIn = __webpack_require__(47); +var dateToPrimitive = __webpack_require__(244); +var wellKnownSymbol = __webpack_require__(33); + +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); +var DatePrototype = Date.prototype; + +// `Date.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +if (!hasOwn(DatePrototype, TO_PRIMITIVE)) { + defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive); +} + + +/***/ }), +/* 244 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var ordinaryToPrimitive = __webpack_require__(32); + +var $TypeError = TypeError; + +// `Date.prototype[@@toPrimitive](hint)` method implementation +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +module.exports = function (hint) { + anObject(this); + if (hint === 'string' || hint === 'default') hint = 'string'; + else if (hint !== 'number') throw new $TypeError('Incorrect hint'); + return ordinaryToPrimitive(this, hint); +}; + + +/***/ }), +/* 245 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); + +var DatePrototype = Date.prototype; +var INVALID_DATE = 'Invalid Date'; +var TO_STRING = 'toString'; +var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]); +var thisTimeValue = uncurryThis(DatePrototype.getTime); + +// `Date.prototype.toString` method +// https://tc39.es/ecma262/#sec-date.prototype.tostring +if (String(new Date(NaN)) !== INVALID_DATE) { + defineBuiltIn(DatePrototype, TO_STRING, function toString() { + var value = thisTimeValue(this); + // eslint-disable-next-line no-self-compare -- NaN check + return value === value ? nativeDateToString(this) : INVALID_DATE; + }); +} + + +/***/ }), +/* 246 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var exec = uncurryThis(/./.exec); +var numberToString = uncurryThis(1.0.toString); +var toUpperCase = uncurryThis(''.toUpperCase); + +var raw = /[\w*+\-./@]/; + +var hex = function (code, length) { + var result = numberToString(code, 16); + while (result.length < length) result = '0' + result; + return result; +}; + +// `escape` method +// https://tc39.es/ecma262/#sec-escape-string +$({ global: true }, { + escape: function escape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, code; + while (index < length) { + chr = charAt(str, index++); + if (exec(raw, chr)) { + result += chr; + } else { + code = charCodeAt(chr, 0); + if (code < 256) { + result += '%' + hex(code, 2); + } else { + result += '%u' + toUpperCase(hex(code, 4)); + } + } + } return result; + } +}); + + +/***/ }), +/* 247 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var bind = __webpack_require__(248); + +// `Function.prototype.bind` method +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +$({ target: 'Function', proto: true, forced: Function.bind !== bind }, { + bind: bind +}); + + +/***/ }), +/* 248 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var arraySlice = __webpack_require__(76); +var NATIVE_BIND = __webpack_require__(9); + +var $Function = Function; +var concat = uncurryThis([].concat); +var join = uncurryThis([].join); +var factories = {}; + +var construct = function (C, argsLength, args) { + if (!hasOwn(factories, argsLength)) { + var list = []; + var i = 0; + for (; i < argsLength; i++) list[i] = 'a[' + i + ']'; + factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')'); + } return factories[argsLength](C, args); +}; + +// `Function.prototype.bind` method implementation +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +module.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) { + var F = aCallable(this); + var Prototype = F.prototype; + var partArgs = arraySlice(arguments, 1); + var boundFunction = function bound(/* args... */) { + var args = concat(partArgs, arraySlice(arguments)); + return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args); + }; + if (isObject(Prototype)) boundFunction.prototype = Prototype; + return boundFunction; +}; + + +/***/ }), +/* 249 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var definePropertyModule = __webpack_require__(44); +var isPrototypeOf = __webpack_require__(24); +var wellKnownSymbol = __webpack_require__(33); +var makeBuiltIn = __webpack_require__(48); + +var HAS_INSTANCE = wellKnownSymbol('hasInstance'); +var FunctionPrototype = Function.prototype; + +// `Function.prototype[@@hasInstance]` method +// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance +if (!(HAS_INSTANCE in FunctionPrototype)) { + definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) { + if (!isCallable(this) || !isObject(O)) return false; + var P = this.prototype; + return isObject(P) ? isPrototypeOf(P, O) : O instanceof this; + }, HAS_INSTANCE) }); +} + + +/***/ }), +/* 250 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var FUNCTION_NAME_EXISTS = (__webpack_require__(49).EXISTS); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var FunctionPrototype = Function.prototype; +var functionToString = uncurryThis(FunctionPrototype.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor(FunctionPrototype, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + + +/***/ }), +/* 251 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); + +// `globalThis` object +// https://tc39.es/ecma262/#sec-globalthis +$({ global: true, forced: global.globalThis !== global }, { + globalThis: global +}); + + +/***/ }), +/* 252 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +// JSON[@@toStringTag] property +// https://tc39.es/ecma262/#sec-json-@@tostringtag +setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), +/* 253 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(254); + + +/***/ }), +/* 254 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Map` constructor +// https://tc39.es/ecma262/#sec-map-objects +collection('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 255 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var defineBuiltIn = __webpack_require__(47); +var InternalMetadataModule = __webpack_require__(256); +var iterate = __webpack_require__(130); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var setToStringTag = __webpack_require__(82); +var inheritIfRequired = __webpack_require__(118); + +module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); + defineBuiltIn(NativePrototype, KEY, + KEY === 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY === 'delete' ? function (key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'get' ? function get(key) { + return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'has' ? function has(key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + + +/***/ }), +/* 256 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var hiddenKeys = __webpack_require__(54); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var defineProperty = (__webpack_require__(44).f); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternalModule = __webpack_require__(75); +var isExtensible = __webpack_require__(257); +var uid = __webpack_require__(40); +var FREEZING = __webpack_require__(259); + +var REQUIRED = false; +var METADATA = uid('meta'); +var id = 0; + +var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id++, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData = function (it, create) { + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it); + return it; +}; + +var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } +}; + +var meta = module.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + + +/***/ }), +/* 257 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isextensible -- safe +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); }); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +module.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + + +/***/ }), +/* 258 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it +var fails = __webpack_require__(7); + +module.exports = fails(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + + +/***/ }), +/* 259 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); +}); + + +/***/ }), +/* 260 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var create = __webpack_require__(71); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var bind = __webpack_require__(84); +var anInstance = __webpack_require__(210); +var isNullOrUndefined = __webpack_require__(17); +var iterate = __webpack_require__(130); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var setSpecies = __webpack_require__(193); +var DESCRIPTORS = __webpack_require__(6); +var fastKey = (__webpack_require__(256).fastKey); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS) that.size = 0; + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key === key) return entry; + } + }; + + defineBuiltIns(Prototype, { + // `{ Map, Set }.prototype.clear()` methods + // https://tc39.es/ecma262/#sec-map.prototype.clear + // https://tc39.es/ecma262/#sec-set.prototype.clear + clear: function clear() { + var that = this; + var state = getInternalState(that); + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + entry = entry.next; + } + state.first = state.last = undefined; + state.index = create(null); + if (DESCRIPTORS) state.size = 0; + else that.size = 0; + }, + // `{ Map, Set }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.delete + // https://tc39.es/ecma262/#sec-set.prototype.delete + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first === entry) state.first = next; + if (state.last === entry) state.last = prev; + if (DESCRIPTORS) state.size--; + else that.size--; + } return !!entry; + }, + // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods + // https://tc39.es/ecma262/#sec-map.prototype.foreach + // https://tc39.es/ecma262/#sec-set.prototype.foreach + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // `{ Map, Set}.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.has + // https://tc39.es/ecma262/#sec-set.prototype.has + has: function has(key) { + return !!getEntry(this, key); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `Map.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-map.prototype.get + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // `Map.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-map.prototype.set + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // `Set.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-set.prototype.add + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', { + configurable: true, + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods + // https://tc39.es/ecma262/#sec-map.prototype.entries + // https://tc39.es/ecma262/#sec-map.prototype.keys + // https://tc39.es/ecma262/#sec-map.prototype.values + // https://tc39.es/ecma262/#sec-map.prototype-@@iterator + // https://tc39.es/ecma262/#sec-set.prototype.entries + // https://tc39.es/ecma262/#sec-set.prototype.keys + // https://tc39.es/ecma262/#sec-set.prototype.values + // https://tc39.es/ecma262/#sec-set.prototype-@@iterator + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return createIterResultObject(undefined, true); + } + // return step by kind + if (kind === 'keys') return createIterResultObject(entry.key, false); + if (kind === 'values') return createIterResultObject(entry.value, false); + return createIterResultObject([entry.key, entry.value], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // `{ Map, Set }.prototype[@@species]` accessors + // https://tc39.es/ecma262/#sec-get-map-@@species + // https://tc39.es/ecma262/#sec-get-set-@@species + setSpecies(CONSTRUCTOR_NAME); + } +}; + + +/***/ }), +/* 261 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var iterate = __webpack_require__(130); +var MapHelpers = __webpack_require__(262); +var IS_PURE = __webpack_require__(36); +var fails = __webpack_require__(7); + +var Map = MapHelpers.Map; +var has = MapHelpers.has; +var get = MapHelpers.get; +var set = MapHelpers.set; +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () { + return Map.groupBy('ab', function (it) { + return it; + }).get('a').length !== 1; +}); + +// `Map.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var map = new Map(); + var k = 0; + iterate(items, function (value) { + var key = callbackfn(value, k++); + if (!has(map, key)) set(map, key, [value]); + else push(get(map, key), value); + }); + return map; + } +}); + + +/***/ }), +/* 262 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-map -- safe +var MapPrototype = Map.prototype; + +module.exports = { + // eslint-disable-next-line es/no-map -- safe + Map: Map, + set: uncurryThis(MapPrototype.set), + get: uncurryThis(MapPrototype.get), + has: uncurryThis(MapPrototype.has), + remove: uncurryThis(MapPrototype['delete']), + proto: MapPrototype +}; + + +/***/ }), +/* 263 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// eslint-disable-next-line es/no-math-acosh -- required for testing +var $acosh = Math.acosh; +var log = Math.log; +var sqrt = Math.sqrt; +var LN2 = Math.LN2; + +var FORCED = !$acosh + // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 + || Math.floor($acosh(Number.MAX_VALUE)) !== 710 + // Tor Browser bug: Math.acosh(Infinity) -> NaN + || $acosh(Infinity) !== Infinity; + +// `Math.acosh` method +// https://tc39.es/ecma262/#sec-math.acosh +$({ target: 'Math', stat: true, forced: FORCED }, { + acosh: function acosh(x) { + var n = +x; + return n < 1 ? NaN : n > 94906265.62425156 + ? log(n) + LN2 + : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1)); + } +}); + + +/***/ }), +/* 264 */ +/***/ (function(module) { + + +var log = Math.log; + +// `Math.log1p` method implementation +// https://tc39.es/ecma262/#sec-math.log1p +// eslint-disable-next-line es/no-math-log1p -- safe +module.exports = Math.log1p || function log1p(x) { + var n = +x; + return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n); +}; + + +/***/ }), +/* 265 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-asinh -- required for testing +var $asinh = Math.asinh; +var log = Math.log; +var sqrt = Math.sqrt; + +function asinh(x) { + var n = +x; + return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1)); +} + +var FORCED = !($asinh && 1 / $asinh(0) > 0); + +// `Math.asinh` method +// https://tc39.es/ecma262/#sec-math.asinh +// Tor Browser bug: Math.asinh(0) -> -0 +$({ target: 'Math', stat: true, forced: FORCED }, { + asinh: asinh +}); + + +/***/ }), +/* 266 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-atanh -- required for testing +var $atanh = Math.atanh; +var log = Math.log; + +var FORCED = !($atanh && 1 / $atanh(-0) < 0); + +// `Math.atanh` method +// https://tc39.es/ecma262/#sec-math.atanh +// Tor Browser bug: Math.atanh(-0) -> 0 +$({ target: 'Math', stat: true, forced: FORCED }, { + atanh: function atanh(x) { + var n = +x; + return n === 0 ? n : log((1 + n) / (1 - n)) / 2; + } +}); + + +/***/ }), +/* 267 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +var abs = Math.abs; +var pow = Math.pow; + +// `Math.cbrt` method +// https://tc39.es/ecma262/#sec-math.cbrt +$({ target: 'Math', stat: true }, { + cbrt: function cbrt(x) { + var n = +x; + return sign(n) * pow(abs(n), 1 / 3); + } +}); + + +/***/ }), +/* 268 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var floor = Math.floor; +var log = Math.log; +var LOG2E = Math.LOG2E; + +// `Math.clz32` method +// https://tc39.es/ecma262/#sec-math.clz32 +$({ target: 'Math', stat: true }, { + clz32: function clz32(x) { + var n = x >>> 0; + return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32; + } +}); + + +/***/ }), +/* 269 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// eslint-disable-next-line es/no-math-cosh -- required for testing +var $cosh = Math.cosh; +var abs = Math.abs; +var E = Math.E; + +var FORCED = !$cosh || $cosh(710) === Infinity; + +// `Math.cosh` method +// https://tc39.es/ecma262/#sec-math.cosh +$({ target: 'Math', stat: true, forced: FORCED }, { + cosh: function cosh(x) { + var t = expm1(abs(x) - 1) + 1; + return (t + 1 / (t * E * E)) * (E / 2); + } +}); + + +/***/ }), +/* 270 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-math-expm1 -- safe +var $expm1 = Math.expm1; +var exp = Math.exp; + +// `Math.expm1` method implementation +// https://tc39.es/ecma262/#sec-math.expm1 +module.exports = (!$expm1 + // Old FF bug + // eslint-disable-next-line no-loss-of-precision -- required for old engines + || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 + // Tor Browser bug + || $expm1(-2e-17) !== -2e-17 +) ? function expm1(x) { + var n = +x; + return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1; +} : $expm1; + + +/***/ }), +/* 271 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// `Math.expm1` method +// https://tc39.es/ecma262/#sec-math.expm1 +// eslint-disable-next-line es/no-math-expm1 -- required for testing +$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 }); + + +/***/ }), +/* 272 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fround = __webpack_require__(212); + +// `Math.fround` method +// https://tc39.es/ecma262/#sec-math.fround +$({ target: 'Math', stat: true }, { fround: fround }); + + +/***/ }), +/* 273 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-hypot -- required for testing +var $hypot = Math.hypot; +var abs = Math.abs; +var sqrt = Math.sqrt; + +// Chrome 77 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=9546 +var FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity; + +// `Math.hypot` method +// https://tc39.es/ecma262/#sec-math.hypot +$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + hypot: function hypot(value1, value2) { + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + while (i < aLen) { + arg = abs(arguments[i++]); + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + return larg === Infinity ? Infinity : larg * sqrt(sum); + } +}); + + +/***/ }), +/* 274 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-math-imul -- required for testing +var $imul = Math.imul; + +var FORCED = fails(function () { + return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2; +}); + +// `Math.imul` method +// https://tc39.es/ecma262/#sec-math.imul +// some WebKit versions fails with big numbers, some has wrong arity +$({ target: 'Math', stat: true, forced: FORCED }, { + imul: function imul(x, y) { + var UINT16 = 0xFFFF; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } +}); + + +/***/ }), +/* 275 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log10 = __webpack_require__(276); + +// `Math.log10` method +// https://tc39.es/ecma262/#sec-math.log10 +$({ target: 'Math', stat: true }, { + log10: log10 +}); + + +/***/ }), +/* 276 */ +/***/ (function(module) { + + +var log = Math.log; +var LOG10E = Math.LOG10E; + +// eslint-disable-next-line es/no-math-log10 -- safe +module.exports = Math.log10 || function log10(x) { + return log(x) * LOG10E; +}; + + +/***/ }), +/* 277 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// `Math.log1p` method +// https://tc39.es/ecma262/#sec-math.log1p +$({ target: 'Math', stat: true }, { log1p: log1p }); + + +/***/ }), +/* 278 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var log = Math.log; +var LN2 = Math.LN2; + +// `Math.log2` method +// https://tc39.es/ecma262/#sec-math.log2 +$({ target: 'Math', stat: true }, { + log2: function log2(x) { + return log(x) / LN2; + } +}); + + +/***/ }), +/* 279 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +// `Math.sign` method +// https://tc39.es/ecma262/#sec-math.sign +$({ target: 'Math', stat: true }, { + sign: sign +}); + + +/***/ }), +/* 280 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var expm1 = __webpack_require__(270); + +var abs = Math.abs; +var exp = Math.exp; +var E = Math.E; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-math-sinh -- required for testing + return Math.sinh(-2e-17) !== -2e-17; +}); + +// `Math.sinh` method +// https://tc39.es/ecma262/#sec-math.sinh +// V8 near Chromium 38 has a problem with very small numbers +$({ target: 'Math', stat: true, forced: FORCED }, { + sinh: function sinh(x) { + var n = +x; + return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2); + } +}); + + +/***/ }), +/* 281 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +var exp = Math.exp; + +// `Math.tanh` method +// https://tc39.es/ecma262/#sec-math.tanh +$({ target: 'Math', stat: true }, { + tanh: function tanh(x) { + var n = +x; + var a = expm1(n); + var b = expm1(-n); + return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n)); + } +}); + + +/***/ }), +/* 282 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setToStringTag = __webpack_require__(82); + +// Math[@@toStringTag] property +// https://tc39.es/ecma262/#sec-math-@@tostringtag +setToStringTag(Math, 'Math', true); + + +/***/ }), +/* 283 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trunc = __webpack_require__(62); + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +$({ target: 'Math', stat: true }, { + trunc: trunc +}); + + +/***/ }), +/* 284 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var path = __webpack_require__(80); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var hasOwn = __webpack_require__(38); +var inheritIfRequired = __webpack_require__(118); +var isPrototypeOf = __webpack_require__(24); +var isSymbol = __webpack_require__(22); +var toPrimitive = __webpack_require__(19); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(57).f); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var defineProperty = (__webpack_require__(44).f); +var thisNumberValue = __webpack_require__(285); +var trim = (__webpack_require__(286).trim); + +var NUMBER = 'Number'; +var NativeNumber = global[NUMBER]; +var PureNumberNamespace = path[NUMBER]; +var NumberPrototype = NativeNumber.prototype; +var TypeError = global.TypeError; +var stringSlice = uncurryThis(''.slice); +var charCodeAt = uncurryThis(''.charCodeAt); + +// `ToNumeric` abstract operation +// https://tc39.es/ecma262/#sec-tonumeric +var toNumeric = function (value) { + var primValue = toPrimitive(value, 'number'); + return typeof primValue == 'bigint' ? primValue : toNumber(primValue); +}; + +// `ToNumber` abstract operation +// https://tc39.es/ecma262/#sec-tonumber +var toNumber = function (argument) { + var it = toPrimitive(argument, 'number'); + var first, third, radix, maxCode, digits, length, index, code; + if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number'); + if (typeof it == 'string' && it.length > 2) { + it = trim(it); + first = charCodeAt(it, 0); + if (first === 43 || first === 45) { + third = charCodeAt(it, 2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (charCodeAt(it, 1)) { + // fast equal of /^0b[01]+$/i + case 66: + case 98: + radix = 2; + maxCode = 49; + break; + // fast equal of /^0o[0-7]+$/i + case 79: + case 111: + radix = 8; + maxCode = 55; + break; + default: + return +it; + } + digits = stringSlice(it, 2); + length = digits.length; + for (index = 0; index < length; index++) { + code = charCodeAt(digits, index); + // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + if (code < 48 || code > maxCode) return NaN; + } return parseInt(digits, radix); + } + } return +it; +}; + +var FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1')); + +var calledWithNew = function (dummy) { + // includes check on 1..constructor(foo) case + return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); }); +}; + +// `Number` constructor +// https://tc39.es/ecma262/#sec-number-constructor +var NumberWrapper = function Number(value) { + var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value)); + return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n; +}; + +NumberWrapper.prototype = NumberPrototype; +if (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper; + +$({ global: true, constructor: true, wrap: true, forced: FORCED }, { + Number: NumberWrapper +}); + +// Use `internal/copy-constructor-properties` helper in `core-js@4` +var copyConstructorProperties = function (target, source) { + for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : ( + // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + + // ES2015 (in case, if modules with ES2015 Number statics required before): + 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' + + // ESNext + 'fromString,range' + ).split(','), j = 0, key; keys.length > j; j++) { + if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +if (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace); +if (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber); + + +/***/ }), +/* 285 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// `thisNumberValue` abstract operation +// https://tc39.es/ecma262/#sec-thisnumbervalue +module.exports = uncurryThis(1.0.valueOf); + + +/***/ }), +/* 286 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var whitespaces = __webpack_require__(287); + +var replace = uncurryThis(''.replace); +var ltrim = RegExp('^[' + whitespaces + ']+'); +var rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod = function (TYPE) { + return function ($this) { + var string = toString(requireObjectCoercible($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, '$1'); + return string; + }; +}; + +module.exports = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) +}; + + +/***/ }), +/* 287 */ +/***/ (function(module) { + + +// a string of all valid unicode whitespaces +module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), +/* 288 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.EPSILON` constant +// https://tc39.es/ecma262/#sec-number.epsilon +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + EPSILON: Math.pow(2, -52) +}); + + +/***/ }), +/* 289 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var numberIsFinite = __webpack_require__(290); + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +$({ target: 'Number', stat: true }, { isFinite: numberIsFinite }); + + +/***/ }), +/* 290 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +var globalIsFinite = global.isFinite; + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +// eslint-disable-next-line es/no-number-isfinite -- safe +module.exports = Number.isFinite || function isFinite(it) { + return typeof it == 'number' && globalIsFinite(it); +}; + + +/***/ }), +/* 291 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +// `Number.isInteger` method +// https://tc39.es/ecma262/#sec-number.isinteger +$({ target: 'Number', stat: true }, { + isInteger: isIntegralNumber +}); + + +/***/ }), +/* 292 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var floor = Math.floor; + +// `IsIntegralNumber` abstract operation +// https://tc39.es/ecma262/#sec-isintegralnumber +// eslint-disable-next-line es/no-number-isinteger -- safe +module.exports = Number.isInteger || function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + + +/***/ }), +/* 293 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.isNaN` method +// https://tc39.es/ecma262/#sec-number.isnan +$({ target: 'Number', stat: true }, { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number; + } +}); + + +/***/ }), +/* 294 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +var abs = Math.abs; + +// `Number.isSafeInteger` method +// https://tc39.es/ecma262/#sec-number.issafeinteger +$({ target: 'Number', stat: true }, { + isSafeInteger: function isSafeInteger(number) { + return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF; + } +}); + + +/***/ }), +/* 295 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MAX_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.max_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 296 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MIN_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.min_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 297 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseFloat = __webpack_require__(298); + +// `Number.parseFloat` method +// https://tc39.es/ecma262/#sec-number.parseFloat +// eslint-disable-next-line es/no-number-parsefloat -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, { + parseFloat: parseFloat +}); + + +/***/ }), +/* 298 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var charAt = uncurryThis(''.charAt); +var $parseFloat = global.parseFloat; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); })); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +module.exports = FORCED ? function parseFloat(string) { + var trimmedString = trim(toString(string)); + var result = $parseFloat(trimmedString); + return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result; +} : $parseFloat; + + +/***/ }), +/* 299 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseInt = __webpack_require__(300); + +// `Number.parseInt` method +// https://tc39.es/ecma262/#sec-number.parseint +// eslint-disable-next-line es/no-number-parseint -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, { + parseInt: parseInt +}); + + +/***/ }), +/* 300 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var $parseInt = global.parseInt; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var hex = /^[+-]?0x/i; +var exec = uncurryThis(hex.exec); +var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); })); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +module.exports = FORCED ? function parseInt(string, radix) { + var S = trim(toString(string)); + return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); +} : $parseInt; + + +/***/ }), +/* 301 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var log10 = __webpack_require__(276); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var $isFinite = isFinite; +var abs = Math.abs; +var floor = Math.floor; +var pow = Math.pow; +var round = Math.round; +var nativeToExponential = uncurryThis(1.0.toExponential); +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); + +// Edge 17- +var ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11' + // IE11- && Edge 14- + && nativeToExponential(1.255, 2) === '1.25e+0' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(12345, 3) === '1.235e+4' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(25, 0) === '3e+1'; + +// IE8- +var throwsOnInfinityFraction = function () { + return fails(function () { + nativeToExponential(1, Infinity); + }) && fails(function () { + nativeToExponential(1, -Infinity); + }); +}; + +// Safari <11 && FF <50 +var properNonFiniteThisCheck = function () { + return !fails(function () { + nativeToExponential(Infinity, Infinity); + nativeToExponential(NaN, Infinity); + }); +}; + +var FORCED = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFiniteThisCheck(); + +// `Number.prototype.toExponential` method +// https://tc39.es/ecma262/#sec-number.prototype.toexponential +$({ target: 'Number', proto: true, forced: FORCED }, { + toExponential: function toExponential(fractionDigits) { + var x = thisNumberValue(this); + if (fractionDigits === undefined) return nativeToExponential(x); + var f = toIntegerOrInfinity(fractionDigits); + if (!$isFinite(x)) return String(x); + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits'); + if (ROUNDS_PROPERLY) return nativeToExponential(x, f); + var s = ''; + var m = ''; + var e = 0; + var c = ''; + var d = ''; + if (x < 0) { + s = '-'; + x = -x; + } + if (x === 0) { + e = 0; + m = repeat('0', f + 1); + } else { + // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08 + // TODO: improve accuracy with big fraction digits + var l = log10(x); + e = floor(l); + var n = 0; + var w = pow(10, e - f); + n = round(x / w); + if (2 * x >= (2 * n + 1) * w) { + n += 1; + } + if (n >= pow(10, f + 1)) { + n /= 10; + e += 1; + } + m = $String(n); + } + if (f !== 0) { + m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1); + } + if (e === 0) { + c = '+'; + d = '0'; + } else { + c = e > 0 ? '+' : '-'; + d = $String(abs(e)); + } + m += 'e' + c + d; + return s + m; + } +}); + + +/***/ }), +/* 302 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var floor = Math.floor; +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var nativeToFixed = uncurryThis(1.0.toFixed); + +var pow = function (x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); +}; + +var log = function (x) { + var n = 0; + var x2 = x; + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + while (x2 >= 2) { + n += 1; + x2 /= 2; + } return n; +}; + +var multiply = function (data, n, c) { + var index = -1; + var c2 = c; + while (++index < 6) { + c2 += n * data[index]; + data[index] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } +}; + +var divide = function (data, n) { + var index = 6; + var c = 0; + while (--index >= 0) { + c += data[index]; + data[index] = floor(c / n); + c = (c % n) * 1e7; + } +}; + +var dataToString = function (data) { + var index = 6; + var s = ''; + while (--index >= 0) { + if (s !== '' || index === 0 || data[index] !== 0) { + var t = $String(data[index]); + s = s === '' ? t : s + repeat('0', 7 - t.length) + t; + } + } return s; +}; + +var FORCED = fails(function () { + return nativeToFixed(0.00008, 3) !== '0.000' || + nativeToFixed(0.9, 0) !== '1' || + nativeToFixed(1.255, 2) !== '1.25' || + nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToFixed({}); +}); + +// `Number.prototype.toFixed` method +// https://tc39.es/ecma262/#sec-number.prototype.tofixed +$({ target: 'Number', proto: true, forced: FORCED }, { + toFixed: function toFixed(fractionDigits) { + var number = thisNumberValue(this); + var fractDigits = toIntegerOrInfinity(fractionDigits); + var data = [0, 0, 0, 0, 0, 0]; + var sign = ''; + var result = '0'; + var e, z, j, k; + + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits'); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number) return 'NaN'; + if (number <= -1e21 || number >= 1e21) return $String(number); + if (number < 0) { + sign = '-'; + number = -number; + } + if (number > 1e-21) { + e = log(number * pow(2, 69, 1)) - 69; + z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + if (e > 0) { + multiply(data, 0, z); + j = fractDigits; + while (j >= 7) { + multiply(data, 1e7, 0); + j -= 7; + } + multiply(data, pow(10, j, 1), 0); + j = e - 1; + while (j >= 23) { + divide(data, 1 << 23); + j -= 23; + } + divide(data, 1 << j); + multiply(data, 1, 1); + divide(data, 2); + result = dataToString(data); + } else { + multiply(data, 0, z); + multiply(data, 1 << -e, 0); + result = dataToString(data) + repeat('0', fractDigits); + } + } + if (fractDigits > 0) { + k = result.length; + result = sign + (k <= fractDigits + ? '0.' + repeat('0', fractDigits - k) + result + : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits)); + } else { + result = sign + result; + } return result; + } +}); + + +/***/ }), +/* 303 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var thisNumberValue = __webpack_require__(285); + +var nativeToPrecision = uncurryThis(1.0.toPrecision); + +var FORCED = fails(function () { + // IE7- + return nativeToPrecision(1, undefined) !== '1'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToPrecision({}); +}); + +// `Number.prototype.toPrecision` method +// https://tc39.es/ecma262/#sec-number.prototype.toprecision +$({ target: 'Number', proto: true, forced: FORCED }, { + toPrecision: function toPrecision(precision) { + return precision === undefined + ? nativeToPrecision(thisNumberValue(this)) + : nativeToPrecision(thisNumberValue(this), precision); + } +}); + + +/***/ }), +/* 304 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var assign = __webpack_require__(305); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + + +/***/ }), +/* 305 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var objectKeys = __webpack_require__(73); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var propertyIsEnumerableModule = __webpack_require__(10); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty = Object.defineProperty; +var concat = uncurryThis([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +module.exports = !$assign || fails(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + + +/***/ }), +/* 306 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var create = __webpack_require__(71); + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + create: create +}); + + +/***/ }), +/* 307 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineGetter__: function __defineGetter__(P, getter) { + definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 308 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var WEBKIT = __webpack_require__(191); + +// Forced replacement object prototype accessors methods +module.exports = IS_PURE || !fails(function () { + // This feature detection crashes old WebKit + // https://github.com/zloirock/core-js/issues/232 + if (WEBKIT && WEBKIT < 535) return; + var key = Math.random(); + // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call, es/no-legacy-object-prototype-accessor-methods -- required for testing + __defineSetter__.call(null, key, function () { /* empty */ }); + delete global[key]; +}); + + +/***/ }), +/* 309 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperties = (__webpack_require__(72).f); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, { + defineProperties: defineProperties +}); + + +/***/ }), +/* 310 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperty = (__webpack_require__(44).f); + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +// eslint-disable-next-line es/no-object-defineproperty -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, { + defineProperty: defineProperty +}); + + +/***/ }), +/* 311 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineSetter__: function __defineSetter__(P, setter) { + definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 312 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $entries = (__webpack_require__(313).entries); + +// `Object.entries` method +// https://tc39.es/ecma262/#sec-object.entries +$({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } +}); + + +/***/ }), +/* 313 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var objectGetPrototypeOf = __webpack_require__(128); +var objectKeys = __webpack_require__(73); +var toIndexedObject = __webpack_require__(12); +var $propertyIsEnumerable = (__webpack_require__(10).f); + +var propertyIsEnumerable = uncurryThis($propertyIsEnumerable); +var push = uncurryThis([].push); + +// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys +// of `null` prototype objects +var IE_BUG = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-create -- safe + var O = Object.create(null); + O[2] = 2; + return !propertyIsEnumerable(O, 2); +}); + +// `Object.{ entries, values }` methods implementation +var createMethod = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + push(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; +}; + +module.exports = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod(false) +}; + + +/***/ }), +/* 314 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); + +// eslint-disable-next-line es/no-object-freeze -- safe +var $freeze = Object.freeze; +var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); }); + +// `Object.freeze` method +// https://tc39.es/ecma262/#sec-object.freeze +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + freeze: function freeze(it) { + return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 315 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var iterate = __webpack_require__(130); +var createProperty = __webpack_require__(141); + +// `Object.fromEntries` method +// https://github.com/tc39/proposal-object-from-entries +$({ target: 'Object', stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function (k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } +}); + + +/***/ }), +/* 316 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toIndexedObject = __webpack_require__(12); +var nativeGetOwnPropertyDescriptor = (__webpack_require__(5).f); +var DESCRIPTORS = __webpack_require__(6); + +var FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); }); + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { + return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key); + } +}); + + +/***/ }), +/* 317 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var ownKeys = __webpack_require__(56); +var toIndexedObject = __webpack_require__(12); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var createProperty = __webpack_require__(141); + +// `Object.getOwnPropertyDescriptors` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIndexedObject(object); + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + var keys = ownKeys(O); + var result = {}; + var index = 0; + var key, descriptor; + while (keys.length > index) { + descriptor = getOwnPropertyDescriptor(O, key = keys[index++]); + if (descriptor !== undefined) createProperty(result, key, descriptor); + } + return result; + } +}); + + +/***/ }), +/* 318 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(75).f); + +// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing +var FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); }); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + getOwnPropertyNames: getOwnPropertyNames +}); + + +/***/ }), +/* 319 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var nativeGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); }); + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(it) { + return nativeGetPrototypeOf(toObject(it)); + } +}); + + + +/***/ }), +/* 320 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var toPropertyKey = __webpack_require__(18); +var iterate = __webpack_require__(130); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-map-groupby -- testing +var nativeGroupBy = Object.groupBy; +var create = getBuiltIn('Object', 'create'); +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () { + return nativeGroupBy('ab', function (it) { + return it; + }).a.length !== 1; +}); + +// `Object.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var obj = create(null); + var k = 0; + iterate(items, function (value) { + var key = toPropertyKey(callbackfn(value, k++)); + // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys + // but since it's a `null` prototype object, we can safely use `in` + if (key in obj) push(obj[key], value); + else obj[key] = [value]; + }); + return obj; + } +}); + + +/***/ }), +/* 321 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); + +// `Object.hasOwn` method +// https://tc39.es/ecma262/#sec-object.hasown +$({ target: 'Object', stat: true }, { + hasOwn: hasOwn +}); + + +/***/ }), +/* 322 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var is = __webpack_require__(323); + +// `Object.is` method +// https://tc39.es/ecma262/#sec-object.is +$({ target: 'Object', stat: true }, { + is: is +}); + + +/***/ }), +/* 323 */ +/***/ (function(module) { + + +// `SameValue` abstract operation +// https://tc39.es/ecma262/#sec-samevalue +// eslint-disable-next-line es/no-object-is -- safe +module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; +}; + + +/***/ }), +/* 324 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $isExtensible = __webpack_require__(257); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +// eslint-disable-next-line es/no-object-isextensible -- safe +$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, { + isExtensible: $isExtensible +}); + + +/***/ }), +/* 325 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isfrozen -- safe +var $isFrozen = Object.isFrozen; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); }); + +// `Object.isFrozen` method +// https://tc39.es/ecma262/#sec-object.isfrozen +$({ target: 'Object', stat: true, forced: FORCED }, { + isFrozen: function isFrozen(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isFrozen ? $isFrozen(it) : false; + } +}); + + +/***/ }), +/* 326 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-issealed -- safe +var $isSealed = Object.isSealed; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); }); + +// `Object.isSealed` method +// https://tc39.es/ecma262/#sec-object.issealed +$({ target: 'Object', stat: true, forced: FORCED }, { + isSealed: function isSealed(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isSealed ? $isSealed(it) : false; + } +}); + + +/***/ }), +/* 327 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var nativeKeys = __webpack_require__(73); +var fails = __webpack_require__(7); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject(it)); + } +}); + + +/***/ }), +/* 328 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.get; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 329 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.set; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 330 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-preventextensions -- safe +var $preventExtensions = Object.preventExtensions; +var FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); }); + +// `Object.preventExtensions` method +// https://tc39.es/ecma262/#sec-object.preventextensions +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + preventExtensions: function preventExtensions(it) { + return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 331 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isObject = __webpack_require__(20); +var isPossiblePrototype = __webpack_require__(116); +var toObject = __webpack_require__(39); +var requireObjectCoercible = __webpack_require__(16); + +// eslint-disable-next-line es/no-object-getprototypeof -- safe +var getPrototypeOf = Object.getPrototypeOf; +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var setPrototypeOf = Object.setPrototypeOf; +var ObjectPrototype = Object.prototype; +var PROTO = '__proto__'; + +// `Object.prototype.__proto__` accessor +// https://tc39.es/ecma262/#sec-object.prototype.__proto__ +if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { + defineBuiltInAccessor(ObjectPrototype, PROTO, { + configurable: true, + get: function __proto__() { + return getPrototypeOf(toObject(this)); + }, + set: function __proto__(proto) { + var O = requireObjectCoercible(this); + if (isPossiblePrototype(proto) && isObject(O)) { + setPrototypeOf(O, proto); + } + } + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 332 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-seal -- safe +var $seal = Object.seal; +var FAILS_ON_PRIMITIVES = fails(function () { $seal(1); }); + +// `Object.seal` method +// https://tc39.es/ecma262/#sec-object.seal +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + seal: function seal(it) { + return $seal && isObject(it) ? $seal(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 333 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var setPrototypeOf = __webpack_require__(113); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +$({ target: 'Object', stat: true }, { + setPrototypeOf: setPrototypeOf +}); + + +/***/ }), +/* 334 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var defineBuiltIn = __webpack_require__(47); +var toString = __webpack_require__(335); + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true }); +} + + +/***/ }), +/* 335 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var classof = __webpack_require__(69); + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; +}; + + +/***/ }), +/* 336 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $values = (__webpack_require__(313).values); + +// `Object.values` method +// https://tc39.es/ecma262/#sec-object.values +$({ target: 'Object', stat: true }, { + values: function values(O) { + return $values(O); + } +}); + + +/***/ }), +/* 337 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseFloat = __webpack_require__(298); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +$({ global: true, forced: parseFloat !== $parseFloat }, { + parseFloat: $parseFloat +}); + + +/***/ }), +/* 338 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseInt = __webpack_require__(300); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +$({ global: true, forced: parseInt !== $parseInt }, { + parseInt: $parseInt +}); + + +/***/ }), +/* 339 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(340); +__webpack_require__(354); +__webpack_require__(356); +__webpack_require__(357); +__webpack_require__(358); +__webpack_require__(359); + + +/***/ }), +/* 340 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var IS_NODE = __webpack_require__(182); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var setSpecies = __webpack_require__(193); +var aCallable = __webpack_require__(30); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var anInstance = __webpack_require__(210); +var speciesConstructor = __webpack_require__(219); +var task = (__webpack_require__(341).set); +var microtask = __webpack_require__(344); +var hostReportErrors = __webpack_require__(349); +var perform = __webpack_require__(350); +var Queue = __webpack_require__(346); +var InternalStateModule = __webpack_require__(51); +var NativePromiseConstructor = __webpack_require__(351); +var PromiseConstructorDetection = __webpack_require__(352); +var newPromiseCapabilityModule = __webpack_require__(353); + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); +var setInternalState = InternalStateModule.set; +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var PromiseConstructor = NativePromiseConstructor; +var PromisePrototype = NativePromisePrototype; +var TypeError = global.TypeError; +var document = global.document; +var process = global.process; +var newPromiseCapability = newPromiseCapabilityModule.f; +var newGenericPromiseCapability = newPromiseCapability; + +var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject(it) && isCallable(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state === FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(new TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform(function () { + if (IS_NODE) { + process.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + if (IS_NODE) { + process.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw new TypeError("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call(then, value, + bind(internalResolve, wrapper, state), + bind(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromisePrototype); + aCallable(executor); + call(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind(internalResolve, state), bind(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable(onRejected) && onRejected; + reaction.domain = IS_NODE ? process.domain : undefined; + if (state.state === PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind(internalResolve, state); + this.reject = bind(internalReject, state); + }; + + newPromiseCapabilityModule.f = newPromiseCapability = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) { + nativeThen = NativePromisePrototype.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf) { + setPrototypeOf(NativePromisePrototype, PromisePrototype); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + Promise: PromiseConstructor +}); + +setToStringTag(PromiseConstructor, PROMISE, false, true); +setSpecies(PROMISE); + + +/***/ }), +/* 341 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var bind = __webpack_require__(84); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var fails = __webpack_require__(7); +var html = __webpack_require__(74); +var arraySlice = __webpack_require__(76); +var createElement = __webpack_require__(42); +var validateArgumentsLength = __webpack_require__(342); +var IS_IOS = __webpack_require__(343); +var IS_NODE = __webpack_require__(182); + +var set = global.setImmediate; +var clear = global.clearImmediate; +var process = global.process; +var Dispatch = global.Dispatch; +var Function = global.Function; +var MessageChannel = global.MessageChannel; +var String = global.String; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global.location; +}); + +var run = function (id) { + if (hasOwn(queue, id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global.postMessage(String(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable(handler) ? handler : Function(handler); + var args = arraySlice(arguments, 1); + queue[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue[id]; + }; + // Node.js 0.8- + if (IS_NODE) { + defer = function (id) { + process.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global.addEventListener && + isCallable(global.postMessage) && + !global.importScripts && + $location && $location.protocol !== 'file:' && + !fails(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +module.exports = { + set: set, + clear: clear +}; + + +/***/ }), +/* 342 */ +/***/ (function(module) { + + +var $TypeError = TypeError; + +module.exports = function (passed, required) { + if (passed < required) throw new $TypeError('Not enough arguments'); + return passed; +}; + + +/***/ }), +/* 343 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +// eslint-disable-next-line redos/no-vulnerable -- safe +module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent); + + +/***/ }), +/* 344 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var bind = __webpack_require__(84); +var macrotask = (__webpack_require__(341).set); +var Queue = __webpack_require__(346); +var IS_IOS = __webpack_require__(343); +var IS_IOS_PEBBLE = __webpack_require__(347); +var IS_WEBOS_WEBKIT = __webpack_require__(348); +var IS_NODE = __webpack_require__(182); + +var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; +var document = global.document; +var process = global.process; +var Promise = global.Promise; +var microtask = safeGetBuiltIn('queueMicrotask'); +var notify, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask) { + var queue = new Queue(); + + var flush = function () { + var parent, fn; + if (IS_NODE && (parent = process.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { + toggle = true; + node = document.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise; + then = bind(promise.then, promise); + notify = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE) { + notify = function () { + process.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind(macrotask, global); + notify = function () { + macrotask(flush); + }; + } + + microtask = function (fn) { + if (!queue.head) notify(); + queue.add(fn); + }; +} + +module.exports = microtask; + + +/***/ }), +/* 345 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Avoid NodeJS experimental warning +module.exports = function (name) { + if (!DESCRIPTORS) return global[name]; + var descriptor = getOwnPropertyDescriptor(global, name); + return descriptor && descriptor.value; +}; + + +/***/ }), +/* 346 */ +/***/ (function(module) { + + +var Queue = function () { + this.head = null; + this.tail = null; +}; + +Queue.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +module.exports = Queue; + + +/***/ }), +/* 347 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined'; + + +/***/ }), +/* 348 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /web0s(?!.*chrome)/i.test(userAgent); + + +/***/ }), +/* 349 */ +/***/ (function(module) { + + +module.exports = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length === 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 350 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + + +/***/ }), +/* 351 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global.Promise; + + +/***/ }), +/* 352 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var NativePromiseConstructor = __webpack_require__(351); +var isCallable = __webpack_require__(21); +var isForced = __webpack_require__(67); +var inspectSource = __webpack_require__(50); +var wellKnownSymbol = __webpack_require__(33); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_PURE = __webpack_require__(36); +var V8_VERSION = __webpack_require__(27); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var SPECIES = wellKnownSymbol('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution + if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT; +}); + +module.exports = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT, + SUBCLASSING: SUBCLASSING +}; + + +/***/ }), +/* 353 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); + +var $TypeError = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable(resolve); + this.reject = aCallable(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + + +/***/ }), +/* 354 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 355 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NativePromiseConstructor = __webpack_require__(351); +var checkCorrectnessOfIteration = __webpack_require__(164); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +module.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) { + NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ }); +}); + + +/***/ }), +/* 356 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var NativePromiseConstructor = __webpack_require__(351); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + + +/***/ }), +/* 357 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate(iterable, function (promise) { + call($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 358 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + var capabilityReject = capability.reject; + capabilityReject(r); + return capability.promise; + } +}); + + +/***/ }), +/* 359 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var promiseResolve = __webpack_require__(360); + +var PromiseConstructorWrapper = getBuiltIn('Promise'); +var CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x); + } +}); + + +/***/ }), +/* 360 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var newPromiseCapability = __webpack_require__(353); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + + +/***/ }), +/* 361 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.allSettled` method +// https://tc39.es/ecma262/#sec-promise.allsettled +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 362 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var getBuiltIn = __webpack_require__(23); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +var PROMISE_ANY_ERROR = 'No one promise resolved'; + +// `Promise.any` method +// https://tc39.es/ecma262/#sec-promise.any +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + any: function any(iterable) { + var C = this; + var AggregateError = getBuiltIn('AggregateError'); + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var errors = []; + var counter = 0; + var remaining = 1; + var alreadyResolved = false; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyRejected = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyRejected || alreadyResolved) return; + alreadyResolved = true; + resolve(value); + }, function (error) { + if (alreadyRejected || alreadyResolved) return; + alreadyRejected = true; + errors[index] = error; + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + }); + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 363 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var fails = __webpack_require__(7); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var speciesConstructor = __webpack_require__(219); +var promiseResolve = __webpack_require__(360); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 +var NON_GENERIC = !!NativePromiseConstructor && fails(function () { + // eslint-disable-next-line unicorn/no-thenable -- required for testing + NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); +}); + +// `Promise.prototype.finally` method +// https://tc39.es/ecma262/#sec-promise.prototype.finally +$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { + 'finally': function (onFinally) { + var C = speciesConstructor(this, getBuiltIn('Promise')); + var isFunction = isCallable(onFinally); + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); + } +}); + +// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['finally']; + if (NativePromisePrototype['finally'] !== method) { + defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true }); + } +} + + +/***/ }), +/* 364 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); + +// `Promise.withResolvers` method +// https://github.com/tc39/proposal-promise-with-resolvers +$({ target: 'Promise', stat: true }, { + withResolvers: function withResolvers() { + var promiseCapability = newPromiseCapabilityModule.f(this); + return { + promise: promiseCapability.promise, + resolve: promiseCapability.resolve, + reject: promiseCapability.reject + }; + } +}); + + +/***/ }), +/* 365 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var functionApply = __webpack_require__(94); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var fails = __webpack_require__(7); + +// MS Edge argumentsList argument is optional +var OPTIONAL_ARGUMENTS_LIST = !fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.apply(function () { /* empty */ }); +}); + +// `Reflect.apply` method +// https://tc39.es/ecma262/#sec-reflect.apply +$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, { + apply: function apply(target, thisArgument, argumentsList) { + return functionApply(aCallable(target), thisArgument, anObject(argumentsList)); + } +}); + + +/***/ }), +/* 366 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var bind = __webpack_require__(248); +var aConstructor = __webpack_require__(220); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var fails = __webpack_require__(7); + +var nativeConstruct = getBuiltIn('Reflect', 'construct'); +var ObjectPrototype = Object.prototype; +var push = [].push; + +// `Reflect.construct` method +// https://tc39.es/ecma262/#sec-reflect.construct +// MS Edge supports only 2 arguments and argumentsList argument is optional +// FF Nightly sets third argument as `new.target`, but does not create `this` from it +var NEW_TARGET_BUG = fails(function () { + function F() { /* empty */ } + return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F); +}); + +var ARGS_BUG = !fails(function () { + nativeConstruct(function () { /* empty */ }); +}); + +var FORCED = NEW_TARGET_BUG || ARGS_BUG; + +$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, { + construct: function construct(Target, args /* , newTarget */) { + aConstructor(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget); + if (Target === newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: return new Target(); + case 1: return new Target(args[0]); + case 2: return new Target(args[0], args[1]); + case 3: return new Target(args[0], args[1], args[2]); + case 4: return new Target(args[0], args[1], args[2], args[3]); + } + // w/o altered newTarget, lot of arguments case + var $args = [null]; + apply(push, $args, args); + return new (apply(bind, Target, $args))(); + } + // with altered newTarget, not support built-in constructors + var proto = newTarget.prototype; + var instance = create(isObject(proto) ? proto : ObjectPrototype); + var result = apply(Target, instance, args); + return isObject(result) ? result : instance; + } +}); + + +/***/ }), +/* 367 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); +var definePropertyModule = __webpack_require__(44); +var fails = __webpack_require__(7); + +// MS Edge has broken Reflect.defineProperty - throwing instead of returning false +var ERROR_INSTEAD_OF_FALSE = fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 }); +}); + +// `Reflect.defineProperty` method +// https://tc39.es/ecma262/#sec-reflect.defineproperty +$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + var key = toPropertyKey(propertyKey); + anObject(attributes); + try { + definePropertyModule.f(target, key, attributes); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 368 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Reflect.deleteProperty` method +// https://tc39.es/ecma262/#sec-reflect.deleteproperty +$({ target: 'Reflect', stat: true }, { + deleteProperty: function deleteProperty(target, propertyKey) { + var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey); + return descriptor && !descriptor.configurable ? false : delete target[propertyKey]; + } +}); + + +/***/ }), +/* 369 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var anObject = __webpack_require__(46); +var isDataDescriptor = __webpack_require__(370); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); + +// `Reflect.get` method +// https://tc39.es/ecma262/#sec-reflect.get +function get(target, propertyKey /* , receiver */) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var descriptor, prototype; + if (anObject(target) === receiver) return target[propertyKey]; + descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey); + if (descriptor) return isDataDescriptor(descriptor) + ? descriptor.value + : descriptor.get === undefined ? undefined : call(descriptor.get, receiver); + if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver); +} + +$({ target: 'Reflect', stat: true }, { + get: get +}); + + +/***/ }), +/* 370 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); + +module.exports = function (descriptor) { + return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable')); +}; + + +/***/ }), +/* 371 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptorModule = __webpack_require__(5); + +// `Reflect.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor +$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + } +}); + + +/***/ }), +/* 372 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var objectGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +// `Reflect.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.getprototypeof +$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(target) { + return objectGetPrototypeOf(anObject(target)); + } +}); + + +/***/ }), +/* 373 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Reflect.has` method +// https://tc39.es/ecma262/#sec-reflect.has +$({ target: 'Reflect', stat: true }, { + has: function has(target, propertyKey) { + return propertyKey in target; + } +}); + + +/***/ }), +/* 374 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var $isExtensible = __webpack_require__(257); + +// `Reflect.isExtensible` method +// https://tc39.es/ecma262/#sec-reflect.isextensible +$({ target: 'Reflect', stat: true }, { + isExtensible: function isExtensible(target) { + anObject(target); + return $isExtensible(target); + } +}); + + +/***/ }), +/* 375 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ownKeys = __webpack_require__(56); + +// `Reflect.ownKeys` method +// https://tc39.es/ecma262/#sec-reflect.ownkeys +$({ target: 'Reflect', stat: true }, { + ownKeys: ownKeys +}); + + +/***/ }), +/* 376 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var anObject = __webpack_require__(46); +var FREEZING = __webpack_require__(259); + +// `Reflect.preventExtensions` method +// https://tc39.es/ecma262/#sec-reflect.preventextensions +$({ target: 'Reflect', stat: true, sham: !FREEZING }, { + preventExtensions: function preventExtensions(target) { + anObject(target); + try { + var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions'); + if (objectPreventExtensions) objectPreventExtensions(target); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 377 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var isDataDescriptor = __webpack_require__(370); +var fails = __webpack_require__(7); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); +var createPropertyDescriptor = __webpack_require__(11); + +// `Reflect.set` method +// https://tc39.es/ecma262/#sec-reflect.set +function set(target, propertyKey, V /* , receiver */) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + var existingDescriptor, prototype, setter; + if (!ownDescriptor) { + if (isObject(prototype = getPrototypeOf(target))) { + return set(prototype, propertyKey, V, receiver); + } + ownDescriptor = createPropertyDescriptor(0); + } + if (isDataDescriptor(ownDescriptor)) { + if (ownDescriptor.writable === false || !isObject(receiver)) return false; + if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + definePropertyModule.f(receiver, propertyKey, existingDescriptor); + } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V)); + } else { + setter = ownDescriptor.set; + if (setter === undefined) return false; + call(setter, receiver, V); + } return true; +} + +// MS Edge 17-18 Reflect.set allows setting the property to object +// with non-writable property on the prototype +var MS_EDGE_BUG = fails(function () { + var Constructor = function () { /* empty */ }; + var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true }); + // eslint-disable-next-line es/no-reflect -- required for testing + return Reflect.set(Constructor.prototype, 'a', 1, object) !== false; +}); + +$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, { + set: set +}); + + +/***/ }), +/* 378 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var aPossiblePrototype = __webpack_require__(115); +var objectSetPrototypeOf = __webpack_require__(113); + +// `Reflect.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.setprototypeof +if (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, { + setPrototypeOf: function setPrototypeOf(target, proto) { + anObject(target); + aPossiblePrototype(proto); + try { + objectSetPrototypeOf(target, proto); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 379 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +$({ global: true }, { Reflect: {} }); + +// Reflect[@@toStringTag] property +// https://tc39.es/ecma262/#sec-reflect-@@tostringtag +setToStringTag(global.Reflect, 'Reflect', true); + + +/***/ }), +/* 380 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var inheritIfRequired = __webpack_require__(118); +var createNonEnumerableProperty = __webpack_require__(43); +var create = __webpack_require__(71); +var getOwnPropertyNames = (__webpack_require__(57).f); +var isPrototypeOf = __webpack_require__(24); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getRegExpFlags = __webpack_require__(382); +var stickyHelpers = __webpack_require__(384); +var proxyAccessor = __webpack_require__(117); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var enforceInternalState = (__webpack_require__(51).enforce); +var setSpecies = __webpack_require__(193); +var wellKnownSymbol = __webpack_require__(33); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var MATCH = wellKnownSymbol('match'); +var NativeRegExp = global.RegExp; +var RegExpPrototype = NativeRegExp.prototype; +var SyntaxError = global.SyntaxError; +var exec = uncurryThis(RegExpPrototype.exec); +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); +// TODO: Use only proper RegExpIdentifierName +var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/; +var re1 = /a/g; +var re2 = /a/g; + +// "new" should create a new object, old webkit bug +var CORRECT_NEW = new NativeRegExp(re1) !== re1; + +var MISSED_STICKY = stickyHelpers.MISSED_STICKY; +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; + +var BASE_FORCED = DESCRIPTORS && + (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () { + re2[MATCH] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i'; + })); + +var handleDotAll = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var brackets = false; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + result += chr + charAt(string, ++index); + continue; + } + if (!brackets && chr === '.') { + result += '[\\s\\S]'; + } else { + if (chr === '[') { + brackets = true; + } else if (chr === ']') { + brackets = false; + } result += chr; + } + } return result; +}; + +var handleNCG = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var named = []; + var names = create(null); + var brackets = false; + var ncg = false; + var groupid = 0; + var groupname = ''; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + chr += charAt(string, ++index); + } else if (chr === ']') { + brackets = false; + } else if (!brackets) switch (true) { + case chr === '[': + brackets = true; + break; + case chr === '(': + if (exec(IS_NCG, stringSlice(string, index + 1))) { + index += 2; + ncg = true; + } + result += chr; + groupid++; + continue; + case chr === '>' && ncg: + if (groupname === '' || hasOwn(names, groupname)) { + throw new SyntaxError('Invalid capture group name'); + } + names[groupname] = true; + named[named.length] = [groupname, groupid]; + ncg = false; + groupname = ''; + continue; + } + if (ncg) groupname += chr; + else result += chr; + } return [result, named]; +}; + +// `RegExp` constructor +// https://tc39.es/ecma262/#sec-regexp-constructor +if (isForced('RegExp', BASE_FORCED)) { + var RegExpWrapper = function RegExp(pattern, flags) { + var thisIsRegExp = isPrototypeOf(RegExpPrototype, this); + var patternIsRegExp = isRegExp(pattern); + var flagsAreUndefined = flags === undefined; + var groups = []; + var rawPattern = pattern; + var rawFlags, dotAll, sticky, handled, result, state; + + if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) { + return pattern; + } + + if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) { + pattern = pattern.source; + if (flagsAreUndefined) flags = getRegExpFlags(rawPattern); + } + + pattern = pattern === undefined ? '' : toString(pattern); + flags = flags === undefined ? '' : toString(flags); + rawPattern = pattern; + + if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) { + dotAll = !!flags && stringIndexOf(flags, 's') > -1; + if (dotAll) flags = replace(flags, /s/g, ''); + } + + rawFlags = flags; + + if (MISSED_STICKY && 'sticky' in re1) { + sticky = !!flags && stringIndexOf(flags, 'y') > -1; + if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, ''); + } + + if (UNSUPPORTED_NCG) { + handled = handleNCG(pattern); + pattern = handled[0]; + groups = handled[1]; + } + + result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper); + + if (dotAll || sticky || groups.length) { + state = enforceInternalState(result); + if (dotAll) { + state.dotAll = true; + state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags); + } + if (sticky) state.sticky = true; + if (groups.length) state.groups = groups; + } + + if (pattern !== rawPattern) try { + // fails in old engines, but we have no alternatives for unsupported regex syntax + createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern); + } catch (error) { /* empty */ } + + return result; + }; + + for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) { + proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]); + } + + RegExpPrototype.constructor = RegExpWrapper; + RegExpWrapper.prototype = RegExpPrototype; + defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true }); +} + +// https://tc39.es/ecma262/#sec-get-regexp-@@species +setSpecies('RegExp'); + + +/***/ }), +/* 381 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +// `IsRegExp` abstract operation +// https://tc39.es/ecma262/#sec-isregexp +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp'); +}; + + +/***/ }), +/* 382 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var regExpFlags = __webpack_require__(383); + +var RegExpPrototype = RegExp.prototype; + +module.exports = function (R) { + var flags = R.flags; + return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) + ? call(regExpFlags, R) : flags; +}; + + +/***/ }), +/* 383 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); + +// `RegExp.prototype.flags` getter implementation +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; +}; + + +/***/ }), +/* 384 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError +var $RegExp = global.RegExp; + +var UNSUPPORTED_Y = fails(function () { + var re = $RegExp('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') !== null; +}); + +// UC Browser bug +// https://github.com/zloirock/core-js/issues/1008 +var MISSED_STICKY = UNSUPPORTED_Y || fails(function () { + return !$RegExp('a', 'y').sticky; +}); + +var BROKEN_CARET = UNSUPPORTED_Y || fails(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') !== null; +}); + +module.exports = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y +}; + + +/***/ }), +/* 385 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('.', 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); +}); + + +/***/ }), +/* 386 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('(?<a>b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$<a>c') !== 'bc'; +}); + + +/***/ }), +/* 387 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.dotAll` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall +if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) { + defineBuiltInAccessor(RegExpPrototype, 'dotAll', { + configurable: true, + get: function dotAll() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).dotAll; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 388 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var exec = __webpack_require__(389); + +// `RegExp.prototype.exec` method +// https://tc39.es/ecma262/#sec-regexp.prototype.exec +$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec +}); + + +/***/ }), +/* 389 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ +/* eslint-disable regexp/no-useless-quantifier -- testing */ +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var regexpFlags = __webpack_require__(383); +var stickyHelpers = __webpack_require__(384); +var shared = __webpack_require__(34); +var create = __webpack_require__(71); +var getInternalState = (__webpack_require__(51).get); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var nativeReplace = shared('native-string-replace', String.prototype.replace); +var nativeExec = RegExp.prototype.exec; +var patchedExec = nativeExec; +var charAt = uncurryThis(''.charAt); +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); + +var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call(nativeExec, re1, 'a'); + call(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; +})(); + +var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + +// nonparticipating capturing group, copied from es5-shim's String#split patch. +var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + +if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice(match.input, charsAdded); + match[0] = stringSlice(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; +} + +module.exports = patchedExec; + + +/***/ }), +/* 390 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var regExpFlags = __webpack_require__(383); +var fails = __webpack_require__(7); + +// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError +var RegExp = global.RegExp; +var RegExpPrototype = RegExp.prototype; + +var FORCED = DESCRIPTORS && fails(function () { + var INDICES_SUPPORT = true; + try { + RegExp('.', 'd'); + } catch (error) { + INDICES_SUPPORT = false; + } + + var O = {}; + // modern V8 bug + var calls = ''; + var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; + + var addGetter = function (key, chr) { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(O, key, { get: function () { + calls += chr; + return true; + } }); + }; + + var pairs = { + dotAll: 's', + global: 'g', + ignoreCase: 'i', + multiline: 'm', + sticky: 'y' + }; + + if (INDICES_SUPPORT) pairs.hasIndices = 'd'; + + for (var key in pairs) addGetter(key, pairs[key]); + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O); + + return result !== expected || calls !== expected; +}); + +// `RegExp.prototype.flags` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', { + configurable: true, + get: regExpFlags +}); + + +/***/ }), +/* 391 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var MISSED_STICKY = (__webpack_require__(384).MISSED_STICKY); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.sticky` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky +if (DESCRIPTORS && MISSED_STICKY) { + defineBuiltInAccessor(RegExpPrototype, 'sticky', { + configurable: true, + get: function sticky() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).sticky; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 392 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var anObject = __webpack_require__(46); +var toString = __webpack_require__(68); + +var DELEGATES_TO_EXEC = function () { + var execCalled = false; + var re = /[ac]/; + re.exec = function () { + execCalled = true; + return /./.exec.apply(this, arguments); + }; + return re.test('abc') === true && execCalled; +}(); + +var nativeTest = /./.test; + +// `RegExp.prototype.test` method +// https://tc39.es/ecma262/#sec-regexp.prototype.test +$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { + test: function (S) { + var R = anObject(this); + var string = toString(S); + var exec = R.exec; + if (!isCallable(exec)) return call(nativeTest, R, string); + var result = call(exec, R, string); + if (result === null) return false; + anObject(result); + return true; + } +}); + + +/***/ }), +/* 393 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var defineBuiltIn = __webpack_require__(47); +var anObject = __webpack_require__(46); +var $toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var getRegExpFlags = __webpack_require__(382); + +var TO_STRING = 'toString'; +var RegExpPrototype = RegExp.prototype; +var nativeToString = RegExpPrototype[TO_STRING]; + +var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; }); +// FF44- RegExp#toString has a wrong name +var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING; + +// `RegExp.prototype.toString` method +// https://tc39.es/ecma262/#sec-regexp.prototype.tostring +if (NOT_GENERIC || INCORRECT_NAME) { + defineBuiltIn(RegExpPrototype, TO_STRING, function toString() { + var R = anObject(this); + var pattern = $toString(R.source); + var flags = $toString(getRegExpFlags(R)); + return '/' + pattern + '/' + flags; + }, { unsafe: true }); +} + + +/***/ }), +/* 394 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(395); + + +/***/ }), +/* 395 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Set` constructor +// https://tc39.es/ecma262/#sec-set-objects +collection('Set', function (init) { + return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 396 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var difference = __webpack_require__(397); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, { + difference: difference +}); + + +/***/ }), +/* 397 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function difference(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = clone(O); + if (size(O) <= otherRec.size) iterateSet(O, function (e) { + if (otherRec.includes(e)) remove(result, e); + }); + else iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) remove(result, e); + }); + return result; +}; + + +/***/ }), +/* 398 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var has = (__webpack_require__(399).has); + +// Perform ? RequireInternalSlot(M, [[SetData]]) +module.exports = function (it) { + has(it); + return it; +}; + + +/***/ }), +/* 399 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-set -- safe +var SetPrototype = Set.prototype; + +module.exports = { + // eslint-disable-next-line es/no-set -- safe + Set: Set, + add: uncurryThis(SetPrototype.add), + has: uncurryThis(SetPrototype.has), + remove: uncurryThis(SetPrototype['delete']), + proto: SetPrototype +}; + + +/***/ }), +/* 400 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var SetHelpers = __webpack_require__(399); +var iterate = __webpack_require__(401); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; + +module.exports = function (set) { + var result = new Set(); + iterate(set, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 401 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var iterateSimple = __webpack_require__(402); +var SetHelpers = __webpack_require__(399); + +var Set = SetHelpers.Set; +var SetPrototype = SetHelpers.proto; +var forEach = uncurryThis(SetPrototype.forEach); +var keys = uncurryThis(SetPrototype.keys); +var next = keys(new Set()).next; + +module.exports = function (set, fn, interruptible) { + return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn); +}; + + +/***/ }), +/* 402 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); + +module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) { + var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator; + var next = record.next; + var step, result; + while (!(step = call(next, iterator)).done) { + result = fn(step.value); + if (result !== undefined) return result; + } +}; + + +/***/ }), +/* 403 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var SetHelpers = __webpack_require__(399); + +module.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) { + return set.size; +}; + + +/***/ }), +/* 404 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var call = __webpack_require__(8); +var toIntegerOrInfinity = __webpack_require__(61); +var getIteratorDirect = __webpack_require__(405); + +var INVALID_SIZE = 'Invalid size'; +var $RangeError = RangeError; +var $TypeError = TypeError; +var max = Math.max; + +var SetRecord = function (set, intSize) { + this.set = set; + this.size = max(intSize, 0); + this.has = aCallable(set.has); + this.keys = aCallable(set.keys); +}; + +SetRecord.prototype = { + getIterator: function () { + return getIteratorDirect(anObject(call(this.keys, this.set))); + }, + includes: function (it) { + return call(this.has, this.set, it); + } +}; + +// `GetSetRecord` abstract operation +// https://tc39.es/proposal-set-methods/#sec-getsetrecord +module.exports = function (obj) { + anObject(obj); + var numSize = +obj.size; + // NOTE: If size is undefined, then numSize will be NaN + // eslint-disable-next-line no-self-compare -- NaN check + if (numSize !== numSize) throw new $TypeError(INVALID_SIZE); + var intSize = toIntegerOrInfinity(numSize); + if (intSize < 0) throw new $RangeError(INVALID_SIZE); + return new SetRecord(obj, intSize); +}; + + +/***/ }), +/* 405 */ +/***/ (function(module) { + + +// `GetIteratorDirect(obj)` abstract operation +// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect +module.exports = function (obj) { + return { + iterator: obj, + next: obj.next, + done: false + }; +}; + + +/***/ }), +/* 406 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +var createSetLike = function (size) { + return { + size: size, + has: function () { + return false; + }, + keys: function () { + return { + next: function () { + return { done: true }; + } + }; + } + }; +}; + +module.exports = function (name) { + var Set = getBuiltIn('Set'); + try { + new Set()[name](createSetLike(0)); + try { + // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it + // https://github.com/tc39/proposal-set-methods/pull/88 + new Set()[name](createSetLike(-1)); + return false; + } catch (error2) { + return true; + } + } catch (error) { + return false; + } +}; + + +/***/ }), +/* 407 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var intersection = __webpack_require__(408); +var setMethodAcceptSetLike = __webpack_require__(406); + +var INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () { + // eslint-disable-next-line es/no-array-from, es/no-set -- testing + return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2'; +}); + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { + intersection: intersection +}); + + +/***/ }), +/* 408 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; +var has = SetHelpers.has; + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +module.exports = function intersection(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = new Set(); + + if (size(O) > otherRec.size) { + iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) add(result, e); + }); + } else { + iterateSet(O, function (e) { + if (otherRec.includes(e)) add(result, e); + }); + } + + return result; +}; + + +/***/ }), +/* 409 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isDisjointFrom = __webpack_require__(410); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isDisjointFrom` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, { + isDisjointFrom: isDisjointFrom +}); + + +/***/ }), +/* 410 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isDisjointFrom` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom +module.exports = function isDisjointFrom(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) <= otherRec.size) return iterateSet(O, function (e) { + if (otherRec.includes(e)) return false; + }, true) !== false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 411 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSubsetOf = __webpack_require__(412); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSubsetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, { + isSubsetOf: isSubsetOf +}); + + +/***/ }), +/* 412 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var size = __webpack_require__(403); +var iterate = __webpack_require__(401); +var getSetRecord = __webpack_require__(404); + +// `Set.prototype.isSubsetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf +module.exports = function isSubsetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) > otherRec.size) return false; + return iterate(O, function (e) { + if (!otherRec.includes(e)) return false; + }, true) !== false; +}; + + +/***/ }), +/* 413 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSupersetOf = __webpack_require__(414); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSupersetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, { + isSupersetOf: isSupersetOf +}); + + +/***/ }), +/* 414 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isSupersetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf +module.exports = function isSupersetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) < otherRec.size) return false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (!has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 415 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var symmetricDifference = __webpack_require__(416); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, { + symmetricDifference: symmetricDifference +}); + + +/***/ }), +/* 416 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +var add = SetHelpers.add; +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function symmetricDifference(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (e) { + if (has(O, e)) remove(result, e); + else add(result, e); + }); + return result; +}; + + +/***/ }), +/* 417 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var union = __webpack_require__(418); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, { + union: union +}); + + +/***/ }), +/* 418 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var add = (__webpack_require__(399).add); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +module.exports = function union(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 419 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var charAt = uncurryThis(''.charAt); + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-array-string-prototype-at -- safe + return '𠮷'.at(-2) !== '\uD842'; +}); + +// `String.prototype.at` method +// https://tc39.es/ecma262/#sec-string.prototype.at +$({ target: 'String', proto: true, forced: FORCED }, { + at: function at(index) { + var S = toString(requireObjectCoercible(this)); + var len = S.length; + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : charAt(S, k); + } +}); + + +/***/ }), +/* 420 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var codeAt = (__webpack_require__(421).codeAt); + +// `String.prototype.codePointAt` method +// https://tc39.es/ecma262/#sec-string.prototype.codepointat +$({ target: 'String', proto: true }, { + codePointAt: function codePointAt(pos) { + return codeAt(this, pos); + } +}); + + +/***/ }), +/* 421 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var stringSlice = uncurryThis(''.slice); + +var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +module.exports = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) +}; + + +/***/ }), +/* 422 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var slice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.endsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.endswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = that.length; + var end = endPosition === undefined ? len : min(toLength(endPosition), len); + var search = toString(searchString); + return slice(that, end - search.length, end) === search; + } +}); + + +/***/ }), +/* 423 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isRegExp = __webpack_require__(381); + +var $TypeError = TypeError; + +module.exports = function (it) { + if (isRegExp(it)) { + throw new $TypeError("The method doesn't accept regular expressions"); + } return it; +}; + + +/***/ }), +/* 424 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +module.exports = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; +}; + + +/***/ }), +/* 425 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toAbsoluteIndex = __webpack_require__(60); + +var $RangeError = RangeError; +var fromCharCode = String.fromCharCode; +// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing +var $fromCodePoint = String.fromCodePoint; +var join = uncurryThis([].join); + +// length should be 1, old FF problem +var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1; + +// `String.fromCodePoint` method +// https://tc39.es/ecma262/#sec-string.fromcodepoint +$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + fromCodePoint: function fromCodePoint(x) { + var elements = []; + var length = arguments.length; + var i = 0; + var code; + while (length > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point'); + elements[i] = code < 0x10000 + ? fromCharCode(code) + : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00); + } return join(elements, ''); + } +}); + + +/***/ }), +/* 426 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var correctIsRegExpLogic = __webpack_require__(424); + +var stringIndexOf = uncurryThis(''.indexOf); + +// `String.prototype.includes` method +// https://tc39.es/ecma262/#sec-string.prototype.includes +$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString(requireObjectCoercible(this)), + toString(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } +}); + + +/***/ }), +/* 427 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var charCodeAt = uncurryThis(''.charCodeAt); + +// `String.prototype.isWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true }, { + isWellFormed: function isWellFormed() { + var S = toString(requireObjectCoercible(this)); + var length = S.length; + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) continue; + // unpaired surrogate + if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false; + } return true; + } +}); + + +/***/ }), +/* 428 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); +var toString = __webpack_require__(68); +var InternalStateModule = __webpack_require__(51); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator(String, 'String', function (iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject(point, false); +}); + + +/***/ }), +/* 429 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var getMethod = __webpack_require__(29); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); + +// @@match logic +fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) { + return [ + // `String.prototype.match` method + // https://tc39.es/ecma262/#sec-string.prototype.match + function match(regexp) { + var O = requireObjectCoercible(this); + var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH); + return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O)); + }, + // `RegExp.prototype[@@match]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@match + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeMatch, rx, S); + + if (res.done) return res.value; + + if (!rx.global) return regExpExec(rx, S); + + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + var A = []; + var n = 0; + var result; + while ((result = regExpExec(rx, S)) !== null) { + var matchStr = toString(result[0]); + A[n] = matchStr; + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + n++; + } + return n === 0 ? null : A; + } + ]; +}); + + +/***/ }), +/* 430 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var regexpExec = __webpack_require__(389); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var createNonEnumerableProperty = __webpack_require__(43); + +var SPECIES = wellKnownSymbol('species'); +var RegExpPrototype = RegExp.prototype; + +module.exports = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol(KEY); + + var DELEGATES_TO_SYMBOL = !fails(function () { + // String methods call symbol-named RegExp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) !== 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var $exec = regexp.exec; + if ($exec === regexpExec || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) }; + } + return { done: true, value: call(nativeMethod, str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); +}; + + +/***/ }), +/* 431 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); + +// `AdvanceStringIndex` abstract operation +// https://tc39.es/ecma262/#sec-advancestringindex +module.exports = function (S, index, unicode) { + return index + (unicode ? charAt(S, index).length : 1); +}; + + +/***/ }), +/* 432 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var regexpExec = __webpack_require__(389); + +var $TypeError = TypeError; + +// `RegExpExec` abstract operation +// https://tc39.es/ecma262/#sec-regexpexec +module.exports = function (R, S) { + var exec = R.exec; + if (isCallable(exec)) { + var result = call(exec, R, S); + if (result !== null) anObject(result); + return result; + } + if (classof(R) === 'RegExp') return call(regexpExec, R, S); + throw new $TypeError('RegExp#exec called on incompatible receiver'); +}; + + +/***/ }), +/* 433 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-string-prototype-matchall -- safe */ +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(85); +var createIteratorConstructor = __webpack_require__(170); +var createIterResultObject = __webpack_require__(172); +var requireObjectCoercible = __webpack_require__(16); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var classof = __webpack_require__(15); +var isRegExp = __webpack_require__(381); +var getRegExpFlags = __webpack_require__(382); +var getMethod = __webpack_require__(29); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); +var InternalStateModule = __webpack_require__(51); +var IS_PURE = __webpack_require__(36); + +var MATCH_ALL = wellKnownSymbol('matchAll'); +var REGEXP_STRING = 'RegExp String'; +var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR); +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; +var stringIndexOf = uncurryThis(''.indexOf); +var nativeMatchAll = uncurryThis(''.matchAll); + +var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () { + nativeMatchAll('a', /./); +}); + +var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) { + setInternalState(this, { + type: REGEXP_STRING_ITERATOR, + regexp: regexp, + string: string, + global: $global, + unicode: fullUnicode, + done: false + }); +}, REGEXP_STRING, function next() { + var state = getInternalState(this); + if (state.done) return createIterResultObject(undefined, true); + var R = state.regexp; + var S = state.string; + var match = regExpExec(R, S); + if (match === null) { + state.done = true; + return createIterResultObject(undefined, true); + } + if (state.global) { + if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode); + return createIterResultObject(match, false); + } + state.done = true; + return createIterResultObject(match, false); +}); + +var $matchAll = function (string) { + var R = anObject(this); + var S = toString(string); + var C = speciesConstructor(R, RegExp); + var flags = toString(getRegExpFlags(R)); + var matcher, $global, fullUnicode; + matcher = new C(C === RegExp ? R.source : R, flags); + $global = !!~stringIndexOf(flags, 'g'); + fullUnicode = !!~stringIndexOf(flags, 'u'); + matcher.lastIndex = toLength(R.lastIndex); + return new $RegExpStringIterator(matcher, S, $global, fullUnicode); +}; + +// `String.prototype.matchAll` method +// https://tc39.es/ecma262/#sec-string.prototype.matchall +$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, { + matchAll: function matchAll(regexp) { + var O = requireObjectCoercible(this); + var flags, S, matcher, rx; + if (!isNullOrUndefined(regexp)) { + if (isRegExp(regexp)) { + flags = toString(requireObjectCoercible(getRegExpFlags(regexp))); + if (!~stringIndexOf(flags, 'g')) throw new $TypeError('`.matchAll` does not allow non-global regexes'); + } + if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + matcher = getMethod(regexp, MATCH_ALL); + if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll; + if (matcher) return call(matcher, regexp, O); + } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + S = toString(O); + rx = new RegExp(regexp, 'g'); + return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S); + } +}); + +IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll); + + +/***/ }), +/* 434 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padEnd = (__webpack_require__(240).end); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.padend +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padEnd: function padEnd(maxLength /* , fillString = ' ' */) { + return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 435 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/zloirock/core-js/issues/280 +var userAgent = __webpack_require__(28); + +module.exports = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent); + + +/***/ }), +/* 436 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padStart = (__webpack_require__(240).start); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padStart` method +// https://tc39.es/ecma262/#sec-string.prototype.padstart +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padStart: function padStart(maxLength /* , fillString = ' ' */) { + return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 437 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIndexedObject = __webpack_require__(12); +var toObject = __webpack_require__(39); +var toString = __webpack_require__(68); +var lengthOfArrayLike = __webpack_require__(63); + +var push = uncurryThis([].push); +var join = uncurryThis([].join); + +// `String.raw` method +// https://tc39.es/ecma262/#sec-string.raw +$({ target: 'String', stat: true }, { + raw: function raw(template) { + var rawTemplate = toIndexedObject(toObject(template).raw); + var literalSegments = lengthOfArrayLike(rawTemplate); + if (!literalSegments) return ''; + var argumentsLength = arguments.length; + var elements = []; + var i = 0; + while (true) { + push(elements, toString(rawTemplate[i++])); + if (i === literalSegments) return join(elements, ''); + if (i < argumentsLength) push(elements, toString(arguments[i])); + } + } +}); + + +/***/ }), +/* 438 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var repeat = __webpack_require__(241); + +// `String.prototype.repeat` method +// https://tc39.es/ecma262/#sec-string.prototype.repeat +$({ target: 'String', proto: true }, { + repeat: repeat +}); + + +/***/ }), +/* 439 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var advanceStringIndex = __webpack_require__(431); +var getMethod = __webpack_require__(29); +var getSubstitution = __webpack_require__(440); +var regExpExec = __webpack_require__(432); +var wellKnownSymbol = __webpack_require__(33); + +var REPLACE = wellKnownSymbol('replace'); +var max = Math.max; +var min = Math.min; +var concat = uncurryThis([].concat); +var push = uncurryThis([].push); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); + +var maybeToString = function (it) { + return it === undefined ? it : String(it); +}; + +// IE <= 11 replaces $0 with the whole match, as if it was $& +// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 +var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; +})(); + +// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string +var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + return false; +})(); + +var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$<a>') !== '7'; +}); + +// @@replace logic +fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + + return [ + // `String.prototype.replace` method + // https://tc39.es/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE); + return replacer + ? call(replacer, searchValue, O, replaceValue) + : call(nativeReplace, toString(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace + function (string, replaceValue) { + var rx = anObject(this); + var S = toString(string); + + if ( + typeof replaceValue == 'string' && + stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf(replaceValue, '$<') === -1 + ) { + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); + if (res.done) return res.value; + } + + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + + var global = rx.global; + var fullUnicode; + if (global) { + fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + + var results = []; + var result; + while (true) { + result = regExpExec(rx, S); + if (result === null) break; + + push(results, result); + if (!global) break; + + var matchStr = toString(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + + var matched = toString(result[0]); + var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); + var captures = []; + var replacement; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = concat([matched], captures, position, S); + if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); + replacement = toString(apply(replaceValue, undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + + return accumulatedResult + stringSlice(S, nextSourcePosition); + } + ]; +}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); + + +/***/ }), +/* 440 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var floor = Math.floor; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +// eslint-disable-next-line redos/no-vulnerable -- safe +var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; +var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + +// `GetSubstitution` abstract operation +// https://tc39.es/ecma262/#sec-getsubstitution +module.exports = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace(replacement, symbols, function (match, ch) { + var capture; + switch (charAt(ch, 0)) { + case '$': return '$'; + case '&': return matched; + case '`': return stringSlice(str, 0, position); + case "'": return stringSlice(str, tailPos); + case '<': + capture = namedCaptures[stringSlice(ch, 1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); +}; + + +/***/ }), +/* 441 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var getRegExpFlags = __webpack_require__(382); +var getSubstitution = __webpack_require__(440); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var REPLACE = wellKnownSymbol('replace'); +var $TypeError = TypeError; +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +var max = Math.max; + +// `String.prototype.replaceAll` method +// https://tc39.es/ecma262/#sec-string.prototype.replaceall +$({ target: 'String', proto: true }, { + replaceAll: function replaceAll(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement; + var position = 0; + var endOfLastMatch = 0; + var result = ''; + if (!isNullOrUndefined(searchValue)) { + IS_REG_EXP = isRegExp(searchValue); + if (IS_REG_EXP) { + flags = toString(requireObjectCoercible(getRegExpFlags(searchValue))); + if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes'); + } + replacer = getMethod(searchValue, REPLACE); + if (replacer) { + return call(replacer, searchValue, O, replaceValue); + } else if (IS_PURE && IS_REG_EXP) { + return replace(toString(O), searchValue, replaceValue); + } + } + string = toString(O); + searchString = toString(searchValue); + functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + searchLength = searchString.length; + advanceBy = max(1, searchLength); + position = indexOf(string, searchString); + while (position !== -1) { + replacement = functionalReplace + ? toString(replaceValue(searchString, position, string)) + : getSubstitution(searchString, string, position, [], undefined, replaceValue); + result += stringSlice(string, endOfLastMatch, position) + replacement; + endOfLastMatch = position + searchLength; + position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy); + } + if (endOfLastMatch < string.length) { + result += stringSlice(string, endOfLastMatch); + } + return result; + } +}); + + +/***/ }), +/* 442 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var sameValue = __webpack_require__(323); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); + +// @@search logic +fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH); + return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeSearch, rx, S); + + if (res.done) return res.value; + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; +}); + + +/***/ }), +/* 443 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); +var stickyHelpers = __webpack_require__(384); +var fails = __webpack_require__(7); + +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; +var MAX_UINT32 = 0xFFFFFFFF; +var min = Math.min; +var push = uncurryThis([].push); +var stringSlice = uncurryThis(''.slice); + +// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec +// Weex JS has frozen built-in prototypes, so use try / catch wrapper +var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { + // eslint-disable-next-line regexp/no-empty-group -- required for testing + var re = /(?:)/; + var originalExec = re.exec; + re.exec = function () { return originalExec.apply(this, arguments); }; + var result = 'ab'.split(re); + return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; +}); + +var BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' || + // eslint-disable-next-line regexp/no-empty-group -- required for testing + 'test'.split(/(?:)/, -1).length !== 4 || + 'ab'.split(/(?:ab)*/).length !== 2 || + '.'.split(/(.?)(.?)/).length !== 4 || + // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing + '.'.split(/()()/).length > 1 || + ''.split(/.?/).length; + +// @@split logic +fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) { + var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) { + return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit); + } : nativeSplit; + + return [ + // `String.prototype.split` method + // https://tc39.es/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = requireObjectCoercible(this); + var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT); + return splitter + ? call(splitter, separator, O, limit) + : call(internalSplit, toString(O), separator, limit); + }, + // `RegExp.prototype[@@split]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (string, limit) { + var rx = anObject(this); + var S = toString(string); + + if (!BUGGY) { + var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit); + if (res.done) return res.value; + } + + var C = speciesConstructor(rx, RegExp); + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + + (rx.multiline ? 'm' : '') + + (rx.unicode ? 'u' : '') + + (UNSUPPORTED_Y ? 'g' : 'y'); + // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + while (q < S.length) { + splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; + var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S); + var e; + if ( + z === null || + (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p + ) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + push(A, stringSlice(S, p, q)); + if (A.length === lim) return A; + for (var i = 1; i <= z.length - 1; i++) { + push(A, z[i]); + if (A.length === lim) return A; + } + q = p = e; + } + } + push(A, stringSlice(S, p)); + return A; + } + ]; +}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); + + +/***/ }), +/* 444 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var stringSlice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.startsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.startswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString(searchString); + return stringSlice(that, index, index + search.length) === search; + } +}); + + +/***/ }), +/* 445 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); + +var stringSlice = uncurryThis(''.slice); +var max = Math.max; +var min = Math.min; + +// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing +var FORCED = !''.substr || 'ab'.substr(-1) !== 'b'; + +// `String.prototype.substr` method +// https://tc39.es/ecma262/#sec-string.prototype.substr +$({ target: 'String', proto: true, forced: FORCED }, { + substr: function substr(start, length) { + var that = toString(requireObjectCoercible(this)); + var size = that.length; + var intStart = toIntegerOrInfinity(start); + var intLength, intEnd; + if (intStart === Infinity) intStart = 0; + if (intStart < 0) intStart = max(size + intStart, 0); + intLength = length === undefined ? size : toIntegerOrInfinity(length); + if (intLength <= 0 || intLength === Infinity) return ''; + intEnd = min(intStart + intLength, size); + return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd); + } +}); + + +/***/ }), +/* 446 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var $Array = Array; +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +// eslint-disable-next-line es/no-string-prototype-iswellformed-towellformed -- safe +var $toWellFormed = ''.toWellFormed; +var REPLACEMENT_CHARACTER = '\uFFFD'; + +// Safari bug +var TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () { + return call($toWellFormed, 1) !== '1'; +}); + +// `String.prototype.toWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, { + toWellFormed: function toWellFormed() { + var S = toString(requireObjectCoercible(this)); + if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S); + var length = S.length; + var result = $Array(length); + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i); + // unpaired surrogate + else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER; + // surrogate pair + else { + result[i] = charAt(S, i); + result[++i] = charAt(S, i); + } + } return join(result, ''); + } +}); + + +/***/ }), +/* 447 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $trim = (__webpack_require__(286).trim); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.trim` method +// https://tc39.es/ecma262/#sec-string.prototype.trim +$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } +}); + + +/***/ }), +/* 448 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var fails = __webpack_require__(7); +var whitespaces = __webpack_require__(287); + +var non = '\u200B\u0085\u180E'; + +// check that a method works with the correct list +// of whitespaces and has a correct name +module.exports = function (METHOD_NAME) { + return fails(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); +}; + + +/***/ }), +/* 449 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(450); +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, { + trimEnd: trimEnd +}); + + +/***/ }), +/* 450 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimRight` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, { + trimRight: trimEnd +}); + + +/***/ }), +/* 451 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimEnd = (__webpack_require__(286).end); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimEnd, trimRight }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// https://tc39.es/ecma262/#String.prototype.trimright +module.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() { + return $trimEnd(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimEnd; + + +/***/ }), +/* 452 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(453); +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimStart` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, { + trimStart: trimStart +}); + + +/***/ }), +/* 453 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimLeft` method +// https://tc39.es/ecma262/#sec-string.prototype.trimleft +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, { + trimLeft: trimStart +}); + + +/***/ }), +/* 454 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimStart = (__webpack_require__(286).start); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimStart, trimLeft }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// https://tc39.es/ecma262/#String.prototype.trimleft +module.exports = forcedStringTrimMethod('trimStart') ? function trimStart() { + return $trimStart(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimStart; + + +/***/ }), +/* 455 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.anchor` method +// https://tc39.es/ecma262/#sec-string.prototype.anchor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, { + anchor: function anchor(name) { + return createHTML(this, 'a', 'name', name); + } +}); + + +/***/ }), +/* 456 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var quot = /"/g; +var replace = uncurryThis(''.replace); + +// `CreateHTML` abstract operation +// https://tc39.es/ecma262/#sec-createhtml +module.exports = function (string, tag, attribute, value) { + var S = toString(requireObjectCoercible(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + replace(toString(value), quot, '"') + '"'; + return p1 + '>' + S + '</' + tag + '>'; +}; + + +/***/ }), +/* 457 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// check the existence of a method, lowercase +// of a tag and escaping quotes in arguments +module.exports = function (METHOD_NAME) { + return fails(function () { + var test = ''[METHOD_NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }); +}; + + +/***/ }), +/* 458 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.big` method +// https://tc39.es/ecma262/#sec-string.prototype.big +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, { + big: function big() { + return createHTML(this, 'big', '', ''); + } +}); + + +/***/ }), +/* 459 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.blink` method +// https://tc39.es/ecma262/#sec-string.prototype.blink +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, { + blink: function blink() { + return createHTML(this, 'blink', '', ''); + } +}); + + +/***/ }), +/* 460 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.bold` method +// https://tc39.es/ecma262/#sec-string.prototype.bold +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, { + bold: function bold() { + return createHTML(this, 'b', '', ''); + } +}); + + +/***/ }), +/* 461 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fixed` method +// https://tc39.es/ecma262/#sec-string.prototype.fixed +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, { + fixed: function fixed() { + return createHTML(this, 'tt', '', ''); + } +}); + + +/***/ }), +/* 462 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontcolor` method +// https://tc39.es/ecma262/#sec-string.prototype.fontcolor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, { + fontcolor: function fontcolor(color) { + return createHTML(this, 'font', 'color', color); + } +}); + + +/***/ }), +/* 463 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontsize` method +// https://tc39.es/ecma262/#sec-string.prototype.fontsize +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, { + fontsize: function fontsize(size) { + return createHTML(this, 'font', 'size', size); + } +}); + + +/***/ }), +/* 464 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.italics` method +// https://tc39.es/ecma262/#sec-string.prototype.italics +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, { + italics: function italics() { + return createHTML(this, 'i', '', ''); + } +}); + + +/***/ }), +/* 465 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.link` method +// https://tc39.es/ecma262/#sec-string.prototype.link +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, { + link: function link(url) { + return createHTML(this, 'a', 'href', url); + } +}); + + +/***/ }), +/* 466 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.small` method +// https://tc39.es/ecma262/#sec-string.prototype.small +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, { + small: function small() { + return createHTML(this, 'small', '', ''); + } +}); + + +/***/ }), +/* 467 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.strike` method +// https://tc39.es/ecma262/#sec-string.prototype.strike +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, { + strike: function strike() { + return createHTML(this, 'strike', '', ''); + } +}); + + +/***/ }), +/* 468 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sub` method +// https://tc39.es/ecma262/#sec-string.prototype.sub +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, { + sub: function sub() { + return createHTML(this, 'sub', '', ''); + } +}); + + +/***/ }), +/* 469 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sup` method +// https://tc39.es/ecma262/#sec-string.prototype.sup +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, { + sup: function sup() { + return createHTML(this, 'sup', '', ''); + } +}); + + +/***/ }), +/* 470 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float32', function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 471 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var DESCRIPTORS = __webpack_require__(6); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayBufferModule = __webpack_require__(207); +var anInstance = __webpack_require__(210); +var createPropertyDescriptor = __webpack_require__(11); +var createNonEnumerableProperty = __webpack_require__(43); +var isIntegralNumber = __webpack_require__(292); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var toOffset = __webpack_require__(473); +var toUint8Clamped = __webpack_require__(475); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var create = __webpack_require__(71); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var getOwnPropertyNames = (__webpack_require__(57).f); +var typedArrayFrom = __webpack_require__(476); +var forEach = (__webpack_require__(83).forEach); +var setSpecies = __webpack_require__(193); +var defineBuiltInAccessor = __webpack_require__(77); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var arrayFromConstructorAndList = __webpack_require__(198); +var InternalStateModule = __webpack_require__(51); +var inheritIfRequired = __webpack_require__(118); + +var getInternalState = InternalStateModule.get; +var setInternalState = InternalStateModule.set; +var enforceInternalState = InternalStateModule.enforce; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var RangeError = global.RangeError; +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataView = ArrayBufferModule.DataView; +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; +var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG; +var TypedArray = ArrayBufferViewCore.TypedArray; +var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype; +var isTypedArray = ArrayBufferViewCore.isTypedArray; +var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; +var WRONG_LENGTH = 'Wrong length'; + +var addGetter = function (it, key) { + defineBuiltInAccessor(it, key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var isArrayBuffer = function (it) { + var klass; + return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer'; +}; + +var isTypedArrayIndex = function (target, key) { + return isTypedArray(target) + && !isSymbol(key) + && key in target + && isIntegralNumber(+key) + && key >= 0; +}; + +var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { + key = toPropertyKey(key); + return isTypedArrayIndex(target, key) + ? createPropertyDescriptor(2, target[key]) + : nativeGetOwnPropertyDescriptor(target, key); +}; + +var wrappedDefineProperty = function defineProperty(target, key, descriptor) { + key = toPropertyKey(key); + if (isTypedArrayIndex(target, key) + && isObject(descriptor) + && hasOwn(descriptor, 'value') + && !hasOwn(descriptor, 'get') + && !hasOwn(descriptor, 'set') + // TODO: add validation descriptor w/o calling accessors + && !descriptor.configurable + && (!hasOwn(descriptor, 'writable') || descriptor.writable) + && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable) + ) { + target[key] = descriptor.value; + return target; + } return nativeDefineProperty(target, key, descriptor); +}; + +if (DESCRIPTORS) { + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor; + definePropertyModule.f = wrappedDefineProperty; + addGetter(TypedArrayPrototype, 'buffer'); + addGetter(TypedArrayPrototype, 'byteOffset'); + addGetter(TypedArrayPrototype, 'byteLength'); + addGetter(TypedArrayPrototype, 'length'); + } + + $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, + defineProperty: wrappedDefineProperty + }); + + module.exports = function (TYPE, wrapper, CLAMPED) { + var BYTES = TYPE.match(/\d+/)[0] / 8; + var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + TYPE; + var SETTER = 'set' + TYPE; + var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME]; + var TypedArrayConstructor = NativeTypedArrayConstructor; + var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; + var exported = {}; + + var getter = function (that, index) { + var data = getInternalState(that); + return data.view[GETTER](index * BYTES + data.byteOffset, true); + }; + + var setter = function (that, index, value) { + var data = getInternalState(that); + data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true); + }; + + var addElement = function (that, index) { + nativeDefineProperty(that, index, { + get: function () { + return getter(this, index); + }, + set: function (value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + TypedArrayConstructor = wrapper(function (that, data, offset, $length) { + anInstance(that, TypedArrayConstructorPrototype); + var index = 0; + var byteOffset = 0; + var buffer, byteLength, length; + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new ArrayBuffer(byteLength); + } else if (isArrayBuffer(data)) { + buffer = data; + byteOffset = toOffset(offset, BYTES); + var $len = data.byteLength; + if ($length === undefined) { + if ($len % BYTES) throw new RangeError(WRONG_LENGTH); + byteLength = $len - byteOffset; + if (byteLength < 0) throw new RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH); + } + length = byteLength / BYTES; + } else if (isTypedArray(data)) { + return arrayFromConstructorAndList(TypedArrayConstructor, data); + } else { + return call(typedArrayFrom, TypedArrayConstructor, data); + } + setInternalState(that, { + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength, + length: length, + view: new DataView(buffer) + }); + while (index < length) addElement(that, index++); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype); + } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) { + TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { + anInstance(dummy, TypedArrayConstructorPrototype); + return inheritIfRequired(function () { + if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); + if (isArrayBuffer(data)) return $length !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) + : typedArrayOffset !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) + : new NativeTypedArrayConstructor(data); + if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data); + return call(typedArrayFrom, TypedArrayConstructor, data); + }(), dummy, TypedArrayConstructor); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { + if (!(key in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); + } + }); + TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; + } + + if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); + } + + enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor; + + if (TYPED_ARRAY_TAG) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); + } + + var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor; + + exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; + + $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported); + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); + } + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); + } + + setSpecies(CONSTRUCTOR_NAME); + }; +} else module.exports = function () { /* empty */ }; + + +/***/ }), +/* 472 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-new -- required for testing */ +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var NATIVE_ARRAY_BUFFER_VIEWS = (__webpack_require__(217).NATIVE_ARRAY_BUFFER_VIEWS); + +var ArrayBuffer = global.ArrayBuffer; +var Int8Array = global.Int8Array; + +module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () { + Int8Array(1); +}) || !fails(function () { + new Int8Array(-1); +}) || !checkCorrectnessOfIteration(function (iterable) { + new Int8Array(); + new Int8Array(null); + new Int8Array(1.5); + new Int8Array(iterable); +}, true) || fails(function () { + // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill + return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1; +}); + + +/***/ }), +/* 473 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPositiveInteger = __webpack_require__(474); + +var $RangeError = RangeError; + +module.exports = function (it, BYTES) { + var offset = toPositiveInteger(it); + if (offset % BYTES) throw new $RangeError('Wrong offset'); + return offset; +}; + + +/***/ }), +/* 474 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +module.exports = function (it) { + var result = toIntegerOrInfinity(it); + if (result < 0) throw new $RangeError("The argument can't be less than 0"); + return result; +}; + + +/***/ }), +/* 475 */ +/***/ (function(module) { + + +var round = Math.round; + +module.exports = function (it) { + var value = round(it); + return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF; +}; + + +/***/ }), +/* 476 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var aConstructor = __webpack_require__(220); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var isArrayIteratorMethod = __webpack_require__(131); +var isBigIntArray = __webpack_require__(477); +var aTypedArrayConstructor = (__webpack_require__(217).aTypedArrayConstructor); +var toBigInt = __webpack_require__(478); + +module.exports = function from(source /* , mapfn, thisArg */) { + var C = aConstructor(this); + var O = toObject(source); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iteratorMethod = getIteratorMethod(O); + var i, length, result, thisIsBigIntArray, value, step, iterator, next; + if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + O = []; + while (!(step = call(next, iterator)).done) { + O.push(step.value); + } + } + if (mapping && argumentsLength > 2) { + mapfn = bind(mapfn, arguments[2]); + } + length = lengthOfArrayLike(O); + result = new (aTypedArrayConstructor(C))(length); + thisIsBigIntArray = isBigIntArray(result); + for (i = 0; length > i; i++) { + value = mapping ? mapfn(O[i], i) : O[i]; + // FF30- typed arrays doesn't properly convert objects to typed array values + result[i] = thisIsBigIntArray ? toBigInt(value) : +value; + } + return result; +}; + + +/***/ }), +/* 477 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +module.exports = function (it) { + var klass = classof(it); + return klass === 'BigInt64Array' || klass === 'BigUint64Array'; +}; + + +/***/ }), +/* 478 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); + +var $TypeError = TypeError; + +// `ToBigInt` abstract operation +// https://tc39.es/ecma262/#sec-tobigint +module.exports = function (argument) { + var prim = toPrimitive(argument, 'number'); + if (typeof prim == 'number') throw new $TypeError("Can't convert number to bigint"); + // eslint-disable-next-line es/no-bigint -- safe + return BigInt(prim); +}; + + +/***/ }), +/* 479 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float64Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float64', function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 480 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int8', function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 481 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int16', function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 482 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int32', function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 483 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 484 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8ClampedArray` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}, true); + + +/***/ }), +/* 485 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint16', function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 486 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint32', function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 487 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.at` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at +exportTypedArrayMethod('at', function at(index) { + var O = aTypedArray(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; +}); + + +/***/ }), +/* 488 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var $ArrayCopyWithin = __webpack_require__(144); + +var u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin +exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) { + return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined); +}); + + +/***/ }), +/* 489 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $every = (__webpack_require__(83).every); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.every` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every +exportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) { + return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 490 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $fill = __webpack_require__(149); +var toBigInt = __webpack_require__(478); +var classof = __webpack_require__(69); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var slice = uncurryThis(''.slice); + +// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18 +var CONVERSION_BUG = fails(function () { + var count = 0; + // eslint-disable-next-line es/no-typed-arrays -- safe + new Int8Array(2).fill({ valueOf: function () { return count++; } }); + return count !== 1; +}); + +// `%TypedArray%.prototype.fill` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill +exportTypedArrayMethod('fill', function fill(value /* , start, end */) { + var length = arguments.length; + aTypedArray(this); + var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value; + return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined); +}, CONVERSION_BUG); + + +/***/ }), +/* 491 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $filter = (__webpack_require__(83).filter); +var fromSpeciesAndList = __webpack_require__(492); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.filter` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter +exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) { + var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return fromSpeciesAndList(this, list); +}); + + +/***/ }), +/* 492 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arrayFromConstructorAndList = __webpack_require__(198); +var typedArraySpeciesConstructor = __webpack_require__(493); + +module.exports = function (instance, list) { + return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list); +}; + + +/***/ }), +/* 493 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var speciesConstructor = __webpack_require__(219); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// a part of `TypedArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#typedarray-species-create +module.exports = function (originalArray) { + return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray))); +}; + + +/***/ }), +/* 494 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $find = (__webpack_require__(83).find); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.find` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find +exportTypedArrayMethod('find', function find(predicate /* , thisArg */) { + return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 495 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findIndex = (__webpack_require__(83).findIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex +exportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) { + return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 496 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLast = (__webpack_require__(154).findLast); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLast` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast +exportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) { + return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 497 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLastIndex = (__webpack_require__(154).findLastIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex +exportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) { + return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 498 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $forEach = (__webpack_require__(83).forEach); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.forEach` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach +exportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) { + $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 499 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var exportTypedArrayStaticMethod = (__webpack_require__(217).exportTypedArrayStaticMethod); +var typedArrayFrom = __webpack_require__(476); + +// `%TypedArray%.from` method +// https://tc39.es/ecma262/#sec-%typedarray%.from +exportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 500 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $includes = (__webpack_require__(59).includes); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.includes` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes +exportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) { + return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 501 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $indexOf = (__webpack_require__(59).indexOf); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof +exportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) { + return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 502 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayIterators = __webpack_require__(168); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var Uint8Array = global.Uint8Array; +var arrayValues = uncurryThis(ArrayIterators.values); +var arrayKeys = uncurryThis(ArrayIterators.keys); +var arrayEntries = uncurryThis(ArrayIterators.entries); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var TypedArrayPrototype = Uint8Array && Uint8Array.prototype; + +var GENERIC = !fails(function () { + TypedArrayPrototype[ITERATOR].call([1]); +}); + +var ITERATOR_IS_VALUES = !!TypedArrayPrototype + && TypedArrayPrototype.values + && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values + && TypedArrayPrototype.values.name === 'values'; + +var typedArrayValues = function values() { + return arrayValues(aTypedArray(this)); +}; + +// `%TypedArray%.prototype.entries` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries +exportTypedArrayMethod('entries', function entries() { + return arrayEntries(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.keys` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys +exportTypedArrayMethod('keys', function keys() { + return arrayKeys(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.values` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values +exportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); +// `%TypedArray%.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator +exportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); + + +/***/ }), +/* 503 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $join = uncurryThis([].join); + +// `%TypedArray%.prototype.join` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join +exportTypedArrayMethod('join', function join(separator) { + return $join(aTypedArray(this), separator); +}); + + +/***/ }), +/* 504 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var apply = __webpack_require__(94); +var $lastIndexOf = __webpack_require__(175); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof +exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { + var length = arguments.length; + return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]); +}); + + +/***/ }), +/* 505 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $map = (__webpack_require__(83).map); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.map` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map +exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) { + return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { + return new (typedArraySpeciesConstructor(O))(length); + }); +}); + + +/***/ }), +/* 506 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod; + +// `%TypedArray%.of` method +// https://tc39.es/ecma262/#sec-%typedarray%.of +exportTypedArrayStaticMethod('of', function of(/* ...items */) { + var index = 0; + var length = arguments.length; + var result = new (aTypedArrayConstructor(this))(length); + while (length > index) result[index] = arguments[index++]; + return result; +}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 507 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduce = (__webpack_require__(181).left); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduce` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce +exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 508 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduceRight = (__webpack_require__(181).right); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright +exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 509 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var floor = Math.floor; + +// `%TypedArray%.prototype.reverse` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse +exportTypedArrayMethod('reverse', function reverse() { + var that = this; + var length = aTypedArray(that).length; + var middle = floor(length / 2); + var index = 0; + var value; + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } return that; +}); + + +/***/ }), +/* 510 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toOffset = __webpack_require__(473); +var toIndexedObject = __webpack_require__(39); +var fails = __webpack_require__(7); + +var RangeError = global.RangeError; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var $set = Int8ArrayPrototype && Int8ArrayPrototype.set; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + var array = new Uint8ClampedArray(2); + call($set, array, { length: 1, 0: 3 }, 1); + return array[1] !== 3; +}); + +// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other +var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () { + var array = new Int8Array(2); + array.set(1); + array.set('2', 1); + return array[0] !== 0 || array[1] !== 2; +}); + +// `%TypedArray%.prototype.set` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set +exportTypedArrayMethod('set', function set(arrayLike /* , offset */) { + aTypedArray(this); + var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); + var src = toIndexedObject(arrayLike); + if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset); + var length = this.length; + var len = lengthOfArrayLike(src); + var index = 0; + if (len + offset > length) throw new RangeError('Wrong length'); + while (index < len) this[offset + index] = src[index++]; +}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG); + + +/***/ }), +/* 511 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var typedArraySpeciesConstructor = __webpack_require__(493); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + new Int8Array(1).slice(); +}); + +// `%TypedArray%.prototype.slice` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice +exportTypedArrayMethod('slice', function slice(start, end) { + var list = arraySlice(aTypedArray(this), start, end); + var C = typedArraySpeciesConstructor(this); + var index = 0; + var length = list.length; + var result = new C(length); + while (length > index) result[index] = list[index++]; + return result; +}, FORCED); + + +/***/ }), +/* 512 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $some = (__webpack_require__(83).some); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.some` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some +exportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) { + return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 513 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var aCallable = __webpack_require__(30); +var internalSort = __webpack_require__(188); +var ArrayBufferViewCore = __webpack_require__(217); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var Uint16Array = global.Uint16Array; +var nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort); + +// WebKit +var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () { + nativeSort(new Uint16Array(2), null); +}) && fails(function () { + nativeSort(new Uint16Array(2), {}); +})); + +var STABLE_SORT = !!nativeSort && !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 74; + if (FF) return FF < 67; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 602; + + var array = new Uint16Array(516); + var expected = Array(516); + var index, mod; + + for (index = 0; index < 516; index++) { + mod = index % 4; + array[index] = 515 - index; + expected[index] = index - 2 * mod + 3; + } + + nativeSort(array, function (a, b) { + return (a / 4 | 0) - (b / 4 | 0); + }); + + for (index = 0; index < 516; index++) { + if (array[index] !== expected[index]) return true; + } +}); + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (comparefn !== undefined) return +comparefn(x, y) || 0; + // eslint-disable-next-line no-self-compare -- NaN check + if (y !== y) return -1; + // eslint-disable-next-line no-self-compare -- NaN check + if (x !== x) return 1; + if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1; + return x > y; + }; +}; + +// `%TypedArray%.prototype.sort` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort +exportTypedArrayMethod('sort', function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + if (STABLE_SORT) return nativeSort(this, comparefn); + + return internalSort(aTypedArray(this), getSortCompare(comparefn)); +}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS); + + +/***/ }), +/* 514 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var toLength = __webpack_require__(64); +var toAbsoluteIndex = __webpack_require__(60); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.subarray` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray +exportTypedArrayMethod('subarray', function subarray(begin, end) { + var O = aTypedArray(this); + var length = O.length; + var beginIndex = toAbsoluteIndex(begin, length); + var C = typedArraySpeciesConstructor(O); + return new C( + O.buffer, + O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, + toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex) + ); +}); + + +/***/ }), +/* 515 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var ArrayBufferViewCore = __webpack_require__(217); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var Int8Array = global.Int8Array; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $toLocaleString = [].toLocaleString; + +// iOS Safari 6.x fails here +var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () { + $toLocaleString.call(new Int8Array(1)); +}); + +var FORCED = fails(function () { + return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString(); +}) || !fails(function () { + Int8Array.prototype.toLocaleString.call([1, 2]); +}); + +// `%TypedArray%.prototype.toLocaleString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring +exportTypedArrayMethod('toLocaleString', function toLocaleString() { + return apply( + $toLocaleString, + TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this), + arraySlice(arguments) + ); +}, FORCED); + + +/***/ }), +/* 516 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayToReversed = __webpack_require__(196); +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// `%TypedArray%.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed +exportTypedArrayMethod('toReversed', function toReversed() { + return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this)); +}); + + +/***/ }), +/* 517 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var arrayFromConstructorAndList = __webpack_require__(198); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort); + +// `%TypedArray%.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted +exportTypedArrayMethod('toSorted', function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = aTypedArray(this); + var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O); + return sort(A, compareFn); +}); + + +/***/ }), +/* 518 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var exportTypedArrayMethod = (__webpack_require__(217).exportTypedArrayMethod); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); + +var Uint8Array = global.Uint8Array; +var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {}; +var arrayToString = [].toString; +var join = uncurryThis([].join); + +if (fails(function () { arrayToString.call({}); })) { + arrayToString = function toString() { + return join(this); + }; +} + +var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString; + +// `%TypedArray%.prototype.toString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring +exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD); + + +/***/ }), +/* 519 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayWith = __webpack_require__(205); +var ArrayBufferViewCore = __webpack_require__(217); +var isBigIntArray = __webpack_require__(477); +var toIntegerOrInfinity = __webpack_require__(61); +var toBigInt = __webpack_require__(478); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var PROPER_ORDER = !!function () { + try { + // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing + new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } }); + } catch (error) { + // some early implementations, like WebKit, does not follow the final semantic + // https://github.com/tc39/proposal-change-array-by-copy/pull/86 + return error === 8; + } +}(); + +// `%TypedArray%.prototype.with` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with +exportTypedArrayMethod('with', { 'with': function (index, value) { + var O = aTypedArray(this); + var relativeIndex = toIntegerOrInfinity(index); + var actualValue = isBigIntArray(O) ? toBigInt(value) : +value; + return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue); +} }['with'], !PROPER_ORDER); + + +/***/ }), +/* 520 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var stringSlice = uncurryThis(''.slice); + +var hex2 = /^[\da-f]{2}$/i; +var hex4 = /^[\da-f]{4}$/i; + +// `unescape` method +// https://tc39.es/ecma262/#sec-unescape-string +$({ global: true }, { + unescape: function unescape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, part; + while (index < length) { + chr = charAt(str, index++); + if (chr === '%') { + if (charAt(str, index) === 'u') { + part = stringSlice(str, index + 1, index + 5); + if (exec(hex4, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 5; + continue; + } + } else { + part = stringSlice(str, index, index + 2); + if (exec(hex2, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 2; + continue; + } + } + } + result += chr; + } return result; + } +}); + + +/***/ }), +/* 521 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(522); + + +/***/ }), +/* 522 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var FREEZING = __webpack_require__(259); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var InternalMetadataModule = __webpack_require__(256); +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); +var isObject = __webpack_require__(20); +var enforceInternalState = (__webpack_require__(51).enforce); +var fails = __webpack_require__(7); +var NATIVE_WEAK_MAP = __webpack_require__(52); + +var $Object = Object; +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray = Array.isArray; +// eslint-disable-next-line es/no-object-isextensible -- safe +var isExtensible = $Object.isExtensible; +// eslint-disable-next-line es/no-object-isfrozen -- safe +var isFrozen = $Object.isFrozen; +// eslint-disable-next-line es/no-object-issealed -- safe +var isSealed = $Object.isSealed; +// eslint-disable-next-line es/no-object-freeze -- safe +var freeze = $Object.freeze; +// eslint-disable-next-line es/no-object-seal -- safe +var seal = $Object.seal; + +var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; +var InternalWeakMap; + +var wrapper = function (init) { + return function WeakMap() { + return init(this, arguments.length ? arguments[0] : undefined); + }; +}; + +// `WeakMap` constructor +// https://tc39.es/ecma262/#sec-weakmap-constructor +var $WeakMap = collection('WeakMap', wrapper, collectionWeak); +var WeakMapPrototype = $WeakMap.prototype; +var nativeSet = uncurryThis(WeakMapPrototype.set); + +// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them +var hasMSEdgeFreezingBug = function () { + return FREEZING && fails(function () { + var frozenArray = freeze([]); + nativeSet(new $WeakMap(), frozenArray, 1); + return !isFrozen(frozenArray); + }); +}; + +// IE11 WeakMap frozen keys fix +// We can't use feature detection because it crash some old IE builds +// https://github.com/zloirock/core-js/issues/485 +if (NATIVE_WEAK_MAP) if (IS_IE11) { + InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); + InternalMetadataModule.enable(); + var nativeDelete = uncurryThis(WeakMapPrototype['delete']); + var nativeHas = uncurryThis(WeakMapPrototype.has); + var nativeGet = uncurryThis(WeakMapPrototype.get); + defineBuiltIns(WeakMapPrototype, { + 'delete': function (key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeDelete(this, key) || state.frozen['delete'](key); + } return nativeDelete(this, key); + }, + has: function has(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) || state.frozen.has(key); + } return nativeHas(this, key); + }, + get: function get(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key); + } return nativeGet(this, key); + }, + set: function set(key, value) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value); + } else nativeSet(this, key, value); + return this; + } + }); +// Chakra Edge frozen keys fix +} else if (hasMSEdgeFreezingBug()) { + defineBuiltIns(WeakMapPrototype, { + set: function set(key, value) { + var arrayIntegrityLevel; + if (isArray(key)) { + if (isFrozen(key)) arrayIntegrityLevel = freeze; + else if (isSealed(key)) arrayIntegrityLevel = seal; + } + nativeSet(this, key, value); + if (arrayIntegrityLevel) arrayIntegrityLevel(key); + return this; + } + }); +} + + +/***/ }), +/* 523 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var getWeakData = (__webpack_require__(256).getWeakData); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var iterate = __webpack_require__(130); +var ArrayIterationModule = __webpack_require__(83); +var hasOwn = __webpack_require__(38); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var splice = uncurryThis([].splice); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } +}; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } +}; + + +/***/ }), +/* 524 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(525); + + +/***/ }), +/* 525 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); + +// `WeakSet` constructor +// https://tc39.es/ecma262/#sec-weakset-constructor +collection('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionWeak); + + +/***/ }), +/* 526 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var c2i = (__webpack_require__(527).c2i); + +var disallowed = /[^\d+/a-z]/i; +var whitespaces = /[\t\n\f\r ]+/g; +var finalEq = /[=]{1,2}$/; + +var $atob = getBuiltIn('atob'); +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var exec = uncurryThis(disallowed.exec); + +var BASIC = !!$atob && !fails(function () { + return $atob('aGk=') !== 'hi'; +}); + +var NO_SPACES_IGNORE = BASIC && fails(function () { + return $atob(' ') !== ''; +}); + +var NO_ENCODING_CHECK = BASIC && !fails(function () { + $atob('a'); +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $atob(); +}); + +var WRONG_ARITY = BASIC && $atob.length !== 1; + +var FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY; + +// `atob` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob +$({ global: true, bind: true, enumerable: true, forced: FORCED }, { + atob: function atob(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, global, data); + var string = replace(toString(data), whitespaces, ''); + var output = ''; + var position = 0; + var bc = 0; + var length, chr, bs; + if (string.length % 4 === 0) { + string = replace(string, finalEq, ''); + } + length = string.length; + if (length % 4 === 1 || exec(disallowed, string)) { + throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError'); + } + while (position < length) { + chr = charAt(string, position++); + bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr]; + if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6)); + } return output; + } +}); + + +/***/ }), +/* 527 */ +/***/ (function(module) { + + +var commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; +var base64Alphabet = commonAlphabet + '+/'; +var base64UrlAlphabet = commonAlphabet + '-_'; + +var inverse = function (characters) { + // TODO: use `Object.create(null)` in `core-js@4` + var result = {}; + var index = 0; + for (; index < 64; index++) result[characters.charAt(index)] = index; + return result; +}; + +module.exports = { + i2c: base64Alphabet, + c2i: inverse(base64Alphabet), + i2cUrl: base64UrlAlphabet, + c2iUrl: inverse(base64UrlAlphabet) +}; + + +/***/ }), +/* 528 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var i2c = (__webpack_require__(527).i2c); + +var $btoa = getBuiltIn('btoa'); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); + +var BASIC = !!$btoa && !fails(function () { + return $btoa('hi') !== 'aGk='; +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $btoa(); +}); + +var WRONG_ARG_CONVERSION = BASIC && fails(function () { + return $btoa(null) !== 'bnVsbA=='; +}); + +var WRONG_ARITY = BASIC && $btoa.length !== 1; + +// `btoa` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa +$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, { + btoa: function btoa(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC) return call($btoa, global, toString(data)); + var string = toString(data); + var output = ''; + var position = 0; + var map = i2c; + var block, charCode; + while (charAt(string, position) || (map = '=', position % 1)) { + charCode = charCodeAt(string, position += 3 / 4); + if (charCode > 0xFF) { + throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError'); + } + block = block << 8 | charCode; + output += charAt(map, 63 & block >> 8 - position % 1 * 8); + } return output; + } +}); + + +/***/ }), +/* 529 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var forEach = __webpack_require__(160); +var createNonEnumerableProperty = __webpack_require__(43); + +var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype); + } +} + +handlePrototype(DOMTokenListPrototype); + + +/***/ }), +/* 530 */ +/***/ (function(module) { + + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +module.exports = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + + +/***/ }), +/* 531 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` +var documentCreateElement = __webpack_require__(42); + +var classList = documentCreateElement('span').classList; +var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype; + +module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype; + + +/***/ }), +/* 532 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var ArrayIteratorMethods = __webpack_require__(168); +var createNonEnumerableProperty = __webpack_require__(43); +var setToStringTag = __webpack_require__(82); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayValues = ArrayIteratorMethods.values; + +var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + setToStringTag(CollectionPrototype, COLLECTION_NAME, true); + if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME); +} + +handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); + + +/***/ }), +/* 533 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var tryNodeRequire = __webpack_require__(229); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var errorToString = __webpack_require__(125); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var InternalStateModule = __webpack_require__(51); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var DATA_CLONE_ERR = 'DATA_CLONE_ERR'; +var Error = getBuiltIn('Error'); +// NodeJS < 17.0 does not expose `DOMException` to global +var NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () { + try { + // NodeJS < 15.0 does not expose `MessageChannel` to global + var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel; + // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe + new MessageChannel().port1.postMessage(new WeakMap()); + } catch (error) { + if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor; + } +})(); +var NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype; +var ErrorPrototype = Error.prototype; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION); +var HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); + +var codeFor = function (name) { + return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0; +}; + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var code = codeFor(name); + setInternalState(this, { + type: DOM_EXCEPTION, + name: name, + message: message, + code: code + }); + if (!DESCRIPTORS) { + this.name = name; + this.message = message; + this.code = code; + } + if (HAS_STACK) { + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + } +}; + +var DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype); + +var createGetterDescriptor = function (get) { + return { enumerable: true, configurable: true, get: get }; +}; + +var getterFor = function (key) { + return createGetterDescriptor(function () { + return getInternalState(this)[key]; + }); +}; + +if (DESCRIPTORS) { + // `DOMException.prototype.code` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code')); + // `DOMException.prototype.message` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message')); + // `DOMException.prototype.name` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name')); +} + +defineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException)); + +// FF36- DOMException is a function, but can't be constructed +var INCORRECT_CONSTRUCTOR = fails(function () { + return !(new NativeDOMException() instanceof Error); +}); + +// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs +var INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () { + return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1'; +}); + +// Deno 1.6.3- DOMException.prototype.code just missed +var INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () { + return new NativeDOMException(1, 'DataCloneError').code !== 25; +}); + +// Deno 1.6.3- DOMException constants just missed +var MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR + || NativeDOMException[DATA_CLONE_ERR] !== 25 + || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25; + +var FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR; + +// `DOMException` constructor +// https://webidl.spec.whatwg.org/#idl-DOMException +$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, { + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) { + defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString); +} + +if (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) { + defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () { + return codeFor(anObject(this).name); + })); +} + +// `DOMException` constants +for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + var descriptor = createPropertyDescriptor(6, constant.c); + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, descriptor); + } + if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) { + defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor); + } +} + + +/***/ }), +/* 534 */ +/***/ (function(module) { + + +module.exports = { + IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 }, + DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 }, + HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 }, + WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 }, + InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 }, + NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 }, + NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 }, + NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 }, + NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 }, + InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 }, + InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 }, + SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 }, + InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 }, + NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 }, + InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 }, + ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 }, + TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 }, + SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 }, + NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 }, + AbortError: { s: 'ABORT_ERR', c: 20, m: 1 }, + URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 }, + QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 }, + TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 }, + InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 }, + DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 } +}; + + +/***/ }), +/* 535 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var Error = getBuiltIn('Error'); +var NativeDOMException = getBuiltIn(DOM_EXCEPTION); + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var that = new NativeDOMException(message, name); + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + inheritIfRequired(that, this, $DOMException); + return that; +}; + +var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype; + +var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); +var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION); + +// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it +// https://github.com/Jarred-Sumner/bun/issues/399 +var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable); + +var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK; + +// `DOMException` constructor patch for `.stack` where it's required +// https://webidl.spec.whatwg.org/#es-DOMException-specialness +$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) { + if (!IS_PURE) { + defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException)); + } + + for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c)); + } + } +} + + +/***/ }), +/* 536 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var setToStringTag = __webpack_require__(82); + +var DOM_EXCEPTION = 'DOMException'; + +// `DOMException.prototype[@@toStringTag]` property +setToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION); + + +/***/ }), +/* 537 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(538); +__webpack_require__(539); + + +/***/ }), +/* 538 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var clearImmediate = (__webpack_require__(341).clear); + +// `clearImmediate` method +// http://w3c.github.io/setImmediate/#si-clearImmediate +$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, { + clearImmediate: clearImmediate +}); + + +/***/ }), +/* 539 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setTask = (__webpack_require__(341).set); +var schedulersFix = __webpack_require__(540); + +// https://github.com/oven-sh/bun/issues/1633 +var setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask; + +// `setImmediate` method +// http://w3c.github.io/setImmediate/#si-setImmediate +$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, { + setImmediate: setImmediate +}); + + +/***/ }), +/* 540 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var isCallable = __webpack_require__(21); +var ENGINE_IS_BUN = __webpack_require__(541); +var USER_AGENT = __webpack_require__(28); +var arraySlice = __webpack_require__(76); +var validateArgumentsLength = __webpack_require__(342); + +var Function = global.Function; +// dirty IE9- and Bun 0.3.0- checks +var WRAP = /MSIE .\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () { + var version = global.Bun.version.split('.'); + return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0'); +})(); + +// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers +// https://github.com/oven-sh/bun/issues/1633 +module.exports = function (scheduler, hasTimeArg) { + var firstParamIndex = hasTimeArg ? 2 : 1; + return WRAP ? function (handler, timeout /* , ...arguments */) { + var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex; + var fn = isCallable(handler) ? handler : Function(handler); + var params = boundArgs ? arraySlice(arguments, firstParamIndex) : []; + var callback = boundArgs ? function () { + apply(fn, this, params); + } : fn; + return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback); + } : scheduler; +}; + + +/***/ }), +/* 541 */ +/***/ (function(module) { + + +/* global Bun -- Bun case */ +module.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string'; + + +/***/ }), +/* 542 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var globalThis = __webpack_require__(4); +var microtask = __webpack_require__(344); +var aCallable = __webpack_require__(30); +var validateArgumentsLength = __webpack_require__(342); +var fails = __webpack_require__(7); +var DESCRIPTORS = __webpack_require__(6); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9249 +var WRONG_ARITY = fails(function () { + // getOwnPropertyDescriptor for prevent experimental warning in Node 11 + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1; +}); + +// `queueMicrotask` method +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask +$({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, { + queueMicrotask: function queueMicrotask(fn) { + validateArgumentsLength(arguments.length, 1); + microtask(aCallable(fn)); + } +}); + + +/***/ }), +/* 543 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var defineBuiltInAccessor = __webpack_require__(77); +var DESCRIPTORS = __webpack_require__(6); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var INCORRECT_VALUE = global.self !== global; + +// `self` getter +// https://html.spec.whatwg.org/multipage/window-object.html#dom-self +try { + if (DESCRIPTORS) { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var descriptor = Object.getOwnPropertyDescriptor(global, 'self'); + // some engines have `self`, but with incorrect descriptor + // https://github.com/denoland/deno/issues/15765 + if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) { + defineBuiltInAccessor(global, 'self', { + get: function self() { + return global; + }, + set: function self(value) { + if (this !== global) throw new $TypeError('Illegal invocation'); + defineProperty(global, 'self', { + value: value, + writable: true, + configurable: true, + enumerable: true + }); + }, + configurable: true, + enumerable: true + }); + } + } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, { + self: global + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 544 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var uid = __webpack_require__(40); +var isCallable = __webpack_require__(21); +var isConstructor = __webpack_require__(89); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var iterate = __webpack_require__(130); +var anObject = __webpack_require__(46); +var classof = __webpack_require__(69); +var hasOwn = __webpack_require__(38); +var createProperty = __webpack_require__(141); +var createNonEnumerableProperty = __webpack_require__(43); +var lengthOfArrayLike = __webpack_require__(63); +var validateArgumentsLength = __webpack_require__(342); +var getRegExpFlags = __webpack_require__(382); +var MapHelpers = __webpack_require__(262); +var SetHelpers = __webpack_require__(399); +var setIterate = __webpack_require__(401); +var detachTransferable = __webpack_require__(228); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var Object = global.Object; +var Array = global.Array; +var Date = global.Date; +var Error = global.Error; +var TypeError = global.TypeError; +var PerformanceMark = global.PerformanceMark; +var DOMException = getBuiltIn('DOMException'); +var Map = MapHelpers.Map; +var mapHas = MapHelpers.has; +var mapGet = MapHelpers.get; +var mapSet = MapHelpers.set; +var Set = SetHelpers.Set; +var setAdd = SetHelpers.add; +var setHas = SetHelpers.has; +var objectKeys = getBuiltIn('Object', 'keys'); +var push = uncurryThis([].push); +var thisBooleanValue = uncurryThis(true.valueOf); +var thisNumberValue = uncurryThis(1.0.valueOf); +var thisStringValue = uncurryThis(''.valueOf); +var thisTimeValue = uncurryThis(Date.prototype.getTime); +var PERFORMANCE_MARK = uid('structuredClone'); +var DATA_CLONE_ERROR = 'DataCloneError'; +var TRANSFERRING = 'Transferring'; + +var checkBasicSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var set1 = new global.Set([7]); + var set2 = structuredCloneImplementation(set1); + var number = structuredCloneImplementation(Object(7)); + return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7; + }) && structuredCloneImplementation; +}; + +var checkErrorsCloning = function (structuredCloneImplementation, $Error) { + return !fails(function () { + var error = new $Error(); + var test = structuredCloneImplementation({ a: error, b: error }); + return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack); + }); +}; + +// https://github.com/whatwg/html/pull/5749 +var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 })); + return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3; + }); +}; + +// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+ +// FF<103 and Safari implementations can't clone errors +// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604 +// FF103 can clone errors, but `.stack` of clone is an empty string +// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762 +// FF104+ fixed it on usual errors, but not on DOMExceptions +// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321 +// Chrome <102 returns `null` if cloned object contains multiple references to one error +// https://bugs.chromium.org/p/v8/issues/detail?id=12542 +// NodeJS implementation can't clone DOMExceptions +// https://github.com/nodejs/node/issues/41038 +// only FF103+ supports new (html/5749) error cloning semantic +var nativeStructuredClone = global.structuredClone; + +var FORCED_REPLACEMENT = IS_PURE + || !checkErrorsCloning(nativeStructuredClone, Error) + || !checkErrorsCloning(nativeStructuredClone, DOMException) + || !checkNewErrorsCloningSemantic(nativeStructuredClone); + +// Chrome 82+, Safari 14.1+, Deno 1.11+ +// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException` +// Chrome returns `null` if cloned object contains multiple references to one error +// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround +// Safari implementation can't clone errors +// Deno 1.2-1.10 implementations too naive +// NodeJS 16.0+ does not have `PerformanceMark` constructor +// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive +// and can't clone, for example, `RegExp` or some boxed primitives +// https://github.com/nodejs/node/issues/40840 +// no one of those implementations supports new (html/5749) error cloning semantic +var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) { + return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail; +}); + +var nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark; + +var throwUncloneable = function (type) { + throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR); +}; + +var throwUnpolyfillable = function (type, action) { + throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR); +}; + +var tryNativeRestrictedStructuredClone = function (value, type) { + if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type); + return nativeRestrictedStructuredClone(value); +}; + +var createDataTransfer = function () { + var dataTransfer; + try { + dataTransfer = new global.DataTransfer(); + } catch (error) { + try { + dataTransfer = new global.ClipboardEvent('').clipboardData; + } catch (error2) { /* empty */ } + } + return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null; +}; + +var cloneBuffer = function (value, map, $type) { + if (mapHas(map, value)) return mapGet(map, value); + + var type = $type || classof(value); + var clone, length, options, source, target, i; + + if (type === 'SharedArrayBuffer') { + if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value); + // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original + else clone = value; + } else { + var DataView = global.DataView; + + // `ArrayBuffer#slice` is not available in IE10 + // `ArrayBuffer#slice` and `DataView` are not available in old FF + if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer'); + // detached buffers throws in `DataView` and `.slice` + try { + if (isCallable(value.slice) && !value.resizable) { + clone = value.slice(0); + } else { + length = value.byteLength; + options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined; + // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe + clone = new ArrayBuffer(length, options); + source = new DataView(value); + target = new DataView(clone); + for (i = 0; i < length; i++) { + target.setUint8(i, source.getUint8(i)); + } + } + } catch (error) { + throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR); + } + } + + mapSet(map, value, clone); + + return clone; +}; + +var cloneView = function (value, type, offset, length, map) { + var C = global[type]; + // in some old engines like Safari 9, typeof C is 'object' + // on Uint8ClampedArray or some other constructors + if (!isObject(C)) throwUnpolyfillable(type); + return new C(cloneBuffer(value.buffer, map), offset, length); +}; + +var structuredCloneInternal = function (value, map) { + if (isSymbol(value)) throwUncloneable('Symbol'); + if (!isObject(value)) return value; + // effectively preserves circular references + if (map) { + if (mapHas(map, value)) return mapGet(map, value); + } else map = new Map(); + + var type = classof(value); + var C, name, cloned, dataTransfer, i, length, keys, key; + + switch (type) { + case 'Array': + cloned = Array(lengthOfArrayLike(value)); + break; + case 'Object': + cloned = {}; + break; + case 'Map': + cloned = new Map(); + break; + case 'Set': + cloned = new Set(); + break; + case 'RegExp': + // in this block because of a Safari 14.1 bug + // old FF does not clone regexes passed to the constructor, so get the source and flags directly + cloned = new RegExp(value.source, getRegExpFlags(value)); + break; + case 'Error': + name = value.name; + switch (name) { + case 'AggregateError': + cloned = new (getBuiltIn(name))([]); + break; + case 'EvalError': + case 'RangeError': + case 'ReferenceError': + case 'SuppressedError': + case 'SyntaxError': + case 'TypeError': + case 'URIError': + cloned = new (getBuiltIn(name))(); + break; + case 'CompileError': + case 'LinkError': + case 'RuntimeError': + cloned = new (getBuiltIn('WebAssembly', name))(); + break; + default: + cloned = new Error(); + } + break; + case 'DOMException': + cloned = new DOMException(value.message, value.name); + break; + case 'ArrayBuffer': + case 'SharedArrayBuffer': + cloned = cloneBuffer(value, map, type); + break; + case 'DataView': + case 'Int8Array': + case 'Uint8Array': + case 'Uint8ClampedArray': + case 'Int16Array': + case 'Uint16Array': + case 'Int32Array': + case 'Uint32Array': + case 'Float16Array': + case 'Float32Array': + case 'Float64Array': + case 'BigInt64Array': + case 'BigUint64Array': + length = type === 'DataView' ? value.byteLength : value.length; + cloned = cloneView(value, type, value.byteOffset, length, map); + break; + case 'DOMQuad': + try { + cloned = new DOMQuad( + structuredCloneInternal(value.p1, map), + structuredCloneInternal(value.p2, map), + structuredCloneInternal(value.p3, map), + structuredCloneInternal(value.p4, map) + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } + break; + case 'File': + if (nativeRestrictedStructuredClone) try { + cloned = nativeRestrictedStructuredClone(value); + // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612 + if (classof(cloned) !== type) cloned = undefined; + } catch (error) { /* empty */ } + if (!cloned) try { + cloned = new File([value], value.name, value); + } catch (error) { /* empty */ } + if (!cloned) throwUnpolyfillable(type); + break; + case 'FileList': + dataTransfer = createDataTransfer(); + if (dataTransfer) { + for (i = 0, length = lengthOfArrayLike(value); i < length; i++) { + dataTransfer.items.add(structuredCloneInternal(value[i], map)); + } + cloned = dataTransfer.files; + } else cloned = tryNativeRestrictedStructuredClone(value, type); + break; + case 'ImageData': + // Safari 9 ImageData is a constructor, but typeof ImageData is 'object' + try { + cloned = new ImageData( + structuredCloneInternal(value.data, map), + value.width, + value.height, + { colorSpace: value.colorSpace } + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } break; + default: + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else switch (type) { + case 'BigInt': + // can be a 3rd party polyfill + cloned = Object(value.valueOf()); + break; + case 'Boolean': + cloned = Object(thisBooleanValue(value)); + break; + case 'Number': + cloned = Object(thisNumberValue(value)); + break; + case 'String': + cloned = Object(thisStringValue(value)); + break; + case 'Date': + cloned = new Date(thisTimeValue(value)); + break; + case 'Blob': + try { + cloned = value.slice(0, value.size, value.type); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMPoint': + case 'DOMPointReadOnly': + C = global[type]; + try { + cloned = C.fromPoint + ? C.fromPoint(value) + : new C(value.x, value.y, value.z, value.w); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMRect': + case 'DOMRectReadOnly': + C = global[type]; + try { + cloned = C.fromRect + ? C.fromRect(value) + : new C(value.x, value.y, value.width, value.height); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMMatrix': + case 'DOMMatrixReadOnly': + C = global[type]; + try { + cloned = C.fromMatrix + ? C.fromMatrix(value) + : new C(value); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone)) throwUnpolyfillable(type); + try { + cloned = value.clone(); + } catch (error) { + throwUncloneable(type); + } break; + case 'CropTarget': + case 'CryptoKey': + case 'FileSystemDirectoryHandle': + case 'FileSystemFileHandle': + case 'FileSystemHandle': + case 'GPUCompilationInfo': + case 'GPUCompilationMessage': + case 'ImageBitmap': + case 'RTCCertificate': + case 'WebAssembly.Module': + throwUnpolyfillable(type); + // break omitted + default: + throwUncloneable(type); + } + } + + mapSet(map, value, cloned); + + switch (type) { + case 'Array': + case 'Object': + keys = objectKeys(value); + for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) { + key = keys[i]; + createProperty(cloned, key, structuredCloneInternal(value[key], map)); + } break; + case 'Map': + value.forEach(function (v, k) { + mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map)); + }); + break; + case 'Set': + value.forEach(function (v) { + setAdd(cloned, structuredCloneInternal(v, map)); + }); + break; + case 'Error': + createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map)); + if (hasOwn(value, 'cause')) { + createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map)); + } + if (name === 'AggregateError') { + cloned.errors = structuredCloneInternal(value.errors, map); + } else if (name === 'SuppressedError') { + cloned.error = structuredCloneInternal(value.error, map); + cloned.suppressed = structuredCloneInternal(value.suppressed, map); + } // break omitted + case 'DOMException': + if (ERROR_STACK_INSTALLABLE) { + createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map)); + } + } + + return cloned; +}; + +var tryToTransfer = function (rawTransfer, map) { + if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence'); + + var transfer = []; + + iterate(rawTransfer, function (value) { + push(transfer, anObject(value)); + }); + + var i = 0; + var length = lengthOfArrayLike(transfer); + var buffers = new Set(); + var value, type, C, transferred, canvas, context; + + while (i < length) { + value = transfer[i++]; + + type = classof(value); + + if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) { + throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); + } + + if (type === 'ArrayBuffer') { + setAdd(buffers, value); + continue; + } + + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + transferred = nativeStructuredClone(value, { transfer: [value] }); + } else switch (type) { + case 'ImageBitmap': + C = global.OffscreenCanvas; + if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING); + try { + canvas = new C(value.width, value.height); + context = canvas.getContext('bitmaprenderer'); + context.transferFromImageBitmap(value); + transferred = canvas.transferToImageBitmap(); + } catch (error) { /* empty */ } + break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING); + try { + transferred = value.clone(); + value.close(); + } catch (error) { /* empty */ } + break; + case 'MediaSourceHandle': + case 'MessagePort': + case 'OffscreenCanvas': + case 'ReadableStream': + case 'TransformStream': + case 'WritableStream': + throwUnpolyfillable(type, TRANSFERRING); + } + + if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR); + + mapSet(map, value, transferred); + } + + return buffers; +}; + +var detachBuffers = function (buffers) { + setIterate(buffers, function (buffer) { + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + nativeRestrictedStructuredClone(buffer, { transfer: [buffer] }); + } else if (isCallable(buffer.transfer)) { + buffer.transfer(); + } else if (detachTransferable) { + detachTransferable(buffer); + } else { + throwUnpolyfillable('ArrayBuffer', TRANSFERRING); + } + }); +}; + +// `structuredClone` method +// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone +$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, { + structuredClone: function structuredClone(value /* , { transfer } */) { + var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined; + var transfer = options ? options.transfer : undefined; + var map, buffers; + + if (transfer !== undefined) { + map = new Map(); + buffers = tryToTransfer(transfer, map); + } + + var clone = structuredCloneInternal(value, map); + + // since of an issue with cloning views of transferred buffers, we a forced to detach them later + // https://github.com/zloirock/core-js/issues/1265 + if (buffers) detachBuffers(buffers); + + return clone; + } +}); + + +/***/ }), +/* 545 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(546); +__webpack_require__(547); + + +/***/ }), +/* 546 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setInterval = schedulersFix(global.setInterval, true); + +// Bun / IE9- setInterval additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval +$({ global: true, bind: true, forced: global.setInterval !== setInterval }, { + setInterval: setInterval +}); + + +/***/ }), +/* 547 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setTimeout = schedulersFix(global.setTimeout, true); + +// Bun / IE9- setTimeout additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout +$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, { + setTimeout: setTimeout +}); + + +/***/ }), +/* 548 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(549); + + +/***/ }), +/* 549 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(428); +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var global = __webpack_require__(4); +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var anInstance = __webpack_require__(210); +var hasOwn = __webpack_require__(38); +var assign = __webpack_require__(305); +var arrayFrom = __webpack_require__(162); +var arraySlice = __webpack_require__(76); +var codeAt = (__webpack_require__(421).codeAt); +var toASCII = __webpack_require__(551); +var $toString = __webpack_require__(68); +var setToStringTag = __webpack_require__(82); +var validateArgumentsLength = __webpack_require__(342); +var URLSearchParamsModule = __webpack_require__(552); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var getInternalURLState = InternalStateModule.getterFor('URL'); +var URLSearchParams = URLSearchParamsModule.URLSearchParams; +var getInternalSearchParamsState = URLSearchParamsModule.getState; + +var NativeURL = global.URL; +var TypeError = global.TypeError; +var parseInt = global.parseInt; +var floor = Math.floor; +var pow = Math.pow; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var join = uncurryThis([].join); +var numberToString = uncurryThis(1.0.toString); +var pop = uncurryThis([].pop); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); +var toLowerCase = uncurryThis(''.toLowerCase); +var unshift = uncurryThis([].unshift); + +var INVALID_AUTHORITY = 'Invalid authority'; +var INVALID_SCHEME = 'Invalid scheme'; +var INVALID_HOST = 'Invalid host'; +var INVALID_PORT = 'Invalid port'; + +var ALPHA = /[a-z]/i; +// eslint-disable-next-line regexp/no-obscure-range -- safe +var ALPHANUMERIC = /[\d+-.a-z]/i; +var DIGIT = /\d/; +var HEX_START = /^0x/i; +var OCT = /^[0-7]+$/; +var DEC = /^\d+$/; +var HEX = /^[\da-f]+$/i; +/* eslint-disable regexp/no-control-character -- safe */ +var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/; +var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/; +var LEADING_C0_CONTROL_OR_SPACE = /^[\u0000-\u0020]+/; +var TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\u0000-\u0020])[\u0000-\u0020]+$/; +var TAB_AND_NEW_LINE = /[\t\n\r]/g; +/* eslint-enable regexp/no-control-character -- safe */ +var EOF; + +// https://url.spec.whatwg.org/#ipv4-number-parser +var parseIPv4 = function (input) { + var parts = split(input, '.'); + var partsLength, numbers, index, part, radix, number, ipv4; + if (parts.length && parts[parts.length - 1] === '') { + parts.length--; + } + partsLength = parts.length; + if (partsLength > 4) return input; + numbers = []; + for (index = 0; index < partsLength; index++) { + part = parts[index]; + if (part === '') return input; + radix = 10; + if (part.length > 1 && charAt(part, 0) === '0') { + radix = exec(HEX_START, part) ? 16 : 8; + part = stringSlice(part, radix === 8 ? 1 : 2); + } + if (part === '') { + number = 0; + } else { + if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input; + number = parseInt(part, radix); + } + push(numbers, number); + } + for (index = 0; index < partsLength; index++) { + number = numbers[index]; + if (index === partsLength - 1) { + if (number >= pow(256, 5 - partsLength)) return null; + } else if (number > 255) return null; + } + ipv4 = pop(numbers); + for (index = 0; index < numbers.length; index++) { + ipv4 += numbers[index] * pow(256, 3 - index); + } + return ipv4; +}; + +// https://url.spec.whatwg.org/#concept-ipv6-parser +// eslint-disable-next-line max-statements -- TODO +var parseIPv6 = function (input) { + var address = [0, 0, 0, 0, 0, 0, 0, 0]; + var pieceIndex = 0; + var compress = null; + var pointer = 0; + var value, length, numbersSeen, ipv4Piece, number, swaps, swap; + + var chr = function () { + return charAt(input, pointer); + }; + + if (chr() === ':') { + if (charAt(input, 1) !== ':') return; + pointer += 2; + pieceIndex++; + compress = pieceIndex; + } + while (chr()) { + if (pieceIndex === 8) return; + if (chr() === ':') { + if (compress !== null) return; + pointer++; + pieceIndex++; + compress = pieceIndex; + continue; + } + value = length = 0; + while (length < 4 && exec(HEX, chr())) { + value = value * 16 + parseInt(chr(), 16); + pointer++; + length++; + } + if (chr() === '.') { + if (length === 0) return; + pointer -= length; + if (pieceIndex > 6) return; + numbersSeen = 0; + while (chr()) { + ipv4Piece = null; + if (numbersSeen > 0) { + if (chr() === '.' && numbersSeen < 4) pointer++; + else return; + } + if (!exec(DIGIT, chr())) return; + while (exec(DIGIT, chr())) { + number = parseInt(chr(), 10); + if (ipv4Piece === null) ipv4Piece = number; + else if (ipv4Piece === 0) return; + else ipv4Piece = ipv4Piece * 10 + number; + if (ipv4Piece > 255) return; + pointer++; + } + address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; + numbersSeen++; + if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++; + } + if (numbersSeen !== 4) return; + break; + } else if (chr() === ':') { + pointer++; + if (!chr()) return; + } else if (chr()) return; + address[pieceIndex++] = value; + } + if (compress !== null) { + swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + swap = address[pieceIndex]; + address[pieceIndex--] = address[compress + swaps - 1]; + address[compress + --swaps] = swap; + } + } else if (pieceIndex !== 8) return; + return address; +}; + +var findLongestZeroSequence = function (ipv6) { + var maxIndex = null; + var maxLength = 1; + var currStart = null; + var currLength = 0; + var index = 0; + for (; index < 8; index++) { + if (ipv6[index] !== 0) { + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + currStart = null; + currLength = 0; + } else { + if (currStart === null) currStart = index; + ++currLength; + } + } + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + return maxIndex; +}; + +// https://url.spec.whatwg.org/#host-serializing +var serializeHost = function (host) { + var result, index, compress, ignore0; + // ipv4 + if (typeof host == 'number') { + result = []; + for (index = 0; index < 4; index++) { + unshift(result, host % 256); + host = floor(host / 256); + } return join(result, '.'); + // ipv6 + } else if (typeof host == 'object') { + result = ''; + compress = findLongestZeroSequence(host); + for (index = 0; index < 8; index++) { + if (ignore0 && host[index] === 0) continue; + if (ignore0) ignore0 = false; + if (compress === index) { + result += index ? ':' : '::'; + ignore0 = true; + } else { + result += numberToString(host[index], 16); + if (index < 7) result += ':'; + } + } + return '[' + result + ']'; + } return host; +}; + +var C0ControlPercentEncodeSet = {}; +var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { + ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 +}); +var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { + '#': 1, '?': 1, '{': 1, '}': 1 +}); +var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { + '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 +}); + +var percentEncode = function (chr, set) { + var code = codeAt(chr, 0); + return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr); +}; + +// https://url.spec.whatwg.org/#special-scheme +var specialSchemes = { + ftp: 21, + file: null, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +// https://url.spec.whatwg.org/#windows-drive-letter +var isWindowsDriveLetter = function (string, normalized) { + var second; + return string.length === 2 && exec(ALPHA, charAt(string, 0)) + && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|')); +}; + +// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter +var startsWithWindowsDriveLetter = function (string) { + var third; + return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && ( + string.length === 2 || + ((third = charAt(string, 2)) === '/' || third === '\\' || third === '?' || third === '#') + ); +}; + +// https://url.spec.whatwg.org/#single-dot-path-segment +var isSingleDot = function (segment) { + return segment === '.' || toLowerCase(segment) === '%2e'; +}; + +// https://url.spec.whatwg.org/#double-dot-path-segment +var isDoubleDot = function (segment) { + segment = toLowerCase(segment); + return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; +}; + +// States: +var SCHEME_START = {}; +var SCHEME = {}; +var NO_SCHEME = {}; +var SPECIAL_RELATIVE_OR_AUTHORITY = {}; +var PATH_OR_AUTHORITY = {}; +var RELATIVE = {}; +var RELATIVE_SLASH = {}; +var SPECIAL_AUTHORITY_SLASHES = {}; +var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; +var AUTHORITY = {}; +var HOST = {}; +var HOSTNAME = {}; +var PORT = {}; +var FILE = {}; +var FILE_SLASH = {}; +var FILE_HOST = {}; +var PATH_START = {}; +var PATH = {}; +var CANNOT_BE_A_BASE_URL_PATH = {}; +var QUERY = {}; +var FRAGMENT = {}; + +var URLState = function (url, isBase, base) { + var urlString = $toString(url); + var baseState, failure, searchParams; + if (isBase) { + failure = this.parse(urlString); + if (failure) throw new TypeError(failure); + this.searchParams = null; + } else { + if (base !== undefined) baseState = new URLState(base, true); + failure = this.parse(urlString, null, baseState); + if (failure) throw new TypeError(failure); + searchParams = getInternalSearchParamsState(new URLSearchParams()); + searchParams.bindURL(this); + this.searchParams = searchParams; + } +}; + +URLState.prototype = { + type: 'URL', + // https://url.spec.whatwg.org/#url-parsing + // eslint-disable-next-line max-statements -- TODO + parse: function (input, stateOverride, base) { + var url = this; + var state = stateOverride || SCHEME_START; + var pointer = 0; + var buffer = ''; + var seenAt = false; + var seenBracket = false; + var seenPasswordToken = false; + var codePoints, chr, bufferCodePoints, failure; + + input = $toString(input); + + if (!stateOverride) { + url.scheme = ''; + url.username = ''; + url.password = ''; + url.host = null; + url.port = null; + url.path = []; + url.query = null; + url.fragment = null; + url.cannotBeABaseURL = false; + input = replace(input, LEADING_C0_CONTROL_OR_SPACE, ''); + input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1'); + } + + input = replace(input, TAB_AND_NEW_LINE, ''); + + codePoints = arrayFrom(input); + + while (pointer <= codePoints.length) { + chr = codePoints[pointer]; + switch (state) { + case SCHEME_START: + if (chr && exec(ALPHA, chr)) { + buffer += toLowerCase(chr); + state = SCHEME; + } else if (!stateOverride) { + state = NO_SCHEME; + continue; + } else return INVALID_SCHEME; + break; + + case SCHEME: + if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) { + buffer += toLowerCase(chr); + } else if (chr === ':') { + if (stateOverride && ( + (url.isSpecial() !== hasOwn(specialSchemes, buffer)) || + (buffer === 'file' && (url.includesCredentials() || url.port !== null)) || + (url.scheme === 'file' && !url.host) + )) return; + url.scheme = buffer; + if (stateOverride) { + if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null; + return; + } + buffer = ''; + if (url.scheme === 'file') { + state = FILE; + } else if (url.isSpecial() && base && base.scheme === url.scheme) { + state = SPECIAL_RELATIVE_OR_AUTHORITY; + } else if (url.isSpecial()) { + state = SPECIAL_AUTHORITY_SLASHES; + } else if (codePoints[pointer + 1] === '/') { + state = PATH_OR_AUTHORITY; + pointer++; + } else { + url.cannotBeABaseURL = true; + push(url.path, ''); + state = CANNOT_BE_A_BASE_URL_PATH; + } + } else if (!stateOverride) { + buffer = ''; + state = NO_SCHEME; + pointer = 0; + continue; + } else return INVALID_SCHEME; + break; + + case NO_SCHEME: + if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME; + if (base.cannotBeABaseURL && chr === '#') { + url.scheme = base.scheme; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + url.cannotBeABaseURL = true; + state = FRAGMENT; + break; + } + state = base.scheme === 'file' ? FILE : RELATIVE; + continue; + + case SPECIAL_RELATIVE_OR_AUTHORITY: + if (chr === '/' && codePoints[pointer + 1] === '/') { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + pointer++; + } else { + state = RELATIVE; + continue; + } break; + + case PATH_OR_AUTHORITY: + if (chr === '/') { + state = AUTHORITY; + break; + } else { + state = PATH; + continue; + } + + case RELATIVE: + url.scheme = base.scheme; + if (chr === EOF) { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + } else if (chr === '/' || (chr === '\\' && url.isSpecial())) { + state = RELATIVE_SLASH; + } else if (chr === '?') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.path.length--; + state = PATH; + continue; + } break; + + case RELATIVE_SLASH: + if (url.isSpecial() && (chr === '/' || chr === '\\')) { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + } else if (chr === '/') { + state = AUTHORITY; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + state = PATH; + continue; + } break; + + case SPECIAL_AUTHORITY_SLASHES: + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue; + pointer++; + break; + + case SPECIAL_AUTHORITY_IGNORE_SLASHES: + if (chr !== '/' && chr !== '\\') { + state = AUTHORITY; + continue; + } break; + + case AUTHORITY: + if (chr === '@') { + if (seenAt) buffer = '%40' + buffer; + seenAt = true; + bufferCodePoints = arrayFrom(buffer); + for (var i = 0; i < bufferCodePoints.length; i++) { + var codePoint = bufferCodePoints[i]; + if (codePoint === ':' && !seenPasswordToken) { + seenPasswordToken = true; + continue; + } + var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); + if (seenPasswordToken) url.password += encodedCodePoints; + else url.username += encodedCodePoints; + } + buffer = ''; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (seenAt && buffer === '') return INVALID_AUTHORITY; + pointer -= arrayFrom(buffer).length + 1; + buffer = ''; + state = HOST; + } else buffer += chr; + break; + + case HOST: + case HOSTNAME: + if (stateOverride && url.scheme === 'file') { + state = FILE_HOST; + continue; + } else if (chr === ':' && !seenBracket) { + if (buffer === '') return INVALID_HOST; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PORT; + if (stateOverride === HOSTNAME) return; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (url.isSpecial() && buffer === '') return INVALID_HOST; + if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PATH_START; + if (stateOverride) return; + continue; + } else { + if (chr === '[') seenBracket = true; + else if (chr === ']') seenBracket = false; + buffer += chr; + } break; + + case PORT: + if (exec(DIGIT, chr)) { + buffer += chr; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) || + stateOverride + ) { + if (buffer !== '') { + var port = parseInt(buffer, 10); + if (port > 0xFFFF) return INVALID_PORT; + url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port; + buffer = ''; + } + if (stateOverride) return; + state = PATH_START; + continue; + } else return INVALID_PORT; + break; + + case FILE: + url.scheme = 'file'; + if (chr === '/' || chr === '\\') state = FILE_SLASH; + else if (base && base.scheme === 'file') { + switch (chr) { + case EOF: + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + break; + case '?': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + break; + case '#': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + break; + default: + if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + url.host = base.host; + url.path = arraySlice(base.path); + url.shortenPath(); + } + state = PATH; + continue; + } + } else { + state = PATH; + continue; + } break; + + case FILE_SLASH: + if (chr === '/' || chr === '\\') { + state = FILE_HOST; + break; + } + if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]); + else url.host = base.host; + } + state = PATH; + continue; + + case FILE_HOST: + if (chr === EOF || chr === '/' || chr === '\\' || chr === '?' || chr === '#') { + if (!stateOverride && isWindowsDriveLetter(buffer)) { + state = PATH; + } else if (buffer === '') { + url.host = ''; + if (stateOverride) return; + state = PATH_START; + } else { + failure = url.parseHost(buffer); + if (failure) return failure; + if (url.host === 'localhost') url.host = ''; + if (stateOverride) return; + buffer = ''; + state = PATH_START; + } continue; + } else buffer += chr; + break; + + case PATH_START: + if (url.isSpecial()) { + state = PATH; + if (chr !== '/' && chr !== '\\') continue; + } else if (!stateOverride && chr === '?') { + url.query = ''; + state = QUERY; + } else if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + state = PATH; + if (chr !== '/') continue; + } break; + + case PATH: + if ( + chr === EOF || chr === '/' || + (chr === '\\' && url.isSpecial()) || + (!stateOverride && (chr === '?' || chr === '#')) + ) { + if (isDoubleDot(buffer)) { + url.shortenPath(); + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else if (isSingleDot(buffer)) { + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else { + if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { + if (url.host) url.host = ''; + buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter + } + push(url.path, buffer); + } + buffer = ''; + if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) { + while (url.path.length > 1 && url.path[0] === '') { + shift(url.path); + } + } + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } + } else { + buffer += percentEncode(chr, pathPercentEncodeSet); + } break; + + case CANNOT_BE_A_BASE_URL_PATH: + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case QUERY: + if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + if (chr === "'" && url.isSpecial()) url.query += '%27'; + else if (chr === '#') url.query += '%23'; + else url.query += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case FRAGMENT: + if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet); + break; + } + + pointer++; + } + }, + // https://url.spec.whatwg.org/#host-parsing + parseHost: function (input) { + var result, codePoints, index; + if (charAt(input, 0) === '[') { + if (charAt(input, input.length - 1) !== ']') return INVALID_HOST; + result = parseIPv6(stringSlice(input, 1, -1)); + if (!result) return INVALID_HOST; + this.host = result; + // opaque host + } else if (!this.isSpecial()) { + if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST; + result = ''; + codePoints = arrayFrom(input); + for (index = 0; index < codePoints.length; index++) { + result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); + } + this.host = result; + } else { + input = toASCII(input); + if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST; + result = parseIPv4(input); + if (result === null) return INVALID_HOST; + this.host = result; + } + }, + // https://url.spec.whatwg.org/#cannot-have-a-username-password-port + cannotHaveUsernamePasswordPort: function () { + return !this.host || this.cannotBeABaseURL || this.scheme === 'file'; + }, + // https://url.spec.whatwg.org/#include-credentials + includesCredentials: function () { + return this.username !== '' || this.password !== ''; + }, + // https://url.spec.whatwg.org/#is-special + isSpecial: function () { + return hasOwn(specialSchemes, this.scheme); + }, + // https://url.spec.whatwg.org/#shorten-a-urls-path + shortenPath: function () { + var path = this.path; + var pathSize = path.length; + if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) { + path.length--; + } + }, + // https://url.spec.whatwg.org/#concept-url-serializer + serialize: function () { + var url = this; + var scheme = url.scheme; + var username = url.username; + var password = url.password; + var host = url.host; + var port = url.port; + var path = url.path; + var query = url.query; + var fragment = url.fragment; + var output = scheme + ':'; + if (host !== null) { + output += '//'; + if (url.includesCredentials()) { + output += username + (password ? ':' + password : '') + '@'; + } + output += serializeHost(host); + if (port !== null) output += ':' + port; + } else if (scheme === 'file') output += '//'; + output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + if (query !== null) output += '?' + query; + if (fragment !== null) output += '#' + fragment; + return output; + }, + // https://url.spec.whatwg.org/#dom-url-href + setHref: function (href) { + var failure = this.parse(href); + if (failure) throw new TypeError(failure); + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-origin + getOrigin: function () { + var scheme = this.scheme; + var port = this.port; + if (scheme === 'blob') try { + return new URLConstructor(scheme.path[0]).origin; + } catch (error) { + return 'null'; + } + if (scheme === 'file' || !this.isSpecial()) return 'null'; + return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : ''); + }, + // https://url.spec.whatwg.org/#dom-url-protocol + getProtocol: function () { + return this.scheme + ':'; + }, + setProtocol: function (protocol) { + this.parse($toString(protocol) + ':', SCHEME_START); + }, + // https://url.spec.whatwg.org/#dom-url-username + getUsername: function () { + return this.username; + }, + setUsername: function (username) { + var codePoints = arrayFrom($toString(username)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.username = ''; + for (var i = 0; i < codePoints.length; i++) { + this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-password + getPassword: function () { + return this.password; + }, + setPassword: function (password) { + var codePoints = arrayFrom($toString(password)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.password = ''; + for (var i = 0; i < codePoints.length; i++) { + this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-host + getHost: function () { + var host = this.host; + var port = this.port; + return host === null ? '' + : port === null ? serializeHost(host) + : serializeHost(host) + ':' + port; + }, + setHost: function (host) { + if (this.cannotBeABaseURL) return; + this.parse(host, HOST); + }, + // https://url.spec.whatwg.org/#dom-url-hostname + getHostname: function () { + var host = this.host; + return host === null ? '' : serializeHost(host); + }, + setHostname: function (hostname) { + if (this.cannotBeABaseURL) return; + this.parse(hostname, HOSTNAME); + }, + // https://url.spec.whatwg.org/#dom-url-port + getPort: function () { + var port = this.port; + return port === null ? '' : $toString(port); + }, + setPort: function (port) { + if (this.cannotHaveUsernamePasswordPort()) return; + port = $toString(port); + if (port === '') this.port = null; + else this.parse(port, PORT); + }, + // https://url.spec.whatwg.org/#dom-url-pathname + getPathname: function () { + var path = this.path; + return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + }, + setPathname: function (pathname) { + if (this.cannotBeABaseURL) return; + this.path = []; + this.parse(pathname, PATH_START); + }, + // https://url.spec.whatwg.org/#dom-url-search + getSearch: function () { + var query = this.query; + return query ? '?' + query : ''; + }, + setSearch: function (search) { + search = $toString(search); + if (search === '') { + this.query = null; + } else { + if (charAt(search, 0) === '?') search = stringSlice(search, 1); + this.query = ''; + this.parse(search, QUERY); + } + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-searchparams + getSearchParams: function () { + return this.searchParams.facade; + }, + // https://url.spec.whatwg.org/#dom-url-hash + getHash: function () { + var fragment = this.fragment; + return fragment ? '#' + fragment : ''; + }, + setHash: function (hash) { + hash = $toString(hash); + if (hash === '') { + this.fragment = null; + return; + } + if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1); + this.fragment = ''; + this.parse(hash, FRAGMENT); + }, + update: function () { + this.query = this.searchParams.serialize() || null; + } +}; + +// `URL` constructor +// https://url.spec.whatwg.org/#url-class +var URLConstructor = function URL(url /* , base */) { + var that = anInstance(this, URLPrototype); + var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined; + var state = setInternalState(that, new URLState(url, false, base)); + if (!DESCRIPTORS) { + that.href = state.serialize(); + that.origin = state.getOrigin(); + that.protocol = state.getProtocol(); + that.username = state.getUsername(); + that.password = state.getPassword(); + that.host = state.getHost(); + that.hostname = state.getHostname(); + that.port = state.getPort(); + that.pathname = state.getPathname(); + that.search = state.getSearch(); + that.searchParams = state.getSearchParams(); + that.hash = state.getHash(); + } +}; + +var URLPrototype = URLConstructor.prototype; + +var accessorDescriptor = function (getter, setter) { + return { + get: function () { + return getInternalURLState(this)[getter](); + }, + set: setter && function (value) { + return getInternalURLState(this)[setter](value); + }, + configurable: true, + enumerable: true + }; +}; + +if (DESCRIPTORS) { + // `URL.prototype.href` accessors pair + // https://url.spec.whatwg.org/#dom-url-href + defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref')); + // `URL.prototype.origin` getter + // https://url.spec.whatwg.org/#dom-url-origin + defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin')); + // `URL.prototype.protocol` accessors pair + // https://url.spec.whatwg.org/#dom-url-protocol + defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol')); + // `URL.prototype.username` accessors pair + // https://url.spec.whatwg.org/#dom-url-username + defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername')); + // `URL.prototype.password` accessors pair + // https://url.spec.whatwg.org/#dom-url-password + defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword')); + // `URL.prototype.host` accessors pair + // https://url.spec.whatwg.org/#dom-url-host + defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost')); + // `URL.prototype.hostname` accessors pair + // https://url.spec.whatwg.org/#dom-url-hostname + defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname')); + // `URL.prototype.port` accessors pair + // https://url.spec.whatwg.org/#dom-url-port + defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort')); + // `URL.prototype.pathname` accessors pair + // https://url.spec.whatwg.org/#dom-url-pathname + defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname')); + // `URL.prototype.search` accessors pair + // https://url.spec.whatwg.org/#dom-url-search + defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch')); + // `URL.prototype.searchParams` getter + // https://url.spec.whatwg.org/#dom-url-searchparams + defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams')); + // `URL.prototype.hash` accessors pair + // https://url.spec.whatwg.org/#dom-url-hash + defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash')); +} + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +defineBuiltIn(URLPrototype, 'toJSON', function toJSON() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +// `URL.prototype.toString` method +// https://url.spec.whatwg.org/#URL-stringification-behavior +defineBuiltIn(URLPrototype, 'toString', function toString() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +if (NativeURL) { + var nativeCreateObjectURL = NativeURL.createObjectURL; + var nativeRevokeObjectURL = NativeURL.revokeObjectURL; + // `URL.createObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL + if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL)); + // `URL.revokeObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL + if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL)); +} + +setToStringTag(URLConstructor, 'URL'); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { + URL: URLConstructor +}); + + +/***/ }), +/* 550 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = !fails(function () { + // eslint-disable-next-line unicorn/relative-url-style -- required for testing + var url = new URL('b?a=1&b=2&c=3', 'http://a'); + var params = url.searchParams; + var params2 = new URLSearchParams('a=1&a=2&b=3'); + var result = ''; + url.pathname = 'c%20d'; + params.forEach(function (value, key) { + params['delete']('b'); + result += key + value; + }); + params2['delete']('a', 2); + // `undefined` case is a Chromium 117 bug + // https://bugs.chromium.org/p/v8/issues/detail?id=14222 + params2['delete']('b', undefined); + return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b'))) + || (!params.size && (IS_PURE || !DESCRIPTORS)) + || !params.sort + || url.href !== 'http://a/c%20d?a=1&c=3' + || params.get('c') !== '3' + || String(new URLSearchParams('?a=1')) !== 'a=1' + || !params[ITERATOR] + // throws in Edge + || new URL('https://a@b').username !== 'a' + || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' + // not punycoded in Edge + || new URL('http://тест').host !== 'xn--e1aybc' + // not escaped in Chrome 62- + || new URL('http://a#б').hash !== '#%D0%B1' + // fails in Chrome 66- + || result !== 'a1c3' + // throws in Safari + || new URL('http://x', undefined).host !== 'x'; +}); + + +/***/ }), +/* 551 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js +var uncurryThis = __webpack_require__(14); + +var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 +var base = 36; +var tMin = 1; +var tMax = 26; +var skew = 38; +var damp = 700; +var initialBias = 72; +var initialN = 128; // 0x80 +var delimiter = '-'; // '\x2D' +var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars +var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators +var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; +var baseMinusTMin = base - tMin; + +var $RangeError = RangeError; +var exec = uncurryThis(regexSeparators.exec); +var floor = Math.floor; +var fromCharCode = String.fromCharCode; +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var split = uncurryThis(''.split); +var toLowerCase = uncurryThis(''.toLowerCase); + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + */ +var ucs2decode = function (string) { + var output = []; + var counter = 0; + var length = string.length; + while (counter < length) { + var value = charCodeAt(string, counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + var extra = charCodeAt(string, counter++); + if ((extra & 0xFC00) === 0xDC00) { // Low surrogate. + push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + push(output, value); + counter--; + } + } else { + push(output, value); + } + } + return output; +}; + +/** + * Converts a digit/integer into a basic code point. + */ +var digitToBasic = function (digit) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + */ +var adapt = function (delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + while (delta > baseMinusTMin * tMax >> 1) { + delta = floor(delta / baseMinusTMin); + k += base; + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + */ +var encode = function (input) { + var output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + var inputLength = input.length; + + // Initialize the state. + var n = initialN; + var delta = 0; + var bias = initialBias; + var i, currentValue; + + // Handle the basic code points. + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < 0x80) { + push(output, fromCharCode(currentValue)); + } + } + + var basicLength = output.length; // number of basic code points. + var handledCPCount = basicLength; // number of code points that have been handled; + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + push(output, delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + // All non-basic code points < n have been handled already. Find the next larger one: + var m = maxInt; + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow. + var handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + throw new $RangeError(OVERFLOW_ERROR); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < n && ++delta > maxInt) { + throw new $RangeError(OVERFLOW_ERROR); + } + if (currentValue === n) { + // Represent delta as a generalized variable-length integer. + var q = delta; + var k = base; + while (true) { + var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (q < t) break; + var qMinusT = q - t; + var baseMinusT = base - t; + push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT))); + q = floor(qMinusT / baseMinusT); + k += base; + } + + push(output, fromCharCode(digitToBasic(q))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength); + delta = 0; + handledCPCount++; + } + } + + delta++; + n++; + } + return join(output, ''); +}; + +module.exports = function (input) { + var encoded = []; + var labels = split(replace(toLowerCase(input), regexSeparators, '\u002E'), '.'); + var i, label; + for (i = 0; i < labels.length; i++) { + label = labels[i]; + push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label); + } + return join(encoded, '.'); +}; + + +/***/ }), +/* 552 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(168); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var setToStringTag = __webpack_require__(82); +var createIteratorConstructor = __webpack_require__(170); +var InternalStateModule = __webpack_require__(51); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var bind = __webpack_require__(84); +var classof = __webpack_require__(69); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var $toString = __webpack_require__(68); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var createIterResultObject = __webpack_require__(172); +var validateArgumentsLength = __webpack_require__(342); +var wellKnownSymbol = __webpack_require__(33); +var arraySort = __webpack_require__(188); + +var ITERATOR = wellKnownSymbol('iterator'); +var URL_SEARCH_PARAMS = 'URLSearchParams'; +var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); +var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); + +var nativeFetch = safeGetBuiltIn('fetch'); +var NativeRequest = safeGetBuiltIn('Request'); +var Headers = safeGetBuiltIn('Headers'); +var RequestPrototype = NativeRequest && NativeRequest.prototype; +var HeadersPrototype = Headers && Headers.prototype; +var RegExp = global.RegExp; +var TypeError = global.TypeError; +var decodeURIComponent = global.decodeURIComponent; +var encodeURIComponent = global.encodeURIComponent; +var charAt = uncurryThis(''.charAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var splice = uncurryThis([].splice); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); + +var plus = /\+/g; +var sequences = Array(4); + +var percentSequence = function (bytes) { + return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); +}; + +var percentDecode = function (sequence) { + try { + return decodeURIComponent(sequence); + } catch (error) { + return sequence; + } +}; + +var deserialize = function (it) { + var result = replace(it, plus, ' '); + var bytes = 4; + try { + return decodeURIComponent(result); + } catch (error) { + while (bytes) { + result = replace(result, percentSequence(bytes--), percentDecode); + } + return result; + } +}; + +var find = /[!'()~]|%20/g; + +var replacements = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+' +}; + +var replacer = function (match) { + return replacements[match]; +}; + +var serialize = function (it) { + return replace(encodeURIComponent(it), find, replacer); +}; + +var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { + setInternalState(this, { + type: URL_SEARCH_PARAMS_ITERATOR, + target: getInternalParamsState(params).entries, + index: 0, + kind: kind + }); +}, URL_SEARCH_PARAMS, function next() { + var state = getInternalIteratorState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + var entry = target[index]; + switch (state.kind) { + case 'keys': return createIterResultObject(entry.key, false); + case 'values': return createIterResultObject(entry.value, false); + } return createIterResultObject([entry.key, entry.value], false); +}, true); + +var URLSearchParamsState = function (init) { + this.entries = []; + this.url = null; + + if (init !== undefined) { + if (isObject(init)) this.parseObject(init); + else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init)); + } +}; + +URLSearchParamsState.prototype = { + type: URL_SEARCH_PARAMS, + bindURL: function (url) { + this.url = url; + this.update(); + }, + parseObject: function (object) { + var entries = this.entries; + var iteratorMethod = getIteratorMethod(object); + var iterator, next, step, entryIterator, entryNext, first, second; + + if (iteratorMethod) { + iterator = getIterator(object, iteratorMethod); + next = iterator.next; + while (!(step = call(next, iterator)).done) { + entryIterator = getIterator(anObject(step.value)); + entryNext = entryIterator.next; + if ( + (first = call(entryNext, entryIterator)).done || + (second = call(entryNext, entryIterator)).done || + !call(entryNext, entryIterator).done + ) throw new TypeError('Expected sequence with length 2'); + push(entries, { key: $toString(first.value), value: $toString(second.value) }); + } + } else for (var key in object) if (hasOwn(object, key)) { + push(entries, { key: key, value: $toString(object[key]) }); + } + }, + parseQuery: function (query) { + if (query) { + var entries = this.entries; + var attributes = split(query, '&'); + var index = 0; + var attribute, entry; + while (index < attributes.length) { + attribute = attributes[index++]; + if (attribute.length) { + entry = split(attribute, '='); + push(entries, { + key: deserialize(shift(entry)), + value: deserialize(join(entry, '=')) + }); + } + } + } + }, + serialize: function () { + var entries = this.entries; + var result = []; + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + push(result, serialize(entry.key) + '=' + serialize(entry.value)); + } return join(result, '&'); + }, + update: function () { + this.entries.length = 0; + this.parseQuery(this.url.query); + }, + updateURL: function () { + if (this.url) this.url.update(); + } +}; + +// `URLSearchParams` constructor +// https://url.spec.whatwg.org/#interface-urlsearchparams +var URLSearchParamsConstructor = function URLSearchParams(/* init */) { + anInstance(this, URLSearchParamsPrototype); + var init = arguments.length > 0 ? arguments[0] : undefined; + var state = setInternalState(this, new URLSearchParamsState(init)); + if (!DESCRIPTORS) this.size = state.entries.length; +}; + +var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; + +defineBuiltIns(URLSearchParamsPrototype, { + // `URLSearchParams.prototype.append` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-append + append: function append(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 2); + push(state.entries, { key: $toString(name), value: $toString(value) }); + if (!DESCRIPTORS) this.length++; + state.updateURL(); + }, + // `URLSearchParams.prototype.delete` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-delete + 'delete': function (name /* , value */) { + var state = getInternalParamsState(this); + var length = validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index]; + if (entry.key === key && (value === undefined || entry.value === value)) { + splice(entries, index, 1); + if (value !== undefined) break; + } else index++; + } + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.get` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-get + get: function get(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) return entries[index].value; + } + return null; + }, + // `URLSearchParams.prototype.getAll` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-getall + getAll: function getAll(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var result = []; + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) push(result, entries[index].value); + } + return result; + }, + // `URLSearchParams.prototype.has` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-has + has: function has(name /* , value */) { + var entries = getInternalParamsState(this).entries; + var length = validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index++]; + if (entry.key === key && (value === undefined || entry.value === value)) return true; + } + return false; + }, + // `URLSearchParams.prototype.set` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-set + set: function set(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var found = false; + var key = $toString(name); + var val = $toString(value); + var index = 0; + var entry; + for (; index < entries.length; index++) { + entry = entries[index]; + if (entry.key === key) { + if (found) splice(entries, index--, 1); + else { + found = true; + entry.value = val; + } + } + } + if (!found) push(entries, { key: key, value: val }); + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.sort` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-sort + sort: function sort() { + var state = getInternalParamsState(this); + arraySort(state.entries, function (a, b) { + return a.key > b.key ? 1 : -1; + }); + state.updateURL(); + }, + // `URLSearchParams.prototype.forEach` method + forEach: function forEach(callback /* , thisArg */) { + var entries = getInternalParamsState(this).entries; + var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined); + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + boundFunction(entry.value, entry.key, this); + } + }, + // `URLSearchParams.prototype.keys` method + keys: function keys() { + return new URLSearchParamsIterator(this, 'keys'); + }, + // `URLSearchParams.prototype.values` method + values: function values() { + return new URLSearchParamsIterator(this, 'values'); + }, + // `URLSearchParams.prototype.entries` method + entries: function entries() { + return new URLSearchParamsIterator(this, 'entries'); + } +}, { enumerable: true }); + +// `URLSearchParams.prototype[@@iterator]` method +defineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' }); + +// `URLSearchParams.prototype.toString` method +// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior +defineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() { + return getInternalParamsState(this).serialize(); +}, { enumerable: true }); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + return getInternalParamsState(this).entries.length; + }, + configurable: true, + enumerable: true +}); + +setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, { + URLSearchParams: URLSearchParamsConstructor +}); + +// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams` +if (!USE_NATIVE_URL && isCallable(Headers)) { + var headersHas = uncurryThis(HeadersPrototype.has); + var headersSet = uncurryThis(HeadersPrototype.set); + + var wrapRequestOptions = function (init) { + if (isObject(init)) { + var body = init.body; + var headers; + if (classof(body) === URL_SEARCH_PARAMS) { + headers = init.headers ? new Headers(init.headers) : new Headers(); + if (!headersHas(headers, 'content-type')) { + headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); + } + return create(init, { + body: createPropertyDescriptor(0, $toString(body)), + headers: createPropertyDescriptor(0, headers) + }); + } + } return init; + }; + + if (isCallable(nativeFetch)) { + $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, { + fetch: function fetch(input /* , init */) { + return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + } + }); + } + + if (isCallable(NativeRequest)) { + var RequestConstructor = function Request(input /* , init */) { + anInstance(this, RequestPrototype); + return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + }; + + RequestPrototype.constructor = RequestConstructor; + RequestConstructor.prototype = RequestPrototype; + + $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, { + Request: RequestConstructor + }); + } +} + +module.exports = { + URLSearchParams: URLSearchParamsConstructor, + getState: getInternalParamsState +}; + + +/***/ }), +/* 553 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// https://github.com/nodejs/node/issues/47505 +// https://github.com/denoland/deno/issues/18893 +var THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () { + URL.canParse(); +}); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9250 +var WRONG_ARITY = fails(function () { + return URL.canParse.length !== 1; +}); + +// `URL.canParse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, { + canParse: function canParse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return !!new URL(urlString, base); + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 554 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// `URL.parse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, { + parse: function parse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return new URL(urlString, base); + } catch (error) { + return null; + } + } +}); + + +/***/ }), +/* 555 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +$({ target: 'URL', proto: true, enumerable: true }, { + toJSON: function toJSON() { + return call(URL.prototype.toString, this); + } +}); + + +/***/ }), +/* 556 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(552); + + +/***/ }), +/* 557 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var append = uncurryThis(URLSearchParamsPrototype.append); +var $delete = uncurryThis(URLSearchParamsPrototype['delete']); +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); +var push = uncurryThis([].push); +var params = new $URLSearchParams('a=1&a=2&b=3'); + +params['delete']('a', 1); +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +params['delete']('b', undefined); + +if (params + '' !== 'a=2') { + defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $delete(this, name); + var entries = []; + forEach(this, function (v, k) { // also validates `this` + push(entries, { key: k, value: v }); + }); + validateArgumentsLength(length, 1); + var key = toString(name); + var value = toString($value); + var index = 0; + var dindex = 0; + var found = false; + var entriesLength = entries.length; + var entry; + while (index < entriesLength) { + entry = entries[index++]; + if (found || entry.key === key) { + found = true; + $delete(this, entry.key); + } else dindex++; + } + while (dindex < entriesLength) { + entry = entries[dindex++]; + if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value); + } + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 558 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var getAll = uncurryThis(URLSearchParamsPrototype.getAll); +var $has = uncurryThis(URLSearchParamsPrototype.has); +var params = new $URLSearchParams('a=1'); + +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +if (params.has('a', 2) || !params.has('a', undefined)) { + defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $has(this, name); + var values = getAll(this, name); // also validates `this` + validateArgumentsLength(length, 1); + var value = toString($value); + var index = 0; + while (index < values.length) { + if (values[index++] === value) return true; + } return false; + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 559 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var URLSearchParamsPrototype = URLSearchParams.prototype; +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) { + defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + var count = 0; + forEach(this, function () { count++; }); + return count; + }, + configurable: true, + enumerable: true + }); +} + + +/***/ }), +/* 560 */ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + bb: function() { return /* reexport */ bb; }, + "default": function() { return /* reexport */ bb; } +}); + +// NAMESPACE OBJECT: ./src/config/resolver/interaction.ts +var resolver_interaction_namespaceObject = {}; +__webpack_require__.r(resolver_interaction_namespaceObject); +__webpack_require__.d(resolver_interaction_namespaceObject, { + selection: function() { return selectionModule; }, + subchart: function() { return subchartModule; }, + zoom: function() { return zoomModule; } +}); + +// NAMESPACE OBJECT: ./src/config/resolver/shape.ts +var resolver_shape_namespaceObject = {}; +__webpack_require__.r(resolver_shape_namespaceObject); +__webpack_require__.d(resolver_shape_namespaceObject, { + area: function() { return resolver_shape_area; }, + areaLineRange: function() { return areaLineRange; }, + areaSpline: function() { return areaSpline; }, + areaSplineRange: function() { return areaSplineRange; }, + areaStep: function() { return areaStep; }, + bar: function() { return resolver_shape_bar; }, + bubble: function() { return resolver_shape_bubble; }, + candlestick: function() { return resolver_shape_candlestick; }, + donut: function() { return shape_donut; }, + funnel: function() { return resolver_shape_funnel; }, + gauge: function() { return resolver_shape_gauge; }, + line: function() { return resolver_shape_line; }, + pie: function() { return resolver_shape_pie; }, + polar: function() { return resolver_shape_polar; }, + radar: function() { return resolver_shape_radar; }, + scatter: function() { return shape_scatter; }, + spline: function() { return shape_spline; }, + step: function() { return shape_step; }, + treemap: function() { return resolver_shape_treemap; } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selector.js +function none() { +} +/* harmony default export */ function selector(selector) { + return selector == null ? none : function() { + return this.querySelector(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/select.js + + +/* harmony default export */ function selection_select(select) { + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/array.js +function array(x) { + return x == null ? [] : Array.isArray(x) ? x : Array.from(x); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selectorAll.js +function empty() { + return []; +} +/* harmony default export */ function selectorAll(selector) { + return selector == null ? empty : function() { + return this.querySelectorAll(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectAll.js + + + +function arrayAll(select) { + return function() { + return array(select.apply(this, arguments)); + }; +} +/* harmony default export */ function selectAll(select) { + if (typeof select === "function") + select = arrayAll(select); + else + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + subgroups.push(select.call(node, node.__data__, i, group)); + parents.push(node); + } + } + } + return new Selection(subgroups, parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/matcher.js +/* harmony default export */ function matcher(selector) { + return function() { + return this.matches(selector); + }; +} +function childMatcher(selector) { + return function(node) { + return node.matches(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChild.js + +var find = Array.prototype.find; +function childFind(match) { + return function() { + return find.call(this.children, match); + }; +} +function childFirst() { + return this.firstElementChild; +} +/* harmony default export */ function selectChild(match) { + return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChildren.js + +var filter = Array.prototype.filter; +function children() { + return Array.from(this.children); +} +function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; +} +/* harmony default export */ function selectChildren(match) { + return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/filter.js + + +/* harmony default export */ function selection_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sparse.js +/* harmony default export */ function sparse(update) { + return new Array(update.length); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/enter.js + + +/* harmony default export */ function enter() { + return new Selection(this._enter || this._groups.map(sparse), this._parents); +} +function EnterNode(parent, datum) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum; +} +EnterNode.prototype = { + constructor: EnterNode, + appendChild: function(child) { + return this._parent.insertBefore(child, this._next); + }, + insertBefore: function(child, next) { + return this._parent.insertBefore(child, next); + }, + querySelector: function(selector) { + return this._parent.querySelector(selector); + }, + querySelectorAll: function(selector) { + return this._parent.querySelectorAll(selector); + } +}; + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/constant.js +/* harmony default export */ function constant(x) { + return function() { + return x; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/data.js + + + +function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, node, groupLength = group.length, dataLength = data.length; + for (; i < dataLength; ++i) { + if (node = group[i]) { + node.__data__ = data[i]; + update[i] = node; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (; i < groupLength; ++i) { + if (node = group[i]) { + exit[i] = node; + } + } +} +function bindKey(parent, group, enter, update, exit, data, key) { + var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue; + for (i = 0; i < groupLength; ++i) { + if (node = group[i]) { + keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + } + } + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node = nodeByKeyValue.get(keyValue)) { + update[i] = node; + node.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (i = 0; i < groupLength; ++i) { + if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) { + exit[i] = node; + } + } +} +function datum(node) { + return node.__data__; +} +/* harmony default export */ function data(value, key) { + if (!arguments.length) + return Array.from(this, datum); + var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups; + if (typeof value !== "function") + value = constant(value); + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength); + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) + i1 = i0 + 1; + while (!(next = updateGroup[i1]) && ++i1 < dataLength) + ; + previous._next = next || null; + } + } + } + update = new Selection(update, parents); + update._enter = enter; + update._exit = exit; + return update; +} +function arraylike(data) { + return typeof data === "object" && "length" in data ? data : Array.from(data); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/exit.js + + +/* harmony default export */ function exit() { + return new Selection(this._exit || this._groups.map(sparse), this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/join.js +/* harmony default export */ function join(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + if (typeof onenter === "function") { + enter = onenter(enter); + if (enter) + enter = enter.selection(); + } else { + enter = enter.append(onenter + ""); + } + if (onupdate != null) { + update = onupdate(update); + if (update) + update = update.selection(); + } + if (onexit == null) + exit.remove(); + else + onexit(exit); + return enter && update ? enter.merge(update).order() : update; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/merge.js + +/* harmony default export */ function merge(context) { + var selection = context.selection ? context.selection() : context; + for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Selection(merges, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/order.js +/* harmony default export */ function order() { + for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) { + for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && node.compareDocumentPosition(next) ^ 4) + next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sort.js + +/* harmony default export */ function sort(compare) { + if (!compare) + compare = ascending; + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group[i]) { + sortgroup[i] = node; + } + } + sortgroup.sort(compareNode); + } + return new Selection(sortgroups, this._parents).order(); +} +function ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/call.js +/* harmony default export */ function call() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/nodes.js +/* harmony default export */ function nodes() { + return Array.from(this); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/node.js +/* harmony default export */ function node() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node = group[i]; + if (node) + return node; + } + } + return null; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/size.js +/* harmony default export */ function size() { + let size = 0; + for (const node of this) + ++size; + return size; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/empty.js +/* harmony default export */ function selection_empty() { + return !this.node(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/each.js +/* harmony default export */ function each(callback) { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + callback.call(node, node.__data__, i, group); + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespaces.js +var xhtml = "http://www.w3.org/1999/xhtml"; +/* harmony default export */ var namespaces = ({ + svg: "http://www.w3.org/2000/svg", + xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespace.js + +/* harmony default export */ function namespace(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") + name = name.slice(i + 1); + return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name } : name; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/attr.js + +function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attrConstant(name, value) { + return function() { + this.setAttribute(name, value); + }; +} +function attrConstantNS(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; +} +function attrFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttribute(name); + else + this.setAttribute(name, v); + }; +} +function attrFunctionNS(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttributeNS(fullname.space, fullname.local); + else + this.setAttributeNS(fullname.space, fullname.local, v); + }; +} +/* harmony default export */ function attr(name, value) { + var fullname = namespace(name); + if (arguments.length < 2) { + var node = this.node(); + return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname); + } + return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === "function" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/window.js +/* harmony default export */ function src_window(node) { + return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/style.js + +function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function styleConstant(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; +} +function styleFunction(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.style.removeProperty(name); + else + this.style.setProperty(name, v, priority); + }; +} +/* harmony default export */ function style(name, value, priority) { + return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name); +} +function styleValue(node, name) { + return node.style.getPropertyValue(name) || src_window(node).getComputedStyle(node, null).getPropertyValue(name); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/property.js +function propertyRemove(name) { + return function() { + delete this[name]; + }; +} +function propertyConstant(name, value) { + return function() { + this[name] = value; + }; +} +function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + delete this[name]; + else + this[name] = v; + }; +} +/* harmony default export */ function property(name, value) { + return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/classed.js +function classArray(string) { + return string.trim().split(/^|\s+/); +} +function classList(node) { + return node.classList || new ClassList(node); +} +function ClassList(node) { + this._node = node; + this._names = classArray(node.getAttribute("class") || ""); +} +ClassList.prototype = { + add: function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + remove: function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + contains: function(name) { + return this._names.indexOf(name) >= 0; + } +}; +function classedAdd(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.add(names[i]); +} +function classedRemove(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.remove(names[i]); +} +function classedTrue(names) { + return function() { + classedAdd(this, names); + }; +} +function classedFalse(names) { + return function() { + classedRemove(this, names); + }; +} +function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; +} +/* harmony default export */ function classed(name, value) { + var names = classArray(name + ""); + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) + if (!list.contains(names[i])) + return false; + return true; + } + return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/text.js +function textRemove() { + this.textContent = ""; +} +function textConstant(value) { + return function() { + this.textContent = value; + }; +} +function textFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; +} +/* harmony default export */ function selection_text(value) { + return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction : textConstant)(value)) : this.node().textContent; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/html.js +function htmlRemove() { + this.innerHTML = ""; +} +function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; +} +function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; +} +/* harmony default export */ function html(value) { + return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/raise.js +function raise() { + if (this.nextSibling) + this.parentNode.appendChild(this); +} +/* harmony default export */ function selection_raise() { + return this.each(raise); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/lower.js +function lower() { + if (this.previousSibling) + this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +/* harmony default export */ function selection_lower() { + return this.each(lower); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/creator.js + + +function creatorInherit(name) { + return function() { + var document = this.ownerDocument, uri = this.namespaceURI; + return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name); + }; +} +function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; +} +/* harmony default export */ function creator(name) { + var fullname = namespace(name); + return (fullname.local ? creatorFixed : creatorInherit)(fullname); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/append.js + +/* harmony default export */ function append(name) { + var create = typeof name === "function" ? name : creator(name); + return this.select(function() { + return this.appendChild(create.apply(this, arguments)); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/insert.js + + +function constantNull() { + return null; +} +/* harmony default export */ function insert(name, before) { + var create = typeof name === "function" ? name : creator(name), select = before == null ? constantNull : typeof before === "function" ? before : selector(before); + return this.select(function() { + return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/remove.js +function remove() { + var parent = this.parentNode; + if (parent) + parent.removeChild(this); +} +/* harmony default export */ function selection_remove() { + return this.each(remove); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/clone.js +function selection_cloneShallow() { + var clone = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +function selection_cloneDeep() { + var clone = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +/* harmony default export */ function clone(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/datum.js +/* harmony default export */ function selection_datum(value) { + return arguments.length ? this.property("__data__", value) : this.node().__data__; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/on.js +function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; +} +function parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + return { type: t, name }; + }); +} +function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) + return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) + on.length = i; + else + delete this.__on; + }; +} +function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) + for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = { type: typename.type, name: typename.name, value, listener, options }; + if (!on) + this.__on = [o]; + else + on.push(o); + }; +} +/* harmony default export */ function on(typename, value, options) { + var typenames = parseTypenames(typename + ""), i, n = typenames.length, t; + if (arguments.length < 2) { + var on = this.node().__on; + if (on) + for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) + this.each(on(typenames[i], value, options)); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/dispatch.js + +function dispatchEvent(node, type, params) { + var window = src_window(node), event = window.CustomEvent; + if (typeof event === "function") { + event = new event(type, params); + } else { + event = window.document.createEvent("Event"); + if (params) + event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; + else + event.initEvent(type, false, false); + } + node.dispatchEvent(event); +} +function dispatchConstant(type, params) { + return function() { + return dispatchEvent(this, type, params); + }; +} +function dispatchFunction(type, params) { + return function() { + return dispatchEvent(this, type, params.apply(this, arguments)); + }; +} +/* harmony default export */ function dispatch(type, params) { + return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type, params)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/iterator.js +/* harmony default export */ function* iterator() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + yield node; + } + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/index.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var root = [null]; +function Selection(groups, parents) { + this._groups = groups; + this._parents = parents; +} +function selection() { + return new Selection([[document.documentElement]], root); +} +function selection_selection() { + return this; +} +Selection.prototype = selection.prototype = { + constructor: Selection, + select: selection_select, + selectAll: selectAll, + selectChild: selectChild, + selectChildren: selectChildren, + filter: selection_filter, + data: data, + enter: enter, + exit: exit, + join: join, + merge: merge, + selection: selection_selection, + order: order, + sort: sort, + call: call, + nodes: nodes, + node: node, + size: size, + empty: selection_empty, + each: each, + attr: attr, + style: style, + property: property, + classed: classed, + text: selection_text, + html: html, + raise: selection_raise, + lower: selection_lower, + append: append, + insert: insert, + remove: selection_remove, + clone: clone, + datum: selection_datum, + on: on, + dispatch: dispatch, + [Symbol.iterator]: iterator +}; +/* harmony default export */ var src_selection = (selection); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/select.js + +/* harmony default export */ function src_select(selector) { + return typeof selector === "string" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root); +} + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/interval.js +const t0 = /* @__PURE__ */ new Date(), t1 = /* @__PURE__ */ new Date(); +function timeInterval(floori, offseti, count, field) { + function interval(date) { + return floori(date = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+date)), date; + } + interval.floor = (date) => { + return floori(date = /* @__PURE__ */ new Date(+date)), date; + }; + interval.ceil = (date) => { + return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date; + }; + interval.round = (date) => { + const d0 = interval(date), d1 = interval.ceil(date); + return date - d0 < d1 - date ? d0 : d1; + }; + interval.offset = (date, step) => { + return offseti(date = /* @__PURE__ */ new Date(+date), step == null ? 1 : Math.floor(step)), date; + }; + interval.range = (start, stop, step) => { + const range = []; + start = interval.ceil(start); + step = step == null ? 1 : Math.floor(step); + if (!(start < stop) || !(step > 0)) + return range; + let previous; + do + range.push(previous = /* @__PURE__ */ new Date(+start)), offseti(start, step), floori(start); + while (previous < start && start < stop); + return range; + }; + interval.filter = (test) => { + return timeInterval((date) => { + if (date >= date) + while (floori(date), !test(date)) + date.setTime(date - 1); + }, (date, step) => { + if (date >= date) { + if (step < 0) + while (++step <= 0) { + while (offseti(date, -1), !test(date)) { + } + } + else + while (--step >= 0) { + while (offseti(date, 1), !test(date)) { + } + } + } + }); + }; + if (count) { + interval.count = (start, end) => { + t0.setTime(+start), t1.setTime(+end); + floori(t0), floori(t1); + return Math.floor(count(t0, t1)); + }; + interval.every = (step) => { + step = Math.floor(step); + return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? (d) => field(d) % step === 0 : (d) => interval.count(0, d) % step === 0); + }; + } + return interval; +} + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/duration.js +const durationSecond = 1e3; +const durationMinute = durationSecond * 60; +const durationHour = durationMinute * 60; +const durationDay = durationHour * 24; +const durationWeek = durationDay * 7; +const durationMonth = durationDay * 30; +const durationYear = durationDay * 365; + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/week.js + + +function timeWeekday(i) { + return timeInterval((date) => { + date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7); + date.setHours(0, 0, 0, 0); + }, (date, step) => { + date.setDate(date.getDate() + step * 7); + }, (start, end) => { + return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek; + }); +} +const timeSunday = timeWeekday(0); +const timeMonday = timeWeekday(1); +const timeTuesday = timeWeekday(2); +const timeWednesday = timeWeekday(3); +const timeThursday = timeWeekday(4); +const timeFriday = timeWeekday(5); +const timeSaturday = timeWeekday(6); +const timeSundays = timeSunday.range; +const timeMondays = timeMonday.range; +const timeTuesdays = timeTuesday.range; +const timeWednesdays = timeWednesday.range; +const timeThursdays = timeThursday.range; +const timeFridays = timeFriday.range; +const timeSaturdays = timeSaturday.range; +function utcWeekday(i) { + return timeInterval((date) => { + date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7); + date.setUTCHours(0, 0, 0, 0); + }, (date, step) => { + date.setUTCDate(date.getUTCDate() + step * 7); + }, (start, end) => { + return (end - start) / durationWeek; + }); +} +const utcSunday = utcWeekday(0); +const utcMonday = utcWeekday(1); +const utcTuesday = utcWeekday(2); +const utcWednesday = utcWeekday(3); +const utcThursday = utcWeekday(4); +const utcFriday = utcWeekday(5); +const utcSaturday = utcWeekday(6); +const utcSundays = utcSunday.range; +const utcMondays = utcMonday.range; +const utcTuesdays = utcTuesday.range; +const utcWednesdays = utcWednesday.range; +const utcThursdays = utcThursday.range; +const utcFridays = utcFriday.range; +const utcSaturdays = utcSaturday.range; + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/day.js + + +const timeDay = timeInterval( + (date) => date.setHours(0, 0, 0, 0), + (date, step) => date.setDate(date.getDate() + step), + (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay, + (date) => date.getDate() - 1 +); +const timeDays = timeDay.range; +const utcDay = timeInterval((date) => { + date.setUTCHours(0, 0, 0, 0); +}, (date, step) => { + date.setUTCDate(date.getUTCDate() + step); +}, (start, end) => { + return (end - start) / durationDay; +}, (date) => { + return date.getUTCDate() - 1; +}); +const utcDays = utcDay.range; +const unixDay = timeInterval((date) => { + date.setUTCHours(0, 0, 0, 0); +}, (date, step) => { + date.setUTCDate(date.getUTCDate() + step); +}, (start, end) => { + return (end - start) / durationDay; +}, (date) => { + return Math.floor(date / durationDay); +}); +const unixDays = unixDay.range; + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/year.js + +const timeYear = timeInterval((date) => { + date.setMonth(0, 1); + date.setHours(0, 0, 0, 0); +}, (date, step) => { + date.setFullYear(date.getFullYear() + step); +}, (start, end) => { + return end.getFullYear() - start.getFullYear(); +}, (date) => { + return date.getFullYear(); +}); +timeYear.every = (k) => { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => { + date.setFullYear(Math.floor(date.getFullYear() / k) * k); + date.setMonth(0, 1); + date.setHours(0, 0, 0, 0); + }, (date, step) => { + date.setFullYear(date.getFullYear() + step * k); + }); +}; +const timeYears = timeYear.range; +const utcYear = timeInterval((date) => { + date.setUTCMonth(0, 1); + date.setUTCHours(0, 0, 0, 0); +}, (date, step) => { + date.setUTCFullYear(date.getUTCFullYear() + step); +}, (start, end) => { + return end.getUTCFullYear() - start.getUTCFullYear(); +}, (date) => { + return date.getUTCFullYear(); +}); +utcYear.every = (k) => { + return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => { + date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k); + date.setUTCMonth(0, 1); + date.setUTCHours(0, 0, 0, 0); + }, (date, step) => { + date.setUTCFullYear(date.getUTCFullYear() + step * k); + }); +}; +const utcYears = utcYear.range; + +;// CONCATENATED MODULE: ./node_modules/d3-time-format/src/locale.js + +function localDate(d) { + if (0 <= d.y && d.y < 100) { + var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L); + date.setFullYear(d.y); + return date; + } + return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L); +} +function utcDate(d) { + if (0 <= d.y && d.y < 100) { + var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L)); + date.setUTCFullYear(d.y); + return date; + } + return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L)); +} +function newDate(y, m, d) { + return { y, m, d, H: 0, M: 0, S: 0, L: 0 }; +} +function formatLocale(locale) { + var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_weekdays = locale.days, locale_shortWeekdays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths; + var periodRe = formatRe(locale_periods), periodLookup = formatLookup(locale_periods), weekdayRe = formatRe(locale_weekdays), weekdayLookup = formatLookup(locale_weekdays), shortWeekdayRe = formatRe(locale_shortWeekdays), shortWeekdayLookup = formatLookup(locale_shortWeekdays), monthRe = formatRe(locale_months), monthLookup = formatLookup(locale_months), shortMonthRe = formatRe(locale_shortMonths), shortMonthLookup = formatLookup(locale_shortMonths); + var formats = { + "a": formatShortWeekday, + "A": formatWeekday, + "b": formatShortMonth, + "B": formatMonth, + "c": null, + "d": formatDayOfMonth, + "e": formatDayOfMonth, + "f": formatMicroseconds, + "g": formatYearISO, + "G": formatFullYearISO, + "H": formatHour24, + "I": formatHour12, + "j": formatDayOfYear, + "L": formatMilliseconds, + "m": formatMonthNumber, + "M": formatMinutes, + "p": formatPeriod, + "q": formatQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatSeconds, + "u": formatWeekdayNumberMonday, + "U": formatWeekNumberSunday, + "V": formatWeekNumberISO, + "w": formatWeekdayNumberSunday, + "W": formatWeekNumberMonday, + "x": null, + "X": null, + "y": formatYear, + "Y": formatFullYear, + "Z": formatZone, + "%": formatLiteralPercent + }; + var utcFormats = { + "a": formatUTCShortWeekday, + "A": formatUTCWeekday, + "b": formatUTCShortMonth, + "B": formatUTCMonth, + "c": null, + "d": formatUTCDayOfMonth, + "e": formatUTCDayOfMonth, + "f": formatUTCMicroseconds, + "g": formatUTCYearISO, + "G": formatUTCFullYearISO, + "H": formatUTCHour24, + "I": formatUTCHour12, + "j": formatUTCDayOfYear, + "L": formatUTCMilliseconds, + "m": formatUTCMonthNumber, + "M": formatUTCMinutes, + "p": formatUTCPeriod, + "q": formatUTCQuarter, + "Q": formatUnixTimestamp, + "s": formatUnixTimestampSeconds, + "S": formatUTCSeconds, + "u": formatUTCWeekdayNumberMonday, + "U": formatUTCWeekNumberSunday, + "V": formatUTCWeekNumberISO, + "w": formatUTCWeekdayNumberSunday, + "W": formatUTCWeekNumberMonday, + "x": null, + "X": null, + "y": formatUTCYear, + "Y": formatUTCFullYear, + "Z": formatUTCZone, + "%": formatLiteralPercent + }; + var parses = { + "a": parseShortWeekday, + "A": parseWeekday, + "b": parseShortMonth, + "B": parseMonth, + "c": parseLocaleDateTime, + "d": parseDayOfMonth, + "e": parseDayOfMonth, + "f": parseMicroseconds, + "g": parseYear, + "G": parseFullYear, + "H": parseHour24, + "I": parseHour24, + "j": parseDayOfYear, + "L": parseMilliseconds, + "m": parseMonthNumber, + "M": parseMinutes, + "p": parsePeriod, + "q": parseQuarter, + "Q": parseUnixTimestamp, + "s": parseUnixTimestampSeconds, + "S": parseSeconds, + "u": parseWeekdayNumberMonday, + "U": parseWeekNumberSunday, + "V": parseWeekNumberISO, + "w": parseWeekdayNumberSunday, + "W": parseWeekNumberMonday, + "x": parseLocaleDate, + "X": parseLocaleTime, + "y": parseYear, + "Y": parseFullYear, + "Z": parseZone, + "%": parseLiteralPercent + }; + formats.x = newFormat(locale_date, formats); + formats.X = newFormat(locale_time, formats); + formats.c = newFormat(locale_dateTime, formats); + utcFormats.x = newFormat(locale_date, utcFormats); + utcFormats.X = newFormat(locale_time, utcFormats); + utcFormats.c = newFormat(locale_dateTime, utcFormats); + function newFormat(specifier, formats2) { + return function(date) { + var string = [], i = -1, j = 0, n = specifier.length, c, pad2, format; + if (!(date instanceof Date)) + date = /* @__PURE__ */ new Date(+date); + while (++i < n) { + if (specifier.charCodeAt(i) === 37) { + string.push(specifier.slice(j, i)); + if ((pad2 = pads[c = specifier.charAt(++i)]) != null) + c = specifier.charAt(++i); + else + pad2 = c === "e" ? " " : "0"; + if (format = formats2[c]) + c = format(date, pad2); + string.push(c); + j = i + 1; + } + } + string.push(specifier.slice(j, i)); + return string.join(""); + }; + } + function newParse(specifier, Z) { + return function(string) { + var d = newDate(1900, void 0, 1), i = parseSpecifier(d, specifier, string += "", 0), week, day; + if (i != string.length) + return null; + if ("Q" in d) + return new Date(d.Q); + if ("s" in d) + return new Date(d.s * 1e3 + ("L" in d ? d.L : 0)); + if (Z && !("Z" in d)) + d.Z = 0; + if ("p" in d) + d.H = d.H % 12 + d.p * 12; + if (d.m === void 0) + d.m = "q" in d ? d.q : 0; + if ("V" in d) { + if (d.V < 1 || d.V > 53) + return null; + if (!("w" in d)) + d.w = 1; + if ("Z" in d) { + week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay(); + week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week); + week = utcDay.offset(week, (d.V - 1) * 7); + d.y = week.getUTCFullYear(); + d.m = week.getUTCMonth(); + d.d = week.getUTCDate() + (d.w + 6) % 7; + } else { + week = localDate(newDate(d.y, 0, 1)), day = week.getDay(); + week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week); + week = timeDay.offset(week, (d.V - 1) * 7); + d.y = week.getFullYear(); + d.m = week.getMonth(); + d.d = week.getDate() + (d.w + 6) % 7; + } + } else if ("W" in d || "U" in d) { + if (!("w" in d)) + d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0; + day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay(); + d.m = 0; + d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7; + } + if ("Z" in d) { + d.H += d.Z / 100 | 0; + d.M += d.Z % 100; + return utcDate(d); + } + return localDate(d); + }; + } + function parseSpecifier(d, specifier, string, j) { + var i = 0, n = specifier.length, m = string.length, c, parse; + while (i < n) { + if (j >= m) + return -1; + c = specifier.charCodeAt(i++); + if (c === 37) { + c = specifier.charAt(i++); + parse = parses[c in pads ? specifier.charAt(i++) : c]; + if (!parse || (j = parse(d, string, j)) < 0) + return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; + } + function parsePeriod(d, string, i) { + var n = periodRe.exec(string.slice(i)); + return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function parseShortWeekday(d, string, i) { + var n = shortWeekdayRe.exec(string.slice(i)); + return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function parseWeekday(d, string, i) { + var n = weekdayRe.exec(string.slice(i)); + return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function parseShortMonth(d, string, i) { + var n = shortMonthRe.exec(string.slice(i)); + return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function parseMonth(d, string, i) { + var n = monthRe.exec(string.slice(i)); + return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1; + } + function parseLocaleDateTime(d, string, i) { + return parseSpecifier(d, locale_dateTime, string, i); + } + function parseLocaleDate(d, string, i) { + return parseSpecifier(d, locale_date, string, i); + } + function parseLocaleTime(d, string, i) { + return parseSpecifier(d, locale_time, string, i); + } + function formatShortWeekday(d) { + return locale_shortWeekdays[d.getDay()]; + } + function formatWeekday(d) { + return locale_weekdays[d.getDay()]; + } + function formatShortMonth(d) { + return locale_shortMonths[d.getMonth()]; + } + function formatMonth(d) { + return locale_months[d.getMonth()]; + } + function formatPeriod(d) { + return locale_periods[+(d.getHours() >= 12)]; + } + function formatQuarter(d) { + return 1 + ~~(d.getMonth() / 3); + } + function formatUTCShortWeekday(d) { + return locale_shortWeekdays[d.getUTCDay()]; + } + function formatUTCWeekday(d) { + return locale_weekdays[d.getUTCDay()]; + } + function formatUTCShortMonth(d) { + return locale_shortMonths[d.getUTCMonth()]; + } + function formatUTCMonth(d) { + return locale_months[d.getUTCMonth()]; + } + function formatUTCPeriod(d) { + return locale_periods[+(d.getUTCHours() >= 12)]; + } + function formatUTCQuarter(d) { + return 1 + ~~(d.getUTCMonth() / 3); + } + return { + format: function(specifier) { + var f = newFormat(specifier += "", formats); + f.toString = function() { + return specifier; + }; + return f; + }, + parse: function(specifier) { + var p = newParse(specifier += "", false); + p.toString = function() { + return specifier; + }; + return p; + }, + utcFormat: function(specifier) { + var f = newFormat(specifier += "", utcFormats); + f.toString = function() { + return specifier; + }; + return f; + }, + utcParse: function(specifier) { + var p = newParse(specifier += "", true); + p.toString = function() { + return specifier; + }; + return p; + } + }; +} +var pads = { "-": "", "_": " ", "0": "0" }, numberRe = /^\s*\d+/, percentRe = /^%/, requoteRe = /[\\^$*+?|[\]().{}]/g; +function pad(value, fill, width) { + var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length; + return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string); +} +function requote(s) { + return s.replace(requoteRe, "\\$&"); +} +function formatRe(names) { + return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i"); +} +function formatLookup(names) { + return new Map(names.map((name, i) => [name.toLowerCase(), i])); +} +function parseWeekdayNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.w = +n[0], i + n[0].length) : -1; +} +function parseWeekdayNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.u = +n[0], i + n[0].length) : -1; +} +function parseWeekNumberSunday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.U = +n[0], i + n[0].length) : -1; +} +function parseWeekNumberISO(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.V = +n[0], i + n[0].length) : -1; +} +function parseWeekNumberMonday(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.W = +n[0], i + n[0].length) : -1; +} +function parseFullYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 4)); + return n ? (d.y = +n[0], i + n[0].length) : -1; +} +function parseYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3), i + n[0].length) : -1; +} +function parseZone(d, string, i) { + var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6)); + return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1; +} +function parseQuarter(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 1)); + return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1; +} +function parseMonthNumber(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.m = n[0] - 1, i + n[0].length) : -1; +} +function parseDayOfMonth(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.d = +n[0], i + n[0].length) : -1; +} +function parseDayOfYear(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1; +} +function parseHour24(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.H = +n[0], i + n[0].length) : -1; +} +function parseMinutes(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.M = +n[0], i + n[0].length) : -1; +} +function parseSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 2)); + return n ? (d.S = +n[0], i + n[0].length) : -1; +} +function parseMilliseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 3)); + return n ? (d.L = +n[0], i + n[0].length) : -1; +} +function parseMicroseconds(d, string, i) { + var n = numberRe.exec(string.slice(i, i + 6)); + return n ? (d.L = Math.floor(n[0] / 1e3), i + n[0].length) : -1; +} +function parseLiteralPercent(d, string, i) { + var n = percentRe.exec(string.slice(i, i + 1)); + return n ? i + n[0].length : -1; +} +function parseUnixTimestamp(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.Q = +n[0], i + n[0].length) : -1; +} +function parseUnixTimestampSeconds(d, string, i) { + var n = numberRe.exec(string.slice(i)); + return n ? (d.s = +n[0], i + n[0].length) : -1; +} +function formatDayOfMonth(d, p) { + return pad(d.getDate(), p, 2); +} +function formatHour24(d, p) { + return pad(d.getHours(), p, 2); +} +function formatHour12(d, p) { + return pad(d.getHours() % 12 || 12, p, 2); +} +function formatDayOfYear(d, p) { + return pad(1 + timeDay.count(timeYear(d), d), p, 3); +} +function formatMilliseconds(d, p) { + return pad(d.getMilliseconds(), p, 3); +} +function formatMicroseconds(d, p) { + return formatMilliseconds(d, p) + "000"; +} +function formatMonthNumber(d, p) { + return pad(d.getMonth() + 1, p, 2); +} +function formatMinutes(d, p) { + return pad(d.getMinutes(), p, 2); +} +function formatSeconds(d, p) { + return pad(d.getSeconds(), p, 2); +} +function formatWeekdayNumberMonday(d) { + var day = d.getDay(); + return day === 0 ? 7 : day; +} +function formatWeekNumberSunday(d, p) { + return pad(timeSunday.count(timeYear(d) - 1, d), p, 2); +} +function dISO(d) { + var day = d.getDay(); + return day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d); +} +function formatWeekNumberISO(d, p) { + d = dISO(d); + return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2); +} +function formatWeekdayNumberSunday(d) { + return d.getDay(); +} +function formatWeekNumberMonday(d, p) { + return pad(timeMonday.count(timeYear(d) - 1, d), p, 2); +} +function formatYear(d, p) { + return pad(d.getFullYear() % 100, p, 2); +} +function formatYearISO(d, p) { + d = dISO(d); + return pad(d.getFullYear() % 100, p, 2); +} +function formatFullYear(d, p) { + return pad(d.getFullYear() % 1e4, p, 4); +} +function formatFullYearISO(d, p) { + var day = d.getDay(); + d = day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d); + return pad(d.getFullYear() % 1e4, p, 4); +} +function formatZone(d) { + var z = d.getTimezoneOffset(); + return (z > 0 ? "-" : (z *= -1, "+")) + pad(z / 60 | 0, "0", 2) + pad(z % 60, "0", 2); +} +function formatUTCDayOfMonth(d, p) { + return pad(d.getUTCDate(), p, 2); +} +function formatUTCHour24(d, p) { + return pad(d.getUTCHours(), p, 2); +} +function formatUTCHour12(d, p) { + return pad(d.getUTCHours() % 12 || 12, p, 2); +} +function formatUTCDayOfYear(d, p) { + return pad(1 + utcDay.count(utcYear(d), d), p, 3); +} +function formatUTCMilliseconds(d, p) { + return pad(d.getUTCMilliseconds(), p, 3); +} +function formatUTCMicroseconds(d, p) { + return formatUTCMilliseconds(d, p) + "000"; +} +function formatUTCMonthNumber(d, p) { + return pad(d.getUTCMonth() + 1, p, 2); +} +function formatUTCMinutes(d, p) { + return pad(d.getUTCMinutes(), p, 2); +} +function formatUTCSeconds(d, p) { + return pad(d.getUTCSeconds(), p, 2); +} +function formatUTCWeekdayNumberMonday(d) { + var dow = d.getUTCDay(); + return dow === 0 ? 7 : dow; +} +function formatUTCWeekNumberSunday(d, p) { + return pad(utcSunday.count(utcYear(d) - 1, d), p, 2); +} +function UTCdISO(d) { + var day = d.getUTCDay(); + return day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d); +} +function formatUTCWeekNumberISO(d, p) { + d = UTCdISO(d); + return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2); +} +function formatUTCWeekdayNumberSunday(d) { + return d.getUTCDay(); +} +function formatUTCWeekNumberMonday(d, p) { + return pad(utcMonday.count(utcYear(d) - 1, d), p, 2); +} +function formatUTCYear(d, p) { + return pad(d.getUTCFullYear() % 100, p, 2); +} +function formatUTCYearISO(d, p) { + d = UTCdISO(d); + return pad(d.getUTCFullYear() % 100, p, 2); +} +function formatUTCFullYear(d, p) { + return pad(d.getUTCFullYear() % 1e4, p, 4); +} +function formatUTCFullYearISO(d, p) { + var day = d.getUTCDay(); + d = day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d); + return pad(d.getUTCFullYear() % 1e4, p, 4); +} +function formatUTCZone() { + return "+0000"; +} +function formatLiteralPercent() { + return "%"; +} +function formatUnixTimestamp(d) { + return +d; +} +function formatUnixTimestampSeconds(d) { + return Math.floor(+d / 1e3); +} + +;// CONCATENATED MODULE: ./node_modules/d3-time-format/src/defaultLocale.js + +var locale; +var timeFormat; +var timeParse; +var utcFormat; +var utcParse; +defaultLocale({ + dateTime: "%x, %X", + date: "%-m/%-d/%Y", + time: "%-I:%M:%S %p", + periods: ["AM", "PM"], + 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 defaultLocale(definition) { + locale = formatLocale(definition); + timeFormat = locale.format; + timeParse = locale.parse; + utcFormat = locale.utcFormat; + utcParse = locale.utcParse; + return locale; +} + +;// CONCATENATED MODULE: ./src/config/classes.ts +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +const $COMMON = { + button: "bb-button", + chart: "bb-chart", + empty: "bb-empty", + main: "bb-main", + target: "bb-target", + EXPANDED: "_expanded_" +}; +const $ARC = { + arc: "bb-arc", + arcLabelLine: "bb-arc-label-line", + arcRange: "bb-arc-range", + arcs: "bb-arcs", + chartArc: "bb-chart-arc", + chartArcs: "bb-chart-arcs", + chartArcsBackground: "bb-chart-arcs-background", + chartArcsTitle: "bb-chart-arcs-title", + needle: "bb-needle" +}; +const $AREA = { + area: "bb-area", + areas: "bb-areas" +}; +const $AXIS = { + axis: "bb-axis", + axisX: "bb-axis-x", + axisXLabel: "bb-axis-x-label", + axisY: "bb-axis-y", + axisY2: "bb-axis-y2", + axisY2Label: "bb-axis-y2-label", + axisYLabel: "bb-axis-y-label", + axisXTooltip: "bb-axis-x-tooltip", + axisYTooltip: "bb-axis-y-tooltip", + axisY2Tooltip: "bb-axis-y2-tooltip" +}; +const $BAR = { + bar: "bb-bar", + bars: "bb-bars", + chartBar: "bb-chart-bar", + chartBars: "bb-chart-bars" +}; +const $CANDLESTICK = { + candlestick: "bb-candlestick", + candlesticks: "bb-candlesticks", + chartCandlestick: "bb-chart-candlestick", + chartCandlesticks: "bb-chart-candlesticks", + valueDown: "bb-value-down", + valueUp: "bb-value-up" +}; +const $CIRCLE = { + chartCircles: "bb-chart-circles", + circle: "bb-circle", + circles: "bb-circles" +}; +const $COLOR = { + colorPattern: "bb-color-pattern", + colorScale: "bb-colorscale" +}; +const $DRAG = { + dragarea: "bb-dragarea", + INCLUDED: "_included_" +}; +const $FUNNEL = { + funnel: "bb-funnel", + chartFunnel: "bb-chart-funnel", + chartFunnels: "bb-chart-funnels", + funnelBackground: "bb-funnel-background" +}; +const $GAUGE = { + chartArcsGaugeMax: "bb-chart-arcs-gauge-max", + chartArcsGaugeMin: "bb-chart-arcs-gauge-min", + chartArcsGaugeUnit: "bb-chart-arcs-gauge-unit", + chartArcsGaugeTitle: "bb-chart-arcs-gauge-title", + gaugeValue: "bb-gauge-value" +}; +const $LEGEND = { + legend: "bb-legend", + legendBackground: "bb-legend-background", + legendItem: "bb-legend-item", + legendItemEvent: "bb-legend-item-event", + legendItemHidden: "bb-legend-item-hidden", + legendItemPoint: "bb-legend-item-point", + legendItemTile: "bb-legend-item-tile" +}; +const $LINE = { + chartLine: "bb-chart-line", + chartLines: "bb-chart-lines", + line: "bb-line", + lines: "bb-lines" +}; +const $EVENT = { + eventRect: "bb-event-rect", + eventRects: "bb-event-rects", + eventRectsMultiple: "bb-event-rects-multiple", + eventRectsSingle: "bb-event-rects-single" +}; +const $FOCUS = { + focused: "bb-focused", + defocused: "bb-defocused", + legendItemFocused: "bb-legend-item-focused", + xgridFocus: "bb-xgrid-focus", + ygridFocus: "bb-ygrid-focus" +}; +const $GRID = { + grid: "bb-grid", + gridLines: "bb-grid-lines", + xgrid: "bb-xgrid", + xgridLine: "bb-xgrid-line", + xgridLines: "bb-xgrid-lines", + xgrids: "bb-xgrids", + ygrid: "bb-ygrid", + ygridLine: "bb-ygrid-line", + ygridLines: "bb-ygrid-lines", + ygrids: "bb-ygrids" +}; +const $LEVEL = { + level: "bb-level", + levels: "bb-levels" +}; +const $RADAR = { + chartRadar: "bb-chart-radar", + chartRadars: "bb-chart-radars" +}; +const $REGION = { + region: "bb-region", + regions: "bb-regions" +}; +const $SELECT = { + selectedCircle: "bb-selected-circle", + selectedCircles: "bb-selected-circles", + SELECTED: "_selected_" +}; +const $SHAPE = { + shape: "bb-shape", + shapes: "bb-shapes" +}; +const $SUBCHART = { + brush: "bb-brush", + subchart: "bb-subchart" +}; +const $TEXT = { + chartText: "bb-chart-text", + chartTexts: "bb-chart-texts", + text: "bb-text", + texts: "bb-texts", + title: "bb-title", + TextOverlapping: "text-overlapping" +}; +const $TOOLTIP = { + tooltip: "bb-tooltip", + tooltipContainer: "bb-tooltip-container", + tooltipName: "bb-tooltip-name" +}; +const $TREEMAP = { + treemap: "bb-treemap", + chartTreemap: "bb-chart-treemap", + chartTreemaps: "bb-chart-treemaps" +}; +const $ZOOM = { + buttonZoomReset: "bb-zoom-reset", + zoomBrush: "bb-zoom-brush" +}; +/* harmony default export */ var classes = (__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, $COMMON), $ARC), $AREA), $AXIS), $BAR), $CANDLESTICK), $CIRCLE), $COLOR), $DRAG), $GAUGE), $LEGEND), $LINE), $EVENT), $FOCUS), $FUNNEL), $GRID), $RADAR), $REGION), $SELECT), $SHAPE), $SUBCHART), $TEXT), $TOOLTIP), $TREEMAP), $ZOOM)); + +;// CONCATENATED MODULE: ./src/config/Options/common/boost.ts +/* harmony default export */ var boost = ({ + /** + * Set boost options + * @name boost + * @memberof Options + * @type {object} + * @property {object} boost boost object + * @property {boolean} [boost.useCssRule=false] Avoid setting inline styles for each shape elements. + * - **NOTE:** + * - Will append <style> to the head tag and will add shpes' CSS rules dynamically. + * - For now, covers colors related properties (fill, stroke, etc.) only. + * @property {boolean} [boost.useWorker=false] Use Web Worker as possible for processing. + * - **NOTE:** + * - For now, only applies for data conversion at the initial time. + * - As of Web Worker's async nature, handling chart instance synchrously is not recommended. + * @example + * boost: { + * useCssRule: true, + * useWorker: false + * } + */ + boost_useCssRule: false, + boost_useWorker: false +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/color.ts +/* harmony default export */ var color = ({ + /** + * Set color of the data values + * @name color + * @memberof Options + * @type {object} + * @property {object} color color object + * @property {string|object|Function} [color.onover] Set the color value for each data point when mouse/touch onover event occurs. + * @property {Array|null} [color.pattern=[]] Set custom color pattern. Passing `null` will not set a color for these elements, which requires the usage of custom CSS-based theming to work. + * @property {Function} [color.tiles] if defined, allows use svg's patterns to fill data area. It should return an array of [SVGPatternElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement). + * - **NOTE:** The pattern element's id will be defined as `bb-colorize-pattern-$COLOR-VALUE`.<br> + * ex. When color pattern value is `['red', '#fff']` and defined 2 patterns,then ids for pattern elements are:<br> + * - `bb-colorize-pattern-red` + * - `bb-colorize-pattern-fff` + * @property {object} [color.threshold] color threshold for gauge and tooltip color + * @property {string} [color.threshold.unit] If set to `value`, the threshold will be based on the data value. Otherwise it'll be based on equation of the `threshold.max` option value. + * @property {Array} [color.threshold.values] Threshold values for each steps + * @property {number} [color.threshold.max=100] The base value to determine threshold step value condition. When the given value is 15 and max 10, then the value for threshold is `15*100/10`. + * @example + * color: { + * pattern: ["#1f77b4", "#aec7e8", ...], + * + * // Set colors' patterns + * // it should return an array of SVGPatternElement + * tiles: function() { + * var pattern = document.createElementNS("http://www.w3.org/2000/svg", "pattern"); + * var g = document.createElementNS("http://www.w3.org/2000/svg", "g"); + * var circle1 = document.createElementNS("http://www.w3.org/2000/svg", "circle"); + * + * pattern.setAttribute("patternUnits", "userSpaceOnUse"); + * pattern.setAttribute("width", "32"); + * pattern.setAttribute("height", "32"); + * + * g.style.fill = "#000"; + * g.style.opacity = "0.2"; + * + * circle1.setAttribute("cx", "3"); + * circle1.setAttribute("cy", "3"); + * circle1.setAttribute("r", "3"); + * + * g.appendChild(circle1); + * pattern.appendChild(g); + * + * return [pattern]; + * }, + * + * // for threshold usage, pattern values should be set for each steps + * pattern: ["grey", "green", "yellow", "orange", "red"], + * threshold: { + * unit: "value", + * + * // when value is 20 => 'green', value is 40 => 'orange' will be set. + * values: [10, 20, 30, 40, 50], + * + * // the equation for max: + * // - unit == 'value': max => 30 + * // - unit != 'value': max => value*100/30 + * max: 30 + * }, + * + * // set all data to 'red' + * onover: "red", + * + * // set different color for data + * onover: { + * data1: "red", + * data2: "yellow" + * }, + * + * // will pass data object to the callback + * onover: function(d) { + * return d.id === "data1" ? "red" : "green"; + * } + * } + */ + color_pattern: [], + color_tiles: void 0, + color_threshold: {}, + color_onover: void 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/legend.ts +/* harmony default export */ var legend = ({ + /** + * Legend options + * @name legend + * @memberof Options + * @type {object} + * @property {object} legend Legend object + * @property {boolean} [legend.show=true] Show or hide legend. + * @property {boolean} [legend.hide=false] Hide legend + * If true given, all legend will be hidden. If string or array given, only the legend that has the id will be hidden. + * @property {string|HTMLElement} [legend.contents.bindto=undefined] Set CSS selector or element reference to bind legend items. + * - **NOTE:** Should be used along with `legend.contents.template`. + * @property {string|Function} [legend.contents.template="<span style='color:#fff;padding:5px;background-color:{=COLOR}'>{=TITLE}</span>"] Set item's template.<br> + * - If set `string` value, within template the 'color' and 'title' can be replaced using template-like syntax string: + * - {=COLOR}: data color value + * - {=TITLE}: data title value + * - If set `function` value, will pass following arguments to the given function: + * - title {string}: data's id value + * - color {string}: color string + * - data {Array}: data array + * @property {string} [legend.position=bottom] Change the position of legend.<br> + * Available values are: `bottom`, `right` and `inset` are supported. + * @property {object} [legend.inset={anchor: 'top-left',x: 10,y: 0,step: undefined}] Change inset legend attributes.<br> + * This option accepts object that has the keys `anchor`, `x`, `y` and `step`. + * - **anchor** decides the position of the legend: + * - top-left + * - top-right + * - bottom-left + * - bottom-right + * - **x** and **y**: + * - set the position of the legend based on the anchor. + * - **step**: + * - defines the max step the legend has (e.g. If 2 set and legend has 3 legend item, the legend 2 columns). + * @property {boolean} [legend.equally=false] Set to all items have same width size. + * @property {number} [legend.padding=0] Set padding value + * @property {boolean} [legend.item.interaction=true] Set legend item interaction. + * - **NOTE:** + * - This setting will not have effect on `.toggle()` method. + * - `legend.item.onXXX` listener options will work if set, regardless of this option value. + * @property {boolean} [legend.item.interaction.dblclick=false] Set legend item to interact on double click. + * - **NOTE:** + * - Double clicking will make focused clicked dataseries only, hiding all others. + * - for single click case, `click + altKey(Win)/optionKey(Mac OS)` to have same effect. + * - To return initial state(which all dataseries are showing), double click current focused legend item again. + * - for single click case, `click + altKey(Win)/optionKey(Mac OS)` to have same effect. + * - In this case, default `click` interaction will be disabled. + * @property {Function} [legend.item.onclick=undefined] Set click event handler to the legend item. + * - **NOTE:** + * - When set, default `click` interaction will be disabled. + * - When `interaction.dblclick=true` is set, will be called on double click. + * @property {Function} [legend.item.onover=undefined] Set mouse/touch over event handler to the legend item. + * - **NOTE:** When set, default `mouseover` interaction will be disabled. + * @property {Function} [legend.item.onout=undefined] Set mouse/touch out event handler to the legend item. + * - **NOTE:** When set, default `mouseout` interaction will be disabled. + * @property {number} [legend.item.tile.width=10] Set width for 'rectangle' legend item tile element. + * @property {number} [legend.item.tile.height=10] Set height for 'rectangle' legend item tile element. + * @property {number} [legend.item.tile.r=5] Set the radius for 'circle' legend item tile type. + * @property {string} [legend.item.tile.type="rectangle"] Set legend item shape type.<br> + * - **Available Values:** + * - circle + * - rectangle + * @property {boolean} [legend.format] Set formatter function for legend text. + * The argument:<br> + * - `id`: legend text value. When `data.names` is specified, will pass from it, otherwise will pass data id. + * @property {boolean} [legend.tooltip=false] Show full legend text value using system tooltip(via `<title>` element). + * @property {boolean} [legend.usePoint=false] Whether to use custom points in legend. + * @see [Demo: format](https://naver.github.io/billboard.js/demo/#Legend.LegendFormat) + * @see [Demo: item.interaction](https://naver.github.io/billboard.js/demo/#Legend.LegendItemInteraction) + * @see [Demo: item.tile.type](https://naver.github.io/billboard.js/demo/#Legend.LegendItemTileType) + * @see [Demo: position](https://naver.github.io/billboard.js/demo/#Legend.LegendPosition) + * @see [Demo: contents.template](https://naver.github.io/billboard.js/demo/#Legend.LegendTemplate1) + * @see [Demo: usePoint](https://naver.github.io/billboard.js/demo/#Legend.usePoint) + * @example + * legend: { + * show: true, + * hide: true, + * //or hide: "data1" + * //or hide: ["data1", "data2"] + * contents: { + * bindto: "#legend", // <ul id='legend'></ul> + * + * // will be as: <li style='background-color:#1f77b4'>data1</li> + * template: "<li style='background-color:{=COLOR}'>{=TITLE}</li>" + * + * // or using function + * template: function(id, color, data) { + * // if you want omit some legend, return falsy value + * if (id !== "data1") { + * return "<li style='background-color:"+ color +">"+ id +"</li>"; + * } + * } + * }, + * position: "bottom", // bottom, right, inset + * inset: { + * anchor: "top-right" // top-left, top-right, bottom-left, bottom-right + * x: 20, + * y: 10, + * step: 2 + * }, + * equally: false, + * padding: 10, + * item: { + * // will disable default interaction + * interaction: false, + * + * // set legend interact on double click + * // by double clicking, will make focused clicked dataseries only, hiding all others. + * interaction: { + * dblclick: true + * } + * + * // when set below callback, will disable corresponding default interactions + * onclick: function(id) { ... }, + * onover: function(id) { ... }, + * onout: function(id) { ... }, + * + * // set tile's size + * tile: { + * // set tile type + * type: "circle" // or "rectangle" (default) + * + * // width & height, are only applicable for 'rectangle' legend type + * width: 15, + * height: 15 + * + * // radis is only applicable for 'circle' legend type + * r: 10 + * } + * }, + * format: function(id) { + * // set ellipsis string when length is > 5 + * // to get full legend value, combine with 'legend.tooltip=true' + * if (id.length > 5) { + * id = id.substr(0, 5) + "..."; + * } + * + * return id; + * }, + * tooltip: true, + * usePoint: true + * } + */ + legend_contents_bindto: void 0, + legend_contents_template: "<span style='color:#fff;padding:5px;background-color:{=COLOR}'>{=TITLE}</span>", + legend_equally: false, + legend_hide: false, + legend_inset_anchor: "top-left", + legend_inset_x: 10, + legend_inset_y: 0, + legend_inset_step: void 0, + legend_item_interaction: true, + legend_item_dblclick: false, + legend_item_onclick: void 0, + legend_item_onover: void 0, + legend_item_onout: void 0, + legend_item_tile_width: 10, + legend_item_tile_height: 10, + legend_item_tile_r: 5, + legend_item_tile_type: "rectangle", + legend_format: void 0, + legend_padding: 0, + legend_position: "bottom", + legend_show: true, + legend_tooltip: false, + legend_usePoint: false +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/main.ts +/* harmony default export */ var main = ({ + /** + * Specify the CSS selector or the element which the chart will be set to. D3 selection object can be specified also.<br> + * If other chart is set already, it will be replaced with the new one (only one chart can be set in one element). + * - **NOTE:** In case of element doesn't exist or not specified, will add a `<div>` element to the body. + * @name bindto + * @memberof Options + * @property {string|HTMLElement|d3.selection|object} [bindto="#chart"] Specify the element where chart will be drawn. + * @property {string|HTMLElement|d3.selection} bindto.element="#chart" Specify the element where chart will be drawn. + * @property {string} [bindto.classname=bb] Specify the class name of bind element.<br> + * **NOTE:** When class name isn't `bb`, then you also need to update the default CSS to be rendered correctly. + * @default #chart + * @example + * bindto: "#myContainer" + * + * // or HTMLElement + * bindto: document.getElementById("myContainer") + * + * // or D3 selection object + * bindto: d3.select("#myContainer") + * + * // or to change default classname + * bindto: { + * element: "#chart", + * classname: "bill-board" // ex) <div id='chart' class='bill-board'> + * } + */ + bindto: "#chart", + /** + * Set chart background. + * @name background + * @memberof Options + * @property {object} background background object + * @property {string} background.class Specify the class name for background element. + * @property {string} background.color Specify the fill color for background element.<br>**NOTE:** Will be ignored if `imgUrl` option is set. + * @property {string} background.imgUrl Specify the image url string for background. + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.Background) + * @example + * background: { + * class: "myClass", + * color: "red", + * + * // Set image url for background. + * // If specified, 'color' option will be ignored. + * imgUrl: "https://naver.github.io/billboard.js/img/logo/billboard.js.svg", + * } + */ + background: {}, + /** + * Set 'clip-path' attribute for chart element + * - **NOTE:** + * > When is false, chart node element is positioned after the axis node in DOM tree hierarchy. + * > Is to make chart element positioned over axis element. + * @name clipPath + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.clipPath) + * @example + * // don't set 'clip-path' attribute + * clipPath: false + */ + clipPath: true, + /** + * Set svg element's class name + * @name svg + * @memberof Options + * @type {object} + * @property {object} [svg] svg object + * @property {string} [svg.classname] class name for svg element + * @example + * svg: { + * classname: "test_class" + * } + */ + svg_classname: void 0, + /** + * The desired size of the chart element. + * If value is not specified, the width of the chart will be calculated by the size of the parent element it's appended to. + * @name size + * @memberof Options + * @type {object} + * @property {object} [size] size object + * @property {number} [size.width] width of the chart element + * @property {number} [size.height] height of the chart element + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.ChartSize) + * @example + * size: { + * width: 640, + * height: 480 + * } + */ + size_width: void 0, + size_height: void 0, + /** + * The padding of the chart element. + * - **NOTE:** for more information, see the "[`Understanding padding`](https://github.com/naver/billboard.js/wiki/Understanding-padding)"" wiki documentaion. + * @name padding + * @memberof Options + * @type {object} + * @property {object|boolean} [padding=true] Set padding of chart, and accepts object or boolean type. + * - `Object`: Specify each side's padding. + * - `false`: Remove padding completely and make shape to fully occupy the container element. + * - In this case, axes and subchart will be hidden. + * - To adjust some padding from this state, use `axis.[x|y].padding` option. + * @property {string} [padding.mode] padding mode + * - `"fit"`: Reduce padding as much as possible to make chart fit to the container element for chart types w/axis.<br>When specified, all padding values will be relative from fitted value. + * @property {number} [padding.top] padding on the top of chart + * @property {number} [padding.right] padding on the right of chart + * @property {number} [padding.bottom] padding on the bottom of chart + * @property {number} [padding.left] padding on the left of chart + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.Padding) + * @see [Demo: Fit padding](https://naver.github.io/billboard.js/demo/#ChartOptions.FitPadding) + * @example + * // remove padding completely. + * padding: false, + * + * padding: { + * // specifying mode value, will reduce padding and make fit to the container element. + * mode: "fit" + * + * // when mode is "fit", all padding values will be relative from fitted value. + * // so, 0 will be initial fitted value. + * top: 20, + * right: 20, + * bottom: 20, + * left: 20 + * } + * + * // or specify padding value for each side + * padding: { + * top: 20, + * right: 20, + * bottom: 20, + * left: 20 + * } + */ + padding: true, + padding_mode: void 0, + padding_left: void 0, + padding_right: void 0, + padding_top: void 0, + padding_bottom: void 0, + /** + * Set chart resize options + * @name resize + * @memberof Options + * @type {object} + * @property {object} [resize] resize object + * @property {boolean} [resize.auto=true] Set chart resize automatically on viewport changes. + * @property {boolean|number} [resize.timer=true] Set resize timer option. + * - **NOTE:** + * - The resize function will be called using: + * - true: `setTimeout()` + * - false: `requestIdleCallback()` + * - Given number(delay in ms) value, resize function will be triggered using `setTimer()` with given delay. + * @example + * resize: { + * auto: false, + * + * // set resize function will be triggered using `setTimer()` + * timer: true, + * + * // set resize function will be triggered using `requestIdleCallback()` + * timer: false, + * + * // set resize function will be triggered using `setTimer()` with a delay of `100ms`. + * timer: 100 + * } + */ + resize_auto: true, + resize_timer: true, + /** + * Set a callback to execute when the chart is clicked. + * @name onclick + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onclick: function(event) { + * this; // chart instance itself + * event; // native event object + * ... + * } + */ + onclick: void 0, + /** + * Set a callback to execute when mouse/touch enters the chart. + * @name onover + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onover: function(event) { + * this; // chart instance itself + * event; // native event object + * ... + * } + */ + onover: void 0, + /** + * Set a callback to execute when mouse/touch leaves the chart. + * @name onout + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onout: function(event) { + * this; // chart instance itself + * event; // native event object + * ... + * } + */ + onout: void 0, + /** + * Set a callback to execute when user resizes the screen. + * @name onresize + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onresize: function() { + * this; // chart instance itself + * ... + * } + */ + onresize: void 0, + /** + * Set a callback to execute when screen resize finished. + * @name onresized + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onresized: function() { + * this; // chart instance itself + * ... + * } + */ + onresized: void 0, + /** + * Set a callback to execute before the chart is initialized + * @name onbeforeinit + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onbeforeinit: function() { + * this; // chart instance itself + * ... + * } + */ + onbeforeinit: void 0, + /** + * Set a callback to execute when the chart is initialized. + * @name oninit + * @memberof Options + * @type {Function} + * @default undefined + * @example + * oninit: function() { + * this; // chart instance itself + * ... + * } + */ + oninit: void 0, + /** + * Set a callback to execute after the chart is initialized + * @name onafterinit + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onafterinit: function() { + * this; // chart instance itself + * ... + * } + */ + onafterinit: void 0, + /** + * Set a callback which is executed when the chart is rendered. Basically, this callback will be called in each time when the chart is redrawed. + * @name onrendered + * @memberof Options + * @type {Function} + * @default undefined + * @example + * onrendered: function() { + * this; // chart instance itself + * ... + * } + */ + onrendered: void 0, + /** + * Set duration of transition (in milliseconds) for chart animation.<br><br> + * - **NOTE:** If `0 `or `null` set, transition will be skipped. So, this makes initial rendering faster especially in case you have a lot of data. + * @name transition + * @memberof Options + * @type {object} + * @property {object} [transition] transition object + * @property {number} [transition.duration=350] duration in milliseconds + * @example + * transition: { + * duration: 500 + * } + */ + transition_duration: 250, + /** + * Set plugins + * @name plugins + * @memberof Options + * @type {Array} + * @example + * plugins: [ + * new bb.plugin.stanford({ ... }), + * new PluginA(), + * ... + * ] + */ + plugins: [], + /** + * Control the render timing + * @name render + * @memberof Options + * @type {object} + * @property {object} [render] render object + * @property {boolean} [render.lazy=true] Make to not render at initialization (enabled by default when bind element's visibility is hidden). + * @property {boolean} [render.observe=true] Observe bind element's visibility(`display` or `visiblity` inline css property or class value) & render when is visible automatically (for IEs, only works IE11+). When set to **false**, call [`.flush()`](./Chart.html#flush) to render. + * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.LazyRender) + * @example + * render: { + * lazy: true, + * observe: true + * } + * + * @example + * // <!-- render.lazy will detect visibility defined --> + * // (a) <div id='chart' class='hide'></div> + * // (b) <div id='chart' style='display:none'></div> + * + * // render.lazy enabled by default when element is hidden + * var chart = bb.generate({ ... }); + * + * // chart will be rendered automatically when element's visibility changes + * // Note: works only for inlined css property or class attribute changes + * document.getElementById('chart').classList.remove('hide') // (a) + * document.getElementById('chart').style.display = 'block'; // (b) + * + * @example + * // chart won't be rendered and not observing bind element's visiblity changes + * var chart = bb.generate({ + * render: { + * lazy: true, + * observe: false + * } + * }); + * + * // call at any point when you want to render + * chart.flush(); + */ + render: {}, + /** + * Show rectangles inside the chart.<br><br> + * This option accepts array including object that has axis, start, end and class. + * The keys start, end and class are optional. + * axis must be x, y or y2. start and end should be the value where regions start and end. + * If not specified, the edge values will be used. + * If timeseries x axis, date string, Date object and unixtime integer can be used. + * If class is set, the region element will have it as class. + * @name regions + * @memberof Options + * @type {Array} + * @default [] + * @see [Demo](https://naver.github.io/billboard.js/demo/#Region.RegionLabel) + * @example + * regions: [ + * { + * axis: "x", + * start: 1, + * end: 4, + * class: "region-1-4", + * label: { + * text: "Region Text", + * x: 5, // position relative of the initial x coordinate + * y: 5, // position relative of the initial y coordinate + * color: "red", // color string + * rotated: true // make text to show in vertical or horizontal + * } + * } + * ] + */ + regions: [] +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/title.ts +/* harmony default export */ var title = ({ + /** + * Set title options + * @name title + * @memberof Options + * @type {object} + * @property {object} title Title object + * @property {string} [title.text] Title text. If contains `\n`, it's used as line break allowing multiline title. + * @property {number} [title.padding.top=0] Top padding value. + * @property {number} [title.padding.right=0] Right padding value. + * @property {number} [title.padding.bottom=0] Bottom padding value. + * @property {number} [title.padding.left=0] Left padding value. + * @property {string} [title.position=center] Available values are: 'center', 'right' and 'left'. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Title.MultilinedTitle) + * @example + * title: { + * text: "Title Text", + * + * // or Multiline title text + * text: "Main title text\nSub title text", + * + * padding: { + * top: 10, + * right: 10, + * bottom: 10, + * left: 10 + * }, + * position: "center" + * } + */ + title_text: void 0, + title_padding: { + top: 0, + right: 0, + bottom: 0, + left: 0 + }, + title_position: "center" +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/tooltip.ts +/* harmony default export */ var tooltip = ({ + /** + * Tooltip options + * @name tooltip + * @memberof Options + * @type {object} + * @property {object} tooltip Tooltip object + * @property {boolean} [tooltip.show=true] Show or hide tooltip. + * @property {boolean} [tooltip.doNotHide=false] Make tooltip keep showing not hiding on interaction. + * @property {boolean} [tooltip.grouped=true] Set if tooltip is grouped or not for the data points. + * - **NOTE:** The overlapped data points will be displayed as grouped even if set false. + * @property {boolean} [tooltip.linked=false] Set if tooltips on all visible charts with like x points are shown together when one is shown. + * @property {string} [tooltip.linked.name=""] Groping name for linked tooltip.<br>If specified, linked tooltip will be groped interacting to be worked only with the same name. + * @property {Function} [tooltip.format.title] Set format for the title of tooltip.<br> + * Specified function receives x of the data point to show. + * @property {Function} [tooltip.format.name] Set format for the name of each data in tooltip.<br> + * Specified function receives name, ratio, id and index of the data point to show. ratio will be undefined if the chart is not donut/pie/gauge. + * @property {Function} [tooltip.format.value] Set format for the value of each data value in tooltip. If undefined returned, the row of that value will be skipped to be called. + * - Will pass following arguments to the given function: + * - `value {string}`: Value of the data point. If data row contains multiple or ranged(ex. candlestick, area range, etc.) value, formatter will be called as value length. + * - `ratio {number}`: Ratio of the data point in the `pie/donut/gauge` and `area/bar` when contains grouped data. Otherwise is `undefined`. + * - `id {string}`: id of the data point + * - `index {number}`: Index of the data point + * @property {Function} [tooltip.position] Set custom position function for the tooltip.<br> + * This option can be used to modify the tooltip position by returning object that has top and left. + * - Will pass following arguments to the given function: + * - `data {Array}`: Current selected data array object. + * - `width {number}`: Width of tooltip. + * - `height {number}`: Height of tooltip. + * - `element {SVGElement}`: Tooltip event bound element + * - `pos {object}`: Current position of the tooltip. + * @property {Function|object} [tooltip.contents] Set custom HTML for the tooltip.<br> + * If tooltip.grouped is true, data includes multiple data points.<br><br> + * Specified function receives `data` array and `defaultTitleFormat`, `defaultValueFormat` and `color` functions of the data point to show. + * - **Note:** + * - defaultTitleFormat: + * - if `axis.x.tick.format` option will be used if set. + * - otherwise, will return function based on tick format type(category, timeseries). + * - defaultValueFormat: + * - for Arc type (except gauge, radar), the function will return value from `(ratio * 100).toFixed(1)`. + * - for Axis based types, will be used `axis.[y|y2].tick.format` option value if is set. + * - otherwise, will parse value and return as number. + * @property {string|HTMLElement} [tooltip.contents.bindto=undefined] Set CSS selector or element reference to bind tooltip. + * - **NOTE:** When is specified, will not be updating tooltip's position. + * @property {string} [tooltip.contents.template=undefined] Set tooltip's template.<br><br> + * Within template, below syntax will be replaced using template-like syntax string: + * - **{{ ... }}**: the doubly curly brackets indicate loop block for data rows. + * - **{=CLASS_TOOLTIP}**: default tooltip class name `bb-tooltip`. + * - **{=CLASS_TOOLTIP_NAME}**: default tooltip data class name (ex. `bb-tooltip-name-data1`) + * - **{=TITLE}**: title value. + * - **{=COLOR}**: data color. + * - **{=NAME}**: data id value. + * - **{=VALUE}**: data value. + * @property {object} [tooltip.contents.text=undefined] Set additional text content within data loop, using template syntax. + * - **NOTE:** It should contain `{ key: Array, ... }` value + * - 'key' name is used as substitution within template as '{=KEY}' + * - The value array length should match with the data length + * @property {boolean} [tooltip.init.show=false] Show tooltip at the initialization. + * @property {number} [tooltip.init.x=0] Set x Axis index(or index for Arc(donut, gauge, pie) types) to be shown at the initialization. + * @property {object} [tooltip.init.position] Set the position of tooltip at the initialization. + * @property {Function} [tooltip.onshow] Set a callback that will be invoked before the tooltip is shown. + * @property {Function} [tooltip.onhide] Set a callback that will be invoked before the tooltip is hidden. + * @property {Function} [tooltip.onshown] Set a callback that will be invoked after the tooltip is shown + * @property {Function} [tooltip.onhidden] Set a callback that will be invoked after the tooltip is hidden. + * @property {string|Function|null} [tooltip.order=null] Set tooltip data display order.<br><br> + * **Available Values:** + * - `desc`: In descending data value order + * - `asc`: In ascending data value order + * - `null`: It keeps the data display order<br> + * **NOTE:** When `data.groups` is set, the order will follow as the stacked graph order.<br> + * If want to order as data bound, set any value rather than asc, desc or null. (ex. empty string "") + * - `function(data1, data2) { ... }`: [Array.sort compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters) + * @see [Demo: Hide Tooltip](https://naver.github.io/billboard.js/demo/#Tooltip.HideTooltip) + * @see [Demo: Tooltip Grouping](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipGrouping) + * @see [Demo: Tooltip Format](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipFormat) + * @see [Demo: Linked Tooltip](https://naver.github.io/billboard.js/demo/#Tooltip.LinkedTooltips) + * @see [Demo: Tooltip Position](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipPosition) + * @see [Demo: Tooltip Template](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipTemplate) + * @example + * tooltip: { + * show: true, + * doNotHide: true, + * grouped: false, + * format: { + * title: function(x) { return "Data " + x; }, + * name: function(name, ratio, id, index) { return name; }, + * + * // If data row contains multiple or ranged(ex. candlestick, area range, etc.) value, + * // formatter will be called as value length times. + * value: function(value, ratio, id, index) { return ratio; } + * }, + * position: function(data, width, height, element, pos) { + * // data: [{x, index, id, name, value}, ...] + * // width: Tooltip width + * // height: Tooltip height + * // element: Tooltip event bound element + * // pos: { + * // x: Current mouse event x position, + * // y: Current mouse event y position, + * // xAxis: Current x Axis position (the value is given for axis based chart type only) + * // yAxis: Current y Axis position value or function(the value is given for axis based chart type only) + * // } + * + * // yAxis will work differently per data lenghts + * // - a) Single data: `yAxis` will return `number` value + * // - b) Multiple data: `yAxis` will return a function with property value + * + * // a) Single data: + * // Get y coordinate + * pos.yAxis; // y axis coordinate value of current data point + * + * // b) Multiple data: + * // Get y coordinate of value 500, where 'data1' scales(y or y2). + * // When 'data.axes' option is used, data can bound to different axes. + * // - when "data.axes={data1: 'y'}", wil return y value from y axis scale. + * // - when "data.axes={data1: 'y2'}", wil return y value from y2 axis scale. + * pos.yAxis(500, "data1"); // will return y coordinate value of data1 + * + * pos.yAxis(500); // get y coordinate with value of 500, using y axis scale + * pos.yAxis(500, null, "y2"); // get y coordinate with value of 500, using y2 axis scale + * + * return { + * top: 0, + * left: 0 + * } + * }, + * + * contents: function(d, defaultTitleFormat, defaultValueFormat, color) { + * return ... // formatted html as you want + * }, + * + * // specify tooltip contents using template + * // - example of HTML returned: + * // <ul class="bb-tooltip"> + * // <li class="bb-tooltip-name-data1"><span>250</span><br><span style="color:#00c73c">data1</span></li> + * // <li class="bb-tooltip-name-data2"><span>50</span><br><span style="color:#fa7171">data2</span></li> + * // </ul> + * contents: { + * bindto: "#tooltip", + * template: '<ul class={=CLASS_TOOLTIP}>{{' + + * '<li class="{=CLASS_TOOLTIP_NAME}"><span>{=VALUE}</span><br>' + + * '<span style=color:{=COLOR}>{=NAME}</span></li>' + + * '}}</ul>' + * } + * + * // with additional text value + * // - example of HTML returned: + * // <ul class="bb-tooltip"> + * // <li class="bb-tooltip-name-data1"><span>250</span><br>comment1<span style="color:#00c73c">data1</span>text1</li> + * // <li class="bb-tooltip-name-data2"><span>50</span><br>comment2<span style="color:#fa7171">data2</span>text2</li> + * // </ul> + * contents: { + * bindto: "#tooltip", + * text: { + * // a) 'key' name is used as substitution within template as '{=KEY}' + * // b) the length should match with the data length + * VAR1: ["text1", "text2"], + * VAR2: ["comment1", "comment2"], + * }, + * template: '<ul class={=CLASS_TOOLTIP}>{{' + + * '<li class="{=CLASS_TOOLTIP_NAME}"><span>{=VALUE}</span>{=VAR2}<br>' + + * '<span style=color:{=COLOR}>{=NAME}</span>{=VAR1}</li>' + + * '}}</ul>' + * } + * + * // sort tooltip data value display in ascending order + * order: "asc", + * + * // specifying sort function + * order: function(a, b) { + * // param data passed format + * {x: 5, value: 250, id: "data1", index: 5, name: "data1"} + * ... + * }, + * + * // show at the initialization + * init: { + * show: true, + * x: 2, // x Axis index (or index for Arc(donut, gauge, pie) types) + * position: { + * top: "150px", // specify as number or as string with 'px' unit string + * left: 250 // specify as number or as string with 'px' unit string + * } + * }, + * + * // fires prior tooltip is shown + * onshow: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // fires prior tooltip is hidden + * onhide: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // fires after tooltip is shown + * onshown: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // fires after tooltip is hidden + * onhidden: function(selectedData) { + * // current dataset selected + * // ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...] + * selectedData; + * }, + * + * // Link any tooltips when multiple charts are on the screen where same x coordinates are available + * // Useful for timeseries correlation + * linked: true, + * + * // Specify name to interact those with the same name only. + * linked: { + * name: "some-group" + * } + * } + */ + tooltip_show: true, + tooltip_doNotHide: false, + tooltip_grouped: true, + tooltip_format_title: void 0, + tooltip_format_name: void 0, + tooltip_format_value: void 0, + tooltip_position: void 0, + tooltip_contents: {}, + tooltip_init_show: false, + tooltip_init_x: 0, + tooltip_init_position: void 0, + tooltip_linked: false, + tooltip_linked_name: "", + tooltip_onshow: () => { + }, + tooltip_onhide: () => { + }, + tooltip_onshown: () => { + }, + tooltip_onhidden: () => { + }, + tooltip_order: null +}); + +;// CONCATENATED MODULE: ./src/config/Options/data/data.ts +/* harmony default export */ var data_data = ({ + /** + * Specify the key of x values in the data.<br><br> + * We can show the data with non-index x values by this option. This option is required when the type of x axis is timeseries. If this option is set on category axis, the values of the data on the key will be used for category names. + * @name data․x + * @memberof Options + * @type {string} + * @default undefined + * @example + * data: { + * x: "date" + * } + */ + data_x: void 0, + /** + * Converts data id value + * @name data․idConverter + * @memberof Options + * @type {Function} + * @default function(id) { return id; } + * @example + * data: { + * idConverter: function(id) { + * // when id is 'data1', converts to be 'data2' + * // 'data2' should be given as the initial data value + * if (id === "data1") { + * return "data2"; + * } else { + * return id; + * } + * } + * } + */ + data_idConverter: (id) => id, + /** + * Set custom data name. + * If a name is set to `null`, the series is omitted from the legend. + * @name data․names + * @memberof Options + * @type {object} + * @default {} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataName) + * @example + * data: { + * names: { + * data1: "Data Name 1", + * data2: "Data Name 2" + * } + * } + */ + data_names: {}, + /** + * Set custom data class.<br><br> + * If this option is specified, the element g for the data has an additional class that has the prefix 'bb-target-' (eg. bb-target-additional-data1-class). + * @name data․classes + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * classes: { + * data1: "additional-data1-class", + * data2: "additional-data2-class" + * } + * } + */ + data_classes: {}, + /** + * Set chart type at once.<br><br> + * If this option is specified, the type will be applied to every data. This setting can be overwritten by data.types.<br><br> + * **Available Values:** + * - area + * - area-line-range + * - area-spline + * - area-spline-range + * - area-step + * - bar + * - bubble + * - candlestick + * - donut + * - funnel + * - gauge + * - line + * - pie + * - polar + * - radar + * - scatter + * - spline + * - step + * - treemap + * @name data․type + * @memberof Options + * @type {string} + * @default "line"<br>NOTE: When importing shapes by ESM, `line()` should be specified for type. + * @example + * data: { + * type: "bar" + * } + * @example + * // Generate chart by importing ESM + * // Import types to be used only, where this will make smaller bundle size. + * import bb, { + * area, + * areaLineRange, + * areaSpline, + * areaSplineRange, + * areaStep, + * bar, + * bubble, + * candlestick, + * donut, + * funnel, + * gauge, + * line, + * pie, + * polar, + * radar, + * scatter, + * spline, + * step, + * treemap + * } + * + * bb.generate({ + * ..., + * data: { + * type: bar() + * } + * }); + */ + data_type: void 0, + /** + * Set chart type for each data.<br> + * This setting overwrites data.type setting. + * - **NOTE:** `radar` and `treemap` type can't be combined with other types. + * @name data․types + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * types: { + * data1: "bar", + * data2: "spline" + * } + * } + * @example + * // Generate chart by importing ESM + * // Import types to be used only, where this will make smaller bundle size. + * import bb, { + * area, + * areaLineRange, + * areaSpline, + * areaSplineRange, + * areaStep, + * bar, + * bubble, + * candlestick, + * donut, + * funnel, + * gauge, + * line, + * pie, + * polar, + * radar, + * scatter, + * spline, + * step, + * treemap + * } + * + * bb.generate({ + * ..., + * data: { + * types: { + * data1: bar(), + * data1: spline() + * } + * } + * }); + */ + data_types: {}, + /** + * This option changes the order of stacking data and pieces of pie/donut. + * - If `null` specified, it will be the order the data loaded. + * - If function specified, it will be used as [Array.sort compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters)<br><br> + * + * **Available Values:** + * - `desc`: In descending order + * - `asc`: In ascending order + * - `null`: It keeps the data load order + * - `function(data1, data2) { ... }`: Array.sort compareFunction + * + * **NOTE**: order function, only works for Axis based types & Arc types, except `Radar` type. + * @name data․order + * @memberof Options + * @type {string|Function|null} + * @default desc + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataOrder) + * @example + * data: { + * // in descending order (default) + * order: "desc" + * + * // in ascending order + * order: "asc" + * + * // keeps data input order + * order: null + * + * // specifying sort function + * order: function(a, b) { + * // param data passed format + * // { + * // id: "data1", id_org: "data1", values: [ + * // {x: 5, value: 250, id: "data1", index: 5, name: "data1"}, + * // ... + * // ] + * // } + * + * const reducer = (p, c) => p + Math.abs(c.value); + * const aSum = a.values.reduce(reducer, 0); + * const bSum = b.values.reduce(reducer, 0); + * + * // ascending order + * return aSum - bSum; + * + * // descending order + * // return bSum - aSum; + * } + * } + */ + data_order: "desc", + /** + * Set groups for the data for stacking. + * @name data․groups + * @memberof Options + * @type {Array} + * @default [] + * @example + * data: { + * groups: [ + * ["data1", "data2"], + * ["data3"] + * ] + * } + */ + data_groups: [], + /** + * Set how zero value will be treated on groups.<br> + * Possible values: + * - `zero`: 0 will be positioned at absolute axis zero point. + * - `positive`: 0 will be positioned at the top of a stack. + * - `negative`: 0 will be positioned at the bottom of a stack. + * @name data․groupsZeroAs + * @memberof Options + * @type {string} + * @default "positive" + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.Groups) + * @example + * data: { + * groupsZeroAs: "zero" // "positive" or "negative" + * } + */ + data_groupsZeroAs: "positive", + /** + * Set color converter function.<br><br> + * This option should a function and the specified function receives color (e.g. '#ff0000') and d that has data parameters like id, value, index, etc. And it must return a string that represents color (e.g. '#00ff00'). + * @name data․color + * @memberof Options + * @type {Function} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataColor) + * @example + * data: { + * color: function(color, d) { ... } + * } + */ + data_color: void 0, + /** + * Set color for each data. + * @name data․colors + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * colors: { + * data1: "#ff0000", + * data2: function(d) { + * return "#000"; + * } + * ... + * } + * } + */ + data_colors: {}, + /** + * Set labels options + * @name data․labels + * @memberof Options + * @type {object} + * @property {object} data Data object + * @property {boolean} [data.labels=false] Show or hide labels on each data points + * @property {boolean} [data.labels.centered=false] Centerize labels on `bar` shape. (**NOTE:** works only for 'bar' type) + * @property {Function} [data.labels.format] Set formatter function for data labels.<br> + * The formatter function receives 4 arguments such as `v, id, i, texts` and it **must return a string** (`\n` character will be used as line break) that will be shown as the label.<br><br> + * The arguments are:<br> + * - `v` is the value of the data point where the label is shown. + * - `id` is the id of the data where the label is shown. + * - `i` is the index of the data series point where the label is shown. + * - `texts` is the array of whole corresponding data series' text labels.<br><br> + * Formatter function can be defined for each data by specifying as an object and D3 formatter function can be set (ex. d3.format('$')) + * @property {string|object} [data.labels.backgroundColors] Set label text background colors. + * @property {string|object|Function} [data.labels.colors] Set label text colors. + * @property {object|Function} [data.labels.position] Set each dataset position, relative the original.<br><br> + * When function is specified, will receives 5 arguments such as `type, v, id, i, texts` and it must return a position number.<br><br> + * The arguments are:<br> + * - `type` coordinate type string, which will be 'x' or 'y'. + * - `v` is the value of the data point where the label is shown. + * - `id` is the id of the data where the label is shown. + * - `i` is the index of the data series point where the label is shown. + * - `texts` is the array of whole corresponding data series' text labels.<br><br> + * @property {number} [data.labels.position.x=0] x coordinate position, relative the original. + * @property {number} [data.labels.position.y=0] y coordinate position, relative the original. + * @property {object} [data.labels.rotate] Rotate label text. Specify degree value in a range of `0 ~ 360`. + * - **NOTE:** Depend on rotate value, text position need to be adjusted manually(using `data.labels.position` option) to be shown nicely. + * @memberof Options + * @type {object} + * @default {} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataLabel) + * @see [Demo: label colors](https://naver.github.io/billboard.js/demo/#Data.DataLabelColors) + * @see [Demo: label format](https://naver.github.io/billboard.js/demo/#Data.DataLabelFormat) + * @see [Demo: label multiline](https://naver.github.io/billboard.js/demo/#Data.DataLabelMultiline) + * @see [Demo: label overlap](https://naver.github.io/billboard.js/demo/#Data.DataLabelOverlap) + * @see [Demo: label position](https://naver.github.io/billboard.js/demo/#Data.DataLabelPosition) + * @see [Demo: label rotate](https://naver.github.io/billboard.js/demo/#Data.DataLabelRotate) + * @example + * data: { + * labels: true, + * + * // or set specific options + * labels: { + * format: function(v, id, i, texts) { + * ... + * // to multiline, return with '\n' character + * return "Line1\nLine2"; + * }, + * + * // it's possible to set for each data + * format: { + * data1: function(v, id, i, texts) { ... }, + * ... + * }, + * + * // align text to center of the 'bar' shape (works only for 'bar' type) + * centered: true, + * + * // apply backgound color for label texts + * backgroundColors: "red", + * + * // set differenct backround colors per dataset + * backgroundColors: { + * data1: "green", + * data2: "yellow" + * } + * + * // apply for all label texts + * colors: "red", + * + * // set different colors per dataset + * // for not specified dataset, will have the default color value + * colors: { + * data1: "yellow", + * data3: "green" + * }, + * + * // call back for label text color + * colors: function(color, d) { + * // color: the default data label color string + * // data: ex) {x: 0, value: 200, id: "data3", index: 0} + * .... + * return d.value > 200 ? "cyan" : color; + * }, + * + * // return x, y coordinate position + * // apt to handle each text position manually + * position: function(type, v, id, i, texts) { + * ... + * return type == "x" ? 10 : 20; + * }, + * + * // set x, y coordinate position + * position: { + * x: -10, + * y: 10 + * }, + * + * // or set x, y coordinate position by each dataset + * position: { + * data1: {x: 5, y: 5}, + * data2: {x: 10, y: -20} + * }, + * + * // rotate degree for label text + * rotate: 90 + * } + * } + */ + data_labels: {}, + data_labels_backgroundColors: void 0, + data_labels_colors: void 0, + data_labels_position: {}, + /** + * Hide each data when the chart appears.<br><br> + * If true specified, all of data will be hidden. If multiple ids specified as an array, those will be hidden. + * @name data․hide + * @memberof Options + * @type {boolean|Array} + * @default false + * @example + * data: { + * // all of data will be hidden + * hide: true + * + * // specified data will be hidden + * hide: ["data1", ...] + * } + */ + data_hide: false, + /** + * Filter values to be shown + * The data value is the same as the returned by `.data()`. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter + * @name data․filter + * @memberof Options + * @type {Function} + * @default undefined + * @example + * data: { + * // filter for id value + * filter: function(v) { + * // v: [{id: "data1", id_org: "data1", values: [ + * // {x: 0, value: 130, id: "data2", index: 0}, ...] + * // }, ...] + * return v.id !== "data1"; + * } + */ + data_filter: void 0, + /** + * Set a callback for click event on each data point.<br><br> + * This callback will be called when each data point clicked and will receive `d` and element as the arguments. + * - `d` is the data clicked and element is the element clicked. + * - `element` is the current interacting svg element. + * - In this callback, `this` will be the Chart object. + * @name data․onclick + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onclick: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"} + * // element - <circle> + * ... + * } + * } + */ + data_onclick: () => { + }, + /** + * Set a callback for mouse/touch over event on each data point.<br><br> + * This callback will be called when mouse cursor or via touch moves onto each data point and will receive `d` and `element` as the argument. + * - `d` is the data where mouse cursor moves onto. + * - `element` is the current interacting svg element. + * - In this callback, `this` will be the Chart object. + * @name data․onover + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onover: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4} + * // element - <circle> + * ... + * } + * } + */ + data_onover: () => { + }, + /** + * Set a callback for mouse/touch out event on each data point.<br><br> + * This callback will be called when mouse cursor or via touch moves out each data point and will receive `d` as the argument. + * - `d` is the data where mouse cursor moves out. + * - `element` is the current interacting svg element. + * - In this callback, `this` will be the Chart object. + * @name data․onout + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onout: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4} + * // element - <circle> + * ... + * } + * } + */ + data_onout: () => { + }, + /** + * Set a callback for when data is shown.<br> + * The callback will receive shown data ids in array. + * @name data․onshown + * @memberof Options + * @type {Function} + * @default undefined + * @example + * data: { + * onshown: function(ids) { + * // ids - ["data1", "data2", ...] + * ... + * } + * } + */ + data_onshown: void 0, + /** + * Set a callback for when data is hidden.<br> + * The callback will receive hidden data ids in array. + * @name data․onhidden + * @memberof Options + * @type {Function} + * @default undefined + * @example + * data: { + * onhidden: function(ids) { + * // ids - ["data1", "data2", ...] + * ... + * } + * } + */ + data_onhidden: void 0, + /** + * Set a callback for minimum data + * - **NOTE:** For 'area-line-range' and 'area-spline-range', `mid` data will be taken for the comparison + * @name data․onmin + * @memberof Options + * @type {Function} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.OnMinMaxCallback) + * @example + * onmin: function(data) { + * // data - ex) [{x: 3, value: 400, id: "data1", index: 3}, ... ] + * ... + * } + */ + data_onmin: void 0, + /** + * Set a callback for maximum data + * - **NOTE:** For 'area-line-range' and 'area-spline-range', `mid` data will be taken for the comparison + * @name data․onmax + * @memberof Options + * @type {Function} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.OnMinMaxCallback) + * @example + * onmax: function(data) { + * // data - ex) [{x: 3, value: 400, id: "data1", index: 3}, ... ] + * ... + * } + */ + data_onmax: void 0, + /** + * Load a CSV or JSON file from a URL. NOTE that this will not work if loading via the "file://" protocol as the most browsers will block XMLHTTPRequests. + * @name data․url + * @memberof Options + * @type {string} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.LoadData) + * @example + * data: { + * url: "/data/test.csv" + * } + */ + data_url: void 0, + /** + * XHR header value + * - **NOTE:** Should be used with `data.url` option + * @name data․headers + * @memberof Options + * @type {string} + * @default undefined + * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader + * @example + * data: { + * url: "/data/test.csv", + * headers: { + * "Content-Type": "text/xml", + * ... + * } + * } + */ + data_headers: void 0, + /** + * Parse a JSON object for data. See also data.keys. + * @name data․json + * @memberof Options + * @type {Array} + * @default undefined + * @see [data․keys](#.data%25E2%2580%25A4keys) + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.JSONData) + * @example + * data: { + * json: [ + * {name: "www.site1.com", upload: 200, download: 200, total: 400}, + * {name: "www.site2.com", upload: 100, download: 300, total: 400}, + * {name: "www.site3.com", upload: 300, download: 200, total: 500}, + * {name: "www.site4.com", upload: 400, download: 100, total: 500} + * ], + * keys: { + * // case 1: specify 'x' key for category axis + * x: "name", // 'name' key will be used as category x axis values + * value: ["upload", "download"] + * + * // case 2: without 'x' key for non-category axis + * value: ["upload", "download"] + * } + * } + */ + data_json: void 0, + /** + * Load data from a multidimensional array, with the first element containing the data names, the following containing related data in that order. + * @name data․rows + * @memberof Options + * @type {Array} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.RowOrientedData) + * @example + * data: { + * rows: [ + * ["A", "B", "C"], + * [90, 120, 300], + * [40, 160, 240], + * [50, 200, 290], + * [120, 160, 230], + * [80, 130, 300], + * [90, 220, 320] + * ] + * } + * + * // for 'bar' type, data can contain: + * // - an array of [start, end] data following the order + * data: { + * rows: [ + * ["data1", "data2"], + * [[100, 150], 120], + * [[200, 300], 55], + * [[-400, 500], 60] + * ], + * type: "bar" + * } + * + * // for 'range' types('area-line-range' or 'area-spline-range'), data should contain: + * // - an array of [high, mid, low] data following the order + * // - or an object with 'high', 'mid' and 'low' key value + * data: { + * rows: [ + * ["data1", "data2"], + * [ + * // or {high:150, mid: 140, low: 110}, 120 + * [150, 140, 110], 120 + * ], + * [[155, 130, 115], 55], + * [[160, 135, 120], 60] + * ], + * types: { + * data1: "area-line-range", + * data2: "line" + * } + * } + * + * // for 'bubble' type, data can contain dimension value: + * // - an array of [y, z] data following the order + * // - or an object with 'y' and 'z' key value + * // 'y' is for y axis coordination and 'z' is the bubble radius value + * data: { + * rows: [ + * ["data1", "data2"], + * [ + * // or {y:10, z: 140}, 120 + * [10, 140], 120 + * ], + * [[100, 30], 55], + * [[50, 100], 60] + * ], + * types: { + * data1: "bubble", + * data2: "line" + * } + * } + * + * // for 'canlestick' type, data should contain: + * // - an array of [open, high, low, close, volume(optional)] data following the order + * // - or an object with 'open', 'high', 'low', 'close' and 'value'(optional) key value + * data: { + * rows: [ + * ["data1", "data2"], + * [ + * // open, high, low, close, volume (optional) + * {open: 1300, high: 1369, low: 1200, close: 1339, volume: 100}, + * [1000, 1100, 850, 870] + * ], + * [ + * {open: 1348, high: 1371, low: 1271, close: 1320}, + * [870, 1250, 830, 1200, 50] + * ] + * ], + * type: "candlestick" + * } + */ + data_rows: void 0, + /** + * Load data from a multidimensional array, with each element containing an array consisting of a datum name and associated data values. + * @name data․columns + * @memberof Options + * @type {Array} + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.ColumnOrientedData) + * @example + * data: { + * columns: [ + * ["data1", 30, 20, 50, 40, 60, 50], + * ["data2", 200, 130, 90, 240, 130, 220], + * ["data3", 300, 200, 160, 400, 250, 250] + * ] + * } + * + * // for 'bar' type, data can contain: + * // - an array of [start, end] data following the order + * data: { + * columns: [ + * ["data1", -100, 50, [100, 200], [200, 300]], + * ["data2", -200, 300, [-100, 100], [-50, -30]], + * ], + * type: "bar" + * } + * + * // for 'range' types('area-line-range' or 'area-spline-range'), data should contain: + * // - an array of [high, mid, low] data following the order + * // - or an object with 'high', 'mid' and 'low' key value + * data: { + * columns: [ + * ["data1", + * [150, 140, 110], // or {high:150, mid: 140, low: 110} + * [150, 140, 110], + * [150, 140, 110] + * ] + * ], + * type: "area-line-range" + * } + * + * // for 'bubble' type, data can contain dimension value: + * // - an array of [y, z] data following the order + * // - or an object with 'y' and 'z' key value + * // 'y' is for y axis coordination and 'z' is the bubble radius value + * data: { + * columns: [ + * ["data1", + * [10, 140], // or {y:10, z: 140} + * [100, 30], + * [50, 100] + * ] + * ], + * type: "bubble" + * } + * + * // for 'canlestick' type, data should contain: + * // - an array of [open, high, low, close, volume(optional)] data following the order + * // - or an object with 'open', 'high', 'low', 'close' and 'value'(optional) key value + * data: { + * columns: [ + * ["data1", + * [1000, 1100, 850, 870, 100], // or {open:1000, high: 1100, low: 870, volume: 100} + * [870, 1250, 830, 1200] // 'volume' can be omitted + * ] + * ], + * type: "candlestick" + * } + */ + data_columns: void 0, + /** + * Used if loading JSON via data.url. + * - **Available Values:** + * - json + * - csv + * - tsv + * @name data․mimeType + * @memberof Options + * @type {string} + * @default csv + * @example + * data: { + * mimeType: "json" + * } + */ + data_mimeType: "csv", + /** + * Choose which JSON object keys correspond to desired data. + * - **NOTE:** Only for JSON object given as array. + * @name data․keys + * @memberof Options + * @type {string} + * @default undefined + * @example + * data: { + * json: [ + * {name: "www.site1.com", upload: 200, download: 200, total: 400}, + * {name: "www.site2.com", upload: 100, download: 300, total: 400}, + * {name: "www.site3.com", upload: 300, download: 200, total: 500}, + * {name: "www.site4.com", upload: 400, download: 100, total: 500} + * ], + * keys: { + * // case 1: specify 'x' key for category axis + * x: "name", // 'name' key will be used as category x axis values + * value: ["upload", "download"] + * + * // case 2: without 'x' key for non-category axis + * value: ["upload", "download"] + * } + * } + */ + data_keys: void 0, + /** + * Set text label to be displayed when there's no data to show. + * - ex. Toggling all visible data to not be shown, unloading all current data, etc. + * @name data․empty․label․text + * @memberof Options + * @type {string} + * @default "" + * @example + * data: { + * empty: { + * label: { + * text: "No Data" + * } + * } + * } + */ + data_empty_label_text: "" +}); + +;// CONCATENATED MODULE: ./src/config/Options/interaction/interaction.ts +/* harmony default export */ var interaction = ({ + /** + * Interaction options + * @name interaction + * @memberof Options + * @type {object} + * @property {object} interaction Intersection object + * @property {boolean} [interaction.enabled=true] Indicate if the chart should have interactions.<br> + * If `false` is set, all of interactions (showing/hiding tooltip, selection, mouse events, etc) will be disabled. + * @property {boolean} [interaction.brighten=true] Make brighter for the selected area (ex. 'pie' type data selected area) + * @property {boolean} [interaction.inputType.mouse=true] enable or disable mouse interaction + * @property {boolean} [interaction.inputType.touch=true] enable or disable touch interaction + * @property {boolean|number} [interaction.inputType.touch.preventDefault=false] enable or disable to call event.preventDefault on touchstart & touchmove event. It's usually used to prevent document scrolling. + * @see [Demo: touch.preventDefault](https://naver.github.io/billboard.js/demo/#Interaction.PreventScrollOnTouch) + * @example + * interaction: { + * enabled: false, + * brighten: false, + * inputType: { + * mouse: true, + * touch: false + * + * // or declare preventDefault explicitly. + * // In this case touch inputType is enabled by default + * touch: { + * preventDefault: true + * + * // or threshold pixel value (pixel moved from touchstart to touchmove) + * preventDefault: 5 + * } + * } + * } + */ + interaction_enabled: true, + interaction_brighten: true, + interaction_inputType_mouse: true, + interaction_inputType_touch: {} +}); + +;// CONCATENATED MODULE: ./node_modules/d3-dispatch/src/dispatch.js +var noop = { value: () => { +} }; +function dispatch_dispatch() { + for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t)) + throw new Error("illegal type: " + t); + _[t] = []; + } + return new Dispatch(_); +} +function Dispatch(_) { + this._ = _; +} +function dispatch_parseTypenames(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + return { type: t, name }; + }); +} +Dispatch.prototype = dispatch_dispatch.prototype = { + constructor: Dispatch, + on: function(typename, callback) { + var _ = this._, T = dispatch_parseTypenames(typename + "", _), t, i = -1, n = T.length; + if (arguments.length < 2) { + while (++i < n) + if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) + return t; + return; + } + if (callback != null && typeof callback !== "function") + throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) + _[t] = set(_[t], typename.name, callback); + else if (callback == null) + for (t in _) + _[t] = set(_[t], typename.name, null); + } + return this; + }, + copy: function() { + var copy = {}, _ = this._; + for (var t in _) + copy[t] = _[t].slice(); + return new Dispatch(copy); + }, + call: function(type, that) { + if ((n = arguments.length - 2) > 0) + for (var args = new Array(n), i = 0, n, t; i < n; ++i) + args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type)) + throw new Error("unknown type: " + type); + for (t = this._[type], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + }, + apply: function(type, that, args) { + if (!this._.hasOwnProperty(type)) + throw new Error("unknown type: " + type); + for (var t = this._[type], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + } +}; +function get(type, name) { + for (var i = 0, n = type.length, c; i < n; ++i) { + if ((c = type[i]).name === name) { + return c.value; + } + } +} +function set(type, name, callback) { + for (var i = 0, n = type.length; i < n; ++i) { + if (type[i].name === name) { + type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1)); + break; + } + } + if (callback != null) + type.push({ name, value: callback }); + return type; +} +/* harmony default export */ var src_dispatch = (dispatch_dispatch); + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/noevent.js +const nonpassive = { passive: false }; +const nonpassivecapture = { capture: true, passive: false }; +function nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/nodrag.js + + +/* harmony default export */ function nodrag(view) { + var root = view.document.documentElement, selection = src_select(view).on("dragstart.drag", noevent, nonpassivecapture); + if ("onselectstart" in root) { + selection.on("selectstart.drag", noevent, nonpassivecapture); + } else { + root.__noselect = root.style.MozUserSelect; + root.style.MozUserSelect = "none"; + } +} +function yesdrag(view, noclick) { + var root = view.document.documentElement, selection = src_select(view).on("dragstart.drag", null); + if (noclick) { + selection.on("click.drag", noevent, nonpassivecapture); + setTimeout(function() { + selection.on("click.drag", null); + }, 0); + } + if ("onselectstart" in root) { + selection.on("selectstart.drag", null); + } else { + root.style.MozUserSelect = root.__noselect; + delete root.__noselect; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-color/src/define.js +/* harmony default export */ function src_define(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; +} +function extend(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) + prototype[key] = definition[key]; + return prototype; +} + +;// CONCATENATED MODULE: ./node_modules/d3-color/src/color.js + +function Color() { +} +var darker = 0.7; +var brighter = 1 / darker; +var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); +var named = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 +}; +src_define(Color, color_color, { + copy(channels) { + return Object.assign(new this.constructor(), this, channels); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: color_formatHex, + // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHex8: color_formatHex8, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb +}); +function color_formatHex() { + return this.rgb().formatHex(); +} +function color_formatHex8() { + return this.rgb().formatHex8(); +} +function color_formatHsl() { + return hslConvert(this).formatHsl(); +} +function color_formatRgb() { + return this.rgb().formatRgb(); +} +function color_color(format) { + var m, l; + format = (format + "").trim().toLowerCase(); + return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null; +} +function rgbn(n) { + return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1); +} +function rgba(r, g, b, a) { + if (a <= 0) + r = g = b = NaN; + return new Rgb(r, g, b, a); +} +function rgbConvert(o) { + if (!(o instanceof Color)) + o = color_color(o); + if (!o) + return new Rgb(); + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); +} +function color_rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); +} +function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; +} +src_define(Rgb, color_rgb, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity)); + }, + displayable() { + return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1); + }, + hex: rgb_formatHex, + // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb +})); +function rgb_formatHex() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; +} +function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} +function rgb_formatRgb() { + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; +} +function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); +} +function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); +} +function hex(value) { + value = clampi(value); + return (value < 16 ? "0" : "") + value.toString(16); +} +function hsla(h, s, l, a) { + if (a <= 0) + h = s = l = NaN; + else if (l <= 0 || l >= 1) + h = s = NaN; + else if (s <= 0) + h = NaN; + return new Hsl(h, s, l, a); +} +function hslConvert(o) { + if (o instanceof Hsl) + return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color)) + o = color_color(o); + if (!o) + return new Hsl(); + if (o instanceof Hsl) + return o; + o = o.rgb(); + var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2; + if (s) { + if (r === max) + h = (g - b) / s + (g < b) * 6; + else if (g === max) + h = (b - r) / s + 2; + else + h = (r - g) / s + 4; + s /= l < 0.5 ? max + min : 2 - max - min; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; + } + return new Hsl(h, s, l, o.opacity); +} +function hsl(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); +} +function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} +src_define(Hsl, hsl, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb() { + var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + this.opacity + ); + }, + clamp() { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity)); + }, + displayable() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1); + }, + formatHsl() { + const a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; + } +})); +function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; +} +function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); +} +function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basis.js +function basis(t1, v0, v1, v2, v3) { + var t2 = t1 * t1, t3 = t2 * t1; + return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6; +} +/* harmony default export */ function src_basis(values) { + var n = values.length - 1; + return function(t) { + var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basisClosed.js + +/* harmony default export */ function basisClosed(values) { + var n = values.length; + return function(t) { + var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n]; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/constant.js +/* harmony default export */ var src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/color.js + +function linear(a, d) { + return function(t) { + return a + t * d; + }; +} +function exponential(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; +} +function hue(a, b) { + var d = b - a; + return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : src_constant(isNaN(a) ? b : a); +} +function gamma(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential(a, b, y) : src_constant(isNaN(a) ? b : a); + }; +} +function nogamma(a, b) { + var d = b - a; + return d ? linear(a, d) : src_constant(isNaN(a) ? b : a); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/rgb.js + + + + +/* harmony default export */ var rgb = ((function rgbGamma(y) { + var color = gamma(y); + function rgb(start, end) { + var r = color((start = color_rgb(start)).r, (end = color_rgb(end)).r), g = color(start.g, end.g), b = color(start.b, end.b), opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.r = r(t); + start.g = g(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; + } + rgb.gamma = rgbGamma; + return rgb; +})(1)); +function rgbSpline(spline) { + return function(colors) { + var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color; + for (i = 0; i < n; ++i) { + color = color_rgb(colors[i]); + r[i] = color.r || 0; + g[i] = color.g || 0; + b[i] = color.b || 0; + } + r = spline(r); + g = spline(g); + b = spline(b); + color.opacity = 1; + return function(t) { + color.r = r(t); + color.g = g(t); + color.b = b(t); + return color + ""; + }; + }; +} +var rgbBasis = rgbSpline(src_basis); +var rgbBasisClosed = rgbSpline(basisClosed); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/numberArray.js +/* harmony default export */ function numberArray(a, b) { + if (!b) + b = []; + var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i; + return function(t) { + for (i = 0; i < n; ++i) + c[i] = a[i] * (1 - t) + b[i] * t; + return c; + }; +} +function isNumberArray(x) { + return ArrayBuffer.isView(x) && !(x instanceof DataView); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/array.js + + +/* harmony default export */ function src_array(a, b) { + return (isNumberArray(b) ? numberArray : genericArray)(a, b); +} +function genericArray(a, b) { + var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i; + for (i = 0; i < na; ++i) + x[i] = value(a[i], b[i]); + for (; i < nb; ++i) + c[i] = b[i]; + return function(t) { + for (i = 0; i < na; ++i) + c[i] = x[i](t); + return c; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/date.js +/* harmony default export */ function date(a, b) { + var d = /* @__PURE__ */ new Date(); + return a = +a, b = +b, function(t) { + return d.setTime(a * (1 - t) + b * t), d; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/number.js +/* harmony default export */ function number(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/object.js + +/* harmony default export */ function object(a, b) { + var i = {}, c = {}, k; + if (a === null || typeof a !== "object") + a = {}; + if (b === null || typeof b !== "object") + b = {}; + for (k in b) { + if (k in a) { + i[k] = value(a[k], b[k]); + } else { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) + c[k] = i[k](t); + return c; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/string.js + +var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g"); +function zero(b) { + return function() { + return b; + }; +} +function one(b) { + return function(t) { + return b(t) + ""; + }; +} +/* harmony default export */ function string(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = reA.exec(a)) && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.slice(bi, bs); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) + s[i] += bm; + else + s[++i] = bm; + } else { + s[++i] = null; + q.push({ i, x: number(am, bm) }); + } + bi = reB.lastIndex; + } + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) { + for (var i2 = 0, o; i2 < b; ++i2) + s[(o = q[i2]).i] = o.x(t); + return s.join(""); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/value.js + + + + + + + + + +/* harmony default export */ function value(a, b) { + var t = typeof b, c; + return b == null || t === "boolean" ? src_constant(b) : (t === "number" ? number : t === "string" ? (c = color_color(b)) ? (b = c, rgb) : string : b instanceof color_color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : number)(a, b); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/sourceEvent.js +/* harmony default export */ function sourceEvent(event) { + let sourceEvent; + while (sourceEvent = event.sourceEvent) + event = sourceEvent; + return event; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/pointer.js + +/* harmony default export */ function src_pointer(event, node) { + event = sourceEvent(event); + if (node === void 0) + node = event.currentTarget; + if (node) { + var svg = node.ownerSVGElement || node; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + point.x = event.clientX, point.y = event.clientY; + point = point.matrixTransform(node.getScreenCTM().inverse()); + return [point.x, point.y]; + } + if (node.getBoundingClientRect) { + var rect = node.getBoundingClientRect(); + return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; + } + } + return [event.pageX, event.pageY]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timer.js +var timer_frame = 0, timeout = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { + setTimeout(f, 17); +}; +function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); +} +function clearNow() { + clockNow = 0; +} +function Timer() { + this._call = this._time = this._next = null; +} +Timer.prototype = timer.prototype = { + constructor: Timer, + restart: function(callback, delay, time) { + if (typeof callback !== "function") + throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) + taskTail._next = this; + else + taskHead = this; + taskTail = this; + } + this._call = callback; + this._time = time; + sleep(); + }, + stop: function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); + } + } +}; +function timer(callback, delay, time) { + var t = new Timer(); + t.restart(callback, delay, time); + return t; +} +function timerFlush() { + now(); + ++timer_frame; + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) + t._call.call(void 0, e); + t = t._next; + } + --timer_frame; +} +function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + timer_frame = timeout = 0; + try { + timerFlush(); + } finally { + timer_frame = 0; + nap(); + clockNow = 0; + } +} +function poke() { + var now2 = clock.now(), delay = now2 - clockLast; + if (delay > pokeDelay) + clockSkew -= delay, clockLast = now2; +} +function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) + time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } + } + taskTail = t0; + sleep(time); +} +function sleep(time) { + if (timer_frame) + return; + if (timeout) + timeout = clearTimeout(timeout); + var delay = time - clockNow; + if (delay > 24) { + if (time < Infinity) + timeout = setTimeout(wake, time - clock.now() - clockSkew); + if (interval) + interval = clearInterval(interval); + } else { + if (!interval) + clockLast = clock.now(), interval = setInterval(poke, pokeDelay); + timer_frame = 1, setFrame(wake); + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timeout.js + +/* harmony default export */ function src_timeout(callback, delay, time) { + var t = new Timer(); + delay = delay == null ? 0 : +delay; + t.restart((elapsed) => { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/schedule.js + + +var emptyOn = src_dispatch("start", "end", "cancel", "interrupt"); +var emptyTween = []; +var CREATED = 0; +var SCHEDULED = 1; +var STARTING = 2; +var STARTED = 3; +var RUNNING = 4; +var ENDING = 5; +var ENDED = 6; +/* harmony default export */ function schedule(node, name, id, index, group, timing) { + var schedules = node.__transition; + if (!schedules) + node.__transition = {}; + else if (id in schedules) + return; + create(node, id, { + name, + index, + // For context during callback. + group, + // For context during callback. + on: emptyOn, + tween: emptyTween, + time: timing.time, + delay: timing.delay, + duration: timing.duration, + ease: timing.ease, + timer: null, + state: CREATED + }); +} +function init(node, id) { + var schedule = schedule_get(node, id); + if (schedule.state > CREATED) + throw new Error("too late; already scheduled"); + return schedule; +} +function schedule_set(node, id) { + var schedule = schedule_get(node, id); + if (schedule.state > STARTED) + throw new Error("too late; already running"); + return schedule; +} +function schedule_get(node, id) { + var schedule = node.__transition; + if (!schedule || !(schedule = schedule[id])) + throw new Error("transition not found"); + return schedule; +} +function create(node, id, self) { + var schedules = node.__transition, tween; + schedules[id] = self; + self.timer = timer(schedule, 0, self.time); + function schedule(elapsed) { + self.state = SCHEDULED; + self.timer.restart(start, self.delay, self.time); + if (self.delay <= elapsed) + start(elapsed - self.delay); + } + function start(elapsed) { + var i, j, n, o; + if (self.state !== SCHEDULED) + return stop(); + for (i in schedules) { + o = schedules[i]; + if (o.name !== self.name) + continue; + if (o.state === STARTED) + return src_timeout(start); + if (o.state === RUNNING) { + o.state = ENDED; + o.timer.stop(); + o.on.call("interrupt", node, node.__data__, o.index, o.group); + delete schedules[i]; + } else if (+i < id) { + o.state = ENDED; + o.timer.stop(); + o.on.call("cancel", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + } + src_timeout(function() { + if (self.state === STARTED) { + self.state = RUNNING; + self.timer.restart(tick, self.delay, self.time); + tick(elapsed); + } + }); + self.state = STARTING; + self.on.call("start", node, node.__data__, self.index, self.group); + if (self.state !== STARTING) + return; + self.state = STARTED; + tween = new Array(n = self.tween.length); + for (i = 0, j = -1; i < n; ++i) { + if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { + tween[++j] = o; + } + } + tween.length = j + 1; + } + function tick(elapsed) { + var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length; + while (++i < n) { + tween[i].call(node, t); + } + if (self.state === ENDING) { + self.on.call("end", node, node.__data__, self.index, self.group); + stop(); + } + } + function stop() { + self.state = ENDED; + self.timer.stop(); + delete schedules[id]; + for (var i in schedules) + return; + delete node.__transition; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/interrupt.js + +/* harmony default export */ function interrupt(node, name) { + var schedules = node.__transition, schedule, active, empty = true, i; + if (!schedules) + return; + name = name == null ? null : name + ""; + for (i in schedules) { + if ((schedule = schedules[i]).name !== name) { + empty = false; + continue; + } + active = schedule.state > STARTING && schedule.state < ENDING; + schedule.state = ENDED; + schedule.timer.stop(); + schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); + delete schedules[i]; + } + if (empty) + delete node.__transition; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/interrupt.js + +/* harmony default export */ function selection_interrupt(name) { + return this.each(function() { + interrupt(this, name); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/decompose.js +var degrees = 180 / Math.PI; +var identity = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; +/* harmony default export */ function decompose(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) + a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) + c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) + c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) + a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees, + skewX: Math.atan(skewX) * degrees, + scaleX, + scaleY + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/parse.js + +var svgNode; +function parseCss(value) { + const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); + return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f); +} +function parseSvg(value) { + if (value == null) + return identity; + if (!svgNode) + svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) + return identity; + value = value.matrix; + return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/index.js + + +function interpolateTransform(parse, pxComma, pxParen, degParen) { + function pop(s) { + return s.length ? s.pop() + " " : ""; + } + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({ i: i - 4, x: number(xa, xb) }, { i: i - 2, x: number(ya, yb) }); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } + } + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) + b += 360; + else if (b - a > 180) + a += 360; + q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b) }); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); + } + } + function skewX(a, b, s, q) { + if (a !== b) { + q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b) }); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } + } + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({ i: i - 4, x: number(xa, xb) }, { i: i - 2, x: number(ya, yb) }); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + } + } + return function(a, b) { + var s = [], q = []; + a = parse(a), b = parse(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) + s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + }; +} +var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); +var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/tween.js + +function tweenRemove(id, name) { + var tween0, tween1; + return function() { + var schedule = schedule_set(this, id), tween = schedule.tween; + if (tween !== tween0) { + tween1 = tween0 = tween; + for (var i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1 = tween1.slice(); + tween1.splice(i, 1); + break; + } + } + } + schedule.tween = tween1; + }; +} +function tweenFunction(id, name, value) { + var tween0, tween1; + if (typeof value !== "function") + throw new Error(); + return function() { + var schedule = schedule_set(this, id), tween = schedule.tween; + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; + break; + } + } + if (i === n) + tween1.push(t); + } + schedule.tween = tween1; + }; +} +/* harmony default export */ function tween(name, value) { + var id = this._id; + name += ""; + if (arguments.length < 2) { + var tween = schedule_get(this.node(), id).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { + return t.value; + } + } + return null; + } + return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); +} +function tweenValue(transition, name, value) { + var id = transition._id; + transition.each(function() { + var schedule = schedule_set(this, id); + (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); + }); + return function(node) { + return schedule_get(node, id).value[name]; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/interpolate.js + + +/* harmony default export */ function interpolate(a, b) { + var c; + return (typeof b === "number" ? number : b instanceof color_color ? rgb : (c = color_color(b)) ? (b = c, rgb) : string)(a, b); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attr.js + + + + +function attr_attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attr_attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attr_attrConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttribute(name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attr_attrConstantNS(fullname, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttributeNS(fullname.space, fullname.local); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attr_attrFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttribute(name); + string0 = this.getAttribute(name); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function attr_attrFunctionNS(fullname, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttributeNS(fullname.space, fullname.local); + string0 = this.getAttributeNS(fullname.space, fullname.local); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +/* harmony default export */ function transition_attr(name, value) { + var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate; + return this.attrTween(name, typeof value === "function" ? (fullname.local ? attr_attrFunctionNS : attr_attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) : value == null ? (fullname.local ? attr_attrRemoveNS : attr_attrRemove)(fullname) : (fullname.local ? attr_attrConstantNS : attr_attrConstant)(fullname, i, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attrTween.js + +function attrInterpolate(name, i) { + return function(t) { + this.setAttribute(name, i.call(this, t)); + }; +} +function attrInterpolateNS(fullname, i) { + return function(t) { + this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); + }; +} +function attrTweenNS(fullname, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolateNS(fullname, i); + return t0; + } + tween._value = value; + return tween; +} +function attrTween(name, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolate(name, i); + return t0; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_attrTween(name, value) { + var key = "attr." + name; + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + var fullname = namespace(name); + return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/delay.js + +function delayFunction(id, value) { + return function() { + init(this, id).delay = +value.apply(this, arguments); + }; +} +function delayConstant(id, value) { + return value = +value, function() { + init(this, id).delay = value; + }; +} +/* harmony default export */ function delay(value) { + var id = this._id; + return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id, value)) : schedule_get(this.node(), id).delay; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/duration.js + +function durationFunction(id, value) { + return function() { + schedule_set(this, id).duration = +value.apply(this, arguments); + }; +} +function durationConstant(id, value) { + return value = +value, function() { + schedule_set(this, id).duration = value; + }; +} +/* harmony default export */ function duration(value) { + var id = this._id; + return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id, value)) : schedule_get(this.node(), id).duration; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/ease.js + +function easeConstant(id, value) { + if (typeof value !== "function") + throw new Error(); + return function() { + schedule_set(this, id).ease = value; + }; +} +/* harmony default export */ function ease(value) { + var id = this._id; + return arguments.length ? this.each(easeConstant(id, value)) : schedule_get(this.node(), id).ease; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/easeVarying.js + +function easeVarying(id, value) { + return function() { + var v = value.apply(this, arguments); + if (typeof v !== "function") + throw new Error(); + schedule_set(this, id).ease = v; + }; +} +/* harmony default export */ function transition_easeVarying(value) { + if (typeof value !== "function") + throw new Error(); + return this.each(easeVarying(this._id, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/filter.js + + +/* harmony default export */ function transition_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Transition(subgroups, this._parents, this._name, this._id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/merge.js + +/* harmony default export */ function transition_merge(transition) { + if (transition._id !== this._id) + throw new Error(); + for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Transition(merges, this._parents, this._name, this._id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/on.js + +function start(name) { + return (name + "").trim().split(/^|\s+/).every(function(t) { + var i = t.indexOf("."); + if (i >= 0) + t = t.slice(0, i); + return !t || t === "start"; + }); +} +function onFunction(id, name, listener) { + var on0, on1, sit = start(name) ? init : schedule_set; + return function() { + var schedule = sit(this, id), on = schedule.on; + if (on !== on0) + (on1 = (on0 = on).copy()).on(name, listener); + schedule.on = on1; + }; +} +/* harmony default export */ function transition_on(name, listener) { + var id = this._id; + return arguments.length < 2 ? schedule_get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/remove.js +function removeFunction(id) { + return function() { + var parent = this.parentNode; + for (var i in this.__transition) + if (+i !== id) + return; + if (parent) + parent.removeChild(this); + }; +} +/* harmony default export */ function transition_remove() { + return this.on("end.remove", removeFunction(this._id)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/select.js + + + +/* harmony default export */ function transition_select(select) { + var name = this._name, id = this._id; + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + schedule(subgroup[i], name, id, i, subgroup, schedule_get(node, id)); + } + } + } + return new Transition(subgroups, this._parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selectAll.js + + + +/* harmony default export */ function transition_selectAll(select) { + var name = this._name, id = this._id; + if (typeof select !== "function") + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + for (var children = select.call(node, node.__data__, i, group), child, inherit = schedule_get(node, id), k = 0, l = children.length; k < l; ++k) { + if (child = children[k]) { + schedule(child, name, id, k, children, inherit); + } + } + subgroups.push(children); + parents.push(node); + } + } + } + return new Transition(subgroups, parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selection.js + +var selection_Selection = src_selection.prototype.constructor; +/* harmony default export */ function transition_selection() { + return new selection_Selection(this._groups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/style.js + + + + + +function styleNull(name, interpolate2) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1); + }; +} +function style_styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function style_styleConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = styleValue(this, name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function style_styleFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + ""; + if (value1 == null) + string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function styleMaybeRemove(id, name) { + var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; + return function() { + var schedule = schedule_set(this, id), on = schedule.on, listener = schedule.value[key] == null ? remove || (remove = style_styleRemove(name)) : void 0; + if (on !== on0 || listener0 !== listener) + (on1 = (on0 = on).copy()).on(event, listener0 = listener); + schedule.on = on1; + }; +} +/* harmony default export */ function transition_style(name, value, priority) { + var i = (name += "") === "transform" ? interpolateTransformCss : interpolate; + return value == null ? this.styleTween(name, styleNull(name, i)).on("end.style." + name, style_styleRemove(name)) : typeof value === "function" ? this.styleTween(name, style_styleFunction(name, i, tweenValue(this, "style." + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, style_styleConstant(name, i, value), priority).on("end.style." + name, null); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/styleTween.js +function styleInterpolate(name, i, priority) { + return function(t) { + this.style.setProperty(name, i.call(this, t), priority); + }; +} +function styleTween(name, value, priority) { + var t, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t = (i0 = i) && styleInterpolate(name, i, priority); + return t; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_styleTween(name, value, priority) { + var key = "style." + (name += ""); + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/text.js + +function text_textConstant(value) { + return function() { + this.textContent = value; + }; +} +function text_textFunction(value) { + return function() { + var value1 = value(this); + this.textContent = value1 == null ? "" : value1; + }; +} +/* harmony default export */ function transition_text(value) { + return this.tween("text", typeof value === "function" ? text_textFunction(tweenValue(this, "text", value)) : text_textConstant(value == null ? "" : value + "")); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/textTween.js +function textInterpolate(i) { + return function(t) { + this.textContent = i.call(this, t); + }; +} +function textTween(value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && textInterpolate(i); + return t0; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_textTween(value) { + var key = "text"; + if (arguments.length < 1) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, textTween(value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/transition.js + + +/* harmony default export */ function transition() { + var name = this._name, id0 = this._id, id1 = newId(); + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + var inherit = schedule_get(node, id0); + schedule(node, name, id1, i, group, { + time: inherit.time + inherit.delay + inherit.duration, + delay: 0, + duration: inherit.duration, + ease: inherit.ease + }); + } + } + } + return new Transition(groups, this._parents, name, id1); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/end.js + +/* harmony default export */ function end() { + var on0, on1, that = this, id = that._id, size = that.size(); + return new Promise(function(resolve, reject) { + var cancel = { value: reject }, end = { value: function() { + if (--size === 0) + resolve(); + } }; + that.each(function() { + var schedule = schedule_set(this, id), on = schedule.on; + if (on !== on0) { + on1 = (on0 = on).copy(); + on1._.cancel.push(cancel); + on1._.interrupt.push(cancel); + on1._.end.push(end); + } + schedule.on = on1; + }); + if (size === 0) + resolve(); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/index.js + + + + + + + + + + + + + + + + + + + + + +var id = 0; +function Transition(groups, parents, name, id2) { + this._groups = groups; + this._parents = parents; + this._name = name; + this._id = id2; +} +function transition_transition(name) { + return src_selection().transition(name); +} +function newId() { + return ++id; +} +var selection_prototype = src_selection.prototype; +Transition.prototype = transition_transition.prototype = { + constructor: Transition, + select: transition_select, + selectAll: transition_selectAll, + selectChild: selection_prototype.selectChild, + selectChildren: selection_prototype.selectChildren, + filter: transition_filter, + merge: transition_merge, + selection: transition_selection, + transition: transition, + call: selection_prototype.call, + nodes: selection_prototype.nodes, + node: selection_prototype.node, + size: selection_prototype.size, + empty: selection_prototype.empty, + each: selection_prototype.each, + on: transition_on, + attr: transition_attr, + attrTween: transition_attrTween, + style: transition_style, + styleTween: transition_styleTween, + text: transition_text, + textTween: transition_textTween, + remove: transition_remove, + tween: tween, + delay: delay, + duration: duration, + ease: ease, + easeVarying: transition_easeVarying, + end: end, + [Symbol.iterator]: selection_prototype[Symbol.iterator] +}; + +;// CONCATENATED MODULE: ./node_modules/d3-ease/src/cubic.js +function cubicIn(t) { + return t * t * t; +} +function cubicOut(t) { + return --t * t * t + 1; +} +function cubicInOut(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/transition.js + + + + +var defaultTiming = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: cubicInOut +}; +function inherit(node, id) { + var timing; + while (!(timing = node.__transition) || !(timing = timing[id])) { + if (!(node = node.parentNode)) { + throw new Error(`transition ${id} not found`); + } + } + return timing; +} +/* harmony default export */ function selection_transition(name) { + var id, timing; + if (name instanceof Transition) { + id = name._id, name = name._name; + } else { + id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; + } + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + schedule(node, name, id, i, group, timing || inherit(node, id)); + } + } + } + return new Transition(groups, this._parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/index.js + + + +src_selection.prototype.interrupt = selection_interrupt; +src_selection.prototype.transition = selection_transition; + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/index.js + + + + + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/constant.js +/* harmony default export */ var d3_brush_src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/event.js +function BrushEvent(type, { + sourceEvent, + target, + selection, + mode, + dispatch +}) { + Object.defineProperties(this, { + type: { value: type, enumerable: true, configurable: true }, + sourceEvent: { value: sourceEvent, enumerable: true, configurable: true }, + target: { value: target, enumerable: true, configurable: true }, + selection: { value: selection, enumerable: true, configurable: true }, + mode: { value: mode, enumerable: true, configurable: true }, + _: { value: dispatch } + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/noevent.js +function noevent_nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function src_noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/brush.js + + + + + + + + +var MODE_DRAG = { name: "drag" }, MODE_SPACE = { name: "space" }, MODE_HANDLE = { name: "handle" }, MODE_CENTER = { name: "center" }; +const { abs, max, min } = Math; +function number1(e) { + return [+e[0], +e[1]]; +} +function number2(e) { + return [number1(e[0]), number1(e[1])]; +} +var X = { + name: "x", + handles: ["w", "e"].map(type), + input: function(x, e) { + return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; + }, + output: function(xy) { + return xy && [xy[0][0], xy[1][0]]; + } +}; +var Y = { + name: "y", + handles: ["n", "s"].map(type), + input: function(y, e) { + return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; + }, + output: function(xy) { + return xy && [xy[0][1], xy[1][1]]; + } +}; +var XY = { + name: "xy", + handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type), + input: function(xy) { + return xy == null ? null : number2(xy); + }, + output: function(xy) { + return xy; + } +}; +var cursors = { + overlay: "crosshair", + selection: "move", + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" +}; +var flipX = { + e: "w", + w: "e", + nw: "ne", + ne: "nw", + se: "sw", + sw: "se" +}; +var flipY = { + n: "s", + s: "n", + nw: "sw", + ne: "se", + se: "ne", + sw: "nw" +}; +var signsX = { + overlay: 1, + selection: 1, + n: null, + e: 1, + s: null, + w: -1, + nw: -1, + ne: 1, + se: 1, + sw: -1 +}; +var signsY = { + overlay: 1, + selection: 1, + n: -1, + e: null, + s: 1, + w: null, + nw: -1, + ne: -1, + se: 1, + sw: 1 +}; +function type(t) { + return { type: t }; +} +function defaultFilter(event) { + return !event.ctrlKey && !event.button; +} +function defaultExtent() { + var svg = this.ownerSVGElement || this; + if (svg.hasAttribute("viewBox")) { + svg = svg.viewBox.baseVal; + return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]]; + } + return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; +} +function defaultTouchable() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +function local(node) { + while (!node.__brush) + if (!(node = node.parentNode)) + return; + return node.__brush; +} +function brush_empty(extent) { + return extent[0][0] === extent[1][0] || extent[0][1] === extent[1][1]; +} +function brushSelection(node) { + var state = node.__brush; + return state ? state.dim.output(state.selection) : null; +} +function brushX() { + return brush_brush(X); +} +function brushY() { + return brush_brush(Y); +} +/* harmony default export */ function brush() { + return brush_brush(XY); +} +function brush_brush(dim) { + var extent = defaultExtent, filter = defaultFilter, touchable = defaultTouchable, keys = true, listeners = src_dispatch("start", "brush", "end"), handleSize = 6, touchending; + function brush2(group) { + var overlay = group.property("__brush", initialize).selectAll(".overlay").data([type("overlay")]); + overlay.enter().append("rect").attr("class", "overlay").attr("pointer-events", "all").attr("cursor", cursors.overlay).merge(overlay).each(function() { + var extent2 = local(this).extent; + src_select(this).attr("x", extent2[0][0]).attr("y", extent2[0][1]).attr("width", extent2[1][0] - extent2[0][0]).attr("height", extent2[1][1] - extent2[0][1]); + }); + group.selectAll(".selection").data([type("selection")]).enter().append("rect").attr("class", "selection").attr("cursor", cursors.selection).attr("fill", "#777").attr("fill-opacity", 0.3).attr("stroke", "#fff").attr("shape-rendering", "crispEdges"); + var handle = group.selectAll(".handle").data(dim.handles, function(d) { + return d.type; + }); + handle.exit().remove(); + handle.enter().append("rect").attr("class", function(d) { + return "handle handle--" + d.type; + }).attr("cursor", function(d) { + return cursors[d.type]; + }); + group.each(redraw).attr("fill", "none").attr("pointer-events", "all").on("mousedown.brush", started).filter(touchable).on("touchstart.brush", started).on("touchmove.brush", touchmoved).on("touchend.brush touchcancel.brush", touchended).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + brush2.move = function(group, selection, event) { + if (group.tween) { + group.on("start.brush", function(event2) { + emitter(this, arguments).beforestart().start(event2); + }).on("interrupt.brush end.brush", function(event2) { + emitter(this, arguments).end(event2); + }).tween("brush", function() { + var that = this, state = that.__brush, emit = emitter(that, arguments), selection0 = state.selection, selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), i = value(selection0, selection1); + function tween(t) { + state.selection = t === 1 && selection1 === null ? null : i(t); + redraw.call(that); + emit.brush(); + } + return selection0 !== null && selection1 !== null ? tween : tween(1); + }); + } else { + group.each(function() { + var that = this, args = arguments, state = that.__brush, selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), emit = emitter(that, args).beforestart(); + interrupt(that); + state.selection = selection1 === null ? null : selection1; + redraw.call(that); + emit.start(event).brush(event).end(event); + }); + } + }; + brush2.clear = function(group, event) { + brush2.move(group, null, event); + }; + function redraw() { + var group = src_select(this), selection = local(this).selection; + if (selection) { + group.selectAll(".selection").style("display", null).attr("x", selection[0][0]).attr("y", selection[0][1]).attr("width", selection[1][0] - selection[0][0]).attr("height", selection[1][1] - selection[0][1]); + group.selectAll(".handle").style("display", null).attr("x", function(d) { + return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; + }).attr("y", function(d) { + return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; + }).attr("width", function(d) { + return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; + }).attr("height", function(d) { + return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; + }); + } else { + group.selectAll(".selection,.handle").style("display", "none").attr("x", null).attr("y", null).attr("width", null).attr("height", null); + } + } + function emitter(that, args, clean) { + var emit = that.__brush.emitter; + return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean); + } + function Emitter(that, args, clean) { + this.that = that; + this.args = args; + this.state = that.__brush; + this.active = 0; + this.clean = clean; + } + Emitter.prototype = { + beforestart: function() { + if (++this.active === 1) + this.state.emitter = this, this.starting = true; + return this; + }, + start: function(event, mode) { + if (this.starting) + this.starting = false, this.emit("start", event, mode); + else + this.emit("brush", event); + return this; + }, + brush: function(event, mode) { + this.emit("brush", event, mode); + return this; + }, + end: function(event, mode) { + if (--this.active === 0) + delete this.state.emitter, this.emit("end", event, mode); + return this; + }, + emit: function(type2, event, mode) { + var d = src_select(this.that).datum(); + listeners.call( + type2, + this.that, + new BrushEvent(type2, { + sourceEvent: event, + target: brush2, + selection: dim.output(this.state.selection), + mode, + dispatch: listeners + }), + d + ); + } + }; + function started(event) { + if (touchending && !event.touches) + return; + if (!filter.apply(this, arguments)) + return; + var that = this, type2 = event.target.__data__.type, mode = (keys && event.metaKey ? type2 = "overlay" : type2) === "selection" ? MODE_DRAG : keys && event.altKey ? MODE_CENTER : MODE_HANDLE, signX = dim === Y ? null : signsX[type2], signY = dim === X ? null : signsY[type2], state = local(that), extent2 = state.extent, selection = state.selection, W = extent2[0][0], w0, w1, N = extent2[0][1], n0, n1, E = extent2[1][0], e0, e1, S = extent2[1][1], s0, s1, dx = 0, dy = 0, moving, shifting = signX && signY && keys && event.shiftKey, lockX, lockY, points = Array.from(event.touches || [event], (t) => { + const i = t.identifier; + t = src_pointer(t, that); + t.point0 = t.slice(); + t.identifier = i; + return t; + }); + interrupt(that); + var emit = emitter(that, arguments, true).beforestart(); + if (type2 === "overlay") { + if (selection) + moving = true; + const pts = [points[0], points[1] || points[0]]; + state.selection = selection = [[ + w0 = dim === Y ? W : min(pts[0][0], pts[1][0]), + n0 = dim === X ? N : min(pts[0][1], pts[1][1]) + ], [ + e0 = dim === Y ? E : max(pts[0][0], pts[1][0]), + s0 = dim === X ? S : max(pts[0][1], pts[1][1]) + ]]; + if (points.length > 1) + move(event); + } else { + w0 = selection[0][0]; + n0 = selection[0][1]; + e0 = selection[1][0]; + s0 = selection[1][1]; + } + w1 = w0; + n1 = n0; + e1 = e0; + s1 = s0; + var group = src_select(that).attr("pointer-events", "none"); + var overlay = group.selectAll(".overlay").attr("cursor", cursors[type2]); + if (event.touches) { + emit.moved = moved; + emit.ended = ended; + } else { + var view = src_select(event.view).on("mousemove.brush", moved, true).on("mouseup.brush", ended, true); + if (keys) + view.on("keydown.brush", keydowned, true).on("keyup.brush", keyupped, true); + nodrag(event.view); + } + redraw.call(that); + emit.start(event, mode.name); + function moved(event2) { + for (const p of event2.changedTouches || [event2]) { + for (const d of points) + if (d.identifier === p.identifier) + d.cur = src_pointer(p, that); + } + if (shifting && !lockX && !lockY && points.length === 1) { + const point = points[0]; + if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1])) + lockY = true; + else + lockX = true; + } + for (const point of points) + if (point.cur) + point[0] = point.cur[0], point[1] = point.cur[1]; + moving = true; + src_noevent(event2); + move(event2); + } + function move(event2) { + const point = points[0], point0 = point.point0; + var t; + dx = point[0] - point0[0]; + dy = point[1] - point0[1]; + switch (mode) { + case MODE_SPACE: + case MODE_DRAG: { + if (signX) + dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; + if (signY) + dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; + break; + } + case MODE_HANDLE: { + if (points[1]) { + if (signX) + w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1; + if (signY) + n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1; + } else { + if (signX < 0) + dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0; + else if (signX > 0) + dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx; + if (signY < 0) + dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0; + else if (signY > 0) + dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy; + } + break; + } + case MODE_CENTER: { + if (signX) + w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX)); + if (signY) + n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY)); + break; + } + } + if (e1 < w1) { + signX *= -1; + t = w0, w0 = e0, e0 = t; + t = w1, w1 = e1, e1 = t; + if (type2 in flipX) + overlay.attr("cursor", cursors[type2 = flipX[type2]]); + } + if (s1 < n1) { + signY *= -1; + t = n0, n0 = s0, s0 = t; + t = n1, n1 = s1, s1 = t; + if (type2 in flipY) + overlay.attr("cursor", cursors[type2 = flipY[type2]]); + } + if (state.selection) + selection = state.selection; + if (lockX) + w1 = selection[0][0], e1 = selection[1][0]; + if (lockY) + n1 = selection[0][1], s1 = selection[1][1]; + if (selection[0][0] !== w1 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) { + state.selection = [[w1, n1], [e1, s1]]; + redraw.call(that); + emit.brush(event2, mode.name); + } + } + function ended(event2) { + noevent_nopropagation(event2); + if (event2.touches) { + if (event2.touches.length) + return; + if (touchending) + clearTimeout(touchending); + touchending = setTimeout(function() { + touchending = null; + }, 500); + } else { + yesdrag(event2.view, moving); + view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); + } + group.attr("pointer-events", "all"); + overlay.attr("cursor", cursors.overlay); + if (state.selection) + selection = state.selection; + if (brush_empty(selection)) + state.selection = null, redraw.call(that); + emit.end(event2, mode.name); + } + function keydowned(event2) { + switch (event2.keyCode) { + case 16: { + shifting = signX && signY; + break; + } + case 18: { + if (mode === MODE_HANDLE) { + if (signX) + e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) + s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + move(event2); + } + break; + } + case 32: { + if (mode === MODE_HANDLE || mode === MODE_CENTER) { + if (signX < 0) + e0 = e1 - dx; + else if (signX > 0) + w0 = w1 - dx; + if (signY < 0) + s0 = s1 - dy; + else if (signY > 0) + n0 = n1 - dy; + mode = MODE_SPACE; + overlay.attr("cursor", cursors.selection); + move(event2); + } + break; + } + default: + return; + } + src_noevent(event2); + } + function keyupped(event2) { + switch (event2.keyCode) { + case 16: { + if (shifting) { + lockX = lockY = shifting = false; + move(event2); + } + break; + } + case 18: { + if (mode === MODE_CENTER) { + if (signX < 0) + e0 = e1; + else if (signX > 0) + w0 = w1; + if (signY < 0) + s0 = s1; + else if (signY > 0) + n0 = n1; + mode = MODE_HANDLE; + move(event2); + } + break; + } + case 32: { + if (mode === MODE_SPACE) { + if (event2.altKey) { + if (signX) + e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) + s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + } else { + if (signX < 0) + e0 = e1; + else if (signX > 0) + w0 = w1; + if (signY < 0) + s0 = s1; + else if (signY > 0) + n0 = n1; + mode = MODE_HANDLE; + } + overlay.attr("cursor", cursors[type2]); + move(event2); + } + break; + } + default: + return; + } + src_noevent(event2); + } + } + function touchmoved(event) { + emitter(this, arguments).moved(event); + } + function touchended(event) { + emitter(this, arguments).ended(event); + } + function initialize() { + var state = this.__brush || { selection: null }; + state.extent = number2(extent.apply(this, arguments)); + state.dim = dim; + return state; + } + brush2.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : d3_brush_src_constant(number2(_)), brush2) : extent; + }; + brush2.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush2) : filter; + }; + brush2.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush2) : touchable; + }; + brush2.handleSize = function(_) { + return arguments.length ? (handleSize = +_, brush2) : handleSize; + }; + brush2.keyModifiers = function(_) { + return arguments.length ? (keys = !!_, brush2) : keys; + }; + brush2.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? brush2 : value; + }; + return brush2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/index.js + + +;// CONCATENATED MODULE: ./src/module/browser.ts +function getGlobal() { + return typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && globalThis || typeof global === "object" && global !== null && global.Object === Object && global || typeof self === "object" && self !== null && self.Object === Object && self || Function("return this")(); +} +function getFallback(w) { + const hasRAF = typeof (w == null ? void 0 : w.requestAnimationFrame) === "function" && typeof (w == null ? void 0 : w.cancelAnimationFrame) === "function"; + const hasRIC = typeof (w == null ? void 0 : w.requestIdleCallback) === "function" && typeof (w == null ? void 0 : w.cancelIdleCallback) === "function"; + const request = (cb) => setTimeout(cb, 1); + const cancel = (id) => clearTimeout(id); + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +const win = getGlobal(); +const browser_doc = win == null ? void 0 : win.document; +const [ + requestAnimationFrame, + cancelAnimationFrame, + requestIdleCallback, + cancelIdleCallback +] = getFallback(win); + + +;// CONCATENATED MODULE: ./src/module/util.ts +var util_defProp = Object.defineProperty; +var util_getOwnPropSymbols = Object.getOwnPropertySymbols; +var util_hasOwnProp = Object.prototype.hasOwnProperty; +var util_propIsEnum = Object.prototype.propertyIsEnumerable; +var util_defNormalProp = (obj, key, value) => key in obj ? util_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var util_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (util_hasOwnProp.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + if (util_getOwnPropSymbols) + for (var prop of util_getOwnPropSymbols(b)) { + if (util_propIsEnum.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + + +const isValue = (v) => v || v === 0; +const isFunction = (v) => typeof v === "function"; +const isString = (v) => typeof v === "string"; +const isNumber = (v) => typeof v === "number"; +const isUndefined = (v) => typeof v === "undefined"; +const isDefined = (v) => typeof v !== "undefined"; +const isBoolean = (v) => typeof v === "boolean"; +const ceil10 = (v) => Math.ceil(v / 10) * 10; +const asHalfPixel = (n) => Math.ceil(n) + 0.5; +const diffDomain = (d) => d[1] - d[0]; +const isObjectType = (v) => typeof v === "object"; +const isEmpty = (o) => isUndefined(o) || o === null || isString(o) && o.length === 0 || isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0 || isNumber(o) && isNaN(o); +const notEmpty = (o) => !isEmpty(o); +const isArray = (arr) => Array.isArray(arr); +const isObject = (obj) => obj && !(obj == null ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +function hasValue(dict, value) { + let found = false; + Object.keys(dict).forEach((key) => dict[key] === value && (found = true)); + return found; +} +function callFn(fn, thisArg, ...args) { + const isFn = isFunction(fn); + isFn && fn.call(thisArg, ...args); + return isFn; +} +function endall(transition, cb) { + let n = 0; + const end = function(...args) { + !--n && cb.apply(this, ...args); + }; + if ("duration" in transition) { + transition.each(() => ++n).on("end", end); + } else { + ++n; + transition.call(end); + } +} +function sanitize(str) { + return isString(str) ? str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : str; +} +function setTextValue(node, text, dy = [-1, 1], toMiddle = false) { + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } else { + const diff = [node.text(), text].map((v) => v.replace(/[\s\n]/g, "")); + if (diff[0] !== diff[1]) { + const multiline = text.split("\n"); + const len = toMiddle ? multiline.length - 1 : 1; + node.html(""); + multiline.forEach((v, i) => { + node.append("tspan").attr("x", 0).attr("dy", `${i === 0 ? dy[0] * len : dy[1]}em`).text(v); + }); + } + } +} +function getRectSegList(path) { + const { x, y, width, height } = path.getBBox(); + return [ + { x, y: y + height }, + // seg0 + { x, y }, + // seg1 + { x: x + width, y }, + // seg2 + { x: x + width, y: y + height } + // seg3 + ]; +} +function getPathBox(path) { + const { width, height } = path.getBoundingClientRect(); + const items = getRectSegList(path); + const x = items[0].x; + const y = Math.min(items[0].y, items[1].y); + return { + x, + y, + width, + height + }; +} +function getPointer(event, element) { + var _a; + const touches = event && ((_a = event.touches || event.sourceEvent && event.sourceEvent.touches) == null ? void 0 : _a[0]); + let pointer = [0, 0]; + try { + pointer = src_pointer(touches || event, element); + } catch (e) { + } + return pointer.map((v) => isNaN(v) ? 0 : v); +} +function getBrushSelection(ctx) { + const { event, $el } = ctx; + const main = $el.subchart.main || $el.main; + let selection; + if (event && event.type === "brush") { + selection = event.selection; + } else if (main && (selection = main.select(".bb-brush").node())) { + selection = brushSelection(selection); + } + return selection; +} +function getBoundingRect(node) { + const needEvaluate = !("rect" in node) || "rect" in node && node.hasAttribute("width") && node.rect.width !== +node.getAttribute("width"); + return needEvaluate ? node.rect = node.getBoundingClientRect() : node.rect; +} +function getRandom(asStr = true, min = 0, max = 1e4) { + const crpt = win.crypto || win.msCrypto; + const rand = crpt ? min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + const mid = Math.floor((start + end) / 2); + let { x, w = 0 } = arr[mid]; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? findIndex(arr, v, start, mid - 1, isRotated) : findIndex(arr, v, mid + 1, end, isRotated); +} +function brushEmpty(ctx) { + const selection = getBrushSelection(ctx); + if (selection) { + return selection[0] === selection[1]; + } + return true; +} +function deepClone(...objectN) { + const clone = (v) => { + if (isObject(v) && v.constructor) { + const r = new v.constructor(); + for (const k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map((v) => clone(v)).reduce((a, c) => util_spreadValues(util_spreadValues({}, a), c)); +} +function util_extend(target = {}, source) { + if (isArray(source)) { + source.forEach((v) => util_extend(target, v)); + } + for (const p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); +function camelize(str, separator = "-") { + return str.split(separator).map((v, i) => i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()).join(""); +} +const toArray = (v) => [].slice.call(v); +function addCssRules(style, selector, prop) { + const { rootSelector = "", sheet } = style; + const getSelector = (s) => s.replace(/\s?(bb-)/g, ".$1").replace(/\.+/g, "."); + const rule = `${rootSelector} ${getSelector(selector)} {${prop.join(";")}}`; + return sheet[sheet.insertRule ? "insertRule" : "addRule"]( + rule, + sheet.cssRules.length + ); +} +function getCssRules(styleSheets) { + let rules = []; + styleSheets.forEach((sheet) => { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } catch (e) { + (_a = win.console) == null ? void 0 : _a.warn(`Error while reading rules from ${sheet.href}: ${e.toString()}`); + } + }); + return rules; +} +function getScrollPosition(node) { + var _a, _b, _c, _d; + return { + x: ((_b = (_a = win.pageXOffset) != null ? _a : win.scrollX) != null ? _b : 0) + node.scrollLeft, + y: ((_d = (_c = win.pageYOffset) != null ? _c : win.scrollY) != null ? _d : 0) + node.scrollTop + }; +} +function getTranslation(node) { + const transform = node ? node.transform : null; + const baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? baseVal.getItem(0).matrix : { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +function getUnique(data) { + const isDate = data[0] instanceof Date; + const d = (isDate ? data.map(Number) : data).filter((v, i, self) => self.indexOf(v) === i); + return isDate ? d.map((v) => new Date(v)) : d; +} +function mergeArray(arr) { + return arr && arr.length ? arr.reduce((p, c) => p.concat(c)) : []; +} +function mergeObj(target, ...objectN) { + if (!objectN.length || objectN.length === 1 && !objectN[0]) { + return target; + } + const source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach((key) => { + const value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj(target, ...objectN); +} +function sortValue(data, isAsc = true) { + let fn; + if (data[0] instanceof Date) { + fn = isAsc ? (a, b) => a - b : (a, b) => b - a; + } else { + if (isAsc && !data.every(isNaN)) { + fn = (a, b) => a - b; + } else if (!isAsc) { + fn = (a, b) => a > b && -1 || a < b && 1 || a === b && 0; + } + } + return data.concat().sort(fn); +} +function getMinMax(type, data) { + let res = data.filter((v) => notEmpty(v)); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type](...res); + } else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } else { + res = void 0; + } + return res; +} +const getRange = (start, end, step = 1) => { + const res = []; + const n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (let i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +const emulateEvent = { + mouse: (() => { + const getParams = () => ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); + try { + new MouseEvent("t"); + return (el, eventType, params = getParams()) => { + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } catch (e) { + return (el, eventType, params = getParams()) => { + const mouseEvent = browser_doc.createEvent("MouseEvent"); + mouseEvent.initMouseEvent( + eventType, + params.bubbles, + params.cancelable, + win, + 0, + // the event's mouse click count + params.screenX, + params.screenY, + params.clientX, + params.clientY, + false, + false, + false, + false, + 0, + null + ); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: (el, eventType, params) => { + const touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +function tplProcess(tpl, data) { + let res = tpl; + for (const x in data) { + res = res.replace(new RegExp(`{=${x}}`, "g"), data[x]); + } + return res; +} +function parseDate(date) { + var _a; + let parsedDate; + if (date instanceof Date) { + parsedDate = date; + } else if (isString(date)) { + const { config, format } = this; + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) != null ? _a : new Date(date); + } else if (isNumber(date) && !isNaN(date)) { + parsedDate = /* @__PURE__ */ new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && console.error(`Failed to parse x '${date}' to Date object`); + } + return parsedDate; +} +function isTabVisible() { + var _a, _b; + return ((_a = browser_doc) == null ? void 0 : _a.hidden) === false || ((_b = browser_doc) == null ? void 0 : _b.visibilityState) === "visible"; +} +function convertInputType(mouse, touch) { + const { DocumentTouch, matchMedia, navigator } = win; + let hasTouch = false; + if (touch) { + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + } else if ("ontouchmove" in win || DocumentTouch && browser_doc instanceof DocumentTouch) { + hasTouch = true; + } else { + if (matchMedia == null ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } else { + const UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + const hasMouse = mouse && ((matchMedia == null ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia == null ? void 0 : matchMedia("any-pointer:fine").matches)); + return hasMouse && "mouse" || hasTouch && "touch" || "mouse"; +} +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(() => runUntil(fn, conditionFn)); + } else { + fn(); + } +} + +;// CONCATENATED MODULE: ./src/config/Options/Options.ts +var Options_defProp = Object.defineProperty; +var Options_getOwnPropSymbols = Object.getOwnPropertySymbols; +var Options_hasOwnProp = Object.prototype.hasOwnProperty; +var Options_propIsEnum = Object.prototype.propertyIsEnumerable; +var Options_defNormalProp = (obj, key, value) => key in obj ? Options_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var Options_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (Options_hasOwnProp.call(b, prop)) + Options_defNormalProp(a, prop, b[prop]); + if (Options_getOwnPropSymbols) + for (var prop of Options_getOwnPropSymbols(b)) { + if (Options_propIsEnum.call(b, prop)) + Options_defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __publicField = (obj, key, value) => { + Options_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + + + + + +const _Options = class _Options { + static setOptions(options) { + this.data = options.reduce((a, c) => Options_spreadValues(Options_spreadValues({}, a), c), this.data); + } + constructor() { + return deepClone( + main, + boost, + data_data, + color, + interaction, + legend, + title, + tooltip, + _Options.data + ); + } +}; +__publicField(_Options, "data", {}); +let Options = _Options; + + +;// CONCATENATED MODULE: ./src/config/Store/Element.ts +class Element { + constructor() { + const element = { + chart: null, + main: null, + svg: null, + axis: { + // axes + x: null, + y: null, + y2: null, + subX: null + }, + axisTooltip: { + x: null, + y: null, + y2: null + }, + defs: null, + tooltip: null, + legend: null, + title: null, + subchart: { + main: null, + // $$.context + bar: null, + // $$.contextBar + line: null, + // $$.contextLine + area: null + // $$.contextArea + }, + arcs: null, + bar: null, + // mainBar, + candlestick: null, + line: null, + // mainLine, + area: null, + // mainArea, + circle: null, + // mainCircle, + radar: null, + text: null, + // mainText, + grid: { + main: null, + // grid (also focus) + x: null, + // xgrid, + y: null + // ygrid, + }, + gridLines: { + main: null, + // gridLines + x: null, + // xgridLines, + y: null + // ygridLines + }, + region: { + main: null, + // region + list: null + // mainRegion + }, + eventRect: null, + zoomResetBtn: null + // drag zoom reset button + }; + return element; + } +} + +;// CONCATENATED MODULE: ./src/config/Store/State.ts +class State { + constructor() { + return { + // chart drawn area dimension, excluding axes + width: 0, + width2: 0, + height: 0, + height2: 0, + margin: { + top: 0, + bottom: 0, + left: 0, + right: 0 + }, + margin2: { + top: 0, + bottom: 0, + left: 0, + right: 0 + }, + margin3: { + top: 0, + bottom: 0, + left: 0, + right: 0 + }, + arcWidth: 0, + arcHeight: 0, + xAxisHeight: 0, + hasAxis: false, + hasFunnel: false, + hasRadar: false, + hasTreemap: false, + // for data CSS rule index (used when boost.useCssRule is true) + cssRule: {}, + current: { + // current domain value. Assigned when is zoom is called + domain: void 0, + // chart whole dimension + width: 0, + height: 0, + dataMax: 0, + maxTickSize: { + x: { + width: 0, + height: 0, + ticks: [], + clipPath: 0, + domain: "" + }, + y: { width: 0, height: 0, domain: "" }, + y2: { width: 0, height: 0, domain: "" } + }, + // current used chart type list + types: [], + needle: void 0 + // arc needle current value + }, + // legend + isLegendRight: false, + isLegendInset: false, + isLegendTop: false, + isLegendLeft: false, + legendStep: 0, + legendItemWidth: 0, + legendItemHeight: 0, + legendHasRendered: false, + eventReceiver: { + currentIdx: -1, + // current event interaction index + rect: {}, + // event rect's clientBoundingRect + data: [], + // event data bound of previoous eventRect + coords: [] + // coordination value of previous eventRect + }, + axis: { + x: { + padding: { left: 0, right: 0 }, + tickCount: 0 + } + }, + rotatedPadding: { + left: 30, + right: 0, + top: 5 + }, + withoutFadeIn: {}, + inputType: "", + datetimeId: "", + // clip id string + clip: { + id: "", + idXAxis: "", + idYAxis: "", + idXAxisTickTexts: "", + idGrid: "", + idSubchart: "", + // clipIdForSubchart + path: "", + pathXAxis: "", + pathYAxis: "", + pathXAxisTickTexts: "", + pathGrid: "" + }, + // state + event: null, + // event object + dragStart: null, + dragging: false, + flowing: false, + cancelClick: false, + mouseover: false, + rendered: false, + transiting: false, + redrawing: false, + // if redraw() is on process + resizing: false, + // resize event called + toggling: false, + // legend toggle + zooming: false, + hasNegativeValue: false, + hasPositiveValue: true, + orgAreaOpacity: "0.2", + orgConfig: {}, + // user original genration config + // ID strings + hiddenTargetIds: [], + hiddenLegendIds: [], + focusedTargetIds: [], + defocusedTargetIds: [], + // value for Arc + radius: 0, + innerRadius: 0, + outerRadius: void 0, + innerRadiusRatio: 0, + gaugeArcWidth: 0, + radiusExpanded: 0, + // xgrid attribute + xgridAttr: { + x1: null, + x2: null, + y1: null, + y2: null + } + }; + } +} + +;// CONCATENATED MODULE: ./src/config/Store/Store.ts + + +const Store_classes = { + element: Element, + state: State +}; +class Store { + constructor() { + Object.keys(Store_classes).forEach((v) => { + this[v] = new Store_classes[v](); + }); + } + getStore(name) { + return this[name]; + } +} + +;// CONCATENATED MODULE: ./src/module/Cache.ts +var Cache_defProp = Object.defineProperty; +var Cache_defNormalProp = (obj, key, value) => key in obj ? Cache_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var Cache_publicField = (obj, key, value) => { + Cache_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + +const KEY = { + bubbleBaseLength: "$baseLength", + colorPattern: "__colorPattern__", + dataMinMax: "$dataMinMax", + dataTotalSum: "$dataTotalSum", + dataTotalPerIndex: "$totalPerIndex", + legendItemTextBox: "legendItemTextBox", + radarPoints: "$radarPoints", + radarTextWidth: "$radarTextWidth", + setOverOut: "setOverOut", + callOverOutForTouch: "callOverOutForTouch", + textRect: "textRect" +}; +class Cache { + constructor() { + Cache_publicField(this, "cache", {}); + } + /** + * Add cache + * @param {string} key Cache key + * @param {*} value Value to be stored + * @param {boolean} isDataType Weather the cache is data typed '{id:'data', id_org: 'data', values: [{x:0, index:0,...}, ...]}' + * @returns {*} Added data value + * @private + */ + add(key, value, isDataType = false) { + this.cache[key] = isDataType ? this.cloneTarget(value) : value; + return this.cache[key]; + } + /** + * Remove cache + * @param {string|Array} key Cache key + * @private + */ + remove(key) { + (isString(key) ? [key] : key).forEach((v) => delete this.cache[v]); + } + /** + * Get cahce + * @param {string|Array} key Cache key + * @param {boolean} isDataType Weather the cache is data typed '{id:'data', id_org: 'data', values: [{x:0, index:0,...}, ...]}' + * @returns {*} + * @private + */ + get(key, isDataType = false) { + if (isDataType && Array.isArray(key)) { + const targets = []; + for (let i = 0, id; id = key[i]; i++) { + if (id in this.cache) { + targets.push(this.cloneTarget(this.cache[id])); + } + } + return targets; + } else { + const value = this.cache[key]; + return isValue(value) ? value : null; + } + } + /** + * Reset cached data + * @param {boolean} all true: reset all data, false: reset only '$' prefixed key data + * @private + */ + reset(all) { + const $$ = this; + for (const x in $$.cache) { + if (all || /^\$/.test(x)) { + $$.cache[x] = null; + } + } + } + /** + * Clone data target object + * @param {object} target Data object + * @returns {object} + * @private + */ + cloneTarget(target) { + return { + id: target.id, + id_org: target.id_org, + values: target.values.map((d) => ({ x: d.x, value: d.value, id: d.id })) + }; + } +} + +;// CONCATENATED MODULE: ./src/config/const.ts +const TYPE = { + AREA: "area", + AREA_LINE_RANGE: "area-line-range", + AREA_SPLINE: "area-spline", + AREA_SPLINE_RANGE: "area-spline-range", + AREA_STEP: "area-step", + BAR: "bar", + BUBBLE: "bubble", + CANDLESTICK: "candlestick", + DONUT: "donut", + FUNNEL: "funnel", + GAUGE: "gauge", + LINE: "line", + PIE: "pie", + POLAR: "polar", + RADAR: "radar", + SCATTER: "scatter", + SPLINE: "spline", + STEP: "step", + TREEMAP: "treemap" +}; +const TYPE_METHOD_NEEDED = { + AREA: "initArea", + AREA_LINE_RANGE: "initArea", + AREA_SPLINE: "initArea", + AREA_SPLINE_RANGE: "initArea", + AREA_STEP: "initArea", + BAR: "initBar", + BUBBLE: "initCircle", + CANDLESTICK: "initCandlestick", + DONUT: "initArc", + FUNNEL: "initFunnel", + GAUGE: "initArc", + LINE: "initLine", + PIE: "initArc", + POLAR: "initPolar", + RADAR: "initCircle", + SCATTER: "initCircle", + SPLINE: "initLine", + STEP: "initLine", + TREEMAP: "initTreemap" +}; +const TYPE_BY_CATEGORY = { + Area: [ + TYPE.AREA, + TYPE.AREA_SPLINE, + TYPE.AREA_SPLINE_RANGE, + TYPE.AREA_LINE_RANGE, + TYPE.AREA_STEP + ], + AreaRange: [ + TYPE.AREA_SPLINE_RANGE, + TYPE.AREA_LINE_RANGE + ], + Arc: [ + TYPE.PIE, + TYPE.DONUT, + TYPE.GAUGE, + TYPE.POLAR, + TYPE.RADAR + ], + Line: [ + TYPE.LINE, + TYPE.SPLINE, + TYPE.AREA, + TYPE.AREA_SPLINE, + TYPE.AREA_SPLINE_RANGE, + TYPE.AREA_LINE_RANGE, + TYPE.STEP, + TYPE.AREA_STEP + ], + Step: [ + TYPE.STEP, + TYPE.AREA_STEP + ], + Spline: [ + TYPE.SPLINE, + TYPE.AREA_SPLINE, + TYPE.AREA_SPLINE_RANGE + ] +}; + +;// CONCATENATED MODULE: ./src/module/error.ts + + + + +function checkModuleImport(ctx) { + const $$ = ctx; + const { config } = $$; + let type = ""; + if (isEmpty(config.data_type || config.data_types) && !$$[TYPE_METHOD_NEEDED.LINE]) { + type = "line"; + } else { + for (const x in TYPE_METHOD_NEEDED) { + const t = TYPE[x]; + if ($$.hasType(t) && !$$[TYPE_METHOD_NEEDED[x]]) { + type = t; + break; + } + } + } + type && logError( + `Please, make sure if %c${camelize(type)}`, + "module has been imported and specified correctly." + ); +} +function logError(head, tail) { + var _a; + const prefix = "[billboard.js]"; + const info = "https://github.com/naver/billboard.js/wiki/CHANGELOG-v2#modularization-by-its-functionality"; + const hasConsole = (_a = win.console) == null ? void 0 : _a.error; + if (hasConsole) { + console.error( + `\u274C ${prefix} ${head}`, + "background:red;color:white;display:block;font-size:15px", + tail + ); + console.info("%c\u2139\uFE0F", "font-size:15px", info); + } + throw Error(`${prefix} ${head.replace(/\%c([a-z-]+)/i, "'$1' ")} ${tail}`); +} + +;// CONCATENATED MODULE: ./src/module/generator.ts + + +const { setTimeout: generator_setTimeout, clearTimeout: generator_clearTimeout } = win; +function generateResize(option) { + const fn = []; + let timeout; + const callResizeFn = function() { + callResizeFn.clear(); + if (option === false) { + requestIdleCallback(() => { + fn.forEach((f) => f()); + }, { timeout: 200 }); + } else { + timeout = generator_setTimeout(() => { + fn.forEach((f) => f()); + }, isNumber(option) ? option : 200); + } + }; + callResizeFn.clear = () => { + if (timeout) { + generator_clearTimeout(timeout); + timeout = null; + } + }; + callResizeFn.add = (f) => fn.push(f); + callResizeFn.remove = (f) => fn.splice(fn.indexOf(f), 1); + return callResizeFn; +} +function generateWait() { + let transitionsToWait = []; + const f = function(selection, callback) { + function loop() { + var _a; + let done = 0; + for (let i = 0, t; t = transitionsToWait[i]; i++) { + if (t === true || ((_a = t.empty) == null ? void 0 : _a.call(t))) { + done++; + continue; + } + if (isTabVisible() === false) { + done = transitionsToWait.length; + break; + } + try { + t.transition(); + } catch (e) { + done++; + } + } + return done === transitionsToWait.length; + } + runUntil(() => { + callback == null ? void 0 : callback(); + }, loop); + }; + f.add = function(t) { + isArray(t) ? transitionsToWait = transitionsToWait.concat(t) : transitionsToWait.push(t); + }; + return f; +} + +;// CONCATENATED MODULE: ./src/module/worker.ts + +const blob = {}; +function getObjectURL(fn, depsFn) { + var _a; + const fnString = fn.toString(); + const key = fnString.replace(/(function|[\s\W\n])/g, "").substring(0, 15); + if (!(key in blob)) { + blob[key] = new win.Blob([ + `${(_a = depsFn == null ? void 0 : depsFn.map(String).join(";")) != null ? _a : ""} + + self.onmessage=function({data}) { + const result = (${fnString}).apply(null, data); + self.postMessage(result); + };` + ], { + type: "text/javascript" + }); + } + return win.URL.createObjectURL(blob[key]); +} +function getWorker(src) { + const worker = new win.Worker(src); + worker.onerror = function(e) { + console.error ? console.error(e) : console.log(e); + }; + return worker; +} +function runWorker(useWorker = true, fn, callback, depsFn) { + let runFn = function(...args) { + const res = fn(...args); + callback(res); + }; + if (win.Worker && useWorker) { + const src = getObjectURL(fn, depsFn); + const worker = getWorker(src); + runFn = function(...args) { + worker.postMessage(args); + worker.onmessage = function(e) { + win.URL.revokeObjectURL(src); + return callback(e.data); + }; + }; + } + return runFn; +} + +;// CONCATENATED MODULE: ./node_modules/d3-dsv/src/dsv.js +var EOL = {}, EOF = {}, QUOTE = 34, NEWLINE = 10, RETURN = 13; +function objectConverter(columns) { + return new Function("d", "return {" + columns.map(function(name, i) { + return JSON.stringify(name) + ": d[" + i + '] || ""'; + }).join(",") + "}"); +} +function customConverter(columns, f) { + var object = objectConverter(columns); + return function(row, i) { + return f(object(row), i, columns); + }; +} +function inferColumns(rows) { + var columnSet = /* @__PURE__ */ Object.create(null), columns = []; + rows.forEach(function(row) { + for (var column in row) { + if (!(column in columnSet)) { + columns.push(columnSet[column] = column); + } + } + }); + return columns; +} +function dsv_pad(value, width) { + var s = value + "", length = s.length; + return length < width ? new Array(width - length + 1).join(0) + s : s; +} +function dsv_formatYear(year) { + return year < 0 ? "-" + dsv_pad(-year, 6) : year > 9999 ? "+" + dsv_pad(year, 6) : dsv_pad(year, 4); +} +function formatDate(date) { + var hours = date.getUTCHours(), minutes = date.getUTCMinutes(), seconds = date.getUTCSeconds(), milliseconds = date.getUTCMilliseconds(); + return isNaN(date) ? "Invalid Date" : dsv_formatYear(date.getUTCFullYear(), 4) + "-" + dsv_pad(date.getUTCMonth() + 1, 2) + "-" + dsv_pad(date.getUTCDate(), 2) + (milliseconds ? "T" + dsv_pad(hours, 2) + ":" + dsv_pad(minutes, 2) + ":" + dsv_pad(seconds, 2) + "." + dsv_pad(milliseconds, 3) + "Z" : seconds ? "T" + dsv_pad(hours, 2) + ":" + dsv_pad(minutes, 2) + ":" + dsv_pad(seconds, 2) + "Z" : minutes || hours ? "T" + dsv_pad(hours, 2) + ":" + dsv_pad(minutes, 2) + "Z" : ""); +} +/* harmony default export */ function dsv(delimiter) { + var reFormat = new RegExp('["' + delimiter + "\n\r]"), DELIMITER = delimiter.charCodeAt(0); + function parse(text, f) { + var convert, columns, rows = parseRows(text, function(row, i) { + if (convert) + return convert(row, i - 1); + columns = row, convert = f ? customConverter(row, f) : objectConverter(row); + }); + rows.columns = columns || []; + return rows; + } + function parseRows(text, f) { + var rows = [], N = text.length, I = 0, n = 0, t, eof = N <= 0, eol = false; + if (text.charCodeAt(N - 1) === NEWLINE) + --N; + if (text.charCodeAt(N - 1) === RETURN) + --N; + function token() { + if (eof) + return EOF; + if (eol) + return eol = false, EOL; + var i, j = I, c; + if (text.charCodeAt(j) === QUOTE) { + while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE) + ; + if ((i = I) >= N) + eof = true; + else if ((c = text.charCodeAt(I++)) === NEWLINE) + eol = true; + else if (c === RETURN) { + eol = true; + if (text.charCodeAt(I) === NEWLINE) + ++I; + } + return text.slice(j + 1, i - 1).replace(/""/g, '"'); + } + while (I < N) { + if ((c = text.charCodeAt(i = I++)) === NEWLINE) + eol = true; + else if (c === RETURN) { + eol = true; + if (text.charCodeAt(I) === NEWLINE) + ++I; + } else if (c !== DELIMITER) + continue; + return text.slice(j, i); + } + return eof = true, text.slice(j, N); + } + while ((t = token()) !== EOF) { + var row = []; + while (t !== EOL && t !== EOF) + row.push(t), t = token(); + if (f && (row = f(row, n++)) == null) + continue; + rows.push(row); + } + return rows; + } + function preformatBody(rows, columns) { + return rows.map(function(row) { + return columns.map(function(column) { + return formatValue(row[column]); + }).join(delimiter); + }); + } + function format(rows, columns) { + if (columns == null) + columns = inferColumns(rows); + return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n"); + } + function formatBody(rows, columns) { + if (columns == null) + columns = inferColumns(rows); + return preformatBody(rows, columns).join("\n"); + } + function formatRows(rows) { + return rows.map(formatRow).join("\n"); + } + function formatRow(row) { + return row.map(formatValue).join(delimiter); + } + function formatValue(value) { + return value == null ? "" : value instanceof Date ? formatDate(value) : reFormat.test(value += "") ? '"' + value.replace(/"/g, '""') + '"' : value; + } + return { + parse, + parseRows, + format, + formatBody, + formatRows, + formatRow, + formatValue + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-dsv/src/csv.js + +var csv = dsv(","); +var csvParse = csv.parse; +var csvParseRows = csv.parseRows; +var csvFormat = csv.format; +var csvFormatBody = csv.formatBody; +var csvFormatRows = csv.formatRows; +var csvFormatRow = csv.formatRow; +var csvFormatValue = csv.formatValue; + +;// CONCATENATED MODULE: ./node_modules/d3-dsv/src/tsv.js + +var tsv = dsv(" "); +var tsvParse = tsv.parse; +var tsvParseRows = tsv.parseRows; +var tsvFormat = tsv.format; +var tsvFormatBody = tsv.formatBody; +var tsvFormatRows = tsv.formatRows; +var tsvFormatRow = tsv.formatRow; +var tsvFormatValue = tsv.formatValue; + +;// CONCATENATED MODULE: ./src/ChartInternal/data/convert.helper.ts + + +function columns(columns2) { + const newRows = []; + columns2.forEach(function(col, i) { + const key = col[0]; + col.forEach(function(v, j) { + if (j > 0) { + if (typeof newRows[j - 1] === "undefined") { + newRows[j - 1] = {}; + } + if (typeof v === "undefined") { + throw new Error(`Source data is missing a component at (${i}, ${j})!`); + } + newRows[j - 1][key] = v; + } + }); + }); + return newRows; +} +function rows(rows2) { + const keys = rows2[0]; + const newRows = []; + rows2.forEach(function(row, i) { + if (i > 0) { + const newRow = {}; + row.forEach(function(v, j) { + if (typeof v === "undefined") { + throw new Error(`Source data is missing a component at (${i}, ${j})!`); + } + newRow[keys[j]] = v; + }); + newRows.push(newRow); + } + }); + return newRows; +} +function json(json2, keysParam) { + const newRows = []; + let targetKeys; + let data; + if (Array.isArray(json2)) { + const findValueInJson = function(object, path) { + if (object[path] !== void 0) { + return object[path]; + } + const convertedPath = path.replace(/\[(\w+)\]/g, ".$1"); + const pathArray = convertedPath.replace(/^\./, "").split("."); + let target = object; + pathArray.some(function(k) { + return !(target = target && k in target ? target[k] : void 0); + }); + return target; + }; + if (keysParam.x) { + targetKeys = keysParam.value.concat(keysParam.x); + } else { + targetKeys = keysParam.value; + } + newRows.push(targetKeys); + json2.forEach(function(o) { + const newRow = targetKeys.map(function(key) { + let v = findValueInJson(o, key); + if (typeof v === "undefined") { + v = null; + } + return v; + }); + newRows.push(newRow); + }); + data = rows(newRows); + } else { + Object.keys(json2).forEach(function(key) { + var _a; + const tmp = json2[key].concat(); + (_a = tmp.unshift) == null ? void 0 : _a.call(tmp, key); + newRows.push(tmp); + }); + data = columns(newRows); + } + return data; +} +function url(url2, mimeType = "csv", headers, keys, done) { + const req = new XMLHttpRequest(); + const converter = { csv: convert_helper_csv, tsv: convert_helper_tsv, json }; + req.open("GET", url2); + if (headers) { + Object.keys(headers).forEach(function(key) { + req.setRequestHeader(key, headers[key]); + }); + } + req.onreadystatechange = function() { + if (req.readyState === 4) { + if (req.status === 200) { + const response = req.responseText; + response && done.call(this, converter[mimeType]( + mimeType === "json" ? JSON.parse(response) : response, + keys + )); + } else { + throw new Error(`${url2}: Something went wrong loading!`); + } + } + }; + req.send(); +} +function convertCsvTsvToData(parser, xsv) { + const rows2 = parser.rows(xsv); + let d; + if (rows2.length === 1) { + d = [{}]; + rows2[0].forEach((id) => { + d[0][id] = null; + }); + } else { + d = parser.parse(xsv); + } + return d; +} +function convert_helper_csv(xsv) { + return convertCsvTsvToData({ + rows: csvParseRows, + parse: csvParse + }, xsv); +} +function convert_helper_tsv(tsv2) { + return convertCsvTsvToData({ + rows: tsvParseRows, + parse: tsvParse + }, tsv2); +} + +;// CONCATENATED MODULE: ./src/ChartInternal/data/convert.ts + + + +function getDataKeyForJson(keysParam, config) { + const keys = keysParam || (config == null ? void 0 : config.data_keys); + if (keys == null ? void 0 : keys.x) { + config.data_x = keys.x; + } + return keys; +} +/* harmony default export */ var convert = ({ + /** + * Convert data according its type + * @param {object} args data object + * @param {Function} [callback] callback for url(XHR) type loading + * @private + */ + convertData(args, callback) { + const { config } = this; + const useWorker = config.boost_useWorker; + let data = args; + if (args.bindto) { + data = {}; + ["url", "mimeType", "headers", "keys", "json", "keys", "rows", "columns"].forEach((v) => { + const key = `data_${v}`; + if (key in args) { + data[v] = args[key]; + } + }); + } + if (data.url && callback) { + url( + data.url, + data.mimeType, + data.headers, + getDataKeyForJson(data.keys, config), + callback + ); + } else if (data.json) { + runWorker(useWorker, json, callback, [columns, rows])( + data.json, + getDataKeyForJson(data.keys, config) + ); + } else if (data.rows) { + runWorker(useWorker, rows, callback)(data.rows); + } else if (data.columns) { + runWorker(useWorker, columns, callback)(data.columns); + } else if (args.bindto) { + throw Error("url or json or rows or columns is required."); + } + }, + convertDataToTargets(data, appendXs) { + const $$ = this; + const { axis, config, state } = $$; + const chartType = config.data_type; + let isCategorized = false; + let isTimeSeries = false; + let isCustomX = false; + if (axis) { + isCategorized = axis.isCategorized(); + isTimeSeries = axis.isTimeSeries(); + isCustomX = axis.isCustomX(); + } + const dataKeys = Object.keys(data[0] || {}); + const ids = dataKeys.length ? dataKeys.filter($$.isNotX, $$) : []; + const xs = dataKeys.length ? dataKeys.filter($$.isX, $$) : []; + let xsData; + ids.forEach((id) => { + const xKey = this.getXKey(id); + if (isCustomX || isTimeSeries) { + if (xs.indexOf(xKey) >= 0) { + xsData = (appendXs && $$.data.xs[id] || []).concat( + data.map((d) => d[xKey]).filter(isValue).map((rawX, i) => $$.generateTargetX(rawX, id, i)) + ); + } else if (config.data_x) { + xsData = this.getOtherTargetXs(); + } else if (notEmpty(config.data_xs)) { + xsData = $$.getXValuesOfXKey(xKey, $$.data.targets); + } + } else { + xsData = data.map((d, i) => i); + } + xsData && (this.data.xs[id] = xsData); + }); + ids.forEach((id) => { + if (!this.data.xs[id]) { + throw new Error(`x is not defined for id = "${id}".`); + } + }); + const targets = ids.map((id, index) => { + const convertedId = config.data_idConverter.bind($$.api)(id); + const xKey = $$.getXKey(id); + const isCategory = isCustomX && isCategorized; + const hasCategory = isCategory && data.map((v) => v.x).every((v) => config.axis_x_categories.indexOf(v) > -1); + const isDataAppend = data.__append__; + const xIndex = xKey === null && isDataAppend ? $$.api.data.values(id).length : 0; + return { + id: convertedId, + id_org: id, + values: data.map((d, i) => { + const rawX = d[xKey]; + let value = d[id]; + let x; + value = value !== null && !isNaN(value) && !isObject(value) ? +value : isArray(value) || isObject(value) ? value : null; + if ((isCategory || state.hasRadar) && index === 0 && !isUndefined(rawX)) { + if (!hasCategory && index === 0 && i === 0 && !isDataAppend) { + config.axis_x_categories = []; + } + x = config.axis_x_categories.indexOf(rawX); + if (x === -1) { + x = config.axis_x_categories.length; + config.axis_x_categories.push(rawX); + } + } else { + x = $$.generateTargetX(rawX, id, xIndex + i); + } + if (isUndefined(value) || $$.data.xs[id].length <= i) { + x = void 0; + } + return { + x, + value, + id: convertedId, + index: -1 + }; + }).filter((v) => isDefined(v.x)) + }; + }); + targets.forEach((t) => { + var _a; + if (config.data_xSort) { + t.values = t.values.sort((v1, v2) => { + const x1 = v1.x || v1.x === 0 ? v1.x : Infinity; + const x2 = v2.x || v2.x === 0 ? v2.x : Infinity; + return x1 - x2; + }); + } + t.values.forEach((v, i) => v.index = i); + (_a = $$.data.xs[t.id]) == null ? void 0 : _a.sort((v1, v2) => v1 - v2); + }); + state.hasNegativeValue = $$.hasNegativeValueInTargets(targets); + state.hasPositiveValue = $$.hasPositiveValueInTargets(targets); + if (chartType && $$.isValidChartType(chartType)) { + const targetIds = $$.mapToIds(targets).filter( + (id) => !(id in config.data_types) || !$$.isValidChartType(config.data_types[id]) + ); + $$.setTargetType(targetIds, chartType); + } + targets.forEach((d) => $$.cache.add(d.id_org, d, true)); + return targets; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/data/data.ts + + + + +/* harmony default export */ var ChartInternal_data_data = ({ + isX(key) { + const $$ = this; + const { config } = $$; + const dataKey = config.data_x && key === config.data_x; + const existValue = notEmpty(config.data_xs) && hasValue(config.data_xs, key); + return dataKey || existValue; + }, + isNotX(key) { + return !this.isX(key); + }, + isStackNormalized() { + const { config } = this; + return !!(config.data_stack_normalize && config.data_groups.length); + }, + /** + * Check if given id is grouped data or has grouped data + * @param {string} id Data id value + * @returns {boolean} is grouped data or has grouped data + * @private + */ + isGrouped(id) { + const groups = this.config.data_groups; + return id ? groups.some((v) => v.indexOf(id) >= 0 && v.length > 1) : groups.length > 0; + }, + getXKey(id) { + const $$ = this; + const { config } = $$; + return config.data_x ? config.data_x : notEmpty(config.data_xs) ? config.data_xs[id] : null; + }, + getXValuesOfXKey(key, targets) { + const $$ = this; + const ids = targets && notEmpty(targets) ? $$.mapToIds(targets) : []; + let xValues; + ids.forEach((id) => { + if ($$.getXKey(id) === key) { + xValues = $$.data.xs[id]; + } + }); + return xValues; + }, + /** + * Get index number based on given x Axis value + * @param {Date|number|string} x x Axis to be compared + * @param {Array} basedX x Axis list to be based on + * @returns {number} index number + * @private + */ + getIndexByX(x, basedX) { + const $$ = this; + return basedX ? basedX.indexOf(isString(x) ? x : +x) : ($$.filterByX($$.data.targets, x)[0] || { index: null }).index; + }, + getXValue(id, i) { + const $$ = this; + return id in $$.data.xs && $$.data.xs[id] && isValue($$.data.xs[id][i]) ? $$.data.xs[id][i] : i; + }, + getOtherTargetXs() { + const $$ = this; + const idsForX = Object.keys($$.data.xs); + return idsForX.length ? $$.data.xs[idsForX[0]] : null; + }, + getOtherTargetX(index) { + const xs = this.getOtherTargetXs(); + return xs && index < xs.length ? xs[index] : null; + }, + addXs(xs) { + const $$ = this; + const { config } = $$; + Object.keys(xs).forEach((id) => { + config.data_xs[id] = xs[id]; + }); + }, + /** + * Determine if x axis is multiple + * @returns {boolean} true: multiple, false: single + * @private + */ + isMultipleX() { + return !this.config.axis_x_forceAsSingle && (notEmpty(this.config.data_xs) || this.hasType("bubble") || this.hasType("scatter")); + }, + addName(data) { + const $$ = this; + const { config } = $$; + let name; + if (data) { + name = config.data_names[data.id]; + data.name = name !== void 0 ? name : data.id; + } + return data; + }, + /** + * Get all values on given index + * @param {number} index Index + * @param {boolean} filterNull Filter nullish value + * @returns {Array} + * @private + */ + getAllValuesOnIndex(index, filterNull = false) { + const $$ = this; + let value = $$.filterTargetsToShow($$.data.targets).map((t) => $$.addName($$.getValueOnIndex(t.values, index))); + if (filterNull) { + value = value.filter((v) => v && "value" in v && isValue(v.value)); + } + return value; + }, + getValueOnIndex(values, index) { + const valueOnIndex = values.filter((v) => v.index === index); + return valueOnIndex.length ? valueOnIndex[0] : null; + }, + updateTargetX(targets, x) { + const $$ = this; + targets.forEach((t) => { + t.values.forEach((v, i) => { + v.x = $$.generateTargetX(x[i], t.id, i); + }); + $$.data.xs[t.id] = x; + }); + }, + updateTargetXs(targets, xs) { + const $$ = this; + targets.forEach((t) => { + xs[t.id] && $$.updateTargetX([t], xs[t.id]); + }); + }, + generateTargetX(rawX, id, index) { + const $$ = this; + const { axis } = $$; + let x = (axis == null ? void 0 : axis.isCategorized()) ? index : rawX || index; + if (axis == null ? void 0 : axis.isTimeSeries()) { + const fn = parseDate.bind($$); + x = rawX ? fn(rawX) : fn($$.getXValue(id, index)); + } else if ((axis == null ? void 0 : axis.isCustomX()) && !(axis == null ? void 0 : axis.isCategorized())) { + x = isValue(rawX) ? +rawX : $$.getXValue(id, index); + } + return x; + }, + updateXs(values) { + if (values.length) { + this.axis.xs = values.map((v) => v.x); + } + }, + getPrevX(i) { + const x = this.axis.xs[i - 1]; + return isDefined(x) ? x : null; + }, + getNextX(i) { + const x = this.axis.xs[i + 1]; + return isDefined(x) ? x : null; + }, + /** + * Get base value isAreaRangeType + * @param {object} data Data object + * @returns {number} + * @private + */ + getBaseValue(data) { + const $$ = this; + const { hasAxis } = $$.state; + let { value } = data; + if (value && hasAxis) { + if ($$.isAreaRangeType(data)) { + value = $$.getRangedData(data, "mid"); + } else if ($$.isBubbleZType(data)) { + value = $$.getBubbleZData(value, "y"); + } + } + return value; + }, + /** + * Get min/max value from the data + * @private + * @param {Array} data array data to be evaluated + * @returns {{min: {number}, max: {number}}} + */ + getMinMaxValue(data) { + const getBaseValue = this.getBaseValue.bind(this); + let min; + let max; + (data || this.data.targets.map((t) => t.values)).forEach((v, i) => { + const value = v.map(getBaseValue).filter(isNumber); + min = Math.min(i ? min : Infinity, ...value); + max = Math.max(i ? max : -Infinity, ...value); + }); + return { min, max }; + }, + /** + * Get the min/max data + * @private + * @returns {{min: Array, max: Array}} + */ + getMinMaxData() { + const $$ = this; + const cacheKey = KEY.dataMinMax; + let minMaxData = $$.cache.get(cacheKey); + if (!minMaxData) { + const data = $$.data.targets.map((t) => t.values); + const minMax = $$.getMinMaxValue(data); + let min = []; + let max = []; + data.forEach((v) => { + const minData = $$.getFilteredDataByValue(v, minMax.min); + const maxData = $$.getFilteredDataByValue(v, minMax.max); + if (minData.length) { + min = min.concat(minData); + } + if (maxData.length) { + max = max.concat(maxData); + } + }); + $$.cache.add(cacheKey, minMaxData = { min, max }); + } + return minMaxData; + }, + /** + * Get sum of data per index + * @private + * @returns {Array} + */ + getTotalPerIndex() { + const $$ = this; + const cacheKey = KEY.dataTotalPerIndex; + let sum = $$.cache.get(cacheKey); + if (($$.config.data_groups.length || $$.isStackNormalized()) && !sum) { + sum = []; + $$.data.targets.forEach((row) => { + row.values.forEach((v, i) => { + if (!sum[i]) { + sum[i] = 0; + } + sum[i] += isNumber(v.value) ? v.value : 0; + }); + }); + } + return sum; + }, + /** + * Get total data sum + * @param {boolean} subtractHidden Subtract hidden data from total + * @returns {number} + * @private + */ + getTotalDataSum(subtractHidden) { + const $$ = this; + const cacheKey = KEY.dataTotalSum; + let total = $$.cache.get(cacheKey); + if (!isNumber(total)) { + const sum = mergeArray($$.data.targets.map((t) => t.values)).map((v) => v.value); + total = sum.length ? sum.reduce((p, c) => p + c) : 0; + $$.cache.add(cacheKey, total); + } + if (subtractHidden) { + total -= $$.getHiddenTotalDataSum(); + } + return total; + }, + /** + * Get total hidden data sum + * @returns {number} + * @private + */ + getHiddenTotalDataSum() { + const $$ = this; + const { api, state: { hiddenTargetIds } } = $$; + let total = 0; + if (hiddenTargetIds.length) { + total = api.data.values.bind(api)(hiddenTargetIds).reduce((p, c) => p + c); + } + return total; + }, + /** + * Get filtered data by value + * @param {object} data Data + * @param {number} value Value to be filtered + * @returns {Array} filtered array data + * @private + */ + getFilteredDataByValue(data, value) { + return data.filter((t) => this.getBaseValue(t) === value); + }, + /** + * Return the max length of the data + * @returns {number} max data length + * @private + */ + getMaxDataCount() { + return Math.max(...this.data.targets.map((t) => t.values.length), 0); + }, + getMaxDataCountTarget() { + let target = this.filterTargetsToShow() || []; + const length = target.length; + const isInverted = this.config.axis_x_inverted; + if (length > 1) { + target = target.map((t) => t.values).reduce((a, b) => a.concat(b)).map((v) => v.x); + target = sortValue(getUnique(target)).map((x, index, array) => ({ + x, + index: isInverted ? array.length - index - 1 : index + })); + } else if (length) { + target = target[0].values.concat(); + } + return target; + }, + mapToIds(targets) { + return targets.map((d) => d.id); + }, + mapToTargetIds(ids) { + const $$ = this; + return ids ? isArray(ids) ? ids.concat() : [ids] : $$.mapToIds($$.data.targets); + }, + hasTarget(targets, id) { + const ids = this.mapToIds(targets); + for (let i = 0, val; val = ids[i]; i++) { + if (val === id) { + return true; + } + } + return false; + }, + isTargetToShow(targetId) { + return this.state.hiddenTargetIds.indexOf(targetId) < 0; + }, + isLegendToShow(targetId) { + return this.state.hiddenLegendIds.indexOf(targetId) < 0; + }, + filterTargetsToShow(targets) { + const $$ = this; + return (targets || $$.data.targets).filter((t) => $$.isTargetToShow(t.id)); + }, + mapTargetsToUniqueXs(targets) { + const $$ = this; + const { axis } = $$; + let xs = []; + if (targets == null ? void 0 : targets.length) { + xs = getUnique( + mergeArray(targets.map((t) => t.values.map((v) => +v.x))) + ); + xs = (axis == null ? void 0 : axis.isTimeSeries()) ? xs.map((x) => /* @__PURE__ */ new Date(+x)) : xs.map(Number); + } + return sortValue(xs); + }, + /** + * Add to the state target Ids + * @param {string} type State's prop name + * @param {Array|string} targetIds Target ids array + * @private + */ + addTargetIds(type, targetIds) { + const { state } = this; + const ids = isArray(targetIds) ? targetIds : [targetIds]; + ids.forEach((v) => { + state[type].indexOf(v) < 0 && state[type].push(v); + }); + }, + /** + * Remove from the state target Ids + * @param {string} type State's prop name + * @param {Array|string} targetIds Target ids array + * @private + */ + removeTargetIds(type, targetIds) { + const { state } = this; + const ids = isArray(targetIds) ? targetIds : [targetIds]; + ids.forEach((v) => { + const index = state[type].indexOf(v); + index >= 0 && state[type].splice(index, 1); + }); + }, + addHiddenTargetIds(targetIds) { + this.addTargetIds("hiddenTargetIds", targetIds); + }, + removeHiddenTargetIds(targetIds) { + this.removeTargetIds("hiddenTargetIds", targetIds); + }, + addHiddenLegendIds(targetIds) { + this.addTargetIds("hiddenLegendIds", targetIds); + }, + removeHiddenLegendIds(targetIds) { + this.removeTargetIds("hiddenLegendIds", targetIds); + }, + getValuesAsIdKeyed(targets) { + const $$ = this; + const { hasAxis } = $$.state; + const ys = {}; + const isMultipleX = $$.isMultipleX(); + const xs = isMultipleX ? $$.mapTargetsToUniqueXs(targets).map((v) => isString(v) ? v : +v) : null; + targets.forEach((t) => { + const data = []; + t.values.filter(({ value }) => isValue(value) || value === null).forEach((v) => { + let { value } = v; + if (value !== null && $$.isCandlestickType(v)) { + value = isArray(value) ? value.slice(0, 4) : [value.open, value.high, value.low, value.close]; + } + if (isArray(value)) { + data.push(...value); + } else if (isObject(value) && "high" in value) { + data.push(...Object.values(value)); + } else if ($$.isBubbleZType(v)) { + data.push(hasAxis && $$.getBubbleZData(value, "y")); + } else { + if (isMultipleX) { + data[$$.getIndexByX(v.x, xs)] = value; + } else { + data.push(value); + } + } + }); + ys[t.id] = data; + }); + return ys; + }, + checkValueInTargets(targets, checker) { + const ids = Object.keys(targets); + let values; + for (let i = 0; i < ids.length; i++) { + values = targets[ids[i]].values; + for (let j = 0; j < values.length; j++) { + if (checker(values[j].value)) { + return true; + } + } + } + return false; + }, + hasMultiTargets() { + return this.filterTargetsToShow().length > 1; + }, + hasNegativeValueInTargets(targets) { + return this.checkValueInTargets(targets, (v) => v < 0); + }, + hasPositiveValueInTargets(targets) { + return this.checkValueInTargets(targets, (v) => v > 0); + }, + /** + * Sort targets data + * Note: For stacked bar, will sort from the total sum of data series, not for each stacked bar + * @param {Array} targetsValue Target value + * @returns {Array} + * @private + */ + orderTargets(targetsValue) { + const $$ = this; + const targets = [...targetsValue]; + const fn = $$.getSortCompareFn(); + fn && targets.sort(fn); + return targets; + }, + /** + * Get data.order compare function + * @param {boolean} isReversed for Arc & Treemap type sort order needs to be reversed + * @returns {Function} compare function + * @private + */ + getSortCompareFn(isReversed = false) { + const $$ = this; + const { config } = $$; + const order = config.data_order; + const orderAsc = /asc/i.test(order); + const orderDesc = /desc/i.test(order); + let fn; + if (orderAsc || orderDesc) { + const reducer = (p, c) => p + Math.abs(c.value); + const sum = (v) => isNumber(v) ? v : "values" in v ? v.values.reduce(reducer, 0) : v.value; + fn = (t1, t2) => { + const t1Sum = sum(t1); + const t2Sum = sum(t2); + return isReversed ? orderAsc ? t1Sum - t2Sum : t2Sum - t1Sum : orderAsc ? t2Sum - t1Sum : t1Sum - t2Sum; + }; + } else if (isFunction(order)) { + fn = order.bind($$.api); + } + return fn || null; + }, + filterByX(targets, x) { + return mergeArray(targets.map((t) => t.values)).filter((v) => v.x - x === 0); + }, + filterRemoveNull(data) { + return data.filter((d) => isValue(this.getBaseValue(d))); + }, + filterByXDomain(targets, xDomain) { + return targets.map((t) => ({ + id: t.id, + id_org: t.id_org, + values: t.values.filter((v) => xDomain[0] <= v.x && v.x <= xDomain[1]) + })); + }, + hasDataLabel() { + const dataLabels = this.config.data_labels; + return isBoolean(dataLabels) && dataLabels || isObjectType(dataLabels) && notEmpty(dataLabels); + }, + /** + * Get data index from the event coodinates + * @param {Event} event Event object + * @returns {number} + */ + getDataIndexFromEvent(event) { + const $$ = this; + const { $el, config, state: { hasRadar, inputType, eventReceiver: { coords, rect } } } = $$; + let index; + if (hasRadar) { + let target = event.target; + if (/tspan/i.test(target.tagName)) { + target = target.parentNode; + } + const d = src_select(target).datum(); + index = d && Object.keys(d).length === 1 ? d.index : void 0; + } else { + const isRotated = config.axis_rotated; + const scrollPos = getScrollPosition($el.chart.node()); + const e = inputType === "touch" && event.changedTouches ? event.changedTouches[0] : event; + index = findIndex( + coords, + isRotated ? e.clientY + scrollPos.y - rect.top : e.clientX + scrollPos.x - rect.left, + 0, + coords.length - 1, + isRotated + ); + } + return index; + }, + getDataLabelLength(min, max, key) { + const $$ = this; + const lengths = [0, 0]; + const paddingCoef = 1.3; + $$.$el.chart.select("svg").selectAll(".dummy").data([min, max]).enter().append("text").text((d) => $$.dataLabelFormat(d.id)(d)).each(function(d, i) { + lengths[i] = this.getBoundingClientRect()[key] * paddingCoef; + }).remove(); + return lengths; + }, + isNoneArc(d) { + return this.hasTarget(this.data.targets, d.id); + }, + isArc(d) { + return "data" in d && this.hasTarget(this.data.targets, d.data.id); + }, + findSameXOfValues(values, index) { + const targetX = values[index].x; + const sames = []; + let i; + for (i = index - 1; i >= 0; i--) { + if (targetX !== values[i].x) { + break; + } + sames.push(values[i]); + } + for (i = index; i < values.length; i++) { + if (targetX !== values[i].x) { + break; + } + sames.push(values[i]); + } + return sames; + }, + findClosestFromTargets(targets, pos) { + const $$ = this; + const candidates = targets.map((target) => $$.findClosest(target.values, pos)); + return $$.findClosest(candidates, pos); + }, + findClosest(values, pos) { + const $$ = this; + const { $el: { main } } = $$; + const data = values.filter((v) => v && isValue(v.value)); + let minDist; + let closest; + data.filter((v) => $$.isBarType(v.id) || $$.isCandlestickType(v.id)).forEach((v) => { + const selector = $$.isBarType(v.id) ? `.${$BAR.chartBar}.${$COMMON.target}${$$.getTargetSelectorSuffix(v.id)} .${$BAR.bar}-${v.index}` : `.${$CANDLESTICK.chartCandlestick}.${$COMMON.target}${$$.getTargetSelectorSuffix(v.id)} .${$CANDLESTICK.candlestick}-${v.index} path`; + if (!closest && $$.isWithinBar(main.select(selector).node())) { + closest = v; + } + }); + data.filter((v) => !$$.isBarType(v.id) && !$$.isCandlestickType(v.id)).forEach((v) => { + const d = $$.dist(v, pos); + minDist = $$.getPointSensitivity(v); + if (d < minDist) { + minDist = d; + closest = v; + } + }); + return closest; + }, + dist(data, pos) { + const $$ = this; + const { config: { axis_rotated: isRotated }, scale } = $$; + const xIndex = +isRotated; + const yIndex = +!isRotated; + const y = $$.circleY(data, data.index); + const x = (scale.zoom || scale.x)(data.x); + return Math.sqrt(Math.pow(x - pos[xIndex], 2) + Math.pow(y - pos[yIndex], 2)); + }, + /** + * Convert data for step type + * @param {Array} values Object data values + * @returns {Array} + * @private + */ + convertValuesToStep(values) { + const $$ = this; + const { axis, config } = $$; + const stepType = config.line_step_type; + const isCategorized = axis ? axis.isCategorized() : false; + const converted = isArray(values) ? values.concat() : [values]; + if (!(isCategorized || /step\-(after|before)/.test(stepType))) { + return values; + } + if (converted.length) { + const head = converted[0]; + const tail = converted[converted.length - 1]; + const { id } = head; + let { x } = head; + converted.unshift({ x: --x, value: head.value, id }); + isCategorized && stepType === "step-after" && converted.unshift({ x: --x, value: head.value, id }); + x = tail.x; + converted.push({ x: ++x, value: tail.value, id }); + isCategorized && stepType === "step-before" && converted.push({ x: ++x, value: tail.value, id }); + } + return converted; + }, + convertValuesToRange(values) { + const converted = isArray(values) ? values.concat() : [values]; + const ranges = []; + converted.forEach((range) => { + const { x, id } = range; + ranges.push({ + x, + id, + value: range.value[0] + }); + ranges.push({ + x, + id, + value: range.value[2] + }); + }); + return ranges; + }, + updateDataAttributes(name, attrs) { + const $$ = this; + const { config } = $$; + const current = config[`data_${name}`]; + if (isUndefined(attrs)) { + return current; + } + Object.keys(attrs).forEach((id) => { + current[id] = attrs[id]; + }); + $$.redraw({ withLegend: true }); + return current; + }, + getRangedData(d, key = "", type = "areaRange") { + const value = d == null ? void 0 : d.value; + if (isArray(value)) { + if (type === "bar") { + return value.reduce((a, c) => c - a); + } else { + const index = { + areaRange: ["high", "mid", "low"], + candlestick: ["open", "high", "low", "close", "volume"] + }[type].indexOf(key); + return index >= 0 && value ? value[index] : void 0; + } + } else if (value && key) { + return value[key]; + } + return value; + }, + /** + * Set ratio for grouped data + * @param {Array} data Data array + * @private + */ + setRatioForGroupedData(data) { + const $$ = this; + const { config } = $$; + if (config.data_groups.length && data.some((d) => $$.isGrouped(d.id))) { + const setter = (d) => $$.getRatio("index", d, true); + data.forEach((v) => { + "values" in v ? v.values.forEach(setter) : setter(v); + }); + } + }, + /** + * Get ratio value + * @param {string} type Ratio for given type + * @param {object} d Data value object + * @param {boolean} asPercent Convert the return as percent or not + * @returns {number} Ratio value + * @private + */ + getRatio(type, d, asPercent = false) { + const $$ = this; + const { config, state } = $$; + const api = $$.api; + let ratio = 0; + if (d && api.data.shown().length) { + ratio = d.ratio || d.value; + if (type === "arc") { + if ($$.pie.padAngle()()) { + ratio = d.value / $$.getTotalDataSum(true); + } else { + const gaugeArcLength = config.gauge_fullCircle ? $$.getArcLength() : $$.getStartingAngle() * -2; + const arcLength = $$.hasType("gauge") ? gaugeArcLength : Math.PI * 2; + ratio = (d.endAngle - d.startAngle) / arcLength; + } + } else if (type === "index") { + const dataValues = api.data.values.bind(api); + let total = this.getTotalPerIndex(); + if (state.hiddenTargetIds.length) { + let hiddenSum = dataValues(state.hiddenTargetIds, false); + if (hiddenSum.length) { + hiddenSum = hiddenSum.reduce( + (acc, curr) => acc.map((v, i) => (isNumber(v) ? v : 0) + curr[i]) + ); + total = total.map((v, i) => v - hiddenSum[i]); + } + } + const divisor = total[d.index]; + d.ratio = isNumber(d.value) && total && divisor ? d.value / divisor : 0; + ratio = d.ratio; + } else if (type === "radar") { + ratio = parseFloat(String(Math.max(d.value, 0))) / state.current.dataMax * config.radar_size_ratio; + } else if (type === "bar") { + const yScale = $$.getYScaleById.bind($$)(d.id); + const max = yScale.domain().reduce((a, c) => c - a); + ratio = max === 0 ? 0 : Math.abs( + $$.getRangedData(d, null, type) / max + ); + } else if (type === "treemap") { + ratio /= $$.getTotalDataSum(true); + } + } + return asPercent && ratio ? ratio * 100 : ratio; + }, + /** + * Sort data index to be aligned with x axis. + * @param {Array} tickValues Tick array values + * @private + */ + updateDataIndexByX(tickValues) { + const $$ = this; + const tickValueMap = tickValues.reduce((out, tick, index) => { + out[Number(tick.x)] = index; + return out; + }, {}); + $$.data.targets.forEach((t) => { + t.values.forEach((value, valueIndex) => { + let index = tickValueMap[Number(value.x)]; + if (index === void 0) { + index = valueIndex; + } + value.index = index; + }); + }); + }, + /** + * Determine if bubble has dimension data + * @param {object|Array} d data value + * @returns {boolean} + * @private + */ + isBubbleZType(d) { + const $$ = this; + return $$.isBubbleType(d) && (isObject(d.value) && ("z" in d.value || "y" in d.value) || isArray(d.value) && d.value.length >= 2); + }, + /** + * Determine if bar has ranged data + * @param {Array} d data value + * @returns {boolean} + * @private + */ + isBarRangeType(d) { + const $$ = this; + const { value } = d; + return $$.isBarType(d) && isArray(value) && value.length >= 2 && value.every((v) => isNumber(v)); + }, + /** + * Get data object by id + * @param {string} id data id + * @returns {object} + * @private + */ + getDataById(id) { + var _a; + const d = this.cache.get(id) || this.api.data(id); + return (_a = d == null ? void 0 : d[0]) != null ? _a : d; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/data/load.ts + + +function callDone(fn, resizeAfter = false) { + const $$ = this; + const { api } = $$; + resizeAfter && $$.api.flush(true); + fn == null ? void 0 : fn.call(api); +} +/* harmony default export */ var load = ({ + load(rawTargets, args) { + const $$ = this; + const { axis, data, org, scale } = $$; + const { append } = args; + const zoomState = { + domain: null, + currentDomain: null, + x: null + }; + let targets = rawTargets; + if (targets) { + if (args.filter) { + targets = targets.filter(args.filter); + } + if (args.type || args.types) { + targets.forEach((t) => { + var _a; + const type = ((_a = args.types) == null ? void 0 : _a[t.id]) || args.type; + $$.setTargetType(t.id, type); + }); + } + data.targets.forEach((d) => { + for (let i = 0; i < targets.length; i++) { + if (d.id === targets[i].id) { + d.values = append ? d.values.concat(targets[i].values) : targets[i].values; + targets.splice(i, 1); + break; + } + } + }); + data.targets = data.targets.concat(targets); + } + $$.updateTargets(data.targets); + if (scale.zoom) { + zoomState.x = axis.isCategorized() ? scale.x.orgScale() : (org.xScale || scale.x).copy(); + zoomState.domain = $$.getXDomain(data.targets); + zoomState.x.domain(zoomState.domain); + zoomState.currentDomain = $$.zoom.getDomain(); + if (!$$.withinRange(zoomState.currentDomain, void 0, zoomState.domain)) { + scale.x.domain(zoomState.domain); + scale.zoom = null; + $$.$el.eventRect.property("__zoom", null); + } + } + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true, + withLegend: true + }); + if (scale.zoom) { + org.xDomain = zoomState.domain; + org.xScale = zoomState.x; + if (axis.isCategorized()) { + zoomState.currentDomain = $$.getZoomDomainValue(zoomState.currentDomain); + org.xDomain = $$.getZoomDomainValue(org.xDomain); + org.xScale = zoomState.x.domain(org.xDomain); + } + $$.updateCurrentZoomTransform(zoomState.x, zoomState.currentDomain); + } + $$.updateTypesElements(); + callDone.call($$, args.done, args.resizeAfter); + }, + loadFromArgs(args) { + const $$ = this; + if (!$$.config) { + return; + } + $$.cache.reset(); + $$.convertData(args, (d) => { + const data = args.data || d; + args.append && (data.__append__ = true); + data && $$.load($$.convertDataToTargets(data), args); + }); + }, + unload(rawTargetIds, customDoneCb) { + var _a; + const $$ = this; + const { state, $el, $T } = $$; + const hasLegendDefsPoint = !!((_a = $$.hasLegendDefsPoint) == null ? void 0 : _a.call($$)); + let done = customDoneCb; + let targetIds = rawTargetIds; + $$.cache.reset(); + if (!done) { + done = () => { + }; + } + targetIds = targetIds.filter((id) => $$.hasTarget($$.data.targets, id)); + if (!targetIds || targetIds.length === 0) { + done(); + return; + } + const targets = $el.svg.selectAll(targetIds.map((id) => $$.selectorTarget(id))); + $T(targets).style("opacity", "0").remove().call(endall, done); + targetIds.forEach((id) => { + var _a2; + const suffixId = $$.getTargetSelectorSuffix(id); + state.withoutFadeIn[id] = false; + if ($el.legend) { + $el.legend.selectAll(`.${$LEGEND.legendItem}${suffixId}`).remove(); + } + $$.data.targets = $$.data.targets.filter((t) => t.id !== id); + hasLegendDefsPoint && ((_a2 = $el.defs) == null ? void 0 : _a2.select(`#${$$.getDefsPointId(suffixId)}`).remove()); + }); + state.hasFunnel && $$.updateFunnel($$.data.targets); + state.hasTreemap && $$.updateTargetsForTreemap($$.data.targets); + $$.updateTypesElements(); + } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/constant.js +/* harmony default export */ var d3_drag_src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/event.js +function DragEvent(type, { + sourceEvent, + subject, + target, + identifier, + active, + x, + y, + dx, + dy, + dispatch +}) { + Object.defineProperties(this, { + type: { value: type, enumerable: true, configurable: true }, + sourceEvent: { value: sourceEvent, enumerable: true, configurable: true }, + subject: { value: subject, enumerable: true, configurable: true }, + target: { value: target, enumerable: true, configurable: true }, + identifier: { value: identifier, enumerable: true, configurable: true }, + active: { value: active, enumerable: true, configurable: true }, + x: { value: x, enumerable: true, configurable: true }, + y: { value: y, enumerable: true, configurable: true }, + dx: { value: dx, enumerable: true, configurable: true }, + dy: { value: dy, enumerable: true, configurable: true }, + _: { value: dispatch } + }); +} +DragEvent.prototype.on = function() { + var value = this._.on.apply(this._, arguments); + return value === this._ ? this : value; +}; + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/drag.js + + + + + + +function drag_defaultFilter(event) { + return !event.ctrlKey && !event.button; +} +function defaultContainer() { + return this.parentNode; +} +function defaultSubject(event, d) { + return d == null ? { x: event.x, y: event.y } : d; +} +function drag_defaultTouchable() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +/* harmony default export */ function drag() { + var filter = drag_defaultFilter, container = defaultContainer, subject = defaultSubject, touchable = drag_defaultTouchable, gestures = {}, listeners = src_dispatch("start", "drag", "end"), active = 0, mousedownx, mousedowny, mousemoving, touchending, clickDistance2 = 0; + function drag(selection) { + selection.on("mousedown.drag", mousedowned).filter(touchable).on("touchstart.drag", touchstarted).on("touchmove.drag", touchmoved, nonpassive).on("touchend.drag touchcancel.drag", touchended).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + function mousedowned(event, d) { + if (touchending || !filter.call(this, event, d)) + return; + var gesture = beforestart(this, container.call(this, event, d), event, d, "mouse"); + if (!gesture) + return; + src_select(event.view).on("mousemove.drag", mousemoved, nonpassivecapture).on("mouseup.drag", mouseupped, nonpassivecapture); + nodrag(event.view); + nopropagation(event); + mousemoving = false; + mousedownx = event.clientX; + mousedowny = event.clientY; + gesture("start", event); + } + function mousemoved(event) { + noevent(event); + if (!mousemoving) { + var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny; + mousemoving = dx * dx + dy * dy > clickDistance2; + } + gestures.mouse("drag", event); + } + function mouseupped(event) { + src_select(event.view).on("mousemove.drag mouseup.drag", null); + yesdrag(event.view, mousemoving); + noevent(event); + gestures.mouse("end", event); + } + function touchstarted(event, d) { + if (!filter.call(this, event, d)) + return; + var touches = event.changedTouches, c = container.call(this, event, d), n = touches.length, i, gesture; + for (i = 0; i < n; ++i) { + if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) { + nopropagation(event); + gesture("start", event, touches[i]); + } + } + } + function touchmoved(event) { + var touches = event.changedTouches, n = touches.length, i, gesture; + for (i = 0; i < n; ++i) { + if (gesture = gestures[touches[i].identifier]) { + noevent(event); + gesture("drag", event, touches[i]); + } + } + } + function touchended(event) { + var touches = event.changedTouches, n = touches.length, i, gesture; + if (touchending) + clearTimeout(touchending); + touchending = setTimeout(function() { + touchending = null; + }, 500); + for (i = 0; i < n; ++i) { + if (gesture = gestures[touches[i].identifier]) { + nopropagation(event); + gesture("end", event, touches[i]); + } + } + } + function beforestart(that, container2, event, d, identifier, touch) { + var dispatch2 = listeners.copy(), p = src_pointer(touch || event, container2), dx, dy, s; + if ((s = subject.call(that, new DragEvent("beforestart", { + sourceEvent: event, + target: drag, + identifier, + active, + x: p[0], + y: p[1], + dx: 0, + dy: 0, + dispatch: dispatch2 + }), d)) == null) + return; + dx = s.x - p[0] || 0; + dy = s.y - p[1] || 0; + return function gesture(type, event2, touch2) { + var p0 = p, n; + switch (type) { + case "start": + gestures[identifier] = gesture, n = active++; + break; + case "end": + delete gestures[identifier], --active; + case "drag": + p = src_pointer(touch2 || event2, container2), n = active; + break; + } + dispatch2.call( + type, + that, + new DragEvent(type, { + sourceEvent: event2, + subject: s, + target: drag, + identifier, + active: n, + x: p[0] + dx, + y: p[1] + dy, + dx: p[0] - p0[0], + dy: p[1] - p0[1], + dispatch: dispatch2 + }), + d + ); + }; + } + drag.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : d3_drag_src_constant(!!_), drag) : filter; + }; + drag.container = function(_) { + return arguments.length ? (container = typeof _ === "function" ? _ : d3_drag_src_constant(_), drag) : container; + }; + drag.subject = function(_) { + return arguments.length ? (subject = typeof _ === "function" ? _ : d3_drag_src_constant(_), drag) : subject; + }; + drag.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : d3_drag_src_constant(!!_), drag) : touchable; + }; + drag.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? drag : value; + }; + drag.clickDistance = function(_) { + return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2); + }; + return drag; +} + +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/interaction.ts + + + + + +/* harmony default export */ var interactions_interaction = ({ + /** + * Expand data shape/point + * @param {number} index Index number + * @param {string} id Data id + * @param {boolean} reset Reset expand state + * @private + */ + setExpand(index, id, reset) { + const $$ = this; + const { config, $el: { circle } } = $$; + circle && config.point_focus_expand_enabled && $$.expandCircles(index, id, reset); + $$.expandBarTypeShapes(true, index, id, reset); + }, + /** + * Expand/Unexpand bar type shapes + * @param {boolean} expand Expand or unexpand + * @param {number} i Shape index + * @param {string} id Data id + * @param {boolean} reset Reset expand style + * @private + */ + expandBarTypeShapes(expand = true, i, id, reset) { + const $$ = this; + ["bar", "candlestick"].filter((v) => $$.$el[v]).forEach((v) => { + reset && $$.$el[v].classed($COMMON.EXPANDED, false); + $$.getShapeByIndex(v, i, id).classed($COMMON.EXPANDED, expand); + }); + }, + /** + * Handle data.onover/out callback options + * @param {boolean} isOver Over or not + * @param {number|object} d data object + * @private + */ + setOverOut(isOver, d) { + const $$ = this; + const { config, state: { hasFunnel, hasRadar, hasTreemap }, $el: { main } } = $$; + const isArcishData = isObject(d); + if (isArcishData || d !== -1) { + const callback = config[isOver ? "data_onover" : "data_onout"].bind($$.api); + config.color_onover && $$.setOverColor(isOver, d, isArcishData); + if (isArcishData && "id") { + const suffix = $$.getTargetSelectorSuffix(d.id); + const selector = hasFunnel || hasTreemap ? `${$COMMON.target + suffix} .${$SHAPE.shape}` : $ARC.arc + suffix; + callback(d, main.select(`.${selector}`).node()); + } else if (!config.tooltip_grouped) { + const last = $$.cache.get(KEY.setOverOut) || []; + const shapesAtIndex = main.selectAll(`.${$SHAPE.shape}-${d}`).filter(function(d2) { + return $$.isWithinShape(this, d2); + }); + const shape = shapesAtIndex.filter(function() { + return last.every((v) => v !== this); + }); + if (!isOver || shapesAtIndex.empty() || last.length === shape.size() && shape.nodes().every((v, i) => v !== last[i])) { + while (last.length) { + const target = last.pop(); + config.data_onout.bind($$.api)(src_select(target).datum(), target); + } + } + shape.each(function() { + if (isOver) { + callback(src_select(this).datum(), this); + last.push(this); + } + }); + $$.cache.add(KEY.setOverOut, last); + } else { + if (isOver) { + hasRadar && $$.isPointFocusOnly() ? $$.showCircleFocus($$.getAllValuesOnIndex(d, true)) : $$.setExpand(d, null, true); + } + !$$.isMultipleX() && main.selectAll(`.${$SHAPE.shape}-${d}`).each(function(d2) { + callback(d2, this); + }); + } + } + }, + /** + * Call data.onover/out callback for touch event + * @param {number|object} d target index or data object for Arc type + * @private + */ + callOverOutForTouch(d) { + const $$ = this; + const last = $$.cache.get(KEY.callOverOutForTouch); + if (isObject(d) && last ? d.id !== last.id : d !== last) { + (last || isNumber(last)) && $$.setOverOut(false, last); + (d || isNumber(d)) && $$.setOverOut(true, d); + $$.cache.add(KEY.callOverOutForTouch, d); + } + }, + /** + * Return draggable selection function + * @returns {Function} + * @private + */ + getDraggableSelection() { + const $$ = this; + const { config, state } = $$; + return config.interaction_enabled && config.data_selection_draggable && $$.drag ? drag().on("drag", function(event) { + state.event = event; + $$.drag(getPointer(event, this)); + }).on("start", function(event) { + state.event = event; + $$.dragstart(getPointer(event, this)); + }).on("end", (event) => { + state.event = event; + $$.dragend(); + }) : () => { + }; + }, + /** + * Dispatch a mouse event. + * @private + * @param {string} type event type + * @param {number} index Index of eventRect + * @param {Array} mouse x and y coordinate value + */ + dispatchEvent(type, index, mouse) { + var _a, _b; + const $$ = this; + const { + config, + state: { + eventReceiver, + hasAxis, + hasFunnel, + hasRadar, + hasTreemap + }, + $el: { eventRect, funnel, radar, treemap } + } = $$; + let element = (_b = (hasFunnel || hasTreemap) && eventReceiver.rect || hasRadar && radar.axes.select(`.${$AXIS.axis}-${index} text`) || (eventRect || ((_a = $$.getArcElementByIdOrIndex) == null ? void 0 : _a.call($$, index)))) == null ? void 0 : _b.node(); + if (element) { + const isMultipleX = $$.isMultipleX(); + const isRotated = config.axis_rotated; + let { width, left, top } = element.getBoundingClientRect(); + if (hasAxis && !hasRadar && !isMultipleX) { + const coords = eventReceiver.coords[index]; + if (coords) { + width = coords.w; + left += coords.x; + top += coords.y; + } else { + width = 0; + left = 0; + top = 0; + } + } + const x = left + (mouse ? mouse[0] : 0) + (isMultipleX || isRotated ? 0 : width / 2); + const y = top + (mouse ? mouse[1] : 0) + (isRotated ? 4 : 0); + const params = { + screenX: x, + screenY: y, + clientX: x, + clientY: y, + bubbles: hasRadar + // radar type needs to bubble up event + }; + if (hasFunnel || hasTreemap) { + element = (funnel != null ? funnel : treemap).node(); + } + emulateEvent[/^(mouse|click)/.test(type) ? "mouse" : "touch"]( + element, + type, + params + ); + } + }, + setDragStatus(isDragging) { + this.state.dragging = isDragging; + }, + /** + * Unbind zoom events + * @private + */ + unbindZoomEvent() { + const $$ = this; + const { $el: { eventRect, zoomResetBtn } } = $$; + eventRect == null ? void 0 : eventRect.on(".zoom wheel.zoom .drag", null); + zoomResetBtn == null ? void 0 : zoomResetBtn.on("click", null).style("display", "none"); + }, + /** + * Unbind all attached events + * @private + */ + unbindAllEvents() { + var _a; + const $$ = this; + const { $el: { arcs, eventRect, legend, region, svg, treemap }, brush } = $$; + const list = [ + "wheel", + "click", + "mouseover", + "mousemove", + "mouseout", + "touchstart", + "touchmove", + "touchend", + "touchstart.eventRect", + "touchmove.eventRect", + "touchend.eventRect", + ".brush", + ".drag", + ".zoom", + "wheel.zoom", + "dblclick.zoom" + ].join(" "); + [ + svg, + eventRect, + region == null ? void 0 : region.list, + brush == null ? void 0 : brush.getSelection(), + arcs == null ? void 0 : arcs.selectAll("path"), + legend == null ? void 0 : legend.selectAll("g"), + treemap + ].forEach((v) => v == null ? void 0 : v.on(list, null)); + (_a = $$.unbindZoomEvent) == null ? void 0 : _a.call($$); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/category.ts +/* harmony default export */ var category = ({ + /** + * Category Name + * @param {number} i Index number + * @returns {string} category Name + * @private + */ + categoryName(i) { + var _a; + const { axis_x_categories } = this.config; + return (_a = axis_x_categories == null ? void 0 : axis_x_categories[i]) != null ? _a : i; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/class.ts + +/* harmony default export */ var internals_class = ({ + generateClass(prefix, targetId) { + return ` ${prefix} ${prefix + this.getTargetSelectorSuffix(targetId)}`; + }, + /** + * Get class string + * @param {string} type Shape type + * @param {boolean} withShape Get with shape prefix + * @returns {string} Class string + * @private + */ + getClass(type, withShape) { + const isPlural = /s$/.test(type); + const useIdKey = /^(area|arc|line|funnel|treemap)s?$/.test(type); + const key = isPlural ? "id" : "index"; + return (d) => { + const data = d.data || d; + const result = (withShape ? this.generateClass(classes[isPlural ? "shapes" : "shape"], data[key]) : "") + this.generateClass(classes[type], data[useIdKey ? "id" : key]); + return result.trim(); + }; + }, + /** + * Get chart class string + * @param {string} type Shape type + * @returns {string} Class string + * @private + */ + getChartClass(type) { + return (d) => classes[`chart${type}`] + this.classTarget((d.data ? d.data : d).id); + }, + generateExtraLineClass() { + const $$ = this; + const classes = $$.config.line_classes || []; + const ids = []; + return function(d) { + var _a; + const id = d.id || ((_a = d.data) == null ? void 0 : _a.id) || d; + if (ids.indexOf(id) < 0) { + ids.push(id); + } + return classes[ids.indexOf(id) % classes.length]; + }; + }, + classRegion(d, i) { + return `${this.generateClass(classes.region, i)} ${"class" in d ? d.class : ""}`; + }, + classTarget(id) { + const additionalClassSuffix = this.config.data_classes[id]; + let additionalClass = ""; + if (additionalClassSuffix) { + additionalClass = ` ${classes.target}-${additionalClassSuffix}`; + } + return this.generateClass(classes.target, id) + additionalClass; + }, + classFocus(d) { + return this.classFocused(d) + this.classDefocused(d); + }, + classFocused(d) { + return ` ${this.state.focusedTargetIds.indexOf(d.id) >= 0 ? classes.focused : ""}`; + }, + classDefocused(d) { + return ` ${this.state.defocusedTargetIds.indexOf(d.id) >= 0 ? classes.defocused : ""}`; + }, + getTargetSelectorSuffix(targetId) { + const targetStr = targetId || targetId === 0 ? `-${targetId}` : ""; + return targetStr.replace(/[\x00-\x20\x7F-\xA0\s?!@#$%^&*()_=+,.<>'":;\[\]\/|~`{}\\]/g, "-"); + }, + selectorTarget(id, prefix = "", postfix = "") { + const target = this.getTargetSelectorSuffix(id); + return `${prefix}.${classes.target + target} ${postfix}, ${prefix}.${classes.circles + target} ${postfix}`; + }, + selectorTargets(idsValue, prefix) { + const ids = idsValue || []; + return ids.length ? ids.map((id) => this.selectorTarget(id, prefix)) : null; + }, + selectorLegend(id) { + return `.${classes.legendItem + this.getTargetSelectorSuffix(id)}`; + }, + selectorLegends(ids) { + return (ids == null ? void 0 : ids.length) ? ids.map((id) => this.selectorLegend(id)) : null; + } +}); + +;// CONCATENATED MODULE: ./node_modules/internmap/src/index.js +class InternMap extends Map { + constructor(entries, key = keyof) { + super(); + Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: key } }); + if (entries != null) + for (const [key2, value] of entries) + this.set(key2, value); + } + get(key) { + return super.get(intern_get(this, key)); + } + has(key) { + return super.has(intern_get(this, key)); + } + set(key, value) { + return super.set(intern_set(this, key), value); + } + delete(key) { + return super.delete(intern_delete(this, key)); + } +} +class InternSet extends Set { + constructor(values, key = keyof) { + super(); + Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: key } }); + if (values != null) + for (const value of values) + this.add(value); + } + has(value) { + return super.has(intern_get(this, value)); + } + add(value) { + return super.add(intern_set(this, value)); + } + delete(value) { + return super.delete(intern_delete(this, value)); + } +} +function intern_get({ _intern, _key }, value) { + const key = _key(value); + return _intern.has(key) ? _intern.get(key) : value; +} +function intern_set({ _intern, _key }, value) { + const key = _key(value); + if (_intern.has(key)) + return _intern.get(key); + _intern.set(key, value); + return value; +} +function intern_delete({ _intern, _key }, value) { + const key = _key(value); + if (_intern.has(key)) { + value = _intern.get(key); + _intern.delete(key); + } + return value; +} +function keyof(value) { + return value !== null && typeof value === "object" ? value.valueOf() : value; +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/init.js +function initRange(domain, range) { + switch (arguments.length) { + case 0: + break; + case 1: + this.range(domain); + break; + default: + this.range(range).domain(domain); + break; + } + return this; +} +function initInterpolator(domain, interpolator) { + switch (arguments.length) { + case 0: + break; + case 1: { + if (typeof domain === "function") + this.interpolator(domain); + else + this.range(domain); + break; + } + default: { + this.domain(domain); + if (typeof interpolator === "function") + this.interpolator(interpolator); + else + this.range(interpolator); + break; + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/ordinal.js + + +const implicit = Symbol("implicit"); +function ordinal() { + var index = new InternMap(), domain = [], range = [], unknown = implicit; + function scale(d) { + let i = index.get(d); + if (i === void 0) { + if (unknown !== implicit) + return unknown; + index.set(d, i = domain.push(d) - 1); + } + return range[i % range.length]; + } + scale.domain = function(_) { + if (!arguments.length) + return domain.slice(); + domain = [], index = new InternMap(); + for (const value of _) { + if (index.has(value)) + continue; + index.set(value, domain.push(value) - 1); + } + return scale; + }; + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), scale) : range.slice(); + }; + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + scale.copy = function() { + return ordinal(domain, range).unknown(unknown); + }; + initRange.apply(scale, arguments); + return scale; +} + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/color.ts + + + + + + +const colorizePattern = (pattern, color, id) => { + const node = src_select(pattern.cloneNode(true)); + node.attr("id", id).insert("rect", ":first-child").attr("width", node.attr("width")).attr("height", node.attr("height")).style("fill", color); + return { + id, + node: node.node() + }; +}; +function getColorFromCss(element) { + const cacheKey = KEY.colorPattern; + const { body } = browser_doc; + let pattern = body[cacheKey]; + if (!pattern) { + const delimiter = ";"; + const content = element.classed($COLOR.colorPattern, true).style("background-image"); + element.classed($COLOR.colorPattern, false); + if (content.indexOf(delimiter) > -1) { + pattern = content.replace(/url[^#]*|["'()]|(\s|%20)/g, "").split(delimiter).map((v) => v.trim().replace(/[\"'\s]/g, "")).filter(Boolean); + body[cacheKey] = pattern; + } + } + return pattern; +} +const schemeCategory10 = [ + "#1f77b4", + "#ff7f0e", + "#2ca02c", + "#d62728", + "#9467bd", + "#8c564b", + "#e377c2", + "#7f7f7f", + "#bcbd22", + "#17becf" +]; +/* harmony default export */ var internals_color = ({ + generateColor() { + const $$ = this; + const { $el, config } = $$; + const colors = config.data_colors; + const callback = config.data_color; + const ids = []; + let pattern = notEmpty(config.color_pattern) ? config.color_pattern : ordinal(getColorFromCss($el.chart) || schemeCategory10).range(); + const originalColorPattern = pattern; + if (isFunction(config.color_tiles)) { + const tiles = config.color_tiles.bind($$.api)(); + const colorizedPatterns = pattern.map((p, index) => { + const color = p.replace(/[#\(\)\s,]/g, ""); + const id = `${$$.state.datetimeId}-pattern-${color}-${index}`; + return colorizePattern(tiles[index % tiles.length], p, id); + }); + pattern = colorizedPatterns.map((p) => `url(#${p.id})`); + $$.patterns = colorizedPatterns; + } + return function(d) { + var _a; + const id = d.id || ((_a = d.data) == null ? void 0 : _a.id) || d; + const isLine = $$.isTypeOf(id, ["line", "spline", "step"]) || !config.data_types[id]; + let color; + if (isFunction(colors[id])) { + color = colors[id].bind($$.api)(d); + } else if (colors[id]) { + color = colors[id]; + } else { + if (ids.indexOf(id) < 0) { + ids.push(id); + } + color = isLine ? originalColorPattern[ids.indexOf(id) % originalColorPattern.length] : pattern[ids.indexOf(id) % pattern.length]; + colors[id] = color; + } + return isFunction(callback) ? callback.bind($$.api)(color, d) : color; + }; + }, + generateLevelColor() { + const $$ = this; + const { config } = $$; + const colors = config.color_pattern; + const threshold = config.color_threshold; + const asValue = threshold.unit === "value"; + const max = threshold.max || 100; + const values = threshold.values && threshold.values.length ? threshold.values : []; + return notEmpty(threshold) ? function(value) { + const v = asValue ? value : value * 100 / max; + let color = colors[colors.length - 1]; + for (let i = 0, l = values.length; i < l; i++) { + if (v <= values[i]) { + color = colors[i]; + break; + } + } + return color; + } : null; + }, + /** + * Append data backgound color filter definition + * @param {string|object} color Color string + * @param {object} attr filter attribute + * @private + */ + generateTextBGColorFilter(color, attr = { + x: 0, + y: 0, + width: 1, + height: 1 + }) { + const $$ = this; + const { $el, state } = $$; + if (color) { + let ids = []; + if (isString(color)) { + ids.push(""); + } else if (isObject(color)) { + ids = Object.keys(color); + } + ids.forEach((v) => { + const id = `${state.datetimeId}-labels-bg${$$.getTargetSelectorSuffix(v)}${isString(color) ? $$.getTargetSelectorSuffix(color) : ""}`; + $el.defs.append("filter").attr("x", attr.x).attr("y", attr.y).attr("width", attr.width).attr("height", attr.height).attr("id", id).html( + `<feFlood flood-color="${v === "" ? color : color[v]}" /> + <feComposite in="SourceGraphic" />` + ); + }); + } + }, + /** + * Get data gradient color url + * @param {string} id Data id + * @returns {string} + * @private + */ + getGradienColortUrl(id) { + return `url(#${this.state.datetimeId}-gradient${this.getTargetSelectorSuffix(id)})`; + }, + /** + * Update linear/radial gradient definition + * - linear: area & bar only + * - radial: type which has data points only + * @private + */ + updateLinearGradient() { + const $$ = this; + const { config, data: { targets }, state: { datetimeId }, $el: { defs } } = $$; + targets.forEach((d) => { + const id = `${datetimeId}-gradient${$$.getTargetSelectorSuffix(d.id)}`; + const radialGradient = $$.hasPointType() && config.point_radialGradient; + const supportedType = $$.isAreaType(d) && "area" || $$.isBarType(d) && "bar"; + if ((radialGradient || supportedType) && defs.select(`#${id}`).empty()) { + const color = $$.color(d); + const gradient = { + defs: null, + stops: [] + }; + if (radialGradient) { + const { + cx = 0.3, + cy = 0.3, + r = 0.7, + stops = [[0.1, color, 0], [0.9, color, 1]] + } = radialGradient; + gradient.stops = stops; + gradient.defs = defs.append("radialGradient").attr("id", `${id}`).attr("cx", cx).attr("cy", cy).attr("r", r); + } else { + const isRotated = config.axis_rotated; + const { + x = isRotated ? [1, 0] : [0, 0], + y = isRotated ? [0, 0] : [0, 1], + stops = [[0, color, 1], [1, color, 0]] + } = config[`${supportedType}_linearGradient`]; + gradient.stops = stops; + gradient.defs = defs.append("linearGradient").attr("id", `${id}`).attr("x1", x[0]).attr("x2", x[1]).attr("y1", y[0]).attr("y2", y[1]); + } + gradient.stops.forEach((v) => { + const [offset, stopColor, stopOpacity] = v; + const colorValue = isFunction(stopColor) ? stopColor.bind($$.api)(d.id) : stopColor; + gradient.defs && gradient.defs.append("stop").attr("offset", offset).attr("stop-color", colorValue || color).attr("stop-opacity", stopOpacity); + }); + } + }); + }, + /** + * Set the data over color. + * When is out, will restate in its previous color value + * @param {boolean} isOver true: set overed color, false: restore + * @param {number|object} d target index or data object for Arc type + * @private + */ + setOverColor(isOver, d) { + const $$ = this; + const { config, $el: { main } } = $$; + const onover = config.color_onover; + let color = isOver ? onover : $$.color; + if (isObject(color)) { + color = ({ id }) => id in onover ? onover[id] : $$.color(id); + } else if (isString(color)) { + color = () => onover; + } else if (isFunction(onover)) { + color = color.bind($$.api); + } + main.selectAll( + isObject(d) ? ( + // when is Arc type + `.${$ARC.arc}${$$.getTargetSelectorSuffix(d.id)}` + ) : `.${$SHAPE.shape}-${d}` + ).style("fill", color); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/domain.ts + + +/* harmony default export */ var domain = ({ + getYDomainMinMax(targets, type) { + const $$ = this; + const { axis, config } = $$; + const isMin = type === "min"; + const dataGroups = config.data_groups; + const ids = $$.mapToIds(targets); + const ys = $$.getValuesAsIdKeyed(targets); + if (dataGroups.length > 0) { + const hasValue = $$[`has${isMin ? "Negative" : "Positive"}ValueInTargets`](targets); + dataGroups.forEach((groupIds) => { + const idsInGroup = groupIds.filter((v) => ids.indexOf(v) >= 0); + if (idsInGroup.length) { + const baseId = idsInGroup[0]; + const baseAxisId = axis.getId(baseId); + if (hasValue && ys[baseId]) { + ys[baseId] = ys[baseId].map((v) => (isMin ? v < 0 : v > 0) ? v : 0); + } + idsInGroup.filter((v, i) => i > 0).forEach((id) => { + if (ys[id]) { + const axisId = axis.getId(id); + ys[id].forEach((v, i) => { + const val = +v; + const meetCondition = isMin ? val > 0 : val < 0; + if (axisId === baseAxisId && !(hasValue && meetCondition)) { + ys[baseId][i] += val; + } + }); + } + }); + } + }); + } + return getMinMax(type, Object.keys(ys).map((key) => getMinMax(type, ys[key]))); + }, + /** + * Check if hidden targets bound to the given axis id + * @param {string} id ID to be checked + * @returns {boolean} + * @private + */ + isHiddenTargetWithYDomain(id) { + const $$ = this; + return $$.state.hiddenTargetIds.some((v) => $$.axis.getId(v) === id); + }, + getYDomain(targets, axisId, xDomain) { + const $$ = this; + const { axis, config, scale } = $$; + const pfx = `axis_${axisId}`; + if ($$.isStackNormalized()) { + return [0, 100]; + } + const isLog = (scale == null ? void 0 : scale[axisId]) && scale[axisId].type === "log"; + const targetsByAxisId = targets.filter((t) => axis.getId(t.id) === axisId); + const yTargets = xDomain ? $$.filterByXDomain(targetsByAxisId, xDomain) : targetsByAxisId; + if (yTargets.length === 0) { + if ($$.isHiddenTargetWithYDomain(axisId)) { + return scale[axisId].domain(); + } else { + return axisId === "y2" ? scale.y.domain() : ( + // When all data bounds to y2, y Axis domain is called prior y2. + // So, it needs to call to get y2 domain here + $$.getYDomain(targets, "y2", xDomain) + ); + } + } + const yMin = config[`${pfx}_min`]; + const yMax = config[`${pfx}_max`]; + const center = config[`${pfx}_center`]; + const isInverted = config[`${pfx}_inverted`]; + const showHorizontalDataLabel = $$.hasDataLabel() && config.axis_rotated; + const showVerticalDataLabel = $$.hasDataLabel() && !config.axis_rotated; + let yDomainMin = $$.getYDomainMinMax(yTargets, "min"); + let yDomainMax = $$.getYDomainMinMax(yTargets, "max"); + let isZeroBased = [TYPE.BAR, TYPE.BUBBLE, TYPE.SCATTER, ...TYPE_BY_CATEGORY.Line].some((v) => { + const type = v.indexOf("area") > -1 ? "area" : v; + return $$.hasType(v, yTargets, true) && config[`${type}_zerobased`]; + }); + yDomainMin = isValue(yMin) ? yMin : isValue(yMax) ? yDomainMin <= yMax ? yDomainMin : yMax - 10 : yDomainMin; + yDomainMax = isValue(yMax) ? yMax : isValue(yMin) ? yMin <= yDomainMax ? yDomainMax : yMin + 10 : yDomainMax; + if (isNaN(yDomainMin)) { + yDomainMin = 0; + } + if (isNaN(yDomainMax)) { + yDomainMax = yDomainMin; + } + if (yDomainMin === yDomainMax) { + yDomainMin < 0 ? yDomainMax = 0 : yDomainMin = 0; + } + const isAllPositive = yDomainMin >= 0 && yDomainMax >= 0; + const isAllNegative = yDomainMin <= 0 && yDomainMax <= 0; + if (isValue(yMin) && isAllPositive || isValue(yMax) && isAllNegative) { + isZeroBased = false; + } + if (isZeroBased) { + isAllPositive && (yDomainMin = 0); + isAllNegative && (yDomainMax = 0); + } + const domainLength = Math.abs(yDomainMax - yDomainMin); + let padding = { top: domainLength * 0.1, bottom: domainLength * 0.1 }; + if (isDefined(center)) { + const yDomainAbs = Math.max(Math.abs(yDomainMin), Math.abs(yDomainMax)); + yDomainMax = center + yDomainAbs; + yDomainMin = center - yDomainAbs; + } + if (showHorizontalDataLabel) { + const diff = diffDomain(scale.y.range()); + const ratio = $$.getDataLabelLength(yDomainMin, yDomainMax, "width").map((v) => v / diff); + ["bottom", "top"].forEach((v, i) => { + padding[v] += domainLength * (ratio[i] / (1 - ratio[0] - ratio[1])); + }); + } else if (showVerticalDataLabel) { + const lengths = $$.getDataLabelLength(yDomainMin, yDomainMax, "height"); + ["bottom", "top"].forEach((v, i) => { + padding[v] += $$.convertPixelToScale("y", lengths[i], domainLength); + }); + } + padding = $$.getResettedPadding(padding); + const p = config[`${pfx}_padding`]; + if (notEmpty(p)) { + ["bottom", "top"].forEach((v) => { + padding[v] = axis.getPadding(p, v, padding[v], domainLength); + }); + } + if (isZeroBased) { + isAllPositive && (padding.bottom = yDomainMin); + isAllNegative && (padding.top = -yDomainMax); + } + const domain = isLog ? [yDomainMin, yDomainMax].map((v) => v < 0 ? 0 : v) : [yDomainMin - padding.bottom, yDomainMax + padding.top]; + return isInverted ? domain.reverse() : domain; + }, + getXDomainMinMax(targets, type) { + var _a; + const $$ = this; + const configValue = $$.config[`axis_x_${type}`]; + const dataValue = getMinMax( + type, + targets.map((t) => getMinMax(type, t.values.map((v) => v.x))) + ); + let value = isObject(configValue) ? configValue.value : configValue; + value = isDefined(value) && ((_a = $$.axis) == null ? void 0 : _a.isTimeSeries()) ? parseDate.bind(this)(value) : value; + if (isObject(configValue) && configValue.fit && (type === "min" && value < dataValue || type === "max" && value > dataValue)) { + value = void 0; + } + return isDefined(value) ? value : dataValue; + }, + /** + * Get x Axis padding + * @param {Array} domain x Axis domain + * @param {number} tickCount Tick count + * @returns {object} Padding object values with 'left' & 'right' key + * @private + */ + getXDomainPadding(domain, tickCount) { + const $$ = this; + const { axis, config } = $$; + const padding = config.axis_x_padding; + const isTimeSeriesTickCount = axis.isTimeSeries() && tickCount; + const diff = diffDomain(domain); + let defaultValue; + if (axis.isCategorized() || isTimeSeriesTickCount) { + defaultValue = 0; + } else if ($$.hasType("bar")) { + const maxDataCount = $$.getMaxDataCount(); + defaultValue = maxDataCount > 1 ? diff / (maxDataCount - 1) / 2 : 0.5; + } else { + defaultValue = $$.getResettedPadding(diff * 0.01); + } + let { left = defaultValue, right = defaultValue } = isNumber(padding) ? { left: padding, right: padding } : padding; + if (padding.unit === "px") { + const domainLength = Math.abs(diff + diff * 0.2); + left = axis.getPadding(padding, "left", defaultValue, domainLength); + right = axis.getPadding(padding, "right", defaultValue, domainLength); + } else { + const range = diff + left + right; + if (isTimeSeriesTickCount && range) { + const relativeTickWidth = diff / tickCount / range; + left = left / range / relativeTickWidth; + right = right / range / relativeTickWidth; + } + } + return { left, right }; + }, + /** + * Get x Axis domain + * @param {Array} targets targets + * @returns {Array} x Axis domain + * @private + */ + getXDomain(targets) { + const $$ = this; + const { axis, config, scale: { x } } = $$; + const isInverted = config.axis_x_inverted; + const domain = [ + $$.getXDomainMinMax(targets, "min"), + $$.getXDomainMinMax(targets, "max") + ]; + let [min = 0, max = 0] = domain; + if (x.type !== "log") { + const isCategorized = axis.isCategorized(); + const isTimeSeries = axis.isTimeSeries(); + const padding = $$.getXDomainPadding(domain); + let [firstX, lastX] = domain; + if (firstX - lastX === 0 && !isCategorized) { + if (isTimeSeries) { + firstX = new Date(firstX.getTime() * 0.5); + lastX = new Date(lastX.getTime() * 1.5); + } else { + firstX = firstX === 0 ? 1 : firstX * 0.5; + lastX = lastX === 0 ? -1 : lastX * 1.5; + } + } + if (firstX || firstX === 0) { + min = isTimeSeries ? new Date(firstX.getTime() - padding.left) : firstX - padding.left; + } + if (lastX || lastX === 0) { + max = isTimeSeries ? new Date(lastX.getTime() + padding.right) : lastX + padding.right; + } + } + return isInverted ? [max, min] : [min, max]; + }, + updateXDomain(targets, withUpdateXDomain, withUpdateOrgXDomain, withTrim, domain) { + var _a; + const $$ = this; + const { config, org, scale: { x, subX } } = $$; + const zoomEnabled = config.zoom_enabled; + if (withUpdateOrgXDomain) { + x.domain(domain || sortValue($$.getXDomain(targets), !config.axis_x_inverted)); + org.xDomain = x.domain(); + subX.domain(x.domain()); + (_a = $$.brush) == null ? void 0 : _a.scale(subX); + } + if (withUpdateXDomain) { + const domainValue = domain || (!$$.brush || brushEmpty($$)) ? org.xDomain : getBrushSelection($$).map(subX.invert); + x.domain(domainValue); + } + if (withUpdateOrgXDomain || withUpdateXDomain) { + zoomEnabled && $$.zoom.updateScaleExtent(); + } + withTrim && x.domain($$.trimXDomain(x.orgDomain())); + return x.domain(); + }, + /** + * Trim x domain when given domain surpasses the range + * @param {Array} domain Domain value + * @returns {Array} Trimed domain if given domain is out of range + * @private + */ + trimXDomain(domain) { + const $$ = this; + const isInverted = $$.config.axis_x_inverted; + const zoomDomain = $$.getZoomDomain(); + const [min, max] = zoomDomain; + if (isInverted ? domain[0] >= min : domain[0] <= min) { + domain[1] = +domain[1] + (min - domain[0]); + domain[0] = min; + } + if (isInverted ? domain[1] <= max : domain[1] >= max) { + domain[0] = +domain[0] - (domain[1] - max); + domain[1] = max; + } + return domain; + }, + /** + * Get subchart/zoom domain + * @param {string} type "subX" or "zoom" + * @param {boolean} getCurrent Get current domain if true + * @returns {Array} zoom domain + * @private + */ + getZoomDomain(type = "zoom", getCurrent = false) { + const $$ = this; + const { config, scale, org } = $$; + let [min, max] = getCurrent && scale[type] ? scale[type].domain() : org.xDomain; + if (type === "zoom") { + if (isDefined(config.zoom_x_min)) { + min = getMinMax("min", [min, config.zoom_x_min]); + } + if (isDefined(config.zoom_x_max)) { + max = getMinMax("max", [max, config.zoom_x_max]); + } + } + return [min, max]; + }, + /** + * Return zoom domain from given domain + * - 'category' type need to add offset to original value + * @param {Array} domainValue domain value + * @returns {Array} Zoom domain + * @private + */ + getZoomDomainValue(domainValue) { + const $$ = this; + const { config, axis } = $$; + if (axis.isCategorized() && Array.isArray(domainValue)) { + const isInverted = config.axis_x_inverted; + const domain = domainValue.map( + (v, i) => Number(v) + (i === 0 ? +isInverted : +!isInverted) + ); + return domain; + } + return domainValue; + }, + /** + * Converts pixels to axis' scale values + * @param {string} type Axis type + * @param {number} pixels Pixels + * @param {number} domainLength Domain length + * @returns {number} + * @private + */ + convertPixelToScale(type, pixels, domainLength) { + const $$ = this; + const { config, state } = $$; + const isRotated = config.axis_rotated; + let length; + if (type === "x") { + length = isRotated ? "height" : "width"; + } else { + length = isRotated ? "width" : "height"; + } + return domainLength * (pixels / state[length]); + }, + /** + * Check if the given domain is within subchart/zoom range + * @param {Array} domain Target domain value + * @param {Array} current Current subchart/zoom domain value + * @param {Array} range subchart/zoom range value + * @returns {boolean} + * @private + */ + withinRange(domain, current = [0, 0], range) { + const $$ = this; + const isInverted = $$.config.axis_x_inverted; + const [min, max] = range; + if (Array.isArray(domain)) { + const target = [...domain]; + isInverted && target.reverse(); + if (target[0] < target[1]) { + return domain.every( + (v, i) => (i === 0 ? isInverted ? +v <= min : +v >= min : isInverted ? +v >= max : +v <= max) && !domain.every((v2, i2) => v2 === current[i2]) + ); + } + } + return false; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/format.ts + +function getFormat($$, typeValue, v) { + const { config } = $$; + const type = `axis_${typeValue}_tick_format`; + const format = config[type] ? config[type] : $$.defaultValueFormat; + return format.call($$.api, v); +} +/* harmony default export */ var format = ({ + yFormat(v) { + return getFormat(this, "y", v); + }, + y2Format(v) { + return getFormat(this, "y2", v); + }, + /** + * Get default value format function + * @returns {Function} formatter function + * @private + */ + getDefaultValueFormat() { + const $$ = this; + const { defaultArcValueFormat, yFormat, y2Format } = $$; + const hasArc = $$.hasArcType(null, ["gauge", "polar", "radar"]); + return function(v, ratio, id) { + const format = hasArc ? defaultArcValueFormat : $$.axis && $$.axis.getId(id) === "y2" ? y2Format : yFormat; + return format.call($$, v, ratio); + }; + }, + defaultValueFormat(v) { + return isArray(v) ? v.join("~") : isValue(v) ? +v : ""; + }, + defaultArcValueFormat(v, ratio) { + return `${(ratio * 100).toFixed(1)}%`; + }, + defaultPolarValueFormat(v) { + return `${v}`; + }, + dataLabelFormat(targetId) { + const $$ = this; + const dataLabels = $$.config.data_labels; + const defaultFormat = (v) => { + const delimiter = "~"; + let res = v; + if (isArray(v)) { + res = v.join(delimiter); + } else if (isObject(v)) { + res = Object.values(v).join(delimiter); + } + return res; + }; + let format = defaultFormat; + if (isFunction(dataLabels.format)) { + format = dataLabels.format; + } else if (isObjectType(dataLabels.format)) { + if (dataLabels.format[targetId]) { + format = dataLabels.format[targetId] === true ? defaultFormat : dataLabels.format[targetId]; + } else { + format = () => ""; + } + } + return format.bind($$.api); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/legend.ts + + + + + +function getLegendColor(id) { + const $$ = this; + const data = $$.getDataById(id); + const color = $$.levelColor ? $$.levelColor(data.values[0].value) : $$.color(data); + return color; +} +function getFormattedText(id, formatted = true) { + var _a; + const { config } = this; + let text = (_a = config.data_names[id]) != null ? _a : id; + if (formatted && isFunction(config.legend_format)) { + text = config.legend_format(text); + } + return text; +} +/* harmony default export */ var internals_legend = ({ + /** + * Initialize the legend. + * @private + */ + initLegend() { + const $$ = this; + const { config, $el } = $$; + $$.legendItemTextBox = {}; + $$.state.legendHasRendered = false; + if (config.legend_show) { + if (!config.legend_contents_bindto) { + $el.legend = $$.$el.svg.append("g").classed($LEGEND.legend, true).attr("transform", $$.getTranslate("legend")); + } + $$.updateLegend(); + } else { + $$.state.hiddenLegendIds = $$.mapToIds($$.data.targets); + } + }, + /** + * Update legend element + * @param {Array} targetIds ID's of target + * @param {object} options withTransform : Whether to use the transform property / withTransitionForTransform: Whether transition is used when using the transform property / withTransition : whether or not to transition. + * @param {object} transitions Return value of the generateTransitions + * @private + */ + updateLegend(targetIds, options, transitions) { + var _a; + const $$ = this; + const { config, state, scale, $el } = $$; + const optionz = options || { + withTransform: false, + withTransitionForTransform: false, + withTransition: false + }; + optionz.withTransition = getOption(optionz, "withTransition", true); + optionz.withTransitionForTransform = getOption(optionz, "withTransitionForTransform", true); + if (config.legend_contents_bindto && config.legend_contents_template) { + $$.updateLegendTemplate(); + } else if (!state.hasTreemap) { + $$.updateLegendElement( + targetIds || $$.mapToIds($$.data.targets), + optionz, + transitions + ); + } + (_a = $el.legend) == null ? void 0 : _a.selectAll(`.${$LEGEND.legendItem}`).classed($LEGEND.legendItemHidden, function(id) { + const hide = !$$.isTargetToShow(id); + if (hide) { + this.style.opacity = null; + } + return hide; + }); + $$.updateScales(false, !scale.zoom); + $$.updateSvgSize(); + $$.transformAll(optionz.withTransitionForTransform, transitions); + state.legendHasRendered = true; + }, + /** + * Update legend using template option + * @private + */ + updateLegendTemplate() { + const $$ = this; + const { config, $el } = $$; + const wrapper = src_select(config.legend_contents_bindto); + const template = config.legend_contents_template; + if (!wrapper.empty()) { + const targets = $$.mapToIds($$.data.targets); + const ids = []; + let html = ""; + targets.forEach((v) => { + const content = isFunction(template) ? template.bind($$.api)(v, $$.color(v), $$.api.data(v)[0].values) : tplProcess(template, { + COLOR: $$.color(v), + TITLE: v + }); + if (content) { + ids.push(v); + html += content; + } + }); + const legendItem = wrapper.html(html).selectAll(function() { + return this.childNodes; + }).data(ids); + $$.setLegendItem(legendItem); + $el.legend = wrapper; + } + }, + /** + * Update the size of the legend. + * @param {Obejct} size Size object + * @private + */ + updateSizeForLegend(size) { + const $$ = this; + const { + config, + state: { + isLegendTop, + isLegendLeft, + isLegendRight, + isLegendInset, + current + } + } = $$; + const { width, height } = size; + const insetLegendPosition = { + top: isLegendTop ? $$.getCurrentPaddingByDirection("top") + config.legend_inset_y + 5.5 : current.height - height - $$.getCurrentPaddingByDirection("bottom") - config.legend_inset_y, + left: isLegendLeft ? $$.getCurrentPaddingByDirection("left") + config.legend_inset_x + 0.5 : current.width - width - $$.getCurrentPaddingByDirection("right") - config.legend_inset_x + 0.5 + }; + $$.state.margin3 = { + top: isLegendRight ? 0 : isLegendInset ? insetLegendPosition.top : current.height - height, + right: NaN, + bottom: 0, + left: isLegendRight ? current.width - width : isLegendInset ? insetLegendPosition.left : 0 + }; + }, + /** + * Transform Legend + * @param {boolean} withTransition whether or not to transition. + * @private + */ + transformLegend(withTransition) { + const $$ = this; + const { $el: { legend }, $T } = $$; + $T(legend, withTransition).attr("transform", $$.getTranslate("legend")); + }, + /** + * Update the legend step + * @param {number} step Step value + * @private + */ + updateLegendStep(step) { + this.state.legendStep = step; + }, + /** + * Update legend item width + * @param {number} width Width value + * @private + */ + updateLegendItemWidth(width) { + this.state.legendItemWidth = width; + }, + /** + * Update legend item height + * @param {number} height Height value + * @private + */ + updateLegendItemHeight(height) { + this.state.legendItemHeight = height; + }, + /** + * Update legend item color + * @param {string} id Corresponding data ID value + * @param {string} color Color value + * @private + */ + updateLegendItemColor(id, color) { + const { legend } = this.$el; + if (legend) { + legend.select(`.${$LEGEND.legendItem}-${id} line`).style("stroke", color); + } + }, + /** + * Get the width of the legend + * @returns {number} width + * @private + */ + getLegendWidth() { + const $$ = this; + const { current: { width }, isLegendRight, isLegendInset, legendItemWidth, legendStep } = $$.state; + return $$.config.legend_show ? isLegendRight || isLegendInset ? legendItemWidth * (legendStep + 1) : width : 0; + }, + /** + * Get the height of the legend + * @returns {number} height + * @private + */ + getLegendHeight() { + var _a; + const $$ = this; + const { current, isLegendRight, legendItemHeight, legendStep } = $$.state; + const isFitPadding = ((_a = $$.config.padding) == null ? void 0 : _a.mode) === "fit"; + return $$.config.legend_show ? isLegendRight ? current.height : (isFitPadding ? 10 : Math.max(20, legendItemHeight)) * (legendStep + 1) : 0; + }, + /** + * Get the opacity of the legend that is unfocused + * @param {d3.selection} legendItem Legend item node + * @returns {string|null} opacity + * @private + */ + opacityForUnfocusedLegend(legendItem) { + return legendItem.classed($LEGEND.legendItemHidden) ? null : "0.3"; + }, + /** + * Toggles the focus of the legend + * @param {Array} targetIds ID's of target + * @param {boolean} focus whether or not to focus. + * @private + */ + toggleFocusLegend(targetIds, focus) { + const $$ = this; + const { $el: { legend }, $T } = $$; + const targetIdz = $$.mapToTargetIds(targetIds); + legend && $T(legend.selectAll(`.${$LEGEND.legendItem}`).filter((id) => targetIdz.indexOf(id) >= 0).classed($FOCUS.legendItemFocused, focus)).style("opacity", function() { + return focus ? null : $$.opacityForUnfocusedLegend.call($$, src_select(this)); + }); + }, + /** + * Revert the legend to its default state + * @private + */ + revertLegend() { + const $$ = this; + const { $el: { legend }, $T } = $$; + legend && $T(legend.selectAll(`.${$LEGEND.legendItem}`).classed($FOCUS.legendItemFocused, false)).style("opacity", null); + }, + /** + * Shows the legend + * @param {Array} targetIds ID's of target + * @private + */ + showLegend(targetIds) { + const $$ = this; + const { config, $el, $T } = $$; + if (!config.legend_show) { + config.legend_show = true; + $el.legend ? $el.legend.style("visibility", null) : $$.initLegend(); + !$$.state.legendHasRendered && $$.updateLegend(); + } + $$.removeHiddenLegendIds(targetIds); + $T( + $el.legend.selectAll($$.selectorLegends(targetIds)).style("visibility", null) + ).style("opacity", null); + }, + /** + * Hide the legend + * @param {Array} targetIds ID's of target + * @private + */ + hideLegend(targetIds) { + const $$ = this; + const { config, $el: { legend } } = $$; + if (config.legend_show && isEmpty(targetIds)) { + config.legend_show = false; + legend.style("visibility", "hidden"); + } + $$.addHiddenLegendIds(targetIds); + legend.selectAll($$.selectorLegends(targetIds)).style("opacity", "0").style("visibility", "hidden"); + }, + /** + * Get legend item textbox dimension + * @param {string} id Data ID + * @param {HTMLElement|d3.selection} textElement Text node element + * @returns {object} Bounding rect + * @private + */ + getLegendItemTextBox(id, textElement) { + const $$ = this; + const { cache, state } = $$; + let data; + const cacheKey = KEY.legendItemTextBox; + if (id) { + data = !state.redrawing && cache.get(cacheKey) || {}; + if (!data[id]) { + data[id] = $$.getTextRect(textElement, $LEGEND.legendItem); + cache.add(cacheKey, data); + } + data = data[id]; + } + return data; + }, + /** + * Set legend item style & bind events + * @param {d3.selection} item Item node + * @private + */ + setLegendItem(item) { + const $$ = this; + const { $el, api, config, state } = $$; + const isTouch = state.inputType === "touch"; + const hasGauge = $$.hasType("gauge"); + const useCssRule = config.boost_useCssRule; + const interaction = config.legend_item_interaction; + item.attr("class", function(id) { + const node = src_select(this); + const itemClass = !node.empty() && node.attr("class") || ""; + return itemClass + $$.generateClass($LEGEND.legendItem, id); + }).style("visibility", (id) => $$.isLegendToShow(id) ? null : "hidden"); + if (config.interaction_enabled) { + if (useCssRule) { + [ + [`.${$LEGEND.legendItem}`, "cursor:pointer"], + [`.${$LEGEND.legendItem} text`, "pointer-events:none"], + [`.${$LEGEND.legendItemPoint} text`, "pointer-events:none"], + [`.${$LEGEND.legendItemTile}`, "pointer-events:none"], + [`.${$LEGEND.legendItemEvent}`, "fill-opacity:0"] + ].forEach((v) => { + const [selector, props] = v; + $$.setCssRule(false, selector, [props])($el.legend); + }); + } + item.on( + interaction.dblclick ? "dblclick" : "click", + interaction || isFunction(config.legend_item_onclick) ? function(event, id) { + if (!callFn(config.legend_item_onclick, api, id)) { + const { altKey, target, type } = event; + if (type === "dblclick" || altKey) { + if (state.hiddenTargetIds.length && target.parentNode.getAttribute("class").indexOf( + $LEGEND.legendItemHidden + ) === -1) { + api.show(); + } else { + api.hide(); + api.show(id); + } + } else { + api.toggle(id); + src_select(this).classed($FOCUS.legendItemFocused, false); + } + } + isTouch && $$.hideTooltip(); + } : null + ); + !isTouch && item.on("mouseout", interaction || isFunction(config.legend_item_onout) ? function(event, id) { + if (!callFn(config.legend_item_onout, api, id)) { + src_select(this).classed($FOCUS.legendItemFocused, false); + if (hasGauge) { + $$.undoMarkOverlapped($$, `.${$GAUGE.gaugeValue}`); + } + $$.api.revert(); + } + } : null).on("mouseover", interaction || isFunction(config.legend_item_onover) ? function(event, id) { + if (!callFn(config.legend_item_onover, api, id)) { + src_select(this).classed($FOCUS.legendItemFocused, true); + if (hasGauge) { + $$.markOverlapped(id, $$, `.${$GAUGE.gaugeValue}`); + } + if (!state.transiting && $$.isTargetToShow(id)) { + api.focus(id); + } + } + } : null); + !item.empty() && item.on("click mouseout mouseover") && item.style("cursor", $$.getStylePropValue("pointer")); + } + }, + /** + * Update the legend + * @param {Array} targetIds ID's of target + * @param {object} options withTransform : Whether to use the transform property / withTransitionForTransform: Whether transition is used when using the transform property / withTransition : whether or not to transition. + * @private + */ + updateLegendElement(targetIds, options) { + const $$ = this; + const { config, state, $el: { legend }, $T } = $$; + const legendType = config.legend_item_tile_type; + const isRectangle = legendType !== "circle"; + const legendItemR = config.legend_item_tile_r; + const itemTileSize = { + width: isRectangle ? config.legend_item_tile_width : legendItemR * 2, + height: isRectangle ? config.legend_item_tile_height : legendItemR * 2 + }; + const dimension = { + padding: { + top: 4, + right: 10 + }, + max: { + width: 0, + height: 0 + }, + posMin: 10, + step: 0, + tileWidth: itemTileSize.width + 5, + totalLength: 0 + }; + const sizes = { + offsets: {}, + widths: {}, + heights: {}, + margins: [0], + steps: {} + }; + let xForLegend; + let yForLegend; + let background; + const targetIdz = targetIds.filter((id) => !isDefined(config.data_names[id]) || config.data_names[id] !== null); + const withTransition = options.withTransition; + const updatePositions = $$.getUpdateLegendPositions(targetIdz, dimension, sizes); + if (state.isLegendInset) { + dimension.step = config.legend_inset_step ? config.legend_inset_step : targetIdz.length; + $$.updateLegendStep(dimension.step); + } + if (state.isLegendRight) { + xForLegend = (id) => dimension.max.width * sizes.steps[id]; + yForLegend = (id) => sizes.margins[sizes.steps[id]] + sizes.offsets[id]; + } else if (state.isLegendInset) { + xForLegend = (id) => dimension.max.width * sizes.steps[id] + 10; + yForLegend = (id) => sizes.margins[sizes.steps[id]] + sizes.offsets[id]; + } else { + xForLegend = (id) => sizes.margins[sizes.steps[id]] + sizes.offsets[id]; + yForLegend = (id) => dimension.max.height * sizes.steps[id]; + } + const posFn = { + xText: (id, i) => xForLegend(id, i) + 4 + itemTileSize.width, + xRect: (id, i) => xForLegend(id, i), + x1Tile: (id, i) => xForLegend(id, i) - 2, + x2Tile: (id, i) => xForLegend(id, i) - 2 + itemTileSize.width, + yText: (id, i) => yForLegend(id, i) + 9, + yRect: (id, i) => yForLegend(id, i) - 5, + yTile: (id, i) => yForLegend(id, i) + 4 + }; + $$.generateLegendItem(targetIdz, itemTileSize, updatePositions, posFn); + background = legend.select(`.${$LEGEND.legendBackground} rect`); + if (state.isLegendInset && dimension.max.width > 0 && background.size() === 0) { + background = legend.insert("g", `.${$LEGEND.legendItem}`).attr("class", $LEGEND.legendBackground).append("rect"); + } + if (config.legend_tooltip) { + legend.selectAll("title").data(targetIdz).text((id) => getFormattedText.bind($$)(id, false)); + } + const texts = legend.selectAll("text").data(targetIdz).text((id) => getFormattedText.bind($$)(id)).each(function(id, i) { + updatePositions(this, id, i); + }); + $T(texts, withTransition).attr("x", posFn.xText).attr("y", posFn.yText); + const rects = legend.selectAll(`rect.${$LEGEND.legendItemEvent}`).data(targetIdz); + $T(rects, withTransition).attr("width", (id) => sizes.widths[id]).attr("height", (id) => sizes.heights[id]).attr("x", posFn.xRect).attr("y", posFn.yRect); + $$.updateLegendItemPos(targetIdz, withTransition, posFn); + if (background) { + $T(background, withTransition).attr("height", $$.getLegendHeight() - 12).attr("width", dimension.max.width * (dimension.step + 1) + 10); + } + $$.updateLegendItemWidth(dimension.max.width); + $$.updateLegendItemHeight(dimension.max.height); + $$.updateLegendStep(dimension.step); + }, + /** + * Get position update function + * @param {Array} targetIdz Data ids + * @param {object} dimension Dimension object + * @param {object} sizes Size object + * @returns {Function} Update position function + * @private + */ + getUpdateLegendPositions(targetIdz, dimension, sizes) { + const $$ = this; + const { config, state } = $$; + const isLegendRightOrInset = state.isLegendRight || state.isLegendInset; + return function(textElement, id, index) { + const reset = index === 0; + const isLast = index === targetIdz.length - 1; + const box = $$.getLegendItemTextBox(id, textElement); + const itemWidth = box.width + dimension.tileWidth + (isLast && !isLegendRightOrInset ? 0 : dimension.padding.right) + config.legend_padding; + const itemHeight = box.height + dimension.padding.top; + const itemLength = isLegendRightOrInset ? itemHeight : itemWidth; + const areaLength = isLegendRightOrInset ? $$.getLegendHeight() : $$.getLegendWidth(); + let margin; + const updateValues = function(id2, withoutStep) { + if (!withoutStep) { + margin = (areaLength - dimension.totalLength - itemLength) / 2; + if (margin < dimension.posMin) { + margin = (areaLength - itemLength) / 2; + dimension.totalLength = 0; + dimension.step++; + } + } + sizes.steps[id2] = dimension.step; + sizes.margins[dimension.step] = state.isLegendInset ? 10 : margin; + sizes.offsets[id2] = dimension.totalLength; + dimension.totalLength += itemLength; + }; + if (reset) { + dimension.totalLength = 0; + dimension.step = 0; + dimension.max.width = 0; + dimension.max.height = 0; + } + if (config.legend_show && !$$.isLegendToShow(id)) { + sizes.widths[id] = 0; + sizes.heights[id] = 0; + sizes.steps[id] = 0; + sizes.offsets[id] = 0; + return; + } + sizes.widths[id] = itemWidth; + sizes.heights[id] = itemHeight; + if (!dimension.max.width || itemWidth >= dimension.max.width) { + dimension.max.width = itemWidth; + } + if (!dimension.max.height || itemHeight >= dimension.max.height) { + dimension.max.height = itemHeight; + } + const maxLength = isLegendRightOrInset ? dimension.max.height : dimension.max.width; + if (config.legend_equally) { + Object.keys(sizes.widths).forEach((id2) => sizes.widths[id2] = dimension.max.width); + Object.keys(sizes.heights).forEach( + (id2) => sizes.heights[id2] = dimension.max.height + ); + margin = (areaLength - maxLength * targetIdz.length) / 2; + if (margin < dimension.posMin) { + dimension.totalLength = 0; + dimension.step = 0; + targetIdz.forEach((id2) => updateValues(id2)); + } else { + updateValues(id, true); + } + } else { + updateValues(id); + } + }; + }, + /** + * Generate legend item elements + * @param {Array} targetIdz Data ids + * @param {object} itemTileSize Item tile size {width, height} + * @param {Function} updatePositions Update position function + * @param {object} posFn Position functions + * @private + */ + generateLegendItem(targetIdz, itemTileSize, updatePositions, posFn) { + const $$ = this; + const { config, state, $el: { legend } } = $$; + const usePoint = config.legend_usePoint; + const legendItemR = config.legend_item_tile_r; + const legendType = config.legend_item_tile_type; + const isRectangle = legendType !== "circle"; + const isLegendRightOrInset = state.isLegendRight || state.isLegendInset; + const pos = -200; + const l = legend.selectAll(`.${$LEGEND.legendItem}`).data(targetIdz).enter().append("g"); + $$.setLegendItem(l); + if (config.legend_tooltip) { + l.append("title").text((id) => id); + } + l.append("text").text((id) => getFormattedText.bind($$)(id)).each(function(id, i) { + updatePositions(this, id, i); + }).style("pointer-events", $$.getStylePropValue("none")).attr("x", isLegendRightOrInset ? posFn.xText : pos).attr("y", isLegendRightOrInset ? pos : posFn.yText); + l.append("rect").attr("class", $LEGEND.legendItemEvent).style("fill-opacity", $$.getStylePropValue("0")).attr("x", isLegendRightOrInset ? posFn.xRect : pos).attr("y", isLegendRightOrInset ? pos : posFn.yRect); + if (usePoint) { + const ids = []; + l.append((d) => { + const pattern = notEmpty(config.point_pattern) ? config.point_pattern : [config.point_type]; + ids.indexOf(d) === -1 && ids.push(d); + let point = pattern[ids.indexOf(d) % pattern.length]; + if (point === "rectangle") { + point = "rect"; + } + return browser_doc.createElementNS( + namespaces.svg, + "hasValidPointType" in $$ && $$.hasValidPointType(point) ? point : "use" + ); + }).attr("class", $LEGEND.legendItemPoint).style("fill", getLegendColor.bind($$)).style("pointer-events", $$.getStylePropValue("none")).attr("href", (data, idx, selection) => { + const node = selection[idx]; + const nodeName = node.nodeName.toLowerCase(); + const id = $$.getTargetSelectorSuffix(data); + return nodeName === "use" ? `#${state.datetimeId}-point${id}` : void 0; + }); + } else { + l.append(isRectangle ? "line" : legendType).attr("class", $LEGEND.legendItemTile).style("stroke", getLegendColor.bind($$)).style("pointer-events", $$.getStylePropValue("none")).call((selection) => { + if (legendType === "circle") { + selection.attr("r", legendItemR).style("fill", getLegendColor.bind($$)).attr("cx", isLegendRightOrInset ? posFn.x2Tile : pos).attr("cy", isLegendRightOrInset ? pos : posFn.yTile); + } else if (isRectangle) { + selection.attr("stroke-width", itemTileSize.height).attr("x1", isLegendRightOrInset ? posFn.x1Tile : pos).attr("y1", isLegendRightOrInset ? pos : posFn.yTile).attr("x2", isLegendRightOrInset ? posFn.x2Tile : pos).attr("y2", isLegendRightOrInset ? pos : posFn.yTile); + } + }); + } + }, + /** + * Update legend item position + * @param {Array} targetIdz Data ids + * @param {boolean} withTransition Whether or not to apply transition + * @param {object} posFn Position functions + * @private + */ + updateLegendItemPos(targetIdz, withTransition, posFn) { + const $$ = this; + const { config, $el: { legend }, $T } = $$; + const usePoint = config.legend_usePoint; + const legendType = config.legend_item_tile_type; + const isRectangle = legendType !== "circle"; + if (usePoint) { + const tiles = legend.selectAll(`.${$LEGEND.legendItemPoint}`).data(targetIdz); + $T(tiles, withTransition).each(function() { + const nodeName = this.nodeName.toLowerCase(); + const pointR = config.point_r; + let x = "x"; + let y = "y"; + let xOffset = 2; + let yOffset = 2.5; + let radius = null; + let width = null; + let height = null; + if (nodeName === "circle") { + const size = pointR * 0.2; + x = "cx"; + y = "cy"; + radius = pointR + size; + xOffset = pointR * 2; + yOffset = -size; + } else if (nodeName === "rect") { + const size = pointR * 2.5; + width = size; + height = size; + yOffset = 3; + } + src_select(this).attr(x, (d) => posFn.x1Tile(d) + xOffset).attr(y, (d) => posFn.yTile(d) - yOffset).attr("r", radius).attr("width", width).attr("height", height); + }); + } else { + const tiles = legend.selectAll(`.${$LEGEND.legendItemTile}`).data(targetIdz); + $T(tiles, withTransition).style("stroke", getLegendColor.bind($$)).call((selection) => { + if (legendType === "circle") { + selection.attr("cx", (d) => { + const x2 = posFn.x2Tile(d); + return x2 - (x2 - posFn.x1Tile(d)) / 2; + }).attr("cy", posFn.yTile); + } else if (isRectangle) { + selection.attr("x1", posFn.x1Tile).attr("y1", posFn.yTile).attr("x2", posFn.x2Tile).attr("y2", posFn.yTile); + } + }); + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/redraw.ts + + + + +/* harmony default export */ var redraw = ({ + redraw(options = {}) { + var _a, _b, _c, _d; + const $$ = this; + const { config, state, $el } = $$; + const { main, treemap } = $el; + state.redrawing = true; + const targetsToShow = $$.filterTargetsToShow($$.data.targets); + const { flow, initializing } = options; + const wth = $$.getWithOption(options); + const duration = wth.Transition ? config.transition_duration : 0; + const durationForExit = wth.TransitionForExit ? duration : 0; + const durationForAxis = wth.TransitionForAxis ? duration : 0; + const transitions = (_a = $$.axis) == null ? void 0 : _a.generateTransitions(durationForAxis); + $$.updateSizes(initializing); + if (wth.Legend && config.legend_show) { + options.withTransition = !!duration; + !treemap && $$.updateLegend($$.mapToIds($$.data.targets), options, transitions); + } else if (wth.Dimension) { + $$.updateDimension(true); + } + config.data_empty_label_text && main.select(`text.${$TEXT.text}.${$COMMON.empty}`).attr("x", state.width / 2).attr("y", state.height / 2).text(config.data_empty_label_text).style("display", targetsToShow.length ? "none" : null); + if (state.hasAxis) { + $$.axis.redrawAxis(targetsToShow, wth, transitions, flow, initializing); + $$.hasGrid() && $$.updateGrid(); + config.regions.length && $$.updateRegion(); + ["bar", "candlestick", "line", "area"].forEach((v) => { + const name = capitalize(v); + if (/^(line|area)$/.test(v) && $$.hasTypeOf(name) || $$.hasType(v)) { + $$[`update${name}`](wth.TransitionForExit); + } + }); + $el.text && main.selectAll(`.${$SELECT.selectedCircles}`).filter($$.isBarType.bind($$)).selectAll("circle").remove(); + if (config.interaction_enabled && !flow && wth.EventRect) { + $$.redrawEventRect(); + (_b = $$.bindZoomEvent) == null ? void 0 : _b.call($$); + } + } else { + $el.arcs && $$.redrawArc(duration, durationForExit, wth.Transform); + $el.radar && $$.redrawRadar(); + $el.polar && $$.redrawPolar(); + $el.funnel && $$.redrawFunnel(); + treemap && $$.updateTreemap(durationForExit); + } + if (!state.resizing && !treemap && ($$.hasPointType() || state.hasRadar)) { + $$.updateCircle(); + } else if ((_c = $$.hasLegendDefsPoint) == null ? void 0 : _c.call($$)) { + $$.data.targets.forEach($$.point("create", this)); + } + $$.hasDataLabel() && !$$.hasArcType(null, ["radar"]) && $$.updateText(); + (_d = $$.redrawTitle) == null ? void 0 : _d.call($$); + initializing && $$.updateTypesElements(); + $$.generateRedrawList(targetsToShow, flow, duration, wth.Subchart); + $$.updateTooltipOnRedraw(); + $$.callPluginHook("$redraw", options, duration); + }, + /** + * Generate redraw list + * @param {object} targets targets data to be shown + * @param {object} flow flow object + * @param {number} duration duration value + * @param {boolean} withSubchart whether or not to show subchart + * @private + */ + generateRedrawList(targets, flow, duration, withSubchart) { + const $$ = this; + const { config, state } = $$; + const shape = $$.getDrawShape(); + if (state.hasAxis) { + config.subchart_show && $$.redrawSubchart(withSubchart, duration, shape); + } + const flowFn = flow && $$.generateFlow({ + targets, + flow, + duration: flow.duration, + shape, + xv: $$.xv.bind($$) + }); + const withTransition = (duration || flowFn) && isTabVisible(); + const redrawList = $$.getRedrawList(shape, flow, flowFn, withTransition); + const afterRedraw = () => { + flowFn && flowFn(); + state.redrawing = false; + callFn(config.onrendered, $$.api); + }; + if (afterRedraw) { + if (withTransition && redrawList.length) { + const waitForDraw = generateWait(); + transition_transition().duration(duration).each(() => { + redrawList.reduce((acc, t1) => acc.concat(t1), []).forEach((t) => waitForDraw.add(t)); + }).call(waitForDraw, afterRedraw); + } else if (!state.transiting) { + afterRedraw(); + } + } + $$.mapToIds($$.data.targets).forEach((id) => { + state.withoutFadeIn[id] = true; + }); + }, + getRedrawList(shape, flow, flowFn, withTransition) { + const $$ = this; + const { config, state: { hasAxis, hasRadar, hasTreemap }, $el: { grid } } = $$; + const { cx, cy, xForText, yForText } = shape.pos; + const list = []; + if (hasAxis) { + if (config.grid_x_lines.length || config.grid_y_lines.length) { + list.push($$.redrawGrid(withTransition)); + } + if (config.regions.length) { + list.push($$.redrawRegion(withTransition)); + } + Object.keys(shape.type).forEach((v) => { + const name = capitalize(v); + const drawFn = shape.type[v]; + if (/^(area|line)$/.test(v) && $$.hasTypeOf(name) || $$.hasType(v)) { + list.push($$[`redraw${name}`](drawFn, withTransition)); + } + }); + !flow && grid.main && list.push($$.updateGridFocus()); + } + if (!$$.hasArcType() || hasRadar) { + notEmpty(config.data_labels) && config.data_labels !== false && list.push($$.redrawText(xForText, yForText, flow, withTransition)); + } + if (($$.hasPointType() || hasRadar) && !$$.isPointFocusOnly()) { + $$.redrawCircle && list.push($$.redrawCircle(cx, cy, withTransition, flowFn)); + } + if (hasTreemap) { + list.push($$.redrawTreemap(withTransition)); + } + return list; + }, + updateAndRedraw(options = {}) { + const $$ = this; + const { config, state } = $$; + let transitions; + options.withTransition = getOption(options, "withTransition", true); + options.withTransform = getOption(options, "withTransform", false); + options.withLegend = getOption(options, "withLegend", false); + options.withUpdateXDomain = true; + options.withUpdateOrgXDomain = true; + options.withTransitionForExit = false; + options.withTransitionForTransform = getOption( + options, + "withTransitionForTransform", + options.withTransition + ); + if (!(options.withLegend && config.legend_show)) { + if (state.hasAxis) { + transitions = $$.axis.generateTransitions( + options.withTransitionForAxis ? config.transition_duration : 0 + ); + } + $$.updateScales(); + $$.updateSvgSize(); + $$.transformAll(options.withTransitionForTransform, transitions); + } + $$.redraw(options, transitions); + } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/ticks.js +const e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2); +function tickSpec(start, stop, count) { + const step = (stop - start) / Math.max(0, count), power = Math.floor(Math.log10(step)), error = step / Math.pow(10, power), factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1; + let i1, i2, inc; + if (power < 0) { + inc = Math.pow(10, -power) / factor; + i1 = Math.round(start * inc); + i2 = Math.round(stop * inc); + if (i1 / inc < start) + ++i1; + if (i2 / inc > stop) + --i2; + inc = -inc; + } else { + inc = Math.pow(10, power) * factor; + i1 = Math.round(start / inc); + i2 = Math.round(stop / inc); + if (i1 * inc < start) + ++i1; + if (i2 * inc > stop) + --i2; + } + if (i2 < i1 && 0.5 <= count && count < 2) + return tickSpec(start, stop, count * 2); + return [i1, i2, inc]; +} +function ticks(start, stop, count) { + stop = +stop, start = +start, count = +count; + if (!(count > 0)) + return []; + if (start === stop) + return [start]; + const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count); + if (!(i2 >= i1)) + return []; + const n = i2 - i1 + 1, ticks2 = new Array(n); + if (reverse) { + if (inc < 0) + for (let i = 0; i < n; ++i) + ticks2[i] = (i2 - i) / -inc; + else + for (let i = 0; i < n; ++i) + ticks2[i] = (i2 - i) * inc; + } else { + if (inc < 0) + for (let i = 0; i < n; ++i) + ticks2[i] = (i1 + i) / -inc; + else + for (let i = 0; i < n; ++i) + ticks2[i] = (i1 + i) * inc; + } + return ticks2; +} +function tickIncrement(start, stop, count) { + stop = +stop, start = +start, count = +count; + return tickSpec(start, stop, count)[2]; +} +function tickStep(start, stop, count) { + stop = +stop, start = +start, count = +count; + const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count); + return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc); +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/ascending.js +function ascending_ascending(a, b) { + return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/descending.js +function descending(a, b) { + return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/bisector.js + + +function bisector(f) { + let compare1, compare2, delta; + if (f.length !== 2) { + compare1 = ascending_ascending; + compare2 = (d, x) => ascending_ascending(f(d), x); + delta = (d, x) => f(d) - x; + } else { + compare1 = f === ascending_ascending || f === descending ? f : bisector_zero; + compare2 = f; + delta = f; + } + function left(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) + return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) < 0) + lo = mid + 1; + else + hi = mid; + } while (lo < hi); + } + return lo; + } + function right(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) + return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) <= 0) + lo = mid + 1; + else + hi = mid; + } while (lo < hi); + } + return lo; + } + function center(a, x, lo = 0, hi = a.length) { + const i = left(a, x, lo, hi - 1); + return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; + } + return { left, center, right }; +} +function bisector_zero() { + return 0; +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/number.js +function number_number(x) { + return x === null ? NaN : +x; +} +function* numbers(values, valueof) { + if (valueof === void 0) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + yield value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + yield value; + } + } + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/bisect.js + + + +const ascendingBisect = bisector(ascending_ascending); +const bisectRight = ascendingBisect.right; +const bisectLeft = ascendingBisect.left; +const bisectCenter = bisector(number_number).center; +/* harmony default export */ var bisect = (bisectRight); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/round.js +/* harmony default export */ function round(a, b) { + return a = +a, b = +b, function(t) { + return Math.round(a * (1 - t) + b * t); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/constant.js +function constants(x) { + return function() { + return x; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/number.js +function src_number_number(x) { + return +x; +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/continuous.js + + + + +var unit = [0, 1]; +function continuous_identity(x) { + return x; +} +function normalize(a, b) { + return (b -= a = +a) ? function(x) { + return (x - a) / b; + } : constants(isNaN(b) ? NaN : 0.5); +} +function clamper(a, b) { + var t; + if (a > b) + t = a, a = b, b = t; + return function(x) { + return Math.max(a, Math.min(b, x)); + }; +} +function bimap(domain, range, interpolate) { + var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1]; + if (d1 < d0) + d0 = normalize(d1, d0), r0 = interpolate(r1, r0); + else + d0 = normalize(d0, d1), r0 = interpolate(r0, r1); + return function(x) { + return r0(d0(x)); + }; +} +function polymap(domain, range, interpolate) { + var j = Math.min(domain.length, range.length) - 1, d = new Array(j), r = new Array(j), i = -1; + if (domain[j] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + while (++i < j) { + d[i] = normalize(domain[i], domain[i + 1]); + r[i] = interpolate(range[i], range[i + 1]); + } + return function(x) { + var i2 = bisect(domain, x, 1, j) - 1; + return r[i2](d[i2](x)); + }; +} +function copy(source, target) { + return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown()); +} +function transformer() { + var domain = unit, range = unit, interpolate = value, transform, untransform, unknown, clamp = continuous_identity, piecewise, output, input; + function rescale() { + var n = Math.min(domain.length, range.length); + if (clamp !== continuous_identity) + clamp = clamper(domain[0], domain[n - 1]); + piecewise = n > 2 ? polymap : bimap; + output = input = null; + return scale; + } + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x))); + } + scale.invert = function(y) { + return clamp(untransform((input || (input = piecewise(range, domain.map(transform), number)))(y))); + }; + scale.domain = function(_) { + return arguments.length ? (domain = Array.from(_, src_number_number), rescale()) : domain.slice(); + }; + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); + }; + scale.rangeRound = function(_) { + return range = Array.from(_), interpolate = round, rescale(); + }; + scale.clamp = function(_) { + return arguments.length ? (clamp = _ ? true : continuous_identity, rescale()) : clamp !== continuous_identity; + }; + scale.interpolate = function(_) { + return arguments.length ? (interpolate = _, rescale()) : interpolate; + }; + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + return function(t, u) { + transform = t, untransform = u; + return rescale(); + }; +} +function continuous() { + return transformer()(continuous_identity, continuous_identity); +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatSpecifier.js +var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; +function formatSpecifier(specifier) { + if (!(match = re.exec(specifier))) + throw new Error("invalid format: " + specifier); + var match; + return new FormatSpecifier({ + fill: match[1], + align: match[2], + sign: match[3], + symbol: match[4], + zero: match[5], + width: match[6], + comma: match[7], + precision: match[8] && match[8].slice(1), + trim: match[9], + type: match[10] + }); +} +formatSpecifier.prototype = FormatSpecifier.prototype; +function FormatSpecifier(specifier) { + this.fill = specifier.fill === void 0 ? " " : specifier.fill + ""; + this.align = specifier.align === void 0 ? ">" : specifier.align + ""; + this.sign = specifier.sign === void 0 ? "-" : specifier.sign + ""; + this.symbol = specifier.symbol === void 0 ? "" : specifier.symbol + ""; + this.zero = !!specifier.zero; + this.width = specifier.width === void 0 ? void 0 : +specifier.width; + this.comma = !!specifier.comma; + this.precision = specifier.precision === void 0 ? void 0 : +specifier.precision; + this.trim = !!specifier.trim; + this.type = specifier.type === void 0 ? "" : specifier.type + ""; +} +FormatSpecifier.prototype.toString = function() { + return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type; +}; + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatDecimal.js +/* harmony default export */ function formatDecimal(x) { + return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString("en").replace(/,/g, "") : x.toString(10); +} +function formatDecimalParts(x, p) { + if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) + return null; + var i, coefficient = x.slice(0, i); + return [ + coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, + +x.slice(i + 1) + ]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/exponent.js + +/* harmony default export */ function exponent(x) { + return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/precisionPrefix.js + +/* harmony default export */ function precisionPrefix(step, value) { + return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatGroup.js +/* harmony default export */ function formatGroup(grouping, thousands) { + return function(value, width) { + var i = value.length, t = [], j = 0, g = grouping[0], length = 0; + while (i > 0 && g > 0) { + if (length + g + 1 > width) + g = Math.max(1, width - length); + t.push(value.substring(i -= g, i + g)); + if ((length += g + 1) > width) + break; + g = grouping[j = (j + 1) % grouping.length]; + } + return t.reverse().join(thousands); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatNumerals.js +/* harmony default export */ function formatNumerals(numerals) { + return function(value) { + return value.replace(/[0-9]/g, function(i) { + return numerals[+i]; + }); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatTrim.js +/* harmony default export */ function formatTrim(s) { + out: + for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) { + switch (s[i]) { + case ".": + i0 = i1 = i; + break; + case "0": + if (i0 === 0) + i0 = i; + i1 = i; + break; + default: + if (!+s[i]) + break out; + if (i0 > 0) + i0 = 0; + break; + } + } + return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatPrefixAuto.js + +var prefixExponent; +/* harmony default export */ function formatPrefixAuto(x, p) { + var d = formatDecimalParts(x, p); + if (!d) + return x + ""; + var coefficient = d[0], exponent = d[1], i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, n = coefficient.length; + return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join("0") : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatRounded.js + +/* harmony default export */ function formatRounded(x, p) { + var d = formatDecimalParts(x, p); + if (!d) + return x + ""; + var coefficient = d[0], exponent = d[1]; + return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join("0"); +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatTypes.js + + + +/* harmony default export */ var formatTypes = ({ + "%": (x, p) => (x * 100).toFixed(p), + "b": (x) => Math.round(x).toString(2), + "c": (x) => x + "", + "d": formatDecimal, + "e": (x, p) => x.toExponential(p), + "f": (x, p) => x.toFixed(p), + "g": (x, p) => x.toPrecision(p), + "o": (x) => Math.round(x).toString(8), + "p": (x, p) => formatRounded(x * 100, p), + "r": formatRounded, + "s": formatPrefixAuto, + "X": (x) => Math.round(x).toString(16).toUpperCase(), + "x": (x) => Math.round(x).toString(16) +}); + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/identity.js +/* harmony default export */ function src_identity(x) { + return x; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/locale.js + + + + + + + + +var map = Array.prototype.map, prefixes = ["y", "z", "a", "f", "p", "n", "\xB5", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"]; +/* harmony default export */ function src_locale(locale) { + var group = locale.grouping === void 0 || locale.thousands === void 0 ? src_identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""), currencyPrefix = locale.currency === void 0 ? "" : locale.currency[0] + "", currencySuffix = locale.currency === void 0 ? "" : locale.currency[1] + "", decimal = locale.decimal === void 0 ? "." : locale.decimal + "", numerals = locale.numerals === void 0 ? src_identity : formatNumerals(map.call(locale.numerals, String)), percent = locale.percent === void 0 ? "%" : locale.percent + "", minus = locale.minus === void 0 ? "\u2212" : locale.minus + "", nan = locale.nan === void 0 ? "NaN" : locale.nan + ""; + function newFormat(specifier) { + specifier = formatSpecifier(specifier); + var fill = specifier.fill, align = specifier.align, sign = specifier.sign, symbol = specifier.symbol, zero = specifier.zero, width = specifier.width, comma = specifier.comma, precision = specifier.precision, trim = specifier.trim, type = specifier.type; + if (type === "n") + comma = true, type = "g"; + else if (!formatTypes[type]) + precision === void 0 && (precision = 12), trim = true, type = "g"; + if (zero || fill === "0" && align === "=") + zero = true, fill = "0", align = "="; + var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : ""; + var formatType = formatTypes[type], maybeSuffix = /[defgprs%]/.test(type); + precision = precision === void 0 ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision)); + function format(value) { + var valuePrefix = prefix, valueSuffix = suffix, i, n, c; + if (type === "c") { + valueSuffix = formatType(value) + valueSuffix; + value = ""; + } else { + value = +value; + var valueNegative = value < 0 || 1 / value < 0; + value = isNaN(value) ? nan : formatType(Math.abs(value), precision); + if (trim) + value = formatTrim(value); + if (valueNegative && +value === 0 && sign !== "+") + valueNegative = false; + valuePrefix = (valueNegative ? sign === "(" ? sign : minus : sign === "-" || sign === "(" ? "" : sign) + valuePrefix; + valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : ""); + if (maybeSuffix) { + i = -1, n = value.length; + while (++i < n) { + if (c = value.charCodeAt(i), 48 > c || c > 57) { + valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix; + value = value.slice(0, i); + break; + } + } + } + } + if (comma && !zero) + value = group(value, Infinity); + var length = valuePrefix.length + value.length + valueSuffix.length, padding = length < width ? new Array(width - length + 1).join(fill) : ""; + if (comma && zero) + value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = ""; + switch (align) { + case "<": + value = valuePrefix + value + valueSuffix + padding; + break; + case "=": + value = valuePrefix + padding + value + valueSuffix; + break; + case "^": + value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); + break; + default: + value = padding + valuePrefix + value + valueSuffix; + break; + } + return numerals(value); + } + format.toString = function() { + return specifier + ""; + }; + return format; + } + function formatPrefix(specifier, value) { + var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, k = Math.pow(10, -e), prefix = prefixes[8 + e / 3]; + return function(value2) { + return f(k * value2) + prefix; + }; + } + return { + format: newFormat, + formatPrefix + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/defaultLocale.js + +var defaultLocale_locale; +var defaultLocale_format; +var formatPrefix; +defaultLocale_defaultLocale({ + thousands: ",", + grouping: [3], + currency: ["$", ""] +}); +function defaultLocale_defaultLocale(definition) { + defaultLocale_locale = src_locale(definition); + defaultLocale_format = defaultLocale_locale.format; + formatPrefix = defaultLocale_locale.formatPrefix; + return defaultLocale_locale; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/precisionRound.js + +/* harmony default export */ function precisionRound(step, max) { + step = Math.abs(step), max = Math.abs(max) - step; + return Math.max(0, exponent(max) - exponent(step)) + 1; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/precisionFixed.js + +/* harmony default export */ function precisionFixed(step) { + return Math.max(0, -exponent(Math.abs(step))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/tickFormat.js + + +function tickFormat(start, stop, count, specifier) { + var step = tickStep(start, stop, count), precision; + specifier = formatSpecifier(specifier == null ? ",f" : specifier); + switch (specifier.type) { + case "s": { + var value = Math.max(Math.abs(start), Math.abs(stop)); + if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) + specifier.precision = precision; + return formatPrefix(specifier, value); + } + case "": + case "e": + case "g": + case "p": + case "r": { + if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) + specifier.precision = precision - (specifier.type === "e"); + break; + } + case "f": + case "%": { + if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) + specifier.precision = precision - (specifier.type === "%") * 2; + break; + } + } + return defaultLocale_format(specifier); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/linear.js + + + + +function linearish(scale) { + var domain = scale.domain; + scale.ticks = function(count) { + var d = domain(); + return ticks(d[0], d[d.length - 1], count == null ? 10 : count); + }; + scale.tickFormat = function(count, specifier) { + var d = domain(); + return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier); + }; + scale.nice = function(count) { + if (count == null) + count = 10; + var d = domain(); + var i0 = 0; + var i1 = d.length - 1; + var start = d[i0]; + var stop = d[i1]; + var prestep; + var step; + var maxIter = 10; + if (stop < start) { + step = start, start = stop, stop = step; + step = i0, i0 = i1, i1 = step; + } + while (maxIter-- > 0) { + step = tickIncrement(start, stop, count); + if (step === prestep) { + d[i0] = start; + d[i1] = stop; + return domain(d); + } else if (step > 0) { + start = Math.floor(start / step) * step; + stop = Math.ceil(stop / step) * step; + } else if (step < 0) { + start = Math.ceil(start * step) / step; + stop = Math.floor(stop * step) / step; + } else { + break; + } + prestep = step; + } + return scale; + }; + return scale; +} +function linear_linear() { + var scale = continuous(); + scale.copy = function() { + return copy(scale, linear_linear()); + }; + initRange.apply(scale, arguments); + return linearish(scale); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/symlog.js + + + +function transformSymlog(c) { + return function(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / c)); + }; +} +function transformSymexp(c) { + return function(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * c; + }; +} +function symlogish(transform) { + var c = 1, scale = transform(transformSymlog(c), transformSymexp(c)); + scale.constant = function(_) { + return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c; + }; + return linearish(scale); +} +function symlog() { + var scale = symlogish(transformer()); + scale.copy = function() { + return copy(scale, symlog()).constant(scale.constant()); + }; + return initRange.apply(scale, arguments); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/nice.js +function nice(domain, interval) { + domain = domain.slice(); + var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], t; + if (x1 < x0) { + t = i0, i0 = i1, i1 = t; + t = x0, x0 = x1, x1 = t; + } + domain[i0] = interval.floor(x0); + domain[i1] = interval.ceil(x1); + return domain; +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/log.js + + + + + +function transformLog(x) { + return Math.log(x); +} +function transformExp(x) { + return Math.exp(x); +} +function transformLogn(x) { + return -Math.log(-x); +} +function transformExpn(x) { + return -Math.exp(-x); +} +function pow10(x) { + return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x; +} +function powp(base) { + return base === 10 ? pow10 : base === Math.E ? Math.exp : (x) => Math.pow(base, x); +} +function logp(base) { + return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), (x) => Math.log(x) / base); +} +function reflect(f) { + return (x, k) => -f(-x, k); +} +function loggish(transform) { + const scale = transform(transformLog, transformExp); + const domain = scale.domain; + let base = 10; + let logs; + let pows; + function rescale() { + logs = logp(base), pows = powp(base); + if (domain()[0] < 0) { + logs = reflect(logs), pows = reflect(pows); + transform(transformLogn, transformExpn); + } else { + transform(transformLog, transformExp); + } + return scale; + } + scale.base = function(_) { + return arguments.length ? (base = +_, rescale()) : base; + }; + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + scale.ticks = (count) => { + const d = domain(); + let u = d[0]; + let v = d[d.length - 1]; + const r = v < u; + if (r) + [u, v] = [v, u]; + let i = logs(u); + let j = logs(v); + let k; + let t; + const n = count == null ? 10 : +count; + let z = []; + if (!(base % 1) && j - i < n) { + i = Math.floor(i), j = Math.ceil(j); + if (u > 0) + for (; i <= j; ++i) { + for (k = 1; k < base; ++k) { + t = i < 0 ? k / pows(-i) : k * pows(i); + if (t < u) + continue; + if (t > v) + break; + z.push(t); + } + } + else + for (; i <= j; ++i) { + for (k = base - 1; k >= 1; --k) { + t = i > 0 ? k / pows(-i) : k * pows(i); + if (t < u) + continue; + if (t > v) + break; + z.push(t); + } + } + if (z.length * 2 < n) + z = ticks(u, v, n); + } else { + z = ticks(i, j, Math.min(j - i, n)).map(pows); + } + return r ? z.reverse() : z; + }; + scale.tickFormat = (count, specifier) => { + if (count == null) + count = 10; + if (specifier == null) + specifier = base === 10 ? "s" : ","; + if (typeof specifier !== "function") { + if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) + specifier.trim = true; + specifier = defaultLocale_format(specifier); + } + if (count === Infinity) + return specifier; + const k = Math.max(1, base * count / scale.ticks().length); + return (d) => { + let i = d / pows(Math.round(logs(d))); + if (i * base < base - 0.5) + i *= base; + return i <= k ? specifier(d) : ""; + }; + }; + scale.nice = () => { + return domain(nice(domain(), { + floor: (x) => pows(Math.floor(logs(x))), + ceil: (x) => pows(Math.ceil(logs(x))) + })); + }; + return scale; +} +function log() { + const scale = loggish(transformer()).domain([1, 10]); + scale.copy = () => copy(scale, log()).base(scale.base()); + initRange.apply(scale, arguments); + return scale; +} + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/millisecond.js + +const millisecond = timeInterval(() => { +}, (date, step) => { + date.setTime(+date + step); +}, (start, end) => { + return end - start; +}); +millisecond.every = (k) => { + k = Math.floor(k); + if (!isFinite(k) || !(k > 0)) + return null; + if (!(k > 1)) + return millisecond; + return timeInterval((date) => { + date.setTime(Math.floor(date / k) * k); + }, (date, step) => { + date.setTime(+date + step * k); + }, (start, end) => { + return (end - start) / k; + }); +}; +const milliseconds = millisecond.range; + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/second.js + + +const second = timeInterval((date) => { + date.setTime(date - date.getMilliseconds()); +}, (date, step) => { + date.setTime(+date + step * durationSecond); +}, (start, end) => { + return (end - start) / durationSecond; +}, (date) => { + return date.getUTCSeconds(); +}); +const seconds = second.range; + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/minute.js + + +const timeMinute = timeInterval((date) => { + date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond); +}, (date, step) => { + date.setTime(+date + step * durationMinute); +}, (start, end) => { + return (end - start) / durationMinute; +}, (date) => { + return date.getMinutes(); +}); +const timeMinutes = timeMinute.range; +const utcMinute = timeInterval((date) => { + date.setUTCSeconds(0, 0); +}, (date, step) => { + date.setTime(+date + step * durationMinute); +}, (start, end) => { + return (end - start) / durationMinute; +}, (date) => { + return date.getUTCMinutes(); +}); +const utcMinutes = utcMinute.range; + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/hour.js + + +const timeHour = timeInterval((date) => { + date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute); +}, (date, step) => { + date.setTime(+date + step * durationHour); +}, (start, end) => { + return (end - start) / durationHour; +}, (date) => { + return date.getHours(); +}); +const timeHours = timeHour.range; +const utcHour = timeInterval((date) => { + date.setUTCMinutes(0, 0, 0); +}, (date, step) => { + date.setTime(+date + step * durationHour); +}, (start, end) => { + return (end - start) / durationHour; +}, (date) => { + return date.getUTCHours(); +}); +const utcHours = utcHour.range; + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/month.js + +const timeMonth = timeInterval((date) => { + date.setDate(1); + date.setHours(0, 0, 0, 0); +}, (date, step) => { + date.setMonth(date.getMonth() + step); +}, (start, end) => { + return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12; +}, (date) => { + return date.getMonth(); +}); +const timeMonths = timeMonth.range; +const utcMonth = timeInterval((date) => { + date.setUTCDate(1); + date.setUTCHours(0, 0, 0, 0); +}, (date, step) => { + date.setUTCMonth(date.getUTCMonth() + step); +}, (start, end) => { + return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12; +}, (date) => { + return date.getUTCMonth(); +}); +const utcMonths = utcMonth.range; + +;// CONCATENATED MODULE: ./node_modules/d3-time/src/ticks.js + + + + + + + + + + +function ticker(year, month, week, day, hour, minute) { + const tickIntervals = [ + [second, 1, durationSecond], + [second, 5, 5 * durationSecond], + [second, 15, 15 * durationSecond], + [second, 30, 30 * durationSecond], + [minute, 1, durationMinute], + [minute, 5, 5 * durationMinute], + [minute, 15, 15 * durationMinute], + [minute, 30, 30 * durationMinute], + [hour, 1, durationHour], + [hour, 3, 3 * durationHour], + [hour, 6, 6 * durationHour], + [hour, 12, 12 * durationHour], + [day, 1, durationDay], + [day, 2, 2 * durationDay], + [week, 1, durationWeek], + [month, 1, durationMonth], + [month, 3, 3 * durationMonth], + [year, 1, durationYear] + ]; + function ticks(start, stop, count) { + const reverse = stop < start; + if (reverse) + [start, stop] = [stop, start]; + const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count); + const ticks2 = interval ? interval.range(start, +stop + 1) : []; + return reverse ? ticks2.reverse() : ticks2; + } + function tickInterval(start, stop, count) { + const target = Math.abs(stop - start) / count; + const i = bisector(([, , step2]) => step2).right(tickIntervals, target); + if (i === tickIntervals.length) + return year.every(tickStep(start / durationYear, stop / durationYear, count)); + if (i === 0) + return millisecond.every(Math.max(tickStep(start, stop, count), 1)); + const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i]; + return t.every(step); + } + return [ticks, tickInterval]; +} +const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute); +const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute); + + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/time.js + + + + + +function time_date(t) { + return new Date(t); +} +function time_number(t) { + return t instanceof Date ? +t : +/* @__PURE__ */ new Date(+t); +} +function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) { + var scale = continuous(), invert = scale.invert, domain = scale.domain; + var formatMillisecond = format(".%L"), formatSecond = format(":%S"), formatMinute = format("%I:%M"), formatHour = format("%I %p"), formatDay = format("%a %d"), formatWeek = format("%b %d"), formatMonth = format("%B"), formatYear = format("%Y"); + function tickFormat(date2) { + return (second(date2) < date2 ? formatMillisecond : minute(date2) < date2 ? formatSecond : hour(date2) < date2 ? formatMinute : day(date2) < date2 ? formatHour : month(date2) < date2 ? week(date2) < date2 ? formatDay : formatWeek : year(date2) < date2 ? formatMonth : formatYear)(date2); + } + scale.invert = function(y) { + return new Date(invert(y)); + }; + scale.domain = function(_) { + return arguments.length ? domain(Array.from(_, time_number)) : domain().map(time_date); + }; + scale.ticks = function(interval) { + var d = domain(); + return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval); + }; + scale.tickFormat = function(count, specifier) { + return specifier == null ? tickFormat : format(specifier); + }; + scale.nice = function(interval) { + var d = domain(); + if (!interval || typeof interval.range !== "function") + interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval); + return interval ? domain(nice(d, interval)) : scale; + }; + scale.copy = function() { + return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format)); + }; + return scale; +} +function time() { + return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute, second, timeFormat).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/utcTime.js + + + + +function utcTime() { + return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcSunday, utcDay, utcHour, utcMinute, second, utcFormat).domain([Date.UTC(2e3, 0, 1), Date.UTC(2e3, 0, 2)]), arguments); +} + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/scale.ts + + +function getScale(type = "linear", min = 0, max = 1) { + const scale = { + linear: linear_linear, + log: symlog, + _log: log, + time: time, + utc: utcTime + }[type](); + scale.type = type; + /_?log/.test(type) && scale.clamp(true); + return scale.range([min, max]); +} +/* harmony default export */ var scale = ({ + /** + * Get x Axis scale function + * @param {number} min Min range value + * @param {number} max Max range value + * @param {Array} domain Domain value + * @param {Function} offset The offset getter to be sum + * @returns {Function} scale + * @private + */ + getXScale(min, max, domain, offset) { + const $$ = this; + const scale = $$.state.loading !== "append" && $$.scale.zoom || getScale($$.axis.getAxisType("x"), min, max); + return $$.getCustomizedXScale( + domain ? scale.domain(domain) : scale, + offset + ); + }, + /** + * Get y Axis scale function + * @param {string} id Axis id: 'y' or 'y2' + * @param {number} min Min value + * @param {number} max Max value + * @param {Array} domain Domain value + * @returns {Function} Scale function + * @private + */ + getYScale(id, min, max, domain) { + const $$ = this; + const scale = getScale($$.axis.getAxisType(id), min, max); + domain && scale.domain(domain); + return scale; + }, + /** + * Get y Axis scale + * @param {string} id Axis id + * @param {boolean} isSub Weather is sub Axis + * @returns {Function} Scale function + * @private + */ + getYScaleById(id, isSub = false) { + var _a; + const isY2 = ((_a = this.axis) == null ? void 0 : _a.getId(id)) === "y2"; + const key = isSub ? isY2 ? "subY2" : "subY" : isY2 ? "y2" : "y"; + return this.scale[key]; + }, + /** + * Get customized x axis scale + * @param {d3.scaleLinear|d3.scaleTime} scaleValue Scale function + * @param {Function} offsetValue Offset getter to be sum + * @returns {Function} Scale function + * @private + */ + getCustomizedXScale(scaleValue, offsetValue) { + const $$ = this; + const offset = offsetValue || (() => $$.axis.x.tickOffset()); + const isInverted = $$.config.axis_x_inverted; + const scale = function(d, raw) { + const v = scaleValue(d) + offset(); + return raw ? v : Math.ceil(v); + }; + for (const key in scaleValue) { + scale[key] = scaleValue[key]; + } + scale.orgDomain = () => scaleValue.domain(); + scale.orgScale = () => scaleValue; + if ($$.axis.isCategorized()) { + scale.domain = function(domainValue) { + let domain = domainValue; + if (!arguments.length) { + domain = this.orgDomain(); + return isInverted ? [domain[0] + 1, domain[1]] : [domain[0], domain[1] + 1]; + } + scaleValue.domain(domain); + return scale; + }; + } + return scale; + }, + /** + * Update scale + * @param {boolean} isInit Param is given at the init rendering + * @param {boolean} updateXDomain If update x domain + * @private + */ + updateScales(isInit, updateXDomain = true) { + var _a, _b; + const $$ = this; + const { + axis, + config, + format, + org, + scale, + state: { current, width, height, width2, height2, hasAxis, hasTreemap } + } = $$; + if (hasAxis) { + const isRotated = config.axis_rotated; + const resettedPadding = $$.getResettedPadding(1); + const min = { + x: isRotated ? resettedPadding : 0, + y: isRotated ? 0 : height, + subX: isRotated ? 1 : 0, + subY: isRotated ? 0 : height2 + }; + const max = { + x: isRotated ? height : width, + y: isRotated ? width : resettedPadding, + subX: isRotated ? height : width, + subY: isRotated ? width2 : 1 + }; + const xDomain = updateXDomain && ((_a = scale.x) == null ? void 0 : _a.orgDomain()); + const xSubDomain = updateXDomain && org.xDomain; + scale.x = $$.getXScale(min.x, max.x, xDomain, () => axis.x.tickOffset()); + scale.subX = $$.getXScale(min.x, max.x, xSubDomain, (d) => { + var _a2; + return d % 1 ? 0 : ((_a2 = axis.subX) != null ? _a2 : axis.x).tickOffset(); + }); + format.xAxisTick = axis.getXAxisTickFormat(); + format.subXAxisTick = axis.getXAxisTickFormat(true); + axis.setAxis("x", scale.x, config.axis_x_tick_outer, isInit); + if (config.subchart_show) { + axis.setAxis("subX", scale.subX, config.axis_x_tick_outer, isInit); + } + scale.y = $$.getYScale( + "y", + min.y, + max.y, + scale.y ? scale.y.domain() : config.axis_y_default + ); + scale.subY = $$.getYScale( + "y", + min.subY, + max.subY, + scale.subY ? scale.subY.domain() : config.axis_y_default + ); + axis.setAxis("y", scale.y, config.axis_y_tick_outer, isInit); + if (config.axis_y2_show) { + scale.y2 = $$.getYScale( + "y2", + min.y, + max.y, + scale.y2 ? scale.y2.domain() : config.axis_y2_default + ); + scale.subY2 = $$.getYScale( + "y2", + min.subY, + max.subY, + scale.subY2 ? scale.subY2.domain() : config.axis_y2_default + ); + axis.setAxis("y2", scale.y2, config.axis_y2_tick_outer, isInit); + } + } else if (hasTreemap) { + const padding = $$.getCurrentPadding(); + scale.x = linear_linear().rangeRound([padding.left, current.width - padding.right]); + scale.y = linear_linear().rangeRound([padding.top, current.height - padding.bottom]); + } else { + (_b = $$.updateArc) == null ? void 0 : _b.call($$); + } + }, + /** + * Get the zoom or unzoomed scaled value + * @param {Date|number|object} d Data value + * @returns {number|null} + * @private + */ + xx(d) { + const $$ = this; + const { config, scale: { x, zoom } } = $$; + const fn = config.zoom_enabled && zoom ? zoom : x; + return d ? fn(isValue(d.x) ? d.x : d) : null; + }, + xv(d) { + const $$ = this; + const { axis, config, scale: { x, zoom } } = $$; + const fn = config.zoom_enabled && zoom ? zoom : x; + let value = $$.getBaseValue(d); + if (axis.isTimeSeries()) { + value = parseDate.call($$, value); + } else if (axis.isCategorized() && isString(value)) { + value = config.axis_x_categories.indexOf(value); + } + return Math.ceil(fn(value)); + }, + yv(d) { + const $$ = this; + const { scale: { y, y2 } } = $$; + const yScale = d.axis && d.axis === "y2" ? y2 : y; + return Math.ceil(yScale($$.getBaseValue(d))); + }, + subxx(d) { + return d ? this.scale.subX(d.x) : null; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/size.ts + + + + +/* harmony default export */ var internals_size = ({ + /** + * Update container size + * @private + */ + setContainerSize() { + const $$ = this; + const { state } = $$; + state.current.width = $$.getCurrentWidth(); + state.current.height = $$.getCurrentHeight(); + }, + getCurrentWidth() { + const $$ = this; + return $$.config.size_width || $$.getParentWidth(); + }, + getCurrentHeight() { + const $$ = this; + const { config } = $$; + const h = config.size_height || $$.getParentHeight(); + return h > 0 ? h : 320 / ($$.hasType("gauge") && !config.gauge_fullCircle ? 2 : 1); + }, + /** + * Get the parent rect element's size + * @param {string} key property/attribute name + * @returns {number} + * @private + */ + getParentRectValue(key) { + const offsetName = `offset${capitalize(key)}`; + let parent = this.$el.chart.node(); + let v = 0; + while (v < 30 && parent && parent.tagName !== "BODY") { + try { + v = parent.getBoundingClientRect()[key]; + } catch (e) { + if (offsetName in parent) { + v = parent[offsetName]; + } + } + parent = parent.parentNode; + } + const bodySize = browser_doc.body[offsetName]; + v > bodySize && (v = bodySize); + return v; + }, + getParentWidth() { + return this.getParentRectValue("width"); + }, + getParentHeight() { + const h = this.$el.chart.style("height"); + let height = 0; + if (h) { + height = /px$/.test(h) ? parseInt(h, 10) : this.getParentRectValue("height"); + } + return height; + }, + getSvgLeft(withoutRecompute) { + const $$ = this; + const { config, state: { hasAxis }, $el } = $$; + const isRotated = config.axis_rotated; + const hasLeftAxisRect = isRotated || !isRotated && !config.axis_y_inner; + const leftAxisClass = isRotated ? $AXIS.axisX : $AXIS.axisY; + const leftAxis = $el.main.select(`.${leftAxisClass}`).node(); + const leftLabel = hasAxis && config[`axis_${isRotated ? "x" : "y"}_label`]; + let labelWidth = 0; + if (hasAxis && (isString(leftLabel) || isString(leftLabel.text) || /^inner-/.test(leftLabel == null ? void 0 : leftLabel.position))) { + const label = $el.main.select(`.${leftAxisClass}-label`); + if (!label.empty()) { + labelWidth = label.node().getBoundingClientRect().left; + } + } + const svgRect = leftAxis && hasLeftAxisRect ? leftAxis.getBoundingClientRect() : { right: 0 }; + const chartRectLeft = $el.chart.node().getBoundingClientRect().left + labelWidth; + const hasArc = $$.hasArcType(); + const svgLeft = svgRect.right - chartRectLeft - (hasArc ? 0 : $$.getCurrentPaddingByDirection("left", withoutRecompute)); + return svgLeft > 0 ? svgLeft : 0; + }, + updateDimension(withoutAxis) { + var _a; + const $$ = this; + const { config, state: { hasAxis }, $el } = $$; + if (hasAxis && !withoutAxis && $$.axis.x && config.axis_rotated) { + (_a = $$.axis.subX) == null ? void 0 : _a.create($el.axis.subX); + } + $$.updateScales(withoutAxis); + $$.updateSvgSize(); + $$.transformAll(false); + }, + updateSvgSize() { + const $$ = this; + const { state: { clip, current, hasAxis, width, height }, $el: { svg } } = $$; + svg.attr("width", current.width).attr("height", current.height); + if (hasAxis) { + const brush = svg.select(`.${$SUBCHART.brush} .overlay`); + const brushSize = { width: 0, height: 0 }; + if (brush.size()) { + brushSize.width = +brush.attr("width"); + brushSize.height = +brush.attr("height"); + } + svg.selectAll([`#${clip.id}`, `#${clip.idGrid}`]).select("rect").attr("width", width).attr("height", height); + svg.select(`#${clip.idXAxis}`).select("rect").call($$.setXAxisClipPath.bind($$)); + svg.select(`#${clip.idYAxis}`).select("rect").call($$.setYAxisClipPath.bind($$)); + clip.idSubchart && svg.select(`#${clip.idSubchart}`).select("rect").attr("width", width).attr("height", brushSize.height); + } + }, + /** + * Get padding by the direction. + * @param {string} type "top" | "bottom" | "left" | "right" + * @param {boolean} [withoutRecompute=false] If set true, do not recompute the padding value. + * @param {boolean} [withXAxisTickTextOverflow=false] If set true, calculate x axis tick text overflow. + * @returns {number} padding value + * @private + */ + getCurrentPaddingByDirection(type, withoutRecompute = false, withXAxisTickTextOverflow = false) { + var _a; + const $$ = this; + const { config, $el, state: { hasAxis } } = $$; + const isRotated = config.axis_rotated; + const isFitPadding = ((_a = config.padding) == null ? void 0 : _a.mode) === "fit"; + const paddingOption = isNumber(config[`padding_${type}`]) ? config[`padding_${type}`] : void 0; + const axisId = hasAxis ? { + top: isRotated ? "y2" : null, + bottom: isRotated ? "y" : "x", + left: isRotated ? "x" : "y", + right: isRotated ? null : "y2" + }[type] : null; + const isLeftRight = /^(left|right)$/.test(type); + const isAxisInner = axisId && config[`axis_${axisId}_inner`]; + const isAxisShow = axisId && config[`axis_${axisId}_show`]; + const axesLen = axisId ? config[`axis_${axisId}_axes`].length : 0; + let axisSize = axisId ? isLeftRight ? $$.getAxisWidthByAxisId(axisId, withoutRecompute) : $$.getHorizontalAxisHeight(axisId) : 0; + const defaultPadding = 20; + let gap = 0; + if (!isFitPadding && isLeftRight) { + axisSize = ceil10(axisSize); + } + let padding = hasAxis && isLeftRight && (isAxisInner || isUndefined(paddingOption) && !isAxisShow) ? 0 : isFitPadding ? (isAxisShow ? axisSize : 0) + (paddingOption != null ? paddingOption : 0) : isUndefined(paddingOption) ? axisSize : paddingOption; + if (isLeftRight && hasAxis) { + if (axisId && (isFitPadding || isAxisInner) && config[`axis_${axisId}_label`].text) { + padding += $$.axis.getAxisLabelPosition(axisId).isOuter ? defaultPadding : 0; + } + if (type === "right") { + padding += isRotated ? !isFitPadding && isUndefined(paddingOption) ? 10 : 2 : !isAxisShow || isAxisInner ? isFitPadding ? 2 : 1 : 0; + padding += withXAxisTickTextOverflow ? $$.axis.getXAxisTickTextY2Overflow(defaultPadding) : 0; + } else if (type === "left" && isRotated && isUndefined(paddingOption)) { + padding = !config.axis_x_show ? 1 : isFitPadding ? axisSize : Math.max(axisSize, 40); + } + } else { + if (type === "top") { + if ($el.title && $el.title.node()) { + padding += $$.getTitlePadding(); + } + gap = isRotated && !isAxisInner ? axesLen : 0; + } else if (type === "bottom" && hasAxis && isRotated && !isAxisShow) { + padding += 1; + } + } + return padding + axisSize * axesLen - gap; + }, + getCurrentPadding(withXAxisTickTextOverflow = false) { + const $$ = this; + const [top, bottom, left, right] = ["top", "bottom", "left", "right"].map((v) => $$.getCurrentPaddingByDirection(v, null, withXAxisTickTextOverflow)); + return { top, bottom, left, right }; + }, + /** + * Get resetted padding values when 'padding=false' option is set + * https://github.com/naver/billboard.js/issues/2367 + * @param {number|object} v Padding values to be resetted + * @returns {number|object} Padding value + * @private + */ + getResettedPadding(v) { + const $$ = this; + const { config } = $$; + const isNum = isNumber(v); + let p = isNum ? 0 : {}; + if (config.padding === false) { + !isNum && Object.keys(v).forEach((key) => { + p[key] = !isEmpty(config.data_labels) && config.data_labels !== false && key === "top" ? v[key] : 0; + }); + } else { + p = v; + } + return p; + }, + /** + * Update size values + * @param {boolean} isInit If is called at initialization + * @private + */ + updateSizes(isInit) { + var _a, _b, _c, _d, _e; + const $$ = this; + const { config, state, $el: { legend } } = $$; + const isRotated = config.axis_rotated; + const isNonAxis = $$.hasArcType() || state.hasFunnel || state.hasTreemap; + const isFitPadding = ((_a = config.padding) == null ? void 0 : _a.mode) === "fit"; + !isInit && $$.setContainerSize(); + const currLegend = { + width: legend ? $$.getLegendWidth() : 0, + height: legend ? $$.getLegendHeight() : 0 + }; + if (!isNonAxis && config.axis_x_show && config.axis_x_tick_autorotate) { + $$.updateXAxisTickClip(); + } + const legendSize = { + right: config.legend_show && state.isLegendRight ? $$.getLegendWidth() + (isFitPadding ? 0 : 20) : 0, + bottom: !config.legend_show || state.isLegendRight || state.isLegendInset ? 0 : currLegend.height + }; + const xAxisHeight = isRotated || isNonAxis ? 0 : $$.getHorizontalAxisHeight("x"); + const subchartXAxisHeight = config.subchart_axis_x_show && config.subchart_axis_x_tick_text_show ? xAxisHeight : 30; + const subchartHeight = config.subchart_show && !isNonAxis ? config.subchart_size_height + subchartXAxisHeight : 0; + const gaugeHeight = $$.hasType("gauge") && config.arc_needle_show && !config.gauge_fullCircle && !config.gauge_label_show ? 10 : 0; + const padding = $$.getCurrentPadding(true); + state.margin = !isNonAxis && isRotated ? { + top: padding.top, + right: isNonAxis ? 0 : padding.right + legendSize.right, + bottom: legendSize.bottom + padding.bottom, + left: subchartHeight + (isNonAxis ? 0 : padding.left) + } : { + top: (isFitPadding ? 0 : 4) + padding.top, + // for top tick text + right: isNonAxis ? 0 : padding.right + legendSize.right, + bottom: gaugeHeight + subchartHeight + legendSize.bottom + padding.bottom, + left: isNonAxis ? 0 : padding.left + }; + state.margin = $$.getResettedPadding(state.margin); + state.margin2 = isRotated ? { + top: state.margin.top, + right: NaN, + bottom: 20 + legendSize.bottom, + left: $$.state.rotatedPadding.left + } : { + top: state.current.height - subchartHeight - legendSize.bottom, + right: NaN, + bottom: subchartXAxisHeight + legendSize.bottom, + left: state.margin.left + }; + state.margin3 = { + top: 0, + right: NaN, + bottom: 0, + left: 0 + }; + (_b = $$.updateSizeForLegend) == null ? void 0 : _b.call($$, currLegend); + state.width = state.current.width - state.margin.left - state.margin.right; + state.height = state.current.height - state.margin.top - state.margin.bottom; + if (state.width < 0) { + state.width = 0; + } + if (state.height < 0) { + state.height = 0; + } + state.width2 = isRotated ? state.margin.left - state.rotatedPadding.left - state.rotatedPadding.right : state.width; + state.height2 = isRotated ? state.height : state.current.height - state.margin2.top - state.margin2.bottom; + if (state.width2 < 0) { + state.width2 = 0; + } + if (state.height2 < 0) { + state.height2 = 0; + } + if ($$.hasArcType()) { + const hasGauge = $$.hasType("gauge"); + const isLegendRight = config.legend_show && state.isLegendRight; + const textWidth = (_c = state.hasRadar && $$.cache.get(KEY.radarTextWidth)) != null ? _c : 0; + state.arcWidth = state.width - (isLegendRight ? currLegend.width + 10 : 0) - textWidth; + state.arcHeight = state.height - (isLegendRight && !hasGauge ? 0 : 10); + if ((_d = config.arc_rangeText_values) == null ? void 0 : _d.length) { + if (hasGauge) { + state.arcWidth -= 25; + state.arcHeight -= 10; + state.margin.left += 10; + } else { + state.arcHeight -= 20; + state.margin.top += 10; + } + } + if (hasGauge && !config.gauge_fullCircle) { + state.arcHeight += state.height - $$.getPaddingBottomForGauge(); + } + (_e = $$.updateRadius) == null ? void 0 : _e.call($$); + } + if (state.isLegendRight && isNonAxis) { + state.margin3.left = state.arcWidth / 2 + state.radiusExpanded * 1.1; + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/style.ts + + +/* harmony default export */ var internals_style = ({ + /** + * Add props color css rule to given selector + * @param {boolean} withShape Set shpes' prefix class + * @param {string} selector CSS selector + * @param {Array} props CSS props list + * @param {Function} propsFn Function to retrieve value or determine for props + * @returns {Function} + * @private + */ + setCssRule(withShape, selector, props, propsFn) { + const $$ = this; + const { config, state: { cssRule, style } } = $$; + return config.boost_useCssRule ? (selection) => { + selection.each((d) => { + const res = propsFn && (propsFn == null ? void 0 : propsFn.call($$, d)); + const shapeSelector = `${withShape ? `.${$SHAPE.shapes + $$.getTargetSelectorSuffix(d.id)}` : ""}${selector}`; + selector in cssRule && style.sheet.deleteRule(cssRule[shapeSelector]); + $$.state.cssRule[shapeSelector] = addCssRules( + style, + shapeSelector, + props.filter(Boolean).map((v) => isString(res) && v.indexOf(":") === -1 ? `${v}: ${res}` : v || "") + ); + }); + } : () => { + }; + }, + /** + * Get style prop value + * @param {Function|string} v Value + * @returns {string|null} + * @private + */ + getStylePropValue(v) { + const { config: { boost_useCssRule: useCssRule } } = this; + return useCssRule ? null : isFunction(v) ? v.bind(this) : v; + } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selectAll.js + + +/* harmony default export */ function src_selectAll(selector) { + return typeof selector === "string" ? new Selection([document.querySelectorAll(selector)], [document.documentElement]) : new Selection([array(selector)], root); +} + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/text.ts + + + + +function getRotateAnchor(angle) { + let anchor = "middle"; + if (angle > 0 && angle <= 170) { + anchor = "end"; + } else if (angle > 190 && angle <= 360) { + anchor = "start"; + } + return anchor; +} +function setRotatePos(d, pos, anchor, isRotated, isInverted) { + var _a; + const $$ = this; + const { value } = d; + const isCandlestickType = $$.isCandlestickType(d); + const isNegative = isNumber(value) && value < 0 || isCandlestickType && !((_a = $$.getCandlestickData(d)) == null ? void 0 : _a._isUp); + let { x, y } = pos; + const gap = 4; + const doubleGap = gap * 2; + if (isRotated) { + if (anchor === "start") { + x += isNegative ? 0 : doubleGap; + y += gap; + } else if (anchor === "middle") { + x += doubleGap; + y -= doubleGap; + } else if (anchor === "end") { + isNegative && (x -= doubleGap); + y += gap; + } + } else { + if (anchor === "start") { + x += gap; + isNegative && (y += doubleGap * 2); + } else if (anchor === "middle") { + y -= doubleGap; + } else if (anchor === "end") { + x -= gap; + isNegative && (y += doubleGap * 2); + } + if (isInverted) { + y += isNegative ? -17 : isCandlestickType ? 13 : 7; + } + } + return { x, y }; +} +function getTextPos(d, type) { + var _a; + const position = this.config.data_labels_position; + const { id, index, value } = d; + return (_a = isFunction(position) ? position.bind(this.api)(type, value, id, index, this.$el.text) : (id in position ? position[id] : position)[type]) != null ? _a : 0; +} +/* harmony default export */ var internals_text = ({ + opacityForText(d) { + const $$ = this; + return $$.isBarType(d) && !$$.meetsLabelThreshold( + Math.abs($$.getRatio("bar", d)), + "bar" + ) ? "0" : $$.hasDataLabel ? null : "0"; + }, + /** + * Initializes the text + * @private + */ + initText() { + const { $el } = this; + $el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $TEXT.chartTexts).style("pointer-events", $el.funnel || $el.treemap ? "none" : null); + }, + /** + * Update chartText + * @param {object} targets $$.data.targets + * @private + */ + updateTargetsForText(targets) { + const $$ = this; + const classChartText = $$.getChartClass("Text"); + const classTexts = $$.getClass("texts", "id"); + const classFocus = $$.classFocus.bind($$); + const mainTextUpdate = $$.$el.main.select(`.${$TEXT.chartTexts}`).selectAll(`.${$TEXT.chartText}`).data(targets).attr("class", (d) => `${classChartText(d)}${classFocus(d)}`.trim()); + const mainTextEnter = mainTextUpdate.enter().append("g").style("opacity", "0").attr("class", classChartText).call( + $$.setCssRule( + true, + ` .${$TEXT.text}`, + ["fill", "pointer-events:none"], + $$.updateTextColor + ) + ); + mainTextEnter.append("g").attr("class", classTexts); + }, + /** + * Update text + * @private + */ + updateText() { + const $$ = this; + const { $el, $T, config, axis } = $$; + const classText = $$.getClass("text", "index"); + const labelsCentered = config.data_labels.centered; + const text = $el.main.selectAll(`.${$TEXT.texts}`).selectAll(`.${$TEXT.text}`).data($$.labelishData.bind($$)); + $T(text.exit()).style("fill-opacity", "0").remove(); + $el.text = text.enter().append("text").merge(text).attr("class", classText).attr("text-anchor", (d) => { + const isInverted = config[`axis_${axis == null ? void 0 : axis.getId(d.id)}_inverted`]; + let isEndAnchor = isInverted ? d.value > 0 : d.value < 0; + if ($$.isCandlestickType(d)) { + const data = $$.getCandlestickData(d); + isEndAnchor = !(data == null ? void 0 : data._isUp); + } else if ($$.isTreemapType(d)) { + return labelsCentered ? "middle" : "start"; + } + return config.axis_rotated ? isEndAnchor ? "end" : "start" : "middle"; + }).style("fill", $$.getStylePropValue($$.updateTextColor)).style("fill-opacity", "0").each(function(d, i, texts) { + const node = src_select(this); + let { value } = d; + if ($$.isBubbleZType(d)) { + value = $$.getBubbleZData(value, "z"); + } else if ($$.isCandlestickType(d)) { + const data = $$.getCandlestickData(d); + if (data) { + value = data.close; + } + } + value = $$.isTreemapType(d) ? $$.treemapDataLabelFormat(d)(node) : $$.dataLabelFormat(d.id)(value, d.id, d.index, texts); + if (isNumber(value)) { + this.textContent = value; + } else { + setTextValue(node, value); + } + }); + }, + updateTextColor(d) { + const $$ = this; + const { config } = $$; + const labelColors = config.data_labels_colors; + const defaultColor = $$.isArcType(d) && !$$.isRadarType(d) || $$.isFunnelType(d) || $$.isTreemapType(d) ? null : $$.color(d); + let color; + if (isString(labelColors)) { + color = labelColors; + } else if (isObject(labelColors)) { + const { id } = d.data || d; + color = labelColors[id]; + } else if (isFunction(labelColors)) { + color = labelColors.bind($$.api)(defaultColor, d); + } + if ($$.isCandlestickType(d) && !isFunction(labelColors)) { + const value = $$.getCandlestickData(d); + if (!(value == null ? void 0 : value._isUp)) { + const downColor = config.candlestick_color_down; + color = isObject(downColor) ? downColor[d.id] : downColor; + } + } + return color || defaultColor; + }, + /** + * Update data label text background color + * @param {object} d Data object + * @param {object|string} option option object + * @returns {string|null} + * @private + */ + updateTextBGColor(d, option) { + const $$ = this; + const { $el } = $$; + let color = ""; + if (isString(option) || isObject(option)) { + const id = isString(option) ? "" : $$.getTargetSelectorSuffix("id" in d ? d.id : d.data.id); + const filter = $el.defs.select(["filter[id*='labels-bg", "']"].join(id)); + if (filter.size()) { + color = `url(#${filter.attr("id")})`; + } + } + return color || null; + }, + /** + * Redraw chartText + * @param {Function} getX Positioning function for x + * @param {Function} getY Positioning function for y + * @param {boolean} forFlow Weather is flow + * @param {boolean} withTransition transition is enabled + * @returns {Array} + * @private + */ + redrawText(getX, getY, forFlow, withTransition) { + const $$ = this; + const { $T, axis, config, state: { hasTreemap } } = $$; + const t = getRandom(true); + const isRotated = config.axis_rotated; + const angle = config.data_labels.rotate; + const anchorString = getRotateAnchor(angle); + const rotateString = angle ? `rotate(${angle})` : ""; + $$.$el.text.style("fill", $$.getStylePropValue($$.updateTextColor)).attr( + "filter", + (d) => $$.updateTextBGColor.bind($$)(d, config.data_labels_backgroundColors) + ).style("fill-opacity", forFlow ? 0 : $$.opacityForText.bind($$)).each(function(d, i) { + const node = $T( + hasTreemap && this.childElementCount ? this.parentNode : this, + !!(withTransition && this.getAttribute("x")), + t + ); + const isInverted = config[`axis_${axis == null ? void 0 : axis.getId(d.id)}_inverted`]; + let pos = { + x: getX.bind(this)(d, i), + y: getY.bind(this)(d, i) + }; + if (angle) { + pos = setRotatePos.bind($$)(d, pos, anchorString, isRotated, isInverted); + node.attr("text-anchor", anchorString); + } + if (this.childElementCount || angle) { + node.attr("transform", `translate(${pos.x} ${pos.y}) ${rotateString}`); + } else { + node.attr("x", pos.x).attr("y", pos.y); + } + }); + return true; + }, + /** + * Gets the getBoundingClientRect value of the element + * @param {HTMLElement|d3.selection} element Target element + * @param {string} className Class name + * @returns {object} value of element.getBoundingClientRect() + * @private + */ + getTextRect(element, className) { + const $$ = this; + let base = element.node ? element.node() : element; + if (!/text/i.test(base.tagName)) { + base = base.querySelector("text"); + } + const text = base.textContent; + const cacheKey = `${KEY.textRect}-${text.replace(/\W/g, "_")}`; + let rect = $$.cache.get(cacheKey); + if (!rect) { + $$.$el.svg.append("text").style("visibility", "hidden").style("font", src_select(base).style("font")).classed(className, true).text(text).call((v) => { + rect = getBoundingRect(v.node()); + }).remove(); + $$.cache.add(cacheKey, rect); + } + return rect; + }, + /** + * Gets the x or y coordinate of the text + * @param {object} indices Indices values + * @param {boolean} forX whether or not to x + * @returns {number} coordinates + * @private + */ + generateXYForText(indices, forX) { + const $$ = this; + const { state: { hasRadar, hasFunnel, hasTreemap } } = $$; + const types = Object.keys(indices); + const points = {}; + const getter = forX ? $$.getXForText : $$.getYForText; + hasFunnel && types.push("funnel"); + hasRadar && types.push("radar"); + hasTreemap && types.push("treemap"); + types.forEach((v) => { + points[v] = $$[`generateGet${capitalize(v)}Points`](indices[v], false); + }); + return function(d, i) { + const type = $$.isAreaType(d) && "area" || $$.isBarType(d) && "bar" || $$.isCandlestickType(d) && "candlestick" || $$.isFunnelType(d) && "funnel" || $$.isRadarType(d) && "radar" || $$.isTreemapType(d) && "treemap" || "line"; + return getter.call($$, points[type](d, i), d, this); + }; + }, + /** + * Get centerized text position for bar type data.label.text + * @param {object} d Data object + * @param {Array} points Data points position + * @param {HTMLElement} textElement Data label text element + * @param {string} type 'x' or 'y' + * @returns {number} Position value + * @private + */ + getCenteredTextPos(d, points, textElement, type) { + const $$ = this; + const { config } = $$; + const isRotated = config.axis_rotated; + const isBarType = $$.isBarType(d); + const isTreemapType = $$.isTreemapType(d); + if (config.data_labels.centered && (isBarType || isTreemapType)) { + const rect = getBoundingRect(textElement); + if (isBarType) { + const isPositive = $$.getRangedData(d, null, "bar") >= 0; + if (isRotated) { + const w = (isPositive ? points[1][1] - points[0][1] : points[0][1] - points[1][1]) / 2 + rect.width / 2; + return isPositive ? -w - 3 : w + 2; + } else { + const h = (isPositive ? points[0][1] - points[1][1] : points[1][1] - points[0][1]) / 2 + rect.height / 2; + return isPositive ? h : -h - 2; + } + } else if (isTreemapType) { + return type === "x" ? (points[1][0] - points[0][0]) / 2 : (points[1][1] - points[0][1]) / 2 + rect.height / 2; + } + } + return 0; + }, + /** + * Gets the x coordinate of the text + * @param {object} points Data points position + * @param {object} d Data object + * @param {HTMLElement} textElement Data label text element + * @returns {number} x coordinate + * @private + */ + getXForText(points, d, textElement) { + var _a; + const $$ = this; + const { config } = $$; + const isRotated = config.axis_rotated; + const isFunnelType = $$.isFunnelType(d); + const isTreemapType = $$.isTreemapType(d); + let xPos = points ? points[0][0] : 0; + if ($$.isCandlestickType(d)) { + if (isRotated) { + xPos = ((_a = $$.getCandlestickData(d)) == null ? void 0 : _a._isUp) ? points[2][2] + 4 : points[2][1] - 4; + } else { + xPos += (points[1][0] - xPos) / 2; + } + } else if (isFunnelType) { + xPos += $$.state.current.width / 2; + } else if (isTreemapType) { + xPos += config.data_labels.centered ? 0 : 5; + } else { + if (isRotated) { + const isInverted = config[`axis_${$$.axis.getId(d.id)}_inverted`]; + const padding = $$.isBarType(d) ? 4 : 6; + const value = d.value; + xPos = points[2][1]; + if (isInverted) { + xPos -= padding * (value > 0 ? 1 : -1); + } else { + xPos += padding * (value < 0 ? -1 : 1); + } + } else { + xPos = $$.hasType("bar") ? (points[2][0] + points[0][0]) / 2 : xPos; + } + } + if (isRotated || isTreemapType) { + xPos += $$.getCenteredTextPos(d, points, textElement, "x"); + } + return xPos + getTextPos.call(this, d, "x"); + }, + /** + * Gets the y coordinate of the text + * @param {object} points Data points position + * @param {object} d Data object + * @param {HTMLElement} textElement Data label text element + * @returns {number} y coordinate + * @private + */ + getYForText(points, d, textElement) { + const $$ = this; + const { axis, config, state } = $$; + const isRotated = config.axis_rotated; + const isInverted = config[`axis_${axis == null ? void 0 : axis.getId(d.id)}_inverted`]; + const isBarType = $$.isBarType(d); + const isFunnelType = $$.isFunnelType(d); + const isTreemapType = $$.isTreemapType(d); + const r = config.point_r; + const rect = getBoundingRect(textElement); + let { value } = d; + let baseY = 3; + let yPos; + if ($$.isCandlestickType(d)) { + value = $$.getCandlestickData(d); + if (isRotated) { + yPos = points[0][0]; + yPos += (points[1][0] - yPos) / 2 + baseY; + } else { + yPos = value && value._isUp ? points[2][2] - baseY : points[2][1] + baseY * 4; + if (isInverted) { + yPos += 15 * (value._isUp ? 1 : -1); + } + } + } else if (isFunnelType) { + yPos = points ? points[0][1] + (points[1][1] - points[0][1]) / 2 + rect.height / 2 - 3 : 0; + } else if (isTreemapType) { + yPos = points[0][1] + (config.data_labels.centered ? 0 : rect.height + 5); + } else { + if (isRotated) { + yPos = (points[0][0] + points[2][0] + rect.height * 0.6) / 2; + } else { + yPos = points[2][1]; + if (isNumber(r) && r > 5 && ($$.isLineType(d) || $$.isScatterType(d))) { + baseY += config.point_r / 2.3; + } + if (value < 0 || value === 0 && !state.hasPositiveValue && state.hasNegativeValue) { + yPos += isInverted ? isBarType ? -3 : -5 : rect.height + (isBarType ? -baseY : baseY); + } else { + let diff = -baseY * 2; + if (isBarType) { + diff = -baseY; + } else if ($$.isBubbleType(d)) { + diff = baseY; + } + if (isInverted) { + diff = isBarType ? 10 : 15; + } + yPos += diff; + } + } + } + if (!isRotated || isTreemapType) { + yPos += $$.getCenteredTextPos(d, points, textElement, "y"); + } + return yPos + getTextPos.call(this, d, "y"); + }, + /** + * Calculate if two or more text nodes are overlapping + * Mark overlapping text nodes with "text-overlapping" class + * @param {string} id Axis id + * @param {ChartInternal} $$ ChartInternal context + * @param {string} selector Selector string + * @private + */ + markOverlapped(id, $$, selector) { + const textNodes = $$.$el.arcs.selectAll(selector); + const filteredTextNodes = textNodes.filter((node) => node.data.id !== id); + const textNode = textNodes.filter((node) => node.data.id === id); + const translate = getTranslation(textNode.node()); + const calcHypo = (x, y) => Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); + textNode.node() && filteredTextNodes.each(function() { + const coordinate = getTranslation(this); + const filteredTextNode = src_select(this); + const nodeForWidth = calcHypo(translate.e, translate.f) > calcHypo(coordinate.e, coordinate.f) ? textNode : filteredTextNode; + const overlapsX = Math.ceil(Math.abs(translate.e - coordinate.e)) < Math.ceil(nodeForWidth.node().getComputedTextLength()); + const overlapsY = Math.ceil(Math.abs(translate.f - coordinate.f)) < parseInt(textNode.style("font-size"), 10); + filteredTextNode.classed($TEXT.TextOverlapping, overlapsX && overlapsY); + }); + }, + /** + * Calculate if two or more text nodes are overlapping + * Remove "text-overlapping" class on selected text nodes + * @param {ChartInternal} $$ ChartInternal context + * @param {string} selector Selector string + * @private + */ + undoMarkOverlapped($$, selector) { + $$.$el.arcs.selectAll(selector).each(function() { + src_selectAll([this, this.previousSibling]).classed($TEXT.TextOverlapping, false); + }); + }, + /** + * Check if meets the ratio to show data label text + * @param {number} ratio ratio to meet + * @param {string} type chart type + * @returns {boolean} + * @private + */ + meetsLabelThreshold(ratio = 0, type) { + const $$ = this; + const { config } = $$; + const threshold = config[`${type}_label_threshold`] || 0; + return ratio >= threshold; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/title.ts + + +function getTextXPos(pos = "left", width) { + const isNum = isNumber(width); + let position; + if (pos.indexOf("center") > -1) { + position = isNum ? width / 2 : "middle"; + } else if (pos.indexOf("right") > -1) { + position = isNum ? width : "end"; + } else { + position = isNum ? 0 : "start"; + } + return position; +} +/* harmony default export */ var internals_title = ({ + /** + * Initializes the title + * @private + */ + initTitle() { + const $$ = this; + const { config, $el } = $$; + if (config.title_text) { + $el.title = $el.svg.append("g"); + const text = $el.title.append("text").style("text-anchor", getTextXPos(config.title_position)).attr("class", $TEXT.title); + setTextValue(text, config.title_text, [0.3, 1.5]); + } + }, + /** + * Redraw title + * @private + */ + redrawTitle() { + const $$ = this; + const { config, state: { current }, $el: { title } } = $$; + if (title) { + const x = getTextXPos(config.title_position, current.width); + const y = (config.title_padding.top || 0) + $$.getTextRect($$.$el.title, $TEXT.title).height; + title.attr("transform", `translate(${x}, ${y})`); + } + }, + /** + * Get title padding + * @returns {number} padding value + * @private + */ + getTitlePadding() { + const $$ = this; + const { $el: { title }, config } = $$; + return (config.title_padding.top || 0) + (title ? $$.getTextRect(title, $TEXT.title).height : 0) + (config.title_padding.bottom || 0); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/tooltip.ts + + + + +/* harmony default export */ var internals_tooltip = ({ + /** + * Initializes the tooltip + * @private + */ + initTooltip() { + const $$ = this; + const { config, $el } = $$; + $el.tooltip = src_select(config.tooltip_contents.bindto); + if ($el.tooltip.empty()) { + $el.tooltip = $el.chart.append("div").attr("class", $TOOLTIP.tooltipContainer).style("position", "absolute").style("pointer-events", "none").style("display", "none"); + } + $$.bindTooltipResizePos(); + }, + /** + * Show tooltip at initialization. + * Is called only when tooltip.init.show=true option is set + * @private + */ + initShowTooltip() { + var _a; + const $$ = this; + const { config, $el, state: { hasAxis, hasRadar } } = $$; + if (config.tooltip_init_show) { + const isArc = !(hasAxis || hasRadar); + if (((_a = $$.axis) == null ? void 0 : _a.isTimeSeries()) && isString(config.tooltip_init_x)) { + config.tooltip_init_x = parseDate.call($$, config.tooltip_init_x); + } + $$.api.tooltip.show({ + data: { + [isArc ? "index" : "x"]: config.tooltip_init_x + } + }); + const position = config.tooltip_init_position; + if (!config.tooltip_contents.bindto && !isEmpty(position)) { + const { top = 0, left = 50 } = position; + $el.tooltip.style("top", isString(top) ? top : `${top}px`).style("left", isString(left) ? left : `${left}px`).style("display", null); + } + } + }, + /** + * Get the tooltip HTML string + * @param {Array} args Arguments + * @returns {string} Formatted HTML string + * @private + */ + getTooltipHTML(...args) { + const $$ = this; + const { api, config } = $$; + return isFunction(config.tooltip_contents) ? config.tooltip_contents.bind(api)(...args) : $$.getTooltipContent(...args); + }, + /** + * Returns the tooltip content(HTML string) + * @param {object} d data + * @param {Function} defaultTitleFormat Default title format + * @param {Function} defaultValueFormat Default format for each data value in the tooltip. + * @param {Function} color Color function + * @returns {string} html + * @private + */ + getTooltipContent(d, defaultTitleFormat, defaultValueFormat, color) { + var _a; + const $$ = this; + const { api, config, state, $el } = $$; + const [titleFn, nameFn, valueFn] = ["title", "name", "value"].map((v) => { + const fn = config[`tooltip_format_${v}`]; + return isFunction(fn) ? fn.bind(api) : fn; + }); + const titleFormat = (...arg) => sanitize((titleFn || defaultTitleFormat)(...arg)); + const nameFormat = (...arg) => sanitize((nameFn || ((name) => name))(...arg)); + const valueFormat = (...arg) => { + const fn = valueFn || (state.hasTreemap || $$.isStackNormalized() ? (v, ratio) => `${(ratio * 100).toFixed(2)}%` : defaultValueFormat); + return sanitize(fn(...arg)); + }; + const order = config.tooltip_order; + const getRowValue = (row2) => $$.axis && $$.isBubbleZType(row2) ? $$.getBubbleZData(row2.value, "z") : $$.getBaseValue(row2); + const getBgColor = $$.levelColor ? (row2) => $$.levelColor(row2.value) : (row2) => color(row2); + const contents = config.tooltip_contents; + const tplStr = contents.template; + const targetIds = $$.mapToTargetIds(); + if (order === null && config.data_groups.length) { + const ids = $$.orderTargets($$.data.targets).map((i2) => i2.id).reverse(); + d.sort((a, b) => { + let v1 = a ? a.value : null; + let v2 = b ? b.value : null; + if (v1 > 0 && v2 > 0) { + v1 = a.id ? ids.indexOf(a.id) : null; + v2 = b.id ? ids.indexOf(b.id) : null; + } + return v1 - v2; + }); + } else if (/^(asc|desc)$/.test(order)) { + const isAscending = order === "asc"; + d.sort((a, b) => { + const v1 = a ? getRowValue(a) : null; + const v2 = b ? getRowValue(b) : null; + return isAscending ? v1 - v2 : v2 - v1; + }); + } else if (isFunction(order)) { + d.sort(order.bind(api)); + } + const tpl = $$.getTooltipContentTemplate(tplStr); + const len = d.length; + let text; + let row; + let param; + let value; + let i; + for (i = 0; i < len; i++) { + row = d[i]; + if (!row || !(getRowValue(row) || getRowValue(row) === 0)) { + continue; + } + if (isUndefined(text)) { + const title = (state.hasAxis || state.hasRadar) && titleFormat(row.x); + text = tplProcess(tpl[0], { + CLASS_TOOLTIP: $TOOLTIP.tooltip, + TITLE: isValue(title) ? tplStr ? title : `<tr><th colspan="2">${title}</th></tr>` : "" + }); + } + if (!row.ratio && $el.arcs) { + param = ["arc", $$.$el.arcs.select(`path.${$ARC.arc}-${row.id}`).data()[0]]; + row.ratio = $$.getRatio(...param); + } + param = [row.ratio, row.id, row.index]; + if ($$.isAreaRangeType(row)) { + const [high, low] = ["high", "low"].map( + (v) => valueFormat($$.getRangedData(row, v), ...param) + ); + const mid = valueFormat(getRowValue(row), ...param); + value = `<b>Mid:</b> ${mid} <b>High:</b> ${high} <b>Low:</b> ${low}`; + } else if ($$.isCandlestickType(row)) { + const [open, high, low, close, volume] = ["open", "high", "low", "close", "volume"].map((v) => { + const value2 = $$.getRangedData(row, v, "candlestick"); + return value2 ? valueFormat( + $$.getRangedData(row, v, "candlestick"), + ...param + ) : void 0; + }); + value = `<b>Open:</b> ${open} <b>High:</b> ${high} <b>Low:</b> ${low} <b>Close:</b> ${close}${volume ? ` <b>Volume:</b> ${volume}` : ""}`; + } else if ($$.isBarRangeType(row)) { + const { value: rangeValue, id, index } = row; + value = `${valueFormat(rangeValue, void 0, id, index)}`; + } else { + value = valueFormat(getRowValue(row), ...param); + } + if (value !== void 0) { + if (row.name === null) { + continue; + } + const name = nameFormat((_a = row.name) != null ? _a : row.id, ...param); + const color2 = getBgColor(row); + const contentValue = { + CLASS_TOOLTIP_NAME: $TOOLTIP.tooltipName + $$.getTargetSelectorSuffix(row.id), + COLOR: tplStr || !$$.patterns ? color2 : `<svg><rect style="fill:${color2}" width="10" height="10"></rect></svg>`, + NAME: name, + VALUE: value + }; + if (tplStr && isObject(contents.text)) { + const index = targetIds.indexOf(row.id); + Object.keys(contents.text).forEach((key) => { + contentValue[key] = contents.text[key][index]; + }); + } + text += tplProcess(tpl[1], contentValue); + } + } + return `${text}</table>`; + }, + /** + * Get the content template string + * @param {string} tplStr Tempalte string + * @returns {Array} Template string + * @private + */ + getTooltipContentTemplate(tplStr) { + return (tplStr || `<table class="{=CLASS_TOOLTIP}"><tbody> + {=TITLE} + {{<tr class="{=CLASS_TOOLTIP_NAME}"> + <td class="name">${this.patterns ? `{=COLOR}` : `<span style="background-color:{=COLOR}"></span>`}{=NAME}</td> + <td class="value">{=VALUE}</td> + </tr>}} + </tbody></table>`).replace(/(\r?\n|\t)/g, "").split(/{{(.*)}}/); + }, + /** + * Update tooltip position coordinate + * @param {object} dataToShow Data object + * @param {SVGElement} eventTarget Event element + * @private + */ + setTooltipPosition(dataToShow, eventTarget) { + var _a, _b; + const $$ = this; + const { config, scale, state, $el: { eventRect, tooltip } } = $$; + const { bindto } = config.tooltip_contents; + const isRotated = config.axis_rotated; + const datum = tooltip == null ? void 0 : tooltip.datum(); + if (!bindto && datum) { + const data = dataToShow != null ? dataToShow : JSON.parse(datum.current); + const [x, y] = getPointer(state.event, eventTarget != null ? eventTarget : eventRect == null ? void 0 : eventRect.node()); + const currPos = { x, y }; + if (state.hasAxis && scale.x && datum && "x" in datum) { + const getYPos = (value = 0, id, axisId = "y") => { + var _a2; + const scaleFn = scale[id ? (_a2 = $$.axis) == null ? void 0 : _a2.getId(id) : axisId]; + return scaleFn ? scaleFn(value) + (isRotated ? state.margin.left : state.margin.top) : 0; + }; + currPos.xAxis = scale.x(datum.x) + // add margin only when user specified tooltip.position function + (config.tooltip_position ? isRotated ? state.margin.top : state.margin.left : 0); + if (data.length === 1) { + currPos.yAxis = getYPos(data[0].value, data[0].id); + } else { + currPos.yAxis = getYPos; + } + } + const { width = 0, height = 0 } = datum; + const pos = (_b = (_a = config.tooltip_position) == null ? void 0 : _a.bind($$.api)( + data, + width, + height, + eventRect == null ? void 0 : eventRect.node(), + currPos + )) != null ? _b : $$.getTooltipPosition.bind($$)(width, height, currPos); + ["top", "left"].forEach((v) => { + const value = pos[v]; + tooltip.style(v, `${value}px`); + if (v === "left" && !datum.xPosInPercent) { + datum.xPosInPercent = value / state.current.width * 100; + } + }); + } + }, + /** + * Returns the position of the tooltip + * @param {string} tWidth Width value of tooltip element + * @param {string} tHeight Height value of tooltip element + * @param {object} currPos Current mouse position + * @returns {object} top, left value + * @private + */ + getTooltipPosition(tWidth, tHeight, currPos) { + var _a, _b, _c; + const $$ = this; + const { config, scale, state } = $$; + const { width, height, current, hasFunnel, hasRadar, hasTreemap, isLegendRight, inputType } = state; + const hasGauge = $$.hasType("gauge") && !config.gauge_fullCircle; + const isRotated = config.axis_rotated; + const hasArcType = $$.hasArcType(); + const svgLeft = $$.getSvgLeft(true); + let chartRight = svgLeft + current.width - $$.getCurrentPaddingByDirection("right"); + const size = 20; + let { x, y } = currPos; + if (hasRadar) { + x += x >= width / 2 ? 15 : -(tWidth + 15); + y += 15; + } else if (hasArcType) { + const notTouch = inputType !== "touch"; + if (notTouch) { + let titlePadding = (_b = (_a = $$.getTitlePadding) == null ? void 0 : _a.call($$)) != null ? _b : 0; + if (titlePadding && hasGauge && ((_c = config.arc_rangeText_values) == null ? void 0 : _c.length)) { + titlePadding += 10; + } + x += (width - (isLegendRight ? $$.getLegendWidth() : 0)) / 2; + y += (hasGauge ? height : height / 2 + tHeight) + titlePadding; + } + } else if (hasFunnel || hasTreemap) { + y += tHeight; + } else { + const padding = { + top: $$.getCurrentPaddingByDirection("top", true), + left: $$.getCurrentPaddingByDirection("left", true) + }; + if (isRotated) { + x += svgLeft + padding.left + size; + y = padding.top + currPos.xAxis + size; + chartRight -= svgLeft; + } else { + x = svgLeft + padding.left + size + (scale.zoom ? x : currPos.xAxis); + y += padding.top - 5; + } + } + if (x + tWidth + 15 > chartRight) { + x -= tWidth + (hasFunnel || hasTreemap || hasArcType ? 0 : isRotated ? size * 2 : 38); + } + if (y + tHeight > current.height) { + const gap = hasTreemap ? tHeight + 10 : 30; + y -= hasGauge ? tHeight * 1.5 : tHeight + gap; + } + const pos = { top: y, left: x }; + Object.keys(pos).forEach((v) => { + if (pos[v] < 0) { + pos[v] = 0; + } + }); + return pos; + }, + /** + * Show the tooltip + * @param {object} selectedData Data object + * @param {SVGElement} eventTarget Event element + * @private + */ + showTooltip(selectedData, eventTarget) { + const $$ = this; + const { config, $el: { tooltip } } = $$; + const dataToShow = selectedData.filter((d) => d && isValue($$.getBaseValue(d))); + if (!tooltip || dataToShow.length === 0 || !config.tooltip_show) { + return; + } + let datum = tooltip.datum(); + const dataStr = JSON.stringify(selectedData); + if (!datum || datum.current !== dataStr) { + const { index, x } = selectedData.concat().sort()[0]; + callFn(config.tooltip_onshow, $$.api, selectedData); + tooltip.html($$.getTooltipHTML( + selectedData, + // data + $$.axis ? $$.axis.getXAxisTickFormat() : $$.categoryName.bind($$), + // defaultTitleFormat + $$.getDefaultValueFormat(), + // defaultValueFormat + $$.color + // color + )).style("display", null).style("visibility", null).datum(datum = { + index, + x, + current: dataStr, + width: tooltip.property("offsetWidth"), + height: tooltip.property("offsetHeight") + }); + callFn(config.tooltip_onshown, $$.api, selectedData); + $$._handleLinkedCharts(true, index); + } + $$.setTooltipPosition(dataToShow, eventTarget); + }, + /** + * Adjust tooltip position on resize event + * @private + */ + bindTooltipResizePos() { + const $$ = this; + const { resizeFunction, state, $el: { tooltip } } = $$; + resizeFunction.add(() => { + if (tooltip.style("display") === "block") { + const { current } = state; + const { width, xPosInPercent } = tooltip.datum(); + let value = current.width / 100 * xPosInPercent; + const diff = current.width - (value + width); + if (diff < 0) { + value += diff; + } + tooltip.style("left", `${value}px`); + } + }); + }, + /** + * Hide the tooltip + * @param {boolean} force Force to hide + * @private + */ + hideTooltip(force) { + var _a; + const $$ = this; + const { api, config, $el: { tooltip } } = $$; + if (tooltip && tooltip.style("display") !== "none" && (!config.tooltip_doNotHide || force)) { + const selectedData = JSON.parse((_a = tooltip.datum().current) != null ? _a : {}); + callFn(config.tooltip_onhide, api, selectedData); + tooltip.style("display", "none").style("visibility", "hidden").datum(null); + callFn(config.tooltip_onhidden, api, selectedData); + } + }, + /** + * Toggle display for linked chart instances + * @param {boolean} show true: show, false: hide + * @param {number} index x Axis index + * @private + */ + _handleLinkedCharts(show, index) { + const $$ = this; + const { charts, config, state: { event } } = $$; + if ((event == null ? void 0 : event.isTrusted) && config.tooltip_linked && charts.length > 1) { + const linkedName = config.tooltip_linked_name; + charts.filter((c) => c !== $$.api).forEach((c) => { + const { config: config2, $el } = c.internal; + const isLinked = config2.tooltip_linked; + const name = config2.tooltip_linked_name; + const isInDom = browser_doc.body.contains($el.chart.node()); + if (isLinked && linkedName === name && isInDom) { + const data = $el.tooltip.data()[0]; + const isNotSameIndex = index !== (data == null ? void 0 : data.index); + try { + c.tooltip[show && isNotSameIndex ? "show" : "hide"]({ index }); + } catch (e) { + } + } + }); + } + }, + /** + * Update tooltip content on redraw + * - In a situation where tooltip is displayed and data load happens, it should reflect loaded data to tooltip + * @param {d3Selection} context Event rect element + * @param {number} index Data index + * @private + */ + updateTooltipOnRedraw(context, index) { + var _a; + const $$ = this; + const { + config, + $el: { eventRect, svg, tooltip }, + state: { event, hasAxis, hasRadar, hasTreemap } + } = $$; + if ((tooltip == null ? void 0 : tooltip.style("display")) === "block" && event) { + const rect = context != null ? context : (_a = hasRadar ? svg : eventRect) == null ? void 0 : _a.node(); + if (hasAxis || hasRadar) { + if ($$.isMultipleX()) { + $$.selectRectForMultipleXs(rect, false); + } else { + const idx = index != null ? index : $$.getDataIndexFromEvent(event); + if (index === -1) { + $$.api.tooltip.hide(); + } else { + $$.selectRectForSingle(rect, idx); + $$.setExpand(idx, null, true); + } + } + } else { + const { clientX, clientY } = event; + setTimeout(() => { + let target = browser_doc.elementFromPoint(clientX, clientY); + const data = src_select(target).datum(); + if (data) { + const d = $$.hasArcType() ? $$.convertToArcData($$.updateAngle(data)) : data == null ? void 0 : data.data; + hasTreemap && (target = svg.node()); + d && $$.showTooltip([d], target); + } else { + $$.api.tooltip.hide(); + } + }, config.transition_duration); + } + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/transform.ts + + +/* harmony default export */ var transform = ({ + getTranslate(target, index = 0) { + var _a; + const $$ = this; + const { config, state } = $$; + const isRotated = config.axis_rotated; + let padding = 0; + let x; + let y; + if (index && /^(x|y2?)$/.test(target)) { + padding = $$.getAxisSize(target) * index; + } + if (target === "main") { + x = asHalfPixel(state.margin.left); + y = asHalfPixel(state.margin.top); + } else if (target === "context") { + x = asHalfPixel(state.margin2.left); + y = asHalfPixel(state.margin2.top); + } else if (target === "legend") { + x = state.margin3.left; + y = state.margin3.top; + } else if (target === "x") { + x = isRotated ? -padding : 0; + y = isRotated ? 0 : state.height + padding; + } else if (target === "y") { + x = isRotated ? 0 : -padding; + y = isRotated ? state.height + padding : 0; + } else if (target === "y2") { + x = isRotated ? 0 : state.width + padding; + y = isRotated ? -padding - 1 : 0; + } else if (target === "subX") { + x = 0; + y = isRotated ? 0 : state.height2; + } else if (target === "arc") { + x = state.arcWidth / 2; + y = state.arcHeight / 2; + if ((_a = config.arc_rangeText_values) == null ? void 0 : _a.length) { + y += 5 + ($$.hasType("gauge") && config.title_text ? 10 : 0); + } + } else if (target === "polar") { + x = state.arcWidth / 2; + y = state.arcHeight / 2; + } else if (target === "radar") { + const [width, height] = $$.getRadarSize(); + x = state.width / 2 - width; + y = state.height / 2 - height; + } + return `translate(${x}, ${y})`; + }, + transformMain(withTransition, transitions) { + const $$ = this; + const { $el: { main }, $T } = $$; + const xAxis = (transitions == null ? void 0 : transitions.axisX) ? transitions.axisX : $T(main.select(`.${$AXIS.axisX}`), withTransition); + const yAxis = (transitions == null ? void 0 : transitions.axisY) ? transitions.axisY : $T(main.select(`.${$AXIS.axisY}`), withTransition); + const y2Axis = (transitions == null ? void 0 : transitions.axisY2) ? transitions.axisY2 : $T(main.select(`.${$AXIS.axisY2}`), withTransition); + $T(main, withTransition).attr("transform", $$.getTranslate("main")); + xAxis.attr("transform", $$.getTranslate("x")); + yAxis.attr("transform", $$.getTranslate("y")); + y2Axis.attr("transform", $$.getTranslate("y2")); + main.select(`.${$ARC.chartArcs}`).attr("transform", $$.getTranslate("arc")); + }, + transformAll(withTransition, transitions) { + const $$ = this; + const { config, state: { hasAxis, hasFunnel, hasTreemap }, $el } = $$; + !hasFunnel && !hasTreemap && $$.transformMain(withTransition, transitions); + hasAxis && config.subchart_show && $$.transformContext(withTransition, transitions); + $el.legend && $$.transformLegend(withTransition); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/type.ts + + +/* harmony default export */ var internals_type = ({ + /** + * Check if the given chart type is valid + * @param {string} type Chart type string + * @returns {boolean} + * @private + */ + isValidChartType(type) { + return !!(type && Object.values(TYPE).indexOf(type) > -1); + }, + setTargetType(targetIds, type) { + const $$ = this; + const { config, state: { withoutFadeIn } } = $$; + $$.mapToTargetIds(targetIds).forEach((id) => { + withoutFadeIn[id] = type === config.data_types[id]; + config.data_types[id] = type; + }); + if (!targetIds) { + config.data_type = type; + } + }, + /** + * Updte current used chart types + * @private + */ + updateTypesElements() { + const $$ = this; + const { state: { current } } = $$; + Object.keys(TYPE).forEach((v) => { + const t = TYPE[v]; + const has = $$.hasType(t, null, true); + const idx = current.types.indexOf(t); + if (idx === -1 && has) { + current.types.push(t); + } else if (idx > -1 && !has) { + current.types.splice(idx, 1); + } + }); + $$.setChartElements(); + }, + /** + * Check if given chart types exists + * @param {string} type Chart type + * @param {Array} targetsValue Data array + * @param {boolean} checkFromData Force to check type cotains from data targets + * @returns {boolean} + * @private + */ + hasType(type, targetsValue, checkFromData = false) { + var _a; + const $$ = this; + const { config, state: { current } } = $$; + const types = config.data_types; + const targets = targetsValue || $$.data.targets; + let has = false; + if (!checkFromData && ((_a = current.types) == null ? void 0 : _a.indexOf(type)) > -1) { + has = true; + } else if (targets == null ? void 0 : targets.length) { + targets.forEach((target) => { + const t = types[target.id]; + if (t === type || !t && type === "line") { + has = true; + } + }); + } else if (Object.keys(types).length) { + Object.keys(types).forEach((id) => { + if (types[id] === type) { + has = true; + } + }); + } else { + has = config.data_type === type; + } + return has; + }, + /** + * Check if contains given chart types + * @param {string} type Type key + * @param {object} targets Target data + * @param {Array} exclude Excluded types + * @returns {boolean} + * @private + */ + hasTypeOf(type, targets, exclude = []) { + if (type in TYPE_BY_CATEGORY) { + return !TYPE_BY_CATEGORY[type].filter((v) => exclude.indexOf(v) === -1).every((v) => !this.hasType(v, targets)); + } + return false; + }, + /** + * Check if given data is certain chart type + * @param {object} d Data object + * @param {string|Array} type chart type + * @returns {boolean} + * @private + */ + isTypeOf(d, type) { + var _a; + const id = isString(d) ? d : d.id; + const dataType = this.config && (((_a = this.config.data_types) == null ? void 0 : _a[id]) || this.config.data_type); + return isArray(type) ? type.indexOf(dataType) >= 0 : dataType === type; + }, + hasPointType() { + const $$ = this; + return $$.hasTypeOf("Line") || $$.hasType("bubble") || $$.hasType("scatter"); + }, + /** + * Check if contains arc types chart + * @param {object} targets Target data + * @param {Array} exclude Excluded types + * @returns {boolean} + * @private + */ + hasArcType(targets, exclude) { + return this.hasTypeOf("Arc", targets, exclude); + }, + hasMultiArcGauge() { + return this.hasType("gauge") && this.config.gauge_type === "multi"; + }, + isLineType(d) { + const id = isString(d) ? d : d.id; + return !this.config.data_types[id] || this.isTypeOf(id, TYPE_BY_CATEGORY.Line); + }, + isStepType(d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.Step); + }, + isSplineType(d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.Spline); + }, + isAreaType(d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.Area); + }, + isAreaRangeType(d) { + return this.isTypeOf(d, TYPE_BY_CATEGORY.AreaRange); + }, + isBarType(d) { + return this.isTypeOf(d, "bar"); + }, + isBubbleType(d) { + return this.isTypeOf(d, "bubble"); + }, + isCandlestickType(d) { + return this.isTypeOf(d, "candlestick"); + }, + isScatterType(d) { + return this.isTypeOf(d, "scatter"); + }, + isTreemapType(d) { + return this.isTypeOf(d, "treemap"); + }, + isPieType(d) { + return this.isTypeOf(d, "pie"); + }, + isFunnelType(d) { + return this.isTypeOf(d, "funnel"); + }, + isGaugeType(d) { + return this.isTypeOf(d, "gauge"); + }, + isDonutType(d) { + return this.isTypeOf(d, "donut"); + }, + isPolarType(d) { + return this.isTypeOf(d, "polar"); + }, + isRadarType(d) { + return this.isTypeOf(d, "radar"); + }, + isArcType(d) { + return this.isPieType(d) || this.isDonutType(d) || this.isGaugeType(d) || this.isPolarType(d) || this.isRadarType(d); + }, + // determine if is 'circle' data point + isCirclePoint(node) { + const { config } = this; + const pattern = config.point_pattern; + let isCircle = false; + if ((node == null ? void 0 : node.tagName) === "circle") { + isCircle = true; + } else { + isCircle = config.point_type === "circle" && (!pattern || isArray(pattern) && pattern.length === 0); + } + return isCircle; + }, + lineData(d) { + return this.isLineType(d) ? [d] : []; + }, + arcData(d) { + return this.isArcType(d.data) ? [d] : []; + }, + /** + * Get data adapt for data label showing + * @param {object} d Data object + * @returns {Array} + * @private + */ + labelishData(d) { + return this.isBarType(d) || this.isLineType(d) || this.isScatterType(d) || this.isBubbleType(d) || this.isCandlestickType(d) || this.isFunnelType(d) || this.isRadarType(d) || this.isTreemapType(d) ? d.values.filter((v) => isNumber(v.value) || Boolean(v.value)) : []; + }, + barLineBubbleData(d) { + return this.isBarType(d) || this.isLineType(d) || this.isBubbleType(d) ? d.values : []; + }, + // https://github.com/d3/d3-shape#curves + isInterpolationType(type) { + return [ + "basis", + "basis-closed", + "basis-open", + "bundle", + "cardinal", + "cardinal-closed", + "cardinal-open", + "catmull-rom", + "catmull-rom-closed", + "catmull-rom-open", + "linear", + "linear-closed", + "monotone-x", + "monotone-y", + "natural" + ].indexOf(type) >= 0; + } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/basis.js +function point(that, x, y) { + that._context.bezierCurveTo( + (2 * that._x0 + that._x1) / 3, + (2 * that._y0 + that._y1) / 3, + (that._x0 + 2 * that._x1) / 3, + (that._y0 + 2 * that._y1) / 3, + (that._x0 + 4 * that._x1 + x) / 6, + (that._y0 + 4 * that._y1 + y) / 6 + ); +} +function Basis(context) { + this._context = context; +} +Basis.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._y0 = this._y1 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 3: + point(this, this._x1, this._y1); + case 2: + this._context.lineTo(this._x1, this._y1); + break; + } + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); + default: + point(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; +/* harmony default export */ function curve_basis(context) { + return new Basis(context); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/noop.js +/* harmony default export */ function src_noop() { +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/basisClosed.js + + +function BasisClosed(context) { + this._context = context; +} +BasisClosed.prototype = { + areaStart: src_noop, + areaEnd: src_noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x2, this._y2); + this._context.closePath(); + break; + } + case 2: { + this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3); + this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x2, this._y2); + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._x2 = x, this._y2 = y; + break; + case 1: + this._point = 2; + this._x3 = x, this._y3 = y; + break; + case 2: + this._point = 3; + this._x4 = x, this._y4 = y; + this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); + break; + default: + point(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; +/* harmony default export */ function curve_basisClosed(context) { + return new BasisClosed(context); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/basisOpen.js + +function BasisOpen(context) { + this._context = context; +} +BasisOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._y0 = this._y1 = NaN; + this._point = 0; + }, + lineEnd: function() { + if (this._line || this._line !== 0 && this._point === 3) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; + this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); + break; + case 3: + this._point = 4; + default: + point(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + } +}; +/* harmony default export */ function basisOpen(context) { + return new BasisOpen(context); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/bundle.js + +function Bundle(context, beta) { + this._basis = new Basis(context); + this._beta = beta; +} +Bundle.prototype = { + lineStart: function() { + this._x = []; + this._y = []; + this._basis.lineStart(); + }, + lineEnd: function() { + var x = this._x, y = this._y, j = x.length - 1; + if (j > 0) { + var x0 = x[0], y0 = y[0], dx = x[j] - x0, dy = y[j] - y0, i = -1, t; + while (++i <= j) { + t = i / j; + this._basis.point( + this._beta * x[i] + (1 - this._beta) * (x0 + t * dx), + this._beta * y[i] + (1 - this._beta) * (y0 + t * dy) + ); + } + } + this._x = this._y = null; + this._basis.lineEnd(); + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; +/* harmony default export */ var bundle = ((function custom(beta) { + function bundle(context) { + return beta === 1 ? new Basis(context) : new Bundle(context, beta); + } + bundle.beta = function(beta2) { + return custom(+beta2); + }; + return bundle; +})(0.85)); + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/cardinal.js +function cardinal_point(that, x, y) { + that._context.bezierCurveTo( + that._x1 + that._k * (that._x2 - that._x0), + that._y1 + that._k * (that._y2 - that._y0), + that._x2 + that._k * (that._x1 - x), + that._y2 + that._k * (that._y1 - y), + that._x2, + that._y2 + ); +} +function Cardinal(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} +Cardinal.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: + this._context.lineTo(this._x2, this._y2); + break; + case 3: + cardinal_point(this, this._x1, this._y1); + break; + } + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + this._x1 = x, this._y1 = y; + break; + case 2: + this._point = 3; + default: + cardinal_point(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +/* harmony default export */ var cardinal = ((function custom(tension) { + function cardinal(context) { + return new Cardinal(context, tension); + } + cardinal.tension = function(tension2) { + return custom(+tension2); + }; + return cardinal; +})(0)); + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/cardinalClosed.js + + +function CardinalClosed(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} +CardinalClosed.prototype = { + areaStart: src_noop, + areaEnd: src_noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + this.point(this._x5, this._y5); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._x3 = x, this._y3 = y; + break; + case 1: + this._point = 2; + this._context.moveTo(this._x4 = x, this._y4 = y); + break; + case 2: + this._point = 3; + this._x5 = x, this._y5 = y; + break; + default: + cardinal_point(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +/* harmony default export */ var cardinalClosed = ((function custom(tension) { + function cardinal(context) { + return new CardinalClosed(context, tension); + } + cardinal.tension = function(tension2) { + return custom(+tension2); + }; + return cardinal; +})(0)); + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/cardinalOpen.js + +function CardinalOpen(context, tension) { + this._context = context; + this._k = (1 - tension) / 6; +} +CardinalOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; + this._point = 0; + }, + lineEnd: function() { + if (this._line || this._line !== 0 && this._point === 3) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); + break; + case 3: + this._point = 4; + default: + cardinal_point(this, x, y); + break; + } + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +/* harmony default export */ var cardinalOpen = ((function custom(tension) { + function cardinal(context) { + return new CardinalOpen(context, tension); + } + cardinal.tension = function(tension2) { + return custom(+tension2); + }; + return cardinal; +})(0)); + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/math.js +const math_abs = Math.abs; +const atan2 = Math.atan2; +const cos = Math.cos; +const math_max = Math.max; +const math_min = Math.min; +const sin = Math.sin; +const sqrt = Math.sqrt; +const epsilon = 1e-12; +const pi = Math.PI; +const halfPi = pi / 2; +const tau = 2 * pi; +function acos(x) { + return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); +} +function asin(x) { + return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/catmullRom.js + + +function catmullRom_point(that, x, y) { + var x1 = that._x1, y1 = that._y1, x2 = that._x2, y2 = that._y2; + if (that._l01_a > epsilon) { + var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, n = 3 * that._l01_a * (that._l01_a + that._l12_a); + x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n; + y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n; + } + if (that._l23_a > epsilon) { + var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, m = 3 * that._l23_a * (that._l23_a + that._l12_a); + x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m; + y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m; + } + that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2); +} +function CatmullRom(context, alpha) { + this._context = context; + this._alpha = alpha; +} +CatmullRom.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; + this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: + this._context.lineTo(this._x2, this._y2); + break; + case 3: + this.point(this._x2, this._y2); + break; + } + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) { + var x23 = this._x2 - x, y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + default: + catmullRom_point(this, x, y); + break; + } + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +/* harmony default export */ var catmullRom = ((function custom(alpha) { + function catmullRom(context) { + return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0); + } + catmullRom.alpha = function(alpha2) { + return custom(+alpha2); + }; + return catmullRom; +})(0.5)); + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/catmullRomClosed.js + + + +function CatmullRomClosed(context, alpha) { + this._context = context; + this._alpha = alpha; +} +CatmullRomClosed.prototype = { + areaStart: src_noop, + areaEnd: src_noop, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; + this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 1: { + this._context.moveTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 2: { + this._context.lineTo(this._x3, this._y3); + this._context.closePath(); + break; + } + case 3: { + this.point(this._x3, this._y3); + this.point(this._x4, this._y4); + this.point(this._x5, this._y5); + break; + } + } + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) { + var x23 = this._x2 - x, y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + switch (this._point) { + case 0: + this._point = 1; + this._x3 = x, this._y3 = y; + break; + case 1: + this._point = 2; + this._context.moveTo(this._x4 = x, this._y4 = y); + break; + case 2: + this._point = 3; + this._x5 = x, this._y5 = y; + break; + default: + catmullRom_point(this, x, y); + break; + } + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +/* harmony default export */ var catmullRomClosed = ((function custom(alpha) { + function catmullRom(context) { + return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0); + } + catmullRom.alpha = function(alpha2) { + return custom(+alpha2); + }; + return catmullRom; +})(0.5)); + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/catmullRomOpen.js + + +function CatmullRomOpen(context, alpha) { + this._context = context; + this._alpha = alpha; +} +CatmullRomOpen.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; + this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; + }, + lineEnd: function() { + if (this._line || this._line !== 0 && this._point === 3) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) { + var x23 = this._x2 - x, y23 = this._y2 - y; + this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); + } + switch (this._point) { + case 0: + this._point = 1; + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); + break; + case 3: + this._point = 4; + default: + catmullRom_point(this, x, y); + break; + } + this._l01_a = this._l12_a, this._l12_a = this._l23_a; + this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; + this._x0 = this._x1, this._x1 = this._x2, this._x2 = x; + this._y0 = this._y1, this._y1 = this._y2, this._y2 = y; + } +}; +/* harmony default export */ var catmullRomOpen = ((function custom(alpha) { + function catmullRom(context) { + return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0); + } + catmullRom.alpha = function(alpha2) { + return custom(+alpha2); + }; + return catmullRom; +})(0.5)); + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/monotone.js +function sign(x) { + return x < 0 ? -1 : 1; +} +function slope3(that, x2, y2) { + var h0 = that._x1 - that._x0, h1 = x2 - that._x1, s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), p = (s0 * h1 + s1 * h0) / (h0 + h1); + return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0; +} +function slope2(that, t) { + var h = that._x1 - that._x0; + return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t; +} +function monotone_point(that, t0, t1) { + var x0 = that._x0, y0 = that._y0, x1 = that._x1, y1 = that._y1, dx = (x1 - x0) / 3; + that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1); +} +function MonotoneX(context) { + this._context = context; +} +MonotoneX.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN; + this._point = 0; + }, + lineEnd: function() { + switch (this._point) { + case 2: + this._context.lineTo(this._x1, this._y1); + break; + case 3: + monotone_point(this, this._t0, slope2(this, this._t0)); + break; + } + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + var t1 = NaN; + x = +x, y = +y; + if (x === this._x1 && y === this._y1) + return; + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + monotone_point(this, slope2(this, t1 = slope3(this, x, y)), t1); + break; + default: + monotone_point(this, this._t0, t1 = slope3(this, x, y)); + break; + } + this._x0 = this._x1, this._x1 = x; + this._y0 = this._y1, this._y1 = y; + this._t0 = t1; + } +}; +function MonotoneY(context) { + this._context = new ReflectContext(context); +} +(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) { + MonotoneX.prototype.point.call(this, y, x); +}; +function ReflectContext(context) { + this._context = context; +} +ReflectContext.prototype = { + moveTo: function(x, y) { + this._context.moveTo(y, x); + }, + closePath: function() { + this._context.closePath(); + }, + lineTo: function(x, y) { + this._context.lineTo(y, x); + }, + bezierCurveTo: function(x1, y1, x2, y2, x, y) { + this._context.bezierCurveTo(y1, x1, y2, x2, y, x); + } +}; +function monotoneX(context) { + return new MonotoneX(context); +} +function monotoneY(context) { + return new MonotoneY(context); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/natural.js +function Natural(context) { + this._context = context; +} +Natural.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = []; + this._y = []; + }, + lineEnd: function() { + var x = this._x, y = this._y, n = x.length; + if (n) { + this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]); + if (n === 2) { + this._context.lineTo(x[1], y[1]); + } else { + var px = controlPoints(x), py = controlPoints(y); + for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) { + this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]); + } + } + } + if (this._line || this._line !== 0 && n === 1) + this._context.closePath(); + this._line = 1 - this._line; + this._x = this._y = null; + }, + point: function(x, y) { + this._x.push(+x); + this._y.push(+y); + } +}; +function controlPoints(x) { + var i, n = x.length - 1, m, a = new Array(n), b = new Array(n), r = new Array(n); + a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1]; + for (i = 1; i < n - 1; ++i) + a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1]; + a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n]; + for (i = 1; i < n; ++i) + m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1]; + a[n - 1] = r[n - 1] / b[n - 1]; + for (i = n - 2; i >= 0; --i) + a[i] = (r[i] - a[i + 1]) / b[i]; + b[n - 1] = (x[n] + a[n - 1]) / 2; + for (i = 0; i < n - 1; ++i) + b[i] = 2 * x[i + 1] - a[i + 1]; + return [a, b]; +} +/* harmony default export */ function natural(context) { + return new Natural(context); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/linearClosed.js + +function LinearClosed(context) { + this._context = context; +} +LinearClosed.prototype = { + areaStart: src_noop, + areaEnd: src_noop, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._point) + this._context.closePath(); + }, + point: function(x, y) { + x = +x, y = +y; + if (this._point) + this._context.lineTo(x, y); + else + this._point = 1, this._context.moveTo(x, y); + } +}; +/* harmony default export */ function linearClosed(context) { + return new LinearClosed(context); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/linear.js +function Linear(context) { + this._context = context; +} +Linear.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + default: + this._context.lineTo(x, y); + break; + } + } +}; +/* harmony default export */ function curve_linear(context) { + return new Linear(context); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/curve/step.js +function Step(context, t) { + this._context = context; + this._t = t; +} +Step.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = this._y = NaN; + this._point = 0; + }, + lineEnd: function() { + if (0 < this._t && this._t < 1 && this._point === 2) + this._context.lineTo(this._x, this._y); + if (this._line || this._line !== 0 && this._point === 1) + this._context.closePath(); + if (this._line >= 0) + this._t = 1 - this._t, this._line = 1 - this._line; + }, + point: function(x, y) { + x = +x, y = +y; + switch (this._point) { + case 0: + this._point = 1; + this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); + break; + case 1: + this._point = 2; + default: { + if (this._t <= 0) { + this._context.lineTo(this._x, y); + this._context.lineTo(x, y); + } else { + var x1 = this._x * (1 - this._t) + x * this._t; + this._context.lineTo(x1, this._y); + this._context.lineTo(x1, y); + } + break; + } + } + this._x = x, this._y = y; + } +}; +/* harmony default export */ function step(context) { + return new Step(context, 0.5); +} +function stepBefore(context) { + return new Step(context, 0); +} +function stepAfter(context) { + return new Step(context, 1); +} + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/shape.ts + + + + +function getGroupedDataPointsFn(d) { + const $$ = this; + let fn; + if ($$.isLineType(d)) { + fn = $$.generateGetLinePoints($$.getShapeIndices($$.isLineType)); + } else if ($$.isBarType(d)) { + fn = $$.generateGetBarPoints($$.getShapeIndices($$.isBarType)); + } + return fn; +} +/* harmony default export */ var shape = ({ + /** + * Get the shape draw function + * @returns {object} + * @private + */ + getDrawShape() { + const $$ = this; + const isRotated = $$.config.axis_rotated; + const { hasRadar, hasTreemap } = $$.state; + const shape = { type: {}, indices: {}, pos: {} }; + !hasTreemap && ["bar", "candlestick", "line", "area"].forEach((v) => { + const name = capitalize(/^(bubble|scatter)$/.test(v) ? "line" : v); + if ($$.hasType(v) || $$.hasTypeOf(name) || v === "line" && ($$.hasType("bubble") || $$.hasType("scatter"))) { + const indices = $$.getShapeIndices($$[`is${name}Type`]); + const drawFn = $$[`generateDraw${name}`]; + shape.indices[v] = indices; + shape.type[v] = drawFn ? drawFn.bind($$)(indices, false) : void 0; + } + }); + if (!$$.hasArcType() || hasRadar || hasTreemap) { + let cx; + let cy; + if (!hasTreemap) { + cx = hasRadar ? $$.radarCircleX : isRotated ? $$.circleY : $$.circleX; + cy = hasRadar ? $$.radarCircleY : isRotated ? $$.circleX : $$.circleY; + } + shape.pos = { + xForText: $$.generateXYForText(shape.indices, true), + yForText: $$.generateXYForText(shape.indices, false), + cx: (cx || function() { + }).bind($$), + cy: (cy || function() { + }).bind($$) + }; + } + return shape; + }, + /** + * Get shape's indices according it's position within each axis tick. + * + * From the below example, indices will be: + * ==> {data1: 0, data2: 0, data3: 1, data4: 1, __max__: 1} + * + * data1 data3 data1 data3 + * data2 data4 data2 data4 + * ------------------------- + * 0 1 + * @param {Function} typeFilter Chart type filter function + * @returns {object} Indices object with its position + */ + getShapeIndices(typeFilter) { + const $$ = this; + const { config } = $$; + const xs = config.data_xs; + const hasXs = notEmpty(xs); + const indices = {}; + let i = hasXs ? {} : 0; + if (hasXs) { + getUnique(Object.keys(xs).map((v) => xs[v])).forEach((v) => { + i[v] = 0; + indices[v] = {}; + }); + } + $$.filterTargetsToShow($$.data.targets.filter(typeFilter, $$)).forEach((d) => { + var _a; + const xKey = d.id in xs ? xs[d.id] : ""; + const ind = xKey ? indices[xKey] : indices; + for (let j = 0, groups; groups = config.data_groups[j]; j++) { + if (groups.indexOf(d.id) < 0) { + continue; + } + for (let k = 0, key; key = groups[k]; k++) { + if (key in ind) { + ind[d.id] = ind[key]; + break; + } + if (d.id !== key && xKey) { + ind[key] = (_a = ind[d.id]) != null ? _a : i[xKey]; + } + } + } + if (isUndefined(ind[d.id])) { + ind[d.id] = xKey ? i[xKey]++ : i++; + ind.__max__ = (xKey ? i[xKey] : i) - 1; + } + }); + return indices; + }, + /** + * Get indices value based on data ID value + * @param {object} indices Indices object + * @param {object} d Data row + * @param {string} caller Caller function name (Used only for 'sparkline' plugin) + * @returns {object} Indices object + * @private + */ + getIndices(indices, d, caller) { + const $$ = this; + const { data_xs: xs, bar_indices_removeNull: removeNull } = $$.config; + const { id, index } = d; + if ($$.isBarType(id) && removeNull) { + const ind = {}; + $$.getAllValuesOnIndex(index, true).forEach((v, i) => { + ind[v.id] = i; + ind.__max__ = i; + }); + return ind; + } + return notEmpty(xs) ? indices[xs[id]] : indices; + }, + /** + * Get indices max number + * @param {object} indices Indices object + * @returns {number} Max number + * @private + */ + getIndicesMax(indices) { + return notEmpty(this.config.data_xs) ? ( + // if is multiple xs, return total sum of xs' __max__ value + Object.keys(indices).map((v) => indices[v].__max__ || 0).reduce((acc, curr) => acc + curr) + ) : indices.__max__; + }, + getShapeX(offset, indices, isSub) { + const $$ = this; + const { config, scale } = $$; + const currScale = isSub ? scale.subX : scale.zoom || scale.x; + const barOverlap = config.bar_overlap; + const barPadding = config.bar_padding; + const sum = (p, c) => p + c; + const halfWidth = isObjectType(offset) && (offset._$total.length ? offset._$total.reduce(sum) / 2 : 0); + return (d) => { + const ind = $$.getIndices(indices, d, "getShapeX"); + const index = d.id in ind ? ind[d.id] : 0; + const targetsNum = (ind.__max__ || 0) + 1; + let x = 0; + if (notEmpty(d.x)) { + const xPos = currScale(d.x, true); + if (halfWidth) { + const offsetWidth = offset[d.id] || offset._$width; + x = barOverlap ? xPos - offsetWidth / 2 : xPos - offsetWidth + offset._$total.slice(0, index + 1).reduce(sum) - halfWidth; + } else { + x = xPos - (isNumber(offset) ? offset : offset._$width) * (targetsNum / 2 - (barOverlap ? 1 : index)); + } + } + if (offset && x && targetsNum > 1 && barPadding) { + if (index) { + x += barPadding * index; + } + if (targetsNum > 2) { + x -= (targetsNum - 1) * barPadding / 2; + } else if (targetsNum === 2) { + x -= barPadding / 2; + } + } + return x; + }; + }, + getShapeY(isSub) { + const $$ = this; + const isStackNormalized = $$.isStackNormalized(); + return (d) => { + let { value } = d; + if (isNumber(d)) { + value = d; + } else if ($$.isAreaRangeType(d)) { + value = $$.getBaseValue(d, "mid"); + } else if (isStackNormalized) { + value = $$.getRatio("index", d, true); + } else if ($$.isBubbleZType(d)) { + value = $$.getBubbleZData(d.value, "y"); + } else if ($$.isBarRangeType(d)) { + value = value[1]; + } + return $$.getYScaleById(d.id, isSub)(value); + }; + }, + /** + * Get shape based y Axis min value + * @param {string} id Data id + * @returns {number} + * @private + */ + getShapeYMin(id) { + const $$ = this; + const axisId = $$.axis.getId(id); + const scale = $$.scale[axisId]; + const [yMin] = scale.domain(); + const inverted = $$.config[`axis_${axisId}_inverted`]; + return !$$.isGrouped(id) && !inverted && yMin > 0 ? yMin : 0; + }, + /** + * Get Shape's offset data + * @param {Function} typeFilter Type filter function + * @returns {object} + * @private + */ + getShapeOffsetData(typeFilter) { + const $$ = this; + const targets = $$.orderTargets( + $$.filterTargetsToShow($$.data.targets.filter(typeFilter, $$)) + ); + const isStackNormalized = $$.isStackNormalized(); + const shapeOffsetTargets = targets.map((target) => { + let rowValues = target.values; + const values = {}; + if ($$.isStepType(target)) { + rowValues = $$.convertValuesToStep(rowValues); + } + const rowValueMapByXValue = rowValues.reduce((out, d) => { + const key = Number(d.x); + out[key] = d; + values[key] = isStackNormalized ? $$.getRatio("index", d, true) : d.value; + return out; + }, {}); + return { + id: target.id, + rowValues, + rowValueMapByXValue, + values + }; + }); + const indexMapByTargetId = targets.reduce((out, { id }, index) => { + out[id] = index; + return out; + }, {}); + return { indexMapByTargetId, shapeOffsetTargets }; + }, + getShapeOffset(typeFilter, indices, isSub) { + const $$ = this; + const { shapeOffsetTargets, indexMapByTargetId } = $$.getShapeOffsetData( + typeFilter + ); + const groupsZeroAs = $$.config.data_groupsZeroAs; + return (d, idx) => { + const { id, value, x } = d; + const ind = $$.getIndices(indices, d); + const scale = $$.getYScaleById(id, isSub); + if ($$.isBarRangeType(d)) { + return scale(value[0]); + } + const dataXAsNumber = Number(x); + const y0 = scale(groupsZeroAs === "zero" ? 0 : $$.getShapeYMin(id)); + let offset = y0; + shapeOffsetTargets.filter((t) => t.id !== id && ind[t.id] === ind[id]).forEach((t) => { + const { + id: tid, + rowValueMapByXValue, + rowValues, + values: tvalues + } = t; + if (indexMapByTargetId[tid] < indexMapByTargetId[id]) { + const rValue = tvalues[dataXAsNumber]; + let row = rowValues[idx]; + if (!row || Number(row.x) !== dataXAsNumber) { + row = rowValueMapByXValue[dataXAsNumber]; + } + if ((row == null ? void 0 : row.value) * value >= 0 && isNumber(rValue)) { + const addOffset = value === 0 ? groupsZeroAs === "positive" && rValue > 0 || groupsZeroAs === "negative" && rValue < 0 : true; + if (addOffset) { + offset += scale(rValue) - y0; + } + } + } + }); + return offset; + }; + }, + /** + * Get data's y coordinate + * @param {object} d Target data + * @param {number} i Index number + * @returns {number} y coordinate + * @private + */ + circleY(d, i) { + const $$ = this; + const id = d.id; + let points; + if ($$.isGrouped(id)) { + points = getGroupedDataPointsFn.bind($$)(d); + } + return points ? points(d, i)[0][1] : $$.getYScaleById(id)($$.getBaseValue(d)); + }, + getBarW(type, axis, targetsNum) { + var _a, _b, _c, _d, _e; + const $$ = this; + const { config, org, scale } = $$; + const maxDataCount = $$.getMaxDataCount(); + const isGrouped = type === "bar" && ((_a = config.data_groups) == null ? void 0 : _a.length); + const configName = `${type}_width`; + const { k } = (_c = (_b = $$.getZoomTransform) == null ? void 0 : _b.call($$)) != null ? _c : { k: 1 }; + const xMinMax = [ + (_d = config.axis_x_min) != null ? _d : org.xDomain[0], + (_e = config.axis_x_max) != null ? _e : org.xDomain[1] + ].map($$.axis.isTimeSeries() ? parseDate.bind($$) : Number); + let tickInterval = axis.tickInterval(maxDataCount); + if (scale.zoom && !$$.axis.isCategorized() && k > 1) { + const isSameMinMax = xMinMax.every((v, i) => v === org.xDomain[i]); + tickInterval = org.xDomain.map((v, i) => { + const value = isSameMinMax ? v : v - Math.abs(xMinMax[i]); + return scale.zoom(value); + }).reduce((a, c) => Math.abs(a) + c) / maxDataCount; + } + const getWidth = (id) => { + const width = id ? config[configName][id] : config[configName]; + const ratio = id ? width.ratio : config[`${configName}_ratio`]; + const max = id ? width.max : config[`${configName}_max`]; + const w = isNumber(width) ? width : targetsNum ? tickInterval * ratio / targetsNum : 0; + return max && w > max ? max : w; + }; + let result = getWidth(); + if (!isGrouped && isObjectType(config[configName])) { + result = { _$width: result, _$total: [] }; + $$.filterTargetsToShow($$.data.targets).forEach((v) => { + if (config[configName][v.id]) { + result[v.id] = getWidth(v.id); + result._$total.push(result[v.id] || result._$width); + } + }); + } + return result; + }, + /** + * Get shape element + * @param {string} shapeName Shape string + * @param {number} i Index number + * @param {string} id Data series id + * @returns {d3Selection} + * @private + */ + getShapeByIndex(shapeName, i, id) { + const $$ = this; + const { $el } = $$; + const suffix = isValue(i) ? `-${i}` : ``; + let shape = $el[shapeName]; + if (shape && !shape.empty()) { + shape = shape.filter((d) => id ? d.id === id : true).filter((d) => isValue(i) ? d.index === i : true); + } else { + shape = (id ? $el.main.selectAll( + `.${classes[`${shapeName}s`]}${$$.getTargetSelectorSuffix(id)}` + ) : $el.main).selectAll(`.${classes[shapeName]}${suffix}`); + } + return shape; + }, + isWithinShape(that, d) { + var _a; + const $$ = this; + const shape = src_select(that); + let isWithin; + if (!$$.isTargetToShow(d.id)) { + isWithin = false; + } else if ((_a = $$.hasValidPointType) == null ? void 0 : _a.call($$, that.nodeName)) { + isWithin = $$.isStepType(d) ? $$.isWithinStep(that, $$.getYScaleById(d.id)(d.value)) : $$.isWithinCircle( + that, + $$.isBubbleType(d) ? $$.pointSelectR(d) * 1.5 : 0 + ); + } else if (that.nodeName === "path") { + isWithin = shape.classed(classes.bar) ? $$.isWithinBar(that) : true; + } + return isWithin; + }, + getInterpolate(d) { + const $$ = this; + const interpolation = $$.getInterpolateType(d); + return { + basis: curve_basis, + "basis-closed": curve_basisClosed, + "basis-open": basisOpen, + bundle: bundle, + cardinal: cardinal, + "cardinal-closed": cardinalClosed, + "cardinal-open": cardinalOpen, + "catmull-rom": catmullRom, + "catmull-rom-closed": catmullRomClosed, + "catmull-rom-open": catmullRomOpen, + "monotone-x": monotoneX, + "monotone-y": monotoneY, + natural: natural, + "linear-closed": linearClosed, + linear: curve_linear, + step: step, + "step-after": stepAfter, + "step-before": stepBefore + }[interpolation]; + }, + getInterpolateType(d) { + const $$ = this; + const { config } = $$; + const type = config.spline_interpolation_type; + const interpolation = $$.isInterpolationType(type) ? type : "cardinal"; + return $$.isSplineType(d) ? interpolation : $$.isStepType(d) ? config.line_step_type : "linear"; + }, + isWithinBar(that) { + const mouse = getPointer(this.state.event, that); + const list = getRectSegList(that); + const [seg0, seg1] = list; + const x = Math.min(seg0.x, seg1.x); + const y = Math.min(seg0.y, seg1.y); + const offset = this.config.bar_sensitivity; + const { width, height } = that.getBBox(); + const sx = x - offset; + const ex = x + width + offset; + const sy = y + height + offset; + const ey = y - offset; + const isWithin = sx < mouse[0] && mouse[0] < ex && ey < mouse[1] && mouse[1] < sy; + return isWithin; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/ChartInternal.ts +var ChartInternal_defProp = Object.defineProperty; +var ChartInternal_defNormalProp = (obj, key, value) => key in obj ? ChartInternal_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var ChartInternal_publicField = (obj, key, value) => { + ChartInternal_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +class ChartInternal { + constructor(api) { + ChartInternal_publicField(this, "api"); + // API interface + ChartInternal_publicField(this, "config"); + // config object + ChartInternal_publicField(this, "cache"); + // cache instance + ChartInternal_publicField(this, "$el"); + // elements + ChartInternal_publicField(this, "state"); + // state variables + ChartInternal_publicField(this, "charts"); + // all Chart instances array within page (equivalent of 'bb.instances') + // data object + ChartInternal_publicField(this, "data", { + xs: {}, + targets: [] + }); + // Axis + ChartInternal_publicField(this, "axis"); + // Axis + // scales + ChartInternal_publicField(this, "scale", { + x: null, + y: null, + y2: null, + subX: null, + subY: null, + subY2: null, + zoom: null + }); + // original values + ChartInternal_publicField(this, "org", { + xScale: null, + xDomain: null + }); + // formatter function + ChartInternal_publicField(this, "color"); + ChartInternal_publicField(this, "patterns"); + ChartInternal_publicField(this, "levelColor"); + ChartInternal_publicField(this, "point"); + ChartInternal_publicField(this, "brush"); + // format function + ChartInternal_publicField(this, "format", { + extraLineClasses: null, + xAxisTick: null, + dataTime: null, + // dataTimeFormat + defaultAxisTime: null, + // defaultAxisTimeFormat + axisTime: null + // axisTimeFormat + }); + const $$ = this; + $$.api = api; + $$.config = new Options(); + $$.cache = new Cache(); + const store = new Store(); + $$.$el = store.getStore("element"); + $$.state = store.getStore("state"); + $$.$T = $$.$T.bind($$); + } + /** + * Get the selection based on transition config + * @param {SVGElement|d3Selection} selection Target selection + * @param {boolean} force Force transition + * @param {string} name Transition name + * @returns {d3Selection} + * @private + */ + $T(selection, force, name) { + const { config, state } = this; + const duration = config.transition_duration; + const subchart = config.subchart_show; + let t = selection; + if (t) { + if ("tagName" in t) { + t = src_select(t); + } + const transit = (force !== false && duration || force) && (!state.zooming || state.dragging) && !state.resizing && state.rendered && !subchart; + t = transit ? t.transition(name).duration(duration) : t; + } + return t; + } + beforeInit() { + const $$ = this; + $$.callPluginHook("$beforeInit"); + callFn($$.config.onbeforeinit, $$.api); + } + afterInit() { + const $$ = this; + $$.callPluginHook("$afterInit"); + callFn($$.config.onafterinit, $$.api); + } + init() { + const $$ = this; + const { config, state, $el } = $$; + const useCssRule = config.boost_useCssRule; + checkModuleImport($$); + state.hasRadar = !state.hasAxis && $$.hasType("radar"); + state.hasFunnel = !state.hasAxis && $$.hasType("funnel"); + state.hasTreemap = !state.hasAxis && $$.hasType("treemap"); + state.hasAxis = !$$.hasArcType() && !state.hasFunnel && !state.hasTreemap; + state.datetimeId = `bb-${+/* @__PURE__ */ new Date() * getRandom()}`; + if (useCssRule) { + const styleEl = browser_doc.createElement("style"); + styleEl.type = "text/css"; + browser_doc.head.appendChild(styleEl); + state.style = { + rootSelctor: `.${state.datetimeId}`, + sheet: styleEl.sheet + }; + $el.style = styleEl; + } + const bindto = { + element: config.bindto, + classname: "bb" + }; + if (isObject(config.bindto)) { + bindto.element = config.bindto.element || "#chart"; + bindto.classname = config.bindto.classname || bindto.classname; + } + $el.chart = isFunction(bindto.element.node) ? config.bindto.element : src_select(bindto.element || []); + if ($el.chart.empty()) { + $el.chart = src_select(browser_doc.body.appendChild(browser_doc.createElement("div"))); + } + $el.chart.html("").classed(bindto.classname, true).classed(state.datetimeId, useCssRule).style("position", "relative"); + $$.initParams(); + $$.initToRender(); + } + /** + * Initialize the rendering process + * @param {boolean} forced Force to render process + * @private + */ + initToRender(forced) { + const $$ = this; + const { config, state, $el: { chart } } = $$; + const isHidden = () => chart.style("display") === "none" || chart.style("visibility") === "hidden"; + const isLazy = config.render.lazy || isHidden(); + const MutationObserver = win.MutationObserver; + if (isLazy && MutationObserver && config.render.observe !== false && !forced) { + new MutationObserver((mutation, observer) => { + if (!isHidden()) { + observer.disconnect(); + !state.rendered && $$.initToRender(true); + } + }).observe(chart.node(), { + attributes: true, + attributeFilter: ["class", "style"] + }); + } + if (!isLazy || forced) { + $$.convertData(config, (res) => { + $$.initWithData(res); + $$.afterInit(); + }); + } + } + initParams() { + var _a; + const $$ = this; + const { config, format: format2, state } = $$; + const isRotated = config.axis_rotated; + $$.color = $$.generateColor(); + $$.levelColor = $$.generateLevelColor(); + if (config.padding === false) { + config.axis_x_show = false; + config.axis_y_show = false; + config.axis_y2_show = false; + config.subchart_show = false; + } + if ($$.hasPointType() || ((_a = $$.hasLegendDefsPoint) == null ? void 0 : _a.call($$))) { + $$.point = $$.generatePoint(); + } + if (state.hasAxis) { + $$.initClip(); + format2.extraLineClasses = $$.generateExtraLineClass(); + format2.dataTime = config.data_xLocaltime ? timeParse : utcParse; + format2.axisTime = config.axis_x_localtime ? timeFormat : utcFormat; + const isDragZoom = $$.config.zoom_enabled && $$.config.zoom_type === "drag"; + format2.defaultAxisTime = (d) => { + const { x, zoom } = $$.scale; + const isZoomed = isDragZoom ? zoom : zoom && x.orgDomain().toString() !== zoom.domain().toString(); + const specifier = d.getMilliseconds() && ".%L" || d.getSeconds() && ".:%S" || d.getMinutes() && "%I:%M" || d.getHours() && "%I %p" || d.getDate() !== 1 && "%b %d" || isZoomed && d.getDate() === 1 && "%b'%y" || d.getMonth() && "%-m/%-d" || "%Y"; + return format2.axisTime(specifier)(d); + }; + } + state.isLegendRight = config.legend_position === "right"; + state.isLegendInset = config.legend_position === "inset"; + state.isLegendTop = config.legend_inset_anchor === "top-left" || config.legend_inset_anchor === "top-right"; + state.isLegendLeft = config.legend_inset_anchor === "top-left" || config.legend_inset_anchor === "bottom-left"; + state.rotatedPadding.top = $$.getResettedPadding(state.rotatedPadding.top); + state.rotatedPadding.right = isRotated && !config.axis_x_show ? 0 : 30; + state.inputType = convertInputType( + config.interaction_inputType_mouse, + config.interaction_inputType_touch + ); + } + initWithData(data2) { + var _a, _b, _c; + const $$ = this; + const { config, scale: scale2, state, $el, org } = $$; + const { hasAxis, hasFunnel, hasTreemap } = state; + const hasInteraction = config.interaction_enabled; + const hasPolar = $$.hasType("polar"); + const labelsBGColor = config.data_labels_backgroundColors; + if (hasAxis) { + $$.axis = $$.getAxisInstance(); + config.zoom_enabled && $$.initZoom(); + } + $$.data.xs = {}; + $$.data.targets = $$.convertDataToTargets(data2); + if (config.data_filter) { + $$.data.targets = $$.data.targets.filter(config.data_filter.bind($$.api)); + } + if (config.data_hide) { + $$.addHiddenTargetIds( + config.data_hide === true ? $$.mapToIds($$.data.targets) : config.data_hide + ); + } + if (config.legend_hide) { + $$.addHiddenLegendIds( + config.legend_hide === true ? $$.mapToIds($$.data.targets) : config.legend_hide + ); + } + $$.updateSizes(); + $$.updateScales(true); + if (hasAxis) { + const { x, y, y2, subX, subY, subY2 } = scale2; + if (x) { + x.domain(sortValue($$.getXDomain($$.data.targets), !config.axis_x_inverted)); + subX.domain(x.domain()); + org.xDomain = x.domain(); + } + if (y) { + y.domain($$.getYDomain($$.data.targets, "y")); + subY.domain(y.domain()); + } + if (y2) { + y2.domain($$.getYDomain($$.data.targets, "y2")); + subY2 && subY2.domain(y2.domain()); + } + } + $el.svg = $el.chart.append("svg").style("overflow", "hidden").style("display", "block"); + if (hasInteraction && state.inputType) { + const isTouch = state.inputType === "touch"; + const { onclick, onover, onout } = config; + $el.svg.on("click", (onclick == null ? void 0 : onclick.bind($$.api)) || null).on(isTouch ? "touchstart" : "mouseenter", (onover == null ? void 0 : onover.bind($$.api)) || null).on(isTouch ? "touchend" : "mouseleave", (onout == null ? void 0 : onout.bind($$.api)) || null); + } + config.svg_classname && $el.svg.attr("class", config.svg_classname); + const hasColorPatterns = isFunction(config.color_tiles) && $$.patterns; + if (hasAxis || hasColorPatterns || hasPolar || hasTreemap || labelsBGColor || ((_a = $$.hasLegendDefsPoint) == null ? void 0 : _a.call($$))) { + $el.defs = $el.svg.append("defs"); + if (hasAxis) { + ["id", "idXAxis", "idYAxis", "idGrid"].forEach((v) => { + $$.appendClip($el.defs, state.clip[v]); + }); + } + $$.generateTextBGColorFilter(labelsBGColor); + if (hasColorPatterns) { + $$.patterns.forEach((p) => $el.defs.append(() => p.node)); + } + } + $$.updateSvgSize(); + $$.bindResize(); + const main = $el.svg.append("g").classed($COMMON.main, true).attr("transform", hasFunnel || hasTreemap ? null : $$.getTranslate("main")); + $el.main = main; + config.subchart_show && $$.initSubchart(); + config.tooltip_show && $$.initTooltip(); + config.title_text && $$.initTitle(); + !hasTreemap && config.legend_show && $$.initLegend(); + if (config.data_empty_label_text) { + main.append("text").attr("class", `${$TEXT.text} ${$COMMON.empty}`).attr("text-anchor", "middle").attr("dominant-baseline", "middle"); + } + if (hasAxis) { + config.regions.length && $$.initRegion(); + !config.clipPath && $$.axis.init(); + } + main.append("g").classed($COMMON.chart, true).attr("clip-path", hasAxis ? state.clip.path : null); + $$.callPluginHook("$init"); + $$.initChartElements(); + if (hasAxis) { + hasInteraction && ((_b = $$.initEventRect) == null ? void 0 : _b.call($$)); + $$.initGrid(); + config.clipPath && ((_c = $$.axis) == null ? void 0 : _c.init()); + } + $$.updateTargets($$.data.targets); + $$.updateDimension(); + callFn(config.oninit, $$.api); + $$.setBackground(); + $$.redraw({ + withTransition: false, + withTransform: true, + withUpdateXDomain: true, + withUpdateOrgXDomain: true, + withTransitionForAxis: false, + initializing: true + }); + if (config.data_onmin || config.data_onmax) { + const minMax = $$.getMinMaxData(); + callFn(config.data_onmin, $$.api, minMax.min); + callFn(config.data_onmax, $$.api, minMax.max); + } + config.tooltip_show && $$.initShowTooltip(); + state.rendered = true; + } + /** + * Initialize chart elements + * @private + */ + initChartElements() { + const $$ = this; + const { hasAxis, hasRadar, hasTreemap } = $$.state; + const types = []; + if (hasAxis) { + const shapes = ["bar", "bubble", "candlestick", "line"]; + if ($$.config.bar_front) { + shapes.push(shapes.shift()); + } + shapes.forEach((v) => { + const name = capitalize(v); + if (v === "line" && $$.hasTypeOf(name) || $$.hasType(v)) { + types.push(name); + } + }); + } else if (hasTreemap) { + types.push("Treemap"); + } else if ($$.hasType("funnel")) { + types.push("Funnel"); + } else { + const hasPolar = $$.hasType("polar"); + if (!hasRadar) { + types.push("Arc", "Pie"); + } + if ($$.hasType("gauge")) { + types.push("Gauge"); + } else if (hasRadar) { + types.push("Radar"); + } else if (hasPolar) { + types.push("Polar"); + } + } + types.forEach((v) => { + $$[`init${v}`](); + }); + notEmpty($$.config.data_labels) && !$$.hasArcType(null, ["radar"]) && $$.initText(); + } + /** + * Set chart elements + * @private + */ + setChartElements() { + const $$ = this; + const { + $el: { + chart, + svg, + defs, + main, + tooltip: tooltip2, + legend: legend2, + title: title2, + grid, + needle, + arcs: arc, + circle: circles, + bar: bars, + candlestick, + line: lines, + area: areas, + text: texts + } + } = $$; + $$.api.$ = { + chart, + svg, + defs, + main, + tooltip: tooltip2, + legend: legend2, + title: title2, + grid, + arc, + circles, + bar: { bars }, + candlestick, + line: { lines, areas }, + needle, + text: { texts } + }; + } + /** + * Set background element/image + * @private + */ + setBackground() { + const $$ = this; + const { config: { background: bg }, state, $el: { svg } } = $$; + if (notEmpty(bg)) { + const element = svg.select("g").insert(bg.imgUrl ? "image" : "rect", ":first-child"); + if (bg.imgUrl) { + element.attr("href", bg.imgUrl); + } else if (bg.color) { + element.style("fill", bg.color).attr("clip-path", state.clip.path); + } + element.attr("class", bg.class || null).attr("width", "100%").attr("height", "100%"); + } + } + /** + * Update targeted element with given data + * @param {object} targets Data object formatted as 'target' + * @private + */ + updateTargets(targets) { + var _a; + const $$ = this; + const { hasAxis, hasFunnel, hasRadar, hasTreemap } = $$.state; + const helper = (type) => $$[`updateTargetsFor${type}`]( + targets.filter($$[`is${type}Type`].bind($$)) + ); + $$.updateTargetsForText(targets); + if (hasAxis) { + ["bar", "candlestick", "line"].forEach((v) => { + const name = capitalize(v); + if (v === "line" && $$.hasTypeOf(name) || $$.hasType(v)) { + helper(name); + } + }); + $$.updateTargetsForSubchart && $$.updateTargetsForSubchart(targets); + } else if ($$.hasArcType(targets)) { + let type = "Arc"; + if (hasRadar) { + type = "Radar"; + } else if ($$.hasType("polar")) { + type = "Polar"; + } + helper(type); + } else if (hasFunnel) { + helper("Funnel"); + } else if (hasTreemap) { + helper("Treemap"); + } + const hasPointType = $$.hasType("bubble") || $$.hasType("scatter"); + if (hasPointType) { + (_a = $$.updateTargetForCircle) == null ? void 0 : _a.call($$); + } + $$.filterTargetsToShowAtInit(hasPointType); + } + /** + * Display targeted elements at initialization + * @param {boolean} hasPointType whether has point type(bubble, scatter) or not + * @private + */ + filterTargetsToShowAtInit(hasPointType = false) { + const $$ = this; + const { $el: { svg }, $T } = $$; + let selector = `.${$COMMON.target}`; + if (hasPointType) { + selector += `, .${$CIRCLE.chartCircles} > .${$CIRCLE.circles}`; + } + $T(svg.selectAll(selector).filter((d) => $$.isTargetToShow(d.id))).style("opacity", null); + } + getWithOption(options) { + const withOptions = { + Dimension: true, + EventRect: true, + Legend: false, + Subchart: true, + Transform: false, + Transition: true, + TrimXDomain: true, + UpdateXAxis: "UpdateXDomain", + UpdateXDomain: false, + UpdateOrgXDomain: false, + TransitionForExit: "Transition", + TransitionForAxis: "Transition", + Y: true + }; + Object.keys(withOptions).forEach((key) => { + let defVal = withOptions[key]; + if (isString(defVal)) { + defVal = withOptions[defVal]; + } + withOptions[key] = getOption(options, `with${key}`, defVal); + }); + return withOptions; + } + initialOpacity(d) { + const $$ = this; + const { withoutFadeIn } = $$.state; + const r = $$.getBaseValue(d) !== null && withoutFadeIn[d.id] ? null : "0"; + return r; + } + bindResize() { + const $$ = this; + const { config, state } = $$; + const resizeFunction = generateResize(config.resize_timer); + const list = []; + list.push(() => callFn(config.onresize, $$.api)); + if (config.resize_auto) { + list.push(() => { + state.resizing = true; + if (config.legend_show) { + $$.updateSizes(); + $$.updateLegend(); + } + $$.api.flush(false); + }); + } + list.push(() => { + callFn(config.onresized, $$.api); + state.resizing = false; + }); + list.forEach((v) => resizeFunction.add(v)); + $$.resizeFunction = resizeFunction; + win.addEventListener("resize", $$.resizeFunction = resizeFunction); + } + /** + * Call plugin hook + * @param {string} phase The lifecycle phase + * @param {Array} args Arguments + * @private + */ + callPluginHook(phase, ...args) { + this.config.plugins.forEach((v) => { + if (phase === "$beforeInit") { + v.$$ = this; + this.api.plugins.push(v); + } + v[phase](...args); + }); + } +} +util_extend(ChartInternal.prototype, [ + // common + convert, + ChartInternal_data_data, + load, + category, + internals_class, + internals_color, + domain, + interactions_interaction, + format, + internals_legend, + redraw, + scale, + shape, + internals_size, + internals_style, + internals_text, + internals_title, + internals_tooltip, + transform, + internals_type +]); + +;// CONCATENATED MODULE: ./src/config/config.ts + +function loadConfig(config) { + const thisConfig = this.config; + let target; + let keys; + let read; + const find = () => { + const key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } else if (!key) { + return target; + } + return void 0; + }; + Object.keys(thisConfig).forEach((key) => { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + if (this.api) { + this.state.orgConfig = config; + } +} + +;// CONCATENATED MODULE: ./src/Chart/api/chart.ts + + +/* harmony default export */ var chart = ({ + /** + * Resize the chart. + * @function resize + * @instance + * @memberof Chart + * @param {object} size This argument should include width and height in pixels. + * @param {number} [size.width] width value + * @param {number} [size.height] height value + * @example + * // Resize to 640x480 + * chart.resize({ + * width: 640, + * height: 480 + * }); + */ + resize(size) { + const $$ = this.internal; + const { config, state } = $$; + if (state.rendered) { + config.size_width = size ? size.width : null; + config.size_height = size ? size.height : null; + state.resizing = true; + this.flush(false); + $$.resizeFunction(); + } + }, + /** + * Force to redraw. + * - **NOTE:** When zoom/subchart is used, the zoomed state will be resetted. + * @function flush + * @instance + * @memberof Chart + * @param {boolean} [soft] For soft redraw. + * @example + * chart.flush(); + * + * // for soft redraw + * chart.flush(true); + */ + flush(soft) { + var _a, _b; + const $$ = this.internal; + const { state, $el: { zoomResetBtn } } = $$; + if (state.rendered) { + if (state.resizing) { + (_a = $$.brush) == null ? void 0 : _a.updateResize(); + } else { + (_b = $$.axis) == null ? void 0 : _b.setOrient(); + } + zoomResetBtn == null ? void 0 : zoomResetBtn.style("display", "none"); + $$.scale.zoom = null; + soft ? $$.redraw({ + withTransform: true, + withUpdateXDomain: true, + withUpdateOrgXDomain: true, + withLegend: true + }) : $$.updateAndRedraw({ + withLegend: true, + withTransition: false, + withTransitionForTransform: false + }); + if (!state.resizing && $$.brush) { + $$.brush.getSelection().call($$.brush.move); + $$.unselectRect(); + } + } else { + $$.initToRender(true); + } + }, + /** + * Reset the chart object and remove element and events completely. + * @function destroy + * @instance + * @memberof Chart + * @returns {null} + * @example + * chart.destroy(); + */ + destroy() { + const $$ = this.internal; + const { $el: { chart, style, svg } } = $$; + if (notEmpty($$)) { + $$.callPluginHook("$willDestroy"); + $$.charts.splice($$.charts.indexOf(this), 1); + $$.unbindAllEvents(); + svg.select("*").interrupt(); + $$.resizeFunction.clear(); + win.removeEventListener("resize", $$.resizeFunction); + chart.classed("bb", false).style("position", null).selectChildren().remove(); + style && style.parentNode.removeChild(style); + Object.keys(this).forEach((key) => { + key === "internal" && Object.keys($$).forEach((k) => { + $$[k] = null; + }); + this[key] = null; + delete this[key]; + }); + for (const key in this) { + this[key] = () => { + }; + } + } + return null; + }, + /** + * Get or set config option value. + * - **NOTE** + * - The option key name must be specified as the last level. + * - when no argument is given, will return all specified generation options object only. (will exclude any other options not specified at the initialization) + * @function config + * @instance + * @memberof Chart + * @param {string} name The option key name. + * @param {*} [value] The value accepted for indicated option. + * @param {boolean} [redraw] Set to redraw with the new option changes. + * - **NOTE:** Doesn't guarantee work in all circumstances. It can be applied for limited options only. + * @returns {*} + * @example + * + * // Getter + * chart.config("gauge.max"); + * + * // Getter specified with top level key name will not work. + * // The option key name must be specified as the last level. + * // chart.config("gauge"); // will not work + * + * // without any arguments, it returns generation config object + * chart.config(); // {data: { ... }, axis: { ... }, ...} + * + * // Setter + * chart.config("gauge.max", 100); + * + * // Setter specified with top level key name will not work. + * // The option key name must be specified as the last level. + * // chart.config("gauge", {min: 10, max: 20}); // will not work + * + * // Setter & redraw with the new option + * chart.config("gauge.max", 100, true); + */ + config(name, value, redraw) { + const $$ = this.internal; + const { config, state } = $$; + const key = name == null ? void 0 : name.replace(/\./g, "_"); + let res; + if (name && key in config) { + if (isDefined(value)) { + config[key] = value; + res = value; + redraw && this.flush(); + } else { + res = config[key]; + } + } else if (arguments.length === 0 || isEmpty(name)) { + res = state.orgConfig; + } + return res; + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/color.ts +/* harmony default export */ var api_color = ({ + /** + * Get the color + * @function color + * @instance + * @memberof Chart + * @param {string} id id to get the color + * @returns {string} + * @example + * chart.color("data1"); + */ + color(id) { + return this.internal.color(id); + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/data.ts + +const api_data_data = function(targetIds) { + const { targets } = this.internal.data; + if (!isUndefined(targetIds)) { + const ids = isArray(targetIds) ? targetIds : [targetIds]; + return targets.filter((t) => ids.some((v) => v === t.id)); + } + return targets; +}; +util_extend(api_data_data, { + /** + * Get data shown in the chart. + * @function data․shown + * @instance + * @memberof Chart + * @param {string|Array} targetIds If this argument is given, this API filters the data with specified target ids. If this argument is not given, all shown data will be returned. + * @returns {Array} Data objects + * @example + * // Get shown data by filtering to include only data1 data + * chart.data.shown("data1"); + * // --> [{id: "data1", id_org: "data1", values: Array(6)}, ...] + * + * // Get shown data by filtering to include data1 and data2 data + * chart.data.shown(["data1", "data2"]); + * + * // Get all shown data + * chart.data.shown(); + */ + shown: function(targetIds) { + return this.internal.filterTargetsToShow(this.data(targetIds)); + }, + /** + * Get values of the data loaded in the chart. + * @function data․values + * @instance + * @memberof Chart + * @param {string|Array|null} targetIds This API returns the values of specified target. If this argument is not given, null will be retruned + * @param {boolean} [flat=true] Get flatten values + * @returns {Array} Data values + * @example + * // Get data1 values + * chart.data.values("data1"); + * // --> [10, 20, 30, 40] + */ + values: function(targetIds, flat = true) { + let values = null; + if (targetIds) { + const targets = this.data(targetIds); + if (isArray(targets)) { + values = []; + targets.forEach((v) => { + const dataValue = v.values.map((d) => d.value); + flat ? values = values.concat(dataValue) : values.push(dataValue); + }); + } + } + return values; + }, + /** + * Get and set names of the data loaded in the chart. + * @function data․names + * @instance + * @memberof Chart + * @param {object} names If this argument is given, the names of data will be updated. If not given, the current names will be returned. The format of this argument is the same as [data.names](./Options.html#.data%25E2%2580%25A4names). + * @returns {object} Corresponding names according its key value, if specified names values. + * @example + * // Get current names + * chart.data.names(); + * // --> {data1: "test1", data2: "test2"} + * + * // Update names + * chart.data.names({ + * data1: "New Name 1", + * data2: "New Name 2" + * }); + */ + names: function(names) { + const $$ = this.internal; + return $$.updateDataAttributes("names", names); + }, + /** + * Get and set colors of the data loaded in the chart. + * @function data․colors + * @instance + * @memberof Chart + * @param {object} colors If this argument is given, the colors of data will be updated. If not given, the current colors will be returned. The format of this argument is the same as [data.colors](./Options.html#.data%25E2%2580%25A4colors). + * @returns {object} Corresponding data color value according its key value. + * @example + * // Get current colors + * chart.data.colors(); + * // --> {data1: "#00c73c", data2: "#fa7171"} + * + * // Update colors + * chart.data.colors({ + * data1: "#FFFFFF", + * data2: "#000000" + * }); + */ + colors: function(colors) { + return this.internal.updateDataAttributes("colors", colors); + }, + /** + * Get and set axes of the data loaded in the chart. + * - **NOTE:** If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data + * @function data․axes + * @instance + * @memberof Chart + * @param {object} axes If this argument is given, the axes of data will be updated. If not given, the current axes will be returned. The format of this argument is the same as + * @returns {object} Corresponding axes value for data, if specified axes value. + * @example + * // Get current axes + * chart.data.axes(); + * // --> {data1: "y"} + * + * // Update axes + * chart.data.axes({ + * data1: "y", + * data2: "y2" + * }); + */ + axes: function(axes) { + return this.internal.updateDataAttributes("axes", axes); + }, + /** + * Get the minimum data value bound to the chart + * @function data․min + * @instance + * @memberof Chart + * @returns {Array} Data objects + * @example + * // Get current axes + * chart.data.min(); + * // --> [{x: 0, value: 30, id: "data1", index: 0}, ...] + */ + min: function() { + return this.internal.getMinMaxData().min; + }, + /** + * Get the maximum data value bound to the chart + * @function data․max + * @instance + * @memberof Chart + * @returns {Array} Data objects + * @example + * // Get current axes + * chart.data.max(); + * // --> [{x: 3, value: 400, id: "data1", index: 3}, ...] + */ + max: function() { + return this.internal.getMinMaxData().max; + } +}); +/* harmony default export */ var api_data = ({ data: api_data_data }); + +;// CONCATENATED MODULE: ./src/Chart/api/export.ts + + + +const b64EncodeUnicode = (str) => { + var _a, _b; + return (_b = (_a = win).btoa) == null ? void 0 : _b.call( + _a, + encodeURIComponent(str).replace( + /%([0-9A-F]{2})/g, + (match, p) => String.fromCharCode(Number(`0x${p}`)) + ) + ); +}; +function nodeToSvgDataUrl(node, option, orgSize) { + const { width, height } = option || orgSize; + const serializer = new XMLSerializer(); + const clone = node.cloneNode(true); + const cssText = getCssRules(toArray(browser_doc.styleSheets)).filter((r) => r.cssText).map((r) => r.cssText); + clone.setAttribute("xmlns", namespaces.xhtml); + clone.style.margin = "0"; + clone.style.padding = "0"; + if (option.preserveFontStyle) { + clone.querySelectorAll("text").forEach((t) => { + t.innerHTML = ""; + }); + } + const nodeXml = serializer.serializeToString(clone); + const style = browser_doc.createElement("style"); + style.appendChild(browser_doc.createTextNode(cssText.join("\n"))); + const styleXml = serializer.serializeToString(style); + const dataStr = `<svg xmlns="${namespaces.svg}" width="${width}" height="${height}" + viewBox="0 0 ${orgSize.width} ${orgSize.height}" + preserveAspectRatio="${(option == null ? void 0 : option.preserveAspectRatio) === false ? "none" : "xMinYMid meet"}"> + <foreignObject width="100%" height="100%"> + ${styleXml} + ${nodeXml.replace(/(url\()[^#]+/g, "$1")} + </foreignObject></svg>`; + return `data:image/svg+xml;base64,${b64EncodeUnicode(dataStr)}`; +} +function getCoords(elem, svgOffset) { + const { top, left } = svgOffset; + const { x, y } = elem.getBBox(); + const { a, b, c, d, e, f } = elem.getScreenCTM(); + const { width, height } = elem.getBoundingClientRect(); + return { + x: a * x + c * y + e - left, + y: b * x + d * y + f - top + (height - Math.round(height / 4)), + width, + height + }; +} +function getGlyph(svg) { + const { left, top } = svg.getBoundingClientRect(); + const filterFn = (t) => t.textContent || t.childElementCount; + const glyph = []; + toArray(svg.querySelectorAll("text")).filter(filterFn).forEach((t) => { + const getStyleFn = (ts) => { + const { fill, fontFamily, fontSize, textAnchor, transform } = win.getComputedStyle( + ts + ); + const { x, y, width, height } = getCoords(ts, { left, top }); + return { + [ts.textContent]: { + x, + y, + width, + height, + fill, + fontFamily, + fontSize, + textAnchor, + transform + } + }; + }; + if (t.childElementCount > 1) { + const text = []; + toArray(t.querySelectorAll("tspan")).filter(filterFn).forEach((ts) => { + glyph.push(getStyleFn(ts)); + }); + return text; + } else { + glyph.push(getStyleFn(t)); + } + }); + return glyph; +} +function renderText(ctx, glyph) { + glyph.forEach((g) => { + Object.keys(g).forEach((key) => { + const { x, y, width, height, fill, fontFamily, fontSize, transform } = g[key]; + ctx.save(); + ctx.font = `${fontSize} ${fontFamily}`; + ctx.fillStyle = fill; + if (transform === "none") { + ctx.fillText(key, x, y); + } else { + const args = transform.replace(/(matrix|\(|\))/g, "").split(","); + if (args.splice(4).every((v) => +v === 0)) { + args.push(x + width - width / 4); + args.push(y - height + height / 3); + } else { + args.push(x); + args.push(y); + } + ctx.transform(...args); + ctx.fillText(key, 0, 0); + } + ctx.restore(); + }); + }); +} +/* harmony default export */ var api_export = ({ + /** + * Export chart as an image. + * - **NOTE:** + * - IE11 and below not work properly due to the lack of the feature(<a href="https://msdn.microsoft.com/en-us/library/hh834675(v=vs.85).aspx">foreignObject</a>) support + * - Every style applied to the chart & the basic CSS file(ex. billboard.css) should be at same domain as API call context to get correct styled export image. + * @function export + * @instance + * @memberof Chart + * @param {object} option Export option + * @param {string} [option.mimeType="image/png"] The desired output image format. (ex. 'image/png' for png, 'image/jpeg' for jpeg format) + * @param {number} [option.width={currentWidth}] width + * @param {number} [option.height={currentHeigth}] height + * @param {boolean} [option.preserveAspectRatio=true] Preserve aspect ratio on given size + * @param {boolean} [option.preserveFontStyle=false] Preserve font style(font-family).<br> + * **NOTE:** + * - This option is useful when outlink web font style's `font-family` are applied to chart's text element. + * - Text element's position(especially "transformed") can't be preserved correctly according the page's layout condition. + * - If need to preserve accurate text position, embed the web font data within to the page and set `preserveFontStyle=false`. + * - Checkout the embed example: <a href="https://stackblitz.com/edit/zfbya9-8nf9nn?file=index.html">https://stackblitz.com/edit/zfbya9-8nf9nn?file=index.html</a> + * @param {Function} [callback] The callback to be invoked when export is ready. + * @returns {string} dataURI + * @example + * chart.export(); + * // --> "data:image/svg+xml;base64,PHN..." + * + * // Initialize the download automatically + * chart.export({mimeType: "image/png"}, dataUrl => { + * const link = document.createElement("a"); + * + * link.download = `${Date.now()}.png`; + * link.href = dataUrl; + * link.innerHTML = "Download chart as image"; + * + * document.body.appendChild(link); + * }); + * + * // Resize the exported image + * chart.export( + * { + * width: 800, + * height: 600, + * preserveAspectRatio: false, + * preserveFontStyle: false, + * mimeType: "image/png" + * }, + * dataUrl => { ... } + * ); + */ + export(option, callback) { + const $$ = this.internal; + const { state, $el: { chart, svg } } = $$; + const { width, height } = state.current; + const opt = mergeObj({ + width, + height, + preserveAspectRatio: true, + preserveFontStyle: false, + mimeType: "image/png" + }, option); + const svgDataUrl = nodeToSvgDataUrl(chart.node(), opt, { width, height }); + const glyph = opt.preserveFontStyle ? getGlyph(svg.node()) : []; + if (callback && isFunction(callback)) { + const img = new Image(); + img.crossOrigin = "Anonymous"; + img.onload = () => { + const canvas = browser_doc.createElement("canvas"); + const ctx = canvas.getContext("2d"); + canvas.width = opt.width || width; + canvas.height = opt.height || height; + ctx.drawImage(img, 0, 0); + if (glyph.length) { + renderText(ctx, glyph); + glyph.length = 0; + } + callback.bind(this)(canvas.toDataURL(opt.mimeType)); + }; + img.src = svgDataUrl; + } + return svgDataUrl; + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/focus.ts + + +/* harmony default export */ var api_focus = ({ + /** + * This API highlights specified targets and fade out the others.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be highlighted. + * @function focus + * @instance + * @memberof Chart + * @param {string|Array} targetIdsValue Target ids to be highlighted. + * @example + * // data1 will be highlighted and the others will be faded out + * chart.focus("data1"); + * + * // data1 and data2 will be highlighted and the others will be faded out + * chart.focus(["data1", "data2"]); + * + * // all targets will be highlighted + * chart.focus(); + */ + focus(targetIdsValue) { + const $$ = this.internal; + const { state } = $$; + const targetIds = $$.mapToTargetIds(targetIdsValue); + const candidates = $$.$el.svg.selectAll( + $$.selectorTargets(targetIds.filter($$.isTargetToShow, $$)) + ); + this.revert(); + this.defocus(); + candidates.classed($FOCUS.focused, true).classed($FOCUS.defocused, false); + if ($$.hasArcType() && !state.hasRadar) { + $$.expandArc(targetIds); + $$.hasType("gauge") && $$.markOverlapped(targetIdsValue, $$, `.${$GAUGE.gaugeValue}`); + } + $$.toggleFocusLegend(targetIds, true); + state.focusedTargetIds = targetIds; + state.defocusedTargetIds = state.defocusedTargetIds.filter((id) => targetIds.indexOf(id) < 0); + }, + /** + * This API fades out specified targets and reverts the others.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be faded out. + * @function defocus + * @instance + * @memberof Chart + * @param {string|Array} targetIdsValue Target ids to be faded out. + * @example + * // data1 will be faded out and the others will be reverted. + * chart.defocus("data1"); + * + * // data1 and data2 will be faded out and the others will be reverted. + * chart.defocus(["data1", "data2"]); + * + * // all targets will be faded out. + * chart.defocus(); + */ + defocus(targetIdsValue) { + const $$ = this.internal; + const { state } = $$; + const targetIds = $$.mapToTargetIds(targetIdsValue); + const candidates = $$.$el.svg.selectAll( + $$.selectorTargets(targetIds.filter($$.isTargetToShow, $$)) + ); + candidates.classed($FOCUS.focused, false).classed($FOCUS.defocused, true); + if ($$.hasArcType(null, ["polar"])) { + $$.unexpandArc(targetIds); + $$.hasType("gauge") && $$.undoMarkOverlapped($$, `.${$GAUGE.gaugeValue}`); + } + $$.toggleFocusLegend(targetIds, false); + state.focusedTargetIds = state.focusedTargetIds.filter((id) => targetIds.indexOf(id) < 0); + state.defocusedTargetIds = targetIds; + }, + /** + * Revert focused or defocused state to initial state.<br><br> + * You can specify multiple targets by giving an array that includes id as string. If no argument is given, all of targets will be reverted. + * @function revert + * @instance + * @memberof Chart + * @param {string|Array} targetIdsValue Target ids to be reverted + * @example + * // 'data1' will be reverted. + * chart.revert("data1"); + * + * // 'data1' and 'data2' will be reverted. + * chart.revert(["data1", "data2"]); + * + * // all targets will be reverted. + * chart.revert(); + */ + revert(targetIdsValue) { + const $$ = this.internal; + const { config, state, $el } = $$; + const targetIds = $$.mapToTargetIds(targetIdsValue); + const candidates = $el.svg.selectAll($$.selectorTargets(targetIds)); + candidates.classed($FOCUS.focused, false).classed($FOCUS.defocused, false); + $$.hasArcType(null, ["polar"]) && $$.unexpandArc(targetIds); + if (config.legend_show) { + $$.showLegend(targetIds.filter($$.isLegendToShow.bind($$))); + $el.legend.selectAll($$.selectorLegends(targetIds)).filter(function() { + return src_select(this).classed($FOCUS.legendItemFocused); + }).classed($FOCUS.legendItemFocused, false); + } + state.focusedTargetIds = []; + state.defocusedTargetIds = []; + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/legend.ts +const legend_legend = { + /** + * Show legend for each target. + * - **NOTE:** Legend APIs aren't supported for `treemap` type. + * @function legend․show + * @instance + * @memberof Chart + * @param {string|Array} targetIds + * - If targetIds is given, specified target's legend will be shown. + * - If only one target is the candidate, String can be passed. + * - If no argument is given, all of target's legend will be shown. + * @example + * // Show legend for data1. + * chart.legend.show("data1"); + * + * // Show legend for data1 and data2. + * chart.legend.show(["data1", "data2"]); + * + * // Show all legend. + * chart.legend.show(); + */ + show: function(targetIds) { + const $$ = this.internal; + $$.showLegend($$.mapToTargetIds(targetIds)); + $$.updateAndRedraw({ withLegend: true }); + }, + /** + * Hide legend for each target. + * @function legend․hide + * @instance + * @memberof Chart + * @param {string|Array} targetIds + * - If targetIds is given, specified target's legend will be hidden. + * - If only one target is the candidate, String can be passed. + * - If no argument is given, all of target's legend will be hidden. + * @example + * // Hide legend for data1. + * chart.legend.hide("data1"); + * + * // Hide legend for data1 and data2. + * chart.legend.hide(["data1", "data2"]); + * + * // Hide all legend. + * chart.legend.hide(); + */ + hide: function(targetIds) { + const $$ = this.internal; + $$.hideLegend($$.mapToTargetIds(targetIds)); + $$.updateAndRedraw({ withLegend: true }); + } +}; +/* harmony default export */ var api_legend = ({ legend: legend_legend }); + +;// CONCATENATED MODULE: ./src/Chart/api/load.ts + + + +/* harmony default export */ var api_load = ({ + /** + * Load data to the chart.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be toggles. + * - <b>Note:</b> + * - unload should be used if some data needs to be unloaded simultaneously. + * If you call unload API soon after/before load instead of unload param, chart will not be rendered properly because of cancel of animation.<br> + * - done will be called after data loaded, but it's not after rendering. + * It's because rendering will finish after some transition and there is some time lag between loading and rendering + * @function load + * @instance + * @memberof Chart + * @param {object} args The object can consist with following members:<br> + * + * | Key | Type | Description | + * | --- | --- | --- | + * | columns | Array | The `columns` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * | json | Array | The `json` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * | rows | Array | The `rows` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * | url | string | The data from `url` will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added | + * |   | | | + * | append | boolean | Load data appending it to the current dataseries.<br>If the existing chart has`x` value, should provide with corresponding `x` value for newly loaded data. | + * | axes | Object | The axes specified by data.axes will be updated. axes must be Object that has target id as keys. | + * | categories | Array | The categories specified by axis.x.categories or data.x will be updated. categories must be Array. | + * | classes | Object | The classes specified by data.classes will be updated. classes must be Object that has target id as keys. | + * | colors | Object | The colors specified by data.colors will be updated. colors must be Object that has target id as keys. | + * | data | Obejct | Data objects to be loaded. Checkout the example. | + * | done | Function | The specified function will be called after data loaded.| + * | headers | string | Set request header if loading via `data.url`.<br>@see [data․headers](Options.html#.data%25E2%2580%25A4headers) | + * | keys | Object | Choose which JSON objects keys correspond to desired data.<br>**NOTE:** Only for JSON object given as array.<br>@see [data․keys](Options.html#.data%25E2%2580%25A4keys) | + * | mimeType | string | Set 'json' if loading JSON via url.<br>@see [data․mimeType](Options.html#.data%25E2%2580%25A4mimeType) | + * | names | Object | Same as data.names() | + * | resizeAfter | boolean | Resize after the load. Default value is `false`.<br>- This option won't call `onresize` neither `onresized`.<br>- When set to 'true', will call `.flush(true)` at the end of load. | + * | type | string | The type of targets will be updated. | + * | types | Object | The types of targets will be updated. | + * | unload | Array | Specify the data will be unloaded before loading new data. If true given, all of data will be unloaded. If target ids given as String or Array, specified targets will be unloaded. If absent or false given, unload will not occur. | + * | xs | string | Same as data.xs option | + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataFromURL) + * @example + * // Load data1 and unload data2 and data3 + * chart.load({ + * columns: [ + * ["data1", 100, 200, 150, ...], + * ... + * ], + * unload: ["data2", "data3"], + * url: "...", + * done: function() { ... } + * resizeAfter: true // will resize after load + * }); + * @example + * const chart = bb.generate({ + * data: { + * columns: [ + * ["data1", 20, 30, 40] + * ] + * } + * }); + * + * chart.load({ + * columns: [ + * // with 'append' option, the 'data1' will have `[20,30,40,50,60]`. + * ["data1", 50, 60] + * ], + * append: true + * }); + * @example + * const chart = bb.generate({ + * data: { + * x: "x", + * xFormat: "%Y-%m-%dT%H:%M:%S", + * columns: [ + * ["x", "2021-01-03T03:00:00", "2021-01-04T12:00:00", "2021-01-05T21:00:00"], + * ["data1", 36, 30, 24] + * ] + * }, + * axis: { + * x: { + * type: "timeseries" + * } + * } + * }; + * + * chart.load({ + * columns: [ + * // when existing chart has `x` value, should provide correponding 'x' value. + * // with 'append' option, the 'data1' will have `[36,30,24,37]`. + * ["x", "2021-02-01T08:00:00"], + * ["data1", 37] + * ], + * append: true + * }); + * @example + * // myAPI.json + * // { + * // "data1": [220, 240, 270, 250, 280], + * // "data2": [180, 150, 300, 70, 120] + * // } + * + * chart.load({ + * url: './data/myAPI.json', + * mimeType: "json", + * + * // set request header if is needed + * headers: { + * "Content-Type": "text/json" + * } + * }); + * @example + * chart.load({ + * data: [ + * // equivalent as: columns: [["data1", 30, 200, 100]] + * {"data1": 30}, {"data1": 200}, {"data1": 100} + * + * // or + * // equivalent as: columns: [["data1", 10, 20], ["data2", 13, 30]] + * // {"data1": 10, "data2": 13}, {"data1": 20, "data2": 30}} + * ] + * }); + * @example + * chart.load({ + * json: [ + * {name: "www.site1.com", upload: 800, download: 500, total: 400}, + * ], + * keys: { + * x: "name", + * value: ["upload", "download"] + * } + * }); + * @example + * chart.load({ + * json: { + * data1:[30, 20, 50, 40, 60, 50], + * data2:[200, 130, 90, 240, 130, 220], + * } + * }); + */ + load(args) { + const $$ = this.internal; + const { config } = $$; + args.xs && $$.addXs(args.xs); + "names" in args && this.data.names(args.names); + "classes" in args && Object.keys(args.classes).forEach((id) => { + config.data_classes[id] = args.classes[id]; + }); + if ("categories" in args && $$.axis.isCategorized()) { + config.axis_x_categories = args.categories; + } + "axes" in args && Object.keys(args.axes).forEach((id) => { + config.data_axes[id] = args.axes[id]; + }); + "colors" in args && Object.keys(args.colors).forEach((id) => { + config.data_colors[id] = args.colors[id]; + }); + if ("unload" in args && args.unload !== false) { + $$.unload($$.mapToTargetIds(args.unload === true ? null : args.unload), () => { + requestIdleCallback(() => $$.loadFromArgs(args)); + }); + } else { + $$.loadFromArgs(args); + } + }, + /** + * Unload data to the chart.<br><br> + * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be toggles. + * - <b>Note:</b> + * If you call load API soon after/before unload, unload param of load should be used. Otherwise chart will not be rendered properly because of cancel of animation.<br> + * `done` will be called after data loaded, but it's not after rendering. It's because rendering will finish after some transition and there is some time lag between loading and rendering. + * @function unload + * @instance + * @memberof Chart + * @param {object} argsValue + * | key | Type | Description | + * | --- | --- | --- | + * | ids | String | Array | Target id data to be unloaded. If not given, all data will be unloaded. | + * | done | Fuction | Callback after data is unloaded. | + * | resizeAfter | boolean | Resize after the unload. Default value is `false`.<br>- This option won't call `onresize` neither `onresized`.<br>- When set to 'true', will call `.flush(true)` at the end of unload. | + * @example + * // Unload data2 and data3 + * chart.unload({ + * ids: ["data2", "data3"], + * done: function() { + * // called after the unloaded + * }, + * resizeAfter: true // will resize after unload + * }); + */ + unload(argsValue) { + const $$ = this.internal; + let args = argsValue || {}; + isEmpty(args) && this.tooltip.hide(); + if (isArray(args)) { + args = { ids: args }; + } else if (isString(args)) { + args = { ids: [args] }; + } + const ids = $$.mapToTargetIds(args.ids); + $$.unload(ids, () => { + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true, + withLegend: true + }); + $$.cache.remove(ids); + callDone.call($$, args.done, args.resizeAfter); + }); + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/show.ts + +function showHide(show, targetIdsValue, options) { + const $$ = this.internal; + const targetIds = $$.mapToTargetIds(targetIdsValue); + const hiddenIds = $$.state.hiddenTargetIds.map((v) => targetIds.indexOf(v) > -1 && v).filter(Boolean); + $$.state.toggling = true; + $$[`${show ? "remove" : "add"}HiddenTargetIds`](targetIds); + const targets = $$.$el.svg.selectAll($$.selectorTargets(targetIds)); + const opacity = show ? null : "0"; + if (show && hiddenIds.length) { + targets.style("display", null); + callFn($$.config.data_onshown, this, hiddenIds); + } + $$.$T(targets).style("opacity", opacity, "important").call(endall, () => { + if (!show && hiddenIds.length === 0) { + targets.style("display", "none"); + callFn($$.config.data_onhidden, this, targetIds); + } + targets.style("opacity", opacity); + }); + options.withLegend && $$[`${show ? "show" : "hide"}Legend`](targetIds); + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true, + withLegend: true + }); + $$.state.toggling = false; +} +/* harmony default export */ var show = ({ + /** + * Show data series on chart + * @function show + * @instance + * @memberof Chart + * @param {string|Array} [targetIdsValue] The target id value. + * @param {object} [options] The object can consist with following members:<br> + * + * | Key | Type | default | Description | + * | --- | --- | --- | --- | + * | withLegend | boolean | false | whether or not display legend | + * + * @example + * // show 'data1' + * chart.show("data1"); + * + * // show 'data1' and 'data3' + * chart.show(["data1", "data3"]); + */ + show(targetIdsValue, options = {}) { + showHide.call(this, true, targetIdsValue, options); + }, + /** + * Hide data series from chart + * @function hide + * @instance + * @memberof Chart + * @param {string|Array} [targetIdsValue] The target id value. + * @param {object} [options] The object can consist with following members:<br> + * + * | Key | Type | default | Description | + * | --- | --- | --- | --- | + * | withLegend | boolean | false | whether or not display legend | + * + * @example + * // hide 'data1' + * chart.hide("data1"); + * + * // hide 'data1' and 'data3' + * chart.hide(["data1", "data3"]); + */ + hide(targetIdsValue, options = {}) { + showHide.call(this, false, targetIdsValue, options); + }, + /** + * Toggle data series on chart. When target data is hidden, it will show. If is shown, it will hide in vice versa. + * @function toggle + * @instance + * @memberof Chart + * @param {string|Array} [targetIds] The target id value. + * @param {object} [options] The object can consist with following members:<br> + * + * | Key | Type | default | Description | + * | --- | --- | --- | --- | + * | withLegend | boolean | false | whether or not display legend | + * + * @example + * // toggle 'data1' + * chart.toggle("data1"); + * + * // toggle 'data1' and 'data3' + * chart.toggle(["data1", "data3"]); + */ + toggle(targetIds, options = {}) { + const $$ = this.internal; + const targets = { show: [], hide: [] }; + $$.mapToTargetIds(targetIds).forEach((id) => targets[$$.isTargetToShow(id) ? "hide" : "show"].push(id)); + targets.show.length && this.show(targets.show, options); + targets.hide.length && setTimeout(() => this.hide(targets.hide, options), 0); + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/tooltip.ts + + +const tooltip_tooltip = { + /** + * Show tooltip + * @function tooltip․show + * @instance + * @memberof Chart + * @param {object} args The object can consist with following members:<br> + * + * | Key | Type | Description | + * | --- | --- | --- | + * | index | Number | Determine focus by index | + * | x | Number | Date | Determine focus by x Axis index | + * | mouse | Array | Determine x and y coordinate value relative the targeted '.bb-event-rect' x Axis.<br>It should be used along with `data`, `index` or `x` value. The default value is set as `[0,0]` | + * | data | Object | When [data.xs](Options.html#.data%25E2%2580%25A4xs) option is used or [tooltip.grouped](Options.html#.tooltip) set to 'false', `should be used giving this param`.<br><br>**Key:**<br>- x {number | Date}: x Axis value<br>- index {number}: x Axis index (useless for data.xs)<br>- id {string}: data id<br>- value {number}: The corresponding value for tooltip. | + * + * @example + * // show the 2nd x Axis coordinate tooltip + * // for Arc(gauge, donut & pie) and radar type, approch showing tooltip by using "index" number. + * chart.tooltip.show({ + * index: 1 + * }); + * + * // show tooltip for the 3rd x Axis in x:50 and y:100 coordinate of '.bb-event-rect' of the x Axis. + * chart.tooltip.show({ + * x: 2, + * mouse: [50, 100] + * }); + * + * // show tooltip for timeseries x axis + * chart.tooltip.show({ + * x: new Date("2018-01-02 00:00") + * }); + * + * // treemap type can be shown by using "id" only. + * chart.tooltip.show({ + * data: { + * id: "data1" // data id + * } + * }); + * + * // for Arc types, specify 'id' or 'index' + * chart.tooltip.show({ data: { id: "data2" }}); + * chart.tooltip.show({ data: { index: 2 }}); + * + * // when data.xs is used + * chart.tooltip.show({ + * data: { + * x: 3, // x Axis value + * id: "data1", // data id + * value: 500 // data value + * } + * }); + * + * // when data.xs isn't used, but tooltip.grouped=false is set + * chart.tooltip.show({ + * data: { + * index: 3, // or 'x' key value + * id: "data1", // data id + * value: 500 // data value + * } + * }); + */ + show: function(args) { + var _a, _b, _c; + const $$ = this.internal; + const { $el, config, state: { eventReceiver, hasFunnel, hasTreemap, inputType } } = $$; + let index; + let mouse; + if (args.mouse) { + mouse = args.mouse; + } + if (args.data) { + const { data } = args; + const y = (_a = $$.getYScaleById(data.id)) == null ? void 0 : _a(data.value); + if ((hasFunnel || hasTreemap) && data.id) { + const selector = $$.selectorTarget(data.id, void 0, `.${$SHAPE.shape}`); + eventReceiver.rect = $el.main.select(selector); + } else if ($$.isMultipleX()) { + mouse = [$$.xx(data), y]; + } else { + if (!config.tooltip_grouped) { + mouse = [0, y]; + } + index = (_c = data.index) != null ? _c : $$.hasArcType() && data.id ? (_b = $$.getArcElementByIdOrIndex(data.id)) == null ? void 0 : _b.datum().index : $$.getIndexByX(data.x); + } + } else if (isDefined(args.x)) { + index = $$.getIndexByX(args.x); + } else if (isDefined(args.index)) { + index = args.index; + } + (inputType === "mouse" ? ["mouseover", "mousemove"] : ["touchstart"]).forEach((eventName) => { + $$.dispatchEvent(eventName, index, mouse); + }); + }, + /** + * Hide tooltip + * @function tooltip․hide + * @instance + * @memberof Chart + */ + hide: function() { + var _a, _b, _c; + const $$ = this.internal; + const { state: { inputType }, $el: { tooltip: tooltip2 } } = $$; + const data = tooltip2 == null ? void 0 : tooltip2.datum(); + if (data) { + const { index } = JSON.parse(data.current)[0]; + (inputType === "mouse" ? ["mouseout"] : ["touchend"]).forEach((eventName) => { + $$.dispatchEvent(eventName, index); + }); + } + inputType === "touch" && $$.callOverOutForTouch(); + $$.hideTooltip(true); + (_a = $$.hideGridFocus) == null ? void 0 : _a.call($$); + (_b = $$.unexpandCircles) == null ? void 0 : _b.call($$); + (_c = $$.expandBarTypeShapes) == null ? void 0 : _c.call($$, false); + } +}; +/* harmony default export */ var api_tooltip = ({ tooltip: tooltip_tooltip }); + +;// CONCATENATED MODULE: ./src/Chart/Chart.ts +var Chart_defProp = Object.defineProperty; +var Chart_defNormalProp = (obj, key, value) => key in obj ? Chart_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var Chart_publicField = (obj, key, value) => { + Chart_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + + + + + + + + +class Chart { + constructor(options) { + Chart_publicField(this, "plugins", []); + Chart_publicField(this, "internal"); + const $$ = new ChartInternal(this); + this.internal = $$; + (function bindThis(fn, target, argThis) { + Object.keys(fn).forEach((key) => { + const isFunc = isFunction(fn[key]); + const isChild = target !== argThis; + const isNotNil = notEmpty(fn[key]); + const hasChild = isNotNil && Object.keys(fn[key]).length > 0; + if (isFunc && (!isChild && hasChild || isChild)) { + target[key] = fn[key].bind(argThis); + } else if (isNotNil && !isFunc) { + target[key] = {}; + } else { + target[key] = fn[key]; + } + hasChild && bindThis(fn[key], target[key], argThis); + }); + })(Chart.prototype, this, this); + loadConfig.call($$, options); + $$.beforeInit(); + $$.init(); + } +} +util_extend(Chart.prototype, [ + chart, + api_color, + api_data, + api_export, + api_focus, + api_legend, + api_load, + show, + api_tooltip +]); + +;// CONCATENATED MODULE: ./src/Chart/api/selection.ts + + + +function setSelection(isSelection = false, ids, indices, resetOther) { + const $$ = this; + const { config, $el: { main } } = $$; + const selectionGrouped = config.data_selection_grouped; + const isSelectable = config.data_selection_isselectable.bind($$.api); + if (!config.data_selection_enabled) { + return; + } + main.selectAll(`.${$SHAPE.shapes}`).selectAll(`.${$SHAPE.shape}`).each(function(d) { + const shape = src_select(this); + const { id, index } = d.data ? d.data : d; + const toggle = $$.getToggle(this, d).bind($$); + const isTargetId = selectionGrouped || !ids || ids.indexOf(id) >= 0; + const isTargetIndex = !indices || indices.indexOf(index) >= 0; + const isSelected = shape.classed($SELECT.SELECTED); + if (shape.classed($LINE.line) || shape.classed($AREA.area)) { + return; + } + if (isSelection) { + if (isTargetId && isTargetIndex && isSelectable(d) && !isSelected) { + toggle(true, shape.classed($SELECT.SELECTED, true), d, index); + } else if (isDefined(resetOther) && resetOther && isSelected) { + toggle(false, shape.classed($SELECT.SELECTED, false), d, index); + } + } else { + if (isTargetId && isTargetIndex && isSelectable(d) && isSelected) { + toggle(false, shape.classed($SELECT.SELECTED, false), d, index); + } + } + }); +} +/* harmony default export */ var api_selection = ({ + /** + * Get selected data points.<br><br> + * By this API, you can get selected data points information. To use this API, data.selection.enabled needs to be set true. + * @function selected + * @instance + * @memberof Chart + * @param {string} [targetId] You can filter the result by giving target id that you want to get. If not given, all of data points will be returned. + * @returns {Array} dataPoint Array of the data points.<br>ex.) `[{x: 1, value: 200, id: "data1", index: 1, name: "data1"}, ...]` + * @example + * // all selected data points will be returned. + * chart.selected(); + * // --> ex.) [{x: 1, value: 200, id: "data1", index: 1, name: "data1"}, ... ] + * + * // all selected data points of data1 will be returned. + * chart.selected("data1"); + */ + selected(targetId) { + const $$ = this.internal; + const dataPoint = []; + $$.$el.main.selectAll(`.${$SHAPE.shapes + $$.getTargetSelectorSuffix(targetId)}`).selectAll(`.${$SHAPE.shape}`).filter(function() { + return src_select(this).classed($SELECT.SELECTED); + }).each((d) => dataPoint.push(d)); + return dataPoint; + }, + /** + * Set data points to be selected. ([`data.selection.enabled`](Options.html#.data%25E2%2580%25A4selection%25E2%2580%25A4enabled) option should be set true to use this method) + * @function select + * @instance + * @memberof Chart + * @param {string|Array} [ids] id value to get selected. + * @param {Array} [indices] The index array of data points. If falsy value given, will select all data points. + * @param {boolean} [resetOther] Unselect already selected. + * @example + * // select all data points + * chart.select(); + * + * // select all from 'data2' + * chart.select("data2"); + * + * // select all from 'data1' and 'data2' + * chart.select(["data1", "data2"]); + * + * // select from 'data1', indices 2 and unselect others selected + * chart.select("data1", [2], true); + * + * // select from 'data1', indices 0, 3 and 5 + * chart.select("data1", [0, 3, 5]); + */ + select(ids, indices, resetOther) { + const $$ = this.internal; + setSelection.bind($$)(true, ids, indices, resetOther); + }, + /** + * Set data points to be un-selected. + * @function unselect + * @instance + * @memberof Chart + * @param {string|Array} [ids] id value to be unselected. + * @param {Array} [indices] The index array of data points. If falsy value given, will select all data points. + * @example + * // unselect all data points + * chart.unselect(); + * + * // unselect all from 'data1' + * chart.unselect("data1"); + * + * // unselect from 'data1', indices 2 + * chart.unselect("data1", [2]); + */ + unselect(ids, indices) { + const $$ = this.internal; + setSelection.bind($$)(false, ids, indices); + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/subchart.ts + + +const subchart = function(domainValue) { + var _a; + const $$ = this.internal; + const { axis, brush, config, scale: { x, subX }, state } = $$; + let domain; + if (config.subchart_show) { + domain = domainValue; + if (Array.isArray(domain)) { + if (axis.isTimeSeries()) { + domain = domain.map((x2) => parseDate.bind($$)(x2)); + } + const isWithinRange = $$.withinRange( + domain, + $$.getZoomDomain("subX", true), + $$.getZoomDomain("subX") + ); + if (isWithinRange) { + state.domain = domain; + brush.move( + brush.getSelection(), + domain.map(subX) + ); + } + } else { + domain = (_a = state.domain) != null ? _a : x.orgDomain(); + } + } + return domain; +}; +util_extend(subchart, { + /** + * Show subchart + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * @function subchart․show + * @instance + * @memberof Chart + * @example + * // for ESM imports, needs to import 'subchart' and must be instantiated first to enable subchart's API. + * import {subchart} from "billboard.js"; + * + * const chart = bb.generate({ + * ... + * subchart: { + * // need to be instantiated by calling 'subchart()' + * enabled: subchart() + * + * // in case don't want subchart to be shown at initialization, instantiate with '!subchart()' + * enabled: !subchart() + * } + * }); + * + * chart.subchart.show(); + */ + show() { + var _a, _b; + const $$ = this.internal; + const { $el: { subchart: subchart2 }, config } = $$; + const show = config.subchart_show; + if (!show) { + $$.unbindZoomEvent(); + config.subchart_show = !show; + !subchart2.main && $$.initSubchart(); + let $target = subchart2.main.selectAll(`.${$COMMON.target}`); + if ($$.data.targets.length !== $target.size()) { + $$.updateSizes(); + $$.updateTargetsForSubchart($$.data.targets); + $target = (_a = subchart2.main) == null ? void 0 : _a.selectAll(`.${$COMMON.target}`); + } + $target == null ? void 0 : $target.style("opacity", null); + (_b = subchart2.main) == null ? void 0 : _b.style("display", null); + this.resize(); + } + }, + /** + * Hide generated subchart + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * @function subchart․hide + * @instance + * @memberof Chart + * @example + * chart.subchart.hide(); + */ + hide() { + const $$ = this.internal; + const { $el: { subchart: { main } }, config } = $$; + if (config.subchart_show && (main == null ? void 0 : main.style("display")) !== "none") { + config.subchart_show = false; + main.style("display", "none"); + this.resize(); + } + }, + /** + * Toggle the visiblity of subchart + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * @function subchart․toggle + * @instance + * @memberof Chart + * @example + * // When subchart is hidden, will be shown + * // When subchart is shown, will be hidden + * chart.subchart.toggle(); + */ + toggle() { + const $$ = this.internal; + const { config } = $$; + this.subchart[config.subchart_show ? "hide" : "show"](); + }, + /** + * Reset subchart selection + * @function subchart․reset + * @instance + * @memberof Chart + * @example + * // Reset subchart selection + * chart.subchart.reset(); + */ + reset() { + const $$ = this.internal; + const { brush } = $$; + brush.clear(brush.getSelection()); + } +}); +/* harmony default export */ var api_subchart = ({ + subchart +}); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/zoom.js +var epsilon2 = 1e-12; +function cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; +} +function sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; +} +function tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); +} +/* harmony default export */ var src_zoom = ((function zoomRho(rho, rho2, rho4) { + function zoom(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S; + if (d2 < epsilon2) { + S = Math.log(w1 / w0) / rho; + i = function(t) { + return [ + ux0 + t * dx, + uy0 + t * dy, + w0 * Math.exp(rho * t * S) + ]; + }; + } else { + var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / rho; + i = function(t) { + var s = t * S, coshr0 = cosh(r0), u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0)); + return [ + ux0 + u * dx, + uy0 + u * dy, + w0 * coshr0 / cosh(rho * s + r0) + ]; + }; + } + i.duration = S * 1e3 * rho / Math.SQRT2; + return i; + } + zoom.rho = function(_) { + var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2; + return zoomRho(_1, _2, _4); + }; + return zoom; +})(Math.SQRT2, 2, 4)); + +;// CONCATENATED MODULE: ./node_modules/d3-zoom/src/constant.js +/* harmony default export */ var d3_zoom_src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-zoom/src/event.js +function ZoomEvent(type, { + sourceEvent, + target, + transform, + dispatch +}) { + Object.defineProperties(this, { + type: { value: type, enumerable: true, configurable: true }, + sourceEvent: { value: sourceEvent, enumerable: true, configurable: true }, + target: { value: target, enumerable: true, configurable: true }, + transform: { value: transform, enumerable: true, configurable: true }, + _: { value: dispatch } + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-zoom/src/transform.js +function Transform(k, x, y) { + this.k = k; + this.x = x; + this.y = y; +} +Transform.prototype = { + constructor: Transform, + scale: function(k) { + return k === 1 ? this : new Transform(this.k * k, this.x, this.y); + }, + translate: function(x, y) { + return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y); + }, + apply: function(point) { + return [point[0] * this.k + this.x, point[1] * this.k + this.y]; + }, + applyX: function(x) { + return x * this.k + this.x; + }, + applyY: function(y) { + return y * this.k + this.y; + }, + invert: function(location) { + return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k]; + }, + invertX: function(x) { + return (x - this.x) / this.k; + }, + invertY: function(y) { + return (y - this.y) / this.k; + }, + rescaleX: function(x) { + return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x)); + }, + rescaleY: function(y) { + return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y)); + }, + toString: function() { + return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; + } +}; +var transform_identity = new Transform(1, 0, 0); +transform_transform.prototype = Transform.prototype; +function transform_transform(node) { + while (!node.__zoom) + if (!(node = node.parentNode)) + return transform_identity; + return node.__zoom; +} + +;// CONCATENATED MODULE: ./node_modules/d3-zoom/src/noevent.js +function src_noevent_nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function d3_zoom_src_noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-zoom/src/zoom.js + + + + + + + + + +function zoom_defaultFilter(event) { + return (!event.ctrlKey || event.type === "wheel") && !event.button; +} +function zoom_defaultExtent() { + var e = this; + if (e instanceof SVGElement) { + e = e.ownerSVGElement || e; + if (e.hasAttribute("viewBox")) { + e = e.viewBox.baseVal; + return [[e.x, e.y], [e.x + e.width, e.y + e.height]]; + } + return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]]; + } + return [[0, 0], [e.clientWidth, e.clientHeight]]; +} +function defaultTransform() { + return this.__zoom || transform_identity; +} +function defaultWheelDelta(event) { + return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 2e-3) * (event.ctrlKey ? 10 : 1); +} +function zoom_defaultTouchable() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +function defaultConstrain(transform, extent, translateExtent) { + var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0], dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0], dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1], dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1]; + return transform.translate( + dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), + dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1) + ); +} +/* harmony default export */ function d3_zoom_src_zoom() { + var filter = zoom_defaultFilter, extent = zoom_defaultExtent, constrain = defaultConstrain, wheelDelta = defaultWheelDelta, touchable = zoom_defaultTouchable, scaleExtent = [0, Infinity], translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], duration = 250, interpolate = src_zoom, listeners = src_dispatch("start", "zoom", "end"), touchstarting, touchfirst, touchending, touchDelay = 500, wheelDelay = 150, clickDistance2 = 0, tapDistance = 10; + function zoom(selection) { + selection.property("__zoom", defaultTransform).on("wheel.zoom", wheeled, { passive: false }).on("mousedown.zoom", mousedowned).on("dblclick.zoom", dblclicked).filter(touchable).on("touchstart.zoom", touchstarted).on("touchmove.zoom", touchmoved).on("touchend.zoom touchcancel.zoom", touchended).style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + zoom.transform = function(collection, transform, point, event) { + var selection = collection.selection ? collection.selection() : collection; + selection.property("__zoom", defaultTransform); + if (collection !== selection) { + schedule(collection, transform, point, event); + } else { + selection.interrupt().each(function() { + gesture(this, arguments).event(event).start().zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform).end(); + }); + } + }; + zoom.scaleBy = function(selection, k, p, event) { + zoom.scaleTo(selection, function() { + var k0 = this.__zoom.k, k1 = typeof k === "function" ? k.apply(this, arguments) : k; + return k0 * k1; + }, p, event); + }; + zoom.scaleTo = function(selection, k, p, event) { + zoom.transform(selection, function() { + var e = extent.apply(this, arguments), t0 = this.__zoom, p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p, p1 = t0.invert(p0), k1 = typeof k === "function" ? k.apply(this, arguments) : k; + return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent); + }, p, event); + }; + zoom.translateBy = function(selection, x, y, event) { + zoom.transform(selection, function() { + return constrain(this.__zoom.translate( + typeof x === "function" ? x.apply(this, arguments) : x, + typeof y === "function" ? y.apply(this, arguments) : y + ), extent.apply(this, arguments), translateExtent); + }, null, event); + }; + zoom.translateTo = function(selection, x, y, p, event) { + zoom.transform(selection, function() { + var e = extent.apply(this, arguments), t = this.__zoom, p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p; + return constrain(transform_identity.translate(p0[0], p0[1]).scale(t.k).translate( + typeof x === "function" ? -x.apply(this, arguments) : -x, + typeof y === "function" ? -y.apply(this, arguments) : -y + ), e, translateExtent); + }, p, event); + }; + function scale(transform, k) { + k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k)); + return k === transform.k ? transform : new Transform(k, transform.x, transform.y); + } + function translate(transform, p0, p1) { + var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k; + return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y); + } + function centroid(extent2) { + return [(+extent2[0][0] + +extent2[1][0]) / 2, (+extent2[0][1] + +extent2[1][1]) / 2]; + } + function schedule(transition, transform, point, event) { + transition.on("start.zoom", function() { + gesture(this, arguments).event(event).start(); + }).on("interrupt.zoom end.zoom", function() { + gesture(this, arguments).event(event).end(); + }).tween("zoom", function() { + var that = this, args = arguments, g = gesture(that, args).event(event), e = extent.apply(that, args), p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point, w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), a = that.__zoom, b = typeof transform === "function" ? transform.apply(that, args) : transform, i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k)); + return function(t) { + if (t === 1) + t = b; + else { + var l = i(t), k = w / l[2]; + t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); + } + g.zoom(null, t); + }; + }); + } + function gesture(that, args, clean) { + return !clean && that.__zooming || new Gesture(that, args); + } + function Gesture(that, args) { + this.that = that; + this.args = args; + this.active = 0; + this.sourceEvent = null; + this.extent = extent.apply(that, args); + this.taps = 0; + } + Gesture.prototype = { + event: function(event) { + if (event) + this.sourceEvent = event; + return this; + }, + start: function() { + if (++this.active === 1) { + this.that.__zooming = this; + this.emit("start"); + } + return this; + }, + zoom: function(key, transform) { + if (this.mouse && key !== "mouse") + this.mouse[1] = transform.invert(this.mouse[0]); + if (this.touch0 && key !== "touch") + this.touch0[1] = transform.invert(this.touch0[0]); + if (this.touch1 && key !== "touch") + this.touch1[1] = transform.invert(this.touch1[0]); + this.that.__zoom = transform; + this.emit("zoom"); + return this; + }, + end: function() { + if (--this.active === 0) { + delete this.that.__zooming; + this.emit("end"); + } + return this; + }, + emit: function(type) { + var d = src_select(this.that).datum(); + listeners.call( + type, + this.that, + new ZoomEvent(type, { + sourceEvent: this.sourceEvent, + target: zoom, + type, + transform: this.that.__zoom, + dispatch: listeners + }), + d + ); + } + }; + function wheeled(event, ...args) { + if (!filter.apply(this, arguments)) + return; + var g = gesture(this, args).event(event), t = this.__zoom, k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), p = src_pointer(event); + if (g.wheel) { + if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) { + g.mouse[1] = t.invert(g.mouse[0] = p); + } + clearTimeout(g.wheel); + } else if (t.k === k) + return; + else { + g.mouse = [p, t.invert(p)]; + interrupt(this); + g.start(); + } + d3_zoom_src_noevent(event); + g.wheel = setTimeout(wheelidled, wheelDelay); + g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent)); + function wheelidled() { + g.wheel = null; + g.end(); + } + } + function mousedowned(event, ...args) { + if (touchending || !filter.apply(this, arguments)) + return; + var currentTarget = event.currentTarget, g = gesture(this, args, true).event(event), v = src_select(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true), p = src_pointer(event, currentTarget), x0 = event.clientX, y0 = event.clientY; + nodrag(event.view); + src_noevent_nopropagation(event); + g.mouse = [p, this.__zoom.invert(p)]; + interrupt(this); + g.start(); + function mousemoved(event2) { + d3_zoom_src_noevent(event2); + if (!g.moved) { + var dx = event2.clientX - x0, dy = event2.clientY - y0; + g.moved = dx * dx + dy * dy > clickDistance2; + } + g.event(event2).zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = src_pointer(event2, currentTarget), g.mouse[1]), g.extent, translateExtent)); + } + function mouseupped(event2) { + v.on("mousemove.zoom mouseup.zoom", null); + yesdrag(event2.view, g.moved); + d3_zoom_src_noevent(event2); + g.event(event2).end(); + } + } + function dblclicked(event, ...args) { + if (!filter.apply(this, arguments)) + return; + var t0 = this.__zoom, p0 = src_pointer(event.changedTouches ? event.changedTouches[0] : event, this), p1 = t0.invert(p0), k1 = t0.k * (event.shiftKey ? 0.5 : 2), t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent); + d3_zoom_src_noevent(event); + if (duration > 0) + src_select(this).transition().duration(duration).call(schedule, t1, p0, event); + else + src_select(this).call(zoom.transform, t1, p0, event); + } + function touchstarted(event, ...args) { + if (!filter.apply(this, arguments)) + return; + var touches = event.touches, n = touches.length, g = gesture(this, args, event.changedTouches.length === n).event(event), started, i, t, p; + src_noevent_nopropagation(event); + for (i = 0; i < n; ++i) { + t = touches[i], p = src_pointer(t, this); + p = [p, this.__zoom.invert(p), t.identifier]; + if (!g.touch0) + g.touch0 = p, started = true, g.taps = 1 + !!touchstarting; + else if (!g.touch1 && g.touch0[2] !== p[2]) + g.touch1 = p, g.taps = 0; + } + if (touchstarting) + touchstarting = clearTimeout(touchstarting); + if (started) { + if (g.taps < 2) + touchfirst = p[0], touchstarting = setTimeout(function() { + touchstarting = null; + }, touchDelay); + interrupt(this); + g.start(); + } + } + function touchmoved(event, ...args) { + if (!this.__zooming) + return; + var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t, p, l; + d3_zoom_src_noevent(event); + for (i = 0; i < n; ++i) { + t = touches[i], p = src_pointer(t, this); + if (g.touch0 && g.touch0[2] === t.identifier) + g.touch0[0] = p; + else if (g.touch1 && g.touch1[2] === t.identifier) + g.touch1[0] = p; + } + t = g.that.__zoom; + if (g.touch1) { + var p0 = g.touch0[0], l0 = g.touch0[1], p1 = g.touch1[0], l1 = g.touch1[1], dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl; + t = scale(t, Math.sqrt(dp / dl)); + p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2]; + l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2]; + } else if (g.touch0) + p = g.touch0[0], l = g.touch0[1]; + else + return; + g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent)); + } + function touchended(event, ...args) { + if (!this.__zooming) + return; + var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t; + src_noevent_nopropagation(event); + if (touchending) + clearTimeout(touchending); + touchending = setTimeout(function() { + touchending = null; + }, touchDelay); + for (i = 0; i < n; ++i) { + t = touches[i]; + if (g.touch0 && g.touch0[2] === t.identifier) + delete g.touch0; + else if (g.touch1 && g.touch1[2] === t.identifier) + delete g.touch1; + } + if (g.touch1 && !g.touch0) + g.touch0 = g.touch1, delete g.touch1; + if (g.touch0) + g.touch0[1] = this.__zoom.invert(g.touch0[0]); + else { + g.end(); + if (g.taps === 2) { + t = src_pointer(t, this); + if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) { + var p = src_select(this).on("dblclick.zoom"); + if (p) + p.apply(this, arguments); + } + } + } + } + zoom.wheelDelta = function(_) { + return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : d3_zoom_src_constant(+_), zoom) : wheelDelta; + }; + zoom.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : d3_zoom_src_constant(!!_), zoom) : filter; + }; + zoom.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : d3_zoom_src_constant(!!_), zoom) : touchable; + }; + zoom.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : d3_zoom_src_constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent; + }; + zoom.scaleExtent = function(_) { + return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]]; + }; + zoom.translateExtent = function(_) { + return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]]; + }; + zoom.constrain = function(_) { + return arguments.length ? (constrain = _, zoom) : constrain; + }; + zoom.duration = function(_) { + return arguments.length ? (duration = +_, zoom) : duration; + }; + zoom.interpolate = function(_) { + return arguments.length ? (interpolate = _, zoom) : interpolate; + }; + zoom.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? zoom : value; + }; + zoom.clickDistance = function(_) { + return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2); + }; + zoom.tapDistance = function(_) { + return arguments.length ? (tapDistance = +_, zoom) : tapDistance; + }; + return zoom; +} + +;// CONCATENATED MODULE: ./node_modules/d3-zoom/src/index.js + + + +;// CONCATENATED MODULE: ./src/Chart/api/zoom.ts + + +const zoom = function(domainValue) { + var _a; + const $$ = this.internal; + const { axis, config, org, scale, state } = $$; + const isCategorized = axis.isCategorized(); + let domain; + if (config.zoom_enabled) { + domain = domainValue; + if (Array.isArray(domain)) { + if (axis.isTimeSeries()) { + domain = domain.map((x) => parseDate.bind($$)(x)); + } + const isWithinRange = $$.withinRange( + domain, + $$.getZoomDomain("zoom", true), + $$.getZoomDomain("zoom") + ); + if (isWithinRange) { + state.domain = domain; + domain = $$.getZoomDomainValue(domain); + $$.api.tooltip.hide(); + if (config.subchart_show) { + const x = scale.zoom || scale.x; + $$.brush.getSelection().call($$.brush.move, domain.map(x)); + } else { + const x = isCategorized ? scale.x.orgScale() : org.xScale || scale.x; + $$.updateCurrentZoomTransform(x, domain); + } + $$.setZoomResetButton(); + } + } else { + domain = $$.zoom.getDomain(); + } + } + return (_a = state.domain) != null ? _a : domain; +}; +util_extend(zoom, { + /** + * Enable and disable zooming. + * @function zoom․enable + * @instance + * @memberof Chart + * @param {string|boolean} enabled Possible string values are "wheel" or "drag". If enabled is true, "wheel" will be used. If false is given, zooming will be disabled.<br>When set to false, the current zooming status will be reset. + * @example + * // Enable zooming using the mouse wheel + * chart.zoom.enable(true); + * // Or + * chart.zoom.enable("wheel"); + * + * // Enable zooming by dragging + * chart.zoom.enable("drag"); + * + * // Disable zooming + * chart.zoom.enable(false); + */ + enable(enabled) { + const $$ = this.internal; + const { config } = $$; + if (/^(drag|wheel)$/.test(enabled)) { + config.zoom_type = enabled; + } + config.zoom_enabled = !!enabled; + if (!$$.zoom) { + $$.initZoom(); + $$.bindZoomEvent(); + } else if (enabled === false) { + $$.bindZoomEvent(false); + } + $$.updateAndRedraw(); + }, + /** + * Set or get x Axis maximum zoom range value + * @function zoom․max + * @instance + * @memberof Chart + * @param {number} [max] maximum value to set for zoom + * @returns {number} zoom max value + * @example + * // Set maximum range value + * chart.zoom.max(20); + */ + max(max) { + const $$ = this.internal; + const { config, org: { xDomain } } = $$; + if (max === 0 || max) { + config.zoom_x_max = getMinMax("max", [xDomain[1], max]); + } + return config.zoom_x_max; + }, + /** + * Set or get x Axis minimum zoom range value + * @function zoom․min + * @instance + * @memberof Chart + * @param {number} [min] minimum value to set for zoom + * @returns {number} zoom min value + * @example + * // Set minimum range value + * chart.zoom.min(-1); + */ + min(min) { + const $$ = this.internal; + const { config, org: { xDomain } } = $$; + if (min === 0 || min) { + config.zoom_x_min = getMinMax("min", [xDomain[0], min]); + } + return config.zoom_x_min; + }, + /** + * Set zoom range + * @function zoom․range + * @instance + * @memberof Chart + * @param {object} [range] zoom range + * @returns {object} zoom range value + * { + * min: 0, + * max: 100 + * } + * @example + * chart.zoom.range({ + * min: 10, + * max: 100 + * }); + */ + range(range) { + const zoom2 = this.zoom; + if (isObject(range)) { + const { min, max } = range; + isDefined(min) && zoom2.min(min); + isDefined(max) && zoom2.max(max); + } + return { + min: zoom2.min(), + max: zoom2.max() + }; + } +}); +/* harmony default export */ var api_zoom = ({ + zoom, + /** + * Unzoom zoomed area + * - **NOTE:** Calling .unzoom() will not trigger zoom events. + * @function unzoom + * @instance + * @memberof Chart + * @example + * chart.unzoom(); + */ + unzoom() { + const $$ = this.internal; + const { config, $el: { eventRect, zoomResetBtn }, scale: { zoom: zoom2 }, state } = $$; + if (zoom2) { + config.subchart_show ? $$.brush.getSelection().call($$.brush.move, null) : $$.zoom.updateTransformScale(transform_identity); + $$.updateZoom(true); + zoomResetBtn == null ? void 0 : zoomResetBtn.style("display", "none"); + if (transform_transform(eventRect.node()) !== transform_identity) { + $$.zoom.transform(eventRect, transform_identity); + } + state.domain = void 0; + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/subchart.ts + + + + +/* harmony default export */ var interactions_subchart = ({ + /** + * Initialize the brush. + * @private + */ + initBrush() { + const $$ = this; + const { config, scale, $el: { subchart }, state } = $$; + const isRotated = config.axis_rotated; + const height = config.subchart_size_height; + let lastDomain; + let lastSelection; + let timeout; + $$.brush = (isRotated ? brushY() : brushX()).handleSize(5); + $$.brush.on("start brush end", (event) => { + const { selection, sourceEvent, target, type } = event; + if (type === "start") { + $$.state.inputType === "touch" && $$.hideTooltip(); + lastSelection = sourceEvent ? selection : null; + } + if (/(start|brush)/.test(type)) { + type === "brush" && sourceEvent && state.domain && (lastSelection == null ? void 0 : lastSelection.forEach((v, i) => { + if (v !== selection[i]) { + state.domain[i] = scale.x.orgDomain()[i]; + } + })); + $$.redrawForBrush(type !== "start"); + } + if (type === "end") { + lastDomain = scale.x.orgDomain(); + } + if (target == null ? void 0 : target.handle) { + if (selection === null) { + $$.brush.handle.attr("display", "none"); + } else { + $$.brush.handle.attr("display", null).attr("transform", (d, i) => { + const pos = [selection[i], height / 2]; + return `translate(${isRotated ? pos.reverse() : pos})`; + }); + } + } + }); + $$.brush.updateResize = function() { + timeout && clearTimeout(timeout); + timeout = setTimeout(() => { + const selection = this.getSelection(); + lastDomain && brushSelection(selection.node()) && this.move(selection, lastDomain.map(scale.subX.orgScale())); + }, 0); + }; + $$.brush.update = function() { + var _a; + const extent = this.extent()(); + if (extent[1].filter((v) => isNaN(v)).length === 0) { + (_a = subchart.main) == null ? void 0 : _a.select(`.${classes.brush}`).call(this); + } + return this; + }; + $$.brush.scale = function(scale2) { + const h = config.subchart_size_height; + let extent = $$.getExtent(); + if (!extent && scale2.range) { + extent = [[0, 0], [scale2.range()[1], h]]; + } else if (isArray(extent)) { + extent = extent.map((v, i) => [v, i > 0 ? h : i]); + } + isRotated && extent[1].reverse(); + this.extent(extent); + this.update(); + }; + $$.brush.getSelection = () => ( + // @ts-ignore + subchart.main ? subchart.main.select(`.${classes.brush}`) : src_select([]) + ); + }, + /** + * Initialize the subchart. + * @private + */ + initSubchart() { + const $$ = this; + const { config, state: { clip, hasAxis }, $el: { defs, svg, subchart, axis } } = $$; + if (!hasAxis) { + return; + } + const visibility = config.subchart_show ? null : "hidden"; + const clipId = `${clip.id}-subchart`; + const clipPath = $$.getClipPath(clipId); + clip.idSubchart = clipId; + $$.appendClip(defs, clipId); + $$.initBrush(); + subchart.main = svg.append("g").classed(classes.subchart, true).attr("transform", $$.getTranslate("context")); + const { main } = subchart; + main.style("visibility", visibility); + main.append("g").attr("clip-path", clipPath).attr("class", classes.chart); + ["bar", "line", "bubble", "candlestick", "scatter"].forEach((v) => { + const type = capitalize(/^(bubble|scatter)$/.test(v) ? "circle" : v); + if ($$.hasType(v) || $$.hasTypeOf(type)) { + const chart = main.select(`.${classes.chart}`); + const chartClassName = classes[`chart${type}s`]; + if (chart.select(`.${chartClassName}`).empty()) { + chart.append("g").attr("class", chartClassName); + } + } + }); + const brush = main.append("g").attr("clip-path", clipPath).attr("class", classes.brush).call($$.brush); + config.subchart_showHandle && $$.addBrushHandle(brush); + axis.subX = main.append("g").attr("class", classes.axisX).attr("transform", $$.getTranslate("subX")).attr("clip-path", config.axis_rotated ? "" : clip.pathXAxis).style("visibility", config.subchart_axis_x_show ? visibility : "hidden"); + }, + /** + * Add brush handle + * Enabled when: subchart.showHandle=true + * @param {d3Selection} brush Brush selection + * @private + */ + addBrushHandle(brush) { + const $$ = this; + const { config } = $$; + const isRotated = config.axis_rotated; + const initRange = config.subchart_init_range; + const customHandleClass = "handle--custom"; + const path = isRotated ? [ + "M8.5 0 a6 6 0 0 0 -6 -6.5 H-2.5 a 6 6 0 0 0 -6 6.5 z m-5 -2 H-3.5 m7 -2 H-3.5z", + "M8.5 0 a6 -6 0 0 1 -6 6.5 H-2.5 a 6 -6 0 0 1 -6 -6.5z m-5 2 H-3.5 m7 2 H-3.5z" + ] : [ + "M0 -8.5 A6 6 0 0 0 -6.5 -3.5 V2.5 A6 6 0 0 0 0 8.5 Z M-2 -3.5 V3.5 M-4 -3.5 V3.5z", + "M0 -8.5 A6 6 0 0 1 6.5 -3.5 V2.5 A6 6 0 0 1 0 8.5 Z M2 -3.5 V3.5 M4 -3.5 V3.5z" + ]; + $$.brush.handle = brush.selectAll(`.${customHandleClass}`).data(isRotated ? [{ type: "n" }, { type: "s" }] : [{ type: "w" }, { type: "e" }]).enter().append("path").attr("class", customHandleClass).attr("cursor", `${isRotated ? "ns" : "ew"}-resize`).attr("d", (d) => path[+/[se]/.test(d.type)]).attr("display", initRange ? null : "none"); + }, + /** + * Update sub chart + * @param {object} targets $$.data.targets + * @private + */ + updateTargetsForSubchart(targets) { + const $$ = this; + const { config, state, $el: { subchart: { main } } } = $$; + if (config.subchart_show) { + ["bar", "line", "bubble", "candlestick", "scatter"].filter((v) => $$.hasType(v) || $$.hasTypeOf(capitalize(v))).forEach((v) => { + const isPointType = /^(bubble|scatter)$/.test(v); + const name = capitalize(isPointType ? "circle" : v); + const chartClass = $$.getChartClass(name, true); + const shapeClass = $$.getClass(isPointType ? "circles" : `${v}s`, true); + const shapeChart = main.select(`.${classes[`chart${`${name}s`}`]}`); + if (isPointType) { + const circle = shapeChart.selectAll(`.${classes.circles}`).data(targets.filter($$[`is${capitalize(v)}Type`].bind($$))).attr("class", shapeClass); + circle.exit().remove(); + circle.enter().append("g").attr("class", shapeClass); + } else { + const shapeUpdate = shapeChart.selectAll(`.${classes[`chart${name}`]}`).attr("class", chartClass).data(targets.filter($$[`is${name}Type`].bind($$))); + const shapeEnter = shapeUpdate.enter().append("g").style("opacity", "0").attr("class", chartClass).append("g").attr("class", shapeClass); + shapeUpdate.exit().remove(); + v === "line" && $$.hasTypeOf("Area") && shapeEnter.append("g").attr("class", $$.getClass("areas", true)); + } + }); + main.selectAll(`.${classes.brush} rect`).attr( + config.axis_rotated ? "width" : "height", + config.axis_rotated ? state.width2 : state.height2 + ); + } + }, + /** + * Redraw subchart. + * @private + * @param {boolean} withSubchart whether or not to show subchart + * @param {number} duration duration + * @param {object} shape Shape's info + */ + redrawSubchart(withSubchart, duration, shape) { + var _a; + const $$ = this; + const { config, $el: { subchart: { main } }, state } = $$; + const withTransition = !!duration; + main.style("visibility", config.subchart_show ? null : "hidden"); + if (config.subchart_show) { + if (((_a = state.event) == null ? void 0 : _a.type) === "zoom") { + $$.brush.update(); + } + if (withSubchart) { + const initRange = config.subchart_init_range; + !brushEmpty($$) && $$.brush.update(); + Object.keys(shape.type).forEach((v) => { + const name = capitalize(v); + const drawFn = $$[`generateDraw${name}`](shape.indices[v], true); + $$[`update${name}`](withTransition, true); + $$[`redraw${name}`](drawFn, withTransition, true); + }); + if ($$.hasType("bubble") || $$.hasType("scatter")) { + const { cx } = shape.pos; + const cy = $$.updateCircleY(true); + $$.updateCircle(true); + $$.redrawCircle(cx, cy, withTransition, void 0, true); + } + if (!state.rendered && initRange) { + state.domain = initRange; + $$.brush.move( + $$.brush.getSelection(), + initRange.map($$.scale.x) + ); + } + } + } + }, + /** + * Redraw the brush. + * @param {boolean} [callCallbck=true] Call 'onbrush' callback or not. + * @private + */ + redrawForBrush(callCallbck = true) { + var _a; + const $$ = this; + const { + config: { + subchart_onbrush: onBrush, + zoom_rescale: withY + }, + scale, + state + } = $$; + $$.redraw({ + withTransition: false, + withY, + withSubchart: false, + withUpdateXDomain: true, + withDimension: false + }); + callCallbck && state.rendered && onBrush.bind($$.api)((_a = state.domain) != null ? _a : scale.x.orgDomain()); + }, + /** + * Transform context + * @param {boolean} withTransition indicates transition is enabled + * @param {object} transitions The return value of the generateTransitions method of Axis. + * @private + */ + transformContext(withTransition, transitions) { + const $$ = this; + const { $el: { subchart }, $T } = $$; + const subXAxis = (transitions == null ? void 0 : transitions.axisSubX) ? transitions.axisSubX : $T(subchart.main.select(`.${classes.axisX}`), withTransition); + subchart.main.attr("transform", $$.getTranslate("context")); + subXAxis.attr("transform", $$.getTranslate("subX")); + }, + /** + * Get extent value + * @returns {Array} default extent + * @private + */ + getExtent() { + const $$ = this; + const { config, scale } = $$; + let extent = config.axis_x_extent; + if (extent) { + if (isFunction(extent)) { + extent = extent.bind($$.api)($$.getXDomain($$.data.targets), scale.subX); + } else if ($$.axis.isTimeSeries() && extent.every(isNaN)) { + const fn = parseDate.bind($$); + extent = extent.map((v) => scale.subX(fn(v))); + } + } + return extent; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/zoom.ts + + + + +/* harmony default export */ var interactions_zoom = ({ + /** + * Initialize zoom. + * @private + */ + initZoom() { + const $$ = this; + $$.scale.zoom = null; + $$.generateZoom(); + $$.initZoomBehaviour(); + }, + /** + * Bind zoom event + * @param {boolean} bind Weather bind or unbound + * @private + */ + bindZoomEvent(bind = true) { + const $$ = this; + const { config } = $$; + const zoomEnabled = config.zoom_enabled; + if (zoomEnabled && bind) { + !config.subchart_show && $$.bindZoomOnEventRect(); + } else if (bind === false) { + $$.api.unzoom(); + $$.unbindZoomEvent(); + } + }, + /** + * Generate zoom + * @private + */ + generateZoom() { + const $$ = this; + const { config, org, scale } = $$; + const zoom = d3_zoom_src_zoom().duration(0).on("start", $$.onZoomStart.bind($$)).on("zoom", $$.onZoom.bind($$)).on("end", $$.onZoomEnd.bind($$)); + zoom.orgScaleExtent = () => { + const extent = config.zoom_extent || [1, 10]; + return [extent[0], Math.max($$.getMaxDataCount() / extent[1], extent[1])]; + }; + zoom.updateScaleExtent = function() { + const ratio = diffDomain($$.scale.x.orgDomain()) / diffDomain($$.getZoomDomain()); + const extent = this.orgScaleExtent(); + this.scaleExtent([extent[0] * ratio, extent[1] * ratio]); + return this; + }; + zoom.updateTransformScale = (transform, correctTransform) => { + var _a; + const isRotated = config.axis_rotated; + (_a = org.xScale) == null ? void 0 : _a.range(scale.x.range()); + const newScale = transform[isRotated ? "rescaleY" : "rescaleX"](org.xScale || scale.x); + const domain = $$.trimXDomain(newScale.domain()); + const rescale = config.zoom_rescale; + newScale.domain(domain, org.xDomain); + if (correctTransform) { + const t = newScale(scale.x.domain()[0]); + const tX = isRotated ? transform.x : t; + const tY = isRotated ? t : transform.y; + $$.$el.eventRect.property( + "__zoom", + transform_identity.translate(tX, tY).scale(transform.k) + ); + } + if (!$$.state.xTickOffset) { + $$.state.xTickOffset = $$.axis.x.tickOffset(); + } + scale.zoom = $$.getCustomizedXScale(newScale); + $$.axis.x.scale(scale.zoom); + if (rescale) { + !org.xScale && (org.xScale = scale.x.copy()); + scale.x.domain(domain); + } else if (org.xScale) { + scale.x.domain(org.xScale.domain()); + org.xScale = null; + } + }; + zoom.getDomain = () => { + const domain = scale[scale.zoom ? "zoom" : "subX"].domain(); + const isCategorized = $$.axis.isCategorized(); + if (isCategorized) { + domain[1] -= 2; + } + return domain; + }; + $$.zoom = zoom; + }, + /** + * 'start' event listener + * @param {object} event Event object + * @private + */ + onZoomStart(event) { + const $$ = this; + const { sourceEvent } = event; + if (sourceEvent) { + $$.zoom.startEvent = sourceEvent; + $$.state.zooming = true; + callFn($$.config.zoom_onzoomstart, $$.api, event); + } + }, + /** + * 'zoom' event listener + * @param {object} event Event object + * @private + */ + onZoom(event) { + var _a; + const $$ = this; + const { config, scale, state, org } = $$; + const { sourceEvent } = event; + const isUnZoom = (event == null ? void 0 : event.transform) === transform_identity; + if (!config.zoom_enabled || $$.filterTargetsToShow($$.data.targets).length === 0 || !scale.zoom && (sourceEvent == null ? void 0 : sourceEvent.type.indexOf("touch")) > -1 && (sourceEvent == null ? void 0 : sourceEvent.touches.length) === 1) { + return; + } + if (event.sourceEvent) { + state.zooming = true; + state.domain = void 0; + } + const isMousemove = (sourceEvent == null ? void 0 : sourceEvent.type) === "mousemove"; + const isZoomOut = (sourceEvent == null ? void 0 : sourceEvent.wheelDelta) < 0; + const { transform } = event; + if (!isMousemove && isZoomOut && scale.x.domain().every((v, i) => v !== org.xDomain[i])) { + scale.x.domain(org.xDomain); + } + $$.zoom.updateTransformScale(transform, config.zoom_type === "wheel" && sourceEvent); + const doTransition = config.transition_duration > 0 && !config.subchart_show && (state.dragging || isUnZoom || !event.sourceEvent); + $$.redraw({ + withTransition: doTransition, + withY: config.zoom_rescale, + withSubchart: false, + withEventRect: false, + withDimension: false + }); + $$.state.cancelClick = isMousemove; + !isUnZoom && callFn( + config.zoom_onzoom, + $$.api, + (_a = $$.state.domain) != null ? _a : $$.zoom.getDomain() + ); + }, + /** + * 'end' event listener + * @param {object} event Event object + * @private + */ + onZoomEnd(event) { + var _a, _b; + const $$ = this; + const { config, state } = $$; + let { startEvent } = $$.zoom; + let e = event == null ? void 0 : event.sourceEvent; + const isUnZoom = (event == null ? void 0 : event.transform) === transform_identity; + if ((startEvent == null ? void 0 : startEvent.type.indexOf("touch")) > -1) { + startEvent = startEvent.changedTouches[0]; + e = (_a = e == null ? void 0 : e.changedTouches) == null ? void 0 : _a[0]; + } + if (config.zoom_type === "drag" && (e && startEvent.clientX === e.clientX && startEvent.clientY === e.clientY)) { + return; + } + state.zooming = false; + $$.redrawEventRect(); + $$.updateZoom(); + !isUnZoom && (e || state.dragging) && callFn( + config.zoom_onzoomend, + $$.api, + (_b = $$.state.domain) != null ? _b : $$.zoom.getDomain() + ); + }, + /** + * Update zoom + * @param {boolean} force Force unzoom + * @private + */ + updateZoom(force) { + const $$ = this; + const { subX, x, zoom } = $$.scale; + if (zoom) { + const zoomDomain = zoom.domain(); + const xDomain = subX.domain(); + const delta = 0.015; + const isfullyShown = $$.config.axis_x_inverted ? (zoomDomain[0] >= xDomain[0] || zoomDomain[0] + delta >= xDomain[0]) && (xDomain[1] >= zoomDomain[1] || xDomain[1] >= zoomDomain[1] + delta) : (zoomDomain[0] <= xDomain[0] || zoomDomain[0] - delta <= xDomain[0]) && (xDomain[1] <= zoomDomain[1] || xDomain[1] <= zoomDomain[1] - delta); + if (force || isfullyShown) { + $$.axis.x.scale(subX); + x.domain(subX.orgDomain()); + $$.scale.zoom = null; + } + } + }, + /** + * Set zoom transform to event rect + * @param {Function} x x Axis scale function + * @param {Array} domain Domain value to be set + * @private + */ + updateCurrentZoomTransform(x, domain) { + const $$ = this; + const { $el: { eventRect }, config } = $$; + const isRotated = config.axis_rotated; + const translate = [-x(domain[0]), 0]; + const transform = transform_identity.scale(x.range()[1] / (x(domain[1]) - x(domain[0]))).translate( + ...isRotated ? translate.reverse() : translate + ); + eventRect.call($$.zoom.transform, transform); + }, + /** + * Attach zoom event on <rect> + * @private + */ + bindZoomOnEventRect() { + const $$ = this; + const { config, $el: { eventRect } } = $$; + const behaviour = config.zoom_type === "drag" ? $$.zoomBehaviour : $$.zoom; + eventRect == null ? void 0 : eventRect.call(behaviour).on("dblclick.zoom", null); + }, + /** + * Initialize the drag behaviour used for zooming. + * @private + */ + initZoomBehaviour() { + const $$ = this; + const { config, state } = $$; + const isRotated = config.axis_rotated; + let start = 0; + let end = 0; + let zoomRect; + const prop = { + axis: isRotated ? "y" : "x", + attr: isRotated ? "height" : "width", + index: isRotated ? 1 : 0 + }; + $$.zoomBehaviour = drag().clickDistance(4).on("start", function(event) { + state.event = event; + $$.setDragStatus(true); + $$.unselectRect(); + if (!zoomRect) { + zoomRect = $$.$el.main.append("rect").attr("clip-path", state.clip.path).attr("class", $ZOOM.zoomBrush).attr("width", isRotated ? state.width : 0).attr("height", isRotated ? 0 : state.height); + } + start = getPointer(event, this)[prop.index]; + end = start; + zoomRect.attr(prop.axis, start).attr(prop.attr, 0); + $$.onZoomStart(event); + }).on("drag", function(event) { + end = getPointer(event, this)[prop.index]; + zoomRect.attr(prop.axis, Math.min(start, end)).attr(prop.attr, Math.abs(end - start)); + }).on("end", (event) => { + const scale = $$.scale.zoom || $$.scale.x; + state.event = event; + zoomRect.attr(prop.axis, 0).attr(prop.attr, 0); + if (start > end) { + [start, end] = [end, start]; + } + if (start < 0) { + end += Math.abs(start); + start = 0; + } + if (start !== end) { + $$.api.zoom([start, end].map((v) => scale.invert(v))); + } + $$.setDragStatus(false); + }); + }, + setZoomResetButton() { + const $$ = this; + const { config, $el } = $$; + const resetButton = config.zoom_resetButton; + if (resetButton && config.zoom_type === "drag") { + if (!$el.zoomResetBtn) { + $el.zoomResetBtn = $$.$el.chart.append("div").classed($COMMON.button, true).append("span").on("click", function() { + isFunction(resetButton.onclick) && resetButton.onclick.bind($$.api)(this); + $$.api.unzoom(); + }).classed($ZOOM.buttonZoomReset, true).text(resetButton.text || "Reset Zoom"); + } else { + $el.zoomResetBtn.style("display", null); + } + } + }, + getZoomTransform() { + const $$ = this; + const { $el: { eventRect } } = $$; + return (eventRect == null ? void 0 : eventRect.node()) ? transform_transform(eventRect.node()) : { k: 1 }; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/drag.ts + + + +/* harmony default export */ var interactions_drag = ({ + /** + * Called when dragging. + * Data points can be selected. + * @private + * @param {object} mouse Object + */ + drag(mouse) { + const $$ = this; + const { config, state, $el: { main } } = $$; + const isSelectionGrouped = config.data_selection_grouped; + const isSelectable = config.interaction_enabled && config.data_selection_isselectable; + if ($$.hasArcType() || !config.data_selection_enabled || // do nothing if not selectable + config.zoom_enabled && !$$.zoom.altDomain || // skip if zoomable because of conflict drag behavior + !config.data_selection_multiple) { + return; + } + const [sx, sy] = state.dragStart || [0, 0]; + const [mx, my] = mouse; + const minX = Math.min(sx, mx); + const maxX = Math.max(sx, mx); + const minY = isSelectionGrouped ? state.margin.top : Math.min(sy, my); + const maxY = isSelectionGrouped ? state.height : Math.max(sy, my); + main.select(`.${$DRAG.dragarea}`).attr("x", minX).attr("y", minY).attr("width", maxX - minX).attr("height", maxY - minY); + main.selectAll(`.${$SHAPE.shapes}`).selectAll(`.${$SHAPE.shape}`).filter((d) => isSelectable == null ? void 0 : isSelectable.bind($$.api)(d)).each(function(d, i) { + const shape = src_select(this); + const isSelected = shape.classed($SELECT.SELECTED); + const isIncluded = shape.classed($DRAG.INCLUDED); + let isWithin = false; + let toggle; + if (shape.classed($CIRCLE.circle)) { + const x = +shape.attr("cx") * 1; + const y = +shape.attr("cy") * 1; + toggle = $$.togglePoint; + isWithin = minX < x && x < maxX && minY < y && y < maxY; + } else if (shape.classed($BAR.bar)) { + const { x, y, width, height } = getPathBox(this); + toggle = $$.togglePath; + isWithin = !(maxX < x || x + width < minX) && !(maxY < y || y + height < minY); + } else { + return; + } + if (isWithin ^ isIncluded) { + shape.classed($DRAG.INCLUDED, !isIncluded); + shape.classed($SELECT.SELECTED, !isSelected); + toggle.call($$, !isSelected, shape, d, i); + } + }); + }, + /** + * Called when the drag starts. + * Adds and Shows the drag area. + * @private + * @param {object} mouse Object + */ + dragstart(mouse) { + const $$ = this; + const { config, state, $el: { main } } = $$; + if ($$.hasArcType() || !config.data_selection_enabled) { + return; + } + state.dragStart = mouse; + main.select(`.${$COMMON.chart}`).append("rect").attr("class", $DRAG.dragarea).style("opacity", "0.1"); + $$.setDragStatus(true); + }, + /** + * Called when the drag finishes. + * Removes the drag area. + * @private + */ + dragend() { + const $$ = this; + const { config, $el: { main }, $T } = $$; + if ($$.hasArcType() || !config.data_selection_enabled) { + return; + } + $T(main.select(`.${$DRAG.dragarea}`)).style("opacity", "0").remove(); + main.selectAll(`.${$SHAPE.shape}`).classed($DRAG.INCLUDED, false); + $$.setDragStatus(false); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/selection.ts +var selection_defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var selection_getOwnPropSymbols = Object.getOwnPropertySymbols; +var selection_hasOwnProp = Object.prototype.hasOwnProperty; +var selection_propIsEnum = Object.prototype.propertyIsEnumerable; +var selection_defNormalProp = (obj, key, value) => key in obj ? selection_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var selection_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (selection_hasOwnProp.call(b, prop)) + selection_defNormalProp(a, prop, b[prop]); + if (selection_getOwnPropSymbols) + for (var prop of selection_getOwnPropSymbols(b)) { + if (selection_propIsEnum.call(b, prop)) + selection_defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); + + + + +/* harmony default export */ var internals_selection = (__spreadProps(selection_spreadValues({}, interactions_drag), { + /** + * Select a point + * @param {object} target Target point + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + selectPoint(target, d, i) { + const $$ = this; + const { config, $el: { main }, $T } = $$; + const isRotated = config.axis_rotated; + const cx = (isRotated ? $$.circleY : $$.circleX).bind($$); + const cy = (isRotated ? $$.circleX : $$.circleY).bind($$); + const r = $$.pointSelectR.bind($$); + callFn(config.data_onselected, $$.api, d, target.node()); + $T(main.select(`.${$SELECT.selectedCircles}${$$.getTargetSelectorSuffix(d.id)}`).selectAll(`.${$SELECT.selectedCircle}-${i}`).data([d]).enter().append("circle").attr("class", () => $$.generateClass($SELECT.selectedCircle, i)).attr("cx", cx).attr("cy", cy).attr("stroke", $$.color).attr("r", (d2) => $$.pointSelectR(d2) * 1.4)).attr("r", r); + }, + /** + * Unelect a point + * @param {object} target Target point + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + unselectPoint(target, d, i) { + const $$ = this; + const { config, $el: { main }, $T } = $$; + callFn(config.data_onunselected, $$.api, d, target == null ? void 0 : target.node()); + $T(main.select(`.${$SELECT.selectedCircles}${$$.getTargetSelectorSuffix(d.id)}`).selectAll(`.${$SELECT.selectedCircle}-${i}`)).attr("r", 0).remove(); + }, + /** + * Toggles the selection of points + * @param {boolean} selected whether or not to select. + * @param {object} target Target object + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + togglePoint(selected, target, d, i) { + const method = `${selected ? "" : "un"}selectPoint`; + this[method](target, d, i); + }, + /** + * Select a path + * @param {object} target Target path + * @param {object} d Data object + * @private + */ + selectPath(target, d) { + const $$ = this; + const { config } = $$; + callFn(config.data_onselected, $$.api, d, target.node()); + if (config.interaction_brighten) { + target.style("filter", "brightness(1.25)"); + } + }, + /** + * Unelect a path + * @private + * @param {object} target Target path + * @param {object} d Data object + */ + unselectPath(target, d) { + const $$ = this; + const { config } = $$; + callFn(config.data_onunselected, $$.api, d, target.node()); + if (config.interaction_brighten) { + target.style("filter", null); + } + }, + /** + * Toggles the selection of lines + * @param {boolean} selected whether or not to select. + * @param {object} target Target object + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + togglePath(selected, target, d, i) { + this[`${selected ? "" : "un"}selectPath`](target, d, i); + }, + /** + * Returns the toggle method of the target + * @param {object} that shape + * @param {object} d Data object + * @returns {Function} toggle method + * @private + */ + getToggle(that, d) { + const $$ = this; + return that.nodeName === "path" ? $$.togglePath : $$.isStepType(d) ? () => { + } : ( + // circle is hidden in step chart, so treat as within the click area + $$.togglePoint + ); + }, + /** + * Toggles the selection of shapes + * @param {object} that shape + * @param {object} d Data object + * @param {number} i Index number + * @private + */ + toggleShape(that, d, i) { + var _a; + const $$ = this; + const { config, $el: { main } } = $$; + if (config.data_selection_enabled && config.data_selection_isselectable.bind($$.api)(d)) { + const shape = src_select(that); + const isSelected = shape.classed($SELECT.SELECTED); + const toggle = $$.getToggle(that, d).bind($$); + let toggledShape; + if (!config.data_selection_multiple) { + const focusOnly = (_a = $$.isPointFocusOnly) == null ? void 0 : _a.call($$); + let selector = `.${focusOnly ? $SELECT.selectedCircles : $SHAPE.shapes}`; + if (config.data_selection_grouped) { + selector += $$.getTargetSelectorSuffix(d.id); + } + main.selectAll(selector).selectAll( + focusOnly ? `.${$SELECT.selectedCircle}` : `.${$SHAPE.shape}.${$SELECT.SELECTED}` + ).classed($SELECT.SELECTED, false).each(function(d2) { + const shape2 = src_select(this); + toggledShape = shape2; + toggle(false, shape2, d2, d2.index); + }); + } + if (!toggledShape || toggledShape.node() !== shape.node()) { + shape.classed($SELECT.SELECTED, !isSelected); + toggle(!isSelected, shape, d, i); + } + } + } +})); + +;// CONCATENATED MODULE: ./src/config/Options/data/selection.ts +/* harmony default export */ var data_selection = ({ + /** + * Set data selection enabled<br><br> + * If this option is set true, we can select the data points and get/set its state of selection by API (e.g. select, unselect, selected). + * - **NOTE:** for ESM imports, needs to import 'selection' exports and instantiate it by calling `selection()`. + * - `enabled: selection()` + * @name data․selection․enabled + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataSelection) + * @example + * data: { + * selection: { + * enabled: true + * } + * } + * @example + * // importing ESM + * import bb, {selection} from "billboard.js"; + * + * data: { + * selection: { + * enabled: selection(), + * ... + * } + * } + */ + data_selection_enabled: false, + /** + * Set grouped selection enabled.<br><br> + * If this option set true, multiple data points that have same x value will be selected by one selection. + * @name data․selection․grouped + * @memberof Options + * @type {boolean} + * @default false + * @example + * data: { + * selection: { + * grouped: true + * } + * } + */ + data_selection_grouped: false, + /** + * Set a callback for each data point to determine if it's selectable or not.<br><br> + * The callback will receive d as an argument and it has some parameters like id, value, index. This callback should return boolean. + * @name data․selection․isselectable + * @memberof Options + * @type {Function} + * @default function() { return true; } + * @example + * data: { + * selection: { + * isselectable: function(d) { ... } + * } + * } + */ + data_selection_isselectable: () => true, + /** + * Set multiple data points selection enabled.<br><br> + * If this option set true, multile data points can have the selected state at the same time. If false set, only one data point can have the selected state and the others will be unselected when the new data point is selected. + * @name data․selection․multiple + * @memberof Options + * @type {boolean} + * @default true + * @example + * data: { + * selection: { + * multiple: false + * } + * } + */ + data_selection_multiple: true, + /** + * Enable to select data points by dragging. + * If this option set true, data points can be selected by dragging. + * - **NOTE:** If this option set true, scrolling on the chart will be disabled because dragging event will handle the event. + * @name data․selection․draggable + * @memberof Options + * @type {boolean} + * @default false + * @example + * data: { + * selection: { + * draggable: true + * } + * } + */ + data_selection_draggable: false, + /** + * Set a callback for on data selection. + * @name data․onselected + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onselected: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"} + * // element - <circle> + * ... + * } + * } + */ + data_onselected: () => { + }, + /** + * Set a callback for on data un-selection. + * @name data․onunselected + * @memberof Options + * @type {Function} + * @default function() {} + * @example + * data: { + * onunselected: function(d, element) { + * // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"} + * // element - <circle> + * ... + * } + * } + */ + data_onunselected: () => { + } +}); + +;// CONCATENATED MODULE: ./src/config/Options/interaction/subchart.ts +/* harmony default export */ var interaction_subchart = ({ + /** + * Set subchart options. + * - **NOTE:** Not supported for `bubble`, `scatter` and non-Axis based(pie, donut, gauge, radar) types. + * @name subchart + * @memberof Options + * @type {object} + * @property {object} subchart Subchart object + * @property {boolean} [subchart.show=false] Show sub chart on the bottom of the chart. + * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`. + * - `show: subchart()` + * @property {boolean} [subchart.showHandle=false] Show sub chart's handle. + * @property {boolean} [subchart.axis.x.show=true] Show or hide x axis. + * @property {boolean} [subchart.axis.x.tick.show=true] Show or hide x axis tick line. + * @property {Function|string} [subchart.axis.x.tick.format] Use custom format for x axis ticks - see [axis.x.tick.format](#.axis․x․tick․format) for details. + * @property {boolean} [subchart.axis.x.tick.text.show=true] Show or hide x axis tick text. + * @property {Array} [subchart.init.range] Set initial selection domain range. + * @property {number} [subchart.size.height] Change the height of the subchart. + * @property {Function} [subchart.onbrush] Set callback for brush event.<br> + * Specified function receives the current zoomed x domain. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Interaction.SubChart) + * @example + * subchart: { + * show: true, + * showHandle: true, + * size: { + * height: 20 + * }, + * init: { + * // specify initial range domain selection + * range: [1, 2] + * }, + * axis: { + * x: { + * show: true, + * tick: { + * show: true, + * format: (x) => d3Format(".1f")(x) + * text: { + * show: false + * } + * } + * } + * }, + * onbrush: function(domain) { ... } + * } + * @example + * // importing ESM + * import bb, {subchart} from "billboard.js"; + * + * subchart: { + * show: subchart(), + * ... + * } + */ + subchart_show: false, + subchart_showHandle: false, + subchart_size_height: 60, + subchart_axis_x_show: true, + subchart_axis_x_tick_show: true, + subchart_axis_x_tick_format: void 0, + subchart_axis_x_tick_text_show: true, + subchart_init_range: void 0, + subchart_onbrush: () => { + } +}); + +;// CONCATENATED MODULE: ./src/config/Options/interaction/zoom.ts +/* harmony default export */ var interaction_zoom = ({ + /** + * Set zoom options + * @name zoom + * @memberof Options + * @type {object} + * @property {object} zoom Zoom object + * @property {boolean} [zoom.enabled=false] Enable zooming. + * - **NOTE:** for ESM imports, needs to import 'zoom' exports and instantiate it by calling `zoom()`. + * - `enabled: zoom()` + * @property {string} [zoom.type='wheel'] Set zoom interaction type. + * - **Available types:** + * - wheel + * - drag + * @property {boolean} [zoom.rescale=false] Enable to rescale after zooming.<br> + * If true set, y domain will be updated according to the zoomed region. + * @property {Array} [zoom.extent=[1, 10]] Change zoom extent. + * @property {number|Date} [zoom.x.min] Set x Axis minimum zoom range + * @property {number|Date} [zoom.x.max] Set x Axis maximum zoom range + * @property {Function} [zoom.onzoomstart=undefined] Set callback that is called when zooming starts.<br> + * Specified function receives the zoom event. + * @property {Function} [zoom.onzoom=undefined] Set callback that is called when the chart is zooming.<br> + * Specified function receives the zoomed domain. + * @property {Function} [zoom.onzoomend=undefined] Set callback that is called when zooming ends.<br> + * Specified function receives the zoomed domain. + * @property {boolean|object} [zoom.resetButton=true] Set to display zoom reset button for 'drag' type zoom + * @property {Function} [zoom.resetButton.onclick] Set callback when clicks the reset button. The callback will receive reset button element reference as argument. + * @property {string} [zoom.resetButton.text='Reset Zoom'] Text value for zoom reset button. + * @see [Demo:zoom](https://naver.github.io/billboard.js/demo/#Interaction.Zoom) + * @see [Demo:drag zoom](https://naver.github.io/billboard.js/demo/#Interaction.DragZoom) + * @example + * zoom: { + * enabled: true, + * type: "drag", + * rescale: true, + * extent: [1, 100] // enable more zooming + * x: { + * min: -1, // set min range + * max: 10 // set max range + * }, + * onzoomstart: function(event) { ... }, + * onzoom: function(domain) { ... }, + * onzoomend: function(domain) { ... }, + * + * // show reset button when is zoomed-in + * resetButton: true, + * + * resetButton: { + * // onclick callback when reset button is clicked + * onclick: function(button) { + * button; // Reset button element reference + * ... + * }, + * + * // customized text value for reset zoom button + * text: "Unzoom" + * } + * } + * @example + * // importing ESM + * import bb, {zoom} from "billboard.js"; + * + * zoom: { + * enabled: zoom(), + * ... + * } + */ + zoom_enabled: false, + zoom_type: "wheel", + zoom_extent: void 0, + zoom_privileged: false, + zoom_rescale: false, + zoom_onzoom: void 0, + zoom_onzoomstart: void 0, + zoom_onzoomend: void 0, + zoom_resetButton: true, + zoom_x_min: void 0, + zoom_x_max: void 0 +}); + +;// CONCATENATED MODULE: ./src/config/resolver/interaction.ts + + + + + + + + + + + + + + +let selectionModule = () => { + util_extend(ChartInternal.prototype, internals_selection); + util_extend(Chart.prototype, api_selection); + Options.setOptions([data_selection]); + return (selectionModule = () => true)(); +}; +let subchartModule = () => { + util_extend(ChartInternal.prototype, interactions_subchart); + util_extend(Chart.prototype, api_subchart); + Options.setOptions([interaction_subchart]); + return (subchartModule = () => true)(); +}; +let zoomModule = () => { + util_extend(ChartInternal.prototype, interactions_zoom); + util_extend(Chart.prototype, api_zoom); + Options.setOptions([interaction_zoom]); + return (zoomModule = () => true)(); +}; + +;// CONCATENATED MODULE: ./src/Chart/api/axis.ts + +function setMinMax($$, type, value) { + const { config } = $$; + const helper = (key, value2) => { + const v = isNumber(value2) ? value2 : value2 === false ? void 0 : null; + if (v !== null) { + config[`axis_${key}_${type}`] = v; + } + }; + if (isDefined(value)) { + if (isObjectType(value)) { + Object.keys(value).forEach((key) => { + helper(key, value[key]); + }); + } else if (isNumber(value) || value === false) { + ["y", "y2"].forEach((key) => { + helper(key, value); + }); + } + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true + }); + } +} +function axis_getMinMax($$, type) { + const { config } = $$; + return { + x: config[`axis_x_${type}`], + y: config[`axis_y_${type}`], + y2: config[`axis_y2_${type}`] + }; +} +const axis = { + /** + * Get and set axis labels. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․labels + * @instance + * @memberof Chart + * @param {object} labels specified axis' label to be updated. + * @param {string} [labels.x] x Axis string + * @param {string} [labels.y] y Axis string + * @param {string} [labels.y2] y2 Axis string + * @returns {object|undefined} axis labels text object + * @example + * // Update axis' label + * chart.axis.labels({ + * x: "New X Axis Label", + * y: "New Y Axis Label", + * y2: "New Y2 Axis Label" + * }); + * + * chart.axis.labels(); + * // --> { + * // x: "New X Axis Label", + * // y: "New Y Axis Label", + * // y2: "New Y2 Axis Label" + * // } + */ + labels: function(labels) { + const $$ = this.internal; + let labelText; + if (labels) { + Object.keys(labels).forEach((axisId) => { + $$.axis.setLabelText(axisId, labels[axisId]); + }); + $$.axis.updateLabels(); + } + ["x", "y", "y2"].forEach((v) => { + const text = $$.axis.getLabelText(v); + if (text) { + !labelText && (labelText = {}); + labelText[v] = text; + } + }); + return labelText; + }, + /** + * Get and set axis min value. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․min + * @instance + * @memberof Chart + * @param {object} min If min is given, specified axis' min value will be updated.<br> + * If no argument is given, the min values set on generating option for each axis will be returned. + * If not set any min values on generation, it will return `undefined`.<br> + * To unset specific axis max, set `false` to each of them. + * @returns {object|undefined} + * @example + * // Update axis' min + * chart.axis.min({ + * x: -10, + * y: 1000, + * y2: 100 + * }); + * + * // To unset specific axis min, set false to each of them. + * chart.axis.min({ + * x: false, + * y: false, + * y2: false + * }); + * + * // shorthand (only affects y and y2 axis) + * chart.axis.min(-50); + * chart.axis.min(false); + */ + min: function(min) { + const $$ = this.internal; + return isValue(min) || min === false ? setMinMax($$, "min", min) : axis_getMinMax($$, "min"); + }, + /** + * Get and set axis max value. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․max + * @instance + * @memberof Chart + * @param {object} max If max is given, specified axis' max value will be updated.<br> + * If no argument is given, the max values set on generating option for each axis will be returned. + * If not set any max values on generation, it will return `undefined`.<br> + * To unset specific axis max, set `false` to each of them. + * @returns {object|undefined} + * @example + * // Update axis' label + * chart.axis.max({ + * x: 100, + * y: 1000, + * y2: 10000 + * }); + * + * // To unset specific axis max, set false to each of them. + * chart.axis.max({ + * x: false, + * y: false, + * y2: false + * }); + * + * // shorthand (only affects y and y2 axis) + * chart.axis.max(10); + * chart.axis.max(false); + */ + max: function(max) { + const $$ = this.internal; + return isValue(max) || max === false ? setMinMax($$, "max", max) : axis_getMinMax($$, "max"); + }, + /** + * Get and set axis min and max value. + * - **NOTE:** Only applicable for chart types which has x and y axes. + * @function axis․range + * @instance + * @memberof Chart + * @param {object} range If range is given, specified axis' min and max value will be updated. + * If no argument is given, the current min and max values for each axis will be returned.<br> + * To unset specific axis max, set `false` to each of them. + * @returns {object|undefined} + * @example + * // Update axis' label + * chart.axis.range({ + * min: { + * x: -10, + * y: -1000, + * y2: -10000 + * }, + * max: { + * x: 100, + * y: 1000, + * y2: 10000 + * }, + * }); + * + * // To unset specific axis max, set false to each of them. + * chart.axis.range({ + * min: { + * x: false, + * y: false, + * y2: false + * }, + * max: { + * x: false, + * y: false, + * y2: false + * }, + * }); + * + * // shorthand (only affects y and y2 axis) + * chart.axis.range({ min: -50, max: 1000 }); + * chart.axis.range({ min: false, max: false }); + */ + range: function(range) { + const { axis: axis2 } = this; + if (arguments.length) { + const { min, max } = range; + isDefined(max) && axis2.max(max); + isDefined(min) && axis2.min(min); + } else { + return { + max: axis2.max(), + min: axis2.min() + }; + } + return void 0; + } +}; +/* harmony default export */ var api_axis = ({ axis }); + +;// CONCATENATED MODULE: ./src/Chart/api/category.ts + +/* harmony default export */ var api_category = ({ + /** + * Set specified category name on category axis. + * @function category + * @instance + * @memberof Chart + * @param {number} i index of category to be changed + * @param {string} category category value to be changed + * @returns {string} + * @example + * chart.category(2, "Category 3"); + */ + category(i, category) { + const $$ = this.internal; + const { config } = $$; + if (arguments.length > 1) { + config.axis_x_categories[i] = category; + $$.redraw(); + } + return config.axis_x_categories[i]; + }, + /** + * Set or get category names on category axis. + * @function categories + * @instance + * @memberof Chart + * @param {Array} categories This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required. + * @returns {Array} + * @example + * chart.categories([ + * "Category 1", "Category 2", ... + * ]); + */ + categories(categories) { + const $$ = this.internal; + const { config } = $$; + if (!categories || !Array.isArray(categories)) { + const cat = config.axis_x_categories; + return isEmpty(cat) ? Object.values($$.data.xs)[0] : cat; + } + config.axis_x_categories = categories; + $$.redraw(); + return config.axis_x_categories; + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/flow.ts + +/* harmony default export */ var flow = ({ + /** + * Flow data to the chart.<br><br> + * By this API, you can append new data points to the chart. + * @function flow + * @instance + * @memberof Chart + * @param {object} args The object can consist with following members:<br> + * + * | Key | Type | Description | + * | --- | --- | --- | + * | json | Object | Data as JSON format (@see [data․json](Options.html#.data%25E2%2580%25A4json)) | + * | rows | Array | Data in array as row format (@see [data․rows](Options.html#.data%25E2%2580%25A4json)) | + * | columns | Array | Data in array as column format (@see [data․columns](Options.html#.data%25E2%2580%25A4columns)) | + * | to | String | The lower x edge will move to that point. If not given, the lower x edge will move by the number of given data points | + * | length | Number | The lower x edge will move by the number of this argument | + * | duration | Number | The duration of the transition will be specified value. If not given, transition.duration will be used as default | + * | done | Function | The specified function will be called when flow ends | + * + * - **NOTE:** + * - If json, rows and columns given, the data will be loaded. + * - If data that has the same target id is given, the chart will be appended. + * - Otherwise, new target will be added. One of these is required when calling. + * - If json specified, keys is required as well as data.json. + * - If tab isn't visible(by evaluating `document.hidden`), will not be executed to prevent unnecessary work. + * @example + * // 2 data points will be apprended to the tail and popped from the head. + * // After that, 4 data points will be appended and no data points will be poppoed. + * chart.flow({ + * columns: [ + * ["x", "2018-01-11", "2018-01-21"], + * ["data1", 500, 200], + * ["data2", 100, 300], + * ["data3", 200, 120] + * ], + * to: "2013-01-11", + * done: function () { + * chart.flow({ + * columns: [ + * ["x", "2018-02-11", "2018-02-12", "2018-02-13", "2018-02-14"], + * ["data1", 200, 300, 100, 250], + * ["data2", 100, 90, 40, 120], + * ["data3", 100, 100, 300, 500] + * ], + * length: 2, + * duration: 1500 + * }); + * } + * }); + */ + flow(args) { + const $$ = this.internal; + let data; + if (args.json || args.rows || args.columns) { + $$.convertData(args, (res) => { + data = res; + _(); + }); + } + function _() { + let domain; + let length = 0; + let tail = 0; + let diff; + let to; + if ($$.state.redrawing || !data || !isTabVisible()) { + return; + } + const notfoundIds = []; + const orgDataCount = $$.getMaxDataCount(); + const targets = $$.convertDataToTargets(data, true); + const isTimeSeries = $$.axis.isTimeSeries(); + $$.data.targets.forEach((t) => { + let found = false; + for (let i = 0; i < targets.length; i++) { + if (t.id === targets[i].id) { + found = true; + if (t.values[t.values.length - 1]) { + tail = t.values[t.values.length - 1].index + 1; + } + length = targets[i].values.length; + for (let j = 0; j < length; j++) { + targets[i].values[j].index = tail + j; + if (!isTimeSeries) { + targets[i].values[j].x = tail + j; + } + } + t.values = t.values.concat(targets[i].values); + targets.splice(i, 1); + break; + } + } + !found && notfoundIds.push(t.id); + }); + $$.data.targets.forEach((t) => { + for (let i = 0; i < notfoundIds.length; i++) { + if (t.id === notfoundIds[i]) { + tail = t.values[t.values.length - 1].index + 1; + for (let j = 0; j < length; j++) { + t.values.push({ + id: t.id, + index: tail + j, + x: isTimeSeries ? $$.getOtherTargetX(tail + j) : tail + j, + value: null + }); + } + } + } + }); + if ($$.data.targets.length) { + targets.forEach((t) => { + const missing = []; + for (let i = $$.data.targets[0].values[0].index; i < tail; i++) { + missing.push({ + id: t.id, + index: i, + x: isTimeSeries ? $$.getOtherTargetX(i) : i, + value: null + }); + } + t.values.forEach((v) => { + v.index += tail; + if (!isTimeSeries) { + v.x += tail; + } + }); + t.values = missing.concat(t.values); + }); + } + $$.data.targets = $$.data.targets.concat(targets); + const baseTarget = $$.data.targets[0]; + const baseValue = baseTarget.values[0]; + if (isDefined(args.to)) { + length = 0; + to = isTimeSeries ? parseDate.call($$, args.to) : args.to; + baseTarget.values.forEach((v) => { + v.x < to && length++; + }); + } else if (isDefined(args.length)) { + length = args.length; + } + if (!orgDataCount) { + if (isTimeSeries) { + diff = baseTarget.values.length > 1 ? baseTarget.values[baseTarget.values.length - 1].x - baseValue.x : baseValue.x - $$.getXDomain($$.data.targets)[0]; + } else { + diff = 1; + } + domain = [baseValue.x - diff, baseValue.x]; + } else if (orgDataCount === 1 && isTimeSeries) { + diff = (baseTarget.values[baseTarget.values.length - 1].x - baseValue.x) / 2; + domain = [new Date(+baseValue.x - diff), new Date(+baseValue.x + diff)]; + } + domain && $$.updateXDomain(null, true, true, false, domain); + $$.updateTargets($$.data.targets); + $$.redraw({ + flow: { + index: baseValue.index, + length, + duration: isValue(args.duration) ? args.duration : $$.config.transition_duration, + done: args.done, + orgDataCount + }, + withLegend: true, + withTransition: orgDataCount > 1, + withTrimXDomain: false, + withUpdateXAxis: true + }); + } + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/grid.ts + +function grid(grids, axisId) { + const $$ = this.internal; + const { config } = $$; + const withTransition = config.transition_duration && isTabVisible(); + const gridPropLines = `grid_${axisId}_lines`; + if (!grids) { + return config[gridPropLines]; + } + config[gridPropLines] = grids; + $$.updateGrid(); + $$.redrawGrid(withTransition); + return config[gridPropLines]; +} +function add(grids, axisId) { + const gridPropLines = `grid_${axisId}_lines`; + return grid.bind(this)( + this.internal.config[gridPropLines].concat(grids || []), + axisId + ); +} +function grid_remove(grids, isXAxis) { + this.internal.removeGridLines(grids, isXAxis); +} +const xgrids = function(grids) { + return grid.bind(this)(grids, "x"); +}; +util_extend(xgrids, { + /** + * Add x grid lines.<br> + * This API adds new x grid lines instead of replacing like xgrids. + * @function xgrids․add + * @instance + * @memberof Chart + * @param {Array|object} grids New x grid lines will be added. The format of this argument is the same as grid.x.lines and it's possible to give an Object if only one line will be added. + * @returns {Array} + * @example + * // Add a new x grid line + * chart.xgrids.add( + * {value: 4, text: "Label 4"} + * ); + * + * // Add new x grid lines + * chart.xgrids.add([ + * {value: 2, text: "Label 2"}, + * {value: 4, text: "Label 4"} + * ]); + */ + add(grids) { + return add.bind(this)(grids, "x"); + }, + /** + * Remove x grid lines.<br> + * This API removes x grid lines. + * @function xgrids․remove + * @instance + * @memberof Chart + * @param {object} grids This argument should include value or class. If value is given, the x grid lines that have specified x value will be removed. If class is given, the x grid lines that have specified class will be removed. If args is not given, all of x grid lines will be removed. + * @param {number} [grids.value] target value + * @param {string} [grids.class] target class + * @returns {void} + * @example + * // x grid line on x = 2 will be removed + * chart.xgrids.remove({value: 2}); + * + * // x grid lines that have 'grid-A' will be removed + * chart.xgrids.remove({ + * class: "grid-A" + * }); + * + * // all of x grid lines will be removed + * chart.xgrids.remove(); + */ + remove(grids) { + return grid_remove.bind(this)(grids, true); + } +}); +const ygrids = function(grids) { + return grid.bind(this)(grids, "y"); +}; +util_extend(ygrids, { + /** + * Add y grid lines.<br> + * This API adds new y grid lines instead of replacing like ygrids. + * @function ygrids․add + * @instance + * @memberof Chart + * @param {Array|object} grids New y grid lines will be added. The format of this argument is the same as grid.y.lines and it's possible to give an Object if only one line will be added. + * @returns {object} + * @example + * // Add a new x grid line + * chart.ygrids.add( + * {value: 400, text: "Label 4"} + * ); + * + * // Add new x grid lines + * chart.ygrids.add([ + * {value: 200, text: "Label 2"}, + * {value: 400, text: "Label 4"} + * ]); + */ + add(grids) { + return add.bind(this)(grids, "y"); + }, + /** + * Remove y grid lines.<br> + * This API removes x grid lines. + * @function ygrids․remove + * @instance + * @memberof Chart + * @param {object} grids This argument should include value or class. If value is given, the y grid lines that have specified y value will be removed. If class is given, the y grid lines that have specified class will be removed. If args is not given, all of y grid lines will be removed. + * @param {number} [grids.value] target value + * @param {string} [grids.class] target class + * @returns {void} + * @example + * // y grid line on y = 200 will be removed + * chart.ygrids.remove({value: 200}); + * + * // y grid lines that have 'grid-A' will be removed + * chart.ygrids.remove({ + * class: "grid-A" + * }); + * + * // all of y grid lines will be removed + * chart.ygrids.remove(); + */ + remove(grids) { + return grid_remove.bind(this)(grids, false); + } +}); +/* harmony default export */ var api_grid = ({ xgrids, ygrids }); + +;// CONCATENATED MODULE: ./src/Chart/api/group.ts + +/* harmony default export */ var group = ({ + /** + * Update groups for the targets. + * @function groups + * @instance + * @memberof Chart + * @param {Array} groups This argument needs to be an Array that includes one or more Array that includes target ids to be grouped. + * @returns {Array} Grouped data names array + * @example + * // data1 and data2 will be a new group. + * chart.groups([ + * ["data1", "data2"] + * ]); + */ + groups(groups) { + const $$ = this.internal; + const { config } = $$; + if (isUndefined(groups)) { + return config.data_groups; + } + config.data_groups = groups; + $$.redraw(); + return config.data_groups; + } +}); + +;// CONCATENATED MODULE: ./src/Chart/api/regions.ts + + +function regionsFn(regions2, isAdd = false) { + const $$ = this.internal; + const { config } = $$; + const withTransition = config.transition_duration && isTabVisible(); + if (!regions2) { + return config.regions; + } + config.regions = isAdd ? config.regions.concat(regions2) : regions2; + $$.updateRegion(); + $$.redrawRegion(withTransition); + return isAdd ? config.regions : regions2; +} +const regions = function(regions2) { + return regionsFn.bind(this)(regions2); +}; +util_extend(regions, { + /** + * Add new region.<br><br> + * This API adds new region instead of replacing like regions. + * @function regions․add + * @instance + * @memberof Chart + * @param {Array|object} regions New region will be added. The format of this argument is the same as regions and it's possible to give an Object if only one region will be added. + * @returns {Array} regions + * @example + * // Add a new region + * chart.regions.add( + * { + * axis: "x", start: 5, class: "regionX", + * label: { + * text: "Region Text", + * color: "red" // color string + * } + * } + * ); + * + * // Add new regions + * chart.regions.add([ + * {axis: "x", start: 5, class: "regionX"}, + * { + * axis: "y", end: 50, class: "regionY", + * label: { + * text: "Region Text", + * x: 5, // position relative of the initial x coordinate + * y: 5, // position relative of the initial y coordinate + * color: "red", // color string + * rotated: true // make text to show in vertical or horizontal + * } + * } + * ]); + */ + add: function(regions2) { + return regionsFn.bind(this)(regions2, true); + }, + /** + * Remove regions.<br><br> + * This API removes regions. + * @function regions․remove + * @instance + * @memberof Chart + * @param {object} optionsValue This argument should include classes. If classes is given, the regions that have one of the specified classes will be removed. If args is not given, all of regions will be removed. + * @returns {Array} regions Removed regions + * @example + * // regions that have 'region-A' or 'region-B' will be removed. + * chart.regions.remove({ + * classes: [ + * "region-A", "region-B" + * ] + * }); + * + * // all of regions will be removed. + * chart.regions.remove(); + */ + remove: function(optionsValue) { + const $$ = this.internal; + const { config, $T } = $$; + const options = optionsValue || {}; + const classes = getOption(options, "classes", [$REGION.region]); + let regions2 = $$.$el.main.select(`.${$REGION.regions}`).selectAll(classes.map((c) => `.${c}`)); + $T(regions2).style("opacity", "0").remove(); + regions2 = config.regions; + if (Object.keys(options).length) { + regions2 = regions2.filter((region) => { + let found = false; + if (!region.class) { + return true; + } + region.class.split(" ").forEach((c) => { + if (classes.indexOf(c) >= 0) { + found = true; + } + }); + return !found; + }); + config.regions = regions2; + } else { + config.regions = []; + } + return regions2; + } +}); +/* harmony default export */ var api_regions = ({ regions }); + +;// CONCATENATED MODULE: ./src/Chart/api/x.ts + +/* harmony default export */ var x = ({ + /** + * Get and set x values for the chart. + * @function x + * @instance + * @memberof Chart + * @param {Array} x If x is given, x values of every target will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids. + * @returns {object} xs + * @example + * // Get current x values + * chart.x(); + * + * // Update x values for all targets + * chart.x([100, 200, 300, 400, ...]); + */ + x(x) { + const $$ = this.internal; + const { axis, data } = $$; + const isCategorized = axis.isCustomX() && axis.isCategorized(); + if (isArray(x)) { + if (isCategorized) { + this.categories(x); + } else { + $$.updateTargetX(data.targets, x); + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true + }); + } + } + return isCategorized ? this.categories() : data.xs; + }, + /** + * Get and set x values for the chart. + * @function xs + * @instance + * @memberof Chart + * @param {Array} xs If xs is given, specified target's x values will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids. + * @returns {object} xs + * @example + * // Get current x values + * chart.xs(); + * + * // Update x values for all targets + * chart.xs({ + * data1: [10, 20, 30, 40, ...], + * data2: [100, 200, 300, 400, ...] + * }); + */ + xs(xs) { + const $$ = this.internal; + if (isObject(xs)) { + $$.updateTargetXs($$.data.targets, xs); + $$.redraw({ + withUpdateOrgXDomain: true, + withUpdateXDomain: true + }); + } + return $$.data.xs; + } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-axis/src/identity.js +/* harmony default export */ function d3_axis_src_identity(x) { + return x; +} + +;// CONCATENATED MODULE: ./node_modules/d3-axis/src/axis.js + +var axis_top = 1, right = 2, bottom = 3, left = 4, axis_epsilon = 1e-6; +function translateX(x) { + return "translate(" + x + ",0)"; +} +function translateY(y) { + return "translate(0," + y + ")"; +} +function axis_number(scale) { + return (d) => +scale(d); +} +function center(scale, offset) { + offset = Math.max(0, scale.bandwidth() - offset * 2) / 2; + if (scale.round()) + offset = Math.round(offset); + return (d) => +scale(d) + offset; +} +function entering() { + return !this.__axis; +} +function axis_axis(orient, scale) { + var tickArguments = [], tickValues = null, tickFormat = null, tickSizeInner = 6, tickSizeOuter = 6, tickPadding = 3, offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, k = orient === axis_top || orient === left ? -1 : 1, x = orient === left || orient === right ? "x" : "y", transform = orient === axis_top || orient === bottom ? translateX : translateY; + function axis2(context) { + var values = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain() : tickValues, format = tickFormat == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : d3_axis_src_identity : tickFormat, spacing = Math.max(tickSizeInner, 0) + tickPadding, range = scale.range(), range0 = +range[0] + offset, range1 = +range[range.length - 1] + offset, position = (scale.bandwidth ? center : axis_number)(scale.copy(), offset), selection = context.selection ? context.selection() : context, path = selection.selectAll(".domain").data([null]), tick = selection.selectAll(".tick").data(values, scale).order(), tickExit = tick.exit(), tickEnter = tick.enter().append("g").attr("class", "tick"), line = tick.select("line"), text = tick.select("text"); + path = path.merge(path.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor")); + tick = tick.merge(tickEnter); + line = line.merge(tickEnter.append("line").attr("stroke", "currentColor").attr(x + "2", k * tickSizeInner)); + text = text.merge(tickEnter.append("text").attr("fill", "currentColor").attr(x, k * spacing).attr("dy", orient === axis_top ? "0em" : orient === bottom ? "0.71em" : "0.32em")); + if (context !== selection) { + path = path.transition(context); + tick = tick.transition(context); + line = line.transition(context); + text = text.transition(context); + tickExit = tickExit.transition(context).attr("opacity", axis_epsilon).attr("transform", function(d) { + return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); + }); + tickEnter.attr("opacity", axis_epsilon).attr("transform", function(d) { + var p = this.parentNode.__axis; + return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); + }); + } + tickExit.remove(); + path.attr("d", orient === left || orient === right ? tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1 : tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1); + tick.attr("opacity", 1).attr("transform", function(d) { + return transform(position(d) + offset); + }); + line.attr(x + "2", k * tickSizeInner); + text.attr(x, k * spacing).text(format); + selection.filter(entering).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle"); + selection.each(function() { + this.__axis = position; + }); + } + axis2.scale = function(_) { + return arguments.length ? (scale = _, axis2) : scale; + }; + axis2.ticks = function() { + return tickArguments = Array.from(arguments), axis2; + }; + axis2.tickArguments = function(_) { + return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis2) : tickArguments.slice(); + }; + axis2.tickValues = function(_) { + return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis2) : tickValues && tickValues.slice(); + }; + axis2.tickFormat = function(_) { + return arguments.length ? (tickFormat = _, axis2) : tickFormat; + }; + axis2.tickSize = function(_) { + return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis2) : tickSizeInner; + }; + axis2.tickSizeInner = function(_) { + return arguments.length ? (tickSizeInner = +_, axis2) : tickSizeInner; + }; + axis2.tickSizeOuter = function(_) { + return arguments.length ? (tickSizeOuter = +_, axis2) : tickSizeOuter; + }; + axis2.tickPadding = function(_) { + return arguments.length ? (tickPadding = +_, axis2) : tickPadding; + }; + axis2.offset = function(_) { + return arguments.length ? (offset = +_, axis2) : offset; + }; + return axis2; +} +function axisTop(scale) { + return axis_axis(axis_top, scale); +} +function axisRight(scale) { + return axis_axis(right, scale); +} +function axisBottom(scale) { + return axis_axis(bottom, scale); +} +function axisLeft(scale) { + return axis_axis(left, scale); +} + +;// CONCATENATED MODULE: ./src/ChartInternal/Axis/AxisRendererHelper.ts +var AxisRendererHelper_defProp = Object.defineProperty; +var AxisRendererHelper_defNormalProp = (obj, key, value) => key in obj ? AxisRendererHelper_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var AxisRendererHelper_publicField = (obj, key, value) => { + AxisRendererHelper_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + +class AxisRendererHelper { + constructor(owner) { + AxisRendererHelper_publicField(this, "owner"); + AxisRendererHelper_publicField(this, "config"); + AxisRendererHelper_publicField(this, "scale"); + const scale = getScale(); + const { config, params } = owner; + this.owner = owner; + this.config = config; + this.scale = scale; + if (config.noTransition || !params.config.transition_duration) { + config.withoutTransition = true; + } + config.range = this.scaleExtent((params.orgXScale || scale).range()); + } + /** + * Compute a character dimension + * @param {d3.selection} node <g class=tick> node + * @returns {{w: number, h: number}} + * @private + */ + static getSizeFor1Char(node) { + const size = { + w: 5.5, + h: 11.5 + }; + !node.empty() && node.select("text").text("0").call((el) => { + try { + const { width, height } = el.node().getBBox(); + if (width && height) { + size.w = width; + size.h = height; + } + } catch (e) { + } finally { + el.text(""); + } + }); + this.getSizeFor1Char = () => size; + return size; + } + /** + * Get tick transform setter function + * @param {string} id Axis id + * @returns {Function} transfrom setter function + * @private + */ + getTickTransformSetter(id) { + const { config } = this; + const fn = id === "x" ? (value) => `translate(${value + config.tickOffset},0)` : (value) => `translate(0,${value})`; + return (selection, scale) => { + selection.attr("transform", (d) => isValue(d) ? fn(Math.ceil(scale(d))) : null); + }; + } + scaleExtent(domain) { + const start = domain[0]; + const stop = domain[domain.length - 1]; + return start < stop ? [start, stop] : [stop, start]; + } + generateTicks(scale, isYAxes) { + const { tickStepSize } = this.owner.params; + const [start, end] = scale.domain(); + let ticks = []; + if (isYAxes && tickStepSize) { + let interval = Math.round(start); + while (interval <= end) { + ticks.push(interval); + interval += tickStepSize; + } + } else if (scale.ticks) { + const { tickArguments } = this.config; + if (scale.type === "log" && !tickArguments) { + const s = getScale("_log").domain([start > 0 ? start : 1, end]).range(scale.range()); + ticks = s.ticks(); + for (let cnt = end.toFixed().length; ticks.length > 15; cnt--) { + ticks = s.ticks(cnt); + } + ticks.splice(0, 1, start); + ticks.splice(ticks.length - 1, 1, end); + } else { + ticks = scale.ticks(...this.config.tickArguments || []); + } + ticks = ticks.map((v) => { + const r = isString(v) && isNumber(v) && !isNaN(v) && Math.round(v * 10) / 10 || v; + return r; + }); + } + return ticks; + } + copyScale() { + const newScale = this.scale.copy(); + if (!newScale.domain().length) { + newScale.domain(this.scale.domain()); + } + newScale.type = this.scale.type; + return newScale; + } + textFormatted(v) { + const tickFormat = this.config.tickFormat; + const value = /\d+\.\d+0{5,}\d$/.test(v) ? +String(v).replace(/0+\d$/, "") : v; + const formatted = tickFormat ? tickFormat(value) : value; + return isDefined(formatted) ? formatted : ""; + } + transitionise(selection) { + const { config } = this; + let transitionSelection = selection; + if (config.withoutTransition) { + transitionSelection = selection.interrupt(); + } else if (config.transition || !this.owner.params.noTransition) { + try { + transitionSelection = selection.transition(config.transition); + } catch (e) { + } + } + return transitionSelection; + } +} + +;// CONCATENATED MODULE: ./src/ChartInternal/Axis/AxisRenderer.ts +var AxisRenderer_defProp = Object.defineProperty; +var AxisRenderer_defNormalProp = (obj, key, value) => key in obj ? AxisRenderer_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var AxisRenderer_publicField = (obj, key, value) => { + AxisRenderer_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + +class AxisRenderer { + constructor(params = {}) { + AxisRenderer_publicField(this, "helper"); + AxisRenderer_publicField(this, "config"); + AxisRenderer_publicField(this, "params"); + AxisRenderer_publicField(this, "g"); + AxisRenderer_publicField(this, "generatedTicks"); + const config = { + innerTickSize: 6, + outerTickSize: params.outerTick ? 6 : 0, + orient: "bottom", + range: [], + tickArguments: null, + tickCentered: null, + tickCulling: true, + tickFormat: null, + tickLength: 9, + tickOffset: 0, + tickPadding: 3, + tickValues: null, + transition: null, + noTransition: params.noTransition + }; + config.tickLength = Math.max(config.innerTickSize, 0) + config.tickPadding; + this.config = config; + this.params = params; + this.helper = new AxisRendererHelper(this); + } + /** + * Create axis element + * @param {d3.selection} g Axis selection + * @private + */ + create(g) { + const ctx = this; + const { config, helper, params } = ctx; + const { scale } = helper; + const { orient } = config; + const splitTickText = this.splitTickText.bind(ctx); + const isLeftRight = /^(left|right)$/.test(orient); + const isTopBottom = /^(top|bottom)$/.test(orient); + const tickTransform = helper.getTickTransformSetter(isTopBottom ? "x" : "y"); + const axisPx = tickTransform === helper.axisX ? "y" : "x"; + const sign = /^(top|left)$/.test(orient) ? -1 : 1; + const rotate = params.tickTextRotate; + this.config.range = scale.rangeExtent ? scale.rangeExtent() : helper.scaleExtent((params.orgXScale || scale).range()); + const { innerTickSize, tickLength, range } = config; + const id = params.id; + const tickTextPos = id && /^(x|y|y2)$/.test(id) ? params.config[`axis_${id}_tick_text_position`] : { x: 0, y: 0 }; + const prefix = id === "subX" ? `subchart_axis_x` : `axis_${id}`; + const axisShow = params.config[`${prefix}_show`]; + const tickShow = { + tick: axisShow ? params.config[`${prefix}_tick_show`] : false, + text: axisShow ? params.config[`${prefix}_tick_text_show`] : false + }; + let $g; + g.each(function() { + const g2 = src_select(this); + let scale0 = this.__chart__ || scale; + let scale1 = helper.copyScale(); + $g = g2; + this.__chart__ = scale1; + config.tickOffset = params.isCategory ? Math.ceil((scale1(1) - scale1(0)) / 2) : 0; + const path = g2.selectAll(".domain").data([0]); + path.enter().append("path").attr("class", "domain").merge(path).attr("d", () => { + const outerTickSized = config.outerTickSize * sign; + return isTopBottom ? `M${range[0]},${outerTickSized}V0H${range[1]}V${outerTickSized}` : `M${outerTickSized},${range[0]}H0V${range[1]}H${outerTickSized}`; + }); + if (tickShow.tick || tickShow.text) { + const ticks = config.tickValues || helper.generateTicks(scale1, isLeftRight); + ctx.generatedTicks = ticks; + let tick = g2.selectAll(".tick").data(ticks, scale1); + const tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick"); + const tickExit = tick.exit().remove(); + tick = tickEnter.merge(tick); + tickShow.tick && tickEnter.append("line"); + tickShow.text && tickEnter.append("text"); + const sizeFor1Char = AxisRendererHelper.getSizeFor1Char(tick); + const counts = []; + let tspan = tick.select("text").selectAll("tspan").data((d, index) => { + const split = params.tickMultiline ? splitTickText(d, scale1, ticks, isLeftRight, sizeFor1Char.w) : isArray(helper.textFormatted(d)) ? helper.textFormatted(d).concat() : [helper.textFormatted(d)]; + counts[index] = split.length; + return split.map((splitted) => ({ index, splitted })); + }); + tspan.exit().remove(); + tspan = tspan.enter().append("tspan").merge(tspan).text((d) => d.splitted); + tspan.attr("x", isTopBottom ? 0 : tickLength * sign).attr("dx", (() => { + let dx = 0; + if (/(top|bottom)/.test(orient) && rotate) { + dx = 8 * Math.sin(Math.PI * (rotate / 180)) * (orient === "top" ? -1 : 1); + } + return dx + (tickTextPos.x || 0); + })()).attr("dy", (d, i) => { + const defValue = ".71em"; + let dy = 0; + if (orient !== "top") { + dy = sizeFor1Char.h; + if (i === 0) { + dy = isLeftRight ? -((counts[d.index] - 1) * (sizeFor1Char.h / 2) - 3) : tickTextPos.y === 0 ? defValue : 0; + } + } + return isNumber(dy) && tickTextPos.y ? dy + tickTextPos.y : dy || defValue; + }); + const lineUpdate = tick.select("line"); + const textUpdate = tick.select("text"); + tickEnter.select("line").attr(`${axisPx}2`, innerTickSize * sign); + tickEnter.select("text").attr(axisPx, tickLength * sign); + ctx.setTickLineTextPosition(lineUpdate, textUpdate); + if (params.tickTitle) { + const title = textUpdate.select("title"); + (title.empty() ? textUpdate.append("title") : title).text((index) => params.tickTitle[index]); + } + if (scale1.bandwidth) { + const x = scale1; + const dx = x.bandwidth() / 2; + scale0 = (d) => x(d) + dx; + scale1 = scale0; + } else if (scale0.bandwidth) { + scale0 = scale1; + } else { + tickTransform(tickExit, scale1); + } + tick = params.owner.state.flowing ? helper.transitionise(tick) : params.owner.$T(tick); + tickTransform(tickEnter, scale0); + tickTransform(tick.style("opacity", null), scale1); + } + }); + this.g = $g; + } + /** + * Get generated ticks + * @param {number} count Count of ticks + * @returns {Array} Generated ticks + * @private + */ + getGeneratedTicks(count) { + var _a; + const len = ((_a = this.generatedTicks) == null ? void 0 : _a.length) - 1; + let res = this.generatedTicks; + if (len > count) { + const interval = Math.round(len / count + 0.1); + res = this.generatedTicks.map((v, i) => i % interval === 0 ? v : null).filter((v) => v !== null).splice(0, count); + } + return res; + } + /** + * Get tick x/y coordinate + * @returns {{x: number, y: number}} + * @private + */ + getTickXY() { + const { config } = this; + const pos = { x: 0, y: 0 }; + if (this.params.isCategory) { + pos.x = config.tickCentered ? 0 : config.tickOffset; + pos.y = config.tickCentered ? config.tickOffset : 0; + } + return pos; + } + /** + * Get tick size + * @param {object} d data object + * @returns {number} + * @private + */ + getTickSize(d) { + const { scale } = this.helper; + const { config } = this; + const { innerTickSize, range } = config; + const tickPosition = scale(d) + (config.tickCentered ? 0 : config.tickOffset); + return range[0] < tickPosition && tickPosition < range[1] ? innerTickSize : 0; + } + /** + * Set tick's line & text position + * @param {d3.selection} lineUpdate Line selection + * @param {d3.selection} textUpdate Text selection + * @private + */ + setTickLineTextPosition(lineUpdate, textUpdate) { + const tickPos = this.getTickXY(); + const { innerTickSize, orient, tickLength, tickOffset } = this.config; + const rotate = this.params.tickTextRotate; + const textAnchorForText = (r) => { + const value = ["start", "end"]; + orient === "top" && value.reverse(); + return !r ? "middle" : value[r > 0 ? 0 : 1]; + }; + const textTransform = (r) => r ? `rotate(${r})` : null; + const yForText = (r) => { + const r2 = r / (orient === "bottom" ? 15 : 23); + return r ? 11.5 - 2.5 * r2 * (r > 0 ? 1 : -1) : tickLength; + }; + const { + config: { + axis_rotated: isRotated, + axis_x_tick_text_inner: inner + } + } = this.params.owner; + switch (orient) { + case "bottom": + lineUpdate.attr("x1", tickPos.x).attr("x2", tickPos.x).attr("y2", this.getTickSize.bind(this)); + textUpdate.attr("x", 0).attr("y", yForText(rotate)).style("text-anchor", textAnchorForText(rotate)).style("text-anchor", (d, i, { length }) => { + if (!isRotated && i === 0 && (inner === true || inner.first)) { + return "start"; + } else if (!isRotated && i === length - 1 && (inner === true || inner.last)) { + return "end"; + } + return textAnchorForText(rotate); + }).attr("transform", textTransform(rotate)); + break; + case "top": + lineUpdate.attr("x2", 0).attr("y2", -innerTickSize); + textUpdate.attr("x", 0).attr("y", -yForText(rotate) * 2).style("text-anchor", textAnchorForText(rotate)).attr("transform", textTransform(rotate)); + break; + case "left": + lineUpdate.attr("x2", -innerTickSize).attr("y1", tickPos.y).attr("y2", tickPos.y); + textUpdate.attr("x", -tickLength).attr("y", tickOffset).style("text-anchor", "end"); + break; + case "right": + lineUpdate.attr("x2", innerTickSize).attr("y2", 0); + textUpdate.attr("x", tickLength).attr("y", 0).style("text-anchor", "start"); + } + } + // this should be called only when category axis + splitTickText(d, scale, ticks, isLeftRight, charWidth) { + const { params } = this; + const tickText = this.helper.textFormatted(d); + const splitted = isString(tickText) && tickText.indexOf("\n") > -1 ? tickText.split("\n") : []; + if (splitted.length) { + return splitted; + } + if (isArray(tickText)) { + return tickText; + } + let tickWidth = params.tickWidth; + if (!tickWidth || tickWidth <= 0) { + tickWidth = isLeftRight ? 95 : params.isCategory ? Math.ceil( + params.isInverted ? scale(ticks[0]) - scale(ticks[1]) : scale(ticks[1]) - scale(ticks[0]) + ) - 12 : 110; + } + function split(splitted2, text) { + let subtext; + let spaceIndex; + let textWidth; + for (let i = 1; i < text.length; i++) { + if (text.charAt(i) === " ") { + spaceIndex = i; + } + subtext = text.substr(0, i + 1); + textWidth = charWidth * subtext.length; + if (tickWidth < textWidth) { + return split( + splitted2.concat(text.substr(0, spaceIndex || i)), + text.slice(spaceIndex ? spaceIndex + 1 : i) + ); + } + } + return splitted2.concat(text); + } + return split(splitted, String(tickText)); + } + scale(x) { + if (!arguments.length) { + return this.helper.scale; + } + this.helper.scale = x; + return this; + } + orient(x) { + if (!arguments.length) { + return this.config.orient; + } + this.config.orient = x in { + top: 1, + right: 1, + bottom: 1, + left: 1 + } ? String(x) : "bottom"; + return this; + } + tickFormat(format) { + const { config } = this; + if (!arguments.length) { + return config.tickFormat; + } + config.tickFormat = format; + return this; + } + tickCentered(isCentered) { + const { config } = this; + if (!arguments.length) { + return config.tickCentered; + } + config.tickCentered = isCentered; + return this; + } + /** + * Return tick's offset value. + * The value will be set for 'category' axis type. + * @returns {number} + * @private + */ + tickOffset() { + return this.config.tickOffset; + } + /** + * Get tick interval count + * @private + * @param {number} size Total data size + * @returns {number} + */ + tickInterval(size) { + var _a; + const { outerTickSize, tickOffset, tickValues } = this.config; + let interval; + if (this.params.isCategory) { + interval = tickOffset * 2; + } else { + const scale = (_a = this.params.owner.scale.zoom) != null ? _a : this.helper.scale; + const length = this.g.select("path.domain").node().getTotalLength() - outerTickSize * 2; + interval = length / (size || this.g.selectAll("line").size()); + const intervalByValue = tickValues ? tickValues.map((v, i, arr) => { + const next = i + 1; + return next < arr.length ? scale(arr[next]) - scale(v) : null; + }).filter(Boolean) : []; + interval = Math.min(...intervalByValue, interval); + } + return interval === Infinity ? 0 : interval; + } + ticks(...args) { + const { config } = this; + if (!args.length) { + return config.tickArguments; + } + config.tickArguments = toArray(args); + return this; + } + tickCulling(culling) { + const { config } = this; + if (!arguments.length) { + return config.tickCulling; + } + config.tickCulling = culling; + return this; + } + tickValues(x) { + const { config } = this; + if (isFunction(x)) { + config.tickValues = () => x(this.helper.scale.domain()); + } else { + if (!arguments.length) { + return config.tickValues; + } + config.tickValues = x; + } + return this; + } + setTransition(t) { + this.config.transition = t; + return this; + } +} + +;// CONCATENATED MODULE: ./src/ChartInternal/Axis/Axis.ts +var Axis_defProp = Object.defineProperty; +var Axis_defNormalProp = (obj, key, value) => key in obj ? Axis_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var Axis_publicField = (obj, key, value) => { + Axis_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + +/* harmony default export */ var Axis = ({ + getAxisInstance: function() { + return this.axis || new Axis_Axis(this); + } +}); +class Axis_Axis { + constructor(owner) { + Axis_publicField(this, "owner"); + Axis_publicField(this, "x"); + Axis_publicField(this, "subX"); + Axis_publicField(this, "y"); + Axis_publicField(this, "y2"); + Axis_publicField(this, "axesList", {}); + Axis_publicField(this, "tick", { + x: null, + y: null, + y2: null + }); + Axis_publicField(this, "xs", []); + Axis_publicField(this, "orient", { + x: "bottom", + y: "left", + y2: "right", + subX: "bottom" + }); + this.owner = owner; + this.setOrient(); + } + getAxisClassName(id) { + return `${$AXIS.axis} ${$AXIS[`axis${capitalize(id)}`]}`; + } + isHorizontal($$, forHorizontal) { + const isRotated = $$.config.axis_rotated; + return forHorizontal ? isRotated : !isRotated; + } + isCategorized() { + const { config, state } = this.owner; + return config.axis_x_type.indexOf("category") >= 0 || state.hasRadar; + } + isCustomX() { + const { config } = this.owner; + return !this.isTimeSeries() && (config.data_x || notEmpty(config.data_xs)); + } + isTimeSeries(id = "x") { + return this.owner.config[`axis_${id}_type`] === "timeseries"; + } + isLog(id = "x") { + return this.owner.config[`axis_${id}_type`] === "log"; + } + isTimeSeriesY() { + return this.isTimeSeries("y"); + } + getAxisType(id = "x") { + let type = "linear"; + if (this.isTimeSeries(id)) { + type = this.owner.config.axis_x_localtime ? "time" : "utc"; + } else if (this.isLog(id)) { + type = "log"; + } + return type; + } + init() { + const $$ = this.owner; + const { config, $el: { main, axis }, state: { clip } } = $$; + const isRotated = config.axis_rotated; + const target = ["x", "y"]; + config.axis_y2_show && target.push("y2"); + target.forEach((v) => { + const classAxis = this.getAxisClassName(v); + const classLabel = $AXIS[`axis${v.toUpperCase()}Label`]; + axis[v] = main.append("g").attr("class", classAxis).attr("clip-path", () => { + let res = null; + if (v === "x") { + res = clip.pathXAxis; + } else if (v === "y") { + res = clip.pathYAxis; + } + return res; + }).attr("transform", $$.getTranslate(v)).style("visibility", config[`axis_${v}_show`] ? null : "hidden"); + axis[v].append("text").attr("class", classLabel).attr("transform", ["rotate(-90)", null][v === "x" ? +!isRotated : +isRotated]).style("text-anchor", () => this.textAnchorForAxisLabel(v)); + this.generateAxes(v); + }); + config.axis_tooltip && this.setAxisTooltip(); + } + /** + * Set axis orient according option value + * @private + */ + setOrient() { + const $$ = this.owner; + const { + axis_rotated: isRotated, + axis_y_inner: yInner, + axis_y2_inner: y2Inner + } = $$.config; + this.orient = { + x: isRotated ? "left" : "bottom", + y: isRotated ? yInner ? "top" : "bottom" : yInner ? "right" : "left", + y2: isRotated ? y2Inner ? "bottom" : "top" : y2Inner ? "left" : "right", + subX: isRotated ? "left" : "bottom" + }; + } + /** + * Generate axes + * It's used when axis' axes option is set + * @param {string} id Axis id + * @private + */ + generateAxes(id) { + const $$ = this.owner; + const { config } = $$; + const axes = []; + const axesConfig = config[`axis_${id}_axes`]; + const isRotated = config.axis_rotated; + let d3Axis; + if (id === "x") { + d3Axis = isRotated ? axisLeft : axisBottom; + } else if (id === "y") { + d3Axis = isRotated ? axisBottom : axisLeft; + } else if (id === "y2") { + d3Axis = isRotated ? axisTop : axisRight; + } + if (axesConfig.length) { + axesConfig.forEach((v) => { + const tick = v.tick || {}; + const scale = $$.scale[id].copy(); + v.domain && scale.domain(v.domain); + axes.push( + d3Axis(scale).ticks(tick.count).tickFormat( + isFunction(tick.format) ? tick.format.bind($$.api) : (x) => x + ).tickValues(tick.values).tickSizeOuter(tick.outer === false ? 0 : 6) + ); + }); + } + this.axesList[id] = axes; + } + /** + * Update axes nodes + * @private + */ + updateAxes() { + const $$ = this.owner; + const { config, $el: { main }, $T } = $$; + Object.keys(this.axesList).forEach((id) => { + const axesConfig = config[`axis_${id}_axes`]; + const scale = $$.scale[id].copy(); + const range = scale.range(); + this.axesList[id].forEach((v, i) => { + const axisRange = v.scale().range(); + if (!range.every((v2, i2) => v2 === axisRange[i2])) { + v.scale().range(range); + } + const className = `${this.getAxisClassName(id)}-${i + 1}`; + let g = main.select(`.${className.replace(/\s/, ".")}`); + if (g.empty()) { + g = main.append("g").attr("class", className).style("visibility", config[`axis_${id}_show`] ? null : "hidden").call(v); + } else { + axesConfig[i].domain && scale.domain(axesConfig[i].domain); + $T(g).call(v.scale(scale)); + } + g.attr("transform", $$.getTranslate(id, i + 1)); + }); + }); + } + /** + * Set Axis & tick values + * called from: updateScales() + * @param {string} id Axis id string + * @param {d3Scale} scale Scale + * @param {boolean} outerTick If show outer tick + * @param {boolean} noTransition If with no transition + * @private + */ + setAxis(id, scale, outerTick, noTransition) { + const $$ = this.owner; + if (id !== "subX") { + this.tick[id] = this.getTickValues(id); + } + this[id] = this.getAxis( + id, + scale, + outerTick, + // do not transit x Axis on zoom and resizing + // https://github.com/naver/billboard.js/issues/1949 + id === "x" && ($$.scale.zoom || $$.config.subchart_show || $$.state.resizing) ? true : noTransition + ); + } + // called from : getMaxTickSize() + getAxis(id, scale, outerTick, noTransition, noTickTextRotate) { + const $$ = this.owner; + const { config } = $$; + const isX = /^(x|subX)$/.test(id); + const type = isX ? "x" : id; + const isCategory = isX && this.isCategorized(); + const orient = this.orient[id]; + const tickTextRotate = noTickTextRotate ? 0 : $$.getAxisTickRotate(type); + let tickFormat; + if (isX) { + tickFormat = id === "subX" ? $$.format.subXAxisTick : $$.format.xAxisTick; + } else { + const fn = config[`axis_${id}_tick_format`]; + if (isFunction(fn)) { + tickFormat = fn.bind($$.api); + } + } + let tickValues = this.tick[type]; + const axisParams = mergeObj({ + outerTick, + noTransition, + config, + id, + tickTextRotate, + owner: $$ + }, isX && { + isCategory, + isInverted: config.axis_x_inverted, + tickMultiline: config.axis_x_tick_multiline, + tickWidth: config.axis_x_tick_width, + tickTitle: isCategory && config.axis_x_tick_tooltip && $$.api.categories(), + orgXScale: $$.scale.x + }); + if (!isX) { + axisParams.tickStepSize = config[`axis_${type}_tick_stepSize`]; + } + const axis = new AxisRenderer(axisParams).scale(isX && $$.scale.zoom || scale).orient(orient); + if (isX && this.isTimeSeries() && tickValues && !isFunction(tickValues)) { + const fn = parseDate.bind($$); + tickValues = tickValues.map((v) => fn(v)); + } else if (!isX && this.isTimeSeriesY()) { + axis.ticks(config.axis_y_tick_time_value); + tickValues = null; + } + tickValues && axis.tickValues(tickValues); + axis.tickFormat( + tickFormat || !isX && ($$.isStackNormalized() && ((x) => `${x}%`)) + ); + if (isCategory) { + axis.tickCentered(config.axis_x_tick_centered); + if (isEmpty(config.axis_x_tick_culling)) { + config.axis_x_tick_culling = false; + } + } + const tickCount = config[`axis_${type}_tick_count`]; + tickCount && axis.ticks(tickCount); + return axis; + } + updateXAxisTickValues(targets, axis) { + var _a; + const $$ = this.owner; + const { config } = $$; + const fit = config.axis_x_tick_fit; + let count = config.axis_x_tick_count; + let values; + if (fit || count && fit) { + values = $$.mapTargetsToUniqueXs(targets); + if (this.isCategorized() && count > values.length) { + count = values.length; + } + values = this.generateTickValues( + values, + count, + this.isTimeSeries() + ); + } + if (axis) { + axis.tickValues(values); + } else if (this.x) { + this.x.tickValues(values); + (_a = this.subX) == null ? void 0 : _a.tickValues(values); + } + return values; + } + getId(id) { + const { config, scale } = this.owner; + let axis = config.data_axes[id]; + if (!axis || !scale[axis]) { + axis = "y"; + } + return axis; + } + getXAxisTickFormat(forSubchart) { + const $$ = this.owner; + const { config, format } = $$; + const tickFormat = forSubchart ? config.subchart_axis_x_tick_format || config.axis_x_tick_format : config.axis_x_tick_format; + const isTimeSeries = this.isTimeSeries(); + const isCategorized = this.isCategorized(); + let currFormat; + if (tickFormat) { + if (isFunction(tickFormat)) { + currFormat = tickFormat.bind($$.api); + } else if (isTimeSeries) { + currFormat = (date) => date ? format.axisTime(tickFormat)(date) : ""; + } + } else { + currFormat = isTimeSeries ? format.defaultAxisTime : isCategorized ? $$.categoryName : (v) => v < 0 ? v.toFixed(0) : v; + } + return isFunction(currFormat) ? (v) => currFormat.apply($$, isCategorized ? [v, $$.categoryName(v)] : [v]) : currFormat; + } + getTickValues(id) { + const $$ = this.owner; + const tickValues = $$.config[`axis_${id}_tick_values`]; + const axis = $$[`${id}Axis`]; + return (isFunction(tickValues) ? tickValues.call($$.api) : tickValues) || (axis ? axis.tickValues() : void 0); + } + getLabelOptionByAxisId(id) { + return this.owner.config[`axis_${id}_label`]; + } + getLabelText(id) { + const option = this.getLabelOptionByAxisId(id); + return isString(option) ? option : option ? option.text : null; + } + setLabelText(id, text) { + const $$ = this.owner; + const { config } = $$; + const option = this.getLabelOptionByAxisId(id); + if (isString(option)) { + config[`axis_${id}_label`] = text; + } else if (option) { + option.text = text; + } + } + getLabelPosition(id, defaultPosition) { + const isRotated = this.owner.config.axis_rotated; + const option = this.getLabelOptionByAxisId(id); + const position = isObjectType(option) && option.position ? option.position : defaultPosition[+!isRotated]; + const has = (v) => !!~position.indexOf(v); + return { + isInner: has("inner"), + isOuter: has("outer"), + isLeft: has("left"), + isCenter: has("center"), + isRight: has("right"), + isTop: has("top"), + isMiddle: has("middle"), + isBottom: has("bottom") + }; + } + getAxisLabelPosition(id) { + return this.getLabelPosition( + id, + id === "x" ? ["inner-top", "inner-right"] : ["inner-right", "inner-top"] + ); + } + getLabelPositionById(id) { + return this.getAxisLabelPosition(id); + } + xForAxisLabel(id) { + const $$ = this.owner; + const { state: { width, height } } = $$; + const position = this.getAxisLabelPosition(id); + let x = position.isMiddle ? -height / 2 : 0; + if (this.isHorizontal($$, id !== "x")) { + x = position.isLeft ? 0 : position.isCenter ? width / 2 : width; + } else if (position.isBottom) { + x = -height; + } + return x; + } + dxForAxisLabel(id) { + const $$ = this.owner; + const position = this.getAxisLabelPosition(id); + let dx = position.isBottom ? "0.5em" : "0"; + if (this.isHorizontal($$, id !== "x")) { + dx = position.isLeft ? "0.5em" : position.isRight ? "-0.5em" : "0"; + } else if (position.isTop) { + dx = "-0.5em"; + } + return dx; + } + textAnchorForAxisLabel(id) { + const $$ = this.owner; + const position = this.getAxisLabelPosition(id); + let anchor = position.isMiddle ? "middle" : "end"; + if (this.isHorizontal($$, id !== "x")) { + anchor = position.isLeft ? "start" : position.isCenter ? "middle" : "end"; + } else if (position.isBottom) { + anchor = "start"; + } + return anchor; + } + dyForAxisLabel(id) { + const $$ = this.owner; + const { config } = $$; + const isRotated = config.axis_rotated; + const isInner = this.getAxisLabelPosition(id).isInner; + const tickRotate = config[`axis_${id}_tick_rotate`] ? $$.getHorizontalAxisHeight(id) : 0; + const { width: maxTickWidth } = this.getMaxTickSize(id); + let dy; + if (id === "x") { + const xHeight = config.axis_x_height; + if (isRotated) { + dy = isInner ? "1.2em" : -25 - maxTickWidth; + } else if (isInner) { + dy = "-0.5em"; + } else if (xHeight) { + dy = xHeight - 10; + } else if (tickRotate) { + dy = tickRotate - 10; + } else { + dy = "3em"; + } + } else { + dy = { + y: ["-0.5em", 10, "3em", "1.2em", 10], + y2: ["1.2em", -20, "-2.2em", "-0.5em", 15] + }[id]; + if (isRotated) { + if (isInner) { + dy = dy[0]; + } else if (tickRotate) { + dy = tickRotate * (id === "y2" ? -1 : 1) - dy[1]; + } else { + dy = dy[2]; + } + } else { + dy = isInner ? dy[3] : (dy[4] + (config[`axis_${id}_inner`] ? 0 : maxTickWidth + dy[4])) * (id === "y" ? -1 : 1); + } + } + return dy; + } + /** + * Get max tick size + * @param {string} id axis id string + * @param {boolean} withoutRecompute wheather or not to recompute + * @returns {object} {width, height} + * @private + */ + getMaxTickSize(id, withoutRecompute) { + const $$ = this.owner; + const { config, state: { current }, $el: { svg, chart } } = $$; + const currentTickMax = current.maxTickSize[id]; + const configPrefix = `axis_${id}`; + const max = { + width: 0, + height: 0 + }; + if (withoutRecompute || !config[`${configPrefix}_show`] || currentTickMax.width > 0 && $$.filterTargetsToShow().length === 0) { + return currentTickMax; + } + if (svg) { + const isYAxis = /^y2?$/.test(id); + const targetsToShow = $$.filterTargetsToShow($$.data.targets); + const scale = $$.scale[id].copy().domain( + $$[`get${isYAxis ? "Y" : "X"}Domain`](targetsToShow, id) + ); + const domain = scale.domain(); + const isDomainSame = domain[0] === domain[1] && domain.every((v) => v > 0); + const isCurrentMaxTickDomainSame = isArray(currentTickMax.domain) && currentTickMax.domain[0] === currentTickMax.domain[1] && currentTickMax.domain.every((v) => v > 0); + if (isDomainSame || isCurrentMaxTickDomainSame) { + return currentTickMax.size; + } else { + currentTickMax.domain = domain; + } + if (!isYAxis) { + currentTickMax.ticks.splice(0); + } + const axis = this.getAxis(id, scale, false, false, true); + const tickRotate = config[`${configPrefix}_tick_rotate`]; + const tickCount = config[`${configPrefix}_tick_count`]; + const tickValues = config[`${configPrefix}_tick_values`]; + if (!tickValues && tickCount) { + axis.tickValues( + this.generateTickValues( + domain, + tickCount, + isYAxis ? this.isTimeSeriesY() : this.isTimeSeries() + ) + ); + } + !isYAxis && this.updateXAxisTickValues(targetsToShow, axis); + const dummy = chart.append("svg").style("visibility", "hidden").style("position", "fixed").style("top", "0").style("left", "0"); + axis.create(dummy); + dummy.selectAll("text").attr("transform", isNumber(tickRotate) ? `rotate(${tickRotate})` : null).each(function(d, i) { + const { width, height } = this.getBoundingClientRect(); + max.width = Math.max(max.width, width); + max.height = Math.max(max.height, height); + if (!isYAxis) { + currentTickMax.ticks[i] = width; + } + }); + dummy.remove(); + } + Object.keys(max).forEach((key) => { + if (max[key] > 0) { + currentTickMax[key] = max[key]; + } + }); + return currentTickMax; + } + getXAxisTickTextY2Overflow(defaultPadding) { + const $$ = this.owner; + const { axis, config, state: { current, isLegendRight, legendItemWidth } } = $$; + const xAxisTickRotate = $$.getAxisTickRotate("x"); + const positiveRotation = xAxisTickRotate > 0 && xAxisTickRotate < 90; + if ((axis.isCategorized() || axis.isTimeSeries()) && config.axis_x_tick_fit && (!config.axis_x_tick_culling || isEmpty(config.axis_x_tick_culling)) && !config.axis_x_tick_multiline && positiveRotation) { + const y2AxisWidth = config.axis_y2_show && current.maxTickSize.y2.width || 0; + const legendWidth = isLegendRight && legendItemWidth || 0; + const widthWithoutCurrentPaddingLeft = current.width - $$.getCurrentPaddingByDirection("left"); + const maxOverflow = this.getXAxisTickMaxOverflow( + xAxisTickRotate, + widthWithoutCurrentPaddingLeft - defaultPadding + ) - y2AxisWidth - legendWidth; + const xAxisTickTextY2Overflow = Math.max(0, maxOverflow) + defaultPadding; + return Math.min(xAxisTickTextY2Overflow, widthWithoutCurrentPaddingLeft / 2); + } + return 0; + } + getXAxisTickMaxOverflow(xAxisTickRotate, widthWithoutCurrentPaddingLeft) { + const $$ = this.owner; + const { axis, config, state } = $$; + const isTimeSeries = axis.isTimeSeries(); + const tickTextWidths = state.current.maxTickSize.x.ticks; + const tickCount = tickTextWidths.length; + const { left, right } = state.axis.x.padding; + let maxOverflow = 0; + const remaining = tickCount - (isTimeSeries && config.axis_x_tick_fit ? 0.5 : 0); + for (let i = 0; i < tickCount; i++) { + const tickIndex = i + 1; + const rotatedTickTextWidth = Math.cos(Math.PI * xAxisTickRotate / 180) * tickTextWidths[i]; + const ticksBeforeTickText = tickIndex - (isTimeSeries ? 1 : 0.5) + left; + if (ticksBeforeTickText <= 0) { + continue; + } + const xAxisLengthWithoutTickTextWidth = widthWithoutCurrentPaddingLeft - rotatedTickTextWidth; + const tickLength = xAxisLengthWithoutTickTextWidth / ticksBeforeTickText; + const remainingTicks = remaining - tickIndex; + const paddingRightLength = right * tickLength; + const remainingTickWidth = remainingTicks * tickLength + paddingRightLength; + const overflow = rotatedTickTextWidth - tickLength / 2 - remainingTickWidth; + maxOverflow = Math.max(maxOverflow, overflow); + } + const filteredTargets = $$.filterTargetsToShow($$.data.targets); + let tickOffset = 0; + if (!isTimeSeries && config.axis_x_tick_count <= filteredTargets.length && filteredTargets[0].values.length) { + const scale = getScale( + $$.axis.getAxisType("x"), + 0, + widthWithoutCurrentPaddingLeft - maxOverflow + ).domain([ + left * -1, + $$.getXDomainMax($$.data.targets) + 1 + right + ]); + tickOffset = Math.ceil((scale(1) - scale(0)) / 2); + } + return maxOverflow + tickOffset; + } + updateLabels(withTransition) { + const $$ = this.owner; + const { $el: { main }, $T } = $$; + const labels = { + x: main.select(`.${$AXIS.axisX} .${$AXIS.axisXLabel}`), + y: main.select(`.${$AXIS.axisY} .${$AXIS.axisYLabel}`), + y2: main.select(`.${$AXIS.axisY2} .${$AXIS.axisY2Label}`) + }; + Object.keys(labels).filter((id) => !labels[id].empty()).forEach((v) => { + const node = labels[v]; + $T(node, withTransition).attr("x", () => this.xForAxisLabel(v)).attr("dx", () => this.dxForAxisLabel(v)).attr("dy", () => this.dyForAxisLabel(v)).text(() => this.getLabelText(v)); + }); + } + /** + * Get axis padding value + * @param {number|object} padding Padding object + * @param {string} key Key string of padding + * @param {Date|number} defaultValue Default value + * @param {number} domainLength Domain length + * @returns {number} Padding value in scale + * @private + */ + getPadding(padding, key, defaultValue, domainLength) { + const p = isNumber(padding) ? padding : padding[key]; + if (!isValue(p)) { + return defaultValue; + } + return this.owner.convertPixelToScale( + /(bottom|top)/.test(key) ? "y" : "x", + p, + domainLength + ); + } + generateTickValues(values, tickCount, forTimeSeries) { + let tickValues = values; + if (tickCount) { + const targetCount = isFunction(tickCount) ? tickCount() : tickCount; + if (targetCount === 1) { + tickValues = [values[0]]; + } else if (targetCount === 2) { + tickValues = [values[0], values[values.length - 1]]; + } else if (targetCount > 2) { + const isCategorized = this.isCategorized(); + const count = targetCount - 2; + const start = values[0]; + const end = values[values.length - 1]; + const interval = (end - start) / (count + 1); + let tickValue; + tickValues = [start]; + for (let i = 0; i < count; i++) { + tickValue = +start + interval * (i + 1); + tickValues.push( + forTimeSeries ? new Date(tickValue) : isCategorized ? Math.round(tickValue) : tickValue + ); + } + tickValues.push(end); + } + } + if (!forTimeSeries) { + tickValues = tickValues.sort((a, b) => a - b); + } + return tickValues; + } + generateTransitions(withTransition) { + const $$ = this.owner; + const { $el: { axis }, $T } = $$; + const [axisX, axisY, axisY2, axisSubX] = ["x", "y", "y2", "subX"].map((v) => $T(axis[v], withTransition)); + return { axisX, axisY, axisY2, axisSubX }; + } + redraw(transitions, isHidden, isInit) { + const $$ = this.owner; + const { config, $el } = $$; + const opacity = isHidden ? "0" : null; + ["x", "y", "y2", "subX"].forEach((id) => { + const axis = this[id]; + const $axis = $el.axis[id]; + if (axis && $axis) { + if (!isInit && !config.transition_duration) { + axis.config.withoutTransition = true; + } + $axis.style("opacity", opacity); + axis.create(transitions[`axis${capitalize(id)}`]); + } + }); + this.updateAxes(); + } + /** + * Redraw axis + * @param {Array} targetsToShow targets data to be shown + * @param {object} wth option object + * @param {d3.Transition} transitions Transition object + * @param {object} flow flow object + * @param {boolean} isInit called from initialization + * @private + */ + redrawAxis(targetsToShow, wth, transitions, flow, isInit) { + var _a, _b, _c; + const $$ = this.owner; + const { config, scale, $el } = $$; + const hasZoom = !!scale.zoom; + let xDomainForZoom; + if (!hasZoom && this.isCategorized() && targetsToShow.length === 0) { + scale.x.domain([0, $el.axis.x.selectAll(".tick").size()]); + } + if (scale.x && targetsToShow.length) { + !hasZoom && $$.updateXDomain( + targetsToShow, + wth.UpdateXDomain, + wth.UpdateOrgXDomain, + wth.TrimXDomain + ); + if (!config.axis_x_tick_values) { + this.updateXAxisTickValues(targetsToShow); + } + } else if (this.x) { + this.x.tickValues([]); + (_a = this.subX) == null ? void 0 : _a.tickValues([]); + } + if (config.zoom_rescale && !flow) { + xDomainForZoom = scale.x.orgDomain(); + } + ["y", "y2"].forEach((key) => { + const prefix = `axis_${key}_`; + const axisScale = scale[key]; + if (axisScale) { + const tickValues = config[`${prefix}tick_values`]; + const tickCount = config[`${prefix}tick_count`]; + axisScale.domain($$.getYDomain(targetsToShow, key, xDomainForZoom)); + if (!tickValues && tickCount) { + const axis = $$.axis[key]; + const domain = axisScale.domain(); + axis.tickValues( + this.generateTickValues( + domain, + domain.every((v) => v === 0) ? 1 : tickCount, + this.isTimeSeriesY() + ) + ); + } + } + }); + this.redraw(transitions, $$.hasArcType(), isInit); + this.updateLabels(wth.Transition); + if ((wth.UpdateXDomain || wth.UpdateXAxis || wth.Y) && targetsToShow.length) { + this.setCulling(); + } + if (wth.Y) { + (_b = scale.subY) == null ? void 0 : _b.domain($$.getYDomain(targetsToShow, "y")); + (_c = scale.subY2) == null ? void 0 : _c.domain($$.getYDomain(targetsToShow, "y2")); + } + } + /** + * Set manual culling + * @private + */ + setCulling() { + const $$ = this.owner; + const { config, state: { clip, current }, $el } = $$; + ["subX", "x", "y", "y2"].forEach((type) => { + const axis = $el.axis[type]; + const id = type === "subX" ? "x" : type; + const cullingOptionPrefix = `axis_${id}_tick_culling`; + const toCull = config[cullingOptionPrefix]; + if (axis && toCull) { + const tickNodes = axis.selectAll(".tick"); + const tickValues = sortValue(tickNodes.data()); + const tickSize = tickValues.length; + const cullingMax = config[`${cullingOptionPrefix}_max`]; + const lines = config[`${cullingOptionPrefix}_lines`]; + let intervalForCulling; + if (tickSize) { + for (let i = 1; i < tickSize; i++) { + if (tickSize / i < cullingMax) { + intervalForCulling = i; + break; + } + } + tickNodes.each(function(d) { + const node = lines ? this.querySelector("text") : this; + if (node) { + node.style.display = tickValues.indexOf(d) % intervalForCulling ? "none" : null; + } + }); + } else { + tickNodes.style("display", null); + } + if (type === "x") { + const clipPath = current.maxTickSize.x.clipPath ? clip.pathXAxisTickTexts : null; + $el.svg.selectAll(`.${$AXIS.axisX} .tick text`).attr("clip-path", clipPath); + } + } + }); + } + /** + * Set axis tooltip + * @private + */ + setAxisTooltip() { + var _a; + const $$ = this.owner; + const { config: { axis_rotated: isRotated, axis_tooltip }, $el: { axis, axisTooltip } } = $$; + const bgColor = (_a = axis_tooltip.backgroundColor) != null ? _a : "black"; + $$.generateTextBGColorFilter( + bgColor, + { + x: -0.15, + y: -0.2, + width: 1.3, + height: 1.3 + } + ); + ["x", "y", "y2"].forEach((v) => { + var _a2, _b, _c; + axisTooltip[v] = (_a2 = axis[v]) == null ? void 0 : _a2.append("text").classed($AXIS[`axis${v.toUpperCase()}Tooltip`], true).attr("filter", $$.updateTextBGColor({ id: v }, bgColor)); + if (isRotated) { + const pos = v === "x" ? "x" : "y"; + const val = v === "y" ? "1.15em" : v === "x" ? "-0.3em" : "-0.4em"; + (_b = axisTooltip[v]) == null ? void 0 : _b.attr(pos, val).attr(`d${v === "x" ? "y" : "x"}`, v === "x" ? "0.4em" : "-1.3em").style("text-anchor", v === "x" ? "end" : null); + } else { + const pos = v === "x" ? "y" : "x"; + const val = v === "x" ? "1.15em" : `${v === "y" ? "-" : ""}0.4em`; + (_c = axisTooltip[v]) == null ? void 0 : _c.attr(pos, val).attr(`d${v === "x" ? "x" : "y"}`, v === "x" ? "-1em" : "0.3em").style("text-anchor", v === "y" ? "end" : null); + } + }); + } +} + +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/eventrect.ts + + +/* harmony default export */ var eventrect = ({ + /** + * Initialize the area that detects the event. + * Add a container for the zone that detects the event. + * @private + */ + initEventRect() { + const $$ = this; + $$.$el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $EVENT.eventRects).style("fill-opacity", "0"); + }, + /** + * Redraws the area that detects the event. + * @private + */ + redrawEventRect() { + var _a; + const $$ = this; + const { config, state, $el } = $$; + const isMultipleX = $$.isMultipleX(); + const isInverted = config.axis_x_inverted; + if ($el.eventRect) { + $$.updateEventRect($el.eventRect, true); + } else if ($$.data.targets.length) { + const eventRects = $$.$el.main.select(`.${$EVENT.eventRects}`).style("cursor", config.zoom_enabled && config.zoom_type !== "drag" ? config.axis_rotated ? "ns-resize" : "ew-resize" : null).classed($EVENT.eventRectsMultiple, isMultipleX).classed($EVENT.eventRectsSingle, !isMultipleX); + const eventRectUpdate = eventRects.selectAll(`.${$EVENT.eventRect}`).data([0]).enter().append("rect"); + $$.updateEventRect(eventRectUpdate); + $$.updateEventType(eventRectUpdate); + eventRectUpdate.call($$.getDraggableSelection()); + $el.eventRect = eventRectUpdate; + if ($$.state.inputType === "touch" && !$el.svg.on("touchstart.eventRect") && !$$.hasArcType()) { + $$.bindTouchOnEventRect(); + } + state.rendered && $$.updateEventRect($el.eventRect, true); + } + if (!isMultipleX) { + const xAxisTickValues = $$.getMaxDataCountTarget(); + if (!config.data_xSort || isInverted) { + xAxisTickValues.sort((a, b) => isInverted ? b.x - a.x : a.x - b.x); + } + $$.updateDataIndexByX(xAxisTickValues); + $$.updateXs(xAxisTickValues); + (_a = $$.updatePointClass) == null ? void 0 : _a.call($$, true); + state.eventReceiver.data = xAxisTickValues; + } + $$.updateEventRectData(); + }, + bindTouchOnEventRect() { + const $$ = this; + const { config, state, $el: { eventRect, svg } } = $$; + const selectRect = (context) => { + if ($$.isMultipleX()) { + $$.selectRectForMultipleXs(context); + } else { + const index = $$.getDataIndexFromEvent(state.event); + $$.callOverOutForTouch(index); + index === -1 ? $$.unselectRect() : $$.selectRectForSingle(context, index); + } + }; + const unselectRect = () => { + $$.unselectRect(); + $$.callOverOutForTouch(); + }; + const preventDefault = config.interaction_inputType_touch.preventDefault; + const isPrevented = isBoolean(preventDefault) && preventDefault || false; + const preventThreshold = !isNaN(preventDefault) && preventDefault || null; + let startPx; + const preventEvent = (event) => { + const eventType = event.type; + const touch = event.changedTouches[0]; + const currentXY = touch[`client${config.axis_rotated ? "Y" : "X"}`]; + if (eventType === "touchstart") { + if (isPrevented) { + event.preventDefault(); + } else if (preventThreshold !== null) { + startPx = currentXY; + } + } else if (eventType === "touchmove") { + if (isPrevented || startPx === true || preventThreshold !== null && Math.abs(startPx - currentXY) >= preventThreshold) { + startPx = true; + event.preventDefault(); + } + } + }; + eventRect.on("touchstart", (event) => { + state.event = event; + $$.updateEventRect(); + }).on("touchstart.eventRect touchmove.eventRect", (event) => { + state.event = event; + if (!eventRect.empty() && eventRect.classed($EVENT.eventRect)) { + if (state.dragging || state.flowing || $$.hasArcType() || event.touches.length > 1) { + return; + } + preventEvent(event); + selectRect(eventRect.node()); + } else { + unselectRect(); + } + }, true).on("touchend.eventRect", (event) => { + state.event = event; + if (!eventRect.empty() && eventRect.classed($EVENT.eventRect)) { + if ($$.hasArcType() || !$$.toggleShape || state.cancelClick) { + state.cancelClick && (state.cancelClick = false); + } + } + }, true); + svg.on("touchstart", (event) => { + state.event = event; + const { target } = event; + if (target && target !== eventRect.node()) { + unselectRect(); + } + }); + }, + /** + * Update event rect size + * @param {d3Selection} eventRect Event <rect> element + * @param {boolean} force Force to update + * @private + */ + updateEventRect(eventRect, force = false) { + const $$ = this; + const { state, $el } = $$; + const { eventReceiver, width, height, rendered, resizing } = state; + const rectElement = eventRect || $el.eventRect; + const updateClientRect = () => { + if (eventReceiver) { + const scrollPos = getScrollPosition($el.chart.node()); + eventReceiver.rect = rectElement.node().getBoundingClientRect().toJSON(); + eventReceiver.rect.top += scrollPos.y; + eventReceiver.rect.left += scrollPos.x; + } + }; + if (!rendered || resizing || force) { + rectElement.attr("x", 0).attr("y", 0).attr("width", width).attr("height", height); + if (!rendered || force) { + rectElement.classed($EVENT.eventRect, true); + } + } + updateClientRect(); + }, + /** + * Update event type (single or multiple x) + * @param {d3Selection | boolean} target Target element or boolean to rebind event + */ + updateEventType(target) { + const $$ = this; + const isRebindCall = isBoolean(target); + const eventRect = isRebindCall ? $$.$el.eventRect : target; + const unbindEvent = isRebindCall ? target !== (eventRect == null ? void 0 : eventRect.datum().multipleX) : false; + if (eventRect) { + unbindEvent && (eventRect == null ? void 0 : eventRect.on("mouseover mousemove mouseout click", null)); + $$.isMultipleX() ? $$.generateEventRectsForMultipleXs(eventRect) : $$.generateEventRectsForSingleX(eventRect); + } + }, + /** + * Updates the location and size of the eventRect. + * @private + */ + updateEventRectData() { + const $$ = this; + const { config, scale, state } = $$; + const xScale = scale.zoom || scale.x; + const isRotated = config.axis_rotated; + const isMultipleX = $$.isMultipleX(); + let x; + let y; + let w; + let h; + $$.updateEventType(isMultipleX); + if (isMultipleX) { + x = 0; + y = 0; + w = state.width; + h = state.height; + } else { + let rectW; + let rectX; + if ($$.axis.isCategorized()) { + rectW = $$.getEventRectWidth(); + rectX = (d) => xScale(d.x) - rectW / 2; + } else { + const getPrevNextX = ({ index }) => ({ + prev: $$.getPrevX(index), + next: $$.getNextX(index) + }); + rectW = (d) => { + const x2 = getPrevNextX(d); + const xDomain = xScale.domain(); + let val; + if (x2.prev === null && x2.next === null) { + val = isRotated ? state.height : state.width; + } else if (x2.prev === null) { + val = (xScale(x2.next) + xScale(d.x)) / 2; + } else if (x2.next === null) { + val = xScale(xDomain[1]) - (xScale(x2.prev) + xScale(d.x)) / 2; + } else { + Object.keys(x2).forEach((key, i) => { + var _a; + x2[key] = (_a = x2[key]) != null ? _a : xDomain[i]; + }); + val = Math.max(0, (xScale(x2.next) - xScale(x2.prev)) / 2); + } + return val; + }; + rectX = (d) => { + const x2 = getPrevNextX(d); + let val; + if (x2.prev === null && x2.next === null) { + val = 0; + } else if (x2.prev === null) { + val = xScale(xScale.domain()[0]); + } else { + val = (xScale(d.x) + xScale(x2.prev)) / 2; + } + return val; + }; + } + x = isRotated ? 0 : rectX; + y = isRotated ? rectX : 0; + w = isRotated ? state.width : rectW; + h = isRotated ? rectW : state.height; + } + const { eventReceiver } = state; + const call = (fn, v) => isFunction(fn) ? fn(v) : fn; + eventReceiver.coords.splice(eventReceiver.data.length); + eventReceiver.data.forEach((d, i) => { + eventReceiver.coords[i] = { + x: call(x, d), + y: call(y, d), + w: call(w, d), + h: call(h, d) + }; + }); + }, + /** + * Seletct rect for single x value + * @param {d3Selection} context Event rect element + * @param {number} index x Axis index + * @private + */ + selectRectForSingle(context, index) { + var _a, _b; + const $$ = this; + const { config, $el: { main, circle } } = $$; + const isSelectionEnabled = config.data_selection_enabled; + const isSelectionGrouped = config.data_selection_grouped; + const isSelectable = config.data_selection_isselectable; + const isTooltipGrouped = config.tooltip_grouped; + const selectedData = $$.getAllValuesOnIndex(index); + if (isTooltipGrouped) { + $$.showTooltip(selectedData, context); + (_a = $$.showGridFocus) == null ? void 0 : _a.call($$, selectedData); + if (!isSelectionEnabled || isSelectionGrouped) { + return; + } + } + !circle && main.selectAll(`.${$COMMON.EXPANDED}:not(.${$SHAPE.shape}-${index})`).classed( + $COMMON.EXPANDED, + false + ); + const shapeAtIndex = main.selectAll(`.${$SHAPE.shape}-${index}`).classed($COMMON.EXPANDED, true).style("cursor", isSelectable ? "pointer" : null).filter(function(d) { + return $$.isWithinShape(this, d); + }); + if (shapeAtIndex.empty() && !isTooltipGrouped) { + (_b = $$.hideGridFocus) == null ? void 0 : _b.call($$); + $$.hideTooltip(); + !isSelectionGrouped && $$.setExpand(index); + } + shapeAtIndex.call((selected) => { + var _a2, _b2; + const d = selected.data(); + if (isSelectionEnabled && (isSelectionGrouped || (isSelectable == null ? void 0 : isSelectable.bind($$.api)(d)))) { + context.style.cursor = "pointer"; + } + if (!isTooltipGrouped) { + $$.showTooltip(d, context); + (_a2 = $$.showGridFocus) == null ? void 0 : _a2.call($$, d); + (_b2 = $$.unexpandCircles) == null ? void 0 : _b2.call($$); + selected.each((d2) => $$.setExpand(index, d2.id)); + } + }); + }, + /** + * Select rect for multiple x values + * @param {d3Selection} context Event rect element + * @param {boolean} [triggerEvent=true] Whether trigger event or not + * @private + */ + selectRectForMultipleXs(context, triggerEvent = true) { + const $$ = this; + const { config, state } = $$; + const targetsToShow = $$.filterTargetsToShow($$.data.targets); + if (state.dragging || $$.hasArcType(targetsToShow)) { + return; + } + const mouse = getPointer(state.event, context); + const closest = $$.findClosestFromTargets(targetsToShow, mouse); + if (triggerEvent && state.mouseover && (!closest || closest.id !== state.mouseover.id)) { + config.data_onout.call($$.api, state.mouseover); + state.mouseover = void 0; + } + if (!closest) { + $$.unselectRect(); + return; + } + const sameXData = $$.isBubbleType(closest) || $$.isScatterType(closest) || !config.tooltip_grouped ? [closest] : $$.filterByX(targetsToShow, closest.x); + const selectedData = sameXData.map((d) => $$.addName(d)); + $$.showTooltip(selectedData, context); + $$.setExpand(closest.index, closest.id, true); + $$.showGridFocus(selectedData); + const dist = $$.dist(closest, mouse); + if ($$.isBarType(closest.id) || dist < $$.getPointSensitivity(closest)) { + $$.$el.svg.select(`.${$EVENT.eventRect}`).style("cursor", "pointer"); + if (triggerEvent && !state.mouseover) { + config.data_onover.call($$.api, closest); + state.mouseover = closest; + } + } + }, + /** + * Unselect EventRect. + * @private + */ + unselectRect() { + const $$ = this; + const { $el: { circle, tooltip } } = $$; + $$.$el.svg.select(`.${$EVENT.eventRect}`).style("cursor", null); + $$.hideGridFocus(); + if (tooltip) { + $$.hideTooltip(); + $$._handleLinkedCharts(false); + } + circle && !$$.isPointFocusOnly() && $$.unexpandCircles(); + $$.expandBarTypeShapes(false); + }, + /** + * Create eventRect for each data on the x-axis. + * Register touch and drag events. + * @param {object} eventRectEnter d3.select($EVENT.eventRects) object. + * @returns {object} d3.select($EVENT.eventRects) object. + * @private + */ + generateEventRectsForSingleX(eventRectEnter) { + const $$ = this; + const { config, state } = $$; + const { eventReceiver } = state; + const rect = eventRectEnter.style( + "cursor", + config.data_selection_enabled && config.data_selection_grouped ? "pointer" : null + ).on("click", function(event) { + state.event = event; + const { currentIdx, data } = eventReceiver; + const d = data[currentIdx === -1 ? $$.getDataIndexFromEvent(event) : currentIdx]; + $$.clickHandlerForSingleX.bind(this)(d, $$); + }).datum({ multipleX: false }); + if (state.inputType === "mouse") { + const getData = (event) => { + const index = event ? $$.getDataIndexFromEvent(event) : eventReceiver.currentIdx; + return index > -1 ? eventReceiver.data[index] : null; + }; + rect.on("mouseover", (event) => { + state.event = event; + $$.updateEventRect(); + Object.values($$.$el.axisTooltip).forEach((v) => v == null ? void 0 : v.style("display", null)); + }).on("mousemove", function(event) { + const d = getData(event); + state.event = event; + if (!d) { + return; + } + let { index } = d; + const stepType = config.line_step_type; + if (config.line_step_tooltipMatch && $$.hasType("step") && /^step\-(before|after)$/.test(stepType)) { + const scale = $$.scale.zoom || $$.scale.x; + const xs = $$.axis.xs[index]; + const inverted = scale.invert(getPointer(event, this)[0]); + if (stepType === "step-after" && inverted < xs) { + index -= 1; + } else if (stepType === "step-before" && inverted > xs) { + index += 1; + } + } + $$.showAxisGridFocus(); + const eventOnSameIdx = config.tooltip_grouped && index === eventReceiver.currentIdx; + if (state.dragging || state.flowing || $$.hasArcType() || eventOnSameIdx) { + config.tooltip_show && eventOnSameIdx && $$.setTooltipPosition(); + return; + } + if (index !== eventReceiver.currentIdx) { + $$.setOverOut(false, eventReceiver.currentIdx); + eventReceiver.currentIdx = index; + } + index === -1 ? $$.unselectRect() : $$.selectRectForSingle(this, index); + $$.setOverOut(index !== -1, index); + }).on("mouseout", (event) => { + state.event = event; + if (!config || $$.hasArcType() || eventReceiver.currentIdx === -1) { + return; + } + $$.hideAxisGridFocus(); + $$.unselectRect(); + $$.setOverOut(false, eventReceiver.currentIdx); + eventReceiver.currentIdx = -1; + }); + } + return rect; + }, + clickHandlerForSingleX(d, ctx) { + const $$ = ctx; + const { config, state, $el: { main } } = $$; + if (!d || $$.hasArcType() || state.cancelClick) { + state.cancelClick && (state.cancelClick = false); + return; + } + const { index } = d; + main.selectAll(`.${$SHAPE.shape}-${index}`).each(function(d2) { + var _a; + if (config.data_selection_grouped || $$.isWithinShape(this, d2)) { + (_a = $$.toggleShape) == null ? void 0 : _a.call($$, this, d2, index); + config.data_onclick.bind($$.api)(d2, this); + } + }); + }, + /** + * Create an eventRect, + * Register touch and drag events. + * @param {object} eventRectEnter d3.select($EVENT.eventRects) object. + * @private + */ + generateEventRectsForMultipleXs(eventRectEnter) { + const $$ = this; + const { state } = $$; + eventRectEnter.on("click", function(event) { + state.event = event; + $$.clickHandlerForMultipleXS.bind(this)($$); + }).datum({ multipleX: true }); + if (state.inputType === "mouse") { + eventRectEnter.on("mouseover mousemove", function(event) { + state.event = event; + $$.selectRectForMultipleXs(this); + }).on("mouseout", (event) => { + state.event = event; + if (!$$.config || $$.hasArcType()) { + return; + } + $$.unselectRect(); + }); + } + }, + clickHandlerForMultipleXS(ctx) { + const $$ = ctx; + const { config, state } = $$; + const targetsToShow = $$.filterTargetsToShow($$.data.targets); + if ($$.hasArcType(targetsToShow)) { + return; + } + const mouse = getPointer(state.event, this); + const closest = $$.findClosestFromTargets(targetsToShow, mouse); + const sensitivity = config.point_sensitivity === "radius" ? closest.r : config.point_sensitivity; + if (!closest) { + return; + } + if ($$.isBarType(closest.id) || $$.dist(closest, mouse) < sensitivity) { + $$.$el.main.selectAll(`.${$SHAPE.shapes}${$$.getTargetSelectorSuffix(closest.id)}`).selectAll(`.${$SHAPE.shape}-${closest.index}`).each(function() { + var _a; + if (config.data_selection_grouped || $$.isWithinShape(this, closest)) { + (_a = $$.toggleShape) == null ? void 0 : _a.call($$, this, closest, closest.index); + config.data_onclick.bind($$.api)(closest, this); + } + }); + } + } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-ease/src/linear.js +const src_linear_linear = (t) => +t; + +;// CONCATENATED MODULE: ./src/ChartInternal/interactions/flow.ts + + + + +/* harmony default export */ var interactions_flow = ({ + /** + * Generate flow + * @param {object} args option object + * @returns {Function} + * @private + */ + generateFlow(args) { + const $$ = this; + const { data, state, $el } = $$; + return function() { + const flowLength = args.flow.length; + state.flowing = true; + data.targets.forEach((d) => { + d.values.splice(0, flowLength); + }); + if ($$.updateXGrid) { + $$.updateXGrid(true); + } + const elements = {}; + [ + "axis.x", + "grid.x", + "gridLines.x", + "region.list", + "text", + "bar", + "line", + "area", + "circle" + ].forEach((v) => { + const name = v.split("."); + let node = $el[name[0]]; + if (node && name.length > 1) { + node = node[name[1]]; + } + if (node == null ? void 0 : node.size()) { + elements[v] = node; + } + }); + $$.hideGridFocus(); + $$.setFlowList(elements, args); + }; + }, + /** + * Set flow list + * @param {object} elements Target elements + * @param {object} args option object + * @private + */ + setFlowList(elements, args) { + const $$ = this; + const { flow, targets } = args; + const { + duration = args.duration, + index: flowIndex, + length: flowLength, + orgDataCount + } = flow; + const transform = $$.getFlowTransform(targets, orgDataCount, flowIndex, flowLength); + const wait = generateWait(); + let n; + wait.add(Object.keys(elements).map((v) => { + n = elements[v].transition().ease(src_linear_linear).duration(duration); + if (v === "axis.x") { + n = n.call((g) => { + $$.axis.x.setTransition(g).create(g); + }); + } else if (v === "region.list") { + n = n.filter($$.isRegionOnX).attr("transform", transform); + } else { + n = n.attr("transform", transform); + } + return n; + })); + n.call(wait, () => { + $$.cleanUpFlow(elements, args); + }); + }, + /** + * Clean up flow + * @param {object} elements Target elements + * @param {object} args option object + * @private + */ + cleanUpFlow(elements, args) { + const $$ = this; + const { config, state, $el: { svg } } = $$; + const isRotated = config.axis_rotated; + const { flow, shape, xv } = args; + const { cx, cy, xForText, yForText } = shape.pos; + const { + done = () => { + }, + length: flowLength + } = flow; + if (flowLength) { + ["circle", "text", "shape", "eventRect"].forEach((v) => { + const target = []; + for (let i = 0; i < flowLength; i++) { + target.push(`.${classes[v]}-${i}`); + } + svg.selectAll(`.${classes[`${v}s`]}`).selectAll(target).remove(); + }); + svg.select(`.${classes.xgrid}`).remove(); + } + Object.keys(elements).forEach((v) => { + const n = elements[v]; + if (v !== "axis.x") { + n.attr("transform", null); + } + if (v === "grid.x") { + n.attr(state.xgridAttr); + } else if (v === "gridLines.x") { + n.attr("x1", isRotated ? 0 : xv).attr("x2", isRotated ? state.width : xv); + n.select("text").attr("x", isRotated ? state.width : 0).attr("y", xv); + } else if (/^(area|bar|line)$/.test(v)) { + n.attr("d", shape.type[v]); + } else if (v === "text") { + n.attr("x", xForText).attr("y", yForText).style("fill-opacity", $$.opacityForText.bind($$)); + } else if (v === "circle") { + if ($$.isCirclePoint()) { + n.attr("cx", cx).attr("cy", cy); + } else { + const xFunc = (d) => cx(d) - config.point_r; + const yFunc = (d) => cy(d) - config.point_r; + n.attr("x", xFunc).attr("y", yFunc); + } + } else if (v === "region.list") { + n.select("rect").filter($$.isRegionOnX).attr("x", $$.regionX.bind($$)).attr("width", $$.regionWidth.bind($$)); + } + }); + config.interaction_enabled && $$.redrawEventRect(); + done.call($$.api); + state.flowing = false; + }, + /** + * Get flow transform value + * @param {object} targets target + * @param {number} orgDataCount original data count + * @param {number} flowIndex flow index + * @param {number} flowLength flow length + * @returns {string} + * @private + */ + getFlowTransform(targets, orgDataCount, flowIndex, flowLength) { + const $$ = this; + const { data, scale: { x } } = $$; + const dataValues = data.targets[0].values; + let flowStart = $$.getValueOnIndex(dataValues, flowIndex); + let flowEnd = $$.getValueOnIndex(dataValues, flowIndex + flowLength); + let translateX; + const orgDomain = x.domain(); + const domain = $$.updateXDomain(targets, true, true); + if (!orgDataCount) { + if (dataValues.length !== 1) { + translateX = x(orgDomain[0]) - x(domain[0]); + } else { + if ($$.axis.isTimeSeries()) { + flowStart = $$.getValueOnIndex(dataValues, 0); + flowEnd = $$.getValueOnIndex(dataValues, dataValues.length - 1); + translateX = x(flowStart.x) - x(flowEnd.x); + } else { + translateX = diffDomain(domain) / 2; + } + } + } else if (orgDataCount === 1 || (flowStart == null ? void 0 : flowStart.x) === (flowEnd == null ? void 0 : flowEnd.x)) { + translateX = x(orgDomain[0]) - x(domain[0]); + } else { + translateX = $$.axis.isTimeSeries() ? x(orgDomain[0]) - x(domain[0]) : x((flowStart == null ? void 0 : flowStart.x) || 0) - x(flowEnd.x); + } + const scaleX = diffDomain(orgDomain) / diffDomain(domain); + return `translate(${translateX},0) scale(${scaleX},1)`; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/clip.ts +/* harmony default export */ var clip = ({ + initClip() { + const $$ = this; + const { clip, datetimeId } = $$.state; + clip.id = `${datetimeId}-clip`; + clip.idXAxis = `${clip.id}-xaxis`; + clip.idYAxis = `${clip.id}-yaxis`; + clip.idGrid = `${clip.id}-grid`; + clip.path = $$.getClipPath(clip.id); + clip.pathXAxis = $$.getClipPath(clip.idXAxis); + clip.pathYAxis = $$.getClipPath(clip.idYAxis); + clip.pathGrid = $$.getClipPath(clip.idGrid); + }, + getClipPath(id) { + const $$ = this; + const { config } = $$; + if (!config.clipPath && /-clip$/.test(id) || !config.axis_x_clipPath && /-clip-xaxis$/.test(id) || !config.axis_y_clipPath && /-clip-yaxis$/.test(id)) { + return null; + } + return `url(#${id})`; + }, + appendClip(parent, id) { + id && parent.append("clipPath").attr("id", id).append("rect"); + }, + /** + * Set x Axis clipPath dimension + * @param {d3Selecton} node clipPath <rect> selection + * @private + */ + setXAxisClipPath(node) { + const $$ = this; + const { config, state: { margin, width, height } } = $$; + const isRotated = config.axis_rotated; + const left = Math.max(30, margin.left) - (isRotated ? 0 : 20); + const h = (isRotated ? margin.top + height + 10 : margin.bottom) + 20; + const x = isRotated ? -(1 + left) : -(left - 1); + const y = -15; + const w = isRotated ? margin.left + 20 : width + 10 + left; + node.attr("x", x).attr("y", y).attr("width", w).attr("height", h); + }, + /** + * Set y Axis clipPath dimension + * @param {d3Selection} node clipPath <rect> selection + * @private + */ + setYAxisClipPath(node) { + const $$ = this; + const { config, state: { margin, width, height } } = $$; + const isRotated = config.axis_rotated; + const left = Math.max(30, margin.left) - (isRotated ? 20 : 0); + const isInner = config.axis_y_inner; + const x = isInner && !isRotated ? config.axis_y_label.text ? -20 : -1 : isRotated ? -(1 + left) : -(left - 1); + const y = -(isRotated ? 20 : margin.top); + const w = (isRotated ? width + 15 + left : margin.left + 20) + (isInner ? 20 : 0); + const h = (isRotated ? margin.bottom + 10 : margin.top + height) + 10; + node.attr("x", x).attr("y", y).attr("width", w).attr("height", h); + }, + updateXAxisTickClip() { + const $$ = this; + const { config, state: { clip, xAxisHeight }, $el: { defs } } = $$; + const newXAxisHeight = $$.getHorizontalAxisHeight("x"); + if (defs && !clip.idXAxisTickTexts) { + const clipId = `${clip.id}-xaxisticktexts`; + $$.appendClip(defs, clipId); + clip.pathXAxisTickTexts = $$.getClipPath(clip.idXAxisTickTexts); + clip.idXAxisTickTexts = clipId; + } + if (!config.axis_x_tick_multiline && $$.getAxisTickRotate("x") && newXAxisHeight !== xAxisHeight) { + $$.setXAxisTickClipWidth(); + $$.setXAxisTickTextClipPathWidth(); + } + $$.state.xAxisHeight = newXAxisHeight; + }, + setXAxisTickClipWidth() { + const $$ = this; + const { config, state: { current: { maxTickSize } } } = $$; + const xAxisTickRotate = $$.getAxisTickRotate("x"); + if (!config.axis_x_tick_multiline && xAxisTickRotate) { + const sinRotation = Math.sin(Math.PI / 180 * Math.abs(xAxisTickRotate)); + maxTickSize.x.clipPath = ($$.getHorizontalAxisHeight("x") - 20) / sinRotation; + } else { + maxTickSize.x.clipPath = null; + } + }, + setXAxisTickTextClipPathWidth() { + const $$ = this; + const { state: { clip, current }, $el: { svg } } = $$; + if (svg) { + svg.select(`#${clip.idXAxisTickTexts} rect`).attr("width", current.maxTickSize.x.clipPath).attr("height", 30); + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/grid.ts + + + +const getGridTextAnchor = (d) => isValue(d.position) || "end"; +const getGridTextDx = (d) => d.position === "start" ? 4 : d.position === "middle" ? 0 : -4; +function getGridTextX(isX, width, height) { + return (d) => { + let x = isX ? 0 : width; + if (d.position === "start") { + x = isX ? -height : 0; + } else if (d.position === "middle") { + x = (isX ? -height : width) / 2; + } + return x; + }; +} +function smoothLines(el, type) { + if (type === "grid") { + el.each(function() { + const g = src_select(this); + ["x1", "x2", "y1", "y2"].forEach((v) => g.attr(v, Math.ceil(+g.attr(v)))); + }); + } +} +/* harmony default export */ var internals_grid = ({ + hasGrid() { + const { config } = this; + return ["x", "y"].some((v) => config[`grid_${v}_show`] || config[`grid_${v}_lines`].length); + }, + initGrid() { + const $$ = this; + $$.hasGrid() && $$.initGridLines(); + $$.initFocusGrid(); + }, + initGridLines() { + const $$ = this; + const { config, state: { clip }, $el } = $$; + if (config.grid_x_lines.length || config.grid_y_lines.length) { + $el.gridLines.main = $el.main.insert( + "g", + `.${$COMMON.chart}${config.grid_lines_front ? " + *" : ""}` + ).attr("clip-path", clip.pathGrid).attr("class", `${$GRID.grid} ${$GRID.gridLines}`); + $el.gridLines.main.append("g").attr("class", $GRID.xgridLines); + $el.gridLines.main.append("g").attr("class", $GRID.ygridLines); + $el.gridLines.x = src_selectAll([]); + } + }, + updateXGrid(withoutUpdate) { + const $$ = this; + const { config, scale, state, $el: { main, grid } } = $$; + const isRotated = config.axis_rotated; + const xgridData = $$.generateGridData(config.grid_x_type, scale.x); + const tickOffset = $$.axis.isCategorized() ? $$.axis.x.tickOffset() : 0; + const pos = (d) => (scale.zoom || scale.x)(d) + tickOffset * (isRotated ? -1 : 1); + state.xgridAttr = isRotated ? { + x1: 0, + x2: state.width, + y1: pos, + y2: pos + } : { + x1: pos, + x2: pos, + y1: 0, + y2: state.height + }; + grid.x = main.select(`.${$GRID.xgrids}`).selectAll(`.${$GRID.xgrid}`).data(xgridData); + grid.x.exit().remove(); + grid.x = grid.x.enter().append("line").attr("class", $GRID.xgrid).merge(grid.x); + if (!withoutUpdate) { + grid.x.each(function() { + const grid2 = src_select(this); + Object.keys(state.xgridAttr).forEach((id) => { + grid2.attr(id, state.xgridAttr[id]).style("opacity", () => grid2.attr(isRotated ? "y1" : "x1") === (isRotated ? state.height : 0) ? "0" : null); + }); + }); + } + }, + updateYGrid() { + const $$ = this; + const { axis, config, scale, state, $el: { grid, main } } = $$; + const isRotated = config.axis_rotated; + const pos = (d) => Math.ceil(scale.y(d)); + const gridValues = axis.y.getGeneratedTicks(config.grid_y_ticks) || $$.scale.y.ticks(config.grid_y_ticks); + grid.y = main.select(`.${$GRID.ygrids}`).selectAll(`.${$GRID.ygrid}`).data(gridValues); + grid.y.exit().remove(); + grid.y = grid.y.enter().append("line").attr("class", $GRID.ygrid).merge(grid.y); + grid.y.attr("x1", isRotated ? pos : 0).attr("x2", isRotated ? pos : state.width).attr("y1", isRotated ? 0 : pos).attr("y2", isRotated ? state.height : pos); + smoothLines(grid.y, "grid"); + }, + updateGrid() { + const $$ = this; + const { $el: { grid, gridLines } } = $$; + !gridLines.main && $$.initGridLines(); + grid.main.style("visibility", $$.hasArcType() ? "hidden" : null); + $$.hideGridFocus(); + $$.updateGridLines("x"); + $$.updateGridLines("y"); + }, + /** + * Update Grid lines + * @param {string} type x | y + * @private + */ + updateGridLines(type) { + const $$ = this; + const { config, $el: { gridLines, main }, $T } = $$; + const isRotated = config.axis_rotated; + const isX = type === "x"; + config[`grid_${type}_show`] && $$[`update${type.toUpperCase()}Grid`](); + let lines = main.select(`.${$GRID[`${type}gridLines`]}`).selectAll(`.${$GRID[`${type}gridLine`]}`).data(config[`grid_${type}_lines`]); + $T(lines.exit()).style("opacity", "0").remove(); + const gridLine = lines.enter().append("g"); + gridLine.append("line").style("opacity", "0"); + lines = gridLine.merge(lines); + lines.each(function(d) { + const g = src_select(this); + if (g.select("text").empty() && d.text) { + g.append("text").style("opacity", "0"); + } + }); + $T(lines.attr("class", (d) => `${$GRID[`${type}gridLine`]} ${d.class || ""}`.trim()).select("text").attr("text-anchor", getGridTextAnchor).attr( + "transform", + () => isX ? isRotated ? null : "rotate(-90)" : isRotated ? "rotate(-90)" : null + ).attr("dx", getGridTextDx).attr("dy", -5)).text(function(d) { + var _a; + return (_a = d.text) != null ? _a : this.remove(); + }); + gridLines[type] = lines; + }, + redrawGrid(withTransition) { + const $$ = this; + const { + config: { axis_rotated: isRotated }, + state: { width, height }, + $el: { gridLines }, + $T + } = $$; + const xv = $$.xv.bind($$); + const yv = $$.yv.bind($$); + let xLines = gridLines.x.select("line"); + let xTexts = gridLines.x.select("text"); + let yLines = gridLines.y.select("line"); + let yTexts = gridLines.y.select("text"); + xLines = $T(xLines, withTransition).attr("x1", isRotated ? 0 : xv).attr("x2", isRotated ? width : xv).attr("y1", isRotated ? xv : 0).attr("y2", isRotated ? xv : height); + xTexts = $T(xTexts, withTransition).attr("x", getGridTextX(!isRotated, width, height)).attr("y", xv); + yLines = $T(yLines, withTransition).attr("x1", isRotated ? yv : 0).attr("x2", isRotated ? yv : width).attr("y1", isRotated ? 0 : yv).attr("y2", isRotated ? height : yv); + yTexts = $T(yTexts, withTransition).attr("x", getGridTextX(isRotated, width, height)).attr("y", yv); + return [ + xLines.style("opacity", null), + xTexts.style("opacity", null), + yLines.style("opacity", null), + yTexts.style("opacity", null) + ]; + }, + initFocusGrid() { + const $$ = this; + const { config, state: { clip }, $el } = $$; + const isFront = config.grid_front; + const className = `.${isFront && $el.gridLines.main ? $GRID.gridLines : $COMMON.chart}${isFront ? " + *" : ""}`; + const grid = $el.main.insert("g", className).attr("clip-path", clip.pathGrid).attr("class", $GRID.grid); + $el.grid.main = grid; + config.grid_x_show && grid.append("g").attr("class", $GRID.xgrids); + config.grid_y_show && grid.append("g").attr("class", $GRID.ygrids); + if (config.axis_tooltip) { + const axis = grid.append("g").attr("class", "bb-axis-tooltip"); + axis.append("line").attr("class", "bb-axis-tooltip-x"); + axis.append("line").attr("class", "bb-axis-tooltip-y"); + } + if (config.interaction_enabled && config.grid_focus_show && !config.axis_tooltip) { + grid.append("g").attr("class", $FOCUS.xgridFocus).append("line").attr("class", $FOCUS.xgridFocus); + if (config.grid_focus_y && !config.tooltip_grouped) { + grid.append("g").attr("class", $FOCUS.ygridFocus).append("line").attr("class", $FOCUS.ygridFocus); + } + } + }, + showAxisGridFocus() { + var _a, _b; + const $$ = this; + const { config, format, state: { event, width, height } } = $$; + const isRotated = config.axis_rotated; + const [x, y] = getPointer(event, (_a = $$.$el.eventRect) == null ? void 0 : _a.node()); + const pos = { x, y }; + for (const [axis, node] of Object.entries($$.$el.axisTooltip)) { + const attr = axis === "x" && !isRotated || axis !== "x" && isRotated ? "x" : "y"; + const value = pos[attr]; + let scaleText = (_b = $$.scale[axis]) == null ? void 0 : _b.invert(value); + if (scaleText) { + scaleText = axis === "x" && $$.axis.isTimeSeries() ? format.xAxisTick(scaleText) : scaleText == null ? void 0 : scaleText.toFixed(2); + node == null ? void 0 : node.attr(attr, value).text(scaleText); + } + } + $$.$el.main.selectAll( + `line.bb-axis-tooltip-x, line.bb-axis-tooltip-y` + ).style("visibility", null).each(function(d, i) { + const line = src_select(this); + if (i === 0) { + line.attr("x1", x).attr("x2", x).attr("y1", i ? 0 : height).attr("y2", i ? height : 0); + } else { + line.attr("x1", i ? 0 : width).attr("x2", i ? width : 0).attr("y1", y).attr("y2", y); + } + }); + }, + hideAxisGridFocus() { + const $$ = this; + $$.$el.main.selectAll( + `line.bb-axis-tooltip-x, line.bb-axis-tooltip-y` + ).style("visibility", "hidden"); + Object.values($$.$el.axisTooltip).forEach((v) => v == null ? void 0 : v.style("display", "none")); + }, + /** + * Show grid focus line + * @param {Array} data Selected data + * @private + */ + showGridFocus(data) { + var _a; + const $$ = this; + const { config, state: { width, height } } = $$; + const isRotated = config.axis_rotated; + const focusEl = $$.$el.main.selectAll( + `line.${$FOCUS.xgridFocus}, line.${$FOCUS.ygridFocus}` + ); + const dataToShow = (data || [focusEl.datum()]).filter( + (d) => d && isValue($$.getBaseValue(d)) + ); + if (!config.tooltip_show || dataToShow.length === 0 || !config.axis_x_forceAsSingle && $$.hasType("bubble") || $$.hasArcType()) { + return; + } + const isEdge = config.grid_focus_edge && !config.tooltip_grouped; + const xx = $$.xx.bind($$); + focusEl.style("visibility", null).data(dataToShow.concat(dataToShow)).each(function(d) { + const el = src_select(this); + const pos = { + x: xx(d), + y: $$.getYScaleById(d.id)(d.value) + }; + let xy; + if (el.classed($FOCUS.xgridFocus)) { + xy = isRotated ? [ + null, + // x1 + pos.x, + // y1 + isEdge ? pos.y : width, + // x2 + pos.x + // y2 + ] : [ + pos.x, + isEdge ? pos.y : null, + pos.x, + height + ]; + } else { + const isY2 = $$.axis.getId(d.id) === "y2"; + xy = isRotated ? [ + pos.y, + // x1 + isEdge && !isY2 ? pos.x : null, + // y1 + pos.y, + // x2 + isEdge && isY2 ? pos.x : height + // y2 + ] : [ + isEdge && isY2 ? pos.x : null, + pos.y, + isEdge && !isY2 ? pos.x : width, + pos.y + ]; + } + ["x1", "y1", "x2", "y2"].forEach((v, i) => el.attr(v, xy[i])); + }); + smoothLines(focusEl, "grid"); + (_a = $$.showCircleFocus) == null ? void 0 : _a.call($$, data); + }, + hideGridFocus() { + var _a; + const $$ = this; + const { state: { inputType, resizing }, $el: { main } } = $$; + if (inputType === "mouse" || !resizing) { + main.selectAll(`line.${$FOCUS.xgridFocus}, line.${$FOCUS.ygridFocus}`).style("visibility", "hidden"); + (_a = $$.hideCircleFocus) == null ? void 0 : _a.call($$); + } + }, + updateGridFocus() { + var _a; + const $$ = this; + const { state: { inputType, width, height, resizing }, $el: { grid } } = $$; + const xgridFocus = grid.main.select(`line.${$FOCUS.xgridFocus}`); + if (inputType === "touch") { + if (xgridFocus.empty()) { + resizing && ((_a = $$.showCircleFocus) == null ? void 0 : _a.call($$)); + } else { + $$.showGridFocus(); + } + } else { + const isRotated = $$.config.axis_rotated; + xgridFocus.attr("x1", isRotated ? 0 : -10).attr("x2", isRotated ? width : -10).attr("y1", isRotated ? -10 : 0).attr("y2", isRotated ? -10 : height); + } + return true; + }, + generateGridData(type, scale) { + const $$ = this; + const tickNum = $$.$el.main.select(`.${$AXIS.axisX}`).selectAll(".tick").size(); + let gridData = []; + if (type === "year") { + const xDomain = $$.getXDomain(); + const [firstYear, lastYear] = xDomain.map((v) => v.getFullYear()); + for (let i = firstYear; i <= lastYear; i++) { + gridData.push(/* @__PURE__ */ new Date(`${i}-01-01 00:00:00`)); + } + } else { + gridData = scale.ticks(10); + if (gridData.length > tickNum) { + gridData = gridData.filter((d) => String(d).indexOf(".") < 0); + } + } + return gridData; + }, + getGridFilterToRemove(params) { + return params ? (line) => { + let found = false; + (isArray(params) ? params.concat() : [params]).forEach((param) => { + if ("value" in param && line.value === param.value || "class" in param && line.class === param.class) { + found = true; + } + }); + return found; + } : () => true; + }, + removeGridLines(params, forX) { + const $$ = this; + const { config, $T } = $$; + const toRemove = $$.getGridFilterToRemove(params); + const toShow = (line) => !toRemove(line); + const classLines = forX ? $GRID.xgridLines : $GRID.ygridLines; + const classLine = forX ? $GRID.xgridLine : $GRID.ygridLine; + $T($$.$el.main.select(`.${classLines}`).selectAll(`.${classLine}`).filter(toRemove)).style("opacity", "0").remove(); + const gridLines = `grid_${forX ? "x" : "y"}_lines`; + config[gridLines] = config[gridLines].filter(toShow); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/region.ts + + + +/* harmony default export */ var region = ({ + initRegion() { + const $$ = this; + const { $el } = $$; + $el.region.main = $el.main.insert("g", ":first-child").attr("clip-path", $$.state.clip.path).attr("class", $REGION.regions); + }, + updateRegion() { + const $$ = this; + const { config, $el: { region }, $T } = $$; + if (!region.main) { + $$.initRegion(); + } + region.main.style("visibility", $$.hasArcType() ? "hidden" : null); + const regions = region.main.selectAll(`.${$REGION.region}`).data(config.regions); + $T(regions.exit()).style("opacity", "0").remove(); + const regionsEnter = regions.enter().append("g"); + regionsEnter.append("rect").style("fill-opacity", "0"); + region.list = regionsEnter.merge(regions).attr("class", $$.classRegion.bind($$)); + region.list.each(function(d) { + var _a; + const g = src_select(this); + if (g.select("text").empty() && ((_a = d.label) == null ? void 0 : _a.text)) { + src_select(this).append("text").style("opacity", "0"); + } + }); + }, + redrawRegion(withTransition) { + const $$ = this; + const { $el: { region }, $T } = $$; + let regions = region.list.select("rect"); + let label = region.list.selectAll("text"); + regions = $T(regions, withTransition).attr("x", $$.regionX.bind($$)).attr("y", $$.regionY.bind($$)).attr("width", $$.regionWidth.bind($$)).attr("height", $$.regionHeight.bind($$)); + label = $T(label, withTransition).attr("transform", (d) => { + var _a; + const { x = 0, y = 0, rotated = false } = (_a = d.label) != null ? _a : {}; + return `translate(${$$.regionX.bind($$)(d) + x}, ${$$.regionY.bind($$)(d) + y})${rotated ? ` rotate(-90)` : ``}`; + }).attr("text-anchor", (d) => { + var _a; + return ((_a = d.label) == null ? void 0 : _a.rotated) ? "end" : null; + }).attr("dy", "1em").style("fill", (d) => { + var _a, _b; + return (_b = (_a = d.label) == null ? void 0 : _a.color) != null ? _b : null; + }).text((d) => { + var _a; + return (_a = d.label) == null ? void 0 : _a.text; + }); + return [ + regions.style("fill-opacity", (d) => isValue(d.opacity) ? d.opacity : null).on("end", function() { + src_select(this.parentNode).selectAll("rect:not([x])").remove(); + }), + label.style("opacity", null) + ]; + }, + getRegionXY(type, d) { + const $$ = this; + const { config, scale } = $$; + const isRotated = config.axis_rotated; + const isX = type === "x"; + let key = "start"; + let currScale; + let pos = 0; + if (d.axis === "y" || d.axis === "y2") { + if (!isX) { + key = "end"; + } + if ((isX ? isRotated : !isRotated) && key in d) { + currScale = scale[d.axis]; + pos = currScale(d[key]); + } + } else if ((isX ? !isRotated : isRotated) && key in d) { + currScale = scale.zoom || scale.x; + pos = currScale($$.axis.isTimeSeries() ? parseDate.call($$, d[key]) : d[key]); + } + return pos; + }, + regionX(d) { + return this.getRegionXY("x", d); + }, + regionY(d) { + return this.getRegionXY("y", d); + }, + getRegionSize(type, d) { + const $$ = this; + const { config, scale, state } = $$; + const isRotated = config.axis_rotated; + const isWidth = type === "width"; + const start = $$[isWidth ? "regionX" : "regionY"](d); + let currScale; + let key = "end"; + let end = state[type]; + if (d.axis === "y" || d.axis === "y2") { + if (!isWidth) { + key = "start"; + } + if ((isWidth ? isRotated : !isRotated) && key in d) { + currScale = scale[d.axis]; + end = currScale(d[key]); + } + } else if ((isWidth ? !isRotated : isRotated) && key in d) { + currScale = scale.zoom || scale.x; + end = currScale($$.axis.isTimeSeries() ? parseDate.call($$, d[key]) : d[key]); + } + return end < start ? 0 : end - start; + }, + regionWidth(d) { + return this.getRegionSize("width", d); + }, + regionHeight(d) { + return this.getRegionSize("height", d); + }, + isRegionOnX(d) { + return !d.axis || d.axis === "x"; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/internals/size.axis.ts + +/* harmony default export */ var size_axis = ({ + /** + * Get Axis size according its position + * @param {string} id Axis id value - x, y or y2 + * @returns {number} size Axis size value + * @private + */ + getAxisSize(id) { + const $$ = this; + const isRotated = $$.config.axis_rotated; + return isRotated && id === "x" || !isRotated && /y2?/.test(id) ? $$.getAxisWidthByAxisId(id, true) : $$.getHorizontalAxisHeight(id); + }, + getAxisWidthByAxisId(id, withoutRecompute) { + var _a, _b; + const $$ = this; + if ($$.axis) { + const position = (_a = $$.axis) == null ? void 0 : _a.getLabelPositionById(id); + const { width } = $$.axis.getMaxTickSize(id, withoutRecompute); + const gap = width === 0 ? 0.5 : 0; + return width + (((_b = $$.config.padding) == null ? void 0 : _b.mode) === "fit" ? position.isInner ? 10 + gap : 10 : position.isInner ? 20 + gap : 40); + } else { + return 40; + } + }, + getHorizontalAxisHeight(id) { + var _a, _b; + const $$ = this; + const { config, state } = $$; + const { rotatedPadding, isLegendRight, isLegendInset } = state; + const isRotated = config.axis_rotated; + const isFitPadding = ((_a = config.padding) == null ? void 0 : _a.mode) === "fit"; + const isInner = config[`axis_${id}_inner`]; + const hasLabelText = config[`axis_${id}_label`].text; + const defaultHeight = 13; + let h = ((_b = config.padding) == null ? void 0 : _b.mode) === "fit" ? isInner && !hasLabelText ? id === "y" ? 1 : 0 : 20 : 30; + if (id === "x" && !config.axis_x_show) { + return 8; + } + if (id === "x" && isNumber(config.axis_x_height)) { + return config.axis_x_height; + } + if (id === "y" && !config.axis_y_show) { + return config.legend_show && !isLegendRight && !isLegendInset ? 10 : 1; + } + if (id === "y2" && !config.axis_y2_show) { + return isFitPadding ? 0 : rotatedPadding.top; + } + const maxtickSize = $$.axis.getMaxTickSize(id); + const isXAxisTickRotated = Math.abs(config.axis_x_tick_rotate) > 0 && (!config.axis_x_tick_autorotate || $$.needToRotateXAxisTickTexts()); + if ((config.axis_x_tick_multiline || isXAxisTickRotated) && maxtickSize.height > defaultHeight) { + h += maxtickSize.height - defaultHeight; + } + return h + ($$.axis.getLabelPositionById(id).isInner ? 0 : 10) + (id === "y2" && !isRotated ? -10 : 0); + }, + getEventRectWidth() { + const $$ = this; + const { config, axis } = $$; + const isInverted = config.axis_x_inverted; + const tickInterval = axis.x.tickInterval(); + return Math.max(0, isInverted ? Math.abs(tickInterval) : tickInterval); + }, + /** + * Get axis tick test rotate value + * @param {string} id Axis id + * @returns {number} rotate value + * @private + */ + getAxisTickRotate(id) { + const $$ = this; + const { axis, config, state, $el } = $$; + let rotate = config[`axis_${id}_tick_rotate`]; + if (id === "x") { + const allowedXAxisTypes = axis.isCategorized() || axis.isTimeSeries(); + if (config.axis_x_tick_fit && allowedXAxisTypes) { + const xTickCount = config.axis_x_tick_count; + const currentXTicksLength = state.current.maxTickSize.x.ticks.length; + let tickCount = 0; + if (xTickCount) { + tickCount = xTickCount > currentXTicksLength ? currentXTicksLength : xTickCount; + } else if (currentXTicksLength) { + tickCount = currentXTicksLength; + } + if (tickCount !== state.axis.x.tickCount) { + const { targets } = $$.data; + state.axis.x.padding = $$.getXDomainPadding([ + $$.getXDomainMinMax(targets, "min"), + $$.getXDomainMinMax(targets, "max") + ], tickCount); + } + state.axis.x.tickCount = tickCount; + } + if ($el.svg && config.axis_x_tick_autorotate && config.axis_x_tick_fit && !config.axis_x_tick_multiline && !config.axis_x_tick_culling && allowedXAxisTypes) { + rotate = $$.needToRotateXAxisTickTexts() ? config.axis_x_tick_rotate : 0; + } + } + return rotate; + }, + /** + * Check weather axis tick text needs to be rotated + * @returns {boolean} + * @private + */ + needToRotateXAxisTickTexts() { + const $$ = this; + const { state: { axis, current, isLegendRight, legendItemWidth } } = $$; + const legendWidth = isLegendRight && legendItemWidth; + const xAxisLength = current.width - legendWidth - $$.getCurrentPaddingByDirection("left") - $$.getCurrentPaddingByDirection("right"); + const tickCountWithPadding = axis.x.tickCount + axis.x.padding.left + axis.x.padding.right; + const { width } = $$.axis.getMaxTickSize("x"); + const tickLength = tickCountWithPadding ? xAxisLength / tickCountWithPadding : 0; + return width > tickLength; + } +}); + +;// CONCATENATED MODULE: ./src/config/Options/axis/x.ts +/* harmony default export */ var axis_x = ({ + /** + * Set clip-path attribute for x axis element + * @name axis․x․clipPath + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo]() + * @example + * // don't set 'clip-path' attribute + * clipPath: false + */ + axis_x_clipPath: true, + /** + * Show or hide x axis. + * @name axis․x․show + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * show: false + * } + * } + */ + axis_x_show: true, + /** + * Force the x axis to interact as single rather than multiple x axes. + * - **NOTE:** The tooltip event will be triggered nearing each data points(for multiple xs) rather than x axis based(as single x does) in below condition: + * - for `bubble` & `scatter` type + * - when `data.xs` is set + * - when `tooltip.grouped=false` is set + * - `tooltip.grouped` options will take precedence over `axis.forceSingleX` option. + * @name axis․x․forceAsSingle + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.ForceAsSingle) + * @example + * axis: { + * x: { + * // will work as single x axis + * forceAsSingle: true + * } + * } + */ + axis_x_forceAsSingle: false, + /** + * Set type of x axis.<br><br> + * **Available Values:** + * - category + * - indexed + * - log + * - timeseries + * + * **NOTE:**<br> + * - **log** type: + * - the x values specified by [`data.x`](#.data%25E2%2580%25A4x)(or by any equivalent option), must be exclusively-positive. + * - x axis min value should be >= 0. + * - for 'category' type, `data.xs` option isn't supported. + * @name axis․x․type + * @memberof Options + * @type {string} + * @default indexed + * @see [Demo: indexed](https://naver.github.io/billboard.js/demo/#Chart.AreaChart) + * @see [Demo: timeseries](https://naver.github.io/billboard.js/demo/#Chart.TimeseriesChart) + * @see [Demo: category](https://naver.github.io/billboard.js/demo/#Data.CategoryData) + * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales) + * @example + * axis: { + * x: { + * type: "timeseries" + * } + * } + */ + axis_x_type: "indexed", + /** + * Set how to treat the timezone of x values.<br> + * If true, treat x value as localtime. If false, convert to UTC internally. + * @name axis․x․localtime + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * localtime: false + * } + * } + */ + axis_x_localtime: true, + /** + * Set category names on category axis. + * This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required. + * @name axis․x․categories + * @memberof Options + * @type {Array} + * @default [] + * @example + * axis: { + * x: { + * categories: ["Category 1", "Category 2", ...] + * } + * } + */ + axis_x_categories: [], + /** + * centerize ticks on category axis. + * @name axis․x․tick․centered + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * x: { + * tick: { + * centered: true + * } + * } + * } + */ + axis_x_tick_centered: false, + /** + * A function to format tick value. Format string is also available for timeseries data. + * @name axis․x․tick․format + * @memberof Options + * @type {Function|string} + * @default undefined + * @see [D3's time specifier](https://d3js.org/d3-time-format#locale_format) + * @example + * axis: { + * x: { + * tick: { + * // for timeseries, a 'datetime' object is given as parameter + * format: function(x) { + * return x.getFullYear(); + * } + * + * // for category, index(Number) and categoryName(String) are given as parameter + * format: function(index, categoryName) { + * return categoryName.substr(0, 10); + * }, + * + * // for timeseries format specifier + * format: "%Y-%m-%d %H:%M:%S" + * } + * } + * } + */ + axis_x_tick_format: void 0, + /** + * Setting for culling ticks. + * - `true`: the ticks will be culled, then only limited tick text will be shown.<br> + * This option does not hide the tick lines by default, if want to hide tick lines, set `axis.x.tick.culling.lines=false`. + * - `false`: all of ticks will be shown.<br><br> + * The number of ticks to be shown can be chaned by `axis.x.tick.culling.max`. + * @name axis․x․tick․culling + * @memberof Options + * @type {boolean} + * @default + * `true` for indexed axis and timeseries axis, `false` for category axis + * @example + * axis: { + * x: { + * tick: { + * culling: false + * } + * } + * } + */ + axis_x_tick_culling: {}, + /** + * The number of tick texts will be adjusted to less than this value. + * @name axis․x․tick․culling․max + * @memberof Options + * @type {number} + * @default 10 + * @example + * axis: { + * x: { + * tick: { + * culling: { + * max: 5 + * } + * } + * } + * } + */ + axis_x_tick_culling_max: 10, + /** + * Control visibility of tick lines within culling option, along with tick text. + * @name axis․x․tick․culling․lines + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * tick: { + * culling: { + * lines: false, + * } + * } + * } + * } + */ + axis_x_tick_culling_lines: true, + /** + * The number of x axis ticks to show.<br><br> + * This option hides tick lines together with tick text. If this option is used on timeseries axis, the ticks position will be determined precisely and not nicely positioned (e.g. it will have rough second value). + * @name axis․x․tick․count + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * x: { + * tick: { + * count: 5 + * } + * } + * } + */ + axis_x_tick_count: void 0, + /** + * Show or hide x axis tick line. + * @name axis․x․tick․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * x: { + * tick: { + * show: false + * } + * } + * } + */ + axis_x_tick_show: true, + /** + * Show or hide x axis tick text. + * @name axis․x․tick․text․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * x: { + * tick: { + * text: { + * show: false + * } + * } + * } + * } + */ + axis_x_tick_text_show: true, + /** + * Set the first/last axis tick text to be positioned inside of the chart on non-rotated axis. + * @name axis․x․tick․text․inner + * @memberof Options + * @type {boolean|object} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickInner) + * @example + * axis: { + * x: { + * tick: { + * text: { + * inner: true, + * + * // or specify each position of the first and last tick text + * inner: { + * first: true, + * last: true + * } + * } + * } + * } + * } + */ + axis_x_tick_text_inner: false, + /** + * Set the x Axis tick text's position relatively its original position + * @name axis․x․tick․text․position + * @memberof Options + * @type {object} + * @default {x: 0, y:0} + * @example + * axis: { + * x: { + * tick: { + * text: { + * position: { + * x: 10, + * y: 10 + * } + * } + * } + * } + * } + */ + axis_x_tick_text_position: { x: 0, y: 0 }, + /** + * Fit x axis ticks. + * - **true**: ticks will be shown according to x value of the data points. + * - **false**: ticks will be shown as to have same intervals. + * @name axis․x․tick․fit + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickFitting) + * @see [Demo: for timeseries zoom](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickTimeseries) + * @example + * axis: { + * x: { + * tick: { + * fit: false + * } + * } + * } + */ + axis_x_tick_fit: true, + /** + * Set the x values of ticks manually.<br><br> + * If this option is provided, the position of the ticks will be determined based on those values.<br> + * This option works with `timeseries` data and the x values will be parsed accoding to the type of the value and data.xFormat option. + * @name axis․x․tick․values + * @memberof Options + * @type {Array|Function} + * @default null + * @example + * axis: { + * x: { + * tick: { + * values: [1, 2, 4, 8, 16, 32, ...], + * + * // an Array value should be returned + * values: function() { + * return [ ... ]; + * } + * } + * } + * } + */ + axis_x_tick_values: null, + /** + * Rotate x axis tick text if there is not enough space for 'category' and 'timeseries' type axis. + * - **NOTE:** The conditions where `autorotate` is enabled are: + * - axis.x.type='category' or 'timeseries + * - axis.x.tick.multiline=false + * - axis.x.tick.culling=false + * - axis.x.tick.fit=true + * - **NOTE:** axis.x.tick.clippath=false is necessary for calculating the overflow padding between the end of x axis and the width of the SVG + * @name axis․x․tick․autorotate + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickAutorotate) + * @example + * axis: { + * x: { + * tick: { + * rotate: 15, + * autorotate: true, + * multiline: false, + * culling: false, + * fit: true + * }, + * clipPath: false + * } + * } + */ + axis_x_tick_autorotate: false, + /** + * Rotate x axis tick text. + * - If you set negative value, it will rotate to opposite direction. + * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `false`. + * - As long as `axis_x_tick_fit` is set to `true` it will calculate an overflow for the y2 axis and add this value to the right padding. + * @name axis․x․tick․rotate + * @memberof Options + * @type {number} + * @default 0 + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.RotateXAxisTickText) + * @example + * axis: { + * x: { + * tick: { + * rotate: 60 + * } + * } + * } + */ + axis_x_tick_rotate: 0, + /** + * Show x axis outer tick. + * @name axis․x․tick․outer + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * x: { + * tick: { + * outer: false + * } + * } + * } + */ + axis_x_tick_outer: true, + /** + * Set tick text to be multiline + * - **NOTE:** + * > When x tick text contains `\n`, it's used as line break and 'axis.x.tick.width' option is ignored. + * @name axis․x․tick․multiline + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickMultiline) + * @example + * axis: { + * x: { + * tick: { + * multiline: false + * } + * } + * } + * @example + * // example of line break with '\n' + * // In this case, 'axis.x.tick.width' is ignored + * data: { + * x: "x", + * columns: [ + * ["x", "long\ntext", "Another\nLong\nText"], + * ... + * ], + * } + */ + axis_x_tick_multiline: true, + /** + * Set tick width + * - **NOTE:** + * > When x tick text contains `\n`, this option is ignored. + * @name axis․x․tick․width + * @memberof Options + * @type {number} + * @default null + * @example + * axis: { + * x: { + * tick: { + * width: 50 + * } + * } + * } + */ + axis_x_tick_width: null, + /** + * Set to display system tooltip(via `<title>` element) for tick text + * - **NOTE:** Only available for category axis type (`axis.x.type='category'`) + * @name axis․x․tick․tooltip + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * x: { + * tick: { + * tooltip: true + * } + * } + * } + */ + axis_x_tick_tooltip: false, + /** + * Set max value of x axis range. + * @name axis․x․max + * @memberof Options + * @property {number} max Set the max value + * @property {boolean} [max.fit=false] When specified `max.value` is greater than the bound data value, setting `true` will make x axis max to be fitted to the bound data max value. + * - **NOTE:** If the bound data max value is greater than the `max.value`, the x axis max will be limited as the given `max.value`. + * @property {number} [max.value] Set the max value + * @example + * axis: { + * x: { + * max: 100, + * + * max: { + * // 'fit=true' will make x axis max to be limited as the bound data value max when 'max.value' is greater. + * // - when bound data max is '10' and max.value: '100' ==> x axis max will be '10' + * // - when bound data max is '1000' and max.value: '100' ==> x axis max will be '100' + * fit: true, + * value: 100 + * } + * } + * } + */ + axis_x_max: void 0, + /** + * Set min value of x axis range. + * @name axis․x․min + * @memberof Options + * @property {number} min Set the min value + * @property {boolean} [min.fit=false] When specified `min.value` is lower than the bound data value, setting `true` will make x axis min to be fitted to the bound data min value. + * - **NOTE:** If the bound data min value is lower than the `min.value`, the x axis min will be limited as the given `min.value`. + * @property {number} [min.value] Set the min value + * @example + * axis: { + * x: { + * min: -100, + * + * min: { + * // 'fit=true' will make x axis min to be limited as the bound data value min when 'min.value' is lower. + * // - when bound data min is '-10' and min.value: '-100' ==> x axis min will be '-10' + * // - when bound data min is '-1000' and min.value: '-100' ==> x axis min will be '-100' + * fit: true, + * value: -100 + * } + * } + * } + */ + axis_x_min: void 0, + /** + * Change the direction of x axis.<br><br> + * If true set, the direction will be `right -> left`. + * @name axis․x․inverted + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis) + * @example + * axis: { + * x: { + * inverted: true + * } + * } + */ + axis_x_inverted: false, + /** + * Set padding for x axis.<br><br> + * If this option is set, the range of x axis will increase/decrease according to the values. + * If no padding is needed in the rage of x axis, 0 should be set. + * By default, left/right padding are set depending on x axis type or chart types. + * - **NOTE:** + * - The meaning of padding values, differs according axis types:<br> + * - **category/indexed:** The unit of tick value + * ex. the given value `1`, is same as the width of 1 tick width + * - **timeseries:** Numeric time value + * ex. the given value `1000*60*60*24`, which is numeric time equivalent of a day, is same as the width of 1 tick width + * - If want values to be treated as pixels, specify `unit:"px"`. + * - The pixel value will be convered based on the scale values. Hence can not reflect accurate padding result. + * @name axis․x․padding + * @memberof Options + * @type {object|number} + * @default {} + * @example + * axis: { + * x: { + * padding: { + * // when axis type is 'category' + * left: 1, // set left padding width of equivalent value of a tick's width + * right: 0.5 // set right padding width as half of equivalent value of tick's width + * + * // when axis type is 'timeseries' + * left: 1000*60*60*24, // set left padding width of equivalent value of a day tick's width + * right: 1000*60*60*12 // set right padding width as half of equivalent value of a day tick's width + * }, + * + * // or set both values at once. + * padding: 10, + * + * // or set padding values as pixel unit. + * padding: { + * left: 100, + * right: 50, + * unit: "px" + * }, + * } + * } + */ + axis_x_padding: {}, + /** + * Set height of x axis.<br><br> + * The height of x axis can be set manually by this option. If you need more space for x axis, please use this option for that. The unit is pixel. + * @name axis․x․height + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * x: { + * height: 20 + * } + * } + */ + axis_x_height: void 0, + /** + * Set default extent for subchart and zoom. This can be an array or function that returns an array. + * @name axis․x․extent + * @memberof Options + * @type {Array|Function} + * @default undefined + * @example + * axis: { + * x: { + * // extent range as a pixel value + * extent: [0, 200], + * + * // when axis is 'timeseries', parsable datetime string + * extent: ["2019-03-01", "2019-03-05"], + * + * // return extent value + * extent: function(domain, scale) { + * var extent = domain.map(function(v) { + * return scale(v); + * }); + * + * // it should return a format of array + * // ex) [0, 584] + * return extent; + * } + * } + * } + */ + axis_x_extent: void 0, + /** + * Set label on x axis.<br><br> + * You can set x axis label and change its position by this option. + * `string` and `object` can be passed and we can change the poisiton by passing object that has position key.<br> + * Available position differs according to the axis direction (vertical or horizontal). + * If string set, the position will be the default. + * + * - **If it's horizontal axis:** + * - inner-right [default] + * - inner-center + * - inner-left + * - outer-right + * - outer-center + * - outer-left + * - **If it's vertical axis:** + * - inner-top [default] + * - inner-middle + * - inner-bottom + * - outer-top + * - outer-middle + * - outer-bottom + * @name axis․x․label + * @memberof Options + * @type {string|object} + * @default undefined + * @example + * axis: { + * x: { + * label: "Your X Axis" + * } + * } + * + * axis: { + * x: { + * label: { + * text: "Your X Axis", + * position: "outer-center" + * } + * } + * } + */ + axis_x_label: {}, + /** + * Set additional axes for x Axis. + * - **NOTE:** Axis' scale is based on x Axis value if domain option isn't set. + * + * Each axis object should consist with following options: + * + * | Name | Type | Default | Description | + * | --- | --- | --- | --- | + * | domain | Array | - | Set the domain value | + * | tick.outer | boolean | true | Show outer tick | + * | tick.format | Function | - | Set formatter for tick text | + * | tick.count | Number | - | Set the number of y axis ticks | + * | tick.values | Array | - | Set tick values manually | + * @name axis․x․axes + * @memberof Options + * @type {Array} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes) + * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain) + * @example + * x: { + * axes: [ + * { + * // if set, will not be correlated with the main x Axis domain value + * domain: [0, 1000], + * tick: { + * outer: false, + * format: function(x) { + * return x + "%"; + * }, + * count: 2, + * values: [10, 20, 30] + * } + * }, + * ... + * ] + * } + */ + axis_x_axes: [] +}); + +;// CONCATENATED MODULE: ./src/config/Options/axis/y.ts +/* harmony default export */ var y = ({ + /** + * Set clip-path attribute for y axis element + * - **NOTE**: `clip-path` attribute for y Axis is set only when `axis.y.inner` option is true. + * @name axis․y․clipPath + * @memberof Options + * @type {boolean} + * @default true + * @example + * // don't set 'clip-path' attribute + * clipPath: false + */ + axis_y_clipPath: true, + /** + * Show or hide y axis. + * @name axis․y․show + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y: { + * show: false + * } + * } + */ + axis_y_show: true, + /** + * Set type of y axis.<br><br> + * **Available Values:** + * - indexed + * - log + * - timeseries + * + * **NOTE:**<br> + * - **log** type: + * - the bound data values must be exclusively-positive. + * - y axis min value should be >= 0. + * - [`data.groups`](#.data%25E2%2580%25A4groups)(stacked data) option aren't supported. + * + * @name axis․y․type + * @memberof Options + * @type {string} + * @default "indexed" + * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales) + * @example + * axis: { + * y: { + * type: "log" + * } + * } + */ + axis_y_type: "indexed", + /** + * Set max value of y axis. + * - **NOTE:** Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0). + * @name axis․y․max + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * max: 1000 + * } + * } + */ + axis_y_max: void 0, + /** + * Set min value of y axis. + * - **NOTE:** + * Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0). + * @name axis․y․min + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * min: 1000 + * } + * } + */ + axis_y_min: void 0, + /** + * Change the direction of y axis.<br><br> + * If true set, the direction will be `top -> bottom`. + * @name axis․y․inverted + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis) + * @example + * axis: { + * y: { + * inverted: true + * } + * } + */ + axis_y_inverted: false, + /** + * Set center value of y axis. + * @name axis․y․center + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * center: 0 + * } + * } + */ + axis_y_center: void 0, + /** + * Show y axis inside of the chart. + * @name axis․y․inner + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y: { + * inner: true + * } + * } + */ + axis_y_inner: false, + /** + * Set label on y axis.<br><br> + * You can set y axis label and change its position by this option. This option works in the same way as [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label). + * @name axis․y․label + * @memberof Options + * @type {string|object} + * @default {} + * @see [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label) for position string value. + * @example + * axis: { + * y: { + * label: "Your Y Axis" + * } + * } + * + * axis: { + * y: { + * label: { + * text: "Your Y Axis", + * position: "outer-middle" + * } + * } + * } + */ + axis_y_label: {}, + /** + * Set formatter for y axis tick text.<br><br> + * This option accepts d3.format object as well as a function you define. + * @name axis․y․tick․format + * @memberof Options + * @type {Function} + * @default undefined + * @example + * axis: { + * y: { + * tick: { + * format: function(x) { + * return x.getFullYear(); + * } + * } + * } + * } + */ + axis_y_tick_format: void 0, + /** + * Setting for culling ticks. + * - `true`: the ticks will be culled, then only limited tick text will be shown.<br> + * This option does not hide the tick lines by default, if want to hide tick lines, set `axis.y.tick.culling.lines=false`. + * - `false`: all of ticks will be shown.<br><br> + * The number of ticks to be shown can be chaned by `axis.y.tick.culling.max`. + * @name axis․y․tick․culling + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y: { + * tick: { + * culling: false + * } + * } + * } + */ + axis_y_tick_culling: false, + /** + * The number of tick texts will be adjusted to less than this value. + * @name axis․y․tick․culling․max + * @memberof Options + * @type {number} + * @default 5 + * @example + * axis: { + * y: { + * tick: { + * culling: { + * max: 5 + * } + * } + * } + * } + */ + axis_y_tick_culling_max: 5, + /** + * Control visibility of tick lines within culling option, along with tick text. + * @name axis․y․tick․culling․lines + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y: { + * tick: { + * culling: { + * lines: false, + * } + * } + * } + * } + */ + axis_y_tick_culling_lines: true, + /** + * Show y axis outer tick. + * @name axis․y․tick․outer + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y: { + * tick: { + * outer: false + * } + * } + * } + */ + axis_y_tick_outer: true, + /** + * Set y axis tick values manually. + * @name axis․y․tick․values + * @memberof Options + * @type {Array|Function} + * @default null + * @example + * axis: { + * y: { + * tick: { + * values: [100, 1000, 10000], + * + * // an Array value should be returned + * values: function() { + * return [ ... ]; + * } + * } + * } + * } + */ + axis_y_tick_values: null, + /** + * Rotate y axis tick text. + * - If you set negative value, it will rotate to opposite direction. + * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `true`. + * @name axis․y․tick․rotate + * @memberof Options + * @type {number} + * @default 0 + * @example + * axis: { + * y: { + * tick: { + * rotate: 60 + * } + * } + * } + */ + axis_y_tick_rotate: 0, + /** + * Set the number of y axis ticks.<br><br> + * - **NOTE:** The position of the ticks will be calculated precisely, so the values on the ticks will not be rounded nicely. In the case, axis.y.tick.format or axis.y.tick.values will be helpful. + * @name axis․y․tick․count + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y: { + * tick: { + * count: 5 + * } + * } + * } + */ + axis_y_tick_count: void 0, + /** + * Show or hide y axis tick line. + * @name axis․y․tick․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y: { + * tick: { + * show: false + * } + * } + * } + */ + axis_y_tick_show: true, + /** + * Set axis tick step(interval) size. + * - **NOTE:** Will be ignored if `axis.y.tick.count` or `axis.y.tick.values` options are set. + * @name axis․y․tick․stepSize + * @memberof Options + * @type {number} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.StepSizeForYAxis) + * @example + * axis: { + * y: { + * tick: { + * // tick value will step as indicated interval value. + * // ex) 'stepSize=15' ==> [0, 15, 30, 45, 60] + * stepSize: 15 + * } + * } + * } + */ + axis_y_tick_stepSize: null, + /** + * Show or hide y axis tick text. + * @name axis․y․tick․text․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y: { + * tick: { + * text: { + * show: false + * } + * } + * } + * } + */ + axis_y_tick_text_show: true, + /** + * Set the y Axis tick text's position relatively its original position + * @name axis․y․tick․text․position + * @memberof Options + * @type {object} + * @default {x: 0, y:0} + * @example + * axis: { + * y: { + * tick: { + * text: { + * position: { + * x: 10, + * y: 10 + * } + * } + * } + * } + * } + */ + axis_y_tick_text_position: { x: 0, y: 0 }, + /** + * Set the number of y axis ticks.<br><br> + * - **NOTE:** The position of the ticks will be calculated precisely, so the values on the ticks will not be rounded nicely. In the case, axis.y.tick.format or axis.y.tick.values will be helpful. + * @name axis․y․tick․time + * @memberof Options + * @private + * @type {object} + * @property {object} time time object + * @property {Function} [time.value] D3's time interval function (https://github.com/d3/d3-time#intervals) + * @example + * axis: { + * y: { + * tick: { + * time: { + * // ticks at 15-minute intervals + * // https://github.com/d3/d3-scale/blob/master/README.md#time_ticks + * value: d3.timeMinute.every(15) + * } + * } + * } + * } + */ + // @TODO: not fully implemented yet + axis_y_tick_time_value: void 0, + /** + * Set padding for y axis.<br><br> + * You can set padding for y axis to create more space on the edge of the axis. + * This option accepts object and it can include top and bottom. top, bottom will be treated as pixels. + * + * - **NOTE:** + * - Given values are translated relative to the y Axis domain value for padding + * - For area and bar type charts, [area.zerobased](#.area) or [bar.zerobased](#.bar) options should be set to 'false` to get padded bottom. + * @name axis․y․padding + * @memberof Options + * @type {object|number} + * @default {} + * @example + * axis: { + * y: { + * padding: { + * top: 0, + * bottom: 0 + * }, + * + * // or set both values at once. + * padding: 10 + * } + * } + */ + axis_y_padding: {}, + /** + * Set default range of y axis.<br><br> + * This option set the default value for y axis when there is no data on init. + * @name axis․y․default + * @memberof Options + * @type {Array} + * @default undefined + * @example + * axis: { + * y: { + * default: [0, 1000] + * } + * } + */ + axis_y_default: void 0, + /** + * Set additional axes for y Axis. + * - **NOTE:** Axis' scale is based on y Axis value if domain option isn't set. + * + * Each axis object should consist with following options: + * + * | Name | Type | Default | Description | + * | --- | --- | --- | --- | + * | domain | Array | - | Set the domain value | + * | tick.outer | boolean | true | Show outer tick | + * | tick.format | Function | - | Set formatter for tick text | + * | tick.count | Number | - | Set the number of y axis ticks | + * | tick.values | Array | - | Set tick values manually | + * @name axis․y․axes + * @memberof Options + * @type {Array} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes) + * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain) + * @example + * y: { + * axes: [ + * { + * // if set, will not be correlated with the main y Axis domain value + * domain: [0, 1000], + * tick: { + * outer: false, + * format: function(x) { + * return x + "%"; + * }, + * count: 2, + * values: [10, 20, 30] + * } + * }, + * ... + * ] + * } + */ + axis_y_axes: [] +}); + +;// CONCATENATED MODULE: ./src/config/Options/axis/y2.ts +/* harmony default export */ var y2 = ({ + /** + * Show or hide y2 axis. + * - **NOTE**: + * - When set to `false` will not generate y2 axis node. In this case, all 'y2' axis related functionality won't work properly. + * - If need to use 'y2' related options while y2 isn't visible, set the value `true` and control visibility by css display property. + * @name axis․y2․show + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y2: { + * show: true + * } + * } + */ + axis_y2_show: false, + /** + * Set type of y2 axis.<br><br> + * **Available Values:** + * - indexed + * - log + * - timeseries + * + * **NOTE:**<br> + * - **log** type: + * - the bound data values must be exclusively-positive. + * - y2 axis min value should be >= 0. + * - [`data.groups`](#.data%25E2%2580%25A4groups)(stacked data) option aren't supported. + * + * @name axis․y2․type + * @memberof Options + * @type {string} + * @default "indexed" + * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales) + * @example + * axis: { + * y2: { + * type: "indexed" + * } + * } + */ + axis_y2_type: "indexed", + /** + * Set max value of y2 axis. + * @name axis․y2․max + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * max: 1000 + * } + * } + */ + axis_y2_max: void 0, + /** + * Set min value of y2 axis. + * @name axis․y2․min + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * min: -1000 + * } + * } + */ + axis_y2_min: void 0, + /** + * Change the direction of y2 axis.<br><br> + * If true set, the direction will be `top -> bottom`. + * @name axis․y2․inverted + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis) + * @example + * axis: { + * y2: { + * inverted: true + * } + * } + */ + axis_y2_inverted: false, + /** + * Set center value of y2 axis. + * @name axis․y2․center + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * center: 0 + * } + * } + */ + axis_y2_center: void 0, + /** + * Show y2 axis inside of the chart. + * @name axis․y2․inner + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y2: { + * inner: true + * } + * } + */ + axis_y2_inner: false, + /** + * Set label on y2 axis.<br><br> + * You can set y2 axis label and change its position by this option. This option works in the same way as [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label). + * @name axis․y2․label + * @memberof Options + * @type {string|object} + * @default {} + * @see [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label) for position string value. + * @example + * axis: { + * y2: { + * label: "Your Y2 Axis" + * } + * } + * + * axis: { + * y2: { + * label: { + * text: "Your Y2 Axis", + * position: "outer-middle" + * } + * } + * } + */ + axis_y2_label: {}, + /** + * Set formatter for y2 axis tick text.<br><br> + * This option works in the same way as axis.y.format. + * @name axis․y2․tick․format + * @memberof Options + * @type {Function} + * @default undefined + * @example + * axis: { + * y2: { + * tick: { + * format: d3.format("$,") + * //or format: function(d) { return "$" + d; } + * } + * } + * } + */ + axis_y2_tick_format: void 0, + /** + * Setting for culling ticks. + * - `true`: the ticks will be culled, then only limited tick text will be shown.<br> + * This option does not hide the tick lines by default, if want to hide tick lines, set `axis.y2.tick.culling.lines=false`. + * - `false`: all of ticks will be shown.<br><br> + * The number of ticks to be shown can be chaned by `axis.y2.tick.culling.max`. + * @name axis․y2․tick․culling + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * y2: { + * tick: { + * culling: false + * } + * } + * } + */ + axis_y2_tick_culling: false, + /** + * The number of tick texts will be adjusted to less than this value. + * @name axis․y2․tick․culling․max + * @memberof Options + * @type {number} + * @default 5 + * @example + * axis: { + * y2: { + * tick: { + * culling: { + * max: 5 + * } + * } + * } + * } + */ + axis_y2_tick_culling_max: 5, + /** + * Control visibility of tick lines within culling option, along with tick text. + * @name axis․y2․tick․culling․lines + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y2: { + * tick: { + * culling: { + * lines: false, + * } + * } + * } + * } + */ + axis_y2_tick_culling_lines: true, + /** + * Show or hide y2 axis outer tick. + * @name axis․y2․tick․outer + * @memberof Options + * @type {boolean} + * @default true + * @example + * axis: { + * y2: { + * tick: { + * outer: false + * } + * } + * } + */ + axis_y2_tick_outer: true, + /** + * Set y2 axis tick values manually. + * @name axis․y2․tick․values + * @memberof Options + * @type {Array|Function} + * @default null + * @example + * axis: { + * y2: { + * tick: { + * values: [100, 1000, 10000], + * + * // an Array value should be returned + * values: function() { + * return [ ... ]; + * } + * } + * } + * } + */ + axis_y2_tick_values: null, + /** + * Rotate y2 axis tick text. + * - If you set negative value, it will rotate to opposite direction. + * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `true`. + * @name axis․y2․tick․rotate + * @memberof Options + * @type {number} + * @default 0 + * @example + * axis: { + * y2: { + * tick: { + * rotate: 60 + * } + * } + * } + */ + axis_y2_tick_rotate: 0, + /** + * Set the number of y2 axis ticks. + * - **NOTE:** This works in the same way as axis.y.tick.count. + * @name axis․y2․tick․count + * @memberof Options + * @type {number} + * @default undefined + * @example + * axis: { + * y2: { + * tick: { + * count: 5 + * } + * } + * } + */ + axis_y2_tick_count: void 0, + /** + * Show or hide y2 axis tick line. + * @name axis․y2․tick․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y2: { + * tick: { + * show: false + * } + * } + * } + */ + axis_y2_tick_show: true, + /** + * Set axis tick step(interval) size. + * - **NOTE:** Will be ignored if `axis.y2.tick.count` or `axis.y2.tick.values` options are set. + * @name axis․y2․tick․stepSize + * @memberof Options + * @type {number} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.StepSizeForYAxis) + * @example + * axis: { + * y2: { + * tick: { + * // tick value will step as indicated interval value. + * // ex) 'stepSize=15' ==> [0, 15, 30, 45, 60] + * stepSize: 15 + * } + * } + * } + */ + axis_y2_tick_stepSize: null, + /** + * Show or hide y2 axis tick text. + * @name axis․y2․tick․text․show + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText) + * @example + * axis: { + * y2: { + * tick: { + * text: { + * show: false + * } + * } + * } + * } + */ + axis_y2_tick_text_show: true, + /** + * Set the y2 Axis tick text's position relatively its original position + * @name axis․y2․tick․text․position + * @memberof Options + * @type {object} + * @default {x: 0, y:0} + * @example + * axis: { + * y2: { + * tick: { + * text: { + * position: { + * x: 10, + * y: 10 + * } + * } + * } + * } + * } + */ + axis_y2_tick_text_position: { x: 0, y: 0 }, + /** + * Set padding for y2 axis.<br><br> + * You can set padding for y2 axis to create more space on the edge of the axis. + * This option accepts object and it can include top and bottom. top, bottom will be treated as pixels. + * + * - **NOTE:** + * - Given values are translated relative to the y2 Axis domain value for padding + * - For area and bar type charts, [area.zerobased](#.area) or [bar.zerobased](#.bar) options should be set to 'false` to get padded bottom. + * @name axis․y2․padding + * @memberof Options + * @type {object|number} + * @default {} + * @example + * axis: { + * y2: { + * padding: { + * top: 100, + * bottom: 100 + * } + * + * // or set both values at once. + * padding: 10 + * } + */ + axis_y2_padding: {}, + /** + * Set default range of y2 axis.<br><br> + * This option set the default value for y2 axis when there is no data on init. + * @name axis․y2․default + * @memberof Options + * @type {Array} + * @default undefined + * @example + * axis: { + * y2: { + * default: [0, 1000] + * } + * } + */ + axis_y2_default: void 0, + /** + * Set additional axes for y2 Axis. + * - **NOTE:** Axis' scale is based on y2 Axis value if domain option isn't set. + * + * Each axis object should consist with following options: + * + * | Name | Type | Default | Description | + * | --- | --- | --- | --- | + * | domain | Array | - | Set the domain value | + * | tick.outer | boolean | true | Show outer tick | + * | tick.format | Function | - | Set formatter for tick text | + * | tick.count | Number | - | Set the number of y axis ticks | + * | tick.values | Array | - | Set tick values manually | + * @name axis․y2․axes + * @memberof Options + * @type {Array} + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes) + * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain) + * @example + * y2: { + * axes: [ + * { + * // if set, will not be correlated with the main y2 Axis domain value + * domain: [0, 1000], + * tick: { + * outer: false, + * format: function(x) { + * return x + "%"; + * }, + * count: 2, + * values: [10, 20, 30] + * } + * }, + * ... + * ] + * } + */ + axis_y2_axes: [] +}); + +;// CONCATENATED MODULE: ./src/config/Options/axis/axis.ts +var axis_defProp = Object.defineProperty; +var axis_getOwnPropSymbols = Object.getOwnPropertySymbols; +var axis_hasOwnProp = Object.prototype.hasOwnProperty; +var axis_propIsEnum = Object.prototype.propertyIsEnumerable; +var axis_defNormalProp = (obj, key, value) => key in obj ? axis_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var axis_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (axis_hasOwnProp.call(b, prop)) + axis_defNormalProp(a, prop, b[prop]); + if (axis_getOwnPropSymbols) + for (var prop of axis_getOwnPropSymbols(b)) { + if (axis_propIsEnum.call(b, prop)) + axis_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + +/* harmony default export */ var Options_axis_axis = (axis_spreadValues(axis_spreadValues(axis_spreadValues({ + /** + * Switch x and y axis position. + * @name axis․rotated + * @memberof Options + * @type {boolean} + * @default false + * @example + * axis: { + * rotated: true + * } + */ + axis_rotated: false, + /** + * Set axis tooltip. + * - **NOTE:** + * - When enabled, will disable default focus grid line. + * - For `timeseries` x Axis, tootlip will be formatted using x Axis' tick format. + * - For `category` x Axis, tootlip will be displaying scales' value text. + * @name axis․tooltip + * @memberof Options + * @type {boolean} + * @default false + * @property {object} axis Axis object + * @property {boolean} [axis.tooltip=false] Show tooltip or not. + * @property {string|object} [axis.tooltip.backgroundColor] Set axis tooltip text background colors. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.AxisTooltip) + * @example + * axis: { + * tooltip: true, // default background color is + * + * // set backgound color for axis tooltip texts + * tooltip: { + * backgroundColor: "red", + * + * // set differenct backround colors per axes + * // NOTE: In this case, only specified axes tooltip will appear. + * backgroundColor: { + * x: "green", + * y: "yellow", + * y2: "red" + * } + * } + * } + */ + axis_tooltip: false +}, axis_x), y), y2)); + +;// CONCATENATED MODULE: ./src/config/Options/common/grid.ts +/* harmony default export */ var common_grid = ({ + /** + * Set related options + * @name grid + * @memberof Options + * @type {object} + * @property {boolean} [front=false] Set 'grid & focus lines' to be positioned over grid lines and chart elements. + * @property {object} x Grid x object + * @property {boolean} [x.show=false] Show grids along x axis. + * @property {Array} [x.lines=[]] Show additional grid lines along x axis.<br> + * This option accepts array including object that has value, text, position and class. text, position and class are optional. For position, start, middle and end (default) are available. + * If x axis is category axis, value can be category name. If x axis is timeseries axis, value can be date string, Date object and unixtime integer. + * @property {object} y Grid y object + * @property {boolean} [y.show=false] Show grids along x axis. + * @property {Array} [y.lines=[]] Show additional grid lines along y axis.<br> + * This option accepts array including object that has value, text, position and class. + * @property {number} [y.ticks=undefined] Number of y grids to be shown. + * @property {object} focus Grid focus object + * @property {boolean} [focus.edge=false] Show edged focus grid line.<br>**NOTE:** Available when [`tooltip.grouped=false`](#.tooltip) option is set. + * @property {boolean} [focus.show=true] Show grid line when focus. + * @property {boolean} [focus.y=false] Show y coordinate focus grid line.<br>**NOTE:** Available when [`tooltip.grouped=false`](#.tooltip) option is set. + * @property {object} lines Grid lines object + * @property {boolean} [lines.front=true] Set grid lines to be positioned over chart elements. + * @default undefined + * @see [Demo](https://naver.github.io/billboard.js/demo/#Grid.GridLines) + * @see [Demo: X Grid Lines](https://naver.github.io/billboard.js/demo/#Grid.OptionalXGridLines) + * @see [Demo: Y Grid Lines](https://naver.github.io/billboard.js/demo/#Grid.OptionalYGridLines) + * @example + * grid: { + * x: { + * show: true, + * lines: [ + * {value: 2, text: "Label on 2"}, + * {value: 5, text: "Label on 5", class: "label-5"}, + * {value: 6, text: "Label on 6", position: "start"} + * ] + * }, + * y: { + * show: true, + * lines: [ + * {value: 100, text: "Label on 100"}, + * {value: 200, text: "Label on 200", class: "label-200"}, + * {value: 300, text: "Label on 300", position: 'middle'} + * ], + * ticks: 5 + * }, + * front: true, + * focus: { + * show: false, + * + * // Below options are available when 'tooltip.grouped=false' option is set + * edge: true, + * y: true + * }, + * lines: { + * front: false + * } + * } + */ + grid_x_show: false, + grid_x_type: "tick", + grid_x_lines: [], + grid_y_show: false, + grid_y_lines: [], + grid_y_ticks: void 0, + grid_focus_edge: false, + grid_focus_show: true, + grid_focus_y: false, + grid_front: false, + grid_lines_front: true +}); + +;// CONCATENATED MODULE: ./src/config/Options/data/axis.ts +/* harmony default export */ var data_axis = ({ + /** + * Specify the keys of the x values for each data.<br><br> + * This option can be used if we want to show the data that has different x values. + * @name data․xs + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * xs: { + * data1: "x1", + * data2: "x2" + * } + * } + */ + data_xs: {}, + /** + * Set a format specifier to parse string specifed as x. + * @name data․xFormat + * @memberof Options + * @type {string} + * @default %Y-%m-%d + * @example + * data: { + * x: "x", + * columns: [ + * ["x", "01012019", "02012019", "03012019"], + * ["data1", 30, 200, 100] + * ], + * // Format specifier to parse as datetime for given 'x' string value + * xFormat: "%m%d%Y" + * }, + * axis: { + * x: { + * type: "timeseries" + * } + * } + * @see [D3's time specifier](https://d3js.org/d3-time-format#locale_format) + */ + data_xFormat: "%Y-%m-%d", + /** + * Set localtime format to parse x axis. + * @name data․xLocaltime + * @memberof Options + * @type {boolean} + * @default true + * @example + * data: { + * xLocaltime: false + * } + */ + data_xLocaltime: true, + /** + * Sort on x axis. + * - **NOTE:** This option works for lineish(area/line/spline/step) types only. + * @name data․xSort + * @memberof Options + * @type {boolean} + * @default true + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataXSort) + * @example + * data: { + * xSort: false, + * x: "x", + * columns: [ + * // The line graph will start to be drawn following the x axis sequence + * // Below data, wil start drawing x=1: 200, x=2: 300, x=3: 100 + * ["x", 3, 1, 2], + * ["data1", 100, 200, 300] + * ] + * } + */ + data_xSort: true, + /** + * Set y axis the data related to. y and y2 can be used. + * - **NOTE:** If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data + * @name data․axes + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * axes: { + * data1: "y", + * data2: "y2" + * } + * } + */ + data_axes: {}, + /** + * Define regions for each data.<br> + * The values must be an array for each data and it should include an object that has `start`, `end` and `style`. + * - The object type should be as: + * - start {number}: Start data point number. If not set, the start will be the first data point. + * - [end] {number}: End data point number. If not set, the end will be the last data point. + * - [style.dasharray="2 2"] {object}: The first number specifies a distance for the filled area, and the second a distance for the unfilled area. + * - **NOTE:** Currently this option supports only line chart and dashed style. If this option specified, the line will be dashed only in the regions. + * @name data․regions + * @memberof Options + * @type {object} + * @default {} + * @example + * data: { + * regions: { + * data1: [{ + * start: 1, + * end: 2, + * style: { + * dasharray: "5 2" + * } + * }, { + * start: 3 + * }], + * ... + * } + * } + */ + data_regions: {}, + /** + * Set the stacking to be normalized + * - **NOTE:** + * - For stacking, '[data.groups](#.data%25E2%2580%25A4groups)' option should be set + * - y Axis will be set in percentage value (0 ~ 100%) + * - Must have postive values + * @name data․stack․normalize + * @memberof Options + * @type {boolean} + * @default false + * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataStackNormalized) + * @example + * data: { + * stack: { + * normalize: true + * } + * } + */ + data_stack_normalize: false +}); + +;// CONCATENATED MODULE: ./src/config/resolver/axis.ts + + + + + + + + + + + + + + + + + +const api = [ + api_axis, + api_category, + flow, + api_grid, + group, + api_regions, + x +]; +const internal = { + axis: Axis, + clip: clip, + eventrect: eventrect, + flow: interactions_flow, + grid: internals_grid, + region: region, + sizeAxis: size_axis +}; +const options = { + optDataAxis: data_axis, + optAxis: Options_axis_axis, + optGrid: common_grid +}; + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/array.js +var slice = Array.prototype.slice; +/* harmony default export */ function d3_shape_src_array(x) { + return typeof x === "object" && "length" in x ? x : Array.from(x); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/constant.js +/* harmony default export */ function d3_shape_src_constant(x) { + return function constant() { + return x; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/descending.js +/* harmony default export */ function src_descending(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/identity.js +/* harmony default export */ function d3_shape_src_identity(d) { + return d; +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/pie.js + + + + + +/* harmony default export */ function pie() { + var value = d3_shape_src_identity, sortValues = src_descending, sort = null, startAngle = d3_shape_src_constant(0), endAngle = d3_shape_src_constant(tau), padAngle = d3_shape_src_constant(0); + function pie(data) { + var i, n = (data = d3_shape_src_array(data)).length, j, k, sum = 0, index = new Array(n), arcs = new Array(n), a0 = +startAngle.apply(this, arguments), da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), a1, p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), pa = p * (da < 0 ? -1 : 1), v; + for (i = 0; i < n; ++i) { + if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) { + sum += v; + } + } + if (sortValues != null) + index.sort(function(i2, j2) { + return sortValues(arcs[i2], arcs[j2]); + }); + else if (sort != null) + index.sort(function(i2, j2) { + return sort(data[i2], data[j2]); + }); + for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) { + j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { + data: data[j], + index: i, + value: v, + startAngle: a0, + endAngle: a1, + padAngle: p + }; + } + return arcs; + } + pie.value = function(_) { + return arguments.length ? (value = typeof _ === "function" ? _ : d3_shape_src_constant(+_), pie) : value; + }; + pie.sortValues = function(_) { + return arguments.length ? (sortValues = _, sort = null, pie) : sortValues; + }; + pie.sort = function(_) { + return arguments.length ? (sort = _, sortValues = null, pie) : sort; + }; + pie.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), pie) : startAngle; + }; + pie.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), pie) : endAngle; + }; + pie.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), pie) : padAngle; + }; + return pie; +} + +;// CONCATENATED MODULE: ./node_modules/d3-path/src/path.js +var __pow = Math.pow; +const path_pi = Math.PI, path_tau = 2 * path_pi, path_epsilon = 1e-6, tauEpsilon = path_tau - path_epsilon; +function path_append(strings) { + this._ += strings[0]; + for (let i = 1, n = strings.length; i < n; ++i) { + this._ += arguments[i] + strings[i]; + } +} +function appendRound(digits) { + let d = Math.floor(digits); + if (!(d >= 0)) + throw new Error(`invalid digits: ${digits}`); + if (d > 15) + return path_append; + const k = __pow(10, d); + return function(strings) { + this._ += strings[0]; + for (let i = 1, n = strings.length; i < n; ++i) { + this._ += Math.round(arguments[i] * k) / k + strings[i]; + } + }; +} +class Path { + constructor(digits) { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null; + this._ = ""; + this._append = digits == null ? path_append : appendRound(digits); + } + moveTo(x, y) { + this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`; + } + closePath() { + if (this._x1 !== null) { + this._x1 = this._x0, this._y1 = this._y0; + this._append`Z`; + } + } + lineTo(x, y) { + this._append`L${this._x1 = +x},${this._y1 = +y}`; + } + quadraticCurveTo(x1, y1, x, y) { + this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`; + } + bezierCurveTo(x1, y1, x2, y2, x, y) { + this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`; + } + arcTo(x1, y1, x2, y2, r) { + x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r; + if (r < 0) + throw new Error(`negative radius: ${r}`); + let x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01; + if (this._x1 === null) { + this._append`M${this._x1 = x1},${this._y1 = y1}`; + } else if (!(l01_2 > path_epsilon)) + ; + else if (!(Math.abs(y01 * x21 - y21 * x01) > path_epsilon) || !r) { + this._append`L${this._x1 = x1},${this._y1 = y1}`; + } else { + let x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((path_pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21; + if (Math.abs(t01 - 1) > path_epsilon) { + this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`; + } + this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`; + } + } + arc(x, y, r, a0, a1, ccw) { + x = +x, y = +y, r = +r, ccw = !!ccw; + if (r < 0) + throw new Error(`negative radius: ${r}`); + let dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x + dx, y0 = y + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0; + if (this._x1 === null) { + this._append`M${x0},${y0}`; + } else if (Math.abs(this._x1 - x0) > path_epsilon || Math.abs(this._y1 - y0) > path_epsilon) { + this._append`L${x0},${y0}`; + } + if (!r) + return; + if (da < 0) + da = da % path_tau + path_tau; + if (da > tauEpsilon) { + this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`; + } else if (da > path_epsilon) { + this._append`A${r},${r},0,${+(da >= path_pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`; + } + } + rect(x, y, w, h) { + this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`; + } + toString() { + return this._; + } +} +function path() { + return new Path(); +} +path.prototype = Path.prototype; +function pathRound(digits = 3) { + return new Path(+digits); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/path.js + +function withPath(shape) { + let digits = 3; + shape.digits = function(_) { + if (!arguments.length) + return digits; + if (_ == null) { + digits = null; + } else { + const d = Math.floor(_); + if (!(d >= 0)) + throw new RangeError(`invalid digits: ${_}`); + digits = d; + } + return shape; + }; + return () => new Path(digits); +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/arc.js + + + +function arcInnerRadius(d) { + return d.innerRadius; +} +function arcOuterRadius(d) { + return d.outerRadius; +} +function arcStartAngle(d) { + return d.startAngle; +} +function arcEndAngle(d) { + return d.endAngle; +} +function arcPadAngle(d) { + return d && d.padAngle; +} +function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { + var x10 = x1 - x0, y10 = y1 - y0, x32 = x3 - x2, y32 = y3 - y2, t = y32 * x10 - x32 * y10; + if (t * t < epsilon) + return; + t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t; + return [x0 + t * x10, y0 + t * y10]; +} +function cornerTangents(x0, y0, x1, y1, r1, rc, cw) { + var x01 = x0 - x1, y01 = y0 - y1, lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x0 + ox, y11 = y0 + oy, x10 = x1 + ox, y10 = y1 + oy, x00 = (x11 + x10) / 2, y00 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r = r1 - rc, D = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt(math_max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x00, dy0 = cy0 - y00, dx1 = cx1 - x00, dy1 = cy1 - y00; + if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) + cx0 = cx1, cy0 = cy1; + return { + cx: cx0, + cy: cy0, + x01: -ox, + y01: -oy, + x11: cx0 * (r1 / r - 1), + y11: cy0 * (r1 / r - 1) + }; +} +/* harmony default export */ function src_arc() { + var innerRadius = arcInnerRadius, outerRadius = arcOuterRadius, cornerRadius = d3_shape_src_constant(0), padRadius = null, startAngle = arcStartAngle, endAngle = arcEndAngle, padAngle = arcPadAngle, context = null, path = withPath(arc); + function arc() { + var buffer, r, r0 = +innerRadius.apply(this, arguments), r1 = +outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) - halfPi, a1 = endAngle.apply(this, arguments) - halfPi, da = math_abs(a1 - a0), cw = a1 > a0; + if (!context) + context = buffer = path(); + if (r1 < r0) + r = r1, r1 = r0, r0 = r; + if (!(r1 > epsilon)) + context.moveTo(0, 0); + else if (da > tau - epsilon) { + context.moveTo(r1 * cos(a0), r1 * sin(a0)); + context.arc(0, 0, r1, a0, a1, !cw); + if (r0 > epsilon) { + context.moveTo(r0 * cos(a1), r0 * sin(a1)); + context.arc(0, 0, r0, a1, a0, cw); + } + } else { + var a01 = a0, a11 = a1, a00 = a0, a10 = a1, da0 = da, da1 = da, ap = padAngle.apply(this, arguments) / 2, rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), rc = math_min(math_abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), rc0 = rc, rc1 = rc, t0, t1; + if (rp > epsilon) { + var p0 = asin(rp / r0 * sin(ap)), p1 = asin(rp / r1 * sin(ap)); + if ((da0 -= p0 * 2) > epsilon) + p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0; + else + da0 = 0, a00 = a10 = (a0 + a1) / 2; + if ((da1 -= p1 * 2) > epsilon) + p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1; + else + da1 = 0, a01 = a11 = (a0 + a1) / 2; + } + var x01 = r1 * cos(a01), y01 = r1 * sin(a01), x10 = r0 * cos(a10), y10 = r0 * sin(a10); + if (rc > epsilon) { + var x11 = r1 * cos(a11), y11 = r1 * sin(a11), x00 = r0 * cos(a00), y00 = r0 * sin(a00), oc; + if (da < pi) { + if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) { + var ax = x01 - oc[0], ay = y01 - oc[1], bx = x11 - oc[0], by = y11 - oc[1], kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = math_min(rc, (r0 - lc) / (kc - 1)); + rc1 = math_min(rc, (r1 - lc) / (kc + 1)); + } else { + rc0 = rc1 = 0; + } + } + } + if (!(da1 > epsilon)) + context.moveTo(x01, y01); + else if (rc1 > epsilon) { + t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw); + t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw); + context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); + if (rc1 < rc) + context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + else { + context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw); + context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } else + context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); + if (!(r0 > epsilon) || !(da0 > epsilon)) + context.lineTo(x10, y10); + else if (rc0 > epsilon) { + t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw); + t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw); + context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); + if (rc0 < rc) + context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); + else { + context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw); + context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw); + context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw); + } + } else + context.arc(0, 0, r0, a10, a00, cw); + } + context.closePath(); + if (buffer) + return context = null, buffer + "" || null; + } + arc.centroid = function() { + var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2; + return [cos(a) * r, sin(a) * r]; + }; + arc.innerRadius = function(_) { + return arguments.length ? (innerRadius = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : innerRadius; + }; + arc.outerRadius = function(_) { + return arguments.length ? (outerRadius = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : outerRadius; + }; + arc.cornerRadius = function(_) { + return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : cornerRadius; + }; + arc.padRadius = function(_) { + return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : padRadius; + }; + arc.startAngle = function(_) { + return arguments.length ? (startAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : startAngle; + }; + arc.endAngle = function(_) { + return arguments.length ? (endAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : endAngle; + }; + arc.padAngle = function(_) { + return arguments.length ? (padAngle = typeof _ === "function" ? _ : d3_shape_src_constant(+_), arc) : padAngle; + }; + arc.context = function(_) { + return arguments.length ? (context = _ == null ? null : _, arc) : context; + }; + return arc; +} + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/arc.ts +var arc_defProp = Object.defineProperty; +var arc_defProps = Object.defineProperties; +var arc_getOwnPropDescs = Object.getOwnPropertyDescriptors; +var arc_getOwnPropSymbols = Object.getOwnPropertySymbols; +var arc_hasOwnProp = Object.prototype.hasOwnProperty; +var arc_propIsEnum = Object.prototype.propertyIsEnumerable; +var arc_defNormalProp = (obj, key, value) => key in obj ? arc_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var arc_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (arc_hasOwnProp.call(b, prop)) + arc_defNormalProp(a, prop, b[prop]); + if (arc_getOwnPropSymbols) + for (var prop of arc_getOwnPropSymbols(b)) { + if (arc_propIsEnum.call(b, prop)) + arc_defNormalProp(a, prop, b[prop]); + } + return a; +}; +var arc_spreadProps = (a, b) => arc_defProps(a, arc_getOwnPropDescs(b)); + + + + + + +function getRadiusFn(expandRate = 0) { + const $$ = this; + const { config, state } = $$; + const hasMultiArcGauge = $$.hasMultiArcGauge(); + const singleArcWidth = state.gaugeArcWidth / $$.filterTargetsToShow($$.data.targets).length; + const expandWidth = expandRate ? Math.min( + state.radiusExpanded * expandRate - state.radius, + singleArcWidth * 0.8 - (1 - expandRate) * 100 + ) : 0; + return { + /** + * Getter of arc innerRadius value + * @param {IArcData} d Data object + * @returns {number} innerRadius value + * @private + */ + inner(d) { + const { innerRadius } = $$.getRadius(d); + return hasMultiArcGauge ? state.radius - singleArcWidth * (d.index + 1) : isNumber(innerRadius) ? innerRadius : 0; + }, + /** + * Getter of arc outerRadius value + * @param {IArcData} d Data object + * @returns {number} outerRadius value + * @private + */ + outer(d) { + const { outerRadius } = $$.getRadius(d); + let radius; + if (hasMultiArcGauge) { + radius = state.radius - singleArcWidth * d.index + expandWidth; + } else if ($$.hasType("polar") && !expandRate) { + radius = $$.getPolarOuterRadius(d, outerRadius); + } else { + radius = outerRadius; + if (expandRate) { + let { radiusExpanded } = state; + if (state.radius !== outerRadius) { + radiusExpanded -= Math.abs(state.radius - outerRadius); + } + radius = radiusExpanded * expandRate; + } + } + return radius; + }, + /** + * Getter of arc cornerRadius value + * @param {IArcData} d Data object + * @param {number} outerRadius outer radius value + * @returns {number} cornerRadius value + * @private + */ + corner(d, outerRadius) { + const { + arc_cornerRadius_ratio: ratio = 0, + arc_cornerRadius: cornerRadius = 0 + } = config; + const { data: { id }, value } = d; + let corner = 0; + if (ratio) { + corner = ratio * outerRadius; + } else { + corner = isNumber(cornerRadius) ? cornerRadius : cornerRadius.call($$.api, id, value, outerRadius); + } + return corner; + } + }; +} +function getAttrTweenFn(fn) { + return function(d) { + const getAngleKeyValue = ({ startAngle = 0, endAngle = 0, padAngle = 0 }) => ({ + startAngle, + endAngle, + padAngle + }); + const interpolate = value( + getAngleKeyValue(this._current), + getAngleKeyValue(d) + ); + this._current = d; + return function(t) { + const interpolated = interpolate(t); + const { data, index, value } = d; + return fn(arc_spreadProps(arc_spreadValues({}, interpolated), { data, index, value })); + }; + }; +} +/* harmony default export */ var arc = ({ + initPie() { + const $$ = this; + const { config } = $$; + const dataType = config.data_type; + const padding = config[`${dataType}_padding`]; + const startingAngle = config[`${dataType}_startingAngle`] || 0; + const padAngle = (padding ? padding * 0.01 : config[`${dataType}_padAngle`]) || 0; + $$.pie = pie().startAngle(startingAngle).endAngle(startingAngle + 2 * Math.PI).padAngle(padAngle).value((d) => { + var _a, _b; + return (_b = (_a = d.values) == null ? void 0 : _a.reduce((a, b) => a + b.value, 0)) != null ? _b : d; + }).sort($$.getSortCompareFn.bind($$)(true)); + }, + updateRadius() { + const $$ = this; + const { config, state } = $$; + const dataType = config.data_type; + const padding = config[`${dataType}_padding`]; + const w = config.gauge_width || config.donut_width; + const gaugeArcWidth = $$.filterTargetsToShow($$.data.targets).length * config.gauge_arcs_minWidth; + state.radiusExpanded = Math.min(state.arcWidth, state.arcHeight) / 2 * ($$.hasMultiArcGauge() && config.gauge_label_show ? 0.85 : 1); + state.radius = state.radiusExpanded * 0.95; + state.innerRadiusRatio = w ? (state.radius - w) / state.radius : 0.6; + state.gaugeArcWidth = w || (gaugeArcWidth <= state.radius - state.innerRadius ? state.radius - state.innerRadius : gaugeArcWidth <= state.radius ? gaugeArcWidth : state.radius); + const innerRadius = config.pie_innerRadius || (padding ? padding * (state.innerRadiusRatio + 0.1) : 0); + state.outerRadius = config.pie_outerRadius; + state.innerRadius = $$.hasType("donut") || $$.hasType("gauge") ? state.radius * state.innerRadiusRatio : innerRadius; + }, + /** + * Get pie's inner & outer radius value + * @param {object|undefined} d Data object + * @returns {object} + * @private + */ + getRadius(d) { + const $$ = this; + const data = d == null ? void 0 : d.data; + let { innerRadius, outerRadius } = $$.state; + if (!isNumber(innerRadius) && data) { + innerRadius = innerRadius[data.id] || 0; + } + if (isObject(outerRadius) && data && data.id in outerRadius) { + outerRadius = outerRadius[data.id]; + } else if (!isNumber(outerRadius)) { + outerRadius = $$.state.radius; + } + return { innerRadius, outerRadius }; + }, + updateArc() { + const $$ = this; + $$.updateRadius(); + $$.svgArc = $$.getSvgArc(); + $$.svgArcExpanded = $$.getSvgArcExpanded(); + }, + getArcLength() { + const $$ = this; + const { config } = $$; + const arcLengthInPercent = config.gauge_arcLength * 3.6; + let len = 2 * (arcLengthInPercent / 360); + if (arcLengthInPercent < -360) { + len = -2; + } else if (arcLengthInPercent > 360) { + len = 2; + } + return len * Math.PI; + }, + getStartingAngle() { + const $$ = this; + const { config } = $$; + const dataType = config.data_type; + const isFullCircle = $$.hasType("gauge") ? config.gauge_fullCircle : false; + const defaultStartAngle = -1 * Math.PI / 2; + const defaultEndAngle = Math.PI / 2; + let startAngle = config[`${dataType}_startingAngle`] || 0; + if (!isFullCircle && startAngle <= defaultStartAngle) { + startAngle = defaultStartAngle; + } else if (!isFullCircle && startAngle >= defaultEndAngle) { + startAngle = defaultEndAngle; + } else if (startAngle > Math.PI || startAngle < -1 * Math.PI) { + startAngle = Math.PI; + } + return startAngle; + }, + /** + * Update angle data + * @param {object} dValue Data object + * @param {boolean} forRange Weather is for ranged text option(arc.rangeText.values) + * @returns {object|null} Updated angle data + * @private + */ + updateAngle(dValue, forRange = false) { + var _a; + const $$ = this; + const { config, state } = $$; + const hasGauge = forRange && $$.hasType("gauge"); + let { pie } = $$; + let d = dValue; + let found = false; + if (!config) { + return null; + } + const gStart = $$.getStartingAngle(); + const radius = config.gauge_fullCircle || forRange && !hasGauge ? $$.getArcLength() : gStart * -2; + if (d.data && $$.isGaugeType(d.data) && !$$.hasMultiArcGauge()) { + const { gauge_min: gMin, gauge_max: gMax } = config; + const totalSum = $$.getTotalDataSum(state.rendered); + const gEnd = radius * ((totalSum - gMin) / (gMax - gMin)); + pie = pie.startAngle(gStart).endAngle(gEnd + gStart); + } + if (forRange === false) { + pie($$.filterTargetsToShow()).forEach((t, i) => { + var _a2; + if (!found && t.data.id === ((_a2 = d.data) == null ? void 0 : _a2.id)) { + found = true; + d = t; + d.index = i; + } + }); + } + if (isNaN(d.startAngle)) { + d.startAngle = 0; + } + if (isNaN(d.endAngle)) { + d.endAngle = d.startAngle; + } + if (forRange || d.data && (config.gauge_enforceMinMax || $$.hasMultiArcGauge())) { + const { gauge_min: gMin, gauge_max: gMax } = config; + const max = forRange && !hasGauge ? $$.getTotalDataSum(state.rendered) : gMax; + const gTic = radius / (max - gMin); + const value = (_a = d.value) != null ? _a : 0; + const gValue = value < gMin ? 0 : value < max ? value - gMin : max - gMin; + d.startAngle = gStart; + d.endAngle = gStart + gTic * gValue; + } + return found || forRange ? d : null; + }, + getSvgArc() { + const $$ = this; + const { inner, outer, corner } = getRadiusFn.call($$); + const arc = src_arc().innerRadius(inner).outerRadius(outer); + const newArc = function(d, withoutUpdate) { + var _a; + let path = "M 0 0"; + if (d.value || d.data) { + const data = withoutUpdate ? d : (_a = $$.updateAngle(d)) != null ? _a : null; + if (data) { + path = arc.cornerRadius( + corner(data, outer(data)) + )(data); + } + } + return path; + }; + newArc.centroid = arc.centroid; + return newArc; + }, + /** + * Get expanded arc path function + * @param {number} rate Expand rate + * @returns {Function} Expanded arc path getter function + * @private + */ + getSvgArcExpanded(rate = 1) { + const $$ = this; + const { inner, outer, corner } = getRadiusFn.call($$, rate); + const arc = src_arc().innerRadius(inner).outerRadius(outer); + return (d) => { + const updated = $$.updateAngle(d); + const outerR = outer(updated); + let cornerR = 0; + if (updated) { + cornerR = corner(updated, outerR); + } + return updated ? arc.cornerRadius(cornerR)(updated) : "M 0 0"; + }; + }, + getArc(d, withoutUpdate, force) { + return force || this.isArcType(d.data) ? this.svgArc(d, withoutUpdate) : "M 0 0"; + }, + /** + * Render range value text + * @private + */ + redrawArcRangeText() { + const $$ = this; + const { config, $el: { arcs }, state, $T } = $$; + const format = config.arc_rangeText_format; + const fixed = $$.hasType("gauge") && config.arc_rangeText_fixed; + let values = config.arc_rangeText_values; + if (values == null ? void 0 : values.length) { + const isPercent = config.arc_rangeText_unit === "%"; + const totalSum = $$.getTotalDataSum(state.rendered); + if (isPercent) { + values = values.map((v) => totalSum / 100 * v); + } + const pieData = $$.pie(values).map((d, i) => (d.index = i, d)); + let rangeText = arcs.selectAll(`.${$ARC.arcRange}`).data(values); + rangeText.exit(); + rangeText = $T(rangeText.enter().append("text").attr("class", $ARC.arcRange).style("text-anchor", "middle").style("pointer-events", "none").style("opacity", "0").text((v) => { + const range = isPercent ? v / totalSum * 100 : v; + return isFunction(format) ? format(range) : `${range}${isPercent ? "%" : ""}`; + }).merge(rangeText)); + if ((!state.rendered || state.rendered && !fixed) && totalSum > 0) { + rangeText.attr("transform", (d, i) => $$.transformForArcLabel(pieData[i], true)); + } + rangeText.style( + "opacity", + (d) => !fixed && (d > totalSum || totalSum === 0) ? "0" : null + ); + } + }, + /** + * Set transform attributes to arc label text + * @param {object} d Data object + * @param {boolean} forRange Weather is for ranged text option(arc.rangeText.values) + * @returns {string} Translate attribute string + * @private + */ + transformForArcLabel(d, forRange = false) { + var _a, _b, _c; + const $$ = this; + const { config, state: { radiusExpanded } } = $$; + const updated = $$.updateAngle(d, forRange); + let translate = ""; + if (updated) { + if (forRange || $$.hasMultiArcGauge()) { + const y1 = Math.sin(updated.endAngle - Math.PI / 2); + const rangeTextPosition = config.arc_rangeText_position; + let x = Math.cos(updated.endAngle - Math.PI / 2) * (radiusExpanded + (forRange ? 5 : 25)); + let y = y1 * (radiusExpanded + 15 - Math.abs(y1 * 10)) + 3; + if (forRange && rangeTextPosition) { + const rangeValues = config.arc_rangeText_values; + const pos = isFunction(rangeTextPosition) ? rangeTextPosition(rangeValues[d.index]) : rangeTextPosition; + x += (_a = pos == null ? void 0 : pos.x) != null ? _a : 0; + y += (_b = pos == null ? void 0 : pos.y) != null ? _b : 0; + } + translate = `translate(${x},${y})`; + } else if (!$$.hasType("gauge") || $$.data.targets.length > 1) { + let { outerRadius } = $$.getRadius(d); + if ($$.hasType("polar")) { + outerRadius = $$.getPolarOuterRadius(d, outerRadius); + } + const c = this.svgArc.centroid(updated); + const [x, y] = c.map((v) => isNaN(v) ? 0 : v); + const h = Math.sqrt(x * x + y * y); + let ratio = (_c = ["donut", "gauge", "pie", "polar"].filter($$.hasType.bind($$)).map((v) => config[`${v}_label_ratio`])) == null ? void 0 : _c[0]; + if (ratio) { + ratio = isFunction(ratio) ? ratio.bind($$.api)(d, outerRadius, h) : ratio; + } else { + ratio = outerRadius && (h ? (36 / outerRadius > 0.375 ? 1.175 - 36 / outerRadius : 0.8) * outerRadius / h : 0); + } + translate = `translate(${x * ratio},${y * ratio})`; + } + } + return translate; + }, + convertToArcData(d) { + return this.addName({ + id: "data" in d ? d.data.id : d.id, + value: d.value, + ratio: this.getRatio("arc", d), + index: d.index + }); + }, + textForArcLabel(selection) { + const $$ = this; + const hasGauge = $$.hasType("gauge"); + if ($$.shouldShowArcLabel()) { + selection.style("fill", $$.updateTextColor.bind($$)).attr("filter", (d) => $$.updateTextBGColor.bind($$)(d, $$.config.data_labels_backgroundColors)).each(function(d) { + var _a; + const node = src_select(this); + const updated = $$.updateAngle(d); + const ratio = $$.getRatio("arc", updated); + const isUnderThreshold = $$.meetsLabelThreshold( + ratio, + (_a = ["donut", "gauge", "pie", "polar"].filter($$.hasType.bind($$))) == null ? void 0 : _a[0] + ); + if (isUnderThreshold) { + const { value } = updated || d; + const text = ($$.getArcLabelFormat() || $$.defaultArcValueFormat)(value, ratio, d.data.id).toString(); + setTextValue(node, text, [-1, 1], hasGauge); + } else { + node.text(""); + } + }); + } + }, + expandArc(targetIds) { + const $$ = this; + const { state: { transiting }, $el } = $$; + if (transiting) { + const interval = setInterval(() => { + if (!transiting) { + clearInterval(interval); + $el.legend.selectAll(`.${$FOCUS.legendItemFocused}`).size() > 0 && $$.expandArc(targetIds); + } + }, 10); + return; + } + const newTargetIds = $$.mapToTargetIds(targetIds); + $el.svg.selectAll($$.selectorTargets(newTargetIds, `.${$ARC.chartArc}`)).each(function(d) { + if (!$$.shouldExpand(d.data.id)) { + return; + } + const expandDuration = $$.getExpandConfig(d.data.id, "duration"); + const svgArcExpandedSub = $$.getSvgArcExpanded( + $$.getExpandConfig(d.data.id, "rate") + ); + src_select(this).selectAll("path").transition().duration(expandDuration).attrTween("d", getAttrTweenFn($$.svgArcExpanded.bind($$))).transition().duration(expandDuration * 2).attrTween("d", getAttrTweenFn(svgArcExpandedSub.bind($$))); + }); + }, + unexpandArc(targetIds) { + const $$ = this; + const { state: { transiting }, $el: { svg } } = $$; + if (transiting) { + return; + } + const newTargetIds = $$.mapToTargetIds(targetIds); + svg.selectAll($$.selectorTargets(newTargetIds, `.${$ARC.chartArc}`)).selectAll("path").transition().duration((d) => $$.getExpandConfig(d.data.id, "duration")).attrTween("d", getAttrTweenFn($$.svgArc.bind($$))); + svg.selectAll(`${$ARC.arc}`).style("opacity", null); + }, + /** + * Get expand config value + * @param {string} id data ID + * @param {string} key config key: 'duration | rate' + * @returns {number} + * @private + */ + getExpandConfig(id, key) { + const $$ = this; + const { config } = $$; + const def = { + duration: 50, + rate: 0.98 + }; + let type; + if ($$.isDonutType(id)) { + type = "donut"; + } else if ($$.isGaugeType(id)) { + type = "gauge"; + } else if ($$.isPieType(id)) { + type = "pie"; + } + return type ? config[`${type}_expand_${key}`] : def[key]; + }, + shouldExpand(id) { + const $$ = this; + const { config } = $$; + return $$.isDonutType(id) && config.donut_expand || $$.isGaugeType(id) && config.gauge_expand || $$.isPieType(id) && config.pie_expand; + }, + shouldShowArcLabel() { + const $$ = this; + const { config } = $$; + return ["donut", "gauge", "pie", "polar"].some((v) => $$.hasType(v) && config[`${v}_label_show`]); + }, + getArcLabelFormat() { + const $$ = this; + const { config } = $$; + let format = (v) => v; + ["donut", "gauge", "pie", "polar"].filter($$.hasType.bind($$)).forEach((v) => { + format = config[`${v}_label_format`]; + }); + return isFunction(format) ? format.bind($$.api) : format; + }, + updateTargetsForArc(targets) { + const $$ = this; + const { $el } = $$; + const hasGauge = $$.hasType("gauge"); + const classChartArc = $$.getChartClass("Arc"); + const classArcs = $$.getClass("arcs", true); + const classFocus = $$.classFocus.bind($$); + const chartArcs = $el.main.select(`.${$ARC.chartArcs}`); + const mainPieUpdate = chartArcs.selectAll(`.${$ARC.chartArc}`).data($$.pie(targets)).attr("class", (d) => classChartArc(d) + classFocus(d.data)); + const mainPieEnter = mainPieUpdate.enter().append("g").attr("class", classChartArc).call( + this.setCssRule(false, `.${$ARC.chartArcs} text`, [ + "pointer-events:none", + "text-anchor:middle" + ]) + ); + mainPieEnter.append("g").attr("class", classArcs).merge(mainPieUpdate); + mainPieEnter.append("text").attr("dy", hasGauge && !$$.hasMultiTargets() ? "-.1em" : ".35em").style("opacity", "0").style("text-anchor", $$.getStylePropValue("middle")).style("pointer-events", $$.getStylePropValue("none")); + $el.text = chartArcs.selectAll(`.${$COMMON.target} text`); + }, + initArc() { + const $$ = this; + const { $el } = $$; + $el.arcs = $el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $ARC.chartArcs).attr("transform", $$.getTranslate("arc")); + $$.setArcTitle(); + }, + /** + * Set arc title text + * @param {string} str Title text + * @private + */ + setArcTitle(str) { + const $$ = this; + const title = str || $$.getArcTitle(); + const hasGauge = $$.hasType("gauge"); + if (title) { + const className = hasGauge ? $GAUGE.chartArcsGaugeTitle : $ARC.chartArcsTitle; + let text = $$.$el.arcs.select(`.${className}`); + if (text.empty()) { + text = $$.$el.arcs.append("text").attr("class", className).style("text-anchor", "middle"); + } + hasGauge && text.attr("dy", "-0.3em"); + setTextValue(text, title, hasGauge ? void 0 : [-0.6, 1.35], true); + } + }, + /** + * Return arc title text + * @returns {string} Arc title text + * @private + */ + getArcTitle() { + const $$ = this; + const type = $$.hasType("donut") && "donut" || $$.hasType("gauge") && "gauge"; + return type ? $$.config[`${type}_title`] : ""; + }, + /** + * Get arc title text with needle value + * @returns {string|boolean} When title contains needle template string will return processed string, otherwise false + * @private + */ + getArcTitleWithNeedleValue() { + const $$ = this; + const { config, state } = $$; + const title = $$.getArcTitle(); + if (title && $$.config.arc_needle_show && /{=[A-Z_]+}/.test(title)) { + let value = state.current.needle; + if (!isNumber(value)) { + value = config.arc_needle_value; + } + return tplProcess(title, { + NEEDLE_VALUE: isNumber(value) ? value : 0 + }); + } + return false; + }, + redrawArc(duration, durationForExit, withTransform) { + const $$ = this; + const { config, state, $el: { main } } = $$; + const hasInteraction = config.interaction_enabled; + const isSelectable = hasInteraction && config.data_selection_isselectable; + let mainArc = main.selectAll(`.${$ARC.arcs}`).selectAll(`.${$ARC.arc}`).data($$.arcData.bind($$)); + mainArc.exit().transition().duration(durationForExit).style("opacity", "0").remove(); + mainArc = mainArc.enter().append("path").attr("class", $$.getClass("arc", true)).style("fill", (d) => $$.color(d.data)).style("cursor", (d) => { + var _a; + return ((_a = isSelectable == null ? void 0 : isSelectable.bind) == null ? void 0 : _a.call(isSelectable, $$.api)(d)) ? "pointer" : null; + }).style("opacity", "0").each(function(d) { + if ($$.isGaugeType(d.data)) { + d.startAngle = config.gauge_startingAngle; + d.endAngle = config.gauge_startingAngle; + } + this._current = d; + }).merge(mainArc); + if ($$.hasType("gauge")) { + $$.updateGaugeMax(); + $$.hasMultiArcGauge() && $$.redrawArcGaugeLine(); + } + mainArc.attr("transform", (d) => !$$.isGaugeType(d.data) && withTransform ? "scale(0)" : "").style("opacity", function(d) { + return d === this._current ? "0" : null; + }).each(() => { + state.transiting = true; + }).transition().duration(duration).attrTween("d", function(d) { + const updated = $$.updateAngle(d); + if (!updated) { + return () => "M 0 0"; + } + if (isNaN(this._current.startAngle)) { + this._current.startAngle = 0; + } + if (isNaN(this._current.endAngle)) { + this._current.endAngle = this._current.startAngle; + } + const interpolate = value(this._current, updated); + this._current = interpolate(0); + return function(t) { + const interpolated = interpolate(t); + interpolated.data = d.data; + return $$.getArc(interpolated, true); + }; + }).attr("transform", withTransform ? "scale(1)" : "").style("fill", (d) => { + let color; + if ($$.levelColor) { + color = $$.levelColor(d.data.values[0].value); + config.data_colors[d.data.id] = color; + } else { + color = $$.color(d.data); + } + return color; + }).style("opacity", null).call(endall, function() { + if ($$.levelColor) { + const path = src_select(this); + const d = path.datum(this._current); + $$.updateLegendItemColor(d.data.id, path.style("fill")); + } + state.transiting = false; + callFn(config.onrendered, $$.api); + }); + hasInteraction && $$.bindArcEvent(mainArc); + $$.hasType("polar") && $$.redrawPolar(); + $$.hasType("gauge") && $$.redrawBackgroundArcs(); + config.arc_needle_show && $$.redrawNeedle(); + $$.redrawArcText(duration); + $$.redrawArcRangeText(); + }, + /** + * Update needle element + * @private + */ + redrawNeedle() { + const $$ = this; + const { $el, config, state: { hiddenTargetIds, radius } } = $$; + const length = (radius - 1) / 100 * config.arc_needle_length; + const hasDataToShow = hiddenTargetIds.length !== $$.data.targets.length; + let needle = $$.$el.arcs.select(`.${$ARC.needle}`); + const pathFn = config.arc_needle_path; + const baseWidth = config.arc_needle_bottom_width / 2; + const topWidth = config.arc_needle_top_width / 2; + const topRx = config.arc_needle_top_rx; + const topRy = config.arc_needle_top_ry; + const bottomLen = config.arc_needle_bottom_len; + const bottomRx = config.arc_needle_bottom_rx; + const bottomRy = config.arc_needle_bottom_ry; + const needleAngle = $$.getNeedleAngle(); + const updateNeedleValue = () => { + const title = $$.getArcTitleWithNeedleValue(); + title && $$.setArcTitle(title); + }; + updateNeedleValue(); + if (needle.empty()) { + needle = $el.arcs.append("path").classed($ARC.needle, true); + $el.needle = needle; + $el.needle.updateHelper = (v, updateConfig = false) => { + if ($el.needle.style("display") !== "none") { + $$.$T($el.needle).style("transform", `rotate(${$$.getNeedleAngle(v)}deg)`).call(endall, () => { + updateConfig && (config.arc_needle_value = v); + updateNeedleValue(); + }); + } + }; + } + if (hasDataToShow) { + const path = isFunction(pathFn) ? pathFn.call($$, length) : `M-${baseWidth} ${bottomLen} A${bottomRx} ${bottomRy} 0 0 0 ${baseWidth} ${bottomLen} L${topWidth} -${length} A${topRx} ${topRy} 0 0 0 -${topWidth} -${length} L-${baseWidth} ${bottomLen} Z`; + $$.$T(needle).attr("d", path).style("fill", config.arc_needle_color).style("display", null).style("transform", `rotate(${needleAngle}deg)`); + } else { + needle.style("display", "none"); + } + }, + /** + * Get needle angle value relative given value + * @param {number} v Value to be calculated angle + * @returns {number} angle value + * @private + */ + getNeedleAngle(v) { + const $$ = this; + const { config, state } = $$; + const arcLength = $$.getArcLength(); + const hasGauge = $$.hasType("gauge"); + const total = $$.getTotalDataSum(true); + let value = isDefined(v) ? v : config.arc_needle_value; + let startingAngle = config[`${config.data_type}_startingAngle`] || 0; + let radian = 0; + if (!isNumber(value)) { + value = hasGauge && $$.data.targets.length === 1 ? total : 0; + } + state.current.needle = value; + if (hasGauge) { + startingAngle = $$.getStartingAngle(); + const radius = config.gauge_fullCircle ? arcLength : startingAngle * -2; + const { gauge_min: min, gauge_max: max } = config; + radian = radius * ((value - min) / (max - min)); + } else { + radian = arcLength * (value / total); + } + return (startingAngle + radian) * (180 / Math.PI); + }, + redrawBackgroundArcs() { + const $$ = this; + const { config, state } = $$; + const hasMultiArcGauge = $$.hasMultiArcGauge(); + const isFullCircle = config.gauge_fullCircle; + const showEmptyTextLabel = $$.filterTargetsToShow($$.data.targets).length === 0 && !!config.data_empty_label_text; + const startAngle = $$.getStartingAngle(); + const endAngle = isFullCircle ? startAngle + $$.getArcLength() : startAngle * -1; + let backgroundArc = $$.$el.arcs.select( + `${hasMultiArcGauge ? "g" : ""}.${$ARC.chartArcsBackground}` + ); + if (hasMultiArcGauge) { + let index = 0; + backgroundArc = backgroundArc.selectAll(`path.${$ARC.chartArcsBackground}`).data($$.data.targets); + backgroundArc.enter().append("path").attr("class", (d, i) => `${$ARC.chartArcsBackground} ${$ARC.chartArcsBackground}-${i}`).merge(backgroundArc).style("fill", config.gauge_background || null).attr("d", ({ id }) => { + if (showEmptyTextLabel || state.hiddenTargetIds.indexOf(id) >= 0) { + return "M 0 0"; + } + const d = { + data: [{ value: config.gauge_max }], + startAngle, + endAngle, + index: index++ + }; + return $$.getArc(d, true, true); + }); + backgroundArc.exit().remove(); + } else { + backgroundArc.attr("d", showEmptyTextLabel ? "M 0 0" : () => { + const d = { + data: [{ value: config.gauge_max }], + startAngle, + endAngle + }; + return $$.getArc(d, true, true); + }); + } + }, + bindArcEvent(arc) { + const $$ = this; + const { config, state } = $$; + const isTouch = state.inputType === "touch"; + const isMouse = state.inputType === "mouse"; + function selectArc(_this, arcData, id) { + $$.expandArc(id); + $$.api.focus(id); + $$.toggleFocusLegend(id, true); + $$.showTooltip([arcData], _this); + } + function unselectArc(arcData) { + const id = (arcData == null ? void 0 : arcData.id) || void 0; + $$.unexpandArc(id); + $$.api.revert(); + $$.revertLegend(); + $$.hideTooltip(); + } + arc.on("click", function(event, d, i) { + var _a; + const updated = $$.updateAngle(d); + let arcData; + if (updated) { + arcData = $$.convertToArcData(updated); + (_a = $$.toggleShape) == null ? void 0 : _a.call($$, this, arcData, i); + config.data_onclick.bind($$.api)(arcData, this); + } + }); + if (isMouse) { + arc.on("mouseover", function(event, d) { + if (state.transiting) { + return; + } + state.event = event; + const updated = $$.updateAngle(d); + const arcData = updated ? $$.convertToArcData(updated) : null; + const id = (arcData == null ? void 0 : arcData.id) || void 0; + selectArc(this, arcData, id); + $$.setOverOut(true, arcData); + }).on("mouseout", (event, d) => { + if (state.transiting) { + return; + } + state.event = event; + const updated = $$.updateAngle(d); + const arcData = updated ? $$.convertToArcData(updated) : null; + unselectArc(); + $$.setOverOut(false, arcData); + }).on("mousemove", function(event, d) { + const updated = $$.updateAngle(d); + const arcData = updated ? $$.convertToArcData(updated) : null; + state.event = event; + $$.showTooltip([arcData], this); + }); + } + if (isTouch && $$.hasArcType() && !$$.radars) { + const getEventArc = (event) => { + var _a, _b; + const { clientX, clientY } = (_b = (_a = event.changedTouches) == null ? void 0 : _a[0]) != null ? _b : { clientX: 0, clientY: 0 }; + const eventArc = src_select(browser_doc.elementFromPoint(clientX, clientY)); + return eventArc; + }; + $$.$el.svg.on("touchstart touchmove", function(event) { + if (state.transiting) { + return; + } + state.event = event; + const eventArc = getEventArc(event); + const datum = eventArc.datum(); + const updated = (datum == null ? void 0 : datum.data) && datum.data.id ? $$.updateAngle(datum) : null; + const arcData = updated ? $$.convertToArcData(updated) : null; + const id = (arcData == null ? void 0 : arcData.id) || void 0; + $$.callOverOutForTouch(arcData); + isUndefined(id) ? unselectArc() : selectArc(this, arcData, id); + }); + } + }, + redrawArcText(duration) { + const $$ = this; + const { config, state, $el: { main, arcs } } = $$; + const hasGauge = $$.hasType("gauge"); + const hasMultiArcGauge = $$.hasMultiArcGauge(); + let text; + if (!(hasGauge && $$.data.targets.length === 1 && config.gauge_title)) { + text = main.selectAll(`.${$ARC.chartArc}`).select("text").style("opacity", "0").attr("class", (d) => $$.isGaugeType(d.data) ? $GAUGE.gaugeValue : null).call($$.textForArcLabel.bind($$)).attr("transform", (d) => $$.transformForArcLabel.bind($$)(d)).style("font-size", (d) => $$.isGaugeType(d.data) && $$.data.targets.length === 1 && !hasMultiArcGauge ? `${Math.round(state.radius / 5)}px` : null).transition().duration(duration).style( + "opacity", + (d) => $$.isTargetToShow(d.data.id) && $$.isArcType(d.data) ? null : "0" + ); + hasMultiArcGauge && text.attr("dy", "-.1em"); + } + main.select(`.${$ARC.chartArcsTitle}`).style("opacity", $$.hasType("donut") || hasGauge ? null : "0"); + if (hasGauge) { + const isFullCircle = config.gauge_fullCircle; + isFullCircle && (text == null ? void 0 : text.attr("dy", `${hasMultiArcGauge ? 0 : Math.round(state.radius / 14)}`)); + if (config.gauge_label_show) { + arcs.select(`.${$GAUGE.chartArcsGaugeUnit}`).attr("dy", `${isFullCircle ? 1.5 : 0.75}em`).text(config.gauge_units); + arcs.select(`.${$GAUGE.chartArcsGaugeMin}`).attr("dx", `${-1 * (state.innerRadius + (state.radius - state.innerRadius) / (isFullCircle ? 1 : 2))}px`).attr("dy", "1.2em").text($$.textForGaugeMinMax(config.gauge_min, false)); + !isFullCircle && arcs.select(`.${$GAUGE.chartArcsGaugeMax}`).attr("dx", `${state.innerRadius + (state.radius - state.innerRadius) / 2}px`).attr("dy", "1.2em").text($$.textForGaugeMinMax(config.gauge_max, true)); + } + } + }, + /** + * Get Arc element by id or index + * @param {string|number} value id or index of Arc + * @returns {d3Selection} Arc path element + * @private + */ + getArcElementByIdOrIndex(value) { + const $$ = this; + const { $el: { arcs } } = $$; + const filterFn = isNumber(value) ? (d) => d.index === value : (d) => d.data.id === value; + return arcs == null ? void 0 : arcs.selectAll(`.${$COMMON.target} path`).filter(filterFn); + } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/point.js +function point_x(p) { + return p[0]; +} +function point_y(p) { + return p[1]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/line.js + + + + + +/* harmony default export */ function src_line(x, y) { + var defined = d3_shape_src_constant(true), context = null, curve = curve_linear, output = null, path = withPath(line); + x = typeof x === "function" ? x : x === void 0 ? point_x : d3_shape_src_constant(x); + y = typeof y === "function" ? y : y === void 0 ? point_y : d3_shape_src_constant(y); + function line(data) { + var i, n = (data = d3_shape_src_array(data)).length, d, defined0 = false, buffer; + if (context == null) + output = curve(buffer = path()); + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) + output.lineStart(); + else + output.lineEnd(); + } + if (defined0) + output.point(+x(d, i, data), +y(d, i, data)); + } + if (buffer) + return output = null, buffer + "" || null; + } + line.x = function(_) { + return arguments.length ? (x = typeof _ === "function" ? _ : d3_shape_src_constant(+_), line) : x; + }; + line.y = function(_) { + return arguments.length ? (y = typeof _ === "function" ? _ : d3_shape_src_constant(+_), line) : y; + }; + line.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : d3_shape_src_constant(!!_), line) : defined; + }; + line.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve; + }; + line.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context; + }; + return line; +} + +;// CONCATENATED MODULE: ./node_modules/d3-shape/src/area.js + + + + + + +/* harmony default export */ function src_area(x0, y0, y1) { + var x1 = null, defined = d3_shape_src_constant(true), context = null, curve = curve_linear, output = null, path = withPath(area); + x0 = typeof x0 === "function" ? x0 : x0 === void 0 ? point_x : d3_shape_src_constant(+x0); + y0 = typeof y0 === "function" ? y0 : y0 === void 0 ? d3_shape_src_constant(0) : d3_shape_src_constant(+y0); + y1 = typeof y1 === "function" ? y1 : y1 === void 0 ? point_y : d3_shape_src_constant(+y1); + function area(data) { + var i, j, k, n = (data = d3_shape_src_array(data)).length, d, defined0 = false, buffer, x0z = new Array(n), y0z = new Array(n); + if (context == null) + output = curve(buffer = path()); + for (i = 0; i <= n; ++i) { + if (!(i < n && defined(d = data[i], i, data)) === defined0) { + if (defined0 = !defined0) { + j = i; + output.areaStart(); + output.lineStart(); + } else { + output.lineEnd(); + output.lineStart(); + for (k = i - 1; k >= j; --k) { + output.point(x0z[k], y0z[k]); + } + output.lineEnd(); + output.areaEnd(); + } + } + if (defined0) { + x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data); + output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]); + } + } + if (buffer) + return output = null, buffer + "" || null; + } + function arealine() { + return src_line().defined(defined).curve(curve).context(context); + } + area.x = function(_) { + return arguments.length ? (x0 = typeof _ === "function" ? _ : d3_shape_src_constant(+_), x1 = null, area) : x0; + }; + area.x0 = function(_) { + return arguments.length ? (x0 = typeof _ === "function" ? _ : d3_shape_src_constant(+_), area) : x0; + }; + area.x1 = function(_) { + return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : d3_shape_src_constant(+_), area) : x1; + }; + area.y = function(_) { + return arguments.length ? (y0 = typeof _ === "function" ? _ : d3_shape_src_constant(+_), y1 = null, area) : y0; + }; + area.y0 = function(_) { + return arguments.length ? (y0 = typeof _ === "function" ? _ : d3_shape_src_constant(+_), area) : y0; + }; + area.y1 = function(_) { + return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : d3_shape_src_constant(+_), area) : y1; + }; + area.lineX0 = area.lineY0 = function() { + return arealine().x(x0).y(y0); + }; + area.lineY1 = function() { + return arealine().x(x0).y(y1); + }; + area.lineX1 = function() { + return arealine().x(x1).y(y0); + }; + area.defined = function(_) { + return arguments.length ? (defined = typeof _ === "function" ? _ : d3_shape_src_constant(!!_), area) : defined; + }; + area.curve = function(_) { + return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve; + }; + area.context = function(_) { + return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context; + }; + return area; +} + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/area.ts + + + + +/* harmony default export */ var shape_area = ({ + initArea(mainLine) { + const $$ = this; + const { config } = $$; + mainLine.insert("g", `.${config.area_front ? $CIRCLE.circles : $LINE.lines}`).attr("class", $$.getClass("areas", true)); + }, + /** + * Update area color + * @param {object} d Data object + * @returns {string} Color string + * @private + */ + updateAreaColor(d) { + const $$ = this; + return $$.config.area_linearGradient ? $$.getGradienColortUrl(d.id) : $$.color(d); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateArea(withTransition, isSub = false) { + const $$ = this; + const { config, state, $el, $T } = $$; + const $root = isSub ? $el.subchart : $el; + config.area_linearGradient && $$.updateLinearGradient(); + const area = $root.main.selectAll(`.${$AREA.areas}`).selectAll(`.${$AREA.area}`).data($$.lineData.bind($$)); + $T(area.exit(), withTransition).style("opacity", "0").remove(); + $root.area = area.enter().append("path").attr("class", $$.getClass("area", true)).style("fill", $$.updateAreaColor.bind($$)).style("opacity", function() { + state.orgAreaOpacity = src_select(this).style("opacity"); + return "0"; + }).merge(area); + area.style("opacity", state.orgAreaOpacity); + $$.setRatioForGroupedData($root.area.data()); + }, + /** + * Redraw function + * @param {Function} drawFn Retuned functino from .generateDrawCandlestick() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + */ + redrawArea(drawFn, withTransition, isSub = false) { + const $$ = this; + const { area } = isSub ? this.$el.subchart : this.$el; + const { orgAreaOpacity } = $$.state; + return [ + $$.$T(area, withTransition, getRandom()).attr("d", drawFn).style("fill", $$.updateAreaColor.bind($$)).style( + "opacity", + (d) => String($$.isAreaRangeType(d) ? orgAreaOpacity / 1.75 : orgAreaOpacity) + ) + ]; + }, + /** + * Generate area path data + * @param {object} areaIndices Indices + * @param {boolean} isSub Weather is sub axis + * @returns {Function} + * @private + */ + generateDrawArea(areaIndices, isSub) { + const $$ = this; + const { config } = $$; + const lineConnectNull = config.line_connectNull; + const isRotated = config.axis_rotated; + const getPoints = $$.generateGetAreaPoints(areaIndices, isSub); + const yScale = $$.getYScaleById.bind($$); + const xValue = (d) => (isSub ? $$.subxx : $$.xx).call($$, d); + const value0 = (d, i) => $$.isGrouped(d.id) ? getPoints(d, i)[0][1] : yScale(d.id, isSub)( + $$.isAreaRangeType(d) ? $$.getRangedData(d, "high") : $$.getShapeYMin(d.id) + ); + const value1 = (d, i) => $$.isGrouped(d.id) ? getPoints(d, i)[1][1] : yScale(d.id, isSub)( + $$.isAreaRangeType(d) ? $$.getRangedData(d, "low") : d.value + ); + return (d) => { + let values = lineConnectNull ? $$.filterRemoveNull(d.values) : d.values; + let x0 = 0; + let y0 = 0; + let path; + if ($$.isAreaType(d)) { + let area = src_area(); + area = isRotated ? area.y(xValue).x0(value0).x1(value1) : area.x(xValue).y0(config.area_above ? 0 : config.area_below ? $$.state.height : value0).y1(value1); + if (!lineConnectNull) { + area = area.defined((d2) => $$.getBaseValue(d2) !== null); + } + if ($$.isStepType(d)) { + values = $$.convertValuesToStep(values); + } + path = area.curve($$.getCurve(d))(values); + } else { + if (values[0]) { + x0 = $$.scale.x(values[0].x); + y0 = $$.getYScaleById(d.id)(values[0].value); + } + path = isRotated ? `M ${y0} ${x0}` : `M ${x0} ${y0}`; + } + return path || "M 0 0"; + }; + }, + generateGetAreaPoints(areaIndices, isSub) { + const $$ = this; + const { config } = $$; + const x = $$.getShapeX(0, areaIndices, isSub); + const y = $$.getShapeY(!!isSub); + const areaOffset = $$.getShapeOffset($$.isAreaType, areaIndices, isSub); + const yScale = $$.getYScaleById.bind($$); + return function(d, i) { + const y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id)); + const offset = areaOffset(d, i) || y0; + const posX = x(d); + const value = d.value; + let posY = y(d); + if (config.axis_rotated && (value > 0 && posY < y0 || value < 0 && y0 < posY)) { + posY = y0; + } + return [ + [posX, offset], + [posX, posY - (y0 - offset)], + [posX, posY - (y0 - offset)], + // needed for compatibility + [posX, offset] + // needed for compatibility + ]; + }; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/bar.ts + + +/* harmony default export */ var bar = ({ + initBar() { + const { $el, config, state: { clip } } = this; + $el.bar = $el.main.select(`.${$COMMON.chart}`); + $el.bar = config.bar_front ? $el.bar.append("g") : $el.bar.insert("g", ":first-child"); + $el.bar.attr("class", $BAR.chartBars).call(this.setCssRule(false, `.${$BAR.chartBars}`, ["pointer-events:none"])); + if (config.clipPath === false && (config.bar_radius || config.bar_radius_ratio)) { + $el.bar.attr("clip-path", clip.pathXAxis.replace(/#[^)]*/, `#${clip.id}`)); + } + }, + updateTargetsForBar(targets) { + const $$ = this; + const { config, $el } = $$; + const classChartBar = $$.getChartClass("Bar"); + const classBars = $$.getClass("bars", true); + const classFocus = $$.classFocus.bind($$); + const isSelectable = config.interaction_enabled && config.data_selection_isselectable; + if (!$el.bar) { + $$.initBar(); + } + const mainBarUpdate = $el.main.select(`.${$BAR.chartBars}`).selectAll(`.${$BAR.chartBar}`).data( + // remove + targets.filter( + (v) => v.values.some((d) => isNumber(d.value) || $$.isBarRangeType(d)) + ) + ).attr("class", (d) => classChartBar(d) + classFocus(d)); + const mainBarEnter = mainBarUpdate.enter().append("g").attr("class", classChartBar).style("opacity", "0").style("pointer-events", $$.getStylePropValue("none")); + mainBarEnter.append("g").attr("class", classBars).style("cursor", (d) => { + var _a; + return ((_a = isSelectable == null ? void 0 : isSelectable.bind) == null ? void 0 : _a.call(isSelectable, $$.api)(d)) ? "pointer" : null; + }).call($$.setCssRule(true, ` .${$BAR.bar}`, ["fill"], $$.color)); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateBar(withTransition, isSub = false) { + const $$ = this; + const { config, $el, $T } = $$; + const $root = isSub ? $el.subchart : $el; + const classBar = $$.getClass("bar", true); + const initialOpacity = $$.initialOpacity.bind($$); + config.bar_linearGradient && $$.updateLinearGradient(); + const bar = $root.main.selectAll(`.${$BAR.bars}`).selectAll(`.${$BAR.bar}`).data($$.labelishData.bind($$)); + $T(bar.exit(), withTransition).style("opacity", "0").remove(); + $root.bar = bar.enter().append("path").attr("class", classBar).style("fill", $$.updateBarColor.bind($$)).merge(bar).style("opacity", initialOpacity); + $$.setRatioForGroupedData($root.bar.data()); + }, + /** + * Update bar color + * @param {object} d Data object + * @returns {string} Color string + * @private + */ + updateBarColor(d) { + const $$ = this; + const fn = $$.getStylePropValue($$.color); + return $$.config.bar_linearGradient ? $$.getGradienColortUrl(d.id) : fn ? fn(d) : null; + }, + /** + * Redraw function + * @param {Function} drawFn Retuned function from .getDrawShape() => .generateDrawBar() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + * @private + */ + redrawBar(drawFn, withTransition, isSub = false) { + const $$ = this; + const { bar } = isSub ? $$.$el.subchart : $$.$el; + return [ + $$.$T(bar, withTransition, getRandom()).attr("d", (d) => (isNumber(d.value) || $$.isBarRangeType(d)) && drawFn(d)).style("fill", $$.updateBarColor.bind($$)).style("opacity", null) + ]; + }, + /** + * Generate draw function + * @param {object} barIndices data order within x axis. + * barIndices ==> {data1: 0, data2: 0, data3: 1, data4: 1, __max__: 1} + * + * When gropus given as: + * groups: [ + * ["data1", "data2"], + * ["data3", "data4"] + * ], + * + * Will be rendered as: + * data1 data3 data1 data3 + * data2 data4 data2 data4 + * ------------------------- + * 0 1 + * @param {boolean} isSub If is for subchart + * @returns {Function} + * @private + */ + generateDrawBar(barIndices, isSub) { + const $$ = this; + const { config } = $$; + const getPoints = $$.generateGetBarPoints(barIndices, isSub); + const isRotated = config.axis_rotated; + const barRadius = config.bar_radius; + const barRadiusRatio = config.bar_radius_ratio; + const getRadius = isNumber(barRadius) && barRadius > 0 ? () => barRadius : isNumber(barRadiusRatio) ? (w) => w * barRadiusRatio : null; + return (d, i) => { + const points = getPoints(d, i); + const indexX = +isRotated; + const indexY = +!indexX; + const isUnderZero = d.value < 0; + const isInverted = config[`axis_${$$.axis.getId(d.id)}_inverted`]; + const isNegative = !isInverted && isUnderZero || isInverted && !isUnderZero; + const pathRadius = ["", ""]; + let radius = 0; + const isGrouped = $$.isGrouped(d.id); + const isRadiusData = getRadius && isGrouped ? $$.isStackingRadiusData(d) : false; + if (getRadius) { + const index = isRotated ? indexY : indexX; + const barW = points[2][index] - points[0][index]; + radius = !isGrouped || isRadiusData ? getRadius(barW) : 0; + const arc = `a${radius},${radius} ${isNegative ? `1 0 0` : `0 0 1`} `; + pathRadius[+!isRotated] = `${arc}${radius},${radius}`; + pathRadius[+isRotated] = `${arc}${[-radius, radius][isRotated ? "sort" : "reverse"]()}`; + isNegative && pathRadius.reverse(); + } + const path = isRotated ? `H${points[1][indexX] + (isNegative ? radius : -radius)} ${pathRadius[0]}V${points[2][indexY] - radius} ${pathRadius[1]}H${points[3][indexX]}` : `V${points[1][indexY] + (isNegative ? -radius : radius)} ${pathRadius[0]}H${points[2][indexX] - radius} ${pathRadius[1]}V${points[3][indexY]}`; + return `M${points[0][indexX]},${points[0][indexY]}${path}z`; + }; + }, + /** + * Determine if given stacking bar data is radius type + * @param {object} d Data row + * @returns {boolean} + */ + isStackingRadiusData(d) { + const $$ = this; + const { $el, config, data, state } = $$; + const { id, index, value } = d; + if (state.hiddenTargetIds.indexOf(id) > -1) { + const target = $el.bar.filter((d2) => d2.id === id && d2.value === value); + return !target.empty() && /a\d+/i.test(target.attr("d")); + } + const keys = config.data_groups.find((v) => v.indexOf(id) > -1); + const sortedList = $$.orderTargets( + $$.filterTargetsToShow(data.targets.filter($$.isBarType, $$)) + ).filter((v) => keys.indexOf(v.id) > -1); + const sortedIds = sortedList.map( + (v) => v.values.filter( + (v2) => v2.index === index && (isNumber(value) && value > 0 ? v2.value > 0 : v2.value < 0) + )[0] + ).filter(Boolean).map((v) => v.id); + return value !== 0 && sortedIds.indexOf(id) === sortedIds.length - 1; + }, + /** + * Generate bar coordinate points data + * @param {object} barIndices Data order within x axis. + * @param {boolean} isSub If is for subchart + * @returns {Array} Array of coordinate points + * @private + */ + generateGetBarPoints(barIndices, isSub) { + const $$ = this; + const { config } = $$; + const axis = isSub ? $$.axis.subX : $$.axis.x; + const barTargetsNum = $$.getIndicesMax(barIndices) + 1; + const barW = $$.getBarW("bar", axis, barTargetsNum); + const barX = $$.getShapeX(barW, barIndices, !!isSub); + const barY = $$.getShapeY(!!isSub); + const barOffset = $$.getShapeOffset($$.isBarType, barIndices, !!isSub); + const yScale = $$.getYScaleById.bind($$); + return (d, i) => { + const { id } = d; + const y0 = yScale.call($$, id, isSub)($$.getShapeYMin(id)); + const offset = barOffset(d, i) || y0; + const width = isNumber(barW) ? barW : barW[d.id] || barW._$width; + const isInverted = config[`axis_${$$.axis.getId(id)}_inverted`]; + const value = d.value; + const posX = barX(d); + let posY = barY(d); + if (config.axis_rotated && !isInverted && (value > 0 && posY < y0 || value < 0 && y0 < posY)) { + posY = y0; + } + if (!$$.isBarRangeType(d)) { + posY -= y0 - offset; + } + const startPosX = posX + width; + return [ + [posX, offset], + [posX, posY], + [startPosX, posY], + [startPosX, offset] + ]; + }; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/bubble.ts + + +/* harmony default export */ var bubble = ({ + /** + * Initializer + * @private + */ + initBubble() { + const $$ = this; + const { config } = $$; + if ($$.hasType("bubble")) { + config.point_show = true; + config.point_type = "circle"; + } + }, + /** + * Get user agent's computed value + * @returns {number} + * @private + */ + getBaseLength() { + const $$ = this; + const { width, height } = $$.state; + const cacheKey = KEY.bubbleBaseLength; + let baseLength = $$.cache.get(cacheKey); + if (!baseLength) { + $$.cache.add(cacheKey, baseLength = getMinMax("min", [width, height])); + } + return baseLength; + }, + /** + * Get the radius value for bubble circle + * @param {object} d Data object + * @returns {number} + * @private + */ + getBubbleR(d) { + const $$ = this; + let maxR = $$.config.bubble_maxR; + if (isFunction(maxR)) { + maxR = maxR.bind($$.api)(d); + } else if (!isNumber(maxR)) { + maxR = $$.getBaseLength() / ($$.getMaxDataCount() * 2) + 12; + } + const max = getMinMax("max", $$.getMinMaxData().max.map((d2) => $$.isBubbleZType(d2) ? $$.getBubbleZData(d2.value, "y") : isObject(d2.value) ? d2.value.mid : d2.value)); + const maxArea = maxR * maxR * Math.PI; + const area = ($$.isBubbleZType(d) ? $$.getBubbleZData(d.value, "z") : d.value) * (maxArea / max); + return Math.sqrt(area / Math.PI); + }, + /** + * Get bubble dimension data + * @param {object|Array} d data value + * @param {string} type - y or z + * @returns {number} + * @private + */ + getBubbleZData(d, type) { + return isObject(d) ? d[type] : d[type === "y" ? 0 : 1]; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/candlestick.ts +var candlestick_defProp = Object.defineProperty; +var candlestick_getOwnPropSymbols = Object.getOwnPropertySymbols; +var candlestick_hasOwnProp = Object.prototype.hasOwnProperty; +var candlestick_propIsEnum = Object.prototype.propertyIsEnumerable; +var candlestick_defNormalProp = (obj, key, value) => key in obj ? candlestick_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var candlestick_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (candlestick_hasOwnProp.call(b, prop)) + candlestick_defNormalProp(a, prop, b[prop]); + if (candlestick_getOwnPropSymbols) + for (var prop of candlestick_getOwnPropSymbols(b)) { + if (candlestick_propIsEnum.call(b, prop)) + candlestick_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + +/* harmony default export */ var candlestick = ({ + initCandlestick() { + const { $el } = this; + $el.candlestick = $el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $CANDLESTICK.chartCandlesticks); + }, + /** + * Update targets by its data + * called from: ChartInternal.updateTargets() + * @param {Array} targets Filtered target by type + * @private + */ + updateTargetsForCandlestick(targets) { + const $$ = this; + const { $el } = $$; + const classChart = $$.getChartClass("Candlestick"); + if (!$el.candlestick) { + $$.initCandlestick(); + } + const mainUpdate = $$.$el.main.select(`.${$CANDLESTICK.chartCandlesticks}`).selectAll(`.${$CANDLESTICK.chartCandlestick}`).data(targets); + mainUpdate.enter().append("g").attr("class", classChart).style("pointer-events", "none"); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateCandlestick(withTransition, isSub = false) { + const $$ = this; + const { $el, $T } = $$; + const $root = isSub ? $el.subchart : $el; + const classSetter = $$.getClass("candlestick", true); + const initialOpacity = $$.initialOpacity.bind($$); + const candlestick = $root.main.selectAll(`.${$CANDLESTICK.chartCandlestick}`).selectAll(`.${$CANDLESTICK.candlestick}`).data($$.labelishData.bind($$)); + $T(candlestick.exit(), withTransition).style("opacity", "0").remove(); + const candlestickEnter = candlestick.enter().filter((d) => d.value).append("g").attr("class", classSetter); + candlestickEnter.append("line"); + candlestickEnter.append("path"); + $root.candlestick = candlestick.merge(candlestickEnter).style("opacity", initialOpacity); + }, + /** + * Get draw function + * @param {object} indices Indice data + * @param {boolean} isSub Subchart draw + * @returns {Function} + * @private + */ + generateDrawCandlestick(indices, isSub) { + const $$ = this; + const { config } = $$; + const getPoints = $$.generateGetCandlestickPoints(indices, isSub); + const isRotated = config.axis_rotated; + const downColor = config.candlestick_color_down; + return (d, i, g) => { + const points = getPoints(d, i); + const value = $$.getCandlestickData(d); + const isUp = value == null ? void 0 : value._isUp; + const indexX = +isRotated; + const indexY = +!indexX; + if (g.classed) { + g.classed($CANDLESTICK[isUp ? "valueUp" : "valueDown"], true); + } + const path = isRotated ? `H${points[1][1]} V${points[1][0]} H${points[0][1]}` : `V${points[1][1]} H${points[1][0]} V${points[0][1]}`; + g.select("path").attr("d", `M${points[0][indexX]},${points[0][indexY]}${path}z`).style("fill", (d2) => { + const color = isUp ? $$.color(d2) : isObject(downColor) ? downColor[d2.id] : downColor; + return color || $$.color(d2); + }); + const line = g.select("line"); + const pos = isRotated ? { + x1: points[2][1], + x2: points[2][2], + y1: points[2][0], + y2: points[2][0] + } : { + x1: points[2][0], + x2: points[2][0], + y1: points[2][1], + y2: points[2][2] + }; + for (const x in pos) { + line.attr(x, pos[x]); + } + }; + }, + /** + * Generate shape drawing points + * @param {object} indices Indice data + * @param {boolean} isSub Subchart draw + * @returns {Function} + */ + generateGetCandlestickPoints(indices, isSub = false) { + const $$ = this; + const axis = isSub ? $$.axis.subX : $$.axis.x; + const targetsNum = $$.getIndicesMax(indices) + 1; + const barW = $$.getBarW("candlestick", axis, targetsNum); + const x = $$.getShapeX(barW, indices, !!isSub); + const y = $$.getShapeY(!!isSub); + const shapeOffset = $$.getShapeOffset($$.isBarType, indices, !!isSub); + const yScale = $$.getYScaleById.bind($$); + return (d, i) => { + const y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id)); + const offset = shapeOffset(d, i) || y0; + const width = isNumber(barW) ? barW : barW[d.id] || barW._$width; + const value = $$.getCandlestickData(d); + let points; + if (value && isNumber(value.open) && isNumber(value.close)) { + const posX = { + start: x(d), + end: 0 + }; + posX.end = posX.start + width; + const posY = { + start: y(value.open), + end: y(value.close) + }; + const posLine = { + x: posX.start + width / 2, + high: y(value.high), + low: y(value.low) + }; + posY.start -= y0 - offset; + points = [ + [posX.start, posY.start], + [posX.end, posY.end], + [posLine.x, posLine.low, posLine.high] + ]; + } else { + points = [[0, 0], [0, 0], [0, 0, 0]]; + } + return points; + }; + }, + /** + * Redraw function + * @param {Function} drawFn Retuned functino from .generateDrawCandlestick() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + */ + redrawCandlestick(drawFn, withTransition, isSub = false) { + const $$ = this; + const { $el, $T } = $$; + const { candlestick } = isSub ? $el.subchart : $el; + const rand = getRandom(true); + return [ + candlestick.each(function(d, i) { + const g = $T(src_select(this), withTransition, rand); + drawFn(d, i, g); + }).style("opacity", null) + ]; + }, + /** + * Get candlestick data as object + * @param {object} param Data object + * @param {Array|object} param.value Data value + * @returns {object|null} Converted data object + * @private + */ + getCandlestickData({ value }) { + let d; + if (isArray(value)) { + const [open, high, low, close, volume = false] = value; + d = { open, high, low, close }; + if (volume !== false) { + d.volume = volume; + } + } else if (isObject(value)) { + d = candlestick_spreadValues({}, value); + } + if (d) { + d._isUp = d.close >= d.open; + } + return d || null; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/funnel.ts +var funnel_defProp = Object.defineProperty; +var funnel_getOwnPropSymbols = Object.getOwnPropertySymbols; +var funnel_hasOwnProp = Object.prototype.hasOwnProperty; +var funnel_propIsEnum = Object.prototype.propertyIsEnumerable; +var funnel_defNormalProp = (obj, key, value) => key in obj ? funnel_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var funnel_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (funnel_hasOwnProp.call(b, prop)) + funnel_defNormalProp(a, prop, b[prop]); + if (funnel_getOwnPropSymbols) + for (var prop of funnel_getOwnPropSymbols(b)) { + if (funnel_propIsEnum.call(b, prop)) + funnel_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + +function getSize(checkNeck = false) { + const $$ = this; + const { config, state: { current: { width, height } } } = $$; + const padding = $$.getCurrentPadding(); + const size = funnel_spreadValues({ + width: width - (padding.left + padding.right), + height: height - (config.legend_show ? $$.getLegendHeight() + 10 : 0) - (padding.top + padding.bottom) + }, padding); + if (checkNeck) { + const { width: neckWidth, height: neckHeight } = getNecklSize.call($$, { + width: size.width, + height: size.height + }); + if (size.width < neckWidth) { + size.width = neckWidth; + } + if (size.height < neckHeight) { + size.height = neckHeight; + } + } + return size; +} +function getNecklSize(current) { + const $$ = this; + const { config } = $$; + let width = config.funnel_neck_width; + let height = config.funnel_neck_height; + [width, height] = [width, height].map((v, i) => { + let size = v; + if (isObject(v)) { + size = current[i ? "height" : "width"] * v.ratio; + } + return size; + }); + return { + width, + height + }; +} +function getCoord(d) { + const $$ = this; + const { top, left, width } = getSize.call($$, true); + const coords = []; + d.forEach((d2, i) => { + const { ratio } = d2; + const y = i > 0 ? coords[i - 1][2][1] : top; + coords.push(d2.coords = [ + [left, y], + // M + [left + width, y], + // 1 + [left + width, i > 0 ? ratio + y : ratio + top], + // 2 + [left, i > 0 ? ratio + y : ratio + top], + // 3 + [left, y] + // 4 + ]); + }); + return coords; +} +function getClipPath(forBackground = false) { + const $$ = this; + const { width, height, top, left } = getSize.call($$, true); + const neck = getNecklSize.call($$, { width, height }); + const leftX = (width - neck.width) / 2; + const rightX = (width + neck.width) / 2; + const bodyHeigth = height - neck.height; + const coords = [ + [0, 0], + // M + [width, 0], + // 1 + [rightX, bodyHeigth], + // 2 + [rightX, height], + // 3 + [leftX, height], + // 4 + [leftX, bodyHeigth], + // 5 + [0, 0] + // 6 + ]; + if (forBackground) { + coords.forEach((d) => { + d[0] += left; + d[1] += top; + }); + } + return `M${coords.join("L")}z`; +} +function getFunnelData(d) { + const $$ = this; + const { config } = $$; + const data = d.map((d2) => ({ + id: d2.id, + value: d2.values.reduce((a, b) => a + b.value, 0) + })); + if (config.data_order) { + data.sort($$.getSortCompareFn.bind($$)(true)); + } + return updateRatio.call($$, data); +} +function updateRatio(data) { + const $$ = this; + const { height } = getSize.call($$); + const total = $$.getTotalDataSum(true); + data.forEach((d) => { + d.ratio = d.value / total * height; + }); + return data; +} +/* harmony default export */ var funnel = ({ + /** + * Initialize polar + * @private + */ + initFunnel() { + const $$ = this; + const { $el } = $$; + $el.funnel = $el.main.select(`.${$COMMON.chart}`).append("g").classed($FUNNEL.chartFunnels, true); + $el.funnel.background = $el.funnel.append("path").classed($FUNNEL.funnelBackground, true); + $$.bindFunnelEvent(); + }, + /** + * Bind events + * @private + */ + bindFunnelEvent() { + const $$ = this; + const { $el: { funnel }, config, state } = $$; + const getTarget = (event) => { + var _a; + const target = event.isTrusted ? event.target : (_a = state.eventReceiver.rect) == null ? void 0 : _a.node(); + let data; + if (/^path$/i.test(target.tagName)) { + state.event = event; + data = src_select(target).datum(); + } + return data; + }; + if (config.interaction_enabled) { + const isTouch = state.inputType === "touch"; + funnel.on(isTouch ? "touchstart" : "mouseover mousemove", (event) => { + const data = getTarget(event); + if (data) { + $$.showTooltip([data], event.target); + /^(touchstart|mouseover)$/.test(event.type) && $$.setOverOut(true, data); + } + }).on(isTouch ? "touchend" : "mouseout", (event) => { + const data = getTarget(event); + $$.hideTooltip(); + $$.setOverOut(false, data); + }); + } + }, + /** + * Update polar based on given data array + * @param {object} t Data object + * @private + */ + updateTargetsForFunnel(t) { + const $$ = this; + const { $el: { funnel } } = $$; + const classChartFunnel = $$.getChartClass("Funnel"); + const classFunnel = $$.getClass("funnel", true); + if (!funnel) { + $$.initFunnel(); + } + const targets = getFunnelData.call($$, t.filter($$.isFunnelType.bind($$))); + const mainFunnelUpdate = funnel.selectAll(`.${$FUNNEL.chartFunnel}`).data(targets); + mainFunnelUpdate.exit().remove(); + const mainFunnelEnter = mainFunnelUpdate.enter().insert("g", `.${$FUNNEL.funnelBackground}`); + mainFunnelEnter.append("path"); + funnel.path = mainFunnelEnter.merge(mainFunnelUpdate).attr("class", (d) => classChartFunnel(d)).select("path").attr("class", classFunnel).style("opacity", "0").style("fill", $$.color); + }, + /** + * Update funnel path selection + * @param {object} targets Updated target data + * @private + */ + updateFunnel(targets) { + const $$ = this; + const { $el: { funnel } } = $$; + const targetIds = targets.map(({ id }) => id); + funnel.path = funnel.path.filter((d) => targetIds.indexOf(d.id) >= 0); + }, + /** + * Generate treemap coordinate points data + * @returns {Array} Array of coordinate points + * @private + */ + generateGetFunnelPoints() { + const $$ = this; + const { $el: { funnel } } = $$; + const targets = $$.filterTargetsToShow(funnel.path); + const { top, left, right } = getSize.call($$); + const center = (left - right) / 2; + const points = {}; + let accumulatedHeight = top != null ? top : 0; + targets.each((d, i) => { + var _a; + points[d.id] = [ + [center, accumulatedHeight], + [center, accumulatedHeight += ((_a = targets == null ? void 0 : targets[i]) != null ? _a : d).ratio] + ]; + }); + return (d) => points[d.id]; + }, + /** + * Called whenever redraw happens + * @private + */ + redrawFunnel() { + const $$ = this; + const { $T, $el: { funnel } } = $$; + const targets = $$.filterTargetsToShow(funnel.path); + const coords = getCoord.call($$, updateRatio.call($$, targets.data())); + funnel.attr("clip-path", `path('${getClipPath.bind($$)()}')`); + funnel.background.attr("d", getClipPath.call($$, true)); + $T(targets).attr("d", (d, i) => `M${coords[i].join("L")}z`).style("opacity", "1"); + funnel.selectAll("g").style("opacity", null); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/gauge.ts + + + +/* harmony default export */ var gauge = ({ + initGauge() { + const $$ = this; + const { config, $el: { arcs } } = $$; + const appendText = (className = null, value = "") => { + arcs.append("text").attr("class", className).style("text-anchor", "middle").style("pointer-events", "none").text(value); + }; + if ($$.hasType("gauge")) { + const hasMulti = $$.hasMultiArcGauge(); + arcs.append(hasMulti ? "g" : "path").attr("class", $ARC.chartArcsBackground).style("fill", !hasMulti && config.gauge_background || null); + config.gauge_units && appendText($GAUGE.chartArcsGaugeUnit); + if (config.gauge_label_show) { + appendText($GAUGE.chartArcsGaugeMin); + !config.gauge_fullCircle && appendText($GAUGE.chartArcsGaugeMax); + } + } + }, + updateGaugeMax() { + const $$ = this; + const { config, state } = $$; + const hasMultiGauge = $$.hasMultiArcGauge(); + const max = hasMultiGauge ? $$.getMinMaxData().max[0].value : $$.getTotalDataSum(state.rendered); + if (!config.gauge_enforceMinMax && max + config.gauge_min * (config.gauge_min > 0 ? -1 : 1) > config.gauge_max) { + config.gauge_max = max - config.gauge_min; + } + }, + redrawArcGaugeLine() { + const $$ = this; + const { config, state, $el } = $$; + const { hiddenTargetIds } = $$.state; + const arcLabelLines = $el.main.selectAll(`.${$ARC.arcs}`).selectAll(`.${$ARC.arcLabelLine}`).data($$.arcData.bind($$)); + const mainArcLabelLine = arcLabelLines.enter().append("rect").attr( + "class", + (d) => `${$ARC.arcLabelLine} ${$COMMON.target} ${$COMMON.target}-${d.data.id}` + ).merge(arcLabelLines); + mainArcLabelLine.style( + "fill", + (d) => $$.levelColor ? $$.levelColor(d.data.values[0].value) : $$.color(d.data) + ).style("display", config.gauge_label_show ? null : "none").each(function(d) { + let lineLength = 0; + const lineThickness = 2; + let x = 0; + let y = 0; + let transform = ""; + if (hiddenTargetIds.indexOf(d.data.id) < 0) { + const updated = $$.updateAngle(d); + const innerLineLength = state.gaugeArcWidth / $$.filterTargetsToShow($$.data.targets).length * (updated.index + 1); + const lineAngle = updated.endAngle - Math.PI / 2; + const arcInnerRadius = state.radius - innerLineLength; + const linePositioningAngle = lineAngle - (arcInnerRadius === 0 ? 0 : 1 / arcInnerRadius); + lineLength = state.radiusExpanded - state.radius + innerLineLength; + x = Math.cos(linePositioningAngle) * arcInnerRadius; + y = Math.sin(linePositioningAngle) * arcInnerRadius; + transform = `rotate(${lineAngle * 180 / Math.PI}, ${x}, ${y})`; + } + src_select(this).attr("x", x).attr("y", y).attr("width", lineLength).attr("height", lineThickness).attr("transform", transform).style("stroke-dasharray", `0, ${lineLength + lineThickness}, 0`); + }); + }, + textForGaugeMinMax(value, isMax) { + const $$ = this; + const { config } = $$; + const format = config.gauge_label_extents; + return isFunction(format) ? format.bind($$.api)(value, isMax) : value; + }, + getGaugeLabelHeight() { + const { config } = this; + return this.config.gauge_label_show && !config.gauge_fullCircle ? 20 : 0; + }, + getPaddingBottomForGauge() { + const $$ = this; + return $$.getGaugeLabelHeight() * ($$.config.gauge_label_show ? 2 : 2.5); + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/line.ts + + + + +/* harmony default export */ var line = ({ + initLine() { + const { $el } = this; + $el.line = $el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $LINE.chartLines).call(this.setCssRule(false, `.${$LINE.chartLines}`, ["pointer-events:none"])); + }, + updateTargetsForLine(t) { + const $$ = this; + const { $el: { area, line, main } } = $$; + const classChartLine = $$.getChartClass("Line"); + const classLines = $$.getClass("lines", true); + const classFocus = $$.classFocus.bind($$); + if (!line) { + $$.initLine(); + } + const targets = t.filter((d) => !($$.isScatterType(d) || $$.isBubbleType(d))); + const mainLineUpdate = main.select(`.${$LINE.chartLines}`).selectAll(`.${$LINE.chartLine}`).data(targets).attr("class", (d) => classChartLine(d) + classFocus(d)); + const mainLineEnter = mainLineUpdate.enter().append("g").attr("class", classChartLine).style("opacity", "0").style("pointer-events", $$.getStylePropValue("none")); + mainLineEnter.append("g").attr("class", classLines); + if ($$.hasTypeOf("Area")) { + const mainLine = (!area && mainLineEnter.empty() ? mainLineUpdate : mainLineEnter).filter($$.isAreaType.bind($$)); + $$.initArea(mainLine); + } + $$.updateTargetForCircle(targets, mainLineEnter); + }, + /** + * Generate/Update elements + * @param {boolean} withTransition Transition for exit elements + * @param {boolean} isSub Subchart draw + * @private + */ + updateLine(withTransition, isSub = false) { + const $$ = this; + const { format: { extraLineClasses }, $el, $T } = $$; + const $root = isSub ? $el.subchart : $el; + const line = $root.main.selectAll(`.${$LINE.lines}`).selectAll(`.${$LINE.line}`).data($$.lineData.bind($$)); + $T(line.exit(), withTransition).style("opacity", "0").remove(); + $root.line = line.enter().append("path").attr("class", (d) => `${$$.getClass("line", true)(d)} ${extraLineClasses(d) || ""}`).style("stroke", $$.color).merge(line).style("opacity", $$.initialOpacity.bind($$)).attr("transform", null); + }, + /** + * Redraw function + * @param {Function} drawFn Retuned functino from .generateDrawCandlestick() + * @param {boolean} withTransition With or without transition + * @param {boolean} isSub Subchart draw + * @returns {Array} + */ + redrawLine(drawFn, withTransition, isSub = false) { + const $$ = this; + const { $el, $T } = $$; + const { line } = isSub ? $el.subchart : $el; + return [ + $T(line, withTransition, getRandom()).attr("d", drawFn).style("stroke", this.color).style("opacity", null) + ]; + }, + /** + * Get the curve interpolate + * @param {Array} d Data object + * @returns {Function} + * @private + */ + getCurve(d) { + const $$ = this; + const isRotatedStepType = $$.config.axis_rotated && $$.isStepType(d); + return isRotatedStepType ? (context) => { + const step = $$.getInterpolate(d)(context); + step.orgPoint = step.point; + step.pointRotated = function(x, y) { + this._point === 1 && (this._point = 2); + const y1 = this._y * (1 - this._t) + y * this._t; + this._context.lineTo(this._x, y1); + this._context.lineTo(x, y1); + this._x = x; + this._y = y; + }; + step.point = function(x, y) { + this._point === 0 ? this.orgPoint(x, y) : this.pointRotated(x, y); + }; + return step; + } : $$.getInterpolate(d); + }, + generateDrawLine(lineIndices, isSub) { + const $$ = this; + const { config, scale } = $$; + const lineConnectNull = config.line_connectNull; + const isRotated = config.axis_rotated; + const getPoints = $$.generateGetLinePoints(lineIndices, isSub); + const yScale = $$.getYScaleById.bind($$); + const xValue = (d) => (isSub ? $$.subxx : $$.xx).call($$, d); + const yValue = (d, i) => $$.isGrouped(d.id) ? getPoints(d, i)[0][1] : yScale(d.id, isSub)($$.getBaseValue(d)); + let line = src_line(); + line = isRotated ? line.x(yValue).y(xValue) : line.x(xValue).y(yValue); + if (!lineConnectNull) { + line = line.defined((d) => $$.getBaseValue(d) !== null); + } + const x = isSub ? scale.subX : scale.x; + return (d) => { + const y = yScale(d.id, isSub); + let values = lineConnectNull ? $$.filterRemoveNull(d.values) : d.values; + let x0 = 0; + let y0 = 0; + let path; + if ($$.isLineType(d)) { + const regions = config.data_regions[d.id]; + if (regions) { + path = $$.lineWithRegions(values, scale.zoom || x, y, regions); + } else { + if ($$.isStepType(d)) { + values = $$.convertValuesToStep(values); + } + path = line.curve($$.getCurve(d))(values); + } + } else { + if (values[0]) { + x0 = x(values[0].x); + y0 = y(values[0].value); + } + path = isRotated ? `M ${y0} ${x0}` : `M ${x0} ${y0}`; + } + return path || "M 0 0"; + }; + }, + lineWithRegions(d, x, y, _regions) { + const $$ = this; + const { config } = $$; + const isRotated = config.axis_rotated; + const isTimeSeries = $$.axis.isTimeSeries(); + const regions = []; + const dasharray = "2 2"; + let xp; + let yp; + let diff; + let diffx2; + if (isDefined(_regions)) { + const getValue = (v, def) => isUndefined(v) ? def : isTimeSeries ? parseDate.call($$, v) : v; + for (let i = 0, reg; reg = _regions[i]; i++) { + const start = getValue(reg.start, d[0].x); + const end = getValue(reg.end, d[d.length - 1].x); + const style = reg.style || { dasharray }; + regions[i] = { start, end, style }; + } + } + const xValue = isRotated ? (dt) => y(dt.value) : (dt) => x(dt.x); + const yValue = isRotated ? (dt) => x(dt.x) : (dt) => y(dt.value); + const generateM = (points) => `M${points[0][0]},${points[0][1]}L${points[1][0]},${points[1][1]}`; + const sWithRegion = isTimeSeries ? (d0, d1, k, timeseriesDiff) => { + const x0 = d0.x.getTime(); + const xDiff = d1.x - d0.x; + const xv0 = new Date(x0 + xDiff * k); + const xv1 = new Date(x0 + xDiff * (k + timeseriesDiff)); + const points = isRotated ? [[y(yp(k)), x(xv0)], [y(yp(k + diff)), x(xv1)]] : [[x(xv0), y(yp(k))], [x(xv1), y(yp(k + diff))]]; + return generateM(points); + } : (d0, d1, k, otherDiff) => { + const points = isRotated ? [[y(yp(k), true), x(xp(k))], [ + y(yp(k + otherDiff), true), + x(xp(k + otherDiff)) + ]] : [[x(xp(k), true), y(yp(k))], [ + x(xp(k + otherDiff), true), + y(yp(k + otherDiff)) + ]]; + return generateM(points); + }; + const axisType = { x: $$.axis.getAxisType("x"), y: $$.axis.getAxisType("y") }; + let path = ""; + for (let i = 0, data; data = d[i]; i++) { + const prevData = d[i - 1]; + const hasPrevData = prevData && isValue(prevData.value); + let style = $$.isWithinRegions(data.x, regions); + if (!isValue(data.value)) { + continue; + } + if (isUndefined(regions) || !style || !hasPrevData) { + path += `${i && hasPrevData ? "L" : "M"}${xValue(data)},${yValue(data)}`; + } else if (hasPrevData) { + try { + style = style.dasharray.split(" "); + } catch (e) { + style = dasharray.split(" "); + } + xp = getScale(axisType.x, prevData.x, data.x); + yp = getScale(axisType.y, prevData.value, data.value); + const dx = x(data.x) - x(prevData.x); + const dy = y(data.value) - y(prevData.value); + const dd = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2)); + diff = style[0] / dd; + diffx2 = diff * style[1]; + for (let j = diff; j <= 1; j += diffx2) { + path += sWithRegion(prevData, data, j, diff); + if (j + diffx2 >= 1) { + path += sWithRegion(prevData, data, 1, 0); + } + } + } + } + return path; + }, + isWithinRegions(withinX, withinRegions) { + for (let i = 0, reg; reg = withinRegions[i]; i++) { + if (reg.start < withinX && withinX <= reg.end) { + return reg.style; + } + } + return false; + }, + isWithinStep(that, y) { + return Math.abs(y - getPointer(this.state.event, that)[1]) < 30; + }, + shouldDrawPointsForLine(d) { + const linePoint = this.config.line_point; + return linePoint === true || isArray(linePoint) && linePoint.indexOf(d.id) !== -1; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/point.ts + + + +const getTransitionName = () => getRandom(); +/* harmony default export */ var shape_point = ({ + initialOpacityForCircle(d) { + const { config, state: { withoutFadeIn } } = this; + let opacity = config.point_opacity; + if (isUndefined(opacity)) { + opacity = this.getBaseValue(d) !== null && withoutFadeIn[d.id] ? this.opacityForCircle(d) : "0"; + } + return opacity; + }, + opacityForCircle(d) { + var _a; + const { config } = this; + let opacity = config.point_opacity; + if (isUndefined(opacity)) { + opacity = config.point_show && !((_a = this.isPointFocusOnly) == null ? void 0 : _a.call(this)) ? null : "0"; + opacity = isValue(this.getBaseValue(d)) ? this.isBubbleType(d) || this.isScatterType(d) ? "0.5" : opacity : "0"; + } + return opacity; + }, + initCircle() { + const $$ = this; + const { $el: { main } } = $$; + !$$.point && ($$.point = $$.generatePoint()); + if (($$.hasType("bubble") || $$.hasType("scatter")) && main.select(`.${$COMMON.chart} > .${$CIRCLE.chartCircles}`).empty()) { + main.select(`.${$COMMON.chart}`).append("g").attr("class", $CIRCLE.chartCircles); + } + }, + updateTargetForCircle(targetsValue, enterNodeValue) { + const $$ = this; + const { config, data, $el } = $$; + const selectionEnabled = config.interaction_enabled && config.data_selection_enabled; + const isSelectable = selectionEnabled && config.data_selection_isselectable; + const classCircles = $$.getClass("circles", true); + if (!config.point_show) { + return; + } + $$.initCircle(); + let targets = targetsValue; + let enterNode = enterNodeValue; + if (!targets) { + targets = data.targets.filter((d) => this.isScatterType(d) || this.isBubbleType(d)); + const mainCircle = $el.main.select(`.${$CIRCLE.chartCircles}`).style("pointer-events", "none").selectAll(`.${$CIRCLE.circles}`).data(targets); + mainCircle.exit().remove(); + enterNode = mainCircle.enter(); + } + selectionEnabled && enterNode.append("g").attr("class", (d) => $$.generateClass($SELECT.selectedCircles, d.id)); + enterNode.append("g").attr("class", classCircles).call((selection) => { + $$.setCssRule(true, `.${$CIRCLE.circles}`, ["cursor:pointer"], isSelectable)( + selection + ); + $$.setCssRule(true, ` .${$CIRCLE.circle}`, ["fill", "stroke"], $$.color)(selection); + }).style("opacity", function() { + const parent = src_select(this.parentNode); + return parent.attr("class").indexOf($CIRCLE.chartCircles) > -1 ? "0" : null; + }); + selectionEnabled && targets.forEach((t) => { + $el.main.selectAll(`.${$SELECT.selectedCircles}${$$.getTargetSelectorSuffix(t.id)}`).selectAll(`${$SELECT.selectedCircle}`).each((d) => { + d.value = t.values[d.index].value; + }); + }); + }, + updateCircle(isSub = false) { + const $$ = this; + const { config, state, $el } = $$; + const focusOnly = $$.isPointFocusOnly(); + const $root = isSub ? $el.subchart : $el; + if (config.point_show && !state.toggling) { + config.point_radialGradient && $$.updateLinearGradient(); + const circles = $root.main.selectAll(`.${$CIRCLE.circles}`).selectAll(`.${$CIRCLE.circle}`).data((d) => $$.isLineType(d) && $$.shouldDrawPointsForLine(d) || $$.isBubbleType(d) || $$.isRadarType(d) || $$.isScatterType(d) ? focusOnly ? [d.values[0]] : d.values : []); + circles.exit().remove(); + circles.enter().filter(Boolean).append( + $$.point("create", this, $$.pointR.bind($$), $$.updateCircleColor.bind($$)) + ); + $root.circle = $root.main.selectAll(`.${$CIRCLE.circles} .${$CIRCLE.circle}`).style("stroke", $$.getStylePropValue($$.color)).style("opacity", $$.initialOpacityForCircle.bind($$)); + } + }, + /** + * Update circle color + * @param {object} d Data object + * @returns {string} Color string + * @private + */ + updateCircleColor(d) { + const $$ = this; + const fn = $$.getStylePropValue($$.color); + return $$.config.point_radialGradient ? $$.getGradienColortUrl(d.id) : fn ? fn(d) : null; + }, + redrawCircle(cx, cy, withTransition, flow, isSub = false) { + const $$ = this; + const { state: { rendered }, $el, $T } = $$; + const $root = isSub ? $el.subchart : $el; + const selectedCircles = $root.main.selectAll(`.${$SELECT.selectedCircle}`); + if (!$$.config.point_show) { + return []; + } + const fn = $$.point( + "update", + $$, + cx, + cy, + $$.updateCircleColor.bind($$), + withTransition, + flow, + selectedCircles + ); + const posAttr = $$.isCirclePoint() ? "c" : ""; + const t = getRandom(); + const opacityStyleFn = $$.opacityForCircle.bind($$); + const mainCircles = []; + $root.circle.each(function(d) { + let result = fn.bind(this)(d); + result = $T(result, withTransition || !rendered, t).style("opacity", opacityStyleFn); + mainCircles.push(result); + }); + return [ + mainCircles, + $T(selectedCircles, withTransition).attr(`${posAttr}x`, cx).attr(`${posAttr}y`, cy) + ]; + }, + /** + * Show focused data point circle + * @param {object} d Selected data + * @private + */ + showCircleFocus(d) { + const $$ = this; + const { state: { hasRadar, resizing, toggling, transiting }, $el } = $$; + let { circle } = $el; + if (transiting === false && circle && $$.isPointFocusOnly()) { + const cx = (hasRadar ? $$.radarCircleX : $$.circleX).bind($$); + const cy = (hasRadar ? $$.radarCircleY : $$.circleY).bind($$); + const withTransition = toggling || isUndefined(d); + const fn = $$.point( + "update", + $$, + cx, + cy, + $$.getStylePropValue($$.color), + resizing ? false : withTransition + ); + if (d) { + circle = circle.filter(function(t) { + var _a; + const data = (_a = d.filter) == null ? void 0 : _a.call(d, (v) => v.id === t.id); + return data.length ? src_select(this).datum(data[0]) : false; + }); + } + circle.attr("class", this.updatePointClass.bind(this)).style("opacity", null).each(function(d2) { + const { id, index, value } = d2; + let visibility = "hidden"; + if (isValue(value)) { + fn.bind(this)(d2); + $$.expandCircles(index, id); + visibility = ""; + } + this.style.visibility = visibility; + }); + } + }, + /** + * Hide focused data point circle + * @private + */ + hideCircleFocus() { + const $$ = this; + const { $el: { circle } } = $$; + if ($$.isPointFocusOnly() && circle) { + $$.unexpandCircles(); + circle.style("visibility", "hidden"); + } + }, + circleX(d) { + return this.xx(d); + }, + updateCircleY(isSub = false) { + const $$ = this; + const getPoints = $$.generateGetLinePoints($$.getShapeIndices($$.isLineType), isSub); + return (d, i) => { + const id = d.id; + return $$.isGrouped(id) ? getPoints(d, i)[0][1] : $$.getYScaleById(id, isSub)($$.getBaseValue(d)); + }; + }, + expandCircles(i, id, reset) { + const $$ = this; + const r = $$.pointExpandedR.bind($$); + reset && $$.unexpandCircles(); + const circles = $$.getShapeByIndex("circle", i, id).classed($COMMON.EXPANDED, true); + const scale = r(circles) / $$.config.point_r; + const ratio = 1 - scale; + if ($$.isCirclePoint()) { + circles.attr("r", r); + } else { + circles.each(function() { + const point = src_select(this); + if (this.tagName === "circle") { + point.attr("r", r); + } else { + const { width, height } = this.getBBox(); + const x = ratio * (+point.attr("x") + width / 2); + const y = ratio * (+point.attr("y") + height / 2); + point.attr("transform", `translate(${x} ${y}) scale(${scale})`); + } + }); + } + }, + unexpandCircles(i) { + const $$ = this; + const r = $$.pointR.bind($$); + const circles = $$.getShapeByIndex("circle", i).filter(function() { + return src_select(this).classed($COMMON.EXPANDED); + }).classed($COMMON.EXPANDED, false); + circles.attr("r", r); + if (!$$.isCirclePoint()) { + const scale = r(circles) / $$.config.point_r; + circles.attr("transform", scale !== 1 ? `scale(${scale})` : null); + } + }, + pointR(d) { + const $$ = this; + const { config } = $$; + const pointR = config.point_r; + let r = pointR; + if ($$.isBubbleType(d)) { + r = $$.getBubbleR(d); + } else if (isFunction(pointR)) { + r = pointR.bind($$.api)(d); + } + d.r = r; + return r; + }, + pointExpandedR(d) { + const $$ = this; + const { config } = $$; + const scale = $$.isBubbleType(d) ? 1.15 : 1.75; + return config.point_focus_expand_enabled ? config.point_focus_expand_r || $$.pointR(d) * scale : $$.pointR(d); + }, + pointSelectR(d) { + const $$ = this; + const selectR = $$.config.point_select_r; + return isFunction(selectR) ? selectR(d) : selectR || $$.pointR(d) * 4; + }, + /** + * Check if point.focus.only option can be applied. + * @returns {boolean} + * @private + */ + isPointFocusOnly() { + const $$ = this; + return $$.config.point_focus_only && !$$.hasType("bubble") && !$$.hasType("scatter") && !$$.hasArcType(null, ["radar"]); + }, + isWithinCircle(node, r) { + const { config, state } = this; + const mouse = getPointer(state.event, node); + const element = src_select(node); + const prefix = this.isCirclePoint(node) ? "c" : ""; + const sensitivity = config.point_sensitivity === "radius" ? node.getAttribute("r") : config.point_sensitivity; + let cx = +element.attr(`${prefix}x`); + let cy = +element.attr(`${prefix}y`); + if (!(cx || cy) && node.nodeType === 1) { + const { x, y } = getBoundingRect(node); + cx = x; + cy = y; + } + return Math.sqrt( + Math.pow(cx - mouse[0], 2) + Math.pow(cy - mouse[1], 2) + ) < (r || sensitivity); + }, + /** + * Get data point sensitivity radius + * @param {object} d Data point object + * @returns {number} return the sensitivity value + */ + getPointSensitivity(d) { + const $$ = this; + let sensitivity = $$.config.point_sensitivity; + if (isFunction(sensitivity)) { + sensitivity = sensitivity.call($$.api, d); + } else if (sensitivity === "radius") { + sensitivity = d.r; + } + return sensitivity; + }, + updatePointClass(d) { + const $$ = this; + const { circle } = $$.$el; + let pointClass = false; + if (isObject(d) || circle) { + pointClass = d === true ? circle.each(function(d2) { + let className = $$.getClass("circle", true)(d2); + if (this.getAttribute("class").indexOf($COMMON.EXPANDED) > -1) { + className += ` ${$COMMON.EXPANDED}`; + } + this.setAttribute("class", className); + }) : $$.getClass("circle", true)(d); + } + return pointClass; + }, + generateGetLinePoints(lineIndices, isSub) { + const $$ = this; + const { config } = $$; + const x = $$.getShapeX(0, lineIndices, isSub); + const y = $$.getShapeY(isSub); + const lineOffset = $$.getShapeOffset($$.isLineType, lineIndices, isSub); + const yScale = $$.getYScaleById.bind($$); + return (d, i) => { + const y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id)); + const offset = lineOffset(d, i) || y0; + const posX = x(d); + let posY = y(d); + if (config.axis_rotated && (d.value > 0 && posY < y0 || d.value < 0 && y0 < posY)) { + posY = y0; + } + const point = [posX, posY - (y0 - offset)]; + return [ + point, + point, + // from here and below, needed for compatibility + point, + point + ]; + }; + }, + custom: { + create(element, id, fillStyleFn) { + return element.append("use").attr("xlink:href", `#${id}`).attr("class", this.updatePointClass.bind(this)).style("fill", fillStyleFn).node(); + }, + update(element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) { + const $$ = this; + const { width, height } = element.node().getBBox(); + const xPosFn2 = (d) => isValue(d.value) ? xPosFn(d) - width / 2 : 0; + const yPosFn2 = (d) => isValue(d.value) ? yPosFn(d) - height / 2 : 0; + let mainCircles = element; + if (withTransition) { + flow && mainCircles.attr("x", xPosFn2); + mainCircles = $$.$T(mainCircles, withTransition, getTransitionName()); + selectedCircles && $$.$T(selectedCircles, withTransition, getTransitionName()); + } + return mainCircles.attr("x", xPosFn2).attr("y", yPosFn2).style("fill", fillStyleFn); + } + }, + // 'circle' data point + circle: { + create(element, sizeFn, fillStyleFn) { + return element.append("circle").attr("class", this.updatePointClass.bind(this)).attr("r", sizeFn).style("fill", fillStyleFn).node(); + }, + update(element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) { + const $$ = this; + let mainCircles = element; + if ($$.hasType("bubble")) { + mainCircles.attr("r", $$.pointR.bind($$)); + } + if (withTransition) { + flow && mainCircles.attr("cx", xPosFn); + if (mainCircles.attr("cx")) { + mainCircles = $$.$T(mainCircles, withTransition, getTransitionName()); + } + selectedCircles && $$.$T(mainCircles, withTransition, getTransitionName()); + } + return mainCircles.attr("cx", xPosFn).attr("cy", yPosFn).style("fill", fillStyleFn); + } + }, + // 'rectangle' data point + rectangle: { + create(element, sizeFn, fillStyleFn) { + const rectSizeFn = (d) => sizeFn(d) * 2; + return element.append("rect").attr("class", this.updatePointClass.bind(this)).attr("width", rectSizeFn).attr("height", rectSizeFn).style("fill", fillStyleFn).node(); + }, + update(element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) { + const $$ = this; + const r = $$.config.point_r; + const rectXPosFn = (d) => xPosFn(d) - r; + const rectYPosFn = (d) => yPosFn(d) - r; + let mainCircles = element; + if (withTransition) { + flow && mainCircles.attr("x", rectXPosFn); + mainCircles = $$.$T(mainCircles, withTransition, getTransitionName()); + selectedCircles && $$.$T(selectedCircles, withTransition, getTransitionName()); + } + return mainCircles.attr("x", rectXPosFn).attr("y", rectYPosFn).style("fill", fillStyleFn); + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/point.common.ts + + + +function hasValidPointDrawMethods(point) { + return isObjectType(point) && isFunction(point.create) && isFunction(point.update); +} +function insertPointInfoDefs(point, id) { + var _a; + const $$ = this; + const copyAttr = (from, target) => { + const attribs = from.attributes; + for (let i = 0, name; name = attribs[i]; i++) { + name = name.name; + target.setAttribute(name, from.getAttribute(name)); + } + }; + const doc = new DOMParser().parseFromString(point, "image/svg+xml"); + const node = doc.documentElement; + const clone = browser_doc.createElementNS(namespaces.svg, node.nodeName.toLowerCase()); + clone.id = id; + clone.style.fill = "inherit"; + clone.style.stroke = "inherit"; + copyAttr(node, clone); + if ((_a = node.childNodes) == null ? void 0 : _a.length) { + const parent = src_select(clone); + if ("innerHTML" in clone) { + parent.html(node.innerHTML); + } else { + toArray(node.childNodes).forEach((v) => { + copyAttr(v, parent.append(v.tagName).node()); + }); + } + } + $$.$el.defs.node().appendChild(clone); +} +/* harmony default export */ var point_common = ({ + /** + * Check if point type option is valid + * @param {string} type point type + * @returns {boolean} + * @private + */ + hasValidPointType(type) { + return /^(circle|rect(angle)?|polygon|ellipse|use)$/i.test(type || this.config.point_type); + }, + /** + * Check if pattern point is set to be used on legend + * @returns {boolean} + * @private + */ + hasLegendDefsPoint() { + var _a; + const { config } = this; + return config.legend_show && ((_a = config.point_pattern) == null ? void 0 : _a.length) && config.legend_usePoint; + }, + getDefsPointId(id) { + const { state: { datetimeId } } = this; + return `${datetimeId}-point${id}`; + }, + /** + * Get generate point function + * @returns {Function} + * @private + */ + generatePoint() { + const $$ = this; + const { $el, config } = $$; + const ids = []; + const pattern = notEmpty(config.point_pattern) ? config.point_pattern : [config.point_type]; + return function(method, context, ...args) { + return function(d) { + var _a, _b, _c, _d; + const id = $$.getTargetSelectorSuffix(d.id || ((_a = d.data) == null ? void 0 : _a.id) || d); + const element = src_select(this); + ids.indexOf(id) < 0 && ids.push(id); + let point = pattern[ids.indexOf(id) % pattern.length]; + if ($$.hasValidPointType(point)) { + point = $$[point]; + } else if (!hasValidPointDrawMethods(point || config.point_type)) { + const pointId = $$.getDefsPointId(id); + const defsPoint = $el.defs.select(`#${pointId}`); + if (defsPoint.size() < 1) { + insertPointInfoDefs.bind($$)(point, pointId); + } + if (method === "create") { + return (_b = $$.custom) == null ? void 0 : _b.create.bind(context)(element, pointId, ...args); + } else if (method === "update") { + return (_c = $$.custom) == null ? void 0 : _c.update.bind(context)(element, ...args); + } + } + return (_d = point[method]) == null ? void 0 : _d.bind(context)(element, ...args); + }; + }; + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/polar.ts + + +function getDataMax($$) { + const levelMax = $$.config.polar_level_max; + let dataMax = $$.getMinMaxData().max[0].value; + if (levelMax && levelMax > dataMax) { + dataMax = levelMax; + } + return dataMax; +} +/* harmony default export */ var polar = ({ + /** + * Initialize polar + * @private + */ + initPolar() { + const $$ = this; + const { $el: { arcs }, config } = $$; + const levelTextShow = config.polar_level_text_show; + const levelTextBgColor = config.polar_level_text_backgroundColor; + arcs.levels = arcs.append("g").attr("class", $LEVEL.levels); + if (levelTextShow && levelTextBgColor) { + $$.generateTextBGColorFilter(levelTextBgColor); + } + }, + /** + * Get polar outer radius according to the data value + * @param {object} d Data object + * @param {numbet} outerRadius Outer radius + * @returns {number} outer radius + * @private + */ + getPolarOuterRadius(d, outerRadius) { + var _a; + const dataMax = getDataMax(this); + return ((_a = d == null ? void 0 : d.data.values[0].value) != null ? _a : 0) / dataMax * outerRadius; + }, + /** + * Update polar based on given data array + * @param {object} targets Data object + * @private + */ + updateTargetsForPolar(targets) { + this.updateTargetsForArc(targets); + }, + /** + * Called whenever redraw happens + * @private + */ + redrawPolar() { + const $$ = this; + const { config } = $$; + config.polar_level_show && $$.updatePolarLevel(); + }, + /** + * Update polar level circle + * @private + */ + updatePolarLevel() { + const $$ = this; + const { config, state, $el: { arcs: { levels } } } = $$; + const depth = config.polar_level_depth; + const dataMax = getDataMax($$); + const levelData = getRange(0, depth); + const outerRadius = state.radius; + const levelRatio = levelData.map((l) => outerRadius * ((l + 1) / depth)); + const levelTextFormat = (config.polar_level_text_format || function() { + }).bind($$.api); + const level = levels.selectAll(`.${$LEVEL.level}`).data(levelData); + level.exit().remove(); + const levelEnter = level.enter().append("g").attr("class", (d, i) => `${$LEVEL.level} ${$LEVEL.level}-${i}`); + levelEnter.append("circle"); + levelEnter.merge(level).selectAll("circle").style("visibility", config.polar_level_show ? null : "hidden").attr("cx", 0).attr("cy", 0).attr("r", (d) => levelRatio[d]); + if (config.polar_level_text_show) { + const levelTextBackgroundColor = config.polar_level_text_backgroundColor; + const defsId = `#${state.datetimeId}-labels-bg${$$.getTargetSelectorSuffix(levelTextBackgroundColor)}`; + levelEnter.append("text").style("text-anchor", "middle"); + levelEnter.merge(level).selectAll("text").attr("dy", (d) => -levelRatio[d] + 5).attr("filter", levelTextBackgroundColor ? `url(${defsId})` : null).text((d) => levelTextFormat(dataMax / levelData.length * (d + 1))); + } + } +}); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/radar.ts + + + + +function getPosition(isClockwise, type, edge, pos, range, ratio) { + const index = isClockwise && pos > 0 ? edge - pos : pos; + const r = 2 * Math.PI; + const func = type === "x" ? Math.sin : Math.cos; + return range * (1 - ratio * func(index * r / edge)); +} +const cacheKeyPoints = KEY.radarPoints; +const cacheKeyTextWidth = KEY.radarTextWidth; +/* harmony default export */ var radar = ({ + initRadar() { + const $$ = this; + const { config, state: { current }, $el } = $$; + if ($$.hasType("radar")) { + $el.radar = $el.main.select(`.${$COMMON.chart}`).append("g").attr("class", $RADAR.chartRadars); + $el.radar.levels = $el.radar.append("g").attr("class", $LEVEL.levels); + $el.radar.axes = $el.radar.append("g").attr("class", $AXIS.axis); + $el.radar.shapes = $el.radar.append("g").attr("class", $SHAPE.shapes); + current.dataMax = config.radar_axis_max || $$.getMinMaxData().max[0].value; + if (config.radar_axis_text_show) { + config.interaction_enabled && $$.bindRadarEvent(); + $$.updateRadarLevel(); + $$.updateRadarAxes(); + } + } + }, + getRadarSize() { + const $$ = this; + const { config, state: { arcWidth, arcHeight } } = $$; + const padding = config.axis_x_categories.length < 4 ? -20 : 10; + const size = (Math.min(arcWidth, arcHeight) - padding) / 2; + return [size, size]; + }, + updateTargetsForRadar(targets) { + const $$ = this; + const { config } = $$; + if (isEmpty(config.axis_x_categories)) { + config.axis_x_categories = getRange(0, getMinMax("max", targets.map( + (v) => v.values.length + ))); + } + $$.generateRadarPoints(); + }, + getRadarPosition(type, index, range, ratio) { + const $$ = this; + const { config } = $$; + const [width, height] = $$.getRadarSize(); + const edge = config.axis_x_categories.length; + const isClockwise = config.radar_direction_clockwise; + const pos = toArray(type).map( + (v) => getPosition( + isClockwise, + v, + edge, + index, + isDefined(range) ? range : type === "x" ? width : height, + isNumber(ratio) ? ratio : config.radar_size_ratio + ) + ); + return pos.length === 1 ? pos[0] : pos; + }, + /** + * Generate data points + * @private + */ + generateRadarPoints() { + const $$ = this; + const targets = $$.data.targets; + const [width, height] = $$.getRadarSize(); + const points = $$.cache.get(cacheKeyPoints) || {}; + const size = points._size; + if (!size || size.width !== width && size.height !== height) { + targets.forEach((d) => { + points[d.id] = d.values.map((v, i) => $$.getRadarPosition(["x", "y"], i, void 0, $$.getRatio("radar", v))); + }); + points._size = { width, height }; + $$.cache.add(cacheKeyPoints, points); + } + }, + redrawRadar() { + const $$ = this; + const { radar, main } = $$.$el; + const translate = $$.getTranslate("radar"); + if (translate) { + radar.attr("transform", translate); + main.select(`.${$TEXT.chartTexts}`).attr("transform", translate); + $$.generateRadarPoints(); + $$.updateRadarLevel(); + $$.updateRadarAxes(); + $$.updateRadarShape(); + } + }, + generateGetRadarPoints() { + const points = this.cache.get(cacheKeyPoints); + return (d, i) => { + const point = points[d.id][i]; + return [ + point, + point, + point, + point + ]; + }; + }, + updateRadarLevel() { + const $$ = this; + const { config, state, $el: { radar } } = $$; + const [width, height] = $$.getRadarSize(); + const depth = config.radar_level_depth; + const edge = config.axis_x_categories.length; + const showText = config.radar_level_text_show; + const radarLevels = radar.levels; + const levelData = getRange(0, depth); + const radius = config.radar_size_ratio * Math.min(width, height); + const levelRatio = levelData.map((l) => radius * ((l + 1) / depth)); + const levelTextFormat = (config.radar_level_text_format || function() { + }).bind($$.api); + const points = levelData.map((v) => { + const range = levelRatio[v]; + const pos = getRange(0, edge).map( + (i) => $$.getRadarPosition(["x", "y"], i, range, 1).join(",") + ); + return pos.join(" "); + }); + const level = radarLevels.selectAll(`.${$LEVEL.level}`).data(levelData); + level.exit().remove(); + const levelEnter = level.enter().append("g").attr("class", (d, i) => `${$LEVEL.level} ${$LEVEL.level}-${i}`); + levelEnter.append("polygon").style("visibility", config.radar_level_show ? null : "hidden"); + if (showText) { + if (radarLevels.select("text").empty()) { + radarLevels.append("text").attr("dx", "-.5em").attr("dy", "-.7em").style("text-anchor", "end").text(() => levelTextFormat(0)); + } + levelEnter.append("text").attr("dx", "-.5em").style("text-anchor", "end").text( + (d) => levelTextFormat( + state.current.dataMax / levelData.length * (d + 1) + ) + ); + } + levelEnter.merge(level).attr( + "transform", + (d) => `translate(${width - levelRatio[d]}, ${height - levelRatio[d]})` + ).selectAll("polygon").attr("points", (d) => points[d]); + if (showText) { + radarLevels.selectAll("text").attr("x", (d) => isUndefined(d) ? width : points[d].split(",")[0]).attr("y", (d) => isUndefined(d) ? height : 0); + } + }, + updateRadarAxes() { + const $$ = this; + const { config, $el: { radar } } = $$; + const [width, height] = $$.getRadarSize(); + const categories = config.axis_x_categories; + let axis = radar.axes.selectAll("g").data(categories); + axis.exit().remove(); + const axisEnter = axis.enter().append("g").attr("class", (d, i) => `${$AXIS.axis}-${i}`); + config.radar_axis_line_show && axisEnter.append("line"); + config.radar_axis_text_show && axisEnter.append("text"); + axis = axisEnter.merge(axis); + if (config.radar_axis_line_show) { + axis.select("line").attr("x1", width).attr("y1", height).attr("x2", (d, i) => $$.getRadarPosition("x", i)).attr("y2", (d, i) => $$.getRadarPosition("y", i)); + } + if (config.radar_axis_text_show) { + const { x = 0, y = 0 } = config.radar_axis_text_position; + const textWidth = $$.cache.get(cacheKeyTextWidth) || 0; + axis.select("text").style("text-anchor", "middle").attr("dy", ".5em").call((selection) => { + selection.each(function(d) { + setTextValue(src_select(this), String(d), [-0.6, 1.2]); + }); + }).datum((d, i) => ({ index: i })).attr("transform", function(d) { + if (isUndefined(this.width)) { + this.width = this.getBoundingClientRect().width / 2; + } + let posX = $$.getRadarPosition("x", d.index, void 0, 1); + let posY = Math.round($$.getRadarPosition("y", d.index, void 0, 1)); + if (posX > width) { + posX += this.width + x; + } else if (Math.round(posX) < width) { + posX -= this.width + x; + } + if (posY > height) { + if (posY / 2 === height && this.firstChild.tagName === "tspan") { + this.firstChild.setAttribute("dy", "0em"); + } + posY += y; + } else if (posY < height) { + posY -= y; + } + return `translate(${posX} ${posY})`; + }); + if (!textWidth) { + const widths = [radar.axes, radar.levels].map((v) => getPathBox(v.node()).width); + if (widths.every((v) => v > 0)) { + $$.cache.add(cacheKeyTextWidth, widths[0] - widths[1]); + } + } + } + }, + bindRadarEvent() { + const $$ = this; + const { state, $el: { radar, svg } } = $$; + const focusOnly = $$.isPointFocusOnly(); + const { inputType, transiting } = state; + const isMouse = inputType === "mouse"; + const hide = (event) => { + state.event = event; + const index = $$.getDataIndexFromEvent(event); + const noIndex = isUndefined(index); + if (isMouse || noIndex) { + $$.hideTooltip(); + focusOnly ? $$.hideCircleFocus() : $$.unexpandCircles(); + if (isMouse) { + $$.setOverOut(false, index); + } else if (noIndex) { + $$.callOverOutForTouch(); + } + } + }; + radar.axes.on(isMouse ? "mouseover " : "touchstart", (event) => { + if (transiting) { + return; + } + state.event = event; + const index = $$.getDataIndexFromEvent(event); + $$.selectRectForSingle(svg.node(), index); + isMouse ? $$.setOverOut(true, index) : $$.callOverOutForTouch(index); + }).on("mouseout", isMouse ? hide : null); + if (!isMouse) { + svg.on("touchstart", hide); + } + }, + updateRadarShape() { + const $$ = this; + const targets = $$.data.targets.filter((d) => $$.isRadarType(d)); + const points = $$.cache.get(cacheKeyPoints); + const areas = $$.$el.radar.shapes.selectAll("polygon").data(targets); + const areasEnter = areas.enter().append("g").attr("class", $$.getChartClass("Radar")); + $$.$T(areas.exit()).remove(); + areasEnter.append("polygon").merge(areas).style("fill", $$.color).style("stroke", $$.color).attr("points", (d) => points[d.id].join(" ")); + $$.updateTargetForCircle(targets, areasEnter); + }, + /** + * Get data point x coordinate + * @param {object} d Data object + * @returns {number} + * @private + */ + radarCircleX(d) { + return this.cache.get(cacheKeyPoints)[d.id][d.index][0]; + }, + /** + * Get data point y coordinate + * @param {object} d Data object + * @returns {number} + * @private + */ + radarCircleY(d) { + return this.cache.get(cacheKeyPoints)[d.id][d.index][1]; + } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/count.js +function count(node) { + var sum = 0, children = node.children, i = children && children.length; + if (!i) + sum = 1; + else + while (--i >= 0) + sum += children[i].value; + node.value = sum; +} +/* harmony default export */ function hierarchy_count() { + return this.eachAfter(count); +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/each.js +/* harmony default export */ function hierarchy_each(callback, that) { + let index = -1; + for (const node of this) { + callback.call(that, node, ++index, this); + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js +/* harmony default export */ function eachBefore(callback, that) { + var node = this, nodes = [node], children, i, index = -1; + while (node = nodes.pop()) { + callback.call(that, node, ++index, this); + if (children = node.children) { + for (i = children.length - 1; i >= 0; --i) { + nodes.push(children[i]); + } + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js +/* harmony default export */ function eachAfter(callback, that) { + var node = this, nodes = [node], next = [], children, i, n, index = -1; + while (node = nodes.pop()) { + next.push(node); + if (children = node.children) { + for (i = 0, n = children.length; i < n; ++i) { + nodes.push(children[i]); + } + } + } + while (node = next.pop()) { + callback.call(that, node, ++index, this); + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/find.js +/* harmony default export */ function hierarchy_find(callback, that) { + let index = -1; + for (const node of this) { + if (callback.call(that, node, ++index, this)) { + return node; + } + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/sum.js +/* harmony default export */ function sum(value) { + return this.eachAfter(function(node) { + var sum = +value(node.data) || 0, children = node.children, i = children && children.length; + while (--i >= 0) + sum += children[i].value; + node.value = sum; + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/sort.js +/* harmony default export */ function hierarchy_sort(compare) { + return this.eachBefore(function(node) { + if (node.children) { + node.children.sort(compare); + } + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/path.js +/* harmony default export */ function hierarchy_path(end) { + var start = this, ancestor = leastCommonAncestor(start, end), nodes = [start]; + while (start !== ancestor) { + start = start.parent; + nodes.push(start); + } + var k = nodes.length; + while (end !== ancestor) { + nodes.splice(k, 0, end); + end = end.parent; + } + return nodes; +} +function leastCommonAncestor(a, b) { + if (a === b) + return a; + var aNodes = a.ancestors(), bNodes = b.ancestors(), c = null; + a = aNodes.pop(); + b = bNodes.pop(); + while (a === b) { + c = a; + a = aNodes.pop(); + b = bNodes.pop(); + } + return c; +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/ancestors.js +/* harmony default export */ function ancestors() { + var node = this, nodes = [node]; + while (node = node.parent) { + nodes.push(node); + } + return nodes; +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/descendants.js +/* harmony default export */ function descendants() { + return Array.from(this); +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/leaves.js +/* harmony default export */ function leaves() { + var leaves = []; + this.eachBefore(function(node) { + if (!node.children) { + leaves.push(node); + } + }); + return leaves; +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/links.js +/* harmony default export */ function links() { + var root = this, links = []; + root.each(function(node) { + if (node !== root) { + links.push({ source: node.parent, target: node }); + } + }); + return links; +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/iterator.js +/* harmony default export */ function* hierarchy_iterator() { + var node = this, current, next = [node], children, i, n; + do { + current = next.reverse(), next = []; + while (node = current.pop()) { + yield node; + if (children = node.children) { + for (i = 0, n = children.length; i < n; ++i) { + next.push(children[i]); + } + } + } + } while (next.length); +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/hierarchy/index.js + + + + + + + + + + + + + +function hierarchy(data, children) { + if (data instanceof Map) { + data = [void 0, data]; + if (children === void 0) + children = mapChildren; + } else if (children === void 0) { + children = objectChildren; + } + var root = new Node(data), node, nodes = [root], child, childs, i, n; + while (node = nodes.pop()) { + if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) { + node.children = childs; + for (i = n - 1; i >= 0; --i) { + nodes.push(child = childs[i] = new Node(childs[i])); + child.parent = node; + child.depth = node.depth + 1; + } + } + } + return root.eachBefore(computeHeight); +} +function node_copy() { + return hierarchy(this).eachBefore(copyData); +} +function objectChildren(d) { + return d.children; +} +function mapChildren(d) { + return Array.isArray(d) ? d[1] : null; +} +function copyData(node) { + if (node.data.value !== void 0) + node.value = node.data.value; + node.data = node.data.data; +} +function computeHeight(node) { + var height = 0; + do + node.height = height; + while ((node = node.parent) && node.height < ++height); +} +function Node(data) { + this.data = data; + this.depth = this.height = 0; + this.parent = null; +} +Node.prototype = hierarchy.prototype = { + constructor: Node, + count: hierarchy_count, + each: hierarchy_each, + eachAfter: eachAfter, + eachBefore: eachBefore, + find: hierarchy_find, + sum: sum, + sort: hierarchy_sort, + path: hierarchy_path, + ancestors: ancestors, + descendants: descendants, + leaves: leaves, + links: links, + copy: node_copy, + [Symbol.iterator]: hierarchy_iterator +}; + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/round.js +/* harmony default export */ function treemap_round(node) { + node.x0 = Math.round(node.x0); + node.y0 = Math.round(node.y0); + node.x1 = Math.round(node.x1); + node.y1 = Math.round(node.y1); +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/dice.js +/* harmony default export */ function dice(parent, x0, y0, x1, y1) { + var nodes = parent.children, node, i = -1, n = nodes.length, k = parent.value && (x1 - x0) / parent.value; + while (++i < n) { + node = nodes[i], node.y0 = y0, node.y1 = y1; + node.x0 = x0, node.x1 = x0 += node.value * k; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/slice.js +/* harmony default export */ function treemap_slice(parent, x0, y0, x1, y1) { + var nodes = parent.children, node, i = -1, n = nodes.length, k = parent.value && (y1 - y0) / parent.value; + while (++i < n) { + node = nodes[i], node.x0 = x0, node.x1 = x1; + node.y0 = y0, node.y1 = y0 += node.value * k; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/squarify.js + + +var phi = (1 + Math.sqrt(5)) / 2; +function squarifyRatio(ratio, parent, x0, y0, x1, y1) { + var rows = [], nodes = parent.children, row, nodeValue, i0 = 0, i1 = 0, n = nodes.length, dx, dy, value = parent.value, sumValue, minValue, maxValue, newRatio, minRatio, alpha, beta; + while (i0 < n) { + dx = x1 - x0, dy = y1 - y0; + do + sumValue = nodes[i1++].value; + while (!sumValue && i1 < n); + minValue = maxValue = sumValue; + alpha = Math.max(dy / dx, dx / dy) / (value * ratio); + beta = sumValue * sumValue * alpha; + minRatio = Math.max(maxValue / beta, beta / minValue); + for (; i1 < n; ++i1) { + sumValue += nodeValue = nodes[i1].value; + if (nodeValue < minValue) + minValue = nodeValue; + if (nodeValue > maxValue) + maxValue = nodeValue; + beta = sumValue * sumValue * alpha; + newRatio = Math.max(maxValue / beta, beta / minValue); + if (newRatio > minRatio) { + sumValue -= nodeValue; + break; + } + minRatio = newRatio; + } + rows.push(row = { value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1) }); + if (row.dice) + dice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1); + else + treemap_slice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1); + value -= sumValue, i0 = i1; + } + return rows; +} +/* harmony default export */ var squarify = ((function custom(ratio) { + function squarify(parent, x0, y0, x1, y1) { + squarifyRatio(ratio, parent, x0, y0, x1, y1); + } + squarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); + }; + return squarify; +})(phi)); + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/accessors.js +function optional(f) { + return f == null ? null : required(f); +} +function required(f) { + if (typeof f !== "function") + throw new Error(); + return f; +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/constant.js +function constantZero() { + return 0; +} +/* harmony default export */ function d3_hierarchy_src_constant(x) { + return function() { + return x; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/index.js + + + + +/* harmony default export */ function treemap() { + var tile = squarify, round = false, dx = 1, dy = 1, paddingStack = [0], paddingInner = constantZero, paddingTop = constantZero, paddingRight = constantZero, paddingBottom = constantZero, paddingLeft = constantZero; + function treemap(root) { + root.x0 = root.y0 = 0; + root.x1 = dx; + root.y1 = dy; + root.eachBefore(positionNode); + paddingStack = [0]; + if (round) + root.eachBefore(treemap_round); + return root; + } + function positionNode(node) { + var p = paddingStack[node.depth], x0 = node.x0 + p, y0 = node.y0 + p, x1 = node.x1 - p, y1 = node.y1 - p; + if (x1 < x0) + x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) + y0 = y1 = (y0 + y1) / 2; + node.x0 = x0; + node.y0 = y0; + node.x1 = x1; + node.y1 = y1; + if (node.children) { + p = paddingStack[node.depth + 1] = paddingInner(node) / 2; + x0 += paddingLeft(node) - p; + y0 += paddingTop(node) - p; + x1 -= paddingRight(node) - p; + y1 -= paddingBottom(node) - p; + if (x1 < x0) + x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) + y0 = y1 = (y0 + y1) / 2; + tile(node, x0, y0, x1, y1); + } + } + treemap.round = function(x) { + return arguments.length ? (round = !!x, treemap) : round; + }; + treemap.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy]; + }; + treemap.tile = function(x) { + return arguments.length ? (tile = required(x), treemap) : tile; + }; + treemap.padding = function(x) { + return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner(); + }; + treemap.paddingInner = function(x) { + return arguments.length ? (paddingInner = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), treemap) : paddingInner; + }; + treemap.paddingOuter = function(x) { + return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop(); + }; + treemap.paddingTop = function(x) { + return arguments.length ? (paddingTop = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), treemap) : paddingTop; + }; + treemap.paddingRight = function(x) { + return arguments.length ? (paddingRight = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), treemap) : paddingRight; + }; + treemap.paddingBottom = function(x) { + return arguments.length ? (paddingBottom = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), treemap) : paddingBottom; + }; + treemap.paddingLeft = function(x) { + return arguments.length ? (paddingLeft = typeof x === "function" ? x : d3_hierarchy_src_constant(+x), treemap) : paddingLeft; + }; + return treemap; +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/binary.js +/* harmony default export */ function binary(parent, x0, y0, x1, y1) { + var nodes = parent.children, i, n = nodes.length, sum, sums = new Array(n + 1); + for (sums[0] = sum = i = 0; i < n; ++i) { + sums[i + 1] = sum += nodes[i].value; + } + partition(0, n, parent.value, x0, y0, x1, y1); + function partition(i2, j, value, x02, y02, x12, y12) { + if (i2 >= j - 1) { + var node = nodes[i2]; + node.x0 = x02, node.y0 = y02; + node.x1 = x12, node.y1 = y12; + return; + } + var valueOffset = sums[i2], valueTarget = value / 2 + valueOffset, k = i2 + 1, hi = j - 1; + while (k < hi) { + var mid = k + hi >>> 1; + if (sums[mid] < valueTarget) + k = mid + 1; + else + hi = mid; + } + if (valueTarget - sums[k - 1] < sums[k] - valueTarget && i2 + 1 < k) + --k; + var valueLeft = sums[k] - valueOffset, valueRight = value - valueLeft; + if (x12 - x02 > y12 - y02) { + var xk = value ? (x02 * valueRight + x12 * valueLeft) / value : x12; + partition(i2, k, valueLeft, x02, y02, xk, y12); + partition(k, j, valueRight, xk, y02, x12, y12); + } else { + var yk = value ? (y02 * valueRight + y12 * valueLeft) / value : y12; + partition(i2, k, valueLeft, x02, y02, x12, yk); + partition(k, j, valueRight, x02, yk, x12, y12); + } + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/sliceDice.js + + +/* harmony default export */ function sliceDice(parent, x0, y0, x1, y1) { + (parent.depth & 1 ? treemap_slice : dice)(parent, x0, y0, x1, y1); +} + +;// CONCATENATED MODULE: ./node_modules/d3-hierarchy/src/treemap/resquarify.js + + + +/* harmony default export */ var resquarify = ((function custom(ratio) { + function resquarify(parent, x0, y0, x1, y1) { + if ((rows = parent._squarify) && rows.ratio === ratio) { + var rows, row, nodes, i, j = -1, n, m = rows.length, value = parent.value; + while (++j < m) { + row = rows[j], nodes = row.children; + for (i = row.value = 0, n = nodes.length; i < n; ++i) + row.value += nodes[i].value; + if (row.dice) + dice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1); + else + treemap_slice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1); + value -= row.value; + } + } else { + parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1); + rows.ratio = ratio; + } + } + resquarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); + }; + return resquarify; +})(phi)); + +;// CONCATENATED MODULE: ./src/ChartInternal/shape/treemap.ts + + + + +function position(group, root) { + const $$ = this; + const { scale: { x, y }, state: { width } } = $$; + group.selectAll("g").attr("transform", (d) => `translate(${d === root ? "0,0" : `${x(d.x0)},${y(d.y0)}`})`).select("rect").attr("width", (d) => d === root ? width : x(d.x1) - x(d.x0)).attr("height", (d) => d === root ? 0 : y(d.y1) - y(d.y0)); +} +function convertDataToTreemapData(data) { + const $$ = this; + return data.map((d) => { + const { id, values } = d; + const { value } = values[0]; + return { + name: id, + id, + // needed to keep compatibility on whole code logic + value, + ratio: $$.getRatio("treemap", values[0]) + }; + }); +} +function getHierachyData(data) { + const $$ = this; + const hierarchyData = hierarchy(data).sum((d) => d.value); + const sortFn = $$.getSortCompareFn(true); + return [ + $$.treemap( + sortFn ? hierarchyData.sort(sortFn) : hierarchyData + ) + ]; +} +/* harmony default export */ var shape_treemap = ({ + initTreemap() { + const $$ = this; + const { + $el, + state: { + current: { width, height }, + clip, + datetimeId + } + } = $$; + clip.id = `${datetimeId}-clip`; + $$.treemap = treemap().tile($$.getTreemapTile()); + $el.defs.append("clipPath").attr("id", clip.id).append("rect").attr("width", width).attr("height", height); + $el.treemap = $el.main.select(`.${$COMMON.chart}`).attr("clip-path", `url(#${clip.id})`).append("g").classed($TREEMAP.chartTreemaps, true); + $$.bindTreemapEvent(); + }, + /** + * Bind events + * @private + */ + bindTreemapEvent() { + const $$ = this; + const { $el, config, state } = $$; + const getTarget = (event) => { + var _a; + const target = event.isTrusted ? event.target : (_a = state.eventReceiver.rect) == null ? void 0 : _a.node(); + let data; + if (/^rect$/i.test(target.tagName)) { + state.event = event; + data = src_select(target).datum(); + } + return data == null ? void 0 : data.data; + }; + if (config.interaction_enabled) { + const isTouch = state.inputType === "touch"; + $el.treemap.on(isTouch ? "touchstart" : "mouseover mousemove", (event) => { + const data = getTarget(event); + if (data) { + $$.showTooltip([data], event.currentTarget); + /^(touchstart|mouseover)$/.test(event.type) && $$.setOverOut(true, data); + } + }).on(isTouch ? "touchend" : "mouseout", (event) => { + const data = getTarget(event); + $$.hideTooltip(); + $$.setOverOut(false, data); + }); + } + }, + /** + * Get tiling function + * @returns {Function} + * @private + */ + getTreemapTile() { + var _a, _b; + const $$ = this; + const { config, state: { current: { width, height } } } = $$; + const tile = (_b = { + binary: binary, + dice: dice, + slice: treemap_slice, + sliceDice: sliceDice, + squarify: squarify, + resquarify: resquarify + }[(_a = config.treemap_tile) != null ? _a : "binary"]) != null ? _b : binary; + return (node, x0, y0, x1, y1) => { + tile(node, 0, 0, width, height); + for (const child of node.children) { + child.x0 = x0 + child.x0 / width * (x1 - x0); + child.x1 = x0 + child.x1 / width * (x1 - x0); + child.y0 = y0 + child.y0 / height * (y1 - y0); + child.y1 = y0 + child.y1 / height * (y1 - y0); + } + }; + }, + /** + * Get treemap hierarchy data + * @param {Array} targets Data targets + * @returns {object} + * @private + */ + getTreemapData(targets) { + const $$ = this; + return { + name: "root", + children: convertDataToTreemapData.bind($$)( + $$.filterTargetsToShow(targets.filter($$.isTreemapType, $$)) + ) + }; + }, + /** + * Update treemap data + * @param {Array} targets Data targets + * @private + */ + updateTargetsForTreemap(targets) { + const $$ = this; + const { $el: { treemap } } = $$; + const treemapData = getHierachyData.call($$, $$.getTreemapData(targets != null ? targets : $$.data.targets)); + treemap.data(treemapData); + }, + /** + * Render treemap + * @param {number} durationForExit Duration for exit transition + * @private + */ + updateTreemap(durationForExit) { + const $$ = this; + const { $el, $T } = $$; + const data = $el.treemap.datum(); + const classChartTreemap = $$.getChartClass("Treemap"); + const classTreemap = $$.getClass("treemap", true); + const treemap = $el.treemap.selectAll("g").data(data.children); + $T(treemap.exit(), durationForExit).style("opacity", "0").remove(); + treemap.enter().append("g").append("rect"); + $el.treemap.selectAll("g").attr("class", classChartTreemap).select("rect").attr("class", classTreemap).attr("fill", (d) => $$.color(d.data.name)); + }, + /** + * Generate treemap coordinate points data + * @returns {Array} Array of coordinate points + * @private + */ + generateGetTreemapPoints() { + const $$ = this; + const { $el, scale: { x, y } } = $$; + const points = {}; + $el.treemap.selectAll("g").each((d) => { + points[d.data.name] = [ + [x(d.x0), y(d.y0)], + [x(d.x1), y(d.y1)] + ]; + }); + return (d) => points[d.id]; + }, + /** + * Redraw treemap + * @param {boolean} withTransition With or without transition + * @returns {Array} Selections + * @private + */ + redrawTreemap(withTransition) { + const $$ = this; + const { $el, state: { current: { width, height } } } = $$; + $el.defs.select("rect").attr("width", width).attr("height", height); + return [ + $$.$T($el.treemap, withTransition, getRandom()).call(position.bind($$), $el.treemap.datum()) + ]; + }, + /** + * Get treemap data label format function + * @param {object} d Data object + * @returns {Function} + * @private + */ + treemapDataLabelFormat(d) { + const $$ = this; + const { config } = $$; + const { id, value } = d; + const format = config.treemap_label_format; + const ratio = $$.getRatio("treemap", d); + const percentValue = (ratio * 100).toFixed(2); + const meetLabelThreshold = config.treemap_label_show && $$.meetsLabelThreshold( + ratio, + "treemap" + ) ? null : "0"; + return function(node) { + node.style("opacity", meetLabelThreshold); + return isFunction(format) ? format.bind($$.api)(value, ratio, id) : `${id} +${percentValue}%`; + }; + } +}); + +;// CONCATENATED MODULE: ./src/config/Options/common/point.ts +/* harmony default export */ var common_point = ({ + /** + * Set point options + * @name point + * @memberof Options + * @type {object} + * @property {object} point Point object + * @property {boolean} [point.show=true] Whether to show each point in line. + * @property {number|Function} [point.r=2.5] The radius size of each point. + * - **NOTE:** Disabled for 'bubble' type + * @property {boolean|object} [point.radialGradient=false] Set the radial gradient on point.<br><br> + * Or customize by giving below object value: + * - cx {number}: `cx` value (default: `0.3`) + * - cy {number}: `cy` value (default: `0.3`) + * - r {number}: `r` value (default: `0.7`) + * - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values. + * - (default: `[[0.1, $DATA_COLOR, 1], [0.9, $DATA_COLOR, 0]]`) + * @property {boolean} [point.focus.expand.enabled=true] Whether to expand each point on focus. + * @property {number} [point.focus.expand.r=point.r*1.75] The radius size of each point on focus. + * - **NOTE:** For 'bubble' type, the default is `bubbleSize*1.15` + * @property {boolean} [point.focus.only=false] Show point only when is focused. + * @property {number|null} [point.opacity=undefined] Set point opacity value. + * - **NOTE:** + * - `null` will make to not set inline 'opacity' css prop. + * - when no value(or undefined) is set, it defaults to set opacity value according its chart types. + * @property {number|string|Function} [point.sensitivity=10] The senstivity value for interaction boundary. + * - **Available Values:** + * - {number}: Absolute sensitivity value which is the distance from the data point in pixel. + * - "radius": sensitivity based on point's radius + * - Function: callback for each point to determine the sensitivity<br> + * ```js + * sensitivity: function(d) { + * // ex. of argument d: + * // ==> {x: 2, value: 55, id: 'data3', index: 2, r: 19.820624179302296} + * + * // returning d.r, will make sensitivity same as point's radius value. + * return d.r; + * } + * ``` + * @property {number} [point.select.r=point.r*4] The radius size of each point on selected. + * @property {string} [point.type="circle"] The type of point to be drawn + * - **NOTE:** + * - If chart has 'bubble' type, only circle can be used. + * - For IE, non circle point expansions are not supported due to lack of transform support. + * - **Available Values:** + * - circle + * - rectangle + * @property {Array} [point.pattern=[]] The type of point or svg shape as string, to be drawn for each line + * - **NOTE:** + * - This is an `experimental` feature and can have some unexpected behaviors. + * - If chart has 'bubble' type, only circle can be used. + * - For IE, non circle point expansions are not supported due to lack of transform support. + * - **Available Values:** + * - circle + * - rectangle + * - svg shape tag interpreted as string<br> + * (ex. `<polygon points='2.5 0 0 5 5 5'></polygon>`) + * @see [Demo: point type](https://naver.github.io/billboard.js/demo/#Point.RectanglePoints) + * @see [Demo: point focus only](https://naver.github.io/billboard.js/demo/#Point.FocusOnly) + * @see [Demo: point radialGradient](https://naver.github.io/billboard.js/demo/#Point.RadialGradientPoint) + * @see [Demo: point sensitivity](https://naver.github.io/billboard.js/demo/#Point.PointSensitivity) + * @example + * point: { + * show: false, + * r: 5, + * + * // or customize the radius + * r: function(d) { + * ... + * return r; + * }, + * + * // will generate follwing radialGradient: + * // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/radialGradient + * // <radualGradient cx="0.3" cy="0.3" r="0.7"> + * // <stop offset="0.1" stop-color="$DATA_COLOR" stop-opacity="1"></stop> + * // <stop offset="0.9" stop-color="$DATA_COLOR" stop-opacity="0"></stop> + * // </radialrGradient> + * radialGradient: true, + * + * // Or customized gradient + * radialGradient: { + * cx: 0.3, // cx attributes + * cy: 0.5, // cy attributes + * r: 0.7, // r attributes + * stops: [ + * // offset, stop-color, stop-opacity + * [0, "#7cb5ec", 1], + * + * // setting 'null' for stop-color, will set its original data color + * [0.5, null, 0], + * + * // setting 'function' for stop-color, will pass data id as argument. + * // It should return color string or null value + * [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0], + * ] + * }, + * + * focus: { + * expand: { + * enabled: true, + * r: 1 + * }, + * only: true + * }, + * + * // do not set inline 'opacity' css prop setting + * opacity: null, + * + * // set every data point's opacity value + * opacity: 0.7, + * + * select: { + * r: 3 + * }, + * + * // having lower value, means how closer to be for interaction + * sensitivity: 3, + * + * // sensitivity based on point's radius + * sensitivity: "radius", + * + * // callback for each point to determine the sensitivity + * sensitivity: function(d) { + * // ex. of argument d: + * // ==> {x: 2, value: 55, id: 'data3', index: 2, r: 19.820624179302296} + * + * // returning d.r, will make sensitivity same as point's radius value. + * return d.r; + * } + * + * // valid values are "circle" or "rectangle" + * type: "rectangle", + * + * // or indicate as pattern + * pattern: [ + * "circle", + * "rectangle", + * "<polygon points='0 6 4 0 -4 0'></polygon>" + * ], + * } + */ + point_show: true, + point_r: 2.5, + point_radialGradient: false, + point_sensitivity: 10, + point_focus_expand_enabled: true, + point_focus_expand_r: void 0, + point_focus_only: false, + point_opacity: void 0, + point_pattern: [], + point_select_r: void 0, + point_type: "circle" +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/area.ts +/* harmony default export */ var Options_shape_area = ({ + /** + * Set area options + * @name area + * @memberof Options + * @type {object} + * @property {object} area Area object + * @property {boolean} [area.above=false] Set background area `above` the data chart line. + * @property {boolean} [area.below=false] Set background area `below` the data chart line. + * - **NOTE**: Can't be used along with `above` option. When above & below options are set to true, `above` will be prioritized. + * @property {boolean} [area.front=true] Set area node to be positioned over line node. + * @property {boolean|object} [area.linearGradient=false] Set the linear gradient on area.<br><br> + * Or customize by giving below object value: + * - x {Array}: `x1`, `x2` value (default: `[0, 0]`) + * - y {Array}: `y1`, `y2` value (default: `[0, 1]`) + * - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values. + * - (default: `[[0, $DATA_COLOR, 1], [1, $DATA_COLOR, 0]]`) + * @property {boolean} [area.zerobased=true] Set if min or max value will be 0 on area chart. + * @see [MDN's <linearGradient>](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient), [<stop>](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/stop) + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.AreaChart) + * @see [Demo: above](https://naver.github.io/billboard.js/demo/#AreaChartOptions.Above) + * @see [Demo: below](https://naver.github.io/billboard.js/demo/#AreaChartOptions.Below) + * @see [Demo: linearGradient](https://naver.github.io/billboard.js/demo/#AreaChartOptions.LinearGradient) + * @example + * area: { + * above: true, + * below: false, + * zerobased: false, + * + * // <g class='bb-areas'> will be positioned behind the line <g class='bb-lines'> in stacking order + * front: false, + * + * // will generate follwing linearGradient: + * // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient + * // <linearGradient x1="0" x2="0" y1="0" y2="1"> + * // <stop offset="0" stop-color="$DATA_COLOR" stop-opacity="1"></stop> + * // <stop offset="1" stop-color="$DATA_COLOR" stop-opacity="0"></stop> + * // </linearGradient> + * linearGradient: true, + * + * // Or customized gradient + * linearGradient: { + * x: [0, 0], // x1, x2 attributes + * y: [0, 0], // y1, y2 attributes + * stops: [ + * // offset, stop-color, stop-opacity + * [0, "#7cb5ec", 1], + * + * // setting 'null' for stop-color, will set its original data color + * [0.5, null, 0], + * + * // setting 'function' for stop-color, will pass data id as argument. + * // It should return color string or null value + * [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0], + * ] + * } + * } + */ + area_above: false, + area_below: false, + area_front: true, + area_linearGradient: false, + area_zerobased: true +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/bar.ts +/* harmony default export */ var shape_bar = ({ + /** + * Set bar options + * @name bar + * @memberof Options + * @type {object} + * @property {object} bar Bar object + * @property {boolean} [bar.front=false] Set 'bar' to be positioned over(on the top) other shapes elements. + * @property {number} [bar.indices.removeNull=false] Remove nullish data on bar indices positions. + * @property {number} [bar.label.threshold=0] Set threshold ratio to show/hide labels. + * @property {boolean|object} [bar.linearGradient=false] Set the linear gradient on bar.<br><br> + * Or customize by giving below object value: + * - x {Array}: `x1`, `x2` value (default: `[0, 0]`) + * - y {Array}: `y1`, `y2` value (default: `[0, 1]`) + * - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values. + * - (default: `[[0, $DATA_COLOR, 1], [1, $DATA_COLOR, 0]]`) + * @property {boolean} [bar.overlap=false] Bars will be rendered at same position, which will be overlapped each other. (for non-grouped bars only) + * @property {number} [bar.padding=0] The padding pixel value between each bar. + * @property {number} [bar.radius] Set the radius of bar edge in pixel. + * @property {number} [bar.radius.ratio] Set the radius ratio of bar edge in relative the bar's width. + * @property {number} [bar.sensitivity=2] The senstivity offset value for interaction boundary. + * @property {number} [bar.width] Change the width of bar chart. + * @property {number} [bar.width.ratio=0.6] Change the width of bar chart by ratio. + * @property {number} [bar.width.max] The maximum width value for ratio. + * @property {number} [bar.width.dataname] Change the width of bar for indicated dataset only. + * - **NOTE:** + * - Works only for non-stacked bar + * - Bars are centered accoding its total width value + * @property {number} [bar.width.dataname.ratio=0.6] Change the width of bar chart by ratio. + * @property {number} [bar.width.dataname.max] The maximum width value for ratio. + * @property {boolean} [bar.zerobased=true] Set if min or max value will be 0 on bar chart. + * @see [Demo: bar front](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarFront) + * @see [Demo: bar indices](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarIndices) + * @see [Demo: bar overlap](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarOverlap) + * @see [Demo: bar padding](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarPadding) + * @see [Demo: bar radius](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarRadius) + * @see [Demo: bar width](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarWidth) + * @see [Demo: bar width variant](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarWidthVariant) + * @example + * bar: { + * // make bar shape to be positioned over the other shape elements + * front: true, + * + * // remove nullish data on bar indices postions + * indices: { + * removeNull: true + * }, + * + * // will generate follwing linearGradient: + * // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient + * // <linearGradient x1="0" x2="0" y1="0" y2="1"> + * // <stop offset="0" stop-color="$DATA_COLOR" stop-opacity="1"></stop> + * // <stop offset="1" stop-color="$DATA_COLOR" stop-opacity="0"></stop> + * // </linearGradient> + * linearGradient: true, + * + * // Or customized gradient + * linearGradient: { + * x: [0, 0], // x1, x2 attributes + * y: [0, 0], // y1, y2 attributes + * stops: [ + * // offset, stop-color, stop-opacity + * [0, "#7cb5ec", 1], + * + * // setting 'null' for stop-color, will set its original data color + * [0.5, null, 0], + * + * // setting 'function' for stop-color, will pass data id as argument. + * // It should return color string or null value + * [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0], + * ] + * }, + * + * // remove nullish da + * overlap: true, + * + * padding: 1, + * + * // bar radius + * radius: 10, + * // or + * radius: { + * ratio: 0.5 + * } + * + * label: { + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the y Axis domain range value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * }, + * + * // will not have offset between each bar elements for interaction + * sensitivity: 0, + * + * width: 10, + * + * // or + * width: { + * ratio: 0.2, + * max: 20 + * }, + * + * // or specify width per dataset + * width: { + * data1: 20, + * data2: { + * ratio: 0.2, + * max: 20 + * } + * }, + * + * zerobased: false + * } + */ + bar_front: false, + bar_indices_removeNull: false, + bar_label_threshold: 0, + bar_linearGradient: false, + bar_overlap: false, + bar_padding: 0, + bar_radius: void 0, + bar_radius_ratio: void 0, + bar_sensitivity: 2, + bar_width: void 0, + bar_width_ratio: 0.6, + bar_width_max: void 0, + bar_zerobased: true +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/bubble.ts +/* harmony default export */ var shape_bubble = ({ + /** + * Set bubble options + * @name bubble + * @memberof Options + * @type {object} + * @property {object} bubble bubble object + * @property {number|Function} [bubble.maxR=35] Set the max bubble radius value + * @property {boolean} [bubble.zerobased=false] Set if min or max value will be 0 on bubble chart. + * @example + * bubble: { + * // ex) If 100 is the highest value among data bound, the representation bubble of 100 will have radius of 50. + * // And the lesser will have radius relatively from tha max value. + * maxR: 50, + * + * // or set radius callback + * maxR: function(d) { + * // ex. of d param - {x: Fri Oct 06 2017 00:00:00 GMT+0900, value: 80, id: "data2", index: 5} + * ... + * return Math.sqrt(d.value * 2); + * }, + * zerobased: false + * } + */ + bubble_maxR: 35, + bubble_zerobased: false +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/candlestick.ts +/* harmony default export */ var shape_candlestick = ({ + /** + * Set candlestick options + * @name candlestick + * @memberof Options + * @type {object} + * @property {object} candlestick Candlestick object + * @property {number} [candlestick.width] Change the width. + * @property {number} [candlestick.width.ratio=0.6] Change the width by ratio. + * @property {number} [candlestick.width.max] The maximum width value for ratio. + * @property {number} [candlestick.width.dataname] Change the width for indicated dataset only. + * @property {number} [candlestick.width.dataname.ratio=0.6] Change the width of bar chart by ratio. + * @property {number} [candlestick.width.dataname.max] The maximum width value for ratio. + * @property {object} [candlestick.color] Color setting. + * @property {string|object} [candlestick.color.down] Change down(bearish) value color. + * @property {string} [candlestick.color.down.dataname] Change down value color for indicated dataset only. + * + * @see [Demo](https://naver.github.io/billboard.js/demo/##Chart.CandlestickChart) + * @example + * candlestick: { + * width: 10, + * + * // or + * width: { + * ratio: 0.2, + * max: 20 + * }, + * + * // or specify width per dataset + * width: { + * data1: 20, + * data2: { + * ratio: 0.2, + * max: 20 + * } + * }, + * color: { + * // spcify bearish color + * down: "red", + * + * // or specify color per dataset + * down: { + * data1: "red", + * data2: "blue", + * } + * } + * } + */ + candlestick_width: void 0, + candlestick_width_ratio: 0.6, + candlestick_width_max: void 0, + candlestick_color_down: "red" +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/line.ts +/* harmony default export */ var shape_line = ({ + /** + * Set line options + * @name line + * @memberof Options + * @type {object} + * @property {object} line Line object + * @property {boolean} [line.connectNull=false] Set if null data point will be connected or not.<br> + * If true set, the region of null data will be connected without any data point. If false set, the region of null data will not be connected and get empty. + * @property {Array} [line.classes=undefined] If set, used to set a css class on each line. + * @property {boolean} [line.step.type=step] Change step type for step chart.<br> + * **Available values:** + * - step + * - step-before + * - step-after + * @property {boolean} [line.step.tooltipMatch=false] Set to `true` for `step-before` and `step-after` types to have cursor/tooltip match to hovered step's point instead of nearest point. + * @property {boolean|Array} [line.point=true] Set to false to not draw points on linecharts. Or pass an array of line ids to draw points for. + * @property {boolean} [line.zerobased=false] Set if min or max value will be 0 on line chart. + * @example + * line: { + * connectNull: true, + * classes: [ + * "line-class1", + * "line-class2" + * ], + * step: { + * type: "step-after", + * + * // to have cursor/tooltip match to hovered step's point instead of nearest point. + * tooltipMatch: true + * }, + * + * // hide all data points ('point.show=false' also has similar effect) + * point: false, + * + * // show data points for only indicated datas + * point: [ + * "data1", "data3" + * ], + * + * zerobased: false + * } + */ + line_connectNull: false, + line_step_type: "step", + line_step_tooltipMatch: false, + line_zerobased: false, + line_classes: void 0, + line_point: true +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/scatter.ts +/* harmony default export */ var scatter = ({ + /** + * Set scatter options + * @name scatter + * @memberof Options + * @type {object} + * @property {object} [scatter] scatter object + * @property {boolean} [scatter.zerobased=false] Set if min or max value will be 0 on scatter chart. + * @example + * scatter: { + * connectNull: true, + * step: { + * type: "step-after" + * }, + * + * // hide all data points ('point.show=false' also has similar effect) + * point: false, + * + * // show data points for only indicated datas + * point: [ + * "data1", "data3" + * ], + * + * zerobased: false + * } + */ + scatter_zerobased: false +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/spline.ts +/* harmony default export */ var spline = ({ + /** + * Set spline options + * - **Available interpolation type values:** + * - basis (d3.curveBasis) + * - basis-closed (d3.curveBasisClosed) + * - basis-open (d3.curveBasisOpen) + * - bundle (d3.curveBundle) + * - cardinal (d3.curveCardinal) + * - cardinal-closed (d3.curveCardinalClosed) + * - cardinal-open (d3.curveCardinalOpen) + * - catmull-rom (d3.curveCatmullRom) + * - catmull-rom-closed (d3.curveCatmullRomClosed) + * - catmull-rom-open (d3.curveCatmullRomOpen) + * - monotone-x (d3.curveMonotoneX) + * - monotone-y (d3.curveMonotoneY) + * - natural (d3.curveNatural) + * - linear-closed (d3.curveLinearClosed) + * - linear (d3.curveLinear) + * - step (d3.curveStep) + * - step-after (d3.curveStepAfter) + * - step-before (d3.curveStepBefore) + * @name spline + * @memberof Options + * @type {object} + * @property {object} spline Spline object + * @property {object} spline.interpolation Spline interpolation object + * @property {string} [spline.interpolation.type="cardinal"] Interpolation type + * @see [Interpolation (d3 v4)](http://bl.ocks.org/emmasaunders/c25a147970def2b02d8c7c2719dc7502) + * @example + * spline: { + * interpolation: { + * type: "cardinal" + * } + * } + */ + spline_interpolation_type: "cardinal" +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/arc.ts +/* harmony default export */ var shape_arc = ({ + /** + * Set arc options + * @name arc + * @memberof Options + * @type {object} + * @property {object} arc Arc object + * @property {number|Function} [arc.cornerRadius=0] Set corner radius of Arc(donut/gauge/pie/polar) shape. + * - **NOTE:** + * - Corner radius can't surpass the `(outerRadius - innerRadius) /2` of indicated shape. + * @property {number} [arc.cornerRadius.ratio=0] Set ratio relative of outer radius. + * @property {object} [arc.needle] Set needle options. + * @property {boolean} [arc.needle.show=false] Show or hide needle. + * @property {string} [arc.needle.color] Set needle filled color. + * @property {Function} [arc.needle.path] Set custom needle path function. + * - **NOTE:** + * - The path should be starting from 0,0 (which is center) to top center coordinate. + * - The function will receive, `length`{number} parameter which indicating the needle length in pixel relative to radius. + * @property {number} [arc.needle.value] Set needle value. + * - **NOTE:** + * - For single gauge chart, needle will point the data value by default, otherwise will point 0(zero). + * @property {number} [arc.needle.length=100] Set needle length in percentages relative to radius. + * @property {object} [arc.needle.top] Set needle top options. + * @property {number} [arc.needle.top.rx=0] Set needle top [rx radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.top.ry=0] Set needle top [ry radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.top.width=0] Set needle top width in pixel. + * @property {object} [arc.needle.bottom] Set needle bottom options. + * @property {number} [arc.needle.bottom.rx=1] Set needle bottom [rx radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.bottom.ry=1] Set needle bottom [ry radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve). + * @property {number} [arc.needle.bottom.width=15] Set needle bottom width in pixel. + * @property {number} [arc.needle.bottom.len=0] Set needle bottom length in pixel. Setting this value, will make bottom larger starting from center. + * @property {object} [arc.rangeText] Set rangeText options. + * @property {Array} [arc.rangeText.values] Set range text values to be shown around Arc. + * - When `unit: 'absolute'`: Given values are treated as absolute values. + * - When `unit: '%'`: Given values are treated as percentages. + * @property {string} [arc.rangeText.unit="absolute"] Specify the range text unit. + * - "absolute": Show absolute value + * - "%": Show percentage value + * @property {boolean} [arc.rangeText.fiexed=false] Set if range text shown will be fixed w/o data toggle update. Only available for gauge chart. + * @property {Function} [arc.rangeText.format] Set format function for the range text. + * @property {number} [arc.rangeText.position] Set position function or object for the range text. + * @see [Demo: Donut corner radius](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutCornerRadius) + * @see [Demo: Donut corner radius](https://naver.github.io/billboard.js/demo/#PieChartOptions.CornerRadius) + * @see [Demo: Donut needle](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutNeedle) + * @see [Demo: Donut RangeText](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutRangeText) + * @see [Demo: Gauge corner radius](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeCornerRadius) + * @see [Demo: Gauge needle](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeNeedle) + * @see [Demo: Gauge RangeText](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeRangeText) + * @example + * arc: { + * cornerRadius: 12, + * + * // can customize corner radius for each data with function callback + * // + * // The function will receive: + * // - id {string}: Data id + * // - value {number}: Data value + * // - outerRadius {number}: Outer radius value + * cornerRadius: function(id, value, outerRadius) { + * return (id === "data1" && value > 10) ? + * 50 : outerRadius * 1.2; + * }, + * + * // set ratio relative of outer radius + * cornerRadius: { + * ratio: 0.5 + * }, + * + * needle: { + * show: true, + * color: "red", // any valid CSS color + * path: function(length) { + * const len = length - 20; + * + * // will return upper arrow shape path + * // Note: The path should begun from '0,0' coordinate to top center. + * const path = `M 0 -${len + 20} + * L -12 -${len} + * L -5 -${len} + * L -5 0 + * A 1 1 0 0 0 5 0 + * L 5 -${len} + * L 12 -${len} Z`; + * + * return path; + * }, + * value: 40, // will make needle to point value 40. + * length: 80, // needle length in percentages relative to radius. + * + * top: { + * // rx and ry are the two radii of the ellipse; + * // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve + * rx: 1, + * ry: 1, + * width: 5 + * }, + * bottom: { + * // rx and ry are the two radii of the ellipse; + * // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve + * rx: 1, + * ry: 1, + * width: 10 + * len: 10 + * } + * }, + * + * rangeText: { + * values: [15, 30, 50, 75, 95], + * unit: "%", + * fixed: false, // only available for gauge chart + * format: function(v) { + * return v === 15 ? "Fifteen" : v; + * }, + * + * position: function(v) { + * return v === 15 ? {x: 20, y: 10} : null; // can return one props value also. + * }, + * position: {x: 10, y: 15}, + * position: {x: 10} + * } + * } + */ + arc_cornerRadius: 0, + arc_cornerRadius_ratio: 0, + arc_needle_show: false, + arc_needle_color: void 0, + arc_needle_value: void 0, + arc_needle_path: void 0, + arc_needle_length: 100, + arc_needle_top_rx: 0, + arc_needle_top_ry: 0, + arc_needle_top_width: 0, + arc_needle_bottom_rx: 1, + arc_needle_bottom_ry: 1, + arc_needle_bottom_width: 15, + arc_needle_bottom_len: 0, + arc_rangeText_values: void 0, + arc_rangeText_unit: "absolute", + arc_rangeText_fixed: false, + arc_rangeText_format: void 0, + arc_rangeText_position: void 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/donut.ts +/* harmony default export */ var donut = ({ + /** + * Set donut options + * @name donut + * @memberof Options + * @type {object} + * @property {object} donut Donut object + * @property {boolean} [donut.label.show=true] Show or hide label on each donut piece. + * @property {Function} [donut.label.format] Set formatter for the label on each donut piece. + * @property {number} [donut.label.threshold=0.05] Set threshold ratio to show/hide labels. + * @property {number|Function} [donut.label.ratio=undefined] Set ratio of labels position. + * @property {boolean} [donut.expand=true] Enable or disable expanding donut pieces. + * @property {number} [donut.expand.rate=0.98] Set expand rate. + * @property {number} [donut.expand.duration=50] Set expand transition time in ms. + * @property {number} [donut.width] Set width of donut chart. + * @property {string} [donut.title=""] Set title of donut chart. Use `\n` character for line break. + * - **NOTE:** + * - When `arc.needle.show=true` is set, special template `{=NEEDLE_VALUE}` can be used inside the title text to show current needle value. + * @property {number} [donut.padAngle=0] Set padding between data. + * @property {number} [donut.startingAngle=0] Set starting angle where data draws. + * @example + * donut: { + * label: { + * show: false, + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * + * // disable expand transition for interaction + * expand: false, + * + * expand: { + * // set duration of expand transition to 500ms. + * duration: 500, + * + * // set expand area rate + * rate: 1 + * }, + * + * width: 10, + * padAngle: 0.2, + * startingAngle: 1, + * title: "Donut Title" + * + * // when 'arc.needle.show=true' is set, can show current needle value. + * title: "Needle value:\n{=NEEDLE_VALUE}", + * + * // title with line break + * title: "Title1\nTitle2" + * } + */ + donut_label_show: true, + donut_label_format: void 0, + donut_label_threshold: 0.05, + donut_label_ratio: void 0, + donut_width: void 0, + donut_title: "", + donut_expand: {}, + donut_expand_rate: 0.98, + donut_expand_duration: 50, + donut_padAngle: 0, + donut_startingAngle: 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/funnel.ts +/* harmony default export */ var shape_funnel = ({ + /** + * Set funnel options + * @name funnel + * @memberof Options + * @type {object} + * @property {object} funnel Funnel object + * @property {number} [funnel.neck.width=0] Set funnel neck width. + * @property {number} [funnel.neck.height=0] Set funnel neck height. + * @property {number} [funnel.neck.width.ratio] Set funnel neck width in ratio. + * @property {number} [funnel.neck.height.ratio] Set funnel neck height in ratio. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.PolarChart) + * @example + * funnel: { + * neck: { + * width: 200, + * height: 100, + * + * // or specify as ratio value (relative to the chart size) + * width: { + * ratio: 0.5 + * }, + * height: { + * ratio: 0.5 + * } + * } + * } + */ + funnel_neck_width: 0, + funnel_neck_height: 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/gauge.ts +/* harmony default export */ var shape_gauge = ({ + /** + * Set gauge options + * @name gauge + * @memberof Options + * @type {object} + * @property {object} gauge Gauge object + * @property {boolean} [gauge.background=""] Set background color. (The `.bb-chart-arcs-background` element) + * @property {boolean} [gauge.fullCircle=false] Show full circle as donut. When set to 'true', the max label will not be showed due to start and end points are same location. + * @property {boolean} [gauge.label.show=true] Show or hide label on gauge. + * @property {Function} [gauge.label.extents] Set customized min/max label text. + * @property {Function} [gauge.label.format] Set formatter for the label on gauge. Label text can be multilined with `\n` character.<br> + * Will pass following arguments to the given function: + * - value {number}: absolute value + * - ratio {number}: value's ratio + * - id {string}: data's id value + * @property {number|Function} [gauge.label.ratio=undefined] Set ratio of labels position. + * @property {number} [gauge.label.threshold=0] Set threshold ratio to show/hide labels. + * @property {boolean} [gauge.expand=true] Enable or disable expanding gauge. + * @property {number} [gauge.expand.rate=0.98] Set expand rate. + * @property {number} [gauge.expand.duration=50] Set the expand transition time in milliseconds. + * @property {boolean} [gauge.enforceMinMax=false] Enforce to given min/max value. + * - When `gauge.min=50` and given value is `30`, gauge will render as empty value. + * - When `gauge.max=100` and given value is `120`, gauge will render till 100, not surpassing max value. + * @property {number} [gauge.min=0] Set min value of the gauge. + * @property {number} [gauge.max=100] Set max value of the gauge. + * @property {number} [gauge.startingAngle=-1 * Math.PI / 2] Set starting angle where data draws. + * + * **Limitations:** + * - when `gauge.fullCircle=false`: + * - -1 * Math.PI / 2 <= startingAngle <= Math.PI / 2 + * - `startingAngle <= -1 * Math.PI / 2` defaults to `-1 * Math.PI / 2` + * - `startingAngle >= Math.PI / 2` defaults to `Math.PI / 2` + * - when `gauge.fullCircle=true`: + * - -1 * Math.PI < startingAngle < Math.PI + * - `startingAngle < -1 * Math.PI` defaults to `Math.PI` + * - `startingAngle > Math.PI` defaults to `Math.PI` + * @property {number} [gauge.arcLength=100] Set the length of the arc to be drawn in percent from -100 to 100.<br> + * Negative value will draw the arc **counterclockwise**. Need to be used in conjunction with `gauge.fullCircle=true`. + * + * **Limitations:** + * - -100 <= arcLength (in percent) <= 100 + * - 'arcLength < -100' defaults to -100 + * - 'arcLength > 100' defaults to 100 + * @property {string} [gauge.title=""] Set title of gauge chart. Use `\n` character for line break. + * - **NOTE:** + * - When `arc.needle.show=true` is set, special template `{=NEEDLE_VALUE}` can be used inside the title text to show current needle value. + * @property {string} [gauge.units] Set units of the gauge. + * @property {number} [gauge.width] Set width of gauge chart. + * @property {string} [gauge.type="single"] Set type of gauge to be displayed.<br><br> + * **Available Values:** + * - single + * - multi + * @property {number} [gauge.arcs.minWidth=5] Set minimal width of gauge arcs until the innerRadius disappears. + * @see [Demo: enforceMinMax, min/max](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeMinMax) + * @see [Demo: archLength](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeArcLength) + * @see [Demo: startingAngle](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeStartingAngle) + * @see [Demo: labelRatio](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeLabelRatio) + * @example + * gauge: { + * background: "#eee", // will set 'fill' css prop for '.bb-chart-arcs-background' classed element. + * fullCircle: false, + * label: { + * show: false, + * format: function(value, ratio, id) { + * return value; + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * extents: function(value, isMax) { + * return (isMax ? "Max:" : "Min:") + value; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * + * // disable expand transition for interaction + * expand: false, + * + * expand: { + * // set duration of expand transition to 500ms. + * duration: 500, + * + * // set expand area rate + * rate: 1 + * }, + * + * // enforce min/max value. + * // when given value < min, will render as empty value. + * // when value > max, will render to given max value not surpassing it. + * enforceMinMax: true, + * + * min: -100, + * max: 200, + * type: "single" // or 'multi' + * title: "Title Text", + * + * // when 'arc.needle.show=true' is set, can show current needle value. + * title: "Needle value:\n{=NEEDLE_VALUE}", + * + * units: "%", + * width: 10, + * startingAngle: -1 * Math.PI / 2, + * arcLength: 100, + * arcs: { + * minWidth: 5 + * } + * } + */ + gauge_background: "", + gauge_fullCircle: false, + gauge_label_show: true, + gauge_label_extents: void 0, + gauge_label_format: void 0, + gauge_label_ratio: void 0, + gauge_label_threshold: 0, + gauge_enforceMinMax: false, + gauge_min: 0, + gauge_max: 100, + gauge_type: "single", + gauge_startingAngle: -1 * Math.PI / 2, + gauge_arcLength: 100, + gauge_title: "", + gauge_units: void 0, + gauge_width: void 0, + gauge_arcs_minWidth: 5, + gauge_expand: {}, + gauge_expand_rate: 0.98, + gauge_expand_duration: 50 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/pie.ts +/* harmony default export */ var shape_pie = ({ + /** + * Set pie options + * @name pie + * @memberof Options + * @type {object} + * @property {object} pie Pie object + * @property {boolean} [pie.label.show=true] Show or hide label on each pie piece. + * @property {Function} [pie.label.format] Set formatter for the label on each pie piece. + * @property {number|Function} [pie.label.ratio=undefined] Set ratio of labels position. + * @property {number} [pie.label.threshold=0.05] Set threshold ratio to show/hide labels. + * @property {boolean|object} [pie.expand=true] Enable or disable expanding pie pieces. + * @property {number} [pie.expand.rate=0.98] Set expand rate. + * @property {number} [pie.expand.duration=50] Set expand transition time in ms. + * @property {number|object} [pie.innerRadius=0] Sets the inner radius of pie arc. + * @property {number|object|undefined} [pie.outerRadius=undefined] Sets the outer radius of pie arc. + * @property {number} [pie.padAngle=0] Set padding between data. + * @property {number} [pie.padding=0] Sets the gap between pie arcs. + * @property {number} [pie.startingAngle=0] Set starting angle where data draws. + * @see [Demo: expand.rate](https://naver.github.io/billboard.js/demo/#PieChartOptions.ExpandRate) + * @see [Demo: innerRadius](https://naver.github.io/billboard.js/demo/#PieChartOptions.InnerRadius) + * @see [Demo: outerRadius](https://naver.github.io/billboard.js/demo/#PieChartOptions.OuterRadius) + * @see [Demo: startingAngle](https://naver.github.io/billboard.js/demo/#PieChartOptions.StartingAngle) + * @example + * pie: { + * label: { + * show: false, + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * + * // disable expand transition for interaction + * expand: false, + * + * expand: { + * // set duration of expand transition to 500ms. + * duration: 500, + * + * // set expand area rate + * rate: 1 + * }, + * + * innerRadius: 0, + * + * // set different innerRadius for each data + * innerRadius: { + * data1: 10, + * data2: 0 + * }, + * + * outerRadius: 100, + * + * // set different outerRadius for each data + * outerRadius: { + * data1: 50, + * data2: 100 + * } + * + * padAngle: 0.1, + * padding: 0, + * startingAngle: 1 + * } + */ + pie_label_show: true, + pie_label_format: void 0, + pie_label_ratio: void 0, + pie_label_threshold: 0.05, + pie_expand: {}, + pie_expand_rate: 0.98, + pie_expand_duration: 50, + pie_innerRadius: 0, + pie_outerRadius: void 0, + pie_padAngle: 0, + pie_padding: 0, + pie_startingAngle: 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/polar.ts +/* harmony default export */ var shape_polar = ({ + /** + * Set polar options + * @name polar + * @memberof Options + * @type {object} + * @property {object} polar Polar object + * @property {boolean} [polar.label.show=true] Show or hide label on each polar piece. + * @property {Function} [polar.label.format] Set formatter for the label on each polar piece. + * @property {number} [polar.label.threshold=0.05] Set threshold ratio to show/hide labels. + * @property {number|Function} [polar.label.ratio=undefined] Set ratio of labels position. + * @property {number} [polar.level.depth=3] Set the level depth. + * @property {boolean} [polar.level.show=true] Show or hide level. + * @property {string} [polar.level.text.backgroundColor="#fff"] Set label text's background color. + * @property {Function} [polar.level.text.format] Set format function for the level value.<br>- Default value: `(x) => x % 1 === 0 ? x : x.toFixed(2)` + * @property {boolean} [polar.level.text.show=true] Show or hide level text. + * @property {number} [polar.padAngle=0] Set padding between data. + * @property {number} [polar.padding=0] Sets the gap between pie arcs. + * @property {number} [polar.startingAngle=0] Set starting angle where data draws. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.PolarChart) + * @example + * polar: { + * label: { + * show: false, + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value. + * // if data value is below than 0.1, text label will be hidden. + * threshold: 0.1, + * + * // set ratio callback. Should return ratio value + * ratio: function(d, radius, h) { + * ... + * return ratio; + * }, + * // or set ratio number + * ratio: 0.5 + * }, + * level: { + * depth: 3, + * max: 500, + * show: true, + * text: { + * format: function(x) { + * return x + "%"; + * }, + * show: true, + * backgroundColor: "red" + * } + * }, + * padAngle: 0.1, + * padding: 0, + * startingAngle: 1 + * } + */ + polar_label_show: true, + polar_label_format: void 0, + polar_label_threshold: 0.05, + polar_label_ratio: void 0, + polar_level_depth: 3, + polar_level_max: void 0, + polar_level_show: true, + polar_level_text_backgroundColor: "#fff", + polar_level_text_format: (x) => x % 1 === 0 ? x : x.toFixed(2), + polar_level_text_show: true, + polar_padAngle: 0, + polar_padding: 0, + polar_startingAngle: 0 +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/radar.ts +/* harmony default export */ var shape_radar = ({ + /** + * Set radar options + * - **NOTE:** + * > When x tick text contains `\n`, it's used as line break. + * @name radar + * @memberof Options + * @type {object} + * @property {object} radar Radar object + * @property {number} [radar.axis.max=undefined] The max value of axis. If not given, it'll take the max value from the given data. + * @property {boolean} [radar.axis.line.show=true] Show or hide axis line. + * @property {number} [radar.axis.text.position.x=0] x coordinate position, relative the original. + * @property {number} [radar.axis.text.position.y=0] y coordinate position, relative the original. + * @property {boolean} [radar.axis.text.show=true] Show or hide axis text. + * @property {boolean} [radar.direction.clockwise=false] Set the direction to be drawn. + * @property {number} [radar.level.depth=3] Set the level depth. + * @property {boolean} [radar.level.show=true] Show or hide level. + * @property {Function} [radar.level.text.format] Set format function for the level value.<br>- Default value: `(x) => x % 1 === 0 ? x : x.toFixed(2)` + * @property {boolean} [radar.level.text.show=true] Show or hide level text. + * @property {number} [radar.size.ratio=0.87] Set size ratio. + * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.RadarChart) + * @see [Demo: radar axis](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarAxis) + * @see [Demo: radar level](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarLevel) + * @see [Demo: radar size](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarSize) + * @see [Demo: radar axis multiline](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarAxisMultiline) + * @example + * radar: { + * axis: { + * max: 50, + * line: { + * show: false + * }, + * text: { + * position: { + * x: 0, + * y: 0 + * }, + * show: false + * } + * }, + * direction: { + * clockwise: true + * }, + * level: { + * show: false, + * text: { + * format: function(x) { + * return x + "%"; + * }, + * show: true + * } + * }, + * size: { + * ratio: 0.7 + * } + * } + */ + radar_axis_max: void 0, + radar_axis_line_show: true, + radar_axis_text_show: true, + radar_axis_text_position: {}, + radar_level_depth: 3, + radar_level_show: true, + radar_level_text_format: (x) => x % 1 === 0 ? x : x.toFixed(2), + radar_level_text_show: true, + radar_size_ratio: 0.87, + radar_direction_clockwise: false +}); + +;// CONCATENATED MODULE: ./src/config/Options/shape/treemap.ts +/* harmony default export */ var Options_shape_treemap = ({ + /** + * Set treemap options + * @name treemap + * @memberof Options + * @type {object} + * @property {object} treemap Treemap object + * @property {string} [treemap.tile="binary"] Treemap tile type + * - **Available tile type values:** + * - binary ([d3.treemapBinary](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapBinary)) + * - dice ([d3.treemapDice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapDice)) + * - slice ([d3.treemapSlice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSlice)) + * - sliceDice ([d3.treemapSliceDice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSliceDice)) + * - squrify ([d3.treemapSquarify](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSquarify)) + * - resquarify ([d3.treemapResquarify](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapResquarify)) + * @property {Function} [treemap.label.format] Set formatter for the label text. + * @property {number} [treemap.label.threshold=0.05] Set threshold ratio to show/hide labels text. + * @property {number} [treemap.label.show=true] Show or hide label text. + * @see [Demo: treemap](https://naver.github.io/billboard.js/demo/#Chart.TreemapChart) + * @example + * treemap: { + * // "binary", "dice", "slice", "sliceDice", "squrify", "resquarify" + * tile: "dice", + * + * label: { + * // show or hide label text + * show: false, + * + * // set label text formatter + * format: function(value, ratio, id) { + * return d3.format("$")(value); + * + * // to multiline, return with '\n' character + * // return value +"%\nLine1\n2Line2"; + * }, + * + * // set ratio number + * ratio: 0.05 + * } + * } + */ + treemap_tile: "binary", + treemap_label_format: void 0, + treemap_label_threshold: 0.05, + treemap_label_show: true +}); + +;// CONCATENATED MODULE: ./src/config/resolver/shape.ts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +function extendAxis(module, option) { + util_extend(ChartInternal.prototype, Object.values(internal).concat(module)); + util_extend(Chart.prototype, api); + Options.setOptions(Object.values(options).concat(option || [])); +} +function extendLine(module, option) { + extendAxis([point_common, shape_point, line].concat(module || [])); + Options.setOptions([common_point, shape_line].concat(option || [])); +} +function extendArc(module, option) { + util_extend(ChartInternal.prototype, [arc, point_common].concat(module || [])); + Options.setOptions([common_point].concat(option || [])); +} +let resolver_shape_area = () => (extendLine(shape_area, [Options_shape_area]), (resolver_shape_area = () => TYPE.AREA)()); +let areaLineRange = () => (extendLine(shape_area, [Options_shape_area]), (areaLineRange = () => TYPE.AREA_LINE_RANGE)()); +let areaSpline = () => (extendLine(shape_area, [Options_shape_area, spline]), (areaSpline = () => TYPE.AREA_SPLINE)()); +let areaSplineRange = () => (extendLine(shape_area, [Options_shape_area, spline]), (areaSplineRange = () => TYPE.AREA_SPLINE_RANGE)()); +let areaStep = () => (extendLine(shape_area, [Options_shape_area]), (areaStep = () => TYPE.AREA_STEP)()); +let resolver_shape_line = () => (extendLine(), (resolver_shape_line = () => TYPE.LINE)()); +let shape_spline = () => (extendLine(void 0, [spline]), (shape_spline = () => TYPE.SPLINE)()); +let shape_step = () => (extendLine(), (shape_step = () => TYPE.STEP)()); +let shape_donut = () => (extendArc(void 0, [shape_arc, donut]), (shape_donut = () => TYPE.DONUT)()); +let resolver_shape_gauge = () => (extendArc([gauge], [shape_arc, shape_gauge]), (resolver_shape_gauge = () => TYPE.GAUGE)()); +let resolver_shape_pie = () => (extendArc(void 0, [shape_arc, shape_pie]), (resolver_shape_pie = () => TYPE.PIE)()); +let resolver_shape_polar = () => (extendArc([polar], [shape_arc, shape_polar]), (resolver_shape_polar = () => TYPE.POLAR)()); +let resolver_shape_radar = () => (extendArc( + [internal.eventrect, shape_point, radar], + [common_point, shape_radar, { axis_x_categories: options.optAxis.axis_x_categories }] +), (resolver_shape_radar = () => TYPE.RADAR)()); +let resolver_shape_bar = () => (extendAxis([bar, point_common], [shape_bar, common_point]), (resolver_shape_bar = () => TYPE.BAR)()); +let resolver_shape_bubble = () => (extendAxis( + [point_common, shape_point, bubble], + [shape_bubble, common_point] +), (resolver_shape_bubble = () => TYPE.BUBBLE)()); +let resolver_shape_candlestick = () => (extendAxis( + [candlestick, point_common], + [shape_candlestick, common_point] +), (resolver_shape_candlestick = () => TYPE.CANDLESTICK)()); +let shape_scatter = () => (extendAxis( + [point_common, shape_point], + [common_point, scatter] +), (shape_scatter = () => TYPE.SCATTER)()); +let resolver_shape_funnel = () => (extendArc([funnel], [shape_funnel]), (resolver_shape_funnel = () => TYPE.FUNNEL)()); +let resolver_shape_treemap = () => (extendAxis([shape_treemap], [Options_shape_treemap]), (resolver_shape_treemap = () => TYPE.TREEMAP)()); + +;// CONCATENATED MODULE: ./src/core.ts + + +let defaults = {}; +const bb = { + /** + * Version information + * @property {string} version version + * @example + * bb.version; // "1.0.0" + * @memberof bb + */ + version: "3.12.4", + /** + * Generate chart + * - **NOTE:** Bear in mind for the possiblity of ***throwing an error***, during the generation when: + * - Unused option value is given. + * - ex) For `data.type="pie"` option, setting 'axis' option can cause unexpected generation error. + * - Insufficient value is given for certain option used. + * - ex) `data: { x: "x", columns: [["x"], ["data1", 30, 200, 100]] }` + * @param {Options} config chart options + * @memberof bb + * @returns {Chart} + * @see {@link Options} for different generation options + * @see {@link Chart} for different methods API + * @example + * <!-- chart holder --> + * <div id="LineChart"></div> + * @example + * // Generate chart with options + * var chart = bb.generate({ + * "bindto": "#LineChart" + * "data": { + * "columns": [ + * ["data1", 30, 200, 100, 400, 150, 250], + * ["data2", 50, 20, 10, 40, 15, 25] + * ], + * "type": "line" + * } + * }); + * + * // call some API + * // ex) get the data of 'data1' + * chart.data("data1"); + * @example + * // Generate chart by importing ESM + * // Import types to be used only, where this will make smaller bundle size. + * import bb, { + * area, + * areaLineRange, + * areaSpline, + * areaSplineRange, + * areaStep, + * bar, + * bubble, + * donut, + * gauge, + * line, + * pie, + * polar, + * radar, + * scatter, + * spline, + * step + * } + * + * bb.generate({ + * "bindto": "#LineChart" + * "data": { + * "columns": [ + * ["data1", 30, 200, 100, 400, 150, 250], + * ["data2", 50, 20, 10, 40, 15, 25] + * ] + * }, + * type: line(), + * + * // or + * types: { + * data1: bar(), + * data2: step() + * } + * }); + */ + generate(config) { + const options = mergeObj({}, defaults, config); + const inst = new Chart(options); + inst.internal.charts = this.instance; + this.instance.push(inst); + return inst; + }, + /** + * Set or get global default options. + * - **NOTE:** + * - The options values settings are valid within page context only. + * - If is called multiple times, will override the last value. + * @param {Options} options chart options + * @memberof bb + * @returns {Options} + * @see {@link Options} + * @example + * // Set same option value as for `.generate()` + * bb.defaults({ + * data: { + * type: "bar" + * } + * }); + * + * bb.defaults(); // {data:{type: "bar"}} + * + * // data.type defaults to 'bar' + * var chart = bb.generate({ ... }); + */ + defaults(options) { + if (isObject(options)) { + defaults = options; + } + return defaults; + }, + /** + * An array containing instance created + * @property {Array} instance instance array + * @example + * // generate charts + * var chart1 = bb.generate(...); + * var chart2 = bb.generate(...); + * + * bb.instance; // [ chart1, chart2, ... ] + * @memberof bb + */ + instance: [], + /** + * Namespace for plugins + * @property {object} plugin plugin namespace + * @example + * // Stanford diagram plugin + * bb.plugin.stanford; + * @memberof bb + */ + plugin: {} +}; + + +;// CONCATENATED MODULE: ./src/index.ts + + +Object.keys(resolver_shape_namespaceObject).forEach((v) => resolver_shape_namespaceObject[v]()); +Object.keys(resolver_interaction_namespaceObject).forEach((v) => resolver_interaction_namespaceObject[v]()); + + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module used 'module' so it can't be inlined +/******/ __webpack_require__(0); +/******/ var __webpack_exports__ = __webpack_require__(560); +/******/ +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/billboard.pkgd.min.js b/release/3.12.4/dist/billboard.pkgd.min.js new file mode 100644 index 000000000..5a97b06af --- /dev/null +++ b/release/3.12.4/dist/billboard.pkgd.min.js @@ -0,0 +1,57 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * + * All-in-one packaged file for ease use of 'billboard.js' with dependant d3.js modules & polyfills. + * - @types/d3-selection ^3.0.0 + * - @types/d3-transition ^3.0.0 + * - d3-axis ^3.0.0 + * - d3-brush ^3.0.0 + * - d3-drag ^3.0.0 + * - d3-dsv ^3.0.1 + * - d3-ease ^3.0.1 + * - d3-hierarchy ^3.1.2 + * - d3-interpolate ^3.0.1 + * - d3-scale ^4.0.2 + * - d3-selection ^3.0.0 + * - d3-shape ^3.2.0 + * - d3-time-format ^4.1.0 + * - d3-transition ^3.0.1 + * - d3-zoom ^3.0.0 + */(function(Xa,Nn){if(typeof exports=="object"&&typeof module=="object")module.exports=Nn();else if(typeof define=="function"&&define.amd)define([],Nn);else{var Va=Nn();for(var x in Va)(typeof exports=="object"?exports:Xa)[x]=Va[x]}})(this,function(){return function(){"use strict";var Oo=[function(x,E,r){r(1),r(97),r(98),r(99),r(100),r(101),r(102),r(103),r(104),r(105),r(106),r(107),r(108),r(109),r(110),r(111),r(124),r(126),r(136),r(137),r(139),r(143),r(146),r(148),r(150),r(151),r(152),r(153),r(155),r(156),r(158),r(159),r(161),r(165),r(166),r(167),r(168),r(173),r(174),r(176),r(177),r(178),r(180),r(183),r(184),r(185),r(186),r(187),r(192),r(194),r(195),r(197),r(200),r(201),r(202),r(203),r(204),r(206),r(216),r(218),r(221),r(223),r(226),r(233),r(234),r(235),r(236),r(237),r(238),r(242),r(243),r(245),r(246),r(247),r(249),r(250),r(251),r(93),r(252),r(253),r(261),r(263),r(265),r(266),r(267),r(268),r(269),r(271),r(272),r(273),r(274),r(275),r(277),r(278),r(279),r(280),r(281),r(282),r(283),r(284),r(288),r(289),r(291),r(293),r(294),r(295),r(296),r(297),r(299),r(301),r(302),r(303),r(304),r(306),r(307),r(309),r(310),r(311),r(312),r(314),r(315),r(316),r(317),r(318),r(319),r(320),r(321),r(322),r(324),r(325),r(326),r(327),r(328),r(329),r(330),r(331),r(332),r(333),r(334),r(336),r(337),r(338),r(339),r(361),r(362),r(363),r(364),r(365),r(366),r(367),r(368),r(369),r(371),r(372),r(373),r(374),r(375),r(376),r(377),r(378),r(379),r(380),r(387),r(388),r(390),r(391),r(392),r(393),r(394),r(396),r(407),r(409),r(411),r(413),r(415),r(417),r(419),r(420),r(422),r(425),r(426),r(427),r(428),r(429),r(433),r(434),r(436),r(437),r(438),r(439),r(441),r(442),r(443),r(444),r(445),r(446),r(447),r(449),r(452),r(455),r(458),r(459),r(460),r(461),r(462),r(463),r(464),r(465),r(466),r(467),r(468),r(469),r(470),r(479),r(480),r(481),r(482),r(483),r(484),r(485),r(486),r(487),r(488),r(489),r(490),r(491),r(494),r(495),r(496),r(497),r(498),r(499),r(500),r(501),r(502),r(503),r(504),r(505),r(506),r(507),r(508),r(509),r(510),r(511),r(512),r(513),r(514),r(515),r(516),r(517),r(518),r(519),r(520),r(521),r(524),r(526),r(528),r(529),r(532),r(533),r(535),r(536),r(537),r(542),r(543),r(544),r(545),r(548),r(553),r(554),r(555),r(556),r(557),r(558),r(559),r(80)},function(x,E,r){r(2),r(90),r(92),r(93),r(96)},function(x,E,r){var f=r(3),d=r(4),h=r(8),p=r(14),y=r(36),T=r(6),$=r(26),A=r(7),b=r(38),R=r(24),O=r(46),C=r(12),w=r(18),D=r(68),L=r(11),F=r(71),j=r(73),U=r(57),z=r(75),Y=r(66),B=r(5),V=r(44),K=r(72),J=r(10),Z=r(47),_=r(77),nt=r(34),rt=r(53),q=r(54),tt=r(40),et=r(33),lt=r(78),vt=r(79),ft=r(81),bt=r(82),yt=r(51),Ft=r(83).forEach,Lt=rt("hidden"),jt="Symbol",Kt="prototype",Jt=yt.set,ge=yt.getterFor(jt),le=Object[Kt],ee=d.Symbol,Mt=ee&&ee[Kt],zt=d.RangeError,te=d.TypeError,ae=d.QObject,re=B.f,oe=V.f,Re=z.f,Ce=J.f,xe=p([].push),se=nt("symbols"),Ae=nt("op-symbols"),me=nt("wks"),ce=!ae||!ae[Kt]||!ae[Kt].findChild,Et=function(Ot,Pt,ot){var gt=re(le,Pt);gt&&delete le[Pt],oe(Ot,Pt,ot),gt&&Ot!==le&&oe(le,Pt,gt)},Bt=T&&A(function(){return F(oe({},"a",{get:function(){return oe(this,"a",{value:7}).a}})).a!==7})?Et:oe,$t=function(Ot,Pt){var ot=se[Ot]=F(Mt);return Jt(ot,{type:jt,tag:Ot,description:Pt}),T||(ot.description=Pt),ot},kt=function(Pt,ot,gt){Pt===le&&kt(Ae,ot,gt),O(Pt);var ct=w(ot);return O(gt),b(se,ct)?(gt.enumerable?(b(Pt,Lt)&&Pt[Lt][ct]&&(Pt[Lt][ct]=!1),gt=F(gt,{enumerable:L(0,!1)})):(b(Pt,Lt)||oe(Pt,Lt,L(1,F(null))),Pt[Lt][ct]=!0),Bt(Pt,ct,gt)):oe(Pt,ct,gt)},Qt=function(Pt,ot){O(Pt);var gt=C(ot),ct=j(gt).concat(dt(gt));return Ft(ct,function(Nt){(!T||h(Ut,gt,Nt))&&kt(Pt,Nt,gt[Nt])}),Pt},Vt=function(Pt,ot){return ot===void 0?F(Pt):Qt(F(Pt),ot)},Ut=function(Pt){var ot=w(Pt),gt=h(Ce,this,ot);return this===le&&b(se,ot)&&!b(Ae,ot)?!1:gt||!b(this,ot)||!b(se,ot)||b(this,Lt)&&this[Lt][ot]?gt:!0},we=function(Pt,ot){var gt=C(Pt),ct=w(ot);if(!(gt===le&&b(se,ct)&&!b(Ae,ct))){var Nt=re(gt,ct);return Nt&&b(se,ct)&&!(b(gt,Lt)&>[Lt][ct])&&(Nt.enumerable=!0),Nt}},Ye=function(Pt){var ot=Re(C(Pt)),gt=[];return Ft(ot,function(ct){!b(se,ct)&&!b(q,ct)&&xe(gt,ct)}),gt},dt=function(Ot){var Pt=Ot===le,ot=Re(Pt?Ae:C(Ot)),gt=[];return Ft(ot,function(ct){b(se,ct)&&(!Pt||b(le,ct))&&xe(gt,se[ct])}),gt};$||(ee=function(){if(R(Mt,this))throw new te("Symbol is not a constructor");var Pt=!arguments.length||arguments[0]===void 0?void 0:D(arguments[0]),ot=tt(Pt),gt=function(ct){var Nt=this===void 0?d:this;Nt===le&&h(gt,Ae,ct),b(Nt,Lt)&&b(Nt[Lt],ot)&&(Nt[Lt][ot]=!1);var qt=L(1,ct);try{Bt(Nt,ot,qt)}catch(ie){if(!(ie instanceof zt))throw ie;Et(Nt,ot,qt)}};return T&&ce&&Bt(le,ot,{configurable:!0,set:gt}),$t(ot,Pt)},Mt=ee[Kt],Z(Mt,"toString",function(){return ge(this).tag}),Z(ee,"withoutSetter",function(Ot){return $t(tt(Ot),Ot)}),J.f=Ut,V.f=kt,K.f=Qt,B.f=we,U.f=z.f=Ye,Y.f=dt,lt.f=function(Ot){return $t(et(Ot),Ot)},T&&(_(Mt,"description",{configurable:!0,get:function(){return ge(this).description}}),y||Z(le,"propertyIsEnumerable",Ut,{unsafe:!0}))),f({global:!0,constructor:!0,wrap:!0,forced:!$,sham:!$},{Symbol:ee}),Ft(j(me),function(Ot){vt(Ot)}),f({target:jt,stat:!0,forced:!$},{useSetter:function(){ce=!0},useSimple:function(){ce=!1}}),f({target:"Object",stat:!0,forced:!$,sham:!T},{create:Vt,defineProperty:kt,defineProperties:Qt,getOwnPropertyDescriptor:we}),f({target:"Object",stat:!0,forced:!$},{getOwnPropertyNames:Ye}),ft(),bt(ee,jt),q[Lt]=!0},function(x,E,r){var f=r(4),d=r(5).f,h=r(43),p=r(47),y=r(37),T=r(55),$=r(67);x.exports=function(A,b){var R=A.target,O=A.global,C=A.stat,w,D,L,F,j,U;if(O?D=f:C?D=f[R]||y(R,{}):D=f[R]&&f[R].prototype,D)for(L in b){if(j=b[L],A.dontCallGetSet?(U=d(D,L),F=U&&U.value):F=D[L],w=$(O?L:R+(C?".":"#")+L,A.forced),!w&&F!==void 0){if(typeof j==typeof F)continue;T(j,F)}(A.sham||F&&F.sham)&&h(j,"sham",!0),p(D,L,j,A)}}},function(x){var E=function(r){return r&&r.Math===Math&&r};x.exports=E(typeof globalThis=="object"&&globalThis)||E(typeof window=="object"&&window)||E(typeof self=="object"&&self)||E(typeof global=="object"&&global)||E(typeof this=="object"&&this)||function(){return this}()||Function("return this")()},function(x,E,r){var f=r(6),d=r(8),h=r(10),p=r(11),y=r(12),T=r(18),$=r(38),A=r(41),b=Object.getOwnPropertyDescriptor;E.f=f?b:function(O,C){if(O=y(O),C=T(C),A)try{return b(O,C)}catch(w){}if($(O,C))return p(!d(h.f,O,C),O[C])}},function(x,E,r){var f=r(7);x.exports=!f(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})},function(x){x.exports=function(E){try{return!!E()}catch(r){return!0}}},function(x,E,r){var f=r(9),d=Function.prototype.call;x.exports=f?d.bind(d):function(){return d.apply(d,arguments)}},function(x,E,r){var f=r(7);x.exports=!f(function(){var d=function(){}.bind();return typeof d!="function"||d.hasOwnProperty("prototype")})},function(x,E){var r={}.propertyIsEnumerable,f=Object.getOwnPropertyDescriptor,d=f&&!r.call({1:2},1);E.f=d?function(p){var y=f(this,p);return!!y&&y.enumerable}:r},function(x){x.exports=function(E,r){return{enumerable:!(E&1),configurable:!(E&2),writable:!(E&4),value:r}}},function(x,E,r){var f=r(13),d=r(16);x.exports=function(h){return f(d(h))}},function(x,E,r){var f=r(14),d=r(7),h=r(15),p=Object,y=f("".split);x.exports=d(function(){return!p("z").propertyIsEnumerable(0)})?function(T){return h(T)==="String"?y(T,""):p(T)}:p},function(x,E,r){var f=r(9),d=Function.prototype,h=d.call,p=f&&d.bind.bind(h,h);x.exports=f?p:function(y){return function(){return h.apply(y,arguments)}}},function(x,E,r){var f=r(14),d=f({}.toString),h=f("".slice);x.exports=function(p){return h(d(p),8,-1)}},function(x,E,r){var f=r(17),d=TypeError;x.exports=function(h){if(f(h))throw new d("Can't call method on "+h);return h}},function(x){x.exports=function(E){return E==null}},function(x,E,r){var f=r(19),d=r(22);x.exports=function(h){var p=f(h,"string");return d(p)?p:p+""}},function(x,E,r){var f=r(8),d=r(20),h=r(22),p=r(29),y=r(32),T=r(33),$=TypeError,A=T("toPrimitive");x.exports=function(b,R){if(!d(b)||h(b))return b;var O=p(b,A),C;if(O){if(R===void 0&&(R="default"),C=f(O,b,R),!d(C)||h(C))return C;throw new $("Can't convert object to primitive value")}return R===void 0&&(R="number"),y(b,R)}},function(x,E,r){var f=r(21);x.exports=function(d){return typeof d=="object"?d!==null:f(d)}},function(x){var E=typeof document=="object"&&document.all;x.exports=typeof E=="undefined"&&E!==void 0?function(r){return typeof r=="function"||r===E}:function(r){return typeof r=="function"}},function(x,E,r){var f=r(23),d=r(21),h=r(24),p=r(25),y=Object;x.exports=p?function(T){return typeof T=="symbol"}:function(T){var $=f("Symbol");return d($)&&h($.prototype,y(T))}},function(x,E,r){var f=r(4),d=r(21),h=function(p){return d(p)?p:void 0};x.exports=function(p,y){return arguments.length<2?h(f[p]):f[p]&&f[p][y]}},function(x,E,r){var f=r(14);x.exports=f({}.isPrototypeOf)},function(x,E,r){var f=r(26);x.exports=f&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},function(x,E,r){var f=r(27),d=r(7),h=r(4),p=h.String;x.exports=!!Object.getOwnPropertySymbols&&!d(function(){var y=Symbol("symbol detection");return!p(y)||!(Object(y)instanceof Symbol)||!Symbol.sham&&f&&f<41})},function(x,E,r){var f=r(4),d=r(28),h=f.process,p=f.Deno,y=h&&h.versions||p&&p.version,T=y&&y.v8,$,A;T&&($=T.split("."),A=$[0]>0&&$[0]<4?1:+($[0]+$[1])),!A&&d&&($=d.match(/Edge\/(\d+)/),(!$||$[1]>=74)&&($=d.match(/Chrome\/(\d+)/),$&&(A=+$[1]))),x.exports=A},function(x){x.exports=typeof navigator!="undefined"&&String(navigator.userAgent)||""},function(x,E,r){var f=r(30),d=r(17);x.exports=function(h,p){var y=h[p];return d(y)?void 0:f(y)}},function(x,E,r){var f=r(21),d=r(31),h=TypeError;x.exports=function(p){if(f(p))return p;throw new h(d(p)+" is not a function")}},function(x){var E=String;x.exports=function(r){try{return E(r)}catch(f){return"Object"}}},function(x,E,r){var f=r(8),d=r(21),h=r(20),p=TypeError;x.exports=function(y,T){var $,A;if(T==="string"&&d($=y.toString)&&!h(A=f($,y))||d($=y.valueOf)&&!h(A=f($,y))||T!=="string"&&d($=y.toString)&&!h(A=f($,y)))return A;throw new p("Can't convert object to primitive value")}},function(x,E,r){var f=r(4),d=r(34),h=r(38),p=r(40),y=r(26),T=r(25),$=f.Symbol,A=d("wks"),b=T?$.for||$:$&&$.withoutSetter||p;x.exports=function(R){return h(A,R)||(A[R]=y&&h($,R)?$[R]:b("Symbol."+R)),A[R]}},function(x,E,r){var f=r(35);x.exports=function(d,h){return f[d]||(f[d]=h||{})}},function(x,E,r){var f=r(36),d=r(4),h=r(37),p="__core-js_shared__",y=x.exports=d[p]||h(p,{});(y.versions||(y.versions=[])).push({version:"3.37.1",mode:f?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE",source:"https://github.com/zloirock/core-js"})},function(x){x.exports=!1},function(x,E,r){var f=r(4),d=Object.defineProperty;x.exports=function(h,p){try{d(f,h,{value:p,configurable:!0,writable:!0})}catch(y){f[h]=p}return p}},function(x,E,r){var f=r(14),d=r(39),h=f({}.hasOwnProperty);x.exports=Object.hasOwn||function(y,T){return h(d(y),T)}},function(x,E,r){var f=r(16),d=Object;x.exports=function(h){return d(f(h))}},function(x,E,r){var f=r(14),d=0,h=Math.random(),p=f(1 .toString);x.exports=function(y){return"Symbol("+(y===void 0?"":y)+")_"+p(++d+h,36)}},function(x,E,r){var f=r(6),d=r(7),h=r(42);x.exports=!f&&!d(function(){return Object.defineProperty(h("div"),"a",{get:function(){return 7}}).a!==7})},function(x,E,r){var f=r(4),d=r(20),h=f.document,p=d(h)&&d(h.createElement);x.exports=function(y){return p?h.createElement(y):{}}},function(x,E,r){var f=r(6),d=r(44),h=r(11);x.exports=f?function(p,y,T){return d.f(p,y,h(1,T))}:function(p,y,T){return p[y]=T,p}},function(x,E,r){var f=r(6),d=r(41),h=r(45),p=r(46),y=r(18),T=TypeError,$=Object.defineProperty,A=Object.getOwnPropertyDescriptor,b="enumerable",R="configurable",O="writable";E.f=f?h?function(w,D,L){if(p(w),D=y(D),p(L),typeof w=="function"&&D==="prototype"&&"value"in L&&O in L&&!L[O]){var F=A(w,D);F&&F[O]&&(w[D]=L.value,L={configurable:R in L?L[R]:F[R],enumerable:b in L?L[b]:F[b],writable:!1})}return $(w,D,L)}:$:function(w,D,L){if(p(w),D=y(D),p(L),d)try{return $(w,D,L)}catch(F){}if("get"in L||"set"in L)throw new T("Accessors not supported");return"value"in L&&(w[D]=L.value),w}},function(x,E,r){var f=r(6),d=r(7);x.exports=f&&d(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})},function(x,E,r){var f=r(20),d=String,h=TypeError;x.exports=function(p){if(f(p))return p;throw new h(d(p)+" is not an object")}},function(x,E,r){var f=r(21),d=r(44),h=r(48),p=r(37);x.exports=function(y,T,$,A){A||(A={});var b=A.enumerable,R=A.name!==void 0?A.name:T;if(f($)&&h($,R,A),A.global)b?y[T]=$:p(T,$);else{try{A.unsafe?y[T]&&(b=!0):delete y[T]}catch(O){}b?y[T]=$:d.f(y,T,{value:$,enumerable:!1,configurable:!A.nonConfigurable,writable:!A.nonWritable})}return y}},function(x,E,r){var f=r(14),d=r(7),h=r(21),p=r(38),y=r(6),T=r(49).CONFIGURABLE,$=r(50),A=r(51),b=A.enforce,R=A.get,O=String,C=Object.defineProperty,w=f("".slice),D=f("".replace),L=f([].join),F=y&&!d(function(){return C(function(){},"length",{value:8}).length!==8}),j=String(String).split("String"),U=x.exports=function(z,Y,B){w(O(Y),0,7)==="Symbol("&&(Y="["+D(O(Y),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),B&&B.getter&&(Y="get "+Y),B&&B.setter&&(Y="set "+Y),(!p(z,"name")||T&&z.name!==Y)&&(y?C(z,"name",{value:Y,configurable:!0}):z.name=Y),F&&B&&p(B,"arity")&&z.length!==B.arity&&C(z,"length",{value:B.arity});try{B&&p(B,"constructor")&&B.constructor?y&&C(z,"prototype",{writable:!1}):z.prototype&&(z.prototype=void 0)}catch(K){}var V=b(z);return p(V,"source")||(V.source=L(j,typeof Y=="string"?Y:"")),z};Function.prototype.toString=U(function(){return h(this)&&R(this).source||$(this)},"toString")},function(x,E,r){var f=r(6),d=r(38),h=Function.prototype,p=f&&Object.getOwnPropertyDescriptor,y=d(h,"name"),T=y&&function(){}.name==="something",$=y&&(!f||f&&p(h,"name").configurable);x.exports={EXISTS:y,PROPER:T,CONFIGURABLE:$}},function(x,E,r){var f=r(14),d=r(21),h=r(35),p=f(Function.toString);d(h.inspectSource)||(h.inspectSource=function(y){return p(y)}),x.exports=h.inspectSource},function(x,E,r){var f=r(52),d=r(4),h=r(20),p=r(43),y=r(38),T=r(35),$=r(53),A=r(54),b="Object already initialized",R=d.TypeError,O=d.WeakMap,C,w,D,L=function(z){return D(z)?w(z):C(z,{})},F=function(z){return function(Y){var B;if(!h(Y)||(B=w(Y)).type!==z)throw new R("Incompatible receiver, "+z+" required");return B}};if(f||T.state){var j=T.state||(T.state=new O);j.get=j.get,j.has=j.has,j.set=j.set,C=function(z,Y){if(j.has(z))throw new R(b);return Y.facade=z,j.set(z,Y),Y},w=function(z){return j.get(z)||{}},D=function(z){return j.has(z)}}else{var U=$("state");A[U]=!0,C=function(z,Y){if(y(z,U))throw new R(b);return Y.facade=z,p(z,U,Y),Y},w=function(z){return y(z,U)?z[U]:{}},D=function(z){return y(z,U)}}x.exports={set:C,get:w,has:D,enforce:L,getterFor:F}},function(x,E,r){var f=r(4),d=r(21),h=f.WeakMap;x.exports=d(h)&&/native code/.test(String(h))},function(x,E,r){var f=r(34),d=r(40),h=f("keys");x.exports=function(p){return h[p]||(h[p]=d(p))}},function(x){x.exports={}},function(x,E,r){var f=r(38),d=r(56),h=r(5),p=r(44);x.exports=function(y,T,$){for(var A=d(T),b=p.f,R=h.f,O=0;O<A.length;O++){var C=A[O];!f(y,C)&&!($&&f($,C))&&b(y,C,R(T,C))}}},function(x,E,r){var f=r(23),d=r(14),h=r(57),p=r(66),y=r(46),T=d([].concat);x.exports=f("Reflect","ownKeys")||function(A){var b=h.f(y(A)),R=p.f;return R?T(b,R(A)):b}},function(x,E,r){var f=r(58),d=r(65),h=d.concat("length","prototype");E.f=Object.getOwnPropertyNames||function(y){return f(y,h)}},function(x,E,r){var f=r(14),d=r(38),h=r(12),p=r(59).indexOf,y=r(54),T=f([].push);x.exports=function($,A){var b=h($),R=0,O=[],C;for(C in b)!d(y,C)&&d(b,C)&&T(O,C);for(;A.length>R;)d(b,C=A[R++])&&(~p(O,C)||T(O,C));return O}},function(x,E,r){var f=r(12),d=r(60),h=r(63),p=function(y){return function(T,$,A){var b=f(T),R=h(b);if(R===0)return!y&&-1;var O=d(A,R),C;if(y&&$!==$){for(;R>O;)if(C=b[O++],C!==C)return!0}else for(;R>O;O++)if((y||O in b)&&b[O]===$)return y||O||0;return!y&&-1}};x.exports={includes:p(!0),indexOf:p(!1)}},function(x,E,r){var f=r(61),d=Math.max,h=Math.min;x.exports=function(p,y){var T=f(p);return T<0?d(T+y,0):h(T,y)}},function(x,E,r){var f=r(62);x.exports=function(d){var h=+d;return h!==h||h===0?0:f(h)}},function(x){var E=Math.ceil,r=Math.floor;x.exports=Math.trunc||function(d){var h=+d;return(h>0?r:E)(h)}},function(x,E,r){var f=r(64);x.exports=function(d){return f(d.length)}},function(x,E,r){var f=r(61),d=Math.min;x.exports=function(h){var p=f(h);return p>0?d(p,9007199254740991):0}},function(x){x.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(x,E){E.f=Object.getOwnPropertySymbols},function(x,E,r){var f=r(7),d=r(21),h=/#|\.prototype\./,p=function(b,R){var O=T[y(b)];return O===A?!0:O===$?!1:d(R)?f(R):!!R},y=p.normalize=function(b){return String(b).replace(h,".").toLowerCase()},T=p.data={},$=p.NATIVE="N",A=p.POLYFILL="P";x.exports=p},function(x,E,r){var f=r(69),d=String;x.exports=function(h){if(f(h)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return d(h)}},function(x,E,r){var f=r(70),d=r(21),h=r(15),p=r(33),y=p("toStringTag"),T=Object,$=h(function(){return arguments}())==="Arguments",A=function(b,R){try{return b[R]}catch(O){}};x.exports=f?h:function(b){var R,O,C;return b===void 0?"Undefined":b===null?"Null":typeof(O=A(R=T(b),y))=="string"?O:$?h(R):(C=h(R))==="Object"&&d(R.callee)?"Arguments":C}},function(x,E,r){var f=r(33),d=f("toStringTag"),h={};h[d]="z",x.exports=String(h)==="[object z]"},function(x,E,r){var f=r(46),d=r(72),h=r(65),p=r(54),y=r(74),T=r(42),$=r(53),A=">",b="<",R="prototype",O="script",C=$("IE_PROTO"),w=function(){},D=function(z){return b+O+A+z+b+"/"+O+A},L=function(z){z.write(D("")),z.close();var Y=z.parentWindow.Object;return z=null,Y},F=function(){var z=T("iframe"),Y="java"+O+":",B;return z.style.display="none",y.appendChild(z),z.src=String(Y),B=z.contentWindow.document,B.open(),B.write(D("document.F=Object")),B.close(),B.F},j,U=function(){try{j=new ActiveXObject("htmlfile")}catch(Y){}U=typeof document!="undefined"?document.domain&&j?L(j):F():L(j);for(var z=h.length;z--;)delete U[R][h[z]];return U()};p[C]=!0,x.exports=Object.create||function(Y,B){var V;return Y!==null?(w[R]=f(Y),V=new w,w[R]=null,V[C]=Y):V=U(),B===void 0?V:d.f(V,B)}},function(x,E,r){var f=r(6),d=r(45),h=r(44),p=r(46),y=r(12),T=r(73);E.f=f&&!d?Object.defineProperties:function(A,b){p(A);for(var R=y(b),O=T(b),C=O.length,w=0,D;C>w;)h.f(A,D=O[w++],R[D]);return A}},function(x,E,r){var f=r(58),d=r(65);x.exports=Object.keys||function(p){return f(p,d)}},function(x,E,r){var f=r(23);x.exports=f("document","documentElement")},function(x,E,r){var f=r(15),d=r(12),h=r(57).f,p=r(76),y=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],T=function($){try{return h($)}catch(A){return p(y)}};x.exports.f=function(A){return y&&f(A)==="Window"?T(A):h(d(A))}},function(x,E,r){var f=r(14);x.exports=f([].slice)},function(x,E,r){var f=r(48),d=r(44);x.exports=function(h,p,y){return y.get&&f(y.get,p,{getter:!0}),y.set&&f(y.set,p,{setter:!0}),d.f(h,p,y)}},function(x,E,r){var f=r(33);E.f=f},function(x,E,r){var f=r(80),d=r(38),h=r(78),p=r(44).f;x.exports=function(y){var T=f.Symbol||(f.Symbol={});d(T,y)||p(T,y,{value:h.f(y)})}},function(x,E,r){var f=r(4);x.exports=f},function(x,E,r){var f=r(8),d=r(23),h=r(33),p=r(47);x.exports=function(){var y=d("Symbol"),T=y&&y.prototype,$=T&&T.valueOf,A=h("toPrimitive");T&&!T[A]&&p(T,A,function(b){return f($,this)},{arity:1})}},function(x,E,r){var f=r(44).f,d=r(38),h=r(33),p=h("toStringTag");x.exports=function(y,T,$){y&&!$&&(y=y.prototype),y&&!d(y,p)&&f(y,p,{configurable:!0,value:T})}},function(x,E,r){var f=r(84),d=r(14),h=r(13),p=r(39),y=r(63),T=r(86),$=d([].push),A=function(b){var R=b===1,O=b===2,C=b===3,w=b===4,D=b===6,L=b===7,F=b===5||D;return function(j,U,z,Y){for(var B=p(j),V=h(B),K=y(V),J=f(U,z),Z=0,_=Y||T,nt=R?_(j,K):O||L?_(j,0):void 0,rt,q;K>Z;Z++)if((F||Z in V)&&(rt=V[Z],q=J(rt,Z,B),b))if(R)nt[Z]=q;else if(q)switch(b){case 3:return!0;case 5:return rt;case 6:return Z;case 2:$(nt,rt)}else switch(b){case 4:return!1;case 7:$(nt,rt)}return D?-1:C||w?w:nt}};x.exports={forEach:A(0),map:A(1),filter:A(2),some:A(3),every:A(4),find:A(5),findIndex:A(6),filterReject:A(7)}},function(x,E,r){var f=r(85),d=r(30),h=r(9),p=f(f.bind);x.exports=function(y,T){return d(y),T===void 0?y:h?p(y,T):function(){return y.apply(T,arguments)}}},function(x,E,r){var f=r(15),d=r(14);x.exports=function(h){if(f(h)==="Function")return d(h)}},function(x,E,r){var f=r(87);x.exports=function(d,h){return new(f(d))(h===0?0:h)}},function(x,E,r){var f=r(88),d=r(89),h=r(20),p=r(33),y=p("species"),T=Array;x.exports=function($){var A;return f($)&&(A=$.constructor,d(A)&&(A===T||f(A.prototype))?A=void 0:h(A)&&(A=A[y],A===null&&(A=void 0))),A===void 0?T:A}},function(x,E,r){var f=r(15);x.exports=Array.isArray||function(h){return f(h)==="Array"}},function(x,E,r){var f=r(14),d=r(7),h=r(21),p=r(69),y=r(23),T=r(50),$=function(){},A=y("Reflect","construct"),b=/^\s*(?:class|function)\b/,R=f(b.exec),O=!b.test($),C=function(L){if(!h(L))return!1;try{return A($,[],L),!0}catch(F){return!1}},w=function(L){if(!h(L))return!1;switch(p(L)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return O||!!R(b,T(L))}catch(F){return!0}};w.sham=!0,x.exports=!A||d(function(){var D;return C(C.call)||!C(Object)||!C(function(){D=!0})||D})?w:C},function(x,E,r){var f=r(3),d=r(23),h=r(38),p=r(68),y=r(34),T=r(91),$=y("string-to-symbol-registry"),A=y("symbol-to-string-registry");f({target:"Symbol",stat:!0,forced:!T},{for:function(b){var R=p(b);if(h($,R))return $[R];var O=d("Symbol")(R);return $[R]=O,A[O]=R,O}})},function(x,E,r){var f=r(26);x.exports=f&&!!Symbol.for&&!!Symbol.keyFor},function(x,E,r){var f=r(3),d=r(38),h=r(22),p=r(31),y=r(34),T=r(91),$=y("symbol-to-string-registry");f({target:"Symbol",stat:!0,forced:!T},{keyFor:function(b){if(!h(b))throw new TypeError(p(b)+" is not a symbol");if(d($,b))return $[b]}})},function(x,E,r){var f=r(3),d=r(23),h=r(94),p=r(8),y=r(14),T=r(7),$=r(21),A=r(22),b=r(76),R=r(95),O=r(26),C=String,w=d("JSON","stringify"),D=y(/./.exec),L=y("".charAt),F=y("".charCodeAt),j=y("".replace),U=y(1 .toString),z=/[\uD800-\uDFFF]/g,Y=/^[\uD800-\uDBFF]$/,B=/^[\uDC00-\uDFFF]$/,V=!O||T(function(){var _=d("Symbol")("stringify detection");return w([_])!=="[null]"||w({a:_})!=="{}"||w(Object(_))!=="{}"}),K=T(function(){return w("\uDF06\uD834")!=='"\\udf06\\ud834"'||w("\uDEAD")!=='"\\udead"'}),J=function(_,nt){var rt=b(arguments),q=R(nt);if(!(!$(q)&&(_===void 0||A(_))))return rt[1]=function(tt,et){if($(q)&&(et=p(q,this,C(tt),et)),!A(et))return et},h(w,null,rt)},Z=function(_,nt,rt){var q=L(rt,nt-1),tt=L(rt,nt+1);return D(Y,_)&&!D(B,tt)||D(B,_)&&!D(Y,q)?"\\u"+U(F(_,0),16):_};w&&f({target:"JSON",stat:!0,arity:3,forced:V||K},{stringify:function(nt,rt,q){var tt=b(arguments),et=h(V?J:w,null,tt);return K&&typeof et=="string"?j(et,z,Z):et}})},function(x,E,r){var f=r(9),d=Function.prototype,h=d.apply,p=d.call;x.exports=typeof Reflect=="object"&&Reflect.apply||(f?p.bind(h):function(){return p.apply(h,arguments)})},function(x,E,r){var f=r(14),d=r(88),h=r(21),p=r(15),y=r(68),T=f([].push);x.exports=function($){if(h($))return $;if(d($)){for(var A=$.length,b=[],R=0;R<A;R++){var O=$[R];typeof O=="string"?T(b,O):(typeof O=="number"||p(O)==="Number"||p(O)==="String")&&T(b,y(O))}var C=b.length,w=!0;return function(D,L){if(w)return w=!1,L;if(d(this))return L;for(var F=0;F<C;F++)if(b[F]===D)return L}}}},function(x,E,r){var f=r(3),d=r(26),h=r(7),p=r(66),y=r(39),T=!d||h(function(){p.f(1)});f({target:"Object",stat:!0,forced:T},{getOwnPropertySymbols:function(A){var b=p.f;return b?b(y(A)):[]}})},function(x,E,r){var f=r(3),d=r(6),h=r(4),p=r(14),y=r(38),T=r(21),$=r(24),A=r(68),b=r(77),R=r(55),O=h.Symbol,C=O&&O.prototype;if(d&&T(O)&&(!("description"in C)||O().description!==void 0)){var w={},D=function(){var V=arguments.length<1||arguments[0]===void 0?void 0:A(arguments[0]),K=$(C,this)?new O(V):V===void 0?O():O(V);return V===""&&(w[K]=!0),K};R(D,O),D.prototype=C,C.constructor=D;var L=String(O("description detection"))==="Symbol(description detection)",F=p(C.valueOf),j=p(C.toString),U=/^Symbol\((.*)\)[^)]+$/,z=p("".replace),Y=p("".slice);b(C,"description",{configurable:!0,get:function(){var V=F(this);if(y(w,V))return"";var K=j(V),J=L?Y(K,7,-1):z(K,U,"$1");return J===""?void 0:J}}),f({global:!0,constructor:!0,forced:!0},{Symbol:D})}},function(x,E,r){var f=r(79);f("asyncIterator")},function(x,E,r){var f=r(79);f("hasInstance")},function(x,E,r){var f=r(79);f("isConcatSpreadable")},function(x,E,r){var f=r(79);f("iterator")},function(x,E,r){var f=r(79);f("match")},function(x,E,r){var f=r(79);f("matchAll")},function(x,E,r){var f=r(79);f("replace")},function(x,E,r){var f=r(79);f("search")},function(x,E,r){var f=r(79);f("species")},function(x,E,r){var f=r(79);f("split")},function(x,E,r){var f=r(79),d=r(81);f("toPrimitive"),d()},function(x,E,r){var f=r(23),d=r(79),h=r(82);d("toStringTag"),h(f("Symbol"),"Symbol")},function(x,E,r){var f=r(79);f("unscopables")},function(x,E,r){var f=r(3),d=r(4),h=r(94),p=r(112),y="WebAssembly",T=d[y],$=new Error("e",{cause:7}).cause!==7,A=function(R,O){var C={};C[R]=p(R,O,$),f({global:!0,constructor:!0,arity:1,forced:$},C)},b=function(R,O){if(T&&T[R]){var C={};C[R]=p(y+"."+R,O,$),f({target:y,stat:!0,constructor:!0,arity:1,forced:$},C)}};A("Error",function(R){return function(C){return h(R,this,arguments)}}),A("EvalError",function(R){return function(C){return h(R,this,arguments)}}),A("RangeError",function(R){return function(C){return h(R,this,arguments)}}),A("ReferenceError",function(R){return function(C){return h(R,this,arguments)}}),A("SyntaxError",function(R){return function(C){return h(R,this,arguments)}}),A("TypeError",function(R){return function(C){return h(R,this,arguments)}}),A("URIError",function(R){return function(C){return h(R,this,arguments)}}),b("CompileError",function(R){return function(C){return h(R,this,arguments)}}),b("LinkError",function(R){return function(C){return h(R,this,arguments)}}),b("RuntimeError",function(R){return function(C){return h(R,this,arguments)}})},function(x,E,r){var f=r(23),d=r(38),h=r(43),p=r(24),y=r(113),T=r(55),$=r(117),A=r(118),b=r(119),R=r(120),O=r(121),C=r(6),w=r(36);x.exports=function(D,L,F,j){var U="stackTraceLimit",z=j?2:1,Y=D.split("."),B=Y[Y.length-1],V=f.apply(null,Y);if(V){var K=V.prototype;if(!w&&d(K,"cause")&&delete K.cause,!F)return V;var J=f("Error"),Z=L(function(_,nt){var rt=b(j?nt:_,void 0),q=j?new V(_):new V;return rt!==void 0&&h(q,"message",rt),O(q,Z,q.stack,2),this&&p(K,this)&&A(q,this,Z),arguments.length>z&&R(q,arguments[z]),q});if(Z.prototype=K,B!=="Error"?y?y(Z,J):T(Z,J,{name:!0}):C&&U in V&&($(Z,V,U),$(Z,V,"prepareStackTrace")),T(Z,V),!w)try{K.name!==B&&h(K,"name",B),K.constructor=Z}catch(_){}return Z}}},function(x,E,r){var f=r(114),d=r(20),h=r(16),p=r(115);x.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var y=!1,T={},$;try{$=f(Object.prototype,"__proto__","set"),$(T,[]),y=T instanceof Array}catch(A){}return function(b,R){return h(b),p(R),d(b)&&(y?$(b,R):b.__proto__=R),b}}():void 0)},function(x,E,r){var f=r(14),d=r(30);x.exports=function(h,p,y){try{return f(d(Object.getOwnPropertyDescriptor(h,p)[y]))}catch(T){}}},function(x,E,r){var f=r(116),d=String,h=TypeError;x.exports=function(p){if(f(p))return p;throw new h("Can't set "+d(p)+" as a prototype")}},function(x,E,r){var f=r(20);x.exports=function(d){return f(d)||d===null}},function(x,E,r){var f=r(44).f;x.exports=function(d,h,p){p in d||f(d,p,{configurable:!0,get:function(){return h[p]},set:function(y){h[p]=y}})}},function(x,E,r){var f=r(21),d=r(20),h=r(113);x.exports=function(p,y,T){var $,A;return h&&f($=y.constructor)&&$!==T&&d(A=$.prototype)&&A!==T.prototype&&h(p,A),p}},function(x,E,r){var f=r(68);x.exports=function(d,h){return d===void 0?arguments.length<2?"":h:f(d)}},function(x,E,r){var f=r(20),d=r(43);x.exports=function(h,p){f(p)&&"cause"in p&&d(h,"cause",p.cause)}},function(x,E,r){var f=r(43),d=r(122),h=r(123),p=Error.captureStackTrace;x.exports=function(y,T,$,A){h&&(p?p(y,T):f(y,"stack",d($,A)))}},function(x,E,r){var f=r(14),d=Error,h=f("".replace),p=function($){return String(new d($).stack)}("zxcasd"),y=/\n\s*at [^:]*:[^\n]*/,T=y.test(p);x.exports=function($,A){if(T&&typeof $=="string"&&!d.prepareStackTrace)for(;A--;)$=h($,y,"");return $}},function(x,E,r){var f=r(7),d=r(11);x.exports=!f(function(){var h=new Error("a");return"stack"in h?(Object.defineProperty(h,"stack",d(1,7)),h.stack!==7):!0})},function(x,E,r){var f=r(47),d=r(125),h=Error.prototype;h.toString!==d&&f(h,"toString",d)},function(x,E,r){var f=r(6),d=r(7),h=r(46),p=r(119),y=Error.prototype.toString,T=d(function(){if(f){var $=Object.create(Object.defineProperty({},"name",{get:function(){return this===$}}));if(y.call($)!=="true")return!0}return y.call({message:1,name:2})!=="2: 1"||y.call({})!=="Error"});x.exports=T?function(){var A=h(this),b=p(A.name,"Error"),R=p(A.message);return b?R?b+": "+R:b:R}:y},function(x,E,r){r(127)},function(x,E,r){var f=r(3),d=r(24),h=r(128),p=r(113),y=r(55),T=r(71),$=r(43),A=r(11),b=r(120),R=r(121),O=r(130),C=r(119),w=r(33),D=w("toStringTag"),L=Error,F=[].push,j=function(Y,B){var V=d(U,this),K;p?K=p(new L,V?h(this):U):(K=V?this:T(U),$(K,D,"Error")),B!==void 0&&$(K,"message",C(B)),R(K,j,K.stack,1),arguments.length>2&&b(K,arguments[2]);var J=[];return O(Y,F,{that:J}),$(K,"errors",J),K};p?p(j,L):y(j,L,{name:!0});var U=j.prototype=T(L.prototype,{constructor:A(1,j),message:A(1,""),name:A(1,"AggregateError")});f({global:!0,constructor:!0,arity:2},{AggregateError:j})},function(x,E,r){var f=r(38),d=r(21),h=r(39),p=r(53),y=r(129),T=p("IE_PROTO"),$=Object,A=$.prototype;x.exports=y?$.getPrototypeOf:function(b){var R=h(b);if(f(R,T))return R[T];var O=R.constructor;return d(O)&&R instanceof O?O.prototype:R instanceof $?A:null}},function(x,E,r){var f=r(7);x.exports=!f(function(){function d(){}return d.prototype.constructor=null,Object.getPrototypeOf(new d)!==d.prototype})},function(x,E,r){var f=r(84),d=r(8),h=r(46),p=r(31),y=r(131),T=r(63),$=r(24),A=r(133),b=r(134),R=r(135),O=TypeError,C=function(D,L){this.stopped=D,this.result=L},w=C.prototype;x.exports=function(D,L,F){var j=F&&F.that,U=!!(F&&F.AS_ENTRIES),z=!!(F&&F.IS_RECORD),Y=!!(F&&F.IS_ITERATOR),B=!!(F&&F.INTERRUPTED),V=f(L,j),K,J,Z,_,nt,rt,q,tt=function(lt){return K&&R(K,"normal",lt),new C(!0,lt)},et=function(lt){return U?(h(lt),B?V(lt[0],lt[1],tt):V(lt[0],lt[1])):B?V(lt,tt):V(lt)};if(z)K=D.iterator;else if(Y)K=D;else{if(J=b(D),!J)throw new O(p(D)+" is not iterable");if(y(J)){for(Z=0,_=T(D);_>Z;Z++)if(nt=et(D[Z]),nt&&$(w,nt))return nt;return new C(!1)}K=A(D,J)}for(rt=z?D.next:K.next;!(q=d(rt,K)).done;){try{nt=et(q.value)}catch(lt){R(K,"throw",lt)}if(typeof nt=="object"&&nt&&$(w,nt))return nt}return new C(!1)}},function(x,E,r){var f=r(33),d=r(132),h=f("iterator"),p=Array.prototype;x.exports=function(y){return y!==void 0&&(d.Array===y||p[h]===y)}},function(x){x.exports={}},function(x,E,r){var f=r(8),d=r(30),h=r(46),p=r(31),y=r(134),T=TypeError;x.exports=function($,A){var b=arguments.length<2?y($):A;if(d(b))return h(f(b,$));throw new T(p($)+" is not iterable")}},function(x,E,r){var f=r(69),d=r(29),h=r(17),p=r(132),y=r(33),T=y("iterator");x.exports=function($){if(!h($))return d($,T)||d($,"@@iterator")||p[f($)]}},function(x,E,r){var f=r(8),d=r(46),h=r(29);x.exports=function(p,y,T){var $,A;d(p);try{if($=h(p,"return"),!$){if(y==="throw")throw T;return T}$=f($,p)}catch(b){A=!0,$=b}if(y==="throw")throw T;if(A)throw $;return d($),T}},function(x,E,r){var f=r(3),d=r(23),h=r(94),p=r(7),y=r(112),T="AggregateError",$=d(T),A=!p(function(){return $([1]).errors[0]!==1})&&p(function(){return $([1],T,{cause:7}).cause!==7});f({global:!0,constructor:!0,arity:2,forced:A},{AggregateError:y(T,function(b){return function(O,C){return h(b,this,arguments)}},A,!0)})},function(x,E,r){var f=r(3),d=r(39),h=r(63),p=r(61),y=r(138);f({target:"Array",proto:!0},{at:function($){var A=d(this),b=h(A),R=p($),O=R>=0?R:b+R;return O<0||O>=b?void 0:A[O]}}),y("at")},function(x,E,r){var f=r(33),d=r(71),h=r(44).f,p=f("unscopables"),y=Array.prototype;y[p]===void 0&&h(y,p,{configurable:!0,value:d(null)}),x.exports=function(T){y[p][T]=!0}},function(x,E,r){var f=r(3),d=r(7),h=r(88),p=r(20),y=r(39),T=r(63),$=r(140),A=r(141),b=r(86),R=r(142),O=r(33),C=r(27),w=O("isConcatSpreadable"),D=C>=51||!d(function(){var j=[];return j[w]=!1,j.concat()[0]!==j}),L=function(j){if(!p(j))return!1;var U=j[w];return U!==void 0?!!U:h(j)},F=!D||!R("concat");f({target:"Array",proto:!0,arity:1,forced:F},{concat:function(U){var z=y(this),Y=b(z,0),B=0,V,K,J,Z,_;for(V=-1,J=arguments.length;V<J;V++)if(_=V===-1?z:arguments[V],L(_))for(Z=T(_),$(B+Z),K=0;K<Z;K++,B++)K in _&&A(Y,B,_[K]);else $(B+1),A(Y,B++,_);return Y.length=B,Y}})},function(x){var E=TypeError,r=9007199254740991;x.exports=function(f){if(f>r)throw E("Maximum allowed index exceeded");return f}},function(x,E,r){var f=r(6),d=r(44),h=r(11);x.exports=function(p,y,T){f?d.f(p,y,h(0,T)):p[y]=T}},function(x,E,r){var f=r(7),d=r(33),h=r(27),p=d("species");x.exports=function(y){return h>=51||!f(function(){var T=[],$=T.constructor={};return $[p]=function(){return{foo:1}},T[y](Boolean).foo!==1})}},function(x,E,r){var f=r(3),d=r(144),h=r(138);f({target:"Array",proto:!0},{copyWithin:d}),h("copyWithin")},function(x,E,r){var f=r(39),d=r(60),h=r(63),p=r(145),y=Math.min;x.exports=[].copyWithin||function($,A){var b=f(this),R=h(b),O=d($,R),C=d(A,R),w=arguments.length>2?arguments[2]:void 0,D=y((w===void 0?R:d(w,R))-C,R-O),L=1;for(C<O&&O<C+D&&(L=-1,C+=D-1,O+=D-1);D-- >0;)C in b?b[O]=b[C]:p(b,O),O+=L,C+=L;return b}},function(x,E,r){var f=r(31),d=TypeError;x.exports=function(h,p){if(!delete h[p])throw new d("Cannot delete property "+f(p)+" of "+f(h))}},function(x,E,r){var f=r(3),d=r(83).every,h=r(147),p=h("every");f({target:"Array",proto:!0,forced:!p},{every:function(T){return d(this,T,arguments.length>1?arguments[1]:void 0)}})},function(x,E,r){var f=r(7);x.exports=function(d,h){var p=[][d];return!!p&&f(function(){p.call(null,h||function(){return 1},1)})}},function(x,E,r){var f=r(3),d=r(149),h=r(138);f({target:"Array",proto:!0},{fill:d}),h("fill")},function(x,E,r){var f=r(39),d=r(60),h=r(63);x.exports=function(y){for(var T=f(this),$=h(T),A=arguments.length,b=d(A>1?arguments[1]:void 0,$),R=A>2?arguments[2]:void 0,O=R===void 0?$:d(R,$);O>b;)T[b++]=y;return T}},function(x,E,r){var f=r(3),d=r(83).filter,h=r(142),p=h("filter");f({target:"Array",proto:!0,forced:!p},{filter:function(T){return d(this,T,arguments.length>1?arguments[1]:void 0)}})},function(x,E,r){var f=r(3),d=r(83).find,h=r(138),p="find",y=!0;p in[]&&Array(1)[p](function(){y=!1}),f({target:"Array",proto:!0,forced:y},{find:function($){return d(this,$,arguments.length>1?arguments[1]:void 0)}}),h(p)},function(x,E,r){var f=r(3),d=r(83).findIndex,h=r(138),p="findIndex",y=!0;p in[]&&Array(1)[p](function(){y=!1}),f({target:"Array",proto:!0,forced:y},{findIndex:function($){return d(this,$,arguments.length>1?arguments[1]:void 0)}}),h(p)},function(x,E,r){var f=r(3),d=r(154).findLast,h=r(138);f({target:"Array",proto:!0},{findLast:function(y){return d(this,y,arguments.length>1?arguments[1]:void 0)}}),h("findLast")},function(x,E,r){var f=r(84),d=r(13),h=r(39),p=r(63),y=function(T){var $=T===1;return function(A,b,R){for(var O=h(A),C=d(O),w=p(C),D=f(b,R),L,F;w-- >0;)if(L=C[w],F=D(L,w,O),F)switch(T){case 0:return L;case 1:return w}return $?-1:void 0}};x.exports={findLast:y(0),findLastIndex:y(1)}},function(x,E,r){var f=r(3),d=r(154).findLastIndex,h=r(138);f({target:"Array",proto:!0},{findLastIndex:function(y){return d(this,y,arguments.length>1?arguments[1]:void 0)}}),h("findLastIndex")},function(x,E,r){var f=r(3),d=r(157),h=r(39),p=r(63),y=r(61),T=r(86);f({target:"Array",proto:!0},{flat:function(){var A=arguments.length?arguments[0]:void 0,b=h(this),R=p(b),O=T(b,0);return O.length=d(O,b,b,R,0,A===void 0?1:y(A)),O}})},function(x,E,r){var f=r(88),d=r(63),h=r(140),p=r(84),y=function(T,$,A,b,R,O,C,w){for(var D=R,L=0,F=C?p(C,w):!1,j,U;L<b;)L in A&&(j=F?F(A[L],L,$):A[L],O>0&&f(j)?(U=d(j),D=y(T,$,j,U,D,O-1)-1):(h(D+1),T[D]=j),D++),L++;return D};x.exports=y},function(x,E,r){var f=r(3),d=r(157),h=r(30),p=r(39),y=r(63),T=r(86);f({target:"Array",proto:!0},{flatMap:function(A){var b=p(this),R=y(b),O;return h(A),O=T(b,0),O.length=d(O,b,b,R,0,1,A,arguments.length>1?arguments[1]:void 0),O}})},function(x,E,r){var f=r(3),d=r(160);f({target:"Array",proto:!0,forced:[].forEach!==d},{forEach:d})},function(x,E,r){var f=r(83).forEach,d=r(147),h=d("forEach");x.exports=h?[].forEach:function(y){return f(this,y,arguments.length>1?arguments[1]:void 0)}},function(x,E,r){var f=r(3),d=r(162),h=r(164),p=!h(function(y){Array.from(y)});f({target:"Array",stat:!0,forced:p},{from:d})},function(x,E,r){var f=r(84),d=r(8),h=r(39),p=r(163),y=r(131),T=r(89),$=r(63),A=r(141),b=r(133),R=r(134),O=Array;x.exports=function(w){var D=h(w),L=T(this),F=arguments.length,j=F>1?arguments[1]:void 0,U=j!==void 0;U&&(j=f(j,F>2?arguments[2]:void 0));var z=R(D),Y=0,B,V,K,J,Z,_;if(z&&!(this===O&&y(z)))for(V=L?new this:[],J=b(D,z),Z=J.next;!(K=d(Z,J)).done;Y++)_=U?p(J,j,[K.value,Y],!0):K.value,A(V,Y,_);else for(B=$(D),V=L?new this(B):O(B);B>Y;Y++)_=U?j(D[Y],Y):D[Y],A(V,Y,_);return V.length=Y,V}},function(x,E,r){var f=r(46),d=r(135);x.exports=function(h,p,y,T){try{return T?p(f(y)[0],y[1]):p(y)}catch($){d(h,"throw",$)}}},function(x,E,r){var f=r(33),d=f("iterator"),h=!1;try{var p=0,y={next:function(){return{done:!!p++}},return:function(){h=!0}};y[d]=function(){return this},Array.from(y,function(){throw 2})}catch(T){}x.exports=function(T,$){try{if(!$&&!h)return!1}catch(R){return!1}var A=!1;try{var b={};b[d]=function(){return{next:function(){return{done:A=!0}}}},T(b)}catch(R){}return A}},function(x,E,r){var f=r(3),d=r(59).includes,h=r(7),p=r(138),y=h(function(){return!Array(1).includes()});f({target:"Array",proto:!0,forced:y},{includes:function($){return d(this,$,arguments.length>1?arguments[1]:void 0)}}),p("includes")},function(x,E,r){var f=r(3),d=r(85),h=r(59).indexOf,p=r(147),y=d([].indexOf),T=!!y&&1/y([1],1,-0)<0,$=T||!p("indexOf");f({target:"Array",proto:!0,forced:$},{indexOf:function(b){var R=arguments.length>1?arguments[1]:void 0;return T?y(this,b,R)||0:h(this,b,R)}})},function(x,E,r){var f=r(3),d=r(88);f({target:"Array",stat:!0},{isArray:d})},function(x,E,r){var f=r(12),d=r(138),h=r(132),p=r(51),y=r(44).f,T=r(169),$=r(172),A=r(36),b=r(6),R="Array Iterator",O=p.set,C=p.getterFor(R);x.exports=T(Array,"Array",function(D,L){O(this,{type:R,target:f(D),index:0,kind:L})},function(){var D=C(this),L=D.target,F=D.index++;if(!L||F>=L.length)return D.target=void 0,$(void 0,!0);switch(D.kind){case"keys":return $(F,!1);case"values":return $(L[F],!1)}return $([F,L[F]],!1)},"values");var w=h.Arguments=h.Array;if(d("keys"),d("values"),d("entries"),!A&&b&&w.name!=="values")try{y(w,"name",{value:"values"})}catch(D){}},function(x,E,r){var f=r(3),d=r(8),h=r(36),p=r(49),y=r(21),T=r(170),$=r(128),A=r(113),b=r(82),R=r(43),O=r(47),C=r(33),w=r(132),D=r(171),L=p.PROPER,F=p.CONFIGURABLE,j=D.IteratorPrototype,U=D.BUGGY_SAFARI_ITERATORS,z=C("iterator"),Y="keys",B="values",V="entries",K=function(){return this};x.exports=function(J,Z,_,nt,rt,q,tt){T(_,Z,nt);var et=function(Jt){if(Jt===rt&&yt)return yt;if(!U&&Jt&&Jt in ft)return ft[Jt];switch(Jt){case Y:return function(){return new _(this,Jt)};case B:return function(){return new _(this,Jt)};case V:return function(){return new _(this,Jt)}}return function(){return new _(this)}},lt=Z+" Iterator",vt=!1,ft=J.prototype,bt=ft[z]||ft["@@iterator"]||rt&&ft[rt],yt=!U&&bt||et(rt),Ft=Z==="Array"&&ft.entries||bt,Lt,jt,Kt;if(Ft&&(Lt=$(Ft.call(new J)),Lt!==Object.prototype&&Lt.next&&(!h&&$(Lt)!==j&&(A?A(Lt,j):y(Lt[z])||O(Lt,z,K)),b(Lt,lt,!0,!0),h&&(w[lt]=K))),L&&rt===B&&bt&&bt.name!==B&&(!h&&F?R(ft,"name",B):(vt=!0,yt=function(){return d(bt,this)})),rt)if(jt={values:et(B),keys:q?yt:et(Y),entries:et(V)},tt)for(Kt in jt)(U||vt||!(Kt in ft))&&O(ft,Kt,jt[Kt]);else f({target:Z,proto:!0,forced:U||vt},jt);return(!h||tt)&&ft[z]!==yt&&O(ft,z,yt,{name:rt}),w[Z]=yt,jt}},function(x,E,r){var f=r(171).IteratorPrototype,d=r(71),h=r(11),p=r(82),y=r(132),T=function(){return this};x.exports=function($,A,b,R){var O=A+" Iterator";return $.prototype=d(f,{next:h(+!R,b)}),p($,O,!1,!0),y[O]=T,$}},function(x,E,r){var f=r(7),d=r(21),h=r(20),p=r(71),y=r(128),T=r(47),$=r(33),A=r(36),b=$("iterator"),R=!1,O,C,w;[].keys&&(w=[].keys(),"next"in w?(C=y(y(w)),C!==Object.prototype&&(O=C)):R=!0);var D=!h(O)||f(function(){var L={};return O[b].call(L)!==L});D?O={}:A&&(O=p(O)),d(O[b])||T(O,b,function(){return this}),x.exports={IteratorPrototype:O,BUGGY_SAFARI_ITERATORS:R}},function(x){x.exports=function(E,r){return{value:E,done:r}}},function(x,E,r){var f=r(3),d=r(14),h=r(13),p=r(12),y=r(147),T=d([].join),$=h!==Object,A=$||!y("join",",");f({target:"Array",proto:!0,forced:A},{join:function(R){return T(p(this),R===void 0?",":R)}})},function(x,E,r){var f=r(3),d=r(175);f({target:"Array",proto:!0,forced:d!==[].lastIndexOf},{lastIndexOf:d})},function(x,E,r){var f=r(94),d=r(12),h=r(61),p=r(63),y=r(147),T=Math.min,$=[].lastIndexOf,A=!!$&&1/[1].lastIndexOf(1,-0)<0,b=y("lastIndexOf"),R=A||!b;x.exports=R?function(C){if(A)return f($,this,arguments)||0;var w=d(this),D=p(w);if(D===0)return-1;var L=D-1;for(arguments.length>1&&(L=T(L,h(arguments[1]))),L<0&&(L=D+L);L>=0;L--)if(L in w&&w[L]===C)return L||0;return-1}:$},function(x,E,r){var f=r(3),d=r(83).map,h=r(142),p=h("map");f({target:"Array",proto:!0,forced:!p},{map:function(T){return d(this,T,arguments.length>1?arguments[1]:void 0)}})},function(x,E,r){var f=r(3),d=r(7),h=r(89),p=r(141),y=Array,T=d(function(){function $(){}return!(y.of.call($)instanceof $)});f({target:"Array",stat:!0,forced:T},{of:function(){for(var A=0,b=arguments.length,R=new(h(this)?this:y)(b);b>A;)p(R,A,arguments[A++]);return R.length=b,R}})},function(x,E,r){var f=r(3),d=r(39),h=r(63),p=r(179),y=r(140),T=r(7),$=T(function(){return[].push.call({length:4294967296},1)!==4294967297}),A=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(R){return R instanceof TypeError}},b=$||!A();f({target:"Array",proto:!0,arity:1,forced:b},{push:function(O){var C=d(this),w=h(C),D=arguments.length;y(w+D);for(var L=0;L<D;L++)C[w]=arguments[L],w++;return p(C,w),w}})},function(x,E,r){var f=r(6),d=r(88),h=TypeError,p=Object.getOwnPropertyDescriptor,y=f&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(T){return T instanceof TypeError}}();x.exports=y?function(T,$){if(d(T)&&!p(T,"length").writable)throw new h("Cannot set read only .length");return T.length=$}:function(T,$){return T.length=$}},function(x,E,r){var f=r(3),d=r(181).left,h=r(147),p=r(27),y=r(182),T=!y&&p>79&&p<83,$=T||!h("reduce");f({target:"Array",proto:!0,forced:$},{reduce:function(b){var R=arguments.length;return d(this,b,R,R>1?arguments[1]:void 0)}})},function(x,E,r){var f=r(30),d=r(39),h=r(13),p=r(63),y=TypeError,T="Reduce of empty array with no initial value",$=function(A){return function(b,R,O,C){var w=d(b),D=h(w),L=p(w);if(f(R),L===0&&O<2)throw new y(T);var F=A?L-1:0,j=A?-1:1;if(O<2)for(;;){if(F in D){C=D[F],F+=j;break}if(F+=j,A?F<0:L<=F)throw new y(T)}for(;A?F>=0:L>F;F+=j)F in D&&(C=R(C,D[F],F,w));return C}};x.exports={left:$(!1),right:$(!0)}},function(x,E,r){var f=r(4),d=r(15);x.exports=d(f.process)==="process"},function(x,E,r){var f=r(3),d=r(181).right,h=r(147),p=r(27),y=r(182),T=!y&&p>79&&p<83,$=T||!h("reduceRight");f({target:"Array",proto:!0,forced:$},{reduceRight:function(b){return d(this,b,arguments.length,arguments.length>1?arguments[1]:void 0)}})},function(x,E,r){var f=r(3),d=r(14),h=r(88),p=d([].reverse),y=[1,2];f({target:"Array",proto:!0,forced:String(y)===String(y.reverse())},{reverse:function(){return h(this)&&(this.length=this.length),p(this)}})},function(x,E,r){var f=r(3),d=r(88),h=r(89),p=r(20),y=r(60),T=r(63),$=r(12),A=r(141),b=r(33),R=r(142),O=r(76),C=R("slice"),w=b("species"),D=Array,L=Math.max;f({target:"Array",proto:!0,forced:!C},{slice:function(j,U){var z=$(this),Y=T(z),B=y(j,Y),V=y(U===void 0?Y:U,Y),K,J,Z;if(d(z)&&(K=z.constructor,h(K)&&(K===D||d(K.prototype))?K=void 0:p(K)&&(K=K[w],K===null&&(K=void 0)),K===D||K===void 0))return O(z,B,V);for(J=new(K===void 0?D:K)(L(V-B,0)),Z=0;B<V;B++,Z++)B in z&&A(J,Z,z[B]);return J.length=Z,J}})},function(x,E,r){var f=r(3),d=r(83).some,h=r(147),p=h("some");f({target:"Array",proto:!0,forced:!p},{some:function(T){return d(this,T,arguments.length>1?arguments[1]:void 0)}})},function(x,E,r){var f=r(3),d=r(14),h=r(30),p=r(39),y=r(63),T=r(145),$=r(68),A=r(7),b=r(188),R=r(147),O=r(189),C=r(190),w=r(27),D=r(191),L=[],F=d(L.sort),j=d(L.push),U=A(function(){L.sort(void 0)}),z=A(function(){L.sort(null)}),Y=R("sort"),B=!A(function(){if(w)return w<70;if(!(O&&O>3)){if(C)return!0;if(D)return D<603;var J="",Z,_,nt,rt;for(Z=65;Z<76;Z++){switch(_=String.fromCharCode(Z),Z){case 66:case 69:case 70:case 72:nt=3;break;case 68:case 71:nt=4;break;default:nt=2}for(rt=0;rt<47;rt++)L.push({k:_+rt,v:nt})}for(L.sort(function(q,tt){return tt.v-q.v}),rt=0;rt<L.length;rt++)_=L[rt].k.charAt(0),J.charAt(J.length-1)!==_&&(J+=_);return J!=="DGBEFHACIJK"}}),V=U||!z||!Y||!B,K=function(J){return function(Z,_){return _===void 0?-1:Z===void 0?1:J!==void 0?+J(Z,_)||0:$(Z)>$(_)?1:-1}};f({target:"Array",proto:!0,forced:V},{sort:function(Z){Z!==void 0&&h(Z);var _=p(this);if(B)return Z===void 0?F(_):F(_,Z);var nt=[],rt=y(_),q,tt;for(tt=0;tt<rt;tt++)tt in _&&j(nt,_[tt]);for(b(nt,K(Z)),q=y(nt),tt=0;tt<q;)_[tt]=nt[tt++];for(;tt<rt;)T(_,tt++);return _}})},function(x,E,r){var f=r(76),d=Math.floor,h=function(p,y){var T=p.length;if(T<8)for(var $=1,A,b;$<T;){for(b=$,A=p[$];b&&y(p[b-1],A)>0;)p[b]=p[--b];b!==$++&&(p[b]=A)}else for(var R=d(T/2),O=h(f(p,0,R),y),C=h(f(p,R),y),w=O.length,D=C.length,L=0,F=0;L<w||F<D;)p[L+F]=L<w&&F<D?y(O[L],C[F])<=0?O[L++]:C[F++]:L<w?O[L++]:C[F++];return p};x.exports=h},function(x,E,r){var f=r(28),d=f.match(/firefox\/(\d+)/i);x.exports=!!d&&+d[1]},function(x,E,r){var f=r(28);x.exports=/MSIE|Trident/.test(f)},function(x,E,r){var f=r(28),d=f.match(/AppleWebKit\/(\d+)\./);x.exports=!!d&&+d[1]},function(x,E,r){var f=r(193);f("Array")},function(x,E,r){var f=r(23),d=r(77),h=r(33),p=r(6),y=h("species");x.exports=function(T){var $=f(T);p&&$&&!$[y]&&d($,y,{configurable:!0,get:function(){return this}})}},function(x,E,r){var f=r(3),d=r(39),h=r(60),p=r(61),y=r(63),T=r(179),$=r(140),A=r(86),b=r(141),R=r(145),O=r(142),C=O("splice"),w=Math.max,D=Math.min;f({target:"Array",proto:!0,forced:!C},{splice:function(F,j){var U=d(this),z=y(U),Y=h(F,z),B=arguments.length,V,K,J,Z,_,nt;for(B===0?V=K=0:B===1?(V=0,K=z-Y):(V=B-2,K=D(w(p(j),0),z-Y)),$(z+V-K),J=A(U,K),Z=0;Z<K;Z++)_=Y+Z,_ in U&&b(J,Z,U[_]);if(J.length=K,V<K){for(Z=Y;Z<z-K;Z++)_=Z+K,nt=Z+V,_ in U?U[nt]=U[_]:R(U,nt);for(Z=z;Z>z-K+V;Z--)R(U,Z-1)}else if(V>K)for(Z=z-K;Z>Y;Z--)_=Z+K-1,nt=Z+V-1,_ in U?U[nt]=U[_]:R(U,nt);for(Z=0;Z<V;Z++)U[Z+Y]=arguments[Z+2];return T(U,z-K+V),J}})},function(x,E,r){var f=r(3),d=r(196),h=r(12),p=r(138),y=Array;f({target:"Array",proto:!0},{toReversed:function(){return d(h(this),y)}}),p("toReversed")},function(x,E,r){var f=r(63);x.exports=function(d,h){for(var p=f(d),y=new h(p),T=0;T<p;T++)y[T]=d[p-T-1];return y}},function(x,E,r){var f=r(3),d=r(14),h=r(30),p=r(12),y=r(198),T=r(199),$=r(138),A=Array,b=d(T("Array","sort"));f({target:"Array",proto:!0},{toSorted:function(O){O!==void 0&&h(O);var C=p(this),w=y(A,C);return b(w,O)}}),$("toSorted")},function(x,E,r){var f=r(63);x.exports=function(d,h,p){for(var y=0,T=arguments.length>2?p:f(h),$=new d(T);T>y;)$[y]=h[y++];return $}},function(x,E,r){var f=r(4);x.exports=function(d,h){var p=f[d],y=p&&p.prototype;return y&&y[h]}},function(x,E,r){var f=r(3),d=r(138),h=r(140),p=r(63),y=r(60),T=r(12),$=r(61),A=Array,b=Math.max,R=Math.min;f({target:"Array",proto:!0},{toSpliced:function(C,w){var D=T(this),L=p(D),F=y(C,L),j=arguments.length,U=0,z,Y,B,V;for(j===0?z=Y=0:j===1?(z=0,Y=L-F):(z=j-2,Y=R(b($(w),0),L-F)),B=h(L+z-Y),V=A(B);U<F;U++)V[U]=D[U];for(;U<F+z;U++)V[U]=arguments[U-F+2];for(;U<B;U++)V[U]=D[U+Y-z];return V}}),d("toSpliced")},function(x,E,r){var f=r(138);f("flat")},function(x,E,r){var f=r(138);f("flatMap")},function(x,E,r){var f=r(3),d=r(39),h=r(63),p=r(179),y=r(145),T=r(140),$=[].unshift(0)!==1,A=function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(R){return R instanceof TypeError}},b=$||!A();f({target:"Array",proto:!0,arity:1,forced:b},{unshift:function(O){var C=d(this),w=h(C),D=arguments.length;if(D){T(w+D);for(var L=w;L--;){var F=L+D;L in C?C[F]=C[L]:y(C,F)}for(var j=0;j<D;j++)C[j]=arguments[j]}return p(C,w+D)}})},function(x,E,r){var f=r(3),d=r(205),h=r(12),p=Array;f({target:"Array",proto:!0},{with:function(y,T){return d(h(this),p,y,T)}})},function(x,E,r){var f=r(63),d=r(61),h=RangeError;x.exports=function(p,y,T,$){var A=f(p),b=d(T),R=b<0?A+b:b;if(R>=A||R<0)throw new h("Incorrect index");for(var O=new y(A),C=0;C<A;C++)O[C]=C===R?$:p[C];return O}},function(x,E,r){var f=r(3),d=r(4),h=r(207),p=r(193),y="ArrayBuffer",T=h[y],$=d[y];f({global:!0,constructor:!0,forced:$!==T},{ArrayBuffer:T}),p(y)},function(x,E,r){var f=r(4),d=r(14),h=r(6),p=r(208),y=r(49),T=r(43),$=r(77),A=r(209),b=r(7),R=r(210),O=r(61),C=r(64),w=r(211),D=r(212),L=r(215),F=r(128),j=r(113),U=r(149),z=r(76),Y=r(118),B=r(55),V=r(82),K=r(51),J=y.PROPER,Z=y.CONFIGURABLE,_="ArrayBuffer",nt="DataView",rt="prototype",q="Wrong length",tt="Wrong index",et=K.getterFor(_),lt=K.getterFor(nt),vt=K.set,ft=f[_],bt=ft,yt=bt&&bt[rt],Ft=f[nt],Lt=Ft&&Ft[rt],jt=Object.prototype,Kt=f.Array,Jt=f.RangeError,ge=d(U),le=d([].reverse),ee=L.pack,Mt=L.unpack,zt=function(Et){return[Et&255]},te=function(Et){return[Et&255,Et>>8&255]},ae=function(Et){return[Et&255,Et>>8&255,Et>>16&255,Et>>24&255]},re=function(Et){return Et[3]<<24|Et[2]<<16|Et[1]<<8|Et[0]},oe=function(Et){return ee(D(Et),23,4)},Re=function(Et){return ee(Et,52,8)},Ce=function(Et,Bt,$t){$(Et[rt],Bt,{configurable:!0,get:function(){return $t(this)[Bt]}})},xe=function(Et,Bt,$t,kt){var Qt=lt(Et),Vt=w($t),Ut=!!kt;if(Vt+Bt>Qt.byteLength)throw new Jt(tt);var we=Qt.bytes,Ye=Vt+Qt.byteOffset,dt=z(we,Ye,Ye+Bt);return Ut?dt:le(dt)},se=function(Et,Bt,$t,kt,Qt,Vt){var Ut=lt(Et),we=w($t),Ye=kt(+Qt),dt=!!Vt;if(we+Bt>Ut.byteLength)throw new Jt(tt);for(var Ot=Ut.bytes,Pt=we+Ut.byteOffset,ot=0;ot<Bt;ot++)Ot[Pt+ot]=Ye[dt?ot:Bt-ot-1]};if(!p)bt=function(Bt){R(this,yt);var $t=w(Bt);vt(this,{type:_,bytes:ge(Kt($t),0),byteLength:$t}),h||(this.byteLength=$t,this.detached=!1)},yt=bt[rt],Ft=function(Bt,$t,kt){R(this,Lt),R(Bt,yt);var Qt=et(Bt),Vt=Qt.byteLength,Ut=O($t);if(Ut<0||Ut>Vt)throw new Jt("Wrong offset");if(kt=kt===void 0?Vt-Ut:C(kt),Ut+kt>Vt)throw new Jt(q);vt(this,{type:nt,buffer:Bt,byteLength:kt,byteOffset:Ut,bytes:Qt.bytes}),h||(this.buffer=Bt,this.byteLength=kt,this.byteOffset=Ut)},Lt=Ft[rt],h&&(Ce(bt,"byteLength",et),Ce(Ft,"buffer",lt),Ce(Ft,"byteLength",lt),Ce(Ft,"byteOffset",lt)),A(Lt,{getInt8:function(Bt){return xe(this,1,Bt)[0]<<24>>24},getUint8:function(Bt){return xe(this,1,Bt)[0]},getInt16:function(Bt){var $t=xe(this,2,Bt,arguments.length>1?arguments[1]:!1);return($t[1]<<8|$t[0])<<16>>16},getUint16:function(Bt){var $t=xe(this,2,Bt,arguments.length>1?arguments[1]:!1);return $t[1]<<8|$t[0]},getInt32:function(Bt){return re(xe(this,4,Bt,arguments.length>1?arguments[1]:!1))},getUint32:function(Bt){return re(xe(this,4,Bt,arguments.length>1?arguments[1]:!1))>>>0},getFloat32:function(Bt){return Mt(xe(this,4,Bt,arguments.length>1?arguments[1]:!1),23)},getFloat64:function(Bt){return Mt(xe(this,8,Bt,arguments.length>1?arguments[1]:!1),52)},setInt8:function(Bt,$t){se(this,1,Bt,zt,$t)},setUint8:function(Bt,$t){se(this,1,Bt,zt,$t)},setInt16:function(Bt,$t){se(this,2,Bt,te,$t,arguments.length>2?arguments[2]:!1)},setUint16:function(Bt,$t){se(this,2,Bt,te,$t,arguments.length>2?arguments[2]:!1)},setInt32:function(Bt,$t){se(this,4,Bt,ae,$t,arguments.length>2?arguments[2]:!1)},setUint32:function(Bt,$t){se(this,4,Bt,ae,$t,arguments.length>2?arguments[2]:!1)},setFloat32:function(Bt,$t){se(this,4,Bt,oe,$t,arguments.length>2?arguments[2]:!1)},setFloat64:function(Bt,$t){se(this,8,Bt,Re,$t,arguments.length>2?arguments[2]:!1)}});else{var Ae=J&&ft.name!==_;!b(function(){ft(1)})||!b(function(){new ft(-1)})||b(function(){return new ft,new ft(1.5),new ft(NaN),ft.length!==1||Ae&&!Z})?(bt=function(Bt){return R(this,yt),Y(new ft(w(Bt)),this,bt)},bt[rt]=yt,yt.constructor=bt,B(bt,ft)):Ae&&Z&&T(ft,"name",_),j&&F(Lt)!==jt&&j(Lt,jt);var me=new Ft(new bt(2)),ce=d(Lt.setInt8);me.setInt8(0,2147483648),me.setInt8(1,2147483649),(me.getInt8(0)||!me.getInt8(1))&&A(Lt,{setInt8:function(Bt,$t){ce(this,Bt,$t<<24>>24)},setUint8:function(Bt,$t){ce(this,Bt,$t<<24>>24)}},{unsafe:!0})}V(bt,_),V(Ft,nt),x.exports={ArrayBuffer:bt,DataView:Ft}},function(x){x.exports=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"},function(x,E,r){var f=r(47);x.exports=function(d,h,p){for(var y in h)f(d,y,h[y],p);return d}},function(x,E,r){var f=r(24),d=TypeError;x.exports=function(h,p){if(f(p,h))return h;throw new d("Incorrect invocation")}},function(x,E,r){var f=r(61),d=r(64),h=RangeError;x.exports=function(p){if(p===void 0)return 0;var y=f(p),T=d(y);if(y!==T)throw new h("Wrong length or index");return T}},function(x,E,r){var f=r(213),d=11920928955078125e-23,h=34028234663852886e22,p=11754943508222875e-54;x.exports=Math.fround||function(T){return f(T,d,h,p)}},function(x,E,r){var f=r(214),d=Math.abs,h=2220446049250313e-31,p=1/h,y=function(T){return T+p-p};x.exports=function(T,$,A,b){var R=+T,O=d(R),C=f(R);if(O<b)return C*y(O/b/$)*b*$;var w=(1+$/h)*O,D=w-(w-O);return D>A||D!==D?C*(1/0):C*D}},function(x){x.exports=Math.sign||function(r){var f=+r;return f===0||f!==f?f:f<0?-1:1}},function(x){var E=Array,r=Math.abs,f=Math.pow,d=Math.floor,h=Math.log,p=Math.LN2,y=function($,A,b){var R=E(b),O=b*8-A-1,C=(1<<O)-1,w=C>>1,D=A===23?f(2,-24)-f(2,-77):0,L=$<0||$===0&&1/$<0?1:0,F=0,j,U,z;for($=r($),$!==$||$===1/0?(U=$!==$?1:0,j=C):(j=d(h($)/p),z=f(2,-j),$*z<1&&(j--,z*=2),j+w>=1?$+=D/z:$+=D*f(2,1-w),$*z>=2&&(j++,z/=2),j+w>=C?(U=0,j=C):j+w>=1?(U=($*z-1)*f(2,A),j+=w):(U=$*f(2,w-1)*f(2,A),j=0));A>=8;)R[F++]=U&255,U/=256,A-=8;for(j=j<<A|U,O+=A;O>0;)R[F++]=j&255,j/=256,O-=8;return R[--F]|=L*128,R},T=function($,A){var b=$.length,R=b*8-A-1,O=(1<<R)-1,C=O>>1,w=R-7,D=b-1,L=$[D--],F=L&127,j;for(L>>=7;w>0;)F=F*256+$[D--],w-=8;for(j=F&(1<<-w)-1,F>>=-w,w+=A;w>0;)j=j*256+$[D--],w-=8;if(F===0)F=1-C;else{if(F===O)return j?NaN:L?-1/0:1/0;j+=f(2,A),F-=C}return(L?-1:1)*j*f(2,F-A)};x.exports={pack:y,unpack:T}},function(x,E,r){var f=r(3),d=r(217),h=d.NATIVE_ARRAY_BUFFER_VIEWS;f({target:"ArrayBuffer",stat:!0,forced:!h},{isView:d.isView})},function(x,E,r){var f=r(208),d=r(6),h=r(4),p=r(21),y=r(20),T=r(38),$=r(69),A=r(31),b=r(43),R=r(47),O=r(77),C=r(24),w=r(128),D=r(113),L=r(33),F=r(40),j=r(51),U=j.enforce,z=j.get,Y=h.Int8Array,B=Y&&Y.prototype,V=h.Uint8ClampedArray,K=V&&V.prototype,J=Y&&w(Y),Z=B&&w(B),_=Object.prototype,nt=h.TypeError,rt=L("toStringTag"),q=F("TYPED_ARRAY_TAG"),tt="TypedArrayConstructor",et=f&&!!D&&$(h.opera)!=="Opera",lt=!1,vt,ft,bt,yt={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Ft={BigInt64Array:8,BigUint64Array:8},Lt=function(zt){if(!y(zt))return!1;var te=$(zt);return te==="DataView"||T(yt,te)||T(Ft,te)},jt=function(Mt){var zt=w(Mt);if(y(zt)){var te=z(zt);return te&&T(te,tt)?te[tt]:jt(zt)}},Kt=function(Mt){if(!y(Mt))return!1;var zt=$(Mt);return T(yt,zt)||T(Ft,zt)},Jt=function(Mt){if(Kt(Mt))return Mt;throw new nt("Target is not a typed array")},ge=function(Mt){if(p(Mt)&&(!D||C(J,Mt)))return Mt;throw new nt(A(Mt)+" is not a typed array constructor")},le=function(Mt,zt,te,ae){if(d){if(te)for(var re in yt){var oe=h[re];if(oe&&T(oe.prototype,Mt))try{delete oe.prototype[Mt]}catch(Re){try{oe.prototype[Mt]=zt}catch(Ce){}}}(!Z[Mt]||te)&&R(Z,Mt,te?zt:et&&B[Mt]||zt,ae)}},ee=function(Mt,zt,te){var ae,re;if(d){if(D){if(te){for(ae in yt)if(re=h[ae],re&&T(re,Mt))try{delete re[Mt]}catch(oe){}}if(!J[Mt]||te)try{return R(J,Mt,te?zt:et&&J[Mt]||zt)}catch(oe){}else return}for(ae in yt)re=h[ae],re&&(!re[Mt]||te)&&R(re,Mt,zt)}};for(vt in yt)ft=h[vt],bt=ft&&ft.prototype,bt?U(bt)[tt]=ft:et=!1;for(vt in Ft)ft=h[vt],bt=ft&&ft.prototype,bt&&(U(bt)[tt]=ft);if((!et||!p(J)||J===Function.prototype)&&(J=function(){throw new nt("Incorrect invocation")},et))for(vt in yt)h[vt]&&D(h[vt],J);if((!et||!Z||Z===_)&&(Z=J.prototype,et))for(vt in yt)h[vt]&&D(h[vt].prototype,Z);if(et&&w(K)!==Z&&D(K,Z),d&&!T(Z,rt)){lt=!0,O(Z,rt,{configurable:!0,get:function(){return y(this)?this[q]:void 0}});for(vt in yt)h[vt]&&b(h[vt],q,vt)}x.exports={NATIVE_ARRAY_BUFFER_VIEWS:et,TYPED_ARRAY_TAG:lt&&q,aTypedArray:Jt,aTypedArrayConstructor:ge,exportTypedArrayMethod:le,exportTypedArrayStaticMethod:ee,getTypedArrayConstructor:jt,isView:Lt,isTypedArray:Kt,TypedArray:J,TypedArrayPrototype:Z}},function(x,E,r){var f=r(3),d=r(85),h=r(7),p=r(207),y=r(46),T=r(60),$=r(64),A=r(219),b=p.ArrayBuffer,R=p.DataView,O=R.prototype,C=d(b.prototype.slice),w=d(O.getUint8),D=d(O.setUint8),L=h(function(){return!new b(2).slice(1,void 0).byteLength});f({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:L},{slice:function(j,U){if(C&&U===void 0)return C(y(this),j);for(var z=y(this).byteLength,Y=T(j,z),B=T(U===void 0?z:U,z),V=new(A(this,b))($(B-Y)),K=new R(this),J=new R(V),Z=0;Y<B;)D(J,Z++,w(K,Y++));return V}})},function(x,E,r){var f=r(46),d=r(220),h=r(17),p=r(33),y=p("species");x.exports=function(T,$){var A=f(T).constructor,b;return A===void 0||h(b=f(A)[y])?$:d(b)}},function(x,E,r){var f=r(89),d=r(31),h=TypeError;x.exports=function(p){if(f(p))return p;throw new h(d(p)+" is not a constructor")}},function(x,E,r){r(222)},function(x,E,r){var f=r(3),d=r(207),h=r(208);f({global:!0,constructor:!0,forced:!h},{DataView:d.DataView})},function(x,E,r){var f=r(6),d=r(77),h=r(224),p=ArrayBuffer.prototype;f&&!("detached"in p)&&d(p,"detached",{configurable:!0,get:function(){return h(this)}})},function(x,E,r){var f=r(14),d=r(225),h=f(ArrayBuffer.prototype.slice);x.exports=function(p){if(d(p)!==0)return!1;try{return h(p,0,0),!1}catch(y){return!0}}},function(x,E,r){var f=r(114),d=r(15),h=TypeError;x.exports=f(ArrayBuffer.prototype,"byteLength","get")||function(p){if(d(p)!=="ArrayBuffer")throw new h("ArrayBuffer expected");return p.byteLength}},function(x,E,r){var f=r(3),d=r(227);d&&f({target:"ArrayBuffer",proto:!0},{transfer:function(){return d(this,arguments.length?arguments[0]:void 0,!0)}})},function(x,E,r){var f=r(4),d=r(14),h=r(114),p=r(211),y=r(224),T=r(225),$=r(228),A=r(230),b=f.structuredClone,R=f.ArrayBuffer,O=f.DataView,C=f.TypeError,w=Math.min,D=R.prototype,L=O.prototype,F=d(D.slice),j=h(D,"resizable","get"),U=h(D,"maxByteLength","get"),z=d(L.getInt8),Y=d(L.setInt8);x.exports=(A||$)&&function(B,V,K){var J=T(B),Z=V===void 0?J:p(V),_=!j||!j(B),nt;if(y(B))throw new C("ArrayBuffer is detached");if(A&&(B=b(B,{transfer:[B]}),J===Z&&(K||_)))return B;if(J>=Z&&(!K||_))nt=F(B,0,Z);else{var rt=K&&!_&&U?{maxByteLength:U(B)}:void 0;nt=new R(Z,rt);for(var q=new O(B),tt=new O(nt),et=w(Z,J),lt=0;lt<et;lt++)Y(tt,lt,z(q,lt))}return A||$(B),nt}},function(x,E,r){var f=r(4),d=r(229),h=r(230),p=f.structuredClone,y=f.ArrayBuffer,T=f.MessageChannel,$=!1,A,b,R,O;if(h)$=function(C){p(C,{transfer:[C]})};else if(y)try{T||(A=d("worker_threads"),A&&(T=A.MessageChannel)),T&&(b=new T,R=new y(2),O=function(C){b.port1.postMessage(null,[C])},R.byteLength===2&&(O(R),R.byteLength===0&&($=O)))}catch(C){}x.exports=$},function(x,E,r){var f=r(182);x.exports=function(d){try{if(f)return Function('return require("'+d+'")')()}catch(h){}}},function(x,E,r){var f=r(4),d=r(7),h=r(27),p=r(231),y=r(232),T=r(182),$=f.structuredClone;x.exports=!!$&&!d(function(){if(y&&h>92||T&&h>94||p&&h>97)return!1;var A=new ArrayBuffer(8),b=$(A,{transfer:[A]});return A.byteLength!==0||b.byteLength!==8})},function(x,E,r){var f=r(232),d=r(182);x.exports=!f&&!d&&typeof window=="object"&&typeof document=="object"},function(x){x.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},function(x,E,r){var f=r(3),d=r(227);d&&f({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return d(this,arguments.length?arguments[0]:void 0,!1)}})},function(x,E,r){var f=r(3),d=r(14),h=r(7),p=h(function(){return new Date(16e11).getYear()!==120}),y=d(Date.prototype.getFullYear);f({target:"Date",proto:!0,forced:p},{getYear:function(){return y(this)-1900}})},function(x,E,r){var f=r(3),d=r(14),h=Date,p=d(h.prototype.getTime);f({target:"Date",stat:!0},{now:function(){return p(new h)}})},function(x,E,r){var f=r(3),d=r(14),h=r(61),p=Date.prototype,y=d(p.getTime),T=d(p.setFullYear);f({target:"Date",proto:!0},{setYear:function(A){y(this);var b=h(A),R=b>=0&&b<=99?b+1900:b;return T(this,R)}})},function(x,E,r){var f=r(3);f({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},function(x,E,r){var f=r(3),d=r(239);f({target:"Date",proto:!0,forced:Date.prototype.toISOString!==d},{toISOString:d})},function(x,E,r){var f=r(14),d=r(7),h=r(240).start,p=RangeError,y=isFinite,T=Math.abs,$=Date.prototype,A=$.toISOString,b=f($.getTime),R=f($.getUTCDate),O=f($.getUTCFullYear),C=f($.getUTCHours),w=f($.getUTCMilliseconds),D=f($.getUTCMinutes),L=f($.getUTCMonth),F=f($.getUTCSeconds);x.exports=d(function(){return A.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!d(function(){A.call(new Date(NaN))})?function(){if(!y(b(this)))throw new p("Invalid time value");var U=this,z=O(U),Y=w(U),B=z<0?"-":z>9999?"+":"";return B+h(T(z),B?6:4,0)+"-"+h(L(U)+1,2,0)+"-"+h(R(U),2,0)+"T"+h(C(U),2,0)+":"+h(D(U),2,0)+":"+h(F(U),2,0)+"."+h(Y,3,0)+"Z"}:A},function(x,E,r){var f=r(14),d=r(64),h=r(68),p=r(241),y=r(16),T=f(p),$=f("".slice),A=Math.ceil,b=function(R){return function(O,C,w){var D=h(y(O)),L=d(C),F=D.length,j=w===void 0?" ":h(w),U,z;return L<=F||j===""?D:(U=L-F,z=T(j,A(U/j.length)),z.length>U&&(z=$(z,0,U)),R?D+z:z+D)}};x.exports={start:b(!1),end:b(!0)}},function(x,E,r){var f=r(61),d=r(68),h=r(16),p=RangeError;x.exports=function(T){var $=d(h(this)),A="",b=f(T);if(b<0||b===1/0)throw new p("Wrong number of repetitions");for(;b>0;(b>>>=1)&&($+=$))b&1&&(A+=$);return A}},function(x,E,r){var f=r(3),d=r(7),h=r(39),p=r(19),y=d(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1});f({target:"Date",proto:!0,arity:1,forced:y},{toJSON:function($){var A=h(this),b=p(A,"number");return typeof b=="number"&&!isFinite(b)?null:A.toISOString()}})},function(x,E,r){var f=r(38),d=r(47),h=r(244),p=r(33),y=p("toPrimitive"),T=Date.prototype;f(T,y)||d(T,y,h)},function(x,E,r){var f=r(46),d=r(32),h=TypeError;x.exports=function(p){if(f(this),p==="string"||p==="default")p="string";else if(p!=="number")throw new h("Incorrect hint");return d(this,p)}},function(x,E,r){var f=r(14),d=r(47),h=Date.prototype,p="Invalid Date",y="toString",T=f(h[y]),$=f(h.getTime);String(new Date(NaN))!==p&&d(h,y,function(){var b=$(this);return b===b?T(this):p})},function(x,E,r){var f=r(3),d=r(14),h=r(68),p=d("".charAt),y=d("".charCodeAt),T=d(/./.exec),$=d(1 .toString),A=d("".toUpperCase),b=/[\w*+\-./@]/,R=function(O,C){for(var w=$(O,16);w.length<C;)w="0"+w;return w};f({global:!0},{escape:function(C){for(var w=h(C),D="",L=w.length,F=0,j,U;F<L;)j=p(w,F++),T(b,j)?D+=j:(U=y(j,0),U<256?D+="%"+R(U,2):D+="%u"+A(R(U,4)));return D}})},function(x,E,r){var f=r(3),d=r(248);f({target:"Function",proto:!0,forced:Function.bind!==d},{bind:d})},function(x,E,r){var f=r(14),d=r(30),h=r(20),p=r(38),y=r(76),T=r(9),$=Function,A=f([].concat),b=f([].join),R={},O=function(C,w,D){if(!p(R,w)){for(var L=[],F=0;F<w;F++)L[F]="a["+F+"]";R[w]=$("C,a","return new C("+b(L,",")+")")}return R[w](C,D)};x.exports=T?$.bind:function(w){var D=d(this),L=D.prototype,F=y(arguments,1),j=function(){var z=A(F,y(arguments));return this instanceof j?O(D,z.length,z):D.apply(w,z)};return h(L)&&(j.prototype=L),j}},function(x,E,r){var f=r(21),d=r(20),h=r(44),p=r(24),y=r(33),T=r(48),$=y("hasInstance"),A=Function.prototype;$ in A||h.f(A,$,{value:T(function(b){if(!f(this)||!d(b))return!1;var R=this.prototype;return d(R)?p(R,b):b instanceof this},$)})},function(x,E,r){var f=r(6),d=r(49).EXISTS,h=r(14),p=r(77),y=Function.prototype,T=h(y.toString),$=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,A=h($.exec),b="name";f&&!d&&p(y,b,{configurable:!0,get:function(){try{return A($,T(this))[1]}catch(R){return""}}})},function(x,E,r){var f=r(3),d=r(4);f({global:!0,forced:d.globalThis!==d},{globalThis:d})},function(x,E,r){var f=r(4),d=r(82);d(f.JSON,"JSON",!0)},function(x,E,r){r(254)},function(x,E,r){var f=r(255),d=r(260);f("Map",function(h){return function(){return h(this,arguments.length?arguments[0]:void 0)}},d)},function(x,E,r){var f=r(3),d=r(4),h=r(14),p=r(67),y=r(47),T=r(256),$=r(130),A=r(210),b=r(21),R=r(17),O=r(20),C=r(7),w=r(164),D=r(82),L=r(118);x.exports=function(F,j,U){var z=F.indexOf("Map")!==-1,Y=F.indexOf("Weak")!==-1,B=z?"set":"add",V=d[F],K=V&&V.prototype,J=V,Z={},_=function(vt){var ft=h(K[vt]);y(K,vt,vt==="add"?function(yt){return ft(this,yt===0?0:yt),this}:vt==="delete"?function(bt){return Y&&!O(bt)?!1:ft(this,bt===0?0:bt)}:vt==="get"?function(yt){return Y&&!O(yt)?void 0:ft(this,yt===0?0:yt)}:vt==="has"?function(yt){return Y&&!O(yt)?!1:ft(this,yt===0?0:yt)}:function(yt,Ft){return ft(this,yt===0?0:yt,Ft),this})},nt=p(F,!b(V)||!(Y||K.forEach&&!C(function(){new V().entries().next()})));if(nt)J=U.getConstructor(j,F,z,B),T.enable();else if(p(F,!0)){var rt=new J,q=rt[B](Y?{}:-0,1)!==rt,tt=C(function(){rt.has(1)}),et=w(function(vt){new V(vt)}),lt=!Y&&C(function(){for(var vt=new V,ft=5;ft--;)vt[B](ft,ft);return!vt.has(-0)});et||(J=j(function(vt,ft){A(vt,K);var bt=L(new V,vt,J);return R(ft)||$(ft,bt[B],{that:bt,AS_ENTRIES:z}),bt}),J.prototype=K,K.constructor=J),(tt||lt)&&(_("delete"),_("has"),z&&_("get")),(lt||q)&&_(B),Y&&K.clear&&delete K.clear}return Z[F]=J,f({global:!0,constructor:!0,forced:J!==V},Z),D(J,F),Y||U.setStrong(J,F,z),J}},function(x,E,r){var f=r(3),d=r(14),h=r(54),p=r(20),y=r(38),T=r(44).f,$=r(57),A=r(75),b=r(257),R=r(40),O=r(259),C=!1,w=R("meta"),D=0,L=function(B){T(B,w,{value:{objectID:"O"+D++,weakData:{}}})},F=function(B,V){if(!p(B))return typeof B=="symbol"?B:(typeof B=="string"?"S":"P")+B;if(!y(B,w)){if(!b(B))return"F";if(!V)return"E";L(B)}return B[w].objectID},j=function(B,V){if(!y(B,w)){if(!b(B))return!0;if(!V)return!1;L(B)}return B[w].weakData},U=function(B){return O&&C&&b(B)&&!y(B,w)&&L(B),B},z=function(){Y.enable=function(){},C=!0;var B=$.f,V=d([].splice),K={};K[w]=1,B(K).length&&($.f=function(J){for(var Z=B(J),_=0,nt=Z.length;_<nt;_++)if(Z[_]===w){V(Z,_,1);break}return Z},f({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:A.f}))},Y=x.exports={enable:z,fastKey:F,getWeakData:j,onFreeze:U};h[w]=!0},function(x,E,r){var f=r(7),d=r(20),h=r(15),p=r(258),y=Object.isExtensible,T=f(function(){y(1)});x.exports=T||p?function(A){return!d(A)||p&&h(A)==="ArrayBuffer"?!1:y?y(A):!0}:y},function(x,E,r){var f=r(7);x.exports=f(function(){if(typeof ArrayBuffer=="function"){var d=new ArrayBuffer(8);Object.isExtensible(d)&&Object.defineProperty(d,"a",{value:8})}})},function(x,E,r){var f=r(7);x.exports=!f(function(){return Object.isExtensible(Object.preventExtensions({}))})},function(x,E,r){var f=r(71),d=r(77),h=r(209),p=r(84),y=r(210),T=r(17),$=r(130),A=r(169),b=r(172),R=r(193),O=r(6),C=r(256).fastKey,w=r(51),D=w.set,L=w.getterFor;x.exports={getConstructor:function(F,j,U,z){var Y=F(function(Z,_){y(Z,B),D(Z,{type:j,index:f(null),first:void 0,last:void 0,size:0}),O||(Z.size=0),T(_)||$(_,Z[z],{that:Z,AS_ENTRIES:U})}),B=Y.prototype,V=L(j),K=function(Z,_,nt){var rt=V(Z),q=J(Z,_),tt,et;return q?q.value=nt:(rt.last=q={index:et=C(_,!0),key:_,value:nt,previous:tt=rt.last,next:void 0,removed:!1},rt.first||(rt.first=q),tt&&(tt.next=q),O?rt.size++:Z.size++,et!=="F"&&(rt.index[et]=q)),Z},J=function(Z,_){var nt=V(Z),rt=C(_),q;if(rt!=="F")return nt.index[rt];for(q=nt.first;q;q=q.next)if(q.key===_)return q};return h(B,{clear:function(){for(var _=this,nt=V(_),rt=nt.first;rt;)rt.removed=!0,rt.previous&&(rt.previous=rt.previous.next=void 0),rt=rt.next;nt.first=nt.last=void 0,nt.index=f(null),O?nt.size=0:_.size=0},delete:function(Z){var _=this,nt=V(_),rt=J(_,Z);if(rt){var q=rt.next,tt=rt.previous;delete nt.index[rt.index],rt.removed=!0,tt&&(tt.next=q),q&&(q.previous=tt),nt.first===rt&&(nt.first=q),nt.last===rt&&(nt.last=tt),O?nt.size--:_.size--}return!!rt},forEach:function(_){for(var nt=V(this),rt=p(_,arguments.length>1?arguments[1]:void 0),q;q=q?q.next:nt.first;)for(rt(q.value,q.key,this);q&&q.removed;)q=q.previous},has:function(_){return!!J(this,_)}}),h(B,U?{get:function(_){var nt=J(this,_);return nt&&nt.value},set:function(_,nt){return K(this,_===0?0:_,nt)}}:{add:function(_){return K(this,_=_===0?0:_,_)}}),O&&d(B,"size",{configurable:!0,get:function(){return V(this).size}}),Y},setStrong:function(F,j,U){var z=j+" Iterator",Y=L(j),B=L(z);A(F,j,function(V,K){D(this,{type:z,target:V,state:Y(V),kind:K,last:void 0})},function(){for(var V=B(this),K=V.kind,J=V.last;J&&J.removed;)J=J.previous;return!V.target||!(V.last=J=J?J.next:V.state.first)?(V.target=void 0,b(void 0,!0)):b(K==="keys"?J.key:K==="values"?J.value:[J.key,J.value],!1)},U?"entries":"values",!U,!0),R(j)}}},function(x,E,r){var f=r(3),d=r(14),h=r(30),p=r(16),y=r(130),T=r(262),$=r(36),A=r(7),b=T.Map,R=T.has,O=T.get,C=T.set,w=d([].push),D=$||A(function(){return b.groupBy("ab",function(L){return L}).get("a").length!==1});f({target:"Map",stat:!0,forced:$||D},{groupBy:function(F,j){p(F),h(j);var U=new b,z=0;return y(F,function(Y){var B=j(Y,z++);R(U,B)?w(O(U,B),Y):C(U,B,[Y])}),U}})},function(x,E,r){var f=r(14),d=Map.prototype;x.exports={Map,set:f(d.set),get:f(d.get),has:f(d.has),remove:f(d.delete),proto:d}},function(x,E,r){var f=r(3),d=r(264),h=Math.acosh,p=Math.log,y=Math.sqrt,T=Math.LN2,$=!h||Math.floor(h(Number.MAX_VALUE))!==710||h(1/0)!==1/0;f({target:"Math",stat:!0,forced:$},{acosh:function(b){var R=+b;return R<1?NaN:R>9490626562425156e-8?p(R)+T:d(R-1+y(R-1)*y(R+1))}})},function(x){var E=Math.log;x.exports=Math.log1p||function(f){var d=+f;return d>-1e-8&&d<1e-8?d-d*d/2:E(1+d)}},function(x,E,r){var f=r(3),d=Math.asinh,h=Math.log,p=Math.sqrt;function y($){var A=+$;return!isFinite(A)||A===0?A:A<0?-y(-A):h(A+p(A*A+1))}var T=!(d&&1/d(0)>0);f({target:"Math",stat:!0,forced:T},{asinh:y})},function(x,E,r){var f=r(3),d=Math.atanh,h=Math.log,p=!(d&&1/d(-0)<0);f({target:"Math",stat:!0,forced:p},{atanh:function(T){var $=+T;return $===0?$:h((1+$)/(1-$))/2}})},function(x,E,r){var f=r(3),d=r(214),h=Math.abs,p=Math.pow;f({target:"Math",stat:!0},{cbrt:function(T){var $=+T;return d($)*p(h($),.3333333333333333)}})},function(x,E,r){var f=r(3),d=Math.floor,h=Math.log,p=Math.LOG2E;f({target:"Math",stat:!0},{clz32:function(T){var $=T>>>0;return $?31-d(h($+.5)*p):32}})},function(x,E,r){var f=r(3),d=r(270),h=Math.cosh,p=Math.abs,y=Math.E,T=!h||h(710)===1/0;f({target:"Math",stat:!0,forced:T},{cosh:function(A){var b=d(p(A)-1)+1;return(b+1/(b*y*y))*(y/2)}})},function(x){var E=Math.expm1,r=Math.exp;x.exports=!E||E(10)>22025.465794806718||E(10)<22025.465794806718||E(-2e-17)!==-2e-17?function(d){var h=+d;return h===0?h:h>-1e-6&&h<1e-6?h+h*h/2:r(h)-1}:E},function(x,E,r){var f=r(3),d=r(270);f({target:"Math",stat:!0,forced:d!==Math.expm1},{expm1:d})},function(x,E,r){var f=r(3),d=r(212);f({target:"Math",stat:!0},{fround:d})},function(x,E,r){var f=r(3),d=Math.hypot,h=Math.abs,p=Math.sqrt,y=!!d&&d(1/0,NaN)!==1/0;f({target:"Math",stat:!0,arity:2,forced:y},{hypot:function($,A){for(var b=0,R=0,O=arguments.length,C=0,w,D;R<O;)w=h(arguments[R++]),C<w?(D=C/w,b=b*D*D+1,C=w):w>0?(D=w/C,b+=D*D):b+=w;return C===1/0?1/0:C*p(b)}})},function(x,E,r){var f=r(3),d=r(7),h=Math.imul,p=d(function(){return h(4294967295,5)!==-5||h.length!==2});f({target:"Math",stat:!0,forced:p},{imul:function(T,$){var A=65535,b=+T,R=+$,O=A&b,C=A&R;return 0|O*C+((A&b>>>16)*C+O*(A&R>>>16)<<16>>>0)}})},function(x,E,r){var f=r(3),d=r(276);f({target:"Math",stat:!0},{log10:d})},function(x){var E=Math.log,r=Math.LOG10E;x.exports=Math.log10||function(d){return E(d)*r}},function(x,E,r){var f=r(3),d=r(264);f({target:"Math",stat:!0},{log1p:d})},function(x,E,r){var f=r(3),d=Math.log,h=Math.LN2;f({target:"Math",stat:!0},{log2:function(y){return d(y)/h}})},function(x,E,r){var f=r(3),d=r(214);f({target:"Math",stat:!0},{sign:d})},function(x,E,r){var f=r(3),d=r(7),h=r(270),p=Math.abs,y=Math.exp,T=Math.E,$=d(function(){return Math.sinh(-2e-17)!==-2e-17});f({target:"Math",stat:!0,forced:$},{sinh:function(b){var R=+b;return p(R)<1?(h(R)-h(-R))/2:(y(R-1)-y(-R-1))*(T/2)}})},function(x,E,r){var f=r(3),d=r(270),h=Math.exp;f({target:"Math",stat:!0},{tanh:function(y){var T=+y,$=d(T),A=d(-T);return $===1/0?1:A===1/0?-1:($-A)/(h(T)+h(-T))}})},function(x,E,r){var f=r(82);f(Math,"Math",!0)},function(x,E,r){var f=r(3),d=r(62);f({target:"Math",stat:!0},{trunc:d})},function(x,E,r){var f=r(3),d=r(36),h=r(6),p=r(4),y=r(80),T=r(14),$=r(67),A=r(38),b=r(118),R=r(24),O=r(22),C=r(19),w=r(7),D=r(57).f,L=r(5).f,F=r(44).f,j=r(285),U=r(286).trim,z="Number",Y=p[z],B=y[z],V=Y.prototype,K=p.TypeError,J=T("".slice),Z=T("".charCodeAt),_=function(lt){var vt=C(lt,"number");return typeof vt=="bigint"?vt:nt(vt)},nt=function(lt){var vt=C(lt,"number"),ft,bt,yt,Ft,Lt,jt,Kt,Jt;if(O(vt))throw new K("Cannot convert a Symbol value to a number");if(typeof vt=="string"&&vt.length>2){if(vt=U(vt),ft=Z(vt,0),ft===43||ft===45){if(bt=Z(vt,2),bt===88||bt===120)return NaN}else if(ft===48){switch(Z(vt,1)){case 66:case 98:yt=2,Ft=49;break;case 79:case 111:yt=8,Ft=55;break;default:return+vt}for(Lt=J(vt,2),jt=Lt.length,Kt=0;Kt<jt;Kt++)if(Jt=Z(Lt,Kt),Jt<48||Jt>Ft)return NaN;return parseInt(Lt,yt)}}return+vt},rt=$(z,!Y(" 0o1")||!Y("0b1")||Y("+0x1")),q=function(lt){return R(V,lt)&&w(function(){j(lt)})},tt=function(vt){var ft=arguments.length<1?0:Y(_(vt));return q(this)?b(Object(ft),this,tt):ft};tt.prototype=V,rt&&!d&&(V.constructor=tt),f({global:!0,constructor:!0,wrap:!0,forced:rt},{Number:tt});var et=function(lt,vt){for(var ft=h?D(vt):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),bt=0,yt;ft.length>bt;bt++)A(vt,yt=ft[bt])&&!A(lt,yt)&&F(lt,yt,L(vt,yt))};d&&B&&et(y[z],B),(rt||d)&&et(y[z],Y)},function(x,E,r){var f=r(14);x.exports=f(1 .valueOf)},function(x,E,r){var f=r(14),d=r(16),h=r(68),p=r(287),y=f("".replace),T=RegExp("^["+p+"]+"),$=RegExp("(^|[^"+p+"])["+p+"]+$"),A=function(b){return function(R){var O=h(d(R));return b&1&&(O=y(O,T,"")),b&2&&(O=y(O,$,"$1")),O}};x.exports={start:A(1),end:A(2),trim:A(3)}},function(x){x.exports=` +\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},function(x,E,r){var f=r(3);f({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},function(x,E,r){var f=r(3),d=r(290);f({target:"Number",stat:!0},{isFinite:d})},function(x,E,r){var f=r(4),d=f.isFinite;x.exports=Number.isFinite||function(p){return typeof p=="number"&&d(p)}},function(x,E,r){var f=r(3),d=r(292);f({target:"Number",stat:!0},{isInteger:d})},function(x,E,r){var f=r(20),d=Math.floor;x.exports=Number.isInteger||function(p){return!f(p)&&isFinite(p)&&d(p)===p}},function(x,E,r){var f=r(3);f({target:"Number",stat:!0},{isNaN:function(h){return h!==h}})},function(x,E,r){var f=r(3),d=r(292),h=Math.abs;f({target:"Number",stat:!0},{isSafeInteger:function(y){return d(y)&&h(y)<=9007199254740991}})},function(x,E,r){var f=r(3);f({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(x,E,r){var f=r(3);f({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(x,E,r){var f=r(3),d=r(298);f({target:"Number",stat:!0,forced:Number.parseFloat!==d},{parseFloat:d})},function(x,E,r){var f=r(4),d=r(7),h=r(14),p=r(68),y=r(286).trim,T=r(287),$=h("".charAt),A=f.parseFloat,b=f.Symbol,R=b&&b.iterator,O=1/A(T+"-0")!==-1/0||R&&!d(function(){A(Object(R))});x.exports=O?function(w){var D=y(p(w)),L=A(D);return L===0&&$(D,0)==="-"?-0:L}:A},function(x,E,r){var f=r(3),d=r(300);f({target:"Number",stat:!0,forced:Number.parseInt!==d},{parseInt:d})},function(x,E,r){var f=r(4),d=r(7),h=r(14),p=r(68),y=r(286).trim,T=r(287),$=f.parseInt,A=f.Symbol,b=A&&A.iterator,R=/^[+-]?0x/i,O=h(R.exec),C=$(T+"08")!==8||$(T+"0x16")!==22||b&&!d(function(){$(Object(b))});x.exports=C?function(D,L){var F=y(p(D));return $(F,L>>>0||(O(R,F)?16:10))}:$},function(x,E,r){var f=r(3),d=r(14),h=r(61),p=r(285),y=r(241),T=r(276),$=r(7),A=RangeError,b=String,R=isFinite,O=Math.abs,C=Math.floor,w=Math.pow,D=Math.round,L=d(1 .toExponential),F=d(y),j=d("".slice),U=L(-69e-12,4)==="-6.9000e-11"&&L(1.255,2)==="1.25e+0"&&L(12345,3)==="1.235e+4"&&L(25,0)==="3e+1",z=function(){return $(function(){L(1,1/0)})&&$(function(){L(1,-1/0)})},Y=function(){return!$(function(){L(1/0,1/0),L(NaN,1/0)})},B=!U||!z()||!Y();f({target:"Number",proto:!0,forced:B},{toExponential:function(K){var J=p(this);if(K===void 0)return L(J);var Z=h(K);if(!R(J))return String(J);if(Z<0||Z>20)throw new A("Incorrect fraction digits");if(U)return L(J,Z);var _="",nt="",rt=0,q="",tt="";if(J<0&&(_="-",J=-J),J===0)rt=0,nt=F("0",Z+1);else{var et=T(J);rt=C(et);var lt=0,vt=w(10,rt-Z);lt=D(J/vt),2*J>=(2*lt+1)*vt&&(lt+=1),lt>=w(10,Z+1)&&(lt/=10,rt+=1),nt=b(lt)}return Z!==0&&(nt=j(nt,0,1)+"."+j(nt,1)),rt===0?(q="+",tt="0"):(q=rt>0?"+":"-",tt=b(O(rt))),nt+="e"+q+tt,_+nt}})},function(x,E,r){var f=r(3),d=r(14),h=r(61),p=r(285),y=r(241),T=r(7),$=RangeError,A=String,b=Math.floor,R=d(y),O=d("".slice),C=d(1 .toFixed),w=function(z,Y,B){return Y===0?B:Y%2===1?w(z,Y-1,B*z):w(z*z,Y/2,B)},D=function(z){for(var Y=0,B=z;B>=4096;)Y+=12,B/=4096;for(;B>=2;)Y+=1,B/=2;return Y},L=function(z,Y,B){for(var V=-1,K=B;++V<6;)K+=Y*z[V],z[V]=K%1e7,K=b(K/1e7)},F=function(z,Y){for(var B=6,V=0;--B>=0;)V+=z[B],z[B]=b(V/Y),V=V%Y*1e7},j=function(z){for(var Y=6,B="";--Y>=0;)if(B!==""||Y===0||z[Y]!==0){var V=A(z[Y]);B=B===""?V:B+R("0",7-V.length)+V}return B},U=T(function(){return C(8e-5,3)!=="0.000"||C(.9,0)!=="1"||C(1.255,2)!=="1.25"||C(0xde0b6b3a7640080,0)!=="1000000000000000128"})||!T(function(){C({})});f({target:"Number",proto:!0,forced:U},{toFixed:function(Y){var B=p(this),V=h(Y),K=[0,0,0,0,0,0],J="",Z="0",_,nt,rt,q;if(V<0||V>20)throw new $("Incorrect fraction digits");if(B!==B)return"NaN";if(B<=-1e21||B>=1e21)return A(B);if(B<0&&(J="-",B=-B),B>1e-21)if(_=D(B*w(2,69,1))-69,nt=_<0?B*w(2,-_,1):B/w(2,_,1),nt*=4503599627370496,_=52-_,_>0){for(L(K,0,nt),rt=V;rt>=7;)L(K,1e7,0),rt-=7;for(L(K,w(10,rt,1),0),rt=_-1;rt>=23;)F(K,8388608),rt-=23;F(K,1<<rt),L(K,1,1),F(K,2),Z=j(K)}else L(K,0,nt),L(K,1<<-_,0),Z=j(K)+R("0",V);return V>0?(q=Z.length,Z=J+(q<=V?"0."+R("0",V-q)+Z:O(Z,0,q-V)+"."+O(Z,q-V))):Z=J+Z,Z}})},function(x,E,r){var f=r(3),d=r(14),h=r(7),p=r(285),y=d(1 .toPrecision),T=h(function(){return y(1,void 0)!=="1"})||!h(function(){y({})});f({target:"Number",proto:!0,forced:T},{toPrecision:function(A){return A===void 0?y(p(this)):y(p(this),A)}})},function(x,E,r){var f=r(3),d=r(305);f({target:"Object",stat:!0,arity:2,forced:Object.assign!==d},{assign:d})},function(x,E,r){var f=r(6),d=r(14),h=r(8),p=r(7),y=r(73),T=r(66),$=r(10),A=r(39),b=r(13),R=Object.assign,O=Object.defineProperty,C=d([].concat);x.exports=!R||p(function(){if(f&&R({b:1},R(O({},"a",{enumerable:!0,get:function(){O(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var w={},D={},L=Symbol("assign detection"),F="abcdefghijklmnopqrst";return w[L]=7,F.split("").forEach(function(j){D[j]=j}),R({},w)[L]!==7||y(R({},D)).join("")!==F})?function(D,L){for(var F=A(D),j=arguments.length,U=1,z=T.f,Y=$.f;j>U;)for(var B=b(arguments[U++]),V=z?C(y(B),z(B)):y(B),K=V.length,J=0,Z;K>J;)Z=V[J++],(!f||h(Y,B,Z))&&(F[Z]=B[Z]);return F}:R},function(x,E,r){var f=r(3),d=r(6),h=r(71);f({target:"Object",stat:!0,sham:!d},{create:h})},function(x,E,r){var f=r(3),d=r(6),h=r(308),p=r(30),y=r(39),T=r(44);d&&f({target:"Object",proto:!0,forced:h},{__defineGetter__:function(A,b){T.f(y(this),A,{get:p(b),enumerable:!0,configurable:!0})}})},function(x,E,r){var f=r(36),d=r(4),h=r(7),p=r(191);x.exports=f||!h(function(){if(!(p&&p<535)){var y=Math.random();__defineSetter__.call(null,y,function(){}),delete d[y]}})},function(x,E,r){var f=r(3),d=r(6),h=r(72).f;f({target:"Object",stat:!0,forced:Object.defineProperties!==h,sham:!d},{defineProperties:h})},function(x,E,r){var f=r(3),d=r(6),h=r(44).f;f({target:"Object",stat:!0,forced:Object.defineProperty!==h,sham:!d},{defineProperty:h})},function(x,E,r){var f=r(3),d=r(6),h=r(308),p=r(30),y=r(39),T=r(44);d&&f({target:"Object",proto:!0,forced:h},{__defineSetter__:function(A,b){T.f(y(this),A,{set:p(b),enumerable:!0,configurable:!0})}})},function(x,E,r){var f=r(3),d=r(313).entries;f({target:"Object",stat:!0},{entries:function(p){return d(p)}})},function(x,E,r){var f=r(6),d=r(7),h=r(14),p=r(128),y=r(73),T=r(12),$=r(10).f,A=h($),b=h([].push),R=f&&d(function(){var C=Object.create(null);return C[2]=2,!A(C,2)}),O=function(C){return function(w){for(var D=T(w),L=y(D),F=R&&p(D)===null,j=L.length,U=0,z=[],Y;j>U;)Y=L[U++],(!f||(F?Y in D:A(D,Y)))&&b(z,C?[Y,D[Y]]:D[Y]);return z}};x.exports={entries:O(!0),values:O(!1)}},function(x,E,r){var f=r(3),d=r(259),h=r(7),p=r(20),y=r(256).onFreeze,T=Object.freeze,$=h(function(){T(1)});f({target:"Object",stat:!0,forced:$,sham:!d},{freeze:function(b){return T&&p(b)?T(y(b)):b}})},function(x,E,r){var f=r(3),d=r(130),h=r(141);f({target:"Object",stat:!0},{fromEntries:function(y){var T={};return d(y,function($,A){h(T,$,A)},{AS_ENTRIES:!0}),T}})},function(x,E,r){var f=r(3),d=r(7),h=r(12),p=r(5).f,y=r(6),T=!y||d(function(){p(1)});f({target:"Object",stat:!0,forced:T,sham:!y},{getOwnPropertyDescriptor:function(A,b){return p(h(A),b)}})},function(x,E,r){var f=r(3),d=r(6),h=r(56),p=r(12),y=r(5),T=r(141);f({target:"Object",stat:!0,sham:!d},{getOwnPropertyDescriptors:function(A){for(var b=p(A),R=y.f,O=h(b),C={},w=0,D,L;O.length>w;)L=R(b,D=O[w++]),L!==void 0&&T(C,D,L);return C}})},function(x,E,r){var f=r(3),d=r(7),h=r(75).f,p=d(function(){return!Object.getOwnPropertyNames(1)});f({target:"Object",stat:!0,forced:p},{getOwnPropertyNames:h})},function(x,E,r){var f=r(3),d=r(7),h=r(39),p=r(128),y=r(129),T=d(function(){p(1)});f({target:"Object",stat:!0,forced:T,sham:!y},{getPrototypeOf:function(A){return p(h(A))}})},function(x,E,r){var f=r(3),d=r(23),h=r(14),p=r(30),y=r(16),T=r(18),$=r(130),A=r(7),b=Object.groupBy,R=d("Object","create"),O=h([].push),C=!b||A(function(){return b("ab",function(w){return w}).a.length!==1});f({target:"Object",stat:!0,forced:C},{groupBy:function(D,L){y(D),p(L);var F=R(null),j=0;return $(D,function(U){var z=T(L(U,j++));z in F?O(F[z],U):F[z]=[U]}),F}})},function(x,E,r){var f=r(3),d=r(38);f({target:"Object",stat:!0},{hasOwn:d})},function(x,E,r){var f=r(3),d=r(323);f({target:"Object",stat:!0},{is:d})},function(x){x.exports=Object.is||function(r,f){return r===f?r!==0||1/r===1/f:r!==r&&f!==f}},function(x,E,r){var f=r(3),d=r(257);f({target:"Object",stat:!0,forced:Object.isExtensible!==d},{isExtensible:d})},function(x,E,r){var f=r(3),d=r(7),h=r(20),p=r(15),y=r(258),T=Object.isFrozen,$=y||d(function(){T(1)});f({target:"Object",stat:!0,forced:$},{isFrozen:function(b){return!h(b)||y&&p(b)==="ArrayBuffer"?!0:T?T(b):!1}})},function(x,E,r){var f=r(3),d=r(7),h=r(20),p=r(15),y=r(258),T=Object.isSealed,$=y||d(function(){T(1)});f({target:"Object",stat:!0,forced:$},{isSealed:function(b){return!h(b)||y&&p(b)==="ArrayBuffer"?!0:T?T(b):!1}})},function(x,E,r){var f=r(3),d=r(39),h=r(73),p=r(7),y=p(function(){h(1)});f({target:"Object",stat:!0,forced:y},{keys:function($){return h(d($))}})},function(x,E,r){var f=r(3),d=r(6),h=r(308),p=r(39),y=r(18),T=r(128),$=r(5).f;d&&f({target:"Object",proto:!0,forced:h},{__lookupGetter__:function(b){var R=p(this),O=y(b),C;do if(C=$(R,O))return C.get;while(R=T(R))}})},function(x,E,r){var f=r(3),d=r(6),h=r(308),p=r(39),y=r(18),T=r(128),$=r(5).f;d&&f({target:"Object",proto:!0,forced:h},{__lookupSetter__:function(b){var R=p(this),O=y(b),C;do if(C=$(R,O))return C.set;while(R=T(R))}})},function(x,E,r){var f=r(3),d=r(20),h=r(256).onFreeze,p=r(259),y=r(7),T=Object.preventExtensions,$=y(function(){T(1)});f({target:"Object",stat:!0,forced:$,sham:!p},{preventExtensions:function(b){return T&&d(b)?T(h(b)):b}})},function(x,E,r){var f=r(6),d=r(77),h=r(20),p=r(116),y=r(39),T=r(16),$=Object.getPrototypeOf,A=Object.setPrototypeOf,b=Object.prototype,R="__proto__";if(f&&$&&A&&!(R in b))try{d(b,R,{configurable:!0,get:function(){return $(y(this))},set:function(C){var w=T(this);p(C)&&h(w)&&A(w,C)}})}catch(O){}},function(x,E,r){var f=r(3),d=r(20),h=r(256).onFreeze,p=r(259),y=r(7),T=Object.seal,$=y(function(){T(1)});f({target:"Object",stat:!0,forced:$,sham:!p},{seal:function(b){return T&&d(b)?T(h(b)):b}})},function(x,E,r){var f=r(3),d=r(113);f({target:"Object",stat:!0},{setPrototypeOf:d})},function(x,E,r){var f=r(70),d=r(47),h=r(335);f||d(Object.prototype,"toString",h,{unsafe:!0})},function(x,E,r){var f=r(70),d=r(69);x.exports=f?{}.toString:function(){return"[object "+d(this)+"]"}},function(x,E,r){var f=r(3),d=r(313).values;f({target:"Object",stat:!0},{values:function(p){return d(p)}})},function(x,E,r){var f=r(3),d=r(298);f({global:!0,forced:parseFloat!==d},{parseFloat:d})},function(x,E,r){var f=r(3),d=r(300);f({global:!0,forced:parseInt!==d},{parseInt:d})},function(x,E,r){r(340),r(354),r(356),r(357),r(358),r(359)},function(x,E,r){var f=r(3),d=r(36),h=r(182),p=r(4),y=r(8),T=r(47),$=r(113),A=r(82),b=r(193),R=r(30),O=r(21),C=r(20),w=r(210),D=r(219),L=r(341).set,F=r(344),j=r(349),U=r(350),z=r(346),Y=r(51),B=r(351),V=r(352),K=r(353),J="Promise",Z=V.CONSTRUCTOR,_=V.REJECTION_EVENT,nt=V.SUBCLASSING,rt=Y.getterFor(J),q=Y.set,tt=B&&B.prototype,et=B,lt=tt,vt=p.TypeError,ft=p.document,bt=p.process,yt=K.f,Ft=yt,Lt=!!(ft&&ft.createEvent&&p.dispatchEvent),jt="unhandledrejection",Kt="rejectionhandled",Jt=0,ge=1,le=2,ee=1,Mt=2,zt,te,ae,re,oe=function($t){var kt;return C($t)&&O(kt=$t.then)?kt:!1},Re=function($t,kt){var Qt=kt.value,Vt=kt.state===ge,Ut=Vt?$t.ok:$t.fail,we=$t.resolve,Ye=$t.reject,dt=$t.domain,Ot,Pt,ot;try{Ut?(Vt||(kt.rejection===Mt&&me(kt),kt.rejection=ee),Ut===!0?Ot=Qt:(dt&&dt.enter(),Ot=Ut(Qt),dt&&(dt.exit(),ot=!0)),Ot===$t.promise?Ye(new vt("Promise-chain cycle")):(Pt=oe(Ot))?y(Pt,Ot,we,Ye):we(Ot)):Ye(Qt)}catch(gt){dt&&!ot&&dt.exit(),Ye(gt)}},Ce=function($t,kt){$t.notified||($t.notified=!0,F(function(){for(var Qt=$t.reactions,Vt;Vt=Qt.get();)Re(Vt,$t);$t.notified=!1,kt&&!$t.rejection&&se($t)}))},xe=function($t,kt,Qt){var Vt,Ut;Lt?(Vt=ft.createEvent("Event"),Vt.promise=kt,Vt.reason=Qt,Vt.initEvent($t,!1,!0),p.dispatchEvent(Vt)):Vt={promise:kt,reason:Qt},!_&&(Ut=p["on"+$t])?Ut(Vt):$t===jt&&j("Unhandled promise rejection",Qt)},se=function($t){y(L,p,function(){var kt=$t.facade,Qt=$t.value,Vt=Ae($t),Ut;if(Vt&&(Ut=U(function(){h?bt.emit("unhandledRejection",Qt,kt):xe(jt,kt,Qt)}),$t.rejection=h||Ae($t)?Mt:ee,Ut.error))throw Ut.value})},Ae=function($t){return $t.rejection!==ee&&!$t.parent},me=function($t){y(L,p,function(){var kt=$t.facade;h?bt.emit("rejectionHandled",kt):xe(Kt,kt,$t.value)})},ce=function($t,kt,Qt){return function(Vt){$t(kt,Vt,Qt)}},Et=function($t,kt,Qt){$t.done||($t.done=!0,Qt&&($t=Qt),$t.value=kt,$t.state=le,Ce($t,!0))},Bt=function($t,kt,Qt){if(!$t.done){$t.done=!0,Qt&&($t=Qt);try{if($t.facade===kt)throw new vt("Promise can't be resolved itself");var Vt=oe(kt);Vt?F(function(){var Ut={done:!1};try{y(Vt,kt,ce(Bt,Ut,$t),ce(Et,Ut,$t))}catch(we){Et(Ut,we,$t)}}):($t.value=kt,$t.state=ge,Ce($t,!1))}catch(Ut){Et({done:!1},Ut,$t)}}};if(Z&&(et=function(kt){w(this,lt),R(kt),y(zt,this);var Qt=rt(this);try{kt(ce(Bt,Qt),ce(Et,Qt))}catch(Vt){Et(Qt,Vt)}},lt=et.prototype,zt=function(kt){q(this,{type:J,done:!1,notified:!1,parent:!1,reactions:new z,rejection:!1,state:Jt,value:void 0})},zt.prototype=T(lt,"then",function(kt,Qt){var Vt=rt(this),Ut=yt(D(this,et));return Vt.parent=!0,Ut.ok=O(kt)?kt:!0,Ut.fail=O(Qt)&&Qt,Ut.domain=h?bt.domain:void 0,Vt.state===Jt?Vt.reactions.add(Ut):F(function(){Re(Ut,Vt)}),Ut.promise}),te=function(){var $t=new zt,kt=rt($t);this.promise=$t,this.resolve=ce(Bt,kt),this.reject=ce(Et,kt)},K.f=yt=function($t){return $t===et||$t===ae?new te($t):Ft($t)},!d&&O(B)&&tt!==Object.prototype)){re=tt.then,nt||T(tt,"then",function(kt,Qt){var Vt=this;return new et(function(Ut,we){y(re,Vt,Ut,we)}).then(kt,Qt)},{unsafe:!0});try{delete tt.constructor}catch($t){}$&&$(tt,lt)}f({global:!0,constructor:!0,wrap:!0,forced:Z},{Promise:et}),A(et,J,!1,!0),b(J)},function(x,E,r){var f=r(4),d=r(94),h=r(84),p=r(21),y=r(38),T=r(7),$=r(74),A=r(76),b=r(42),R=r(342),O=r(343),C=r(182),w=f.setImmediate,D=f.clearImmediate,L=f.process,F=f.Dispatch,j=f.Function,U=f.MessageChannel,z=f.String,Y=0,B={},V="onreadystatechange",K,J,Z,_;T(function(){K=f.location});var nt=function(et){if(y(B,et)){var lt=B[et];delete B[et],lt()}},rt=function(et){return function(){nt(et)}},q=function(et){nt(et.data)},tt=function(et){f.postMessage(z(et),K.protocol+"//"+K.host)};(!w||!D)&&(w=function(lt){R(arguments.length,1);var vt=p(lt)?lt:j(lt),ft=A(arguments,1);return B[++Y]=function(){d(vt,void 0,ft)},J(Y),Y},D=function(lt){delete B[lt]},C?J=function(et){L.nextTick(rt(et))}:F&&F.now?J=function(et){F.now(rt(et))}:U&&!O?(Z=new U,_=Z.port2,Z.port1.onmessage=q,J=h(_.postMessage,_)):f.addEventListener&&p(f.postMessage)&&!f.importScripts&&K&&K.protocol!=="file:"&&!T(tt)?(J=tt,f.addEventListener("message",q,!1)):V in b("script")?J=function(et){$.appendChild(b("script"))[V]=function(){$.removeChild(this),nt(et)}}:J=function(et){setTimeout(rt(et),0)}),x.exports={set:w,clear:D}},function(x){var E=TypeError;x.exports=function(r,f){if(r<f)throw new E("Not enough arguments");return r}},function(x,E,r){var f=r(28);x.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(f)},function(x,E,r){var f=r(4),d=r(345),h=r(84),p=r(341).set,y=r(346),T=r(343),$=r(347),A=r(348),b=r(182),R=f.MutationObserver||f.WebKitMutationObserver,O=f.document,C=f.process,w=f.Promise,D=d("queueMicrotask"),L,F,j,U,z;if(!D){var Y=new y,B=function(){var V,K;for(b&&(V=C.domain)&&V.exit();K=Y.get();)try{K()}catch(J){throw Y.head&&L(),J}V&&V.enter()};!T&&!b&&!A&&R&&O?(F=!0,j=O.createTextNode(""),new R(B).observe(j,{characterData:!0}),L=function(){j.data=F=!F}):!$&&w&&w.resolve?(U=w.resolve(void 0),U.constructor=w,z=h(U.then,U),L=function(){z(B)}):b?L=function(){C.nextTick(B)}:(p=h(p,f),L=function(){p(B)}),D=function(V){Y.head||L(),Y.add(V)}}x.exports=D},function(x,E,r){var f=r(4),d=r(6),h=Object.getOwnPropertyDescriptor;x.exports=function(p){if(!d)return f[p];var y=h(f,p);return y&&y.value}},function(x){var E=function(){this.head=null,this.tail=null};E.prototype={add:function(r){var f={item:r,next:null},d=this.tail;d?d.next=f:this.head=f,this.tail=f},get:function(){var r=this.head;if(r){var f=this.head=r.next;return f===null&&(this.tail=null),r.item}}},x.exports=E},function(x,E,r){var f=r(28);x.exports=/ipad|iphone|ipod/i.test(f)&&typeof Pebble!="undefined"},function(x,E,r){var f=r(28);x.exports=/web0s(?!.*chrome)/i.test(f)},function(x){x.exports=function(E,r){try{arguments.length===1?console.error(E):console.error(E,r)}catch(f){}}},function(x){x.exports=function(E){try{return{error:!1,value:E()}}catch(r){return{error:!0,value:r}}}},function(x,E,r){var f=r(4);x.exports=f.Promise},function(x,E,r){var f=r(4),d=r(351),h=r(21),p=r(67),y=r(50),T=r(33),$=r(231),A=r(232),b=r(36),R=r(27),O=d&&d.prototype,C=T("species"),w=!1,D=h(f.PromiseRejectionEvent),L=p("Promise",function(){var F=y(d),j=F!==String(d);if(!j&&R===66||b&&!(O.catch&&O.finally))return!0;if(!R||R<51||!/native code/.test(F)){var U=new d(function(B){B(1)}),z=function(B){B(function(){},function(){})},Y=U.constructor={};if(Y[C]=z,w=U.then(function(){})instanceof z,!w)return!0}return!j&&($||A)&&!D});x.exports={CONSTRUCTOR:L,REJECTION_EVENT:D,SUBCLASSING:w}},function(x,E,r){var f=r(30),d=TypeError,h=function(p){var y,T;this.promise=new p(function($,A){if(y!==void 0||T!==void 0)throw new d("Bad Promise constructor");y=$,T=A}),this.resolve=f(y),this.reject=f(T)};x.exports.f=function(p){return new h(p)}},function(x,E,r){var f=r(3),d=r(8),h=r(30),p=r(353),y=r(350),T=r(130),$=r(355);f({target:"Promise",stat:!0,forced:$},{all:function(b){var R=this,O=p.f(R),C=O.resolve,w=O.reject,D=y(function(){var L=h(R.resolve),F=[],j=0,U=1;T(b,function(z){var Y=j++,B=!1;U++,d(L,R,z).then(function(V){B||(B=!0,F[Y]=V,--U||C(F))},w)}),--U||C(F)});return D.error&&w(D.value),O.promise}})},function(x,E,r){var f=r(351),d=r(164),h=r(352).CONSTRUCTOR;x.exports=h||!d(function(p){f.all(p).then(void 0,function(){})})},function(x,E,r){var f=r(3),d=r(36),h=r(352).CONSTRUCTOR,p=r(351),y=r(23),T=r(21),$=r(47),A=p&&p.prototype;if(f({target:"Promise",proto:!0,forced:h,real:!0},{catch:function(R){return this.then(void 0,R)}}),!d&&T(p)){var b=y("Promise").prototype.catch;A.catch!==b&&$(A,"catch",b,{unsafe:!0})}},function(x,E,r){var f=r(3),d=r(8),h=r(30),p=r(353),y=r(350),T=r(130),$=r(355);f({target:"Promise",stat:!0,forced:$},{race:function(b){var R=this,O=p.f(R),C=O.reject,w=y(function(){var D=h(R.resolve);T(b,function(L){d(D,R,L).then(O.resolve,C)})});return w.error&&C(w.value),O.promise}})},function(x,E,r){var f=r(3),d=r(353),h=r(352).CONSTRUCTOR;f({target:"Promise",stat:!0,forced:h},{reject:function(y){var T=d.f(this),$=T.reject;return $(y),T.promise}})},function(x,E,r){var f=r(3),d=r(23),h=r(36),p=r(351),y=r(352).CONSTRUCTOR,T=r(360),$=d("Promise"),A=h&&!y;f({target:"Promise",stat:!0,forced:h||y},{resolve:function(R){return T(A&&this===$?p:this,R)}})},function(x,E,r){var f=r(46),d=r(20),h=r(353);x.exports=function(p,y){if(f(p),d(y)&&y.constructor===p)return y;var T=h.f(p),$=T.resolve;return $(y),T.promise}},function(x,E,r){var f=r(3),d=r(8),h=r(30),p=r(353),y=r(350),T=r(130),$=r(355);f({target:"Promise",stat:!0,forced:$},{allSettled:function(b){var R=this,O=p.f(R),C=O.resolve,w=O.reject,D=y(function(){var L=h(R.resolve),F=[],j=0,U=1;T(b,function(z){var Y=j++,B=!1;U++,d(L,R,z).then(function(V){B||(B=!0,F[Y]={status:"fulfilled",value:V},--U||C(F))},function(V){B||(B=!0,F[Y]={status:"rejected",reason:V},--U||C(F))})}),--U||C(F)});return D.error&&w(D.value),O.promise}})},function(x,E,r){var f=r(3),d=r(8),h=r(30),p=r(23),y=r(353),T=r(350),$=r(130),A=r(355),b="No one promise resolved";f({target:"Promise",stat:!0,forced:A},{any:function(O){var C=this,w=p("AggregateError"),D=y.f(C),L=D.resolve,F=D.reject,j=T(function(){var U=h(C.resolve),z=[],Y=0,B=1,V=!1;$(O,function(K){var J=Y++,Z=!1;B++,d(U,C,K).then(function(_){Z||V||(V=!0,L(_))},function(_){Z||V||(Z=!0,z[J]=_,--B||F(new w(z,b)))})}),--B||F(new w(z,b))});return j.error&&F(j.value),D.promise}})},function(x,E,r){var f=r(3),d=r(36),h=r(351),p=r(7),y=r(23),T=r(21),$=r(219),A=r(360),b=r(47),R=h&&h.prototype,O=!!h&&p(function(){R.finally.call({then:function(){}},function(){})});if(f({target:"Promise",proto:!0,real:!0,forced:O},{finally:function(w){var D=$(this,y("Promise")),L=T(w);return this.then(L?function(F){return A(D,w()).then(function(){return F})}:w,L?function(F){return A(D,w()).then(function(){throw F})}:w)}}),!d&&T(h)){var C=y("Promise").prototype.finally;R.finally!==C&&b(R,"finally",C,{unsafe:!0})}},function(x,E,r){var f=r(3),d=r(353);f({target:"Promise",stat:!0},{withResolvers:function(){var p=d.f(this);return{promise:p.promise,resolve:p.resolve,reject:p.reject}}})},function(x,E,r){var f=r(3),d=r(94),h=r(30),p=r(46),y=r(7),T=!y(function(){Reflect.apply(function(){})});f({target:"Reflect",stat:!0,forced:T},{apply:function(A,b,R){return d(h(A),b,p(R))}})},function(x,E,r){var f=r(3),d=r(23),h=r(94),p=r(248),y=r(220),T=r(46),$=r(20),A=r(71),b=r(7),R=d("Reflect","construct"),O=Object.prototype,C=[].push,w=b(function(){function F(){}return!(R(function(){},[],F)instanceof F)}),D=!b(function(){R(function(){})}),L=w||D;f({target:"Reflect",stat:!0,forced:L,sham:L},{construct:function(j,U){y(j),T(U);var z=arguments.length<3?j:y(arguments[2]);if(D&&!w)return R(j,U,z);if(j===z){switch(U.length){case 0:return new j;case 1:return new j(U[0]);case 2:return new j(U[0],U[1]);case 3:return new j(U[0],U[1],U[2]);case 4:return new j(U[0],U[1],U[2],U[3])}var Y=[null];return h(C,Y,U),new(h(p,j,Y))}var B=z.prototype,V=A($(B)?B:O),K=h(j,V,U);return $(K)?K:V}})},function(x,E,r){var f=r(3),d=r(6),h=r(46),p=r(18),y=r(44),T=r(7),$=T(function(){Reflect.defineProperty(y.f({},1,{value:1}),1,{value:2})});f({target:"Reflect",stat:!0,forced:$,sham:!d},{defineProperty:function(b,R,O){h(b);var C=p(R);h(O);try{return y.f(b,C,O),!0}catch(w){return!1}}})},function(x,E,r){var f=r(3),d=r(46),h=r(5).f;f({target:"Reflect",stat:!0},{deleteProperty:function(y,T){var $=h(d(y),T);return $&&!$.configurable?!1:delete y[T]}})},function(x,E,r){var f=r(3),d=r(8),h=r(20),p=r(46),y=r(370),T=r(5),$=r(128);function A(b,R){var O=arguments.length<3?b:arguments[2],C,w;if(p(b)===O)return b[R];if(C=T.f(b,R),C)return y(C)?C.value:C.get===void 0?void 0:d(C.get,O);if(h(w=$(b)))return A(w,R,O)}f({target:"Reflect",stat:!0},{get:A})},function(x,E,r){var f=r(38);x.exports=function(d){return d!==void 0&&(f(d,"value")||f(d,"writable"))}},function(x,E,r){var f=r(3),d=r(6),h=r(46),p=r(5);f({target:"Reflect",stat:!0,sham:!d},{getOwnPropertyDescriptor:function(T,$){return p.f(h(T),$)}})},function(x,E,r){var f=r(3),d=r(46),h=r(128),p=r(129);f({target:"Reflect",stat:!0,sham:!p},{getPrototypeOf:function(T){return h(d(T))}})},function(x,E,r){var f=r(3);f({target:"Reflect",stat:!0},{has:function(h,p){return p in h}})},function(x,E,r){var f=r(3),d=r(46),h=r(257);f({target:"Reflect",stat:!0},{isExtensible:function(y){return d(y),h(y)}})},function(x,E,r){var f=r(3),d=r(56);f({target:"Reflect",stat:!0},{ownKeys:d})},function(x,E,r){var f=r(3),d=r(23),h=r(46),p=r(259);f({target:"Reflect",stat:!0,sham:!p},{preventExtensions:function(T){h(T);try{var $=d("Object","preventExtensions");return $&&$(T),!0}catch(A){return!1}}})},function(x,E,r){var f=r(3),d=r(8),h=r(46),p=r(20),y=r(370),T=r(7),$=r(44),A=r(5),b=r(128),R=r(11);function O(w,D,L){var F=arguments.length<4?w:arguments[3],j=A.f(h(w),D),U,z,Y;if(!j){if(p(z=b(w)))return O(z,D,L,F);j=R(0)}if(y(j)){if(j.writable===!1||!p(F))return!1;if(U=A.f(F,D)){if(U.get||U.set||U.writable===!1)return!1;U.value=L,$.f(F,D,U)}else $.f(F,D,R(0,L))}else{if(Y=j.set,Y===void 0)return!1;d(Y,F,L)}return!0}var C=T(function(){var w=function(){},D=$.f(new w,"a",{configurable:!0});return Reflect.set(w.prototype,"a",1,D)!==!1});f({target:"Reflect",stat:!0,forced:C},{set:O})},function(x,E,r){var f=r(3),d=r(46),h=r(115),p=r(113);p&&f({target:"Reflect",stat:!0},{setPrototypeOf:function(T,$){d(T),h($);try{return p(T,$),!0}catch(A){return!1}}})},function(x,E,r){var f=r(3),d=r(4),h=r(82);f({global:!0},{Reflect:{}}),h(d.Reflect,"Reflect",!0)},function(x,E,r){var f=r(6),d=r(4),h=r(14),p=r(67),y=r(118),T=r(43),$=r(71),A=r(57).f,b=r(24),R=r(381),O=r(68),C=r(382),w=r(384),D=r(117),L=r(47),F=r(7),j=r(38),U=r(51).enforce,z=r(193),Y=r(33),B=r(385),V=r(386),K=Y("match"),J=d.RegExp,Z=J.prototype,_=d.SyntaxError,nt=h(Z.exec),rt=h("".charAt),q=h("".replace),tt=h("".indexOf),et=h("".slice),lt=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,vt=/a/g,ft=/a/g,bt=new J(vt)!==vt,yt=w.MISSED_STICKY,Ft=w.UNSUPPORTED_Y,Lt=f&&(!bt||yt||B||V||F(function(){return ft[K]=!1,J(vt)!==vt||J(ft)===ft||String(J(vt,"i"))!=="/a/i"})),jt=function(ee){for(var Mt=ee.length,zt=0,te="",ae=!1,re;zt<=Mt;zt++){if(re=rt(ee,zt),re==="\\"){te+=re+rt(ee,++zt);continue}!ae&&re==="."?te+="[\\s\\S]":(re==="["?ae=!0:re==="]"&&(ae=!1),te+=re)}return te},Kt=function(ee){for(var Mt=ee.length,zt=0,te="",ae=[],re=$(null),oe=!1,Re=!1,Ce=0,xe="",se;zt<=Mt;zt++){if(se=rt(ee,zt),se==="\\")se+=rt(ee,++zt);else if(se==="]")oe=!1;else if(!oe)switch(!0){case se==="[":oe=!0;break;case se==="(":nt(lt,et(ee,zt+1))&&(zt+=2,Re=!0),te+=se,Ce++;continue;case(se===">"&&Re):if(xe===""||j(re,xe))throw new _("Invalid capture group name");re[xe]=!0,ae[ae.length]=[xe,Ce],Re=!1,xe="";continue}Re?xe+=se:te+=se}return[te,ae]};if(p("RegExp",Lt)){for(var Jt=function(Mt,zt){var te=b(Z,this),ae=R(Mt),re=zt===void 0,oe=[],Re=Mt,Ce,xe,se,Ae,me,ce;if(!te&&ae&&re&&Mt.constructor===Jt)return Mt;if((ae||b(Z,Mt))&&(Mt=Mt.source,re&&(zt=C(Re))),Mt=Mt===void 0?"":O(Mt),zt=zt===void 0?"":O(zt),Re=Mt,B&&"dotAll"in vt&&(xe=!!zt&&tt(zt,"s")>-1,xe&&(zt=q(zt,/s/g,""))),Ce=zt,yt&&"sticky"in vt&&(se=!!zt&&tt(zt,"y")>-1,se&&Ft&&(zt=q(zt,/y/g,""))),V&&(Ae=Kt(Mt),Mt=Ae[0],oe=Ae[1]),me=y(J(Mt,zt),te?this:Z,Jt),(xe||se||oe.length)&&(ce=U(me),xe&&(ce.dotAll=!0,ce.raw=Jt(jt(Mt),Ce)),se&&(ce.sticky=!0),oe.length&&(ce.groups=oe)),Mt!==Re)try{T(me,"source",Re===""?"(?:)":Re)}catch(Et){}return me},ge=A(J),le=0;ge.length>le;)D(Jt,J,ge[le++]);Z.constructor=Jt,Jt.prototype=Z,L(d,"RegExp",Jt,{constructor:!0})}z("RegExp")},function(x,E,r){var f=r(20),d=r(15),h=r(33),p=h("match");x.exports=function(y){var T;return f(y)&&((T=y[p])!==void 0?!!T:d(y)==="RegExp")}},function(x,E,r){var f=r(8),d=r(38),h=r(24),p=r(383),y=RegExp.prototype;x.exports=function(T){var $=T.flags;return $===void 0&&!("flags"in y)&&!d(T,"flags")&&h(y,T)?f(p,T):$}},function(x,E,r){var f=r(46);x.exports=function(){var d=f(this),h="";return d.hasIndices&&(h+="d"),d.global&&(h+="g"),d.ignoreCase&&(h+="i"),d.multiline&&(h+="m"),d.dotAll&&(h+="s"),d.unicode&&(h+="u"),d.unicodeSets&&(h+="v"),d.sticky&&(h+="y"),h}},function(x,E,r){var f=r(7),d=r(4),h=d.RegExp,p=f(function(){var $=h("a","y");return $.lastIndex=2,$.exec("abcd")!==null}),y=p||f(function(){return!h("a","y").sticky}),T=p||f(function(){var $=h("^r","gy");return $.lastIndex=2,$.exec("str")!==null});x.exports={BROKEN_CARET:T,MISSED_STICKY:y,UNSUPPORTED_Y:p}},function(x,E,r){var f=r(7),d=r(4),h=d.RegExp;x.exports=f(function(){var p=h(".","s");return!(p.dotAll&&p.test(` +`)&&p.flags==="s")})},function(x,E,r){var f=r(7),d=r(4),h=d.RegExp;x.exports=f(function(){var p=h("(?<a>b)","g");return p.exec("b").groups.a!=="b"||"b".replace(p,"$<a>c")!=="bc"})},function(x,E,r){var f=r(6),d=r(385),h=r(15),p=r(77),y=r(51).get,T=RegExp.prototype,$=TypeError;f&&d&&p(T,"dotAll",{configurable:!0,get:function(){if(this!==T){if(h(this)==="RegExp")return!!y(this).dotAll;throw new $("Incompatible receiver, RegExp required")}}})},function(x,E,r){var f=r(3),d=r(389);f({target:"RegExp",proto:!0,forced:/./.exec!==d},{exec:d})},function(x,E,r){var f=r(8),d=r(14),h=r(68),p=r(383),y=r(384),T=r(34),$=r(71),A=r(51).get,b=r(385),R=r(386),O=T("native-string-replace",String.prototype.replace),C=RegExp.prototype.exec,w=C,D=d("".charAt),L=d("".indexOf),F=d("".replace),j=d("".slice),U=function(){var V=/a/,K=/b*/g;return f(C,V,"a"),f(C,K,"a"),V.lastIndex!==0||K.lastIndex!==0}(),z=y.BROKEN_CARET,Y=/()??/.exec("")[1]!==void 0,B=U||Y||z||b||R;B&&(w=function(K){var J=this,Z=A(J),_=h(K),nt=Z.raw,rt,q,tt,et,lt,vt,ft;if(nt)return nt.lastIndex=J.lastIndex,rt=f(w,nt,_),J.lastIndex=nt.lastIndex,rt;var bt=Z.groups,yt=z&&J.sticky,Ft=f(p,J),Lt=J.source,jt=0,Kt=_;if(yt&&(Ft=F(Ft,"y",""),L(Ft,"g")===-1&&(Ft+="g"),Kt=j(_,J.lastIndex),J.lastIndex>0&&(!J.multiline||J.multiline&&D(_,J.lastIndex-1)!==` +`)&&(Lt="(?: "+Lt+")",Kt=" "+Kt,jt++),q=new RegExp("^(?:"+Lt+")",Ft)),Y&&(q=new RegExp("^"+Lt+"$(?!\\s)",Ft)),U&&(tt=J.lastIndex),et=f(C,yt?q:J,Kt),yt?et?(et.input=j(et.input,jt),et[0]=j(et[0],jt),et.index=J.lastIndex,J.lastIndex+=et[0].length):J.lastIndex=0:U&&et&&(J.lastIndex=J.global?et.index+et[0].length:tt),Y&&et&&et.length>1&&f(O,et[0],q,function(){for(lt=1;lt<arguments.length-2;lt++)arguments[lt]===void 0&&(et[lt]=void 0)}),et&&bt)for(et.groups=vt=$(null),lt=0;lt<bt.length;lt++)ft=bt[lt],vt[ft[0]]=et[ft[1]];return et}),x.exports=w},function(x,E,r){var f=r(4),d=r(6),h=r(77),p=r(383),y=r(7),T=f.RegExp,$=T.prototype,A=d&&y(function(){var b=!0;try{T(".","d")}catch(j){b=!1}var R={},O="",C=b?"dgimsy":"gimsy",w=function(j,U){Object.defineProperty(R,j,{get:function(){return O+=U,!0}})},D={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};b&&(D.hasIndices="d");for(var L in D)w(L,D[L]);var F=Object.getOwnPropertyDescriptor($,"flags").get.call(R);return F!==C||O!==C});A&&h($,"flags",{configurable:!0,get:p})},function(x,E,r){var f=r(6),d=r(384).MISSED_STICKY,h=r(15),p=r(77),y=r(51).get,T=RegExp.prototype,$=TypeError;f&&d&&p(T,"sticky",{configurable:!0,get:function(){if(this!==T){if(h(this)==="RegExp")return!!y(this).sticky;throw new $("Incompatible receiver, RegExp required")}}})},function(x,E,r){r(388);var f=r(3),d=r(8),h=r(21),p=r(46),y=r(68),T=function(){var A=!1,b=/[ac]/;return b.exec=function(){return A=!0,/./.exec.apply(this,arguments)},b.test("abc")===!0&&A}(),$=/./.test;f({target:"RegExp",proto:!0,forced:!T},{test:function(A){var b=p(this),R=y(A),O=b.exec;if(!h(O))return d($,b,R);var C=d(O,b,R);return C===null?!1:(p(C),!0)}})},function(x,E,r){var f=r(49).PROPER,d=r(47),h=r(46),p=r(68),y=r(7),T=r(382),$="toString",A=RegExp.prototype,b=A[$],R=y(function(){return b.call({source:"a",flags:"b"})!=="/a/b"}),O=f&&b.name!==$;(R||O)&&d(A,$,function(){var w=h(this),D=p(w.source),L=p(T(w));return"/"+D+"/"+L},{unsafe:!0})},function(x,E,r){r(395)},function(x,E,r){var f=r(255),d=r(260);f("Set",function(h){return function(){return h(this,arguments.length?arguments[0]:void 0)}},d)},function(x,E,r){var f=r(3),d=r(397),h=r(406);f({target:"Set",proto:!0,real:!0,forced:!h("difference")},{difference:d})},function(x,E,r){var f=r(398),d=r(399),h=r(400),p=r(403),y=r(404),T=r(401),$=r(402),A=d.has,b=d.remove;x.exports=function(O){var C=f(this),w=y(O),D=h(C);return p(C)<=w.size?T(C,function(L){w.includes(L)&&b(D,L)}):$(w.getIterator(),function(L){A(C,L)&&b(D,L)}),D}},function(x,E,r){var f=r(399).has;x.exports=function(d){return f(d),d}},function(x,E,r){var f=r(14),d=Set.prototype;x.exports={Set,add:f(d.add),has:f(d.has),remove:f(d.delete),proto:d}},function(x,E,r){var f=r(399),d=r(401),h=f.Set,p=f.add;x.exports=function(y){var T=new h;return d(y,function($){p(T,$)}),T}},function(x,E,r){var f=r(14),d=r(402),h=r(399),p=h.Set,y=h.proto,T=f(y.forEach),$=f(y.keys),A=$(new p).next;x.exports=function(b,R,O){return O?d({iterator:$(b),next:A},R):T(b,R)}},function(x,E,r){var f=r(8);x.exports=function(d,h,p){for(var y=p?d:d.iterator,T=d.next,$,A;!($=f(T,y)).done;)if(A=h($.value),A!==void 0)return A}},function(x,E,r){var f=r(114),d=r(399);x.exports=f(d.proto,"size","get")||function(h){return h.size}},function(x,E,r){var f=r(30),d=r(46),h=r(8),p=r(61),y=r(405),T="Invalid size",$=RangeError,A=TypeError,b=Math.max,R=function(O,C){this.set=O,this.size=b(C,0),this.has=f(O.has),this.keys=f(O.keys)};R.prototype={getIterator:function(){return y(d(h(this.keys,this.set)))},includes:function(O){return h(this.has,this.set,O)}},x.exports=function(O){d(O);var C=+O.size;if(C!==C)throw new A(T);var w=p(C);if(w<0)throw new $(T);return new R(O,w)}},function(x){x.exports=function(E){return{iterator:E,next:E.next,done:!1}}},function(x,E,r){var f=r(23),d=function(h){return{size:h,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}};x.exports=function(h){var p=f("Set");try{new p()[h](d(0));try{return new p()[h](d(-1)),!1}catch(y){return!0}}catch(y){return!1}}},function(x,E,r){var f=r(3),d=r(7),h=r(408),p=r(406),y=!p("intersection")||d(function(){return String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))!=="3,2"});f({target:"Set",proto:!0,real:!0,forced:y},{intersection:h})},function(x,E,r){var f=r(398),d=r(399),h=r(403),p=r(404),y=r(401),T=r(402),$=d.Set,A=d.add,b=d.has;x.exports=function(O){var C=f(this),w=p(O),D=new $;return h(C)>w.size?T(w.getIterator(),function(L){b(C,L)&&A(D,L)}):y(C,function(L){w.includes(L)&&A(D,L)}),D}},function(x,E,r){var f=r(3),d=r(410),h=r(406);f({target:"Set",proto:!0,real:!0,forced:!h("isDisjointFrom")},{isDisjointFrom:d})},function(x,E,r){var f=r(398),d=r(399).has,h=r(403),p=r(404),y=r(401),T=r(402),$=r(135);x.exports=function(b){var R=f(this),O=p(b);if(h(R)<=O.size)return y(R,function(w){if(O.includes(w))return!1},!0)!==!1;var C=O.getIterator();return T(C,function(w){if(d(R,w))return $(C,"normal",!1)})!==!1}},function(x,E,r){var f=r(3),d=r(412),h=r(406);f({target:"Set",proto:!0,real:!0,forced:!h("isSubsetOf")},{isSubsetOf:d})},function(x,E,r){var f=r(398),d=r(403),h=r(401),p=r(404);x.exports=function(T){var $=f(this),A=p(T);return d($)>A.size?!1:h($,function(b){if(!A.includes(b))return!1},!0)!==!1}},function(x,E,r){var f=r(3),d=r(414),h=r(406);f({target:"Set",proto:!0,real:!0,forced:!h("isSupersetOf")},{isSupersetOf:d})},function(x,E,r){var f=r(398),d=r(399).has,h=r(403),p=r(404),y=r(402),T=r(135);x.exports=function(A){var b=f(this),R=p(A);if(h(b)<R.size)return!1;var O=R.getIterator();return y(O,function(C){if(!d(b,C))return T(O,"normal",!1)})!==!1}},function(x,E,r){var f=r(3),d=r(416),h=r(406);f({target:"Set",proto:!0,real:!0,forced:!h("symmetricDifference")},{symmetricDifference:d})},function(x,E,r){var f=r(398),d=r(399),h=r(400),p=r(404),y=r(402),T=d.add,$=d.has,A=d.remove;x.exports=function(R){var O=f(this),C=p(R).getIterator(),w=h(O);return y(C,function(D){$(O,D)?A(w,D):T(w,D)}),w}},function(x,E,r){var f=r(3),d=r(418),h=r(406);f({target:"Set",proto:!0,real:!0,forced:!h("union")},{union:d})},function(x,E,r){var f=r(398),d=r(399).add,h=r(400),p=r(404),y=r(402);x.exports=function($){var A=f(this),b=p($).getIterator(),R=h(A);return y(b,function(O){d(R,O)}),R}},function(x,E,r){var f=r(3),d=r(14),h=r(16),p=r(61),y=r(68),T=r(7),$=d("".charAt),A=T(function(){return"\u{20BB7}".at(-2)!=="\uD842"});f({target:"String",proto:!0,forced:A},{at:function(R){var O=y(h(this)),C=O.length,w=p(R),D=w>=0?w:C+w;return D<0||D>=C?void 0:$(O,D)}})},function(x,E,r){var f=r(3),d=r(421).codeAt;f({target:"String",proto:!0},{codePointAt:function(p){return d(this,p)}})},function(x,E,r){var f=r(14),d=r(61),h=r(68),p=r(16),y=f("".charAt),T=f("".charCodeAt),$=f("".slice),A=function(b){return function(R,O){var C=h(p(R)),w=d(O),D=C.length,L,F;return w<0||w>=D?b?"":void 0:(L=T(C,w),L<55296||L>56319||w+1===D||(F=T(C,w+1))<56320||F>57343?b?y(C,w):L:b?$(C,w,w+2):(L-55296<<10)+(F-56320)+65536)}};x.exports={codeAt:A(!1),charAt:A(!0)}},function(x,E,r){var f=r(3),d=r(85),h=r(5).f,p=r(64),y=r(68),T=r(423),$=r(16),A=r(424),b=r(36),R=d("".slice),O=Math.min,C=A("endsWith"),w=!b&&!C&&!!function(){var D=h(String.prototype,"endsWith");return D&&!D.writable}();f({target:"String",proto:!0,forced:!w&&!C},{endsWith:function(L){var F=y($(this));T(L);var j=arguments.length>1?arguments[1]:void 0,U=F.length,z=j===void 0?U:O(p(j),U),Y=y(L);return R(F,z-Y.length,z)===Y}})},function(x,E,r){var f=r(381),d=TypeError;x.exports=function(h){if(f(h))throw new d("The method doesn't accept regular expressions");return h}},function(x,E,r){var f=r(33),d=f("match");x.exports=function(h){var p=/./;try{"/./"[h](p)}catch(y){try{return p[d]=!1,"/./"[h](p)}catch(T){}}return!1}},function(x,E,r){var f=r(3),d=r(14),h=r(60),p=RangeError,y=String.fromCharCode,T=String.fromCodePoint,$=d([].join),A=!!T&&T.length!==1;f({target:"String",stat:!0,arity:1,forced:A},{fromCodePoint:function(R){for(var O=[],C=arguments.length,w=0,D;C>w;){if(D=+arguments[w++],h(D,1114111)!==D)throw new p(D+" is not a valid code point");O[w]=D<65536?y(D):y(((D-=65536)>>10)+55296,D%1024+56320)}return $(O,"")}})},function(x,E,r){var f=r(3),d=r(14),h=r(423),p=r(16),y=r(68),T=r(424),$=d("".indexOf);f({target:"String",proto:!0,forced:!T("includes")},{includes:function(b){return!!~$(y(p(this)),y(h(b)),arguments.length>1?arguments[1]:void 0)}})},function(x,E,r){var f=r(3),d=r(14),h=r(16),p=r(68),y=d("".charCodeAt);f({target:"String",proto:!0},{isWellFormed:function(){for(var $=p(h(this)),A=$.length,b=0;b<A;b++){var R=y($,b);if((R&63488)===55296&&(R>=56320||++b>=A||(y($,b)&64512)!==56320))return!1}return!0}})},function(x,E,r){var f=r(421).charAt,d=r(68),h=r(51),p=r(169),y=r(172),T="String Iterator",$=h.set,A=h.getterFor(T);p(String,"String",function(b){$(this,{type:T,string:d(b),index:0})},function(){var R=A(this),O=R.string,C=R.index,w;return C>=O.length?y(void 0,!0):(w=f(O,C),R.index+=w.length,y(w,!1))})},function(x,E,r){var f=r(8),d=r(430),h=r(46),p=r(17),y=r(64),T=r(68),$=r(16),A=r(29),b=r(431),R=r(432);d("match",function(O,C,w){return[function(L){var F=$(this),j=p(L)?void 0:A(L,O);return j?f(j,L,F):new RegExp(L)[O](T(F))},function(D){var L=h(this),F=T(D),j=w(C,L,F);if(j.done)return j.value;if(!L.global)return R(L,F);var U=L.unicode;L.lastIndex=0;for(var z=[],Y=0,B;(B=R(L,F))!==null;){var V=T(B[0]);z[Y]=V,V===""&&(L.lastIndex=b(F,y(L.lastIndex),U)),Y++}return Y===0?null:z}]})},function(x,E,r){r(388);var f=r(8),d=r(47),h=r(389),p=r(7),y=r(33),T=r(43),$=y("species"),A=RegExp.prototype;x.exports=function(b,R,O,C){var w=y(b),D=!p(function(){var U={};return U[w]=function(){return 7},""[b](U)!==7}),L=D&&!p(function(){var U=!1,z=/a/;return b==="split"&&(z={},z.constructor={},z.constructor[$]=function(){return z},z.flags="",z[w]=/./[w]),z.exec=function(){return U=!0,null},z[w](""),!U});if(!D||!L||O){var F=/./[w],j=R(w,""[b],function(U,z,Y,B,V){var K=z.exec;return K===h||K===A.exec?D&&!V?{done:!0,value:f(F,z,Y,B)}:{done:!0,value:f(U,Y,z,B)}:{done:!1}});d(String.prototype,b,j[0]),d(A,w,j[1])}C&&T(A[w],"sham",!0)}},function(x,E,r){var f=r(421).charAt;x.exports=function(d,h,p){return h+(p?f(d,h).length:1)}},function(x,E,r){var f=r(8),d=r(46),h=r(21),p=r(15),y=r(389),T=TypeError;x.exports=function($,A){var b=$.exec;if(h(b)){var R=f(b,$,A);return R!==null&&d(R),R}if(p($)==="RegExp")return f(y,$,A);throw new T("RegExp#exec called on incompatible receiver")}},function(x,E,r){var f=r(3),d=r(8),h=r(85),p=r(170),y=r(172),T=r(16),$=r(64),A=r(68),b=r(46),R=r(17),O=r(15),C=r(381),w=r(382),D=r(29),L=r(47),F=r(7),j=r(33),U=r(219),z=r(431),Y=r(432),B=r(51),V=r(36),K=j("matchAll"),J="RegExp String",Z=J+" Iterator",_=B.set,nt=B.getterFor(Z),rt=RegExp.prototype,q=TypeError,tt=h("".indexOf),et=h("".matchAll),lt=!!et&&!F(function(){et("a",/./)}),vt=p(function(yt,Ft,Lt,jt){_(this,{type:Z,regexp:yt,string:Ft,global:Lt,unicode:jt,done:!1})},J,function(){var yt=nt(this);if(yt.done)return y(void 0,!0);var Ft=yt.regexp,Lt=yt.string,jt=Y(Ft,Lt);return jt===null?(yt.done=!0,y(void 0,!0)):yt.global?(A(jt[0])===""&&(Ft.lastIndex=z(Lt,$(Ft.lastIndex),yt.unicode)),y(jt,!1)):(yt.done=!0,y(jt,!1))}),ft=function(bt){var yt=b(this),Ft=A(bt),Lt=U(yt,RegExp),jt=A(w(yt)),Kt,Jt,ge;return Kt=new Lt(Lt===RegExp?yt.source:yt,jt),Jt=!!~tt(jt,"g"),ge=!!~tt(jt,"u"),Kt.lastIndex=$(yt.lastIndex),new vt(Kt,Ft,Jt,ge)};f({target:"String",proto:!0,forced:lt},{matchAll:function(yt){var Ft=T(this),Lt,jt,Kt,Jt;if(R(yt)){if(lt)return et(Ft,yt)}else{if(C(yt)&&(Lt=A(T(w(yt))),!~tt(Lt,"g")))throw new q("`.matchAll` does not allow non-global regexes");if(lt)return et(Ft,yt);if(Kt=D(yt,K),Kt===void 0&&V&&O(yt)==="RegExp"&&(Kt=ft),Kt)return d(Kt,yt,Ft)}return jt=A(Ft),Jt=new RegExp(yt,"g"),V?d(ft,Jt,jt):Jt[K](jt)}}),V||K in rt||L(rt,K,ft)},function(x,E,r){var f=r(3),d=r(240).end,h=r(435);f({target:"String",proto:!0,forced:h},{padEnd:function(y){return d(this,y,arguments.length>1?arguments[1]:void 0)}})},function(x,E,r){var f=r(28);x.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(f)},function(x,E,r){var f=r(3),d=r(240).start,h=r(435);f({target:"String",proto:!0,forced:h},{padStart:function(y){return d(this,y,arguments.length>1?arguments[1]:void 0)}})},function(x,E,r){var f=r(3),d=r(14),h=r(12),p=r(39),y=r(68),T=r(63),$=d([].push),A=d([].join);f({target:"String",stat:!0},{raw:function(R){var O=h(p(R).raw),C=T(O);if(!C)return"";for(var w=arguments.length,D=[],L=0;;){if($(D,y(O[L++])),L===C)return A(D,"");L<w&&$(D,y(arguments[L]))}}})},function(x,E,r){var f=r(3),d=r(241);f({target:"String",proto:!0},{repeat:d})},function(x,E,r){var f=r(94),d=r(8),h=r(14),p=r(430),y=r(7),T=r(46),$=r(21),A=r(17),b=r(61),R=r(64),O=r(68),C=r(16),w=r(431),D=r(29),L=r(440),F=r(432),j=r(33),U=j("replace"),z=Math.max,Y=Math.min,B=h([].concat),V=h([].push),K=h("".indexOf),J=h("".slice),Z=function(q){return q===void 0?q:String(q)},_=function(){return"a".replace(/./,"$0")==="$0"}(),nt=function(){return/./[U]?/./[U]("a","$0")==="":!1}(),rt=!y(function(){var q=/./;return q.exec=function(){var tt=[];return tt.groups={a:"7"},tt},"".replace(q,"$<a>")!=="7"});p("replace",function(q,tt,et){var lt=nt?"$":"$0";return[function(ft,bt){var yt=C(this),Ft=A(ft)?void 0:D(ft,U);return Ft?d(Ft,ft,yt,bt):d(tt,O(yt),ft,bt)},function(vt,ft){var bt=T(this),yt=O(vt);if(typeof ft=="string"&&K(ft,lt)===-1&&K(ft,"$<")===-1){var Ft=et(tt,bt,yt,ft);if(Ft.done)return Ft.value}var Lt=$(ft);Lt||(ft=O(ft));var jt=bt.global,Kt;jt&&(Kt=bt.unicode,bt.lastIndex=0);for(var Jt=[],ge;ge=F(bt,yt),!(ge===null||(V(Jt,ge),!jt));){var le=O(ge[0]);le===""&&(bt.lastIndex=w(yt,R(bt.lastIndex),Kt))}for(var ee="",Mt=0,zt=0;zt<Jt.length;zt++){ge=Jt[zt];for(var te=O(ge[0]),ae=z(Y(b(ge.index),yt.length),0),re=[],oe,Re=1;Re<ge.length;Re++)V(re,Z(ge[Re]));var Ce=ge.groups;if(Lt){var xe=B([te],re,ae,yt);Ce!==void 0&&V(xe,Ce),oe=O(f(ft,void 0,xe))}else oe=L(te,yt,ae,re,Ce,ft);ae>=Mt&&(ee+=J(yt,Mt,ae)+oe,Mt=ae+te.length)}return ee+J(yt,Mt)}]},!rt||!_||nt)},function(x,E,r){var f=r(14),d=r(39),h=Math.floor,p=f("".charAt),y=f("".replace),T=f("".slice),$=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,A=/\$([$&'`]|\d{1,2})/g;x.exports=function(b,R,O,C,w,D){var L=O+b.length,F=C.length,j=A;return w!==void 0&&(w=d(w),j=$),y(D,j,function(U,z){var Y;switch(p(z,0)){case"$":return"$";case"&":return b;case"`":return T(R,0,O);case"'":return T(R,L);case"<":Y=w[T(z,1,-1)];break;default:var B=+z;if(B===0)return U;if(B>F){var V=h(B/10);return V===0?U:V<=F?C[V-1]===void 0?p(z,1):C[V-1]+p(z,1):U}Y=C[B-1]}return Y===void 0?"":Y})}},function(x,E,r){var f=r(3),d=r(8),h=r(14),p=r(16),y=r(21),T=r(17),$=r(381),A=r(68),b=r(29),R=r(382),O=r(440),C=r(33),w=r(36),D=C("replace"),L=TypeError,F=h("".indexOf),j=h("".replace),U=h("".slice),z=Math.max;f({target:"String",proto:!0},{replaceAll:function(B,V){var K=p(this),J,Z,_,nt,rt,q,tt,et,lt,vt=0,ft=0,bt="";if(!T(B)){if(J=$(B),J&&(Z=A(p(R(B))),!~F(Z,"g")))throw new L("`.replaceAll` does not allow non-global regexes");if(_=b(B,D),_)return d(_,B,K,V);if(w&&J)return j(A(K),B,V)}for(nt=A(K),rt=A(B),q=y(V),q||(V=A(V)),tt=rt.length,et=z(1,tt),vt=F(nt,rt);vt!==-1;)lt=q?A(V(rt,vt,nt)):O(rt,nt,vt,[],void 0,V),bt+=U(nt,ft,vt)+lt,ft=vt+tt,vt=vt+et>nt.length?-1:F(nt,rt,vt+et);return ft<nt.length&&(bt+=U(nt,ft)),bt}})},function(x,E,r){var f=r(8),d=r(430),h=r(46),p=r(17),y=r(16),T=r(323),$=r(68),A=r(29),b=r(432);d("search",function(R,O,C){return[function(D){var L=y(this),F=p(D)?void 0:A(D,R);return F?f(F,D,L):new RegExp(D)[R]($(L))},function(w){var D=h(this),L=$(w),F=C(O,D,L);if(F.done)return F.value;var j=D.lastIndex;T(j,0)||(D.lastIndex=0);var U=b(D,L);return T(D.lastIndex,j)||(D.lastIndex=j),U===null?-1:U.index}]})},function(x,E,r){var f=r(8),d=r(14),h=r(430),p=r(46),y=r(17),T=r(16),$=r(219),A=r(431),b=r(64),R=r(68),O=r(29),C=r(432),w=r(384),D=r(7),L=w.UNSUPPORTED_Y,F=4294967295,j=Math.min,U=d([].push),z=d("".slice),Y=!D(function(){var V=/(?:)/,K=V.exec;V.exec=function(){return K.apply(this,arguments)};var J="ab".split(V);return J.length!==2||J[0]!=="a"||J[1]!=="b"}),B="abbc".split(/(b)*/)[1]==="c"||"test".split(/(?:)/,-1).length!==4||"ab".split(/(?:ab)*/).length!==2||".".split(/(.?)(.?)/).length!==4||".".split(/()()/).length>1||"".split(/.?/).length;h("split",function(V,K,J){var Z="0".split(void 0,0).length?function(_,nt){return _===void 0&&nt===0?[]:f(K,this,_,nt)}:K;return[function(nt,rt){var q=T(this),tt=y(nt)?void 0:O(nt,V);return tt?f(tt,nt,q,rt):f(Z,R(q),nt,rt)},function(_,nt){var rt=p(this),q=R(_);if(!B){var tt=J(Z,rt,q,nt,Z!==K);if(tt.done)return tt.value}var et=$(rt,RegExp),lt=rt.unicode,vt=(rt.ignoreCase?"i":"")+(rt.multiline?"m":"")+(rt.unicode?"u":"")+(L?"g":"y"),ft=new et(L?"^(?:"+rt.source+")":rt,vt),bt=nt===void 0?F:nt>>>0;if(bt===0)return[];if(q.length===0)return C(ft,q)===null?[q]:[];for(var yt=0,Ft=0,Lt=[];Ft<q.length;){ft.lastIndex=L?0:Ft;var jt=C(ft,L?z(q,Ft):q),Kt;if(jt===null||(Kt=j(b(ft.lastIndex+(L?Ft:0)),q.length))===yt)Ft=A(q,Ft,lt);else{if(U(Lt,z(q,yt,Ft)),Lt.length===bt)return Lt;for(var Jt=1;Jt<=jt.length-1;Jt++)if(U(Lt,jt[Jt]),Lt.length===bt)return Lt;Ft=yt=Kt}}return U(Lt,z(q,yt)),Lt}]},B||!Y,L)},function(x,E,r){var f=r(3),d=r(85),h=r(5).f,p=r(64),y=r(68),T=r(423),$=r(16),A=r(424),b=r(36),R=d("".slice),O=Math.min,C=A("startsWith"),w=!b&&!C&&!!function(){var D=h(String.prototype,"startsWith");return D&&!D.writable}();f({target:"String",proto:!0,forced:!w&&!C},{startsWith:function(L){var F=y($(this));T(L);var j=p(O(arguments.length>1?arguments[1]:void 0,F.length)),U=y(L);return R(F,j,j+U.length)===U}})},function(x,E,r){var f=r(3),d=r(14),h=r(16),p=r(61),y=r(68),T=d("".slice),$=Math.max,A=Math.min,b=!"".substr||"ab".substr(-1)!=="b";f({target:"String",proto:!0,forced:b},{substr:function(O,C){var w=y(h(this)),D=w.length,L=p(O),F,j;return L===1/0&&(L=0),L<0&&(L=$(D+L,0)),F=C===void 0?D:p(C),F<=0||F===1/0?"":(j=A(L+F,D),L>=j?"":T(w,L,j))}})},function(x,E,r){var f=r(3),d=r(8),h=r(14),p=r(16),y=r(68),T=r(7),$=Array,A=h("".charAt),b=h("".charCodeAt),R=h([].join),O="".toWellFormed,C="\uFFFD",w=O&&T(function(){return d(O,1)!=="1"});f({target:"String",proto:!0,forced:w},{toWellFormed:function(){var L=y(p(this));if(w)return d(O,L);for(var F=L.length,j=$(F),U=0;U<F;U++){var z=b(L,U);(z&63488)!==55296?j[U]=A(L,U):z>=56320||U+1>=F||(b(L,U+1)&64512)!==56320?j[U]=C:(j[U]=A(L,U),j[++U]=A(L,U))}return R(j,"")}})},function(x,E,r){var f=r(3),d=r(286).trim,h=r(448);f({target:"String",proto:!0,forced:h("trim")},{trim:function(){return d(this)}})},function(x,E,r){var f=r(49).PROPER,d=r(7),h=r(287),p="\u200B\x85\u180E";x.exports=function(y){return d(function(){return!!h[y]()||p[y]()!==p||f&&h[y].name!==y})}},function(x,E,r){r(450);var f=r(3),d=r(451);f({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==d},{trimEnd:d})},function(x,E,r){var f=r(3),d=r(451);f({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==d},{trimRight:d})},function(x,E,r){var f=r(286).end,d=r(448);x.exports=d("trimEnd")?function(){return f(this)}:"".trimEnd},function(x,E,r){r(453);var f=r(3),d=r(454);f({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==d},{trimStart:d})},function(x,E,r){var f=r(3),d=r(454);f({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==d},{trimLeft:d})},function(x,E,r){var f=r(286).start,d=r(448);x.exports=d("trimStart")?function(){return f(this)}:"".trimStart},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("anchor")},{anchor:function(y){return d(this,"a","name",y)}})},function(x,E,r){var f=r(14),d=r(16),h=r(68),p=/"/g,y=f("".replace);x.exports=function(T,$,A,b){var R=h(d(T)),O="<"+$;return A!==""&&(O+=" "+A+'="'+y(h(b),p,""")+'"'),O+">"+R+"</"+$+">"}},function(x,E,r){var f=r(7);x.exports=function(d){return f(function(){var h=""[d]('"');return h!==h.toLowerCase()||h.split('"').length>3})}},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("big")},{big:function(){return d(this,"big","","")}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("blink")},{blink:function(){return d(this,"blink","","")}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("bold")},{bold:function(){return d(this,"b","","")}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("fixed")},{fixed:function(){return d(this,"tt","","")}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("fontcolor")},{fontcolor:function(y){return d(this,"font","color",y)}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("fontsize")},{fontsize:function(y){return d(this,"font","size",y)}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("italics")},{italics:function(){return d(this,"i","","")}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("link")},{link:function(y){return d(this,"a","href",y)}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("small")},{small:function(){return d(this,"small","","")}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("strike")},{strike:function(){return d(this,"strike","","")}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("sub")},{sub:function(){return d(this,"sub","","")}})},function(x,E,r){var f=r(3),d=r(456),h=r(457);f({target:"String",proto:!0,forced:h("sup")},{sup:function(){return d(this,"sup","","")}})},function(x,E,r){var f=r(471);f("Float32",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,E,r){var f=r(3),d=r(4),h=r(8),p=r(6),y=r(472),T=r(217),$=r(207),A=r(210),b=r(11),R=r(43),O=r(292),C=r(64),w=r(211),D=r(473),L=r(475),F=r(18),j=r(38),U=r(69),z=r(20),Y=r(22),B=r(71),V=r(24),K=r(113),J=r(57).f,Z=r(476),_=r(83).forEach,nt=r(193),rt=r(77),q=r(44),tt=r(5),et=r(198),lt=r(51),vt=r(118),ft=lt.get,bt=lt.set,yt=lt.enforce,Ft=q.f,Lt=tt.f,jt=d.RangeError,Kt=$.ArrayBuffer,Jt=Kt.prototype,ge=$.DataView,le=T.NATIVE_ARRAY_BUFFER_VIEWS,ee=T.TYPED_ARRAY_TAG,Mt=T.TypedArray,zt=T.TypedArrayPrototype,te=T.isTypedArray,ae="BYTES_PER_ELEMENT",re="Wrong length",oe=function(Ae,me){rt(Ae,me,{configurable:!0,get:function(){return ft(this)[me]}})},Re=function(Ae){var me;return V(Jt,Ae)||(me=U(Ae))==="ArrayBuffer"||me==="SharedArrayBuffer"},Ce=function(Ae,me){return te(Ae)&&!Y(me)&&me in Ae&&O(+me)&&me>=0},xe=function(me,ce){return ce=F(ce),Ce(me,ce)?b(2,me[ce]):Lt(me,ce)},se=function(me,ce,Et){return ce=F(ce),Ce(me,ce)&&z(Et)&&j(Et,"value")&&!j(Et,"get")&&!j(Et,"set")&&!Et.configurable&&(!j(Et,"writable")||Et.writable)&&(!j(Et,"enumerable")||Et.enumerable)?(me[ce]=Et.value,me):Ft(me,ce,Et)};p?(le||(tt.f=xe,q.f=se,oe(zt,"buffer"),oe(zt,"byteOffset"),oe(zt,"byteLength"),oe(zt,"length")),f({target:"Object",stat:!0,forced:!le},{getOwnPropertyDescriptor:xe,defineProperty:se}),x.exports=function(Ae,me,ce){var Et=Ae.match(/\d+/)[0]/8,Bt=Ae+(ce?"Clamped":"")+"Array",$t="get"+Ae,kt="set"+Ae,Qt=d[Bt],Vt=Qt,Ut=Vt&&Vt.prototype,we={},Ye=function(ot,gt){var ct=ft(ot);return ct.view[$t](gt*Et+ct.byteOffset,!0)},dt=function(ot,gt,ct){var Nt=ft(ot);Nt.view[kt](gt*Et+Nt.byteOffset,ce?L(ct):ct,!0)},Ot=function(ot,gt){Ft(ot,gt,{get:function(){return Ye(this,gt)},set:function(ct){return dt(this,gt,ct)},enumerable:!0})};le?y&&(Vt=me(function(ot,gt,ct,Nt){return A(ot,Ut),vt(function(){return z(gt)?Re(gt)?Nt!==void 0?new Qt(gt,D(ct,Et),Nt):ct!==void 0?new Qt(gt,D(ct,Et)):new Qt(gt):te(gt)?et(Vt,gt):h(Z,Vt,gt):new Qt(w(gt))}(),ot,Vt)}),K&&K(Vt,Mt),_(J(Qt),function(ot){ot in Vt||R(Vt,ot,Qt[ot])}),Vt.prototype=Ut):(Vt=me(function(ot,gt,ct,Nt){A(ot,Ut);var qt=0,ie=0,Te,$e,ye;if(!z(gt))ye=w(gt),$e=ye*Et,Te=new Kt($e);else if(Re(gt)){Te=gt,ie=D(ct,Et);var sn=gt.byteLength;if(Nt===void 0){if(sn%Et)throw new jt(re);if($e=sn-ie,$e<0)throw new jt(re)}else if($e=C(Nt)*Et,$e+ie>sn)throw new jt(re);ye=$e/Et}else return te(gt)?et(Vt,gt):h(Z,Vt,gt);for(bt(ot,{buffer:Te,byteOffset:ie,byteLength:$e,length:ye,view:new ge(Te)});qt<ye;)Ot(ot,qt++)}),K&&K(Vt,Mt),Ut=Vt.prototype=B(zt)),Ut.constructor!==Vt&&R(Ut,"constructor",Vt),yt(Ut).TypedArrayConstructor=Vt,ee&&R(Ut,ee,Bt);var Pt=Vt!==Qt;we[Bt]=Vt,f({global:!0,constructor:!0,forced:Pt,sham:!le},we),ae in Vt||R(Vt,ae,Et),ae in Ut||R(Ut,ae,Et),nt(Bt)}):x.exports=function(){}},function(x,E,r){var f=r(4),d=r(7),h=r(164),p=r(217).NATIVE_ARRAY_BUFFER_VIEWS,y=f.ArrayBuffer,T=f.Int8Array;x.exports=!p||!d(function(){T(1)})||!d(function(){new T(-1)})||!h(function($){new T,new T(null),new T(1.5),new T($)},!0)||d(function(){return new T(new y(2),1,void 0).length!==1})},function(x,E,r){var f=r(474),d=RangeError;x.exports=function(h,p){var y=f(h);if(y%p)throw new d("Wrong offset");return y}},function(x,E,r){var f=r(61),d=RangeError;x.exports=function(h){var p=f(h);if(p<0)throw new d("The argument can't be less than 0");return p}},function(x){var E=Math.round;x.exports=function(r){var f=E(r);return f<0?0:f>255?255:f&255}},function(x,E,r){var f=r(84),d=r(8),h=r(220),p=r(39),y=r(63),T=r(133),$=r(134),A=r(131),b=r(477),R=r(217).aTypedArrayConstructor,O=r(478);x.exports=function(w){var D=h(this),L=p(w),F=arguments.length,j=F>1?arguments[1]:void 0,U=j!==void 0,z=$(L),Y,B,V,K,J,Z,_,nt;if(z&&!A(z))for(_=T(L,z),nt=_.next,L=[];!(Z=d(nt,_)).done;)L.push(Z.value);for(U&&F>2&&(j=f(j,arguments[2])),B=y(L),V=new(R(D))(B),K=b(V),Y=0;B>Y;Y++)J=U?j(L[Y],Y):L[Y],V[Y]=K?O(J):+J;return V}},function(x,E,r){var f=r(69);x.exports=function(d){var h=f(d);return h==="BigInt64Array"||h==="BigUint64Array"}},function(x,E,r){var f=r(19),d=TypeError;x.exports=function(h){var p=f(h,"number");if(typeof p=="number")throw new d("Can't convert number to bigint");return BigInt(p)}},function(x,E,r){var f=r(471);f("Float64",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,E,r){var f=r(471);f("Int8",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,E,r){var f=r(471);f("Int16",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,E,r){var f=r(471);f("Int32",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,E,r){var f=r(471);f("Uint8",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,E,r){var f=r(471);f("Uint8",function(d){return function(p,y,T){return d(this,p,y,T)}},!0)},function(x,E,r){var f=r(471);f("Uint16",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,E,r){var f=r(471);f("Uint32",function(d){return function(p,y,T){return d(this,p,y,T)}})},function(x,E,r){var f=r(217),d=r(63),h=r(61),p=f.aTypedArray,y=f.exportTypedArrayMethod;y("at",function($){var A=p(this),b=d(A),R=h($),O=R>=0?R:b+R;return O<0||O>=b?void 0:A[O]})},function(x,E,r){var f=r(14),d=r(217),h=r(144),p=f(h),y=d.aTypedArray,T=d.exportTypedArrayMethod;T("copyWithin",function(A,b){return p(y(this),A,b,arguments.length>2?arguments[2]:void 0)})},function(x,E,r){var f=r(217),d=r(83).every,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("every",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,E,r){var f=r(217),d=r(149),h=r(478),p=r(69),y=r(8),T=r(14),$=r(7),A=f.aTypedArray,b=f.exportTypedArrayMethod,R=T("".slice),O=$(function(){var C=0;return new Int8Array(2).fill({valueOf:function(){return C++}}),C!==1});b("fill",function(w){var D=arguments.length;A(this);var L=R(p(this),0,3)==="Big"?h(w):+w;return y(d,this,L,D>1?arguments[1]:void 0,D>2?arguments[2]:void 0)},O)},function(x,E,r){var f=r(217),d=r(83).filter,h=r(492),p=f.aTypedArray,y=f.exportTypedArrayMethod;y("filter",function($){var A=d(p(this),$,arguments.length>1?arguments[1]:void 0);return h(this,A)})},function(x,E,r){var f=r(198),d=r(493);x.exports=function(h,p){return f(d(h),p)}},function(x,E,r){var f=r(217),d=r(219),h=f.aTypedArrayConstructor,p=f.getTypedArrayConstructor;x.exports=function(y){return h(d(y,p(y)))}},function(x,E,r){var f=r(217),d=r(83).find,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("find",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,E,r){var f=r(217),d=r(83).findIndex,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("findIndex",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,E,r){var f=r(217),d=r(154).findLast,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("findLast",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,E,r){var f=r(217),d=r(154).findLastIndex,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("findLastIndex",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,E,r){var f=r(217),d=r(83).forEach,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("forEach",function(T){d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,E,r){var f=r(472),d=r(217).exportTypedArrayStaticMethod,h=r(476);d("from",h,f)},function(x,E,r){var f=r(217),d=r(59).includes,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("includes",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,E,r){var f=r(217),d=r(59).indexOf,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("indexOf",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,E,r){var f=r(4),d=r(7),h=r(14),p=r(217),y=r(168),T=r(33),$=T("iterator"),A=f.Uint8Array,b=h(y.values),R=h(y.keys),O=h(y.entries),C=p.aTypedArray,w=p.exportTypedArrayMethod,D=A&&A.prototype,L=!d(function(){D[$].call([1])}),F=!!D&&D.values&&D[$]===D.values&&D.values.name==="values",j=function(){return b(C(this))};w("entries",function(){return O(C(this))},L),w("keys",function(){return R(C(this))},L),w("values",j,L||!F,{name:"values"}),w($,j,L||!F,{name:"values"})},function(x,E,r){var f=r(217),d=r(14),h=f.aTypedArray,p=f.exportTypedArrayMethod,y=d([].join);p("join",function($){return y(h(this),$)})},function(x,E,r){var f=r(217),d=r(94),h=r(175),p=f.aTypedArray,y=f.exportTypedArrayMethod;y("lastIndexOf",function($){var A=arguments.length;return d(h,p(this),A>1?[$,arguments[1]]:[$])})},function(x,E,r){var f=r(217),d=r(83).map,h=r(493),p=f.aTypedArray,y=f.exportTypedArrayMethod;y("map",function($){return d(p(this),$,arguments.length>1?arguments[1]:void 0,function(A,b){return new(h(A))(b)})})},function(x,E,r){var f=r(217),d=r(472),h=f.aTypedArrayConstructor,p=f.exportTypedArrayStaticMethod;p("of",function(){for(var T=0,$=arguments.length,A=new(h(this))($);$>T;)A[T]=arguments[T++];return A},d)},function(x,E,r){var f=r(217),d=r(181).left,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("reduce",function(T){var $=arguments.length;return d(h(this),T,$,$>1?arguments[1]:void 0)})},function(x,E,r){var f=r(217),d=r(181).right,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("reduceRight",function(T){var $=arguments.length;return d(h(this),T,$,$>1?arguments[1]:void 0)})},function(x,E,r){var f=r(217),d=f.aTypedArray,h=f.exportTypedArrayMethod,p=Math.floor;h("reverse",function(){for(var T=this,$=d(T).length,A=p($/2),b=0,R;b<A;)R=T[b],T[b++]=T[--$],T[$]=R;return T})},function(x,E,r){var f=r(4),d=r(8),h=r(217),p=r(63),y=r(473),T=r(39),$=r(7),A=f.RangeError,b=f.Int8Array,R=b&&b.prototype,O=R&&R.set,C=h.aTypedArray,w=h.exportTypedArrayMethod,D=!$(function(){var F=new Uint8ClampedArray(2);return d(O,F,{length:1,0:3},1),F[1]!==3}),L=D&&h.NATIVE_ARRAY_BUFFER_VIEWS&&$(function(){var F=new b(2);return F.set(1),F.set("2",1),F[0]!==0||F[1]!==2});w("set",function(j){C(this);var U=y(arguments.length>1?arguments[1]:void 0,1),z=T(j);if(D)return d(O,this,z,U);var Y=this.length,B=p(z),V=0;if(B+U>Y)throw new A("Wrong length");for(;V<B;)this[U+V]=z[V++]},!D||L)},function(x,E,r){var f=r(217),d=r(493),h=r(7),p=r(76),y=f.aTypedArray,T=f.exportTypedArrayMethod,$=h(function(){new Int8Array(1).slice()});T("slice",function(b,R){for(var O=p(y(this),b,R),C=d(this),w=0,D=O.length,L=new C(D);D>w;)L[w]=O[w++];return L},$)},function(x,E,r){var f=r(217),d=r(83).some,h=f.aTypedArray,p=f.exportTypedArrayMethod;p("some",function(T){return d(h(this),T,arguments.length>1?arguments[1]:void 0)})},function(x,E,r){var f=r(4),d=r(85),h=r(7),p=r(30),y=r(188),T=r(217),$=r(189),A=r(190),b=r(27),R=r(191),O=T.aTypedArray,C=T.exportTypedArrayMethod,w=f.Uint16Array,D=w&&d(w.prototype.sort),L=!!D&&!(h(function(){D(new w(2),null)})&&h(function(){D(new w(2),{})})),F=!!D&&!h(function(){if(b)return b<74;if($)return $<67;if(A)return!0;if(R)return R<602;var U=new w(516),z=Array(516),Y,B;for(Y=0;Y<516;Y++)B=Y%4,U[Y]=515-Y,z[Y]=Y-2*B+3;for(D(U,function(V,K){return(V/4|0)-(K/4|0)}),Y=0;Y<516;Y++)if(U[Y]!==z[Y])return!0}),j=function(U){return function(z,Y){return U!==void 0?+U(z,Y)||0:Y!==Y?-1:z!==z?1:z===0&&Y===0?1/z>0&&1/Y<0?1:-1:z>Y}};C("sort",function(z){return z!==void 0&&p(z),F?D(this,z):y(O(this),j(z))},!F||L)},function(x,E,r){var f=r(217),d=r(64),h=r(60),p=r(493),y=f.aTypedArray,T=f.exportTypedArrayMethod;T("subarray",function(A,b){var R=y(this),O=R.length,C=h(A,O),w=p(R);return new w(R.buffer,R.byteOffset+C*R.BYTES_PER_ELEMENT,d((b===void 0?O:h(b,O))-C))})},function(x,E,r){var f=r(4),d=r(94),h=r(217),p=r(7),y=r(76),T=f.Int8Array,$=h.aTypedArray,A=h.exportTypedArrayMethod,b=[].toLocaleString,R=!!T&&p(function(){b.call(new T(1))}),O=p(function(){return[1,2].toLocaleString()!==new T([1,2]).toLocaleString()})||!p(function(){T.prototype.toLocaleString.call([1,2])});A("toLocaleString",function(){return d(b,R?y($(this)):$(this),y(arguments))},O)},function(x,E,r){var f=r(196),d=r(217),h=d.aTypedArray,p=d.exportTypedArrayMethod,y=d.getTypedArrayConstructor;p("toReversed",function(){return f(h(this),y(this))})},function(x,E,r){var f=r(217),d=r(14),h=r(30),p=r(198),y=f.aTypedArray,T=f.getTypedArrayConstructor,$=f.exportTypedArrayMethod,A=d(f.TypedArrayPrototype.sort);$("toSorted",function(R){R!==void 0&&h(R);var O=y(this),C=p(T(O),O);return A(C,R)})},function(x,E,r){var f=r(217).exportTypedArrayMethod,d=r(7),h=r(4),p=r(14),y=h.Uint8Array,T=y&&y.prototype||{},$=[].toString,A=p([].join);d(function(){$.call({})})&&($=function(){return A(this)});var b=T.toString!==$;f("toString",$,b)},function(x,E,r){var f=r(205),d=r(217),h=r(477),p=r(61),y=r(478),T=d.aTypedArray,$=d.getTypedArrayConstructor,A=d.exportTypedArrayMethod,b=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(R){return R===8}}();A("with",function(R,O){var C=T(this),w=p(R),D=h(C)?y(O):+O;return f(C,$(C),w,D)},!b)},function(x,E,r){var f=r(3),d=r(14),h=r(68),p=String.fromCharCode,y=d("".charAt),T=d(/./.exec),$=d("".slice),A=/^[\da-f]{2}$/i,b=/^[\da-f]{4}$/i;f({global:!0},{unescape:function(O){for(var C=h(O),w="",D=C.length,L=0,F,j;L<D;){if(F=y(C,L++),F==="%"){if(y(C,L)==="u"){if(j=$(C,L+1,L+5),T(b,j)){w+=p(parseInt(j,16)),L+=5;continue}}else if(j=$(C,L,L+2),T(A,j)){w+=p(parseInt(j,16)),L+=2;continue}}w+=F}return w}})},function(x,E,r){r(522)},function(x,E,r){var f=r(259),d=r(4),h=r(14),p=r(209),y=r(256),T=r(255),$=r(523),A=r(20),b=r(51).enforce,R=r(7),O=r(52),C=Object,w=Array.isArray,D=C.isExtensible,L=C.isFrozen,F=C.isSealed,j=C.freeze,U=C.seal,z=!d.ActiveXObject&&"ActiveXObject"in d,Y,B=function(q){return function(){return q(this,arguments.length?arguments[0]:void 0)}},V=T("WeakMap",B,$),K=V.prototype,J=h(K.set),Z=function(){return f&&R(function(){var q=j([]);return J(new V,q,1),!L(q)})};if(O)if(z){Y=$.getConstructor(B,"WeakMap",!0),y.enable();var _=h(K.delete),nt=h(K.has),rt=h(K.get);p(K,{delete:function(q){if(A(q)&&!D(q)){var tt=b(this);return tt.frozen||(tt.frozen=new Y),_(this,q)||tt.frozen.delete(q)}return _(this,q)},has:function(tt){if(A(tt)&&!D(tt)){var et=b(this);return et.frozen||(et.frozen=new Y),nt(this,tt)||et.frozen.has(tt)}return nt(this,tt)},get:function(tt){if(A(tt)&&!D(tt)){var et=b(this);return et.frozen||(et.frozen=new Y),nt(this,tt)?rt(this,tt):et.frozen.get(tt)}return rt(this,tt)},set:function(tt,et){if(A(tt)&&!D(tt)){var lt=b(this);lt.frozen||(lt.frozen=new Y),nt(this,tt)?J(this,tt,et):lt.frozen.set(tt,et)}else J(this,tt,et);return this}})}else Z()&&p(K,{set:function(tt,et){var lt;return w(tt)&&(L(tt)?lt=j:F(tt)&&(lt=U)),J(this,tt,et),lt&<(tt),this}})},function(x,E,r){var f=r(14),d=r(209),h=r(256).getWeakData,p=r(210),y=r(46),T=r(17),$=r(20),A=r(130),b=r(83),R=r(38),O=r(51),C=O.set,w=O.getterFor,D=b.find,L=b.findIndex,F=f([].splice),j=0,U=function(B){return B.frozen||(B.frozen=new z)},z=function(){this.entries=[]},Y=function(B,V){return D(B.entries,function(K){return K[0]===V})};z.prototype={get:function(B){var V=Y(this,B);if(V)return V[1]},has:function(B){return!!Y(this,B)},set:function(B,V){var K=Y(this,B);K?K[1]=V:this.entries.push([B,V])},delete:function(B){var V=L(this.entries,function(K){return K[0]===B});return~V&&F(this.entries,V,1),!!~V}},x.exports={getConstructor:function(B,V,K,J){var Z=B(function(q,tt){p(q,_),C(q,{type:V,id:j++,frozen:void 0}),T(tt)||A(tt,q[J],{that:q,AS_ENTRIES:K})}),_=Z.prototype,nt=w(V),rt=function(q,tt,et){var lt=nt(q),vt=h(y(tt),!0);return vt===!0?U(lt).set(tt,et):vt[lt.id]=et,q};return d(_,{delete:function(q){var tt=nt(this);if(!$(q))return!1;var et=h(q);return et===!0?U(tt).delete(q):et&&R(et,tt.id)&&delete et[tt.id]},has:function(tt){var et=nt(this);if(!$(tt))return!1;var lt=h(tt);return lt===!0?U(et).has(tt):lt&&R(lt,et.id)}}),d(_,K?{get:function(tt){var et=nt(this);if($(tt)){var lt=h(tt);return lt===!0?U(et).get(tt):lt?lt[et.id]:void 0}},set:function(tt,et){return rt(this,tt,et)}}:{add:function(tt){return rt(this,tt,!0)}}),Z}}},function(x,E,r){r(525)},function(x,E,r){var f=r(255),d=r(523);f("WeakSet",function(h){return function(){return h(this,arguments.length?arguments[0]:void 0)}},d)},function(x,E,r){var f=r(3),d=r(4),h=r(23),p=r(14),y=r(8),T=r(7),$=r(68),A=r(342),b=r(527).c2i,R=/[^\d+/a-z]/i,O=/[\t\n\f\r ]+/g,C=/[=]{1,2}$/,w=h("atob"),D=String.fromCharCode,L=p("".charAt),F=p("".replace),j=p(R.exec),U=!!w&&!T(function(){return w("aGk=")!=="hi"}),z=U&&T(function(){return w(" ")!==""}),Y=U&&!T(function(){w("a")}),B=U&&!T(function(){w()}),V=U&&w.length!==1,K=!U||z||Y||B||V;f({global:!0,bind:!0,enumerable:!0,forced:K},{atob:function(Z){if(A(arguments.length,1),U&&!z&&!Y)return y(w,d,Z);var _=F($(Z),O,""),nt="",rt=0,q=0,tt,et,lt;if(_.length%4===0&&(_=F(_,C,"")),tt=_.length,tt%4===1||j(R,_))throw new(h("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;rt<tt;)et=L(_,rt++),lt=q%4?lt*64+b[et]:b[et],q++%4&&(nt+=D(255<>>(-2*q&6)));return nt}})},function(x){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=E+"+/",f=E+"-_",d=function(h){for(var p={},y=0;y<64;y++)p[h.charAt(y)]=y;return p};x.exports={i2c:r,c2i:d(r),i2cUrl:f,c2iUrl:d(f)}},function(x,E,r){var f=r(3),d=r(4),h=r(23),p=r(14),y=r(8),T=r(7),$=r(68),A=r(342),b=r(527).i2c,R=h("btoa"),O=p("".charAt),C=p("".charCodeAt),w=!!R&&!T(function(){return R("hi")!=="aGk="}),D=w&&!T(function(){R()}),L=w&&T(function(){return R(null)!=="bnVsbA=="}),F=w&&R.length!==1;f({global:!0,bind:!0,enumerable:!0,forced:!w||D||L||F},{btoa:function(U){if(A(arguments.length,1),w)return y(R,d,$(U));for(var z=$(U),Y="",B=0,V=b,K,J;O(z,B)||(V="=",B%1);){if(J=C(z,B+=.75),J>255)throw new(h("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");K=K<<8|J,Y+=O(V,63&K>>8-B%1*8)}return Y}})},function(x,E,r){var f=r(4),d=r(530),h=r(531),p=r(160),y=r(43),T=function(A){if(A&&A.forEach!==p)try{y(A,"forEach",p)}catch(b){A.forEach=p}};for(var $ in d)d[$]&&T(f[$]&&f[$].prototype);T(h)},function(x){x.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(x,E,r){var f=r(42),d=f("span").classList,h=d&&d.constructor&&d.constructor.prototype;x.exports=h===Object.prototype?void 0:h},function(x,E,r){var f=r(4),d=r(530),h=r(531),p=r(168),y=r(43),T=r(82),$=r(33),A=$("iterator"),b=p.values,R=function(C,w){if(C){if(C[A]!==b)try{y(C,A,b)}catch(L){C[A]=b}if(T(C,w,!0),d[w]){for(var D in p)if(C[D]!==p[D])try{y(C,D,p[D])}catch(L){C[D]=p[D]}}}};for(var O in d)R(f[O]&&f[O].prototype,O);R(h,"DOMTokenList")},function(x,E,r){var f=r(3),d=r(229),h=r(23),p=r(7),y=r(71),T=r(11),$=r(44).f,A=r(47),b=r(77),R=r(38),O=r(210),C=r(46),w=r(125),D=r(119),L=r(534),F=r(122),j=r(51),U=r(6),z=r(36),Y="DOMException",B="DATA_CLONE_ERR",V=h("Error"),K=h(Y)||function(){try{var Mt=h("MessageChannel")||d("worker_threads").MessageChannel;new Mt().port1.postMessage(new WeakMap)}catch(zt){if(zt.name===B&&zt.code===25)return zt.constructor}}(),J=K&&K.prototype,Z=V.prototype,_=j.set,nt=j.getterFor(Y),rt="stack"in new V(Y),q=function(Mt){return R(L,Mt)&&L[Mt].m?L[Mt].c:0},tt=function(){O(this,et);var zt=arguments.length,te=D(zt<1?void 0:arguments[0]),ae=D(zt<2?void 0:arguments[1],"Error"),re=q(ae);if(_(this,{type:Y,name:ae,message:te,code:re}),U||(this.name=ae,this.message=te,this.code=re),rt){var oe=new V(te);oe.name=Y,$(this,"stack",T(1,F(oe.stack,1)))}},et=tt.prototype=y(Z),lt=function(Mt){return{enumerable:!0,configurable:!0,get:Mt}},vt=function(Mt){return lt(function(){return nt(this)[Mt]})};U&&(b(et,"code",vt("code")),b(et,"message",vt("message")),b(et,"name",vt("name"))),$(et,"constructor",T(1,tt));var ft=p(function(){return!(new K instanceof V)}),bt=ft||p(function(){return Z.toString!==w||String(new K(1,2))!=="2: 1"}),yt=ft||p(function(){return new K(1,"DataCloneError").code!==25}),Ft=ft||K[B]!==25||J[B]!==25,Lt=z?bt||yt||Ft:ft;f({global:!0,constructor:!0,forced:Lt},{DOMException:Lt?tt:K});var jt=h(Y),Kt=jt.prototype;bt&&(z||K===jt)&&A(Kt,"toString",w),yt&&U&&K===jt&&b(Kt,"code",lt(function(){return q(C(this).name)}));for(var Jt in L)if(R(L,Jt)){var ge=L[Jt],le=ge.s,ee=T(6,ge.c);R(jt,le)||$(jt,le,ee),R(Kt,le)||$(Kt,le,ee)}},function(x){x.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},function(x,E,r){var f=r(3),d=r(4),h=r(23),p=r(11),y=r(44).f,T=r(38),$=r(210),A=r(118),b=r(119),R=r(534),O=r(122),C=r(6),w=r(36),D="DOMException",L=h("Error"),F=h(D),j=function(){$(this,U);var tt=arguments.length,et=b(tt<1?void 0:arguments[0]),lt=b(tt<2?void 0:arguments[1],"Error"),vt=new F(et,lt),ft=new L(et);return ft.name=D,y(vt,"stack",p(1,O(ft.stack,1))),A(vt,this,j),vt},U=j.prototype=F.prototype,z="stack"in new L(D),Y="stack"in new F(1,2),B=F&&C&&Object.getOwnPropertyDescriptor(d,D),V=!!B&&!(B.writable&&B.configurable),K=z&&!V&&!Y;f({global:!0,constructor:!0,forced:w||K},{DOMException:K?j:F});var J=h(D),Z=J.prototype;if(Z.constructor!==J){w||y(Z,"constructor",p(1,J));for(var _ in R)if(T(R,_)){var nt=R[_],rt=nt.s;T(J,rt)||y(J,rt,p(6,nt.c))}}},function(x,E,r){var f=r(23),d=r(82),h="DOMException";d(f(h),h)},function(x,E,r){r(538),r(539)},function(x,E,r){var f=r(3),d=r(4),h=r(341).clear;f({global:!0,bind:!0,enumerable:!0,forced:d.clearImmediate!==h},{clearImmediate:h})},function(x,E,r){var f=r(3),d=r(4),h=r(341).set,p=r(540),y=d.setImmediate?p(h,!1):h;f({global:!0,bind:!0,enumerable:!0,forced:d.setImmediate!==y},{setImmediate:y})},function(x,E,r){var f=r(4),d=r(94),h=r(21),p=r(541),y=r(28),T=r(76),$=r(342),A=f.Function,b=/MSIE .\./.test(y)||p&&function(){var R=f.Bun.version.split(".");return R.length<3||R[0]==="0"&&(R[1]<3||R[1]==="3"&&R[2]==="0")}();x.exports=function(R,O){var C=O?2:1;return b?function(w,D){var L=$(arguments.length,1)>C,F=h(w)?w:A(w),j=L?T(arguments,C):[],U=L?function(){d(F,this,j)}:F;return O?R(U,D):R(U)}:R}},function(x){x.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"},function(x,E,r){var f=r(3),d=r(4),h=r(344),p=r(30),y=r(342),T=r(7),$=r(6),A=T(function(){return $&&Object.getOwnPropertyDescriptor(d,"queueMicrotask").value.length!==1});f({global:!0,enumerable:!0,dontCallGetSet:!0,forced:A},{queueMicrotask:function(R){y(arguments.length,1),h(p(R))}})},function(x,E,r){var f=r(3),d=r(4),h=r(77),p=r(6),y=TypeError,T=Object.defineProperty,$=d.self!==d;try{if(p){var A=Object.getOwnPropertyDescriptor(d,"self");($||!A||!A.get||!A.enumerable)&&h(d,"self",{get:function(){return d},set:function(R){if(this!==d)throw new y("Illegal invocation");T(d,"self",{value:R,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else f({global:!0,simple:!0,forced:$},{self:d})}catch(b){}},function(x,E,r){var f=r(36),d=r(3),h=r(4),p=r(23),y=r(14),T=r(7),$=r(40),A=r(21),b=r(89),R=r(17),O=r(20),C=r(22),w=r(130),D=r(46),L=r(69),F=r(38),j=r(141),U=r(43),z=r(63),Y=r(342),B=r(382),V=r(262),K=r(399),J=r(401),Z=r(228),_=r(123),nt=r(230),rt=h.Object,q=h.Array,tt=h.Date,et=h.Error,lt=h.TypeError,vt=h.PerformanceMark,ft=p("DOMException"),bt=V.Map,yt=V.has,Ft=V.get,Lt=V.set,jt=K.Set,Kt=K.add,Jt=K.has,ge=p("Object","keys"),le=y([].push),ee=y((!0).valueOf),Mt=y(1 .valueOf),zt=y("".valueOf),te=y(tt.prototype.getTime),ae=$("structuredClone"),re="DataCloneError",oe="Transferring",Re=function(dt){return!T(function(){var Ot=new h.Set([7]),Pt=dt(Ot),ot=dt(rt(7));return Pt===Ot||!Pt.has(7)||!O(ot)||+ot!=7})&&dt},Ce=function(dt,Ot){return!T(function(){var Pt=new Ot,ot=dt({a:Pt,b:Pt});return!(ot&&ot.a===ot.b&&ot.a instanceof Ot&&ot.a.stack===Pt.stack)})},xe=function(dt){return!T(function(){var Ot=dt(new h.AggregateError([1],ae,{cause:3}));return Ot.name!=="AggregateError"||Ot.errors[0]!==1||Ot.message!==ae||Ot.cause!==3})},se=h.structuredClone,Ae=f||!Ce(se,et)||!Ce(se,ft)||!xe(se),me=!se&&Re(function(dt){return new vt(ae,{detail:dt}).detail}),ce=Re(se)||me,Et=function(dt){throw new ft("Uncloneable type: "+dt,re)},Bt=function(dt,Ot){throw new ft((Ot||"Cloning")+" of "+dt+" cannot be properly polyfilled in this engine",re)},$t=function(dt,Ot){return ce||Bt(Ot),ce(dt)},kt=function(){var dt;try{dt=new h.DataTransfer}catch(Ot){try{dt=new h.ClipboardEvent("").clipboardData}catch(Pt){}}return dt&&dt.items&&dt.files?dt:null},Qt=function(dt,Ot,Pt){if(yt(Ot,dt))return Ft(Ot,dt);var ot=Pt||L(dt),gt,ct,Nt,qt,ie,Te;if(ot==="SharedArrayBuffer")ce?gt=ce(dt):gt=dt;else{var $e=h.DataView;!$e&&!A(dt.slice)&&Bt("ArrayBuffer");try{if(A(dt.slice)&&!dt.resizable)gt=dt.slice(0);else for(ct=dt.byteLength,Nt=("maxByteLength"in dt)?{maxByteLength:dt.maxByteLength}:void 0,gt=new ArrayBuffer(ct,Nt),qt=new $e(dt),ie=new $e(gt),Te=0;Te<ct;Te++)ie.setUint8(Te,qt.getUint8(Te))}catch(ye){throw new ft("ArrayBuffer is detached",re)}}return Lt(Ot,dt,gt),gt},Vt=function(dt,Ot,Pt,ot,gt){var ct=h[Ot];return O(ct)||Bt(Ot),new ct(Qt(dt.buffer,gt),Pt,ot)},Ut=function(dt,Ot){if(C(dt)&&Et("Symbol"),!O(dt))return dt;if(Ot){if(yt(Ot,dt))return Ft(Ot,dt)}else Ot=new bt;var Pt=L(dt),ot,gt,ct,Nt,qt,ie,Te,$e;switch(Pt){case"Array":ct=q(z(dt));break;case"Object":ct={};break;case"Map":ct=new bt;break;case"Set":ct=new jt;break;case"RegExp":ct=new RegExp(dt.source,B(dt));break;case"Error":switch(gt=dt.name,gt){case"AggregateError":ct=new(p(gt))([]);break;case"EvalError":case"RangeError":case"ReferenceError":case"SuppressedError":case"SyntaxError":case"TypeError":case"URIError":ct=new(p(gt));break;case"CompileError":case"LinkError":case"RuntimeError":ct=new(p("WebAssembly",gt));break;default:ct=new et}break;case"DOMException":ct=new ft(dt.message,dt.name);break;case"ArrayBuffer":case"SharedArrayBuffer":ct=Qt(dt,Ot,Pt);break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float16Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":ie=Pt==="DataView"?dt.byteLength:dt.length,ct=Vt(dt,Pt,dt.byteOffset,ie,Ot);break;case"DOMQuad":try{ct=new DOMQuad(Ut(dt.p1,Ot),Ut(dt.p2,Ot),Ut(dt.p3,Ot),Ut(dt.p4,Ot))}catch(ye){ct=$t(dt,Pt)}break;case"File":if(ce)try{ct=ce(dt),L(ct)!==Pt&&(ct=void 0)}catch(ye){}if(!ct)try{ct=new File([dt],dt.name,dt)}catch(ye){}ct||Bt(Pt);break;case"FileList":if(Nt=kt(),Nt){for(qt=0,ie=z(dt);qt<ie;qt++)Nt.items.add(Ut(dt[qt],Ot));ct=Nt.files}else ct=$t(dt,Pt);break;case"ImageData":try{ct=new ImageData(Ut(dt.data,Ot),dt.width,dt.height,{colorSpace:dt.colorSpace})}catch(ye){ct=$t(dt,Pt)}break;default:if(ce)ct=ce(dt);else switch(Pt){case"BigInt":ct=rt(dt.valueOf());break;case"Boolean":ct=rt(ee(dt));break;case"Number":ct=rt(Mt(dt));break;case"String":ct=rt(zt(dt));break;case"Date":ct=new tt(te(dt));break;case"Blob":try{ct=dt.slice(0,dt.size,dt.type)}catch(ye){Bt(Pt)}break;case"DOMPoint":case"DOMPointReadOnly":ot=h[Pt];try{ct=ot.fromPoint?ot.fromPoint(dt):new ot(dt.x,dt.y,dt.z,dt.w)}catch(ye){Bt(Pt)}break;case"DOMRect":case"DOMRectReadOnly":ot=h[Pt];try{ct=ot.fromRect?ot.fromRect(dt):new ot(dt.x,dt.y,dt.width,dt.height)}catch(ye){Bt(Pt)}break;case"DOMMatrix":case"DOMMatrixReadOnly":ot=h[Pt];try{ct=ot.fromMatrix?ot.fromMatrix(dt):new ot(dt)}catch(ye){Bt(Pt)}break;case"AudioData":case"VideoFrame":A(dt.clone)||Bt(Pt);try{ct=dt.clone()}catch(ye){Et(Pt)}break;case"CropTarget":case"CryptoKey":case"FileSystemDirectoryHandle":case"FileSystemFileHandle":case"FileSystemHandle":case"GPUCompilationInfo":case"GPUCompilationMessage":case"ImageBitmap":case"RTCCertificate":case"WebAssembly.Module":Bt(Pt);default:Et(Pt)}}switch(Lt(Ot,dt,ct),Pt){case"Array":case"Object":for(Te=ge(dt),qt=0,ie=z(Te);qt<ie;qt++)$e=Te[qt],j(ct,$e,Ut(dt[$e],Ot));break;case"Map":dt.forEach(function(ye,sn){Lt(ct,Ut(sn,Ot),Ut(ye,Ot))});break;case"Set":dt.forEach(function(ye){Kt(ct,Ut(ye,Ot))});break;case"Error":U(ct,"message",Ut(dt.message,Ot)),F(dt,"cause")&&U(ct,"cause",Ut(dt.cause,Ot)),gt==="AggregateError"?ct.errors=Ut(dt.errors,Ot):gt==="SuppressedError"&&(ct.error=Ut(dt.error,Ot),ct.suppressed=Ut(dt.suppressed,Ot));case"DOMException":_&&U(ct,"stack",Ut(dt.stack,Ot))}return ct},we=function(dt,Ot){if(!O(dt))throw new lt("Transfer option cannot be converted to a sequence");var Pt=[];w(dt,function(sn){le(Pt,D(sn))});for(var ot=0,gt=z(Pt),ct=new jt,Nt,qt,ie,Te,$e,ye;ot<gt;){if(Nt=Pt[ot++],qt=L(Nt),qt==="ArrayBuffer"?Jt(ct,Nt):yt(Ot,Nt))throw new ft("Duplicate transferable",re);if(qt==="ArrayBuffer"){Kt(ct,Nt);continue}if(nt)Te=se(Nt,{transfer:[Nt]});else switch(qt){case"ImageBitmap":ie=h.OffscreenCanvas,b(ie)||Bt(qt,oe);try{$e=new ie(Nt.width,Nt.height),ye=$e.getContext("bitmaprenderer"),ye.transferFromImageBitmap(Nt),Te=$e.transferToImageBitmap()}catch(sn){}break;case"AudioData":case"VideoFrame":(!A(Nt.clone)||!A(Nt.close))&&Bt(qt,oe);try{Te=Nt.clone(),Nt.close()}catch(sn){}break;case"MediaSourceHandle":case"MessagePort":case"OffscreenCanvas":case"ReadableStream":case"TransformStream":case"WritableStream":Bt(qt,oe)}if(Te===void 0)throw new ft("This object cannot be transferred: "+qt,re);Lt(Ot,Nt,Te)}return ct},Ye=function(dt){J(dt,function(Ot){nt?ce(Ot,{transfer:[Ot]}):A(Ot.transfer)?Ot.transfer():Z?Z(Ot):Bt("ArrayBuffer",oe)})};d({global:!0,enumerable:!0,sham:!nt,forced:Ae},{structuredClone:function(Ot){var Pt=Y(arguments.length,1)>1&&!R(arguments[1])?D(arguments[1]):void 0,ot=Pt?Pt.transfer:void 0,gt,ct;ot!==void 0&&(gt=new bt,ct=we(ot,gt));var Nt=Ut(Ot,gt);return ct&&Ye(ct),Nt}})},function(x,E,r){r(546),r(547)},function(x,E,r){var f=r(3),d=r(4),h=r(540),p=h(d.setInterval,!0);f({global:!0,bind:!0,forced:d.setInterval!==p},{setInterval:p})},function(x,E,r){var f=r(3),d=r(4),h=r(540),p=h(d.setTimeout,!0);f({global:!0,bind:!0,forced:d.setTimeout!==p},{setTimeout:p})},function(x,E,r){r(549)},function(x,E,r){r(428);var f=r(3),d=r(6),h=r(550),p=r(4),y=r(84),T=r(14),$=r(47),A=r(77),b=r(210),R=r(38),O=r(305),C=r(162),w=r(76),D=r(421).codeAt,L=r(551),F=r(68),j=r(82),U=r(342),z=r(552),Y=r(51),B=Y.set,V=Y.getterFor("URL"),K=z.URLSearchParams,J=z.getState,Z=p.URL,_=p.TypeError,nt=p.parseInt,rt=Math.floor,q=Math.pow,tt=T("".charAt),et=T(/./.exec),lt=T([].join),vt=T(1 .toString),ft=T([].pop),bt=T([].push),yt=T("".replace),Ft=T([].shift),Lt=T("".split),jt=T("".slice),Kt=T("".toLowerCase),Jt=T([].unshift),ge="Invalid authority",le="Invalid scheme",ee="Invalid host",Mt="Invalid port",zt=/[a-z]/i,te=/[\d+-.a-z]/i,ae=/\d/,re=/^0x/i,oe=/^[0-7]+$/,Re=/^\d+$/,Ce=/^[\da-f]+$/i,xe=/[\0\t\n\r #%/:<>?@[\\\]^|]/,se=/[\0\t\n\r #/:<>?@[\\\]^|]/,Ae=/^[\u0000-\u0020]+/,me=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,ce=/[\t\n\r]/g,Et,Bt=function(ut){var wt=Lt(ut,"."),pt,it,Rt,ve,_t,Ee,Qe;if(wt.length&&wt[wt.length-1]===""&&wt.length--,pt=wt.length,pt>4)return ut;for(it=[],Rt=0;Rt<pt;Rt++){if(ve=wt[Rt],ve==="")return ut;if(_t=10,ve.length>1&&tt(ve,0)==="0"&&(_t=et(re,ve)?16:8,ve=jt(ve,_t===8?1:2)),ve==="")Ee=0;else{if(!et(_t===10?Re:_t===8?oe:Ce,ve))return ut;Ee=nt(ve,_t)}bt(it,Ee)}for(Rt=0;Rt<pt;Rt++)if(Ee=it[Rt],Rt===pt-1){if(Ee>=q(256,5-pt))return null}else if(Ee>255)return null;for(Qe=ft(it),Rt=0;Rt<it.length;Rt++)Qe+=it[Rt]*q(256,3-Rt);return Qe},$t=function(ut){var wt=[0,0,0,0,0,0,0,0],pt=0,it=null,Rt=0,ve,_t,Ee,Qe,un,dn,st,_e=function(){return tt(ut,Rt)};if(_e()===":"){if(tt(ut,1)!==":")return;Rt+=2,pt++,it=pt}for(;_e();){if(pt===8)return;if(_e()===":"){if(it!==null)return;Rt++,pt++,it=pt;continue}for(ve=_t=0;_t<4&&et(Ce,_e());)ve=ve*16+nt(_e(),16),Rt++,_t++;if(_e()==="."){if(_t===0||(Rt-=_t,pt>6))return;for(Ee=0;_e();){if(Qe=null,Ee>0)if(_e()==="."&&Ee<4)Rt++;else return;if(!et(ae,_e()))return;for(;et(ae,_e());){if(un=nt(_e(),10),Qe===null)Qe=un;else{if(Qe===0)return;Qe=Qe*10+un}if(Qe>255)return;Rt++}wt[pt]=wt[pt]*256+Qe,Ee++,(Ee===2||Ee===4)&&pt++}if(Ee!==4)return;break}else if(_e()===":"){if(Rt++,!_e())return}else if(_e())return;wt[pt++]=ve}if(it!==null)for(dn=pt-it,pt=7;pt!==0&&dn>0;)st=wt[pt],wt[pt--]=wt[it+dn-1],wt[it+--dn]=st;else if(pt!==8)return;return wt},kt=function(ut){for(var wt=null,pt=1,it=null,Rt=0,ve=0;ve<8;ve++)ut[ve]!==0?(Rt>pt&&(wt=it,pt=Rt),it=null,Rt=0):(it===null&&(it=ve),++Rt);return Rt>pt&&(wt=it,pt=Rt),wt},Qt=function(ut){var wt,pt,it,Rt;if(typeof ut=="number"){for(wt=[],pt=0;pt<4;pt++)Jt(wt,ut%256),ut=rt(ut/256);return lt(wt,".")}else if(typeof ut=="object"){for(wt="",it=kt(ut),pt=0;pt<8;pt++)Rt&&ut[pt]===0||(Rt&&(Rt=!1),it===pt?(wt+=pt?":":"::",Rt=!0):(wt+=vt(ut[pt],16),pt<7&&(wt+=":")));return"["+wt+"]"}return ut},Vt={},Ut=O({},Vt,{" ":1,'"':1,"<":1,">":1,"`":1}),we=O({},Ut,{"#":1,"?":1,"{":1,"}":1}),Ye=O({},we,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),dt=function(ut,wt){var pt=D(ut,0);return pt>32&&pt<127&&!R(wt,ut)?ut:encodeURIComponent(ut)},Ot={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Pt=function(ut,wt){var pt;return ut.length===2&&et(zt,tt(ut,0))&&((pt=tt(ut,1))===":"||!wt&&pt==="|")},ot=function(ut){var wt;return ut.length>1&&Pt(jt(ut,0,2))&&(ut.length===2||(wt=tt(ut,2))==="/"||wt==="\\"||wt==="?"||wt==="#")},gt=function(ut){return ut==="."||Kt(ut)==="%2e"},ct=function(ut){return ut=Kt(ut),ut===".."||ut==="%2e."||ut===".%2e"||ut==="%2e%2e"},Nt={},qt={},ie={},Te={},$e={},ye={},sn={},fr={},zr={},jr={},ca={},ua={},fa={},Gr={},Ya={},da={},dr={},Fn={},Ha={},qn={},jn={},ha=function(ut,wt,pt){var it=F(ut),Rt,ve,_t;if(wt){if(ve=this.parse(it),ve)throw new _(ve);this.searchParams=null}else{if(pt!==void 0&&(Rt=new ha(pt,!0)),ve=this.parse(it,null,Rt),ve)throw new _(ve);_t=J(new K),_t.bindURL(this),this.searchParams=_t}};ha.prototype={type:"URL",parse:function(ut,wt,pt){var it=this,Rt=wt||Nt,ve=0,_t="",Ee=!1,Qe=!1,un=!1,dn,st,_e,wn;for(ut=F(ut),wt||(it.scheme="",it.username="",it.password="",it.host=null,it.port=null,it.path=[],it.query=null,it.fragment=null,it.cannotBeABaseURL=!1,ut=yt(ut,Ae,""),ut=yt(ut,me,"$1")),ut=yt(ut,ce,""),dn=C(ut);ve<=dn.length;){switch(st=dn[ve],Rt){case Nt:if(st&&et(zt,st))_t+=Kt(st),Rt=qt;else{if(wt)return le;Rt=ie;continue}break;case qt:if(st&&(et(te,st)||st==="+"||st==="-"||st==="."))_t+=Kt(st);else if(st===":"){if(wt&&(it.isSpecial()!==R(Ot,_t)||_t==="file"&&(it.includesCredentials()||it.port!==null)||it.scheme==="file"&&!it.host))return;if(it.scheme=_t,wt){it.isSpecial()&&Ot[it.scheme]===it.port&&(it.port=null);return}_t="",it.scheme==="file"?Rt=Gr:it.isSpecial()&&pt&&pt.scheme===it.scheme?Rt=Te:it.isSpecial()?Rt=fr:dn[ve+1]==="/"?(Rt=$e,ve++):(it.cannotBeABaseURL=!0,bt(it.path,""),Rt=Ha)}else{if(wt)return le;_t="",Rt=ie,ve=0;continue}break;case ie:if(!pt||pt.cannotBeABaseURL&&st!=="#")return le;if(pt.cannotBeABaseURL&&st==="#"){it.scheme=pt.scheme,it.path=w(pt.path),it.query=pt.query,it.fragment="",it.cannotBeABaseURL=!0,Rt=jn;break}Rt=pt.scheme==="file"?Gr:ye;continue;case Te:if(st==="/"&&dn[ve+1]==="/")Rt=zr,ve++;else{Rt=ye;continue}break;case $e:if(st==="/"){Rt=jr;break}else{Rt=Fn;continue}case ye:if(it.scheme=pt.scheme,st===Et)it.username=pt.username,it.password=pt.password,it.host=pt.host,it.port=pt.port,it.path=w(pt.path),it.query=pt.query;else if(st==="/"||st==="\\"&&it.isSpecial())Rt=sn;else if(st==="?")it.username=pt.username,it.password=pt.password,it.host=pt.host,it.port=pt.port,it.path=w(pt.path),it.query="",Rt=qn;else if(st==="#")it.username=pt.username,it.password=pt.password,it.host=pt.host,it.port=pt.port,it.path=w(pt.path),it.query=pt.query,it.fragment="",Rt=jn;else{it.username=pt.username,it.password=pt.password,it.host=pt.host,it.port=pt.port,it.path=w(pt.path),it.path.length--,Rt=Fn;continue}break;case sn:if(it.isSpecial()&&(st==="/"||st==="\\"))Rt=zr;else if(st==="/")Rt=jr;else{it.username=pt.username,it.password=pt.password,it.host=pt.host,it.port=pt.port,Rt=Fn;continue}break;case fr:if(Rt=zr,st!=="/"||tt(_t,ve+1)!=="/")continue;ve++;break;case zr:if(st!=="/"&&st!=="\\"){Rt=jr;continue}break;case jr:if(st==="@"){Ee&&(_t="%40"+_t),Ee=!0,_e=C(_t);for(var Je=0;Je<_e.length;Je++){var Bn=_e[Je];if(Bn===":"&&!un){un=!0;continue}var Sn=dt(Bn,Ye);un?it.password+=Sn:it.username+=Sn}_t=""}else if(st===Et||st==="/"||st==="?"||st==="#"||st==="\\"&&it.isSpecial()){if(Ee&&_t==="")return ge;ve-=C(_t).length+1,_t="",Rt=ca}else _t+=st;break;case ca:case ua:if(wt&&it.scheme==="file"){Rt=da;continue}else if(st===":"&&!Qe){if(_t==="")return ee;if(wn=it.parseHost(_t),wn)return wn;if(_t="",Rt=fa,wt===ua)return}else if(st===Et||st==="/"||st==="?"||st==="#"||st==="\\"&&it.isSpecial()){if(it.isSpecial()&&_t==="")return ee;if(wt&&_t===""&&(it.includesCredentials()||it.port!==null))return;if(wn=it.parseHost(_t),wn)return wn;if(_t="",Rt=dr,wt)return;continue}else st==="["?Qe=!0:st==="]"&&(Qe=!1),_t+=st;break;case fa:if(et(ae,st))_t+=st;else if(st===Et||st==="/"||st==="?"||st==="#"||st==="\\"&&it.isSpecial()||wt){if(_t!==""){var Mn=nt(_t,10);if(Mn>65535)return Mt;it.port=it.isSpecial()&&Mn===Ot[it.scheme]?null:Mn,_t=""}if(wt)return;Rt=dr;continue}else return Mt;break;case Gr:if(it.scheme="file",st==="/"||st==="\\")Rt=Ya;else if(pt&&pt.scheme==="file")switch(st){case Et:it.host=pt.host,it.path=w(pt.path),it.query=pt.query;break;case"?":it.host=pt.host,it.path=w(pt.path),it.query="",Rt=qn;break;case"#":it.host=pt.host,it.path=w(pt.path),it.query=pt.query,it.fragment="",Rt=jn;break;default:ot(lt(w(dn,ve),""))||(it.host=pt.host,it.path=w(pt.path),it.shortenPath()),Rt=Fn;continue}else{Rt=Fn;continue}break;case Ya:if(st==="/"||st==="\\"){Rt=da;break}pt&&pt.scheme==="file"&&!ot(lt(w(dn,ve),""))&&(Pt(pt.path[0],!0)?bt(it.path,pt.path[0]):it.host=pt.host),Rt=Fn;continue;case da:if(st===Et||st==="/"||st==="\\"||st==="?"||st==="#"){if(!wt&&Pt(_t))Rt=Fn;else if(_t===""){if(it.host="",wt)return;Rt=dr}else{if(wn=it.parseHost(_t),wn)return wn;if(it.host==="localhost"&&(it.host=""),wt)return;_t="",Rt=dr}continue}else _t+=st;break;case dr:if(it.isSpecial()){if(Rt=Fn,st!=="/"&&st!=="\\")continue}else if(!wt&&st==="?")it.query="",Rt=qn;else if(!wt&&st==="#")it.fragment="",Rt=jn;else if(st!==Et&&(Rt=Fn,st!=="/"))continue;break;case Fn:if(st===Et||st==="/"||st==="\\"&&it.isSpecial()||!wt&&(st==="?"||st==="#")){if(ct(_t)?(it.shortenPath(),st!=="/"&&!(st==="\\"&&it.isSpecial())&&bt(it.path,"")):gt(_t)?st!=="/"&&!(st==="\\"&&it.isSpecial())&&bt(it.path,""):(it.scheme==="file"&&!it.path.length&&Pt(_t)&&(it.host&&(it.host=""),_t=tt(_t,0)+":"),bt(it.path,_t)),_t="",it.scheme==="file"&&(st===Et||st==="?"||st==="#"))for(;it.path.length>1&&it.path[0]==="";)Ft(it.path);st==="?"?(it.query="",Rt=qn):st==="#"&&(it.fragment="",Rt=jn)}else _t+=dt(st,we);break;case Ha:st==="?"?(it.query="",Rt=qn):st==="#"?(it.fragment="",Rt=jn):st!==Et&&(it.path[0]+=dt(st,Vt));break;case qn:!wt&&st==="#"?(it.fragment="",Rt=jn):st!==Et&&(st==="'"&&it.isSpecial()?it.query+="%27":st==="#"?it.query+="%23":it.query+=dt(st,Vt));break;case jn:st!==Et&&(it.fragment+=dt(st,Ut));break}ve++}},parseHost:function(ut){var wt,pt,it;if(tt(ut,0)==="["){if(tt(ut,ut.length-1)!=="]"||(wt=$t(jt(ut,1,-1)),!wt))return ee;this.host=wt}else if(this.isSpecial()){if(ut=L(ut),et(xe,ut)||(wt=Bt(ut),wt===null))return ee;this.host=wt}else{if(et(se,ut))return ee;for(wt="",pt=C(ut),it=0;it<pt.length;it++)wt+=dt(pt[it],Vt);this.host=wt}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme==="file"},includesCredentials:function(){return this.username!==""||this.password!==""},isSpecial:function(){return R(Ot,this.scheme)},shortenPath:function(){var ut=this.path,wt=ut.length;wt&&(this.scheme!=="file"||wt!==1||!Pt(ut[0],!0))&&ut.length--},serialize:function(){var ut=this,wt=ut.scheme,pt=ut.username,it=ut.password,Rt=ut.host,ve=ut.port,_t=ut.path,Ee=ut.query,Qe=ut.fragment,un=wt+":";return Rt!==null?(un+="//",ut.includesCredentials()&&(un+=pt+(it?":"+it:"")+"@"),un+=Qt(Rt),ve!==null&&(un+=":"+ve)):wt==="file"&&(un+="//"),un+=ut.cannotBeABaseURL?_t[0]:_t.length?"/"+lt(_t,"/"):"",Ee!==null&&(un+="?"+Ee),Qe!==null&&(un+="#"+Qe),un},setHref:function(ut){var wt=this.parse(ut);if(wt)throw new _(wt);this.searchParams.update()},getOrigin:function(){var ut=this.scheme,wt=this.port;if(ut==="blob")try{return new hr(ut.path[0]).origin}catch(pt){return"null"}return ut==="file"||!this.isSpecial()?"null":ut+"://"+Qt(this.host)+(wt!==null?":"+wt:"")},getProtocol:function(){return this.scheme+":"},setProtocol:function(ut){this.parse(F(ut)+":",Nt)},getUsername:function(){return this.username},setUsername:function(ut){var wt=C(F(ut));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var pt=0;pt<wt.length;pt++)this.username+=dt(wt[pt],Ye)}},getPassword:function(){return this.password},setPassword:function(ut){var wt=C(F(ut));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var pt=0;pt<wt.length;pt++)this.password+=dt(wt[pt],Ye)}},getHost:function(){var ut=this.host,wt=this.port;return ut===null?"":wt===null?Qt(ut):Qt(ut)+":"+wt},setHost:function(ut){this.cannotBeABaseURL||this.parse(ut,ca)},getHostname:function(){var ut=this.host;return ut===null?"":Qt(ut)},setHostname:function(ut){this.cannotBeABaseURL||this.parse(ut,ua)},getPort:function(){var ut=this.port;return ut===null?"":F(ut)},setPort:function(ut){this.cannotHaveUsernamePasswordPort()||(ut=F(ut),ut===""?this.port=null:this.parse(ut,fa))},getPathname:function(){var ut=this.path;return this.cannotBeABaseURL?ut[0]:ut.length?"/"+lt(ut,"/"):""},setPathname:function(ut){this.cannotBeABaseURL||(this.path=[],this.parse(ut,dr))},getSearch:function(){var ut=this.query;return ut?"?"+ut:""},setSearch:function(ut){ut=F(ut),ut===""?this.query=null:(tt(ut,0)==="?"&&(ut=jt(ut,1)),this.query="",this.parse(ut,qn)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var ut=this.fragment;return ut?"#"+ut:""},setHash:function(ut){if(ut=F(ut),ut===""){this.fragment=null;return}tt(ut,0)==="#"&&(ut=jt(ut,1)),this.fragment="",this.parse(ut,jn)},update:function(){this.query=this.searchParams.serialize()||null}};var hr=function(wt){var pt=b(this,vn),it=U(arguments.length,1)>1?arguments[1]:void 0,Rt=B(pt,new ha(wt,!1,it));d||(pt.href=Rt.serialize(),pt.origin=Rt.getOrigin(),pt.protocol=Rt.getProtocol(),pt.username=Rt.getUsername(),pt.password=Rt.getPassword(),pt.host=Rt.getHost(),pt.hostname=Rt.getHostname(),pt.port=Rt.getPort(),pt.pathname=Rt.getPathname(),pt.search=Rt.getSearch(),pt.searchParams=Rt.getSearchParams(),pt.hash=Rt.getHash())},vn=hr.prototype,Rn=function(ut,wt){return{get:function(){return V(this)[ut]()},set:wt&&function(pt){return V(this)[wt](pt)},configurable:!0,enumerable:!0}};if(d&&(A(vn,"href",Rn("serialize","setHref")),A(vn,"origin",Rn("getOrigin")),A(vn,"protocol",Rn("getProtocol","setProtocol")),A(vn,"username",Rn("getUsername","setUsername")),A(vn,"password",Rn("getPassword","setPassword")),A(vn,"host",Rn("getHost","setHost")),A(vn,"hostname",Rn("getHostname","setHostname")),A(vn,"port",Rn("getPort","setPort")),A(vn,"pathname",Rn("getPathname","setPathname")),A(vn,"search",Rn("getSearch","setSearch")),A(vn,"searchParams",Rn("getSearchParams")),A(vn,"hash",Rn("getHash","setHash"))),$(vn,"toJSON",function(){return V(this).serialize()},{enumerable:!0}),$(vn,"toString",function(){return V(this).serialize()},{enumerable:!0}),Z){var Wa=Z.createObjectURL,Ka=Z.revokeObjectURL;Wa&&$(hr,"createObjectURL",y(Wa,Z)),Ka&&$(hr,"revokeObjectURL",y(Ka,Z))}j(hr,"URL"),f({global:!0,constructor:!0,forced:!h,sham:!d},{URL:hr})},function(x,E,r){var f=r(7),d=r(33),h=r(6),p=r(36),y=d("iterator");x.exports=!f(function(){var T=new URL("b?a=1&b=2&c=3","http://a"),$=T.searchParams,A=new URLSearchParams("a=1&a=2&b=3"),b="";return T.pathname="c%20d",$.forEach(function(R,O){$.delete("b"),b+=O+R}),A.delete("a",2),A.delete("b",void 0),p&&(!T.toJSON||!A.has("a",1)||A.has("a",2)||!A.has("a",void 0)||A.has("b"))||!$.size&&(p||!h)||!$.sort||T.href!=="http://a/c%20d?a=1&c=3"||$.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!$[y]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("http://a#\u0431").hash!=="#%D0%B1"||b!=="a1c3"||new URL("http://x",void 0).host!=="x"})},function(x,E,r){var f=r(14),d=2147483647,h=36,p=1,y=26,T=38,$=700,A=72,b=128,R="-",O=/[^\0-\u007E]/,C=/[.\u3002\uFF0E\uFF61]/g,w="Overflow: input needs wider integers to process",D=h-p,L=RangeError,F=f(C.exec),j=Math.floor,U=String.fromCharCode,z=f("".charCodeAt),Y=f([].join),B=f([].push),V=f("".replace),K=f("".split),J=f("".toLowerCase),Z=function(q){for(var tt=[],et=0,lt=q.length;et<lt;){var vt=z(q,et++);if(vt>=55296&&vt<=56319&&et<lt){var ft=z(q,et++);(ft&64512)===56320?B(tt,((vt&1023)<<10)+(ft&1023)+65536):(B(tt,vt),et--)}else B(tt,vt)}return tt},_=function(q){return q+22+75*(q<26)},nt=function(q,tt,et){var lt=0;for(q=et?j(q/$):q>>1,q+=j(q/tt);q>D*y>>1;)q=j(q/D),lt+=h;return j(lt+(D+1)*q/(q+T))},rt=function(q){var tt=[];q=Z(q);var et=q.length,lt=b,vt=0,ft=A,bt,yt;for(bt=0;bt<q.length;bt++)yt=q[bt],yt<128&&B(tt,U(yt));var Ft=tt.length,Lt=Ft;for(Ft&&B(tt,R);Lt<et;){var jt=d;for(bt=0;bt<q.length;bt++)yt=q[bt],yt>=lt&&yt<jt&&(jt=yt);var Kt=Lt+1;if(jt-lt>j((d-vt)/Kt))throw new L(w);for(vt+=(jt-lt)*Kt,lt=jt,bt=0;bt<q.length;bt++){if(yt=q[bt],yt<lt&&++vt>d)throw new L(w);if(yt===lt){for(var Jt=vt,ge=h;;){var le=ge<=ft?p:ge>=ft+y?y:ge-ft;if(Jt<le)break;var ee=Jt-le,Mt=h-le;B(tt,U(_(le+ee%Mt))),Jt=j(ee/Mt),ge+=h}B(tt,U(_(Jt))),ft=nt(vt,Kt,Lt===Ft),vt=0,Lt++}}vt++,lt++}return Y(tt,"")};x.exports=function(q){var tt=[],et=K(V(J(q),C,"."),"."),lt,vt;for(lt=0;lt<et.length;lt++)vt=et[lt],B(tt,F(O,vt)?"xn--"+rt(vt):vt);return Y(tt,".")}},function(x,E,r){r(168);var f=r(3),d=r(4),h=r(345),p=r(8),y=r(14),T=r(6),$=r(550),A=r(47),b=r(77),R=r(209),O=r(82),C=r(170),w=r(51),D=r(210),L=r(21),F=r(38),j=r(84),U=r(69),z=r(46),Y=r(20),B=r(68),V=r(71),K=r(11),J=r(133),Z=r(134),_=r(172),nt=r(342),rt=r(33),q=r(188),tt=rt("iterator"),et="URLSearchParams",lt=et+"Iterator",vt=w.set,ft=w.getterFor(et),bt=w.getterFor(lt),yt=h("fetch"),Ft=h("Request"),Lt=h("Headers"),jt=Ft&&Ft.prototype,Kt=Lt&&Lt.prototype,Jt=d.RegExp,ge=d.TypeError,le=d.decodeURIComponent,ee=d.encodeURIComponent,Mt=y("".charAt),zt=y([].join),te=y([].push),ae=y("".replace),re=y([].shift),oe=y([].splice),Re=y("".split),Ce=y("".slice),xe=/\+/g,se=Array(4),Ae=function(ot){return se[ot-1]||(se[ot-1]=Jt("((?:%[\\da-f]{2}){"+ot+"})","gi"))},me=function(ot){try{return le(ot)}catch(gt){return ot}},ce=function(ot){var gt=ae(ot,xe," "),ct=4;try{return le(gt)}catch(Nt){for(;ct;)gt=ae(gt,Ae(ct--),me);return gt}},Et=/[!'()~]|%20/g,Bt={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},$t=function(ot){return Bt[ot]},kt=function(ot){return ae(ee(ot),Et,$t)},Qt=C(function(gt,ct){vt(this,{type:lt,target:ft(gt).entries,index:0,kind:ct})},et,function(){var gt=bt(this),ct=gt.target,Nt=gt.index++;if(!ct||Nt>=ct.length)return gt.target=void 0,_(void 0,!0);var qt=ct[Nt];switch(gt.kind){case"keys":return _(qt.key,!1);case"values":return _(qt.value,!1)}return _([qt.key,qt.value],!1)},!0),Vt=function(ot){this.entries=[],this.url=null,ot!==void 0&&(Y(ot)?this.parseObject(ot):this.parseQuery(typeof ot=="string"?Mt(ot,0)==="?"?Ce(ot,1):ot:B(ot)))};Vt.prototype={type:et,bindURL:function(ot){this.url=ot,this.update()},parseObject:function(ot){var gt=this.entries,ct=Z(ot),Nt,qt,ie,Te,$e,ye,sn;if(ct)for(Nt=J(ot,ct),qt=Nt.next;!(ie=p(qt,Nt)).done;){if(Te=J(z(ie.value)),$e=Te.next,(ye=p($e,Te)).done||(sn=p($e,Te)).done||!p($e,Te).done)throw new ge("Expected sequence with length 2");te(gt,{key:B(ye.value),value:B(sn.value)})}else for(var fr in ot)F(ot,fr)&&te(gt,{key:fr,value:B(ot[fr])})},parseQuery:function(ot){if(ot)for(var gt=this.entries,ct=Re(ot,"&"),Nt=0,qt,ie;Nt<ct.length;)qt=ct[Nt++],qt.length&&(ie=Re(qt,"="),te(gt,{key:ce(re(ie)),value:ce(zt(ie,"="))}))},serialize:function(){for(var ot=this.entries,gt=[],ct=0,Nt;ct<ot.length;)Nt=ot[ct++],te(gt,kt(Nt.key)+"="+kt(Nt.value));return zt(gt,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var Ut=function(){D(this,we);var gt=arguments.length>0?arguments[0]:void 0,ct=vt(this,new Vt(gt));T||(this.size=ct.entries.length)},we=Ut.prototype;if(R(we,{append:function(gt,ct){var Nt=ft(this);nt(arguments.length,2),te(Nt.entries,{key:B(gt),value:B(ct)}),T||this.length++,Nt.updateURL()},delete:function(ot){for(var gt=ft(this),ct=nt(arguments.length,1),Nt=gt.entries,qt=B(ot),ie=ct<2?void 0:arguments[1],Te=ie===void 0?ie:B(ie),$e=0;$e<Nt.length;){var ye=Nt[$e];if(ye.key===qt&&(Te===void 0||ye.value===Te)){if(oe(Nt,$e,1),Te!==void 0)break}else $e++}T||(this.size=Nt.length),gt.updateURL()},get:function(gt){var ct=ft(this).entries;nt(arguments.length,1);for(var Nt=B(gt),qt=0;qt<ct.length;qt++)if(ct[qt].key===Nt)return ct[qt].value;return null},getAll:function(gt){var ct=ft(this).entries;nt(arguments.length,1);for(var Nt=B(gt),qt=[],ie=0;ie<ct.length;ie++)ct[ie].key===Nt&&te(qt,ct[ie].value);return qt},has:function(gt){for(var ct=ft(this).entries,Nt=nt(arguments.length,1),qt=B(gt),ie=Nt<2?void 0:arguments[1],Te=ie===void 0?ie:B(ie),$e=0;$e<ct.length;){var ye=ct[$e++];if(ye.key===qt&&(Te===void 0||ye.value===Te))return!0}return!1},set:function(gt,ct){var Nt=ft(this);nt(arguments.length,1);for(var qt=Nt.entries,ie=!1,Te=B(gt),$e=B(ct),ye=0,sn;ye<qt.length;ye++)sn=qt[ye],sn.key===Te&&(ie?oe(qt,ye--,1):(ie=!0,sn.value=$e));ie||te(qt,{key:Te,value:$e}),T||(this.size=qt.length),Nt.updateURL()},sort:function(){var gt=ft(this);q(gt.entries,function(ct,Nt){return ct.key>Nt.key?1:-1}),gt.updateURL()},forEach:function(gt){for(var ct=ft(this).entries,Nt=j(gt,arguments.length>1?arguments[1]:void 0),qt=0,ie;qt<ct.length;)ie=ct[qt++],Nt(ie.value,ie.key,this)},keys:function(){return new Qt(this,"keys")},values:function(){return new Qt(this,"values")},entries:function(){return new Qt(this,"entries")}},{enumerable:!0}),A(we,tt,we.entries,{name:"entries"}),A(we,"toString",function(){return ft(this).serialize()},{enumerable:!0}),T&&b(we,"size",{get:function(){return ft(this).entries.length},configurable:!0,enumerable:!0}),O(Ut,et),f({global:!0,constructor:!0,forced:!$},{URLSearchParams:Ut}),!$&&L(Lt)){var Ye=y(Kt.has),dt=y(Kt.set),Ot=function(ot){if(Y(ot)){var gt=ot.body,ct;if(U(gt)===et)return ct=ot.headers?new Lt(ot.headers):new Lt,Ye(ct,"content-type")||dt(ct,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),V(ot,{body:K(0,B(gt)),headers:K(0,ct)})}return ot};if(L(yt)&&f({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(gt){return yt(gt,arguments.length>1?Ot(arguments[1]):{})}}),L(Ft)){var Pt=function(gt){return D(this,jt),new Ft(gt,arguments.length>1?Ot(arguments[1]):{})};jt.constructor=Pt,Pt.prototype=jt,f({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Pt})}}x.exports={URLSearchParams:Ut,getState:ft}},function(x,E,r){var f=r(3),d=r(23),h=r(7),p=r(342),y=r(68),T=r(550),$=d("URL"),A=T&&h(function(){$.canParse()}),b=h(function(){return $.canParse.length!==1});f({target:"URL",stat:!0,forced:!A||b},{canParse:function(O){var C=p(arguments.length,1),w=y(O),D=C<2||arguments[1]===void 0?void 0:y(arguments[1]);try{return!!new $(w,D)}catch(L){return!1}}})},function(x,E,r){var f=r(3),d=r(23),h=r(342),p=r(68),y=r(550),T=d("URL");f({target:"URL",stat:!0,forced:!y},{parse:function(A){var b=h(arguments.length,1),R=p(A),O=b<2||arguments[1]===void 0?void 0:p(arguments[1]);try{return new T(R,O)}catch(C){return null}}})},function(x,E,r){var f=r(3),d=r(8);f({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return d(URL.prototype.toString,this)}})},function(x,E,r){r(552)},function(x,E,r){var f=r(47),d=r(14),h=r(68),p=r(342),y=URLSearchParams,T=y.prototype,$=d(T.append),A=d(T.delete),b=d(T.forEach),R=d([].push),O=new y("a=1&a=2&b=3");O.delete("a",1),O.delete("b",void 0),O+""!="a=2"&&f(T,"delete",function(C){var w=arguments.length,D=w<2?void 0:arguments[1];if(w&&D===void 0)return A(this,C);var L=[];b(this,function(K,J){R(L,{key:J,value:K})}),p(w,1);for(var F=h(C),j=h(D),U=0,z=0,Y=!1,B=L.length,V;U<B;)V=L[U++],Y||V.key===F?(Y=!0,A(this,V.key)):z++;for(;z<B;)V=L[z++],V.key===F&&V.value===j||$(this,V.key,V.value)},{enumerable:!0,unsafe:!0})},function(x,E,r){var f=r(47),d=r(14),h=r(68),p=r(342),y=URLSearchParams,T=y.prototype,$=d(T.getAll),A=d(T.has),b=new y("a=1");(b.has("a",2)||!b.has("a",void 0))&&f(T,"has",function(O){var C=arguments.length,w=C<2?void 0:arguments[1];if(C&&w===void 0)return A(this,O);var D=$(this,O);p(C,1);for(var L=h(w),F=0;F<D.length;)if(D[F++]===L)return!0;return!1},{enumerable:!0,unsafe:!0})},function(x,E,r){var f=r(6),d=r(14),h=r(77),p=URLSearchParams.prototype,y=d(p.forEach);f&&!("size"in p)&&h(p,"size",{get:function(){var $=0;return y(this,function(){$++}),$},configurable:!0,enumerable:!0})},function(x,E,r){r.r(E),r.d(E,{bb:function(){return $f},default:function(){return $f}});var f={};r.r(f),r.d(f,{selection:function(){return du},subchart:function(){return hu},zoom:function(){return gu}});var d={};r.r(d),r.d(d,{area:function(){return ef},areaLineRange:function(){return nf},areaSpline:function(){return rf},areaSplineRange:function(){return af},areaStep:function(){return sf},bar:function(){return vf},bubble:function(){return pf},candlestick:function(){return mf},donut:function(){return uf},funnel:function(){return xf},gauge:function(){return ff},line:function(){return of},pie:function(){return df},polar:function(){return hf},radar:function(){return gf},scatter:function(){return yf},spline:function(){return lf},step:function(){return cf},treemap:function(){return Tf}});function h(){}function p(t){return t==null?h:function(){return this.querySelector(t)}}function y(t){typeof t!="function"&&(t=p(t));for(var e=this._groups,n=e.length,a=new Array(n),i=0;i<n;++i)for(var s=e[i],o=s.length,l=a[i]=new Array(o),c,u,g=0;g<o;++g)(c=s[g])&&(u=t.call(c,c.__data__,g,s))&&("__data__"in c&&(u.__data__=c.__data__),l[g]=u);return new Ee(a,this._parents)}function T(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function $(){return[]}function A(t){return t==null?$:function(){return this.querySelectorAll(t)}}function b(t){return function(){return T(t.apply(this,arguments))}}function R(t){typeof t=="function"?t=b(t):t=A(t);for(var e=this._groups,n=e.length,a=[],i=[],s=0;s<n;++s)for(var o=e[s],l=o.length,c,u=0;u<l;++u)(c=o[u])&&(a.push(t.call(c,c.__data__,u,o)),i.push(c));return new Ee(a,i)}function O(t){return function(){return this.matches(t)}}function C(t){return function(e){return e.matches(t)}}var w=Array.prototype.find;function D(t){return function(){return w.call(this.children,t)}}function L(){return this.firstElementChild}function F(t){return this.select(t==null?L:D(typeof t=="function"?t:C(t)))}var j=Array.prototype.filter;function U(){return Array.from(this.children)}function z(t){return function(){return j.call(this.children,t)}}function Y(t){return this.selectAll(t==null?U:z(typeof t=="function"?t:C(t)))}function B(t){typeof t!="function"&&(t=O(t));for(var e=this._groups,n=e.length,a=new Array(n),i=0;i<n;++i)for(var s=e[i],o=s.length,l=a[i]=[],c,u=0;u<o;++u)(c=s[u])&&t.call(c,c.__data__,u,s)&&l.push(c);return new Ee(a,this._parents)}function V(t){return new Array(t.length)}function K(){return new Ee(this._enter||this._groups.map(V),this._parents)}function J(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}J.prototype={constructor:J,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Z(t){return function(){return t}}function _(t,e,n,a,i,s){for(var o=0,l,c=e.length,u=s.length;o<u;++o)(l=e[o])?(l.__data__=s[o],a[o]=l):n[o]=new J(t,s[o]);for(;o<c;++o)(l=e[o])&&(i[o]=l)}function nt(t,e,n,a,i,s,o){var l,c,u=new Map,g=e.length,v=s.length,m=new Array(g),S;for(l=0;l<g;++l)(c=e[l])&&(m[l]=S=o.call(c,c.__data__,l,e)+"",u.has(S)?i[l]=c:u.set(S,c));for(l=0;l<v;++l)S=o.call(t,s[l],l,s)+"",(c=u.get(S))?(a[l]=c,c.__data__=s[l],u.delete(S)):n[l]=new J(t,s[l]);for(l=0;l<g;++l)(c=e[l])&&u.get(m[l])===c&&(i[l]=c)}function rt(t){return t.__data__}function q(t,e){if(!arguments.length)return Array.from(this,rt);var n=e?nt:_,a=this._parents,i=this._groups;typeof t!="function"&&(t=Z(t));for(var s=i.length,o=new Array(s),l=new Array(s),c=new Array(s),u=0;u<s;++u){var g=a[u],v=i[u],m=v.length,S=tt(t.call(g,g&&g.__data__,u,a)),I=S.length,N=l[u]=new Array(I),M=o[u]=new Array(I),P=c[u]=new Array(m);n(g,v,N,M,P,S,e);for(var X=0,W=0,G,k;X<I;++X)if(G=N[X]){for(X>=W&&(W=X+1);!(k=M[W])&&++W<I;);G._next=k||null}}return o=new Ee(o,a),o._enter=l,o._exit=c,o}function tt(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function et(){return new Ee(this._exit||this._groups.map(V),this._parents)}function lt(t,e,n){var a=this.enter(),i=this,s=this.exit();return typeof t=="function"?(a=t(a),a&&(a=a.selection())):a=a.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),n==null?s.remove():n(s),a&&i?a.merge(i).order():i}function vt(t){for(var e=t.selection?t.selection():t,n=this._groups,a=e._groups,i=n.length,s=a.length,o=Math.min(i,s),l=new Array(i),c=0;c<o;++c)for(var u=n[c],g=a[c],v=u.length,m=l[c]=new Array(v),S,I=0;I<v;++I)(S=u[I]||g[I])&&(m[I]=S);for(;c<i;++c)l[c]=n[c];return new Ee(l,this._parents)}function ft(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var a=t[e],i=a.length-1,s=a[i],o;--i>=0;)(o=a[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function bt(t){t||(t=yt);function e(v,m){return v&&m?t(v.__data__,m.__data__):!v-!m}for(var n=this._groups,a=n.length,i=new Array(a),s=0;s<a;++s){for(var o=n[s],l=o.length,c=i[s]=new Array(l),u,g=0;g<l;++g)(u=o[g])&&(c[g]=u);c.sort(e)}return new Ee(i,this._parents).order()}function yt(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Ft(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Lt(){return Array.from(this)}function jt(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var a=t[e],i=0,s=a.length;i<s;++i){var o=a[i];if(o)return o}return null}function Kt(){let t=0;for(const e of this)++t;return t}function Jt(){return!this.node()}function ge(t){for(var e=this._groups,n=0,a=e.length;n<a;++n)for(var i=e[n],s=0,o=i.length,l;s<o;++s)(l=i[s])&&t.call(l,l.__data__,s,i);return this}var le="http://www.w3.org/1999/xhtml",ee={svg:"http://www.w3.org/2000/svg",xhtml:le,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Mt(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),ee.hasOwnProperty(e)?{space:ee[e],local:t}:t}function zt(t){return function(){this.removeAttribute(t)}}function te(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ae(t,e){return function(){this.setAttribute(t,e)}}function re(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function oe(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function Re(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Ce(t,e){var n=Mt(t);if(arguments.length<2){var a=this.node();return n.local?a.getAttributeNS(n.space,n.local):a.getAttribute(n)}return this.each((e==null?n.local?te:zt:typeof e=="function"?n.local?Re:oe:n.local?re:ae)(n,e))}function xe(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function se(t){return function(){this.style.removeProperty(t)}}function Ae(t,e,n){return function(){this.style.setProperty(t,e,n)}}function me(t,e,n){return function(){var a=e.apply(this,arguments);a==null?this.style.removeProperty(t):this.style.setProperty(t,a,n)}}function ce(t,e,n){return arguments.length>1?this.each((e==null?se:typeof e=="function"?me:Ae)(t,e,n==null?"":n)):Et(this.node(),t)}function Et(t,e){return t.style.getPropertyValue(e)||xe(t).getComputedStyle(t,null).getPropertyValue(e)}function Bt(t){return function(){delete this[t]}}function $t(t,e){return function(){this[t]=e}}function kt(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Qt(t,e){return arguments.length>1?this.each((e==null?Bt:typeof e=="function"?kt:$t)(t,e)):this.node()[t]}function Vt(t){return t.trim().split(/^|\s+/)}function Ut(t){return t.classList||new we(t)}function we(t){this._node=t,this._names=Vt(t.getAttribute("class")||"")}we.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Ye(t,e){for(var n=Ut(t),a=-1,i=e.length;++a<i;)n.add(e[a])}function dt(t,e){for(var n=Ut(t),a=-1,i=e.length;++a<i;)n.remove(e[a])}function Ot(t){return function(){Ye(this,t)}}function Pt(t){return function(){dt(this,t)}}function ot(t,e){return function(){(e.apply(this,arguments)?Ye:dt)(this,t)}}function gt(t,e){var n=Vt(t+"");if(arguments.length<2){for(var a=Ut(this.node()),i=-1,s=n.length;++i<s;)if(!a.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?ot:e?Ot:Pt)(n,e))}function ct(){this.textContent=""}function Nt(t){return function(){this.textContent=t}}function qt(t){return function(){var e=t.apply(this,arguments);this.textContent=e==null?"":e}}function ie(t){return arguments.length?this.each(t==null?ct:(typeof t=="function"?qt:Nt)(t)):this.node().textContent}function Te(){this.innerHTML=""}function $e(t){return function(){this.innerHTML=t}}function ye(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e==null?"":e}}function sn(t){return arguments.length?this.each(t==null?Te:(typeof t=="function"?ye:$e)(t)):this.node().innerHTML}function fr(){this.nextSibling&&this.parentNode.appendChild(this)}function zr(){return this.each(fr)}function jr(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ca(){return this.each(jr)}function ua(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===le&&e.documentElement.namespaceURI===le?e.createElement(t):e.createElementNS(n,t)}}function fa(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Gr(t){var e=Mt(t);return(e.local?fa:ua)(e)}function Ya(t){var e=typeof t=="function"?t:Gr(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function da(){return null}function dr(t,e){var n=typeof t=="function"?t:Gr(t),a=e==null?da:typeof e=="function"?e:p(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),a.apply(this,arguments)||null)})}function Fn(){var t=this.parentNode;t&&t.removeChild(this)}function Ha(){return this.each(Fn)}function qn(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function jn(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function ha(t){return this.select(t?jn:qn)}function hr(t){return arguments.length?this.property("__data__",t):this.node().__data__}function vn(t){return function(e){t.call(this,e,this.__data__)}}function Rn(t){return t.trim().split(/^|\s+/).map(function(e){var n="",a=e.indexOf(".");return a>=0&&(n=e.slice(a+1),e=e.slice(0,a)),{type:e,name:n}})}function Wa(t){return function(){var e=this.__on;if(e){for(var n=0,a=-1,i=e.length,s;n<i;++n)s=e[n],(!t.type||s.type===t.type)&&s.name===t.name?this.removeEventListener(s.type,s.listener,s.options):e[++a]=s;++a?e.length=a:delete this.__on}}}function Ka(t,e,n){return function(){var a=this.__on,i,s=vn(e);if(a){for(var o=0,l=a.length;o<l;++o)if((i=a[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=s,i.options=n),i.value=e;return}}this.addEventListener(t.type,s,n),i={type:t.type,name:t.name,value:e,listener:s,options:n},a?a.push(i):this.__on=[i]}}function ut(t,e,n){var a=Rn(t+""),i,s=a.length,o;if(arguments.length<2){var l=this.node().__on;if(l){for(var c=0,u=l.length,g;c<u;++c)for(i=0,g=l[c];i<s;++i)if((o=a[i]).type===g.type&&o.name===g.name)return g.value}return}for(l=e?Ka:Wa,i=0;i<s;++i)this.each(l(a[i],e,n));return this}function wt(t,e,n){var a=xe(t),i=a.CustomEvent;typeof i=="function"?i=new i(e,n):(i=a.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function pt(t,e){return function(){return wt(this,t,e)}}function it(t,e){return function(){return wt(this,t,e.apply(this,arguments))}}function Rt(t,e){return this.each((typeof e=="function"?it:pt)(t,e))}function*ve(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var a=t[e],i=0,s=a.length,o;i<s;++i)(o=a[i])&&(yield o)}var _t=[null];function Ee(t,e){this._groups=t,this._parents=e}function Qe(){return new Ee([[document.documentElement]],_t)}function un(){return this}Ee.prototype=Qe.prototype={constructor:Ee,select:y,selectAll:R,selectChild:F,selectChildren:Y,filter:B,data:q,enter:K,exit:et,join:lt,merge:vt,selection:un,order:ft,sort:bt,call:Ft,nodes:Lt,node:jt,size:Kt,empty:Jt,each:ge,attr:Ce,style:ce,property:Qt,classed:gt,text:ie,html:sn,raise:zr,lower:ca,append:Ya,insert:dr,remove:Ha,clone:ha,datum:hr,on:ut,dispatch:Rt,[Symbol.iterator]:ve};var dn=Qe;function st(t){return typeof t=="string"?new Ee([[document.querySelector(t)]],[document.documentElement]):new Ee([[t]],_t)}const _e=new Date,wn=new Date;function Je(t,e,n,a){function i(s){return t(s=arguments.length===0?new Date:new Date(+s)),s}return i.floor=s=>(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const o=i(s),l=i.ceil(s);return s-o<l-s?o:l},i.offset=(s,o)=>(e(s=new Date(+s),o==null?1:Math.floor(o)),s),i.range=(s,o,l)=>{const c=[];if(s=i.ceil(s),l=l==null?1:Math.floor(l),!(s<o)||!(l>0))return c;let u;do c.push(u=new Date(+s)),e(s,l),t(s);while(u<s&&s<o);return c},i.filter=s=>Je(o=>{if(o>=o)for(;t(o),!s(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;e(o,-1),!s(o););else for(;--l>=0;)for(;e(o,1),!s(o););}),n&&(i.count=(s,o)=>(_e.setTime(+s),wn.setTime(+o),t(_e),t(wn),Math.floor(n(_e,wn))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(a?o=>a(o)%s===0:o=>i.count(0,o)%s===0):i)),i}const Bn=1e3,Sn=Bn*60,Mn=Sn*60,tr=Mn*24,qi=tr*7,Io=tr*30,ts=tr*365;function $r(t){return Je(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*Sn)/qi)}const Za=$r(0),ka=$r(1),Af=$r(2),bf=$r(3),Xr=$r(4),Ef=$r(5),Rf=$r(6),$0=Za.range,S0=ka.range,A0=Af.range,b0=bf.range,E0=Xr.range,R0=Ef.range,O0=Rf.range;function Sr(t){return Je(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/qi)}const Ja=Sr(0),Qa=Sr(1),Of=Sr(2),If=Sr(3),Vr=Sr(4),Cf=Sr(5),Pf=Sr(6),I0=Ja.range,C0=Qa.range,P0=Of.range,w0=If.range,M0=Vr.range,L0=Cf.range,D0=Pf.range,ga=Je(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Sn)/tr,t=>t.getDate()-1),N0=ga.range,_a=Je(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/tr,t=>t.getUTCDate()-1),F0=_a.range,Co=Je(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/tr,t=>Math.floor(t/tr)),B0=Co.range,er=Je(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());er.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Je(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});const U0=er.range,nr=Je(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());nr.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Je(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});const z0=nr.range;function es(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function ns(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function va(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function wf(t){var e=t.dateTime,n=t.date,a=t.time,i=t.periods,s=t.days,o=t.shortDays,l=t.months,c=t.shortMonths,u=pa(i),g=ma(i),v=pa(s),m=ma(s),S=pa(o),I=ma(o),N=pa(l),M=ma(l),P=pa(c),X=ma(c),W={a:It,A:Yt,b:Xt,B:Zt,c:null,d:No,e:No,f:td,g:ud,G:dd,H:Qf,I:_f,j:qf,L:Fo,m:ed,M:nd,p:Wt,q:ne,Q:Xo,s:Vo,S:rd,u:ad,U:id,V:sd,w:od,W:ld,x:null,X:null,y:cd,Y:fd,Z:hd,"%":Go},G={a:je,A:Oe,b:Ge,B:cn,c:null,d:Uo,e:Uo,f:md,g:Od,G:Cd,H:gd,I:vd,j:pd,L:zo,m:yd,M:xd,p:Le,q:ln,Q:Xo,s:Vo,S:Td,u:$d,U:Sd,V:Ad,w:bd,W:Ed,x:null,X:null,y:Rd,Y:Id,Z:Pd,"%":Go},k={a:St,A:Tt,b:Gt,B:xt,c:Q,d:Lo,e:Lo,f:Kf,g:Mo,G:wo,H:Do,I:Do,j:Vf,L:Wf,m:Xf,M:Yf,p:At,q:Gf,Q:kf,s:Jf,S:Hf,u:Ff,U:Bf,V:Uf,w:Nf,W:zf,x:Ct,X:ht,y:Mo,Y:wo,Z:jf,"%":Zf};W.x=H(n,W),W.X=H(a,W),W.c=H(e,W),G.x=H(n,G),G.X=H(a,G),G.c=H(e,G);function H(Ht,pe){return function(be){var Dt=[],rn=-1,Ue=0,bn=Ht.length,En,de,an;for(be instanceof Date||(be=new Date(+be));++rn<bn;)Ht.charCodeAt(rn)===37&&(Dt.push(Ht.slice(Ue,rn)),(de=Po[En=Ht.charAt(++rn)])!=null?En=Ht.charAt(++rn):de=En==="e"?" ":"0",(an=pe[En])&&(En=an(be,de)),Dt.push(En),Ue=rn+1);return Dt.push(Ht.slice(Ue,rn)),Dt.join("")}}function at(Ht,pe){return function(be){var Dt=va(1900,void 0,1),rn=mt(Dt,Ht,be+="",0),Ue,bn;if(rn!=be.length)return null;if("Q"in Dt)return new Date(Dt.Q);if("s"in Dt)return new Date(Dt.s*1e3+("L"in Dt?Dt.L:0));if(pe&&!("Z"in Dt)&&(Dt.Z=0),"p"in Dt&&(Dt.H=Dt.H%12+Dt.p*12),Dt.m===void 0&&(Dt.m="q"in Dt?Dt.q:0),"V"in Dt){if(Dt.V<1||Dt.V>53)return null;"w"in Dt||(Dt.w=1),"Z"in Dt?(Ue=ns(va(Dt.y,0,1)),bn=Ue.getUTCDay(),Ue=bn>4||bn===0?Qa.ceil(Ue):Qa(Ue),Ue=_a.offset(Ue,(Dt.V-1)*7),Dt.y=Ue.getUTCFullYear(),Dt.m=Ue.getUTCMonth(),Dt.d=Ue.getUTCDate()+(Dt.w+6)%7):(Ue=es(va(Dt.y,0,1)),bn=Ue.getDay(),Ue=bn>4||bn===0?ka.ceil(Ue):ka(Ue),Ue=ga.offset(Ue,(Dt.V-1)*7),Dt.y=Ue.getFullYear(),Dt.m=Ue.getMonth(),Dt.d=Ue.getDate()+(Dt.w+6)%7)}else("W"in Dt||"U"in Dt)&&("w"in Dt||(Dt.w="u"in Dt?Dt.u%7:"W"in Dt?1:0),bn="Z"in Dt?ns(va(Dt.y,0,1)).getUTCDay():es(va(Dt.y,0,1)).getDay(),Dt.m=0,Dt.d="W"in Dt?(Dt.w+6)%7+Dt.W*7-(bn+5)%7:Dt.w+Dt.U*7-(bn+6)%7);return"Z"in Dt?(Dt.H+=Dt.Z/100|0,Dt.M+=Dt.Z%100,ns(Dt)):es(Dt)}}function mt(Ht,pe,be,Dt){for(var rn=0,Ue=pe.length,bn=be.length,En,de;rn<Ue;){if(Dt>=bn)return-1;if(En=pe.charCodeAt(rn++),En===37){if(En=pe.charAt(rn++),de=k[En in Po?pe.charAt(rn++):En],!de||(Dt=de(Ht,be,Dt))<0)return-1}else if(En!=be.charCodeAt(Dt++))return-1}return Dt}function At(Ht,pe,be){var Dt=u.exec(pe.slice(be));return Dt?(Ht.p=g.get(Dt[0].toLowerCase()),be+Dt[0].length):-1}function St(Ht,pe,be){var Dt=S.exec(pe.slice(be));return Dt?(Ht.w=I.get(Dt[0].toLowerCase()),be+Dt[0].length):-1}function Tt(Ht,pe,be){var Dt=v.exec(pe.slice(be));return Dt?(Ht.w=m.get(Dt[0].toLowerCase()),be+Dt[0].length):-1}function Gt(Ht,pe,be){var Dt=P.exec(pe.slice(be));return Dt?(Ht.m=X.get(Dt[0].toLowerCase()),be+Dt[0].length):-1}function xt(Ht,pe,be){var Dt=N.exec(pe.slice(be));return Dt?(Ht.m=M.get(Dt[0].toLowerCase()),be+Dt[0].length):-1}function Q(Ht,pe,be){return mt(Ht,e,pe,be)}function Ct(Ht,pe,be){return mt(Ht,n,pe,be)}function ht(Ht,pe,be){return mt(Ht,a,pe,be)}function It(Ht){return o[Ht.getDay()]}function Yt(Ht){return s[Ht.getDay()]}function Xt(Ht){return c[Ht.getMonth()]}function Zt(Ht){return l[Ht.getMonth()]}function Wt(Ht){return i[+(Ht.getHours()>=12)]}function ne(Ht){return 1+~~(Ht.getMonth()/3)}function je(Ht){return o[Ht.getUTCDay()]}function Oe(Ht){return s[Ht.getUTCDay()]}function Ge(Ht){return c[Ht.getUTCMonth()]}function cn(Ht){return l[Ht.getUTCMonth()]}function Le(Ht){return i[+(Ht.getUTCHours()>=12)]}function ln(Ht){return 1+~~(Ht.getUTCMonth()/3)}return{format:function(Ht){var pe=H(Ht+="",W);return pe.toString=function(){return Ht},pe},parse:function(Ht){var pe=at(Ht+="",!1);return pe.toString=function(){return Ht},pe},utcFormat:function(Ht){var pe=H(Ht+="",G);return pe.toString=function(){return Ht},pe},utcParse:function(Ht){var pe=at(Ht+="",!0);return pe.toString=function(){return Ht},pe}}}var Po={"-":"",_:" ",0:"0"},hn=/^\s*\d+/,Mf=/^%/,Lf=/[\\^$*+?|[\]().{}]/g;function Me(t,e,n){var a=t<0?"-":"",i=(a?-t:t)+"",s=i.length;return a+(s<n?new Array(n-s+1).join(e)+i:i)}function Df(t){return t.replace(Lf,"\\$&")}function pa(t){return new RegExp("^(?:"+t.map(Df).join("|")+")","i")}function ma(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function Nf(t,e,n){var a=hn.exec(e.slice(n,n+1));return a?(t.w=+a[0],n+a[0].length):-1}function Ff(t,e,n){var a=hn.exec(e.slice(n,n+1));return a?(t.u=+a[0],n+a[0].length):-1}function Bf(t,e,n){var a=hn.exec(e.slice(n,n+2));return a?(t.U=+a[0],n+a[0].length):-1}function Uf(t,e,n){var a=hn.exec(e.slice(n,n+2));return a?(t.V=+a[0],n+a[0].length):-1}function zf(t,e,n){var a=hn.exec(e.slice(n,n+2));return a?(t.W=+a[0],n+a[0].length):-1}function wo(t,e,n){var a=hn.exec(e.slice(n,n+4));return a?(t.y=+a[0],n+a[0].length):-1}function Mo(t,e,n){var a=hn.exec(e.slice(n,n+2));return a?(t.y=+a[0]+(+a[0]>68?1900:2e3),n+a[0].length):-1}function jf(t,e,n){var a=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return a?(t.Z=a[1]?0:-(a[2]+(a[3]||"00")),n+a[0].length):-1}function Gf(t,e,n){var a=hn.exec(e.slice(n,n+1));return a?(t.q=a[0]*3-3,n+a[0].length):-1}function Xf(t,e,n){var a=hn.exec(e.slice(n,n+2));return a?(t.m=a[0]-1,n+a[0].length):-1}function Lo(t,e,n){var a=hn.exec(e.slice(n,n+2));return a?(t.d=+a[0],n+a[0].length):-1}function Vf(t,e,n){var a=hn.exec(e.slice(n,n+3));return a?(t.m=0,t.d=+a[0],n+a[0].length):-1}function Do(t,e,n){var a=hn.exec(e.slice(n,n+2));return a?(t.H=+a[0],n+a[0].length):-1}function Yf(t,e,n){var a=hn.exec(e.slice(n,n+2));return a?(t.M=+a[0],n+a[0].length):-1}function Hf(t,e,n){var a=hn.exec(e.slice(n,n+2));return a?(t.S=+a[0],n+a[0].length):-1}function Wf(t,e,n){var a=hn.exec(e.slice(n,n+3));return a?(t.L=+a[0],n+a[0].length):-1}function Kf(t,e,n){var a=hn.exec(e.slice(n,n+6));return a?(t.L=Math.floor(a[0]/1e3),n+a[0].length):-1}function Zf(t,e,n){var a=Mf.exec(e.slice(n,n+1));return a?n+a[0].length:-1}function kf(t,e,n){var a=hn.exec(e.slice(n));return a?(t.Q=+a[0],n+a[0].length):-1}function Jf(t,e,n){var a=hn.exec(e.slice(n));return a?(t.s=+a[0],n+a[0].length):-1}function No(t,e){return Me(t.getDate(),e,2)}function Qf(t,e){return Me(t.getHours(),e,2)}function _f(t,e){return Me(t.getHours()%12||12,e,2)}function qf(t,e){return Me(1+ga.count(er(t),t),e,3)}function Fo(t,e){return Me(t.getMilliseconds(),e,3)}function td(t,e){return Fo(t,e)+"000"}function ed(t,e){return Me(t.getMonth()+1,e,2)}function nd(t,e){return Me(t.getMinutes(),e,2)}function rd(t,e){return Me(t.getSeconds(),e,2)}function ad(t){var e=t.getDay();return e===0?7:e}function id(t,e){return Me(Za.count(er(t)-1,t),e,2)}function Bo(t){var e=t.getDay();return e>=4||e===0?Xr(t):Xr.ceil(t)}function sd(t,e){return t=Bo(t),Me(Xr.count(er(t),t)+(er(t).getDay()===4),e,2)}function od(t){return t.getDay()}function ld(t,e){return Me(ka.count(er(t)-1,t),e,2)}function cd(t,e){return Me(t.getFullYear()%100,e,2)}function ud(t,e){return t=Bo(t),Me(t.getFullYear()%100,e,2)}function fd(t,e){return Me(t.getFullYear()%1e4,e,4)}function dd(t,e){var n=t.getDay();return t=n>=4||n===0?Xr(t):Xr.ceil(t),Me(t.getFullYear()%1e4,e,4)}function hd(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Me(e/60|0,"0",2)+Me(e%60,"0",2)}function Uo(t,e){return Me(t.getUTCDate(),e,2)}function gd(t,e){return Me(t.getUTCHours(),e,2)}function vd(t,e){return Me(t.getUTCHours()%12||12,e,2)}function pd(t,e){return Me(1+_a.count(nr(t),t),e,3)}function zo(t,e){return Me(t.getUTCMilliseconds(),e,3)}function md(t,e){return zo(t,e)+"000"}function yd(t,e){return Me(t.getUTCMonth()+1,e,2)}function xd(t,e){return Me(t.getUTCMinutes(),e,2)}function Td(t,e){return Me(t.getUTCSeconds(),e,2)}function $d(t){var e=t.getUTCDay();return e===0?7:e}function Sd(t,e){return Me(Ja.count(nr(t)-1,t),e,2)}function jo(t){var e=t.getUTCDay();return e>=4||e===0?Vr(t):Vr.ceil(t)}function Ad(t,e){return t=jo(t),Me(Vr.count(nr(t),t)+(nr(t).getUTCDay()===4),e,2)}function bd(t){return t.getUTCDay()}function Ed(t,e){return Me(Qa.count(nr(t)-1,t),e,2)}function Rd(t,e){return Me(t.getUTCFullYear()%100,e,2)}function Od(t,e){return t=jo(t),Me(t.getUTCFullYear()%100,e,2)}function Id(t,e){return Me(t.getUTCFullYear()%1e4,e,4)}function Cd(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Vr(t):Vr.ceil(t),Me(t.getUTCFullYear()%1e4,e,4)}function Pd(){return"+0000"}function Go(){return"%"}function Xo(t){return+t}function Vo(t){return Math.floor(+t/1e3)}var Yr,rs,Yo,as,Ho;wd({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],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 wd(t){return Yr=wf(t),rs=Yr.format,Yo=Yr.parse,as=Yr.utcFormat,Ho=Yr.utcParse,Yr}var Md=Object.defineProperty,Wo=Object.getOwnPropertySymbols,Ld=Object.prototype.hasOwnProperty,Dd=Object.prototype.propertyIsEnumerable,Ko=(t,e,n)=>e in t?Md(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,He=(t,e)=>{for(var n in e||(e={}))Ld.call(e,n)&&Ko(t,n,e[n]);if(Wo)for(var n of Wo(e))Dd.call(e,n)&&Ko(t,n,e[n]);return t};const Se={button:"bb-button",chart:"bb-chart",empty:"bb-empty",main:"bb-main",target:"bb-target",EXPANDED:"_expanded_"},Be={arc:"bb-arc",arcLabelLine:"bb-arc-label-line",arcRange:"bb-arc-range",arcs:"bb-arcs",chartArc:"bb-chart-arc",chartArcs:"bb-chart-arcs",chartArcsBackground:"bb-chart-arcs-background",chartArcsTitle:"bb-chart-arcs-title",needle:"bb-needle"},qa={area:"bb-area",areas:"bb-areas"},on={axis:"bb-axis",axisX:"bb-axis-x",axisXLabel:"bb-axis-x-label",axisY:"bb-axis-y",axisY2:"bb-axis-y2",axisY2Label:"bb-axis-y2-label",axisYLabel:"bb-axis-y-label",axisXTooltip:"bb-axis-x-tooltip",axisYTooltip:"bb-axis-y-tooltip",axisY2Tooltip:"bb-axis-y2-tooltip"},Gn={bar:"bb-bar",bars:"bb-bars",chartBar:"bb-chart-bar",chartBars:"bb-chart-bars"},rr={candlestick:"bb-candlestick",candlesticks:"bb-candlesticks",chartCandlestick:"bb-chart-candlestick",chartCandlesticks:"bb-chart-candlesticks",valueDown:"bb-value-down",valueUp:"bb-value-up"},pn={chartCircles:"bb-chart-circles",circle:"bb-circle",circles:"bb-circles"},is={colorPattern:"bb-color-pattern",colorScale:"bb-colorscale"},Ar={dragarea:"bb-dragarea",INCLUDED:"_included_"},ya={funnel:"bb-funnel",chartFunnel:"bb-chart-funnel",chartFunnels:"bb-chart-funnels",funnelBackground:"bb-funnel-background"},Ln={chartArcsGaugeMax:"bb-chart-arcs-gauge-max",chartArcsGaugeMin:"bb-chart-arcs-gauge-min",chartArcsGaugeUnit:"bb-chart-arcs-gauge-unit",chartArcsGaugeTitle:"bb-chart-arcs-gauge-title",gaugeValue:"bb-gauge-value"},Xe={legend:"bb-legend",legendBackground:"bb-legend-background",legendItem:"bb-legend-item",legendItemEvent:"bb-legend-item-event",legendItemHidden:"bb-legend-item-hidden",legendItemPoint:"bb-legend-item-point",legendItemTile:"bb-legend-item-tile"},ar={chartLine:"bb-chart-line",chartLines:"bb-chart-lines",line:"bb-line",lines:"bb-lines"},Xn={eventRect:"bb-event-rect",eventRects:"bb-event-rects",eventRectsMultiple:"bb-event-rects-multiple",eventRectsSingle:"bb-event-rects-single"},We={focused:"bb-focused",defocused:"bb-defocused",legendItemFocused:"bb-legend-item-focused",xgridFocus:"bb-xgrid-focus",ygridFocus:"bb-ygrid-focus"},qe={grid:"bb-grid",gridLines:"bb-grid-lines",xgrid:"bb-xgrid",xgridLine:"bb-xgrid-line",xgridLines:"bb-xgrid-lines",xgrids:"bb-xgrids",ygrid:"bb-ygrid",ygridLine:"bb-ygrid-line",ygridLines:"bb-ygrid-lines",ygrids:"bb-ygrids"},gr={level:"bb-level",levels:"bb-levels"},Zo={chartRadar:"bb-chart-radar",chartRadars:"bb-chart-radars"},xa={region:"bb-region",regions:"bb-regions"},ke={selectedCircle:"bb-selected-circle",selectedCircles:"bb-selected-circles",SELECTED:"_selected_"},tn={shape:"bb-shape",shapes:"bb-shapes"},ko={brush:"bb-brush",subchart:"bb-subchart"},An={chartText:"bb-chart-text",chartTexts:"bb-chart-texts",text:"bb-text",texts:"bb-texts",title:"bb-title",TextOverlapping:"text-overlapping"},ti={tooltip:"bb-tooltip",tooltipContainer:"bb-tooltip-container",tooltipName:"bb-tooltip-name"},Jo={treemap:"bb-treemap",chartTreemap:"bb-chart-treemap",chartTreemaps:"bb-chart-treemaps"},ss={buttonZoomReset:"bb-zoom-reset",zoomBrush:"bb-zoom-brush"};var Ne=He(He(He(He(He(He(He(He(He(He(He(He(He(He(He(He(He(He(He(He(He(He(He(He(He({},Se),Be),qa),on),Gn),rr),pn),is),Ar),Ln),Xe),ar),Xn),We),ya),qe),Zo),xa),ke),tn),ko),An),ti),Jo),ss),Nd={boost_useCssRule:!1,boost_useWorker:!1},Fd={color_pattern:[],color_tiles:void 0,color_threshold:{},color_onover:void 0},Bd={legend_contents_bindto:void 0,legend_contents_template:"<span style='color:#fff;padding:5px;background-color:{=COLOR}'>{=TITLE}</span>",legend_equally:!1,legend_hide:!1,legend_inset_anchor:"top-left",legend_inset_x:10,legend_inset_y:0,legend_inset_step:void 0,legend_item_interaction:!0,legend_item_dblclick:!1,legend_item_onclick:void 0,legend_item_onover:void 0,legend_item_onout:void 0,legend_item_tile_width:10,legend_item_tile_height:10,legend_item_tile_r:5,legend_item_tile_type:"rectangle",legend_format:void 0,legend_padding:0,legend_position:"bottom",legend_show:!0,legend_tooltip:!1,legend_usePoint:!1},Ud={bindto:"#chart",background:{},clipPath:!0,svg_classname:void 0,size_width:void 0,size_height:void 0,padding:!0,padding_mode:void 0,padding_left:void 0,padding_right:void 0,padding_top:void 0,padding_bottom:void 0,resize_auto:!0,resize_timer:!0,onclick:void 0,onover:void 0,onout:void 0,onresize:void 0,onresized:void 0,onbeforeinit:void 0,oninit:void 0,onafterinit:void 0,onrendered:void 0,transition_duration:250,plugins:[],render:{},regions:[]},zd={title_text:void 0,title_padding:{top:0,right:0,bottom:0,left:0},title_position:"center"},jd={tooltip_show:!0,tooltip_doNotHide:!1,tooltip_grouped:!0,tooltip_format_title:void 0,tooltip_format_name:void 0,tooltip_format_value:void 0,tooltip_position:void 0,tooltip_contents:{},tooltip_init_show:!1,tooltip_init_x:0,tooltip_init_position:void 0,tooltip_linked:!1,tooltip_linked_name:"",tooltip_onshow:()=>{},tooltip_onhide:()=>{},tooltip_onshown:()=>{},tooltip_onhidden:()=>{},tooltip_order:null},Gd={data_x:void 0,data_idConverter:t=>t,data_names:{},data_classes:{},data_type:void 0,data_types:{},data_order:"desc",data_groups:[],data_groupsZeroAs:"positive",data_color:void 0,data_colors:{},data_labels:{},data_labels_backgroundColors:void 0,data_labels_colors:void 0,data_labels_position:{},data_hide:!1,data_filter:void 0,data_onclick:()=>{},data_onover:()=>{},data_onout:()=>{},data_onshown:void 0,data_onhidden:void 0,data_onmin:void 0,data_onmax:void 0,data_url:void 0,data_headers:void 0,data_json:void 0,data_rows:void 0,data_columns:void 0,data_mimeType:"csv",data_keys:void 0,data_empty_label_text:""},Xd={interaction_enabled:!0,interaction_brighten:!0,interaction_inputType_mouse:!0,interaction_inputType_touch:{}},Vd={value:()=>{}};function Qo(){for(var t=0,e=arguments.length,n={},a;t<e;++t){if(!(a=arguments[t]+"")||a in n||/[\s.]/.test(a))throw new Error("illegal type: "+a);n[a]=[]}return new ei(n)}function ei(t){this._=t}function Yd(t,e){return t.trim().split(/^|\s+/).map(function(n){var a="",i=n.indexOf(".");if(i>=0&&(a=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:a}})}ei.prototype=Qo.prototype={constructor:ei,on:function(t,e){var n=this._,a=Yd(t+"",n),i,s=-1,o=a.length;if(arguments.length<2){for(;++s<o;)if((i=(t=a[s]).type)&&(i=Hd(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++s<o;)if(i=(t=a[s]).type)n[i]=_o(n[i],t.name,e);else if(e==null)for(i in n)n[i]=_o(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new ei(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),a=0,i,s;a<i;++a)n[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=this._[t],a=0,i=s.length;a<i;++a)s[a].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var a=this._[t],i=0,s=a.length;i<s;++i)a[i].value.apply(e,n)}};function Hd(t,e){for(var n=0,a=t.length,i;n<a;++n)if((i=t[n]).name===e)return i.value}function _o(t,e,n){for(var a=0,i=t.length;a<i;++a)if(t[a].name===e){t[a]=Vd,t=t.slice(0,a).concat(t.slice(a+1));break}return n!=null&&t.push({name:e,value:n}),t}var ni=Qo;const Wd={passive:!1},Ta={capture:!0,passive:!1};function os(t){t.stopImmediatePropagation()}function Hr(t){t.preventDefault(),t.stopImmediatePropagation()}function ls(t){var e=t.document.documentElement,n=st(t).on("dragstart.drag",Hr,Ta);"onselectstart"in e?n.on("selectstart.drag",Hr,Ta):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function cs(t,e){var n=t.document.documentElement,a=st(t).on("dragstart.drag",null);e&&(a.on("click.drag",Hr,Ta),setTimeout(function(){a.on("click.drag",null)},0)),"onselectstart"in n?a.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function us(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function qo(t,e){var n=Object.create(t.prototype);for(var a in e)n[a]=e[a];return n}function $a(){}var Sa=.7,ri=1/Sa,Wr="\\s*([+-]?\\d+)\\s*",Aa="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Zn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Kd=/^#([0-9a-f]{3,8})$/,Zd=new RegExp(`^rgb\\(${Wr},${Wr},${Wr}\\)$`),kd=new RegExp(`^rgb\\(${Zn},${Zn},${Zn}\\)$`),Jd=new RegExp(`^rgba\\(${Wr},${Wr},${Wr},${Aa}\\)$`),Qd=new RegExp(`^rgba\\(${Zn},${Zn},${Zn},${Aa}\\)$`),_d=new RegExp(`^hsl\\(${Aa},${Zn},${Zn}\\)$`),qd=new RegExp(`^hsla\\(${Aa},${Zn},${Zn},${Aa}\\)$`),tl={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};us($a,br,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:el,formatHex:el,formatHex8:th,formatHsl:eh,formatRgb:nl,toString:nl});function el(){return this.rgb().formatHex()}function th(){return this.rgb().formatHex8()}function eh(){return ol(this).formatHsl()}function nl(){return this.rgb().formatRgb()}function br(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Kd.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?rl(e):n===3?new On(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?ai(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?ai(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Zd.exec(t))?new On(e[1],e[2],e[3],1):(e=kd.exec(t))?new On(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Jd.exec(t))?ai(e[1],e[2],e[3],e[4]):(e=Qd.exec(t))?ai(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=_d.exec(t))?sl(e[1],e[2]/100,e[3]/100,1):(e=qd.exec(t))?sl(e[1],e[2]/100,e[3]/100,e[4]):tl.hasOwnProperty(t)?rl(tl[t]):t==="transparent"?new On(NaN,NaN,NaN,0):null}function rl(t){return new On(t>>16&255,t>>8&255,t&255,1)}function ai(t,e,n,a){return a<=0&&(t=e=n=NaN),new On(t,e,n,a)}function nh(t){return t instanceof $a||(t=br(t)),t?(t=t.rgb(),new On(t.r,t.g,t.b,t.opacity)):new On}function ii(t,e,n,a){return arguments.length===1?nh(t):new On(t,e,n,a==null?1:a)}function On(t,e,n,a){this.r=+t,this.g=+e,this.b=+n,this.opacity=+a}us(On,ii,qo($a,{brighter(t){return t=t==null?ri:Math.pow(ri,t),new On(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Sa:Math.pow(Sa,t),new On(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new On(Er(this.r),Er(this.g),Er(this.b),si(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:al,formatHex:al,formatHex8:rh,formatRgb:il,toString:il}));function al(){return`#${Rr(this.r)}${Rr(this.g)}${Rr(this.b)}`}function rh(){return`#${Rr(this.r)}${Rr(this.g)}${Rr(this.b)}${Rr((isNaN(this.opacity)?1:this.opacity)*255)}`}function il(){const t=si(this.opacity);return`${t===1?"rgb(":"rgba("}${Er(this.r)}, ${Er(this.g)}, ${Er(this.b)}${t===1?")":`, ${t})`}`}function si(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Er(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Rr(t){return t=Er(t),(t<16?"0":"")+t.toString(16)}function sl(t,e,n,a){return a<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Vn(t,e,n,a)}function ol(t){if(t instanceof Vn)return new Vn(t.h,t.s,t.l,t.opacity);if(t instanceof $a||(t=br(t)),!t)return new Vn;if(t instanceof Vn)return t;t=t.rgb();var e=t.r/255,n=t.g/255,a=t.b/255,i=Math.min(e,n,a),s=Math.max(e,n,a),o=NaN,l=s-i,c=(s+i)/2;return l?(e===s?o=(n-a)/l+(n<a)*6:n===s?o=(a-e)/l+2:o=(e-n)/l+4,l/=c<.5?s+i:2-s-i,o*=60):l=c>0&&c<1?0:o,new Vn(o,l,c,t.opacity)}function ah(t,e,n,a){return arguments.length===1?ol(t):new Vn(t,e,n,a==null?1:a)}function Vn(t,e,n,a){this.h=+t,this.s=+e,this.l=+n,this.opacity=+a}us(Vn,ah,qo($a,{brighter(t){return t=t==null?ri:Math.pow(ri,t),new Vn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Sa:Math.pow(Sa,t),new Vn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,a=n+(n<.5?n:1-n)*e,i=2*n-a;return new On(fs(t>=240?t-240:t+120,i,a),fs(t,i,a),fs(t<120?t+240:t-120,i,a),this.opacity)},clamp(){return new Vn(ll(this.h),oi(this.s),oi(this.l),si(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=si(this.opacity);return`${t===1?"hsl(":"hsla("}${ll(this.h)}, ${oi(this.s)*100}%, ${oi(this.l)*100}%${t===1?")":`, ${t})`}`}}));function ll(t){return t=(t||0)%360,t<0?t+360:t}function oi(t){return Math.max(0,Math.min(1,t||0))}function fs(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}function cl(t,e,n,a,i){var s=t*t,o=s*t;return((1-3*t+3*s-o)*e+(4-6*s+3*o)*n+(1+3*t+3*s-3*o)*a+o*i)/6}function ih(t){var e=t.length-1;return function(n){var a=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[a],s=t[a+1],o=a>0?t[a-1]:2*i-s,l=a<e-1?t[a+2]:2*s-i;return cl((n-a/e)*e,o,i,s,l)}}function sh(t){var e=t.length;return function(n){var a=Math.floor(((n%=1)<0?++n:n)*e),i=t[(a+e-1)%e],s=t[a%e],o=t[(a+1)%e],l=t[(a+2)%e];return cl((n-a/e)*e,i,s,o,l)}}var li=t=>()=>t;function ul(t,e){return function(n){return t+n*e}}function oh(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(a){return Math.pow(t+a*e,n)}}function j0(t,e){var n=e-t;return n?ul(t,n>180||n<-180?n-360*Math.round(n/360):n):li(isNaN(t)?e:t)}function lh(t){return(t=+t)==1?fl:function(e,n){return n-e?oh(e,n,t):li(isNaN(e)?n:e)}}function fl(t,e){var n=e-t;return n?ul(t,n):li(isNaN(t)?e:t)}var ci=function t(e){var n=lh(e);function a(i,s){var o=n((i=ii(i)).r,(s=ii(s)).r),l=n(i.g,s.g),c=n(i.b,s.b),u=fl(i.opacity,s.opacity);return function(g){return i.r=o(g),i.g=l(g),i.b=c(g),i.opacity=u(g),i+""}}return a.gamma=t,a}(1);function dl(t){return function(e){var n=e.length,a=new Array(n),i=new Array(n),s=new Array(n),o,l;for(o=0;o<n;++o)l=ii(e[o]),a[o]=l.r||0,i[o]=l.g||0,s[o]=l.b||0;return a=t(a),i=t(i),s=t(s),l.opacity=1,function(c){return l.r=a(c),l.g=i(c),l.b=s(c),l+""}}}var G0=dl(ih),X0=dl(sh);function hl(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,a=e.slice(),i;return function(s){for(i=0;i<n;++i)a[i]=t[i]*(1-s)+e[i]*s;return a}}function gl(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function V0(t,e){return(gl(e)?hl:vl)(t,e)}function vl(t,e){var n=e?e.length:0,a=t?Math.min(n,t.length):0,i=new Array(a),s=new Array(n),o;for(o=0;o<a;++o)i[o]=Kr(t[o],e[o]);for(;o<n;++o)s[o]=e[o];return function(l){for(o=0;o<a;++o)s[o]=i[o](l);return s}}function ch(t,e){var n=new Date;return t=+t,e=+e,function(a){return n.setTime(t*(1-a)+e*a),n}}function Yn(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function uh(t,e){var n={},a={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=Kr(t[i],e[i]):a[i]=e[i];return function(s){for(i in n)a[i]=n[i](s);return a}}var ds=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,hs=new RegExp(ds.source,"g");function fh(t){return function(){return t}}function dh(t){return function(e){return t(e)+""}}function pl(t,e){var n=ds.lastIndex=hs.lastIndex=0,a,i,s,o=-1,l=[],c=[];for(t=t+"",e=e+"";(a=ds.exec(t))&&(i=hs.exec(e));)(s=i.index)>n&&(s=e.slice(n,s),l[o]?l[o]+=s:l[++o]=s),(a=a[0])===(i=i[0])?l[o]?l[o]+=i:l[++o]=i:(l[++o]=null,c.push({i:o,x:Yn(a,i)})),n=hs.lastIndex;return n<e.length&&(s=e.slice(n),l[o]?l[o]+=s:l[++o]=s),l.length<2?c[0]?dh(c[0].x):fh(e):(e=c.length,function(u){for(var g=0,v;g<e;++g)l[(v=c[g]).i]=v.x(u);return l.join("")})}function Kr(t,e){var n=typeof e,a;return e==null||n==="boolean"?li(e):(n==="number"?Yn:n==="string"?(a=br(e))?(e=a,ci):pl:e instanceof br?ci:e instanceof Date?ch:gl(e)?hl:Array.isArray(e)?vl:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?uh:Yn)(t,e)}function hh(t){let e;for(;e=t.sourceEvent;)t=e;return t}function Un(t,e){if(t=hh(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var a=n.createSVGPoint();return a.x=t.clientX,a.y=t.clientY,a=a.matrixTransform(e.getScreenCTM().inverse()),[a.x,a.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}var Zr=0,ba=0,Ea=0,ml=1e3,ui,Ra,fi=0,Or=0,di=0,Oa=typeof performance=="object"&&performance.now?performance:Date,yl=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function gs(){return Or||(yl(gh),Or=Oa.now()+di)}function gh(){Or=0}function hi(){this._call=this._time=this._next=null}hi.prototype=xl.prototype={constructor:hi,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?gs():+n)+(e==null?0:+e),!this._next&&Ra!==this&&(Ra?Ra._next=this:ui=this,Ra=this),this._call=t,this._time=n,vs()},stop:function(){this._call&&(this._call=null,this._time=1/0,vs())}};function xl(t,e,n){var a=new hi;return a.restart(t,e,n),a}function vh(){gs(),++Zr;for(var t=ui,e;t;)(e=Or-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Zr}function Tl(){Or=(fi=Oa.now())+di,Zr=ba=0;try{vh()}finally{Zr=0,mh(),Or=0}}function ph(){var t=Oa.now(),e=t-fi;e>ml&&(di-=e,fi=t)}function mh(){for(var t,e=ui,n,a=1/0;e;)e._call?(a>e._time&&(a=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:ui=n);Ra=t,vs(a)}function vs(t){if(!Zr){ba&&(ba=clearTimeout(ba));var e=t-Or;e>24?(t<1/0&&(ba=setTimeout(Tl,t-Oa.now()-di)),Ea&&(Ea=clearInterval(Ea))):(Ea||(fi=Oa.now(),Ea=setInterval(ph,ml)),Zr=1,yl(Tl))}}function $l(t,e,n){var a=new hi;return e=e==null?0:+e,a.restart(i=>{a.stop(),t(i+e)},e,n),a}var yh=ni("start","end","cancel","interrupt"),xh=[],Sl=0,Al=1,ps=2,gi=3,bl=4,ms=5,vi=6;function pi(t,e,n,a,i,s){var o=t.__transition;if(!o)t.__transition={};else if(n in o)return;Th(t,n,{name:e,index:a,group:i,on:yh,tween:xh,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Sl})}function ys(t,e){var n=Hn(t,e);if(n.state>Sl)throw new Error("too late; already scheduled");return n}function kn(t,e){var n=Hn(t,e);if(n.state>gi)throw new Error("too late; already running");return n}function Hn(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Th(t,e,n){var a=t.__transition,i;a[e]=n,n.timer=xl(s,0,n.time);function s(u){n.state=Al,n.timer.restart(o,n.delay,n.time),n.delay<=u&&o(u-n.delay)}function o(u){var g,v,m,S;if(n.state!==Al)return c();for(g in a)if(S=a[g],S.name===n.name){if(S.state===gi)return $l(o);S.state===bl?(S.state=vi,S.timer.stop(),S.on.call("interrupt",t,t.__data__,S.index,S.group),delete a[g]):+g<e&&(S.state=vi,S.timer.stop(),S.on.call("cancel",t,t.__data__,S.index,S.group),delete a[g])}if($l(function(){n.state===gi&&(n.state=bl,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=ps,n.on.call("start",t,t.__data__,n.index,n.group),n.state===ps){for(n.state=gi,i=new Array(m=n.tween.length),g=0,v=-1;g<m;++g)(S=n.tween[g].value.call(t,t.__data__,n.index,n.group))&&(i[++v]=S);i.length=v+1}}function l(u){for(var g=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(c),n.state=ms,1),v=-1,m=i.length;++v<m;)i[v].call(t,g);n.state===ms&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){n.state=vi,n.timer.stop(),delete a[e];for(var u in a)return;delete t.__transition}}function kr(t,e){var n=t.__transition,a,i,s=!0,o;if(n){e=e==null?null:e+"";for(o in n){if((a=n[o]).name!==e){s=!1;continue}i=a.state>ps&&a.state<ms,a.state=vi,a.timer.stop(),a.on.call(i?"interrupt":"cancel",t,t.__data__,a.index,a.group),delete n[o]}s&&delete t.__transition}}function $h(t){return this.each(function(){kr(this,t)})}var El=180/Math.PI,xs={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Rl(t,e,n,a,i,s){var o,l,c;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(c=t*n+e*a)&&(n-=t*c,a-=e*c),(l=Math.sqrt(n*n+a*a))&&(n/=l,a/=l,c/=l),t*a<e*n&&(t=-t,e=-e,c=-c,o=-o),{translateX:i,translateY:s,rotate:Math.atan2(e,t)*El,skewX:Math.atan(c)*El,scaleX:o,scaleY:l}}var mi;function Sh(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?xs:Rl(e.a,e.b,e.c,e.d,e.e,e.f)}function Ah(t){return t==null||(mi||(mi=document.createElementNS("http://www.w3.org/2000/svg","g")),mi.setAttribute("transform",t),!(t=mi.transform.baseVal.consolidate()))?xs:(t=t.matrix,Rl(t.a,t.b,t.c,t.d,t.e,t.f))}function Ol(t,e,n,a){function i(u){return u.length?u.pop()+" ":""}function s(u,g,v,m,S,I){if(u!==v||g!==m){var N=S.push("translate(",null,e,null,n);I.push({i:N-4,x:Yn(u,v)},{i:N-2,x:Yn(g,m)})}else(v||m)&&S.push("translate("+v+e+m+n)}function o(u,g,v,m){u!==g?(u-g>180?g+=360:g-u>180&&(u+=360),m.push({i:v.push(i(v)+"rotate(",null,a)-2,x:Yn(u,g)})):g&&v.push(i(v)+"rotate("+g+a)}function l(u,g,v,m){u!==g?m.push({i:v.push(i(v)+"skewX(",null,a)-2,x:Yn(u,g)}):g&&v.push(i(v)+"skewX("+g+a)}function c(u,g,v,m,S,I){if(u!==v||g!==m){var N=S.push(i(S)+"scale(",null,",",null,")");I.push({i:N-4,x:Yn(u,v)},{i:N-2,x:Yn(g,m)})}else(v!==1||m!==1)&&S.push(i(S)+"scale("+v+","+m+")")}return function(u,g){var v=[],m=[];return u=t(u),g=t(g),s(u.translateX,u.translateY,g.translateX,g.translateY,v,m),o(u.rotate,g.rotate,v,m),l(u.skewX,g.skewX,v,m),c(u.scaleX,u.scaleY,g.scaleX,g.scaleY,v,m),u=g=null,function(S){for(var I=-1,N=m.length,M;++I<N;)v[(M=m[I]).i]=M.x(S);return v.join("")}}}var bh=Ol(Sh,"px, ","px)","deg)"),Eh=Ol(Ah,", ",")",")");function Rh(t,e){var n,a;return function(){var i=kn(this,t),s=i.tween;if(s!==n){a=n=s;for(var o=0,l=a.length;o<l;++o)if(a[o].name===e){a=a.slice(),a.splice(o,1);break}}i.tween=a}}function Oh(t,e,n){var a,i;if(typeof n!="function")throw new Error;return function(){var s=kn(this,t),o=s.tween;if(o!==a){i=(a=o).slice();for(var l={name:e,value:n},c=0,u=i.length;c<u;++c)if(i[c].name===e){i[c]=l;break}c===u&&i.push(l)}s.tween=i}}function Ih(t,e){var n=this._id;if(t+="",arguments.length<2){for(var a=Hn(this.node(),n).tween,i=0,s=a.length,o;i<s;++i)if((o=a[i]).name===t)return o.value;return null}return this.each((e==null?Rh:Oh)(n,t,e))}function Ts(t,e,n){var a=t._id;return t.each(function(){var i=kn(this,a);(i.value||(i.value={}))[e]=n.apply(this,arguments)}),function(i){return Hn(i,a).value[e]}}function Il(t,e){var n;return(typeof e=="number"?Yn:e instanceof br?ci:(n=br(e))?(e=n,ci):pl)(t,e)}function Ch(t){return function(){this.removeAttribute(t)}}function Ph(t){return function(){this.removeAttributeNS(t.space,t.local)}}function wh(t,e,n){var a,i=n+"",s;return function(){var o=this.getAttribute(t);return o===i?null:o===a?s:s=e(a=o,n)}}function Mh(t,e,n){var a,i=n+"",s;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===a?s:s=e(a=o,n)}}function Lh(t,e,n){var a,i,s;return function(){var o,l=n(this),c;return l==null?void this.removeAttribute(t):(o=this.getAttribute(t),c=l+"",o===c?null:o===a&&c===i?s:(i=c,s=e(a=o,l)))}}function Dh(t,e,n){var a,i,s;return function(){var o,l=n(this),c;return l==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),c=l+"",o===c?null:o===a&&c===i?s:(i=c,s=e(a=o,l)))}}function Nh(t,e){var n=Mt(t),a=n==="transform"?Eh:Il;return this.attrTween(t,typeof e=="function"?(n.local?Dh:Lh)(n,a,Ts(this,"attr."+t,e)):e==null?(n.local?Ph:Ch)(n):(n.local?Mh:wh)(n,a,e))}function Fh(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function Bh(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function Uh(t,e){var n,a;function i(){var s=e.apply(this,arguments);return s!==a&&(n=(a=s)&&Bh(t,s)),n}return i._value=e,i}function zh(t,e){var n,a;function i(){var s=e.apply(this,arguments);return s!==a&&(n=(a=s)&&Fh(t,s)),n}return i._value=e,i}function jh(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var a=Mt(t);return this.tween(n,(a.local?Uh:zh)(a,e))}function Gh(t,e){return function(){ys(this,t).delay=+e.apply(this,arguments)}}function Xh(t,e){return e=+e,function(){ys(this,t).delay=e}}function Vh(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?Gh:Xh)(e,t)):Hn(this.node(),e).delay}function Yh(t,e){return function(){kn(this,t).duration=+e.apply(this,arguments)}}function Hh(t,e){return e=+e,function(){kn(this,t).duration=e}}function Wh(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?Yh:Hh)(e,t)):Hn(this.node(),e).duration}function Kh(t,e){if(typeof e!="function")throw new Error;return function(){kn(this,t).ease=e}}function Zh(t){var e=this._id;return arguments.length?this.each(Kh(e,t)):Hn(this.node(),e).ease}function kh(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;kn(this,t).ease=n}}function Jh(t){if(typeof t!="function")throw new Error;return this.each(kh(this._id,t))}function Qh(t){typeof t!="function"&&(t=O(t));for(var e=this._groups,n=e.length,a=new Array(n),i=0;i<n;++i)for(var s=e[i],o=s.length,l=a[i]=[],c,u=0;u<o;++u)(c=s[u])&&t.call(c,c.__data__,u,s)&&l.push(c);return new ir(a,this._parents,this._name,this._id)}function _h(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,a=e.length,i=n.length,s=Math.min(a,i),o=new Array(a),l=0;l<s;++l)for(var c=e[l],u=n[l],g=c.length,v=o[l]=new Array(g),m,S=0;S<g;++S)(m=c[S]||u[S])&&(v[S]=m);for(;l<a;++l)o[l]=e[l];return new ir(o,this._parents,this._name,this._id)}function qh(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function tg(t,e,n){var a,i,s=qh(e)?ys:kn;return function(){var o=s(this,t),l=o.on;l!==a&&(i=(a=l).copy()).on(e,n),o.on=i}}function eg(t,e){var n=this._id;return arguments.length<2?Hn(this.node(),n).on.on(t):this.each(tg(n,t,e))}function ng(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function rg(){return this.on("end.remove",ng(this._id))}function ag(t){var e=this._name,n=this._id;typeof t!="function"&&(t=p(t));for(var a=this._groups,i=a.length,s=new Array(i),o=0;o<i;++o)for(var l=a[o],c=l.length,u=s[o]=new Array(c),g,v,m=0;m<c;++m)(g=l[m])&&(v=t.call(g,g.__data__,m,l))&&("__data__"in g&&(v.__data__=g.__data__),u[m]=v,pi(u[m],e,n,m,u,Hn(g,n)));return new ir(s,this._parents,e,n)}function ig(t){var e=this._name,n=this._id;typeof t!="function"&&(t=A(t));for(var a=this._groups,i=a.length,s=[],o=[],l=0;l<i;++l)for(var c=a[l],u=c.length,g,v=0;v<u;++v)if(g=c[v]){for(var m=t.call(g,g.__data__,v,c),S,I=Hn(g,n),N=0,M=m.length;N<M;++N)(S=m[N])&&pi(S,e,n,N,m,I);s.push(m),o.push(g)}return new ir(s,o,e,n)}var sg=dn.prototype.constructor;function og(){return new sg(this._groups,this._parents)}function lg(t,e){var n,a,i;return function(){var s=Et(this,t),o=(this.style.removeProperty(t),Et(this,t));return s===o?null:s===n&&o===a?i:i=e(n=s,a=o)}}function Cl(t){return function(){this.style.removeProperty(t)}}function cg(t,e,n){var a,i=n+"",s;return function(){var o=Et(this,t);return o===i?null:o===a?s:s=e(a=o,n)}}function ug(t,e,n){var a,i,s;return function(){var o=Et(this,t),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(t),Et(this,t))),o===c?null:o===a&&c===i?s:(i=c,s=e(a=o,l))}}function fg(t,e){var n,a,i,s="style."+e,o="end."+s,l;return function(){var c=kn(this,t),u=c.on,g=c.value[s]==null?l||(l=Cl(e)):void 0;(u!==n||i!==g)&&(a=(n=u).copy()).on(o,i=g),c.on=a}}function dg(t,e,n){var a=(t+="")=="transform"?bh:Il;return e==null?this.styleTween(t,lg(t,a)).on("end.style."+t,Cl(t)):typeof e=="function"?this.styleTween(t,ug(t,a,Ts(this,"style."+t,e))).each(fg(this._id,t)):this.styleTween(t,cg(t,a,e),n).on("end.style."+t,null)}function hg(t,e,n){return function(a){this.style.setProperty(t,e.call(this,a),n)}}function gg(t,e,n){var a,i;function s(){var o=e.apply(this,arguments);return o!==i&&(a=(i=o)&&hg(t,o,n)),a}return s._value=e,s}function vg(t,e,n){var a="style."+(t+="");if(arguments.length<2)return(a=this.tween(a))&&a._value;if(e==null)return this.tween(a,null);if(typeof e!="function")throw new Error;return this.tween(a,gg(t,e,n==null?"":n))}function pg(t){return function(){this.textContent=t}}function mg(t){return function(){var e=t(this);this.textContent=e==null?"":e}}function yg(t){return this.tween("text",typeof t=="function"?mg(Ts(this,"text",t)):pg(t==null?"":t+""))}function xg(t){return function(e){this.textContent=t.call(this,e)}}function Tg(t){var e,n;function a(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&xg(i)),e}return a._value=t,a}function $g(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,Tg(t))}function Sg(){for(var t=this._name,e=this._id,n=wl(),a=this._groups,i=a.length,s=0;s<i;++s)for(var o=a[s],l=o.length,c,u=0;u<l;++u)if(c=o[u]){var g=Hn(c,e);pi(c,t,n,u,o,{time:g.time+g.delay+g.duration,delay:0,duration:g.duration,ease:g.ease})}return new ir(a,this._parents,t,n)}function Ag(){var t,e,n=this,a=n._id,i=n.size();return new Promise(function(s,o){var l={value:o},c={value:function(){--i===0&&s()}};n.each(function(){var u=kn(this,a),g=u.on;g!==t&&(e=(t=g).copy(),e._.cancel.push(l),e._.interrupt.push(l),e._.end.push(c)),u.on=e}),i===0&&s()})}var bg=0;function ir(t,e,n,a){this._groups=t,this._parents=e,this._name=n,this._id=a}function Pl(t){return dn().transition(t)}function wl(){return++bg}var sr=dn.prototype;ir.prototype=Pl.prototype={constructor:ir,select:ag,selectAll:ig,selectChild:sr.selectChild,selectChildren:sr.selectChildren,filter:Qh,merge:_h,selection:og,transition:Sg,call:sr.call,nodes:sr.nodes,node:sr.node,size:sr.size,empty:sr.empty,each:sr.each,on:eg,attr:Nh,attrTween:jh,style:dg,styleTween:vg,text:yg,textTween:$g,remove:rg,tween:Ih,delay:Vh,duration:Wh,ease:Zh,easeVarying:Jh,end:Ag,[Symbol.iterator]:sr[Symbol.iterator]};function Y0(t){return t*t*t}function H0(t){return--t*t*t+1}function Eg(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Rg={time:null,delay:0,duration:250,ease:Eg};function Og(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function Ig(t){var e,n;t instanceof ir?(e=t._id,t=t._name):(e=wl(),(n=Rg).time=gs(),t=t==null?null:t+"");for(var a=this._groups,i=a.length,s=0;s<i;++s)for(var o=a[s],l=o.length,c,u=0;u<l;++u)(c=o[u])&&pi(c,t,e,u,o,n||Og(c,e));return new ir(a,this._parents,t,e)}dn.prototype.interrupt=$h,dn.prototype.transition=Ig;var $s=t=>()=>t;function Cg(t,{sourceEvent:e,target:n,selection:a,mode:i,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},selection:{value:a,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:s}})}function Pg(t){t.stopImmediatePropagation()}function Ss(t){t.preventDefault(),t.stopImmediatePropagation()}var Ml={name:"drag"},As={name:"space"},Jr={name:"handle"},Qr={name:"center"};const{abs:Ll,max:mn,min:yn}=Math;function Dl(t){return[+t[0],+t[1]]}function bs(t){return[Dl(t[0]),Dl(t[1])]}var yi={name:"x",handles:["w","e"].map(Ia),input:function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},xi={name:"y",handles:["n","s"].map(Ia),input:function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},wg={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Ia),input:function(t){return t==null?null:bs(t)},output:function(t){return t}},or={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Nl={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Fl={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Mg={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Lg={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Ia(t){return{type:t}}function Dg(t){return!t.ctrlKey&&!t.button}function Ng(){var t=this.ownerSVGElement||this;return t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function Fg(){return navigator.maxTouchPoints||"ontouchstart"in this}function Es(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Bg(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function Bl(t){var e=t.__brush;return e?e.dim.output(e.selection):null}function Ug(){return Rs(yi)}function zg(){return Rs(xi)}function W0(){return Rs(wg)}function Rs(t){var e=Ng,n=Dg,a=Fg,i=!0,s=ni("start","brush","end"),o=6,l;function c(M){var P=M.property("__brush",N).selectAll(".overlay").data([Ia("overlay")]);P.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",or.overlay).merge(P).each(function(){var W=Es(this).extent;st(this).attr("x",W[0][0]).attr("y",W[0][1]).attr("width",W[1][0]-W[0][0]).attr("height",W[1][1]-W[0][1])}),M.selectAll(".selection").data([Ia("selection")]).enter().append("rect").attr("class","selection").attr("cursor",or.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var X=M.selectAll(".handle").data(t.handles,function(W){return W.type});X.exit().remove(),X.enter().append("rect").attr("class",function(W){return"handle handle--"+W.type}).attr("cursor",function(W){return or[W.type]}),M.each(u).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",m).filter(a).on("touchstart.brush",m).on("touchmove.brush",S).on("touchend.brush touchcancel.brush",I).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}c.move=function(M,P,X){M.tween?M.on("start.brush",function(W){g(this,arguments).beforestart().start(W)}).on("interrupt.brush end.brush",function(W){g(this,arguments).end(W)}).tween("brush",function(){var W=this,G=W.__brush,k=g(W,arguments),H=G.selection,at=t.input(typeof P=="function"?P.apply(this,arguments):P,G.extent),mt=Kr(H,at);function At(St){G.selection=St===1&&at===null?null:mt(St),u.call(W),k.brush()}return H!==null&&at!==null?At:At(1)}):M.each(function(){var W=this,G=arguments,k=W.__brush,H=t.input(typeof P=="function"?P.apply(W,G):P,k.extent),at=g(W,G).beforestart();kr(W),k.selection=H===null?null:H,u.call(W),at.start(X).brush(X).end(X)})},c.clear=function(M,P){c.move(M,null,P)};function u(){var M=st(this),P=Es(this).selection;P?(M.selectAll(".selection").style("display",null).attr("x",P[0][0]).attr("y",P[0][1]).attr("width",P[1][0]-P[0][0]).attr("height",P[1][1]-P[0][1]),M.selectAll(".handle").style("display",null).attr("x",function(X){return X.type[X.type.length-1]==="e"?P[1][0]-o/2:P[0][0]-o/2}).attr("y",function(X){return X.type[0]==="s"?P[1][1]-o/2:P[0][1]-o/2}).attr("width",function(X){return X.type==="n"||X.type==="s"?P[1][0]-P[0][0]+o:o}).attr("height",function(X){return X.type==="e"||X.type==="w"?P[1][1]-P[0][1]+o:o})):M.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function g(M,P,X){var W=M.__brush.emitter;return W&&(!X||!W.clean)?W:new v(M,P,X)}function v(M,P,X){this.that=M,this.args=P,this.state=M.__brush,this.active=0,this.clean=X}v.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(M,P){return this.starting?(this.starting=!1,this.emit("start",M,P)):this.emit("brush",M),this},brush:function(M,P){return this.emit("brush",M,P),this},end:function(M,P){return--this.active===0&&(delete this.state.emitter,this.emit("end",M,P)),this},emit:function(M,P,X){var W=st(this.that).datum();s.call(M,this.that,new Cg(M,{sourceEvent:P,target:c,selection:t.output(this.state.selection),mode:X,dispatch:s}),W)}};function m(M){if(l&&!M.touches||!n.apply(this,arguments))return;var P=this,X=M.target.__data__.type,W=(i&&M.metaKey?X="overlay":X)==="selection"?Ml:i&&M.altKey?Qr:Jr,G=t===xi?null:Mg[X],k=t===yi?null:Lg[X],H=Es(P),at=H.extent,mt=H.selection,At=at[0][0],St,Tt,Gt=at[0][1],xt,Q,Ct=at[1][0],ht,It,Yt=at[1][1],Xt,Zt,Wt=0,ne=0,je,Oe=G&&k&&i&&M.shiftKey,Ge,cn,Le=Array.from(M.touches||[M],de=>{const an=de.identifier;return de=Un(de,P),de.point0=de.slice(),de.identifier=an,de});kr(P);var ln=g(P,arguments,!0).beforestart();if(X==="overlay"){mt&&(je=!0);const de=[Le[0],Le[1]||Le[0]];H.selection=mt=[[St=t===xi?At:yn(de[0][0],de[1][0]),xt=t===yi?Gt:yn(de[0][1],de[1][1])],[ht=t===xi?Ct:mn(de[0][0],de[1][0]),Xt=t===yi?Yt:mn(de[0][1],de[1][1])]],Le.length>1&&rn(M)}else St=mt[0][0],xt=mt[0][1],ht=mt[1][0],Xt=mt[1][1];Tt=St,Q=xt,It=ht,Zt=Xt;var Ht=st(P).attr("pointer-events","none"),pe=Ht.selectAll(".overlay").attr("cursor",or[X]);if(M.touches)ln.moved=Dt,ln.ended=Ue;else{var be=st(M.view).on("mousemove.brush",Dt,!0).on("mouseup.brush",Ue,!0);i&&be.on("keydown.brush",bn,!0).on("keyup.brush",En,!0),ls(M.view)}u.call(P),ln.start(M,W.name);function Dt(de){for(const an of de.changedTouches||[de])for(const Ga of Le)Ga.identifier===an.identifier&&(Ga.cur=Un(an,P));if(Oe&&!Ge&&!cn&&Le.length===1){const an=Le[0];Ll(an.cur[0]-an[0])>Ll(an.cur[1]-an[1])?cn=!0:Ge=!0}for(const an of Le)an.cur&&(an[0]=an.cur[0],an[1]=an.cur[1]);je=!0,Ss(de),rn(de)}function rn(de){const an=Le[0],Ga=an.point0;var Tr;switch(Wt=an[0]-Ga[0],ne=an[1]-Ga[1],W){case As:case Ml:{G&&(Wt=mn(At-St,yn(Ct-ht,Wt)),Tt=St+Wt,It=ht+Wt),k&&(ne=mn(Gt-xt,yn(Yt-Xt,ne)),Q=xt+ne,Zt=Xt+ne);break}case Jr:{Le[1]?(G&&(Tt=mn(At,yn(Ct,Le[0][0])),It=mn(At,yn(Ct,Le[1][0])),G=1),k&&(Q=mn(Gt,yn(Yt,Le[0][1])),Zt=mn(Gt,yn(Yt,Le[1][1])),k=1)):(G<0?(Wt=mn(At-St,yn(Ct-St,Wt)),Tt=St+Wt,It=ht):G>0&&(Wt=mn(At-ht,yn(Ct-ht,Wt)),Tt=St,It=ht+Wt),k<0?(ne=mn(Gt-xt,yn(Yt-xt,ne)),Q=xt+ne,Zt=Xt):k>0&&(ne=mn(Gt-Xt,yn(Yt-Xt,ne)),Q=xt,Zt=Xt+ne));break}case Qr:{G&&(Tt=mn(At,yn(Ct,St-Wt*G)),It=mn(At,yn(Ct,ht+Wt*G))),k&&(Q=mn(Gt,yn(Yt,xt-ne*k)),Zt=mn(Gt,yn(Yt,Xt+ne*k)));break}}It<Tt&&(G*=-1,Tr=St,St=ht,ht=Tr,Tr=Tt,Tt=It,It=Tr,X in Nl&&pe.attr("cursor",or[X=Nl[X]])),Zt<Q&&(k*=-1,Tr=xt,xt=Xt,Xt=Tr,Tr=Q,Q=Zt,Zt=Tr,X in Fl&&pe.attr("cursor",or[X=Fl[X]])),H.selection&&(mt=H.selection),Ge&&(Tt=mt[0][0],It=mt[1][0]),cn&&(Q=mt[0][1],Zt=mt[1][1]),(mt[0][0]!==Tt||mt[0][1]!==Q||mt[1][0]!==It||mt[1][1]!==Zt)&&(H.selection=[[Tt,Q],[It,Zt]],u.call(P),ln.brush(de,W.name))}function Ue(de){if(Pg(de),de.touches){if(de.touches.length)return;l&&clearTimeout(l),l=setTimeout(function(){l=null},500)}else cs(de.view,je),be.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);Ht.attr("pointer-events","all"),pe.attr("cursor",or.overlay),H.selection&&(mt=H.selection),Bg(mt)&&(H.selection=null,u.call(P)),ln.end(de,W.name)}function bn(de){switch(de.keyCode){case 16:{Oe=G&&k;break}case 18:{W===Jr&&(G&&(ht=It-Wt*G,St=Tt+Wt*G),k&&(Xt=Zt-ne*k,xt=Q+ne*k),W=Qr,rn(de));break}case 32:{(W===Jr||W===Qr)&&(G<0?ht=It-Wt:G>0&&(St=Tt-Wt),k<0?Xt=Zt-ne:k>0&&(xt=Q-ne),W=As,pe.attr("cursor",or.selection),rn(de));break}default:return}Ss(de)}function En(de){switch(de.keyCode){case 16:{Oe&&(Ge=cn=Oe=!1,rn(de));break}case 18:{W===Qr&&(G<0?ht=It:G>0&&(St=Tt),k<0?Xt=Zt:k>0&&(xt=Q),W=Jr,rn(de));break}case 32:{W===As&&(de.altKey?(G&&(ht=It-Wt*G,St=Tt+Wt*G),k&&(Xt=Zt-ne*k,xt=Q+ne*k),W=Qr):(G<0?ht=It:G>0&&(St=Tt),k<0?Xt=Zt:k>0&&(xt=Q),W=Jr),pe.attr("cursor",or[X]),rn(de));break}default:return}Ss(de)}}function S(M){g(this,arguments).moved(M)}function I(M){g(this,arguments).ended(M)}function N(){var M=this.__brush||{selection:null};return M.extent=bs(e.apply(this,arguments)),M.dim=t,M}return c.extent=function(M){return arguments.length?(e=typeof M=="function"?M:$s(bs(M)),c):e},c.filter=function(M){return arguments.length?(n=typeof M=="function"?M:$s(!!M),c):n},c.touchable=function(M){return arguments.length?(a=typeof M=="function"?M:$s(!!M),c):a},c.handleSize=function(M){return arguments.length?(o=+M,c):o},c.keyModifiers=function(M){return arguments.length?(i=!!M,c):i},c.on=function(){var M=s.on.apply(s,arguments);return M===s?c:M},c}function jg(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function Gg(t){const e=typeof(t==null?void 0:t.requestAnimationFrame)=="function"&&typeof(t==null?void 0:t.cancelAnimationFrame)=="function",n=typeof(t==null?void 0:t.requestIdleCallback)=="function"&&typeof(t==null?void 0:t.cancelIdleCallback)=="function",a=s=>setTimeout(s,1),i=s=>clearTimeout(s);return[e?t.requestAnimationFrame:a,e?t.cancelAnimationFrame:i,n?t.requestIdleCallback:a,n?t.cancelIdleCallback:i]}const Ke=jg(),fn=Ke==null?void 0:Ke.document,[Xg,K0,Ul,Z0]=Gg(Ke);var Vg=Object.defineProperty,zl=Object.getOwnPropertySymbols,Yg=Object.prototype.hasOwnProperty,Hg=Object.prototype.propertyIsEnumerable,jl=(t,e,n)=>e in t?Vg(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Gl=(t,e)=>{for(var n in e||(e={}))Yg.call(e,n)&&jl(t,n,e[n]);if(zl)for(var n of zl(e))Hg.call(e,n)&&jl(t,n,e[n]);return t};const Ie=t=>t||t===0,he=t=>typeof t=="function",ze=t=>typeof t=="string",ue=t=>typeof t=="number",en=t=>typeof t=="undefined",Ve=t=>typeof t!="undefined",Os=t=>typeof t=="boolean",Wg=t=>Math.ceil(t/10)*10,Ti=t=>Math.ceil(t)+.5,Ir=t=>t[1]-t[0],Jn=t=>typeof t=="object",Wn=t=>en(t)||t===null||ze(t)&&t.length===0||Jn(t)&&!(t instanceof Date)&&Object.keys(t).length===0||ue(t)&&isNaN(t),nn=t=>!Wn(t),Fe=t=>Array.isArray(t),De=t=>t&&!(t!=null&&t.nodeType)&&Jn(t)&&!Fe(t);function vr(t,e,n){return Ve(t[e])?t[e]:n}function Kg(t,e){let n=!1;return Object.keys(t).forEach(a=>t[a]===e&&(n=!0)),n}function Ze(t,e,...n){const a=he(t);return a&&t.call(e,...n),a}function $i(t,e){let n=0;const a=function(...i){!--n&&e.apply(this,...i)};"duration"in t?t.each(()=>++n).on("end",a):(++n,t.call(a))}function Is(t){return ze(t)?t.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):t}function Ca(t,e,n=[-1,1],a=!1){if(!(!t||!ze(e)))if(e.indexOf(` +`)===-1)t.text(e);else{const i=[t.text(),e].map(s=>s.replace(/[\s\n]/g,""));if(i[0]!==i[1]){const s=e.split(` +`),o=a?s.length-1:1;t.html(""),s.forEach((l,c)=>{t.append("tspan").attr("x",0).attr("dy",`${c===0?n[0]*o:n[1]}em`).text(l)})}}}function Xl(t){const{x:e,y:n,width:a,height:i}=t.getBBox();return[{x:e,y:n+i},{x:e,y:n},{x:e+a,y:n},{x:e+a,y:n+i}]}function Vl(t){const{width:e,height:n}=t.getBoundingClientRect(),a=Xl(t),i=a[0].x,s=Math.min(a[0].y,a[1].y);return{x:i,y:s,width:e,height:n}}function zn(t,e){var n;const a=t&&((n=t.touches||t.sourceEvent&&t.sourceEvent.touches)==null?void 0:n[0]);let i=[0,0];try{i=Un(a||t,e)}catch(s){}return i.map(s=>isNaN(s)?0:s)}function Yl(t){const{event:e,$el:n}=t,a=n.subchart.main||n.main;let i;return e&&e.type==="brush"?i=e.selection:a&&(i=a.select(".bb-brush").node())&&(i=Bl(i)),i}function Si(t){return!("rect"in t)||"rect"in t&&t.hasAttribute("width")&&t.rect.width!==+t.getAttribute("width")?t.rect=t.getBoundingClientRect():t.rect}function lr(t=!0,e=0,n=1e4){const a=Ke.crypto||Ke.msCrypto,i=a?e+a.getRandomValues(new Uint32Array(1))[0]%(n-e+1):Math.floor(Math.random()*(n-e)+e);return t?String(i):i}function Cs(t,e,n,a,i){if(n>a)return-1;const s=Math.floor((n+a)/2);let{x:o,w:l=0}=t[s];return i&&(o=t[s].y,l=t[s].h),e>=o&&e<=o+l?s:e<o?Cs(t,e,n,s-1,i):Cs(t,e,s+1,a,i)}function Hl(t){const e=Yl(t);return e?e[0]===e[1]:!0}function Zg(...t){const e=n=>{if(De(n)&&n.constructor){const a=new n.constructor;for(const i in n)a[i]=e(n[i]);return a}return n};return t.map(n=>e(n)).reduce((n,a)=>Gl(Gl({},n),a))}function gn(t={},e){Fe(e)&&e.forEach(n=>gn(t,n));for(const n in e)/^\d+$/.test(n)||n in t||(t[n]=e[n]);return t}const In=t=>t.charAt(0).toUpperCase()+t.slice(1);function kg(t,e="-"){return t.split(e).map((n,a)=>a?n.charAt(0).toUpperCase()+n.slice(1).toLowerCase():n.toLowerCase()).join("")}const Cr=t=>[].slice.call(t);function Jg(t,e,n){const{rootSelector:a="",sheet:i}=t,o=`${a} ${(l=>l.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(e)} {${n.join(";")}}`;return i[i.insertRule?"insertRule":"addRule"](o,i.cssRules.length)}function Qg(t){let e=[];return t.forEach(n=>{var a;try{n.cssRules&&n.cssRules.length&&(e=e.concat(Cr(n.cssRules)))}catch(i){(a=Ke.console)==null||a.warn(`Error while reading rules from ${n.href}: ${i.toString()}`)}}),e}function Wl(t){var e,n,a,i;return{x:((n=(e=Ke.pageXOffset)!=null?e:Ke.scrollX)!=null?n:0)+t.scrollLeft,y:((i=(a=Ke.pageYOffset)!=null?a:Ke.scrollY)!=null?i:0)+t.scrollTop}}function Kl(t){const e=t?t.transform:null,n=e&&e.baseVal;return n&&n.numberOfItems?n.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function Ps(t){const e=t[0]instanceof Date,n=(e?t.map(Number):t).filter((a,i,s)=>s.indexOf(a)===i);return e?n.map(a=>new Date(a)):n}function ws(t){return t&&t.length?t.reduce((e,n)=>e.concat(n)):[]}function _r(t,...e){if(!e.length||e.length===1&&!e[0])return t;const n=e.shift();return De(t)&&De(n)&&Object.keys(n).forEach(a=>{const i=n[a];De(i)?(!t[a]&&(t[a]={}),t[a]=_r(t[a],i)):t[a]=Fe(i)?i.concat():i}),_r(t,...e)}function qr(t,e=!0){let n;return t[0]instanceof Date?n=e?(a,i)=>a-i:(a,i)=>i-a:e&&!t.every(isNaN)?n=(a,i)=>a-i:e||(n=(a,i)=>a>i&&-1||a<i&&1||a===i&&0),t.concat().sort(n)}function Kn(t,e){let n=e.filter(a=>nn(a));return n.length?ue(n[0])?n=Math[t](...n):n[0]instanceof Date&&(n=qr(n,t==="min")[0]):n=void 0,n}const Ai=(t,e,n=1)=>{const a=[],i=Math.max(0,Math.ceil((e-t)/n))|0;for(let s=t;s<i;s++)a.push(t+s*n);return a},_g={mouse:(()=>{const t=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(e,n,a=t())=>{e.dispatchEvent(new MouseEvent(n,a))}}catch(e){return(n,a,i=t())=>{const s=fn.createEvent("MouseEvent");s.initMouseEvent(a,i.bubbles,i.cancelable,Ke,0,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),n.dispatchEvent(s)}}})(),touch:(t,e,n)=>{const a=new Touch(_r({identifier:Date.now(),target:t,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},n));t.dispatchEvent(new TouchEvent(e,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[a],targetTouches:[],changedTouches:[a]}))}};function bi(t,e){let n=t;for(const a in e)n=n.replace(new RegExp(`{=${a}}`,"g"),e[a]);return n}function Dn(t){var e;let n;if(t instanceof Date)n=t;else if(ze(t)){const{config:a,format:i}=this;n=(e=i.dataTime(a.data_xFormat)(t))!=null?e:new Date(t)}else ue(t)&&!isNaN(t)&&(n=new Date(+t));return(!n||isNaN(+n))&&console&&console.error&&console.error(`Failed to parse x '${t}' to Date object`),n}function Pa(){var t,e;return((t=fn)==null?void 0:t.hidden)===!1||((e=fn)==null?void 0:e.visibilityState)==="visible"}function qg(t,e){const{DocumentTouch:n,matchMedia:a,navigator:i}=Ke;let s=!1;if(e)if(i&&"maxTouchPoints"in i)s=i.maxTouchPoints>0;else if("ontouchmove"in Ke||n&&fn instanceof n)s=!0;else if(a!=null&&a("(pointer:coarse)").matches)s=!0;else{const l=i.userAgent;s=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(l)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(l)}return t&&((a==null?void 0:a("any-hover:hover").matches)||(a==null?void 0:a("any-pointer:fine").matches))&&"mouse"||s&&"touch"||"mouse"}function Zl(t,e){e()===!1?Xg(()=>Zl(t,e)):t()}var tv=Object.defineProperty,kl=Object.getOwnPropertySymbols,ev=Object.prototype.hasOwnProperty,nv=Object.prototype.propertyIsEnumerable,Ms=(t,e,n)=>e in t?tv(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Jl=(t,e)=>{for(var n in e||(e={}))ev.call(e,n)&&Ms(t,n,e[n]);if(kl)for(var n of kl(e))nv.call(e,n)&&Ms(t,n,e[n]);return t},rv=(t,e,n)=>(Ms(t,typeof e!="symbol"?e+"":e,n),n);const Ql=class Sf{static setOptions(e){this.data=e.reduce((n,a)=>Jl(Jl({},n),a),this.data)}constructor(){return Zg(Ud,Nd,Gd,Fd,Xd,Bd,zd,jd,Sf.data)}};rv(Ql,"data",{});let Pr=Ql;class av{constructor(){return{chart:null,main:null,svg:null,axis:{x:null,y:null,y2:null,subX:null},axisTooltip:{x:null,y:null,y2:null},defs:null,tooltip:null,legend:null,title:null,subchart:{main:null,bar:null,line:null,area:null},arcs:null,bar:null,candlestick:null,line:null,area:null,circle:null,radar:null,text:null,grid:{main:null,x:null,y:null},gridLines:{main:null,x:null,y:null},region:{main:null,list:null},eventRect:null,zoomResetBtn:null}}}class iv{constructor(){return{width:0,width2:0,height:0,height2:0,margin:{top:0,bottom:0,left:0,right:0},margin2:{top:0,bottom:0,left:0,right:0},margin3:{top:0,bottom:0,left:0,right:0},arcWidth:0,arcHeight:0,xAxisHeight:0,hasAxis:!1,hasFunnel:!1,hasRadar:!1,hasTreemap:!1,cssRule:{},current:{domain:void 0,width:0,height:0,dataMax:0,maxTickSize:{x:{width:0,height:0,ticks:[],clipPath:0,domain:""},y:{width:0,height:0,domain:""},y2:{width:0,height:0,domain:""}},types:[],needle:void 0},isLegendRight:!1,isLegendInset:!1,isLegendTop:!1,isLegendLeft:!1,legendStep:0,legendItemWidth:0,legendItemHeight:0,legendHasRendered:!1,eventReceiver:{currentIdx:-1,rect:{},data:[],coords:[]},axis:{x:{padding:{left:0,right:0},tickCount:0}},rotatedPadding:{left:30,right:0,top:5},withoutFadeIn:{},inputType:"",datetimeId:"",clip:{id:"",idXAxis:"",idYAxis:"",idXAxisTickTexts:"",idGrid:"",idSubchart:"",path:"",pathXAxis:"",pathYAxis:"",pathXAxisTickTexts:"",pathGrid:""},event:null,dragStart:null,dragging:!1,flowing:!1,cancelClick:!1,mouseover:!1,rendered:!1,transiting:!1,redrawing:!1,resizing:!1,toggling:!1,zooming:!1,hasNegativeValue:!1,hasPositiveValue:!0,orgAreaOpacity:"0.2",orgConfig:{},hiddenTargetIds:[],hiddenLegendIds:[],focusedTargetIds:[],defocusedTargetIds:[],radius:0,innerRadius:0,outerRadius:void 0,innerRadiusRatio:0,gaugeArcWidth:0,radiusExpanded:0,xgridAttr:{x1:null,x2:null,y1:null,y2:null}}}}const _l={element:av,state:iv};class sv{constructor(){Object.keys(_l).forEach(e=>{this[e]=new _l[e]})}getStore(e){return this[e]}}var ov=Object.defineProperty,lv=(t,e,n)=>e in t?ov(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,cv=(t,e,n)=>(lv(t,typeof e!="symbol"?e+"":e,n),n);const Cn={bubbleBaseLength:"$baseLength",colorPattern:"__colorPattern__",dataMinMax:"$dataMinMax",dataTotalSum:"$dataTotalSum",dataTotalPerIndex:"$totalPerIndex",legendItemTextBox:"legendItemTextBox",radarPoints:"$radarPoints",radarTextWidth:"$radarTextWidth",setOverOut:"setOverOut",callOverOutForTouch:"callOverOutForTouch",textRect:"textRect"};class uv{constructor(){cv(this,"cache",{})}add(e,n,a=!1){return this.cache[e]=a?this.cloneTarget(n):n,this.cache[e]}remove(e){(ze(e)?[e]:e).forEach(n=>delete this.cache[n])}get(e,n=!1){if(n&&Array.isArray(e)){const a=[];for(let i=0,s;s=e[i];i++)s in this.cache&&a.push(this.cloneTarget(this.cache[s]));return a}else{const a=this.cache[e];return Ie(a)?a:null}}reset(e){const n=this;for(const a in n.cache)(e||/^\$/.test(a))&&(n.cache[a]=null)}cloneTarget(e){return{id:e.id,id_org:e.id_org,values:e.values.map(n=>({x:n.x,value:n.value,id:n.id}))}}}const fe={AREA:"area",AREA_LINE_RANGE:"area-line-range",AREA_SPLINE:"area-spline",AREA_SPLINE_RANGE:"area-spline-range",AREA_STEP:"area-step",BAR:"bar",BUBBLE:"bubble",CANDLESTICK:"candlestick",DONUT:"donut",FUNNEL:"funnel",GAUGE:"gauge",LINE:"line",PIE:"pie",POLAR:"polar",RADAR:"radar",SCATTER:"scatter",SPLINE:"spline",STEP:"step",TREEMAP:"treemap"},Ls={AREA:"initArea",AREA_LINE_RANGE:"initArea",AREA_SPLINE:"initArea",AREA_SPLINE_RANGE:"initArea",AREA_STEP:"initArea",BAR:"initBar",BUBBLE:"initCircle",CANDLESTICK:"initCandlestick",DONUT:"initArc",FUNNEL:"initFunnel",GAUGE:"initArc",LINE:"initLine",PIE:"initArc",POLAR:"initPolar",RADAR:"initCircle",SCATTER:"initCircle",SPLINE:"initLine",STEP:"initLine",TREEMAP:"initTreemap"},pr={Area:[fe.AREA,fe.AREA_SPLINE,fe.AREA_SPLINE_RANGE,fe.AREA_LINE_RANGE,fe.AREA_STEP],AreaRange:[fe.AREA_SPLINE_RANGE,fe.AREA_LINE_RANGE],Arc:[fe.PIE,fe.DONUT,fe.GAUGE,fe.POLAR,fe.RADAR],Line:[fe.LINE,fe.SPLINE,fe.AREA,fe.AREA_SPLINE,fe.AREA_SPLINE_RANGE,fe.AREA_LINE_RANGE,fe.STEP,fe.AREA_STEP],Step:[fe.STEP,fe.AREA_STEP],Spline:[fe.SPLINE,fe.AREA_SPLINE,fe.AREA_SPLINE_RANGE]};function fv(t){const e=t,{config:n}=e;let a="";if(Wn(n.data_type||n.data_types)&&!e[Ls.LINE])a="line";else for(const i in Ls){const s=fe[i];if(e.hasType(s)&&!e[Ls[i]]){a=s;break}}a&&dv(`Please, make sure if %c${kg(a)}`,"module has been imported and specified correctly.")}function dv(t,e){var n;const a="[billboard.js]";throw((n=Ke.console)==null?void 0:n.error)&&(console.error(`\u274C ${a} ${t}`,"background:red;color:white;display:block;font-size:15px",e),console.info("%c\u2139\uFE0F","font-size:15px","https://github.com/naver/billboard.js/wiki/CHANGELOG-v2#modularization-by-its-functionality")),Error(`${a} ${t.replace(/\%c([a-z-]+)/i,"'$1' ")} ${e}`)}const{setTimeout:hv,clearTimeout:gv}=Ke;function vv(t){const e=[];let n;const a=function(){a.clear(),t===!1?Ul(()=>{e.forEach(i=>i())},{timeout:200}):n=hv(()=>{e.forEach(i=>i())},ue(t)?t:200)};return a.clear=()=>{n&&(gv(n),n=null)},a.add=i=>e.push(i),a.remove=i=>e.splice(e.indexOf(i),1),a}function ql(){let t=[];const e=function(n,a){function i(){var s;let o=0;for(let l=0,c;c=t[l];l++){if(c===!0||(s=c.empty)!=null&&s.call(c)){o++;continue}if(Pa()===!1){o=t.length;break}try{c.transition()}catch(u){o++}}return o===t.length}Zl(()=>{a==null||a()},i)};return e.add=function(n){Fe(n)?t=t.concat(n):t.push(n)},e}const Ds={};function pv(t,e){var n;const a=t.toString(),i=a.replace(/(function|[\s\W\n])/g,"").substring(0,15);return i in Ds||(Ds[i]=new Ke.Blob([`${(n=e==null?void 0:e.map(String).join(";"))!=null?n:""} + + self.onmessage=function({data}) { + const result = (${a}).apply(null, data); + self.postMessage(result); + };`],{type:"text/javascript"})),Ke.URL.createObjectURL(Ds[i])}function mv(t){const e=new Ke.Worker(t);return e.onerror=function(n){console.error?console.error(n):console.log(n)},e}function Ns(t=!0,e,n,a){let i=function(...s){const o=e(...s);n(o)};if(Ke.Worker&&t){const s=pv(e,a),o=mv(s);i=function(...l){o.postMessage(l),o.onmessage=function(c){return Ke.URL.revokeObjectURL(s),n(c.data)}}}return i}var tc={},Fs={},Bs=34,wa=10,Us=13;function ec(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function yv(t,e){var n=ec(t);return function(a,i){return e(n(a),i,t)}}function nc(t){var e=Object.create(null),n=[];return t.forEach(function(a){for(var i in a)i in e||n.push(e[i]=i)}),n}function Pn(t,e){var n=t+"",a=n.length;return a<e?new Array(e-a+1).join(0)+n:n}function xv(t){return t<0?"-"+Pn(-t,6):t>9999?"+"+Pn(t,6):Pn(t,4)}function Tv(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),a=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":xv(t.getUTCFullYear(),4)+"-"+Pn(t.getUTCMonth()+1,2)+"-"+Pn(t.getUTCDate(),2)+(i?"T"+Pn(e,2)+":"+Pn(n,2)+":"+Pn(a,2)+"."+Pn(i,3)+"Z":a?"T"+Pn(e,2)+":"+Pn(n,2)+":"+Pn(a,2)+"Z":n||e?"T"+Pn(e,2)+":"+Pn(n,2)+"Z":"")}function rc(t){var e=new RegExp('["'+t+` +\r]`),n=t.charCodeAt(0);function a(v,m){var S,I,N=i(v,function(M,P){if(S)return S(M,P-1);I=M,S=m?yv(M,m):ec(M)});return N.columns=I||[],N}function i(v,m){var S=[],I=v.length,N=0,M=0,P,X=I<=0,W=!1;v.charCodeAt(I-1)===wa&&--I,v.charCodeAt(I-1)===Us&&--I;function G(){if(X)return Fs;if(W)return W=!1,tc;var H,at=N,mt;if(v.charCodeAt(at)===Bs){for(;N++<I&&v.charCodeAt(N)!==Bs||v.charCodeAt(++N)===Bs;);return(H=N)>=I?X=!0:(mt=v.charCodeAt(N++))===wa?W=!0:mt===Us&&(W=!0,v.charCodeAt(N)===wa&&++N),v.slice(at+1,H-1).replace(/""/g,'"')}for(;N<I;){if((mt=v.charCodeAt(H=N++))===wa)W=!0;else if(mt===Us)W=!0,v.charCodeAt(N)===wa&&++N;else if(mt!==n)continue;return v.slice(at,H)}return X=!0,v.slice(at,I)}for(;(P=G())!==Fs;){for(var k=[];P!==tc&&P!==Fs;)k.push(P),P=G();m&&(k=m(k,M++))==null||S.push(k)}return S}function s(v,m){return v.map(function(S){return m.map(function(I){return g(S[I])}).join(t)})}function o(v,m){return m==null&&(m=nc(v)),[m.map(g).join(t)].concat(s(v,m)).join(` +`)}function l(v,m){return m==null&&(m=nc(v)),s(v,m).join(` +`)}function c(v){return v.map(u).join(` +`)}function u(v){return v.map(g).join(t)}function g(v){return v==null?"":v instanceof Date?Tv(v):e.test(v+="")?'"'+v.replace(/"/g,'""')+'"':v}return{parse:a,parseRows:i,format:o,formatBody:l,formatRows:c,formatRow:u,formatValue:g}}var wr=rc(","),$v=wr.parse,Sv=wr.parseRows,k0=wr.format,J0=wr.formatBody,Q0=wr.formatRows,_0=wr.formatRow,q0=wr.formatValue,Mr=rc(" "),Av=Mr.parse,bv=Mr.parseRows,t1=Mr.format,e1=Mr.formatBody,n1=Mr.formatRows,r1=Mr.formatRow,a1=Mr.formatValue;function zs(t){const e=[];return t.forEach(function(n,a){const i=n[0];n.forEach(function(s,o){if(o>0){if(typeof e[o-1]=="undefined"&&(e[o-1]={}),typeof s=="undefined")throw new Error(`Source data is missing a component at (${a}, ${o})!`);e[o-1][i]=s}})}),e}function js(t){const e=t[0],n=[];return t.forEach(function(a,i){if(i>0){const s={};a.forEach(function(o,l){if(typeof o=="undefined")throw new Error(`Source data is missing a component at (${i}, ${l})!`);s[e[l]]=o}),n.push(s)}}),n}function ac(t,e){const n=[];let a,i;if(Array.isArray(t)){const s=function(o,l){if(o[l]!==void 0)return o[l];const u=l.replace(/\[(\w+)\]/g,".$1").replace(/^\./,"").split(".");let g=o;return u.some(function(v){return!(g=g&&v in g?g[v]:void 0)}),g};e.x?a=e.value.concat(e.x):a=e.value,n.push(a),t.forEach(function(o){const l=a.map(function(c){let u=s(o,c);return typeof u=="undefined"&&(u=null),u});n.push(l)}),i=js(n)}else Object.keys(t).forEach(function(s){var o;const l=t[s].concat();(o=l.unshift)==null||o.call(l,s),n.push(l)}),i=zs(n);return i}function Ev(t,e="csv",n,a,i){const s=new XMLHttpRequest,o={csv:Rv,tsv:Ov,json:ac};s.open("GET",t),n&&Object.keys(n).forEach(function(l){s.setRequestHeader(l,n[l])}),s.onreadystatechange=function(){if(s.readyState===4)if(s.status===200){const l=s.responseText;l&&i.call(this,o[e](e==="json"?JSON.parse(l):l,a))}else throw new Error(`${t}: Something went wrong loading!`)},s.send()}function ic(t,e){const n=t.rows(e);let a;return n.length===1?(a=[{}],n[0].forEach(i=>{a[0][i]=null})):a=t.parse(e),a}function Rv(t){return ic({rows:Sv,parse:$v},t)}function Ov(t){return ic({rows:bv,parse:Av},t)}function sc(t,e){const n=t||(e==null?void 0:e.data_keys);return n!=null&&n.x&&(e.data_x=n.x),n}var Iv={convertData(t,e){const{config:n}=this,a=n.boost_useWorker;let i=t;if(t.bindto&&(i={},["url","mimeType","headers","keys","json","keys","rows","columns"].forEach(s=>{const o=`data_${s}`;o in t&&(i[s]=t[o])})),i.url&&e)Ev(i.url,i.mimeType,i.headers,sc(i.keys,n),e);else if(i.json)Ns(a,ac,e,[zs,js])(i.json,sc(i.keys,n));else if(i.rows)Ns(a,js,e)(i.rows);else if(i.columns)Ns(a,zs,e)(i.columns);else if(t.bindto)throw Error("url or json or rows or columns is required.")},convertDataToTargets(t,e){const n=this,{axis:a,config:i,state:s}=n,o=i.data_type;let l=!1,c=!1,u=!1;a&&(l=a.isCategorized(),c=a.isTimeSeries(),u=a.isCustomX());const g=Object.keys(t[0]||{}),v=g.length?g.filter(n.isNotX,n):[],m=g.length?g.filter(n.isX,n):[];let S;v.forEach(N=>{const M=this.getXKey(N);u||c?m.indexOf(M)>=0?S=(e&&n.data.xs[N]||[]).concat(t.map(P=>P[M]).filter(Ie).map((P,X)=>n.generateTargetX(P,N,X))):i.data_x?S=this.getOtherTargetXs():nn(i.data_xs)&&(S=n.getXValuesOfXKey(M,n.data.targets)):S=t.map((P,X)=>X),S&&(this.data.xs[N]=S)}),v.forEach(N=>{if(!this.data.xs[N])throw new Error(`x is not defined for id = "${N}".`)});const I=v.map((N,M)=>{const P=i.data_idConverter.bind(n.api)(N),X=n.getXKey(N),W=u&&l,G=W&&t.map(at=>at.x).every(at=>i.axis_x_categories.indexOf(at)>-1),k=t.__append__,H=X===null&&k?n.api.data.values(N).length:0;return{id:P,id_org:N,values:t.map((at,mt)=>{const At=at[X];let St=at[N],Tt;return St=St!==null&&!isNaN(St)&&!De(St)?+St:Fe(St)||De(St)?St:null,(W||s.hasRadar)&&M===0&&!en(At)?(!G&&M===0&&mt===0&&!k&&(i.axis_x_categories=[]),Tt=i.axis_x_categories.indexOf(At),Tt===-1&&(Tt=i.axis_x_categories.length,i.axis_x_categories.push(At))):Tt=n.generateTargetX(At,N,H+mt),(en(St)||n.data.xs[N].length<=mt)&&(Tt=void 0),{x:Tt,value:St,id:P,index:-1}}).filter(at=>Ve(at.x))}});if(I.forEach(N=>{var M;i.data_xSort&&(N.values=N.values.sort((P,X)=>{const W=P.x||P.x===0?P.x:1/0,G=X.x||X.x===0?X.x:1/0;return W-G})),N.values.forEach((P,X)=>P.index=X),(M=n.data.xs[N.id])==null||M.sort((P,X)=>P-X)}),s.hasNegativeValue=n.hasNegativeValueInTargets(I),s.hasPositiveValue=n.hasPositiveValueInTargets(I),o&&n.isValidChartType(o)){const N=n.mapToIds(I).filter(M=>!(M in i.data_types)||!n.isValidChartType(i.data_types[M]));n.setTargetType(N,o)}return I.forEach(N=>n.cache.add(N.id_org,N,!0)),I}},Cv={isX(t){const e=this,{config:n}=e,a=n.data_x&&t===n.data_x,i=nn(n.data_xs)&&Kg(n.data_xs,t);return a||i},isNotX(t){return!this.isX(t)},isStackNormalized(){const{config:t}=this;return!!(t.data_stack_normalize&&t.data_groups.length)},isGrouped(t){const e=this.config.data_groups;return t?e.some(n=>n.indexOf(t)>=0&&n.length>1):e.length>0},getXKey(t){const e=this,{config:n}=e;return n.data_x?n.data_x:nn(n.data_xs)?n.data_xs[t]:null},getXValuesOfXKey(t,e){const n=this,a=e&&nn(e)?n.mapToIds(e):[];let i;return a.forEach(s=>{n.getXKey(s)===t&&(i=n.data.xs[s])}),i},getIndexByX(t,e){const n=this;return e?e.indexOf(ze(t)?t:+t):(n.filterByX(n.data.targets,t)[0]||{index:null}).index},getXValue(t,e){const n=this;return t in n.data.xs&&n.data.xs[t]&&Ie(n.data.xs[t][e])?n.data.xs[t][e]:e},getOtherTargetXs(){const t=this,e=Object.keys(t.data.xs);return e.length?t.data.xs[e[0]]:null},getOtherTargetX(t){const e=this.getOtherTargetXs();return e&&t<e.length?e[t]:null},addXs(t){const e=this,{config:n}=e;Object.keys(t).forEach(a=>{n.data_xs[a]=t[a]})},isMultipleX(){return!this.config.axis_x_forceAsSingle&&(nn(this.config.data_xs)||this.hasType("bubble")||this.hasType("scatter"))},addName(t){const e=this,{config:n}=e;let a;return t&&(a=n.data_names[t.id],t.name=a!==void 0?a:t.id),t},getAllValuesOnIndex(t,e=!1){const n=this;let a=n.filterTargetsToShow(n.data.targets).map(i=>n.addName(n.getValueOnIndex(i.values,t)));return e&&(a=a.filter(i=>i&&"value"in i&&Ie(i.value))),a},getValueOnIndex(t,e){const n=t.filter(a=>a.index===e);return n.length?n[0]:null},updateTargetX(t,e){const n=this;t.forEach(a=>{a.values.forEach((i,s)=>{i.x=n.generateTargetX(e[s],a.id,s)}),n.data.xs[a.id]=e})},updateTargetXs(t,e){const n=this;t.forEach(a=>{e[a.id]&&n.updateTargetX([a],e[a.id])})},generateTargetX(t,e,n){const a=this,{axis:i}=a;let s=i!=null&&i.isCategorized()?n:t||n;if(i!=null&&i.isTimeSeries()){const o=Dn.bind(a);s=o(t||a.getXValue(e,n))}else i!=null&&i.isCustomX()&&!(i!=null&&i.isCategorized())&&(s=Ie(t)?+t:a.getXValue(e,n));return s},updateXs(t){t.length&&(this.axis.xs=t.map(e=>e.x))},getPrevX(t){const e=this.axis.xs[t-1];return Ve(e)?e:null},getNextX(t){const e=this.axis.xs[t+1];return Ve(e)?e:null},getBaseValue(t){const e=this,{hasAxis:n}=e.state;let{value:a}=t;return a&&n&&(e.isAreaRangeType(t)?a=e.getRangedData(t,"mid"):e.isBubbleZType(t)&&(a=e.getBubbleZData(a,"y"))),a},getMinMaxValue(t){const e=this.getBaseValue.bind(this);let n,a;return(t||this.data.targets.map(i=>i.values)).forEach((i,s)=>{const o=i.map(e).filter(ue);n=Math.min(s?n:1/0,...o),a=Math.max(s?a:-1/0,...o)}),{min:n,max:a}},getMinMaxData(){const t=this,e=Cn.dataMinMax;let n=t.cache.get(e);if(!n){const a=t.data.targets.map(l=>l.values),i=t.getMinMaxValue(a);let s=[],o=[];a.forEach(l=>{const c=t.getFilteredDataByValue(l,i.min),u=t.getFilteredDataByValue(l,i.max);c.length&&(s=s.concat(c)),u.length&&(o=o.concat(u))}),t.cache.add(e,n={min:s,max:o})}return n},getTotalPerIndex(){const t=this,e=Cn.dataTotalPerIndex;let n=t.cache.get(e);return(t.config.data_groups.length||t.isStackNormalized())&&!n&&(n=[],t.data.targets.forEach(a=>{a.values.forEach((i,s)=>{n[s]||(n[s]=0),n[s]+=ue(i.value)?i.value:0})})),n},getTotalDataSum(t){const e=this,n=Cn.dataTotalSum;let a=e.cache.get(n);if(!ue(a)){const i=ws(e.data.targets.map(s=>s.values)).map(s=>s.value);a=i.length?i.reduce((s,o)=>s+o):0,e.cache.add(n,a)}return t&&(a-=e.getHiddenTotalDataSum()),a},getHiddenTotalDataSum(){const t=this,{api:e,state:{hiddenTargetIds:n}}=t;let a=0;return n.length&&(a=e.data.values.bind(e)(n).reduce((i,s)=>i+s)),a},getFilteredDataByValue(t,e){return t.filter(n=>this.getBaseValue(n)===e)},getMaxDataCount(){return Math.max(...this.data.targets.map(t=>t.values.length),0)},getMaxDataCountTarget(){let t=this.filterTargetsToShow()||[];const e=t.length,n=this.config.axis_x_inverted;return e>1?(t=t.map(a=>a.values).reduce((a,i)=>a.concat(i)).map(a=>a.x),t=qr(Ps(t)).map((a,i,s)=>({x:a,index:n?s.length-i-1:i}))):e&&(t=t[0].values.concat()),t},mapToIds(t){return t.map(e=>e.id)},mapToTargetIds(t){const e=this;return t?Fe(t)?t.concat():[t]:e.mapToIds(e.data.targets)},hasTarget(t,e){const n=this.mapToIds(t);for(let a=0,i;i=n[a];a++)if(i===e)return!0;return!1},isTargetToShow(t){return this.state.hiddenTargetIds.indexOf(t)<0},isLegendToShow(t){return this.state.hiddenLegendIds.indexOf(t)<0},filterTargetsToShow(t){const e=this;return(t||e.data.targets).filter(n=>e.isTargetToShow(n.id))},mapTargetsToUniqueXs(t){const e=this,{axis:n}=e;let a=[];return t!=null&&t.length&&(a=Ps(ws(t.map(i=>i.values.map(s=>+s.x)))),a=n!=null&&n.isTimeSeries()?a.map(i=>new Date(+i)):a.map(Number)),qr(a)},addTargetIds(t,e){const{state:n}=this;(Fe(e)?e:[e]).forEach(i=>{n[t].indexOf(i)<0&&n[t].push(i)})},removeTargetIds(t,e){const{state:n}=this;(Fe(e)?e:[e]).forEach(i=>{const s=n[t].indexOf(i);s>=0&&n[t].splice(s,1)})},addHiddenTargetIds(t){this.addTargetIds("hiddenTargetIds",t)},removeHiddenTargetIds(t){this.removeTargetIds("hiddenTargetIds",t)},addHiddenLegendIds(t){this.addTargetIds("hiddenLegendIds",t)},removeHiddenLegendIds(t){this.removeTargetIds("hiddenLegendIds",t)},getValuesAsIdKeyed(t){const e=this,{hasAxis:n}=e.state,a={},i=e.isMultipleX(),s=i?e.mapTargetsToUniqueXs(t).map(o=>ze(o)?o:+o):null;return t.forEach(o=>{const l=[];o.values.filter(({value:c})=>Ie(c)||c===null).forEach(c=>{let{value:u}=c;u!==null&&e.isCandlestickType(c)&&(u=Fe(u)?u.slice(0,4):[u.open,u.high,u.low,u.close]),Fe(u)?l.push(...u):De(u)&&"high"in u?l.push(...Object.values(u)):e.isBubbleZType(c)?l.push(n&&e.getBubbleZData(u,"y")):i?l[e.getIndexByX(c.x,s)]=u:l.push(u)}),a[o.id]=l}),a},checkValueInTargets(t,e){const n=Object.keys(t);let a;for(let i=0;i<n.length;i++){a=t[n[i]].values;for(let s=0;s<a.length;s++)if(e(a[s].value))return!0}return!1},hasMultiTargets(){return this.filterTargetsToShow().length>1},hasNegativeValueInTargets(t){return this.checkValueInTargets(t,e=>e<0)},hasPositiveValueInTargets(t){return this.checkValueInTargets(t,e=>e>0)},orderTargets(t){const e=this,n=[...t],a=e.getSortCompareFn();return a&&n.sort(a),n},getSortCompareFn(t=!1){const e=this,{config:n}=e,a=n.data_order,i=/asc/i.test(a),s=/desc/i.test(a);let o;if(i||s){const l=(u,g)=>u+Math.abs(g.value),c=u=>ue(u)?u:"values"in u?u.values.reduce(l,0):u.value;o=(u,g)=>{const v=c(u),m=c(g);return t?i?v-m:m-v:i?m-v:v-m}}else he(a)&&(o=a.bind(e.api));return o||null},filterByX(t,e){return ws(t.map(n=>n.values)).filter(n=>n.x-e===0)},filterRemoveNull(t){return t.filter(e=>Ie(this.getBaseValue(e)))},filterByXDomain(t,e){return t.map(n=>({id:n.id,id_org:n.id_org,values:n.values.filter(a=>e[0]<=a.x&&a.x<=e[1])}))},hasDataLabel(){const t=this.config.data_labels;return Os(t)&&t||Jn(t)&&nn(t)},getDataIndexFromEvent(t){const e=this,{$el:n,config:a,state:{hasRadar:i,inputType:s,eventReceiver:{coords:o,rect:l}}}=e;let c;if(i){let u=t.target;/tspan/i.test(u.tagName)&&(u=u.parentNode);const g=st(u).datum();c=g&&Object.keys(g).length===1?g.index:void 0}else{const u=a.axis_rotated,g=Wl(n.chart.node()),v=s==="touch"&&t.changedTouches?t.changedTouches[0]:t;c=Cs(o,u?v.clientY+g.y-l.top:v.clientX+g.x-l.left,0,o.length-1,u)}return c},getDataLabelLength(t,e,n){const a=this,i=[0,0],s=1.3;return a.$el.chart.select("svg").selectAll(".dummy").data([t,e]).enter().append("text").text(o=>a.dataLabelFormat(o.id)(o)).each(function(o,l){i[l]=this.getBoundingClientRect()[n]*s}).remove(),i},isNoneArc(t){return this.hasTarget(this.data.targets,t.id)},isArc(t){return"data"in t&&this.hasTarget(this.data.targets,t.data.id)},findSameXOfValues(t,e){const n=t[e].x,a=[];let i;for(i=e-1;i>=0&&n===t[i].x;i--)a.push(t[i]);for(i=e;i<t.length&&n===t[i].x;i++)a.push(t[i]);return a},findClosestFromTargets(t,e){const n=this,a=t.map(i=>n.findClosest(i.values,e));return n.findClosest(a,e)},findClosest(t,e){const n=this,{$el:{main:a}}=n,i=t.filter(l=>l&&Ie(l.value));let s,o;return i.filter(l=>n.isBarType(l.id)||n.isCandlestickType(l.id)).forEach(l=>{const c=n.isBarType(l.id)?`.${Gn.chartBar}.${Se.target}${n.getTargetSelectorSuffix(l.id)} .${Gn.bar}-${l.index}`:`.${rr.chartCandlestick}.${Se.target}${n.getTargetSelectorSuffix(l.id)} .${rr.candlestick}-${l.index} path`;!o&&n.isWithinBar(a.select(c).node())&&(o=l)}),i.filter(l=>!n.isBarType(l.id)&&!n.isCandlestickType(l.id)).forEach(l=>{const c=n.dist(l,e);s=n.getPointSensitivity(l),c<s&&(s=c,o=l)}),o},dist(t,e){const n=this,{config:{axis_rotated:a},scale:i}=n,s=+a,o=+!a,l=n.circleY(t,t.index),c=(i.zoom||i.x)(t.x);return Math.sqrt(Math.pow(c-e[s],2)+Math.pow(l-e[o],2))},convertValuesToStep(t){const e=this,{axis:n,config:a}=e,i=a.line_step_type,s=n?n.isCategorized():!1,o=Fe(t)?t.concat():[t];if(!(s||/step\-(after|before)/.test(i)))return t;if(o.length){const l=o[0],c=o[o.length-1],{id:u}=l;let{x:g}=l;o.unshift({x:--g,value:l.value,id:u}),s&&i==="step-after"&&o.unshift({x:--g,value:l.value,id:u}),g=c.x,o.push({x:++g,value:c.value,id:u}),s&&i==="step-before"&&o.push({x:++g,value:c.value,id:u})}return o},convertValuesToRange(t){const e=Fe(t)?t.concat():[t],n=[];return e.forEach(a=>{const{x:i,id:s}=a;n.push({x:i,id:s,value:a.value[0]}),n.push({x:i,id:s,value:a.value[2]})}),n},updateDataAttributes(t,e){const n=this,{config:a}=n,i=a[`data_${t}`];return en(e)||(Object.keys(e).forEach(s=>{i[s]=e[s]}),n.redraw({withLegend:!0})),i},getRangedData(t,e="",n="areaRange"){const a=t==null?void 0:t.value;if(Fe(a)){if(n==="bar")return a.reduce((i,s)=>s-i);{const i={areaRange:["high","mid","low"],candlestick:["open","high","low","close","volume"]}[n].indexOf(e);return i>=0&&a?a[i]:void 0}}else if(a&&e)return a[e];return a},setRatioForGroupedData(t){const e=this,{config:n}=e;if(n.data_groups.length&&t.some(a=>e.isGrouped(a.id))){const a=i=>e.getRatio("index",i,!0);t.forEach(i=>{"values"in i?i.values.forEach(a):a(i)})}},getRatio(t,e,n=!1){const a=this,{config:i,state:s}=a,o=a.api;let l=0;if(e&&o.data.shown().length)if(l=e.ratio||e.value,t==="arc")if(a.pie.padAngle()())l=e.value/a.getTotalDataSum(!0);else{const c=i.gauge_fullCircle?a.getArcLength():a.getStartingAngle()*-2,u=a.hasType("gauge")?c:Math.PI*2;l=(e.endAngle-e.startAngle)/u}else if(t==="index"){const c=o.data.values.bind(o);let u=this.getTotalPerIndex();if(s.hiddenTargetIds.length){let v=c(s.hiddenTargetIds,!1);v.length&&(v=v.reduce((m,S)=>m.map((I,N)=>(ue(I)?I:0)+S[N])),u=u.map((m,S)=>m-v[S]))}const g=u[e.index];e.ratio=ue(e.value)&&u&&g?e.value/g:0,l=e.ratio}else if(t==="radar")l=parseFloat(String(Math.max(e.value,0)))/s.current.dataMax*i.radar_size_ratio;else if(t==="bar"){const u=a.getYScaleById.bind(a)(e.id).domain().reduce((g,v)=>v-g);l=u===0?0:Math.abs(a.getRangedData(e,null,t)/u)}else t==="treemap"&&(l/=a.getTotalDataSum(!0));return n&&l?l*100:l},updateDataIndexByX(t){const e=this,n=t.reduce((a,i,s)=>(a[Number(i.x)]=s,a),{});e.data.targets.forEach(a=>{a.values.forEach((i,s)=>{let o=n[Number(i.x)];o===void 0&&(o=s),i.index=o})})},isBubbleZType(t){return this.isBubbleType(t)&&(De(t.value)&&("z"in t.value||"y"in t.value)||Fe(t.value)&&t.value.length>=2)},isBarRangeType(t){const e=this,{value:n}=t;return e.isBarType(t)&&Fe(n)&&n.length>=2&&n.every(a=>ue(a))},getDataById(t){var e;const n=this.cache.get(t)||this.api.data(t);return(e=n==null?void 0:n[0])!=null?e:n}};function oc(t,e=!1){const n=this,{api:a}=n;e&&n.api.flush(!0),t==null||t.call(a)}var Pv={load(t,e){const n=this,{axis:a,data:i,org:s,scale:o}=n,{append:l}=e,c={domain:null,currentDomain:null,x:null};let u=t;u&&(e.filter&&(u=u.filter(e.filter)),(e.type||e.types)&&u.forEach(g=>{var v;const m=((v=e.types)==null?void 0:v[g.id])||e.type;n.setTargetType(g.id,m)}),i.targets.forEach(g=>{for(let v=0;v<u.length;v++)if(g.id===u[v].id){g.values=l?g.values.concat(u[v].values):u[v].values,u.splice(v,1);break}}),i.targets=i.targets.concat(u)),n.updateTargets(i.targets),o.zoom&&(c.x=a.isCategorized()?o.x.orgScale():(s.xScale||o.x).copy(),c.domain=n.getXDomain(i.targets),c.x.domain(c.domain),c.currentDomain=n.zoom.getDomain(),n.withinRange(c.currentDomain,void 0,c.domain)||(o.x.domain(c.domain),o.zoom=null,n.$el.eventRect.property("__zoom",null))),n.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0}),o.zoom&&(s.xDomain=c.domain,s.xScale=c.x,a.isCategorized()&&(c.currentDomain=n.getZoomDomainValue(c.currentDomain),s.xDomain=n.getZoomDomainValue(s.xDomain),s.xScale=c.x.domain(s.xDomain)),n.updateCurrentZoomTransform(c.x,c.currentDomain)),n.updateTypesElements(),oc.call(n,e.done,e.resizeAfter)},loadFromArgs(t){const e=this;e.config&&(e.cache.reset(),e.convertData(t,n=>{const a=t.data||n;t.append&&(a.__append__=!0),a&&e.load(e.convertDataToTargets(a),t)}))},unload(t,e){var n;const a=this,{state:i,$el:s,$T:o}=a,l=!!((n=a.hasLegendDefsPoint)!=null&&n.call(a));let c=e,u=t;if(a.cache.reset(),c||(c=()=>{}),u=u.filter(v=>a.hasTarget(a.data.targets,v)),!u||u.length===0){c();return}const g=s.svg.selectAll(u.map(v=>a.selectorTarget(v)));o(g).style("opacity","0").remove().call($i,c),u.forEach(v=>{var m;const S=a.getTargetSelectorSuffix(v);i.withoutFadeIn[v]=!1,s.legend&&s.legend.selectAll(`.${Xe.legendItem}${S}`).remove(),a.data.targets=a.data.targets.filter(I=>I.id!==v),l&&((m=s.defs)==null||m.select(`#${a.getDefsPointId(S)}`).remove())}),i.hasFunnel&&a.updateFunnel(a.data.targets),i.hasTreemap&&a.updateTargetsForTreemap(a.data.targets),a.updateTypesElements()}},Ei=t=>()=>t;function Gs(t,{sourceEvent:e,subject:n,target:a,identifier:i,active:s,x:o,y:l,dx:c,dy:u,dispatch:g}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:a,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:g}})}Gs.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function wv(t){return!t.ctrlKey&&!t.button}function Mv(){return this.parentNode}function Lv(t,e){return e==null?{x:t.x,y:t.y}:e}function Dv(){return navigator.maxTouchPoints||"ontouchstart"in this}function lc(){var t=wv,e=Mv,n=Lv,a=Dv,i={},s=ni("start","drag","end"),o=0,l,c,u,g,v=0;function m(G){G.on("mousedown.drag",S).filter(a).on("touchstart.drag",M).on("touchmove.drag",P,Wd).on("touchend.drag touchcancel.drag",X).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function S(G,k){if(!(g||!t.call(this,G,k))){var H=W(this,e.call(this,G,k),G,k,"mouse");H&&(st(G.view).on("mousemove.drag",I,Ta).on("mouseup.drag",N,Ta),ls(G.view),os(G),u=!1,l=G.clientX,c=G.clientY,H("start",G))}}function I(G){if(Hr(G),!u){var k=G.clientX-l,H=G.clientY-c;u=k*k+H*H>v}i.mouse("drag",G)}function N(G){st(G.view).on("mousemove.drag mouseup.drag",null),cs(G.view,u),Hr(G),i.mouse("end",G)}function M(G,k){if(t.call(this,G,k)){var H=G.changedTouches,at=e.call(this,G,k),mt=H.length,At,St;for(At=0;At<mt;++At)(St=W(this,at,G,k,H[At].identifier,H[At]))&&(os(G),St("start",G,H[At]))}}function P(G){var k=G.changedTouches,H=k.length,at,mt;for(at=0;at<H;++at)(mt=i[k[at].identifier])&&(Hr(G),mt("drag",G,k[at]))}function X(G){var k=G.changedTouches,H=k.length,at,mt;for(g&&clearTimeout(g),g=setTimeout(function(){g=null},500),at=0;at<H;++at)(mt=i[k[at].identifier])&&(os(G),mt("end",G,k[at]))}function W(G,k,H,at,mt,At){var St=s.copy(),Tt=Un(At||H,k),Gt,xt,Q;if((Q=n.call(G,new Gs("beforestart",{sourceEvent:H,target:m,identifier:mt,active:o,x:Tt[0],y:Tt[1],dx:0,dy:0,dispatch:St}),at))!=null)return Gt=Q.x-Tt[0]||0,xt=Q.y-Tt[1]||0,function Ct(ht,It,Yt){var Xt=Tt,Zt;switch(ht){case"start":i[mt]=Ct,Zt=o++;break;case"end":delete i[mt],--o;case"drag":Tt=Un(Yt||It,k),Zt=o;break}St.call(ht,G,new Gs(ht,{sourceEvent:It,subject:Q,target:m,identifier:mt,active:Zt,x:Tt[0]+Gt,y:Tt[1]+xt,dx:Tt[0]-Xt[0],dy:Tt[1]-Xt[1],dispatch:St}),at)}}return m.filter=function(G){return arguments.length?(t=typeof G=="function"?G:Ei(!!G),m):t},m.container=function(G){return arguments.length?(e=typeof G=="function"?G:Ei(G),m):e},m.subject=function(G){return arguments.length?(n=typeof G=="function"?G:Ei(G),m):n},m.touchable=function(G){return arguments.length?(a=typeof G=="function"?G:Ei(!!G),m):a},m.on=function(){var G=s.on.apply(s,arguments);return G===s?m:G},m.clickDistance=function(G){return arguments.length?(v=(G=+G)*G,m):Math.sqrt(v)},m}var Nv={setExpand(t,e,n){const a=this,{config:i,$el:{circle:s}}=a;s&&i.point_focus_expand_enabled&&a.expandCircles(t,e,n),a.expandBarTypeShapes(!0,t,e,n)},expandBarTypeShapes(t=!0,e,n,a){const i=this;["bar","candlestick"].filter(s=>i.$el[s]).forEach(s=>{a&&i.$el[s].classed(Se.EXPANDED,!1),i.getShapeByIndex(s,e,n).classed(Se.EXPANDED,t)})},setOverOut(t,e){const n=this,{config:a,state:{hasFunnel:i,hasRadar:s,hasTreemap:o},$el:{main:l}}=n,c=De(e);if(c||e!==-1){const u=a[t?"data_onover":"data_onout"].bind(n.api);if(a.color_onover&&n.setOverColor(t,e,c),c){const g=n.getTargetSelectorSuffix(e.id),v=i||o?`${Se.target+g} .${tn.shape}`:Be.arc+g;u(e,l.select(`.${v}`).node())}else if(a.tooltip_grouped)t&&(s&&n.isPointFocusOnly()?n.showCircleFocus(n.getAllValuesOnIndex(e,!0)):n.setExpand(e,null,!0)),!n.isMultipleX()&&l.selectAll(`.${tn.shape}-${e}`).each(function(g){u(g,this)});else{const g=n.cache.get(Cn.setOverOut)||[],v=l.selectAll(`.${tn.shape}-${e}`).filter(function(S){return n.isWithinShape(this,S)}),m=v.filter(function(){return g.every(S=>S!==this)});if(!t||v.empty()||g.length===m.size()&&m.nodes().every((S,I)=>S!==g[I]))for(;g.length;){const S=g.pop();a.data_onout.bind(n.api)(st(S).datum(),S)}m.each(function(){t&&(u(st(this).datum(),this),g.push(this))}),n.cache.add(Cn.setOverOut,g)}}},callOverOutForTouch(t){const e=this,n=e.cache.get(Cn.callOverOutForTouch);(De(t)&&n?t.id!==n.id:t!==n)&&((n||ue(n))&&e.setOverOut(!1,n),(t||ue(t))&&e.setOverOut(!0,t),e.cache.add(Cn.callOverOutForTouch,t))},getDraggableSelection(){const t=this,{config:e,state:n}=t;return e.interaction_enabled&&e.data_selection_draggable&&t.drag?lc().on("drag",function(a){n.event=a,t.drag(zn(a,this))}).on("start",function(a){n.event=a,t.dragstart(zn(a,this))}).on("end",a=>{n.event=a,t.dragend()}):()=>{}},dispatchEvent(t,e,n){var a,i;const s=this,{config:o,state:{eventReceiver:l,hasAxis:c,hasFunnel:u,hasRadar:g,hasTreemap:v},$el:{eventRect:m,funnel:S,radar:I,treemap:N}}=s;let M=(i=(u||v)&&l.rect||g&&I.axes.select(`.${on.axis}-${e} text`)||m||((a=s.getArcElementByIdOrIndex)==null?void 0:a.call(s,e)))==null?void 0:i.node();if(M){const P=s.isMultipleX(),X=o.axis_rotated;let{width:W,left:G,top:k}=M.getBoundingClientRect();if(c&&!g&&!P){const At=l.coords[e];At?(W=At.w,G+=At.x,k+=At.y):(W=0,G=0,k=0)}const H=G+(n?n[0]:0)+(P||X?0:W/2),at=k+(n?n[1]:0)+(X?4:0),mt={screenX:H,screenY:at,clientX:H,clientY:at,bubbles:g};(u||v)&&(M=(S!=null?S:N).node()),_g[/^(mouse|click)/.test(t)?"mouse":"touch"](M,t,mt)}},setDragStatus(t){this.state.dragging=t},unbindZoomEvent(){const t=this,{$el:{eventRect:e,zoomResetBtn:n}}=t;e==null||e.on(".zoom wheel.zoom .drag",null),n==null||n.on("click",null).style("display","none")},unbindAllEvents(){var t;const e=this,{$el:{arcs:n,eventRect:a,legend:i,region:s,svg:o,treemap:l},brush:c}=e,u=["wheel","click","mouseover","mousemove","mouseout","touchstart","touchmove","touchend","touchstart.eventRect","touchmove.eventRect","touchend.eventRect",".brush",".drag",".zoom","wheel.zoom","dblclick.zoom"].join(" ");[o,a,s==null?void 0:s.list,c==null?void 0:c.getSelection(),n==null?void 0:n.selectAll("path"),i==null?void 0:i.selectAll("g"),l].forEach(g=>g==null?void 0:g.on(u,null)),(t=e.unbindZoomEvent)==null||t.call(e)}},Fv={categoryName(t){var e;const{axis_x_categories:n}=this.config;return(e=n==null?void 0:n[t])!=null?e:t}},Bv={generateClass(t,e){return` ${t} ${t+this.getTargetSelectorSuffix(e)}`},getClass(t,e){const n=/s$/.test(t),a=/^(area|arc|line|funnel|treemap)s?$/.test(t),i=n?"id":"index";return s=>{const o=s.data||s;return((e?this.generateClass(Ne[n?"shapes":"shape"],o[i]):"")+this.generateClass(Ne[t],o[a?"id":i])).trim()}},getChartClass(t){return e=>Ne[`chart${t}`]+this.classTarget((e.data?e.data:e).id)},generateExtraLineClass(){const e=this.config.line_classes||[],n=[];return function(a){var i;const s=a.id||((i=a.data)==null?void 0:i.id)||a;return n.indexOf(s)<0&&n.push(s),e[n.indexOf(s)%e.length]}},classRegion(t,e){return`${this.generateClass(Ne.region,e)} ${"class"in t?t.class:""}`},classTarget(t){const e=this.config.data_classes[t];let n="";return e&&(n=` ${Ne.target}-${e}`),this.generateClass(Ne.target,t)+n},classFocus(t){return this.classFocused(t)+this.classDefocused(t)},classFocused(t){return` ${this.state.focusedTargetIds.indexOf(t.id)>=0?Ne.focused:""}`},classDefocused(t){return` ${this.state.defocusedTargetIds.indexOf(t.id)>=0?Ne.defocused:""}`},getTargetSelectorSuffix(t){return(t||t===0?`-${t}`:"").replace(/[\x00-\x20\x7F-\xA0\s?!@#$%^&*()_=+,.<>'":;\[\]\/|~`{}\\]/g,"-")},selectorTarget(t,e="",n=""){const a=this.getTargetSelectorSuffix(t);return`${e}.${Ne.target+a} ${n}, ${e}.${Ne.circles+a} ${n}`},selectorTargets(t,e){const n=t||[];return n.length?n.map(a=>this.selectorTarget(a,e)):null},selectorLegend(t){return`.${Ne.legendItem+this.getTargetSelectorSuffix(t)}`},selectorLegends(t){return t!=null&&t.length?t.map(e=>this.selectorLegend(e)):null}};class cc extends Map{constructor(e,n=dc){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[a,i]of e)this.set(a,i)}get(e){return super.get(Xs(this,e))}has(e){return super.has(Xs(this,e))}set(e,n){return super.set(uc(this,e),n)}delete(e){return super.delete(fc(this,e))}}class i1 extends Set{constructor(e,n=dc){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const a of e)this.add(a)}has(e){return super.has(Xs(this,e))}add(e){return super.add(uc(this,e))}delete(e){return super.delete(fc(this,e))}}function Xs({_intern:t,_key:e},n){const a=e(n);return t.has(a)?t.get(a):n}function uc({_intern:t,_key:e},n){const a=e(n);return t.has(a)?t.get(a):(t.set(a,n),n)}function fc({_intern:t,_key:e},n){const a=e(n);return t.has(a)&&(n=t.get(a),t.delete(a)),n}function dc(t){return t!==null&&typeof t=="object"?t.valueOf():t}function ta(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function s1(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const hc=Symbol("implicit");function gc(){var t=new cc,e=[],n=[],a=hc;function i(s){let o=t.get(s);if(o===void 0){if(a!==hc)return a;t.set(s,o=e.push(s)-1)}return n[o%n.length]}return i.domain=function(s){if(!arguments.length)return e.slice();e=[],t=new cc;for(const o of s)t.has(o)||t.set(o,e.push(o)-1);return i},i.range=function(s){return arguments.length?(n=Array.from(s),i):n.slice()},i.unknown=function(s){return arguments.length?(a=s,i):a},i.copy=function(){return gc(e,n).unknown(a)},ta.apply(i,arguments),i}const Uv=(t,e,n)=>{const a=st(t.cloneNode(!0));return a.attr("id",n).insert("rect",":first-child").attr("width",a.attr("width")).attr("height",a.attr("height")).style("fill",e),{id:n,node:a.node()}};function zv(t){const e=Cn.colorPattern,{body:n}=fn;let a=n[e];if(!a){const i=";",s=t.classed(is.colorPattern,!0).style("background-image");t.classed(is.colorPattern,!1),s.indexOf(i)>-1&&(a=s.replace(/url[^#]*|["'()]|(\s|%20)/g,"").split(i).map(o=>o.trim().replace(/[\"'\s]/g,"")).filter(Boolean),n[e]=a)}return a}const jv=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"];var Gv={generateColor(){const t=this,{$el:e,config:n}=t,a=n.data_colors,i=n.data_color,s=[];let o=nn(n.color_pattern)?n.color_pattern:gc(zv(e.chart)||jv).range();const l=o;if(he(n.color_tiles)){const c=n.color_tiles.bind(t.api)(),u=o.map((g,v)=>{const m=g.replace(/[#\(\)\s,]/g,""),S=`${t.state.datetimeId}-pattern-${m}-${v}`;return Uv(c[v%c.length],g,S)});o=u.map(g=>`url(#${g.id})`),t.patterns=u}return function(c){var u;const g=c.id||((u=c.data)==null?void 0:u.id)||c,v=t.isTypeOf(g,["line","spline","step"])||!n.data_types[g];let m;return he(a[g])?m=a[g].bind(t.api)(c):a[g]?m=a[g]:(s.indexOf(g)<0&&s.push(g),m=v?l[s.indexOf(g)%l.length]:o[s.indexOf(g)%o.length],a[g]=m),he(i)?i.bind(t.api)(m,c):m}},generateLevelColor(){const t=this,{config:e}=t,n=e.color_pattern,a=e.color_threshold,i=a.unit==="value",s=a.max||100,o=a.values&&a.values.length?a.values:[];return nn(a)?function(l){const c=i?l:l*100/s;let u=n[n.length-1];for(let g=0,v=o.length;g<v;g++)if(c<=o[g]){u=n[g];break}return u}:null},generateTextBGColorFilter(t,e={x:0,y:0,width:1,height:1}){const n=this,{$el:a,state:i}=n;if(t){let s=[];ze(t)?s.push(""):De(t)&&(s=Object.keys(t)),s.forEach(o=>{const l=`${i.datetimeId}-labels-bg${n.getTargetSelectorSuffix(o)}${ze(t)?n.getTargetSelectorSuffix(t):""}`;a.defs.append("filter").attr("x",e.x).attr("y",e.y).attr("width",e.width).attr("height",e.height).attr("id",l).html(`<feFlood flood-color="${o===""?t:t[o]}" /> + <feComposite in="SourceGraphic" />`)})}},getGradienColortUrl(t){return`url(#${this.state.datetimeId}-gradient${this.getTargetSelectorSuffix(t)})`},updateLinearGradient(){const t=this,{config:e,data:{targets:n},state:{datetimeId:a},$el:{defs:i}}=t;n.forEach(s=>{const o=`${a}-gradient${t.getTargetSelectorSuffix(s.id)}`,l=t.hasPointType()&&e.point_radialGradient,c=t.isAreaType(s)&&"area"||t.isBarType(s)&&"bar";if((l||c)&&i.select(`#${o}`).empty()){const u=t.color(s),g={defs:null,stops:[]};if(l){const{cx:v=.3,cy:m=.3,r:S=.7,stops:I=[[.1,u,0],[.9,u,1]]}=l;g.stops=I,g.defs=i.append("radialGradient").attr("id",`${o}`).attr("cx",v).attr("cy",m).attr("r",S)}else{const v=e.axis_rotated,{x:m=v?[1,0]:[0,0],y:S=v?[0,0]:[0,1],stops:I=[[0,u,1],[1,u,0]]}=e[`${c}_linearGradient`];g.stops=I,g.defs=i.append("linearGradient").attr("id",`${o}`).attr("x1",m[0]).attr("x2",m[1]).attr("y1",S[0]).attr("y2",S[1])}g.stops.forEach(v=>{const[m,S,I]=v,N=he(S)?S.bind(t.api)(s.id):S;g.defs&&g.defs.append("stop").attr("offset",m).attr("stop-color",N||u).attr("stop-opacity",I)})}})},setOverColor(t,e){const n=this,{config:a,$el:{main:i}}=n,s=a.color_onover;let o=t?s:n.color;De(o)?o=({id:l})=>l in s?s[l]:n.color(l):ze(o)?o=()=>s:he(s)&&(o=o.bind(n.api)),i.selectAll(De(e)?`.${Be.arc}${n.getTargetSelectorSuffix(e.id)}`:`.${tn.shape}-${e}`).style("fill",o)}},Xv={getYDomainMinMax(t,e){const n=this,{axis:a,config:i}=n,s=e==="min",o=i.data_groups,l=n.mapToIds(t),c=n.getValuesAsIdKeyed(t);if(o.length>0){const u=n[`has${s?"Negative":"Positive"}ValueInTargets`](t);o.forEach(g=>{const v=g.filter(m=>l.indexOf(m)>=0);if(v.length){const m=v[0],S=a.getId(m);u&&c[m]&&(c[m]=c[m].map(I=>(s?I<0:I>0)?I:0)),v.filter((I,N)=>N>0).forEach(I=>{if(c[I]){const N=a.getId(I);c[I].forEach((M,P)=>{const X=+M,W=s?X>0:X<0;N===S&&!(u&&W)&&(c[m][P]+=X)})}})}})}return Kn(e,Object.keys(c).map(u=>Kn(e,c[u])))},isHiddenTargetWithYDomain(t){const e=this;return e.state.hiddenTargetIds.some(n=>e.axis.getId(n)===t)},getYDomain(t,e,n){const a=this,{axis:i,config:s,scale:o}=a,l=`axis_${e}`;if(a.isStackNormalized())return[0,100];const c=(o==null?void 0:o[e])&&o[e].type==="log",u=t.filter(St=>i.getId(St.id)===e),g=n?a.filterByXDomain(u,n):u;if(g.length===0)return a.isHiddenTargetWithYDomain(e)?o[e].domain():e==="y2"?o.y.domain():a.getYDomain(t,"y2",n);const v=s[`${l}_min`],m=s[`${l}_max`],S=s[`${l}_center`],I=s[`${l}_inverted`],N=a.hasDataLabel()&&s.axis_rotated,M=a.hasDataLabel()&&!s.axis_rotated;let P=a.getYDomainMinMax(g,"min"),X=a.getYDomainMinMax(g,"max"),W=[fe.BAR,fe.BUBBLE,fe.SCATTER,...pr.Line].some(St=>{const Tt=St.indexOf("area")>-1?"area":St;return a.hasType(St,g,!0)&&s[`${Tt}_zerobased`]});P=Ie(v)?v:Ie(m)?P<=m?P:m-10:P,X=Ie(m)?m:Ie(v)?v<=X?X:v+10:X,isNaN(P)&&(P=0),isNaN(X)&&(X=P),P===X&&(P<0?X=0:P=0);const G=P>=0&&X>=0,k=P<=0&&X<=0;(Ie(v)&&G||Ie(m)&&k)&&(W=!1),W&&(G&&(P=0),k&&(X=0));const H=Math.abs(X-P);let at={top:H*.1,bottom:H*.1};if(Ve(S)){const St=Math.max(Math.abs(P),Math.abs(X));X=S+St,P=S-St}if(N){const St=Ir(o.y.range()),Tt=a.getDataLabelLength(P,X,"width").map(Gt=>Gt/St);["bottom","top"].forEach((Gt,xt)=>{at[Gt]+=H*(Tt[xt]/(1-Tt[0]-Tt[1]))})}else if(M){const St=a.getDataLabelLength(P,X,"height");["bottom","top"].forEach((Tt,Gt)=>{at[Tt]+=a.convertPixelToScale("y",St[Gt],H)})}at=a.getResettedPadding(at);const mt=s[`${l}_padding`];nn(mt)&&["bottom","top"].forEach(St=>{at[St]=i.getPadding(mt,St,at[St],H)}),W&&(G&&(at.bottom=P),k&&(at.top=-X));const At=c?[P,X].map(St=>St<0?0:St):[P-at.bottom,X+at.top];return I?At.reverse():At},getXDomainMinMax(t,e){var n;const a=this,i=a.config[`axis_x_${e}`],s=Kn(e,t.map(l=>Kn(e,l.values.map(c=>c.x))));let o=De(i)?i.value:i;return o=Ve(o)&&((n=a.axis)!=null&&n.isTimeSeries())?Dn.bind(this)(o):o,De(i)&&i.fit&&(e==="min"&&o<s||e==="max"&&o>s)&&(o=void 0),Ve(o)?o:s},getXDomainPadding(t,e){const n=this,{axis:a,config:i}=n,s=i.axis_x_padding,o=a.isTimeSeries()&&e,l=Ir(t);let c;if(a.isCategorized()||o)c=0;else if(n.hasType("bar")){const v=n.getMaxDataCount();c=v>1?l/(v-1)/2:.5}else c=n.getResettedPadding(l*.01);let{left:u=c,right:g=c}=ue(s)?{left:s,right:s}:s;if(s.unit==="px"){const v=Math.abs(l+l*.2);u=a.getPadding(s,"left",c,v),g=a.getPadding(s,"right",c,v)}else{const v=l+u+g;if(o&&v){const m=l/e/v;u=u/v/m,g=g/v/m}}return{left:u,right:g}},getXDomain(t){const e=this,{axis:n,config:a,scale:{x:i}}=e,s=a.axis_x_inverted,o=[e.getXDomainMinMax(t,"min"),e.getXDomainMinMax(t,"max")];let[l=0,c=0]=o;if(i.type!=="log"){const u=n.isCategorized(),g=n.isTimeSeries(),v=e.getXDomainPadding(o);let[m,S]=o;m-S===0&&!u&&(g?(m=new Date(m.getTime()*.5),S=new Date(S.getTime()*1.5)):(m=m===0?1:m*.5,S=S===0?-1:S*1.5)),(m||m===0)&&(l=g?new Date(m.getTime()-v.left):m-v.left),(S||S===0)&&(c=g?new Date(S.getTime()+v.right):S+v.right)}return s?[c,l]:[l,c]},updateXDomain(t,e,n,a,i){var s;const o=this,{config:l,org:c,scale:{x:u,subX:g}}=o,v=l.zoom_enabled;if(n&&(u.domain(i||qr(o.getXDomain(t),!l.axis_x_inverted)),c.xDomain=u.domain(),g.domain(u.domain()),(s=o.brush)==null||s.scale(g)),e){const m=i||!o.brush||Hl(o)?c.xDomain:Yl(o).map(g.invert);u.domain(m)}return(n||e)&&v&&o.zoom.updateScaleExtent(),a&&u.domain(o.trimXDomain(u.orgDomain())),u.domain()},trimXDomain(t){const e=this,n=e.config.axis_x_inverted,a=e.getZoomDomain(),[i,s]=a;return(n?t[0]>=i:t[0]<=i)&&(t[1]=+t[1]+(i-t[0]),t[0]=i),(n?t[1]<=s:t[1]>=s)&&(t[0]=+t[0]-(t[1]-s),t[1]=s),t},getZoomDomain(t="zoom",e=!1){const n=this,{config:a,scale:i,org:s}=n;let[o,l]=e&&i[t]?i[t].domain():s.xDomain;return t==="zoom"&&(Ve(a.zoom_x_min)&&(o=Kn("min",[o,a.zoom_x_min])),Ve(a.zoom_x_max)&&(l=Kn("max",[l,a.zoom_x_max]))),[o,l]},getZoomDomainValue(t){const e=this,{config:n,axis:a}=e;if(a.isCategorized()&&Array.isArray(t)){const i=n.axis_x_inverted;return t.map((o,l)=>Number(o)+(l===0?+i:+!i))}return t},convertPixelToScale(t,e,n){const a=this,{config:i,state:s}=a,o=i.axis_rotated;let l;return t==="x"?l=o?"height":"width":l=o?"width":"height",n*(e/s[l])},withinRange(t,e=[0,0],n){const i=this.config.axis_x_inverted,[s,o]=n;if(Array.isArray(t)){const l=[...t];if(i&&l.reverse(),l[0]<l[1])return t.every((c,u)=>(u===0?i?+c<=s:+c>=s:i?+c>=o:+c<=o)&&!t.every((g,v)=>g===e[v]))}return!1}};function vc(t,e,n){const{config:a}=t,i=`axis_${e}_tick_format`;return(a[i]?a[i]:t.defaultValueFormat).call(t.api,n)}var Vv={yFormat(t){return vc(this,"y",t)},y2Format(t){return vc(this,"y2",t)},getDefaultValueFormat(){const t=this,{defaultArcValueFormat:e,yFormat:n,y2Format:a}=t,i=t.hasArcType(null,["gauge","polar","radar"]);return function(s,o,l){return(i?e:t.axis&&t.axis.getId(l)==="y2"?a:n).call(t,s,o)}},defaultValueFormat(t){return Fe(t)?t.join("~"):Ie(t)?+t:""},defaultArcValueFormat(t,e){return`${(e*100).toFixed(1)}%`},defaultPolarValueFormat(t){return`${t}`},dataLabelFormat(t){const e=this,n=e.config.data_labels,a=s=>{const o="~";let l=s;return Fe(s)?l=s.join(o):De(s)&&(l=Object.values(s).join(o)),l};let i=a;return he(n.format)?i=n.format:Jn(n.format)&&(n.format[t]?i=n.format[t]===!0?a:n.format[t]:i=()=>""),i.bind(e.api)}};function Ri(t){const e=this,n=e.getDataById(t);return e.levelColor?e.levelColor(n.values[0].value):e.color(n)}function Vs(t,e=!0){var n;const{config:a}=this;let i=(n=a.data_names[t])!=null?n:t;return e&&he(a.legend_format)&&(i=a.legend_format(i)),i}var Yv={initLegend(){const t=this,{config:e,$el:n}=t;t.legendItemTextBox={},t.state.legendHasRendered=!1,e.legend_show?(e.legend_contents_bindto||(n.legend=t.$el.svg.append("g").classed(Xe.legend,!0).attr("transform",t.getTranslate("legend"))),t.updateLegend()):t.state.hiddenLegendIds=t.mapToIds(t.data.targets)},updateLegend(t,e,n){var a;const i=this,{config:s,state:o,scale:l,$el:c}=i,u=e||{withTransform:!1,withTransitionForTransform:!1,withTransition:!1};u.withTransition=vr(u,"withTransition",!0),u.withTransitionForTransform=vr(u,"withTransitionForTransform",!0),s.legend_contents_bindto&&s.legend_contents_template?i.updateLegendTemplate():o.hasTreemap||i.updateLegendElement(t||i.mapToIds(i.data.targets),u,n),(a=c.legend)==null||a.selectAll(`.${Xe.legendItem}`).classed(Xe.legendItemHidden,function(g){const v=!i.isTargetToShow(g);return v&&(this.style.opacity=null),v}),i.updateScales(!1,!l.zoom),i.updateSvgSize(),i.transformAll(u.withTransitionForTransform,n),o.legendHasRendered=!0},updateLegendTemplate(){const t=this,{config:e,$el:n}=t,a=st(e.legend_contents_bindto),i=e.legend_contents_template;if(!a.empty()){const s=t.mapToIds(t.data.targets),o=[];let l="";s.forEach(u=>{const g=he(i)?i.bind(t.api)(u,t.color(u),t.api.data(u)[0].values):bi(i,{COLOR:t.color(u),TITLE:u});g&&(o.push(u),l+=g)});const c=a.html(l).selectAll(function(){return this.childNodes}).data(o);t.setLegendItem(c),n.legend=a}},updateSizeForLegend(t){const e=this,{config:n,state:{isLegendTop:a,isLegendLeft:i,isLegendRight:s,isLegendInset:o,current:l}}=e,{width:c,height:u}=t,g={top:a?e.getCurrentPaddingByDirection("top")+n.legend_inset_y+5.5:l.height-u-e.getCurrentPaddingByDirection("bottom")-n.legend_inset_y,left:i?e.getCurrentPaddingByDirection("left")+n.legend_inset_x+.5:l.width-c-e.getCurrentPaddingByDirection("right")-n.legend_inset_x+.5};e.state.margin3={top:s?0:o?g.top:l.height-u,right:NaN,bottom:0,left:s?l.width-c:o?g.left:0}},transformLegend(t){const e=this,{$el:{legend:n},$T:a}=e;a(n,t).attr("transform",e.getTranslate("legend"))},updateLegendStep(t){this.state.legendStep=t},updateLegendItemWidth(t){this.state.legendItemWidth=t},updateLegendItemHeight(t){this.state.legendItemHeight=t},updateLegendItemColor(t,e){const{legend:n}=this.$el;n&&n.select(`.${Xe.legendItem}-${t} line`).style("stroke",e)},getLegendWidth(){const t=this,{current:{width:e},isLegendRight:n,isLegendInset:a,legendItemWidth:i,legendStep:s}=t.state;return t.config.legend_show?n||a?i*(s+1):e:0},getLegendHeight(){var t;const e=this,{current:n,isLegendRight:a,legendItemHeight:i,legendStep:s}=e.state,o=((t=e.config.padding)==null?void 0:t.mode)==="fit";return e.config.legend_show?a?n.height:(o?10:Math.max(20,i))*(s+1):0},opacityForUnfocusedLegend(t){return t.classed(Xe.legendItemHidden)?null:"0.3"},toggleFocusLegend(t,e){const n=this,{$el:{legend:a},$T:i}=n,s=n.mapToTargetIds(t);a&&i(a.selectAll(`.${Xe.legendItem}`).filter(o=>s.indexOf(o)>=0).classed(We.legendItemFocused,e)).style("opacity",function(){return e?null:n.opacityForUnfocusedLegend.call(n,st(this))})},revertLegend(){const t=this,{$el:{legend:e},$T:n}=t;e&&n(e.selectAll(`.${Xe.legendItem}`).classed(We.legendItemFocused,!1)).style("opacity",null)},showLegend(t){const e=this,{config:n,$el:a,$T:i}=e;n.legend_show||(n.legend_show=!0,a.legend?a.legend.style("visibility",null):e.initLegend(),!e.state.legendHasRendered&&e.updateLegend()),e.removeHiddenLegendIds(t),i(a.legend.selectAll(e.selectorLegends(t)).style("visibility",null)).style("opacity",null)},hideLegend(t){const e=this,{config:n,$el:{legend:a}}=e;n.legend_show&&Wn(t)&&(n.legend_show=!1,a.style("visibility","hidden")),e.addHiddenLegendIds(t),a.selectAll(e.selectorLegends(t)).style("opacity","0").style("visibility","hidden")},getLegendItemTextBox(t,e){const n=this,{cache:a,state:i}=n;let s;const o=Cn.legendItemTextBox;return t&&(s=!i.redrawing&&a.get(o)||{},s[t]||(s[t]=n.getTextRect(e,Xe.legendItem),a.add(o,s)),s=s[t]),s},setLegendItem(t){const e=this,{$el:n,api:a,config:i,state:s}=e,o=s.inputType==="touch",l=e.hasType("gauge"),c=i.boost_useCssRule,u=i.legend_item_interaction;t.attr("class",function(g){const v=st(this);return(!v.empty()&&v.attr("class")||"")+e.generateClass(Xe.legendItem,g)}).style("visibility",g=>e.isLegendToShow(g)?null:"hidden"),i.interaction_enabled&&(c&&[[`.${Xe.legendItem}`,"cursor:pointer"],[`.${Xe.legendItem} text`,"pointer-events:none"],[`.${Xe.legendItemPoint} text`,"pointer-events:none"],[`.${Xe.legendItemTile}`,"pointer-events:none"],[`.${Xe.legendItemEvent}`,"fill-opacity:0"]].forEach(g=>{const[v,m]=g;e.setCssRule(!1,v,[m])(n.legend)}),t.on(u.dblclick?"dblclick":"click",u||he(i.legend_item_onclick)?function(g,v){if(!Ze(i.legend_item_onclick,a,v)){const{altKey:m,target:S,type:I}=g;I==="dblclick"||m?s.hiddenTargetIds.length&&S.parentNode.getAttribute("class").indexOf(Xe.legendItemHidden)===-1?a.show():(a.hide(),a.show(v)):(a.toggle(v),st(this).classed(We.legendItemFocused,!1))}o&&e.hideTooltip()}:null),!o&&t.on("mouseout",u||he(i.legend_item_onout)?function(g,v){Ze(i.legend_item_onout,a,v)||(st(this).classed(We.legendItemFocused,!1),l&&e.undoMarkOverlapped(e,`.${Ln.gaugeValue}`),e.api.revert())}:null).on("mouseover",u||he(i.legend_item_onover)?function(g,v){Ze(i.legend_item_onover,a,v)||(st(this).classed(We.legendItemFocused,!0),l&&e.markOverlapped(v,e,`.${Ln.gaugeValue}`),!s.transiting&&e.isTargetToShow(v)&&a.focus(v))}:null),!t.empty()&&t.on("click mouseout mouseover")&&t.style("cursor",e.getStylePropValue("pointer")))},updateLegendElement(t,e){const n=this,{config:a,state:i,$el:{legend:s},$T:o}=n,c=a.legend_item_tile_type!=="circle",u=a.legend_item_tile_r,g={width:c?a.legend_item_tile_width:u*2,height:c?a.legend_item_tile_height:u*2},v={padding:{top:4,right:10},max:{width:0,height:0},posMin:10,step:0,tileWidth:g.width+5,totalLength:0},m={offsets:{},widths:{},heights:{},margins:[0],steps:{}};let S,I,N;const M=t.filter(H=>!Ve(a.data_names[H])||a.data_names[H]!==null),P=e.withTransition,X=n.getUpdateLegendPositions(M,v,m);i.isLegendInset&&(v.step=a.legend_inset_step?a.legend_inset_step:M.length,n.updateLegendStep(v.step)),i.isLegendRight?(S=H=>v.max.width*m.steps[H],I=H=>m.margins[m.steps[H]]+m.offsets[H]):i.isLegendInset?(S=H=>v.max.width*m.steps[H]+10,I=H=>m.margins[m.steps[H]]+m.offsets[H]):(S=H=>m.margins[m.steps[H]]+m.offsets[H],I=H=>v.max.height*m.steps[H]);const W={xText:(H,at)=>S(H,at)+4+g.width,xRect:(H,at)=>S(H,at),x1Tile:(H,at)=>S(H,at)-2,x2Tile:(H,at)=>S(H,at)-2+g.width,yText:(H,at)=>I(H,at)+9,yRect:(H,at)=>I(H,at)-5,yTile:(H,at)=>I(H,at)+4};n.generateLegendItem(M,g,X,W),N=s.select(`.${Xe.legendBackground} rect`),i.isLegendInset&&v.max.width>0&&N.size()===0&&(N=s.insert("g",`.${Xe.legendItem}`).attr("class",Xe.legendBackground).append("rect")),a.legend_tooltip&&s.selectAll("title").data(M).text(H=>Vs.bind(n)(H,!1));const G=s.selectAll("text").data(M).text(H=>Vs.bind(n)(H)).each(function(H,at){X(this,H,at)});o(G,P).attr("x",W.xText).attr("y",W.yText);const k=s.selectAll(`rect.${Xe.legendItemEvent}`).data(M);o(k,P).attr("width",H=>m.widths[H]).attr("height",H=>m.heights[H]).attr("x",W.xRect).attr("y",W.yRect),n.updateLegendItemPos(M,P,W),N&&o(N,P).attr("height",n.getLegendHeight()-12).attr("width",v.max.width*(v.step+1)+10),n.updateLegendItemWidth(v.max.width),n.updateLegendItemHeight(v.max.height),n.updateLegendStep(v.step)},getUpdateLegendPositions(t,e,n){const a=this,{config:i,state:s}=a,o=s.isLegendRight||s.isLegendInset;return function(l,c,u){const g=u===0,v=u===t.length-1,m=a.getLegendItemTextBox(c,l),S=m.width+e.tileWidth+(v&&!o?0:e.padding.right)+i.legend_padding,I=m.height+e.padding.top,N=o?I:S,M=o?a.getLegendHeight():a.getLegendWidth();let P;const X=function(G,k){k||(P=(M-e.totalLength-N)/2,P<e.posMin&&(P=(M-N)/2,e.totalLength=0,e.step++)),n.steps[G]=e.step,n.margins[e.step]=s.isLegendInset?10:P,n.offsets[G]=e.totalLength,e.totalLength+=N};if(g&&(e.totalLength=0,e.step=0,e.max.width=0,e.max.height=0),i.legend_show&&!a.isLegendToShow(c)){n.widths[c]=0,n.heights[c]=0,n.steps[c]=0,n.offsets[c]=0;return}n.widths[c]=S,n.heights[c]=I,(!e.max.width||S>=e.max.width)&&(e.max.width=S),(!e.max.height||I>=e.max.height)&&(e.max.height=I);const W=o?e.max.height:e.max.width;i.legend_equally?(Object.keys(n.widths).forEach(G=>n.widths[G]=e.max.width),Object.keys(n.heights).forEach(G=>n.heights[G]=e.max.height),P=(M-W*t.length)/2,P<e.posMin?(e.totalLength=0,e.step=0,t.forEach(G=>X(G))):X(c,!0)):X(c)}},generateLegendItem(t,e,n,a){const i=this,{config:s,state:o,$el:{legend:l}}=i,c=s.legend_usePoint,u=s.legend_item_tile_r,g=s.legend_item_tile_type,v=g!=="circle",m=o.isLegendRight||o.isLegendInset,S=-200,I=l.selectAll(`.${Xe.legendItem}`).data(t).enter().append("g");if(i.setLegendItem(I),s.legend_tooltip&&I.append("title").text(N=>N),I.append("text").text(N=>Vs.bind(i)(N)).each(function(N,M){n(this,N,M)}).style("pointer-events",i.getStylePropValue("none")).attr("x",m?a.xText:S).attr("y",m?S:a.yText),I.append("rect").attr("class",Xe.legendItemEvent).style("fill-opacity",i.getStylePropValue("0")).attr("x",m?a.xRect:S).attr("y",m?S:a.yRect),c){const N=[];I.append(M=>{const P=nn(s.point_pattern)?s.point_pattern:[s.point_type];N.indexOf(M)===-1&&N.push(M);let X=P[N.indexOf(M)%P.length];return X==="rectangle"&&(X="rect"),fn.createElementNS(ee.svg,"hasValidPointType"in i&&i.hasValidPointType(X)?X:"use")}).attr("class",Xe.legendItemPoint).style("fill",Ri.bind(i)).style("pointer-events",i.getStylePropValue("none")).attr("href",(M,P,X)=>{const G=X[P].nodeName.toLowerCase(),k=i.getTargetSelectorSuffix(M);return G==="use"?`#${o.datetimeId}-point${k}`:void 0})}else I.append(v?"line":g).attr("class",Xe.legendItemTile).style("stroke",Ri.bind(i)).style("pointer-events",i.getStylePropValue("none")).call(N=>{g==="circle"?N.attr("r",u).style("fill",Ri.bind(i)).attr("cx",m?a.x2Tile:S).attr("cy",m?S:a.yTile):v&&N.attr("stroke-width",e.height).attr("x1",m?a.x1Tile:S).attr("y1",m?S:a.yTile).attr("x2",m?a.x2Tile:S).attr("y2",m?S:a.yTile)})},updateLegendItemPos(t,e,n){const a=this,{config:i,$el:{legend:s},$T:o}=a,l=i.legend_usePoint,c=i.legend_item_tile_type,u=c!=="circle";if(l){const g=s.selectAll(`.${Xe.legendItemPoint}`).data(t);o(g,e).each(function(){const v=this.nodeName.toLowerCase(),m=i.point_r;let S="x",I="y",N=2,M=2.5,P=null,X=null,W=null;if(v==="circle"){const G=m*.2;S="cx",I="cy",P=m+G,N=m*2,M=-G}else if(v==="rect"){const G=m*2.5;X=G,W=G,M=3}st(this).attr(S,G=>n.x1Tile(G)+N).attr(I,G=>n.yTile(G)-M).attr("r",P).attr("width",X).attr("height",W)})}else{const g=s.selectAll(`.${Xe.legendItemTile}`).data(t);o(g,e).style("stroke",Ri.bind(a)).call(v=>{c==="circle"?v.attr("cx",m=>{const S=n.x2Tile(m);return S-(S-n.x1Tile(m))/2}).attr("cy",n.yTile):u&&v.attr("x1",n.x1Tile).attr("y1",n.yTile).attr("x2",n.x2Tile).attr("y2",n.yTile)})}}},Hv={redraw(t={}){var e,n,a,i;const s=this,{config:o,state:l,$el:c}=s,{main:u,treemap:g}=c;l.redrawing=!0;const v=s.filterTargetsToShow(s.data.targets),{flow:m,initializing:S}=t,I=s.getWithOption(t),N=I.Transition?o.transition_duration:0,M=I.TransitionForExit?N:0,P=I.TransitionForAxis?N:0,X=(e=s.axis)==null?void 0:e.generateTransitions(P);s.updateSizes(S),I.Legend&&o.legend_show?(t.withTransition=!!N,!g&&s.updateLegend(s.mapToIds(s.data.targets),t,X)):I.Dimension&&s.updateDimension(!0),o.data_empty_label_text&&u.select(`text.${An.text}.${Se.empty}`).attr("x",l.width/2).attr("y",l.height/2).text(o.data_empty_label_text).style("display",v.length?"none":null),l.hasAxis?(s.axis.redrawAxis(v,I,X,m,S),s.hasGrid()&&s.updateGrid(),o.regions.length&&s.updateRegion(),["bar","candlestick","line","area"].forEach(W=>{const G=In(W);(/^(line|area)$/.test(W)&&s.hasTypeOf(G)||s.hasType(W))&&s[`update${G}`](I.TransitionForExit)}),c.text&&u.selectAll(`.${ke.selectedCircles}`).filter(s.isBarType.bind(s)).selectAll("circle").remove(),o.interaction_enabled&&!m&&I.EventRect&&(s.redrawEventRect(),(n=s.bindZoomEvent)==null||n.call(s))):(c.arcs&&s.redrawArc(N,M,I.Transform),c.radar&&s.redrawRadar(),c.polar&&s.redrawPolar(),c.funnel&&s.redrawFunnel(),g&&s.updateTreemap(M)),!l.resizing&&!g&&(s.hasPointType()||l.hasRadar)?s.updateCircle():(a=s.hasLegendDefsPoint)!=null&&a.call(s)&&s.data.targets.forEach(s.point("create",this)),s.hasDataLabel()&&!s.hasArcType(null,["radar"])&&s.updateText(),(i=s.redrawTitle)==null||i.call(s),S&&s.updateTypesElements(),s.generateRedrawList(v,m,N,I.Subchart),s.updateTooltipOnRedraw(),s.callPluginHook("$redraw",t,N)},generateRedrawList(t,e,n,a){const i=this,{config:s,state:o}=i,l=i.getDrawShape();o.hasAxis&&s.subchart_show&&i.redrawSubchart(a,n,l);const c=e&&i.generateFlow({targets:t,flow:e,duration:e.duration,shape:l,xv:i.xv.bind(i)}),u=(n||c)&&Pa(),g=i.getRedrawList(l,e,c,u),v=()=>{c&&c(),o.redrawing=!1,Ze(s.onrendered,i.api)};if(v)if(u&&g.length){const m=ql();Pl().duration(n).each(()=>{g.reduce((S,I)=>S.concat(I),[]).forEach(S=>m.add(S))}).call(m,v)}else o.transiting||v();i.mapToIds(i.data.targets).forEach(m=>{o.withoutFadeIn[m]=!0})},getRedrawList(t,e,n,a){const i=this,{config:s,state:{hasAxis:o,hasRadar:l,hasTreemap:c},$el:{grid:u}}=i,{cx:g,cy:v,xForText:m,yForText:S}=t.pos,I=[];return o&&((s.grid_x_lines.length||s.grid_y_lines.length)&&I.push(i.redrawGrid(a)),s.regions.length&&I.push(i.redrawRegion(a)),Object.keys(t.type).forEach(N=>{const M=In(N),P=t.type[N];(/^(area|line)$/.test(N)&&i.hasTypeOf(M)||i.hasType(N))&&I.push(i[`redraw${M}`](P,a))}),!e&&u.main&&I.push(i.updateGridFocus())),(!i.hasArcType()||l)&&nn(s.data_labels)&&s.data_labels!==!1&&I.push(i.redrawText(m,S,e,a)),(i.hasPointType()||l)&&!i.isPointFocusOnly()&&i.redrawCircle&&I.push(i.redrawCircle(g,v,a,n)),c&&I.push(i.redrawTreemap(a)),I},updateAndRedraw(t={}){const e=this,{config:n,state:a}=e;let i;t.withTransition=vr(t,"withTransition",!0),t.withTransform=vr(t,"withTransform",!1),t.withLegend=vr(t,"withLegend",!1),t.withUpdateXDomain=!0,t.withUpdateOrgXDomain=!0,t.withTransitionForExit=!1,t.withTransitionForTransform=vr(t,"withTransitionForTransform",t.withTransition),t.withLegend&&n.legend_show||(a.hasAxis&&(i=e.axis.generateTransitions(t.withTransitionForAxis?n.transition_duration:0)),e.updateScales(),e.updateSvgSize(),e.transformAll(t.withTransitionForTransform,i)),e.redraw(t,i)}};const Wv=Math.sqrt(50),Kv=Math.sqrt(10),Zv=Math.sqrt(2);function Oi(t,e,n){const a=(e-t)/Math.max(0,n),i=Math.floor(Math.log10(a)),s=a/Math.pow(10,i),o=s>=Wv?10:s>=Kv?5:s>=Zv?2:1;let l,c,u;return i<0?(u=Math.pow(10,-i)/o,l=Math.round(t*u),c=Math.round(e*u),l/u<t&&++l,c/u>e&&--c,u=-u):(u=Math.pow(10,i)*o,l=Math.round(t/u),c=Math.round(e/u),l*u<t&&++l,c*u>e&&--c),c<l&&.5<=n&&n<2?Oi(t,e,n*2):[l,c,u]}function Ys(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];const a=e<t,[i,s,o]=a?Oi(e,t,n):Oi(t,e,n);if(!(s>=i))return[];const l=s-i+1,c=new Array(l);if(a)if(o<0)for(let u=0;u<l;++u)c[u]=(s-u)/-o;else for(let u=0;u<l;++u)c[u]=(s-u)*o;else if(o<0)for(let u=0;u<l;++u)c[u]=(i+u)/-o;else for(let u=0;u<l;++u)c[u]=(i+u)*o;return c}function Hs(t,e,n){return e=+e,t=+t,n=+n,Oi(t,e,n)[2]}function Ws(t,e,n){e=+e,t=+t,n=+n;const a=e<t,i=a?Hs(e,t,n):Hs(t,e,n);return(a?-1:1)*(i<0?1/-i:i)}function Ii(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function kv(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Ks(t){let e,n,a;t.length!==2?(e=Ii,n=(l,c)=>Ii(t(l),c),a=(l,c)=>t(l)-c):(e=t===Ii||t===kv?t:Jv,n=t,a=t);function i(l,c,u=0,g=l.length){if(u<g){if(e(c,c)!==0)return g;do{const v=u+g>>>1;n(l[v],c)<0?u=v+1:g=v}while(u<g)}return u}function s(l,c,u=0,g=l.length){if(u<g){if(e(c,c)!==0)return g;do{const v=u+g>>>1;n(l[v],c)<=0?u=v+1:g=v}while(u<g)}return u}function o(l,c,u=0,g=l.length){const v=i(l,c,u,g-1);return v>u&&a(l[v-1],c)>-a(l[v],c)?v-1:v}return{left:i,center:o,right:s}}function Jv(){return 0}function Qv(t){return t===null?NaN:+t}function*o1(t,e){if(e===void 0)for(let n of t)n!=null&&(n=+n)>=n&&(yield n);else{let n=-1;for(let a of t)(a=e(a,++n,t))!=null&&(a=+a)>=a&&(yield a)}}const pc=Ks(Ii),_v=pc.right,l1=pc.left,c1=Ks(Qv).center;var qv=_v;function tp(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}function ep(t){return function(){return t}}function np(t){return+t}var mc=[0,1];function ea(t){return t}function Zs(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:ep(isNaN(e)?NaN:.5)}function rp(t,e){var n;return t>e&&(n=t,t=e,e=n),function(a){return Math.max(t,Math.min(e,a))}}function ap(t,e,n){var a=t[0],i=t[1],s=e[0],o=e[1];return i<a?(a=Zs(i,a),s=n(o,s)):(a=Zs(a,i),s=n(s,o)),function(l){return s(a(l))}}function ip(t,e,n){var a=Math.min(t.length,e.length)-1,i=new Array(a),s=new Array(a),o=-1;for(t[a]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<a;)i[o]=Zs(t[o],t[o+1]),s[o]=n(e[o],e[o+1]);return function(l){var c=qv(t,l,1,a)-1;return s[c](i[c](l))}}function Ci(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function ks(){var t=mc,e=mc,n=Kr,a,i,s,o=ea,l,c,u;function g(){var m=Math.min(t.length,e.length);return o!==ea&&(o=rp(t[0],t[m-1])),l=m>2?ip:ap,c=u=null,v}function v(m){return m==null||isNaN(m=+m)?s:(c||(c=l(t.map(a),e,n)))(a(o(m)))}return v.invert=function(m){return o(i((u||(u=l(e,t.map(a),Yn)))(m)))},v.domain=function(m){return arguments.length?(t=Array.from(m,np),g()):t.slice()},v.range=function(m){return arguments.length?(e=Array.from(m),g()):e.slice()},v.rangeRound=function(m){return e=Array.from(m),n=tp,g()},v.clamp=function(m){return arguments.length?(o=m?!0:ea,g()):o!==ea},v.interpolate=function(m){return arguments.length?(n=m,g()):n},v.unknown=function(m){return arguments.length?(s=m,v):s},function(m,S){return a=m,i=S,g()}}function yc(){return ks()(ea,ea)}var sp=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ma(t){if(!(e=sp.exec(t)))throw new Error("invalid format: "+t);var e;return new Js({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Ma.prototype=Js.prototype;function Js(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Js.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function op(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Pi(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,a=t.slice(0,n);return[a.length>1?a[0]+a.slice(2):a,+t.slice(n+1)]}function na(t){return t=Pi(Math.abs(t)),t?t[1]:NaN}function lp(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(na(e)/3)))*3-na(Math.abs(t)))}function cp(t,e){return function(n,a){for(var i=n.length,s=[],o=0,l=t[0],c=0;i>0&&l>0&&(c+l+1>a&&(l=Math.max(1,a-c)),s.push(n.substring(i-=l,i+l)),!((c+=l+1)>a));)l=t[o=(o+1)%t.length];return s.reverse().join(e)}}function up(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}function fp(t){t:for(var e=t.length,n=1,a=-1,i;n<e;++n)switch(t[n]){case".":a=i=n;break;case"0":a===0&&(a=n),i=n;break;default:if(!+t[n])break t;a>0&&(a=0);break}return a>0?t.slice(0,a)+t.slice(i+1):t}var xc;function dp(t,e){var n=Pi(t,e);if(!n)return t+"";var a=n[0],i=n[1],s=i-(xc=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=a.length;return s===o?a:s>o?a+new Array(s-o+1).join("0"):s>0?a.slice(0,s)+"."+a.slice(s):"0."+new Array(1-s).join("0")+Pi(t,Math.max(0,e+s-1))[0]}function Tc(t,e){var n=Pi(t,e);if(!n)return t+"";var a=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+a:a.length>i+1?a.slice(0,i+1)+"."+a.slice(i+1):a+new Array(i-a.length+2).join("0")}var $c={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:op,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Tc(t*100,e),r:Tc,s:dp,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Sc(t){return t}var Ac=Array.prototype.map,bc=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function hp(t){var e=t.grouping===void 0||t.thousands===void 0?Sc:cp(Ac.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",a=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",s=t.numerals===void 0?Sc:up(Ac.call(t.numerals,String)),o=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"\u2212":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(v){v=Ma(v);var m=v.fill,S=v.align,I=v.sign,N=v.symbol,M=v.zero,P=v.width,X=v.comma,W=v.precision,G=v.trim,k=v.type;k==="n"?(X=!0,k="g"):$c[k]||(W===void 0&&(W=12),G=!0,k="g"),(M||m==="0"&&S==="=")&&(M=!0,m="0",S="=");var H=N==="$"?n:N==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():"",at=N==="$"?a:/[%p]/.test(k)?o:"",mt=$c[k],At=/[defgprs%]/.test(k);W=W===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,W)):Math.max(0,Math.min(20,W));function St(Tt){var Gt=H,xt=at,Q,Ct,ht;if(k==="c")xt=mt(Tt)+xt,Tt="";else{Tt=+Tt;var It=Tt<0||1/Tt<0;if(Tt=isNaN(Tt)?c:mt(Math.abs(Tt),W),G&&(Tt=fp(Tt)),It&&+Tt==0&&I!=="+"&&(It=!1),Gt=(It?I==="("?I:l:I==="-"||I==="("?"":I)+Gt,xt=(k==="s"?bc[8+xc/3]:"")+xt+(It&&I==="("?")":""),At){for(Q=-1,Ct=Tt.length;++Q<Ct;)if(ht=Tt.charCodeAt(Q),48>ht||ht>57){xt=(ht===46?i+Tt.slice(Q+1):Tt.slice(Q))+xt,Tt=Tt.slice(0,Q);break}}}X&&!M&&(Tt=e(Tt,1/0));var Yt=Gt.length+Tt.length+xt.length,Xt=Yt<P?new Array(P-Yt+1).join(m):"";switch(X&&M&&(Tt=e(Xt+Tt,Xt.length?P-xt.length:1/0),Xt=""),S){case"<":Tt=Gt+Tt+xt+Xt;break;case"=":Tt=Gt+Xt+Tt+xt;break;case"^":Tt=Xt.slice(0,Yt=Xt.length>>1)+Gt+Tt+xt+Xt.slice(Yt);break;default:Tt=Xt+Gt+Tt+xt;break}return s(Tt)}return St.toString=function(){return v+""},St}function g(v,m){var S=u((v=Ma(v),v.type="f",v)),I=Math.max(-8,Math.min(8,Math.floor(na(m)/3)))*3,N=Math.pow(10,-I),M=bc[8+I/3];return function(P){return S(N*P)+M}}return{format:u,formatPrefix:g}}var wi,Qs,Ec;gp({thousands:",",grouping:[3],currency:["$",""]});function gp(t){return wi=hp(t),Qs=wi.format,Ec=wi.formatPrefix,wi}function vp(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,na(e)-na(t))+1}function pp(t){return Math.max(0,-na(Math.abs(t)))}function mp(t,e,n,a){var i=Ws(t,e,n),s;switch(a=Ma(a==null?",f":a),a.type){case"s":{var o=Math.max(Math.abs(t),Math.abs(e));return a.precision==null&&!isNaN(s=lp(i,o))&&(a.precision=s),Ec(a,o)}case"":case"e":case"g":case"p":case"r":{a.precision==null&&!isNaN(s=vp(i,Math.max(Math.abs(t),Math.abs(e))))&&(a.precision=s-(a.type==="e"));break}case"f":case"%":{a.precision==null&&!isNaN(s=pp(i))&&(a.precision=s-(a.type==="%")*2);break}}return Qs(a)}function Rc(t){var e=t.domain;return t.ticks=function(n){var a=e();return Ys(a[0],a[a.length-1],n==null?10:n)},t.tickFormat=function(n,a){var i=e();return mp(i[0],i[i.length-1],n==null?10:n,a)},t.nice=function(n){n==null&&(n=10);var a=e(),i=0,s=a.length-1,o=a[i],l=a[s],c,u,g=10;for(l<o&&(u=o,o=l,l=u,u=i,i=s,s=u);g-- >0;){if(u=Hs(o,l,n),u===c)return a[i]=o,a[s]=l,e(a);if(u>0)o=Math.floor(o/u)*u,l=Math.ceil(l/u)*u;else if(u<0)o=Math.ceil(o*u)/u,l=Math.floor(l*u)/u;else break;c=u}return t},t}function Mi(){var t=yc();return t.copy=function(){return Ci(t,Mi())},ta.apply(t,arguments),Rc(t)}function Oc(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function Ic(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function yp(t){var e=1,n=t(Oc(e),Ic(e));return n.constant=function(a){return arguments.length?t(Oc(e=+a),Ic(e)):e},Rc(n)}function Cc(){var t=yp(ks());return t.copy=function(){return Ci(t,Cc()).constant(t.constant())},ta.apply(t,arguments)}function Pc(t,e){t=t.slice();var n=0,a=t.length-1,i=t[n],s=t[a],o;return s<i&&(o=n,n=a,a=o,o=i,i=s,s=o),t[n]=e.floor(i),t[a]=e.ceil(s),t}function wc(t){return Math.log(t)}function Mc(t){return Math.exp(t)}function xp(t){return-Math.log(-t)}function Tp(t){return-Math.exp(-t)}function $p(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Sp(t){return t===10?$p:t===Math.E?Math.exp:e=>Math.pow(t,e)}function Ap(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function Lc(t){return(e,n)=>-t(-e,n)}function bp(t){const e=t(wc,Mc),n=e.domain;let a=10,i,s;function o(){return i=Ap(a),s=Sp(a),n()[0]<0?(i=Lc(i),s=Lc(s),t(xp,Tp)):t(wc,Mc),e}return e.base=function(l){return arguments.length?(a=+l,o()):a},e.domain=function(l){return arguments.length?(n(l),o()):n()},e.ticks=l=>{const c=n();let u=c[0],g=c[c.length-1];const v=g<u;v&&([u,g]=[g,u]);let m=i(u),S=i(g),I,N;const M=l==null?10:+l;let P=[];if(!(a%1)&&S-m<M){if(m=Math.floor(m),S=Math.ceil(S),u>0){for(;m<=S;++m)for(I=1;I<a;++I)if(N=m<0?I/s(-m):I*s(m),!(N<u)){if(N>g)break;P.push(N)}}else for(;m<=S;++m)for(I=a-1;I>=1;--I)if(N=m>0?I/s(-m):I*s(m),!(N<u)){if(N>g)break;P.push(N)}P.length*2<M&&(P=Ys(u,g,M))}else P=Ys(m,S,Math.min(S-m,M)).map(s);return v?P.reverse():P},e.tickFormat=(l,c)=>{if(l==null&&(l=10),c==null&&(c=a===10?"s":","),typeof c!="function"&&(!(a%1)&&(c=Ma(c)).precision==null&&(c.trim=!0),c=Qs(c)),l===1/0)return c;const u=Math.max(1,a*l/e.ticks().length);return g=>{let v=g/s(Math.round(i(g)));return v*a<a-.5&&(v*=a),v<=u?c(g):""}},e.nice=()=>n(Pc(n(),{floor:l=>s(Math.floor(i(l))),ceil:l=>s(Math.ceil(i(l)))})),e}function Dc(){const t=bp(ks()).domain([1,10]);return t.copy=()=>Ci(t,Dc()).base(t.base()),ta.apply(t,arguments),t}const Li=Je(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Li.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?Je(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):Li);const u1=Li.range,Lr=Je(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Bn)},(t,e)=>(e-t)/Bn,t=>t.getUTCSeconds()),f1=Lr.range,_s=Je(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Bn)},(t,e)=>{t.setTime(+t+e*Sn)},(t,e)=>(e-t)/Sn,t=>t.getMinutes()),d1=_s.range,qs=Je(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*Sn)},(t,e)=>(e-t)/Sn,t=>t.getUTCMinutes()),h1=qs.range,to=Je(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Bn-t.getMinutes()*Sn)},(t,e)=>{t.setTime(+t+e*Mn)},(t,e)=>(e-t)/Mn,t=>t.getHours()),g1=to.range,eo=Je(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Mn)},(t,e)=>(e-t)/Mn,t=>t.getUTCHours()),v1=eo.range,no=Je(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),p1=no.range,ro=Je(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),m1=ro.range;function Nc(t,e,n,a,i,s){const o=[[Lr,1,Bn],[Lr,5,5*Bn],[Lr,15,15*Bn],[Lr,30,30*Bn],[s,1,Sn],[s,5,5*Sn],[s,15,15*Sn],[s,30,30*Sn],[i,1,Mn],[i,3,3*Mn],[i,6,6*Mn],[i,12,12*Mn],[a,1,tr],[a,2,2*tr],[n,1,qi],[e,1,Io],[e,3,3*Io],[t,1,ts]];function l(u,g,v){const m=g<u;m&&([u,g]=[g,u]);const S=v&&typeof v.range=="function"?v:c(u,g,v),I=S?S.range(u,+g+1):[];return m?I.reverse():I}function c(u,g,v){const m=Math.abs(g-u)/v,S=Ks(([,,M])=>M).right(o,m);if(S===o.length)return t.every(Ws(u/ts,g/ts,v));if(S===0)return Li.every(Math.max(Ws(u,g,v),1));const[I,N]=o[m/o[S-1][2]<o[S][2]/m?S-1:S];return I.every(N)}return[l,c]}const[Ep,Rp]=Nc(nr,ro,Ja,Co,eo,qs),[Op,Ip]=Nc(er,no,Za,ga,to,_s);function Cp(t){return new Date(t)}function Pp(t){return t instanceof Date?+t:+new Date(+t)}function ao(t,e,n,a,i,s,o,l,c,u){var g=yc(),v=g.invert,m=g.domain,S=u(".%L"),I=u(":%S"),N=u("%I:%M"),M=u("%I %p"),P=u("%a %d"),X=u("%b %d"),W=u("%B"),G=u("%Y");function k(H){return(c(H)<H?S:l(H)<H?I:o(H)<H?N:s(H)<H?M:a(H)<H?i(H)<H?P:X:n(H)<H?W:G)(H)}return g.invert=function(H){return new Date(v(H))},g.domain=function(H){return arguments.length?m(Array.from(H,Pp)):m().map(Cp)},g.ticks=function(H){var at=m();return t(at[0],at[at.length-1],H==null?10:H)},g.tickFormat=function(H,at){return at==null?k:u(at)},g.nice=function(H){var at=m();return(!H||typeof H.range!="function")&&(H=e(at[0],at[at.length-1],H==null?10:H)),H?m(Pc(at,H)):g},g.copy=function(){return Ci(g,ao(t,e,n,a,i,s,o,l,c,u))},g}function wp(){return ta.apply(ao(Op,Ip,er,no,Za,ga,to,_s,Lr,rs).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Mp(){return ta.apply(ao(Ep,Rp,nr,ro,Ja,_a,eo,qs,Lr,as).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Dr(t="linear",e=0,n=1){const a={linear:Mi,log:Cc,_log:Dc,time:wp,utc:Mp}[t]();return a.type=t,/_?log/.test(t)&&a.clamp(!0),a.range([e,n])}var Lp={getXScale(t,e,n,a){const i=this,s=i.state.loading!=="append"&&i.scale.zoom||Dr(i.axis.getAxisType("x"),t,e);return i.getCustomizedXScale(n?s.domain(n):s,a)},getYScale(t,e,n,a){const s=Dr(this.axis.getAxisType(t),e,n);return a&&s.domain(a),s},getYScaleById(t,e=!1){var n;const a=((n=this.axis)==null?void 0:n.getId(t))==="y2",i=e?a?"subY2":"subY":a?"y2":"y";return this.scale[i]},getCustomizedXScale(t,e){const n=this,a=e||(()=>n.axis.x.tickOffset()),i=n.config.axis_x_inverted,s=function(o,l){const c=t(o)+a();return l?c:Math.ceil(c)};for(const o in t)s[o]=t[o];return s.orgDomain=()=>t.domain(),s.orgScale=()=>t,n.axis.isCategorized()&&(s.domain=function(o){let l=o;return arguments.length?(t.domain(l),s):(l=this.orgDomain(),i?[l[0]+1,l[1]]:[l[0],l[1]+1])}),s},updateScales(t,e=!0){var n,a;const i=this,{axis:s,config:o,format:l,org:c,scale:u,state:{current:g,width:v,height:m,width2:S,height2:I,hasAxis:N,hasTreemap:M}}=i;if(N){const P=o.axis_rotated,X=i.getResettedPadding(1),W={x:P?X:0,y:P?0:m,subX:P?1:0,subY:P?0:I},G={x:P?m:v,y:P?v:X,subX:P?m:v,subY:P?S:1},k=e&&((n=u.x)==null?void 0:n.orgDomain()),H=e&&c.xDomain;u.x=i.getXScale(W.x,G.x,k,()=>s.x.tickOffset()),u.subX=i.getXScale(W.x,G.x,H,at=>{var mt;return at%1?0:((mt=s.subX)!=null?mt:s.x).tickOffset()}),l.xAxisTick=s.getXAxisTickFormat(),l.subXAxisTick=s.getXAxisTickFormat(!0),s.setAxis("x",u.x,o.axis_x_tick_outer,t),o.subchart_show&&s.setAxis("subX",u.subX,o.axis_x_tick_outer,t),u.y=i.getYScale("y",W.y,G.y,u.y?u.y.domain():o.axis_y_default),u.subY=i.getYScale("y",W.subY,G.subY,u.subY?u.subY.domain():o.axis_y_default),s.setAxis("y",u.y,o.axis_y_tick_outer,t),o.axis_y2_show&&(u.y2=i.getYScale("y2",W.y,G.y,u.y2?u.y2.domain():o.axis_y2_default),u.subY2=i.getYScale("y2",W.subY,G.subY,u.subY2?u.subY2.domain():o.axis_y2_default),s.setAxis("y2",u.y2,o.axis_y2_tick_outer,t))}else if(M){const P=i.getCurrentPadding();u.x=Mi().rangeRound([P.left,g.width-P.right]),u.y=Mi().rangeRound([P.top,g.height-P.bottom])}else(a=i.updateArc)==null||a.call(i)},xx(t){const e=this,{config:n,scale:{x:a,zoom:i}}=e,s=n.zoom_enabled&&i?i:a;return t?s(Ie(t.x)?t.x:t):null},xv(t){const e=this,{axis:n,config:a,scale:{x:i,zoom:s}}=e,o=a.zoom_enabled&&s?s:i;let l=e.getBaseValue(t);return n.isTimeSeries()?l=Dn.call(e,l):n.isCategorized()&&ze(l)&&(l=a.axis_x_categories.indexOf(l)),Math.ceil(o(l))},yv(t){const e=this,{scale:{y:n,y2:a}}=e,i=t.axis&&t.axis==="y2"?a:n;return Math.ceil(i(e.getBaseValue(t)))},subxx(t){return t?this.scale.subX(t.x):null}},Dp={setContainerSize(){const t=this,{state:e}=t;e.current.width=t.getCurrentWidth(),e.current.height=t.getCurrentHeight()},getCurrentWidth(){const t=this;return t.config.size_width||t.getParentWidth()},getCurrentHeight(){const t=this,{config:e}=t,n=e.size_height||t.getParentHeight();return n>0?n:320/(t.hasType("gauge")&&!e.gauge_fullCircle?2:1)},getParentRectValue(t){const e=`offset${In(t)}`;let n=this.$el.chart.node(),a=0;for(;a<30&&n&&n.tagName!=="BODY";){try{a=n.getBoundingClientRect()[t]}catch(s){e in n&&(a=n[e])}n=n.parentNode}const i=fn.body[e];return a>i&&(a=i),a},getParentWidth(){return this.getParentRectValue("width")},getParentHeight(){const t=this.$el.chart.style("height");let e=0;return t&&(e=/px$/.test(t)?parseInt(t,10):this.getParentRectValue("height")),e},getSvgLeft(t){const e=this,{config:n,state:{hasAxis:a},$el:i}=e,s=n.axis_rotated,o=s||!s&&!n.axis_y_inner,l=s?on.axisX:on.axisY,c=i.main.select(`.${l}`).node(),u=a&&n[`axis_${s?"x":"y"}_label`];let g=0;if(a&&(ze(u)||ze(u.text)||/^inner-/.test(u==null?void 0:u.position))){const N=i.main.select(`.${l}-label`);N.empty()||(g=N.node().getBoundingClientRect().left)}const v=c&&o?c.getBoundingClientRect():{right:0},m=i.chart.node().getBoundingClientRect().left+g,S=e.hasArcType(),I=v.right-m-(S?0:e.getCurrentPaddingByDirection("left",t));return I>0?I:0},updateDimension(t){var e;const n=this,{config:a,state:{hasAxis:i},$el:s}=n;i&&!t&&n.axis.x&&a.axis_rotated&&((e=n.axis.subX)==null||e.create(s.axis.subX)),n.updateScales(t),n.updateSvgSize(),n.transformAll(!1)},updateSvgSize(){const t=this,{state:{clip:e,current:n,hasAxis:a,width:i,height:s},$el:{svg:o}}=t;if(o.attr("width",n.width).attr("height",n.height),a){const l=o.select(`.${ko.brush} .overlay`),c={width:0,height:0};l.size()&&(c.width=+l.attr("width"),c.height=+l.attr("height")),o.selectAll([`#${e.id}`,`#${e.idGrid}`]).select("rect").attr("width",i).attr("height",s),o.select(`#${e.idXAxis}`).select("rect").call(t.setXAxisClipPath.bind(t)),o.select(`#${e.idYAxis}`).select("rect").call(t.setYAxisClipPath.bind(t)),e.idSubchart&&o.select(`#${e.idSubchart}`).select("rect").attr("width",i).attr("height",c.height)}},getCurrentPaddingByDirection(t,e=!1,n=!1){var a;const i=this,{config:s,$el:o,state:{hasAxis:l}}=i,c=s.axis_rotated,u=((a=s.padding)==null?void 0:a.mode)==="fit",g=ue(s[`padding_${t}`])?s[`padding_${t}`]:void 0,v=l?{top:c?"y2":null,bottom:c?"y":"x",left:c?"x":"y",right:c?null:"y2"}[t]:null,m=/^(left|right)$/.test(t),S=v&&s[`axis_${v}_inner`],I=v&&s[`axis_${v}_show`],N=v?s[`axis_${v}_axes`].length:0;let M=v?m?i.getAxisWidthByAxisId(v,e):i.getHorizontalAxisHeight(v):0;const P=20;let X=0;!u&&m&&(M=Wg(M));let W=l&&m&&(S||en(g)&&!I)?0:u?(I?M:0)+(g!=null?g:0):en(g)?M:g;return m&&l?(v&&(u||S)&&s[`axis_${v}_label`].text&&(W+=i.axis.getAxisLabelPosition(v).isOuter?P:0),t==="right"?(W+=c?!u&&en(g)?10:2:!I||S?u?2:1:0,W+=n?i.axis.getXAxisTickTextY2Overflow(P):0):t==="left"&&c&&en(g)&&(W=s.axis_x_show?u?M:Math.max(M,40):1)):t==="top"?(o.title&&o.title.node()&&(W+=i.getTitlePadding()),X=c&&!S?N:0):t==="bottom"&&l&&c&&!I&&(W+=1),W+M*N-X},getCurrentPadding(t=!1){const e=this,[n,a,i,s]=["top","bottom","left","right"].map(o=>e.getCurrentPaddingByDirection(o,null,t));return{top:n,bottom:a,left:i,right:s}},getResettedPadding(t){const e=this,{config:n}=e,a=ue(t);let i=a?0:{};return n.padding===!1?!a&&Object.keys(t).forEach(s=>{i[s]=!Wn(n.data_labels)&&n.data_labels!==!1&&s==="top"?t[s]:0}):i=t,i},updateSizes(t){var e,n,a,i,s;const o=this,{config:l,state:c,$el:{legend:u}}=o,g=l.axis_rotated,v=o.hasArcType()||c.hasFunnel||c.hasTreemap,m=((e=l.padding)==null?void 0:e.mode)==="fit";!t&&o.setContainerSize();const S={width:u?o.getLegendWidth():0,height:u?o.getLegendHeight():0};!v&&l.axis_x_show&&l.axis_x_tick_autorotate&&o.updateXAxisTickClip();const I={right:l.legend_show&&c.isLegendRight?o.getLegendWidth()+(m?0:20):0,bottom:!l.legend_show||c.isLegendRight||c.isLegendInset?0:S.height},N=g||v?0:o.getHorizontalAxisHeight("x"),M=l.subchart_axis_x_show&&l.subchart_axis_x_tick_text_show?N:30,P=l.subchart_show&&!v?l.subchart_size_height+M:0,X=o.hasType("gauge")&&l.arc_needle_show&&!l.gauge_fullCircle&&!l.gauge_label_show?10:0,W=o.getCurrentPadding(!0);if(c.margin=!v&&g?{top:W.top,right:v?0:W.right+I.right,bottom:I.bottom+W.bottom,left:P+(v?0:W.left)}:{top:(m?0:4)+W.top,right:v?0:W.right+I.right,bottom:X+P+I.bottom+W.bottom,left:v?0:W.left},c.margin=o.getResettedPadding(c.margin),c.margin2=g?{top:c.margin.top,right:NaN,bottom:20+I.bottom,left:o.state.rotatedPadding.left}:{top:c.current.height-P-I.bottom,right:NaN,bottom:M+I.bottom,left:c.margin.left},c.margin3={top:0,right:NaN,bottom:0,left:0},(n=o.updateSizeForLegend)==null||n.call(o,S),c.width=c.current.width-c.margin.left-c.margin.right,c.height=c.current.height-c.margin.top-c.margin.bottom,c.width<0&&(c.width=0),c.height<0&&(c.height=0),c.width2=g?c.margin.left-c.rotatedPadding.left-c.rotatedPadding.right:c.width,c.height2=g?c.height:c.current.height-c.margin2.top-c.margin2.bottom,c.width2<0&&(c.width2=0),c.height2<0&&(c.height2=0),o.hasArcType()){const G=o.hasType("gauge"),k=l.legend_show&&c.isLegendRight,H=(a=c.hasRadar&&o.cache.get(Cn.radarTextWidth))!=null?a:0;c.arcWidth=c.width-(k?S.width+10:0)-H,c.arcHeight=c.height-(k&&!G?0:10),(i=l.arc_rangeText_values)!=null&&i.length&&(G?(c.arcWidth-=25,c.arcHeight-=10,c.margin.left+=10):(c.arcHeight-=20,c.margin.top+=10)),G&&!l.gauge_fullCircle&&(c.arcHeight+=c.height-o.getPaddingBottomForGauge()),(s=o.updateRadius)==null||s.call(o)}c.isLegendRight&&v&&(c.margin3.left=c.arcWidth/2+c.radiusExpanded*1.1)}},Np={setCssRule(t,e,n,a){const i=this,{config:s,state:{cssRule:o,style:l}}=i;return s.boost_useCssRule?c=>{c.each(u=>{const g=a&&(a==null?void 0:a.call(i,u)),v=`${t?`.${tn.shapes+i.getTargetSelectorSuffix(u.id)}`:""}${e}`;e in o&&l.sheet.deleteRule(o[v]),i.state.cssRule[v]=Jg(l,v,n.filter(Boolean).map(m=>ze(g)&&m.indexOf(":")===-1?`${m}: ${g}`:m||""))})}:()=>{}},getStylePropValue(t){const{config:{boost_useCssRule:e}}=this;return e?null:he(t)?t.bind(this):t}};function Fc(t){return typeof t=="string"?new Ee([document.querySelectorAll(t)],[document.documentElement]):new Ee([T(t)],_t)}function Fp(t){let e="middle";return t>0&&t<=170?e="end":t>190&&t<=360&&(e="start"),e}function Bp(t,e,n,a,i){var s;const o=this,{value:l}=t,c=o.isCandlestickType(t),u=ue(l)&&l<0||c&&!((s=o.getCandlestickData(t))!=null&&s._isUp);let{x:g,y:v}=e;const m=4,S=m*2;return a?n==="start"?(g+=u?0:S,v+=m):n==="middle"?(g+=S,v-=S):n==="end"&&(u&&(g-=S),v+=m):(n==="start"?(g+=m,u&&(v+=S*2)):n==="middle"?v-=S:n==="end"&&(g-=m,u&&(v+=S*2)),i&&(v+=u?-17:c?13:7)),{x:g,y:v}}function Bc(t,e){var n;const a=this.config.data_labels_position,{id:i,index:s,value:o}=t;return(n=he(a)?a.bind(this.api)(e,o,i,s,this.$el.text):(i in a?a[i]:a)[e])!=null?n:0}var Up={opacityForText(t){const e=this;return e.isBarType(t)&&!e.meetsLabelThreshold(Math.abs(e.getRatio("bar",t)),"bar")?"0":e.hasDataLabel?null:"0"},initText(){const{$el:t}=this;t.main.select(`.${Se.chart}`).append("g").attr("class",An.chartTexts).style("pointer-events",t.funnel||t.treemap?"none":null)},updateTargetsForText(t){const e=this,n=e.getChartClass("Text"),a=e.getClass("texts","id"),i=e.classFocus.bind(e);e.$el.main.select(`.${An.chartTexts}`).selectAll(`.${An.chartText}`).data(t).attr("class",l=>`${n(l)}${i(l)}`.trim()).enter().append("g").style("opacity","0").attr("class",n).call(e.setCssRule(!0,` .${An.text}`,["fill","pointer-events:none"],e.updateTextColor)).append("g").attr("class",a)},updateText(){const t=this,{$el:e,$T:n,config:a,axis:i}=t,s=t.getClass("text","index"),o=a.data_labels.centered,l=e.main.selectAll(`.${An.texts}`).selectAll(`.${An.text}`).data(t.labelishData.bind(t));n(l.exit()).style("fill-opacity","0").remove(),e.text=l.enter().append("text").merge(l).attr("class",s).attr("text-anchor",c=>{let g=a[`axis_${i==null?void 0:i.getId(c.id)}_inverted`]?c.value>0:c.value<0;if(t.isCandlestickType(c)){const v=t.getCandlestickData(c);g=!(v!=null&&v._isUp)}else if(t.isTreemapType(c))return o?"middle":"start";return a.axis_rotated?g?"end":"start":"middle"}).style("fill",t.getStylePropValue(t.updateTextColor)).style("fill-opacity","0").each(function(c,u,g){const v=st(this);let{value:m}=c;if(t.isBubbleZType(c))m=t.getBubbleZData(m,"z");else if(t.isCandlestickType(c)){const S=t.getCandlestickData(c);S&&(m=S.close)}m=t.isTreemapType(c)?t.treemapDataLabelFormat(c)(v):t.dataLabelFormat(c.id)(m,c.id,c.index,g),ue(m)?this.textContent=m:Ca(v,m)})},updateTextColor(t){const e=this,{config:n}=e,a=n.data_labels_colors,i=e.isArcType(t)&&!e.isRadarType(t)||e.isFunnelType(t)||e.isTreemapType(t)?null:e.color(t);let s;if(ze(a))s=a;else if(De(a)){const{id:o}=t.data||t;s=a[o]}else he(a)&&(s=a.bind(e.api)(i,t));if(e.isCandlestickType(t)&&!he(a)){const o=e.getCandlestickData(t);if(!(o!=null&&o._isUp)){const l=n.candlestick_color_down;s=De(l)?l[t.id]:l}}return s||i},updateTextBGColor(t,e){const n=this,{$el:a}=n;let i="";if(ze(e)||De(e)){const s=ze(e)?"":n.getTargetSelectorSuffix("id"in t?t.id:t.data.id),o=a.defs.select(["filter[id*='labels-bg","']"].join(s));o.size()&&(i=`url(#${o.attr("id")})`)}return i||null},redrawText(t,e,n,a){const i=this,{$T:s,axis:o,config:l,state:{hasTreemap:c}}=i,u=lr(!0),g=l.axis_rotated,v=l.data_labels.rotate,m=Fp(v),S=v?`rotate(${v})`:"";return i.$el.text.style("fill",i.getStylePropValue(i.updateTextColor)).attr("filter",I=>i.updateTextBGColor.bind(i)(I,l.data_labels_backgroundColors)).style("fill-opacity",n?0:i.opacityForText.bind(i)).each(function(I,N){const M=s(c&&this.childElementCount?this.parentNode:this,!!(a&&this.getAttribute("x")),u),P=l[`axis_${o==null?void 0:o.getId(I.id)}_inverted`];let X={x:t.bind(this)(I,N),y:e.bind(this)(I,N)};v&&(X=Bp.bind(i)(I,X,m,g,P),M.attr("text-anchor",m)),this.childElementCount||v?M.attr("transform",`translate(${X.x} ${X.y}) ${S}`):M.attr("x",X.x).attr("y",X.y)}),!0},getTextRect(t,e){const n=this;let a=t.node?t.node():t;/text/i.test(a.tagName)||(a=a.querySelector("text"));const i=a.textContent,s=`${Cn.textRect}-${i.replace(/\W/g,"_")}`;let o=n.cache.get(s);return o||(n.$el.svg.append("text").style("visibility","hidden").style("font",st(a).style("font")).classed(e,!0).text(i).call(l=>{o=Si(l.node())}).remove(),n.cache.add(s,o)),o},generateXYForText(t,e){const n=this,{state:{hasRadar:a,hasFunnel:i,hasTreemap:s}}=n,o=Object.keys(t),l={},c=e?n.getXForText:n.getYForText;return i&&o.push("funnel"),a&&o.push("radar"),s&&o.push("treemap"),o.forEach(u=>{l[u]=n[`generateGet${In(u)}Points`](t[u],!1)}),function(u,g){const v=n.isAreaType(u)&&"area"||n.isBarType(u)&&"bar"||n.isCandlestickType(u)&&"candlestick"||n.isFunnelType(u)&&"funnel"||n.isRadarType(u)&&"radar"||n.isTreemapType(u)&&"treemap"||"line";return c.call(n,l[v](u,g),u,this)}},getCenteredTextPos(t,e,n,a){const i=this,{config:s}=i,o=s.axis_rotated,l=i.isBarType(t),c=i.isTreemapType(t);if(s.data_labels.centered&&(l||c)){const u=Si(n);if(l){const g=i.getRangedData(t,null,"bar")>=0;if(o){const v=(g?e[1][1]-e[0][1]:e[0][1]-e[1][1])/2+u.width/2;return g?-v-3:v+2}else{const v=(g?e[0][1]-e[1][1]:e[1][1]-e[0][1])/2+u.height/2;return g?v:-v-2}}else if(c)return a==="x"?(e[1][0]-e[0][0])/2:(e[1][1]-e[0][1])/2+u.height/2}return 0},getXForText(t,e,n){var a;const i=this,{config:s}=i,o=s.axis_rotated,l=i.isFunnelType(e),c=i.isTreemapType(e);let u=t?t[0][0]:0;if(i.isCandlestickType(e))o?u=(a=i.getCandlestickData(e))!=null&&a._isUp?t[2][2]+4:t[2][1]-4:u+=(t[1][0]-u)/2;else if(l)u+=i.state.current.width/2;else if(c)u+=s.data_labels.centered?0:5;else if(o){const g=s[`axis_${i.axis.getId(e.id)}_inverted`],v=i.isBarType(e)?4:6,m=e.value;u=t[2][1],g?u-=v*(m>0?1:-1):u+=v*(m<0?-1:1)}else u=i.hasType("bar")?(t[2][0]+t[0][0])/2:u;return(o||c)&&(u+=i.getCenteredTextPos(e,t,n,"x")),u+Bc.call(this,e,"x")},getYForText(t,e,n){const a=this,{axis:i,config:s,state:o}=a,l=s.axis_rotated,c=s[`axis_${i==null?void 0:i.getId(e.id)}_inverted`],u=a.isBarType(e),g=a.isFunnelType(e),v=a.isTreemapType(e),m=s.point_r,S=Si(n);let{value:I}=e,N=3,M;if(a.isCandlestickType(e))I=a.getCandlestickData(e),l?(M=t[0][0],M+=(t[1][0]-M)/2+N):(M=I&&I._isUp?t[2][2]-N:t[2][1]+N*4,c&&(M+=15*(I._isUp?1:-1)));else if(g)M=t?t[0][1]+(t[1][1]-t[0][1])/2+S.height/2-3:0;else if(v)M=t[0][1]+(s.data_labels.centered?0:S.height+5);else if(l)M=(t[0][0]+t[2][0]+S.height*.6)/2;else if(M=t[2][1],ue(m)&&m>5&&(a.isLineType(e)||a.isScatterType(e))&&(N+=s.point_r/2.3),I<0||I===0&&!o.hasPositiveValue&&o.hasNegativeValue)M+=c?u?-3:-5:S.height+(u?-N:N);else{let P=-N*2;u?P=-N:a.isBubbleType(e)&&(P=N),c&&(P=u?10:15),M+=P}return(!l||v)&&(M+=a.getCenteredTextPos(e,t,n,"y")),M+Bc.call(this,e,"y")},markOverlapped(t,e,n){const a=e.$el.arcs.selectAll(n),i=a.filter(c=>c.data.id!==t),s=a.filter(c=>c.data.id===t),o=Kl(s.node()),l=(c,u)=>Math.sqrt(Math.pow(c,2)+Math.pow(u,2));s.node()&&i.each(function(){const c=Kl(this),u=st(this),g=l(o.e,o.f)>l(c.e,c.f)?s:u,v=Math.ceil(Math.abs(o.e-c.e))<Math.ceil(g.node().getComputedTextLength()),m=Math.ceil(Math.abs(o.f-c.f))<parseInt(s.style("font-size"),10);u.classed(An.TextOverlapping,v&&m)})},undoMarkOverlapped(t,e){t.$el.arcs.selectAll(e).each(function(){Fc([this,this.previousSibling]).classed(An.TextOverlapping,!1)})},meetsLabelThreshold(t=0,e){const n=this,{config:a}=n,i=a[`${e}_label_threshold`]||0;return t>=i}};function Uc(t="left",e){const n=ue(e);let a;return t.indexOf("center")>-1?a=n?e/2:"middle":t.indexOf("right")>-1?a=n?e:"end":a=n?0:"start",a}var zp={initTitle(){const t=this,{config:e,$el:n}=t;if(e.title_text){n.title=n.svg.append("g");const a=n.title.append("text").style("text-anchor",Uc(e.title_position)).attr("class",An.title);Ca(a,e.title_text,[.3,1.5])}},redrawTitle(){const t=this,{config:e,state:{current:n},$el:{title:a}}=t;if(a){const i=Uc(e.title_position,n.width),s=(e.title_padding.top||0)+t.getTextRect(t.$el.title,An.title).height;a.attr("transform",`translate(${i}, ${s})`)}},getTitlePadding(){const t=this,{$el:{title:e},config:n}=t;return(n.title_padding.top||0)+(e?t.getTextRect(e,An.title).height:0)+(n.title_padding.bottom||0)}},jp={initTooltip(){const t=this,{config:e,$el:n}=t;n.tooltip=st(e.tooltip_contents.bindto),n.tooltip.empty()&&(n.tooltip=n.chart.append("div").attr("class",ti.tooltipContainer).style("position","absolute").style("pointer-events","none").style("display","none")),t.bindTooltipResizePos()},initShowTooltip(){var t;const e=this,{config:n,$el:a,state:{hasAxis:i,hasRadar:s}}=e;if(n.tooltip_init_show){const o=!(i||s);(t=e.axis)!=null&&t.isTimeSeries()&&ze(n.tooltip_init_x)&&(n.tooltip_init_x=Dn.call(e,n.tooltip_init_x)),e.api.tooltip.show({data:{[o?"index":"x"]:n.tooltip_init_x}});const l=n.tooltip_init_position;if(!n.tooltip_contents.bindto&&!Wn(l)){const{top:c=0,left:u=50}=l;a.tooltip.style("top",ze(c)?c:`${c}px`).style("left",ze(u)?u:`${u}px`).style("display",null)}}},getTooltipHTML(...t){const e=this,{api:n,config:a}=e;return he(a.tooltip_contents)?a.tooltip_contents.bind(n)(...t):e.getTooltipContent(...t)},getTooltipContent(t,e,n,a){var i;const s=this,{api:o,config:l,state:c,$el:u}=s,[g,v,m]=["title","name","value"].map(xt=>{const Q=l[`tooltip_format_${xt}`];return he(Q)?Q.bind(o):Q}),S=(...xt)=>Is((g||e)(...xt)),I=(...xt)=>Is((v||(Q=>Q))(...xt)),N=(...xt)=>{const Q=m||(c.hasTreemap||s.isStackNormalized()?(Ct,ht)=>`${(ht*100).toFixed(2)}%`:n);return Is(Q(...xt))},M=l.tooltip_order,P=xt=>s.axis&&s.isBubbleZType(xt)?s.getBubbleZData(xt.value,"z"):s.getBaseValue(xt),X=s.levelColor?xt=>s.levelColor(xt.value):xt=>a(xt),W=l.tooltip_contents,G=W.template,k=s.mapToTargetIds();if(M===null&&l.data_groups.length){const xt=s.orderTargets(s.data.targets).map(Q=>Q.id).reverse();t.sort((Q,Ct)=>{let ht=Q?Q.value:null,It=Ct?Ct.value:null;return ht>0&&It>0&&(ht=Q.id?xt.indexOf(Q.id):null,It=Ct.id?xt.indexOf(Ct.id):null),ht-It})}else if(/^(asc|desc)$/.test(M)){const xt=M==="asc";t.sort((Q,Ct)=>{const ht=Q?P(Q):null,It=Ct?P(Ct):null;return xt?ht-It:It-ht})}else he(M)&&t.sort(M.bind(o));const H=s.getTooltipContentTemplate(G),at=t.length;let mt,At,St,Tt,Gt;for(Gt=0;Gt<at;Gt++)if(At=t[Gt],!(!At||!(P(At)||P(At)===0))){if(en(mt)){const xt=(c.hasAxis||c.hasRadar)&&S(At.x);mt=bi(H[0],{CLASS_TOOLTIP:ti.tooltip,TITLE:Ie(xt)?G?xt:`<tr><th colspan="2">${xt}</th></tr>`:""})}if(!At.ratio&&u.arcs&&(St=["arc",s.$el.arcs.select(`path.${Be.arc}-${At.id}`).data()[0]],At.ratio=s.getRatio(...St)),St=[At.ratio,At.id,At.index],s.isAreaRangeType(At)){const[xt,Q]=["high","low"].map(ht=>N(s.getRangedData(At,ht),...St));Tt=`<b>Mid:</b> ${N(P(At),...St)} <b>High:</b> ${xt} <b>Low:</b> ${Q}`}else if(s.isCandlestickType(At)){const[xt,Q,Ct,ht,It]=["open","high","low","close","volume"].map(Yt=>s.getRangedData(At,Yt,"candlestick")?N(s.getRangedData(At,Yt,"candlestick"),...St):void 0);Tt=`<b>Open:</b> ${xt} <b>High:</b> ${Q} <b>Low:</b> ${Ct} <b>Close:</b> ${ht}${It?` <b>Volume:</b> ${It}`:""}`}else if(s.isBarRangeType(At)){const{value:xt,id:Q,index:Ct}=At;Tt=`${N(xt,void 0,Q,Ct)}`}else Tt=N(P(At),...St);if(Tt!==void 0){if(At.name===null)continue;const xt=I((i=At.name)!=null?i:At.id,...St),Q=X(At),Ct={CLASS_TOOLTIP_NAME:ti.tooltipName+s.getTargetSelectorSuffix(At.id),COLOR:G||!s.patterns?Q:`<svg><rect style="fill:${Q}" width="10" height="10"></rect></svg>`,NAME:xt,VALUE:Tt};if(G&&De(W.text)){const ht=k.indexOf(At.id);Object.keys(W.text).forEach(It=>{Ct[It]=W.text[It][ht]})}mt+=bi(H[1],Ct)}}return`${mt}</table>`},getTooltipContentTemplate(t){return(t||`<table class="{=CLASS_TOOLTIP}"><tbody> + {=TITLE} + {{<tr class="{=CLASS_TOOLTIP_NAME}"> + <td class="name">${this.patterns?"{=COLOR}":'<span style="background-color:{=COLOR}"></span>'}{=NAME}</td> + <td class="value">{=VALUE}</td> + </tr>}} + </tbody></table>`).replace(/(\r?\n|\t)/g,"").split(/{{(.*)}}/)},setTooltipPosition(t,e){var n,a;const i=this,{config:s,scale:o,state:l,$el:{eventRect:c,tooltip:u}}=i,{bindto:g}=s.tooltip_contents,v=s.axis_rotated,m=u==null?void 0:u.datum();if(!g&&m){const S=t!=null?t:JSON.parse(m.current),[I,N]=zn(l.event,e!=null?e:c==null?void 0:c.node()),M={x:I,y:N};if(l.hasAxis&&o.x&&m&&"x"in m){const G=(k=0,H,at="y")=>{var mt;const At=o[H?(mt=i.axis)==null?void 0:mt.getId(H):at];return At?At(k)+(v?l.margin.left:l.margin.top):0};M.xAxis=o.x(m.x)+(s.tooltip_position?v?l.margin.top:l.margin.left:0),S.length===1?M.yAxis=G(S[0].value,S[0].id):M.yAxis=G}const{width:P=0,height:X=0}=m,W=(a=(n=s.tooltip_position)==null?void 0:n.bind(i.api)(S,P,X,c==null?void 0:c.node(),M))!=null?a:i.getTooltipPosition.bind(i)(P,X,M);["top","left"].forEach(G=>{const k=W[G];u.style(G,`${k}px`),G==="left"&&!m.xPosInPercent&&(m.xPosInPercent=k/l.current.width*100)})}},getTooltipPosition(t,e,n){var a,i,s;const o=this,{config:l,scale:c,state:u}=o,{width:g,height:v,current:m,hasFunnel:S,hasRadar:I,hasTreemap:N,isLegendRight:M,inputType:P}=u,X=o.hasType("gauge")&&!l.gauge_fullCircle,W=l.axis_rotated,G=o.hasArcType(),k=o.getSvgLeft(!0);let H=k+m.width-o.getCurrentPaddingByDirection("right");const at=20;let{x:mt,y:At}=n;if(I)mt+=mt>=g/2?15:-(t+15),At+=15;else if(G){if(P!=="touch"){let Gt=(i=(a=o.getTitlePadding)==null?void 0:a.call(o))!=null?i:0;Gt&&X&&((s=l.arc_rangeText_values)!=null&&s.length)&&(Gt+=10),mt+=(g-(M?o.getLegendWidth():0))/2,At+=(X?v:v/2+e)+Gt}}else if(S||N)At+=e;else{const Tt={top:o.getCurrentPaddingByDirection("top",!0),left:o.getCurrentPaddingByDirection("left",!0)};W?(mt+=k+Tt.left+at,At=Tt.top+n.xAxis+at,H-=k):(mt=k+Tt.left+at+(c.zoom?mt:n.xAxis),At+=Tt.top-5)}if(mt+t+15>H&&(mt-=t+(S||N||G?0:W?at*2:38)),At+e>m.height){const Tt=N?e+10:30;At-=X?e*1.5:e+Tt}const St={top:At,left:mt};return Object.keys(St).forEach(Tt=>{St[Tt]<0&&(St[Tt]=0)}),St},showTooltip(t,e){const n=this,{config:a,$el:{tooltip:i}}=n,s=t.filter(c=>c&&Ie(n.getBaseValue(c)));if(!i||s.length===0||!a.tooltip_show)return;let o=i.datum();const l=JSON.stringify(t);if(!o||o.current!==l){const{index:c,x:u}=t.concat().sort()[0];Ze(a.tooltip_onshow,n.api,t),i.html(n.getTooltipHTML(t,n.axis?n.axis.getXAxisTickFormat():n.categoryName.bind(n),n.getDefaultValueFormat(),n.color)).style("display",null).style("visibility",null).datum(o={index:c,x:u,current:l,width:i.property("offsetWidth"),height:i.property("offsetHeight")}),Ze(a.tooltip_onshown,n.api,t),n._handleLinkedCharts(!0,c)}n.setTooltipPosition(s,e)},bindTooltipResizePos(){const t=this,{resizeFunction:e,state:n,$el:{tooltip:a}}=t;e.add(()=>{if(a.style("display")==="block"){const{current:i}=n,{width:s,xPosInPercent:o}=a.datum();let l=i.width/100*o;const c=i.width-(l+s);c<0&&(l+=c),a.style("left",`${l}px`)}})},hideTooltip(t){var e;const n=this,{api:a,config:i,$el:{tooltip:s}}=n;if(s&&s.style("display")!=="none"&&(!i.tooltip_doNotHide||t)){const o=JSON.parse((e=s.datum().current)!=null?e:{});Ze(i.tooltip_onhide,a,o),s.style("display","none").style("visibility","hidden").datum(null),Ze(i.tooltip_onhidden,a,o)}},_handleLinkedCharts(t,e){const n=this,{charts:a,config:i,state:{event:s}}=n;if(s!=null&&s.isTrusted&&i.tooltip_linked&&a.length>1){const o=i.tooltip_linked_name;a.filter(l=>l!==n.api).forEach(l=>{const{config:c,$el:u}=l.internal,g=c.tooltip_linked,v=c.tooltip_linked_name,m=fn.body.contains(u.chart.node());if(g&&o===v&&m){const S=u.tooltip.data()[0],I=e!==(S==null?void 0:S.index);try{l.tooltip[t&&I?"show":"hide"]({index:e})}catch(N){}}})}},updateTooltipOnRedraw(t,e){var n;const a=this,{config:i,$el:{eventRect:s,svg:o,tooltip:l},state:{event:c,hasAxis:u,hasRadar:g,hasTreemap:v}}=a;if((l==null?void 0:l.style("display"))==="block"&&c){const m=t!=null?t:(n=g?o:s)==null?void 0:n.node();if(u||g)if(a.isMultipleX())a.selectRectForMultipleXs(m,!1);else{const S=e!=null?e:a.getDataIndexFromEvent(c);e===-1?a.api.tooltip.hide():(a.selectRectForSingle(m,S),a.setExpand(S,null,!0))}else{const{clientX:S,clientY:I}=c;setTimeout(()=>{let N=fn.elementFromPoint(S,I);const M=st(N).datum();if(M){const P=a.hasArcType()?a.convertToArcData(a.updateAngle(M)):M==null?void 0:M.data;v&&(N=o.node()),P&&a.showTooltip([P],N)}else a.api.tooltip.hide()},i.transition_duration)}}}},Gp={getTranslate(t,e=0){var n;const a=this,{config:i,state:s}=a,o=i.axis_rotated;let l=0,c,u;if(e&&/^(x|y2?)$/.test(t)&&(l=a.getAxisSize(t)*e),t==="main")c=Ti(s.margin.left),u=Ti(s.margin.top);else if(t==="context")c=Ti(s.margin2.left),u=Ti(s.margin2.top);else if(t==="legend")c=s.margin3.left,u=s.margin3.top;else if(t==="x")c=o?-l:0,u=o?0:s.height+l;else if(t==="y")c=o?0:-l,u=o?s.height+l:0;else if(t==="y2")c=o?0:s.width+l,u=o?-l-1:0;else if(t==="subX")c=0,u=o?0:s.height2;else if(t==="arc")c=s.arcWidth/2,u=s.arcHeight/2,(n=i.arc_rangeText_values)!=null&&n.length&&(u+=5+(a.hasType("gauge")&&i.title_text?10:0));else if(t==="polar")c=s.arcWidth/2,u=s.arcHeight/2;else if(t==="radar"){const[g,v]=a.getRadarSize();c=s.width/2-g,u=s.height/2-v}return`translate(${c}, ${u})`},transformMain(t,e){const n=this,{$el:{main:a},$T:i}=n,s=e!=null&&e.axisX?e.axisX:i(a.select(`.${on.axisX}`),t),o=e!=null&&e.axisY?e.axisY:i(a.select(`.${on.axisY}`),t),l=e!=null&&e.axisY2?e.axisY2:i(a.select(`.${on.axisY2}`),t);i(a,t).attr("transform",n.getTranslate("main")),s.attr("transform",n.getTranslate("x")),o.attr("transform",n.getTranslate("y")),l.attr("transform",n.getTranslate("y2")),a.select(`.${Be.chartArcs}`).attr("transform",n.getTranslate("arc"))},transformAll(t,e){const n=this,{config:a,state:{hasAxis:i,hasFunnel:s,hasTreemap:o},$el:l}=n;!s&&!o&&n.transformMain(t,e),i&&a.subchart_show&&n.transformContext(t,e),l.legend&&n.transformLegend(t)}},Xp={isValidChartType(t){return!!(t&&Object.values(fe).indexOf(t)>-1)},setTargetType(t,e){const n=this,{config:a,state:{withoutFadeIn:i}}=n;n.mapToTargetIds(t).forEach(s=>{i[s]=e===a.data_types[s],a.data_types[s]=e}),t||(a.data_type=e)},updateTypesElements(){const t=this,{state:{current:e}}=t;Object.keys(fe).forEach(n=>{const a=fe[n],i=t.hasType(a,null,!0),s=e.types.indexOf(a);s===-1&&i?e.types.push(a):s>-1&&!i&&e.types.splice(s,1)}),t.setChartElements()},hasType(t,e,n=!1){var a;const i=this,{config:s,state:{current:o}}=i,l=s.data_types,c=e||i.data.targets;let u=!1;return!n&&((a=o.types)==null?void 0:a.indexOf(t))>-1?u=!0:c!=null&&c.length?c.forEach(g=>{const v=l[g.id];(v===t||!v&&t==="line")&&(u=!0)}):Object.keys(l).length?Object.keys(l).forEach(g=>{l[g]===t&&(u=!0)}):u=s.data_type===t,u},hasTypeOf(t,e,n=[]){return t in pr?!pr[t].filter(a=>n.indexOf(a)===-1).every(a=>!this.hasType(a,e)):!1},isTypeOf(t,e){var n;const a=ze(t)?t:t.id,i=this.config&&(((n=this.config.data_types)==null?void 0:n[a])||this.config.data_type);return Fe(e)?e.indexOf(i)>=0:i===e},hasPointType(){const t=this;return t.hasTypeOf("Line")||t.hasType("bubble")||t.hasType("scatter")},hasArcType(t,e){return this.hasTypeOf("Arc",t,e)},hasMultiArcGauge(){return this.hasType("gauge")&&this.config.gauge_type==="multi"},isLineType(t){const e=ze(t)?t:t.id;return!this.config.data_types[e]||this.isTypeOf(e,pr.Line)},isStepType(t){return this.isTypeOf(t,pr.Step)},isSplineType(t){return this.isTypeOf(t,pr.Spline)},isAreaType(t){return this.isTypeOf(t,pr.Area)},isAreaRangeType(t){return this.isTypeOf(t,pr.AreaRange)},isBarType(t){return this.isTypeOf(t,"bar")},isBubbleType(t){return this.isTypeOf(t,"bubble")},isCandlestickType(t){return this.isTypeOf(t,"candlestick")},isScatterType(t){return this.isTypeOf(t,"scatter")},isTreemapType(t){return this.isTypeOf(t,"treemap")},isPieType(t){return this.isTypeOf(t,"pie")},isFunnelType(t){return this.isTypeOf(t,"funnel")},isGaugeType(t){return this.isTypeOf(t,"gauge")},isDonutType(t){return this.isTypeOf(t,"donut")},isPolarType(t){return this.isTypeOf(t,"polar")},isRadarType(t){return this.isTypeOf(t,"radar")},isArcType(t){return this.isPieType(t)||this.isDonutType(t)||this.isGaugeType(t)||this.isPolarType(t)||this.isRadarType(t)},isCirclePoint(t){const{config:e}=this,n=e.point_pattern;let a=!1;return(t==null?void 0:t.tagName)==="circle"?a=!0:a=e.point_type==="circle"&&(!n||Fe(n)&&n.length===0),a},lineData(t){return this.isLineType(t)?[t]:[]},arcData(t){return this.isArcType(t.data)?[t]:[]},labelishData(t){return this.isBarType(t)||this.isLineType(t)||this.isScatterType(t)||this.isBubbleType(t)||this.isCandlestickType(t)||this.isFunnelType(t)||this.isRadarType(t)||this.isTreemapType(t)?t.values.filter(e=>ue(e.value)||!!e.value):[]},barLineBubbleData(t){return this.isBarType(t)||this.isLineType(t)||this.isBubbleType(t)?t.values:[]},isInterpolationType(t){return["basis","basis-closed","basis-open","bundle","cardinal","cardinal-closed","cardinal-open","catmull-rom","catmull-rom-closed","catmull-rom-open","linear","linear-closed","monotone-x","monotone-y","natural"].indexOf(t)>=0}};function Di(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function Ni(t){this._context=t}Ni.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Di(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Di(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Vp(t){return new Ni(t)}function mr(){}function zc(t){this._context=t}zc.prototype={areaStart:mr,areaEnd:mr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Di(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Yp(t){return new zc(t)}function jc(t){this._context=t}jc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,a=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,a):this._context.moveTo(n,a);break;case 3:this._point=4;default:Di(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Hp(t){return new jc(t)}function Gc(t,e){this._basis=new Ni(t),this._beta=e}Gc.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var a=t[0],i=e[0],s=t[n]-a,o=e[n]-i,l=-1,c;++l<=n;)c=l/n,this._basis.point(this._beta*t[l]+(1-this._beta)*(a+c*s),this._beta*e[l]+(1-this._beta)*(i+c*o));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var Wp=function t(e){function n(a){return e===1?new Ni(a):new Gc(a,e)}return n.beta=function(a){return t(+a)},n}(.85);function Fi(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function io(t,e){this._context=t,this._k=(1-e)/6}io.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Fi(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Fi(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Kp=function t(e){function n(a){return new io(a,e)}return n.tension=function(a){return t(+a)},n}(0);function so(t,e){this._context=t,this._k=(1-e)/6}so.prototype={areaStart:mr,areaEnd:mr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Fi(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Zp=function t(e){function n(a){return new so(a,e)}return n.tension=function(a){return t(+a)},n}(0);function oo(t,e){this._context=t,this._k=(1-e)/6}oo.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Fi(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var kp=function t(e){function n(a){return new oo(a,e)}return n.tension=function(a){return t(+a)},n}(0);const Xc=Math.abs,xn=Math.atan2,Nr=Math.cos,Jp=Math.max,lo=Math.min,Qn=Math.sin,ra=Math.sqrt,Tn=1e-12,La=Math.PI,Bi=La/2,Ui=2*La;function Qp(t){return t>1?0:t<-1?La:Math.acos(t)}function Vc(t){return t>=1?Bi:t<=-1?-Bi:Math.asin(t)}function co(t,e,n){var a=t._x1,i=t._y1,s=t._x2,o=t._y2;if(t._l01_a>Tn){var l=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);a=(a*l-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*l-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>Tn){var u=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,g=3*t._l23_a*(t._l23_a+t._l12_a);s=(s*u+t._x1*t._l23_2a-e*t._l12_2a)/g,o=(o*u+t._y1*t._l23_2a-n*t._l12_2a)/g}t._context.bezierCurveTo(a,i,s,o,t._x2,t._y2)}function Yc(t,e){this._context=t,this._alpha=e}Yc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,a=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+a*a,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:co(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var _p=function t(e){function n(a){return e?new Yc(a,e):new io(a,0)}return n.alpha=function(a){return t(+a)},n}(.5);function Hc(t,e){this._context=t,this._alpha=e}Hc.prototype={areaStart:mr,areaEnd:mr,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,a=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+a*a,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:co(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var qp=function t(e){function n(a){return e?new Hc(a,e):new so(a,0)}return n.alpha=function(a){return t(+a)},n}(.5);function Wc(t,e){this._context=t,this._alpha=e}Wc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,a=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+a*a,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:co(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var tm=function t(e){function n(a){return e?new Wc(a,e):new oo(a,0)}return n.alpha=function(a){return t(+a)},n}(.5);function Kc(t){return t<0?-1:1}function Zc(t,e,n){var a=t._x1-t._x0,i=e-t._x1,s=(t._y1-t._y0)/(a||i<0&&-0),o=(n-t._y1)/(i||a<0&&-0),l=(s*i+o*a)/(a+i);return(Kc(s)+Kc(o))*Math.min(Math.abs(s),Math.abs(o),.5*Math.abs(l))||0}function kc(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function uo(t,e,n){var a=t._x0,i=t._y0,s=t._x1,o=t._y1,l=(s-a)/3;t._context.bezierCurveTo(a+l,i+l*e,s-l,o-l*n,s,o)}function zi(t){this._context=t}zi.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:uo(this,this._t0,kc(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,uo(this,kc(this,n=Zc(this,t,e)),n);break;default:uo(this,this._t0,n=Zc(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function Jc(t){this._context=new Qc(t)}(Jc.prototype=Object.create(zi.prototype)).point=function(t,e){zi.prototype.point.call(this,e,t)};function Qc(t){this._context=t}Qc.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,a,i,s){this._context.bezierCurveTo(e,t,a,n,s,i)}};function em(t){return new zi(t)}function nm(t){return new Jc(t)}function _c(t){this._context=t}_c.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var a=qc(t),i=qc(e),s=0,o=1;o<n;++s,++o)this._context.bezierCurveTo(a[0][s],i[0][s],a[1][s],i[1][s],t[o],e[o]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};function qc(t){var e,n=t.length-1,a,i=new Array(n),s=new Array(n),o=new Array(n);for(i[0]=0,s[0]=2,o[0]=t[0]+2*t[1],e=1;e<n-1;++e)i[e]=1,s[e]=4,o[e]=4*t[e]+2*t[e+1];for(i[n-1]=2,s[n-1]=7,o[n-1]=8*t[n-1]+t[n],e=1;e<n;++e)a=i[e]/s[e-1],s[e]-=a,o[e]-=a*o[e-1];for(i[n-1]=o[n-1]/s[n-1],e=n-2;e>=0;--e)i[e]=(o[e]-i[e+1])/s[e];for(s[n-1]=(t[n]+i[n-1])/2,e=0;e<n-1;++e)s[e]=2*t[e+1]-i[e+1];return[i,s]}function rm(t){return new _c(t)}function tu(t){this._context=t}tu.prototype={areaStart:mr,areaEnd:mr,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function am(t){return new tu(t)}function eu(t){this._context=t}eu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function fo(t){return new eu(t)}function ji(t,e){this._context=t,this._t=e}ji.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function im(t){return new ji(t,.5)}function sm(t){return new ji(t,0)}function om(t){return new ji(t,1)}function lm(t){const e=this;let n;return e.isLineType(t)?n=e.generateGetLinePoints(e.getShapeIndices(e.isLineType)):e.isBarType(t)&&(n=e.generateGetBarPoints(e.getShapeIndices(e.isBarType))),n}var cm={getDrawShape(){const t=this,e=t.config.axis_rotated,{hasRadar:n,hasTreemap:a}=t.state,i={type:{},indices:{},pos:{}};if(!a&&["bar","candlestick","line","area"].forEach(s=>{const o=In(/^(bubble|scatter)$/.test(s)?"line":s);if(t.hasType(s)||t.hasTypeOf(o)||s==="line"&&(t.hasType("bubble")||t.hasType("scatter"))){const l=t.getShapeIndices(t[`is${o}Type`]),c=t[`generateDraw${o}`];i.indices[s]=l,i.type[s]=c?c.bind(t)(l,!1):void 0}}),!t.hasArcType()||n||a){let s,o;a||(s=n?t.radarCircleX:e?t.circleY:t.circleX,o=n?t.radarCircleY:e?t.circleX:t.circleY),i.pos={xForText:t.generateXYForText(i.indices,!0),yForText:t.generateXYForText(i.indices,!1),cx:(s||function(){}).bind(t),cy:(o||function(){}).bind(t)}}return i},getShapeIndices(t){const e=this,{config:n}=e,a=n.data_xs,i=nn(a),s={};let o=i?{}:0;return i&&Ps(Object.keys(a).map(l=>a[l])).forEach(l=>{o[l]=0,s[l]={}}),e.filterTargetsToShow(e.data.targets.filter(t,e)).forEach(l=>{var c;const u=l.id in a?a[l.id]:"",g=u?s[u]:s;for(let v=0,m;m=n.data_groups[v];v++)if(!(m.indexOf(l.id)<0))for(let S=0,I;I=m[S];S++){if(I in g){g[l.id]=g[I];break}l.id!==I&&u&&(g[I]=(c=g[l.id])!=null?c:o[u])}en(g[l.id])&&(g[l.id]=u?o[u]++:o++,g.__max__=(u?o[u]:o)-1)}),s},getIndices(t,e,n){const a=this,{data_xs:i,bar_indices_removeNull:s}=a.config,{id:o,index:l}=e;if(a.isBarType(o)&&s){const c={};return a.getAllValuesOnIndex(l,!0).forEach((u,g)=>{c[u.id]=g,c.__max__=g}),c}return nn(i)?t[i[o]]:t},getIndicesMax(t){return nn(this.config.data_xs)?Object.keys(t).map(e=>t[e].__max__||0).reduce((e,n)=>e+n):t.__max__},getShapeX(t,e,n){const a=this,{config:i,scale:s}=a,o=n?s.subX:s.zoom||s.x,l=i.bar_overlap,c=i.bar_padding,u=(v,m)=>v+m,g=Jn(t)&&(t._$total.length?t._$total.reduce(u)/2:0);return v=>{const m=a.getIndices(e,v,"getShapeX"),S=v.id in m?m[v.id]:0,I=(m.__max__||0)+1;let N=0;if(nn(v.x)){const M=o(v.x,!0);if(g){const P=t[v.id]||t._$width;N=l?M-P/2:M-P+t._$total.slice(0,S+1).reduce(u)-g}else N=M-(ue(t)?t:t._$width)*(I/2-(l?1:S))}return t&&N&&I>1&&c&&(S&&(N+=c*S),I>2?N-=(I-1)*c/2:I===2&&(N-=c/2)),N}},getShapeY(t){const e=this,n=e.isStackNormalized();return a=>{let{value:i}=a;return ue(a)?i=a:e.isAreaRangeType(a)?i=e.getBaseValue(a,"mid"):n?i=e.getRatio("index",a,!0):e.isBubbleZType(a)?i=e.getBubbleZData(a.value,"y"):e.isBarRangeType(a)&&(i=i[1]),e.getYScaleById(a.id,t)(i)}},getShapeYMin(t){const e=this,n=e.axis.getId(t),a=e.scale[n],[i]=a.domain(),s=e.config[`axis_${n}_inverted`];return!e.isGrouped(t)&&!s&&i>0?i:0},getShapeOffsetData(t){const e=this,n=e.orderTargets(e.filterTargetsToShow(e.data.targets.filter(t,e))),a=e.isStackNormalized(),i=n.map(o=>{let l=o.values;const c={};e.isStepType(o)&&(l=e.convertValuesToStep(l));const u=l.reduce((g,v)=>{const m=Number(v.x);return g[m]=v,c[m]=a?e.getRatio("index",v,!0):v.value,g},{});return{id:o.id,rowValues:l,rowValueMapByXValue:u,values:c}});return{indexMapByTargetId:n.reduce((o,{id:l},c)=>(o[l]=c,o),{}),shapeOffsetTargets:i}},getShapeOffset(t,e,n){const a=this,{shapeOffsetTargets:i,indexMapByTargetId:s}=a.getShapeOffsetData(t),o=a.config.data_groupsZeroAs;return(l,c)=>{const{id:u,value:g,x:v}=l,m=a.getIndices(e,l),S=a.getYScaleById(u,n);if(a.isBarRangeType(l))return S(g[0]);const I=Number(v),N=S(o==="zero"?0:a.getShapeYMin(u));let M=N;return i.filter(P=>P.id!==u&&m[P.id]===m[u]).forEach(P=>{const{id:X,rowValueMapByXValue:W,rowValues:G,values:k}=P;if(s[X]<s[u]){const H=k[I];let at=G[c];(!at||Number(at.x)!==I)&&(at=W[I]),(at==null?void 0:at.value)*g>=0&&ue(H)&&(g!==0||o==="positive"&&H>0||o==="negative"&&H<0)&&(M+=S(H)-N)}}),M}},circleY(t,e){const n=this,a=t.id;let i;return n.isGrouped(a)&&(i=lm.bind(n)(t)),i?i(t,e)[0][1]:n.getYScaleById(a)(n.getBaseValue(t))},getBarW(t,e,n){var a,i,s,o,l;const c=this,{config:u,org:g,scale:v}=c,m=c.getMaxDataCount(),S=t==="bar"&&((a=u.data_groups)==null?void 0:a.length),I=`${t}_width`,{k:N}=(s=(i=c.getZoomTransform)==null?void 0:i.call(c))!=null?s:{k:1},M=[(o=u.axis_x_min)!=null?o:g.xDomain[0],(l=u.axis_x_max)!=null?l:g.xDomain[1]].map(c.axis.isTimeSeries()?Dn.bind(c):Number);let P=e.tickInterval(m);if(v.zoom&&!c.axis.isCategorized()&&N>1){const G=M.every((k,H)=>k===g.xDomain[H]);P=g.xDomain.map((k,H)=>{const at=G?k:k-Math.abs(M[H]);return v.zoom(at)}).reduce((k,H)=>Math.abs(k)+H)/m}const X=G=>{const k=G?u[I][G]:u[I],H=G?k.ratio:u[`${I}_ratio`],at=G?k.max:u[`${I}_max`],mt=ue(k)?k:n?P*H/n:0;return at&&mt>at?at:mt};let W=X();return!S&&Jn(u[I])&&(W={_$width:W,_$total:[]},c.filterTargetsToShow(c.data.targets).forEach(G=>{u[I][G.id]&&(W[G.id]=X(G.id),W._$total.push(W[G.id]||W._$width))})),W},getShapeByIndex(t,e,n){const a=this,{$el:i}=a,s=Ie(e)?`-${e}`:"";let o=i[t];return o&&!o.empty()?o=o.filter(l=>n?l.id===n:!0).filter(l=>Ie(e)?l.index===e:!0):o=(n?i.main.selectAll(`.${Ne[`${t}s`]}${a.getTargetSelectorSuffix(n)}`):i.main).selectAll(`.${Ne[t]}${s}`),o},isWithinShape(t,e){var n;const a=this,i=st(t);let s;return a.isTargetToShow(e.id)?(n=a.hasValidPointType)!=null&&n.call(a,t.nodeName)?s=a.isStepType(e)?a.isWithinStep(t,a.getYScaleById(e.id)(e.value)):a.isWithinCircle(t,a.isBubbleType(e)?a.pointSelectR(e)*1.5:0):t.nodeName==="path"&&(s=i.classed(Ne.bar)?a.isWithinBar(t):!0):s=!1,s},getInterpolate(t){const n=this.getInterpolateType(t);return{basis:Vp,"basis-closed":Yp,"basis-open":Hp,bundle:Wp,cardinal:Kp,"cardinal-closed":Zp,"cardinal-open":kp,"catmull-rom":_p,"catmull-rom-closed":qp,"catmull-rom-open":tm,"monotone-x":em,"monotone-y":nm,natural:rm,"linear-closed":am,linear:fo,step:im,"step-after":om,"step-before":sm}[n]},getInterpolateType(t){const e=this,{config:n}=e,a=n.spline_interpolation_type,i=e.isInterpolationType(a)?a:"cardinal";return e.isSplineType(t)?i:e.isStepType(t)?n.line_step_type:"linear"},isWithinBar(t){const e=zn(this.state.event,t),n=Xl(t),[a,i]=n,s=Math.min(a.x,i.x),o=Math.min(a.y,i.y),l=this.config.bar_sensitivity,{width:c,height:u}=t.getBBox(),g=s-l,v=s+c+l,m=o+u+l,S=o-l;return g<e[0]&&e[0]<v&&S<e[1]&&e[1]<m}},um=Object.defineProperty,fm=(t,e,n)=>e in t?um(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,$n=(t,e,n)=>(fm(t,typeof e!="symbol"?e+"":e,n),n);class Fr{constructor(e){$n(this,"api"),$n(this,"config"),$n(this,"cache"),$n(this,"$el"),$n(this,"state"),$n(this,"charts"),$n(this,"data",{xs:{},targets:[]}),$n(this,"axis"),$n(this,"scale",{x:null,y:null,y2:null,subX:null,subY:null,subY2:null,zoom:null}),$n(this,"org",{xScale:null,xDomain:null}),$n(this,"color"),$n(this,"patterns"),$n(this,"levelColor"),$n(this,"point"),$n(this,"brush"),$n(this,"format",{extraLineClasses:null,xAxisTick:null,dataTime:null,defaultAxisTime:null,axisTime:null});const n=this;n.api=e,n.config=new Pr,n.cache=new uv;const a=new sv;n.$el=a.getStore("element"),n.state=a.getStore("state"),n.$T=n.$T.bind(n)}$T(e,n,a){const{config:i,state:s}=this,o=i.transition_duration,l=i.subchart_show;let c=e;return c&&("tagName"in c&&(c=st(c)),c=(n!==!1&&o||n)&&(!s.zooming||s.dragging)&&!s.resizing&&s.rendered&&!l?c.transition(a).duration(o):c),c}beforeInit(){const e=this;e.callPluginHook("$beforeInit"),Ze(e.config.onbeforeinit,e.api)}afterInit(){const e=this;e.callPluginHook("$afterInit"),Ze(e.config.onafterinit,e.api)}init(){const e=this,{config:n,state:a,$el:i}=e,s=n.boost_useCssRule;if(fv(e),a.hasRadar=!a.hasAxis&&e.hasType("radar"),a.hasFunnel=!a.hasAxis&&e.hasType("funnel"),a.hasTreemap=!a.hasAxis&&e.hasType("treemap"),a.hasAxis=!e.hasArcType()&&!a.hasFunnel&&!a.hasTreemap,a.datetimeId=`bb-${+new Date*lr()}`,s){const l=fn.createElement("style");l.type="text/css",fn.head.appendChild(l),a.style={rootSelctor:`.${a.datetimeId}`,sheet:l.sheet},i.style=l}const o={element:n.bindto,classname:"bb"};De(n.bindto)&&(o.element=n.bindto.element||"#chart",o.classname=n.bindto.classname||o.classname),i.chart=he(o.element.node)?n.bindto.element:st(o.element||[]),i.chart.empty()&&(i.chart=st(fn.body.appendChild(fn.createElement("div")))),i.chart.html("").classed(o.classname,!0).classed(a.datetimeId,s).style("position","relative"),e.initParams(),e.initToRender()}initToRender(e){const n=this,{config:a,state:i,$el:{chart:s}}=n,o=()=>s.style("display")==="none"||s.style("visibility")==="hidden",l=a.render.lazy||o(),c=Ke.MutationObserver;l&&c&&a.render.observe!==!1&&!e&&new c((u,g)=>{o()||(g.disconnect(),!i.rendered&&n.initToRender(!0))}).observe(s.node(),{attributes:!0,attributeFilter:["class","style"]}),(!l||e)&&n.convertData(a,u=>{n.initWithData(u),n.afterInit()})}initParams(){var e;const n=this,{config:a,format:i,state:s}=n,o=a.axis_rotated;if(n.color=n.generateColor(),n.levelColor=n.generateLevelColor(),a.padding===!1&&(a.axis_x_show=!1,a.axis_y_show=!1,a.axis_y2_show=!1,a.subchart_show=!1),(n.hasPointType()||(e=n.hasLegendDefsPoint)!=null&&e.call(n))&&(n.point=n.generatePoint()),s.hasAxis){n.initClip(),i.extraLineClasses=n.generateExtraLineClass(),i.dataTime=a.data_xLocaltime?Yo:Ho,i.axisTime=a.axis_x_localtime?rs:as;const l=n.config.zoom_enabled&&n.config.zoom_type==="drag";i.defaultAxisTime=c=>{const{x:u,zoom:g}=n.scale,v=l?g:g&&u.orgDomain().toString()!==g.domain().toString(),m=c.getMilliseconds()&&".%L"||c.getSeconds()&&".:%S"||c.getMinutes()&&"%I:%M"||c.getHours()&&"%I %p"||c.getDate()!==1&&"%b %d"||v&&c.getDate()===1&&"%b'%y"||c.getMonth()&&"%-m/%-d"||"%Y";return i.axisTime(m)(c)}}s.isLegendRight=a.legend_position==="right",s.isLegendInset=a.legend_position==="inset",s.isLegendTop=a.legend_inset_anchor==="top-left"||a.legend_inset_anchor==="top-right",s.isLegendLeft=a.legend_inset_anchor==="top-left"||a.legend_inset_anchor==="bottom-left",s.rotatedPadding.top=n.getResettedPadding(s.rotatedPadding.top),s.rotatedPadding.right=o&&!a.axis_x_show?0:30,s.inputType=qg(a.interaction_inputType_mouse,a.interaction_inputType_touch)}initWithData(e){var n,a,i;const s=this,{config:o,scale:l,state:c,$el:u,org:g}=s,{hasAxis:v,hasFunnel:m,hasTreemap:S}=c,I=o.interaction_enabled,N=s.hasType("polar"),M=o.data_labels_backgroundColors;if(v&&(s.axis=s.getAxisInstance(),o.zoom_enabled&&s.initZoom()),s.data.xs={},s.data.targets=s.convertDataToTargets(e),o.data_filter&&(s.data.targets=s.data.targets.filter(o.data_filter.bind(s.api))),o.data_hide&&s.addHiddenTargetIds(o.data_hide===!0?s.mapToIds(s.data.targets):o.data_hide),o.legend_hide&&s.addHiddenLegendIds(o.legend_hide===!0?s.mapToIds(s.data.targets):o.legend_hide),s.updateSizes(),s.updateScales(!0),v){const{x:W,y:G,y2:k,subX:H,subY:at,subY2:mt}=l;W&&(W.domain(qr(s.getXDomain(s.data.targets),!o.axis_x_inverted)),H.domain(W.domain()),g.xDomain=W.domain()),G&&(G.domain(s.getYDomain(s.data.targets,"y")),at.domain(G.domain())),k&&(k.domain(s.getYDomain(s.data.targets,"y2")),mt&&mt.domain(k.domain()))}if(u.svg=u.chart.append("svg").style("overflow","hidden").style("display","block"),I&&c.inputType){const W=c.inputType==="touch",{onclick:G,onover:k,onout:H}=o;u.svg.on("click",(G==null?void 0:G.bind(s.api))||null).on(W?"touchstart":"mouseenter",(k==null?void 0:k.bind(s.api))||null).on(W?"touchend":"mouseleave",(H==null?void 0:H.bind(s.api))||null)}o.svg_classname&&u.svg.attr("class",o.svg_classname);const P=he(o.color_tiles)&&s.patterns;(v||P||N||S||M||(n=s.hasLegendDefsPoint)!=null&&n.call(s))&&(u.defs=u.svg.append("defs"),v&&["id","idXAxis","idYAxis","idGrid"].forEach(W=>{s.appendClip(u.defs,c.clip[W])}),s.generateTextBGColorFilter(M),P&&s.patterns.forEach(W=>u.defs.append(()=>W.node))),s.updateSvgSize(),s.bindResize();const X=u.svg.append("g").classed(Se.main,!0).attr("transform",m||S?null:s.getTranslate("main"));if(u.main=X,o.subchart_show&&s.initSubchart(),o.tooltip_show&&s.initTooltip(),o.title_text&&s.initTitle(),!S&&o.legend_show&&s.initLegend(),o.data_empty_label_text&&X.append("text").attr("class",`${An.text} ${Se.empty}`).attr("text-anchor","middle").attr("dominant-baseline","middle"),v&&(o.regions.length&&s.initRegion(),!o.clipPath&&s.axis.init()),X.append("g").classed(Se.chart,!0).attr("clip-path",v?c.clip.path:null),s.callPluginHook("$init"),s.initChartElements(),v&&(I&&((a=s.initEventRect)==null||a.call(s)),s.initGrid(),o.clipPath&&((i=s.axis)==null||i.init())),s.updateTargets(s.data.targets),s.updateDimension(),Ze(o.oninit,s.api),s.setBackground(),s.redraw({withTransition:!1,withTransform:!0,withUpdateXDomain:!0,withUpdateOrgXDomain:!0,withTransitionForAxis:!1,initializing:!0}),o.data_onmin||o.data_onmax){const W=s.getMinMaxData();Ze(o.data_onmin,s.api,W.min),Ze(o.data_onmax,s.api,W.max)}o.tooltip_show&&s.initShowTooltip(),c.rendered=!0}initChartElements(){const e=this,{hasAxis:n,hasRadar:a,hasTreemap:i}=e.state,s=[];if(n){const o=["bar","bubble","candlestick","line"];e.config.bar_front&&o.push(o.shift()),o.forEach(l=>{const c=In(l);(l==="line"&&e.hasTypeOf(c)||e.hasType(l))&&s.push(c)})}else if(i)s.push("Treemap");else if(e.hasType("funnel"))s.push("Funnel");else{const o=e.hasType("polar");a||s.push("Arc","Pie"),e.hasType("gauge")?s.push("Gauge"):a?s.push("Radar"):o&&s.push("Polar")}s.forEach(o=>{e[`init${o}`]()}),nn(e.config.data_labels)&&!e.hasArcType(null,["radar"])&&e.initText()}setChartElements(){const e=this,{$el:{chart:n,svg:a,defs:i,main:s,tooltip:o,legend:l,title:c,grid:u,needle:g,arcs:v,circle:m,bar:S,candlestick:I,line:N,area:M,text:P}}=e;e.api.$={chart:n,svg:a,defs:i,main:s,tooltip:o,legend:l,title:c,grid:u,arc:v,circles:m,bar:{bars:S},candlestick:I,line:{lines:N,areas:M},needle:g,text:{texts:P}}}setBackground(){const e=this,{config:{background:n},state:a,$el:{svg:i}}=e;if(nn(n)){const s=i.select("g").insert(n.imgUrl?"image":"rect",":first-child");n.imgUrl?s.attr("href",n.imgUrl):n.color&&s.style("fill",n.color).attr("clip-path",a.clip.path),s.attr("class",n.class||null).attr("width","100%").attr("height","100%")}}updateTargets(e){var n;const a=this,{hasAxis:i,hasFunnel:s,hasRadar:o,hasTreemap:l}=a.state,c=g=>a[`updateTargetsFor${g}`](e.filter(a[`is${g}Type`].bind(a)));if(a.updateTargetsForText(e),i)["bar","candlestick","line"].forEach(g=>{const v=In(g);(g==="line"&&a.hasTypeOf(v)||a.hasType(g))&&c(v)}),a.updateTargetsForSubchart&&a.updateTargetsForSubchart(e);else if(a.hasArcType(e)){let g="Arc";o?g="Radar":a.hasType("polar")&&(g="Polar"),c(g)}else s?c("Funnel"):l&&c("Treemap");const u=a.hasType("bubble")||a.hasType("scatter");u&&((n=a.updateTargetForCircle)==null||n.call(a)),a.filterTargetsToShowAtInit(u)}filterTargetsToShowAtInit(e=!1){const n=this,{$el:{svg:a},$T:i}=n;let s=`.${Se.target}`;e&&(s+=`, .${pn.chartCircles} > .${pn.circles}`),i(a.selectAll(s).filter(o=>n.isTargetToShow(o.id))).style("opacity",null)}getWithOption(e){const n={Dimension:!0,EventRect:!0,Legend:!1,Subchart:!0,Transform:!1,Transition:!0,TrimXDomain:!0,UpdateXAxis:"UpdateXDomain",UpdateXDomain:!1,UpdateOrgXDomain:!1,TransitionForExit:"Transition",TransitionForAxis:"Transition",Y:!0};return Object.keys(n).forEach(a=>{let i=n[a];ze(i)&&(i=n[i]),n[a]=vr(e,`with${a}`,i)}),n}initialOpacity(e){const n=this,{withoutFadeIn:a}=n.state;return n.getBaseValue(e)!==null&&a[e.id]?null:"0"}bindResize(){const e=this,{config:n,state:a}=e,i=vv(n.resize_timer),s=[];s.push(()=>Ze(n.onresize,e.api)),n.resize_auto&&s.push(()=>{a.resizing=!0,n.legend_show&&(e.updateSizes(),e.updateLegend()),e.api.flush(!1)}),s.push(()=>{Ze(n.onresized,e.api),a.resizing=!1}),s.forEach(o=>i.add(o)),e.resizeFunction=i,Ke.addEventListener("resize",e.resizeFunction=i)}callPluginHook(e,...n){this.config.plugins.forEach(a=>{e==="$beforeInit"&&(a.$$=this,this.api.plugins.push(a)),a[e](...n)})}}gn(Fr.prototype,[Iv,Cv,Pv,Fv,Bv,Gv,Xv,Nv,Vv,Yv,Hv,Lp,cm,Dp,Np,Up,zp,jp,Gp,Xp]);function dm(t){const e=this.config;let n,a,i;const s=()=>{const o=a.shift();if(o&&n&&Jn(n)&&o in n)return n=n[o],s();if(!o)return n};Object.keys(e).forEach(o=>{n=t,a=o.split("_"),i=s(),Ve(i)&&(e[o]=i)}),this.api&&(this.state.orgConfig=t)}var hm={resize(t){const e=this.internal,{config:n,state:a}=e;a.rendered&&(n.size_width=t?t.width:null,n.size_height=t?t.height:null,a.resizing=!0,this.flush(!1),e.resizeFunction())},flush(t){var e,n;const a=this.internal,{state:i,$el:{zoomResetBtn:s}}=a;i.rendered?(i.resizing?(e=a.brush)==null||e.updateResize():(n=a.axis)==null||n.setOrient(),s==null||s.style("display","none"),a.scale.zoom=null,t?a.redraw({withTransform:!0,withUpdateXDomain:!0,withUpdateOrgXDomain:!0,withLegend:!0}):a.updateAndRedraw({withLegend:!0,withTransition:!1,withTransitionForTransform:!1}),!i.resizing&&a.brush&&(a.brush.getSelection().call(a.brush.move),a.unselectRect())):a.initToRender(!0)},destroy(){const t=this.internal,{$el:{chart:e,style:n,svg:a}}=t;if(nn(t)){t.callPluginHook("$willDestroy"),t.charts.splice(t.charts.indexOf(this),1),t.unbindAllEvents(),a.select("*").interrupt(),t.resizeFunction.clear(),Ke.removeEventListener("resize",t.resizeFunction),e.classed("bb",!1).style("position",null).selectChildren().remove(),n&&n.parentNode.removeChild(n),Object.keys(this).forEach(i=>{i==="internal"&&Object.keys(t).forEach(s=>{t[s]=null}),this[i]=null,delete this[i]});for(const i in this)this[i]=()=>{}}return null},config(t,e,n){const a=this.internal,{config:i,state:s}=a,o=t==null?void 0:t.replace(/\./g,"_");let l;return t&&o in i?Ve(e)?(i[o]=e,l=e,n&&this.flush()):l=i[o]:(arguments.length===0||Wn(t))&&(l=s.orgConfig),l}},gm={color(t){return this.internal.color(t)}};const nu=function(t){const{targets:e}=this.internal.data;if(!en(t)){const n=Fe(t)?t:[t];return e.filter(a=>n.some(i=>i===a.id))}return e};gn(nu,{shown:function(t){return this.internal.filterTargetsToShow(this.data(t))},values:function(t,e=!0){let n=null;if(t){const a=this.data(t);Fe(a)&&(n=[],a.forEach(i=>{const s=i.values.map(o=>o.value);e?n=n.concat(s):n.push(s)}))}return n},names:function(t){return this.internal.updateDataAttributes("names",t)},colors:function(t){return this.internal.updateDataAttributes("colors",t)},axes:function(t){return this.internal.updateDataAttributes("axes",t)},min:function(){return this.internal.getMinMaxData().min},max:function(){return this.internal.getMinMaxData().max}});var vm={data:nu};const pm=t=>{var e,n;return(n=(e=Ke).btoa)==null?void 0:n.call(e,encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,(a,i)=>String.fromCharCode(+`0x${i}`)))};function mm(t,e,n){const{width:a,height:i}=e||n,s=new XMLSerializer,o=t.cloneNode(!0),l=Qg(Cr(fn.styleSheets)).filter(m=>m.cssText).map(m=>m.cssText);o.setAttribute("xmlns",ee.xhtml),o.style.margin="0",o.style.padding="0",e.preserveFontStyle&&o.querySelectorAll("text").forEach(m=>{m.innerHTML=""});const c=s.serializeToString(o),u=fn.createElement("style");u.appendChild(fn.createTextNode(l.join(` +`)));const g=s.serializeToString(u),v=`<svg xmlns="${ee.svg}" width="${a}" height="${i}" + viewBox="0 0 ${n.width} ${n.height}" + preserveAspectRatio="${(e==null?void 0:e.preserveAspectRatio)===!1?"none":"xMinYMid meet"}"> + <foreignObject width="100%" height="100%"> + ${g} + ${c.replace(/(url\()[^#]+/g,"$1")} + </foreignObject></svg>`;return`data:image/svg+xml;base64,${pm(v)}`}function ym(t,e){const{top:n,left:a}=e,{x:i,y:s}=t.getBBox(),{a:o,b:l,c,d:u,e:g,f:v}=t.getScreenCTM(),{width:m,height:S}=t.getBoundingClientRect();return{x:o*i+c*s+g-a,y:l*i+u*s+v-n+(S-Math.round(S/4)),width:m,height:S}}function xm(t){const{left:e,top:n}=t.getBoundingClientRect(),a=s=>s.textContent||s.childElementCount,i=[];return Cr(t.querySelectorAll("text")).filter(a).forEach(s=>{const o=l=>{const{fill:c,fontFamily:u,fontSize:g,textAnchor:v,transform:m}=Ke.getComputedStyle(l),{x:S,y:I,width:N,height:M}=ym(l,{left:e,top:n});return{[l.textContent]:{x:S,y:I,width:N,height:M,fill:c,fontFamily:u,fontSize:g,textAnchor:v,transform:m}}};if(s.childElementCount>1){const l=[];return Cr(s.querySelectorAll("tspan")).filter(a).forEach(c=>{i.push(o(c))}),l}else i.push(o(s))}),i}function Tm(t,e){e.forEach(n=>{Object.keys(n).forEach(a=>{const{x:i,y:s,width:o,height:l,fill:c,fontFamily:u,fontSize:g,transform:v}=n[a];if(t.save(),t.font=`${g} ${u}`,t.fillStyle=c,v==="none")t.fillText(a,i,s);else{const m=v.replace(/(matrix|\(|\))/g,"").split(",");m.splice(4).every(S=>+S==0)?(m.push(i+o-o/4),m.push(s-l+l/3)):(m.push(i),m.push(s)),t.transform(...m),t.fillText(a,0,0)}t.restore()})})}var $m={export(t,e){const n=this.internal,{state:a,$el:{chart:i,svg:s}}=n,{width:o,height:l}=a.current,c=_r({width:o,height:l,preserveAspectRatio:!0,preserveFontStyle:!1,mimeType:"image/png"},t),u=mm(i.node(),c,{width:o,height:l}),g=c.preserveFontStyle?xm(s.node()):[];if(e&&he(e)){const v=new Image;v.crossOrigin="Anonymous",v.onload=()=>{const m=fn.createElement("canvas"),S=m.getContext("2d");m.width=c.width||o,m.height=c.height||l,S.drawImage(v,0,0),g.length&&(Tm(S,g),g.length=0),e.bind(this)(m.toDataURL(c.mimeType))},v.src=u}return u}},Sm={focus(t){const e=this.internal,{state:n}=e,a=e.mapToTargetIds(t),i=e.$el.svg.selectAll(e.selectorTargets(a.filter(e.isTargetToShow,e)));this.revert(),this.defocus(),i.classed(We.focused,!0).classed(We.defocused,!1),e.hasArcType()&&!n.hasRadar&&(e.expandArc(a),e.hasType("gauge")&&e.markOverlapped(t,e,`.${Ln.gaugeValue}`)),e.toggleFocusLegend(a,!0),n.focusedTargetIds=a,n.defocusedTargetIds=n.defocusedTargetIds.filter(s=>a.indexOf(s)<0)},defocus(t){const e=this.internal,{state:n}=e,a=e.mapToTargetIds(t);e.$el.svg.selectAll(e.selectorTargets(a.filter(e.isTargetToShow,e))).classed(We.focused,!1).classed(We.defocused,!0),e.hasArcType(null,["polar"])&&(e.unexpandArc(a),e.hasType("gauge")&&e.undoMarkOverlapped(e,`.${Ln.gaugeValue}`)),e.toggleFocusLegend(a,!1),n.focusedTargetIds=n.focusedTargetIds.filter(s=>a.indexOf(s)<0),n.defocusedTargetIds=a},revert(t){const e=this.internal,{config:n,state:a,$el:i}=e,s=e.mapToTargetIds(t);i.svg.selectAll(e.selectorTargets(s)).classed(We.focused,!1).classed(We.defocused,!1),e.hasArcType(null,["polar"])&&e.unexpandArc(s),n.legend_show&&(e.showLegend(s.filter(e.isLegendToShow.bind(e))),i.legend.selectAll(e.selectorLegends(s)).filter(function(){return st(this).classed(We.legendItemFocused)}).classed(We.legendItemFocused,!1)),a.focusedTargetIds=[],a.defocusedTargetIds=[]}},Am={legend:{show:function(t){const e=this.internal;e.showLegend(e.mapToTargetIds(t)),e.updateAndRedraw({withLegend:!0})},hide:function(t){const e=this.internal;e.hideLegend(e.mapToTargetIds(t)),e.updateAndRedraw({withLegend:!0})}}},bm={load(t){const e=this.internal,{config:n}=e;t.xs&&e.addXs(t.xs),"names"in t&&this.data.names(t.names),"classes"in t&&Object.keys(t.classes).forEach(a=>{n.data_classes[a]=t.classes[a]}),"categories"in t&&e.axis.isCategorized()&&(n.axis_x_categories=t.categories),"axes"in t&&Object.keys(t.axes).forEach(a=>{n.data_axes[a]=t.axes[a]}),"colors"in t&&Object.keys(t.colors).forEach(a=>{n.data_colors[a]=t.colors[a]}),"unload"in t&&t.unload!==!1?e.unload(e.mapToTargetIds(t.unload===!0?null:t.unload),()=>{Ul(()=>e.loadFromArgs(t))}):e.loadFromArgs(t)},unload(t){const e=this.internal;let n=t||{};Wn(n)&&this.tooltip.hide(),Fe(n)?n={ids:n}:ze(n)&&(n={ids:[n]});const a=e.mapToTargetIds(n.ids);e.unload(a,()=>{e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0}),e.cache.remove(a),oc.call(e,n.done,n.resizeAfter)})}};function ru(t,e,n){const a=this.internal,i=a.mapToTargetIds(e),s=a.state.hiddenTargetIds.map(c=>i.indexOf(c)>-1&&c).filter(Boolean);a.state.toggling=!0,a[`${t?"remove":"add"}HiddenTargetIds`](i);const o=a.$el.svg.selectAll(a.selectorTargets(i)),l=t?null:"0";t&&s.length&&(o.style("display",null),Ze(a.config.data_onshown,this,s)),a.$T(o).style("opacity",l,"important").call($i,()=>{!t&&s.length===0&&(o.style("display","none"),Ze(a.config.data_onhidden,this,i)),o.style("opacity",l)}),n.withLegend&&a[`${t?"show":"hide"}Legend`](i),a.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0}),a.state.toggling=!1}var Em={show(t,e={}){ru.call(this,!0,t,e)},hide(t,e={}){ru.call(this,!1,t,e)},toggle(t,e={}){const n=this.internal,a={show:[],hide:[]};n.mapToTargetIds(t).forEach(i=>a[n.isTargetToShow(i)?"hide":"show"].push(i)),a.show.length&&this.show(a.show,e),a.hide.length&&setTimeout(()=>this.hide(a.hide,e),0)}},Rm={tooltip:{show:function(t){var e,n,a;const i=this.internal,{$el:s,config:o,state:{eventReceiver:l,hasFunnel:c,hasTreemap:u,inputType:g}}=i;let v,m;if(t.mouse&&(m=t.mouse),t.data){const{data:S}=t,I=(e=i.getYScaleById(S.id))==null?void 0:e(S.value);if((c||u)&&S.id){const N=i.selectorTarget(S.id,void 0,`.${tn.shape}`);l.rect=s.main.select(N)}else i.isMultipleX()?m=[i.xx(S),I]:(o.tooltip_grouped||(m=[0,I]),v=(a=S.index)!=null?a:i.hasArcType()&&S.id?(n=i.getArcElementByIdOrIndex(S.id))==null?void 0:n.datum().index:i.getIndexByX(S.x))}else Ve(t.x)?v=i.getIndexByX(t.x):Ve(t.index)&&(v=t.index);(g==="mouse"?["mouseover","mousemove"]:["touchstart"]).forEach(S=>{i.dispatchEvent(S,v,m)})},hide:function(){var t,e,n;const a=this.internal,{state:{inputType:i},$el:{tooltip:s}}=a,o=s==null?void 0:s.datum();if(o){const{index:l}=JSON.parse(o.current)[0];(i==="mouse"?["mouseout"]:["touchend"]).forEach(c=>{a.dispatchEvent(c,l)})}i==="touch"&&a.callOverOutForTouch(),a.hideTooltip(!0),(t=a.hideGridFocus)==null||t.call(a),(e=a.unexpandCircles)==null||e.call(a),(n=a.expandBarTypeShapes)==null||n.call(a,!1)}}},Om=Object.defineProperty,Im=(t,e,n)=>e in t?Om(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,au=(t,e,n)=>(Im(t,typeof e!="symbol"?e+"":e,n),n);class yr{constructor(e){au(this,"plugins",[]),au(this,"internal");const n=new Fr(this);this.internal=n,function a(i,s,o){Object.keys(i).forEach(l=>{const c=he(i[l]),u=s!==o,g=nn(i[l]),v=g&&Object.keys(i[l]).length>0;c&&(!u&&v||u)?s[l]=i[l].bind(o):g&&!c?s[l]={}:s[l]=i[l],v&&a(i[l],s[l],o)})}(yr.prototype,this,this),dm.call(n,e),n.beforeInit(),n.init()}}gn(yr.prototype,[hm,gm,vm,$m,Sm,Am,bm,Em,Rm]);function iu(t=!1,e,n,a){const i=this,{config:s,$el:{main:o}}=i,l=s.data_selection_grouped,c=s.data_selection_isselectable.bind(i.api);s.data_selection_enabled&&o.selectAll(`.${tn.shapes}`).selectAll(`.${tn.shape}`).each(function(u){const g=st(this),{id:v,index:m}=u.data?u.data:u,S=i.getToggle(this,u).bind(i),I=l||!e||e.indexOf(v)>=0,N=!n||n.indexOf(m)>=0,M=g.classed(ke.SELECTED);g.classed(ar.line)||g.classed(qa.area)||(t?I&&N&&c(u)&&!M?S(!0,g.classed(ke.SELECTED,!0),u,m):Ve(a)&&a&&M&&S(!1,g.classed(ke.SELECTED,!1),u,m):I&&N&&c(u)&&M&&S(!1,g.classed(ke.SELECTED,!1),u,m))})}var Cm={selected(t){const e=this.internal,n=[];return e.$el.main.selectAll(`.${tn.shapes+e.getTargetSelectorSuffix(t)}`).selectAll(`.${tn.shape}`).filter(function(){return st(this).classed(ke.SELECTED)}).each(a=>n.push(a)),n},select(t,e,n){const a=this.internal;iu.bind(a)(!0,t,e,n)},unselect(t,e){const n=this.internal;iu.bind(n)(!1,t,e)}};const su=function(t){var e;const n=this.internal,{axis:a,brush:i,config:s,scale:{x:o,subX:l},state:c}=n;let u;return s.subchart_show&&(u=t,Array.isArray(u)?(a.isTimeSeries()&&(u=u.map(v=>Dn.bind(n)(v))),n.withinRange(u,n.getZoomDomain("subX",!0),n.getZoomDomain("subX"))&&(c.domain=u,i.move(i.getSelection(),u.map(l)))):u=(e=c.domain)!=null?e:o.orgDomain()),u};gn(su,{show(){var t,e;const n=this.internal,{$el:{subchart:a},config:i}=n,s=i.subchart_show;if(!s){n.unbindZoomEvent(),i.subchart_show=!s,!a.main&&n.initSubchart();let o=a.main.selectAll(`.${Se.target}`);n.data.targets.length!==o.size()&&(n.updateSizes(),n.updateTargetsForSubchart(n.data.targets),o=(t=a.main)==null?void 0:t.selectAll(`.${Se.target}`)),o==null||o.style("opacity",null),(e=a.main)==null||e.style("display",null),this.resize()}},hide(){const t=this.internal,{$el:{subchart:{main:e}},config:n}=t;n.subchart_show&&(e==null?void 0:e.style("display"))!=="none"&&(n.subchart_show=!1,e.style("display","none"),this.resize())},toggle(){const t=this.internal,{config:e}=t;this.subchart[e.subchart_show?"hide":"show"]()},reset(){const t=this.internal,{brush:e}=t;e.clear(e.getSelection())}});var Pm={subchart:su},wm=1e-12;function ou(t){return((t=Math.exp(t))+1/t)/2}function Mm(t){return((t=Math.exp(t))-1/t)/2}function Lm(t){return((t=Math.exp(2*t))-1)/(t+1)}var Dm=function t(e,n,a){function i(s,o){var l=s[0],c=s[1],u=s[2],g=o[0],v=o[1],m=o[2],S=g-l,I=v-c,N=S*S+I*I,M,P;if(N<wm)P=Math.log(m/u)/e,M=function(at){return[l+at*S,c+at*I,u*Math.exp(e*at*P)]};else{var X=Math.sqrt(N),W=(m*m-u*u+a*N)/(2*u*n*X),G=(m*m-u*u-a*N)/(2*m*n*X),k=Math.log(Math.sqrt(W*W+1)-W),H=Math.log(Math.sqrt(G*G+1)-G);P=(H-k)/e,M=function(at){var mt=at*P,At=ou(k),St=u/(n*X)*(At*Lm(e*mt+k)-Mm(k));return[l+St*S,c+St*I,u*At/ou(e*mt+k)]}}return M.duration=P*1e3*e/Math.SQRT2,M}return i.rho=function(s){var o=Math.max(.001,+s),l=o*o,c=l*l;return t(o,l,c)},i}(Math.SQRT2,2,4),Gi=t=>()=>t;function Nm(t,{sourceEvent:e,target:n,transform:a,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:a,enumerable:!0,configurable:!0},_:{value:i}})}function cr(t,e,n){this.k=t,this.x=e,this.y=n}cr.prototype={constructor:cr,scale:function(t){return t===1?this:new cr(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new cr(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var _n=new cr(1,0,0);ho.prototype=cr.prototype;function ho(t){for(;!t.__zoom;)if(!(t=t.parentNode))return _n;return t.__zoom}function go(t){t.stopImmediatePropagation()}function Da(t){t.preventDefault(),t.stopImmediatePropagation()}function Fm(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Bm(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function lu(){return this.__zoom||_n}function Um(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function zm(){return navigator.maxTouchPoints||"ontouchstart"in this}function jm(t,e,n){var a=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],s=t.invertY(e[0][1])-n[0][1],o=t.invertY(e[1][1])-n[1][1];return t.translate(i>a?(a+i)/2:Math.min(0,a)||Math.max(0,i),o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o))}function Gm(){var t=Fm,e=Bm,n=jm,a=Um,i=zm,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],l=250,c=Dm,u=ni("start","zoom","end"),g,v,m,S=500,I=150,N=0,M=10;function P(Q){Q.property("__zoom",lu).on("wheel.zoom",mt,{passive:!1}).on("mousedown.zoom",At).on("dblclick.zoom",St).filter(i).on("touchstart.zoom",Tt).on("touchmove.zoom",Gt).on("touchend.zoom touchcancel.zoom",xt).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}P.transform=function(Q,Ct,ht,It){var Yt=Q.selection?Q.selection():Q;Yt.property("__zoom",lu),Q!==Yt?k(Q,Ct,ht,It):Yt.interrupt().each(function(){H(this,arguments).event(It).start().zoom(null,typeof Ct=="function"?Ct.apply(this,arguments):Ct).end()})},P.scaleBy=function(Q,Ct,ht,It){P.scaleTo(Q,function(){var Yt=this.__zoom.k,Xt=typeof Ct=="function"?Ct.apply(this,arguments):Ct;return Yt*Xt},ht,It)},P.scaleTo=function(Q,Ct,ht,It){P.transform(Q,function(){var Yt=e.apply(this,arguments),Xt=this.__zoom,Zt=ht==null?G(Yt):typeof ht=="function"?ht.apply(this,arguments):ht,Wt=Xt.invert(Zt),ne=typeof Ct=="function"?Ct.apply(this,arguments):Ct;return n(W(X(Xt,ne),Zt,Wt),Yt,o)},ht,It)},P.translateBy=function(Q,Ct,ht,It){P.transform(Q,function(){return n(this.__zoom.translate(typeof Ct=="function"?Ct.apply(this,arguments):Ct,typeof ht=="function"?ht.apply(this,arguments):ht),e.apply(this,arguments),o)},null,It)},P.translateTo=function(Q,Ct,ht,It,Yt){P.transform(Q,function(){var Xt=e.apply(this,arguments),Zt=this.__zoom,Wt=It==null?G(Xt):typeof It=="function"?It.apply(this,arguments):It;return n(_n.translate(Wt[0],Wt[1]).scale(Zt.k).translate(typeof Ct=="function"?-Ct.apply(this,arguments):-Ct,typeof ht=="function"?-ht.apply(this,arguments):-ht),Xt,o)},It,Yt)};function X(Q,Ct){return Ct=Math.max(s[0],Math.min(s[1],Ct)),Ct===Q.k?Q:new cr(Ct,Q.x,Q.y)}function W(Q,Ct,ht){var It=Ct[0]-ht[0]*Q.k,Yt=Ct[1]-ht[1]*Q.k;return It===Q.x&&Yt===Q.y?Q:new cr(Q.k,It,Yt)}function G(Q){return[(+Q[0][0]+ +Q[1][0])/2,(+Q[0][1]+ +Q[1][1])/2]}function k(Q,Ct,ht,It){Q.on("start.zoom",function(){H(this,arguments).event(It).start()}).on("interrupt.zoom end.zoom",function(){H(this,arguments).event(It).end()}).tween("zoom",function(){var Yt=this,Xt=arguments,Zt=H(Yt,Xt).event(It),Wt=e.apply(Yt,Xt),ne=ht==null?G(Wt):typeof ht=="function"?ht.apply(Yt,Xt):ht,je=Math.max(Wt[1][0]-Wt[0][0],Wt[1][1]-Wt[0][1]),Oe=Yt.__zoom,Ge=typeof Ct=="function"?Ct.apply(Yt,Xt):Ct,cn=c(Oe.invert(ne).concat(je/Oe.k),Ge.invert(ne).concat(je/Ge.k));return function(Le){if(Le===1)Le=Ge;else{var ln=cn(Le),Ht=je/ln[2];Le=new cr(Ht,ne[0]-ln[0]*Ht,ne[1]-ln[1]*Ht)}Zt.zoom(null,Le)}})}function H(Q,Ct,ht){return!ht&&Q.__zooming||new at(Q,Ct)}function at(Q,Ct){this.that=Q,this.args=Ct,this.active=0,this.sourceEvent=null,this.extent=e.apply(Q,Ct),this.taps=0}at.prototype={event:function(Q){return Q&&(this.sourceEvent=Q),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(Q,Ct){return this.mouse&&Q!=="mouse"&&(this.mouse[1]=Ct.invert(this.mouse[0])),this.touch0&&Q!=="touch"&&(this.touch0[1]=Ct.invert(this.touch0[0])),this.touch1&&Q!=="touch"&&(this.touch1[1]=Ct.invert(this.touch1[0])),this.that.__zoom=Ct,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(Q){var Ct=st(this.that).datum();u.call(Q,this.that,new Nm(Q,{sourceEvent:this.sourceEvent,target:P,type:Q,transform:this.that.__zoom,dispatch:u}),Ct)}};function mt(Q,...Ct){if(!t.apply(this,arguments))return;var ht=H(this,Ct).event(Q),It=this.__zoom,Yt=Math.max(s[0],Math.min(s[1],It.k*Math.pow(2,a.apply(this,arguments)))),Xt=Un(Q);if(ht.wheel)(ht.mouse[0][0]!==Xt[0]||ht.mouse[0][1]!==Xt[1])&&(ht.mouse[1]=It.invert(ht.mouse[0]=Xt)),clearTimeout(ht.wheel);else{if(It.k===Yt)return;ht.mouse=[Xt,It.invert(Xt)],kr(this),ht.start()}Da(Q),ht.wheel=setTimeout(Zt,I),ht.zoom("mouse",n(W(X(It,Yt),ht.mouse[0],ht.mouse[1]),ht.extent,o));function Zt(){ht.wheel=null,ht.end()}}function At(Q,...Ct){if(m||!t.apply(this,arguments))return;var ht=Q.currentTarget,It=H(this,Ct,!0).event(Q),Yt=st(Q.view).on("mousemove.zoom",ne,!0).on("mouseup.zoom",je,!0),Xt=Un(Q,ht),Zt=Q.clientX,Wt=Q.clientY;ls(Q.view),go(Q),It.mouse=[Xt,this.__zoom.invert(Xt)],kr(this),It.start();function ne(Oe){if(Da(Oe),!It.moved){var Ge=Oe.clientX-Zt,cn=Oe.clientY-Wt;It.moved=Ge*Ge+cn*cn>N}It.event(Oe).zoom("mouse",n(W(It.that.__zoom,It.mouse[0]=Un(Oe,ht),It.mouse[1]),It.extent,o))}function je(Oe){Yt.on("mousemove.zoom mouseup.zoom",null),cs(Oe.view,It.moved),Da(Oe),It.event(Oe).end()}}function St(Q,...Ct){if(t.apply(this,arguments)){var ht=this.__zoom,It=Un(Q.changedTouches?Q.changedTouches[0]:Q,this),Yt=ht.invert(It),Xt=ht.k*(Q.shiftKey?.5:2),Zt=n(W(X(ht,Xt),It,Yt),e.apply(this,Ct),o);Da(Q),l>0?st(this).transition().duration(l).call(k,Zt,It,Q):st(this).call(P.transform,Zt,It,Q)}}function Tt(Q,...Ct){if(t.apply(this,arguments)){var ht=Q.touches,It=ht.length,Yt=H(this,Ct,Q.changedTouches.length===It).event(Q),Xt,Zt,Wt,ne;for(go(Q),Zt=0;Zt<It;++Zt)Wt=ht[Zt],ne=Un(Wt,this),ne=[ne,this.__zoom.invert(ne),Wt.identifier],Yt.touch0?!Yt.touch1&&Yt.touch0[2]!==ne[2]&&(Yt.touch1=ne,Yt.taps=0):(Yt.touch0=ne,Xt=!0,Yt.taps=1+!!g);g&&(g=clearTimeout(g)),Xt&&(Yt.taps<2&&(v=ne[0],g=setTimeout(function(){g=null},S)),kr(this),Yt.start())}}function Gt(Q,...Ct){if(this.__zooming){var ht=H(this,Ct).event(Q),It=Q.changedTouches,Yt=It.length,Xt,Zt,Wt,ne;for(Da(Q),Xt=0;Xt<Yt;++Xt)Zt=It[Xt],Wt=Un(Zt,this),ht.touch0&&ht.touch0[2]===Zt.identifier?ht.touch0[0]=Wt:ht.touch1&&ht.touch1[2]===Zt.identifier&&(ht.touch1[0]=Wt);if(Zt=ht.that.__zoom,ht.touch1){var je=ht.touch0[0],Oe=ht.touch0[1],Ge=ht.touch1[0],cn=ht.touch1[1],Le=(Le=Ge[0]-je[0])*Le+(Le=Ge[1]-je[1])*Le,ln=(ln=cn[0]-Oe[0])*ln+(ln=cn[1]-Oe[1])*ln;Zt=X(Zt,Math.sqrt(Le/ln)),Wt=[(je[0]+Ge[0])/2,(je[1]+Ge[1])/2],ne=[(Oe[0]+cn[0])/2,(Oe[1]+cn[1])/2]}else if(ht.touch0)Wt=ht.touch0[0],ne=ht.touch0[1];else return;ht.zoom("touch",n(W(Zt,Wt,ne),ht.extent,o))}}function xt(Q,...Ct){if(this.__zooming){var ht=H(this,Ct).event(Q),It=Q.changedTouches,Yt=It.length,Xt,Zt;for(go(Q),m&&clearTimeout(m),m=setTimeout(function(){m=null},S),Xt=0;Xt<Yt;++Xt)Zt=It[Xt],ht.touch0&&ht.touch0[2]===Zt.identifier?delete ht.touch0:ht.touch1&&ht.touch1[2]===Zt.identifier&&delete ht.touch1;if(ht.touch1&&!ht.touch0&&(ht.touch0=ht.touch1,delete ht.touch1),ht.touch0)ht.touch0[1]=this.__zoom.invert(ht.touch0[0]);else if(ht.end(),ht.taps===2&&(Zt=Un(Zt,this),Math.hypot(v[0]-Zt[0],v[1]-Zt[1])<M)){var Wt=st(this).on("dblclick.zoom");Wt&&Wt.apply(this,arguments)}}}return P.wheelDelta=function(Q){return arguments.length?(a=typeof Q=="function"?Q:Gi(+Q),P):a},P.filter=function(Q){return arguments.length?(t=typeof Q=="function"?Q:Gi(!!Q),P):t},P.touchable=function(Q){return arguments.length?(i=typeof Q=="function"?Q:Gi(!!Q),P):i},P.extent=function(Q){return arguments.length?(e=typeof Q=="function"?Q:Gi([[+Q[0][0],+Q[0][1]],[+Q[1][0],+Q[1][1]]]),P):e},P.scaleExtent=function(Q){return arguments.length?(s[0]=+Q[0],s[1]=+Q[1],P):[s[0],s[1]]},P.translateExtent=function(Q){return arguments.length?(o[0][0]=+Q[0][0],o[1][0]=+Q[1][0],o[0][1]=+Q[0][1],o[1][1]=+Q[1][1],P):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},P.constrain=function(Q){return arguments.length?(n=Q,P):n},P.duration=function(Q){return arguments.length?(l=+Q,P):l},P.interpolate=function(Q){return arguments.length?(c=Q,P):c},P.on=function(){var Q=u.on.apply(u,arguments);return Q===u?P:Q},P.clickDistance=function(Q){return arguments.length?(N=(Q=+Q)*Q,P):Math.sqrt(N)},P.tapDistance=function(Q){return arguments.length?(M=+Q,P):M},P}const cu=function(t){var e;const n=this.internal,{axis:a,config:i,org:s,scale:o,state:l}=n,c=a.isCategorized();let u;if(i.zoom_enabled)if(u=t,Array.isArray(u)){if(a.isTimeSeries()&&(u=u.map(v=>Dn.bind(n)(v))),n.withinRange(u,n.getZoomDomain("zoom",!0),n.getZoomDomain("zoom"))){if(l.domain=u,u=n.getZoomDomainValue(u),n.api.tooltip.hide(),i.subchart_show){const v=o.zoom||o.x;n.brush.getSelection().call(n.brush.move,u.map(v))}else{const v=c?o.x.orgScale():s.xScale||o.x;n.updateCurrentZoomTransform(v,u)}n.setZoomResetButton()}}else u=n.zoom.getDomain();return(e=l.domain)!=null?e:u};gn(cu,{enable(t){const e=this.internal,{config:n}=e;/^(drag|wheel)$/.test(t)&&(n.zoom_type=t),n.zoom_enabled=!!t,e.zoom?t===!1&&e.bindZoomEvent(!1):(e.initZoom(),e.bindZoomEvent()),e.updateAndRedraw()},max(t){const e=this.internal,{config:n,org:{xDomain:a}}=e;return(t===0||t)&&(n.zoom_x_max=Kn("max",[a[1],t])),n.zoom_x_max},min(t){const e=this.internal,{config:n,org:{xDomain:a}}=e;return(t===0||t)&&(n.zoom_x_min=Kn("min",[a[0],t])),n.zoom_x_min},range(t){const e=this.zoom;if(De(t)){const{min:n,max:a}=t;Ve(n)&&e.min(n),Ve(a)&&e.max(a)}return{min:e.min(),max:e.max()}}});var Xm={zoom:cu,unzoom(){const t=this.internal,{config:e,$el:{eventRect:n,zoomResetBtn:a},scale:{zoom:i},state:s}=t;i&&(e.subchart_show?t.brush.getSelection().call(t.brush.move,null):t.zoom.updateTransformScale(_n),t.updateZoom(!0),a==null||a.style("display","none"),ho(n.node())!==_n&&t.zoom.transform(n,_n),s.domain=void 0)}},Vm={initBrush(){const t=this,{config:e,scale:n,$el:{subchart:a},state:i}=t,s=e.axis_rotated,o=e.subchart_size_height;let l,c,u;t.brush=(s?zg():Ug()).handleSize(5),t.brush.on("start brush end",g=>{const{selection:v,sourceEvent:m,target:S,type:I}=g;I==="start"&&(t.state.inputType==="touch"&&t.hideTooltip(),c=m?v:null),/(start|brush)/.test(I)&&(I==="brush"&&m&&i.domain&&(c==null||c.forEach((N,M)=>{N!==v[M]&&(i.domain[M]=n.x.orgDomain()[M])})),t.redrawForBrush(I!=="start")),I==="end"&&(l=n.x.orgDomain()),S!=null&&S.handle&&(v===null?t.brush.handle.attr("display","none"):t.brush.handle.attr("display",null).attr("transform",(N,M)=>{const P=[v[M],o/2];return`translate(${s?P.reverse():P})`}))}),t.brush.updateResize=function(){u&&clearTimeout(u),u=setTimeout(()=>{const g=this.getSelection();l&&Bl(g.node())&&this.move(g,l.map(n.subX.orgScale()))},0)},t.brush.update=function(){var g;return this.extent()()[1].filter(m=>isNaN(m)).length===0&&((g=a.main)==null||g.select(`.${Ne.brush}`).call(this)),this},t.brush.scale=function(g){const v=e.subchart_size_height;let m=t.getExtent();!m&&g.range?m=[[0,0],[g.range()[1],v]]:Fe(m)&&(m=m.map((S,I)=>[S,I>0?v:I])),s&&m[1].reverse(),this.extent(m),this.update()},t.brush.getSelection=()=>a.main?a.main.select(`.${Ne.brush}`):st([])},initSubchart(){const t=this,{config:e,state:{clip:n,hasAxis:a},$el:{defs:i,svg:s,subchart:o,axis:l}}=t;if(!a)return;const c=e.subchart_show?null:"hidden",u=`${n.id}-subchart`,g=t.getClipPath(u);n.idSubchart=u,t.appendClip(i,u),t.initBrush(),o.main=s.append("g").classed(Ne.subchart,!0).attr("transform",t.getTranslate("context"));const{main:v}=o;v.style("visibility",c),v.append("g").attr("clip-path",g).attr("class",Ne.chart),["bar","line","bubble","candlestick","scatter"].forEach(S=>{const I=In(/^(bubble|scatter)$/.test(S)?"circle":S);if(t.hasType(S)||t.hasTypeOf(I)){const N=v.select(`.${Ne.chart}`),M=Ne[`chart${I}s`];N.select(`.${M}`).empty()&&N.append("g").attr("class",M)}});const m=v.append("g").attr("clip-path",g).attr("class",Ne.brush).call(t.brush);e.subchart_showHandle&&t.addBrushHandle(m),l.subX=v.append("g").attr("class",Ne.axisX).attr("transform",t.getTranslate("subX")).attr("clip-path",e.axis_rotated?"":n.pathXAxis).style("visibility",e.subchart_axis_x_show?c:"hidden")},addBrushHandle(t){const e=this,{config:n}=e,a=n.axis_rotated,i=n.subchart_init_range,s="handle--custom",o=a?["M8.5 0 a6 6 0 0 0 -6 -6.5 H-2.5 a 6 6 0 0 0 -6 6.5 z m-5 -2 H-3.5 m7 -2 H-3.5z","M8.5 0 a6 -6 0 0 1 -6 6.5 H-2.5 a 6 -6 0 0 1 -6 -6.5z m-5 2 H-3.5 m7 2 H-3.5z"]:["M0 -8.5 A6 6 0 0 0 -6.5 -3.5 V2.5 A6 6 0 0 0 0 8.5 Z M-2 -3.5 V3.5 M-4 -3.5 V3.5z","M0 -8.5 A6 6 0 0 1 6.5 -3.5 V2.5 A6 6 0 0 1 0 8.5 Z M2 -3.5 V3.5 M4 -3.5 V3.5z"];e.brush.handle=t.selectAll(`.${s}`).data(a?[{type:"n"},{type:"s"}]:[{type:"w"},{type:"e"}]).enter().append("path").attr("class",s).attr("cursor",`${a?"ns":"ew"}-resize`).attr("d",l=>o[+/[se]/.test(l.type)]).attr("display",i?null:"none")},updateTargetsForSubchart(t){const e=this,{config:n,state:a,$el:{subchart:{main:i}}}=e;n.subchart_show&&(["bar","line","bubble","candlestick","scatter"].filter(s=>e.hasType(s)||e.hasTypeOf(In(s))).forEach(s=>{const o=/^(bubble|scatter)$/.test(s),l=In(o?"circle":s),c=e.getChartClass(l,!0),u=e.getClass(o?"circles":`${s}s`,!0),g=i.select(`.${Ne[`chart${`${l}s`}`]}`);if(o){const v=g.selectAll(`.${Ne.circles}`).data(t.filter(e[`is${In(s)}Type`].bind(e))).attr("class",u);v.exit().remove(),v.enter().append("g").attr("class",u)}else{const v=g.selectAll(`.${Ne[`chart${l}`]}`).attr("class",c).data(t.filter(e[`is${l}Type`].bind(e))),m=v.enter().append("g").style("opacity","0").attr("class",c).append("g").attr("class",u);v.exit().remove(),s==="line"&&e.hasTypeOf("Area")&&m.append("g").attr("class",e.getClass("areas",!0))}}),i.selectAll(`.${Ne.brush} rect`).attr(n.axis_rotated?"width":"height",n.axis_rotated?a.width2:a.height2))},redrawSubchart(t,e,n){var a;const i=this,{config:s,$el:{subchart:{main:o}},state:l}=i,c=!!e;if(o.style("visibility",s.subchart_show?null:"hidden"),s.subchart_show&&(((a=l.event)==null?void 0:a.type)==="zoom"&&i.brush.update(),t)){const u=s.subchart_init_range;if(!Hl(i)&&i.brush.update(),Object.keys(n.type).forEach(g=>{const v=In(g),m=i[`generateDraw${v}`](n.indices[g],!0);i[`update${v}`](c,!0),i[`redraw${v}`](m,c,!0)}),i.hasType("bubble")||i.hasType("scatter")){const{cx:g}=n.pos,v=i.updateCircleY(!0);i.updateCircle(!0),i.redrawCircle(g,v,c,void 0,!0)}!l.rendered&&u&&(l.domain=u,i.brush.move(i.brush.getSelection(),u.map(i.scale.x)))}},redrawForBrush(t=!0){var e;const n=this,{config:{subchart_onbrush:a,zoom_rescale:i},scale:s,state:o}=n;n.redraw({withTransition:!1,withY:i,withSubchart:!1,withUpdateXDomain:!0,withDimension:!1}),t&&o.rendered&&a.bind(n.api)((e=o.domain)!=null?e:s.x.orgDomain())},transformContext(t,e){const n=this,{$el:{subchart:a},$T:i}=n,s=e!=null&&e.axisSubX?e.axisSubX:i(a.main.select(`.${Ne.axisX}`),t);a.main.attr("transform",n.getTranslate("context")),s.attr("transform",n.getTranslate("subX"))},getExtent(){const t=this,{config:e,scale:n}=t;let a=e.axis_x_extent;if(a){if(he(a))a=a.bind(t.api)(t.getXDomain(t.data.targets),n.subX);else if(t.axis.isTimeSeries()&&a.every(isNaN)){const i=Dn.bind(t);a=a.map(s=>n.subX(i(s)))}}return a}},Ym={initZoom(){const t=this;t.scale.zoom=null,t.generateZoom(),t.initZoomBehaviour()},bindZoomEvent(t=!0){const e=this,{config:n}=e;n.zoom_enabled&&t?!n.subchart_show&&e.bindZoomOnEventRect():t===!1&&(e.api.unzoom(),e.unbindZoomEvent())},generateZoom(){const t=this,{config:e,org:n,scale:a}=t,i=Gm().duration(0).on("start",t.onZoomStart.bind(t)).on("zoom",t.onZoom.bind(t)).on("end",t.onZoomEnd.bind(t));i.orgScaleExtent=()=>{const s=e.zoom_extent||[1,10];return[s[0],Math.max(t.getMaxDataCount()/s[1],s[1])]},i.updateScaleExtent=function(){const s=Ir(t.scale.x.orgDomain())/Ir(t.getZoomDomain()),o=this.orgScaleExtent();return this.scaleExtent([o[0]*s,o[1]*s]),this},i.updateTransformScale=(s,o)=>{var l;const c=e.axis_rotated;(l=n.xScale)==null||l.range(a.x.range());const u=s[c?"rescaleY":"rescaleX"](n.xScale||a.x),g=t.trimXDomain(u.domain()),v=e.zoom_rescale;if(u.domain(g,n.xDomain),o){const m=u(a.x.domain()[0]),S=c?s.x:m,I=c?m:s.y;t.$el.eventRect.property("__zoom",_n.translate(S,I).scale(s.k))}t.state.xTickOffset||(t.state.xTickOffset=t.axis.x.tickOffset()),a.zoom=t.getCustomizedXScale(u),t.axis.x.scale(a.zoom),v?(!n.xScale&&(n.xScale=a.x.copy()),a.x.domain(g)):n.xScale&&(a.x.domain(n.xScale.domain()),n.xScale=null)},i.getDomain=()=>{const s=a[a.zoom?"zoom":"subX"].domain();return t.axis.isCategorized()&&(s[1]-=2),s},t.zoom=i},onZoomStart(t){const e=this,{sourceEvent:n}=t;n&&(e.zoom.startEvent=n,e.state.zooming=!0,Ze(e.config.zoom_onzoomstart,e.api,t))},onZoom(t){var e;const n=this,{config:a,scale:i,state:s,org:o}=n,{sourceEvent:l}=t,c=(t==null?void 0:t.transform)===_n;if(!a.zoom_enabled||n.filterTargetsToShow(n.data.targets).length===0||!i.zoom&&(l==null?void 0:l.type.indexOf("touch"))>-1&&(l==null?void 0:l.touches.length)===1)return;t.sourceEvent&&(s.zooming=!0,s.domain=void 0);const u=(l==null?void 0:l.type)==="mousemove",g=(l==null?void 0:l.wheelDelta)<0,{transform:v}=t;!u&&g&&i.x.domain().every((S,I)=>S!==o.xDomain[I])&&i.x.domain(o.xDomain),n.zoom.updateTransformScale(v,a.zoom_type==="wheel"&&l);const m=a.transition_duration>0&&!a.subchart_show&&(s.dragging||c||!t.sourceEvent);n.redraw({withTransition:m,withY:a.zoom_rescale,withSubchart:!1,withEventRect:!1,withDimension:!1}),n.state.cancelClick=u,!c&&Ze(a.zoom_onzoom,n.api,(e=n.state.domain)!=null?e:n.zoom.getDomain())},onZoomEnd(t){var e,n;const a=this,{config:i,state:s}=a;let{startEvent:o}=a.zoom,l=t==null?void 0:t.sourceEvent;const c=(t==null?void 0:t.transform)===_n;(o==null?void 0:o.type.indexOf("touch"))>-1&&(o=o.changedTouches[0],l=(e=l==null?void 0:l.changedTouches)==null?void 0:e[0]),!(i.zoom_type==="drag"&&l&&o.clientX===l.clientX&&o.clientY===l.clientY)&&(s.zooming=!1,a.redrawEventRect(),a.updateZoom(),!c&&(l||s.dragging)&&Ze(i.zoom_onzoomend,a.api,(n=a.state.domain)!=null?n:a.zoom.getDomain()))},updateZoom(t){const e=this,{subX:n,x:a,zoom:i}=e.scale;if(i){const s=i.domain(),o=n.domain(),l=.015,c=e.config.axis_x_inverted?(s[0]>=o[0]||s[0]+l>=o[0])&&(o[1]>=s[1]||o[1]>=s[1]+l):(s[0]<=o[0]||s[0]-l<=o[0])&&(o[1]<=s[1]||o[1]<=s[1]-l);(t||c)&&(e.axis.x.scale(n),a.domain(n.orgDomain()),e.scale.zoom=null)}},updateCurrentZoomTransform(t,e){const n=this,{$el:{eventRect:a},config:i}=n,s=i.axis_rotated,o=[-t(e[0]),0],l=_n.scale(t.range()[1]/(t(e[1])-t(e[0]))).translate(...s?o.reverse():o);a.call(n.zoom.transform,l)},bindZoomOnEventRect(){const t=this,{config:e,$el:{eventRect:n}}=t,a=e.zoom_type==="drag"?t.zoomBehaviour:t.zoom;n==null||n.call(a).on("dblclick.zoom",null)},initZoomBehaviour(){const t=this,{config:e,state:n}=t,a=e.axis_rotated;let i=0,s=0,o;const l={axis:a?"y":"x",attr:a?"height":"width",index:a?1:0};t.zoomBehaviour=lc().clickDistance(4).on("start",function(c){n.event=c,t.setDragStatus(!0),t.unselectRect(),o||(o=t.$el.main.append("rect").attr("clip-path",n.clip.path).attr("class",ss.zoomBrush).attr("width",a?n.width:0).attr("height",a?0:n.height)),i=zn(c,this)[l.index],s=i,o.attr(l.axis,i).attr(l.attr,0),t.onZoomStart(c)}).on("drag",function(c){s=zn(c,this)[l.index],o.attr(l.axis,Math.min(i,s)).attr(l.attr,Math.abs(s-i))}).on("end",c=>{const u=t.scale.zoom||t.scale.x;n.event=c,o.attr(l.axis,0).attr(l.attr,0),i>s&&([i,s]=[s,i]),i<0&&(s+=Math.abs(i),i=0),i!==s&&t.api.zoom([i,s].map(g=>u.invert(g))),t.setDragStatus(!1)})},setZoomResetButton(){const t=this,{config:e,$el:n}=t,a=e.zoom_resetButton;a&&e.zoom_type==="drag"&&(n.zoomResetBtn?n.zoomResetBtn.style("display",null):n.zoomResetBtn=t.$el.chart.append("div").classed(Se.button,!0).append("span").on("click",function(){he(a.onclick)&&a.onclick.bind(t.api)(this),t.api.unzoom()}).classed(ss.buttonZoomReset,!0).text(a.text||"Reset Zoom"))},getZoomTransform(){const t=this,{$el:{eventRect:e}}=t;return e!=null&&e.node()?ho(e.node()):{k:1}}},Hm={drag(t){const e=this,{config:n,state:a,$el:{main:i}}=e,s=n.data_selection_grouped,o=n.interaction_enabled&&n.data_selection_isselectable;if(e.hasArcType()||!n.data_selection_enabled||n.zoom_enabled&&!e.zoom.altDomain||!n.data_selection_multiple)return;const[l,c]=a.dragStart||[0,0],[u,g]=t,v=Math.min(l,u),m=Math.max(l,u),S=s?a.margin.top:Math.min(c,g),I=s?a.height:Math.max(c,g);i.select(`.${Ar.dragarea}`).attr("x",v).attr("y",S).attr("width",m-v).attr("height",I-S),i.selectAll(`.${tn.shapes}`).selectAll(`.${tn.shape}`).filter(N=>o==null?void 0:o.bind(e.api)(N)).each(function(N,M){const P=st(this),X=P.classed(ke.SELECTED),W=P.classed(Ar.INCLUDED);let G=!1,k;if(P.classed(pn.circle)){const H=+P.attr("cx")*1,at=+P.attr("cy")*1;k=e.togglePoint,G=v<H&&H<m&&S<at&&at<I}else if(P.classed(Gn.bar)){const{x:H,y:at,width:mt,height:At}=Vl(this);k=e.togglePath,G=!(m<H||H+mt<v)&&!(I<at||at+At<S)}else return;G^W&&(P.classed(Ar.INCLUDED,!W),P.classed(ke.SELECTED,!X),k.call(e,!X,P,N,M))})},dragstart(t){const e=this,{config:n,state:a,$el:{main:i}}=e;e.hasArcType()||!n.data_selection_enabled||(a.dragStart=t,i.select(`.${Se.chart}`).append("rect").attr("class",Ar.dragarea).style("opacity","0.1"),e.setDragStatus(!0))},dragend(){const t=this,{config:e,$el:{main:n},$T:a}=t;t.hasArcType()||!e.data_selection_enabled||(a(n.select(`.${Ar.dragarea}`)).style("opacity","0").remove(),n.selectAll(`.${tn.shape}`).classed(Ar.INCLUDED,!1),t.setDragStatus(!1))}},Wm=Object.defineProperty,Km=Object.defineProperties,Zm=Object.getOwnPropertyDescriptors,uu=Object.getOwnPropertySymbols,km=Object.prototype.hasOwnProperty,Jm=Object.prototype.propertyIsEnumerable,fu=(t,e,n)=>e in t?Wm(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Qm=(t,e)=>{for(var n in e||(e={}))km.call(e,n)&&fu(t,n,e[n]);if(uu)for(var n of uu(e))Jm.call(e,n)&&fu(t,n,e[n]);return t},_m=(t,e)=>Km(t,Zm(e)),qm=_m(Qm({},Hm),{selectPoint(t,e,n){const a=this,{config:i,$el:{main:s},$T:o}=a,l=i.axis_rotated,c=(l?a.circleY:a.circleX).bind(a),u=(l?a.circleX:a.circleY).bind(a),g=a.pointSelectR.bind(a);Ze(i.data_onselected,a.api,e,t.node()),o(s.select(`.${ke.selectedCircles}${a.getTargetSelectorSuffix(e.id)}`).selectAll(`.${ke.selectedCircle}-${n}`).data([e]).enter().append("circle").attr("class",()=>a.generateClass(ke.selectedCircle,n)).attr("cx",c).attr("cy",u).attr("stroke",a.color).attr("r",v=>a.pointSelectR(v)*1.4)).attr("r",g)},unselectPoint(t,e,n){const a=this,{config:i,$el:{main:s},$T:o}=a;Ze(i.data_onunselected,a.api,e,t==null?void 0:t.node()),o(s.select(`.${ke.selectedCircles}${a.getTargetSelectorSuffix(e.id)}`).selectAll(`.${ke.selectedCircle}-${n}`)).attr("r",0).remove()},togglePoint(t,e,n,a){this[`${t?"":"un"}selectPoint`](e,n,a)},selectPath(t,e){const n=this,{config:a}=n;Ze(a.data_onselected,n.api,e,t.node()),a.interaction_brighten&&t.style("filter","brightness(1.25)")},unselectPath(t,e){const n=this,{config:a}=n;Ze(a.data_onunselected,n.api,e,t.node()),a.interaction_brighten&&t.style("filter",null)},togglePath(t,e,n,a){this[`${t?"":"un"}selectPath`](e,n,a)},getToggle(t,e){const n=this;return t.nodeName==="path"?n.togglePath:n.isStepType(e)?()=>{}:n.togglePoint},toggleShape(t,e,n){var a;const i=this,{config:s,$el:{main:o}}=i;if(s.data_selection_enabled&&s.data_selection_isselectable.bind(i.api)(e)){const l=st(t),c=l.classed(ke.SELECTED),u=i.getToggle(t,e).bind(i);let g;if(!s.data_selection_multiple){const v=(a=i.isPointFocusOnly)==null?void 0:a.call(i);let m=`.${v?ke.selectedCircles:tn.shapes}`;s.data_selection_grouped&&(m+=i.getTargetSelectorSuffix(e.id)),o.selectAll(m).selectAll(v?`.${ke.selectedCircle}`:`.${tn.shape}.${ke.SELECTED}`).classed(ke.SELECTED,!1).each(function(S){const I=st(this);g=I,u(!1,I,S,S.index)})}(!g||g.node()!==l.node())&&(l.classed(ke.SELECTED,!c),u(!c,l,e,n))}}}),ty={data_selection_enabled:!1,data_selection_grouped:!1,data_selection_isselectable:()=>!0,data_selection_multiple:!0,data_selection_draggable:!1,data_onselected:()=>{},data_onunselected:()=>{}},ey={subchart_show:!1,subchart_showHandle:!1,subchart_size_height:60,subchart_axis_x_show:!0,subchart_axis_x_tick_show:!0,subchart_axis_x_tick_format:void 0,subchart_axis_x_tick_text_show:!0,subchart_init_range:void 0,subchart_onbrush:()=>{}},ny={zoom_enabled:!1,zoom_type:"wheel",zoom_extent:void 0,zoom_privileged:!1,zoom_rescale:!1,zoom_onzoom:void 0,zoom_onzoomstart:void 0,zoom_onzoomend:void 0,zoom_resetButton:!0,zoom_x_min:void 0,zoom_x_max:void 0};let du=()=>(gn(Fr.prototype,qm),gn(yr.prototype,Cm),Pr.setOptions([ty]),(du=()=>!0)()),hu=()=>(gn(Fr.prototype,Vm),gn(yr.prototype,Pm),Pr.setOptions([ey]),(hu=()=>!0)()),gu=()=>(gn(Fr.prototype,Ym),gn(yr.prototype,Xm),Pr.setOptions([ny]),(gu=()=>!0)());function vu(t,e,n){const{config:a}=t,i=(s,o)=>{const l=ue(o)?o:o===!1?void 0:null;l!==null&&(a[`axis_${s}_${e}`]=l)};Ve(n)&&(Jn(n)?Object.keys(n).forEach(s=>{i(s,n[s])}):(ue(n)||n===!1)&&["y","y2"].forEach(s=>{i(s,n)}),t.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0}))}function pu(t,e){const{config:n}=t;return{x:n[`axis_x_${e}`],y:n[`axis_y_${e}`],y2:n[`axis_y2_${e}`]}}var ry={axis:{labels:function(t){const e=this.internal;let n;return t&&(Object.keys(t).forEach(a=>{e.axis.setLabelText(a,t[a])}),e.axis.updateLabels()),["x","y","y2"].forEach(a=>{const i=e.axis.getLabelText(a);i&&(!n&&(n={}),n[a]=i)}),n},min:function(t){const e=this.internal;return Ie(t)||t===!1?vu(e,"min",t):pu(e,"min")},max:function(t){const e=this.internal;return Ie(t)||t===!1?vu(e,"max",t):pu(e,"max")},range:function(t){const{axis:e}=this;if(arguments.length){const{min:n,max:a}=t;Ve(a)&&e.max(a),Ve(n)&&e.min(n)}else return{max:e.max(),min:e.min()}}}},ay={category(t,e){const n=this.internal,{config:a}=n;return arguments.length>1&&(a.axis_x_categories[t]=e,n.redraw()),a.axis_x_categories[t]},categories(t){const e=this.internal,{config:n}=e;if(!t||!Array.isArray(t)){const a=n.axis_x_categories;return Wn(a)?Object.values(e.data.xs)[0]:a}return n.axis_x_categories=t,e.redraw(),n.axis_x_categories}},iy={flow(t){const e=this.internal;let n;(t.json||t.rows||t.columns)&&e.convertData(t,i=>{n=i,a()});function a(){let i,s=0,o=0,l,c;if(e.state.redrawing||!n||!Pa())return;const u=[],g=e.getMaxDataCount(),v=e.convertDataToTargets(n,!0),m=e.axis.isTimeSeries();e.data.targets.forEach(N=>{let M=!1;for(let P=0;P<v.length;P++)if(N.id===v[P].id){M=!0,N.values[N.values.length-1]&&(o=N.values[N.values.length-1].index+1),s=v[P].values.length;for(let X=0;X<s;X++)v[P].values[X].index=o+X,m||(v[P].values[X].x=o+X);N.values=N.values.concat(v[P].values),v.splice(P,1);break}!M&&u.push(N.id)}),e.data.targets.forEach(N=>{for(let M=0;M<u.length;M++)if(N.id===u[M]){o=N.values[N.values.length-1].index+1;for(let P=0;P<s;P++)N.values.push({id:N.id,index:o+P,x:m?e.getOtherTargetX(o+P):o+P,value:null})}}),e.data.targets.length&&v.forEach(N=>{const M=[];for(let P=e.data.targets[0].values[0].index;P<o;P++)M.push({id:N.id,index:P,x:m?e.getOtherTargetX(P):P,value:null});N.values.forEach(P=>{P.index+=o,m||(P.x+=o)}),N.values=M.concat(N.values)}),e.data.targets=e.data.targets.concat(v);const S=e.data.targets[0],I=S.values[0];Ve(t.to)?(s=0,c=m?Dn.call(e,t.to):t.to,S.values.forEach(N=>{N.x<c&&s++})):Ve(t.length)&&(s=t.length),g?g===1&&m&&(l=(S.values[S.values.length-1].x-I.x)/2,i=[new Date(+I.x-l),new Date(+I.x+l)]):(m?l=S.values.length>1?S.values[S.values.length-1].x-I.x:I.x-e.getXDomain(e.data.targets)[0]:l=1,i=[I.x-l,I.x]),i&&e.updateXDomain(null,!0,!0,!1,i),e.updateTargets(e.data.targets),e.redraw({flow:{index:I.index,length:s,duration:Ie(t.duration)?t.duration:e.config.transition_duration,done:t.done,orgDataCount:g},withLegend:!0,withTransition:g>1,withTrimXDomain:!1,withUpdateXAxis:!0})}}};function vo(t,e){const n=this.internal,{config:a}=n,i=a.transition_duration&&Pa(),s=`grid_${e}_lines`;return t&&(a[s]=t,n.updateGrid(),n.redrawGrid(i)),a[s]}function mu(t,e){const n=`grid_${e}_lines`;return vo.bind(this)(this.internal.config[n].concat(t||[]),e)}function yu(t,e){this.internal.removeGridLines(t,e)}const xu=function(t){return vo.bind(this)(t,"x")};gn(xu,{add(t){return mu.bind(this)(t,"x")},remove(t){return yu.bind(this)(t,!0)}});const Tu=function(t){return vo.bind(this)(t,"y")};gn(Tu,{add(t){return mu.bind(this)(t,"y")},remove(t){return yu.bind(this)(t,!1)}});var sy={xgrids:xu,ygrids:Tu},oy={groups(t){const e=this.internal,{config:n}=e;return en(t)||(n.data_groups=t,e.redraw()),n.data_groups}};function $u(t,e=!1){const n=this.internal,{config:a}=n,i=a.transition_duration&&Pa();return t?(a.regions=e?a.regions.concat(t):t,n.updateRegion(),n.redrawRegion(i),e?a.regions:t):a.regions}const Su=function(t){return $u.bind(this)(t)};gn(Su,{add:function(t){return $u.bind(this)(t,!0)},remove:function(t){const e=this.internal,{config:n,$T:a}=e,i=t||{},s=vr(i,"classes",[xa.region]);let o=e.$el.main.select(`.${xa.regions}`).selectAll(s.map(l=>`.${l}`));return a(o).style("opacity","0").remove(),o=n.regions,Object.keys(i).length?(o=o.filter(l=>{let c=!1;return l.class?(l.class.split(" ").forEach(u=>{s.indexOf(u)>=0&&(c=!0)}),!c):!0}),n.regions=o):n.regions=[],o}});var ly={regions:Su},cy={x(t){const e=this.internal,{axis:n,data:a}=e,i=n.isCustomX()&&n.isCategorized();return Fe(t)&&(i?this.categories(t):(e.updateTargetX(a.targets,t),e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0}))),i?this.categories():a.xs},xs(t){const e=this.internal;return De(t)&&(e.updateTargetXs(e.data.targets,t),e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})),e.data.xs}};function uy(t){return t}var Xi=1,Vi=2,po=3,Na=4,Au=1e-6;function fy(t){return"translate("+t+",0)"}function dy(t){return"translate(0,"+t+")"}function hy(t){return e=>+t(e)}function gy(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function vy(){return!this.__axis}function Yi(t,e){var n=[],a=null,i=null,s=6,o=6,l=3,c=typeof window!="undefined"&&window.devicePixelRatio>1?0:.5,u=t===Xi||t===Na?-1:1,g=t===Na||t===Vi?"x":"y",v=t===Xi||t===po?fy:dy;function m(S){var I=a==null?e.ticks?e.ticks.apply(e,n):e.domain():a,N=i==null?e.tickFormat?e.tickFormat.apply(e,n):uy:i,M=Math.max(s,0)+l,P=e.range(),X=+P[0]+c,W=+P[P.length-1]+c,G=(e.bandwidth?gy:hy)(e.copy(),c),k=S.selection?S.selection():S,H=k.selectAll(".domain").data([null]),at=k.selectAll(".tick").data(I,e).order(),mt=at.exit(),At=at.enter().append("g").attr("class","tick"),St=at.select("line"),Tt=at.select("text");H=H.merge(H.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),at=at.merge(At),St=St.merge(At.append("line").attr("stroke","currentColor").attr(g+"2",u*s)),Tt=Tt.merge(At.append("text").attr("fill","currentColor").attr(g,u*M).attr("dy",t===Xi?"0em":t===po?"0.71em":"0.32em")),S!==k&&(H=H.transition(S),at=at.transition(S),St=St.transition(S),Tt=Tt.transition(S),mt=mt.transition(S).attr("opacity",Au).attr("transform",function(Gt){return isFinite(Gt=G(Gt))?v(Gt+c):this.getAttribute("transform")}),At.attr("opacity",Au).attr("transform",function(Gt){var xt=this.parentNode.__axis;return v((xt&&isFinite(xt=xt(Gt))?xt:G(Gt))+c)})),mt.remove(),H.attr("d",t===Na||t===Vi?o?"M"+u*o+","+X+"H"+c+"V"+W+"H"+u*o:"M"+c+","+X+"V"+W:o?"M"+X+","+u*o+"V"+c+"H"+W+"V"+u*o:"M"+X+","+c+"H"+W),at.attr("opacity",1).attr("transform",function(Gt){return v(G(Gt)+c)}),St.attr(g+"2",u*s),Tt.attr(g,u*M).text(N),k.filter(vy).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Vi?"start":t===Na?"end":"middle"),k.each(function(){this.__axis=G})}return m.scale=function(S){return arguments.length?(e=S,m):e},m.ticks=function(){return n=Array.from(arguments),m},m.tickArguments=function(S){return arguments.length?(n=S==null?[]:Array.from(S),m):n.slice()},m.tickValues=function(S){return arguments.length?(a=S==null?null:Array.from(S),m):a&&a.slice()},m.tickFormat=function(S){return arguments.length?(i=S,m):i},m.tickSize=function(S){return arguments.length?(s=o=+S,m):s},m.tickSizeInner=function(S){return arguments.length?(s=+S,m):s},m.tickSizeOuter=function(S){return arguments.length?(o=+S,m):o},m.tickPadding=function(S){return arguments.length?(l=+S,m):l},m.offset=function(S){return arguments.length?(c=+S,m):c},m}function py(t){return Yi(Xi,t)}function my(t){return Yi(Vi,t)}function bu(t){return Yi(po,t)}function Eu(t){return Yi(Na,t)}var yy=Object.defineProperty,xy=(t,e,n)=>e in t?yy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,mo=(t,e,n)=>(xy(t,typeof e!="symbol"?e+"":e,n),n);class Ru{constructor(e){mo(this,"owner"),mo(this,"config"),mo(this,"scale");const n=Dr(),{config:a,params:i}=e;this.owner=e,this.config=a,this.scale=n,(a.noTransition||!i.config.transition_duration)&&(a.withoutTransition=!0),a.range=this.scaleExtent((i.orgXScale||n).range())}static getSizeFor1Char(e){const n={w:5.5,h:11.5};return!e.empty()&&e.select("text").text("0").call(a=>{try{const{width:i,height:s}=a.node().getBBox();i&&s&&(n.w=i,n.h=s)}catch(i){}finally{a.text("")}}),this.getSizeFor1Char=()=>n,n}getTickTransformSetter(e){const{config:n}=this,a=e==="x"?i=>`translate(${i+n.tickOffset},0)`:i=>`translate(0,${i})`;return(i,s)=>{i.attr("transform",o=>Ie(o)?a(Math.ceil(s(o))):null)}}scaleExtent(e){const n=e[0],a=e[e.length-1];return n<a?[n,a]:[a,n]}generateTicks(e,n){const{tickStepSize:a}=this.owner.params,[i,s]=e.domain();let o=[];if(n&&a){let l=Math.round(i);for(;l<=s;)o.push(l),l+=a}else if(e.ticks){const{tickArguments:l}=this.config;if(e.type==="log"&&!l){const c=Dr("_log").domain([i>0?i:1,s]).range(e.range());o=c.ticks();for(let u=s.toFixed().length;o.length>15;u--)o=c.ticks(u);o.splice(0,1,i),o.splice(o.length-1,1,s)}else o=e.ticks(...this.config.tickArguments||[]);o=o.map(c=>ze(c)&&ue(c)&&!isNaN(c)&&Math.round(c*10)/10||c)}return o}copyScale(){const e=this.scale.copy();return e.domain().length||e.domain(this.scale.domain()),e.type=this.scale.type,e}textFormatted(e){const n=this.config.tickFormat,a=/\d+\.\d+0{5,}\d$/.test(e)?+String(e).replace(/0+\d$/,""):e,i=n?n(a):a;return Ve(i)?i:""}transitionise(e){const{config:n}=this;let a=e;if(n.withoutTransition)a=e.interrupt();else if(n.transition||!this.owner.params.noTransition)try{a=e.transition(n.transition)}catch(i){}return a}}var Ty=Object.defineProperty,$y=(t,e,n)=>e in t?Ty(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Fa=(t,e,n)=>($y(t,typeof e!="symbol"?e+"":e,n),n);class Sy{constructor(e={}){Fa(this,"helper"),Fa(this,"config"),Fa(this,"params"),Fa(this,"g"),Fa(this,"generatedTicks");const n={innerTickSize:6,outerTickSize:e.outerTick?6:0,orient:"bottom",range:[],tickArguments:null,tickCentered:null,tickCulling:!0,tickFormat:null,tickLength:9,tickOffset:0,tickPadding:3,tickValues:null,transition:null,noTransition:e.noTransition};n.tickLength=Math.max(n.innerTickSize,0)+n.tickPadding,this.config=n,this.params=e,this.helper=new Ru(this)}create(e){const n=this,{config:a,helper:i,params:s}=n,{scale:o}=i,{orient:l}=a,c=this.splitTickText.bind(n),u=/^(left|right)$/.test(l),g=/^(top|bottom)$/.test(l),v=i.getTickTransformSetter(g?"x":"y"),m=v===i.axisX?"y":"x",S=/^(top|left)$/.test(l)?-1:1,I=s.tickTextRotate;this.config.range=o.rangeExtent?o.rangeExtent():i.scaleExtent((s.orgXScale||o).range());const{innerTickSize:N,tickLength:M,range:P}=a,X=s.id,W=X&&/^(x|y|y2)$/.test(X)?s.config[`axis_${X}_tick_text_position`]:{x:0,y:0},G=X==="subX"?"subchart_axis_x":`axis_${X}`,k=s.config[`${G}_show`],H={tick:k?s.config[`${G}_tick_show`]:!1,text:k?s.config[`${G}_tick_text_show`]:!1};let at;e.each(function(){const mt=st(this);let At=this.__chart__||o,St=i.copyScale();at=mt,this.__chart__=St,a.tickOffset=s.isCategory?Math.ceil((St(1)-St(0))/2):0;const Tt=mt.selectAll(".domain").data([0]);if(Tt.enter().append("path").attr("class","domain").merge(Tt).attr("d",()=>{const Gt=a.outerTickSize*S;return g?`M${P[0]},${Gt}V0H${P[1]}V${Gt}`:`M${Gt},${P[0]}H0V${P[1]}H${Gt}`}),H.tick||H.text){const Gt=a.tickValues||i.generateTicks(St,u);n.generatedTicks=Gt;let xt=mt.selectAll(".tick").data(Gt,St);const Q=xt.enter().insert("g",".domain").attr("class","tick"),Ct=xt.exit().remove();xt=Q.merge(xt),H.tick&&Q.append("line"),H.text&&Q.append("text");const ht=Ru.getSizeFor1Char(xt),It=[];let Yt=xt.select("text").selectAll("tspan").data((Wt,ne)=>{const je=s.tickMultiline?c(Wt,St,Gt,u,ht.w):Fe(i.textFormatted(Wt))?i.textFormatted(Wt).concat():[i.textFormatted(Wt)];return It[ne]=je.length,je.map(Oe=>({index:ne,splitted:Oe}))});Yt.exit().remove(),Yt=Yt.enter().append("tspan").merge(Yt).text(Wt=>Wt.splitted),Yt.attr("x",g?0:M*S).attr("dx",(()=>{let Wt=0;return/(top|bottom)/.test(l)&&I&&(Wt=8*Math.sin(Math.PI*(I/180))*(l==="top"?-1:1)),Wt+(W.x||0)})()).attr("dy",(Wt,ne)=>{const je=".71em";let Oe=0;return l!=="top"&&(Oe=ht.h,ne===0&&(Oe=u?-((It[Wt.index]-1)*(ht.h/2)-3):W.y===0?je:0)),ue(Oe)&&W.y?Oe+W.y:Oe||je});const Xt=xt.select("line"),Zt=xt.select("text");if(Q.select("line").attr(`${m}2`,N*S),Q.select("text").attr(m,M*S),n.setTickLineTextPosition(Xt,Zt),s.tickTitle){const Wt=Zt.select("title");(Wt.empty()?Zt.append("title"):Wt).text(ne=>s.tickTitle[ne])}if(St.bandwidth){const Wt=St,ne=Wt.bandwidth()/2;At=je=>Wt(je)+ne,St=At}else At.bandwidth?At=St:v(Ct,St);xt=s.owner.state.flowing?i.transitionise(xt):s.owner.$T(xt),v(Q,At),v(xt.style("opacity",null),St)}}),this.g=at}getGeneratedTicks(e){var n;const a=((n=this.generatedTicks)==null?void 0:n.length)-1;let i=this.generatedTicks;if(a>e){const s=Math.round(a/e+.1);i=this.generatedTicks.map((o,l)=>l%s===0?o:null).filter(o=>o!==null).splice(0,e)}return i}getTickXY(){const{config:e}=this,n={x:0,y:0};return this.params.isCategory&&(n.x=e.tickCentered?0:e.tickOffset,n.y=e.tickCentered?e.tickOffset:0),n}getTickSize(e){const{scale:n}=this.helper,{config:a}=this,{innerTickSize:i,range:s}=a,o=n(e)+(a.tickCentered?0:a.tickOffset);return s[0]<o&&o<s[1]?i:0}setTickLineTextPosition(e,n){const a=this.getTickXY(),{innerTickSize:i,orient:s,tickLength:o,tickOffset:l}=this.config,c=this.params.tickTextRotate,u=I=>{const N=["start","end"];return s==="top"&&N.reverse(),I?N[I>0?0:1]:"middle"},g=I=>I?`rotate(${I})`:null,v=I=>{const N=I/(s==="bottom"?15:23);return I?11.5-2.5*N*(I>0?1:-1):o},{config:{axis_rotated:m,axis_x_tick_text_inner:S}}=this.params.owner;switch(s){case"bottom":e.attr("x1",a.x).attr("x2",a.x).attr("y2",this.getTickSize.bind(this)),n.attr("x",0).attr("y",v(c)).style("text-anchor",u(c)).style("text-anchor",(I,N,{length:M})=>!m&&N===0&&(S===!0||S.first)?"start":!m&&N===M-1&&(S===!0||S.last)?"end":u(c)).attr("transform",g(c));break;case"top":e.attr("x2",0).attr("y2",-i),n.attr("x",0).attr("y",-v(c)*2).style("text-anchor",u(c)).attr("transform",g(c));break;case"left":e.attr("x2",-i).attr("y1",a.y).attr("y2",a.y),n.attr("x",-o).attr("y",l).style("text-anchor","end");break;case"right":e.attr("x2",i).attr("y2",0),n.attr("x",o).attr("y",0).style("text-anchor","start")}}splitTickText(e,n,a,i,s){const{params:o}=this,l=this.helper.textFormatted(e),c=ze(l)&&l.indexOf(` +`)>-1?l.split(` +`):[];if(c.length)return c;if(Fe(l))return l;let u=o.tickWidth;(!u||u<=0)&&(u=i?95:o.isCategory?Math.ceil(o.isInverted?n(a[0])-n(a[1]):n(a[1])-n(a[0]))-12:110);function g(v,m){let S,I,N;for(let M=1;M<m.length;M++)if(m.charAt(M)===" "&&(I=M),S=m.substr(0,M+1),N=s*S.length,u<N)return g(v.concat(m.substr(0,I||M)),m.slice(I?I+1:M));return v.concat(m)}return g(c,String(l))}scale(e){return arguments.length?(this.helper.scale=e,this):this.helper.scale}orient(e){return arguments.length?(this.config.orient=e in{top:1,right:1,bottom:1,left:1}?String(e):"bottom",this):this.config.orient}tickFormat(e){const{config:n}=this;return arguments.length?(n.tickFormat=e,this):n.tickFormat}tickCentered(e){const{config:n}=this;return arguments.length?(n.tickCentered=e,this):n.tickCentered}tickOffset(){return this.config.tickOffset}tickInterval(e){var n;const{outerTickSize:a,tickOffset:i,tickValues:s}=this.config;let o;if(this.params.isCategory)o=i*2;else{const l=(n=this.params.owner.scale.zoom)!=null?n:this.helper.scale;o=(this.g.select("path.domain").node().getTotalLength()-a*2)/(e||this.g.selectAll("line").size());const u=s?s.map((g,v,m)=>{const S=v+1;return S<m.length?l(m[S])-l(g):null}).filter(Boolean):[];o=Math.min(...u,o)}return o===1/0?0:o}ticks(...e){const{config:n}=this;return e.length?(n.tickArguments=Cr(e),this):n.tickArguments}tickCulling(e){const{config:n}=this;return arguments.length?(n.tickCulling=e,this):n.tickCulling}tickValues(e){const{config:n}=this;if(he(e))n.tickValues=()=>e(this.helper.scale.domain());else{if(!arguments.length)return n.tickValues;n.tickValues=e}return this}setTransition(e){return this.config.transition=e,this}}var Ay=Object.defineProperty,by=(t,e,n)=>e in t?Ay(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ur=(t,e,n)=>(by(t,typeof e!="symbol"?e+"":e,n),n),Ey={getAxisInstance:function(){return this.axis||new Ry(this)}};class Ry{constructor(e){ur(this,"owner"),ur(this,"x"),ur(this,"subX"),ur(this,"y"),ur(this,"y2"),ur(this,"axesList",{}),ur(this,"tick",{x:null,y:null,y2:null}),ur(this,"xs",[]),ur(this,"orient",{x:"bottom",y:"left",y2:"right",subX:"bottom"}),this.owner=e,this.setOrient()}getAxisClassName(e){return`${on.axis} ${on[`axis${In(e)}`]}`}isHorizontal(e,n){const a=e.config.axis_rotated;return n?a:!a}isCategorized(){const{config:e,state:n}=this.owner;return e.axis_x_type.indexOf("category")>=0||n.hasRadar}isCustomX(){const{config:e}=this.owner;return!this.isTimeSeries()&&(e.data_x||nn(e.data_xs))}isTimeSeries(e="x"){return this.owner.config[`axis_${e}_type`]==="timeseries"}isLog(e="x"){return this.owner.config[`axis_${e}_type`]==="log"}isTimeSeriesY(){return this.isTimeSeries("y")}getAxisType(e="x"){let n="linear";return this.isTimeSeries(e)?n=this.owner.config.axis_x_localtime?"time":"utc":this.isLog(e)&&(n="log"),n}init(){const e=this.owner,{config:n,$el:{main:a,axis:i},state:{clip:s}}=e,o=n.axis_rotated,l=["x","y"];n.axis_y2_show&&l.push("y2"),l.forEach(c=>{const u=this.getAxisClassName(c),g=on[`axis${c.toUpperCase()}Label`];i[c]=a.append("g").attr("class",u).attr("clip-path",()=>{let v=null;return c==="x"?v=s.pathXAxis:c==="y"&&(v=s.pathYAxis),v}).attr("transform",e.getTranslate(c)).style("visibility",n[`axis_${c}_show`]?null:"hidden"),i[c].append("text").attr("class",g).attr("transform",["rotate(-90)",null][c==="x"?+!o:+o]).style("text-anchor",()=>this.textAnchorForAxisLabel(c)),this.generateAxes(c)}),n.axis_tooltip&&this.setAxisTooltip()}setOrient(){const e=this.owner,{axis_rotated:n,axis_y_inner:a,axis_y2_inner:i}=e.config;this.orient={x:n?"left":"bottom",y:n?a?"top":"bottom":a?"right":"left",y2:n?i?"bottom":"top":i?"left":"right",subX:n?"left":"bottom"}}generateAxes(e){const n=this.owner,{config:a}=n,i=[],s=a[`axis_${e}_axes`],o=a.axis_rotated;let l;e==="x"?l=o?Eu:bu:e==="y"?l=o?bu:Eu:e==="y2"&&(l=o?py:my),s.length&&s.forEach(c=>{const u=c.tick||{},g=n.scale[e].copy();c.domain&&g.domain(c.domain),i.push(l(g).ticks(u.count).tickFormat(he(u.format)?u.format.bind(n.api):v=>v).tickValues(u.values).tickSizeOuter(u.outer===!1?0:6))}),this.axesList[e]=i}updateAxes(){const e=this.owner,{config:n,$el:{main:a},$T:i}=e;Object.keys(this.axesList).forEach(s=>{const o=n[`axis_${s}_axes`],l=e.scale[s].copy(),c=l.range();this.axesList[s].forEach((u,g)=>{const v=u.scale().range();c.every((I,N)=>I===v[N])||u.scale().range(c);const m=`${this.getAxisClassName(s)}-${g+1}`;let S=a.select(`.${m.replace(/\s/,".")}`);S.empty()?S=a.append("g").attr("class",m).style("visibility",n[`axis_${s}_show`]?null:"hidden").call(u):(o[g].domain&&l.domain(o[g].domain),i(S).call(u.scale(l))),S.attr("transform",e.getTranslate(s,g+1))})})}setAxis(e,n,a,i){const s=this.owner;e!=="subX"&&(this.tick[e]=this.getTickValues(e)),this[e]=this.getAxis(e,n,a,e==="x"&&(s.scale.zoom||s.config.subchart_show||s.state.resizing)?!0:i)}getAxis(e,n,a,i,s){const o=this.owner,{config:l}=o,c=/^(x|subX)$/.test(e),u=c?"x":e,g=c&&this.isCategorized(),v=this.orient[e],m=s?0:o.getAxisTickRotate(u);let S;if(c)S=e==="subX"?o.format.subXAxisTick:o.format.xAxisTick;else{const X=l[`axis_${e}_tick_format`];he(X)&&(S=X.bind(o.api))}let I=this.tick[u];const N=_r({outerTick:a,noTransition:i,config:l,id:e,tickTextRotate:m,owner:o},c&&{isCategory:g,isInverted:l.axis_x_inverted,tickMultiline:l.axis_x_tick_multiline,tickWidth:l.axis_x_tick_width,tickTitle:g&&l.axis_x_tick_tooltip&&o.api.categories(),orgXScale:o.scale.x});c||(N.tickStepSize=l[`axis_${u}_tick_stepSize`]);const M=new Sy(N).scale(c&&o.scale.zoom||n).orient(v);if(c&&this.isTimeSeries()&&I&&!he(I)){const X=Dn.bind(o);I=I.map(W=>X(W))}else!c&&this.isTimeSeriesY()&&(M.ticks(l.axis_y_tick_time_value),I=null);I&&M.tickValues(I),M.tickFormat(S||!c&&o.isStackNormalized()&&(X=>`${X}%`)),g&&(M.tickCentered(l.axis_x_tick_centered),Wn(l.axis_x_tick_culling)&&(l.axis_x_tick_culling=!1));const P=l[`axis_${u}_tick_count`];return P&&M.ticks(P),M}updateXAxisTickValues(e,n){var a;const i=this.owner,{config:s}=i,o=s.axis_x_tick_fit;let l=s.axis_x_tick_count,c;return(o||l&&o)&&(c=i.mapTargetsToUniqueXs(e),this.isCategorized()&&l>c.length&&(l=c.length),c=this.generateTickValues(c,l,this.isTimeSeries())),n?n.tickValues(c):this.x&&(this.x.tickValues(c),(a=this.subX)==null||a.tickValues(c)),c}getId(e){const{config:n,scale:a}=this.owner;let i=n.data_axes[e];return(!i||!a[i])&&(i="y"),i}getXAxisTickFormat(e){const n=this.owner,{config:a,format:i}=n,s=e&&a.subchart_axis_x_tick_format||a.axis_x_tick_format,o=this.isTimeSeries(),l=this.isCategorized();let c;return s?he(s)?c=s.bind(n.api):o&&(c=u=>u?i.axisTime(s)(u):""):c=o?i.defaultAxisTime:l?n.categoryName:u=>u<0?u.toFixed(0):u,he(c)?u=>c.apply(n,l?[u,n.categoryName(u)]:[u]):c}getTickValues(e){const n=this.owner,a=n.config[`axis_${e}_tick_values`],i=n[`${e}Axis`];return(he(a)?a.call(n.api):a)||(i?i.tickValues():void 0)}getLabelOptionByAxisId(e){return this.owner.config[`axis_${e}_label`]}getLabelText(e){const n=this.getLabelOptionByAxisId(e);return ze(n)?n:n?n.text:null}setLabelText(e,n){const a=this.owner,{config:i}=a,s=this.getLabelOptionByAxisId(e);ze(s)?i[`axis_${e}_label`]=n:s&&(s.text=n)}getLabelPosition(e,n){const a=this.owner.config.axis_rotated,i=this.getLabelOptionByAxisId(e),s=Jn(i)&&i.position?i.position:n[+!a],o=l=>!!~s.indexOf(l);return{isInner:o("inner"),isOuter:o("outer"),isLeft:o("left"),isCenter:o("center"),isRight:o("right"),isTop:o("top"),isMiddle:o("middle"),isBottom:o("bottom")}}getAxisLabelPosition(e){return this.getLabelPosition(e,e==="x"?["inner-top","inner-right"]:["inner-right","inner-top"])}getLabelPositionById(e){return this.getAxisLabelPosition(e)}xForAxisLabel(e){const n=this.owner,{state:{width:a,height:i}}=n,s=this.getAxisLabelPosition(e);let o=s.isMiddle?-i/2:0;return this.isHorizontal(n,e!=="x")?o=s.isLeft?0:s.isCenter?a/2:a:s.isBottom&&(o=-i),o}dxForAxisLabel(e){const n=this.owner,a=this.getAxisLabelPosition(e);let i=a.isBottom?"0.5em":"0";return this.isHorizontal(n,e!=="x")?i=a.isLeft?"0.5em":a.isRight?"-0.5em":"0":a.isTop&&(i="-0.5em"),i}textAnchorForAxisLabel(e){const n=this.owner,a=this.getAxisLabelPosition(e);let i=a.isMiddle?"middle":"end";return this.isHorizontal(n,e!=="x")?i=a.isLeft?"start":a.isCenter?"middle":"end":a.isBottom&&(i="start"),i}dyForAxisLabel(e){const n=this.owner,{config:a}=n,i=a.axis_rotated,s=this.getAxisLabelPosition(e).isInner,o=a[`axis_${e}_tick_rotate`]?n.getHorizontalAxisHeight(e):0,{width:l}=this.getMaxTickSize(e);let c;if(e==="x"){const u=a.axis_x_height;i?c=s?"1.2em":-25-l:s?c="-0.5em":u?c=u-10:o?c=o-10:c="3em"}else c={y:["-0.5em",10,"3em","1.2em",10],y2:["1.2em",-20,"-2.2em","-0.5em",15]}[e],i?s?c=c[0]:o?c=o*(e==="y2"?-1:1)-c[1]:c=c[2]:c=s?c[3]:(c[4]+(a[`axis_${e}_inner`]?0:l+c[4]))*(e==="y"?-1:1);return c}getMaxTickSize(e,n){const a=this.owner,{config:i,state:{current:s},$el:{svg:o,chart:l}}=a,c=s.maxTickSize[e],u=`axis_${e}`,g={width:0,height:0};if(n||!i[`${u}_show`]||c.width>0&&a.filterTargetsToShow().length===0)return c;if(o){const v=/^y2?$/.test(e),m=a.filterTargetsToShow(a.data.targets),S=a.scale[e].copy().domain(a[`get${v?"Y":"X"}Domain`](m,e)),I=S.domain(),N=I[0]===I[1]&&I.every(H=>H>0),M=Fe(c.domain)&&c.domain[0]===c.domain[1]&&c.domain.every(H=>H>0);if(N||M)return c.size;c.domain=I,v||c.ticks.splice(0);const P=this.getAxis(e,S,!1,!1,!0),X=i[`${u}_tick_rotate`],W=i[`${u}_tick_count`];!i[`${u}_tick_values`]&&W&&P.tickValues(this.generateTickValues(I,W,v?this.isTimeSeriesY():this.isTimeSeries())),!v&&this.updateXAxisTickValues(m,P);const k=l.append("svg").style("visibility","hidden").style("position","fixed").style("top","0").style("left","0");P.create(k),k.selectAll("text").attr("transform",ue(X)?`rotate(${X})`:null).each(function(H,at){const{width:mt,height:At}=this.getBoundingClientRect();g.width=Math.max(g.width,mt),g.height=Math.max(g.height,At),v||(c.ticks[at]=mt)}),k.remove()}return Object.keys(g).forEach(v=>{g[v]>0&&(c[v]=g[v])}),c}getXAxisTickTextY2Overflow(e){const n=this.owner,{axis:a,config:i,state:{current:s,isLegendRight:o,legendItemWidth:l}}=n,c=n.getAxisTickRotate("x"),u=c>0&&c<90;if((a.isCategorized()||a.isTimeSeries())&&i.axis_x_tick_fit&&(!i.axis_x_tick_culling||Wn(i.axis_x_tick_culling))&&!i.axis_x_tick_multiline&&u){const g=i.axis_y2_show&&s.maxTickSize.y2.width||0,v=o&&l||0,m=s.width-n.getCurrentPaddingByDirection("left"),S=this.getXAxisTickMaxOverflow(c,m-e)-g-v,I=Math.max(0,S)+e;return Math.min(I,m/2)}return 0}getXAxisTickMaxOverflow(e,n){const a=this.owner,{axis:i,config:s,state:o}=a,l=i.isTimeSeries(),c=o.current.maxTickSize.x.ticks,u=c.length,{left:g,right:v}=o.axis.x.padding;let m=0;const S=u-(l&&s.axis_x_tick_fit?.5:0);for(let M=0;M<u;M++){const P=M+1,X=Math.cos(Math.PI*e/180)*c[M],W=P-(l?1:.5)+g;if(W<=0)continue;const k=(n-X)/W,H=S-P,at=v*k,mt=H*k+at,At=X-k/2-mt;m=Math.max(m,At)}const I=a.filterTargetsToShow(a.data.targets);let N=0;if(!l&&s.axis_x_tick_count<=I.length&&I[0].values.length){const M=Dr(a.axis.getAxisType("x"),0,n-m).domain([g*-1,a.getXDomainMax(a.data.targets)+1+v]);N=Math.ceil((M(1)-M(0))/2)}return m+N}updateLabels(e){const n=this.owner,{$el:{main:a},$T:i}=n,s={x:a.select(`.${on.axisX} .${on.axisXLabel}`),y:a.select(`.${on.axisY} .${on.axisYLabel}`),y2:a.select(`.${on.axisY2} .${on.axisY2Label}`)};Object.keys(s).filter(o=>!s[o].empty()).forEach(o=>{const l=s[o];i(l,e).attr("x",()=>this.xForAxisLabel(o)).attr("dx",()=>this.dxForAxisLabel(o)).attr("dy",()=>this.dyForAxisLabel(o)).text(()=>this.getLabelText(o))})}getPadding(e,n,a,i){const s=ue(e)?e:e[n];return Ie(s)?this.owner.convertPixelToScale(/(bottom|top)/.test(n)?"y":"x",s,i):a}generateTickValues(e,n,a){let i=e;if(n){const s=he(n)?n():n;if(s===1)i=[e[0]];else if(s===2)i=[e[0],e[e.length-1]];else if(s>2){const o=this.isCategorized(),l=s-2,c=e[0],u=e[e.length-1],g=(u-c)/(l+1);let v;i=[c];for(let m=0;m<l;m++)v=+c+g*(m+1),i.push(a?new Date(v):o?Math.round(v):v);i.push(u)}}return a||(i=i.sort((s,o)=>s-o)),i}generateTransitions(e){const n=this.owner,{$el:{axis:a},$T:i}=n,[s,o,l,c]=["x","y","y2","subX"].map(u=>i(a[u],e));return{axisX:s,axisY:o,axisY2:l,axisSubX:c}}redraw(e,n,a){const i=this.owner,{config:s,$el:o}=i,l=n?"0":null;["x","y","y2","subX"].forEach(c=>{const u=this[c],g=o.axis[c];u&&g&&(!a&&!s.transition_duration&&(u.config.withoutTransition=!0),g.style("opacity",l),u.create(e[`axis${In(c)}`]))}),this.updateAxes()}redrawAxis(e,n,a,i,s){var o,l,c;const u=this.owner,{config:g,scale:v,$el:m}=u,S=!!v.zoom;let I;!S&&this.isCategorized()&&e.length===0&&v.x.domain([0,m.axis.x.selectAll(".tick").size()]),v.x&&e.length?(!S&&u.updateXDomain(e,n.UpdateXDomain,n.UpdateOrgXDomain,n.TrimXDomain),g.axis_x_tick_values||this.updateXAxisTickValues(e)):this.x&&(this.x.tickValues([]),(o=this.subX)==null||o.tickValues([])),g.zoom_rescale&&!i&&(I=v.x.orgDomain()),["y","y2"].forEach(N=>{const M=`axis_${N}_`,P=v[N];if(P){const X=g[`${M}tick_values`],W=g[`${M}tick_count`];if(P.domain(u.getYDomain(e,N,I)),!X&&W){const G=u.axis[N],k=P.domain();G.tickValues(this.generateTickValues(k,k.every(H=>H===0)?1:W,this.isTimeSeriesY()))}}}),this.redraw(a,u.hasArcType(),s),this.updateLabels(n.Transition),(n.UpdateXDomain||n.UpdateXAxis||n.Y)&&e.length&&this.setCulling(),n.Y&&((l=v.subY)==null||l.domain(u.getYDomain(e,"y")),(c=v.subY2)==null||c.domain(u.getYDomain(e,"y2")))}setCulling(){const e=this.owner,{config:n,state:{clip:a,current:i},$el:s}=e;["subX","x","y","y2"].forEach(o=>{const l=s.axis[o],u=`axis_${o==="subX"?"x":o}_tick_culling`,g=n[u];if(l&&g){const v=l.selectAll(".tick"),m=qr(v.data()),S=m.length,I=n[`${u}_max`],N=n[`${u}_lines`];let M;if(S){for(let P=1;P<S;P++)if(S/P<I){M=P;break}v.each(function(P){const X=N?this.querySelector("text"):this;X&&(X.style.display=m.indexOf(P)%M?"none":null)})}else v.style("display",null);if(o==="x"){const P=i.maxTickSize.x.clipPath?a.pathXAxisTickTexts:null;s.svg.selectAll(`.${on.axisX} .tick text`).attr("clip-path",P)}}})}setAxisTooltip(){var e;const n=this.owner,{config:{axis_rotated:a,axis_tooltip:i},$el:{axis:s,axisTooltip:o}}=n,l=(e=i.backgroundColor)!=null?e:"black";n.generateTextBGColorFilter(l,{x:-.15,y:-.2,width:1.3,height:1.3}),["x","y","y2"].forEach(c=>{var u,g,v;if(o[c]=(u=s[c])==null?void 0:u.append("text").classed(on[`axis${c.toUpperCase()}Tooltip`],!0).attr("filter",n.updateTextBGColor({id:c},l)),a){const m=c==="x"?"x":"y",S=c==="y"?"1.15em":c==="x"?"-0.3em":"-0.4em";(g=o[c])==null||g.attr(m,S).attr(`d${c==="x"?"y":"x"}`,c==="x"?"0.4em":"-1.3em").style("text-anchor",c==="x"?"end":null)}else{const m=c==="x"?"y":"x",S=c==="x"?"1.15em":`${c==="y"?"-":""}0.4em`;(v=o[c])==null||v.attr(m,S).attr(`d${c==="x"?"x":"y"}`,c==="x"?"-1em":"0.3em").style("text-anchor",c==="y"?"end":null)}})}}var Oy={initEventRect(){this.$el.main.select(`.${Se.chart}`).append("g").attr("class",Xn.eventRects).style("fill-opacity","0")},redrawEventRect(){var t;const e=this,{config:n,state:a,$el:i}=e,s=e.isMultipleX(),o=n.axis_x_inverted;if(i.eventRect)e.updateEventRect(i.eventRect,!0);else if(e.data.targets.length){const c=e.$el.main.select(`.${Xn.eventRects}`).style("cursor",n.zoom_enabled&&n.zoom_type!=="drag"?n.axis_rotated?"ns-resize":"ew-resize":null).classed(Xn.eventRectsMultiple,s).classed(Xn.eventRectsSingle,!s).selectAll(`.${Xn.eventRect}`).data([0]).enter().append("rect");e.updateEventRect(c),e.updateEventType(c),c.call(e.getDraggableSelection()),i.eventRect=c,e.state.inputType==="touch"&&!i.svg.on("touchstart.eventRect")&&!e.hasArcType()&&e.bindTouchOnEventRect(),a.rendered&&e.updateEventRect(i.eventRect,!0)}if(!s){const l=e.getMaxDataCountTarget();(!n.data_xSort||o)&&l.sort((c,u)=>o?u.x-c.x:c.x-u.x),e.updateDataIndexByX(l),e.updateXs(l),(t=e.updatePointClass)==null||t.call(e,!0),a.eventReceiver.data=l}e.updateEventRectData()},bindTouchOnEventRect(){const t=this,{config:e,state:n,$el:{eventRect:a,svg:i}}=t,s=m=>{if(t.isMultipleX())t.selectRectForMultipleXs(m);else{const S=t.getDataIndexFromEvent(n.event);t.callOverOutForTouch(S),S===-1?t.unselectRect():t.selectRectForSingle(m,S)}},o=()=>{t.unselectRect(),t.callOverOutForTouch()},l=e.interaction_inputType_touch.preventDefault,c=Os(l)&&l||!1,u=!isNaN(l)&&l||null;let g;const v=m=>{const S=m.type,N=m.changedTouches[0][`client${e.axis_rotated?"Y":"X"}`];S==="touchstart"?c?m.preventDefault():u!==null&&(g=N):S==="touchmove"&&(c||g===!0||u!==null&&Math.abs(g-N)>=u)&&(g=!0,m.preventDefault())};a.on("touchstart",m=>{n.event=m,t.updateEventRect()}).on("touchstart.eventRect touchmove.eventRect",m=>{if(n.event=m,!a.empty()&&a.classed(Xn.eventRect)){if(n.dragging||n.flowing||t.hasArcType()||m.touches.length>1)return;v(m),s(a.node())}else o()},!0).on("touchend.eventRect",m=>{n.event=m,!a.empty()&&a.classed(Xn.eventRect)&&(t.hasArcType()||!t.toggleShape||n.cancelClick)&&n.cancelClick&&(n.cancelClick=!1)},!0),i.on("touchstart",m=>{n.event=m;const{target:S}=m;S&&S!==a.node()&&o()})},updateEventRect(t,e=!1){const n=this,{state:a,$el:i}=n,{eventReceiver:s,width:o,height:l,rendered:c,resizing:u}=a,g=t||i.eventRect,v=()=>{if(s){const m=Wl(i.chart.node());s.rect=g.node().getBoundingClientRect().toJSON(),s.rect.top+=m.y,s.rect.left+=m.x}};(!c||u||e)&&(g.attr("x",0).attr("y",0).attr("width",o).attr("height",l),(!c||e)&&g.classed(Xn.eventRect,!0)),v()},updateEventType(t){const e=this,n=Os(t),a=n?e.$el.eventRect:t,i=n?t!==(a==null?void 0:a.datum().multipleX):!1;a&&(i&&(a==null||a.on("mouseover mousemove mouseout click",null)),e.isMultipleX()?e.generateEventRectsForMultipleXs(a):e.generateEventRectsForSingleX(a))},updateEventRectData(){const t=this,{config:e,scale:n,state:a}=t,i=n.zoom||n.x,s=e.axis_rotated,o=t.isMultipleX();let l,c,u,g;if(t.updateEventType(o),o)l=0,c=0,u=a.width,g=a.height;else{let S,I;if(t.axis.isCategorized())S=t.getEventRectWidth(),I=N=>i(N.x)-S/2;else{const N=({index:M})=>({prev:t.getPrevX(M),next:t.getNextX(M)});S=M=>{const P=N(M),X=i.domain();let W;return P.prev===null&&P.next===null?W=s?a.height:a.width:P.prev===null?W=(i(P.next)+i(M.x))/2:P.next===null?W=i(X[1])-(i(P.prev)+i(M.x))/2:(Object.keys(P).forEach((G,k)=>{var H;P[G]=(H=P[G])!=null?H:X[k]}),W=Math.max(0,(i(P.next)-i(P.prev))/2)),W},I=M=>{const P=N(M);let X;return P.prev===null&&P.next===null?X=0:P.prev===null?X=i(i.domain()[0]):X=(i(M.x)+i(P.prev))/2,X}}l=s?0:I,c=s?I:0,u=s?a.width:S,g=s?S:a.height}const{eventReceiver:v}=a,m=(S,I)=>he(S)?S(I):S;v.coords.splice(v.data.length),v.data.forEach((S,I)=>{v.coords[I]={x:m(l,S),y:m(c,S),w:m(u,S),h:m(g,S)}})},selectRectForSingle(t,e){var n,a;const i=this,{config:s,$el:{main:o,circle:l}}=i,c=s.data_selection_enabled,u=s.data_selection_grouped,g=s.data_selection_isselectable,v=s.tooltip_grouped,m=i.getAllValuesOnIndex(e);if(v&&(i.showTooltip(m,t),(n=i.showGridFocus)==null||n.call(i,m),!c||u))return;!l&&o.selectAll(`.${Se.EXPANDED}:not(.${tn.shape}-${e})`).classed(Se.EXPANDED,!1);const S=o.selectAll(`.${tn.shape}-${e}`).classed(Se.EXPANDED,!0).style("cursor",g?"pointer":null).filter(function(I){return i.isWithinShape(this,I)});S.empty()&&!v&&((a=i.hideGridFocus)==null||a.call(i),i.hideTooltip(),!u&&i.setExpand(e)),S.call(I=>{var N,M;const P=I.data();c&&(u||g!=null&&g.bind(i.api)(P))&&(t.style.cursor="pointer"),v||(i.showTooltip(P,t),(N=i.showGridFocus)==null||N.call(i,P),(M=i.unexpandCircles)==null||M.call(i),I.each(X=>i.setExpand(e,X.id)))})},selectRectForMultipleXs(t,e=!0){const n=this,{config:a,state:i}=n,s=n.filterTargetsToShow(n.data.targets);if(i.dragging||n.hasArcType(s))return;const o=zn(i.event,t),l=n.findClosestFromTargets(s,o);if(e&&i.mouseover&&(!l||l.id!==i.mouseover.id)&&(a.data_onout.call(n.api,i.mouseover),i.mouseover=void 0),!l){n.unselectRect();return}const u=(n.isBubbleType(l)||n.isScatterType(l)||!a.tooltip_grouped?[l]:n.filterByX(s,l.x)).map(v=>n.addName(v));n.showTooltip(u,t),n.setExpand(l.index,l.id,!0),n.showGridFocus(u);const g=n.dist(l,o);(n.isBarType(l.id)||g<n.getPointSensitivity(l))&&(n.$el.svg.select(`.${Xn.eventRect}`).style("cursor","pointer"),e&&!i.mouseover&&(a.data_onover.call(n.api,l),i.mouseover=l))},unselectRect(){const t=this,{$el:{circle:e,tooltip:n}}=t;t.$el.svg.select(`.${Xn.eventRect}`).style("cursor",null),t.hideGridFocus(),n&&(t.hideTooltip(),t._handleLinkedCharts(!1)),e&&!t.isPointFocusOnly()&&t.unexpandCircles(),t.expandBarTypeShapes(!1)},generateEventRectsForSingleX(t){const e=this,{config:n,state:a}=e,{eventReceiver:i}=a,s=t.style("cursor",n.data_selection_enabled&&n.data_selection_grouped?"pointer":null).on("click",function(o){a.event=o;const{currentIdx:l,data:c}=i,u=c[l===-1?e.getDataIndexFromEvent(o):l];e.clickHandlerForSingleX.bind(this)(u,e)}).datum({multipleX:!1});if(a.inputType==="mouse"){const o=l=>{const c=l?e.getDataIndexFromEvent(l):i.currentIdx;return c>-1?i.data[c]:null};s.on("mouseover",l=>{a.event=l,e.updateEventRect(),Object.values(e.$el.axisTooltip).forEach(c=>c==null?void 0:c.style("display",null))}).on("mousemove",function(l){const c=o(l);if(a.event=l,!c)return;let{index:u}=c;const g=n.line_step_type;if(n.line_step_tooltipMatch&&e.hasType("step")&&/^step\-(before|after)$/.test(g)){const m=e.scale.zoom||e.scale.x,S=e.axis.xs[u],I=m.invert(zn(l,this)[0]);g==="step-after"&&I<S?u-=1:g==="step-before"&&I>S&&(u+=1)}e.showAxisGridFocus();const v=n.tooltip_grouped&&u===i.currentIdx;if(a.dragging||a.flowing||e.hasArcType()||v){n.tooltip_show&&v&&e.setTooltipPosition();return}u!==i.currentIdx&&(e.setOverOut(!1,i.currentIdx),i.currentIdx=u),u===-1?e.unselectRect():e.selectRectForSingle(this,u),e.setOverOut(u!==-1,u)}).on("mouseout",l=>{a.event=l,!(!n||e.hasArcType()||i.currentIdx===-1)&&(e.hideAxisGridFocus(),e.unselectRect(),e.setOverOut(!1,i.currentIdx),i.currentIdx=-1)})}return s},clickHandlerForSingleX(t,e){const n=e,{config:a,state:i,$el:{main:s}}=n;if(!t||n.hasArcType()||i.cancelClick){i.cancelClick&&(i.cancelClick=!1);return}const{index:o}=t;s.selectAll(`.${tn.shape}-${o}`).each(function(l){var c;(a.data_selection_grouped||n.isWithinShape(this,l))&&((c=n.toggleShape)==null||c.call(n,this,l,o),a.data_onclick.bind(n.api)(l,this))})},generateEventRectsForMultipleXs(t){const e=this,{state:n}=e;t.on("click",function(a){n.event=a,e.clickHandlerForMultipleXS.bind(this)(e)}).datum({multipleX:!0}),n.inputType==="mouse"&&t.on("mouseover mousemove",function(a){n.event=a,e.selectRectForMultipleXs(this)}).on("mouseout",a=>{n.event=a,!(!e.config||e.hasArcType())&&e.unselectRect()})},clickHandlerForMultipleXS(t){const e=t,{config:n,state:a}=e,i=e.filterTargetsToShow(e.data.targets);if(e.hasArcType(i))return;const s=zn(a.event,this),o=e.findClosestFromTargets(i,s),l=n.point_sensitivity==="radius"?o.r:n.point_sensitivity;o&&(e.isBarType(o.id)||e.dist(o,s)<l)&&e.$el.main.selectAll(`.${tn.shapes}${e.getTargetSelectorSuffix(o.id)}`).selectAll(`.${tn.shape}-${o.index}`).each(function(){var c;(n.data_selection_grouped||e.isWithinShape(this,o))&&((c=e.toggleShape)==null||c.call(e,this,o,o.index),n.data_onclick.bind(e.api)(o,this))})}};const Iy=t=>+t;var Cy={generateFlow(t){const e=this,{data:n,state:a,$el:i}=e;return function(){const s=t.flow.length;a.flowing=!0,n.targets.forEach(l=>{l.values.splice(0,s)}),e.updateXGrid&&e.updateXGrid(!0);const o={};["axis.x","grid.x","gridLines.x","region.list","text","bar","line","area","circle"].forEach(l=>{const c=l.split(".");let u=i[c[0]];u&&c.length>1&&(u=u[c[1]]),u!=null&&u.size()&&(o[l]=u)}),e.hideGridFocus(),e.setFlowList(o,t)}},setFlowList(t,e){const n=this,{flow:a,targets:i}=e,{duration:s=e.duration,index:o,length:l,orgDataCount:c}=a,u=n.getFlowTransform(i,c,o,l),g=ql();let v;g.add(Object.keys(t).map(m=>(v=t[m].transition().ease(Iy).duration(s),m==="axis.x"?v=v.call(S=>{n.axis.x.setTransition(S).create(S)}):m==="region.list"?v=v.filter(n.isRegionOnX).attr("transform",u):v=v.attr("transform",u),v))),v.call(g,()=>{n.cleanUpFlow(t,e)})},cleanUpFlow(t,e){const n=this,{config:a,state:i,$el:{svg:s}}=n,o=a.axis_rotated,{flow:l,shape:c,xv:u}=e,{cx:g,cy:v,xForText:m,yForText:S}=c.pos,{done:I=()=>{},length:N}=l;N&&(["circle","text","shape","eventRect"].forEach(M=>{const P=[];for(let X=0;X<N;X++)P.push(`.${Ne[M]}-${X}`);s.selectAll(`.${Ne[`${M}s`]}`).selectAll(P).remove()}),s.select(`.${Ne.xgrid}`).remove()),Object.keys(t).forEach(M=>{const P=t[M];if(M!=="axis.x"&&P.attr("transform",null),M==="grid.x")P.attr(i.xgridAttr);else if(M==="gridLines.x")P.attr("x1",o?0:u).attr("x2",o?i.width:u),P.select("text").attr("x",o?i.width:0).attr("y",u);else if(/^(area|bar|line)$/.test(M))P.attr("d",c.type[M]);else if(M==="text")P.attr("x",m).attr("y",S).style("fill-opacity",n.opacityForText.bind(n));else if(M==="circle")if(n.isCirclePoint())P.attr("cx",g).attr("cy",v);else{const X=G=>g(G)-a.point_r,W=G=>v(G)-a.point_r;P.attr("x",X).attr("y",W)}else M==="region.list"&&P.select("rect").filter(n.isRegionOnX).attr("x",n.regionX.bind(n)).attr("width",n.regionWidth.bind(n))}),a.interaction_enabled&&n.redrawEventRect(),I.call(n.api),i.flowing=!1},getFlowTransform(t,e,n,a){const i=this,{data:s,scale:{x:o}}=i,l=s.targets[0].values;let c=i.getValueOnIndex(l,n),u=i.getValueOnIndex(l,n+a),g;const v=o.domain(),m=i.updateXDomain(t,!0,!0);e?e===1||(c==null?void 0:c.x)===(u==null?void 0:u.x)?g=o(v[0])-o(m[0]):g=i.axis.isTimeSeries()?o(v[0])-o(m[0]):o((c==null?void 0:c.x)||0)-o(u.x):l.length!==1?g=o(v[0])-o(m[0]):i.axis.isTimeSeries()?(c=i.getValueOnIndex(l,0),u=i.getValueOnIndex(l,l.length-1),g=o(c.x)-o(u.x)):g=Ir(m)/2;const S=Ir(v)/Ir(m);return`translate(${g},0) scale(${S},1)`}},Py={initClip(){const t=this,{clip:e,datetimeId:n}=t.state;e.id=`${n}-clip`,e.idXAxis=`${e.id}-xaxis`,e.idYAxis=`${e.id}-yaxis`,e.idGrid=`${e.id}-grid`,e.path=t.getClipPath(e.id),e.pathXAxis=t.getClipPath(e.idXAxis),e.pathYAxis=t.getClipPath(e.idYAxis),e.pathGrid=t.getClipPath(e.idGrid)},getClipPath(t){const e=this,{config:n}=e;return!n.clipPath&&/-clip$/.test(t)||!n.axis_x_clipPath&&/-clip-xaxis$/.test(t)||!n.axis_y_clipPath&&/-clip-yaxis$/.test(t)?null:`url(#${t})`},appendClip(t,e){e&&t.append("clipPath").attr("id",e).append("rect")},setXAxisClipPath(t){const e=this,{config:n,state:{margin:a,width:i,height:s}}=e,o=n.axis_rotated,l=Math.max(30,a.left)-(o?0:20),c=(o?a.top+s+10:a.bottom)+20,u=o?-(1+l):-(l-1),g=-15,v=o?a.left+20:i+10+l;t.attr("x",u).attr("y",g).attr("width",v).attr("height",c)},setYAxisClipPath(t){const e=this,{config:n,state:{margin:a,width:i,height:s}}=e,o=n.axis_rotated,l=Math.max(30,a.left)-(o?20:0),c=n.axis_y_inner,u=c&&!o?n.axis_y_label.text?-20:-1:o?-(1+l):-(l-1),g=-(o?20:a.top),v=(o?i+15+l:a.left+20)+(c?20:0),m=(o?a.bottom+10:a.top+s)+10;t.attr("x",u).attr("y",g).attr("width",v).attr("height",m)},updateXAxisTickClip(){const t=this,{config:e,state:{clip:n,xAxisHeight:a},$el:{defs:i}}=t,s=t.getHorizontalAxisHeight("x");if(i&&!n.idXAxisTickTexts){const o=`${n.id}-xaxisticktexts`;t.appendClip(i,o),n.pathXAxisTickTexts=t.getClipPath(n.idXAxisTickTexts),n.idXAxisTickTexts=o}!e.axis_x_tick_multiline&&t.getAxisTickRotate("x")&&s!==a&&(t.setXAxisTickClipWidth(),t.setXAxisTickTextClipPathWidth()),t.state.xAxisHeight=s},setXAxisTickClipWidth(){const t=this,{config:e,state:{current:{maxTickSize:n}}}=t,a=t.getAxisTickRotate("x");if(!e.axis_x_tick_multiline&&a){const i=Math.sin(Math.PI/180*Math.abs(a));n.x.clipPath=(t.getHorizontalAxisHeight("x")-20)/i}else n.x.clipPath=null},setXAxisTickTextClipPathWidth(){const t=this,{state:{clip:e,current:n},$el:{svg:a}}=t;a&&a.select(`#${e.idXAxisTickTexts} rect`).attr("width",n.maxTickSize.x.clipPath).attr("height",30)}};const wy=t=>Ie(t.position)||"end",My=t=>t.position==="start"?4:t.position==="middle"?0:-4;function Ou(t,e,n){return a=>{let i=t?0:e;return a.position==="start"?i=t?-n:0:a.position==="middle"&&(i=(t?-n:e)/2),i}}function Iu(t,e){e==="grid"&&t.each(function(){const n=st(this);["x1","x2","y1","y2"].forEach(a=>n.attr(a,Math.ceil(+n.attr(a))))})}var Ly={hasGrid(){const{config:t}=this;return["x","y"].some(e=>t[`grid_${e}_show`]||t[`grid_${e}_lines`].length)},initGrid(){const t=this;t.hasGrid()&&t.initGridLines(),t.initFocusGrid()},initGridLines(){const t=this,{config:e,state:{clip:n},$el:a}=t;(e.grid_x_lines.length||e.grid_y_lines.length)&&(a.gridLines.main=a.main.insert("g",`.${Se.chart}${e.grid_lines_front?" + *":""}`).attr("clip-path",n.pathGrid).attr("class",`${qe.grid} ${qe.gridLines}`),a.gridLines.main.append("g").attr("class",qe.xgridLines),a.gridLines.main.append("g").attr("class",qe.ygridLines),a.gridLines.x=Fc([]))},updateXGrid(t){const e=this,{config:n,scale:a,state:i,$el:{main:s,grid:o}}=e,l=n.axis_rotated,c=e.generateGridData(n.grid_x_type,a.x),u=e.axis.isCategorized()?e.axis.x.tickOffset():0,g=v=>(a.zoom||a.x)(v)+u*(l?-1:1);i.xgridAttr=l?{x1:0,x2:i.width,y1:g,y2:g}:{x1:g,x2:g,y1:0,y2:i.height},o.x=s.select(`.${qe.xgrids}`).selectAll(`.${qe.xgrid}`).data(c),o.x.exit().remove(),o.x=o.x.enter().append("line").attr("class",qe.xgrid).merge(o.x),t||o.x.each(function(){const v=st(this);Object.keys(i.xgridAttr).forEach(m=>{v.attr(m,i.xgridAttr[m]).style("opacity",()=>v.attr(l?"y1":"x1")===(l?i.height:0)?"0":null)})})},updateYGrid(){const t=this,{axis:e,config:n,scale:a,state:i,$el:{grid:s,main:o}}=t,l=n.axis_rotated,c=g=>Math.ceil(a.y(g)),u=e.y.getGeneratedTicks(n.grid_y_ticks)||t.scale.y.ticks(n.grid_y_ticks);s.y=o.select(`.${qe.ygrids}`).selectAll(`.${qe.ygrid}`).data(u),s.y.exit().remove(),s.y=s.y.enter().append("line").attr("class",qe.ygrid).merge(s.y),s.y.attr("x1",l?c:0).attr("x2",l?c:i.width).attr("y1",l?0:c).attr("y2",l?i.height:c),Iu(s.y,"grid")},updateGrid(){const t=this,{$el:{grid:e,gridLines:n}}=t;!n.main&&t.initGridLines(),e.main.style("visibility",t.hasArcType()?"hidden":null),t.hideGridFocus(),t.updateGridLines("x"),t.updateGridLines("y")},updateGridLines(t){const e=this,{config:n,$el:{gridLines:a,main:i},$T:s}=e,o=n.axis_rotated,l=t==="x";n[`grid_${t}_show`]&&e[`update${t.toUpperCase()}Grid`]();let c=i.select(`.${qe[`${t}gridLines`]}`).selectAll(`.${qe[`${t}gridLine`]}`).data(n[`grid_${t}_lines`]);s(c.exit()).style("opacity","0").remove();const u=c.enter().append("g");u.append("line").style("opacity","0"),c=u.merge(c),c.each(function(g){const v=st(this);v.select("text").empty()&&g.text&&v.append("text").style("opacity","0")}),s(c.attr("class",g=>`${qe[`${t}gridLine`]} ${g.class||""}`.trim()).select("text").attr("text-anchor",wy).attr("transform",()=>l?o?null:"rotate(-90)":o?"rotate(-90)":null).attr("dx",My).attr("dy",-5)).text(function(g){var v;return(v=g.text)!=null?v:this.remove()}),a[t]=c},redrawGrid(t){const e=this,{config:{axis_rotated:n},state:{width:a,height:i},$el:{gridLines:s},$T:o}=e,l=e.xv.bind(e),c=e.yv.bind(e);let u=s.x.select("line"),g=s.x.select("text"),v=s.y.select("line"),m=s.y.select("text");return u=o(u,t).attr("x1",n?0:l).attr("x2",n?a:l).attr("y1",n?l:0).attr("y2",n?l:i),g=o(g,t).attr("x",Ou(!n,a,i)).attr("y",l),v=o(v,t).attr("x1",n?c:0).attr("x2",n?c:a).attr("y1",n?0:c).attr("y2",n?i:c),m=o(m,t).attr("x",Ou(n,a,i)).attr("y",c),[u.style("opacity",null),g.style("opacity",null),v.style("opacity",null),m.style("opacity",null)]},initFocusGrid(){const t=this,{config:e,state:{clip:n},$el:a}=t,i=e.grid_front,s=`.${i&&a.gridLines.main?qe.gridLines:Se.chart}${i?" + *":""}`,o=a.main.insert("g",s).attr("clip-path",n.pathGrid).attr("class",qe.grid);if(a.grid.main=o,e.grid_x_show&&o.append("g").attr("class",qe.xgrids),e.grid_y_show&&o.append("g").attr("class",qe.ygrids),e.axis_tooltip){const l=o.append("g").attr("class","bb-axis-tooltip");l.append("line").attr("class","bb-axis-tooltip-x"),l.append("line").attr("class","bb-axis-tooltip-y")}e.interaction_enabled&&e.grid_focus_show&&!e.axis_tooltip&&(o.append("g").attr("class",We.xgridFocus).append("line").attr("class",We.xgridFocus),e.grid_focus_y&&!e.tooltip_grouped&&o.append("g").attr("class",We.ygridFocus).append("line").attr("class",We.ygridFocus))},showAxisGridFocus(){var t,e;const n=this,{config:a,format:i,state:{event:s,width:o,height:l}}=n,c=a.axis_rotated,[u,g]=zn(s,(t=n.$el.eventRect)==null?void 0:t.node()),v={x:u,y:g};for(const[m,S]of Object.entries(n.$el.axisTooltip)){const I=m==="x"&&!c||m!=="x"&&c?"x":"y",N=v[I];let M=(e=n.scale[m])==null?void 0:e.invert(N);M&&(M=m==="x"&&n.axis.isTimeSeries()?i.xAxisTick(M):M==null?void 0:M.toFixed(2),S==null||S.attr(I,N).text(M))}n.$el.main.selectAll("line.bb-axis-tooltip-x, line.bb-axis-tooltip-y").style("visibility",null).each(function(m,S){const I=st(this);S===0?I.attr("x1",u).attr("x2",u).attr("y1",S?0:l).attr("y2",S?l:0):I.attr("x1",S?0:o).attr("x2",S?o:0).attr("y1",g).attr("y2",g)})},hideAxisGridFocus(){const t=this;t.$el.main.selectAll("line.bb-axis-tooltip-x, line.bb-axis-tooltip-y").style("visibility","hidden"),Object.values(t.$el.axisTooltip).forEach(e=>e==null?void 0:e.style("display","none"))},showGridFocus(t){var e;const n=this,{config:a,state:{width:i,height:s}}=n,o=a.axis_rotated,l=n.$el.main.selectAll(`line.${We.xgridFocus}, line.${We.ygridFocus}`),c=(t||[l.datum()]).filter(v=>v&&Ie(n.getBaseValue(v)));if(!a.tooltip_show||c.length===0||!a.axis_x_forceAsSingle&&n.hasType("bubble")||n.hasArcType())return;const u=a.grid_focus_edge&&!a.tooltip_grouped,g=n.xx.bind(n);l.style("visibility",null).data(c.concat(c)).each(function(v){const m=st(this),S={x:g(v),y:n.getYScaleById(v.id)(v.value)};let I;if(m.classed(We.xgridFocus))I=o?[null,S.x,u?S.y:i,S.x]:[S.x,u?S.y:null,S.x,s];else{const N=n.axis.getId(v.id)==="y2";I=o?[S.y,u&&!N?S.x:null,S.y,u&&N?S.x:s]:[u&&N?S.x:null,S.y,u&&!N?S.x:i,S.y]}["x1","y1","x2","y2"].forEach((N,M)=>m.attr(N,I[M]))}),Iu(l,"grid"),(e=n.showCircleFocus)==null||e.call(n,t)},hideGridFocus(){var t;const e=this,{state:{inputType:n,resizing:a},$el:{main:i}}=e;(n==="mouse"||!a)&&(i.selectAll(`line.${We.xgridFocus}, line.${We.ygridFocus}`).style("visibility","hidden"),(t=e.hideCircleFocus)==null||t.call(e))},updateGridFocus(){var t;const e=this,{state:{inputType:n,width:a,height:i,resizing:s},$el:{grid:o}}=e,l=o.main.select(`line.${We.xgridFocus}`);if(n==="touch")l.empty()?s&&((t=e.showCircleFocus)==null||t.call(e)):e.showGridFocus();else{const c=e.config.axis_rotated;l.attr("x1",c?0:-10).attr("x2",c?a:-10).attr("y1",c?-10:0).attr("y2",c?-10:i)}return!0},generateGridData(t,e){const n=this,a=n.$el.main.select(`.${on.axisX}`).selectAll(".tick").size();let i=[];if(t==="year"){const s=n.getXDomain(),[o,l]=s.map(c=>c.getFullYear());for(let c=o;c<=l;c++)i.push(new Date(`${c}-01-01 00:00:00`))}else i=e.ticks(10),i.length>a&&(i=i.filter(s=>String(s).indexOf(".")<0));return i},getGridFilterToRemove(t){return t?e=>{let n=!1;return(Fe(t)?t.concat():[t]).forEach(a=>{("value"in a&&e.value===a.value||"class"in a&&e.class===a.class)&&(n=!0)}),n}:()=>!0},removeGridLines(t,e){const n=this,{config:a,$T:i}=n,s=n.getGridFilterToRemove(t),o=g=>!s(g),l=e?qe.xgridLines:qe.ygridLines,c=e?qe.xgridLine:qe.ygridLine;i(n.$el.main.select(`.${l}`).selectAll(`.${c}`).filter(s)).style("opacity","0").remove();const u=`grid_${e?"x":"y"}_lines`;a[u]=a[u].filter(o)}},Dy={initRegion(){const t=this,{$el:e}=t;e.region.main=e.main.insert("g",":first-child").attr("clip-path",t.state.clip.path).attr("class",xa.regions)},updateRegion(){const t=this,{config:e,$el:{region:n},$T:a}=t;n.main||t.initRegion(),n.main.style("visibility",t.hasArcType()?"hidden":null);const i=n.main.selectAll(`.${xa.region}`).data(e.regions);a(i.exit()).style("opacity","0").remove();const s=i.enter().append("g");s.append("rect").style("fill-opacity","0"),n.list=s.merge(i).attr("class",t.classRegion.bind(t)),n.list.each(function(o){var l;st(this).select("text").empty()&&((l=o.label)!=null&&l.text)&&st(this).append("text").style("opacity","0")})},redrawRegion(t){const e=this,{$el:{region:n},$T:a}=e;let i=n.list.select("rect"),s=n.list.selectAll("text");return i=a(i,t).attr("x",e.regionX.bind(e)).attr("y",e.regionY.bind(e)).attr("width",e.regionWidth.bind(e)).attr("height",e.regionHeight.bind(e)),s=a(s,t).attr("transform",o=>{var l;const{x:c=0,y:u=0,rotated:g=!1}=(l=o.label)!=null?l:{};return`translate(${e.regionX.bind(e)(o)+c}, ${e.regionY.bind(e)(o)+u})${g?" rotate(-90)":""}`}).attr("text-anchor",o=>{var l;return(l=o.label)!=null&&l.rotated?"end":null}).attr("dy","1em").style("fill",o=>{var l,c;return(c=(l=o.label)==null?void 0:l.color)!=null?c:null}).text(o=>{var l;return(l=o.label)==null?void 0:l.text}),[i.style("fill-opacity",o=>Ie(o.opacity)?o.opacity:null).on("end",function(){st(this.parentNode).selectAll("rect:not([x])").remove()}),s.style("opacity",null)]},getRegionXY(t,e){const n=this,{config:a,scale:i}=n,s=a.axis_rotated,o=t==="x";let l="start",c,u=0;return e.axis==="y"||e.axis==="y2"?(o||(l="end"),(o?s:!s)&&l in e&&(c=i[e.axis],u=c(e[l]))):(o?!s:s)&&l in e&&(c=i.zoom||i.x,u=c(n.axis.isTimeSeries()?Dn.call(n,e[l]):e[l])),u},regionX(t){return this.getRegionXY("x",t)},regionY(t){return this.getRegionXY("y",t)},getRegionSize(t,e){const n=this,{config:a,scale:i,state:s}=n,o=a.axis_rotated,l=t==="width",c=n[l?"regionX":"regionY"](e);let u,g="end",v=s[t];return e.axis==="y"||e.axis==="y2"?(l||(g="start"),(l?o:!o)&&g in e&&(u=i[e.axis],v=u(e[g]))):(l?!o:o)&&g in e&&(u=i.zoom||i.x,v=u(n.axis.isTimeSeries()?Dn.call(n,e[g]):e[g])),v<c?0:v-c},regionWidth(t){return this.getRegionSize("width",t)},regionHeight(t){return this.getRegionSize("height",t)},isRegionOnX(t){return!t.axis||t.axis==="x"}},Ny={getAxisSize(t){const e=this,n=e.config.axis_rotated;return n&&t==="x"||!n&&/y2?/.test(t)?e.getAxisWidthByAxisId(t,!0):e.getHorizontalAxisHeight(t)},getAxisWidthByAxisId(t,e){var n,a;const i=this;if(i.axis){const s=(n=i.axis)==null?void 0:n.getLabelPositionById(t),{width:o}=i.axis.getMaxTickSize(t,e),l=o===0?.5:0;return o+(((a=i.config.padding)==null?void 0:a.mode)==="fit"?s.isInner?10+l:10:s.isInner?20+l:40)}else return 40},getHorizontalAxisHeight(t){var e,n;const a=this,{config:i,state:s}=a,{rotatedPadding:o,isLegendRight:l,isLegendInset:c}=s,u=i.axis_rotated,g=((e=i.padding)==null?void 0:e.mode)==="fit",v=i[`axis_${t}_inner`],m=i[`axis_${t}_label`].text,S=13;let I=((n=i.padding)==null?void 0:n.mode)==="fit"?v&&!m?t==="y"?1:0:20:30;if(t==="x"&&!i.axis_x_show)return 8;if(t==="x"&&ue(i.axis_x_height))return i.axis_x_height;if(t==="y"&&!i.axis_y_show)return i.legend_show&&!l&&!c?10:1;if(t==="y2"&&!i.axis_y2_show)return g?0:o.top;const N=a.axis.getMaxTickSize(t),M=Math.abs(i.axis_x_tick_rotate)>0&&(!i.axis_x_tick_autorotate||a.needToRotateXAxisTickTexts());return(i.axis_x_tick_multiline||M)&&N.height>S&&(I+=N.height-S),I+(a.axis.getLabelPositionById(t).isInner?0:10)+(t==="y2"&&!u?-10:0)},getEventRectWidth(){const t=this,{config:e,axis:n}=t,a=e.axis_x_inverted,i=n.x.tickInterval();return Math.max(0,a?Math.abs(i):i)},getAxisTickRotate(t){const e=this,{axis:n,config:a,state:i,$el:s}=e;let o=a[`axis_${t}_tick_rotate`];if(t==="x"){const l=n.isCategorized()||n.isTimeSeries();if(a.axis_x_tick_fit&&l){const c=a.axis_x_tick_count,u=i.current.maxTickSize.x.ticks.length;let g=0;if(c?g=c>u?u:c:u&&(g=u),g!==i.axis.x.tickCount){const{targets:v}=e.data;i.axis.x.padding=e.getXDomainPadding([e.getXDomainMinMax(v,"min"),e.getXDomainMinMax(v,"max")],g)}i.axis.x.tickCount=g}s.svg&&a.axis_x_tick_autorotate&&a.axis_x_tick_fit&&!a.axis_x_tick_multiline&&!a.axis_x_tick_culling&&l&&(o=e.needToRotateXAxisTickTexts()?a.axis_x_tick_rotate:0)}return o},needToRotateXAxisTickTexts(){const t=this,{state:{axis:e,current:n,isLegendRight:a,legendItemWidth:i}}=t,s=a&&i,o=n.width-s-t.getCurrentPaddingByDirection("left")-t.getCurrentPaddingByDirection("right"),l=e.x.tickCount+e.x.padding.left+e.x.padding.right,{width:c}=t.axis.getMaxTickSize("x"),u=l?o/l:0;return c>u}},Fy={axis_x_clipPath:!0,axis_x_show:!0,axis_x_forceAsSingle:!1,axis_x_type:"indexed",axis_x_localtime:!0,axis_x_categories:[],axis_x_tick_centered:!1,axis_x_tick_format:void 0,axis_x_tick_culling:{},axis_x_tick_culling_max:10,axis_x_tick_culling_lines:!0,axis_x_tick_count:void 0,axis_x_tick_show:!0,axis_x_tick_text_show:!0,axis_x_tick_text_inner:!1,axis_x_tick_text_position:{x:0,y:0},axis_x_tick_fit:!0,axis_x_tick_values:null,axis_x_tick_autorotate:!1,axis_x_tick_rotate:0,axis_x_tick_outer:!0,axis_x_tick_multiline:!0,axis_x_tick_width:null,axis_x_tick_tooltip:!1,axis_x_max:void 0,axis_x_min:void 0,axis_x_inverted:!1,axis_x_padding:{},axis_x_height:void 0,axis_x_extent:void 0,axis_x_label:{},axis_x_axes:[]},By={axis_y_clipPath:!0,axis_y_show:!0,axis_y_type:"indexed",axis_y_max:void 0,axis_y_min:void 0,axis_y_inverted:!1,axis_y_center:void 0,axis_y_inner:!1,axis_y_label:{},axis_y_tick_format:void 0,axis_y_tick_culling:!1,axis_y_tick_culling_max:5,axis_y_tick_culling_lines:!0,axis_y_tick_outer:!0,axis_y_tick_values:null,axis_y_tick_rotate:0,axis_y_tick_count:void 0,axis_y_tick_show:!0,axis_y_tick_stepSize:null,axis_y_tick_text_show:!0,axis_y_tick_text_position:{x:0,y:0},axis_y_tick_time_value:void 0,axis_y_padding:{},axis_y_default:void 0,axis_y_axes:[]},Uy={axis_y2_show:!1,axis_y2_type:"indexed",axis_y2_max:void 0,axis_y2_min:void 0,axis_y2_inverted:!1,axis_y2_center:void 0,axis_y2_inner:!1,axis_y2_label:{},axis_y2_tick_format:void 0,axis_y2_tick_culling:!1,axis_y2_tick_culling_max:5,axis_y2_tick_culling_lines:!0,axis_y2_tick_outer:!0,axis_y2_tick_values:null,axis_y2_tick_rotate:0,axis_y2_tick_count:void 0,axis_y2_tick_show:!0,axis_y2_tick_stepSize:null,axis_y2_tick_text_show:!0,axis_y2_tick_text_position:{x:0,y:0},axis_y2_padding:{},axis_y2_default:void 0,axis_y2_axes:[]},zy=Object.defineProperty,Cu=Object.getOwnPropertySymbols,jy=Object.prototype.hasOwnProperty,Gy=Object.prototype.propertyIsEnumerable,Pu=(t,e,n)=>e in t?zy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,yo=(t,e)=>{for(var n in e||(e={}))jy.call(e,n)&&Pu(t,n,e[n]);if(Cu)for(var n of Cu(e))Gy.call(e,n)&&Pu(t,n,e[n]);return t},Xy=yo(yo(yo({axis_rotated:!1,axis_tooltip:!1},Fy),By),Uy),Vy={grid_x_show:!1,grid_x_type:"tick",grid_x_lines:[],grid_y_show:!1,grid_y_lines:[],grid_y_ticks:void 0,grid_focus_edge:!1,grid_focus_show:!0,grid_focus_y:!1,grid_front:!1,grid_lines_front:!0},Yy={data_xs:{},data_xFormat:"%Y-%m-%d",data_xLocaltime:!0,data_xSort:!0,data_axes:{},data_regions:{},data_stack_normalize:!1};const Hy=[ry,ay,iy,sy,oy,ly,cy],wu={axis:Ey,clip:Py,eventrect:Oy,flow:Cy,grid:Ly,region:Dy,sizeAxis:Ny},Mu={optDataAxis:Yy,optAxis:Xy,optGrid:Vy};var $1=Array.prototype.slice;function xo(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Pe(t){return function(){return t}}function Wy(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function Ky(t){return t}function Zy(){var t=Ky,e=Wy,n=null,a=Pe(0),i=Pe(Ui),s=Pe(0);function o(l){var c,u=(l=xo(l)).length,g,v,m=0,S=new Array(u),I=new Array(u),N=+a.apply(this,arguments),M=Math.min(Ui,Math.max(-Ui,i.apply(this,arguments)-N)),P,X=Math.min(Math.abs(M)/u,s.apply(this,arguments)),W=X*(M<0?-1:1),G;for(c=0;c<u;++c)(G=I[S[c]=c]=+t(l[c],c,l))>0&&(m+=G);for(e!=null?S.sort(function(k,H){return e(I[k],I[H])}):n!=null&&S.sort(function(k,H){return n(l[k],l[H])}),c=0,v=m?(M-u*W)/m:0;c<u;++c,N=P)g=S[c],G=I[g],P=N+(G>0?G*v:0)+W,I[g]={data:l[g],index:c,value:G,startAngle:N,endAngle:P,padAngle:X};return I}return o.value=function(l){return arguments.length?(t=typeof l=="function"?l:Pe(+l),o):t},o.sortValues=function(l){return arguments.length?(e=l,n=null,o):e},o.sort=function(l){return arguments.length?(n=l,e=null,o):n},o.startAngle=function(l){return arguments.length?(a=typeof l=="function"?l:Pe(+l),o):a},o.endAngle=function(l){return arguments.length?(i=typeof l=="function"?l:Pe(+l),o):i},o.padAngle=function(l){return arguments.length?(s=typeof l=="function"?l:Pe(+l),o):s},o}var ky=Math.pow;const To=Math.PI,$o=2*To,Br=1e-6,Jy=$o-Br;function Lu(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function Qy(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return Lu;const n=ky(10,e);return function(a){this._+=a[0];for(let i=1,s=a.length;i<s;++i)this._+=Math.round(arguments[i]*n)/n+a[i]}}class Hi{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?Lu:Qy(e)}moveTo(e,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,n){this._append`L${this._x1=+e},${this._y1=+n}`}quadraticCurveTo(e,n,a,i){this._append`Q${+e},${+n},${this._x1=+a},${this._y1=+i}`}bezierCurveTo(e,n,a,i,s,o){this._append`C${+e},${+n},${+a},${+i},${this._x1=+s},${this._y1=+o}`}arcTo(e,n,a,i,s){if(e=+e,n=+n,a=+a,i=+i,s=+s,s<0)throw new Error(`negative radius: ${s}`);let o=this._x1,l=this._y1,c=a-e,u=i-n,g=o-e,v=l-n,m=g*g+v*v;if(this._x1===null)this._append`M${this._x1=e},${this._y1=n}`;else if(m>Br)if(!(Math.abs(v*c-u*g)>Br)||!s)this._append`L${this._x1=e},${this._y1=n}`;else{let S=a-o,I=i-l,N=c*c+u*u,M=S*S+I*I,P=Math.sqrt(N),X=Math.sqrt(m),W=s*Math.tan((To-Math.acos((N+m-M)/(2*P*X)))/2),G=W/X,k=W/P;Math.abs(G-1)>Br&&this._append`L${e+G*g},${n+G*v}`,this._append`A${s},${s},0,0,${+(v*S>g*I)},${this._x1=e+k*c},${this._y1=n+k*u}`}}arc(e,n,a,i,s,o){if(e=+e,n=+n,a=+a,o=!!o,a<0)throw new Error(`negative radius: ${a}`);let l=a*Math.cos(i),c=a*Math.sin(i),u=e+l,g=n+c,v=1^o,m=o?i-s:s-i;this._x1===null?this._append`M${u},${g}`:(Math.abs(this._x1-u)>Br||Math.abs(this._y1-g)>Br)&&this._append`L${u},${g}`,a&&(m<0&&(m=m%$o+$o),m>Jy?this._append`A${a},${a},0,1,${v},${e-l},${n-c}A${a},${a},0,1,${v},${this._x1=u},${this._y1=g}`:m>Br&&this._append`A${a},${a},0,${+(m>=To)},${v},${this._x1=e+a*Math.cos(s)},${this._y1=n+a*Math.sin(s)}`)}rect(e,n,a,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${a=+a}v${+i}h${-a}Z`}toString(){return this._}}function _y(){return new Hi}_y.prototype=Hi.prototype;function S1(t=3){return new Hi(+t)}function So(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const a=Math.floor(n);if(!(a>=0))throw new RangeError(`invalid digits: ${n}`);e=a}return t},()=>new Hi(e)}function qy(t){return t.innerRadius}function tx(t){return t.outerRadius}function ex(t){return t.startAngle}function nx(t){return t.endAngle}function rx(t){return t&&t.padAngle}function ax(t,e,n,a,i,s,o,l){var c=n-t,u=a-e,g=o-i,v=l-s,m=v*c-g*u;if(!(m*m<Tn))return m=(g*(e-s)-v*(t-i))/m,[t+m*c,e+m*u]}function Wi(t,e,n,a,i,s,o){var l=t-n,c=e-a,u=(o?s:-s)/ra(l*l+c*c),g=u*c,v=-u*l,m=t+g,S=e+v,I=n+g,N=a+v,M=(m+I)/2,P=(S+N)/2,X=I-m,W=N-S,G=X*X+W*W,k=i-s,H=m*N-I*S,at=(W<0?-1:1)*ra(Jp(0,k*k*G-H*H)),mt=(H*W-X*at)/G,At=(-H*X-W*at)/G,St=(H*W+X*at)/G,Tt=(-H*X+W*at)/G,Gt=mt-M,xt=At-P,Q=St-M,Ct=Tt-P;return Gt*Gt+xt*xt>Q*Q+Ct*Ct&&(mt=St,At=Tt),{cx:mt,cy:At,x01:-g,y01:-v,x11:mt*(i/k-1),y11:At*(i/k-1)}}function Du(){var t=qy,e=tx,n=Pe(0),a=null,i=ex,s=nx,o=rx,l=null,c=So(u);function u(){var g,v,m=+t.apply(this,arguments),S=+e.apply(this,arguments),I=i.apply(this,arguments)-Bi,N=s.apply(this,arguments)-Bi,M=Xc(N-I),P=N>I;if(l||(l=g=c()),S<m&&(v=S,S=m,m=v),!(S>Tn))l.moveTo(0,0);else if(M>Ui-Tn)l.moveTo(S*Nr(I),S*Qn(I)),l.arc(0,0,S,I,N,!P),m>Tn&&(l.moveTo(m*Nr(N),m*Qn(N)),l.arc(0,0,m,N,I,P));else{var X=I,W=N,G=I,k=N,H=M,at=M,mt=o.apply(this,arguments)/2,At=mt>Tn&&(a?+a.apply(this,arguments):ra(m*m+S*S)),St=lo(Xc(S-m)/2,+n.apply(this,arguments)),Tt=St,Gt=St,xt,Q;if(At>Tn){var Ct=Vc(At/m*Qn(mt)),ht=Vc(At/S*Qn(mt));(H-=Ct*2)>Tn?(Ct*=P?1:-1,G+=Ct,k-=Ct):(H=0,G=k=(I+N)/2),(at-=ht*2)>Tn?(ht*=P?1:-1,X+=ht,W-=ht):(at=0,X=W=(I+N)/2)}var It=S*Nr(X),Yt=S*Qn(X),Xt=m*Nr(k),Zt=m*Qn(k);if(St>Tn){var Wt=S*Nr(W),ne=S*Qn(W),je=m*Nr(G),Oe=m*Qn(G),Ge;if(M<La)if(Ge=ax(It,Yt,je,Oe,Wt,ne,Xt,Zt)){var cn=It-Ge[0],Le=Yt-Ge[1],ln=Wt-Ge[0],Ht=ne-Ge[1],pe=1/Qn(Qp((cn*ln+Le*Ht)/(ra(cn*cn+Le*Le)*ra(ln*ln+Ht*Ht)))/2),be=ra(Ge[0]*Ge[0]+Ge[1]*Ge[1]);Tt=lo(St,(m-be)/(pe-1)),Gt=lo(St,(S-be)/(pe+1))}else Tt=Gt=0}at>Tn?Gt>Tn?(xt=Wi(je,Oe,It,Yt,S,Gt,P),Q=Wi(Wt,ne,Xt,Zt,S,Gt,P),l.moveTo(xt.cx+xt.x01,xt.cy+xt.y01),Gt<St?l.arc(xt.cx,xt.cy,Gt,xn(xt.y01,xt.x01),xn(Q.y01,Q.x01),!P):(l.arc(xt.cx,xt.cy,Gt,xn(xt.y01,xt.x01),xn(xt.y11,xt.x11),!P),l.arc(0,0,S,xn(xt.cy+xt.y11,xt.cx+xt.x11),xn(Q.cy+Q.y11,Q.cx+Q.x11),!P),l.arc(Q.cx,Q.cy,Gt,xn(Q.y11,Q.x11),xn(Q.y01,Q.x01),!P))):(l.moveTo(It,Yt),l.arc(0,0,S,X,W,!P)):l.moveTo(It,Yt),!(m>Tn)||!(H>Tn)?l.lineTo(Xt,Zt):Tt>Tn?(xt=Wi(Xt,Zt,Wt,ne,m,-Tt,P),Q=Wi(It,Yt,je,Oe,m,-Tt,P),l.lineTo(xt.cx+xt.x01,xt.cy+xt.y01),Tt<St?l.arc(xt.cx,xt.cy,Tt,xn(xt.y01,xt.x01),xn(Q.y01,Q.x01),!P):(l.arc(xt.cx,xt.cy,Tt,xn(xt.y01,xt.x01),xn(xt.y11,xt.x11),!P),l.arc(0,0,m,xn(xt.cy+xt.y11,xt.cx+xt.x11),xn(Q.cy+Q.y11,Q.cx+Q.x11),P),l.arc(Q.cx,Q.cy,Tt,xn(Q.y11,Q.x11),xn(Q.y01,Q.x01),!P))):l.arc(0,0,m,k,G,P)}if(l.closePath(),g)return l=null,g+""||null}return u.centroid=function(){var g=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,v=(+i.apply(this,arguments)+ +s.apply(this,arguments))/2-La/2;return[Nr(v)*g,Qn(v)*g]},u.innerRadius=function(g){return arguments.length?(t=typeof g=="function"?g:Pe(+g),u):t},u.outerRadius=function(g){return arguments.length?(e=typeof g=="function"?g:Pe(+g),u):e},u.cornerRadius=function(g){return arguments.length?(n=typeof g=="function"?g:Pe(+g),u):n},u.padRadius=function(g){return arguments.length?(a=g==null?null:typeof g=="function"?g:Pe(+g),u):a},u.startAngle=function(g){return arguments.length?(i=typeof g=="function"?g:Pe(+g),u):i},u.endAngle=function(g){return arguments.length?(s=typeof g=="function"?g:Pe(+g),u):s},u.padAngle=function(g){return arguments.length?(o=typeof g=="function"?g:Pe(+g),u):o},u.context=function(g){return arguments.length?(l=g==null?null:g,u):l},u}var ix=Object.defineProperty,sx=Object.defineProperties,ox=Object.getOwnPropertyDescriptors,Nu=Object.getOwnPropertySymbols,lx=Object.prototype.hasOwnProperty,cx=Object.prototype.propertyIsEnumerable,Fu=(t,e,n)=>e in t?ix(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ux=(t,e)=>{for(var n in e||(e={}))lx.call(e,n)&&Fu(t,n,e[n]);if(Nu)for(var n of Nu(e))cx.call(e,n)&&Fu(t,n,e[n]);return t},fx=(t,e)=>sx(t,ox(e));function Bu(t=0){const e=this,{config:n,state:a}=e,i=e.hasMultiArcGauge(),s=a.gaugeArcWidth/e.filterTargetsToShow(e.data.targets).length,o=t?Math.min(a.radiusExpanded*t-a.radius,s*.8-(1-t)*100):0;return{inner(l){const{innerRadius:c}=e.getRadius(l);return i?a.radius-s*(l.index+1):ue(c)?c:0},outer(l){const{outerRadius:c}=e.getRadius(l);let u;if(i)u=a.radius-s*l.index+o;else if(e.hasType("polar")&&!t)u=e.getPolarOuterRadius(l,c);else if(u=c,t){let{radiusExpanded:g}=a;a.radius!==c&&(g-=Math.abs(a.radius-c)),u=g*t}return u},corner(l,c){const{arc_cornerRadius_ratio:u=0,arc_cornerRadius:g=0}=n,{data:{id:v},value:m}=l;let S=0;return u?S=u*c:S=ue(g)?g:g.call(e.api,v,m,c),S}}}function Ao(t){return function(e){const n=({startAngle:i=0,endAngle:s=0,padAngle:o=0})=>({startAngle:i,endAngle:s,padAngle:o}),a=Kr(n(this._current),n(e));return this._current=e,function(i){const s=a(i),{data:o,index:l,value:c}=e;return t(fx(ux({},s),{data:o,index:l,value:c}))}}}var dx={initPie(){const t=this,{config:e}=t,n=e.data_type,a=e[`${n}_padding`],i=e[`${n}_startingAngle`]||0,s=(a?a*.01:e[`${n}_padAngle`])||0;t.pie=Zy().startAngle(i).endAngle(i+2*Math.PI).padAngle(s).value(o=>{var l,c;return(c=(l=o.values)==null?void 0:l.reduce((u,g)=>u+g.value,0))!=null?c:o}).sort(t.getSortCompareFn.bind(t)(!0))},updateRadius(){const t=this,{config:e,state:n}=t,a=e.data_type,i=e[`${a}_padding`],s=e.gauge_width||e.donut_width,o=t.filterTargetsToShow(t.data.targets).length*e.gauge_arcs_minWidth;n.radiusExpanded=Math.min(n.arcWidth,n.arcHeight)/2*(t.hasMultiArcGauge()&&e.gauge_label_show?.85:1),n.radius=n.radiusExpanded*.95,n.innerRadiusRatio=s?(n.radius-s)/n.radius:.6,n.gaugeArcWidth=s||(o<=n.radius-n.innerRadius?n.radius-n.innerRadius:o<=n.radius?o:n.radius);const l=e.pie_innerRadius||(i?i*(n.innerRadiusRatio+.1):0);n.outerRadius=e.pie_outerRadius,n.innerRadius=t.hasType("donut")||t.hasType("gauge")?n.radius*n.innerRadiusRatio:l},getRadius(t){const e=this,n=t==null?void 0:t.data;let{innerRadius:a,outerRadius:i}=e.state;return!ue(a)&&n&&(a=a[n.id]||0),De(i)&&n&&n.id in i?i=i[n.id]:ue(i)||(i=e.state.radius),{innerRadius:a,outerRadius:i}},updateArc(){const t=this;t.updateRadius(),t.svgArc=t.getSvgArc(),t.svgArcExpanded=t.getSvgArcExpanded()},getArcLength(){const t=this,{config:e}=t,n=e.gauge_arcLength*3.6;let a=2*(n/360);return n<-360?a=-2:n>360&&(a=2),a*Math.PI},getStartingAngle(){const t=this,{config:e}=t,n=e.data_type,a=t.hasType("gauge")?e.gauge_fullCircle:!1,i=-1*Math.PI/2,s=Math.PI/2;let o=e[`${n}_startingAngle`]||0;return!a&&o<=i?o=i:!a&&o>=s?o=s:(o>Math.PI||o<-1*Math.PI)&&(o=Math.PI),o},updateAngle(t,e=!1){var n;const a=this,{config:i,state:s}=a,o=e&&a.hasType("gauge");let{pie:l}=a,c=t,u=!1;if(!i)return null;const g=a.getStartingAngle(),v=i.gauge_fullCircle||e&&!o?a.getArcLength():g*-2;if(c.data&&a.isGaugeType(c.data)&&!a.hasMultiArcGauge()){const{gauge_min:m,gauge_max:S}=i,I=a.getTotalDataSum(s.rendered),N=v*((I-m)/(S-m));l=l.startAngle(g).endAngle(N+g)}if(e===!1&&l(a.filterTargetsToShow()).forEach((m,S)=>{var I;!u&&m.data.id===((I=c.data)==null?void 0:I.id)&&(u=!0,c=m,c.index=S)}),isNaN(c.startAngle)&&(c.startAngle=0),isNaN(c.endAngle)&&(c.endAngle=c.startAngle),e||c.data&&(i.gauge_enforceMinMax||a.hasMultiArcGauge())){const{gauge_min:m,gauge_max:S}=i,I=e&&!o?a.getTotalDataSum(s.rendered):S,N=v/(I-m),M=(n=c.value)!=null?n:0,P=M<m?0:M<I?M-m:I-m;c.startAngle=g,c.endAngle=g+N*P}return u||e?c:null},getSvgArc(){const t=this,{inner:e,outer:n,corner:a}=Bu.call(t),i=Du().innerRadius(e).outerRadius(n),s=function(o,l){var c;let u="M 0 0";if(o.value||o.data){const g=l?o:(c=t.updateAngle(o))!=null?c:null;g&&(u=i.cornerRadius(a(g,n(g)))(g))}return u};return s.centroid=i.centroid,s},getSvgArcExpanded(t=1){const e=this,{inner:n,outer:a,corner:i}=Bu.call(e,t),s=Du().innerRadius(n).outerRadius(a);return o=>{const l=e.updateAngle(o),c=a(l);let u=0;return l&&(u=i(l,c)),l?s.cornerRadius(u)(l):"M 0 0"}},getArc(t,e,n){return n||this.isArcType(t.data)?this.svgArc(t,e):"M 0 0"},redrawArcRangeText(){const t=this,{config:e,$el:{arcs:n},state:a,$T:i}=t,s=e.arc_rangeText_format,o=t.hasType("gauge")&&e.arc_rangeText_fixed;let l=e.arc_rangeText_values;if(l!=null&&l.length){const c=e.arc_rangeText_unit==="%",u=t.getTotalDataSum(a.rendered);c&&(l=l.map(m=>u/100*m));const g=t.pie(l).map((m,S)=>(m.index=S,m));let v=n.selectAll(`.${Be.arcRange}`).data(l);v.exit(),v=i(v.enter().append("text").attr("class",Be.arcRange).style("text-anchor","middle").style("pointer-events","none").style("opacity","0").text(m=>{const S=c?m/u*100:m;return he(s)?s(S):`${S}${c?"%":""}`}).merge(v)),(!a.rendered||a.rendered&&!o)&&u>0&&v.attr("transform",(m,S)=>t.transformForArcLabel(g[S],!0)),v.style("opacity",m=>!o&&(m>u||u===0)?"0":null)}},transformForArcLabel(t,e=!1){var n,a,i;const s=this,{config:o,state:{radiusExpanded:l}}=s,c=s.updateAngle(t,e);let u="";if(c){if(e||s.hasMultiArcGauge()){const g=Math.sin(c.endAngle-Math.PI/2),v=o.arc_rangeText_position;let m=Math.cos(c.endAngle-Math.PI/2)*(l+(e?5:25)),S=g*(l+15-Math.abs(g*10))+3;if(e&&v){const I=o.arc_rangeText_values,N=he(v)?v(I[t.index]):v;m+=(n=N==null?void 0:N.x)!=null?n:0,S+=(a=N==null?void 0:N.y)!=null?a:0}u=`translate(${m},${S})`}else if(!s.hasType("gauge")||s.data.targets.length>1){let{outerRadius:g}=s.getRadius(t);s.hasType("polar")&&(g=s.getPolarOuterRadius(t,g));const v=this.svgArc.centroid(c),[m,S]=v.map(M=>isNaN(M)?0:M),I=Math.sqrt(m*m+S*S);let N=(i=["donut","gauge","pie","polar"].filter(s.hasType.bind(s)).map(M=>o[`${M}_label_ratio`]))==null?void 0:i[0];N?N=he(N)?N.bind(s.api)(t,g,I):N:N=g&&(I?(36/g>.375?1.175-36/g:.8)*g/I:0),u=`translate(${m*N},${S*N})`}}return u},convertToArcData(t){return this.addName({id:"data"in t?t.data.id:t.id,value:t.value,ratio:this.getRatio("arc",t),index:t.index})},textForArcLabel(t){const e=this,n=e.hasType("gauge");e.shouldShowArcLabel()&&t.style("fill",e.updateTextColor.bind(e)).attr("filter",a=>e.updateTextBGColor.bind(e)(a,e.config.data_labels_backgroundColors)).each(function(a){var i;const s=st(this),o=e.updateAngle(a),l=e.getRatio("arc",o);if(e.meetsLabelThreshold(l,(i=["donut","gauge","pie","polar"].filter(e.hasType.bind(e)))==null?void 0:i[0])){const{value:u}=o||a,g=(e.getArcLabelFormat()||e.defaultArcValueFormat)(u,l,a.data.id).toString();Ca(s,g,[-1,1],n)}else s.text("")})},expandArc(t){const e=this,{state:{transiting:n},$el:a}=e;if(n){const s=setInterval(()=>{n||(clearInterval(s),a.legend.selectAll(`.${We.legendItemFocused}`).size()>0&&e.expandArc(t))},10);return}const i=e.mapToTargetIds(t);a.svg.selectAll(e.selectorTargets(i,`.${Be.chartArc}`)).each(function(s){if(!e.shouldExpand(s.data.id))return;const o=e.getExpandConfig(s.data.id,"duration"),l=e.getSvgArcExpanded(e.getExpandConfig(s.data.id,"rate"));st(this).selectAll("path").transition().duration(o).attrTween("d",Ao(e.svgArcExpanded.bind(e))).transition().duration(o*2).attrTween("d",Ao(l.bind(e)))})},unexpandArc(t){const e=this,{state:{transiting:n},$el:{svg:a}}=e;if(n)return;const i=e.mapToTargetIds(t);a.selectAll(e.selectorTargets(i,`.${Be.chartArc}`)).selectAll("path").transition().duration(s=>e.getExpandConfig(s.data.id,"duration")).attrTween("d",Ao(e.svgArc.bind(e))),a.selectAll(`${Be.arc}`).style("opacity",null)},getExpandConfig(t,e){const n=this,{config:a}=n,i={duration:50,rate:.98};let s;return n.isDonutType(t)?s="donut":n.isGaugeType(t)?s="gauge":n.isPieType(t)&&(s="pie"),s?a[`${s}_expand_${e}`]:i[e]},shouldExpand(t){const e=this,{config:n}=e;return e.isDonutType(t)&&n.donut_expand||e.isGaugeType(t)&&n.gauge_expand||e.isPieType(t)&&n.pie_expand},shouldShowArcLabel(){const t=this,{config:e}=t;return["donut","gauge","pie","polar"].some(n=>t.hasType(n)&&e[`${n}_label_show`])},getArcLabelFormat(){const t=this,{config:e}=t;let n=a=>a;return["donut","gauge","pie","polar"].filter(t.hasType.bind(t)).forEach(a=>{n=e[`${a}_label_format`]}),he(n)?n.bind(t.api):n},updateTargetsForArc(t){const e=this,{$el:n}=e,a=e.hasType("gauge"),i=e.getChartClass("Arc"),s=e.getClass("arcs",!0),o=e.classFocus.bind(e),l=n.main.select(`.${Be.chartArcs}`),c=l.selectAll(`.${Be.chartArc}`).data(e.pie(t)).attr("class",g=>i(g)+o(g.data)),u=c.enter().append("g").attr("class",i).call(this.setCssRule(!1,`.${Be.chartArcs} text`,["pointer-events:none","text-anchor:middle"]));u.append("g").attr("class",s).merge(c),u.append("text").attr("dy",a&&!e.hasMultiTargets()?"-.1em":".35em").style("opacity","0").style("text-anchor",e.getStylePropValue("middle")).style("pointer-events",e.getStylePropValue("none")),n.text=l.selectAll(`.${Se.target} text`)},initArc(){const t=this,{$el:e}=t;e.arcs=e.main.select(`.${Se.chart}`).append("g").attr("class",Be.chartArcs).attr("transform",t.getTranslate("arc")),t.setArcTitle()},setArcTitle(t){const e=this,n=t||e.getArcTitle(),a=e.hasType("gauge");if(n){const i=a?Ln.chartArcsGaugeTitle:Be.chartArcsTitle;let s=e.$el.arcs.select(`.${i}`);s.empty()&&(s=e.$el.arcs.append("text").attr("class",i).style("text-anchor","middle")),a&&s.attr("dy","-0.3em"),Ca(s,n,a?void 0:[-.6,1.35],!0)}},getArcTitle(){const t=this,e=t.hasType("donut")&&"donut"||t.hasType("gauge")&&"gauge";return e?t.config[`${e}_title`]:""},getArcTitleWithNeedleValue(){const t=this,{config:e,state:n}=t,a=t.getArcTitle();if(a&&t.config.arc_needle_show&&/{=[A-Z_]+}/.test(a)){let i=n.current.needle;return ue(i)||(i=e.arc_needle_value),bi(a,{NEEDLE_VALUE:ue(i)?i:0})}return!1},redrawArc(t,e,n){const a=this,{config:i,state:s,$el:{main:o}}=a,l=i.interaction_enabled,c=l&&i.data_selection_isselectable;let u=o.selectAll(`.${Be.arcs}`).selectAll(`.${Be.arc}`).data(a.arcData.bind(a));u.exit().transition().duration(e).style("opacity","0").remove(),u=u.enter().append("path").attr("class",a.getClass("arc",!0)).style("fill",g=>a.color(g.data)).style("cursor",g=>{var v;return(v=c==null?void 0:c.bind)!=null&&v.call(c,a.api)(g)?"pointer":null}).style("opacity","0").each(function(g){a.isGaugeType(g.data)&&(g.startAngle=i.gauge_startingAngle,g.endAngle=i.gauge_startingAngle),this._current=g}).merge(u),a.hasType("gauge")&&(a.updateGaugeMax(),a.hasMultiArcGauge()&&a.redrawArcGaugeLine()),u.attr("transform",g=>!a.isGaugeType(g.data)&&n?"scale(0)":"").style("opacity",function(g){return g===this._current?"0":null}).each(()=>{s.transiting=!0}).transition().duration(t).attrTween("d",function(g){const v=a.updateAngle(g);if(!v)return()=>"M 0 0";isNaN(this._current.startAngle)&&(this._current.startAngle=0),isNaN(this._current.endAngle)&&(this._current.endAngle=this._current.startAngle);const m=Kr(this._current,v);return this._current=m(0),function(S){const I=m(S);return I.data=g.data,a.getArc(I,!0)}}).attr("transform",n?"scale(1)":"").style("fill",g=>{let v;return a.levelColor?(v=a.levelColor(g.data.values[0].value),i.data_colors[g.data.id]=v):v=a.color(g.data),v}).style("opacity",null).call($i,function(){if(a.levelColor){const g=st(this),v=g.datum(this._current);a.updateLegendItemColor(v.data.id,g.style("fill"))}s.transiting=!1,Ze(i.onrendered,a.api)}),l&&a.bindArcEvent(u),a.hasType("polar")&&a.redrawPolar(),a.hasType("gauge")&&a.redrawBackgroundArcs(),i.arc_needle_show&&a.redrawNeedle(),a.redrawArcText(t),a.redrawArcRangeText()},redrawNeedle(){const t=this,{$el:e,config:n,state:{hiddenTargetIds:a,radius:i}}=t,s=(i-1)/100*n.arc_needle_length,o=a.length!==t.data.targets.length;let l=t.$el.arcs.select(`.${Be.needle}`);const c=n.arc_needle_path,u=n.arc_needle_bottom_width/2,g=n.arc_needle_top_width/2,v=n.arc_needle_top_rx,m=n.arc_needle_top_ry,S=n.arc_needle_bottom_len,I=n.arc_needle_bottom_rx,N=n.arc_needle_bottom_ry,M=t.getNeedleAngle(),P=()=>{const X=t.getArcTitleWithNeedleValue();X&&t.setArcTitle(X)};if(P(),l.empty()&&(l=e.arcs.append("path").classed(Be.needle,!0),e.needle=l,e.needle.updateHelper=(X,W=!1)=>{e.needle.style("display")!=="none"&&t.$T(e.needle).style("transform",`rotate(${t.getNeedleAngle(X)}deg)`).call($i,()=>{W&&(n.arc_needle_value=X),P()})}),o){const X=he(c)?c.call(t,s):`M-${u} ${S} A${I} ${N} 0 0 0 ${u} ${S} L${g} -${s} A${v} ${m} 0 0 0 -${g} -${s} L-${u} ${S} Z`;t.$T(l).attr("d",X).style("fill",n.arc_needle_color).style("display",null).style("transform",`rotate(${M}deg)`)}else l.style("display","none")},getNeedleAngle(t){const e=this,{config:n,state:a}=e,i=e.getArcLength(),s=e.hasType("gauge"),o=e.getTotalDataSum(!0);let l=Ve(t)?t:n.arc_needle_value,c=n[`${n.data_type}_startingAngle`]||0,u=0;if(ue(l)||(l=s&&e.data.targets.length===1?o:0),a.current.needle=l,s){c=e.getStartingAngle();const g=n.gauge_fullCircle?i:c*-2,{gauge_min:v,gauge_max:m}=n;u=g*((l-v)/(m-v))}else u=i*(l/o);return(c+u)*(180/Math.PI)},redrawBackgroundArcs(){const t=this,{config:e,state:n}=t,a=t.hasMultiArcGauge(),i=e.gauge_fullCircle,s=t.filterTargetsToShow(t.data.targets).length===0&&!!e.data_empty_label_text,o=t.getStartingAngle(),l=i?o+t.getArcLength():o*-1;let c=t.$el.arcs.select(`${a?"g":""}.${Be.chartArcsBackground}`);if(a){let u=0;c=c.selectAll(`path.${Be.chartArcsBackground}`).data(t.data.targets),c.enter().append("path").attr("class",(g,v)=>`${Be.chartArcsBackground} ${Be.chartArcsBackground}-${v}`).merge(c).style("fill",e.gauge_background||null).attr("d",({id:g})=>{if(s||n.hiddenTargetIds.indexOf(g)>=0)return"M 0 0";const v={data:[{value:e.gauge_max}],startAngle:o,endAngle:l,index:u++};return t.getArc(v,!0,!0)}),c.exit().remove()}else c.attr("d",s?"M 0 0":()=>{const u={data:[{value:e.gauge_max}],startAngle:o,endAngle:l};return t.getArc(u,!0,!0)})},bindArcEvent(t){const e=this,{config:n,state:a}=e,i=a.inputType==="touch",s=a.inputType==="mouse";function o(c,u,g){e.expandArc(g),e.api.focus(g),e.toggleFocusLegend(g,!0),e.showTooltip([u],c)}function l(c){const u=(c==null?void 0:c.id)||void 0;e.unexpandArc(u),e.api.revert(),e.revertLegend(),e.hideTooltip()}if(t.on("click",function(c,u,g){var v;const m=e.updateAngle(u);let S;m&&(S=e.convertToArcData(m),(v=e.toggleShape)==null||v.call(e,this,S,g),n.data_onclick.bind(e.api)(S,this))}),s&&t.on("mouseover",function(c,u){if(a.transiting)return;a.event=c;const g=e.updateAngle(u),v=g?e.convertToArcData(g):null,m=(v==null?void 0:v.id)||void 0;o(this,v,m),e.setOverOut(!0,v)}).on("mouseout",(c,u)=>{if(a.transiting)return;a.event=c;const g=e.updateAngle(u),v=g?e.convertToArcData(g):null;l(),e.setOverOut(!1,v)}).on("mousemove",function(c,u){const g=e.updateAngle(u),v=g?e.convertToArcData(g):null;a.event=c,e.showTooltip([v],this)}),i&&e.hasArcType()&&!e.radars){const c=u=>{var g,v;const{clientX:m,clientY:S}=(v=(g=u.changedTouches)==null?void 0:g[0])!=null?v:{clientX:0,clientY:0};return st(fn.elementFromPoint(m,S))};e.$el.svg.on("touchstart touchmove",function(u){if(a.transiting)return;a.event=u;const v=c(u).datum(),m=v!=null&&v.data&&v.data.id?e.updateAngle(v):null,S=m?e.convertToArcData(m):null,I=(S==null?void 0:S.id)||void 0;e.callOverOutForTouch(S),en(I)?l():o(this,S,I)})}},redrawArcText(t){const e=this,{config:n,state:a,$el:{main:i,arcs:s}}=e,o=e.hasType("gauge"),l=e.hasMultiArcGauge();let c;if(o&&e.data.targets.length===1&&n.gauge_title||(c=i.selectAll(`.${Be.chartArc}`).select("text").style("opacity","0").attr("class",u=>e.isGaugeType(u.data)?Ln.gaugeValue:null).call(e.textForArcLabel.bind(e)).attr("transform",u=>e.transformForArcLabel.bind(e)(u)).style("font-size",u=>e.isGaugeType(u.data)&&e.data.targets.length===1&&!l?`${Math.round(a.radius/5)}px`:null).transition().duration(t).style("opacity",u=>e.isTargetToShow(u.data.id)&&e.isArcType(u.data)?null:"0"),l&&c.attr("dy","-.1em")),i.select(`.${Be.chartArcsTitle}`).style("opacity",e.hasType("donut")||o?null:"0"),o){const u=n.gauge_fullCircle;u&&(c==null||c.attr("dy",`${l?0:Math.round(a.radius/14)}`)),n.gauge_label_show&&(s.select(`.${Ln.chartArcsGaugeUnit}`).attr("dy",`${u?1.5:.75}em`).text(n.gauge_units),s.select(`.${Ln.chartArcsGaugeMin}`).attr("dx",`${-1*(a.innerRadius+(a.radius-a.innerRadius)/(u?1:2))}px`).attr("dy","1.2em").text(e.textForGaugeMinMax(n.gauge_min,!1)),!u&&s.select(`.${Ln.chartArcsGaugeMax}`).attr("dx",`${a.innerRadius+(a.radius-a.innerRadius)/2}px`).attr("dy","1.2em").text(e.textForGaugeMinMax(n.gauge_max,!0)))}},getArcElementByIdOrIndex(t){const e=this,{$el:{arcs:n}}=e,a=ue(t)?i=>i.index===t:i=>i.data.id===t;return n==null?void 0:n.selectAll(`.${Se.target} path`).filter(a)}};function Uu(t){return t[0]}function zu(t){return t[1]}function ju(t,e){var n=Pe(!0),a=null,i=fo,s=null,o=So(l);t=typeof t=="function"?t:t===void 0?Uu:Pe(t),e=typeof e=="function"?e:e===void 0?zu:Pe(e);function l(c){var u,g=(c=xo(c)).length,v,m=!1,S;for(a==null&&(s=i(S=o())),u=0;u<=g;++u)!(u<g&&n(v=c[u],u,c))===m&&((m=!m)?s.lineStart():s.lineEnd()),m&&s.point(+t(v,u,c),+e(v,u,c));if(S)return s=null,S+""||null}return l.x=function(c){return arguments.length?(t=typeof c=="function"?c:Pe(+c),l):t},l.y=function(c){return arguments.length?(e=typeof c=="function"?c:Pe(+c),l):e},l.defined=function(c){return arguments.length?(n=typeof c=="function"?c:Pe(!!c),l):n},l.curve=function(c){return arguments.length?(i=c,a!=null&&(s=i(a)),l):i},l.context=function(c){return arguments.length?(c==null?a=s=null:s=i(a=c),l):a},l}function hx(t,e,n){var a=null,i=Pe(!0),s=null,o=fo,l=null,c=So(u);t=typeof t=="function"?t:t===void 0?Uu:Pe(+t),e=typeof e=="function"?e:Pe(e===void 0?0:+e),n=typeof n=="function"?n:n===void 0?zu:Pe(+n);function u(v){var m,S,I,N=(v=xo(v)).length,M,P=!1,X,W=new Array(N),G=new Array(N);for(s==null&&(l=o(X=c())),m=0;m<=N;++m){if(!(m<N&&i(M=v[m],m,v))===P)if(P=!P)S=m,l.areaStart(),l.lineStart();else{for(l.lineEnd(),l.lineStart(),I=m-1;I>=S;--I)l.point(W[I],G[I]);l.lineEnd(),l.areaEnd()}P&&(W[m]=+t(M,m,v),G[m]=+e(M,m,v),l.point(a?+a(M,m,v):W[m],n?+n(M,m,v):G[m]))}if(X)return l=null,X+""||null}function g(){return ju().defined(i).curve(o).context(s)}return u.x=function(v){return arguments.length?(t=typeof v=="function"?v:Pe(+v),a=null,u):t},u.x0=function(v){return arguments.length?(t=typeof v=="function"?v:Pe(+v),u):t},u.x1=function(v){return arguments.length?(a=v==null?null:typeof v=="function"?v:Pe(+v),u):a},u.y=function(v){return arguments.length?(e=typeof v=="function"?v:Pe(+v),n=null,u):e},u.y0=function(v){return arguments.length?(e=typeof v=="function"?v:Pe(+v),u):e},u.y1=function(v){return arguments.length?(n=v==null?null:typeof v=="function"?v:Pe(+v),u):n},u.lineX0=u.lineY0=function(){return g().x(t).y(e)},u.lineY1=function(){return g().x(t).y(n)},u.lineX1=function(){return g().x(a).y(e)},u.defined=function(v){return arguments.length?(i=typeof v=="function"?v:Pe(!!v),u):i},u.curve=function(v){return arguments.length?(o=v,s!=null&&(l=o(s)),u):o},u.context=function(v){return arguments.length?(v==null?s=l=null:l=o(s=v),u):s},u}var Ba={initArea(t){const e=this,{config:n}=e;t.insert("g",`.${n.area_front?pn.circles:ar.lines}`).attr("class",e.getClass("areas",!0))},updateAreaColor(t){const e=this;return e.config.area_linearGradient?e.getGradienColortUrl(t.id):e.color(t)},updateArea(t,e=!1){const n=this,{config:a,state:i,$el:s,$T:o}=n,l=e?s.subchart:s;a.area_linearGradient&&n.updateLinearGradient();const c=l.main.selectAll(`.${qa.areas}`).selectAll(`.${qa.area}`).data(n.lineData.bind(n));o(c.exit(),t).style("opacity","0").remove(),l.area=c.enter().append("path").attr("class",n.getClass("area",!0)).style("fill",n.updateAreaColor.bind(n)).style("opacity",function(){return i.orgAreaOpacity=st(this).style("opacity"),"0"}).merge(c),c.style("opacity",i.orgAreaOpacity),n.setRatioForGroupedData(l.area.data())},redrawArea(t,e,n=!1){const a=this,{area:i}=n?this.$el.subchart:this.$el,{orgAreaOpacity:s}=a.state;return[a.$T(i,e,lr()).attr("d",t).style("fill",a.updateAreaColor.bind(a)).style("opacity",o=>String(a.isAreaRangeType(o)?s/1.75:s))]},generateDrawArea(t,e){const n=this,{config:a}=n,i=a.line_connectNull,s=a.axis_rotated,o=n.generateGetAreaPoints(t,e),l=n.getYScaleById.bind(n),c=v=>(e?n.subxx:n.xx).call(n,v),u=(v,m)=>n.isGrouped(v.id)?o(v,m)[0][1]:l(v.id,e)(n.isAreaRangeType(v)?n.getRangedData(v,"high"):n.getShapeYMin(v.id)),g=(v,m)=>n.isGrouped(v.id)?o(v,m)[1][1]:l(v.id,e)(n.isAreaRangeType(v)?n.getRangedData(v,"low"):v.value);return v=>{let m=i?n.filterRemoveNull(v.values):v.values,S=0,I=0,N;if(n.isAreaType(v)){let M=hx();M=s?M.y(c).x0(u).x1(g):M.x(c).y0(a.area_above?0:a.area_below?n.state.height:u).y1(g),i||(M=M.defined(P=>n.getBaseValue(P)!==null)),n.isStepType(v)&&(m=n.convertValuesToStep(m)),N=M.curve(n.getCurve(v))(m)}else m[0]&&(S=n.scale.x(m[0].x),I=n.getYScaleById(v.id)(m[0].value)),N=s?`M ${I} ${S}`:`M ${S} ${I}`;return N||"M 0 0"}},generateGetAreaPoints(t,e){const n=this,{config:a}=n,i=n.getShapeX(0,t,e),s=n.getShapeY(!!e),o=n.getShapeOffset(n.isAreaType,t,e),l=n.getYScaleById.bind(n);return function(c,u){const g=l.call(n,c.id,e)(n.getShapeYMin(c.id)),v=o(c,u)||g,m=i(c),S=c.value;let I=s(c);return a.axis_rotated&&(S>0&&I<g||S<0&&g<I)&&(I=g),[[m,v],[m,I-(g-v)],[m,I-(g-v)],[m,v]]}}},gx={initBar(){const{$el:t,config:e,state:{clip:n}}=this;t.bar=t.main.select(`.${Se.chart}`),t.bar=e.bar_front?t.bar.append("g"):t.bar.insert("g",":first-child"),t.bar.attr("class",Gn.chartBars).call(this.setCssRule(!1,`.${Gn.chartBars}`,["pointer-events:none"])),e.clipPath===!1&&(e.bar_radius||e.bar_radius_ratio)&&t.bar.attr("clip-path",n.pathXAxis.replace(/#[^)]*/,`#${n.id}`))},updateTargetsForBar(t){const e=this,{config:n,$el:a}=e,i=e.getChartClass("Bar"),s=e.getClass("bars",!0),o=e.classFocus.bind(e),l=n.interaction_enabled&&n.data_selection_isselectable;a.bar||e.initBar(),a.main.select(`.${Gn.chartBars}`).selectAll(`.${Gn.chartBar}`).data(t.filter(g=>g.values.some(v=>ue(v.value)||e.isBarRangeType(v)))).attr("class",g=>i(g)+o(g)).enter().append("g").attr("class",i).style("opacity","0").style("pointer-events",e.getStylePropValue("none")).append("g").attr("class",s).style("cursor",g=>{var v;return(v=l==null?void 0:l.bind)!=null&&v.call(l,e.api)(g)?"pointer":null}).call(e.setCssRule(!0,` .${Gn.bar}`,["fill"],e.color))},updateBar(t,e=!1){const n=this,{config:a,$el:i,$T:s}=n,o=e?i.subchart:i,l=n.getClass("bar",!0),c=n.initialOpacity.bind(n);a.bar_linearGradient&&n.updateLinearGradient();const u=o.main.selectAll(`.${Gn.bars}`).selectAll(`.${Gn.bar}`).data(n.labelishData.bind(n));s(u.exit(),t).style("opacity","0").remove(),o.bar=u.enter().append("path").attr("class",l).style("fill",n.updateBarColor.bind(n)).merge(u).style("opacity",c),n.setRatioForGroupedData(o.bar.data())},updateBarColor(t){const e=this,n=e.getStylePropValue(e.color);return e.config.bar_linearGradient?e.getGradienColortUrl(t.id):n?n(t):null},redrawBar(t,e,n=!1){const a=this,{bar:i}=n?a.$el.subchart:a.$el;return[a.$T(i,e,lr()).attr("d",s=>(ue(s.value)||a.isBarRangeType(s))&&t(s)).style("fill",a.updateBarColor.bind(a)).style("opacity",null)]},generateDrawBar(t,e){const n=this,{config:a}=n,i=n.generateGetBarPoints(t,e),s=a.axis_rotated,o=a.bar_radius,l=a.bar_radius_ratio,c=ue(o)&&o>0?()=>o:ue(l)?u=>u*l:null;return(u,g)=>{const v=i(u,g),m=+s,S=+!m,I=u.value<0,N=a[`axis_${n.axis.getId(u.id)}_inverted`],M=!N&&I||N&&!I,P=["",""];let X=0;const W=n.isGrouped(u.id),G=c&&W?n.isStackingRadiusData(u):!1;if(c){const H=s?S:m,at=v[2][H]-v[0][H];X=!W||G?c(at):0;const mt=`a${X},${X} ${M?"1 0 0":"0 0 1"} `;P[+!s]=`${mt}${X},${X}`,P[+s]=`${mt}${[-X,X][s?"sort":"reverse"]()}`,M&&P.reverse()}const k=s?`H${v[1][m]+(M?X:-X)} ${P[0]}V${v[2][S]-X} ${P[1]}H${v[3][m]}`:`V${v[1][S]+(M?-X:X)} ${P[0]}H${v[2][m]-X} ${P[1]}V${v[3][S]}`;return`M${v[0][m]},${v[0][S]}${k}z`}},isStackingRadiusData(t){const e=this,{$el:n,config:a,data:i,state:s}=e,{id:o,index:l,value:c}=t;if(s.hiddenTargetIds.indexOf(o)>-1){const m=n.bar.filter(S=>S.id===o&&S.value===c);return!m.empty()&&/a\d+/i.test(m.attr("d"))}const u=a.data_groups.find(m=>m.indexOf(o)>-1),v=e.orderTargets(e.filterTargetsToShow(i.targets.filter(e.isBarType,e))).filter(m=>u.indexOf(m.id)>-1).map(m=>m.values.filter(S=>S.index===l&&(ue(c)&&c>0?S.value>0:S.value<0))[0]).filter(Boolean).map(m=>m.id);return c!==0&&v.indexOf(o)===v.length-1},generateGetBarPoints(t,e){const n=this,{config:a}=n,i=e?n.axis.subX:n.axis.x,s=n.getIndicesMax(t)+1,o=n.getBarW("bar",i,s),l=n.getShapeX(o,t,!!e),c=n.getShapeY(!!e),u=n.getShapeOffset(n.isBarType,t,!!e),g=n.getYScaleById.bind(n);return(v,m)=>{const{id:S}=v,I=g.call(n,S,e)(n.getShapeYMin(S)),N=u(v,m)||I,M=ue(o)?o:o[v.id]||o._$width,P=a[`axis_${n.axis.getId(S)}_inverted`],X=v.value,W=l(v);let G=c(v);a.axis_rotated&&!P&&(X>0&&G<I||X<0&&I<G)&&(G=I),n.isBarRangeType(v)||(G-=I-N);const k=W+M;return[[W,N],[W,G],[k,G],[k,N]]}}},vx={initBubble(){const t=this,{config:e}=t;t.hasType("bubble")&&(e.point_show=!0,e.point_type="circle")},getBaseLength(){const t=this,{width:e,height:n}=t.state,a=Cn.bubbleBaseLength;let i=t.cache.get(a);return i||t.cache.add(a,i=Kn("min",[e,n])),i},getBubbleR(t){const e=this;let n=e.config.bubble_maxR;he(n)?n=n.bind(e.api)(t):ue(n)||(n=e.getBaseLength()/(e.getMaxDataCount()*2)+12);const a=Kn("max",e.getMinMaxData().max.map(o=>e.isBubbleZType(o)?e.getBubbleZData(o.value,"y"):De(o.value)?o.value.mid:o.value)),i=n*n*Math.PI,s=(e.isBubbleZType(t)?e.getBubbleZData(t.value,"z"):t.value)*(i/a);return Math.sqrt(s/Math.PI)},getBubbleZData(t,e){return De(t)?t[e]:t[e==="y"?0:1]}},px=Object.defineProperty,Gu=Object.getOwnPropertySymbols,mx=Object.prototype.hasOwnProperty,yx=Object.prototype.propertyIsEnumerable,Xu=(t,e,n)=>e in t?px(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,xx=(t,e)=>{for(var n in e||(e={}))mx.call(e,n)&&Xu(t,n,e[n]);if(Gu)for(var n of Gu(e))yx.call(e,n)&&Xu(t,n,e[n]);return t},Tx={initCandlestick(){const{$el:t}=this;t.candlestick=t.main.select(`.${Se.chart}`).append("g").attr("class",rr.chartCandlesticks)},updateTargetsForCandlestick(t){const e=this,{$el:n}=e,a=e.getChartClass("Candlestick");n.candlestick||e.initCandlestick(),e.$el.main.select(`.${rr.chartCandlesticks}`).selectAll(`.${rr.chartCandlestick}`).data(t).enter().append("g").attr("class",a).style("pointer-events","none")},updateCandlestick(t,e=!1){const n=this,{$el:a,$T:i}=n,s=e?a.subchart:a,o=n.getClass("candlestick",!0),l=n.initialOpacity.bind(n),c=s.main.selectAll(`.${rr.chartCandlestick}`).selectAll(`.${rr.candlestick}`).data(n.labelishData.bind(n));i(c.exit(),t).style("opacity","0").remove();const u=c.enter().filter(g=>g.value).append("g").attr("class",o);u.append("line"),u.append("path"),s.candlestick=c.merge(u).style("opacity",l)},generateDrawCandlestick(t,e){const n=this,{config:a}=n,i=n.generateGetCandlestickPoints(t,e),s=a.axis_rotated,o=a.candlestick_color_down;return(l,c,u)=>{const g=i(l,c),v=n.getCandlestickData(l),m=v==null?void 0:v._isUp,S=+s,I=+!S;u.classed&&u.classed(rr[m?"valueUp":"valueDown"],!0);const N=s?`H${g[1][1]} V${g[1][0]} H${g[0][1]}`:`V${g[1][1]} H${g[1][0]} V${g[0][1]}`;u.select("path").attr("d",`M${g[0][S]},${g[0][I]}${N}z`).style("fill",X=>(m?n.color(X):De(o)?o[X.id]:o)||n.color(X));const M=u.select("line"),P=s?{x1:g[2][1],x2:g[2][2],y1:g[2][0],y2:g[2][0]}:{x1:g[2][0],x2:g[2][0],y1:g[2][1],y2:g[2][2]};for(const X in P)M.attr(X,P[X])}},generateGetCandlestickPoints(t,e=!1){const n=this,a=e?n.axis.subX:n.axis.x,i=n.getIndicesMax(t)+1,s=n.getBarW("candlestick",a,i),o=n.getShapeX(s,t,!!e),l=n.getShapeY(!!e),c=n.getShapeOffset(n.isBarType,t,!!e),u=n.getYScaleById.bind(n);return(g,v)=>{const m=u.call(n,g.id,e)(n.getShapeYMin(g.id)),S=c(g,v)||m,I=ue(s)?s:s[g.id]||s._$width,N=n.getCandlestickData(g);let M;if(N&&ue(N.open)&&ue(N.close)){const P={start:o(g),end:0};P.end=P.start+I;const X={start:l(N.open),end:l(N.close)},W={x:P.start+I/2,high:l(N.high),low:l(N.low)};X.start-=m-S,M=[[P.start,X.start],[P.end,X.end],[W.x,W.low,W.high]]}else M=[[0,0],[0,0],[0,0,0]];return M}},redrawCandlestick(t,e,n=!1){const a=this,{$el:i,$T:s}=a,{candlestick:o}=n?i.subchart:i,l=lr(!0);return[o.each(function(c,u){const g=s(st(this),e,l);t(c,u,g)}).style("opacity",null)]},getCandlestickData({value:t}){let e;if(Fe(t)){const[n,a,i,s,o=!1]=t;e={open:n,high:a,low:i,close:s},o!==!1&&(e.volume=o)}else De(t)&&(e=xx({},t));return e&&(e._isUp=e.close>=e.open),e||null}},$x=Object.defineProperty,Vu=Object.getOwnPropertySymbols,Sx=Object.prototype.hasOwnProperty,Ax=Object.prototype.propertyIsEnumerable,Yu=(t,e,n)=>e in t?$x(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,bx=(t,e)=>{for(var n in e||(e={}))Sx.call(e,n)&&Yu(t,n,e[n]);if(Vu)for(var n of Vu(e))Ax.call(e,n)&&Yu(t,n,e[n]);return t};function Ki(t=!1){const e=this,{config:n,state:{current:{width:a,height:i}}}=e,s=e.getCurrentPadding(),o=bx({width:a-(s.left+s.right),height:i-(n.legend_show?e.getLegendHeight()+10:0)-(s.top+s.bottom)},s);if(t){const{width:l,height:c}=Hu.call(e,{width:o.width,height:o.height});o.width<l&&(o.width=l),o.height<c&&(o.height=c)}return o}function Hu(t){const e=this,{config:n}=e;let a=n.funnel_neck_width,i=n.funnel_neck_height;return[a,i]=[a,i].map((s,o)=>{let l=s;return De(s)&&(l=t[o?"height":"width"]*s.ratio),l}),{width:a,height:i}}function Ex(t){const e=this,{top:n,left:a,width:i}=Ki.call(e,!0),s=[];return t.forEach((o,l)=>{const{ratio:c}=o,u=l>0?s[l-1][2][1]:n;s.push(o.coords=[[a,u],[a+i,u],[a+i,l>0?c+u:c+n],[a,l>0?c+u:c+n],[a,u]])}),s}function Wu(t=!1){const e=this,{width:n,height:a,top:i,left:s}=Ki.call(e,!0),o=Hu.call(e,{width:n,height:a}),l=(n-o.width)/2,c=(n+o.width)/2,u=a-o.height,g=[[0,0],[n,0],[c,u],[c,a],[l,a],[l,u],[0,0]];return t&&g.forEach(v=>{v[0]+=s,v[1]+=i}),`M${g.join("L")}z`}function Rx(t){const e=this,{config:n}=e,a=t.map(i=>({id:i.id,value:i.values.reduce((s,o)=>s+o.value,0)}));return n.data_order&&a.sort(e.getSortCompareFn.bind(e)(!0)),Ku.call(e,a)}function Ku(t){const e=this,{height:n}=Ki.call(e),a=e.getTotalDataSum(!0);return t.forEach(i=>{i.ratio=i.value/a*n}),t}var Ox={initFunnel(){const t=this,{$el:e}=t;e.funnel=e.main.select(`.${Se.chart}`).append("g").classed(ya.chartFunnels,!0),e.funnel.background=e.funnel.append("path").classed(ya.funnelBackground,!0),t.bindFunnelEvent()},bindFunnelEvent(){const t=this,{$el:{funnel:e},config:n,state:a}=t,i=s=>{var o;const l=s.isTrusted?s.target:(o=a.eventReceiver.rect)==null?void 0:o.node();let c;return/^path$/i.test(l.tagName)&&(a.event=s,c=st(l).datum()),c};if(n.interaction_enabled){const s=a.inputType==="touch";e.on(s?"touchstart":"mouseover mousemove",o=>{const l=i(o);l&&(t.showTooltip([l],o.target),/^(touchstart|mouseover)$/.test(o.type)&&t.setOverOut(!0,l))}).on(s?"touchend":"mouseout",o=>{const l=i(o);t.hideTooltip(),t.setOverOut(!1,l)})}},updateTargetsForFunnel(t){const e=this,{$el:{funnel:n}}=e,a=e.getChartClass("Funnel"),i=e.getClass("funnel",!0);n||e.initFunnel();const s=Rx.call(e,t.filter(e.isFunnelType.bind(e))),o=n.selectAll(`.${ya.chartFunnel}`).data(s);o.exit().remove();const l=o.enter().insert("g",`.${ya.funnelBackground}`);l.append("path"),n.path=l.merge(o).attr("class",c=>a(c)).select("path").attr("class",i).style("opacity","0").style("fill",e.color)},updateFunnel(t){const e=this,{$el:{funnel:n}}=e,a=t.map(({id:i})=>i);n.path=n.path.filter(i=>a.indexOf(i.id)>=0)},generateGetFunnelPoints(){const t=this,{$el:{funnel:e}}=t,n=t.filterTargetsToShow(e.path),{top:a,left:i,right:s}=Ki.call(t),o=(i-s)/2,l={};let c=a!=null?a:0;return n.each((u,g)=>{var v;l[u.id]=[[o,c],[o,c+=((v=n==null?void 0:n[g])!=null?v:u).ratio]]}),u=>l[u.id]},redrawFunnel(){const t=this,{$T:e,$el:{funnel:n}}=t,a=t.filterTargetsToShow(n.path),i=Ex.call(t,Ku.call(t,a.data()));n.attr("clip-path",`path('${Wu.bind(t)()}')`),n.background.attr("d",Wu.call(t,!0)),e(a).attr("d",(s,o)=>`M${i[o].join("L")}z`).style("opacity","1"),n.selectAll("g").style("opacity",null)}},Ix={initGauge(){const t=this,{config:e,$el:{arcs:n}}=t,a=(i=null,s="")=>{n.append("text").attr("class",i).style("text-anchor","middle").style("pointer-events","none").text(s)};if(t.hasType("gauge")){const i=t.hasMultiArcGauge();n.append(i?"g":"path").attr("class",Be.chartArcsBackground).style("fill",!i&&e.gauge_background||null),e.gauge_units&&a(Ln.chartArcsGaugeUnit),e.gauge_label_show&&(a(Ln.chartArcsGaugeMin),!e.gauge_fullCircle&&a(Ln.chartArcsGaugeMax))}},updateGaugeMax(){const t=this,{config:e,state:n}=t,i=t.hasMultiArcGauge()?t.getMinMaxData().max[0].value:t.getTotalDataSum(n.rendered);!e.gauge_enforceMinMax&&i+e.gauge_min*(e.gauge_min>0?-1:1)>e.gauge_max&&(e.gauge_max=i-e.gauge_min)},redrawArcGaugeLine(){const t=this,{config:e,state:n,$el:a}=t,{hiddenTargetIds:i}=t.state,s=a.main.selectAll(`.${Be.arcs}`).selectAll(`.${Be.arcLabelLine}`).data(t.arcData.bind(t));s.enter().append("rect").attr("class",l=>`${Be.arcLabelLine} ${Se.target} ${Se.target}-${l.data.id}`).merge(s).style("fill",l=>t.levelColor?t.levelColor(l.data.values[0].value):t.color(l.data)).style("display",e.gauge_label_show?null:"none").each(function(l){let c=0;const u=2;let g=0,v=0,m="";if(i.indexOf(l.data.id)<0){const S=t.updateAngle(l),I=n.gaugeArcWidth/t.filterTargetsToShow(t.data.targets).length*(S.index+1),N=S.endAngle-Math.PI/2,M=n.radius-I,P=N-(M===0?0:1/M);c=n.radiusExpanded-n.radius+I,g=Math.cos(P)*M,v=Math.sin(P)*M,m=`rotate(${N*180/Math.PI}, ${g}, ${v})`}st(this).attr("x",g).attr("y",v).attr("width",c).attr("height",u).attr("transform",m).style("stroke-dasharray",`0, ${c+u}, 0`)})},textForGaugeMinMax(t,e){const n=this,{config:a}=n,i=a.gauge_label_extents;return he(i)?i.bind(n.api)(t,e):t},getGaugeLabelHeight(){const{config:t}=this;return this.config.gauge_label_show&&!t.gauge_fullCircle?20:0},getPaddingBottomForGauge(){const t=this;return t.getGaugeLabelHeight()*(t.config.gauge_label_show?2:2.5)}},Cx={initLine(){const{$el:t}=this;t.line=t.main.select(`.${Se.chart}`).append("g").attr("class",ar.chartLines).call(this.setCssRule(!1,`.${ar.chartLines}`,["pointer-events:none"]))},updateTargetsForLine(t){const e=this,{$el:{area:n,line:a,main:i}}=e,s=e.getChartClass("Line"),o=e.getClass("lines",!0),l=e.classFocus.bind(e);a||e.initLine();const c=t.filter(v=>!(e.isScatterType(v)||e.isBubbleType(v))),u=i.select(`.${ar.chartLines}`).selectAll(`.${ar.chartLine}`).data(c).attr("class",v=>s(v)+l(v)),g=u.enter().append("g").attr("class",s).style("opacity","0").style("pointer-events",e.getStylePropValue("none"));if(g.append("g").attr("class",o),e.hasTypeOf("Area")){const v=(!n&&g.empty()?u:g).filter(e.isAreaType.bind(e));e.initArea(v)}e.updateTargetForCircle(c,g)},updateLine(t,e=!1){const n=this,{format:{extraLineClasses:a},$el:i,$T:s}=n,o=e?i.subchart:i,l=o.main.selectAll(`.${ar.lines}`).selectAll(`.${ar.line}`).data(n.lineData.bind(n));s(l.exit(),t).style("opacity","0").remove(),o.line=l.enter().append("path").attr("class",c=>`${n.getClass("line",!0)(c)} ${a(c)||""}`).style("stroke",n.color).merge(l).style("opacity",n.initialOpacity.bind(n)).attr("transform",null)},redrawLine(t,e,n=!1){const a=this,{$el:i,$T:s}=a,{line:o}=n?i.subchart:i;return[s(o,e,lr()).attr("d",t).style("stroke",this.color).style("opacity",null)]},getCurve(t){const e=this;return e.config.axis_rotated&&e.isStepType(t)?a=>{const i=e.getInterpolate(t)(a);return i.orgPoint=i.point,i.pointRotated=function(s,o){this._point===1&&(this._point=2);const l=this._y*(1-this._t)+o*this._t;this._context.lineTo(this._x,l),this._context.lineTo(s,l),this._x=s,this._y=o},i.point=function(s,o){this._point===0?this.orgPoint(s,o):this.pointRotated(s,o)},i}:e.getInterpolate(t)},generateDrawLine(t,e){const n=this,{config:a,scale:i}=n,s=a.line_connectNull,o=a.axis_rotated,l=n.generateGetLinePoints(t,e),c=n.getYScaleById.bind(n),u=S=>(e?n.subxx:n.xx).call(n,S),g=(S,I)=>n.isGrouped(S.id)?l(S,I)[0][1]:c(S.id,e)(n.getBaseValue(S));let v=ju();v=o?v.x(g).y(u):v.x(u).y(g),s||(v=v.defined(S=>n.getBaseValue(S)!==null));const m=e?i.subX:i.x;return S=>{const I=c(S.id,e);let N=s?n.filterRemoveNull(S.values):S.values,M=0,P=0,X;if(n.isLineType(S)){const W=a.data_regions[S.id];W?X=n.lineWithRegions(N,i.zoom||m,I,W):(n.isStepType(S)&&(N=n.convertValuesToStep(N)),X=v.curve(n.getCurve(S))(N))}else N[0]&&(M=m(N[0].x),P=I(N[0].value)),X=o?`M ${P} ${M}`:`M ${M} ${P}`;return X||"M 0 0"}},lineWithRegions(t,e,n,a){const i=this,{config:s}=i,o=s.axis_rotated,l=i.axis.isTimeSeries(),c=[],u="2 2";let g,v,m,S;if(Ve(a)){const G=(k,H)=>en(k)?H:l?Dn.call(i,k):k;for(let k=0,H;H=a[k];k++){const at=G(H.start,t[0].x),mt=G(H.end,t[t.length-1].x),At=H.style||{dasharray:u};c[k]={start:at,end:mt,style:At}}}const I=o?G=>n(G.value):G=>e(G.x),N=o?G=>e(G.x):G=>n(G.value),M=G=>`M${G[0][0]},${G[0][1]}L${G[1][0]},${G[1][1]}`,P=l?(G,k,H,at)=>{const mt=G.x.getTime(),At=k.x-G.x,St=new Date(mt+At*H),Tt=new Date(mt+At*(H+at)),Gt=o?[[n(v(H)),e(St)],[n(v(H+m)),e(Tt)]]:[[e(St),n(v(H))],[e(Tt),n(v(H+m))]];return M(Gt)}:(G,k,H,at)=>{const mt=o?[[n(v(H),!0),e(g(H))],[n(v(H+at),!0),e(g(H+at))]]:[[e(g(H),!0),n(v(H))],[e(g(H+at),!0),n(v(H+at))]];return M(mt)},X={x:i.axis.getAxisType("x"),y:i.axis.getAxisType("y")};let W="";for(let G=0,k;k=t[G];G++){const H=t[G-1],at=H&&Ie(H.value);let mt=i.isWithinRegions(k.x,c);if(Ie(k.value)){if(en(c)||!mt||!at)W+=`${G&&at?"L":"M"}${I(k)},${N(k)}`;else if(at){try{mt=mt.dasharray.split(" ")}catch(Gt){mt=u.split(" ")}g=Dr(X.x,H.x,k.x),v=Dr(X.y,H.value,k.value);const At=e(k.x)-e(H.x),St=n(k.value)-n(H.value),Tt=Math.sqrt(Math.pow(At,2)+Math.pow(St,2));m=mt[0]/Tt,S=m*mt[1];for(let Gt=m;Gt<=1;Gt+=S)W+=P(H,k,Gt,m),Gt+S>=1&&(W+=P(H,k,1,0))}}}return W},isWithinRegions(t,e){for(let n=0,a;a=e[n];n++)if(a.start<t&&t<=a.end)return a.style;return!1},isWithinStep(t,e){return Math.abs(e-zn(this.state.event,t)[1])<30},shouldDrawPointsForLine(t){const e=this.config.line_point;return e===!0||Fe(e)&&e.indexOf(t.id)!==-1}};const aa=()=>lr();var Zi={initialOpacityForCircle(t){const{config:e,state:{withoutFadeIn:n}}=this;let a=e.point_opacity;return en(a)&&(a=this.getBaseValue(t)!==null&&n[t.id]?this.opacityForCircle(t):"0"),a},opacityForCircle(t){var e;const{config:n}=this;let a=n.point_opacity;return en(a)&&(a=n.point_show&&!((e=this.isPointFocusOnly)!=null&&e.call(this))?null:"0",a=Ie(this.getBaseValue(t))?this.isBubbleType(t)||this.isScatterType(t)?"0.5":a:"0"),a},initCircle(){const t=this,{$el:{main:e}}=t;!t.point&&(t.point=t.generatePoint()),(t.hasType("bubble")||t.hasType("scatter"))&&e.select(`.${Se.chart} > .${pn.chartCircles}`).empty()&&e.select(`.${Se.chart}`).append("g").attr("class",pn.chartCircles)},updateTargetForCircle(t,e){const n=this,{config:a,data:i,$el:s}=n,o=a.interaction_enabled&&a.data_selection_enabled,l=o&&a.data_selection_isselectable,c=n.getClass("circles",!0);if(!a.point_show)return;n.initCircle();let u=t,g=e;if(!u){u=i.targets.filter(m=>this.isScatterType(m)||this.isBubbleType(m));const v=s.main.select(`.${pn.chartCircles}`).style("pointer-events","none").selectAll(`.${pn.circles}`).data(u);v.exit().remove(),g=v.enter()}o&&g.append("g").attr("class",v=>n.generateClass(ke.selectedCircles,v.id)),g.append("g").attr("class",c).call(v=>{n.setCssRule(!0,`.${pn.circles}`,["cursor:pointer"],l)(v),n.setCssRule(!0,` .${pn.circle}`,["fill","stroke"],n.color)(v)}).style("opacity",function(){return st(this.parentNode).attr("class").indexOf(pn.chartCircles)>-1?"0":null}),o&&u.forEach(v=>{s.main.selectAll(`.${ke.selectedCircles}${n.getTargetSelectorSuffix(v.id)}`).selectAll(`${ke.selectedCircle}`).each(m=>{m.value=v.values[m.index].value})})},updateCircle(t=!1){const e=this,{config:n,state:a,$el:i}=e,s=e.isPointFocusOnly(),o=t?i.subchart:i;if(n.point_show&&!a.toggling){n.point_radialGradient&&e.updateLinearGradient();const l=o.main.selectAll(`.${pn.circles}`).selectAll(`.${pn.circle}`).data(c=>e.isLineType(c)&&e.shouldDrawPointsForLine(c)||e.isBubbleType(c)||e.isRadarType(c)||e.isScatterType(c)?s?[c.values[0]]:c.values:[]);l.exit().remove(),l.enter().filter(Boolean).append(e.point("create",this,e.pointR.bind(e),e.updateCircleColor.bind(e))),o.circle=o.main.selectAll(`.${pn.circles} .${pn.circle}`).style("stroke",e.getStylePropValue(e.color)).style("opacity",e.initialOpacityForCircle.bind(e))}},updateCircleColor(t){const e=this,n=e.getStylePropValue(e.color);return e.config.point_radialGradient?e.getGradienColortUrl(t.id):n?n(t):null},redrawCircle(t,e,n,a,i=!1){const s=this,{state:{rendered:o},$el:l,$T:c}=s,u=i?l.subchart:l,g=u.main.selectAll(`.${ke.selectedCircle}`);if(!s.config.point_show)return[];const v=s.point("update",s,t,e,s.updateCircleColor.bind(s),n,a,g),m=s.isCirclePoint()?"c":"",S=lr(),I=s.opacityForCircle.bind(s),N=[];return u.circle.each(function(M){let P=v.bind(this)(M);P=c(P,n||!o,S).style("opacity",I),N.push(P)}),[N,c(g,n).attr(`${m}x`,t).attr(`${m}y`,e)]},showCircleFocus(t){const e=this,{state:{hasRadar:n,resizing:a,toggling:i,transiting:s},$el:o}=e;let{circle:l}=o;if(s===!1&&l&&e.isPointFocusOnly()){const c=(n?e.radarCircleX:e.circleX).bind(e),u=(n?e.radarCircleY:e.circleY).bind(e),g=i||en(t),v=e.point("update",e,c,u,e.getStylePropValue(e.color),a?!1:g);t&&(l=l.filter(function(m){var S;const I=(S=t.filter)==null?void 0:S.call(t,N=>N.id===m.id);return I.length?st(this).datum(I[0]):!1})),l.attr("class",this.updatePointClass.bind(this)).style("opacity",null).each(function(m){const{id:S,index:I,value:N}=m;let M="hidden";Ie(N)&&(v.bind(this)(m),e.expandCircles(I,S),M=""),this.style.visibility=M})}},hideCircleFocus(){const t=this,{$el:{circle:e}}=t;t.isPointFocusOnly()&&e&&(t.unexpandCircles(),e.style("visibility","hidden"))},circleX(t){return this.xx(t)},updateCircleY(t=!1){const e=this,n=e.generateGetLinePoints(e.getShapeIndices(e.isLineType),t);return(a,i)=>{const s=a.id;return e.isGrouped(s)?n(a,i)[0][1]:e.getYScaleById(s,t)(e.getBaseValue(a))}},expandCircles(t,e,n){const a=this,i=a.pointExpandedR.bind(a);n&&a.unexpandCircles();const s=a.getShapeByIndex("circle",t,e).classed(Se.EXPANDED,!0),o=i(s)/a.config.point_r,l=1-o;a.isCirclePoint()?s.attr("r",i):s.each(function(){const c=st(this);if(this.tagName==="circle")c.attr("r",i);else{const{width:u,height:g}=this.getBBox(),v=l*(+c.attr("x")+u/2),m=l*(+c.attr("y")+g/2);c.attr("transform",`translate(${v} ${m}) scale(${o})`)}})},unexpandCircles(t){const e=this,n=e.pointR.bind(e),a=e.getShapeByIndex("circle",t).filter(function(){return st(this).classed(Se.EXPANDED)}).classed(Se.EXPANDED,!1);if(a.attr("r",n),!e.isCirclePoint()){const i=n(a)/e.config.point_r;a.attr("transform",i!==1?`scale(${i})`:null)}},pointR(t){const e=this,{config:n}=e,a=n.point_r;let i=a;return e.isBubbleType(t)?i=e.getBubbleR(t):he(a)&&(i=a.bind(e.api)(t)),t.r=i,i},pointExpandedR(t){const e=this,{config:n}=e,a=e.isBubbleType(t)?1.15:1.75;return n.point_focus_expand_enabled?n.point_focus_expand_r||e.pointR(t)*a:e.pointR(t)},pointSelectR(t){const e=this,n=e.config.point_select_r;return he(n)?n(t):n||e.pointR(t)*4},isPointFocusOnly(){const t=this;return t.config.point_focus_only&&!t.hasType("bubble")&&!t.hasType("scatter")&&!t.hasArcType(null,["radar"])},isWithinCircle(t,e){const{config:n,state:a}=this,i=zn(a.event,t),s=st(t),o=this.isCirclePoint(t)?"c":"",l=n.point_sensitivity==="radius"?t.getAttribute("r"):n.point_sensitivity;let c=+s.attr(`${o}x`),u=+s.attr(`${o}y`);if(!(c||u)&&t.nodeType===1){const{x:g,y:v}=Si(t);c=g,u=v}return Math.sqrt(Math.pow(c-i[0],2)+Math.pow(u-i[1],2))<(e||l)},getPointSensitivity(t){const e=this;let n=e.config.point_sensitivity;return he(n)?n=n.call(e.api,t):n==="radius"&&(n=t.r),n},updatePointClass(t){const e=this,{circle:n}=e.$el;let a=!1;return(De(t)||n)&&(a=t===!0?n.each(function(i){let s=e.getClass("circle",!0)(i);this.getAttribute("class").indexOf(Se.EXPANDED)>-1&&(s+=` ${Se.EXPANDED}`),this.setAttribute("class",s)}):e.getClass("circle",!0)(t)),a},generateGetLinePoints(t,e){const n=this,{config:a}=n,i=n.getShapeX(0,t,e),s=n.getShapeY(e),o=n.getShapeOffset(n.isLineType,t,e),l=n.getYScaleById.bind(n);return(c,u)=>{const g=l.call(n,c.id,e)(n.getShapeYMin(c.id)),v=o(c,u)||g,m=i(c);let S=s(c);a.axis_rotated&&(c.value>0&&S<g||c.value<0&&g<S)&&(S=g);const I=[m,S-(g-v)];return[I,I,I,I]}},custom:{create(t,e,n){return t.append("use").attr("xlink:href",`#${e}`).attr("class",this.updatePointClass.bind(this)).style("fill",n).node()},update(t,e,n,a,i,s,o){const l=this,{width:c,height:u}=t.node().getBBox(),g=S=>Ie(S.value)?e(S)-c/2:0,v=S=>Ie(S.value)?n(S)-u/2:0;let m=t;return i&&(s&&m.attr("x",g),m=l.$T(m,i,aa()),o&&l.$T(o,i,aa())),m.attr("x",g).attr("y",v).style("fill",a)}},circle:{create(t,e,n){return t.append("circle").attr("class",this.updatePointClass.bind(this)).attr("r",e).style("fill",n).node()},update(t,e,n,a,i,s,o){const l=this;let c=t;return l.hasType("bubble")&&c.attr("r",l.pointR.bind(l)),i&&(s&&c.attr("cx",e),c.attr("cx")&&(c=l.$T(c,i,aa())),o&&l.$T(c,i,aa())),c.attr("cx",e).attr("cy",n).style("fill",a)}},rectangle:{create(t,e,n){const a=i=>e(i)*2;return t.append("rect").attr("class",this.updatePointClass.bind(this)).attr("width",a).attr("height",a).style("fill",n).node()},update(t,e,n,a,i,s,o){const l=this,c=l.config.point_r,u=m=>e(m)-c,g=m=>n(m)-c;let v=t;return i&&(s&&v.attr("x",u),v=l.$T(v,i,aa()),o&&l.$T(o,i,aa())),v.attr("x",u).attr("y",g).style("fill",a)}}};function Px(t){return Jn(t)&&he(t.create)&&he(t.update)}function wx(t,e){var n;const a=this,i=(c,u)=>{const g=c.attributes;for(let v=0,m;m=g[v];v++)m=m.name,u.setAttribute(m,c.getAttribute(m))},o=new DOMParser().parseFromString(t,"image/svg+xml").documentElement,l=fn.createElementNS(ee.svg,o.nodeName.toLowerCase());if(l.id=e,l.style.fill="inherit",l.style.stroke="inherit",i(o,l),(n=o.childNodes)!=null&&n.length){const c=st(l);"innerHTML"in l?c.html(o.innerHTML):Cr(o.childNodes).forEach(u=>{i(u,c.append(u.tagName).node())})}a.$el.defs.node().appendChild(l)}var ia={hasValidPointType(t){return/^(circle|rect(angle)?|polygon|ellipse|use)$/i.test(t||this.config.point_type)},hasLegendDefsPoint(){var t;const{config:e}=this;return e.legend_show&&((t=e.point_pattern)==null?void 0:t.length)&&e.legend_usePoint},getDefsPointId(t){const{state:{datetimeId:e}}=this;return`${e}-point${t}`},generatePoint(){const t=this,{$el:e,config:n}=t,a=[],i=nn(n.point_pattern)?n.point_pattern:[n.point_type];return function(s,o,...l){return function(c){var u,g,v,m;const S=t.getTargetSelectorSuffix(c.id||((u=c.data)==null?void 0:u.id)||c),I=st(this);a.indexOf(S)<0&&a.push(S);let N=i[a.indexOf(S)%i.length];if(t.hasValidPointType(N))N=t[N];else if(!Px(N||n.point_type)){const M=t.getDefsPointId(S);if(e.defs.select(`#${M}`).size()<1&&wx.bind(t)(N,M),s==="create")return(g=t.custom)==null?void 0:g.create.bind(o)(I,M,...l);if(s==="update")return(v=t.custom)==null?void 0:v.update.bind(o)(I,...l)}return(m=N[s])==null?void 0:m.bind(o)(I,...l)}}}};function Zu(t){const e=t.config.polar_level_max;let n=t.getMinMaxData().max[0].value;return e&&e>n&&(n=e),n}var Mx={initPolar(){const t=this,{$el:{arcs:e},config:n}=t,a=n.polar_level_text_show,i=n.polar_level_text_backgroundColor;e.levels=e.append("g").attr("class",gr.levels),a&&i&&t.generateTextBGColorFilter(i)},getPolarOuterRadius(t,e){var n;const a=Zu(this);return((n=t==null?void 0:t.data.values[0].value)!=null?n:0)/a*e},updateTargetsForPolar(t){this.updateTargetsForArc(t)},redrawPolar(){const t=this,{config:e}=t;e.polar_level_show&&t.updatePolarLevel()},updatePolarLevel(){const t=this,{config:e,state:n,$el:{arcs:{levels:a}}}=t,i=e.polar_level_depth,s=Zu(t),o=Ai(0,i),l=n.radius,c=o.map(m=>l*((m+1)/i)),u=(e.polar_level_text_format||function(){}).bind(t.api),g=a.selectAll(`.${gr.level}`).data(o);g.exit().remove();const v=g.enter().append("g").attr("class",(m,S)=>`${gr.level} ${gr.level}-${S}`);if(v.append("circle"),v.merge(g).selectAll("circle").style("visibility",e.polar_level_show?null:"hidden").attr("cx",0).attr("cy",0).attr("r",m=>c[m]),e.polar_level_text_show){const m=e.polar_level_text_backgroundColor,S=`#${n.datetimeId}-labels-bg${t.getTargetSelectorSuffix(m)}`;v.append("text").style("text-anchor","middle"),v.merge(g).selectAll("text").attr("dy",I=>-c[I]+5).attr("filter",m?`url(${S})`:null).text(I=>u(s/o.length*(I+1)))}}};function Lx(t,e,n,a,i,s){const o=t&&a>0?n-a:a,l=2*Math.PI;return i*(1-s*(e==="x"?Math.sin:Math.cos)(o*l/n))}const sa=Cn.radarPoints,ku=Cn.radarTextWidth;var Dx={initRadar(){const t=this,{config:e,state:{current:n},$el:a}=t;t.hasType("radar")&&(a.radar=a.main.select(`.${Se.chart}`).append("g").attr("class",Zo.chartRadars),a.radar.levels=a.radar.append("g").attr("class",gr.levels),a.radar.axes=a.radar.append("g").attr("class",on.axis),a.radar.shapes=a.radar.append("g").attr("class",tn.shapes),n.dataMax=e.radar_axis_max||t.getMinMaxData().max[0].value,e.radar_axis_text_show&&(e.interaction_enabled&&t.bindRadarEvent(),t.updateRadarLevel(),t.updateRadarAxes()))},getRadarSize(){const t=this,{config:e,state:{arcWidth:n,arcHeight:a}}=t,i=e.axis_x_categories.length<4?-20:10,s=(Math.min(n,a)-i)/2;return[s,s]},updateTargetsForRadar(t){const e=this,{config:n}=e;Wn(n.axis_x_categories)&&(n.axis_x_categories=Ai(0,Kn("max",t.map(a=>a.values.length)))),e.generateRadarPoints()},getRadarPosition(t,e,n,a){const i=this,{config:s}=i,[o,l]=i.getRadarSize(),c=s.axis_x_categories.length,u=s.radar_direction_clockwise,g=Cr(t).map(v=>Lx(u,v,c,e,Ve(n)?n:t==="x"?o:l,ue(a)?a:s.radar_size_ratio));return g.length===1?g[0]:g},generateRadarPoints(){const t=this,e=t.data.targets,[n,a]=t.getRadarSize(),i=t.cache.get(sa)||{},s=i._size;(!s||s.width!==n&&s.height!==a)&&(e.forEach(o=>{i[o.id]=o.values.map((l,c)=>t.getRadarPosition(["x","y"],c,void 0,t.getRatio("radar",l)))}),i._size={width:n,height:a},t.cache.add(sa,i))},redrawRadar(){const t=this,{radar:e,main:n}=t.$el,a=t.getTranslate("radar");a&&(e.attr("transform",a),n.select(`.${An.chartTexts}`).attr("transform",a),t.generateRadarPoints(),t.updateRadarLevel(),t.updateRadarAxes(),t.updateRadarShape())},generateGetRadarPoints(){const t=this.cache.get(sa);return(e,n)=>{const a=t[e.id][n];return[a,a,a,a]}},updateRadarLevel(){const t=this,{config:e,state:n,$el:{radar:a}}=t,[i,s]=t.getRadarSize(),o=e.radar_level_depth,l=e.axis_x_categories.length,c=e.radar_level_text_show,u=a.levels,g=Ai(0,o),v=e.radar_size_ratio*Math.min(i,s),m=g.map(P=>v*((P+1)/o)),S=(e.radar_level_text_format||function(){}).bind(t.api),I=g.map(P=>{const X=m[P];return Ai(0,l).map(G=>t.getRadarPosition(["x","y"],G,X,1).join(",")).join(" ")}),N=u.selectAll(`.${gr.level}`).data(g);N.exit().remove();const M=N.enter().append("g").attr("class",(P,X)=>`${gr.level} ${gr.level}-${X}`);M.append("polygon").style("visibility",e.radar_level_show?null:"hidden"),c&&(u.select("text").empty()&&u.append("text").attr("dx","-.5em").attr("dy","-.7em").style("text-anchor","end").text(()=>S(0)),M.append("text").attr("dx","-.5em").style("text-anchor","end").text(P=>S(n.current.dataMax/g.length*(P+1)))),M.merge(N).attr("transform",P=>`translate(${i-m[P]}, ${s-m[P]})`).selectAll("polygon").attr("points",P=>I[P]),c&&u.selectAll("text").attr("x",P=>en(P)?i:I[P].split(",")[0]).attr("y",P=>en(P)?s:0)},updateRadarAxes(){const t=this,{config:e,$el:{radar:n}}=t,[a,i]=t.getRadarSize(),s=e.axis_x_categories;let o=n.axes.selectAll("g").data(s);o.exit().remove();const l=o.enter().append("g").attr("class",(c,u)=>`${on.axis}-${u}`);if(e.radar_axis_line_show&&l.append("line"),e.radar_axis_text_show&&l.append("text"),o=l.merge(o),e.radar_axis_line_show&&o.select("line").attr("x1",a).attr("y1",i).attr("x2",(c,u)=>t.getRadarPosition("x",u)).attr("y2",(c,u)=>t.getRadarPosition("y",u)),e.radar_axis_text_show){const{x:c=0,y:u=0}=e.radar_axis_text_position,g=t.cache.get(ku)||0;if(o.select("text").style("text-anchor","middle").attr("dy",".5em").call(v=>{v.each(function(m){Ca(st(this),String(m),[-.6,1.2])})}).datum((v,m)=>({index:m})).attr("transform",function(v){en(this.width)&&(this.width=this.getBoundingClientRect().width/2);let m=t.getRadarPosition("x",v.index,void 0,1),S=Math.round(t.getRadarPosition("y",v.index,void 0,1));return m>a?m+=this.width+c:Math.round(m)<a&&(m-=this.width+c),S>i?(S/2===i&&this.firstChild.tagName==="tspan"&&this.firstChild.setAttribute("dy","0em"),S+=u):S<i&&(S-=u),`translate(${m} ${S})`}),!g){const v=[n.axes,n.levels].map(m=>Vl(m.node()).width);v.every(m=>m>0)&&t.cache.add(ku,v[0]-v[1])}}},bindRadarEvent(){const t=this,{state:e,$el:{radar:n,svg:a}}=t,i=t.isPointFocusOnly(),{inputType:s,transiting:o}=e,l=s==="mouse",c=u=>{e.event=u;const g=t.getDataIndexFromEvent(u),v=en(g);(l||v)&&(t.hideTooltip(),i?t.hideCircleFocus():t.unexpandCircles(),l?t.setOverOut(!1,g):v&&t.callOverOutForTouch())};n.axes.on(l?"mouseover ":"touchstart",u=>{if(o)return;e.event=u;const g=t.getDataIndexFromEvent(u);t.selectRectForSingle(a.node(),g),l?t.setOverOut(!0,g):t.callOverOutForTouch(g)}).on("mouseout",l?c:null),l||a.on("touchstart",c)},updateRadarShape(){const t=this,e=t.data.targets.filter(s=>t.isRadarType(s)),n=t.cache.get(sa),a=t.$el.radar.shapes.selectAll("polygon").data(e),i=a.enter().append("g").attr("class",t.getChartClass("Radar"));t.$T(a.exit()).remove(),i.append("polygon").merge(a).style("fill",t.color).style("stroke",t.color).attr("points",s=>n[s.id].join(" ")),t.updateTargetForCircle(e,i)},radarCircleX(t){return this.cache.get(sa)[t.id][t.index][0]},radarCircleY(t){return this.cache.get(sa)[t.id][t.index][1]}};function Nx(t){var e=0,n=t.children,a=n&&n.length;if(!a)e=1;else for(;--a>=0;)e+=n[a].value;t.value=e}function Fx(){return this.eachAfter(Nx)}function Bx(t,e){let n=-1;for(const a of this)t.call(e,a,++n,this);return this}function Ux(t,e){for(var n=this,a=[n],i,s,o=-1;n=a.pop();)if(t.call(e,n,++o,this),i=n.children)for(s=i.length-1;s>=0;--s)a.push(i[s]);return this}function zx(t,e){for(var n=this,a=[n],i=[],s,o,l,c=-1;n=a.pop();)if(i.push(n),s=n.children)for(o=0,l=s.length;o<l;++o)a.push(s[o]);for(;n=i.pop();)t.call(e,n,++c,this);return this}function jx(t,e){let n=-1;for(const a of this)if(t.call(e,a,++n,this))return a}function Gx(t){return this.eachAfter(function(e){for(var n=+t(e.data)||0,a=e.children,i=a&&a.length;--i>=0;)n+=a[i].value;e.value=n})}function Xx(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function Vx(t){for(var e=this,n=Yx(e,t),a=[e];e!==n;)e=e.parent,a.push(e);for(var i=a.length;t!==n;)a.splice(i,0,t),t=t.parent;return a}function Yx(t,e){if(t===e)return t;var n=t.ancestors(),a=e.ancestors(),i=null;for(t=n.pop(),e=a.pop();t===e;)i=t,t=n.pop(),e=a.pop();return i}function Hx(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function Wx(){return Array.from(this)}function Kx(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function Zx(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*kx(){var t=this,e,n=[t],a,i,s;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,a=t.children)for(i=0,s=a.length;i<s;++i)n.push(a[i]);while(n.length)}function bo(t,e){t instanceof Map?(t=[void 0,t],e===void 0&&(e=_x)):e===void 0&&(e=Qx);for(var n=new ki(t),a,i=[n],s,o,l,c;a=i.pop();)if((o=e(a.data))&&(c=(o=Array.from(o)).length))for(a.children=o,l=c-1;l>=0;--l)i.push(s=o[l]=new ki(o[l])),s.parent=a,s.depth=a.depth+1;return n.eachBefore(t0)}function Jx(){return bo(this).eachBefore(qx)}function Qx(t){return t.children}function _x(t){return Array.isArray(t)?t[1]:null}function qx(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function t0(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function ki(t){this.data=t,this.depth=this.height=0,this.parent=null}ki.prototype=bo.prototype={constructor:ki,count:Fx,each:Bx,eachAfter:zx,eachBefore:Ux,find:jx,sum:Gx,sort:Xx,path:Vx,ancestors:Hx,descendants:Wx,leaves:Kx,links:Zx,copy:Jx,[Symbol.iterator]:kx};function e0(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function Ji(t,e,n,a,i){for(var s=t.children,o,l=-1,c=s.length,u=t.value&&(a-e)/t.value;++l<c;)o=s[l],o.y0=n,o.y1=i,o.x0=e,o.x1=e+=o.value*u}function Qi(t,e,n,a,i){for(var s=t.children,o,l=-1,c=s.length,u=t.value&&(i-n)/t.value;++l<c;)o=s[l],o.x0=e,o.x1=a,o.y0=n,o.y1=n+=o.value*u}var Ju=(1+Math.sqrt(5))/2;function Qu(t,e,n,a,i,s){for(var o=[],l=e.children,c,u,g=0,v=0,m=l.length,S,I,N=e.value,M,P,X,W,G,k,H;g<m;){S=i-n,I=s-a;do M=l[v++].value;while(!M&&v<m);for(P=X=M,k=Math.max(I/S,S/I)/(N*t),H=M*M*k,G=Math.max(X/H,H/P);v<m;++v){if(M+=u=l[v].value,u<P&&(P=u),u>X&&(X=u),H=M*M*k,W=Math.max(X/H,H/P),W>G){M-=u;break}G=W}o.push(c={value:M,dice:S<I,children:l.slice(g,v)}),c.dice?Ji(c,n,a,i,N?a+=I*M/N:s):Qi(c,n,a,N?n+=S*M/N:i,s),N-=M,g=v}return o}var _u=function t(e){function n(a,i,s,o,l){Qu(e,a,i,s,o,l)}return n.ratio=function(a){return t((a=+a)>1?a:1)},n}(Ju);function A1(t){return t==null?null:qu(t)}function qu(t){if(typeof t!="function")throw new Error;return t}function Ua(){return 0}function za(t){return function(){return t}}function n0(){var t=_u,e=!1,n=1,a=1,i=[0],s=Ua,o=Ua,l=Ua,c=Ua,u=Ua;function g(m){return m.x0=m.y0=0,m.x1=n,m.y1=a,m.eachBefore(v),i=[0],e&&m.eachBefore(e0),m}function v(m){var S=i[m.depth],I=m.x0+S,N=m.y0+S,M=m.x1-S,P=m.y1-S;M<I&&(I=M=(I+M)/2),P<N&&(N=P=(N+P)/2),m.x0=I,m.y0=N,m.x1=M,m.y1=P,m.children&&(S=i[m.depth+1]=s(m)/2,I+=u(m)-S,N+=o(m)-S,M-=l(m)-S,P-=c(m)-S,M<I&&(I=M=(I+M)/2),P<N&&(N=P=(N+P)/2),t(m,I,N,M,P))}return g.round=function(m){return arguments.length?(e=!!m,g):e},g.size=function(m){return arguments.length?(n=+m[0],a=+m[1],g):[n,a]},g.tile=function(m){return arguments.length?(t=qu(m),g):t},g.padding=function(m){return arguments.length?g.paddingInner(m).paddingOuter(m):g.paddingInner()},g.paddingInner=function(m){return arguments.length?(s=typeof m=="function"?m:za(+m),g):s},g.paddingOuter=function(m){return arguments.length?g.paddingTop(m).paddingRight(m).paddingBottom(m).paddingLeft(m):g.paddingTop()},g.paddingTop=function(m){return arguments.length?(o=typeof m=="function"?m:za(+m),g):o},g.paddingRight=function(m){return arguments.length?(l=typeof m=="function"?m:za(+m),g):l},g.paddingBottom=function(m){return arguments.length?(c=typeof m=="function"?m:za(+m),g):c},g.paddingLeft=function(m){return arguments.length?(u=typeof m=="function"?m:za(+m),g):u},g}function tf(t,e,n,a,i){var s=t.children,o,l=s.length,c,u=new Array(l+1);for(u[0]=c=o=0;o<l;++o)u[o+1]=c+=s[o].value;g(0,l,t.value,e,n,a,i);function g(v,m,S,I,N,M,P){if(v>=m-1){var X=s[v];X.x0=I,X.y0=N,X.x1=M,X.y1=P;return}for(var W=u[v],G=S/2+W,k=v+1,H=m-1;k<H;){var at=k+H>>>1;u[at]<G?k=at+1:H=at}G-u[k-1]<u[k]-G&&v+1<k&&--k;var mt=u[k]-W,At=S-mt;if(M-I>P-N){var St=S?(I*At+M*mt)/S:M;g(v,k,mt,I,N,St,P),g(k,m,At,St,N,M,P)}else{var Tt=S?(N*At+P*mt)/S:P;g(v,k,mt,I,N,M,Tt),g(k,m,At,I,Tt,M,P)}}}function r0(t,e,n,a,i){(t.depth&1?Qi:Ji)(t,e,n,a,i)}var a0=function t(e){function n(a,i,s,o,l){if((c=a._squarify)&&c.ratio===e)for(var c,u,g,v,m=-1,S,I=c.length,N=a.value;++m<I;){for(u=c[m],g=u.children,v=u.value=0,S=g.length;v<S;++v)u.value+=g[v].value;u.dice?Ji(u,i,s,o,N?s+=(l-s)*u.value/N:l):Qi(u,i,s,N?i+=(o-i)*u.value/N:o,l),N-=u.value}else a._squarify=c=Qu(e,a,i,s,o,l),c.ratio=e}return n.ratio=function(a){return t((a=+a)>1?a:1)},n}(Ju);function i0(t,e){const n=this,{scale:{x:a,y:i},state:{width:s}}=n;t.selectAll("g").attr("transform",o=>`translate(${o===e?"0,0":`${a(o.x0)},${i(o.y0)}`})`).select("rect").attr("width",o=>o===e?s:a(o.x1)-a(o.x0)).attr("height",o=>o===e?0:i(o.y1)-i(o.y0))}function s0(t){const e=this;return t.map(n=>{const{id:a,values:i}=n,{value:s}=i[0];return{name:a,id:a,value:s,ratio:e.getRatio("treemap",i[0])}})}function o0(t){const e=this,n=bo(t).sum(i=>i.value),a=e.getSortCompareFn(!0);return[e.treemap(a?n.sort(a):n)]}var l0={initTreemap(){const t=this,{$el:e,state:{current:{width:n,height:a},clip:i,datetimeId:s}}=t;i.id=`${s}-clip`,t.treemap=n0().tile(t.getTreemapTile()),e.defs.append("clipPath").attr("id",i.id).append("rect").attr("width",n).attr("height",a),e.treemap=e.main.select(`.${Se.chart}`).attr("clip-path",`url(#${i.id})`).append("g").classed(Jo.chartTreemaps,!0),t.bindTreemapEvent()},bindTreemapEvent(){const t=this,{$el:e,config:n,state:a}=t,i=s=>{var o;const l=s.isTrusted?s.target:(o=a.eventReceiver.rect)==null?void 0:o.node();let c;return/^rect$/i.test(l.tagName)&&(a.event=s,c=st(l).datum()),c==null?void 0:c.data};if(n.interaction_enabled){const s=a.inputType==="touch";e.treemap.on(s?"touchstart":"mouseover mousemove",o=>{const l=i(o);l&&(t.showTooltip([l],o.currentTarget),/^(touchstart|mouseover)$/.test(o.type)&&t.setOverOut(!0,l))}).on(s?"touchend":"mouseout",o=>{const l=i(o);t.hideTooltip(),t.setOverOut(!1,l)})}},getTreemapTile(){var t,e;const n=this,{config:a,state:{current:{width:i,height:s}}}=n,o=(e={binary:tf,dice:Ji,slice:Qi,sliceDice:r0,squarify:_u,resquarify:a0}[(t=a.treemap_tile)!=null?t:"binary"])!=null?e:tf;return(l,c,u,g,v)=>{o(l,0,0,i,s);for(const m of l.children)m.x0=c+m.x0/i*(g-c),m.x1=c+m.x1/i*(g-c),m.y0=u+m.y0/s*(v-u),m.y1=u+m.y1/s*(v-u)}},getTreemapData(t){const e=this;return{name:"root",children:s0.bind(e)(e.filterTargetsToShow(t.filter(e.isTreemapType,e)))}},updateTargetsForTreemap(t){const e=this,{$el:{treemap:n}}=e,a=o0.call(e,e.getTreemapData(t!=null?t:e.data.targets));n.data(a)},updateTreemap(t){const e=this,{$el:n,$T:a}=e,i=n.treemap.datum(),s=e.getChartClass("Treemap"),o=e.getClass("treemap",!0),l=n.treemap.selectAll("g").data(i.children);a(l.exit(),t).style("opacity","0").remove(),l.enter().append("g").append("rect"),n.treemap.selectAll("g").attr("class",s).select("rect").attr("class",o).attr("fill",c=>e.color(c.data.name))},generateGetTreemapPoints(){const t=this,{$el:e,scale:{x:n,y:a}}=t,i={};return e.treemap.selectAll("g").each(s=>{i[s.data.name]=[[n(s.x0),a(s.y0)],[n(s.x1),a(s.y1)]]}),s=>i[s.id]},redrawTreemap(t){const e=this,{$el:n,state:{current:{width:a,height:i}}}=e;return n.defs.select("rect").attr("width",a).attr("height",i),[e.$T(n.treemap,t,lr()).call(i0.bind(e),n.treemap.datum())]},treemapDataLabelFormat(t){const e=this,{config:n}=e,{id:a,value:i}=t,s=n.treemap_label_format,o=e.getRatio("treemap",t),l=(o*100).toFixed(2),c=n.treemap_label_show&&e.meetsLabelThreshold(o,"treemap")?null:"0";return function(u){return u.style("opacity",c),he(s)?s.bind(e.api)(i,o,a):`${a} +${l}%`}}},Ur={point_show:!0,point_r:2.5,point_radialGradient:!1,point_sensitivity:10,point_focus_expand_enabled:!0,point_focus_expand_r:void 0,point_focus_only:!1,point_opacity:void 0,point_pattern:[],point_select_r:void 0,point_type:"circle"},ja={area_above:!1,area_below:!1,area_front:!0,area_linearGradient:!1,area_zerobased:!0},c0={bar_front:!1,bar_indices_removeNull:!1,bar_label_threshold:0,bar_linearGradient:!1,bar_overlap:!1,bar_padding:0,bar_radius:void 0,bar_radius_ratio:void 0,bar_sensitivity:2,bar_width:void 0,bar_width_ratio:.6,bar_width_max:void 0,bar_zerobased:!0},u0={bubble_maxR:35,bubble_zerobased:!1},f0={candlestick_width:void 0,candlestick_width_ratio:.6,candlestick_width_max:void 0,candlestick_color_down:"red"},d0={line_connectNull:!1,line_step_type:"step",line_step_tooltipMatch:!1,line_zerobased:!1,line_classes:void 0,line_point:!0},h0={scatter_zerobased:!1},Eo={spline_interpolation_type:"cardinal"},_i={arc_cornerRadius:0,arc_cornerRadius_ratio:0,arc_needle_show:!1,arc_needle_color:void 0,arc_needle_value:void 0,arc_needle_path:void 0,arc_needle_length:100,arc_needle_top_rx:0,arc_needle_top_ry:0,arc_needle_top_width:0,arc_needle_bottom_rx:1,arc_needle_bottom_ry:1,arc_needle_bottom_width:15,arc_needle_bottom_len:0,arc_rangeText_values:void 0,arc_rangeText_unit:"absolute",arc_rangeText_fixed:!1,arc_rangeText_format:void 0,arc_rangeText_position:void 0},g0={donut_label_show:!0,donut_label_format:void 0,donut_label_threshold:.05,donut_label_ratio:void 0,donut_width:void 0,donut_title:"",donut_expand:{},donut_expand_rate:.98,donut_expand_duration:50,donut_padAngle:0,donut_startingAngle:0},v0={funnel_neck_width:0,funnel_neck_height:0},p0={gauge_background:"",gauge_fullCircle:!1,gauge_label_show:!0,gauge_label_extents:void 0,gauge_label_format:void 0,gauge_label_ratio:void 0,gauge_label_threshold:0,gauge_enforceMinMax:!1,gauge_min:0,gauge_max:100,gauge_type:"single",gauge_startingAngle:-1*Math.PI/2,gauge_arcLength:100,gauge_title:"",gauge_units:void 0,gauge_width:void 0,gauge_arcs_minWidth:5,gauge_expand:{},gauge_expand_rate:.98,gauge_expand_duration:50},m0={pie_label_show:!0,pie_label_format:void 0,pie_label_ratio:void 0,pie_label_threshold:.05,pie_expand:{},pie_expand_rate:.98,pie_expand_duration:50,pie_innerRadius:0,pie_outerRadius:void 0,pie_padAngle:0,pie_padding:0,pie_startingAngle:0},y0={polar_label_show:!0,polar_label_format:void 0,polar_label_threshold:.05,polar_label_ratio:void 0,polar_level_depth:3,polar_level_max:void 0,polar_level_show:!0,polar_level_text_backgroundColor:"#fff",polar_level_text_format:t=>t%1===0?t:t.toFixed(2),polar_level_text_show:!0,polar_padAngle:0,polar_padding:0,polar_startingAngle:0},x0={radar_axis_max:void 0,radar_axis_line_show:!0,radar_axis_text_show:!0,radar_axis_text_position:{},radar_level_depth:3,radar_level_show:!0,radar_level_text_format:t=>t%1===0?t:t.toFixed(2),radar_level_text_show:!0,radar_size_ratio:.87,radar_direction_clockwise:!1},T0={treemap_tile:"binary",treemap_label_format:void 0,treemap_label_threshold:.05,treemap_label_show:!0};function oa(t,e){gn(Fr.prototype,Object.values(wu).concat(t)),gn(yr.prototype,Hy),Pr.setOptions(Object.values(Mu).concat(e||[]))}function xr(t,e){oa([ia,Zi,Cx].concat(t||[])),Pr.setOptions([Ur,d0].concat(e||[]))}function la(t,e){gn(Fr.prototype,[dx,ia].concat(t||[])),Pr.setOptions([Ur].concat(e||[]))}let ef=()=>(xr(Ba,[ja]),(ef=()=>fe.AREA)()),nf=()=>(xr(Ba,[ja]),(nf=()=>fe.AREA_LINE_RANGE)()),rf=()=>(xr(Ba,[ja,Eo]),(rf=()=>fe.AREA_SPLINE)()),af=()=>(xr(Ba,[ja,Eo]),(af=()=>fe.AREA_SPLINE_RANGE)()),sf=()=>(xr(Ba,[ja]),(sf=()=>fe.AREA_STEP)()),of=()=>(xr(),(of=()=>fe.LINE)()),lf=()=>(xr(void 0,[Eo]),(lf=()=>fe.SPLINE)()),cf=()=>(xr(),(cf=()=>fe.STEP)()),uf=()=>(la(void 0,[_i,g0]),(uf=()=>fe.DONUT)()),ff=()=>(la([Ix],[_i,p0]),(ff=()=>fe.GAUGE)()),df=()=>(la(void 0,[_i,m0]),(df=()=>fe.PIE)()),hf=()=>(la([Mx],[_i,y0]),(hf=()=>fe.POLAR)()),gf=()=>(la([wu.eventrect,Zi,Dx],[Ur,x0,{axis_x_categories:Mu.optAxis.axis_x_categories}]),(gf=()=>fe.RADAR)()),vf=()=>(oa([gx,ia],[c0,Ur]),(vf=()=>fe.BAR)()),pf=()=>(oa([ia,Zi,vx],[u0,Ur]),(pf=()=>fe.BUBBLE)()),mf=()=>(oa([Tx,ia],[f0,Ur]),(mf=()=>fe.CANDLESTICK)()),yf=()=>(oa([ia,Zi],[Ur,h0]),(yf=()=>fe.SCATTER)()),xf=()=>(la([Ox],[v0]),(xf=()=>fe.FUNNEL)()),Tf=()=>(oa([l0],[T0]),(Tf=()=>fe.TREEMAP)()),Ro={};const $f={version:"3.12.4",generate(t){const e=_r({},Ro,t),n=new yr(e);return n.internal.charts=this.instance,this.instance.push(n),n},defaults(t){return De(t)&&(Ro=t),Ro},instance:[],plugin:{}};Object.keys(d).forEach(t=>d[t]()),Object.keys(f).forEach(t=>f[t]())}],Xa={};function Nn(x){var E=Xa[x];if(E!==void 0)return E.exports;var r=Xa[x]={exports:{}};return Oo[x].call(r.exports,r,r.exports,Nn),r.exports}(function(){Nn.d=function(x,E){for(var r in E)Nn.o(E,r)&&!Nn.o(x,r)&&Object.defineProperty(x,r,{enumerable:!0,get:E[r]})}})(),function(){Nn.o=function(x,E){return Object.prototype.hasOwnProperty.call(x,E)}}(),function(){Nn.r=function(x){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(x,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(x,"__esModule",{value:!0})}}(),Nn(0);var Va=Nn(560);return Va}()}); diff --git a/release/3.12.4/dist/package.json b/release/3.12.4/dist/package.json new file mode 100644 index 000000000..0292b9956 --- /dev/null +++ b/release/3.12.4/dist/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.d.ts b/release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.d.ts new file mode 100644 index 000000000..59f361458 --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +import PluginClass from "../../types/plugin/bubblecompare"; + +export default PluginClass; diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.js b/release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.js new file mode 100644 index 000000000..1ab7c3b25 --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.js @@ -0,0 +1,209 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("d3-selection")); + else if(typeof define === 'function' && define.amd) + define("bb", ["d3-selection"], factory); + else if(typeof exports === 'object') + exports["bb"] = factory(require("d3-selection")); + else + root["bb"] = root["bb"] || {}, root["bb"]["plugin"] = root["bb"]["plugin"] || {}, root["bb"]["plugin"]["bubblecompare"] = factory(root["d3"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE__1__) { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__1__; + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ BubbleCompare; } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-selection","commonjs2":"d3-selection","amd":"d3-selection","root":"d3"} +var external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_ = __webpack_require__(1); +;// CONCATENATED MODULE: ./src/Plugin/Plugin.ts +var __defProp = Object.defineProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class Plugin { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + constructor(options = {}) { + __publicField(this, "$$"); + __publicField(this, "options"); + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + $beforeInit() { + } + /** + * Lifecycle hook for 'init' phase. + * @private + */ + $init() { + } + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + $afterInit() { + } + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + $redraw() { + } + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + $willDestroy() { + Object.keys(this).forEach((key) => { + this[key] = null; + delete this[key]; + }); + } +} +__publicField(Plugin, "version", "3.12.4"); + +;// CONCATENATED MODULE: ./src/Plugin/bubblecompare/index.ts +var bubblecompare_defProp = Object.defineProperty; +var bubblecompare_defNormalProp = (obj, key, value) => key in obj ? bubblecompare_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var bubblecompare_publicField = (obj, key, value) => { + bubblecompare_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + +const _BubbleCompare = class _BubbleCompare extends Plugin { + constructor(options) { + super(options); + bubblecompare_publicField(this, "$$"); + return this; + } + $init() { + const { $$ } = this; + $$.findClosest = this.findClosest.bind(this); + $$.getBubbleR = this.getBubbleR.bind(this); + $$.pointExpandedR = this.pointExpandedR.bind(this); + } + pointExpandedR(d) { + const baseR = this.getBubbleR(d); + const { expandScale = 1 } = this.options; + _BubbleCompare.raiseFocusedBubbleLayer(d); + this.changeCursorPoint(); + return baseR * expandScale; + } + static raiseFocusedBubbleLayer(d) { + d.raise && (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.select)(d.node().parentNode.parentNode).raise(); + } + changeCursorPoint() { + this.$$.$el.eventRect.style("cursor", "pointer"); + } + findClosest(values, pos) { + const { $$ } = this; + return values.filter((v) => v && !$$.isBarType(v.id)).reduce((acc, cur) => { + const d = $$.dist(cur, pos); + return d < this.getBubbleR(cur) ? cur : acc; + }, 0); + } + getBubbleR(d) { + const { minR, maxR } = this.options; + const curVal = this.getZData(d); + if (!curVal) + return minR; + const [min, max] = this.$$.data.targets.reduce( + ([accMin, accMax], cur) => { + const val = this.getZData(cur.values[0]); + return [Math.min(accMin, val), Math.max(accMax, val)]; + }, + [1e4, 0] + ); + const size = min > 0 && max === min ? 0 : curVal / max; + return Math.abs(size) * (maxR - minR) + minR; + } + getZData(d) { + return this.$$.isBubbleZType(d) ? this.$$.getBubbleZData(d.value, "z") : d.value; + } +}; +bubblecompare_publicField(_BubbleCompare, "version", `0.0.1`); +let BubbleCompare = _BubbleCompare; + + +__webpack_exports__ = __webpack_exports__["default"]; +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.min.js b/release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.min.js new file mode 100644 index 000000000..713fa1f1d --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-bubblecompare.min.js @@ -0,0 +1,11 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */(function(n,i){typeof exports=="object"&&typeof module=="object"?module.exports=i(require("d3-selection")):typeof define=="function"&&define.amd?define("bb",["d3-selection"],i):typeof exports=="object"?exports.bb=i(require("d3-selection")):(n.bb=n.bb||{},n.bb.plugin=n.bb.plugin||{},n.bb.plugin.bubblecompare=i(n.d3))})(this,function(p){return function(){"use strict";var n={747:function(r){r.exports=p}},i={};function s(r){var e=i[r];if(e!==void 0)return e.exports;var t=i[r]={exports:{}};return n[r](t,t.exports,s),t.exports}(function(){s.d=function(r,e){for(var t in e)s.o(e,t)&&!s.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:e[t]})}})(),function(){s.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)}}();var b={};s.d(b,{default:function(){return R}});var $=s(747),g=Object.defineProperty,x=(r,e,t)=>e in r?g(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,l=(r,e,t)=>(x(r,typeof e!="symbol"?e+"":e,t),t);class d{constructor(e={}){l(this,"$$"),l(this,"options"),this.options=e}$beforeInit(){}$init(){}$afterInit(){}$redraw(){}$willDestroy(){Object.keys(this).forEach(e=>{this[e]=null,delete this[e]})}}l(d,"version","3.12.4");var v=Object.defineProperty,B=(r,e,t)=>e in r?v(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,_=(r,e,t)=>(B(r,typeof e!="symbol"?e+"":e,t),t);const f=class m extends d{constructor(e){return super(e),_(this,"$$"),this}$init(){const{$$:e}=this;e.findClosest=this.findClosest.bind(this),e.getBubbleR=this.getBubbleR.bind(this),e.pointExpandedR=this.pointExpandedR.bind(this)}pointExpandedR(e){const t=this.getBubbleR(e),{expandScale:a=1}=this.options;return m.raiseFocusedBubbleLayer(e),this.changeCursorPoint(),t*a}static raiseFocusedBubbleLayer(e){e.raise&&(0,$.select)(e.node().parentNode.parentNode).raise()}changeCursorPoint(){this.$$.$el.eventRect.style("cursor","pointer")}findClosest(e,t){const{$$:a}=this;return e.filter(o=>o&&!a.isBarType(o.id)).reduce((o,u)=>a.dist(u,t)<this.getBubbleR(u)?u:o,0)}getBubbleR(e){const{minR:t,maxR:a}=this.options,o=this.getZData(e);if(!o)return t;const[u,c]=this.$$.data.targets.reduce(([w,C],j)=>{const h=this.getZData(j.values[0]);return[Math.min(w,h),Math.max(C,h)]},[1e4,0]),P=u>0&&c===u?0:o/c;return Math.abs(P)*(a-t)+t}getZData(e){return this.$$.isBubbleZType(e)?this.$$.getBubbleZData(e.value,"z"):e.value}};_(f,"version","0.0.1");let R=f;return b=b.default,b}()}); diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.d.ts b/release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.d.ts new file mode 100644 index 000000000..8ecf64294 --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +import PluginClass from "../../types/plugin/sparkline"; + +export default PluginClass; diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.js b/release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.js new file mode 100644 index 000000000..568c04632 --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.js @@ -0,0 +1,990 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("d3-brush"), require("d3-selection")); + else if(typeof define === 'function' && define.amd) + define("bb", ["d3-brush", "d3-selection"], factory); + else if(typeof exports === 'object') + exports["bb"] = factory(require("d3-brush"), require("d3-selection")); + else + root["bb"] = root["bb"] || {}, root["bb"]["plugin"] = root["bb"]["plugin"] || {}, root["bb"]["plugin"]["sparkline"] = factory(root["d3"], root["d3"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE__3__, __WEBPACK_EXTERNAL_MODULE__1__) { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__1__; + +/***/ }), +/* 2 */, +/* 3 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__3__; + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ Sparkline; } +}); + +;// CONCATENATED MODULE: ./src/config/classes.ts +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +const $COMMON = { + button: "bb-button", + chart: "bb-chart", + empty: "bb-empty", + main: "bb-main", + target: "bb-target", + EXPANDED: "_expanded_" +}; +const $ARC = { + arc: "bb-arc", + arcLabelLine: "bb-arc-label-line", + arcRange: "bb-arc-range", + arcs: "bb-arcs", + chartArc: "bb-chart-arc", + chartArcs: "bb-chart-arcs", + chartArcsBackground: "bb-chart-arcs-background", + chartArcsTitle: "bb-chart-arcs-title", + needle: "bb-needle" +}; +const $AREA = { + area: "bb-area", + areas: "bb-areas" +}; +const $AXIS = { + axis: "bb-axis", + axisX: "bb-axis-x", + axisXLabel: "bb-axis-x-label", + axisY: "bb-axis-y", + axisY2: "bb-axis-y2", + axisY2Label: "bb-axis-y2-label", + axisYLabel: "bb-axis-y-label", + axisXTooltip: "bb-axis-x-tooltip", + axisYTooltip: "bb-axis-y-tooltip", + axisY2Tooltip: "bb-axis-y2-tooltip" +}; +const $BAR = { + bar: "bb-bar", + bars: "bb-bars", + chartBar: "bb-chart-bar", + chartBars: "bb-chart-bars" +}; +const $CANDLESTICK = { + candlestick: "bb-candlestick", + candlesticks: "bb-candlesticks", + chartCandlestick: "bb-chart-candlestick", + chartCandlesticks: "bb-chart-candlesticks", + valueDown: "bb-value-down", + valueUp: "bb-value-up" +}; +const $CIRCLE = { + chartCircles: "bb-chart-circles", + circle: "bb-circle", + circles: "bb-circles" +}; +const $COLOR = { + colorPattern: "bb-color-pattern", + colorScale: "bb-colorscale" +}; +const $DRAG = { + dragarea: "bb-dragarea", + INCLUDED: "_included_" +}; +const $FUNNEL = { + funnel: "bb-funnel", + chartFunnel: "bb-chart-funnel", + chartFunnels: "bb-chart-funnels", + funnelBackground: "bb-funnel-background" +}; +const $GAUGE = { + chartArcsGaugeMax: "bb-chart-arcs-gauge-max", + chartArcsGaugeMin: "bb-chart-arcs-gauge-min", + chartArcsGaugeUnit: "bb-chart-arcs-gauge-unit", + chartArcsGaugeTitle: "bb-chart-arcs-gauge-title", + gaugeValue: "bb-gauge-value" +}; +const $LEGEND = { + legend: "bb-legend", + legendBackground: "bb-legend-background", + legendItem: "bb-legend-item", + legendItemEvent: "bb-legend-item-event", + legendItemHidden: "bb-legend-item-hidden", + legendItemPoint: "bb-legend-item-point", + legendItemTile: "bb-legend-item-tile" +}; +const $LINE = { + chartLine: "bb-chart-line", + chartLines: "bb-chart-lines", + line: "bb-line", + lines: "bb-lines" +}; +const $EVENT = { + eventRect: "bb-event-rect", + eventRects: "bb-event-rects", + eventRectsMultiple: "bb-event-rects-multiple", + eventRectsSingle: "bb-event-rects-single" +}; +const $FOCUS = { + focused: "bb-focused", + defocused: "bb-defocused", + legendItemFocused: "bb-legend-item-focused", + xgridFocus: "bb-xgrid-focus", + ygridFocus: "bb-ygrid-focus" +}; +const $GRID = { + grid: "bb-grid", + gridLines: "bb-grid-lines", + xgrid: "bb-xgrid", + xgridLine: "bb-xgrid-line", + xgridLines: "bb-xgrid-lines", + xgrids: "bb-xgrids", + ygrid: "bb-ygrid", + ygridLine: "bb-ygrid-line", + ygridLines: "bb-ygrid-lines", + ygrids: "bb-ygrids" +}; +const $LEVEL = { + level: "bb-level", + levels: "bb-levels" +}; +const $RADAR = { + chartRadar: "bb-chart-radar", + chartRadars: "bb-chart-radars" +}; +const $REGION = { + region: "bb-region", + regions: "bb-regions" +}; +const $SELECT = { + selectedCircle: "bb-selected-circle", + selectedCircles: "bb-selected-circles", + SELECTED: "_selected_" +}; +const $SHAPE = { + shape: "bb-shape", + shapes: "bb-shapes" +}; +const $SUBCHART = { + brush: "bb-brush", + subchart: "bb-subchart" +}; +const $TEXT = { + chartText: "bb-chart-text", + chartTexts: "bb-chart-texts", + text: "bb-text", + texts: "bb-texts", + title: "bb-title", + TextOverlapping: "text-overlapping" +}; +const $TOOLTIP = { + tooltip: "bb-tooltip", + tooltipContainer: "bb-tooltip-container", + tooltipName: "bb-tooltip-name" +}; +const $TREEMAP = { + treemap: "bb-treemap", + chartTreemap: "bb-chart-treemap", + chartTreemaps: "bb-chart-treemaps" +}; +const $ZOOM = { + buttonZoomReset: "bb-zoom-reset", + zoomBrush: "bb-zoom-brush" +}; +/* harmony default export */ var classes = (__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, $COMMON), $ARC), $AREA), $AXIS), $BAR), $CANDLESTICK), $CIRCLE), $COLOR), $DRAG), $GAUGE), $LEGEND), $LINE), $EVENT), $FOCUS), $FUNNEL), $GRID), $RADAR), $REGION), $SELECT), $SHAPE), $SUBCHART), $TEXT), $TOOLTIP), $TREEMAP), $ZOOM)); + +// EXTERNAL MODULE: external {"commonjs":"d3-brush","commonjs2":"d3-brush","amd":"d3-brush","root":"d3"} +var external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_ = __webpack_require__(3); +// EXTERNAL MODULE: external {"commonjs":"d3-selection","commonjs2":"d3-selection","amd":"d3-selection","root":"d3"} +var external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_ = __webpack_require__(1); +;// CONCATENATED MODULE: ./src/module/browser.ts +function getGlobal() { + return typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && globalThis || typeof global === "object" && global !== null && global.Object === Object && global || typeof self === "object" && self !== null && self.Object === Object && self || Function("return this")(); +} +function getFallback(w) { + const hasRAF = typeof (w == null ? void 0 : w.requestAnimationFrame) === "function" && typeof (w == null ? void 0 : w.cancelAnimationFrame) === "function"; + const hasRIC = typeof (w == null ? void 0 : w.requestIdleCallback) === "function" && typeof (w == null ? void 0 : w.cancelIdleCallback) === "function"; + const request = (cb) => setTimeout(cb, 1); + const cancel = (id) => clearTimeout(id); + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +const win = getGlobal(); +const doc = win == null ? void 0 : win.document; +const [ + requestAnimationFrame, + cancelAnimationFrame, + requestIdleCallback, + cancelIdleCallback +] = getFallback(win); + + +;// CONCATENATED MODULE: ./src/module/util.ts +var util_defProp = Object.defineProperty; +var util_getOwnPropSymbols = Object.getOwnPropertySymbols; +var util_hasOwnProp = Object.prototype.hasOwnProperty; +var util_propIsEnum = Object.prototype.propertyIsEnumerable; +var util_defNormalProp = (obj, key, value) => key in obj ? util_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var util_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (util_hasOwnProp.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + if (util_getOwnPropSymbols) + for (var prop of util_getOwnPropSymbols(b)) { + if (util_propIsEnum.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + + +const isValue = (v) => v || v === 0; +const isFunction = (v) => typeof v === "function"; +const isString = (v) => typeof v === "string"; +const isNumber = (v) => typeof v === "number"; +const isUndefined = (v) => typeof v === "undefined"; +const isDefined = (v) => typeof v !== "undefined"; +const isBoolean = (v) => typeof v === "boolean"; +const ceil10 = (v) => Math.ceil(v / 10) * 10; +const asHalfPixel = (n) => Math.ceil(n) + 0.5; +const diffDomain = (d) => d[1] - d[0]; +const isObjectType = (v) => typeof v === "object"; +const isEmpty = (o) => isUndefined(o) || o === null || isString(o) && o.length === 0 || isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0 || isNumber(o) && isNaN(o); +const notEmpty = (o) => !isEmpty(o); +const isArray = (arr) => Array.isArray(arr); +const isObject = (obj) => obj && !(obj == null ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +function hasValue(dict, value) { + let found = false; + Object.keys(dict).forEach((key) => dict[key] === value && (found = true)); + return found; +} +function callFn(fn, thisArg, ...args) { + const isFn = isFunction(fn); + isFn && fn.call(thisArg, ...args); + return isFn; +} +function endall(transition, cb) { + let n = 0; + const end = function(...args) { + !--n && cb.apply(this, ...args); + }; + if ("duration" in transition) { + transition.each(() => ++n).on("end", end); + } else { + ++n; + transition.call(end); + } +} +function sanitize(str) { + return isString(str) ? str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : str; +} +function setTextValue(node, text, dy = [-1, 1], toMiddle = false) { + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } else { + const diff = [node.text(), text].map((v) => v.replace(/[\s\n]/g, "")); + if (diff[0] !== diff[1]) { + const multiline = text.split("\n"); + const len = toMiddle ? multiline.length - 1 : 1; + node.html(""); + multiline.forEach((v, i) => { + node.append("tspan").attr("x", 0).attr("dy", `${i === 0 ? dy[0] * len : dy[1]}em`).text(v); + }); + } + } +} +function getRectSegList(path) { + const { x, y, width, height } = path.getBBox(); + return [ + { x, y: y + height }, + // seg0 + { x, y }, + // seg1 + { x: x + width, y }, + // seg2 + { x: x + width, y: y + height } + // seg3 + ]; +} +function getPathBox(path) { + const { width, height } = path.getBoundingClientRect(); + const items = getRectSegList(path); + const x = items[0].x; + const y = Math.min(items[0].y, items[1].y); + return { + x, + y, + width, + height + }; +} +function getPointer(event, element) { + var _a; + const touches = event && ((_a = event.touches || event.sourceEvent && event.sourceEvent.touches) == null ? void 0 : _a[0]); + let pointer = [0, 0]; + try { + pointer = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.pointer)(touches || event, element); + } catch (e) { + } + return pointer.map((v) => isNaN(v) ? 0 : v); +} +function getBrushSelection(ctx) { + const { event, $el } = ctx; + const main = $el.subchart.main || $el.main; + let selection; + if (event && event.type === "brush") { + selection = event.selection; + } else if (main && (selection = main.select(".bb-brush").node())) { + selection = (0,external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_.brushSelection)(selection); + } + return selection; +} +function getBoundingRect(node) { + const needEvaluate = !("rect" in node) || "rect" in node && node.hasAttribute("width") && node.rect.width !== +node.getAttribute("width"); + return needEvaluate ? node.rect = node.getBoundingClientRect() : node.rect; +} +function getRandom(asStr = true, min = 0, max = 1e4) { + const crpt = win.crypto || win.msCrypto; + const rand = crpt ? min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + const mid = Math.floor((start + end) / 2); + let { x, w = 0 } = arr[mid]; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? findIndex(arr, v, start, mid - 1, isRotated) : findIndex(arr, v, mid + 1, end, isRotated); +} +function brushEmpty(ctx) { + const selection = getBrushSelection(ctx); + if (selection) { + return selection[0] === selection[1]; + } + return true; +} +function deepClone(...objectN) { + const clone = (v) => { + if (isObject(v) && v.constructor) { + const r = new v.constructor(); + for (const k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map((v) => clone(v)).reduce((a, c) => util_spreadValues(util_spreadValues({}, a), c)); +} +function extend(target = {}, source) { + if (isArray(source)) { + source.forEach((v) => extend(target, v)); + } + for (const p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); +function camelize(str, separator = "-") { + return str.split(separator).map((v, i) => i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()).join(""); +} +const toArray = (v) => [].slice.call(v); +function addCssRules(style, selector, prop) { + const { rootSelector = "", sheet } = style; + const getSelector = (s) => s.replace(/\s?(bb-)/g, ".$1").replace(/\.+/g, "."); + const rule = `${rootSelector} ${getSelector(selector)} {${prop.join(";")}}`; + return sheet[sheet.insertRule ? "insertRule" : "addRule"]( + rule, + sheet.cssRules.length + ); +} +function getCssRules(styleSheets) { + let rules = []; + styleSheets.forEach((sheet) => { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } catch (e) { + (_a = win.console) == null ? void 0 : _a.warn(`Error while reading rules from ${sheet.href}: ${e.toString()}`); + } + }); + return rules; +} +function getScrollPosition(node) { + var _a, _b, _c, _d; + return { + x: ((_b = (_a = win.pageXOffset) != null ? _a : win.scrollX) != null ? _b : 0) + node.scrollLeft, + y: ((_d = (_c = win.pageYOffset) != null ? _c : win.scrollY) != null ? _d : 0) + node.scrollTop + }; +} +function getTranslation(node) { + const transform = node ? node.transform : null; + const baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? baseVal.getItem(0).matrix : { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +function getUnique(data) { + const isDate = data[0] instanceof Date; + const d = (isDate ? data.map(Number) : data).filter((v, i, self) => self.indexOf(v) === i); + return isDate ? d.map((v) => new Date(v)) : d; +} +function mergeArray(arr) { + return arr && arr.length ? arr.reduce((p, c) => p.concat(c)) : []; +} +function mergeObj(target, ...objectN) { + if (!objectN.length || objectN.length === 1 && !objectN[0]) { + return target; + } + const source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach((key) => { + const value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj(target, ...objectN); +} +function sortValue(data, isAsc = true) { + let fn; + if (data[0] instanceof Date) { + fn = isAsc ? (a, b) => a - b : (a, b) => b - a; + } else { + if (isAsc && !data.every(isNaN)) { + fn = (a, b) => a - b; + } else if (!isAsc) { + fn = (a, b) => a > b && -1 || a < b && 1 || a === b && 0; + } + } + return data.concat().sort(fn); +} +function getMinMax(type, data) { + let res = data.filter((v) => notEmpty(v)); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type](...res); + } else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } else { + res = void 0; + } + return res; +} +const getRange = (start, end, step = 1) => { + const res = []; + const n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (let i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +const emulateEvent = { + mouse: (() => { + const getParams = () => ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); + try { + new MouseEvent("t"); + return (el, eventType, params = getParams()) => { + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } catch (e) { + return (el, eventType, params = getParams()) => { + const mouseEvent = doc.createEvent("MouseEvent"); + mouseEvent.initMouseEvent( + eventType, + params.bubbles, + params.cancelable, + win, + 0, + // the event's mouse click count + params.screenX, + params.screenY, + params.clientX, + params.clientY, + false, + false, + false, + false, + 0, + null + ); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: (el, eventType, params) => { + const touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +function tplProcess(tpl, data) { + let res = tpl; + for (const x in data) { + res = res.replace(new RegExp(`{=${x}}`, "g"), data[x]); + } + return res; +} +function parseDate(date) { + var _a; + let parsedDate; + if (date instanceof Date) { + parsedDate = date; + } else if (isString(date)) { + const { config, format } = this; + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) != null ? _a : new Date(date); + } else if (isNumber(date) && !isNaN(date)) { + parsedDate = /* @__PURE__ */ new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && console.error(`Failed to parse x '${date}' to Date object`); + } + return parsedDate; +} +function isTabVisible() { + var _a, _b; + return ((_a = doc) == null ? void 0 : _a.hidden) === false || ((_b = doc) == null ? void 0 : _b.visibilityState) === "visible"; +} +function convertInputType(mouse, touch) { + const { DocumentTouch, matchMedia, navigator } = win; + let hasTouch = false; + if (touch) { + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + } else if ("ontouchmove" in win || DocumentTouch && doc instanceof DocumentTouch) { + hasTouch = true; + } else { + if (matchMedia == null ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } else { + const UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + const hasMouse = mouse && ((matchMedia == null ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia == null ? void 0 : matchMedia("any-pointer:fine").matches)); + return hasMouse && "mouse" || hasTouch && "touch" || "mouse"; +} +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(() => runUntil(fn, conditionFn)); + } else { + fn(); + } +} + +;// CONCATENATED MODULE: ./src/config/config.ts + +function loadConfig(config) { + const thisConfig = this.config; + let target; + let keys; + let read; + const find = () => { + const key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } else if (!key) { + return target; + } + return void 0; + }; + Object.keys(thisConfig).forEach((key) => { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + if (this.api) { + this.state.orgConfig = config; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/Plugin.ts +var Plugin_defProp = Object.defineProperty; +var Plugin_defNormalProp = (obj, key, value) => key in obj ? Plugin_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + Plugin_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class Plugin { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + constructor(options = {}) { + __publicField(this, "$$"); + __publicField(this, "options"); + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + $beforeInit() { + } + /** + * Lifecycle hook for 'init' phase. + * @private + */ + $init() { + } + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + $afterInit() { + } + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + $redraw() { + } + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + $willDestroy() { + Object.keys(this).forEach((key) => { + this[key] = null; + delete this[key]; + }); + } +} +__publicField(Plugin, "version", "3.12.4"); + +;// CONCATENATED MODULE: ./src/Plugin/sparkline/Options.ts +class Options { + constructor() { + return { + /** + * Specify sparkline charts holder selector. + * - **NOTE:** The amount of holder should match with the amount of data. If has less, will append necessaray amount nodes as sibling of main chart. + * @name selector + * @memberof plugin-sparkline + * @type {string} + * @default undefined + * @example + * selector: ".sparkline" + */ + selector: void 0 + }; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/sparkline/index.ts +var sparkline_defProp = Object.defineProperty; +var sparkline_defNormalProp = (obj, key, value) => key in obj ? sparkline_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var sparkline_publicField = (obj, key, value) => { + sparkline_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + +class Sparkline extends Plugin { + constructor(options) { + super(options); + sparkline_publicField(this, "config"); + sparkline_publicField(this, "element"); + this.config = new Options(); + return this; + } + $beforeInit() { + loadConfig.call(this, this.options); + this.validate(); + this.element = [].slice.call(document.querySelectorAll(this.config.selector)); + this.overrideInternals(); + this.overrideOptions(); + this.overHandler = this.overHandler.bind(this); + this.moveHandler = this.moveHandler.bind(this); + this.outHandler = this.outHandler.bind(this); + } + validate() { + const { $$, config } = this; + let msg = ""; + if (!config.selector || !document.querySelector(config.selector)) { + msg = "No holder elements found from given selector option."; + } + if ($$.hasType("bubble") || $$.hasType("scatter") || $$.hasArcType($$.data.targets)) { + msg = "Contains non supported chart types."; + } + if (msg) { + throw new Error(`[Sparkline plugin] ${msg}`); + } + } + overrideInternals() { + const { $$ } = this; + const { getBarW, getIndices } = $$; + $$.getIndices = function(indices, d, caller) { + return caller === "getShapeX" ? {} : getIndices.call(this, indices, d); + }; + $$.getBarW = function(type, axis) { + return getBarW.call(this, type, axis, 1); + }; + } + overrideOptions() { + const { config } = this.$$; + config.legend_show = false; + config.resize_auto = false; + config.axis_x_show = false; + if (config.padding !== false) { + const hasOption = (o) => Object.keys(o || {}).length > 0; + if (hasOption(config.axis_x_padding)) { + config.axis_x_padding = { + left: 15, + right: 15, + unit: "px" + }; + } + if (hasOption(config.axis_y_padding)) { + config.axis_y_padding = 5; + } + } + config.axis_y_show = false; + if (!config.tooltip_position) { + config.tooltip_position = function(data, width, height) { + const { internal: { state: { event } } } = this; + let top = event.pageY - height * 1.35; + let left = event.pageX - width / 2; + if (top < 0) { + top = 0; + } + if (left < 0) { + left = 0; + } + return { top, left }; + }; + } + } + $init() { + var _a; + const { $$: { $el } } = this; + $el.chart.style("width", "0").style("height", "0").style("pointer-events", "none"); + ((_a = $el.tooltip) == null ? void 0 : _a.node()) && document.body.appendChild($el.tooltip.node()); + } + $afterInit() { + const { $$ } = this; + $$.$el.svg.attr("style", null).style("width", "0").style("height", "0"); + this.bindEvents(true); + } + /** + * Bind tooltip event handlers for each sparkline elements. + * @param {boolean} bind or unbind + * @private + */ + bindEvents(bind = true) { + const { $$: { config } } = this; + if (config.interaction_enabled && config.tooltip_show) { + const method = `${bind ? "add" : "remove"}EventListener`; + this.element.forEach((el) => { + const svg = el.querySelector("svg"); + svg[method]("mouseover", this.overHandler); + svg[method]("mousemove", this.moveHandler); + svg[method]("mouseout", this.outHandler); + }); + } + } + overHandler(e) { + const { $$ } = this; + const { state: { eventReceiver } } = $$; + eventReceiver.rect = e.target.getBoundingClientRect(); + } + moveHandler(e) { + var _a, _b, _c, _d; + const { $$ } = this; + const index = $$.getDataIndexFromEvent(e); + const data = (_a = $$.api.data(e.target.__id)) == null ? void 0 : _a[0]; + const d = (_b = data == null ? void 0 : data.values) == null ? void 0 : _b[index]; + if (d && !d.name) { + d.name = d.id; + } + $$.state.event = e; + if (((_c = $$.isPointFocusOnly) == null ? void 0 : _c.call($$)) && d) { + (_d = $$.showCircleFocus) == null ? void 0 : _d.call($$, [d]); + } + $$.setExpand(index, data.id, true); + $$.showTooltip([d], e.target); + } + outHandler(e) { + const { $$ } = this; + $$.state.event = e; + $$.isPointFocusOnly() ? $$.hideCircleFocus() : $$.unexpandCircles(); + $$.hideTooltip(); + } + $redraw() { + var _a; + const { $$ } = this; + const { $el } = $$; + let el = this.element; + const data = $$.api.data(); + const svgWrapper = (_a = $el.chart.html().match(/<svg[^>]*>/)) == null ? void 0 : _a[0]; + if (el.length < data.length) { + const chart = $el.chart.node(); + for (let i = data.length - el.length; i > 0; i--) { + chart.parentNode.insertBefore(el[0].cloneNode(), chart.nextSibling); + } + this.element = document.querySelectorAll(this.config.selector); + el = this.element; + } + data.map((v) => v.id).forEach((id, i) => { + const selector = `.${$COMMON.target}-${id}`; + const shape = $el.main.selectAll(selector); + let svg = el[i].querySelector("svg"); + if (!svg) { + el[i].innerHTML = `${svgWrapper}</svg>`; + svg = el[i].querySelector("svg"); + svg.__id = id; + } + if (!svg.querySelector(selector)) { + shape.style("opacity", null); + } + shape.style("fill", "none").style("opacity", null); + svg.innerHTML = ""; + svg.appendChild(shape.node()); + }); + } + $willDestroy() { + this.bindEvents(false); + this.element.forEach((el) => { + el.innerHTML = ""; + }); + } +} +sparkline_publicField(Sparkline, "version", `0.0.1`); + +__webpack_exports__ = __webpack_exports__["default"]; +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.min.js b/release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.min.js new file mode 100644 index 000000000..b4f76caa3 --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-sparkline.min.js @@ -0,0 +1,13 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */(function(b,f){typeof exports=="object"&&typeof module=="object"?module.exports=f(require("d3-brush"),require("d3-selection")):typeof define=="function"&&define.amd?define("bb",["d3-brush","d3-selection"],f):typeof exports=="object"?exports.bb=f(require("d3-brush"),require("d3-selection")):(b.bb=b.bb||{},b.bb.plugin=b.bb.plugin||{},b.bb.plugin.sparkline=f(b.d3,b.d3))})(this,function(T,b){return function(){"use strict";var f={853:function(e){e.exports=T},747:function(e){e.exports=b}},A={};function d(e){var t=A[e];if(t!==void 0)return t.exports;var n=A[e]={exports:{}};return f[e](n,n.exports,d),n.exports}(function(){d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}})(),function(){d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}();var p={};d.d(p,{default:function(){return j}});var N=Object.defineProperty,P=Object.getOwnPropertySymbols,B=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable,C=(e,t,n)=>t in e?N(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,c=(e,t)=>{for(var n in t||(t={}))B.call(t,n)&&C(e,n,t[n]);if(P)for(var n of P(t))q.call(t,n)&&C(e,n,t[n]);return e};const R={button:"bb-button",chart:"bb-chart",empty:"bb-empty",main:"bb-main",target:"bb-target",EXPANDED:"_expanded_"},k={arc:"bb-arc",arcLabelLine:"bb-arc-label-line",arcRange:"bb-arc-range",arcs:"bb-arcs",chartArc:"bb-chart-arc",chartArcs:"bb-chart-arcs",chartArcsBackground:"bb-chart-arcs-background",chartArcsTitle:"bb-chart-arcs-title",needle:"bb-needle"},H={area:"bb-area",areas:"bb-areas"},U={axis:"bb-axis",axisX:"bb-axis-x",axisXLabel:"bb-axis-x-label",axisY:"bb-axis-y",axisY2:"bb-axis-y2",axisY2Label:"bb-axis-y2-label",axisYLabel:"bb-axis-y-label",axisXTooltip:"bb-axis-x-tooltip",axisYTooltip:"bb-axis-y-tooltip",axisY2Tooltip:"bb-axis-y2-tooltip"},X={bar:"bb-bar",bars:"bb-bars",chartBar:"bb-chart-bar",chartBars:"bb-chart-bars"},Y={candlestick:"bb-candlestick",candlesticks:"bb-candlesticks",chartCandlestick:"bb-chart-candlestick",chartCandlesticks:"bb-chart-candlesticks",valueDown:"bb-value-down",valueUp:"bb-value-up"},V={chartCircles:"bb-chart-circles",circle:"bb-circle",circles:"bb-circles"},G={colorPattern:"bb-color-pattern",colorScale:"bb-colorscale"},z={dragarea:"bb-dragarea",INCLUDED:"_included_"},W={funnel:"bb-funnel",chartFunnel:"bb-chart-funnel",chartFunnels:"bb-chart-funnels",funnelBackground:"bb-funnel-background"},K={chartArcsGaugeMax:"bb-chart-arcs-gauge-max",chartArcsGaugeMin:"bb-chart-arcs-gauge-min",chartArcsGaugeUnit:"bb-chart-arcs-gauge-unit",chartArcsGaugeTitle:"bb-chart-arcs-gauge-title",gaugeValue:"bb-gauge-value"},Z={legend:"bb-legend",legendBackground:"bb-legend-background",legendItem:"bb-legend-item",legendItemEvent:"bb-legend-item-event",legendItemHidden:"bb-legend-item-hidden",legendItemPoint:"bb-legend-item-point",legendItemTile:"bb-legend-item-tile"},J={chartLine:"bb-chart-line",chartLines:"bb-chart-lines",line:"bb-line",lines:"bb-lines"},Q={eventRect:"bb-event-rect",eventRects:"bb-event-rects",eventRectsMultiple:"bb-event-rects-multiple",eventRectsSingle:"bb-event-rects-single"},ee={focused:"bb-focused",defocused:"bb-defocused",legendItemFocused:"bb-legend-item-focused",xgridFocus:"bb-xgrid-focus",ygridFocus:"bb-ygrid-focus"},te={grid:"bb-grid",gridLines:"bb-grid-lines",xgrid:"bb-xgrid",xgridLine:"bb-xgrid-line",xgridLines:"bb-xgrid-lines",xgrids:"bb-xgrids",ygrid:"bb-ygrid",ygridLine:"bb-ygrid-line",ygridLines:"bb-ygrid-lines",ygrids:"bb-ygrids"},Le={level:"bb-level",levels:"bb-levels"},ne={chartRadar:"bb-chart-radar",chartRadars:"bb-chart-radars"},re={region:"bb-region",regions:"bb-regions"},ie={selectedCircle:"bb-selected-circle",selectedCircles:"bb-selected-circles",SELECTED:"_selected_"},se={shape:"bb-shape",shapes:"bb-shapes"},oe={brush:"bb-brush",subchart:"bb-subchart"},ce={chartText:"bb-chart-text",chartTexts:"bb-chart-texts",text:"bb-text",texts:"bb-texts",title:"bb-title",TextOverlapping:"text-overlapping"},le={tooltip:"bb-tooltip",tooltipContainer:"bb-tooltip-container",tooltipName:"bb-tooltip-name"},ae={treemap:"bb-treemap",chartTreemap:"bb-chart-treemap",chartTreemaps:"bb-chart-treemaps"},ue={buttonZoomReset:"bb-zoom-reset",zoomBrush:"bb-zoom-brush"};var De=c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c(c({},R),k),H),U),X),Y),V),G),z),K),Z),J),Q),ee),W),te),ne),re),ie),se),oe),ce),le),ae),ue),Me=d(853),Fe=d(747);function be(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function de(e){const t=typeof(e==null?void 0:e.requestAnimationFrame)=="function"&&typeof(e==null?void 0:e.cancelAnimationFrame)=="function",n=typeof(e==null?void 0:e.requestIdleCallback)=="function"&&typeof(e==null?void 0:e.cancelIdleCallback)=="function",r=s=>setTimeout(s,1),i=s=>clearTimeout(s);return[t?e.requestAnimationFrame:r,t?e.cancelAnimationFrame:i,n?e.requestIdleCallback:r,n?e.cancelIdleCallback:i]}const g=be(),fe=g==null?void 0:g.document,[je,Ne,Be,qe]=de(g);var he=Object.defineProperty,I=Object.getOwnPropertySymbols,pe=Object.prototype.hasOwnProperty,ge=Object.prototype.propertyIsEnumerable,S=(e,t,n)=>t in e?he(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,L=(e,t)=>{for(var n in t||(t={}))pe.call(t,n)&&S(e,n,t[n]);if(I)for(var n of I(t))ge.call(t,n)&&S(e,n,t[n]);return e};const ke=e=>e||e===0,me=e=>typeof e=="function",m=e=>typeof e=="string",_=e=>typeof e=="number",ve=e=>typeof e=="undefined",D=e=>typeof e!="undefined",He=e=>typeof e=="boolean",Ue=e=>Math.ceil(e/10)*10,Xe=e=>Math.ceil(e)+.5,Ye=e=>e[1]-e[0],y=e=>typeof e=="object",_e=e=>ve(e)||e===null||m(e)&&e.length===0||y(e)&&!(e instanceof Date)&&Object.keys(e).length===0||_(e)&&isNaN(e),ye=e=>!_e(e),x=e=>Array.isArray(e),v=e=>e&&!(e!=null&&e.nodeType)&&y(e)&&!x(e);function Ve(e,t,n){return D(e[t])?e[t]:n}function Ge(e,t){let n=!1;return Object.keys(e).forEach(r=>e[r]===t&&(n=!0)),n}function ze(e,t,...n){const r=me(e);return r&&e.call(t,...n),r}function We(e,t){let n=0;const r=function(...i){!--n&&t.apply(this,...i)};"duration"in e?e.each(()=>++n).on("end",r):(++n,e.call(r))}function Ke(e){return m(e)?e.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):e}function Ze(e,t,n=[-1,1],r=!1){if(!(!e||!m(t)))if(t.indexOf(` +`)===-1)e.text(t);else{const i=[e.text(),t].map(s=>s.replace(/[\s\n]/g,""));if(i[0]!==i[1]){const s=t.split(` +`),o=r?s.length-1:1;e.html(""),s.forEach((l,a)=>{e.append("tspan").attr("x",0).attr("dy",`${a===0?n[0]*o:n[1]}em`).text(l)})}}}function xe(e){const{x:t,y:n,width:r,height:i}=e.getBBox();return[{x:t,y:n+i},{x:t,y:n},{x:t+r,y:n},{x:t+r,y:n+i}]}function Je(e){const{width:t,height:n}=e.getBoundingClientRect(),r=xe(e),i=r[0].x,s=Math.min(r[0].y,r[1].y);return{x:i,y:s,width:t,height:n}}function Qe(e,t){var n;const r=e&&((n=e.touches||e.sourceEvent&&e.sourceEvent.touches)==null?void 0:n[0]);let i=[0,0];try{i=d3Pointer(r||e,t)}catch(s){}return i.map(s=>isNaN(s)?0:s)}function $e(e){const{event:t,$el:n}=e,r=n.subchart.main||n.main;let i;return t&&t.type==="brush"?i=t.selection:r&&(i=r.select(".bb-brush").node())&&(i=d3BrushSelection(i)),i}function et(e){return!("rect"in e)||"rect"in e&&e.hasAttribute("width")&&e.rect.width!==+e.getAttribute("width")?e.rect=e.getBoundingClientRect():e.rect}function tt(e=!0,t=0,n=1e4){const r=window.crypto||window.msCrypto,i=r?t+r.getRandomValues(new Uint32Array(1))[0]%(n-t+1):Math.floor(Math.random()*(n-t)+t);return e?String(i):i}function M(e,t,n,r,i){if(n>r)return-1;const s=Math.floor((n+r)/2);let{x:o,w:l=0}=e[s];return i&&(o=e[s].y,l=e[s].h),t>=o&&t<=o+l?s:t<o?M(e,t,n,s-1,i):M(e,t,s+1,r,i)}function nt(e){const t=$e(e);return t?t[0]===t[1]:!0}function rt(...e){const t=n=>{if(v(n)&&n.constructor){const r=new n.constructor;for(const i in n)r[i]=t(n[i]);return r}return n};return e.map(n=>t(n)).reduce((n,r)=>L(L({},n),r))}function Ee(e={},t){x(t)&&t.forEach(n=>Ee(e,n));for(const n in t)/^\d+$/.test(n)||n in e||(e[n]=t[n]);return e}const it=e=>e.charAt(0).toUpperCase()+e.slice(1);function st(e,t="-"){return e.split(t).map((n,r)=>r?n.charAt(0).toUpperCase()+n.slice(1).toLowerCase():n.toLowerCase()).join("")}const we=e=>[].slice.call(e);function ot(e,t,n){const{rootSelector:r="",sheet:i}=e,o=`${r} ${(l=>l.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(t)} {${n.join(";")}}`;return i[i.insertRule?"insertRule":"addRule"](o,i.cssRules.length)}function ct(e){let t=[];return e.forEach(n=>{var r;try{n.cssRules&&n.cssRules.length&&(t=t.concat(we(n.cssRules)))}catch(i){(r=window.console)==null||r.warn(`Error while reading rules from ${n.href}: ${i.toString()}`)}}),t}function lt(e){var t,n,r,i;return{x:((n=(t=window.pageXOffset)!=null?t:window.scrollX)!=null?n:0)+e.scrollLeft,y:((i=(r=window.pageYOffset)!=null?r:window.scrollY)!=null?i:0)+e.scrollTop}}function at(e){const t=e?e.transform:null,n=t&&t.baseVal;return n&&n.numberOfItems?n.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function ut(e){const t=e[0]instanceof Date,n=(t?e.map(Number):e).filter((r,i,s)=>s.indexOf(r)===i);return t?n.map(r=>new Date(r)):n}function bt(e){return e&&e.length?e.reduce((t,n)=>t.concat(n)):[]}function $(e,...t){if(!t.length||t.length===1&&!t[0])return e;const n=t.shift();return v(e)&&v(n)&&Object.keys(n).forEach(r=>{const i=n[r];v(i)?(!e[r]&&(e[r]={}),e[r]=$(e[r],i)):e[r]=x(i)?i.concat():i}),$(e,...t)}function Oe(e,t=!0){let n;return e[0]instanceof Date?n=t?(r,i)=>r-i:(r,i)=>i-r:t&&!e.every(isNaN)?n=(r,i)=>r-i:t||(n=(r,i)=>r>i&&-1||r<i&&1||r===i&&0),e.concat().sort(n)}function dt(e,t){let n=t.filter(r=>ye(r));return n.length?_(n[0])?n=Math[e](...n):n[0]instanceof Date&&(n=Oe(n,e==="min")[0]):n=void 0,n}const ft=(e,t,n=1)=>{const r=[],i=Math.max(0,Math.ceil((t-e)/n))|0;for(let s=e;s<i;s++)r.push(e+s*n);return r},ht={mouse:(()=>{const e=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(t,n,r=e())=>{t.dispatchEvent(new MouseEvent(n,r))}}catch(t){return(n,r,i=e())=>{const s=fe.createEvent("MouseEvent");s.initMouseEvent(r,i.bubbles,i.cancelable,g,0,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),n.dispatchEvent(s)}}})(),touch:(e,t,n)=>{const r=new Touch($({identifier:Date.now(),target:e,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},n));e.dispatchEvent(new TouchEvent(t,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[r],targetTouches:[],changedTouches:[r]}))}};function pt(e,t){let n=e;for(const r in t)n=n.replace(new RegExp(`{=${r}}`,"g"),t[r]);return n}function gt(e){var t;let n;if(e instanceof Date)n=e;else if(m(e)){const{config:r,format:i}=this;n=(t=i.dataTime(r.data_xFormat)(e))!=null?t:new Date(e)}else _(e)&&!isNaN(e)&&(n=new Date(+e));return(!n||isNaN(+n))&&console&&console.error&&console.error(`Failed to parse x '${e}' to Date object`),n}function mt(){var e,t;return((e=document)==null?void 0:e.hidden)===!1||((t=document)==null?void 0:t.visibilityState)==="visible"}function vt(e,t){const{DocumentTouch:n,matchMedia:r,navigator:i}=window;let s=!1;if(t)if(i&&"maxTouchPoints"in i)s=i.maxTouchPoints>0;else if("ontouchmove"in window||n&&document instanceof n)s=!0;else if(r!=null&&r("(pointer:coarse)").matches)s=!0;else{const l=i.userAgent;s=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(l)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(l)}return e&&((r==null?void 0:r("any-hover:hover").matches)||(r==null?void 0:r("any-pointer:fine").matches))&&"mouse"||s&&"touch"||"mouse"}function Te(e,t){t()===!1?requestAnimationFrame(()=>Te(e,t)):e()}function Ae(e){const t=this.config;let n,r,i;const s=()=>{const o=r.shift();if(o&&n&&y(n)&&o in n)return n=n[o],s();if(!o)return n};Object.keys(t).forEach(o=>{n=e,r=o.split("_"),i=s(),D(i)&&(t[o]=i)}),this.api&&(this.state.orgConfig=e)}var Pe=Object.defineProperty,Ce=(e,t,n)=>t in e?Pe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,E=(e,t,n)=>(Ce(e,typeof t!="symbol"?t+"":t,n),n);class F{constructor(t={}){E(this,"$$"),E(this,"options"),this.options=t}$beforeInit(){}$init(){}$afterInit(){}$redraw(){}$willDestroy(){Object.keys(this).forEach(t=>{this[t]=null,delete this[t]})}}E(F,"version","3.12.4");class Re{constructor(){return{selector:void 0}}}var Ie=Object.defineProperty,Se=(e,t,n)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w=(e,t,n)=>(Se(e,typeof t!="symbol"?t+"":t,n),n);class j extends F{constructor(t){return super(t),w(this,"config"),w(this,"element"),this.config=new Re,this}$beforeInit(){Ae.call(this,this.options),this.validate(),this.element=[].slice.call(document.querySelectorAll(this.config.selector)),this.overrideInternals(),this.overrideOptions(),this.overHandler=this.overHandler.bind(this),this.moveHandler=this.moveHandler.bind(this),this.outHandler=this.outHandler.bind(this)}validate(){const{$$:t,config:n}=this;let r="";if((!n.selector||!document.querySelector(n.selector))&&(r="No holder elements found from given selector option."),(t.hasType("bubble")||t.hasType("scatter")||t.hasArcType(t.data.targets))&&(r="Contains non supported chart types."),r)throw new Error(`[Sparkline plugin] ${r}`)}overrideInternals(){const{$$:t}=this,{getBarW:n,getIndices:r}=t;t.getIndices=function(i,s,o){return o==="getShapeX"?{}:r.call(this,i,s)},t.getBarW=function(i,s){return n.call(this,i,s,1)}}overrideOptions(){const{config:t}=this.$$;if(t.legend_show=!1,t.resize_auto=!1,t.axis_x_show=!1,t.padding!==!1){const n=r=>Object.keys(r||{}).length>0;n(t.axis_x_padding)&&(t.axis_x_padding={left:15,right:15,unit:"px"}),n(t.axis_y_padding)&&(t.axis_y_padding=5)}t.axis_y_show=!1,t.tooltip_position||(t.tooltip_position=function(n,r,i){const{internal:{state:{event:s}}}=this;let o=s.pageY-i*1.35,l=s.pageX-r/2;return o<0&&(o=0),l<0&&(l=0),{top:o,left:l}})}$init(){var t;const{$$:{$el:n}}=this;n.chart.style("width","0").style("height","0").style("pointer-events","none"),(t=n.tooltip)!=null&&t.node()&&document.body.appendChild(n.tooltip.node())}$afterInit(){const{$$:t}=this;t.$el.svg.attr("style",null).style("width","0").style("height","0"),this.bindEvents(!0)}bindEvents(t=!0){const{$$:{config:n}}=this;if(n.interaction_enabled&&n.tooltip_show){const r=`${t?"add":"remove"}EventListener`;this.element.forEach(i=>{const s=i.querySelector("svg");s[r]("mouseover",this.overHandler),s[r]("mousemove",this.moveHandler),s[r]("mouseout",this.outHandler)})}}overHandler(t){const{$$:n}=this,{state:{eventReceiver:r}}=n;r.rect=t.target.getBoundingClientRect()}moveHandler(t){var n,r,i,s;const{$$:o}=this,l=o.getDataIndexFromEvent(t),a=(n=o.api.data(t.target.__id))==null?void 0:n[0],u=(r=a==null?void 0:a.values)==null?void 0:r[l];u&&!u.name&&(u.name=u.id),o.state.event=t,(i=o.isPointFocusOnly)!=null&&i.call(o)&&u&&((s=o.showCircleFocus)==null||s.call(o,[u])),o.setExpand(l,a.id,!0),o.showTooltip([u],t.target)}outHandler(t){const{$$:n}=this;n.state.event=t,n.isPointFocusOnly()?n.hideCircleFocus():n.unexpandCircles(),n.hideTooltip()}$redraw(){var t;const{$$:n}=this,{$el:r}=n;let i=this.element;const s=n.api.data(),o=(t=r.chart.html().match(/<svg[^>]*>/))==null?void 0:t[0];if(i.length<s.length){const l=r.chart.node();for(let a=s.length-i.length;a>0;a--)l.parentNode.insertBefore(i[0].cloneNode(),l.nextSibling);this.element=document.querySelectorAll(this.config.selector),i=this.element}s.map(l=>l.id).forEach((l,a)=>{const u=`.${R.target}-${l}`,O=r.main.selectAll(u);let h=i[a].querySelector("svg");h||(i[a].innerHTML=`${o}</svg>`,h=i[a].querySelector("svg"),h.__id=l),h.querySelector(u)||O.style("opacity",null),O.style("fill","none").style("opacity",null),h.innerHTML="",h.appendChild(O.node())})}$willDestroy(){this.bindEvents(!1),this.element.forEach(t=>{t.innerHTML=""})}}return w(j,"version","0.0.1"),p=p.default,p}()}); diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-stanford.d.ts b/release/3.12.4/dist/plugin/billboardjs-plugin-stanford.d.ts new file mode 100644 index 000000000..3ea42d846 --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-stanford.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +import PluginClass from "../../types/plugin/stanford"; + +export default PluginClass; diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-stanford.js b/release/3.12.4/dist/plugin/billboardjs-plugin-stanford.js new file mode 100644 index 000000000..ba21dfd6e --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-stanford.js @@ -0,0 +1,1320 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("d3-color"), require("d3-interpolate"), require("d3-scale"), require("d3-brush"), require("d3-selection"), require("d3-axis"), require("d3-format")); + else if(typeof define === 'function' && define.amd) + define("bb", ["d3-color", "d3-interpolate", "d3-scale", "d3-brush", "d3-selection", "d3-axis", "d3-format"], factory); + else if(typeof exports === 'object') + exports["bb"] = factory(require("d3-color"), require("d3-interpolate"), require("d3-scale"), require("d3-brush"), require("d3-selection"), require("d3-axis"), require("d3-format")); + else + root["bb"] = root["bb"] || {}, root["bb"]["plugin"] = root["bb"]["plugin"] || {}, root["bb"]["plugin"]["stanford"] = factory(root["d3"], root["d3"], root["d3"], root["d3"], root["d3"], root["d3"], root["d3"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE__5__, __WEBPACK_EXTERNAL_MODULE__6__, __WEBPACK_EXTERNAL_MODULE__7__, __WEBPACK_EXTERNAL_MODULE__3__, __WEBPACK_EXTERNAL_MODULE__1__, __WEBPACK_EXTERNAL_MODULE__8__, __WEBPACK_EXTERNAL_MODULE__9__) { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__1__; + +/***/ }), +/* 2 */, +/* 3 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__3__; + +/***/ }), +/* 4 */, +/* 5 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__5__; + +/***/ }), +/* 6 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__6__; + +/***/ }), +/* 7 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__7__; + +/***/ }), +/* 8 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__8__; + +/***/ }), +/* 9 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__9__; + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ Stanford; } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-color","commonjs2":"d3-color","amd":"d3-color","root":"d3"} +var external_commonjs_d3_color_commonjs2_d3_color_amd_d3_color_root_d3_ = __webpack_require__(5); +// EXTERNAL MODULE: external {"commonjs":"d3-interpolate","commonjs2":"d3-interpolate","amd":"d3-interpolate","root":"d3"} +var external_commonjs_d3_interpolate_commonjs2_d3_interpolate_amd_d3_interpolate_root_d3_ = __webpack_require__(6); +// EXTERNAL MODULE: external {"commonjs":"d3-scale","commonjs2":"d3-scale","amd":"d3-scale","root":"d3"} +var external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_ = __webpack_require__(7); +;// CONCATENATED MODULE: ./src/config/classes.ts +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +const $COMMON = { + button: "bb-button", + chart: "bb-chart", + empty: "bb-empty", + main: "bb-main", + target: "bb-target", + EXPANDED: "_expanded_" +}; +const $ARC = { + arc: "bb-arc", + arcLabelLine: "bb-arc-label-line", + arcRange: "bb-arc-range", + arcs: "bb-arcs", + chartArc: "bb-chart-arc", + chartArcs: "bb-chart-arcs", + chartArcsBackground: "bb-chart-arcs-background", + chartArcsTitle: "bb-chart-arcs-title", + needle: "bb-needle" +}; +const $AREA = { + area: "bb-area", + areas: "bb-areas" +}; +const $AXIS = { + axis: "bb-axis", + axisX: "bb-axis-x", + axisXLabel: "bb-axis-x-label", + axisY: "bb-axis-y", + axisY2: "bb-axis-y2", + axisY2Label: "bb-axis-y2-label", + axisYLabel: "bb-axis-y-label", + axisXTooltip: "bb-axis-x-tooltip", + axisYTooltip: "bb-axis-y-tooltip", + axisY2Tooltip: "bb-axis-y2-tooltip" +}; +const $BAR = { + bar: "bb-bar", + bars: "bb-bars", + chartBar: "bb-chart-bar", + chartBars: "bb-chart-bars" +}; +const $CANDLESTICK = { + candlestick: "bb-candlestick", + candlesticks: "bb-candlesticks", + chartCandlestick: "bb-chart-candlestick", + chartCandlesticks: "bb-chart-candlesticks", + valueDown: "bb-value-down", + valueUp: "bb-value-up" +}; +const $CIRCLE = { + chartCircles: "bb-chart-circles", + circle: "bb-circle", + circles: "bb-circles" +}; +const $COLOR = { + colorPattern: "bb-color-pattern", + colorScale: "bb-colorscale" +}; +const $DRAG = { + dragarea: "bb-dragarea", + INCLUDED: "_included_" +}; +const $FUNNEL = { + funnel: "bb-funnel", + chartFunnel: "bb-chart-funnel", + chartFunnels: "bb-chart-funnels", + funnelBackground: "bb-funnel-background" +}; +const $GAUGE = { + chartArcsGaugeMax: "bb-chart-arcs-gauge-max", + chartArcsGaugeMin: "bb-chart-arcs-gauge-min", + chartArcsGaugeUnit: "bb-chart-arcs-gauge-unit", + chartArcsGaugeTitle: "bb-chart-arcs-gauge-title", + gaugeValue: "bb-gauge-value" +}; +const $LEGEND = { + legend: "bb-legend", + legendBackground: "bb-legend-background", + legendItem: "bb-legend-item", + legendItemEvent: "bb-legend-item-event", + legendItemHidden: "bb-legend-item-hidden", + legendItemPoint: "bb-legend-item-point", + legendItemTile: "bb-legend-item-tile" +}; +const $LINE = { + chartLine: "bb-chart-line", + chartLines: "bb-chart-lines", + line: "bb-line", + lines: "bb-lines" +}; +const $EVENT = { + eventRect: "bb-event-rect", + eventRects: "bb-event-rects", + eventRectsMultiple: "bb-event-rects-multiple", + eventRectsSingle: "bb-event-rects-single" +}; +const $FOCUS = { + focused: "bb-focused", + defocused: "bb-defocused", + legendItemFocused: "bb-legend-item-focused", + xgridFocus: "bb-xgrid-focus", + ygridFocus: "bb-ygrid-focus" +}; +const $GRID = { + grid: "bb-grid", + gridLines: "bb-grid-lines", + xgrid: "bb-xgrid", + xgridLine: "bb-xgrid-line", + xgridLines: "bb-xgrid-lines", + xgrids: "bb-xgrids", + ygrid: "bb-ygrid", + ygridLine: "bb-ygrid-line", + ygridLines: "bb-ygrid-lines", + ygrids: "bb-ygrids" +}; +const $LEVEL = { + level: "bb-level", + levels: "bb-levels" +}; +const $RADAR = { + chartRadar: "bb-chart-radar", + chartRadars: "bb-chart-radars" +}; +const $REGION = { + region: "bb-region", + regions: "bb-regions" +}; +const $SELECT = { + selectedCircle: "bb-selected-circle", + selectedCircles: "bb-selected-circles", + SELECTED: "_selected_" +}; +const $SHAPE = { + shape: "bb-shape", + shapes: "bb-shapes" +}; +const $SUBCHART = { + brush: "bb-brush", + subchart: "bb-subchart" +}; +const $TEXT = { + chartText: "bb-chart-text", + chartTexts: "bb-chart-texts", + text: "bb-text", + texts: "bb-texts", + title: "bb-title", + TextOverlapping: "text-overlapping" +}; +const $TOOLTIP = { + tooltip: "bb-tooltip", + tooltipContainer: "bb-tooltip-container", + tooltipName: "bb-tooltip-name" +}; +const $TREEMAP = { + treemap: "bb-treemap", + chartTreemap: "bb-chart-treemap", + chartTreemaps: "bb-chart-treemaps" +}; +const $ZOOM = { + buttonZoomReset: "bb-zoom-reset", + zoomBrush: "bb-zoom-brush" +}; +/* harmony default export */ var classes = (__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, $COMMON), $ARC), $AREA), $AXIS), $BAR), $CANDLESTICK), $CIRCLE), $COLOR), $DRAG), $GAUGE), $LEGEND), $LINE), $EVENT), $FOCUS), $FUNNEL), $GRID), $RADAR), $REGION), $SELECT), $SHAPE), $SUBCHART), $TEXT), $TOOLTIP), $TREEMAP), $ZOOM)); + +// EXTERNAL MODULE: external {"commonjs":"d3-brush","commonjs2":"d3-brush","amd":"d3-brush","root":"d3"} +var external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_ = __webpack_require__(3); +// EXTERNAL MODULE: external {"commonjs":"d3-selection","commonjs2":"d3-selection","amd":"d3-selection","root":"d3"} +var external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_ = __webpack_require__(1); +;// CONCATENATED MODULE: ./src/module/browser.ts +function getGlobal() { + return typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && globalThis || typeof global === "object" && global !== null && global.Object === Object && global || typeof self === "object" && self !== null && self.Object === Object && self || Function("return this")(); +} +function getFallback(w) { + const hasRAF = typeof (w == null ? void 0 : w.requestAnimationFrame) === "function" && typeof (w == null ? void 0 : w.cancelAnimationFrame) === "function"; + const hasRIC = typeof (w == null ? void 0 : w.requestIdleCallback) === "function" && typeof (w == null ? void 0 : w.cancelIdleCallback) === "function"; + const request = (cb) => setTimeout(cb, 1); + const cancel = (id) => clearTimeout(id); + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +const win = getGlobal(); +const doc = win == null ? void 0 : win.document; +const [ + requestAnimationFrame, + cancelAnimationFrame, + requestIdleCallback, + cancelIdleCallback +] = getFallback(win); + + +;// CONCATENATED MODULE: ./src/module/util.ts +var util_defProp = Object.defineProperty; +var util_getOwnPropSymbols = Object.getOwnPropertySymbols; +var util_hasOwnProp = Object.prototype.hasOwnProperty; +var util_propIsEnum = Object.prototype.propertyIsEnumerable; +var util_defNormalProp = (obj, key, value) => key in obj ? util_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var util_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (util_hasOwnProp.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + if (util_getOwnPropSymbols) + for (var prop of util_getOwnPropSymbols(b)) { + if (util_propIsEnum.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + + +const isValue = (v) => v || v === 0; +const isFunction = (v) => typeof v === "function"; +const isString = (v) => typeof v === "string"; +const isNumber = (v) => typeof v === "number"; +const isUndefined = (v) => typeof v === "undefined"; +const isDefined = (v) => typeof v !== "undefined"; +const isBoolean = (v) => typeof v === "boolean"; +const ceil10 = (v) => Math.ceil(v / 10) * 10; +const asHalfPixel = (n) => Math.ceil(n) + 0.5; +const diffDomain = (d) => d[1] - d[0]; +const isObjectType = (v) => typeof v === "object"; +const isEmpty = (o) => isUndefined(o) || o === null || isString(o) && o.length === 0 || isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0 || isNumber(o) && isNaN(o); +const notEmpty = (o) => !isEmpty(o); +const isArray = (arr) => Array.isArray(arr); +const isObject = (obj) => obj && !(obj == null ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +function hasValue(dict, value) { + let found = false; + Object.keys(dict).forEach((key) => dict[key] === value && (found = true)); + return found; +} +function callFn(fn, thisArg, ...args) { + const isFn = isFunction(fn); + isFn && fn.call(thisArg, ...args); + return isFn; +} +function endall(transition, cb) { + let n = 0; + const end = function(...args) { + !--n && cb.apply(this, ...args); + }; + if ("duration" in transition) { + transition.each(() => ++n).on("end", end); + } else { + ++n; + transition.call(end); + } +} +function sanitize(str) { + return isString(str) ? str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : str; +} +function setTextValue(node, text, dy = [-1, 1], toMiddle = false) { + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } else { + const diff = [node.text(), text].map((v) => v.replace(/[\s\n]/g, "")); + if (diff[0] !== diff[1]) { + const multiline = text.split("\n"); + const len = toMiddle ? multiline.length - 1 : 1; + node.html(""); + multiline.forEach((v, i) => { + node.append("tspan").attr("x", 0).attr("dy", `${i === 0 ? dy[0] * len : dy[1]}em`).text(v); + }); + } + } +} +function getRectSegList(path) { + const { x, y, width, height } = path.getBBox(); + return [ + { x, y: y + height }, + // seg0 + { x, y }, + // seg1 + { x: x + width, y }, + // seg2 + { x: x + width, y: y + height } + // seg3 + ]; +} +function getPathBox(path) { + const { width, height } = path.getBoundingClientRect(); + const items = getRectSegList(path); + const x = items[0].x; + const y = Math.min(items[0].y, items[1].y); + return { + x, + y, + width, + height + }; +} +function getPointer(event, element) { + var _a; + const touches = event && ((_a = event.touches || event.sourceEvent && event.sourceEvent.touches) == null ? void 0 : _a[0]); + let pointer = [0, 0]; + try { + pointer = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.pointer)(touches || event, element); + } catch (e) { + } + return pointer.map((v) => isNaN(v) ? 0 : v); +} +function getBrushSelection(ctx) { + const { event, $el } = ctx; + const main = $el.subchart.main || $el.main; + let selection; + if (event && event.type === "brush") { + selection = event.selection; + } else if (main && (selection = main.select(".bb-brush").node())) { + selection = (0,external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_.brushSelection)(selection); + } + return selection; +} +function getBoundingRect(node) { + const needEvaluate = !("rect" in node) || "rect" in node && node.hasAttribute("width") && node.rect.width !== +node.getAttribute("width"); + return needEvaluate ? node.rect = node.getBoundingClientRect() : node.rect; +} +function getRandom(asStr = true, min = 0, max = 1e4) { + const crpt = win.crypto || win.msCrypto; + const rand = crpt ? min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + const mid = Math.floor((start + end) / 2); + let { x, w = 0 } = arr[mid]; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? findIndex(arr, v, start, mid - 1, isRotated) : findIndex(arr, v, mid + 1, end, isRotated); +} +function brushEmpty(ctx) { + const selection = getBrushSelection(ctx); + if (selection) { + return selection[0] === selection[1]; + } + return true; +} +function deepClone(...objectN) { + const clone = (v) => { + if (isObject(v) && v.constructor) { + const r = new v.constructor(); + for (const k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map((v) => clone(v)).reduce((a, c) => util_spreadValues(util_spreadValues({}, a), c)); +} +function extend(target = {}, source) { + if (isArray(source)) { + source.forEach((v) => extend(target, v)); + } + for (const p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); +function camelize(str, separator = "-") { + return str.split(separator).map((v, i) => i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()).join(""); +} +const toArray = (v) => [].slice.call(v); +function addCssRules(style, selector, prop) { + const { rootSelector = "", sheet } = style; + const getSelector = (s) => s.replace(/\s?(bb-)/g, ".$1").replace(/\.+/g, "."); + const rule = `${rootSelector} ${getSelector(selector)} {${prop.join(";")}}`; + return sheet[sheet.insertRule ? "insertRule" : "addRule"]( + rule, + sheet.cssRules.length + ); +} +function getCssRules(styleSheets) { + let rules = []; + styleSheets.forEach((sheet) => { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } catch (e) { + (_a = win.console) == null ? void 0 : _a.warn(`Error while reading rules from ${sheet.href}: ${e.toString()}`); + } + }); + return rules; +} +function getScrollPosition(node) { + var _a, _b, _c, _d; + return { + x: ((_b = (_a = win.pageXOffset) != null ? _a : win.scrollX) != null ? _b : 0) + node.scrollLeft, + y: ((_d = (_c = win.pageYOffset) != null ? _c : win.scrollY) != null ? _d : 0) + node.scrollTop + }; +} +function getTranslation(node) { + const transform = node ? node.transform : null; + const baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? baseVal.getItem(0).matrix : { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +function getUnique(data) { + const isDate = data[0] instanceof Date; + const d = (isDate ? data.map(Number) : data).filter((v, i, self) => self.indexOf(v) === i); + return isDate ? d.map((v) => new Date(v)) : d; +} +function mergeArray(arr) { + return arr && arr.length ? arr.reduce((p, c) => p.concat(c)) : []; +} +function mergeObj(target, ...objectN) { + if (!objectN.length || objectN.length === 1 && !objectN[0]) { + return target; + } + const source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach((key) => { + const value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj(target, ...objectN); +} +function sortValue(data, isAsc = true) { + let fn; + if (data[0] instanceof Date) { + fn = isAsc ? (a, b) => a - b : (a, b) => b - a; + } else { + if (isAsc && !data.every(isNaN)) { + fn = (a, b) => a - b; + } else if (!isAsc) { + fn = (a, b) => a > b && -1 || a < b && 1 || a === b && 0; + } + } + return data.concat().sort(fn); +} +function getMinMax(type, data) { + let res = data.filter((v) => notEmpty(v)); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type](...res); + } else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } else { + res = void 0; + } + return res; +} +const getRange = (start, end, step = 1) => { + const res = []; + const n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (let i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +const emulateEvent = { + mouse: (() => { + const getParams = () => ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); + try { + new MouseEvent("t"); + return (el, eventType, params = getParams()) => { + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } catch (e) { + return (el, eventType, params = getParams()) => { + const mouseEvent = doc.createEvent("MouseEvent"); + mouseEvent.initMouseEvent( + eventType, + params.bubbles, + params.cancelable, + win, + 0, + // the event's mouse click count + params.screenX, + params.screenY, + params.clientX, + params.clientY, + false, + false, + false, + false, + 0, + null + ); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: (el, eventType, params) => { + const touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +function tplProcess(tpl, data) { + let res = tpl; + for (const x in data) { + res = res.replace(new RegExp(`{=${x}}`, "g"), data[x]); + } + return res; +} +function parseDate(date) { + var _a; + let parsedDate; + if (date instanceof Date) { + parsedDate = date; + } else if (isString(date)) { + const { config, format } = this; + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) != null ? _a : new Date(date); + } else if (isNumber(date) && !isNaN(date)) { + parsedDate = /* @__PURE__ */ new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && console.error(`Failed to parse x '${date}' to Date object`); + } + return parsedDate; +} +function isTabVisible() { + var _a, _b; + return ((_a = doc) == null ? void 0 : _a.hidden) === false || ((_b = doc) == null ? void 0 : _b.visibilityState) === "visible"; +} +function convertInputType(mouse, touch) { + const { DocumentTouch, matchMedia, navigator } = win; + let hasTouch = false; + if (touch) { + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + } else if ("ontouchmove" in win || DocumentTouch && doc instanceof DocumentTouch) { + hasTouch = true; + } else { + if (matchMedia == null ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } else { + const UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + const hasMouse = mouse && ((matchMedia == null ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia == null ? void 0 : matchMedia("any-pointer:fine").matches)); + return hasMouse && "mouse" || hasTouch && "touch" || "mouse"; +} +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(() => runUntil(fn, conditionFn)); + } else { + fn(); + } +} + +;// CONCATENATED MODULE: ./src/config/config.ts + +function loadConfig(config) { + const thisConfig = this.config; + let target; + let keys; + let read; + const find = () => { + const key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } else if (!key) { + return target; + } + return void 0; + }; + Object.keys(thisConfig).forEach((key) => { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + if (this.api) { + this.state.orgConfig = config; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/Plugin.ts +var Plugin_defProp = Object.defineProperty; +var Plugin_defNormalProp = (obj, key, value) => key in obj ? Plugin_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + Plugin_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class Plugin { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + constructor(options = {}) { + __publicField(this, "$$"); + __publicField(this, "options"); + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + $beforeInit() { + } + /** + * Lifecycle hook for 'init' phase. + * @private + */ + $init() { + } + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + $afterInit() { + } + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + $redraw() { + } + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + $willDestroy() { + Object.keys(this).forEach((key) => { + this[key] = null; + delete this[key]; + }); + } +} +__publicField(Plugin, "version", "3.12.4"); + +// EXTERNAL MODULE: external {"commonjs":"d3-axis","commonjs2":"d3-axis","amd":"d3-axis","root":"d3"} +var external_commonjs_d3_axis_commonjs2_d3_axis_amd_d3_axis_root_d3_ = __webpack_require__(8); +// EXTERNAL MODULE: external {"commonjs":"d3-format","commonjs2":"d3-format","amd":"d3-format","root":"d3"} +var external_commonjs_d3_format_commonjs2_d3_format_amd_d3_format_root_d3_ = __webpack_require__(9); +;// CONCATENATED MODULE: ./src/Plugin/stanford/classes.ts +/* harmony default export */ var stanford_classes = ({ + colorScale: "bb-colorscale", + stanfordElements: "bb-stanford-elements", + stanfordLine: "bb-stanford-line", + stanfordLines: "bb-stanford-lines", + stanfordRegion: "bb-stanford-region", + stanfordRegions: "bb-stanford-regions" +}); + +;// CONCATENATED MODULE: ./src/Plugin/stanford/ColorScale.ts +var ColorScale_defProp = Object.defineProperty; +var ColorScale_defNormalProp = (obj, key, value) => key in obj ? ColorScale_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var ColorScale_publicField = (obj, key, value) => { + ColorScale_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + +class ColorScale { + constructor(owner) { + ColorScale_publicField(this, "owner"); + ColorScale_publicField(this, "colorScale"); + this.owner = owner; + } + drawColorScale() { + const { $$, config } = this.owner; + const target = $$.data.targets[0]; + const height = $$.state.height - config.padding_bottom - config.padding_top; + const barWidth = config.scale_width; + const barHeight = 5; + const points = getRange(config.padding_bottom, height, barHeight); + const inverseScale = (0,external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleSequential)(target.colors).domain([points[points.length - 1], points[0]]); + if (this.colorScale) { + this.colorScale.remove(); + } + this.colorScale = $$.$el.svg.append("g").attr("width", 50).attr("height", height).attr("class", stanford_classes.colorScale); + this.colorScale.append("g").attr("transform", `translate(0, ${config.padding_top})`).selectAll("bars").data(points).enter().append("rect").attr("y", (d, i) => i * barHeight).attr("x", 0).attr("width", barWidth).attr("height", barHeight).attr("fill", (d) => inverseScale(d)); + const axisScale = (0,external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleSymlog)().domain([target.minEpochs, target.maxEpochs]).range([ + points[0] + config.padding_top + points[points.length - 1] + barHeight - 1, + points[0] + config.padding_top + ]); + const legendAxis = (0,external_commonjs_d3_axis_commonjs2_d3_axis_amd_d3_axis_root_d3_.axisRight)(axisScale); + const scaleFormat = config.scale_format; + if (scaleFormat === "pow10") { + legendAxis.tickValues([1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7]); + } else if (isFunction(scaleFormat)) { + legendAxis.tickFormat(scaleFormat); + } else { + legendAxis.tickFormat((0,external_commonjs_d3_format_commonjs2_d3_format_amd_d3_format_root_d3_.format)("d")); + } + const axis = this.colorScale.append("g").attr("class", "legend axis").attr("transform", `translate(${barWidth},0)`).call(legendAxis); + if (scaleFormat === "pow10") { + axis.selectAll(".tick text").text(null).filter((d) => d / Math.pow(10, Math.ceil(Math.log(d) / Math.LN10 - 1e-12)) === 1).text(10).append("tspan").attr("dy", "-.7em").text((d) => Math.round(Math.log(d) / Math.LN10)); + } + this.colorScale.attr( + "transform", + `translate(${$$.state.current.width - this.xForColorScale()}, 0)` + ); + } + xForColorScale() { + return this.owner.config.padding_right + this.colorScale.node().getBBox().width; + } + getColorScalePadding() { + return this.xForColorScale() + this.owner.config.padding_left + 20; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/stanford/util.ts + +function pointInRegion(point, region) { + const x = point.x; + const y = point.value; + let inside = false; + for (let i = 0, j = region.length - 1; i < region.length; j = i++) { + const xi = region[i].x; + const yi = region[i].y; + const xj = region[j].x; + const yj = region[j].y; + const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi; + if (intersect) { + inside = !inside; + } + } + return inside; +} +function compareEpochs(a, b) { + if (a.epochs < b.epochs) { + return -1; + } + if (a.epochs > b.epochs) { + return 1; + } + return 0; +} +function getRegionArea(points) { + let area = 0; + let point1; + let point2; + for (let i = 0, l = points.length, j = l - 1; i < l; j = i, i++) { + point1 = points[i]; + point2 = points[j]; + area += point1.x * point2.y; + area -= point1.y * point2.x; + } + area /= 2; + return area; +} +function getCentroid(points) { + const area = getRegionArea(points); + let x = 0; + let y = 0; + let f; + for (let i = 0, l = points.length, j = l - 1; i < l; j = i, i++) { + const point1 = points[i]; + const point2 = points[j]; + f = point1.x * point2.y - point2.x * point1.y; + x += (point1.x + point2.x) * f; + y += (point1.y + point2.y) * f; + } + f = area * 6; + return { + x: x / f, + y: y / f + }; +} + + +;// CONCATENATED MODULE: ./src/Plugin/stanford/Elements.ts +var Elements_defProp = Object.defineProperty; +var Elements_defNormalProp = (obj, key, value) => key in obj ? Elements_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var Elements_publicField = (obj, key, value) => { + Elements_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + +class Elements { + constructor(owner) { + Elements_publicField(this, "owner"); + this.owner = owner; + const elements = owner.$$.$el.main.select(".bb-chart").append("g").attr("class", stanford_classes.stanfordElements); + elements.append("g").attr("class", stanford_classes.stanfordLines); + elements.append("g").attr("class", stanford_classes.stanfordRegions); + } + updateStanfordLines(duration) { + const { $$ } = this.owner; + const { config, $el: { main } } = $$; + const isRotated = config.axis_rotated; + const xvCustom = this.xvCustom.bind($$); + const yvCustom = this.yvCustom.bind($$); + const stanfordLine = main.select(`.${stanford_classes.stanfordLines}`).style("shape-rendering", "geometricprecision").selectAll(`.${stanford_classes.stanfordLine}`).data(this.owner.config.lines); + stanfordLine.exit().transition().duration(duration).style("opacity", "0").remove(); + const stanfordLineEnter = stanfordLine.enter().append("g"); + stanfordLineEnter.append("line").style("opacity", "0"); + stanfordLineEnter.merge(stanfordLine).attr("class", (d) => stanford_classes.stanfordLine + (d.class ? ` ${d.class}` : "")).select("line").transition().duration(duration).attr("x1", (d) => { + const v = isRotated ? yvCustom(d, "y1") : xvCustom(d, "x1"); + return v; + }).attr("x2", (d) => isRotated ? yvCustom(d, "y2") : xvCustom(d, "x2")).attr("y1", (d) => { + const v = isRotated ? xvCustom(d, "x1") : yvCustom(d, "y1"); + return v; + }).attr("y2", (d) => isRotated ? xvCustom(d, "x2") : yvCustom(d, "y2")).transition().style("opacity", null); + } + updateStanfordRegions(duration) { + const { $$ } = this.owner; + const { config, $el: { main } } = $$; + const isRotated = config.axis_rotated; + const xvCustom = this.xvCustom.bind($$); + const yvCustom = this.yvCustom.bind($$); + const countPointsInRegion = this.owner.countEpochsInRegion.bind($$); + let stanfordRegion = main.select(`.${stanford_classes.stanfordRegions}`).selectAll(`.${stanford_classes.stanfordRegion}`).data(this.owner.config.regions); + stanfordRegion.exit().transition().duration(duration).style("opacity", "0").remove(); + const stanfordRegionEnter = stanfordRegion.enter().append("g"); + stanfordRegionEnter.append("polygon").style("opacity", "0"); + stanfordRegionEnter.append("text").attr("transform", isRotated ? "rotate(-90)" : "").style("opacity", "0"); + stanfordRegion = stanfordRegionEnter.merge(stanfordRegion); + stanfordRegion.attr("class", (d) => stanford_classes.stanfordRegion + (d.class ? ` ${d.class}` : "")).select("polygon").transition().duration(duration).attr("points", (d) => d.points.map( + (value) => [ + isRotated ? yvCustom(value, "y") : xvCustom(value, "x"), + isRotated ? xvCustom(value, "x") : yvCustom(value, "y") + ].join(",") + ).join(" ")).transition().style("opacity", (d) => String(d.opacity ? d.opacity : 0.2)); + stanfordRegion.select("text").transition().duration(duration).attr( + "x", + (d) => isRotated ? yvCustom(getCentroid(d.points), "y") : xvCustom(getCentroid(d.points), "x") + ).attr( + "y", + (d) => isRotated ? xvCustom(getCentroid(d.points), "x") : yvCustom(getCentroid(d.points), "y") + ).text((d) => { + if (d.text) { + const { value, percentage } = countPointsInRegion(d.points); + return d.text(value, percentage); + } + return ""; + }).attr("text-anchor", "middle").attr("dominant-baseline", "middle").transition().style("opacity", null); + } + updateStanfordElements(duration = 0) { + this.updateStanfordLines(duration); + this.updateStanfordRegions(duration); + } + xvCustom(d, xyValue) { + const $$ = this; + const { axis, config } = $$; + let value = xyValue ? d[xyValue] : $$.getBaseValue(d); + if (axis.isTimeSeries()) { + value = parseDate.call($$, value); + } else if (axis.isCategorized() && isString(value)) { + value = config.axis_x_categories.indexOf(d.value); + } + return Math.ceil($$.scale.x(value)); + } + yvCustom(d, xyValue) { + const $$ = this; + const yScale = d.axis && d.axis === "y2" ? $$.scale.y2 : $$.scale.y; + const value = xyValue ? d[xyValue] : $$.getBaseValue(d); + return Math.ceil(yScale(value)); + } +} + +;// CONCATENATED MODULE: ./src/Plugin/stanford/Options.ts +class Options { + constructor() { + return { + /** + * Set the color of the color scale. This function receives a value between 0 and 1, and should return a color. + * @name colors + * @memberof plugin-stanford + * @type {Function} + * @default undefined + * @example + * colors: d3.interpolateHslLong( + * d3.hsl(250, 1, 0.5), d3.hsl(0, 1, 0.5) + * ) + */ + colors: void 0, + /** + * Specify the key of epochs values in the data. + * @name epochs + * @memberof plugin-stanford + * @type {Array} + * @default [] + * @example + * epochs: [ 1, 1, 2, 2, ... ] + */ + epochs: [], + /** + * Show additional lines anywhere on the chart. + * - Each line object should consist with following options: + * + * | Key | Type | Description | + * | --- | --- | --- | + * | x1 | Number | Starting position on the x axis | + * | y1 | Number | Starting position on the y axis | + * | x2 | Number | Ending position on the x axis | + * | y2 | Number | Ending position on the y axis | + * | class | String | Optional value. Set a custom css class to this line. | + * @type {Array} + * @memberof plugin-stanford + * @default [] + * @example + * lines: [ + * { x1: 0, y1: 0, x2: 65, y2: 65, class: "line1" }, + * { x1: 0, x2: 65, y1: 40, y2: 40, class: "line2" } + * ] + */ + lines: [], + /** + * Set scale values + * @name scale + * @memberof plugin-stanford + * @type {object} + * @property {object} [scale] scale object + * @property {number} [scale.min=undefined] Minimum value of the color scale. Default: lowest value in epochs + * @property {number} [scale.max=undefined] Maximum value of the color scale. Default: highest value in epochs + * @property {number} [scale.width=20] Width of the color scale + * @property {string|Function} [scale.format=undefined] Format of the axis of the color scale. Use 'pow10' to format as powers of 10 or a custom function. Example: d3.format("d") + * @example + * scale: { + * max: 10000, + * min: 1, + * width: 500, + * + * // specify 'pow10' to format as powers of 10 + * format: "pow10", + * + * // or specify a format function + * format: function(x) { + * return x +"%"; + * } + * }, + */ + scale_min: void 0, + scale_max: void 0, + scale_width: 20, + scale_format: void 0, + /** + * The padding for color scale element + * @name padding + * @memberof plugin-stanford + * @type {object} + * @property {object} [padding] padding object + * @property {number} [padding.top=0] Top padding value. + * @property {number} [padding.right=0] Right padding value. + * @property {number} [padding.bottom=0] Bottom padding value. + * @property {number} [padding.left=0] Left padding value. + * @example + * padding: { + * top: 15, + * right: 0, + * bottom: 0, + * left: 0 + * }, + */ + padding_top: 0, + padding_right: 0, + padding_bottom: 0, + padding_left: 0, + /** + * Show additional regions anywhere on the chart. + * - Each region object should consist with following options: + * + * | Key | Type | Default | Attributes | Description | + * | --- | --- | --- | --- | --- | + * | points | Array | | | Accepts a group of objects that has x and y.<br>These points should be added in a counter-clockwise fashion to make a closed polygon. | + * | opacity | Number | `0.2` | <optional> | Sets the opacity of the region as value between 0 and 1 | + * | text | Function | | <optional> | This function receives a value and percentage of the number of epochs in this region.<br>Return a string to place text in the middle of the region. | + * | class | String | | <optional> | Se a custom css class to this region, use the fill property in css to set a background color. | + * @name regions + * @memberof plugin-stanford + * @type {Array} + * @default [] + * @example + * regions: [ + * { + * points: [ // add points counter-clockwise + * { x: 0, y: 0 }, + * { x: 40, y: 40 }, + * { x: 0, y: 40 }, + * ], + * text: function (value, percentage) { + * return `Normal Operations: ${value} (${percentage}%)`; + * }, + * opacity: 0.2, // 0 to 1 + * class: "test-polygon1" + * }, + * ... + * ] + */ + regions: [] + }; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/stanford/index.ts +var stanford_defProp = Object.defineProperty; +var stanford_defNormalProp = (obj, key, value) => key in obj ? stanford_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var stanford_publicField = (obj, key, value) => { + stanford_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + + + + + + +class Stanford extends Plugin { + constructor(options) { + super(options); + stanford_publicField(this, "config"); + stanford_publicField(this, "colorScale"); + stanford_publicField(this, "elements"); + this.config = new Options(); + return this; + } + $beforeInit() { + const { $$ } = this; + $$.config.data_xSort = false; + $$.isMultipleX = () => true; + $$.showGridFocus = () => { + }; + $$.labelishData = (d) => d.values; + $$.opacityForCircle = () => 1; + const getCurrentPadding = $$.getCurrentPadding.bind($$); + $$.getCurrentPadding = () => { + const padding = getCurrentPadding(); + padding.right += this.colorScale ? this.colorScale.getColorScalePadding() : 0; + return padding; + }; + } + $init() { + const { $$ } = this; + loadConfig.call(this, this.options); + $$.color = this.getStanfordPointColor.bind($$); + this.colorScale = new ColorScale(this); + this.elements = new Elements(this); + this.convertData(); + this.initStanfordData(); + this.setStanfordTooltip(); + this.colorScale.drawColorScale(); + $$.right += this.colorScale ? this.colorScale.getColorScalePadding() : 0; + this.$redraw(); + } + $redraw(duration) { + var _a, _b; + (_a = this.colorScale) == null ? void 0 : _a.drawColorScale(); + (_b = this.elements) == null ? void 0 : _b.updateStanfordElements(duration); + } + getOptions() { + return new Options(); + } + convertData() { + const data = this.$$.data.targets; + const epochs = this.options.epochs; + data.forEach((d) => { + d.values.forEach((v, i) => { + v.epochs = epochs[i]; + }); + d.minEpochs = void 0; + d.maxEpochs = void 0; + d.colors = void 0; + d.colorscale = void 0; + }); + } + initStanfordData() { + const { config } = this; + const target = this.$$.data.targets[0]; + target.values.sort(compareEpochs); + const epochs = target.values.map((a) => a.epochs); + target.minEpochs = !isNaN(config.scale_min) ? config.scale_min : Math.min(...epochs); + target.maxEpochs = !isNaN(config.scale_max) ? config.scale_max : Math.max(...epochs); + target.colors = isFunction(config.colors) ? config.colors : (0,external_commonjs_d3_interpolate_commonjs2_d3_interpolate_amd_d3_interpolate_root_d3_.interpolateHslLong)((0,external_commonjs_d3_color_commonjs2_d3_color_amd_d3_color_root_d3_.hsl)(250, 1, 0.5), (0,external_commonjs_d3_color_commonjs2_d3_color_amd_d3_color_root_d3_.hsl)(0, 1, 0.5)); + target.colorscale = (0,external_commonjs_d3_scale_commonjs2_d3_scale_amd_d3_scale_root_d3_.scaleSequentialLog)(target.colors).domain([target.minEpochs, target.maxEpochs]); + } + getStanfordPointColor(d) { + const target = this.data.targets[0]; + return target.colorscale(d.epochs); + } + setStanfordTooltip() { + const { config } = this.$$; + if (isEmpty(config.tooltip_contents)) { + config.tooltip_contents = function(d, defaultTitleFormat, defaultValueFormat, color) { + const { data_x } = config; + let html = `<table class="${$TOOLTIP.tooltip}"><tbody>`; + d.forEach((v) => { + const { id = "", value = 0, epochs = 0, x = "" } = v; + html += `<tr> + <th>${data_x || ""}</th> + <th class="value">${defaultTitleFormat(x)}</th> + </tr> + <tr> + <th>${v.id}</th> + <th class="value">${defaultValueFormat(value)}</th> + </tr> + <tr class="${$TOOLTIP.tooltipName}-${id}"> + <td class="name"><span style="background-color:${color(v)}"></span>Epochs</td> + <td class="value">${defaultValueFormat(epochs)}</td> + </tr>`; + }); + return `${html}</tbody></table>`; + }; + } + } + countEpochsInRegion(region) { + const $$ = this; + const target = $$.data.targets[0]; + const total = target.values.reduce( + (accumulator, currentValue) => accumulator + Number(currentValue.epochs), + 0 + ); + const value = target.values.reduce((accumulator, currentValue) => { + if (pointInRegion(currentValue, region)) { + return accumulator + Number(currentValue.epochs); + } + return accumulator; + }, 0); + return { + value, + percentage: value !== 0 ? +(value / total * 100).toFixed(1) : 0 + }; + } +} + +__webpack_exports__ = __webpack_exports__["default"]; +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-stanford.min.js b/release/3.12.4/dist/plugin/billboardjs-plugin-stanford.min.js new file mode 100644 index 000000000..868d6446a --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-stanford.min.js @@ -0,0 +1,24 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */(function(f,_){typeof exports=="object"&&typeof module=="object"?module.exports=_(require("d3-color"),require("d3-interpolate"),require("d3-scale"),require("d3-brush"),require("d3-selection"),require("d3-axis"),require("d3-format")):typeof define=="function"&&define.amd?define("bb",["d3-color","d3-interpolate","d3-scale","d3-brush","d3-selection","d3-axis","d3-format"],_):typeof exports=="object"?exports.bb=_(require("d3-color"),require("d3-interpolate"),require("d3-scale"),require("d3-brush"),require("d3-selection"),require("d3-axis"),require("d3-format")):(f.bb=f.bb||{},f.bb.plugin=f.bb.plugin||{},f.bb.plugin.stanford=_(f.d3,f.d3,f.d3,f.d3,f.d3,f.d3,f.d3))})(this,function(j,f,_,z,H,K,W){return function(){"use strict";var Z={996:function(e){e.exports=K},853:function(e){e.exports=z},218:function(e){e.exports=j},390:function(e){e.exports=W},798:function(e){e.exports=f},455:function(e){e.exports=_},747:function(e){e.exports=H}},M={};function h(e){var t=M[e];if(t!==void 0)return t.exports;var n=M[e]={exports:{}};return Z[e](n,n.exports,h),n.exports}(function(){h.d=function(e,t){for(var n in t)h.o(t,n)&&!h.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}})(),function(){h.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}();var y={};h.d(y,{default:function(){return st}});var I=h(218),J=h(798),E=h(455),Q=Object.defineProperty,D=Object.getOwnPropertySymbols,ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable,N=(e,t,n)=>t in e?Q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,u=(e,t)=>{for(var n in t||(t={}))ee.call(t,n)&&N(e,n,t[n]);if(D)for(var n of D(t))te.call(t,n)&&N(e,n,t[n]);return e};const ne={button:"bb-button",chart:"bb-chart",empty:"bb-empty",main:"bb-main",target:"bb-target",EXPANDED:"_expanded_"},oe={arc:"bb-arc",arcLabelLine:"bb-arc-label-line",arcRange:"bb-arc-range",arcs:"bb-arcs",chartArc:"bb-chart-arc",chartArcs:"bb-chart-arcs",chartArcsBackground:"bb-chart-arcs-background",chartArcsTitle:"bb-chart-arcs-title",needle:"bb-needle"},re={area:"bb-area",areas:"bb-areas"},se={axis:"bb-axis",axisX:"bb-axis-x",axisXLabel:"bb-axis-x-label",axisY:"bb-axis-y",axisY2:"bb-axis-y2",axisY2Label:"bb-axis-y2-label",axisYLabel:"bb-axis-y-label",axisXTooltip:"bb-axis-x-tooltip",axisYTooltip:"bb-axis-y-tooltip",axisY2Tooltip:"bb-axis-y2-tooltip"},ae={bar:"bb-bar",bars:"bb-bars",chartBar:"bb-chart-bar",chartBars:"bb-chart-bars"},ie={candlestick:"bb-candlestick",candlesticks:"bb-candlesticks",chartCandlestick:"bb-chart-candlestick",chartCandlesticks:"bb-chart-candlesticks",valueDown:"bb-value-down",valueUp:"bb-value-up"},ce={chartCircles:"bb-chart-circles",circle:"bb-circle",circles:"bb-circles"},le={colorPattern:"bb-color-pattern",colorScale:"bb-colorscale"},ue={dragarea:"bb-dragarea",INCLUDED:"_included_"},de={funnel:"bb-funnel",chartFunnel:"bb-chart-funnel",chartFunnels:"bb-chart-funnels",funnelBackground:"bb-funnel-background"},be={chartArcsGaugeMax:"bb-chart-arcs-gauge-max",chartArcsGaugeMin:"bb-chart-arcs-gauge-min",chartArcsGaugeUnit:"bb-chart-arcs-gauge-unit",chartArcsGaugeTitle:"bb-chart-arcs-gauge-title",gaugeValue:"bb-gauge-value"},fe={legend:"bb-legend",legendBackground:"bb-legend-background",legendItem:"bb-legend-item",legendItemEvent:"bb-legend-item-event",legendItemHidden:"bb-legend-item-hidden",legendItemPoint:"bb-legend-item-point",legendItemTile:"bb-legend-item-tile"},he={chartLine:"bb-chart-line",chartLines:"bb-chart-lines",line:"bb-line",lines:"bb-lines"},pe={eventRect:"bb-event-rect",eventRects:"bb-event-rects",eventRectsMultiple:"bb-event-rects-multiple",eventRectsSingle:"bb-event-rects-single"},ge={focused:"bb-focused",defocused:"bb-defocused",legendItemFocused:"bb-legend-item-focused",xgridFocus:"bb-xgrid-focus",ygridFocus:"bb-ygrid-focus"},me={grid:"bb-grid",gridLines:"bb-grid-lines",xgrid:"bb-xgrid",xgridLine:"bb-xgrid-line",xgridLines:"bb-xgrid-lines",xgrids:"bb-xgrids",ygrid:"bb-ygrid",ygridLine:"bb-ygrid-line",ygridLines:"bb-ygrid-lines",ygrids:"bb-ygrids"},it={level:"bb-level",levels:"bb-levels"},_e={chartRadar:"bb-chart-radar",chartRadars:"bb-chart-radars"},xe={region:"bb-region",regions:"bb-regions"},ye={selectedCircle:"bb-selected-circle",selectedCircles:"bb-selected-circles",SELECTED:"_selected_"},ve={shape:"bb-shape",shapes:"bb-shapes"},$e={brush:"bb-brush",subchart:"bb-subchart"},we={chartText:"bb-chart-text",chartTexts:"bb-chart-texts",text:"bb-text",texts:"bb-texts",title:"bb-title",TextOverlapping:"text-overlapping"},S={tooltip:"bb-tooltip",tooltipContainer:"bb-tooltip-container",tooltipName:"bb-tooltip-name"},Ee={treemap:"bb-treemap",chartTreemap:"bb-chart-treemap",chartTreemaps:"bb-chart-treemaps"},Se={buttonZoomReset:"bb-zoom-reset",zoomBrush:"bb-zoom-brush"};var ct=u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u({},ne),oe),re),se),ae),ie),ce),le),ue),be),fe),he),pe),ge),de),me),_e),xe),ye),ve),$e),we),S),Ee),Se),lt=h(853),ut=h(747);function Ce(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function Oe(e){const t=typeof(e==null?void 0:e.requestAnimationFrame)=="function"&&typeof(e==null?void 0:e.cancelAnimationFrame)=="function",n=typeof(e==null?void 0:e.requestIdleCallback)=="function"&&typeof(e==null?void 0:e.cancelIdleCallback)=="function",o=s=>setTimeout(s,1),r=s=>clearTimeout(s);return[t?e.requestAnimationFrame:o,t?e.cancelAnimationFrame:r,n?e.requestIdleCallback:o,n?e.cancelIdleCallback:r]}const v=Ce(),Pe=v==null?void 0:v.document,[dt,bt,ft,ht]=Oe(v);var Re=Object.defineProperty,F=Object.getOwnPropertySymbols,Ae=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,q=(e,t,n)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,B=(e,t)=>{for(var n in t||(t={}))Ae.call(t,n)&&q(e,n,t[n]);if(F)for(var n of F(t))Te.call(t,n)&&q(e,n,t[n]);return e};const pt=e=>e||e===0,C=e=>typeof e=="function",x=e=>typeof e=="string",O=e=>typeof e=="number",Le=e=>typeof e=="undefined",U=e=>typeof e!="undefined",gt=e=>typeof e=="boolean",mt=e=>Math.ceil(e/10)*10,_t=e=>Math.ceil(e)+.5,xt=e=>e[1]-e[0],P=e=>typeof e=="object",X=e=>Le(e)||e===null||x(e)&&e.length===0||P(e)&&!(e instanceof Date)&&Object.keys(e).length===0||O(e)&&isNaN(e),je=e=>!X(e),R=e=>Array.isArray(e),$=e=>e&&!(e!=null&&e.nodeType)&&P(e)&&!R(e);function yt(e,t,n){return U(e[t])?e[t]:n}function vt(e,t){let n=!1;return Object.keys(e).forEach(o=>e[o]===t&&(n=!0)),n}function $t(e,t,...n){const o=C(e);return o&&e.call(t,...n),o}function wt(e,t){let n=0;const o=function(...r){!--n&&t.apply(this,...r)};"duration"in e?e.each(()=>++n).on("end",o):(++n,e.call(o))}function Et(e){return x(e)?e.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):e}function St(e,t,n=[-1,1],o=!1){if(!(!e||!x(t)))if(t.indexOf(` +`)===-1)e.text(t);else{const r=[e.text(),t].map(s=>s.replace(/[\s\n]/g,""));if(r[0]!==r[1]){const s=t.split(` +`),a=o?s.length-1:1;e.html(""),s.forEach((i,d)=>{e.append("tspan").attr("x",0).attr("dy",`${d===0?n[0]*a:n[1]}em`).text(i)})}}}function Me(e){const{x:t,y:n,width:o,height:r}=e.getBBox();return[{x:t,y:n+r},{x:t,y:n},{x:t+o,y:n},{x:t+o,y:n+r}]}function Ct(e){const{width:t,height:n}=e.getBoundingClientRect(),o=Me(e),r=o[0].x,s=Math.min(o[0].y,o[1].y);return{x:r,y:s,width:t,height:n}}function Ot(e,t){var n;const o=e&&((n=e.touches||e.sourceEvent&&e.sourceEvent.touches)==null?void 0:n[0]);let r=[0,0];try{r=d3Pointer(o||e,t)}catch(s){}return r.map(s=>isNaN(s)?0:s)}function Ie(e){const{event:t,$el:n}=e,o=n.subchart.main||n.main;let r;return t&&t.type==="brush"?r=t.selection:o&&(r=o.select(".bb-brush").node())&&(r=d3BrushSelection(r)),r}function Pt(e){return!("rect"in e)||"rect"in e&&e.hasAttribute("width")&&e.rect.width!==+e.getAttribute("width")?e.rect=e.getBoundingClientRect():e.rect}function Rt(e=!0,t=0,n=1e4){const o=window.crypto||window.msCrypto,r=o?t+o.getRandomValues(new Uint32Array(1))[0]%(n-t+1):Math.floor(Math.random()*(n-t)+t);return e?String(r):r}function Y(e,t,n,o,r){if(n>o)return-1;const s=Math.floor((n+o)/2);let{x:a,w:i=0}=e[s];return r&&(a=e[s].y,i=e[s].h),t>=a&&t<=a+i?s:t<a?Y(e,t,n,s-1,r):Y(e,t,s+1,o,r)}function At(e){const t=Ie(e);return t?t[0]===t[1]:!0}function Tt(...e){const t=n=>{if($(n)&&n.constructor){const o=new n.constructor;for(const r in n)o[r]=t(n[r]);return o}return n};return e.map(n=>t(n)).reduce((n,o)=>B(B({},n),o))}function De(e={},t){R(t)&&t.forEach(n=>De(e,n));for(const n in t)/^\d+$/.test(n)||n in e||(e[n]=t[n]);return e}const Lt=e=>e.charAt(0).toUpperCase()+e.slice(1);function jt(e,t="-"){return e.split(t).map((n,o)=>o?n.charAt(0).toUpperCase()+n.slice(1).toLowerCase():n.toLowerCase()).join("")}const Ne=e=>[].slice.call(e);function Mt(e,t,n){const{rootSelector:o="",sheet:r}=e,a=`${o} ${(i=>i.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(t)} {${n.join(";")}}`;return r[r.insertRule?"insertRule":"addRule"](a,r.cssRules.length)}function It(e){let t=[];return e.forEach(n=>{var o;try{n.cssRules&&n.cssRules.length&&(t=t.concat(Ne(n.cssRules)))}catch(r){(o=window.console)==null||o.warn(`Error while reading rules from ${n.href}: ${r.toString()}`)}}),t}function Dt(e){var t,n,o,r;return{x:((n=(t=window.pageXOffset)!=null?t:window.scrollX)!=null?n:0)+e.scrollLeft,y:((r=(o=window.pageYOffset)!=null?o:window.scrollY)!=null?r:0)+e.scrollTop}}function Nt(e){const t=e?e.transform:null,n=t&&t.baseVal;return n&&n.numberOfItems?n.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function Ft(e){const t=e[0]instanceof Date,n=(t?e.map(Number):e).filter((o,r,s)=>s.indexOf(o)===r);return t?n.map(o=>new Date(o)):n}function qt(e){return e&&e.length?e.reduce((t,n)=>t.concat(n)):[]}function A(e,...t){if(!t.length||t.length===1&&!t[0])return e;const n=t.shift();return $(e)&&$(n)&&Object.keys(n).forEach(o=>{const r=n[o];$(r)?(!e[o]&&(e[o]={}),e[o]=A(e[o],r)):e[o]=R(r)?r.concat():r}),A(e,...t)}function Fe(e,t=!0){let n;return e[0]instanceof Date?n=t?(o,r)=>o-r:(o,r)=>r-o:t&&!e.every(isNaN)?n=(o,r)=>o-r:t||(n=(o,r)=>o>r&&-1||o<r&&1||o===r&&0),e.concat().sort(n)}function Bt(e,t){let n=t.filter(o=>je(o));return n.length?O(n[0])?n=Math[e](...n):n[0]instanceof Date&&(n=Fe(n,e==="min")[0]):n=void 0,n}const qe=(e,t,n=1)=>{const o=[],r=Math.max(0,Math.ceil((t-e)/n))|0;for(let s=e;s<r;s++)o.push(e+s*n);return o},Ut={mouse:(()=>{const e=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(t,n,o=e())=>{t.dispatchEvent(new MouseEvent(n,o))}}catch(t){return(n,o,r=e())=>{const s=Pe.createEvent("MouseEvent");s.initMouseEvent(o,r.bubbles,r.cancelable,v,0,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),n.dispatchEvent(s)}}})(),touch:(e,t,n)=>{const o=new Touch(A({identifier:Date.now(),target:e,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},n));e.dispatchEvent(new TouchEvent(t,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[o],targetTouches:[],changedTouches:[o]}))}};function Xt(e,t){let n=e;for(const o in t)n=n.replace(new RegExp(`{=${o}}`,"g"),t[o]);return n}function Be(e){var t;let n;if(e instanceof Date)n=e;else if(x(e)){const{config:o,format:r}=this;n=(t=r.dataTime(o.data_xFormat)(e))!=null?t:new Date(e)}else O(e)&&!isNaN(e)&&(n=new Date(+e));return(!n||isNaN(+n))&&console&&console.error&&console.error(`Failed to parse x '${e}' to Date object`),n}function Yt(){var e,t;return((e=document)==null?void 0:e.hidden)===!1||((t=document)==null?void 0:t.visibilityState)==="visible"}function Gt(e,t){const{DocumentTouch:n,matchMedia:o,navigator:r}=window;let s=!1;if(t)if(r&&"maxTouchPoints"in r)s=r.maxTouchPoints>0;else if("ontouchmove"in window||n&&document instanceof n)s=!0;else if(o!=null&&o("(pointer:coarse)").matches)s=!0;else{const i=r.userAgent;s=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(i)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(i)}return e&&((o==null?void 0:o("any-hover:hover").matches)||(o==null?void 0:o("any-pointer:fine").matches))&&"mouse"||s&&"touch"||"mouse"}function Ue(e,t){t()===!1?requestAnimationFrame(()=>Ue(e,t)):e()}function Xe(e){const t=this.config;let n,o,r;const s=()=>{const a=o.shift();if(a&&n&&P(n)&&a in n)return n=n[a],s();if(!a)return n};Object.keys(t).forEach(a=>{n=e,o=a.split("_"),r=s(),U(r)&&(t[a]=r)}),this.api&&(this.state.orgConfig=e)}var Ye=Object.defineProperty,Ge=(e,t,n)=>t in e?Ye(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,T=(e,t,n)=>(Ge(e,typeof t!="symbol"?t+"":t,n),n);class G{constructor(t={}){T(this,"$$"),T(this,"options"),this.options=t}$beforeInit(){}$init(){}$afterInit(){}$redraw(){}$willDestroy(){Object.keys(this).forEach(t=>{this[t]=null,delete this[t]})}}T(G,"version","3.12.4");var Ve=h(996),ke=h(390),p={colorScale:"bb-colorscale",stanfordElements:"bb-stanford-elements",stanfordLine:"bb-stanford-line",stanfordLines:"bb-stanford-lines",stanfordRegion:"bb-stanford-region",stanfordRegions:"bb-stanford-regions"},ze=Object.defineProperty,He=(e,t,n)=>t in e?ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,V=(e,t,n)=>(He(e,typeof t!="symbol"?t+"":t,n),n);class Ke{constructor(t){V(this,"owner"),V(this,"colorScale"),this.owner=t}drawColorScale(){const{$$:t,config:n}=this.owner,o=t.data.targets[0],r=t.state.height-n.padding_bottom-n.padding_top,s=n.scale_width,a=5,i=qe(n.padding_bottom,r,a),d=(0,E.scaleSequential)(o.colors).domain([i[i.length-1],i[0]]);this.colorScale&&this.colorScale.remove(),this.colorScale=t.$el.svg.append("g").attr("width",50).attr("height",r).attr("class",p.colorScale),this.colorScale.append("g").attr("transform",`translate(0, ${n.padding_top})`).selectAll("bars").data(i).enter().append("rect").attr("y",(m,at)=>at*a).attr("x",0).attr("width",s).attr("height",a).attr("fill",m=>d(m));const b=(0,E.scaleSymlog)().domain([o.minEpochs,o.maxEpochs]).range([i[0]+n.padding_top+i[i.length-1]+a-1,i[0]+n.padding_top]),c=(0,Ve.axisRight)(b),l=n.scale_format;l==="pow10"?c.tickValues([1,10,100,1e3,1e4,1e5,1e6,1e7]):C(l)?c.tickFormat(l):c.tickFormat((0,ke.format)("d"));const g=this.colorScale.append("g").attr("class","legend axis").attr("transform",`translate(${s},0)`).call(c);l==="pow10"&&g.selectAll(".tick text").text(null).filter(m=>m/Math.pow(10,Math.ceil(Math.log(m)/Math.LN10-1e-12))===1).text(10).append("tspan").attr("dy","-.7em").text(m=>Math.round(Math.log(m)/Math.LN10)),this.colorScale.attr("transform",`translate(${t.state.current.width-this.xForColorScale()}, 0)`)}xForColorScale(){return this.owner.config.padding_right+this.colorScale.node().getBBox().width}getColorScalePadding(){return this.xForColorScale()+this.owner.config.padding_left+20}}function We(e,t){const n=e.x,o=e.value;let r=!1;for(let s=0,a=t.length-1;s<t.length;a=s++){const i=t[s].x,d=t[s].y,b=t[a].x,c=t[a].y;d>o!=c>o&&n<(b-i)*(o-d)/(c-d)+i&&(r=!r)}return r}function Ze(e,t){return e.epochs<t.epochs?-1:e.epochs>t.epochs?1:0}function Je(e){let t=0,n,o;for(let r=0,s=e.length,a=s-1;r<s;a=r,r++)n=e[r],o=e[a],t+=n.x*o.y,t-=n.y*o.x;return t/=2,t}function w(e){const t=Je(e);let n=0,o=0,r;for(let s=0,a=e.length,i=a-1;s<a;i=s,s++){const d=e[s],b=e[i];r=d.x*b.y-b.x*d.y,n+=(d.x+b.x)*r,o+=(d.y+b.y)*r}return r=t*6,{x:n/r,y:o/r}}var Qe=Object.defineProperty,et=(e,t,n)=>t in e?Qe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t,n)=>(et(e,typeof t!="symbol"?t+"":t,n),n);class nt{constructor(t){tt(this,"owner"),this.owner=t;const n=t.$$.$el.main.select(".bb-chart").append("g").attr("class",p.stanfordElements);n.append("g").attr("class",p.stanfordLines),n.append("g").attr("class",p.stanfordRegions)}updateStanfordLines(t){const{$$:n}=this.owner,{config:o,$el:{main:r}}=n,s=o.axis_rotated,a=this.xvCustom.bind(n),i=this.yvCustom.bind(n),d=r.select(`.${p.stanfordLines}`).style("shape-rendering","geometricprecision").selectAll(`.${p.stanfordLine}`).data(this.owner.config.lines);d.exit().transition().duration(t).style("opacity","0").remove();const b=d.enter().append("g");b.append("line").style("opacity","0"),b.merge(d).attr("class",c=>p.stanfordLine+(c.class?` ${c.class}`:"")).select("line").transition().duration(t).attr("x1",c=>s?i(c,"y1"):a(c,"x1")).attr("x2",c=>s?i(c,"y2"):a(c,"x2")).attr("y1",c=>s?a(c,"x1"):i(c,"y1")).attr("y2",c=>s?a(c,"x2"):i(c,"y2")).transition().style("opacity",null)}updateStanfordRegions(t){const{$$:n}=this.owner,{config:o,$el:{main:r}}=n,s=o.axis_rotated,a=this.xvCustom.bind(n),i=this.yvCustom.bind(n),d=this.owner.countEpochsInRegion.bind(n);let b=r.select(`.${p.stanfordRegions}`).selectAll(`.${p.stanfordRegion}`).data(this.owner.config.regions);b.exit().transition().duration(t).style("opacity","0").remove();const c=b.enter().append("g");c.append("polygon").style("opacity","0"),c.append("text").attr("transform",s?"rotate(-90)":"").style("opacity","0"),b=c.merge(b),b.attr("class",l=>p.stanfordRegion+(l.class?` ${l.class}`:"")).select("polygon").transition().duration(t).attr("points",l=>l.points.map(g=>[s?i(g,"y"):a(g,"x"),s?a(g,"x"):i(g,"y")].join(",")).join(" ")).transition().style("opacity",l=>String(l.opacity?l.opacity:.2)),b.select("text").transition().duration(t).attr("x",l=>s?i(w(l.points),"y"):a(w(l.points),"x")).attr("y",l=>s?a(w(l.points),"x"):i(w(l.points),"y")).text(l=>{if(l.text){const{value:g,percentage:m}=d(l.points);return l.text(g,m)}return""}).attr("text-anchor","middle").attr("dominant-baseline","middle").transition().style("opacity",null)}updateStanfordElements(t=0){this.updateStanfordLines(t),this.updateStanfordRegions(t)}xvCustom(t,n){const o=this,{axis:r,config:s}=o;let a=n?t[n]:o.getBaseValue(t);return r.isTimeSeries()?a=Be.call(o,a):r.isCategorized()&&x(a)&&(a=s.axis_x_categories.indexOf(t.value)),Math.ceil(o.scale.x(a))}yvCustom(t,n){const o=this,r=t.axis&&t.axis==="y2"?o.scale.y2:o.scale.y,s=n?t[n]:o.getBaseValue(t);return Math.ceil(r(s))}}class k{constructor(){return{colors:void 0,epochs:[],lines:[],scale_min:void 0,scale_max:void 0,scale_width:20,scale_format:void 0,padding_top:0,padding_right:0,padding_bottom:0,padding_left:0,regions:[]}}}var ot=Object.defineProperty,rt=(e,t,n)=>t in e?ot(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,L=(e,t,n)=>(rt(e,typeof t!="symbol"?t+"":t,n),n);class st extends G{constructor(t){return super(t),L(this,"config"),L(this,"colorScale"),L(this,"elements"),this.config=new k,this}$beforeInit(){const{$$:t}=this;t.config.data_xSort=!1,t.isMultipleX=()=>!0,t.showGridFocus=()=>{},t.labelishData=o=>o.values,t.opacityForCircle=()=>1;const n=t.getCurrentPadding.bind(t);t.getCurrentPadding=()=>{const o=n();return o.right+=this.colorScale?this.colorScale.getColorScalePadding():0,o}}$init(){const{$$:t}=this;Xe.call(this,this.options),t.color=this.getStanfordPointColor.bind(t),this.colorScale=new Ke(this),this.elements=new nt(this),this.convertData(),this.initStanfordData(),this.setStanfordTooltip(),this.colorScale.drawColorScale(),t.right+=this.colorScale?this.colorScale.getColorScalePadding():0,this.$redraw()}$redraw(t){var n,o;(n=this.colorScale)==null||n.drawColorScale(),(o=this.elements)==null||o.updateStanfordElements(t)}getOptions(){return new k}convertData(){const t=this.$$.data.targets,n=this.options.epochs;t.forEach(o=>{o.values.forEach((r,s)=>{r.epochs=n[s]}),o.minEpochs=void 0,o.maxEpochs=void 0,o.colors=void 0,o.colorscale=void 0})}initStanfordData(){const{config:t}=this,n=this.$$.data.targets[0];n.values.sort(Ze);const o=n.values.map(r=>r.epochs);n.minEpochs=isNaN(t.scale_min)?Math.min(...o):t.scale_min,n.maxEpochs=isNaN(t.scale_max)?Math.max(...o):t.scale_max,n.colors=C(t.colors)?t.colors:(0,J.interpolateHslLong)((0,I.hsl)(250,1,.5),(0,I.hsl)(0,1,.5)),n.colorscale=(0,E.scaleSequentialLog)(n.colors).domain([n.minEpochs,n.maxEpochs])}getStanfordPointColor(t){return this.data.targets[0].colorscale(t.epochs)}setStanfordTooltip(){const{config:t}=this.$$;X(t.tooltip_contents)&&(t.tooltip_contents=function(n,o,r,s){const{data_x:a}=t;let i=`<table class="${S.tooltip}"><tbody>`;return n.forEach(d=>{const{id:b="",value:c=0,epochs:l=0,x:g=""}=d;i+=`<tr> + <th>${a||""}</th> + <th class="value">${o(g)}</th> + </tr> + <tr> + <th>${d.id}</th> + <th class="value">${r(c)}</th> + </tr> + <tr class="${S.tooltipName}-${b}"> + <td class="name"><span style="background-color:${s(d)}"></span>Epochs</td> + <td class="value">${r(l)}</td> + </tr>`}),`${i}</tbody></table>`})}countEpochsInRegion(t){const o=this.data.targets[0],r=o.values.reduce((a,i)=>a+Number(i.epochs),0),s=o.values.reduce((a,i)=>We(i,t)?a+Number(i.epochs):a,0);return{value:s,percentage:s!==0?+(s/r*100).toFixed(1):0}}}return y=y.default,y}()}); diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-tableview.d.ts b/release/3.12.4/dist/plugin/billboardjs-plugin-tableview.d.ts new file mode 100644 index 000000000..7724ef4be --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-tableview.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +import PluginClass from "../../types/plugin/tableview"; + +export default PluginClass; diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-tableview.js b/release/3.12.4/dist/plugin/billboardjs-plugin-tableview.js new file mode 100644 index 000000000..3f13dd894 --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-tableview.js @@ -0,0 +1,862 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("d3-brush"), require("d3-selection")); + else if(typeof define === 'function' && define.amd) + define("bb", ["d3-brush", "d3-selection"], factory); + else if(typeof exports === 'object') + exports["bb"] = factory(require("d3-brush"), require("d3-selection")); + else + root["bb"] = root["bb"] || {}, root["bb"]["plugin"] = root["bb"]["plugin"] || {}, root["bb"]["plugin"]["tableview"] = factory(root["d3"], root["d3"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE__3__, __WEBPACK_EXTERNAL_MODULE__1__) { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__1__; + +/***/ }), +/* 2 */, +/* 3 */ +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__3__; + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ TableView; } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-brush","commonjs2":"d3-brush","amd":"d3-brush","root":"d3"} +var external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_ = __webpack_require__(3); +// EXTERNAL MODULE: external {"commonjs":"d3-selection","commonjs2":"d3-selection","amd":"d3-selection","root":"d3"} +var external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_ = __webpack_require__(1); +;// CONCATENATED MODULE: ./src/module/browser.ts +function getGlobal() { + return typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && globalThis || typeof global === "object" && global !== null && global.Object === Object && global || typeof self === "object" && self !== null && self.Object === Object && self || Function("return this")(); +} +function getFallback(w) { + const hasRAF = typeof (w == null ? void 0 : w.requestAnimationFrame) === "function" && typeof (w == null ? void 0 : w.cancelAnimationFrame) === "function"; + const hasRIC = typeof (w == null ? void 0 : w.requestIdleCallback) === "function" && typeof (w == null ? void 0 : w.cancelIdleCallback) === "function"; + const request = (cb) => setTimeout(cb, 1); + const cancel = (id) => clearTimeout(id); + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +const win = getGlobal(); +const doc = win == null ? void 0 : win.document; +const [ + requestAnimationFrame, + cancelAnimationFrame, + requestIdleCallback, + cancelIdleCallback +] = getFallback(win); + + +;// CONCATENATED MODULE: ./src/module/util.ts +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + + +const isValue = (v) => v || v === 0; +const isFunction = (v) => typeof v === "function"; +const isString = (v) => typeof v === "string"; +const isNumber = (v) => typeof v === "number"; +const isUndefined = (v) => typeof v === "undefined"; +const isDefined = (v) => typeof v !== "undefined"; +const isBoolean = (v) => typeof v === "boolean"; +const ceil10 = (v) => Math.ceil(v / 10) * 10; +const asHalfPixel = (n) => Math.ceil(n) + 0.5; +const diffDomain = (d) => d[1] - d[0]; +const isObjectType = (v) => typeof v === "object"; +const isEmpty = (o) => isUndefined(o) || o === null || isString(o) && o.length === 0 || isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0 || isNumber(o) && isNaN(o); +const notEmpty = (o) => !isEmpty(o); +const isArray = (arr) => Array.isArray(arr); +const isObject = (obj) => obj && !(obj == null ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +function hasValue(dict, value) { + let found = false; + Object.keys(dict).forEach((key) => dict[key] === value && (found = true)); + return found; +} +function callFn(fn, thisArg, ...args) { + const isFn = isFunction(fn); + isFn && fn.call(thisArg, ...args); + return isFn; +} +function endall(transition, cb) { + let n = 0; + const end = function(...args) { + !--n && cb.apply(this, ...args); + }; + if ("duration" in transition) { + transition.each(() => ++n).on("end", end); + } else { + ++n; + transition.call(end); + } +} +function sanitize(str) { + return isString(str) ? str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : str; +} +function setTextValue(node, text, dy = [-1, 1], toMiddle = false) { + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } else { + const diff = [node.text(), text].map((v) => v.replace(/[\s\n]/g, "")); + if (diff[0] !== diff[1]) { + const multiline = text.split("\n"); + const len = toMiddle ? multiline.length - 1 : 1; + node.html(""); + multiline.forEach((v, i) => { + node.append("tspan").attr("x", 0).attr("dy", `${i === 0 ? dy[0] * len : dy[1]}em`).text(v); + }); + } + } +} +function getRectSegList(path) { + const { x, y, width, height } = path.getBBox(); + return [ + { x, y: y + height }, + // seg0 + { x, y }, + // seg1 + { x: x + width, y }, + // seg2 + { x: x + width, y: y + height } + // seg3 + ]; +} +function getPathBox(path) { + const { width, height } = path.getBoundingClientRect(); + const items = getRectSegList(path); + const x = items[0].x; + const y = Math.min(items[0].y, items[1].y); + return { + x, + y, + width, + height + }; +} +function getPointer(event, element) { + var _a; + const touches = event && ((_a = event.touches || event.sourceEvent && event.sourceEvent.touches) == null ? void 0 : _a[0]); + let pointer = [0, 0]; + try { + pointer = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.pointer)(touches || event, element); + } catch (e) { + } + return pointer.map((v) => isNaN(v) ? 0 : v); +} +function getBrushSelection(ctx) { + const { event, $el } = ctx; + const main = $el.subchart.main || $el.main; + let selection; + if (event && event.type === "brush") { + selection = event.selection; + } else if (main && (selection = main.select(".bb-brush").node())) { + selection = (0,external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_.brushSelection)(selection); + } + return selection; +} +function getBoundingRect(node) { + const needEvaluate = !("rect" in node) || "rect" in node && node.hasAttribute("width") && node.rect.width !== +node.getAttribute("width"); + return needEvaluate ? node.rect = node.getBoundingClientRect() : node.rect; +} +function getRandom(asStr = true, min = 0, max = 1e4) { + const crpt = win.crypto || win.msCrypto; + const rand = crpt ? min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + const mid = Math.floor((start + end) / 2); + let { x, w = 0 } = arr[mid]; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? findIndex(arr, v, start, mid - 1, isRotated) : findIndex(arr, v, mid + 1, end, isRotated); +} +function brushEmpty(ctx) { + const selection = getBrushSelection(ctx); + if (selection) { + return selection[0] === selection[1]; + } + return true; +} +function deepClone(...objectN) { + const clone = (v) => { + if (isObject(v) && v.constructor) { + const r = new v.constructor(); + for (const k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map((v) => clone(v)).reduce((a, c) => __spreadValues(__spreadValues({}, a), c)); +} +function extend(target = {}, source) { + if (isArray(source)) { + source.forEach((v) => extend(target, v)); + } + for (const p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); +function camelize(str, separator = "-") { + return str.split(separator).map((v, i) => i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()).join(""); +} +const toArray = (v) => [].slice.call(v); +function addCssRules(style, selector, prop) { + const { rootSelector = "", sheet } = style; + const getSelector = (s) => s.replace(/\s?(bb-)/g, ".$1").replace(/\.+/g, "."); + const rule = `${rootSelector} ${getSelector(selector)} {${prop.join(";")}}`; + return sheet[sheet.insertRule ? "insertRule" : "addRule"]( + rule, + sheet.cssRules.length + ); +} +function getCssRules(styleSheets) { + let rules = []; + styleSheets.forEach((sheet) => { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } catch (e) { + (_a = win.console) == null ? void 0 : _a.warn(`Error while reading rules from ${sheet.href}: ${e.toString()}`); + } + }); + return rules; +} +function getScrollPosition(node) { + var _a, _b, _c, _d; + return { + x: ((_b = (_a = win.pageXOffset) != null ? _a : win.scrollX) != null ? _b : 0) + node.scrollLeft, + y: ((_d = (_c = win.pageYOffset) != null ? _c : win.scrollY) != null ? _d : 0) + node.scrollTop + }; +} +function getTranslation(node) { + const transform = node ? node.transform : null; + const baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? baseVal.getItem(0).matrix : { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +function getUnique(data) { + const isDate = data[0] instanceof Date; + const d = (isDate ? data.map(Number) : data).filter((v, i, self) => self.indexOf(v) === i); + return isDate ? d.map((v) => new Date(v)) : d; +} +function mergeArray(arr) { + return arr && arr.length ? arr.reduce((p, c) => p.concat(c)) : []; +} +function mergeObj(target, ...objectN) { + if (!objectN.length || objectN.length === 1 && !objectN[0]) { + return target; + } + const source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach((key) => { + const value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj(target, ...objectN); +} +function sortValue(data, isAsc = true) { + let fn; + if (data[0] instanceof Date) { + fn = isAsc ? (a, b) => a - b : (a, b) => b - a; + } else { + if (isAsc && !data.every(isNaN)) { + fn = (a, b) => a - b; + } else if (!isAsc) { + fn = (a, b) => a > b && -1 || a < b && 1 || a === b && 0; + } + } + return data.concat().sort(fn); +} +function getMinMax(type, data) { + let res = data.filter((v) => notEmpty(v)); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type](...res); + } else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } else { + res = void 0; + } + return res; +} +const getRange = (start, end, step = 1) => { + const res = []; + const n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (let i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +const emulateEvent = { + mouse: (() => { + const getParams = () => ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); + try { + new MouseEvent("t"); + return (el, eventType, params = getParams()) => { + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } catch (e) { + return (el, eventType, params = getParams()) => { + const mouseEvent = doc.createEvent("MouseEvent"); + mouseEvent.initMouseEvent( + eventType, + params.bubbles, + params.cancelable, + win, + 0, + // the event's mouse click count + params.screenX, + params.screenY, + params.clientX, + params.clientY, + false, + false, + false, + false, + 0, + null + ); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: (el, eventType, params) => { + const touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +function tplProcess(tpl, data) { + let res = tpl; + for (const x in data) { + res = res.replace(new RegExp(`{=${x}}`, "g"), data[x]); + } + return res; +} +function parseDate(date) { + var _a; + let parsedDate; + if (date instanceof Date) { + parsedDate = date; + } else if (isString(date)) { + const { config, format } = this; + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) != null ? _a : new Date(date); + } else if (isNumber(date) && !isNaN(date)) { + parsedDate = /* @__PURE__ */ new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && console.error(`Failed to parse x '${date}' to Date object`); + } + return parsedDate; +} +function isTabVisible() { + var _a, _b; + return ((_a = doc) == null ? void 0 : _a.hidden) === false || ((_b = doc) == null ? void 0 : _b.visibilityState) === "visible"; +} +function convertInputType(mouse, touch) { + const { DocumentTouch, matchMedia, navigator } = win; + let hasTouch = false; + if (touch) { + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + } else if ("ontouchmove" in win || DocumentTouch && doc instanceof DocumentTouch) { + hasTouch = true; + } else { + if (matchMedia == null ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } else { + const UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + const hasMouse = mouse && ((matchMedia == null ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia == null ? void 0 : matchMedia("any-pointer:fine").matches)); + return hasMouse && "mouse" || hasTouch && "touch" || "mouse"; +} +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(() => runUntil(fn, conditionFn)); + } else { + fn(); + } +} + +;// CONCATENATED MODULE: ./src/config/config.ts + +function loadConfig(config) { + const thisConfig = this.config; + let target; + let keys; + let read; + const find = () => { + const key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } else if (!key) { + return target; + } + return void 0; + }; + Object.keys(thisConfig).forEach((key) => { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + if (this.api) { + this.state.orgConfig = config; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/Plugin.ts +var Plugin_defProp = Object.defineProperty; +var Plugin_defNormalProp = (obj, key, value) => key in obj ? Plugin_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + Plugin_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class Plugin { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + constructor(options = {}) { + __publicField(this, "$$"); + __publicField(this, "options"); + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + $beforeInit() { + } + /** + * Lifecycle hook for 'init' phase. + * @private + */ + $init() { + } + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + $afterInit() { + } + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + $redraw() { + } + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + $willDestroy() { + Object.keys(this).forEach((key) => { + this[key] = null; + delete this[key]; + }); + } +} +__publicField(Plugin, "version", "3.12.4"); + +;// CONCATENATED MODULE: ./src/Plugin/tableview/const.ts + +const defaultStyle = { + id: "__tableview-style__", + class: "bb-tableview", + rule: `.bb-tableview { + border-collapse:collapse; + border-spacing:0; + background:#fff; + min-width:100%; + margin-top:10px; + font-family:sans-serif; + font-size:.9em; + } + .bb-tableview tr:hover { + background:#eef7ff; + } + .bb-tableview thead tr { + background:#f8f8f8; + } + .bb-tableview caption,.bb-tableview td,.bb-tableview th { + text-align: center; + border:1px solid silver; + padding:.5em; + } + .bb-tableview caption { + font-size:1.1em; + font-weight:700; + margin-bottom: -1px; + }` +}; +const tpl = { + body: `<caption>{=title}</caption> + <thead><tr>{=thead}</tr></thead> + <tbody>{=tbody}</tbody>`, + thead: `<th scope="col">{=title}</th>`, + tbodyHeader: `<th scope="row">{=value}</th>`, + tbody: `<td>{=value}</td>` +}; + +;// CONCATENATED MODULE: ./src/Plugin/tableview/Options.ts +class Options { + constructor() { + return { + /** + * Set tableview holder selector. + * - **NOTE:** If not set, will append new holder element dynamically right after chart element. + * @name selector + * @memberof plugin-tableview + * @type {string} + * @default undefined + * @example + * selector: "#table-holder" + */ + selector: void 0, + /** + * Set category title text + * @name categoryTitle + * @memberof plugin-tableview + * @type {string} + * @default "Category" + * @example + * categoryTitle: "#table-holder" + */ + categoryTitle: "Category", + /** + * Set category text format function. + * @name categoryFormat + * @memberof plugin-tableview + * @type {Function} + * @returns {string} + * @default function(v) { // will return formatted value according x Axis type }} + * @example + * categoryFormat: "#table-holder" + */ + categoryFormat: function(v) { + let category = v; + if (this.$$.axis.isCategorized()) { + category = this.$$.categoryName(v); + } else if (this.$$.axis.isTimeSeries()) { + category = v.toLocaleDateString(); + } + return category; + }, + /** + * Set tableview holder class name. + * @name class + * @memberof plugin-tableview + * @type {string} + * @default undefined + * @example + * class: "table-class-name" + */ + class: void 0, + /** + * Set to apply default style(`.bb-tableview`) to tableview element. + * @name style + * @memberof plugin-tableview + * @type {boolean} + * @default true + * @example + * style: false + */ + style: true, + /** + * Set tableview title text. + * - **NOTE:** If set [title.text](https://naver.github.io/billboard.js/release/latest/doc/Options.html#.title), will be used when this option value is empty. + * @name title + * @memberof plugin-tableview + * @type {string} + * @default undefined + * @example + * title: "Table Title Text" + */ + title: void 0, + /** + * Update tableview from data visibility update(ex. legend toggle). + * @name updateOnToggle + * @memberof plugin-tableview + * @type {boolean} + * @default true + * @example + * legendToggleUpdate: false + */ + updateOnToggle: true, + /** + * Set how null value to be shown. + * @name nullString + * @memberof plugin-tableview + * @type {string} + * @default "-" + * @example + * nullString: "N/A" + */ + nullString: "-" + }; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/tableview/index.ts +var tableview_defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var tableview_getOwnPropSymbols = Object.getOwnPropertySymbols; +var tableview_hasOwnProp = Object.prototype.hasOwnProperty; +var tableview_propIsEnum = Object.prototype.propertyIsEnumerable; +var tableview_defNormalProp = (obj, key, value) => key in obj ? tableview_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var tableview_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (tableview_hasOwnProp.call(b, prop)) + tableview_defNormalProp(a, prop, b[prop]); + if (tableview_getOwnPropSymbols) + for (var prop of tableview_getOwnPropSymbols(b)) { + if (tableview_propIsEnum.call(b, prop)) + tableview_defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var tableview_publicField = (obj, key, value) => { + tableview_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + +class TableView extends Plugin { + constructor(options) { + super(options); + tableview_publicField(this, "config"); + tableview_publicField(this, "element"); + this.config = new Options(); + return this; + } + $beforeInit() { + loadConfig.call(this, this.options); + } + $init() { + const { class: className, selector, style } = this.config; + let element = document.querySelector( + selector || `.${className || defaultStyle.class}` + ); + if (!element) { + const chart = this.$$.$el.chart.node(); + element = document.createElement("table"); + chart.parentNode.insertBefore(element, chart.nextSibling); + } + if (element.tagName !== "TABLE") { + const table = document.createElement("table"); + element.appendChild(table); + element = table; + } + if (style && !document.getElementById(defaultStyle.id)) { + const s = document.createElement("style"); + s.id = defaultStyle.id; + s.innerHTML = defaultStyle.rule; + (document.head || document.getElementsByTagName("head")[0]).appendChild(s); + } + element.classList.add(...[style && defaultStyle.class, className].filter(Boolean)); + this.element = element; + } + /** + * Generate table + * @private + */ + generateTable() { + const { $$, config, element } = this; + const dataToShow = $$.filterTargetsToShow($$.data.targets); + let thead = tplProcess(tpl.thead, { + title: dataToShow.length ? this.config.categoryTitle : "" + }); + let tbody = ""; + const rows = []; + dataToShow.forEach((v) => { + thead += tplProcess(tpl.thead, { title: v.id }); + v.values.forEach((d, i) => { + if (!rows[i]) { + rows[i] = [d.x]; + } + rows[i].push(d.value); + }); + }); + rows.forEach((v) => { + tbody += `<tr>${v.map( + (d, i) => tplProcess(i ? tpl.tbody : tpl.tbodyHeader, { + value: i === 0 ? config.categoryFormat.bind(this)(d) : isNumber(d) ? d.toLocaleString() : config.nullString + }) + ).join("")}</tr>`; + }); + const rx = /(<\/?(script|img)[^>]*>|<[^>]+><\/[^>]+>)/ig; + const r = tplProcess(tpl.body, __spreadProps(tableview_spreadValues({}, config), { + title: config.title || $$.config.title_text || "", + thead, + tbody + })).replace(rx, ""); + element.innerHTML = r; + } + $redraw() { + const { state } = this.$$; + const doNotUpdate = state.resizing || !this.config.updateOnToggle && state.toggling; + !doNotUpdate && this.generateTable(); + } + $willDestroy() { + var _a, _b; + (_a = this.element.parentNode) == null ? void 0 : _a.removeChild(this.element); + if (this.$$.charts.length === 1) { + const s = document.getElementById(defaultStyle.id); + (_b = s == null ? void 0 : s.parentNode) == null ? void 0 : _b.removeChild(s); + } + } +} + +__webpack_exports__ = __webpack_exports__["default"]; +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-tableview.min.js b/release/3.12.4/dist/plugin/billboardjs-plugin-tableview.min.js new file mode 100644 index 000000000..9110cfc2c --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-tableview.min.js @@ -0,0 +1,39 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */(function(c,u){typeof exports=="object"&&typeof module=="object"?module.exports=u(require("d3-brush"),require("d3-selection")):typeof define=="function"&&define.amd?define("bb",["d3-brush","d3-selection"],u):typeof exports=="object"?exports.bb=u(require("d3-brush"),require("d3-selection")):(c.bb=c.bb||{},c.bb.plugin=c.bb.plugin||{},c.bb.plugin.tableview=u(c.d3,c.d3))})(this,function(j,c){return function(){"use strict";var u={853:function(e){e.exports=j},747:function(e){e.exports=c}},C={};function a(e){var n=C[e];if(n!==void 0)return n.exports;var t=C[e]={exports:{}};return u[e](t,t.exports,a),t.exports}(function(){a.d=function(e,n){for(var t in n)a.o(n,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})}})(),function(){a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}();var p={};a.d(p,{default:function(){return fe}});var be=a(853),he=a(747);function R(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function q(e){const n=typeof(e==null?void 0:e.requestAnimationFrame)=="function"&&typeof(e==null?void 0:e.cancelAnimationFrame)=="function",t=typeof(e==null?void 0:e.requestIdleCallback)=="function"&&typeof(e==null?void 0:e.cancelIdleCallback)=="function",o=r=>setTimeout(r,1),i=r=>clearTimeout(r);return[n?e.requestAnimationFrame:o,n?e.cancelAnimationFrame:i,t?e.requestIdleCallback:o,t?e.cancelIdleCallback:i]}const m=R(),V=m==null?void 0:m.document,[pe,me,ge,_e]=q(m);var L=Object.defineProperty,S=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,M=(e,n,t)=>n in e?L(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,D=(e,n)=>{for(var t in n||(n={}))U.call(n,t)&&M(e,t,n[t]);if(S)for(var t of S(n))z.call(n,t)&&M(e,t,n[t]);return e};const ye=e=>e||e===0,X=e=>typeof e=="function",g=e=>typeof e=="string",_=e=>typeof e=="number",Y=e=>typeof e=="undefined",A=e=>typeof e!="undefined",ve=e=>typeof e=="boolean",we=e=>Math.ceil(e/10)*10,Oe=e=>Math.ceil(e)+.5,xe=e=>e[1]-e[0],O=e=>typeof e=="object",H=e=>Y(e)||e===null||g(e)&&e.length===0||O(e)&&!(e instanceof Date)&&Object.keys(e).length===0||_(e)&&isNaN(e),k=e=>!H(e),x=e=>Array.isArray(e),y=e=>e&&!(e!=null&&e.nodeType)&&O(e)&&!x(e);function Ee(e,n,t){return A(e[n])?e[n]:t}function Pe(e,n){let t=!1;return Object.keys(e).forEach(o=>e[o]===n&&(t=!0)),t}function $e(e,n,...t){const o=X(e);return o&&e.call(n,...t),o}function Te(e,n){let t=0;const o=function(...i){!--t&&n.apply(this,...i)};"duration"in e?e.each(()=>++t).on("end",o):(++t,e.call(o))}function je(e){return g(e)?e.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):e}function Ce(e,n,t=[-1,1],o=!1){if(!(!e||!g(n)))if(n.indexOf(` +`)===-1)e.text(n);else{const i=[e.text(),n].map(r=>r.replace(/[\s\n]/g,""));if(i[0]!==i[1]){const r=n.split(` +`),l=o?r.length-1:1;e.html(""),r.forEach((s,T)=>{e.append("tspan").attr("x",0).attr("dy",`${T===0?t[0]*l:t[1]}em`).text(s)})}}}function G(e){const{x:n,y:t,width:o,height:i}=e.getBBox();return[{x:n,y:t+i},{x:n,y:t},{x:n+o,y:t},{x:n+o,y:t+i}]}function Se(e){const{width:n,height:t}=e.getBoundingClientRect(),o=G(e),i=o[0].x,r=Math.min(o[0].y,o[1].y);return{x:i,y:r,width:n,height:t}}function Me(e,n){var t;const o=e&&((t=e.touches||e.sourceEvent&&e.sourceEvent.touches)==null?void 0:t[0]);let i=[0,0];try{i=d3Pointer(o||e,n)}catch(r){}return i.map(r=>isNaN(r)?0:r)}function K(e){const{event:n,$el:t}=e,o=t.subchart.main||t.main;let i;return n&&n.type==="brush"?i=n.selection:o&&(i=o.select(".bb-brush").node())&&(i=d3BrushSelection(i)),i}function De(e){return!("rect"in e)||"rect"in e&&e.hasAttribute("width")&&e.rect.width!==+e.getAttribute("width")?e.rect=e.getBoundingClientRect():e.rect}function Ae(e=!0,n=0,t=1e4){const o=window.crypto||window.msCrypto,i=o?n+o.getRandomValues(new Uint32Array(1))[0]%(t-n+1):Math.floor(Math.random()*(t-n)+n);return e?String(i):i}function N(e,n,t,o,i){if(t>o)return-1;const r=Math.floor((t+o)/2);let{x:l,w:s=0}=e[r];return i&&(l=e[r].y,s=e[r].h),n>=l&&n<=l+s?r:n<l?N(e,n,t,r-1,i):N(e,n,r+1,o,i)}function Ne(e){const n=K(e);return n?n[0]===n[1]:!0}function Ie(...e){const n=t=>{if(y(t)&&t.constructor){const o=new t.constructor;for(const i in t)o[i]=n(t[i]);return o}return t};return e.map(t=>n(t)).reduce((t,o)=>D(D({},t),o))}function W(e={},n){x(n)&&n.forEach(t=>W(e,t));for(const t in n)/^\d+$/.test(t)||t in e||(e[t]=n[t]);return e}const Fe=e=>e.charAt(0).toUpperCase()+e.slice(1);function Be(e,n="-"){return e.split(n).map((t,o)=>o?t.charAt(0).toUpperCase()+t.slice(1).toLowerCase():t.toLowerCase()).join("")}const J=e=>[].slice.call(e);function Re(e,n,t){const{rootSelector:o="",sheet:i}=e,l=`${o} ${(s=>s.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(n)} {${t.join(";")}}`;return i[i.insertRule?"insertRule":"addRule"](l,i.cssRules.length)}function qe(e){let n=[];return e.forEach(t=>{var o;try{t.cssRules&&t.cssRules.length&&(n=n.concat(J(t.cssRules)))}catch(i){(o=window.console)==null||o.warn(`Error while reading rules from ${t.href}: ${i.toString()}`)}}),n}function Ve(e){var n,t,o,i;return{x:((t=(n=window.pageXOffset)!=null?n:window.scrollX)!=null?t:0)+e.scrollLeft,y:((i=(o=window.pageYOffset)!=null?o:window.scrollY)!=null?i:0)+e.scrollTop}}function Le(e){const n=e?e.transform:null,t=n&&n.baseVal;return t&&t.numberOfItems?t.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function Ue(e){const n=e[0]instanceof Date,t=(n?e.map(Number):e).filter((o,i,r)=>r.indexOf(o)===i);return n?t.map(o=>new Date(o)):t}function ze(e){return e&&e.length?e.reduce((n,t)=>n.concat(t)):[]}function E(e,...n){if(!n.length||n.length===1&&!n[0])return e;const t=n.shift();return y(e)&&y(t)&&Object.keys(t).forEach(o=>{const i=t[o];y(i)?(!e[o]&&(e[o]={}),e[o]=E(e[o],i)):e[o]=x(i)?i.concat():i}),E(e,...n)}function Q(e,n=!0){let t;return e[0]instanceof Date?t=n?(o,i)=>o-i:(o,i)=>i-o:n&&!e.every(isNaN)?t=(o,i)=>o-i:n||(t=(o,i)=>o>i&&-1||o<i&&1||o===i&&0),e.concat().sort(t)}function Xe(e,n){let t=n.filter(o=>k(o));return t.length?_(t[0])?t=Math[e](...t):t[0]instanceof Date&&(t=Q(t,e==="min")[0]):t=void 0,t}const Ye=(e,n,t=1)=>{const o=[],i=Math.max(0,Math.ceil((n-e)/t))|0;for(let r=e;r<i;r++)o.push(e+r*t);return o},He={mouse:(()=>{const e=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(n,t,o=e())=>{n.dispatchEvent(new MouseEvent(t,o))}}catch(n){return(t,o,i=e())=>{const r=V.createEvent("MouseEvent");r.initMouseEvent(o,i.bubbles,i.cancelable,m,0,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),t.dispatchEvent(r)}}})(),touch:(e,n,t)=>{const o=new Touch(E({identifier:Date.now(),target:e,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},t));e.dispatchEvent(new TouchEvent(n,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[o],targetTouches:[],changedTouches:[o]}))}};function v(e,n){let t=e;for(const o in n)t=t.replace(new RegExp(`{=${o}}`,"g"),n[o]);return t}function ke(e){var n;let t;if(e instanceof Date)t=e;else if(g(e)){const{config:o,format:i}=this;t=(n=i.dataTime(o.data_xFormat)(e))!=null?n:new Date(e)}else _(e)&&!isNaN(e)&&(t=new Date(+e));return(!t||isNaN(+t))&&console&&console.error&&console.error(`Failed to parse x '${e}' to Date object`),t}function Ge(){var e,n;return((e=document)==null?void 0:e.hidden)===!1||((n=document)==null?void 0:n.visibilityState)==="visible"}function Ke(e,n){const{DocumentTouch:t,matchMedia:o,navigator:i}=window;let r=!1;if(n)if(i&&"maxTouchPoints"in i)r=i.maxTouchPoints>0;else if("ontouchmove"in window||t&&document instanceof t)r=!0;else if(o!=null&&o("(pointer:coarse)").matches)r=!0;else{const s=i.userAgent;r=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(s)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(s)}return e&&((o==null?void 0:o("any-hover:hover").matches)||(o==null?void 0:o("any-pointer:fine").matches))&&"mouse"||r&&"touch"||"mouse"}function Z(e,n){n()===!1?requestAnimationFrame(()=>Z(e,n)):e()}function ee(e){const n=this.config;let t,o,i;const r=()=>{const l=o.shift();if(l&&t&&O(t)&&l in t)return t=t[l],r();if(!l)return t};Object.keys(n).forEach(l=>{t=e,o=l.split("_"),i=r(),A(i)&&(n[l]=i)}),this.api&&(this.state.orgConfig=e)}var te=Object.defineProperty,ne=(e,n,t)=>n in e?te(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,P=(e,n,t)=>(ne(e,typeof n!="symbol"?n+"":n,t),t);class I{constructor(n={}){P(this,"$$"),P(this,"options"),this.options=n}$beforeInit(){}$init(){}$afterInit(){}$redraw(){}$willDestroy(){Object.keys(this).forEach(n=>{this[n]=null,delete this[n]})}}P(I,"version","3.12.4");const f={id:"__tableview-style__",class:"bb-tableview",rule:`.bb-tableview { + border-collapse:collapse; + border-spacing:0; + background:#fff; + min-width:100%; + margin-top:10px; + font-family:sans-serif; + font-size:.9em; + } + .bb-tableview tr:hover { + background:#eef7ff; + } + .bb-tableview thead tr { + background:#f8f8f8; + } + .bb-tableview caption,.bb-tableview td,.bb-tableview th { + text-align: center; + border:1px solid silver; + padding:.5em; + } + .bb-tableview caption { + font-size:1.1em; + font-weight:700; + margin-bottom: -1px; + }`},h={body:`<caption>{=title}</caption> + <thead><tr>{=thead}</tr></thead> + <tbody>{=tbody}</tbody>`,thead:'<th scope="col">{=title}</th>',tbodyHeader:'<th scope="row">{=value}</th>',tbody:"<td>{=value}</td>"};class oe{constructor(){return{selector:void 0,categoryTitle:"Category",categoryFormat:function(n){let t=n;return this.$$.axis.isCategorized()?t=this.$$.categoryName(n):this.$$.axis.isTimeSeries()&&(t=n.toLocaleDateString()),t},class:void 0,style:!0,title:void 0,updateOnToggle:!0,nullString:"-"}}}var ie=Object.defineProperty,re=Object.defineProperties,le=Object.getOwnPropertyDescriptors,F=Object.getOwnPropertySymbols,se=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable,$=(e,n,t)=>n in e?ie(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,ae=(e,n)=>{for(var t in n||(n={}))se.call(n,t)&&$(e,t,n[t]);if(F)for(var t of F(n))ce.call(n,t)&&$(e,t,n[t]);return e},ue=(e,n)=>re(e,le(n)),B=(e,n,t)=>($(e,typeof n!="symbol"?n+"":n,t),t);class fe extends I{constructor(n){return super(n),B(this,"config"),B(this,"element"),this.config=new oe,this}$beforeInit(){ee.call(this,this.options)}$init(){const{class:n,selector:t,style:o}=this.config;let i=document.querySelector(t||`.${n||f.class}`);if(!i){const r=this.$$.$el.chart.node();i=document.createElement("table"),r.parentNode.insertBefore(i,r.nextSibling)}if(i.tagName!=="TABLE"){const r=document.createElement("table");i.appendChild(r),i=r}if(o&&!document.getElementById(f.id)){const r=document.createElement("style");r.id=f.id,r.innerHTML=f.rule,(document.head||document.getElementsByTagName("head")[0]).appendChild(r)}i.classList.add(...[o&&f.class,n].filter(Boolean)),this.element=i}generateTable(){const{$$:n,config:t,element:o}=this,i=n.filterTargetsToShow(n.data.targets);let r=v(h.thead,{title:i.length?this.config.categoryTitle:""}),l="";const s=[];i.forEach(w=>{r+=v(h.thead,{title:w.id}),w.values.forEach((d,b)=>{s[b]||(s[b]=[d.x]),s[b].push(d.value)})}),s.forEach(w=>{l+=`<tr>${w.map((d,b)=>v(b?h.tbody:h.tbodyHeader,{value:b===0?t.categoryFormat.bind(this)(d):_(d)?d.toLocaleString():t.nullString})).join("")}</tr>`});const T=/(<\/?(script|img)[^>]*>|<[^>]+><\/[^>]+>)/ig,de=v(h.body,ue(ae({},t),{title:t.title||n.config.title_text||"",thead:r,tbody:l})).replace(T,"");o.innerHTML=de}$redraw(){const{state:n}=this.$$;!(n.resizing||!this.config.updateOnToggle&&n.toggling)&&this.generateTable()}$willDestroy(){var n,t;if((n=this.element.parentNode)==null||n.removeChild(this.element),this.$$.charts.length===1){const o=document.getElementById(f.id);(t=o==null?void 0:o.parentNode)==null||t.removeChild(o)}}}return p=p.default,p}()}); diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.d.ts b/release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.d.ts new file mode 100644 index 000000000..2ebbc04fc --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.d.ts @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + */ +import PluginClass from "../../types/plugin/textoverlap"; + +export default PluginClass; diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.js b/release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.js new file mode 100644 index 000000000..54bedef25 --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.js @@ -0,0 +1,740 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("d3-delaunay"), require("d3-polygon"), require("d3-brush"), require("d3-selection")); + else if(typeof define === 'function' && define.amd) + define("bb", ["d3-delaunay", "d3-polygon", "d3-brush", "d3-selection"], factory); + else if(typeof exports === 'object') + exports["bb"] = factory(require("d3-delaunay"), require("d3-polygon"), require("d3-brush"), require("d3-selection")); + else + root["bb"] = root["bb"] || {}, root["bb"]["plugin"] = root["bb"]["plugin"] || {}, root["bb"]["plugin"]["textoverlap"] = factory(root["d3"], root["d3"], root["d3"], root["d3"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE__12__, __WEBPACK_EXTERNAL_MODULE__13__, __WEBPACK_EXTERNAL_MODULE__3__, __WEBPACK_EXTERNAL_MODULE__1__) { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ 3: +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__3__; + +/***/ }), + +/***/ 12: +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__12__; + +/***/ }), + +/***/ 13: +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__13__; + +/***/ }), + +/***/ 1: +/***/ (function(module) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__1__; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ TextOverlap; } +}); + +// EXTERNAL MODULE: external {"commonjs":"d3-delaunay","commonjs2":"d3-delaunay","amd":"d3-delaunay","root":"d3"} +var external_commonjs_d3_delaunay_commonjs2_d3_delaunay_amd_d3_delaunay_root_d3_ = __webpack_require__(12); +// EXTERNAL MODULE: external {"commonjs":"d3-polygon","commonjs2":"d3-polygon","amd":"d3-polygon","root":"d3"} +var external_commonjs_d3_polygon_commonjs2_d3_polygon_amd_d3_polygon_root_d3_ = __webpack_require__(13); +// EXTERNAL MODULE: external {"commonjs":"d3-brush","commonjs2":"d3-brush","amd":"d3-brush","root":"d3"} +var external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_ = __webpack_require__(3); +// EXTERNAL MODULE: external {"commonjs":"d3-selection","commonjs2":"d3-selection","amd":"d3-selection","root":"d3"} +var external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_ = __webpack_require__(1); +;// CONCATENATED MODULE: ./src/module/browser.ts +function getGlobal() { + return typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && globalThis || typeof global === "object" && global !== null && global.Object === Object && global || typeof self === "object" && self !== null && self.Object === Object && self || Function("return this")(); +} +function getFallback(w) { + const hasRAF = typeof (w == null ? void 0 : w.requestAnimationFrame) === "function" && typeof (w == null ? void 0 : w.cancelAnimationFrame) === "function"; + const hasRIC = typeof (w == null ? void 0 : w.requestIdleCallback) === "function" && typeof (w == null ? void 0 : w.cancelIdleCallback) === "function"; + const request = (cb) => setTimeout(cb, 1); + const cancel = (id) => clearTimeout(id); + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +const win = getGlobal(); +const doc = win == null ? void 0 : win.document; +const [ + requestAnimationFrame, + cancelAnimationFrame, + requestIdleCallback, + cancelIdleCallback +] = getFallback(win); + + +;// CONCATENATED MODULE: ./src/module/util.ts +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + + +const isValue = (v) => v || v === 0; +const isFunction = (v) => typeof v === "function"; +const isString = (v) => typeof v === "string"; +const isNumber = (v) => typeof v === "number"; +const isUndefined = (v) => typeof v === "undefined"; +const isDefined = (v) => typeof v !== "undefined"; +const isBoolean = (v) => typeof v === "boolean"; +const ceil10 = (v) => Math.ceil(v / 10) * 10; +const asHalfPixel = (n) => Math.ceil(n) + 0.5; +const diffDomain = (d) => d[1] - d[0]; +const isObjectType = (v) => typeof v === "object"; +const isEmpty = (o) => isUndefined(o) || o === null || isString(o) && o.length === 0 || isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0 || isNumber(o) && isNaN(o); +const notEmpty = (o) => !isEmpty(o); +const isArray = (arr) => Array.isArray(arr); +const isObject = (obj) => obj && !(obj == null ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +function hasValue(dict, value) { + let found = false; + Object.keys(dict).forEach((key) => dict[key] === value && (found = true)); + return found; +} +function callFn(fn, thisArg, ...args) { + const isFn = isFunction(fn); + isFn && fn.call(thisArg, ...args); + return isFn; +} +function endall(transition, cb) { + let n = 0; + const end = function(...args) { + !--n && cb.apply(this, ...args); + }; + if ("duration" in transition) { + transition.each(() => ++n).on("end", end); + } else { + ++n; + transition.call(end); + } +} +function sanitize(str) { + return isString(str) ? str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : str; +} +function setTextValue(node, text, dy = [-1, 1], toMiddle = false) { + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } else { + const diff = [node.text(), text].map((v) => v.replace(/[\s\n]/g, "")); + if (diff[0] !== diff[1]) { + const multiline = text.split("\n"); + const len = toMiddle ? multiline.length - 1 : 1; + node.html(""); + multiline.forEach((v, i) => { + node.append("tspan").attr("x", 0).attr("dy", `${i === 0 ? dy[0] * len : dy[1]}em`).text(v); + }); + } + } +} +function getRectSegList(path) { + const { x, y, width, height } = path.getBBox(); + return [ + { x, y: y + height }, + // seg0 + { x, y }, + // seg1 + { x: x + width, y }, + // seg2 + { x: x + width, y: y + height } + // seg3 + ]; +} +function getPathBox(path) { + const { width, height } = path.getBoundingClientRect(); + const items = getRectSegList(path); + const x = items[0].x; + const y = Math.min(items[0].y, items[1].y); + return { + x, + y, + width, + height + }; +} +function getPointer(event, element) { + var _a; + const touches = event && ((_a = event.touches || event.sourceEvent && event.sourceEvent.touches) == null ? void 0 : _a[0]); + let pointer = [0, 0]; + try { + pointer = (0,external_commonjs_d3_selection_commonjs2_d3_selection_amd_d3_selection_root_d3_.pointer)(touches || event, element); + } catch (e) { + } + return pointer.map((v) => isNaN(v) ? 0 : v); +} +function getBrushSelection(ctx) { + const { event, $el } = ctx; + const main = $el.subchart.main || $el.main; + let selection; + if (event && event.type === "brush") { + selection = event.selection; + } else if (main && (selection = main.select(".bb-brush").node())) { + selection = (0,external_commonjs_d3_brush_commonjs2_d3_brush_amd_d3_brush_root_d3_.brushSelection)(selection); + } + return selection; +} +function getBoundingRect(node) { + const needEvaluate = !("rect" in node) || "rect" in node && node.hasAttribute("width") && node.rect.width !== +node.getAttribute("width"); + return needEvaluate ? node.rect = node.getBoundingClientRect() : node.rect; +} +function getRandom(asStr = true, min = 0, max = 1e4) { + const crpt = win.crypto || win.msCrypto; + const rand = crpt ? min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + const mid = Math.floor((start + end) / 2); + let { x, w = 0 } = arr[mid]; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? findIndex(arr, v, start, mid - 1, isRotated) : findIndex(arr, v, mid + 1, end, isRotated); +} +function brushEmpty(ctx) { + const selection = getBrushSelection(ctx); + if (selection) { + return selection[0] === selection[1]; + } + return true; +} +function deepClone(...objectN) { + const clone = (v) => { + if (isObject(v) && v.constructor) { + const r = new v.constructor(); + for (const k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map((v) => clone(v)).reduce((a, c) => __spreadValues(__spreadValues({}, a), c)); +} +function extend(target = {}, source) { + if (isArray(source)) { + source.forEach((v) => extend(target, v)); + } + for (const p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); +function camelize(str, separator = "-") { + return str.split(separator).map((v, i) => i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()).join(""); +} +const toArray = (v) => [].slice.call(v); +function addCssRules(style, selector, prop) { + const { rootSelector = "", sheet } = style; + const getSelector = (s) => s.replace(/\s?(bb-)/g, ".$1").replace(/\.+/g, "."); + const rule = `${rootSelector} ${getSelector(selector)} {${prop.join(";")}}`; + return sheet[sheet.insertRule ? "insertRule" : "addRule"]( + rule, + sheet.cssRules.length + ); +} +function getCssRules(styleSheets) { + let rules = []; + styleSheets.forEach((sheet) => { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } catch (e) { + (_a = win.console) == null ? void 0 : _a.warn(`Error while reading rules from ${sheet.href}: ${e.toString()}`); + } + }); + return rules; +} +function getScrollPosition(node) { + var _a, _b, _c, _d; + return { + x: ((_b = (_a = win.pageXOffset) != null ? _a : win.scrollX) != null ? _b : 0) + node.scrollLeft, + y: ((_d = (_c = win.pageYOffset) != null ? _c : win.scrollY) != null ? _d : 0) + node.scrollTop + }; +} +function getTranslation(node) { + const transform = node ? node.transform : null; + const baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? baseVal.getItem(0).matrix : { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +function getUnique(data) { + const isDate = data[0] instanceof Date; + const d = (isDate ? data.map(Number) : data).filter((v, i, self) => self.indexOf(v) === i); + return isDate ? d.map((v) => new Date(v)) : d; +} +function mergeArray(arr) { + return arr && arr.length ? arr.reduce((p, c) => p.concat(c)) : []; +} +function mergeObj(target, ...objectN) { + if (!objectN.length || objectN.length === 1 && !objectN[0]) { + return target; + } + const source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach((key) => { + const value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj(target, ...objectN); +} +function sortValue(data, isAsc = true) { + let fn; + if (data[0] instanceof Date) { + fn = isAsc ? (a, b) => a - b : (a, b) => b - a; + } else { + if (isAsc && !data.every(isNaN)) { + fn = (a, b) => a - b; + } else if (!isAsc) { + fn = (a, b) => a > b && -1 || a < b && 1 || a === b && 0; + } + } + return data.concat().sort(fn); +} +function getMinMax(type, data) { + let res = data.filter((v) => notEmpty(v)); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type](...res); + } else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } else { + res = void 0; + } + return res; +} +const getRange = (start, end, step = 1) => { + const res = []; + const n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (let i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +const emulateEvent = { + mouse: (() => { + const getParams = () => ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); + try { + new MouseEvent("t"); + return (el, eventType, params = getParams()) => { + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } catch (e) { + return (el, eventType, params = getParams()) => { + const mouseEvent = doc.createEvent("MouseEvent"); + mouseEvent.initMouseEvent( + eventType, + params.bubbles, + params.cancelable, + win, + 0, + // the event's mouse click count + params.screenX, + params.screenY, + params.clientX, + params.clientY, + false, + false, + false, + false, + 0, + null + ); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: (el, eventType, params) => { + const touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +function tplProcess(tpl, data) { + let res = tpl; + for (const x in data) { + res = res.replace(new RegExp(`{=${x}}`, "g"), data[x]); + } + return res; +} +function parseDate(date) { + var _a; + let parsedDate; + if (date instanceof Date) { + parsedDate = date; + } else if (isString(date)) { + const { config, format } = this; + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) != null ? _a : new Date(date); + } else if (isNumber(date) && !isNaN(date)) { + parsedDate = /* @__PURE__ */ new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && console.error(`Failed to parse x '${date}' to Date object`); + } + return parsedDate; +} +function isTabVisible() { + var _a, _b; + return ((_a = doc) == null ? void 0 : _a.hidden) === false || ((_b = doc) == null ? void 0 : _b.visibilityState) === "visible"; +} +function convertInputType(mouse, touch) { + const { DocumentTouch, matchMedia, navigator } = win; + let hasTouch = false; + if (touch) { + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + } else if ("ontouchmove" in win || DocumentTouch && doc instanceof DocumentTouch) { + hasTouch = true; + } else { + if (matchMedia == null ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } else { + const UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + const hasMouse = mouse && ((matchMedia == null ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia == null ? void 0 : matchMedia("any-pointer:fine").matches)); + return hasMouse && "mouse" || hasTouch && "touch" || "mouse"; +} +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(() => runUntil(fn, conditionFn)); + } else { + fn(); + } +} + +;// CONCATENATED MODULE: ./src/config/config.ts + +function loadConfig(config) { + const thisConfig = this.config; + let target; + let keys; + let read; + const find = () => { + const key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } else if (!key) { + return target; + } + return void 0; + }; + Object.keys(thisConfig).forEach((key) => { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + if (this.api) { + this.state.orgConfig = config; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/Plugin.ts +var Plugin_defProp = Object.defineProperty; +var Plugin_defNormalProp = (obj, key, value) => key in obj ? Plugin_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + Plugin_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class Plugin { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + constructor(options = {}) { + __publicField(this, "$$"); + __publicField(this, "options"); + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + $beforeInit() { + } + /** + * Lifecycle hook for 'init' phase. + * @private + */ + $init() { + } + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + $afterInit() { + } + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + $redraw() { + } + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + $willDestroy() { + Object.keys(this).forEach((key) => { + this[key] = null; + delete this[key]; + }); + } +} +__publicField(Plugin, "version", "3.12.4"); + +;// CONCATENATED MODULE: ./src/Plugin/textoverlap/Options.ts +class Options { + constructor() { + return { + /** + * Selector string for target text nodes within chart element. + * - **NOTE:** If no value is given, defaults to data label text elements. + * @name selector + * @memberof plugin-textoverlap + * @type {string} + * @default undefined + * @example + * // selector for data label text nodes + * selector: ".bb-texts text" + */ + selector: void 0, + /** + * Extent of label overlap prevention. + * @name extent + * @memberof plugin-textoverlap + * @type {number} + * @default 1 + * @example + * extent: 1 + */ + extent: 1, + /** + * Minimum area needed to show a data label. + * @name area + * @memberof plugin-textoverlap + * @type {number} + * @default 0 + * @example + * area: 0 + */ + area: 0 + }; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/textoverlap/index.ts +var textoverlap_defProp = Object.defineProperty; +var textoverlap_defNormalProp = (obj, key, value) => key in obj ? textoverlap_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var textoverlap_publicField = (obj, key, value) => { + textoverlap_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + +class TextOverlap extends Plugin { + constructor(options) { + super(options); + textoverlap_publicField(this, "config"); + this.config = new Options(); + return this; + } + $init() { + loadConfig.call(this, this.options); + } + $redraw() { + const { $$: { $el }, config: { selector } } = this; + const text = selector ? $el.main.selectAll(selector) : $el.text; + !text.empty() && this.preventLabelOverlap(text); + } + /** + * Generates the voronoi layout for data labels + * @param {Array} points Indices values + * @returns {object} Voronoi layout points and corresponding Data points + * @private + */ + generateVoronoi(points) { + const { $$ } = this; + const { scale } = $$; + const [min, max] = ["x", "y"].map((v) => scale[v].domain()); + [min[1], max[0]] = [max[0], min[1]]; + return external_commonjs_d3_delaunay_commonjs2_d3_delaunay_amd_d3_delaunay_root_d3_.Delaunay.from(points).voronoi([ + ...min, + ...max + ]); + } + /** + * Set text label's position to preventg overlap. + * @param {d3Selection} text target text selection + * @private + */ + preventLabelOverlap(text) { + const { extent, area } = this.config; + const points = text.data().map((v) => [v.index, v.value]); + const voronoi = this.generateVoronoi(points); + let i = 0; + text.each(function() { + const cell = voronoi.cellPolygon(i); + if (cell && this) { + const [x, y] = points[i]; + const [cx, cy] = (0,external_commonjs_d3_polygon_commonjs2_d3_polygon_amd_d3_polygon_root_d3_.polygonCentroid)(cell); + const polygonArea = Math.abs((0,external_commonjs_d3_polygon_commonjs2_d3_polygon_amd_d3_polygon_root_d3_.polygonArea)(cell)); + const angle = Math.round(Math.atan2(cy - y, cx - x) / Math.PI * 2); + const xTranslate = extent * (angle === 0 ? 1 : -1); + const yTranslate = angle === -1 ? -extent : extent + 5; + const txtAnchor = Math.abs(angle) === 1 ? "middle" : angle === 0 ? "start" : "end"; + this.style.display = polygonArea < area ? "none" : ""; + this.setAttribute("text-anchor", txtAnchor); + this.setAttribute("dy", `0.${angle === 1 ? 71 : 35}em`); + this.setAttribute("transform", `translate(${xTranslate}, ${yTranslate})`); + } + i++; + }); + } +} + +__webpack_exports__ = __webpack_exports__["default"]; +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.min.js b/release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.min.js new file mode 100644 index 000000000..26036917a --- /dev/null +++ b/release/3.12.4/dist/plugin/billboardjs-plugin-textoverlap.min.js @@ -0,0 +1,13 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */(function(l,u){typeof exports=="object"&&typeof module=="object"?module.exports=u(require("d3-delaunay"),require("d3-polygon"),require("d3-brush"),require("d3-selection")):typeof define=="function"&&define.amd?define("bb",["d3-delaunay","d3-polygon","d3-brush","d3-selection"],u):typeof exports=="object"?exports.bb=u(require("d3-delaunay"),require("d3-polygon"),require("d3-brush"),require("d3-selection")):(l.bb=l.bb||{},l.bb.plugin=l.bb.plugin||{},l.bb.plugin.textoverlap=u(l.d3,l.d3,l.d3,l.d3))})(this,function(w,l,u,C){return function(){"use strict";var D={853:function(e){e.exports=u},348:function(e){e.exports=w},263:function(e){e.exports=l},747:function(e){e.exports=C}},O={};function a(e){var n=O[e];if(n!==void 0)return n.exports;var t=O[e]={exports:{}};return D[e](t,t.exports,a),t.exports}(function(){a.d=function(e,n){for(var t in n)a.o(n,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})}})(),function(){a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}();var d={};a.d(d,{default:function(){return oe}});var q=a(348),P=a(263),fe=a(853),de=a(747);function R(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function F(e){const n=typeof(e==null?void 0:e.requestAnimationFrame)=="function"&&typeof(e==null?void 0:e.cancelAnimationFrame)=="function",t=typeof(e==null?void 0:e.requestIdleCallback)=="function"&&typeof(e==null?void 0:e.cancelIdleCallback)=="function",o=i=>setTimeout(i,1),r=i=>clearTimeout(i);return[n?e.requestAnimationFrame:o,n?e.cancelAnimationFrame:r,t?e.requestIdleCallback:o,t?e.cancelIdleCallback:r]}const p=R(),I=p==null?void 0:p.document,[pe,he,be,me]=F(p);var S=Object.defineProperty,E=Object.getOwnPropertySymbols,B=Object.prototype.hasOwnProperty,N=Object.prototype.propertyIsEnumerable,$=(e,n,t)=>n in e?S(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,j=(e,n)=>{for(var t in n||(n={}))B.call(n,t)&&$(e,t,n[t]);if(E)for(var t of E(n))N.call(n,t)&&$(e,t,n[t]);return e};const _e=e=>e||e===0,V=e=>typeof e=="function",h=e=>typeof e=="string",m=e=>typeof e=="number",U=e=>typeof e=="undefined",A=e=>typeof e!="undefined",ge=e=>typeof e=="boolean",ye=e=>Math.ceil(e/10)*10,ve=e=>Math.ceil(e)+.5,xe=e=>e[1]-e[0],_=e=>typeof e=="object",X=e=>U(e)||e===null||h(e)&&e.length===0||_(e)&&!(e instanceof Date)&&Object.keys(e).length===0||m(e)&&isNaN(e),Y=e=>!X(e),g=e=>Array.isArray(e),b=e=>e&&!(e!=null&&e.nodeType)&&_(e)&&!g(e);function we(e,n,t){return A(e[n])?e[n]:t}function Oe(e,n){let t=!1;return Object.keys(e).forEach(o=>e[o]===n&&(t=!0)),t}function Pe(e,n,...t){const o=V(e);return o&&e.call(n,...t),o}function Ee(e,n){let t=0;const o=function(...r){!--t&&n.apply(this,...r)};"duration"in e?e.each(()=>++t).on("end",o):(++t,e.call(o))}function $e(e){return h(e)?e.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):e}function je(e,n,t=[-1,1],o=!1){if(!(!e||!h(n)))if(n.indexOf(` +`)===-1)e.text(n);else{const r=[e.text(),n].map(i=>i.replace(/[\s\n]/g,""));if(r[0]!==r[1]){const i=n.split(` +`),s=o?i.length-1:1;e.html(""),i.forEach((c,x)=>{e.append("tspan").attr("x",0).attr("dy",`${x===0?t[0]*s:t[1]}em`).text(c)})}}}function L(e){const{x:n,y:t,width:o,height:r}=e.getBBox();return[{x:n,y:t+r},{x:n,y:t},{x:n+o,y:t},{x:n+o,y:t+r}]}function Ae(e){const{width:n,height:t}=e.getBoundingClientRect(),o=L(e),r=o[0].x,i=Math.min(o[0].y,o[1].y);return{x:r,y:i,width:n,height:t}}function Me(e,n){var t;const o=e&&((t=e.touches||e.sourceEvent&&e.sourceEvent.touches)==null?void 0:t[0]);let r=[0,0];try{r=d3Pointer(o||e,n)}catch(i){}return r.map(i=>isNaN(i)?0:i)}function z(e){const{event:n,$el:t}=e,o=t.subchart.main||t.main;let r;return n&&n.type==="brush"?r=n.selection:o&&(r=o.select(".bb-brush").node())&&(r=d3BrushSelection(r)),r}function Te(e){return!("rect"in e)||"rect"in e&&e.hasAttribute("width")&&e.rect.width!==+e.getAttribute("width")?e.rect=e.getBoundingClientRect():e.rect}function Ce(e=!0,n=0,t=1e4){const o=window.crypto||window.msCrypto,r=o?n+o.getRandomValues(new Uint32Array(1))[0]%(t-n+1):Math.floor(Math.random()*(t-n)+n);return e?String(r):r}function M(e,n,t,o,r){if(t>o)return-1;const i=Math.floor((t+o)/2);let{x:s,w:c=0}=e[i];return r&&(s=e[i].y,c=e[i].h),n>=s&&n<=s+c?i:n<s?M(e,n,t,i-1,r):M(e,n,i+1,o,r)}function De(e){const n=z(e);return n?n[0]===n[1]:!0}function qe(...e){const n=t=>{if(b(t)&&t.constructor){const o=new t.constructor;for(const r in t)o[r]=n(t[r]);return o}return t};return e.map(t=>n(t)).reduce((t,o)=>j(j({},t),o))}function G(e={},n){g(n)&&n.forEach(t=>G(e,t));for(const t in n)/^\d+$/.test(t)||t in e||(e[t]=n[t]);return e}const Re=e=>e.charAt(0).toUpperCase()+e.slice(1);function Fe(e,n="-"){return e.split(n).map((t,o)=>o?t.charAt(0).toUpperCase()+t.slice(1).toLowerCase():t.toLowerCase()).join("")}const H=e=>[].slice.call(e);function Ie(e,n,t){const{rootSelector:o="",sheet:r}=e,s=`${o} ${(c=>c.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(n)} {${t.join(";")}}`;return r[r.insertRule?"insertRule":"addRule"](s,r.cssRules.length)}function Se(e){let n=[];return e.forEach(t=>{var o;try{t.cssRules&&t.cssRules.length&&(n=n.concat(H(t.cssRules)))}catch(r){(o=window.console)==null||o.warn(`Error while reading rules from ${t.href}: ${r.toString()}`)}}),n}function Be(e){var n,t,o,r;return{x:((t=(n=window.pageXOffset)!=null?n:window.scrollX)!=null?t:0)+e.scrollLeft,y:((r=(o=window.pageYOffset)!=null?o:window.scrollY)!=null?r:0)+e.scrollTop}}function Ne(e){const n=e?e.transform:null,t=n&&n.baseVal;return t&&t.numberOfItems?t.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function Ve(e){const n=e[0]instanceof Date,t=(n?e.map(Number):e).filter((o,r,i)=>i.indexOf(o)===r);return n?t.map(o=>new Date(o)):t}function Ue(e){return e&&e.length?e.reduce((n,t)=>n.concat(t)):[]}function y(e,...n){if(!n.length||n.length===1&&!n[0])return e;const t=n.shift();return b(e)&&b(t)&&Object.keys(t).forEach(o=>{const r=t[o];b(r)?(!e[o]&&(e[o]={}),e[o]=y(e[o],r)):e[o]=g(r)?r.concat():r}),y(e,...n)}function K(e,n=!0){let t;return e[0]instanceof Date?t=n?(o,r)=>o-r:(o,r)=>r-o:n&&!e.every(isNaN)?t=(o,r)=>o-r:n||(t=(o,r)=>o>r&&-1||o<r&&1||o===r&&0),e.concat().sort(t)}function Xe(e,n){let t=n.filter(o=>Y(o));return t.length?m(t[0])?t=Math[e](...t):t[0]instanceof Date&&(t=K(t,e==="min")[0]):t=void 0,t}const Ye=(e,n,t=1)=>{const o=[],r=Math.max(0,Math.ceil((n-e)/t))|0;for(let i=e;i<r;i++)o.push(e+i*t);return o},Le={mouse:(()=>{const e=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(n,t,o=e())=>{n.dispatchEvent(new MouseEvent(t,o))}}catch(n){return(t,o,r=e())=>{const i=I.createEvent("MouseEvent");i.initMouseEvent(o,r.bubbles,r.cancelable,p,0,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),t.dispatchEvent(i)}}})(),touch:(e,n,t)=>{const o=new Touch(y({identifier:Date.now(),target:e,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},t));e.dispatchEvent(new TouchEvent(n,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[o],targetTouches:[],changedTouches:[o]}))}};function ze(e,n){let t=e;for(const o in n)t=t.replace(new RegExp(`{=${o}}`,"g"),n[o]);return t}function Ge(e){var n;let t;if(e instanceof Date)t=e;else if(h(e)){const{config:o,format:r}=this;t=(n=r.dataTime(o.data_xFormat)(e))!=null?n:new Date(e)}else m(e)&&!isNaN(e)&&(t=new Date(+e));return(!t||isNaN(+t))&&console&&console.error&&console.error(`Failed to parse x '${e}' to Date object`),t}function He(){var e,n;return((e=document)==null?void 0:e.hidden)===!1||((n=document)==null?void 0:n.visibilityState)==="visible"}function Ke(e,n){const{DocumentTouch:t,matchMedia:o,navigator:r}=window;let i=!1;if(n)if(r&&"maxTouchPoints"in r)i=r.maxTouchPoints>0;else if("ontouchmove"in window||t&&document instanceof t)i=!0;else if(o!=null&&o("(pointer:coarse)").matches)i=!0;else{const c=r.userAgent;i=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(c)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(c)}return e&&((o==null?void 0:o("any-hover:hover").matches)||(o==null?void 0:o("any-pointer:fine").matches))&&"mouse"||i&&"touch"||"mouse"}function W(e,n){n()===!1?requestAnimationFrame(()=>W(e,n)):e()}function k(e){const n=this.config;let t,o,r;const i=()=>{const s=o.shift();if(s&&t&&_(t)&&s in t)return t=t[s],i();if(!s)return t};Object.keys(n).forEach(s=>{t=e,o=s.split("_"),r=i(),A(r)&&(n[s]=r)}),this.api&&(this.state.orgConfig=e)}var J=Object.defineProperty,Q=(e,n,t)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,v=(e,n,t)=>(Q(e,typeof n!="symbol"?n+"":n,t),t);class T{constructor(n={}){v(this,"$$"),v(this,"options"),this.options=n}$beforeInit(){}$init(){}$afterInit(){}$redraw(){}$willDestroy(){Object.keys(this).forEach(n=>{this[n]=null,delete this[n]})}}v(T,"version","3.12.4");class Z{constructor(){return{selector:void 0,extent:1,area:0}}}var ee=Object.defineProperty,te=(e,n,t)=>n in e?ee(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,ne=(e,n,t)=>(te(e,typeof n!="symbol"?n+"":n,t),t);class oe extends T{constructor(n){return super(n),ne(this,"config"),this.config=new Z,this}$init(){k.call(this,this.options)}$redraw(){const{$$:{$el:n},config:{selector:t}}=this,o=t?n.main.selectAll(t):n.text;!o.empty()&&this.preventLabelOverlap(o)}generateVoronoi(n){const{$$:t}=this,{scale:o}=t,[r,i]=["x","y"].map(s=>o[s].domain());return[r[1],i[0]]=[i[0],r[1]],q.Delaunay.from(n).voronoi([...r,...i])}preventLabelOverlap(n){const{extent:t,area:o}=this.config,r=n.data().map(c=>[c.index,c.value]),i=this.generateVoronoi(r);let s=0;n.each(function(){const c=i.cellPolygon(s);if(c&&this){const[x,re]=r[s],[ie,se]=(0,P.polygonCentroid)(c),ce=Math.abs((0,P.polygonArea)(c)),f=Math.round(Math.atan2(se-re,ie-x)/Math.PI*2),le=t*(f===0?1:-1),ae=f===-1?-t:t+5,ue=Math.abs(f)===1?"middle":f===0?"start":"end";this.style.display=ce<o?"none":"",this.setAttribute("text-anchor",ue),this.setAttribute("dy",`0.${f===1?71:35}em`),this.setAttribute("transform",`translate(${le}, ${ae})`)}s++})}}return d=d.default,d}()}); diff --git a/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-bubblecompare.pkgd.js b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-bubblecompare.pkgd.js new file mode 100644 index 000000000..94630d6fb --- /dev/null +++ b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-bubblecompare.pkgd.js @@ -0,0 +1,20280 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("bb", [], factory); + else if(typeof exports === 'object') + exports["bb"] = factory(); + else + root["bb"] = root["bb"] || {}, root["bb"]["plugin"] = root["bb"]["plugin"] || {}, root["bb"]["plugin"]["bubblecompare.pkgd"] = factory(); +})(this, function() { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +__webpack_require__(1); +__webpack_require__(97); +__webpack_require__(98); +__webpack_require__(99); +__webpack_require__(100); +__webpack_require__(101); +__webpack_require__(102); +__webpack_require__(103); +__webpack_require__(104); +__webpack_require__(105); +__webpack_require__(106); +__webpack_require__(107); +__webpack_require__(108); +__webpack_require__(109); +__webpack_require__(110); +__webpack_require__(111); +__webpack_require__(124); +__webpack_require__(126); +__webpack_require__(136); +__webpack_require__(137); +__webpack_require__(139); +__webpack_require__(143); +__webpack_require__(146); +__webpack_require__(148); +__webpack_require__(150); +__webpack_require__(151); +__webpack_require__(152); +__webpack_require__(153); +__webpack_require__(155); +__webpack_require__(156); +__webpack_require__(158); +__webpack_require__(159); +__webpack_require__(161); +__webpack_require__(165); +__webpack_require__(166); +__webpack_require__(167); +__webpack_require__(168); +__webpack_require__(173); +__webpack_require__(174); +__webpack_require__(176); +__webpack_require__(177); +__webpack_require__(178); +__webpack_require__(180); +__webpack_require__(183); +__webpack_require__(184); +__webpack_require__(185); +__webpack_require__(186); +__webpack_require__(187); +__webpack_require__(192); +__webpack_require__(194); +__webpack_require__(195); +__webpack_require__(197); +__webpack_require__(200); +__webpack_require__(201); +__webpack_require__(202); +__webpack_require__(203); +__webpack_require__(204); +__webpack_require__(206); +__webpack_require__(216); +__webpack_require__(218); +__webpack_require__(221); +__webpack_require__(223); +__webpack_require__(226); +__webpack_require__(233); +__webpack_require__(234); +__webpack_require__(235); +__webpack_require__(236); +__webpack_require__(237); +__webpack_require__(238); +__webpack_require__(242); +__webpack_require__(243); +__webpack_require__(245); +__webpack_require__(246); +__webpack_require__(247); +__webpack_require__(249); +__webpack_require__(250); +__webpack_require__(251); +__webpack_require__(93); +__webpack_require__(252); +__webpack_require__(253); +__webpack_require__(261); +__webpack_require__(263); +__webpack_require__(265); +__webpack_require__(266); +__webpack_require__(267); +__webpack_require__(268); +__webpack_require__(269); +__webpack_require__(271); +__webpack_require__(272); +__webpack_require__(273); +__webpack_require__(274); +__webpack_require__(275); +__webpack_require__(277); +__webpack_require__(278); +__webpack_require__(279); +__webpack_require__(280); +__webpack_require__(281); +__webpack_require__(282); +__webpack_require__(283); +__webpack_require__(284); +__webpack_require__(288); +__webpack_require__(289); +__webpack_require__(291); +__webpack_require__(293); +__webpack_require__(294); +__webpack_require__(295); +__webpack_require__(296); +__webpack_require__(297); +__webpack_require__(299); +__webpack_require__(301); +__webpack_require__(302); +__webpack_require__(303); +__webpack_require__(304); +__webpack_require__(306); +__webpack_require__(307); +__webpack_require__(309); +__webpack_require__(310); +__webpack_require__(311); +__webpack_require__(312); +__webpack_require__(314); +__webpack_require__(315); +__webpack_require__(316); +__webpack_require__(317); +__webpack_require__(318); +__webpack_require__(319); +__webpack_require__(320); +__webpack_require__(321); +__webpack_require__(322); +__webpack_require__(324); +__webpack_require__(325); +__webpack_require__(326); +__webpack_require__(327); +__webpack_require__(328); +__webpack_require__(329); +__webpack_require__(330); +__webpack_require__(331); +__webpack_require__(332); +__webpack_require__(333); +__webpack_require__(334); +__webpack_require__(336); +__webpack_require__(337); +__webpack_require__(338); +__webpack_require__(339); +__webpack_require__(361); +__webpack_require__(362); +__webpack_require__(363); +__webpack_require__(364); +__webpack_require__(365); +__webpack_require__(366); +__webpack_require__(367); +__webpack_require__(368); +__webpack_require__(369); +__webpack_require__(371); +__webpack_require__(372); +__webpack_require__(373); +__webpack_require__(374); +__webpack_require__(375); +__webpack_require__(376); +__webpack_require__(377); +__webpack_require__(378); +__webpack_require__(379); +__webpack_require__(380); +__webpack_require__(387); +__webpack_require__(388); +__webpack_require__(390); +__webpack_require__(391); +__webpack_require__(392); +__webpack_require__(393); +__webpack_require__(394); +__webpack_require__(396); +__webpack_require__(407); +__webpack_require__(409); +__webpack_require__(411); +__webpack_require__(413); +__webpack_require__(415); +__webpack_require__(417); +__webpack_require__(419); +__webpack_require__(420); +__webpack_require__(422); +__webpack_require__(425); +__webpack_require__(426); +__webpack_require__(427); +__webpack_require__(428); +__webpack_require__(429); +__webpack_require__(433); +__webpack_require__(434); +__webpack_require__(436); +__webpack_require__(437); +__webpack_require__(438); +__webpack_require__(439); +__webpack_require__(441); +__webpack_require__(442); +__webpack_require__(443); +__webpack_require__(444); +__webpack_require__(445); +__webpack_require__(446); +__webpack_require__(447); +__webpack_require__(449); +__webpack_require__(452); +__webpack_require__(455); +__webpack_require__(458); +__webpack_require__(459); +__webpack_require__(460); +__webpack_require__(461); +__webpack_require__(462); +__webpack_require__(463); +__webpack_require__(464); +__webpack_require__(465); +__webpack_require__(466); +__webpack_require__(467); +__webpack_require__(468); +__webpack_require__(469); +__webpack_require__(470); +__webpack_require__(479); +__webpack_require__(480); +__webpack_require__(481); +__webpack_require__(482); +__webpack_require__(483); +__webpack_require__(484); +__webpack_require__(485); +__webpack_require__(486); +__webpack_require__(487); +__webpack_require__(488); +__webpack_require__(489); +__webpack_require__(490); +__webpack_require__(491); +__webpack_require__(494); +__webpack_require__(495); +__webpack_require__(496); +__webpack_require__(497); +__webpack_require__(498); +__webpack_require__(499); +__webpack_require__(500); +__webpack_require__(501); +__webpack_require__(502); +__webpack_require__(503); +__webpack_require__(504); +__webpack_require__(505); +__webpack_require__(506); +__webpack_require__(507); +__webpack_require__(508); +__webpack_require__(509); +__webpack_require__(510); +__webpack_require__(511); +__webpack_require__(512); +__webpack_require__(513); +__webpack_require__(514); +__webpack_require__(515); +__webpack_require__(516); +__webpack_require__(517); +__webpack_require__(518); +__webpack_require__(519); +__webpack_require__(520); +__webpack_require__(521); +__webpack_require__(524); +__webpack_require__(526); +__webpack_require__(528); +__webpack_require__(529); +__webpack_require__(532); +__webpack_require__(533); +__webpack_require__(535); +__webpack_require__(536); +__webpack_require__(537); +__webpack_require__(542); +__webpack_require__(543); +__webpack_require__(544); +__webpack_require__(545); +__webpack_require__(548); +__webpack_require__(553); +__webpack_require__(554); +__webpack_require__(555); +__webpack_require__(556); +__webpack_require__(557); +__webpack_require__(558); +__webpack_require__(559); + +/* unused reexport */ __webpack_require__(80); + + +/***/ }), +/* 1 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(2); +__webpack_require__(90); +__webpack_require__(92); +__webpack_require__(93); +__webpack_require__(96); + + +/***/ }), +/* 2 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var $toString = __webpack_require__(68); +var createPropertyDescriptor = __webpack_require__(11); +var nativeObjectCreate = __webpack_require__(71); +var objectKeys = __webpack_require__(73); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternal = __webpack_require__(75); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); +var definePropertiesModule = __webpack_require__(72); +var propertyIsEnumerableModule = __webpack_require__(10); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var shared = __webpack_require__(34); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); +var uid = __webpack_require__(40); +var wellKnownSymbol = __webpack_require__(33); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); +var $forEach = (__webpack_require__(83).forEach); + +var HIDDEN = sharedKey('hidden'); +var SYMBOL = 'Symbol'; +var PROTOTYPE = 'prototype'; + +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(SYMBOL); + +var ObjectPrototype = Object[PROTOTYPE]; +var $Symbol = global.Symbol; +var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; +var RangeError = global.RangeError; +var TypeError = global.TypeError; +var QObject = global.QObject; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; +var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; +var push = uncurryThis([].push); + +var AllSymbols = shared('symbols'); +var ObjectPrototypeSymbols = shared('op-symbols'); +var WellKnownSymbolsStore = shared('wks'); + +// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 +var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var fallbackDefineProperty = function (O, P, Attributes) { + var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); + if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; + nativeDefineProperty(O, P, Attributes); + if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { + nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); + } +}; + +var setSymbolDescriptor = DESCRIPTORS && fails(function () { + return nativeObjectCreate(nativeDefineProperty({}, 'a', { + get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } + })).a !== 7; +}) ? fallbackDefineProperty : nativeDefineProperty; + +var wrap = function (tag, description) { + var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype); + setInternalState(symbol, { + type: SYMBOL, + tag: tag, + description: description + }); + if (!DESCRIPTORS) symbol.description = description; + return symbol; +}; + +var $defineProperty = function defineProperty(O, P, Attributes) { + if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); + anObject(O); + var key = toPropertyKey(P); + anObject(Attributes); + if (hasOwn(AllSymbols, key)) { + if (!Attributes.enumerable) { + if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null))); + O[HIDDEN][key] = true; + } else { + if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; + Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); + } return setSymbolDescriptor(O, key, Attributes); + } return nativeDefineProperty(O, key, Attributes); +}; + +var $defineProperties = function defineProperties(O, Properties) { + anObject(O); + var properties = toIndexedObject(Properties); + var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); + $forEach(keys, function (key) { + if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); + }); + return O; +}; + +var $create = function create(O, Properties) { + return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); +}; + +var $propertyIsEnumerable = function propertyIsEnumerable(V) { + var P = toPropertyKey(V); + var enumerable = call(nativePropertyIsEnumerable, this, P); + if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false; + return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P] + ? enumerable : true; +}; + +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { + var it = toIndexedObject(O); + var key = toPropertyKey(P); + if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return; + var descriptor = nativeGetOwnPropertyDescriptor(it, key); + if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) { + descriptor.enumerable = true; + } + return descriptor; +}; + +var $getOwnPropertyNames = function getOwnPropertyNames(O) { + var names = nativeGetOwnPropertyNames(toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key); + }); + return result; +}; + +var $getOwnPropertySymbols = function (O) { + var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; + var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) { + push(result, AllSymbols[key]); + } + }); + return result; +}; + +// `Symbol` constructor +// https://tc39.es/ecma262/#sec-symbol-constructor +if (!NATIVE_SYMBOL) { + $Symbol = function Symbol() { + if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor'); + var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]); + var tag = uid(description); + var setter = function (value) { + var $this = this === undefined ? global : this; + if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value); + if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false; + var descriptor = createPropertyDescriptor(1, value); + try { + setSymbolDescriptor($this, tag, descriptor); + } catch (error) { + if (!(error instanceof RangeError)) throw error; + fallbackDefineProperty($this, tag, descriptor); + } + }; + if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); + return wrap(tag, description); + }; + + SymbolPrototype = $Symbol[PROTOTYPE]; + + defineBuiltIn(SymbolPrototype, 'toString', function toString() { + return getInternalState(this).tag; + }); + + defineBuiltIn($Symbol, 'withoutSetter', function (description) { + return wrap(uid(description), description); + }); + + propertyIsEnumerableModule.f = $propertyIsEnumerable; + definePropertyModule.f = $defineProperty; + definePropertiesModule.f = $defineProperties; + getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; + getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; + getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; + + wrappedWellKnownSymbolModule.f = function (name) { + return wrap(wellKnownSymbol(name), name); + }; + + if (DESCRIPTORS) { + // https://github.com/tc39/proposal-Symbol-description + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + return getInternalState(this).description; + } + }); + if (!IS_PURE) { + defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { + Symbol: $Symbol +}); + +$forEach(objectKeys(WellKnownSymbolsStore), function (name) { + defineWellKnownSymbol(name); +}); + +$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { + useSetter: function () { USE_SETTER = true; }, + useSimple: function () { USE_SETTER = false; } +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, { + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + create: $create, + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + defineProperty: $defineProperty, + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + defineProperties: $defineProperties, + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors + getOwnPropertyDescriptor: $getOwnPropertyDescriptor +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + getOwnPropertyNames: $getOwnPropertyNames +}); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag($Symbol, SYMBOL); + +hiddenKeys[HIDDEN] = true; + + +/***/ }), +/* 3 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineGlobalProperty = __webpack_require__(37); +var copyConstructorProperties = __webpack_require__(55); +var isForced = __webpack_require__(67); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global[TARGET] && global[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn(target, key, sourceProperty, options); + } +}; + + +/***/ }), +/* 4 */ +/***/ (function(module) { + + +var check = function (it) { + return it && it.Math === Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + check(typeof this == 'object' && this) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + +/***/ }), +/* 5 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var call = __webpack_require__(8); +var propertyIsEnumerableModule = __webpack_require__(10); +var createPropertyDescriptor = __webpack_require__(11); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var IE8_DOM_DEFINE = __webpack_require__(41); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); +}; + + +/***/ }), +/* 6 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; +}); + + +/***/ }), +/* 7 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var call = Function.prototype.call; + +module.exports = NATIVE_BIND ? call.bind(call) : function () { + return call.apply(call, arguments); +}; + + +/***/ }), +/* 9 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + + +/***/ }), +/* 10 */ +/***/ (function(__unused_webpack_module, exports) { + + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + + +/***/ }), +/* 11 */ +/***/ (function(module) { + + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), +/* 12 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = __webpack_require__(13); +var requireObjectCoercible = __webpack_require__(16); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + + +/***/ }), +/* 13 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var classof = __webpack_require__(15); + +var $Object = Object; +var split = uncurryThis(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) === 'String' ? split(it, '') : $Object(it); +} : $Object; + + +/***/ }), +/* 14 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var call = FunctionPrototype.call; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); + +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + + +/***/ }), +/* 15 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var toString = uncurryThis({}.toString); +var stringSlice = uncurryThis(''.slice); + +module.exports = function (it) { + return stringSlice(toString(it), 8, -1); +}; + + +/***/ }), +/* 16 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isNullOrUndefined = __webpack_require__(17); + +var $TypeError = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), +/* 17 */ +/***/ (function(module) { + + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +module.exports = function (it) { + return it === null || it === undefined; +}; + + +/***/ }), +/* 18 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); +var isSymbol = __webpack_require__(22); + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +module.exports = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + + +/***/ }), +/* 19 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var getMethod = __webpack_require__(29); +var ordinaryToPrimitive = __webpack_require__(32); +var wellKnownSymbol = __webpack_require__(33); + +var $TypeError = TypeError; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +module.exports = function (input, pref) { + if (!isObject(input) || isSymbol(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) return result; + throw new $TypeError("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + + +/***/ }), +/* 20 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); + +module.exports = function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); +}; + + +/***/ }), +/* 21 */ +/***/ (function(module) { + + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +var documentAll = typeof document == 'object' && document.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; +} : function (argument) { + return typeof argument == 'function'; +}; + + +/***/ }), +/* 22 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var $Object = Object; + +module.exports = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); +}; + + +/***/ }), +/* 23 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; +}; + + +/***/ }), +/* 24 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis({}.isPrototypeOf); + + +/***/ }), +/* 25 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var NATIVE_SYMBOL = __webpack_require__(26); + +module.exports = NATIVE_SYMBOL + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + +/***/ }), +/* 26 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var V8_VERSION = __webpack_require__(27); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +var $String = global.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); + + +/***/ }), +/* 27 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var userAgent = __webpack_require__(28); + +var process = global.process; +var Deno = global.Deno; +var versions = process && process.versions || Deno && Deno.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +module.exports = version; + + +/***/ }), +/* 28 */ +/***/ (function(module) { + + +module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + +/***/ }), +/* 29 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var isNullOrUndefined = __webpack_require__(17); + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +module.exports = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable(func); +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsCallable(argument) is true` +module.exports = function (argument) { + if (isCallable(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a function'); +}; + + +/***/ }), +/* 31 */ +/***/ (function(module) { + + +var $String = String; + +module.exports = function (argument) { + try { + return $String(argument); + } catch (error) { + return 'Object'; + } +}; + + +/***/ }), +/* 32 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); + +var $TypeError = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +module.exports = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + throw new $TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), +/* 33 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var shared = __webpack_require__(34); +var hasOwn = __webpack_require__(38); +var uid = __webpack_require__(40); +var NATIVE_SYMBOL = __webpack_require__(26); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var Symbol = global.Symbol; +var WellKnownSymbolsStore = shared('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!hasOwn(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) + ? Symbol[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + + +/***/ }), +/* 34 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var store = __webpack_require__(35); + +module.exports = function (key, value) { + return store[key] || (store[key] = value || {}); +}; + + +/***/ }), +/* 35 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var globalThis = __webpack_require__(4); +var defineGlobalProperty = __webpack_require__(37); + +var SHARED = '__core-js_shared__'; +var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {}); + +(store.versions || (store.versions = [])).push({ + version: '3.37.1', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + + +/***/ }), +/* 36 */ +/***/ (function(module) { + + +module.exports = false; + + +/***/ }), +/* 37 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(global, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global[key] = value; + } return value; +}; + + +/***/ }), +/* 38 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var hasOwnProperty = uncurryThis({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +module.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); +}; + + +/***/ }), +/* 39 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var requireObjectCoercible = __webpack_require__(16); + +var $Object = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return $Object(requireObjectCoercible(argument)); +}; + + +/***/ }), +/* 40 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var id = 0; +var postfix = Math.random(); +var toString = uncurryThis(1.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + + +/***/ }), +/* 41 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var createElement = __webpack_require__(42); + +// Thanks to IE8 for its funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; +}); + + +/***/ }), +/* 42 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); + +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + + +/***/ }), +/* 43 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), +/* 44 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var IE8_DOM_DEFINE = __webpack_require__(41); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), +/* 45 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +module.exports = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; +}); + + +/***/ }), +/* 46 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var $String = String; +var $TypeError = TypeError; + +// `Assert: Type(argument) is Object` +module.exports = function (argument) { + if (isObject(argument)) return argument; + throw new $TypeError($String(argument) + ' is not an object'); +}; + + +/***/ }), +/* 47 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var definePropertyModule = __webpack_require__(44); +var makeBuiltIn = __webpack_require__(48); +var defineGlobalProperty = __webpack_require__(37); + +module.exports = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + + +/***/ }), +/* 48 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var DESCRIPTORS = __webpack_require__(6); +var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(49).CONFIGURABLE); +var inspectSource = __webpack_require__(50); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var $String = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var stringSlice = uncurryThis(''.slice); +var replace = uncurryThis(''.replace); +var join = uncurryThis([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { + return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn = module.exports = function (value, name, options) { + if (stringSlice($String(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { + defineProperty(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn(options, 'constructor') && options.constructor) { + if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn(function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); +}, 'toString'); + + +/***/ }), +/* 49 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var hasOwn = __webpack_require__(38); + +var FunctionPrototype = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn(FunctionPrototype, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); + +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + + +/***/ }), +/* 50 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isCallable = __webpack_require__(21); +var store = __webpack_require__(35); + +var functionToString = uncurryThis(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; +} + +module.exports = store.inspectSource; + + +/***/ }), +/* 51 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_WEAK_MAP = __webpack_require__(52); +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); +var hasOwn = __webpack_require__(38); +var shared = __webpack_require__(35); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError = global.TypeError; +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw new TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), +/* 52 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var WeakMap = global.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); + + +/***/ }), +/* 53 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var shared = __webpack_require__(34); +var uid = __webpack_require__(40); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + + +/***/ }), +/* 54 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 55 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var ownKeys = __webpack_require__(56); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); + +module.exports = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + + +/***/ }), +/* 56 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var anObject = __webpack_require__(46); + +var concat = uncurryThis([].concat); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), +/* 57 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), +/* 58 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var toIndexedObject = __webpack_require__(12); +var indexOf = (__webpack_require__(59).indexOf); +var hiddenKeys = __webpack_require__(54); + +var push = uncurryThis([].push); + +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + + +/***/ }), +/* 59 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), +/* 60 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), +/* 61 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var trunc = __webpack_require__(62); + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +module.exports = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + + +/***/ }), +/* 62 */ +/***/ (function(module) { + + +var ceil = Math.ceil; +var floor = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +module.exports = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + + +/***/ }), +/* 63 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toLength = __webpack_require__(64); + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +module.exports = function (obj) { + return toLength(obj.length); +}; + + +/***/ }), +/* 64 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), +/* 65 */ +/***/ (function(module) { + + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), +/* 66 */ +/***/ (function(__unused_webpack_module, exports) { + + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 67 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable(detection) ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + + +/***/ }), +/* 68 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +var $String = String; + +module.exports = function (argument) { + if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + + +/***/ }), +/* 69 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var isCallable = __webpack_require__(21); +var classofRaw = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Object = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result; +}; + + +/***/ }), +/* 70 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + + +/***/ }), +/* 71 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* global ActiveXObject -- old IE, WSH */ +var anObject = __webpack_require__(46); +var definePropertiesModule = __webpack_require__(72); +var enumBugKeys = __webpack_require__(65); +var hiddenKeys = __webpack_require__(54); +var html = __webpack_require__(74); +var documentCreateElement = __webpack_require__(42); +var sharedKey = __webpack_require__(53); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + + +/***/ }), +/* 72 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var definePropertyModule = __webpack_require__(44); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var objectKeys = __webpack_require__(73); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var props = toIndexedObject(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + + +/***/ }), +/* 73 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + + +/***/ }), +/* 74 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), +/* 75 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-object-getownpropertynames -- safe */ +var classof = __webpack_require__(15); +var toIndexedObject = __webpack_require__(12); +var $getOwnPropertyNames = (__webpack_require__(57).f); +var arraySlice = __webpack_require__(76); + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && classof(it) === 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); +}; + + +/***/ }), +/* 76 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis([].slice); + + +/***/ }), +/* 77 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var makeBuiltIn = __webpack_require__(48); +var defineProperty = __webpack_require__(44); + +module.exports = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty.f(target, name, descriptor); +}; + + +/***/ }), +/* 78 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +exports.f = wellKnownSymbol; + + +/***/ }), +/* 79 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var path = __webpack_require__(80); +var hasOwn = __webpack_require__(38); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (NAME) { + var Symbol = path.Symbol || (path.Symbol = {}); + if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, { + value: wrappedWellKnownSymbolModule.f(NAME) + }); +}; + + +/***/ }), +/* 80 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global; + + +/***/ }), +/* 81 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var getBuiltIn = __webpack_require__(23); +var wellKnownSymbol = __webpack_require__(33); +var defineBuiltIn = __webpack_require__(47); + +module.exports = function () { + var Symbol = getBuiltIn('Symbol'); + var SymbolPrototype = Symbol && Symbol.prototype; + var valueOf = SymbolPrototype && SymbolPrototype.valueOf; + var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + + if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) { + // `Symbol.prototype[@@toPrimitive]` method + // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive + // eslint-disable-next-line no-unused-vars -- required for .length + defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) { + return call(valueOf, this); + }, { arity: 1 }); + } +}; + + +/***/ }), +/* 82 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +module.exports = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } +}; + + +/***/ }), +/* 83 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +var push = uncurryThis([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +module.exports = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) +}; + + +/***/ }), +/* 84 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(85); +var aCallable = __webpack_require__(30); +var NATIVE_BIND = __webpack_require__(9); + +var bind = uncurryThis(uncurryThis.bind); + +// optional / simple context binding +module.exports = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), +/* 85 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classofRaw = __webpack_require__(15); +var uncurryThis = __webpack_require__(14); + +module.exports = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis(fn); +}; + + +/***/ }), +/* 86 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySpeciesConstructor = __webpack_require__(87); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + + +/***/ }), +/* 87 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; +}; + + +/***/ }), +/* 88 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(15); + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +module.exports = Array.isArray || function isArray(argument) { + return classof(argument) === 'Array'; +}; + + +/***/ }), +/* 89 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(69); +var getBuiltIn = __webpack_require__(23); +var inspectSource = __webpack_require__(50); + +var noop = function () { /* empty */ }; +var construct = getBuiltIn('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) return false; + switch (classof(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +module.exports = !construct || fails(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + + +/***/ }), +/* 90 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var toString = __webpack_require__(68); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var StringToSymbolRegistry = shared('string-to-symbol-registry'); +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.for` method +// https://tc39.es/ecma262/#sec-symbol.for +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + 'for': function (key) { + var string = toString(key); + if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; + var symbol = getBuiltIn('Symbol')(string); + StringToSymbolRegistry[string] = symbol; + SymbolToStringRegistry[symbol] = string; + return symbol; + } +}); + + +/***/ }), +/* 91 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_SYMBOL = __webpack_require__(26); + +/* eslint-disable es/no-symbol -- safe */ +module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor; + + +/***/ }), +/* 92 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); +var isSymbol = __webpack_require__(22); +var tryToString = __webpack_require__(31); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.keyFor` method +// https://tc39.es/ecma262/#sec-symbol.keyfor +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol'); + if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; + } +}); + + +/***/ }), +/* 93 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isSymbol = __webpack_require__(22); +var arraySlice = __webpack_require__(76); +var getReplacerFunction = __webpack_require__(95); +var NATIVE_SYMBOL = __webpack_require__(26); + +var $String = String; +var $stringify = getBuiltIn('JSON', 'stringify'); +var exec = uncurryThis(/./.exec); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var replace = uncurryThis(''.replace); +var numberToString = uncurryThis(1.0.toString); + +var tester = /[\uD800-\uDFFF]/g; +var low = /^[\uD800-\uDBFF]$/; +var hi = /^[\uDC00-\uDFFF]$/; + +var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () { + var symbol = getBuiltIn('Symbol')('stringify detection'); + // MS Edge converts symbol values to JSON as {} + return $stringify([symbol]) !== '[null]' + // WebKit converts symbol values to JSON as null + || $stringify({ a: symbol }) !== '{}' + // V8 throws on boxed symbols + || $stringify(Object(symbol)) !== '{}'; +}); + +// https://github.com/tc39/proposal-well-formed-stringify +var ILL_FORMED_UNICODE = fails(function () { + return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' + || $stringify('\uDEAD') !== '"\\udead"'; +}); + +var stringifyWithSymbolsFix = function (it, replacer) { + var args = arraySlice(arguments); + var $replacer = getReplacerFunction(replacer); + if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined + args[1] = function (key, value) { + // some old implementations (like WebKit) could pass numbers as keys + if (isCallable($replacer)) value = call($replacer, this, $String(key), value); + if (!isSymbol(value)) return value; + }; + return apply($stringify, null, args); +}; + +var fixIllFormed = function (match, offset, string) { + var prev = charAt(string, offset - 1); + var next = charAt(string, offset + 1); + if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) { + return '\\u' + numberToString(charCodeAt(match, 0), 16); + } return match; +}; + +if ($stringify) { + // `JSON.stringify` method + // https://tc39.es/ecma262/#sec-json.stringify + $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + stringify: function stringify(it, replacer, space) { + var args = arraySlice(arguments); + var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args); + return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result; + } + }); +} + + +/***/ }), +/* 94 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var apply = FunctionPrototype.apply; +var call = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () { + return call.apply(apply, arguments); +}); + + +/***/ }), +/* 95 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var toString = __webpack_require__(68); + +var push = uncurryThis([].push); + +module.exports = function (replacer) { + if (isCallable(replacer)) return replacer; + if (!isArray(replacer)) return; + var rawLength = replacer.length; + var keys = []; + for (var i = 0; i < rawLength; i++) { + var element = replacer[i]; + if (typeof element == 'string') push(keys, element); + else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element)); + } + var keysLength = keys.length; + var root = true; + return function (key, value) { + if (root) { + root = false; + return value; + } + if (isArray(this)) return value; + for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value; + }; +}; + + +/***/ }), +/* 96 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var toObject = __webpack_require__(39); + +// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives +// https://bugs.chromium.org/p/v8/issues/detail?id=3443 +var FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); }); + +// `Object.getOwnPropertySymbols` method +// https://tc39.es/ecma262/#sec-object.getownpropertysymbols +$({ target: 'Object', stat: true, forced: FORCED }, { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : []; + } +}); + + +/***/ }), +/* 97 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +// `Symbol.prototype.description` getter +// https://tc39.es/ecma262/#sec-symbol.prototype.description + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var toString = __webpack_require__(68); +var defineBuiltInAccessor = __webpack_require__(77); +var copyConstructorProperties = __webpack_require__(55); + +var NativeSymbol = global.Symbol; +var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; + +if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || + // Safari 12 bug + NativeSymbol().description !== undefined +)) { + var EmptyStringDescriptionStore = {}; + // wrap Symbol constructor for correct work with undefined description + var SymbolWrapper = function Symbol() { + var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]); + var result = isPrototypeOf(SymbolPrototype, this) + ? new NativeSymbol(description) + // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' + : description === undefined ? NativeSymbol() : NativeSymbol(description); + if (description === '') EmptyStringDescriptionStore[result] = true; + return result; + }; + + copyConstructorProperties(SymbolWrapper, NativeSymbol); + SymbolWrapper.prototype = SymbolPrototype; + SymbolPrototype.constructor = SymbolWrapper; + + var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)'; + var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf); + var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString); + var regexp = /^Symbol\((.*)\)[^)]+$/; + var replace = uncurryThis(''.replace); + var stringSlice = uncurryThis(''.slice); + + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + var symbol = thisSymbolValue(this); + if (hasOwn(EmptyStringDescriptionStore, symbol)) return ''; + var string = symbolDescriptiveString(symbol); + var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1'); + return desc === '' ? undefined : desc; + } + }); + + $({ global: true, constructor: true, forced: true }, { + Symbol: SymbolWrapper + }); +} + + +/***/ }), +/* 98 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.asyncIterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.asynciterator +defineWellKnownSymbol('asyncIterator'); + + +/***/ }), +/* 99 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.hasInstance` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.hasinstance +defineWellKnownSymbol('hasInstance'); + + +/***/ }), +/* 100 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.isConcatSpreadable` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable +defineWellKnownSymbol('isConcatSpreadable'); + + +/***/ }), +/* 101 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.iterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.iterator +defineWellKnownSymbol('iterator'); + + +/***/ }), +/* 102 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.match` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.match +defineWellKnownSymbol('match'); + + +/***/ }), +/* 103 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.matchAll` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.matchall +defineWellKnownSymbol('matchAll'); + + +/***/ }), +/* 104 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.replace` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.replace +defineWellKnownSymbol('replace'); + + +/***/ }), +/* 105 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.search` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.search +defineWellKnownSymbol('search'); + + +/***/ }), +/* 106 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.species` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.species +defineWellKnownSymbol('species'); + + +/***/ }), +/* 107 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.split` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.split +defineWellKnownSymbol('split'); + + +/***/ }), +/* 108 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); + +// `Symbol.toPrimitive` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.toprimitive +defineWellKnownSymbol('toPrimitive'); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + + +/***/ }), +/* 109 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineWellKnownSymbol = __webpack_require__(79); +var setToStringTag = __webpack_require__(82); + +// `Symbol.toStringTag` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.tostringtag +defineWellKnownSymbol('toStringTag'); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag(getBuiltIn('Symbol'), 'Symbol'); + + +/***/ }), +/* 110 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.unscopables` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.unscopables +defineWellKnownSymbol('unscopables'); + + +/***/ }), +/* 111 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-unused-vars -- required for functions `.length` */ +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var WEB_ASSEMBLY = 'WebAssembly'; +var WebAssembly = global[WEB_ASSEMBLY]; + +// eslint-disable-next-line es/no-error-cause -- feature detection +var FORCED = new Error('e', { cause: 7 }).cause !== 7; + +var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED); + $({ global: true, constructor: true, arity: 1, forced: FORCED }, O); +}; + +var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) { + if (WebAssembly && WebAssembly[ERROR_NAME]) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED); + $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O); + } +}; + +// https://tc39.es/ecma262/#sec-nativeerror +exportGlobalErrorCauseWrapper('Error', function (init) { + return function Error(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('EvalError', function (init) { + return function EvalError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('RangeError', function (init) { + return function RangeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('ReferenceError', function (init) { + return function ReferenceError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('SyntaxError', function (init) { + return function SyntaxError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('TypeError', function (init) { + return function TypeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('URIError', function (init) { + return function URIError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('CompileError', function (init) { + return function CompileError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('LinkError', function (init) { + return function LinkError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) { + return function RuntimeError(message) { return apply(init, this, arguments); }; +}); + + +/***/ }), +/* 112 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var createNonEnumerableProperty = __webpack_require__(43); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var proxyAccessor = __webpack_require__(117); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +module.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) { + var STACK_TRACE_LIMIT = 'stackTraceLimit'; + var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1; + var path = FULL_NAME.split('.'); + var ERROR_NAME = path[path.length - 1]; + var OriginalError = getBuiltIn.apply(null, path); + + if (!OriginalError) return; + + var OriginalErrorPrototype = OriginalError.prototype; + + // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006 + if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause; + + if (!FORCED) return OriginalError; + + var BaseError = getBuiltIn('Error'); + + var WrappedError = wrapper(function (a, b) { + var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined); + var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError(); + if (message !== undefined) createNonEnumerableProperty(result, 'message', message); + installErrorStack(result, WrappedError, result.stack, 2); + if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError); + if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]); + return result; + }); + + WrappedError.prototype = OriginalErrorPrototype; + + if (ERROR_NAME !== 'Error') { + if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError); + else copyConstructorProperties(WrappedError, BaseError, { name: true }); + } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) { + proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT); + proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace'); + } + + copyConstructorProperties(WrappedError, OriginalError); + + if (!IS_PURE) try { + // Safari 13- bug: WebAssembly errors does not have a proper `.name` + if (OriginalErrorPrototype.name !== ERROR_NAME) { + createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME); + } + OriginalErrorPrototype.constructor = WrappedError; + } catch (error) { /* empty */ } + + return WrappedError; +}; + + +/***/ }), +/* 113 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-proto -- safe */ +var uncurryThisAccessor = __webpack_require__(114); +var isObject = __webpack_require__(20); +var requireObjectCoercible = __webpack_require__(16); +var aPossiblePrototype = __webpack_require__(115); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + requireObjectCoercible(O); + aPossiblePrototype(proto); + if (!isObject(O)) return O; + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + + +/***/ }), +/* 114 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); + +module.exports = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 115 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPossiblePrototype = __webpack_require__(116); + +var $String = String; +var $TypeError = TypeError; + +module.exports = function (argument) { + if (isPossiblePrototype(argument)) return argument; + throw new $TypeError("Can't set " + $String(argument) + ' as a prototype'); +}; + + +/***/ }), +/* 116 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +module.exports = function (argument) { + return isObject(argument) || argument === null; +}; + + +/***/ }), +/* 117 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (Target, Source, key) { + key in Target || defineProperty(Target, key, { + configurable: true, + get: function () { return Source[key]; }, + set: function (it) { Source[key] = it; } + }); +}; + + +/***/ }), +/* 118 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var setPrototypeOf = __webpack_require__(113); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), +/* 119 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toString = __webpack_require__(68); + +module.exports = function (argument, $default) { + return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument); +}; + + +/***/ }), +/* 120 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); + +// `InstallErrorCause` abstract operation +// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause +module.exports = function (O, options) { + if (isObject(options) && 'cause' in options) { + createNonEnumerableProperty(O, 'cause', options.cause); + } +}; + + +/***/ }), +/* 121 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var createNonEnumerableProperty = __webpack_require__(43); +var clearErrorStack = __webpack_require__(122); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); + +// non-standard V8 +var captureStackTrace = Error.captureStackTrace; + +module.exports = function (error, C, stack, dropEntries) { + if (ERROR_STACK_INSTALLABLE) { + if (captureStackTrace) captureStackTrace(error, C); + else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries)); + } +}; + + +/***/ }), +/* 122 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var $Error = Error; +var replace = uncurryThis(''.replace); + +var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd'); +// eslint-disable-next-line redos/no-vulnerable -- safe +var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; +var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); + +module.exports = function (stack, dropEntries) { + if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) { + while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); + } return stack; +}; + + +/***/ }), +/* 123 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = !fails(function () { + var error = new Error('a'); + if (!('stack' in error)) return true; + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); + return error.stack !== 7; +}); + + +/***/ }), +/* 124 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var errorToString = __webpack_require__(125); + +var ErrorPrototype = Error.prototype; + +// `Error.prototype.toString` method fix +// https://tc39.es/ecma262/#sec-error.prototype.tostring +if (ErrorPrototype.toString !== errorToString) { + defineBuiltIn(ErrorPrototype, 'toString', errorToString); +} + + +/***/ }), +/* 125 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var normalizeStringArgument = __webpack_require__(119); + +var nativeErrorToString = Error.prototype.toString; + +var INCORRECT_TO_STRING = fails(function () { + if (DESCRIPTORS) { + // Chrome 32- incorrectly call accessor + // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe + var object = Object.create(Object.defineProperty({}, 'name', { get: function () { + return this === object; + } })); + if (nativeErrorToString.call(object) !== 'true') return true; + } + // FF10- does not properly handle non-strings + return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1' + // IE8 does not properly handle defaults + || nativeErrorToString.call({}) !== 'Error'; +}); + +module.exports = INCORRECT_TO_STRING ? function toString() { + var O = anObject(this); + var name = normalizeStringArgument(O.name, 'Error'); + var message = normalizeStringArgument(O.message); + return !name ? message : !message ? name : name + ': ' + message; +} : nativeErrorToString; + + +/***/ }), +/* 126 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(127); + + +/***/ }), +/* 127 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var create = __webpack_require__(71); +var createNonEnumerableProperty = __webpack_require__(43); +var createPropertyDescriptor = __webpack_require__(11); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var iterate = __webpack_require__(130); +var normalizeStringArgument = __webpack_require__(119); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Error = Error; +var push = [].push; + +var $AggregateError = function AggregateError(errors, message /* , options */) { + var isInstance = isPrototypeOf(AggregateErrorPrototype, this); + var that; + if (setPrototypeOf) { + that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype); + } else { + that = isInstance ? this : create(AggregateErrorPrototype); + createNonEnumerableProperty(that, TO_STRING_TAG, 'Error'); + } + if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message)); + installErrorStack(that, $AggregateError, that.stack, 1); + if (arguments.length > 2) installErrorCause(that, arguments[2]); + var errorsArray = []; + iterate(errors, push, { that: errorsArray }); + createNonEnumerableProperty(that, 'errors', errorsArray); + return that; +}; + +if (setPrototypeOf) setPrototypeOf($AggregateError, $Error); +else copyConstructorProperties($AggregateError, $Error, { name: true }); + +var AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, { + constructor: createPropertyDescriptor(1, $AggregateError), + message: createPropertyDescriptor(1, ''), + name: createPropertyDescriptor(1, 'AggregateError') +}); + +// `AggregateError` constructor +// https://tc39.es/ecma262/#sec-aggregate-error-constructor +$({ global: true, constructor: true, arity: 2 }, { + AggregateError: $AggregateError +}); + + +/***/ }), +/* 128 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var toObject = __webpack_require__(39); +var sharedKey = __webpack_require__(53); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + + +/***/ }), +/* 129 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + + +/***/ }), +/* 130 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var isArrayIteratorMethod = __webpack_require__(131); +var lengthOfArrayLike = __webpack_require__(63); +var isPrototypeOf = __webpack_require__(24); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var iteratorClose = __webpack_require__(135); + +var $TypeError = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +module.exports = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + + +/***/ }), +/* 131 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; + + +/***/ }), +/* 132 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 133 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var getIteratorMethod = __webpack_require__(134); + +var $TypeError = TypeError; + +module.exports = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); + throw new $TypeError(tryToString(argument) + ' is not iterable'); +}; + + +/***/ }), +/* 134 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); +var getMethod = __webpack_require__(29); +var isNullOrUndefined = __webpack_require__(17); +var Iterators = __webpack_require__(132); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = function (it) { + if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) + || getMethod(it, '@@iterator') + || Iterators[classof(it)]; +}; + + +/***/ }), +/* 135 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var getMethod = __webpack_require__(29); + +module.exports = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject(innerResult); + return value; +}; + + +/***/ }), +/* 136 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var fails = __webpack_require__(7); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var AGGREGATE_ERROR = 'AggregateError'; +var $AggregateError = getBuiltIn(AGGREGATE_ERROR); + +var FORCED = !fails(function () { + return $AggregateError([1]).errors[0] !== 1; +}) && fails(function () { + return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7; +}); + +// https://tc39.es/ecma262/#sec-aggregate-error +$({ global: true, constructor: true, arity: 2, forced: FORCED }, { + AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) { + // eslint-disable-next-line no-unused-vars -- required for functions `.length` + return function AggregateError(errors, message) { return apply(init, this, arguments); }; + }, FORCED, true) +}); + + +/***/ }), +/* 137 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.at` method +// https://tc39.es/ecma262/#sec-array.prototype.at +$({ target: 'Array', proto: true }, { + at: function at(index) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; + } +}); + +addToUnscopables('at'); + + +/***/ }), +/* 138 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var create = __webpack_require__(71); +var defineProperty = (__webpack_require__(44).f); + +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + + +/***/ }), +/* 139 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isArray = __webpack_require__(88); +var isObject = __webpack_require__(20); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var createProperty = __webpack_require__(141); +var arraySpeciesCreate = __webpack_require__(86); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); + +// We can't use this feature detection in V8 since it causes +// deoptimization and serious performance degradation +// https://github.com/zloirock/core-js/issues/679 +var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; +}); + +var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); +}; + +var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + +// `Array.prototype.concat` method +// https://tc39.es/ecma262/#sec-array.prototype.concat +// with adding support of @@isConcatSpreadable and @@species +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } +}); + + +/***/ }), +/* 140 */ +/***/ (function(module) { + + +var $TypeError = TypeError; +var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + +module.exports = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded'); + return it; +}; + + +/***/ }), +/* 141 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = function (object, key, value) { + if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; +}; + + +/***/ }), +/* 142 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + + +/***/ }), +/* 143 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var copyWithin = __webpack_require__(144); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +$({ target: 'Array', proto: true }, { + copyWithin: copyWithin +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('copyWithin'); + + +/***/ }), +/* 144 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); + +var min = Math.min; + +// `Array.prototype.copyWithin` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +// eslint-disable-next-line es/no-array-prototype-copywithin -- safe +module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + while (count-- > 0) { + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + to += inc; + from += inc; + } return O; +}; + + +/***/ }), +/* 145 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +module.exports = function (O, P) { + if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O)); +}; + + +/***/ }), +/* 146 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $every = (__webpack_require__(83).every); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('every'); + +// `Array.prototype.every` method +// https://tc39.es/ecma262/#sec-array.prototype.every +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + every: function every(callbackfn /* , thisArg */) { + return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 147 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); +}; + + +/***/ }), +/* 148 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fill = __webpack_require__(149); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.fill` method +// https://tc39.es/ecma262/#sec-array.prototype.fill +$({ target: 'Array', proto: true }, { + fill: fill +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('fill'); + + +/***/ }), +/* 149 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.fill` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.fill +module.exports = function fill(value /* , start = 0, end = @length */) { + var O = toObject(this); + var length = lengthOfArrayLike(O); + var argumentsLength = arguments.length; + var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); + var end = argumentsLength > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + while (endPos > index) O[index++] = value; + return O; +}; + + +/***/ }), +/* 150 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $filter = (__webpack_require__(83).filter); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + +// `Array.prototype.filter` method +// https://tc39.es/ecma262/#sec-array.prototype.filter +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 151 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $find = (__webpack_require__(83).find); +var addToUnscopables = __webpack_require__(138); + +var FIND = 'find'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-find -- testing +if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.find` method +// https://tc39.es/ecma262/#sec-array.prototype.find +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND); + + +/***/ }), +/* 152 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findIndex = (__webpack_require__(83).findIndex); +var addToUnscopables = __webpack_require__(138); + +var FIND_INDEX = 'findIndex'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-findindex -- testing +if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findindex +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + findIndex: function findIndex(callbackfn /* , that = undefined */) { + return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND_INDEX); + + +/***/ }), +/* 153 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLast = (__webpack_require__(154).findLast); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLast` method +// https://tc39.es/ecma262/#sec-array.prototype.findlast +$({ target: 'Array', proto: true }, { + findLast: function findLast(callbackfn /* , that = undefined */) { + return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLast'); + + +/***/ }), +/* 154 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ findLast, findLastIndex }` methods implementation +var createMethod = function (TYPE) { + var IS_FIND_LAST_INDEX = TYPE === 1; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IndexedObject(O); + var index = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var value, result; + while (index-- > 0) { + value = self[index]; + result = boundFunction(value, index, O); + if (result) switch (TYPE) { + case 0: return value; // findLast + case 1: return index; // findLastIndex + } + } + return IS_FIND_LAST_INDEX ? -1 : undefined; + }; +}; + +module.exports = { + // `Array.prototype.findLast` method + // https://github.com/tc39/proposal-array-find-from-last + findLast: createMethod(0), + // `Array.prototype.findLastIndex` method + // https://github.com/tc39/proposal-array-find-from-last + findLastIndex: createMethod(1) +}; + + +/***/ }), +/* 155 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLastIndex = (__webpack_require__(154).findLastIndex); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findlastindex +$({ target: 'Array', proto: true }, { + findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) { + return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLastIndex'); + + +/***/ }), +/* 156 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flat` method +// https://tc39.es/ecma262/#sec-array.prototype.flat +$({ target: 'Array', proto: true }, { + flat: function flat(/* depthArg = 1 */) { + var depthArg = arguments.length ? arguments[0] : undefined; + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg)); + return A; + } +}); + + +/***/ }), +/* 157 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var bind = __webpack_require__(84); + +// `FlattenIntoArray` abstract operation +// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray +var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? bind(mapper, thisArg) : false; + var element, elementLen; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + if (depth > 0 && isArray(element)) { + elementLen = lengthOfArrayLike(element); + targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1; + } else { + doesNotExceedSafeInteger(targetIndex + 1); + target[targetIndex] = element; + } + + targetIndex++; + } + sourceIndex++; + } + return targetIndex; +}; + +module.exports = flattenIntoArray; + + +/***/ }), +/* 158 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flatMap` method +// https://tc39.es/ecma262/#sec-array.prototype.flatmap +$({ target: 'Array', proto: true }, { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A; + aCallable(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return A; + } +}); + + +/***/ }), +/* 159 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var forEach = __webpack_require__(160); + +// `Array.prototype.forEach` method +// https://tc39.es/ecma262/#sec-array.prototype.foreach +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, { + forEach: forEach +}); + + +/***/ }), +/* 160 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $forEach = (__webpack_require__(83).forEach); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('forEach'); + +// `Array.prototype.forEach` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.foreach +module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +} : [].forEach; + + +/***/ }), +/* 161 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var from = __webpack_require__(162); +var checkCorrectnessOfIteration = __webpack_require__(164); + +var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); +}); + +// `Array.from` method +// https://tc39.es/ecma262/#sec-array.from +$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from +}); + + +/***/ }), +/* 162 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var toObject = __webpack_require__(39); +var callWithSafeIterationClosing = __webpack_require__(163); +var isArrayIteratorMethod = __webpack_require__(131); +var isConstructor = __webpack_require__(89); +var lengthOfArrayLike = __webpack_require__(63); +var createProperty = __webpack_require__(141); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); + +var $Array = Array; + +// `Array.from` method implementation +// https://tc39.es/ecma262/#sec-array.from +module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + result = IS_CONSTRUCTOR ? new this() : []; + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + for (;!(step = call(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; +}; + + +/***/ }), +/* 163 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var iteratorClose = __webpack_require__(135); + +// call something on iterator step with safe closing on error +module.exports = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } +}; + + +/***/ }), +/* 164 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +module.exports = function (exec, SKIP_CLOSING) { + try { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + } catch (error) { return false; } // workaround of old WebKit + `eval` bug + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + + +/***/ }), +/* 165 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $includes = (__webpack_require__(59).includes); +var fails = __webpack_require__(7); +var addToUnscopables = __webpack_require__(138); + +// FF99+ bug +var BROKEN_ON_SPARSE = fails(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); +}); + +// `Array.prototype.includes` method +// https://tc39.es/ecma262/#sec-array.prototype.includes +$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('includes'); + + +/***/ }), +/* 166 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-indexof -- required for testing */ +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var $indexOf = (__webpack_require__(59).indexOf); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeIndexOf = uncurryThis([].indexOf); + +var NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0; +var FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf'); + +// `Array.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.indexof +$({ target: 'Array', proto: true, forced: FORCED }, { + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + var fromIndex = arguments.length > 1 ? arguments[1] : undefined; + return NEGATIVE_ZERO + // convert -0 to +0 + ? nativeIndexOf(this, searchElement, fromIndex) || 0 + : $indexOf(this, searchElement, fromIndex); + } +}); + + +/***/ }), +/* 167 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); + +// `Array.isArray` method +// https://tc39.es/ecma262/#sec-array.isarray +$({ target: 'Array', stat: true }, { + isArray: isArray +}); + + +/***/ }), +/* 168 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); +var Iterators = __webpack_require__(132); +var InternalStateModule = __webpack_require__(51); +var defineProperty = (__webpack_require__(44).f); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +module.exports = defineIterator(Array, 'Array', function (iterated, kind) { + setInternalState(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + switch (state.kind) { + case 'keys': return createIterResultObject(index, false); + case 'values': return createIterResultObject(target[index], false); + } return createIterResultObject([index, target[index]], false); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +// V8 ~ Chrome 45- bug +if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try { + defineProperty(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 169 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var IS_PURE = __webpack_require__(36); +var FunctionName = __webpack_require__(49); +var isCallable = __webpack_require__(21); +var createIteratorConstructor = __webpack_require__(170); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); +var IteratorsCore = __webpack_require__(171); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR = wellKnownSymbol('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND]; + + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } + + return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { + defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn(IterablePrototype, KEY, methods[KEY]); + } + } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); + } + Iterators[NAME] = defaultIterator; + + return methods; +}; + + +/***/ }), +/* 170 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IteratorPrototype = (__webpack_require__(171).IteratorPrototype); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var setToStringTag = __webpack_require__(82); +var Iterators = __webpack_require__(132); + +var returnThis = function () { return this; }; + +module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; +}; + + +/***/ }), +/* 171 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var getPrototypeOf = __webpack_require__(128); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype[ITERATOR].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; +else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable(IteratorPrototype[ITERATOR])) { + defineBuiltIn(IteratorPrototype, ITERATOR, function () { + return this; + }); +} + +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + + +/***/ }), +/* 172 */ +/***/ (function(module) { + + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +module.exports = function (value, done) { + return { value: value, done: done }; +}; + + +/***/ }), +/* 173 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toIndexedObject = __webpack_require__(12); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeJoin = uncurryThis([].join); + +var ES3_STRINGS = IndexedObject !== Object; +var FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ','); + +// `Array.prototype.join` method +// https://tc39.es/ecma262/#sec-array.prototype.join +$({ target: 'Array', proto: true, forced: FORCED }, { + join: function join(separator) { + return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator); + } +}); + + +/***/ }), +/* 174 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var lastIndexOf = __webpack_require__(175); + +// `Array.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing +$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, { + lastIndexOf: lastIndexOf +}); + + +/***/ }), +/* 175 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-lastindexof -- safe */ +var apply = __webpack_require__(94); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var arrayMethodIsStrict = __webpack_require__(147); + +var min = Math.min; +var $lastIndexOf = [].lastIndexOf; +var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; +var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); +var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; + +// `Array.prototype.lastIndexOf` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0; + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + if (length === 0) return -1; + var index = length - 1; + if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1])); + if (index < 0) index = length + index; + for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; + return -1; +} : $lastIndexOf; + + +/***/ }), +/* 176 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $map = (__webpack_require__(83).map); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); + +// `Array.prototype.map` method +// https://tc39.es/ecma262/#sec-array.prototype.map +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 177 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isConstructor = __webpack_require__(89); +var createProperty = __webpack_require__(141); + +var $Array = Array; + +var ISNT_GENERIC = fails(function () { + function F() { /* empty */ } + // eslint-disable-next-line es/no-array-of -- safe + return !($Array.of.call(F) instanceof F); +}); + +// `Array.of` method +// https://tc39.es/ecma262/#sec-array.of +// WebKit Array.of isn't generic +$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { + of: function of(/* ...args */) { + var index = 0; + var argumentsLength = arguments.length; + var result = new (isConstructor(this) ? this : $Array)(argumentsLength); + while (argumentsLength > index) createProperty(result, index, arguments[index++]); + result.length = argumentsLength; + return result; + } +}); + + +/***/ }), +/* 178 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var fails = __webpack_require__(7); + +var INCORRECT_TO_LENGTH = fails(function () { + return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; +}); + +// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError +// https://bugs.chromium.org/p/v8/issues/detail?id=12681 +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).push(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); + +// `Array.prototype.push` method +// https://tc39.es/ecma262/#sec-array.prototype.push +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + push: function push(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + doesNotExceedSafeInteger(len + argCount); + for (var i = 0; i < argCount; i++) { + O[len] = arguments[i]; + len++; + } + setArrayLength(O, len); + return len; + } +}); + + +/***/ }), +/* 179 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var isArray = __webpack_require__(88); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Safari < 13 does not throw an error in this case +var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () { + // makes no sense without proper strict mode support + if (this !== undefined) return true; + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).length = 1; + } catch (error) { + return error instanceof TypeError; + } +}(); + +module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) { + if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) { + throw new $TypeError('Cannot set read only .length'); + } return O.length = length; +} : function (O, length) { + return O.length = length; +}; + + +/***/ }), +/* 180 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduce = (__webpack_require__(181).left); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce'); + +// `Array.prototype.reduce` method +// https://tc39.es/ecma262/#sec-array.prototype.reduce +$({ target: 'Array', proto: true, forced: FORCED }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 181 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); +var lengthOfArrayLike = __webpack_require__(63); + +var $TypeError = TypeError; + +var REDUCE_EMPTY = 'Reduce of empty array with no initial value'; + +// `Array.prototype.{ reduce, reduceRight }` methods implementation +var createMethod = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + var O = toObject(that); + var self = IndexedObject(O); + var length = lengthOfArrayLike(O); + aCallable(callbackfn); + if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw new $TypeError(REDUCE_EMPTY); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; +}; + +module.exports = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod(true) +}; + + +/***/ }), +/* 182 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var classof = __webpack_require__(15); + +module.exports = classof(global.process) === 'process'; + + +/***/ }), +/* 183 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduceRight = (__webpack_require__(181).right); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight'); + +// `Array.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-array.prototype.reduceright +$({ target: 'Array', proto: true, forced: FORCED }, { + reduceRight: function reduceRight(callbackfn /* , initialValue */) { + return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 184 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); + +var nativeReverse = uncurryThis([].reverse); +var test = [1, 2]; + +// `Array.prototype.reverse` method +// https://tc39.es/ecma262/#sec-array.prototype.reverse +// fix for Safari 12.0 bug +// https://bugs.webkit.org/show_bug.cgi?id=188794 +$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, { + reverse: function reverse() { + // eslint-disable-next-line no-self-assign -- dirty hack + if (isArray(this)) this.length = this.length; + return nativeReverse(this); + } +}); + + +/***/ }), +/* 185 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var toIndexedObject = __webpack_require__(12); +var createProperty = __webpack_require__(141); +var wellKnownSymbol = __webpack_require__(33); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var nativeSlice = __webpack_require__(76); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; +var max = Math.max; + +// `Array.prototype.slice` method +// https://tc39.es/ecma262/#sec-array.prototype.slice +// fallback for not array-like ES3 strings and DOM objects +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + slice: function slice(start, end) { + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject(Constructor)) { + Constructor = Constructor[SPECIES]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); + result.length = n; + return result; + } +}); + + +/***/ }), +/* 186 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $some = (__webpack_require__(83).some); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('some'); + +// `Array.prototype.some` method +// https://tc39.es/ecma262/#sec-array.prototype.some +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + some: function some(callbackfn /* , thisArg */) { + return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 187 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var internalSort = __webpack_require__(188); +var arrayMethodIsStrict = __webpack_require__(147); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var test = []; +var nativeSort = uncurryThis(test.sort); +var push = uncurryThis(test.push); + +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var STABLE_SORT = !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; +}); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString(x) > toString(y) ? 1 : -1; + }; +}; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + + var array = toObject(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = lengthOfArrayLike(items); + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) deletePropertyOrThrow(array, index++); + + return array; + } +}); + + +/***/ }), +/* 188 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySlice = __webpack_require__(76); + +var floor = Math.floor; + +var sort = function (array, comparefn) { + var length = array.length; + + if (length < 8) { + // insertion sort + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } + } else { + // merge sort + var middle = floor(length / 2); + var left = sort(arraySlice(array, 0, middle), comparefn); + var right = sort(arraySlice(array, middle), comparefn); + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } + } + + return array; +}; + +module.exports = sort; + + +/***/ }), +/* 189 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var firefox = userAgent.match(/firefox\/(\d+)/i); + +module.exports = !!firefox && +firefox[1]; + + +/***/ }), +/* 190 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var UA = __webpack_require__(28); + +module.exports = /MSIE|Trident/.test(UA); + + +/***/ }), +/* 191 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + +module.exports = !!webkit && +webkit[1]; + + +/***/ }), +/* 192 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setSpecies = __webpack_require__(193); + +// `Array[@@species]` getter +// https://tc39.es/ecma262/#sec-get-array-@@species +setSpecies('Array'); + + +/***/ }), +/* 193 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineBuiltInAccessor = __webpack_require__(77); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + + if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + defineBuiltInAccessor(Constructor, SPECIES, { + configurable: true, + get: function () { return this; } + }); + } +}; + + +/***/ }), +/* 194 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var arraySpeciesCreate = __webpack_require__(86); +var createProperty = __webpack_require__(141); +var deletePropertyOrThrow = __webpack_require__(145); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); + +var max = Math.max; +var min = Math.min; + +// `Array.prototype.splice` method +// https://tc39.es/ecma262/#sec-array.prototype.splice +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + splice: function splice(start, deleteCount /* , ...items */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var insertCount, actualDeleteCount, A, k, from, to; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = arraySpeciesCreate(O, actualDeleteCount); + for (k = 0; k < actualDeleteCount; k++) { + from = actualStart + k; + if (from in O) createProperty(A, k, O[from]); + } + A.length = actualDeleteCount; + if (insertCount < actualDeleteCount) { + for (k = actualStart; k < len - actualDeleteCount; k++) { + from = k + actualDeleteCount; + to = k + insertCount; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1); + } else if (insertCount > actualDeleteCount) { + for (k = len - actualDeleteCount; k > actualStart; k--) { + from = k + actualDeleteCount - 1; + to = k + insertCount - 1; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + } + for (k = 0; k < insertCount; k++) { + O[k + actualStart] = arguments[k + 2]; + } + setArrayLength(O, len - actualDeleteCount + insertCount); + return A; + } +}); + + +/***/ }), +/* 195 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayToReversed = __webpack_require__(196); +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; + +// `Array.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-array.prototype.toreversed +$({ target: 'Array', proto: true }, { + toReversed: function toReversed() { + return arrayToReversed(toIndexedObject(this), $Array); + } +}); + +addToUnscopables('toReversed'); + + +/***/ }), +/* 196 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed +module.exports = function (O, C) { + var len = lengthOfArrayLike(O); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = O[len - k - 1]; + return A; +}; + + +/***/ }), +/* 197 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toIndexedObject = __webpack_require__(12); +var arrayFromConstructorAndList = __webpack_require__(198); +var getBuiltInPrototypeMethod = __webpack_require__(199); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; +var sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort')); + +// `Array.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-array.prototype.tosorted +$({ target: 'Array', proto: true }, { + toSorted: function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = toIndexedObject(this); + var A = arrayFromConstructorAndList($Array, O); + return sort(A, compareFn); + } +}); + +addToUnscopables('toSorted'); + + +/***/ }), +/* 198 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +module.exports = function (Constructor, list, $length) { + var index = 0; + var length = arguments.length > 2 ? $length : lengthOfArrayLike(list); + var result = new Constructor(length); + while (length > index) result[index] = list[index++]; + return result; +}; + + +/***/ }), +/* 199 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = function (CONSTRUCTOR, METHOD) { + var Constructor = global[CONSTRUCTOR]; + var Prototype = Constructor && Constructor.prototype; + return Prototype && Prototype[METHOD]; +}; + + +/***/ }), +/* 200 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var addToUnscopables = __webpack_require__(138); +var doesNotExceedSafeInteger = __webpack_require__(140); +var lengthOfArrayLike = __webpack_require__(63); +var toAbsoluteIndex = __webpack_require__(60); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); + +var $Array = Array; +var max = Math.max; +var min = Math.min; + +// `Array.prototype.toSpliced` method +// https://tc39.es/ecma262/#sec-array.prototype.tospliced +$({ target: 'Array', proto: true }, { + toSpliced: function toSpliced(start, deleteCount /* , ...items */) { + var O = toIndexedObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var k = 0; + var insertCount, actualDeleteCount, newLen, A; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = $Array(newLen); + + for (; k < actualStart; k++) A[k] = O[k]; + for (; k < actualStart + insertCount; k++) A[k] = arguments[k - actualStart + 2]; + for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount]; + + return A; + } +}); + +addToUnscopables('toSpliced'); + + +/***/ }), +/* 201 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flat'); + + +/***/ }), +/* 202 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flatMap'); + + +/***/ }), +/* 203 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var deletePropertyOrThrow = __webpack_require__(145); +var doesNotExceedSafeInteger = __webpack_require__(140); + +// IE8- +var INCORRECT_RESULT = [].unshift(0) !== 1; + +// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).unshift(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength(); + +// `Array.prototype.unshift` method +// https://tc39.es/ecma262/#sec-array.prototype.unshift +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + unshift: function unshift(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + if (argCount) { + doesNotExceedSafeInteger(len + argCount); + var k = len; + while (k--) { + var to = k + argCount; + if (k in O) O[to] = O[k]; + else deletePropertyOrThrow(O, to); + } + for (var j = 0; j < argCount; j++) { + O[j] = arguments[j]; + } + } return setArrayLength(O, len + argCount); + } +}); + + +/***/ }), +/* 204 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayWith = __webpack_require__(205); +var toIndexedObject = __webpack_require__(12); + +var $Array = Array; + +// `Array.prototype.with` method +// https://tc39.es/ecma262/#sec-array.prototype.with +$({ target: 'Array', proto: true }, { + 'with': function (index, value) { + return arrayWith(toIndexedObject(this), $Array, index, value); + } +}); + + +/***/ }), +/* 205 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with +module.exports = function (O, C, index, value) { + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; + if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index'); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = k === actualIndex ? value : O[k]; + return A; +}; + + +/***/ }), +/* 206 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var arrayBufferModule = __webpack_require__(207); +var setSpecies = __webpack_require__(193); + +var ARRAY_BUFFER = 'ArrayBuffer'; +var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER]; +var NativeArrayBuffer = global[ARRAY_BUFFER]; + +// `ArrayBuffer` constructor +// https://tc39.es/ecma262/#sec-arraybuffer-constructor +$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, { + ArrayBuffer: ArrayBuffer +}); + +setSpecies(ARRAY_BUFFER); + + +/***/ }), +/* 207 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var FunctionName = __webpack_require__(49); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var fails = __webpack_require__(7); +var anInstance = __webpack_require__(210); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var fround = __webpack_require__(212); +var IEEE754 = __webpack_require__(215); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var arrayFill = __webpack_require__(149); +var arraySlice = __webpack_require__(76); +var inheritIfRequired = __webpack_require__(118); +var copyConstructorProperties = __webpack_require__(55); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var ARRAY_BUFFER = 'ArrayBuffer'; +var DATA_VIEW = 'DataView'; +var PROTOTYPE = 'prototype'; +var WRONG_LENGTH = 'Wrong length'; +var WRONG_INDEX = 'Wrong index'; +var getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER); +var getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW); +var setInternalState = InternalStateModule.set; +var NativeArrayBuffer = global[ARRAY_BUFFER]; +var $ArrayBuffer = NativeArrayBuffer; +var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE]; +var $DataView = global[DATA_VIEW]; +var DataViewPrototype = $DataView && $DataView[PROTOTYPE]; +var ObjectPrototype = Object.prototype; +var Array = global.Array; +var RangeError = global.RangeError; +var fill = uncurryThis(arrayFill); +var reverse = uncurryThis([].reverse); + +var packIEEE754 = IEEE754.pack; +var unpackIEEE754 = IEEE754.unpack; + +var packInt8 = function (number) { + return [number & 0xFF]; +}; + +var packInt16 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF]; +}; + +var packInt32 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF]; +}; + +var unpackInt32 = function (buffer) { + return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0]; +}; + +var packFloat32 = function (number) { + return packIEEE754(fround(number), 23, 4); +}; + +var packFloat64 = function (number) { + return packIEEE754(number, 52, 8); +}; + +var addGetter = function (Constructor, key, getInternalState) { + defineBuiltInAccessor(Constructor[PROTOTYPE], key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var get = function (view, count, index, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + var pack = arraySlice(bytes, start, start + count); + return boolIsLittleEndian ? pack : reverse(pack); +}; + +var set = function (view, count, index, conversion, value, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var pack = conversion(+value); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1]; +}; + +if (!NATIVE_ARRAY_BUFFER) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + var byteLength = toIndex(length); + setInternalState(this, { + type: ARRAY_BUFFER, + bytes: fill(Array(byteLength), 0), + byteLength: byteLength + }); + if (!DESCRIPTORS) { + this.byteLength = byteLength; + this.detached = false; + } + }; + + ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE]; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, DataViewPrototype); + anInstance(buffer, ArrayBufferPrototype); + var bufferState = getInternalArrayBufferState(buffer); + var bufferLength = bufferState.byteLength; + var offset = toIntegerOrInfinity(byteOffset); + if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH); + setInternalState(this, { + type: DATA_VIEW, + buffer: buffer, + byteLength: byteLength, + byteOffset: offset, + bytes: bufferState.bytes + }); + if (!DESCRIPTORS) { + this.buffer = buffer; + this.byteLength = byteLength; + this.byteOffset = offset; + } + }; + + DataViewPrototype = $DataView[PROTOTYPE]; + + if (DESCRIPTORS) { + addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState); + addGetter($DataView, 'buffer', getInternalDataViewState); + addGetter($DataView, 'byteLength', getInternalDataViewState); + addGetter($DataView, 'byteOffset', getInternalDataViewState); + } + + defineBuiltIns(DataViewPrototype, { + getInt8: function getInt8(byteOffset) { + return get(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)); + }, + getUint32: function getUint32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0; + }, + getFloat32: function getFloat32(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23); + }, + getFloat64: function getFloat64(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52); + }, + setInt8: function setInt8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setInt16: function setInt16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint16: function setUint16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setInt32: function setInt32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint32: function setUint32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { + set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false); + } + }); +} else { + var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER; + /* eslint-disable no-new -- required for testing */ + if (!fails(function () { + NativeArrayBuffer(1); + }) || !fails(function () { + new NativeArrayBuffer(-1); + }) || fails(function () { + new NativeArrayBuffer(); + new NativeArrayBuffer(1.5); + new NativeArrayBuffer(NaN); + return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME; + })) { + /* eslint-enable no-new -- required for testing */ + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer); + }; + + $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype; + + ArrayBufferPrototype.constructor = $ArrayBuffer; + + copyConstructorProperties($ArrayBuffer, NativeArrayBuffer); + } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER); + } + + // WebKit bug - the same parent prototype for typed arrays and data view + if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) { + setPrototypeOf(DataViewPrototype, ObjectPrototype); + } + + // iOS Safari 7.x bug + var testView = new $DataView(new $ArrayBuffer(2)); + var $setInt8 = uncurryThis(DataViewPrototype.setInt8); + testView.setInt8(0, 2147483648); + testView.setInt8(1, 2147483649); + if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, { + setInt8: function setInt8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + } + }, { unsafe: true }); +} + +setToStringTag($ArrayBuffer, ARRAY_BUFFER); +setToStringTag($DataView, DATA_VIEW); + +module.exports = { + ArrayBuffer: $ArrayBuffer, + DataView: $DataView +}; + + +/***/ }), +/* 208 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-typed-arrays -- safe +module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; + + +/***/ }), +/* 209 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); + +module.exports = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; +}; + + +/***/ }), +/* 210 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPrototypeOf = __webpack_require__(24); + +var $TypeError = TypeError; + +module.exports = function (it, Prototype) { + if (isPrototypeOf(Prototype, it)) return it; + throw new $TypeError('Incorrect invocation'); +}; + + +/***/ }), +/* 211 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); + +var $RangeError = RangeError; + +// `ToIndex` abstract operation +// https://tc39.es/ecma262/#sec-toindex +module.exports = function (it) { + if (it === undefined) return 0; + var number = toIntegerOrInfinity(it); + var length = toLength(number); + if (number !== length) throw new $RangeError('Wrong length or index'); + return length; +}; + + +/***/ }), +/* 212 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var floatRound = __webpack_require__(213); + +var FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23; +var FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104 +var FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126; + +// `Math.fround` method implementation +// https://tc39.es/ecma262/#sec-math.fround +// eslint-disable-next-line es/no-math-fround -- safe +module.exports = Math.fround || function fround(x) { + return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE); +}; + + +/***/ }), +/* 213 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var sign = __webpack_require__(214); + +var abs = Math.abs; + +var EPSILON = 2.220446049250313e-16; // Number.EPSILON +var INVERSE_EPSILON = 1 / EPSILON; + +var roundTiesToEven = function (n) { + return n + INVERSE_EPSILON - INVERSE_EPSILON; +}; + +module.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) { + var n = +x; + var absolute = abs(n); + var s = sign(n); + if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON; + var a = (1 + FLOAT_EPSILON / EPSILON) * absolute; + var result = a - (a - absolute); + // eslint-disable-next-line no-self-compare -- NaN check + if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity; + return s * result; +}; + + +/***/ }), +/* 214 */ +/***/ (function(module) { + + +// `Math.sign` method implementation +// https://tc39.es/ecma262/#sec-math.sign +// eslint-disable-next-line es/no-math-sign -- safe +module.exports = Math.sign || function sign(x) { + var n = +x; + // eslint-disable-next-line no-self-compare -- NaN check + return n === 0 || n !== n ? n : n < 0 ? -1 : 1; +}; + + +/***/ }), +/* 215 */ +/***/ (function(module) { + + +// IEEE754 conversions based on https://github.com/feross/ieee754 +var $Array = Array; +var abs = Math.abs; +var pow = Math.pow; +var floor = Math.floor; +var log = Math.log; +var LN2 = Math.LN2; + +var pack = function (number, mantissaLength, bytes) { + var buffer = $Array(bytes); + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0; + var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; + var index = 0; + var exponent, mantissa, c; + number = abs(number); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number || number === Infinity) { + // eslint-disable-next-line no-self-compare -- NaN check + mantissa = number !== number ? 1 : 0; + exponent = eMax; + } else { + exponent = floor(log(number) / LN2); + c = pow(2, -exponent); + if (number * c < 1) { + exponent--; + c *= 2; + } + if (exponent + eBias >= 1) { + number += rt / c; + } else { + number += rt * pow(2, 1 - eBias); + } + if (number * c >= 2) { + exponent++; + c /= 2; + } + if (exponent + eBias >= eMax) { + mantissa = 0; + exponent = eMax; + } else if (exponent + eBias >= 1) { + mantissa = (number * c - 1) * pow(2, mantissaLength); + exponent += eBias; + } else { + mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength); + exponent = 0; + } + } + while (mantissaLength >= 8) { + buffer[index++] = mantissa & 255; + mantissa /= 256; + mantissaLength -= 8; + } + exponent = exponent << mantissaLength | mantissa; + exponentLength += mantissaLength; + while (exponentLength > 0) { + buffer[index++] = exponent & 255; + exponent /= 256; + exponentLength -= 8; + } + buffer[--index] |= sign * 128; + return buffer; +}; + +var unpack = function (buffer, mantissaLength) { + var bytes = buffer.length; + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var nBits = exponentLength - 7; + var index = bytes - 1; + var sign = buffer[index--]; + var exponent = sign & 127; + var mantissa; + sign >>= 7; + while (nBits > 0) { + exponent = exponent * 256 + buffer[index--]; + nBits -= 8; + } + mantissa = exponent & (1 << -nBits) - 1; + exponent >>= -nBits; + nBits += mantissaLength; + while (nBits > 0) { + mantissa = mantissa * 256 + buffer[index--]; + nBits -= 8; + } + if (exponent === 0) { + exponent = 1 - eBias; + } else if (exponent === eMax) { + return mantissa ? NaN : sign ? -Infinity : Infinity; + } else { + mantissa += pow(2, mantissaLength); + exponent -= eBias; + } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength); +}; + +module.exports = { + pack: pack, + unpack: unpack +}; + + +/***/ }), +/* 216 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferViewCore = __webpack_require__(217); + +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; + +// `ArrayBuffer.isView` method +// https://tc39.es/ecma262/#sec-arraybuffer.isview +$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + isView: ArrayBufferViewCore.isView +}); + + +/***/ }), +/* 217 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var tryToString = __webpack_require__(31); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var wellKnownSymbol = __webpack_require__(33); +var uid = __webpack_require__(40); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = global.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; +var TypeError = global.TypeError; + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); +var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; +// Fixing native typed arrays in Opera Presto crashes the browser, see #595 +var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera'; +var TYPED_ARRAY_TAG_REQUIRED = false; +var NAME, Constructor, Prototype; + +var TypedArrayConstructorsList = { + Int8Array: 1, + Uint8Array: 1, + Uint8ClampedArray: 1, + Int16Array: 2, + Uint16Array: 2, + Int32Array: 4, + Uint32Array: 4, + Float32Array: 4, + Float64Array: 8 +}; + +var BigIntArrayConstructorsList = { + BigInt64Array: 8, + BigUint64Array: 8 +}; + +var isView = function isView(it) { + if (!isObject(it)) return false; + var klass = classof(it); + return klass === 'DataView' + || hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var getTypedArrayConstructor = function (it) { + var proto = getPrototypeOf(it); + if (!isObject(proto)) return; + var state = getInternalState(proto); + return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto); +}; + +var isTypedArray = function (it) { + if (!isObject(it)) return false; + var klass = classof(it); + return hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var aTypedArray = function (it) { + if (isTypedArray(it)) return it; + throw new TypeError('Target is not a typed array'); +}; + +var aTypedArrayConstructor = function (C) { + if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C; + throw new TypeError(tryToString(C) + ' is not a typed array constructor'); +}; + +var exportTypedArrayMethod = function (KEY, property, forced, options) { + if (!DESCRIPTORS) return; + if (forced) for (var ARRAY in TypedArrayConstructorsList) { + var TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try { + delete TypedArrayConstructor.prototype[KEY]; + } catch (error) { + // old WebKit bug - some methods are non-configurable + try { + TypedArrayConstructor.prototype[KEY] = property; + } catch (error2) { /* empty */ } + } + } + if (!TypedArrayPrototype[KEY] || forced) { + defineBuiltIn(TypedArrayPrototype, KEY, forced ? property + : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options); + } +}; + +var exportTypedArrayStaticMethod = function (KEY, property, forced) { + var ARRAY, TypedArrayConstructor; + if (!DESCRIPTORS) return; + if (setPrototypeOf) { + if (forced) for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try { + delete TypedArrayConstructor[KEY]; + } catch (error) { /* empty */ } + } + if (!TypedArray[KEY] || forced) { + // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable + try { + return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property); + } catch (error) { /* empty */ } + } else return; + } + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); + } + } +}; + +for (NAME in TypedArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else NATIVE_ARRAY_BUFFER_VIEWS = false; +} + +for (NAME in BigIntArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; +} + +// WebKit bug - typed arrays constructors prototype is Object.prototype +if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) { + // eslint-disable-next-line no-shadow -- safe + TypedArray = function TypedArray() { + throw new TypeError('Incorrect invocation'); + }; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME], TypedArray); + } +} + +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype); + } +} + +// WebKit bug - one more object in Uint8ClampedArray prototype chain +if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { + setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); +} + +if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { + TYPED_ARRAY_TAG_REQUIRED = true; + defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, { + configurable: true, + get: function () { + return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; + } + }); + for (NAME in TypedArrayConstructorsList) if (global[NAME]) { + createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME); + } +} + +module.exports = { + NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, + TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG, + aTypedArray: aTypedArray, + aTypedArrayConstructor: aTypedArrayConstructor, + exportTypedArrayMethod: exportTypedArrayMethod, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, + getTypedArrayConstructor: getTypedArrayConstructor, + isView: isView, + isTypedArray: isTypedArray, + TypedArray: TypedArray, + TypedArrayPrototype: TypedArrayPrototype +}; + + +/***/ }), +/* 218 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var ArrayBufferModule = __webpack_require__(207); +var anObject = __webpack_require__(46); +var toAbsoluteIndex = __webpack_require__(60); +var toLength = __webpack_require__(64); +var speciesConstructor = __webpack_require__(219); + +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var DataView = ArrayBufferModule.DataView; +var DataViewPrototype = DataView.prototype; +var nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice); +var getUint8 = uncurryThis(DataViewPrototype.getUint8); +var setUint8 = uncurryThis(DataViewPrototype.setUint8); + +var INCORRECT_SLICE = fails(function () { + return !new ArrayBuffer(2).slice(1, undefined).byteLength; +}); + +// `ArrayBuffer.prototype.slice` method +// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice +$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, { + slice: function slice(start, end) { + if (nativeArrayBufferSlice && end === undefined) { + return nativeArrayBufferSlice(anObject(this), start); // FF fix + } + var length = anObject(this).byteLength; + var first = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first)); + var viewSource = new DataView(this); + var viewTarget = new DataView(result); + var index = 0; + while (first < fin) { + setUint8(viewTarget, index++, getUint8(viewSource, first++)); + } return result; + } +}); + + +/***/ }), +/* 219 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var aConstructor = __webpack_require__(220); +var isNullOrUndefined = __webpack_require__(17); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +module.exports = function (O, defaultConstructor) { + var C = anObject(O).constructor; + var S; + return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S); +}; + + +/***/ }), +/* 220 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isConstructor = __webpack_require__(89); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsConstructor(argument) is true` +module.exports = function (argument) { + if (isConstructor(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a constructor'); +}; + + +/***/ }), +/* 221 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(222); + + +/***/ }), +/* 222 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferModule = __webpack_require__(207); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); + +// `DataView` constructor +// https://tc39.es/ecma262/#sec-dataview-constructor +$({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, { + DataView: ArrayBufferModule.DataView +}); + + +/***/ }), +/* 223 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isDetached = __webpack_require__(224); + +var ArrayBufferPrototype = ArrayBuffer.prototype; + +if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) { + defineBuiltInAccessor(ArrayBufferPrototype, 'detached', { + configurable: true, + get: function detached() { + return isDetached(this); + } + }); +} + + +/***/ }), +/* 224 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var arrayBufferByteLength = __webpack_require__(225); + +var slice = uncurryThis(ArrayBuffer.prototype.slice); + +module.exports = function (O) { + if (arrayBufferByteLength(O) !== 0) return false; + try { + slice(O, 0, 0); + return false; + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 225 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var classof = __webpack_require__(15); + +var $TypeError = TypeError; + +// Includes +// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). +// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. +module.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) { + if (classof(O) !== 'ArrayBuffer') throw new $TypeError('ArrayBuffer expected'); + return O.byteLength; +}; + + +/***/ }), +/* 226 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transfer` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transfer: function transfer() { + return $transfer(this, arguments.length ? arguments[0] : undefined, true); + } +}); + + +/***/ }), +/* 227 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var uncurryThisAccessor = __webpack_require__(114); +var toIndex = __webpack_require__(211); +var isDetached = __webpack_require__(224); +var arrayBufferByteLength = __webpack_require__(225); +var detachTransferable = __webpack_require__(228); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var ArrayBuffer = global.ArrayBuffer; +var DataView = global.DataView; +var TypeError = global.TypeError; +var min = Math.min; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataViewPrototype = DataView.prototype; +var slice = uncurryThis(ArrayBufferPrototype.slice); +var isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get'); +var maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get'); +var getInt8 = uncurryThis(DataViewPrototype.getInt8); +var setInt8 = uncurryThis(DataViewPrototype.setInt8); + +module.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) { + var byteLength = arrayBufferByteLength(arrayBuffer); + var newByteLength = newLength === undefined ? byteLength : toIndex(newLength); + var fixedLength = !isResizable || !isResizable(arrayBuffer); + var newBuffer; + if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached'); + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] }); + if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer; + } + if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) { + newBuffer = slice(arrayBuffer, 0, newByteLength); + } else { + var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined; + newBuffer = new ArrayBuffer(newByteLength, options); + var a = new DataView(arrayBuffer); + var b = new DataView(newBuffer); + var copyLength = min(newByteLength, byteLength); + for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i)); + } + if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer); + return newBuffer; +}; + + +/***/ }), +/* 228 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var tryNodeRequire = __webpack_require__(229); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var $ArrayBuffer = global.ArrayBuffer; +var $MessageChannel = global.MessageChannel; +var detach = false; +var WorkerThreads, channel, buffer, $detach; + +if (PROPER_STRUCTURED_CLONE_TRANSFER) { + detach = function (transferable) { + structuredClone(transferable, { transfer: [transferable] }); + }; +} else if ($ArrayBuffer) try { + if (!$MessageChannel) { + WorkerThreads = tryNodeRequire('worker_threads'); + if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel; + } + + if ($MessageChannel) { + channel = new $MessageChannel(); + buffer = new $ArrayBuffer(2); + + $detach = function (transferable) { + channel.port1.postMessage(null, [transferable]); + }; + + if (buffer.byteLength === 2) { + $detach(buffer); + if (buffer.byteLength === 0) detach = $detach; + } + } +} catch (error) { /* empty */ } + +module.exports = detach; + + +/***/ }), +/* 229 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_NODE = __webpack_require__(182); + +module.exports = function (name) { + try { + // eslint-disable-next-line no-new-func -- safe + if (IS_NODE) return Function('return require("' + name + '")')(); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 230 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var V8 = __webpack_require__(27); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +var structuredClone = global.structuredClone; + +module.exports = !!structuredClone && !fails(function () { + // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false; + var buffer = new ArrayBuffer(8); + var clone = structuredClone(buffer, { transfer: [buffer] }); + return buffer.byteLength !== 0 || clone.byteLength !== 8; +}); + + +/***/ }), +/* 231 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +module.exports = !IS_DENO && !IS_NODE + && typeof window == 'object' + && typeof document == 'object'; + + +/***/ }), +/* 232 */ +/***/ (function(module) { + + +/* global Deno -- Deno case */ +module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + +/***/ }), +/* 233 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transferToFixedLength` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transferToFixedLength: function transferToFixedLength() { + return $transfer(this, arguments.length ? arguments[0] : undefined, false); + } +}); + + +/***/ }), +/* 234 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +// IE8- non-standard case +var FORCED = fails(function () { + // eslint-disable-next-line es/no-date-prototype-getyear-setyear -- detection + return new Date(16e11).getYear() !== 120; +}); + +var getFullYear = uncurryThis(Date.prototype.getFullYear); + +// `Date.prototype.getYear` method +// https://tc39.es/ecma262/#sec-date.prototype.getyear +$({ target: 'Date', proto: true, forced: FORCED }, { + getYear: function getYear() { + return getFullYear(this) - 1900; + } +}); + + +/***/ }), +/* 235 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); + +var $Date = Date; +var thisTimeValue = uncurryThis($Date.prototype.getTime); + +// `Date.now` method +// https://tc39.es/ecma262/#sec-date.now +$({ target: 'Date', stat: true }, { + now: function now() { + return thisTimeValue(new $Date()); + } +}); + + +/***/ }), +/* 236 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); + +var DatePrototype = Date.prototype; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var setFullYear = uncurryThis(DatePrototype.setFullYear); + +// `Date.prototype.setYear` method +// https://tc39.es/ecma262/#sec-date.prototype.setyear +$({ target: 'Date', proto: true }, { + setYear: function setYear(year) { + // validate + thisTimeValue(this); + var yi = toIntegerOrInfinity(year); + var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi; + return setFullYear(this, yyyy); + } +}); + + +/***/ }), +/* 237 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Date.prototype.toGMTString` method +// https://tc39.es/ecma262/#sec-date.prototype.togmtstring +$({ target: 'Date', proto: true }, { + toGMTString: Date.prototype.toUTCString +}); + + +/***/ }), +/* 238 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toISOString = __webpack_require__(239); + +// `Date.prototype.toISOString` method +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit has a broken implementations +$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, { + toISOString: toISOString +}); + + +/***/ }), +/* 239 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var padStart = (__webpack_require__(240).start); + +var $RangeError = RangeError; +var $isFinite = isFinite; +var abs = Math.abs; +var DatePrototype = Date.prototype; +var nativeDateToISOString = DatePrototype.toISOString; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var getUTCDate = uncurryThis(DatePrototype.getUTCDate); +var getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear); +var getUTCHours = uncurryThis(DatePrototype.getUTCHours); +var getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds); +var getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes); +var getUTCMonth = uncurryThis(DatePrototype.getUTCMonth); +var getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds); + +// `Date.prototype.toISOString` method implementation +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit fails here: +module.exports = (fails(function () { + return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z'; +}) || !fails(function () { + nativeDateToISOString.call(new Date(NaN)); +})) ? function toISOString() { + if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value'); + var date = this; + var year = getUTCFullYear(date); + var milliseconds = getUTCMilliseconds(date); + var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; + return sign + padStart(abs(year), sign ? 6 : 4, 0) + + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + + '-' + padStart(getUTCDate(date), 2, 0) + + 'T' + padStart(getUTCHours(date), 2, 0) + + ':' + padStart(getUTCMinutes(date), 2, 0) + + ':' + padStart(getUTCSeconds(date), 2, 0) + + '.' + padStart(milliseconds, 3, 0) + + 'Z'; +} : nativeDateToISOString; + + +/***/ }), +/* 240 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/tc39/proposal-string-pad-start-end +var uncurryThis = __webpack_require__(14); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var $repeat = __webpack_require__(241); +var requireObjectCoercible = __webpack_require__(16); + +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var ceil = Math.ceil; + +// `String.prototype.{ padStart, padEnd }` methods implementation +var createMethod = function (IS_END) { + return function ($this, maxLength, fillString) { + var S = toString(requireObjectCoercible($this)); + var intMaxLength = toLength(maxLength); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : toString(fillString); + var fillLen, stringFiller; + if (intMaxLength <= stringLength || fillStr === '') return S; + fillLen = intMaxLength - stringLength; + stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen); + return IS_END ? S + stringFiller : stringFiller + S; + }; +}; + +module.exports = { + // `String.prototype.padStart` method + // https://tc39.es/ecma262/#sec-string.prototype.padstart + start: createMethod(false), + // `String.prototype.padEnd` method + // https://tc39.es/ecma262/#sec-string.prototype.padend + end: createMethod(true) +}; + + +/***/ }), +/* 241 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var $RangeError = RangeError; + +// `String.prototype.repeat` method implementation +// https://tc39.es/ecma262/#sec-string.prototype.repeat +module.exports = function repeat(count) { + var str = toString(requireObjectCoercible(this)); + var result = ''; + var n = toIntegerOrInfinity(count); + if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions'); + for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; + return result; +}; + + +/***/ }), +/* 242 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var toPrimitive = __webpack_require__(19); + +var FORCED = fails(function () { + return new Date(NaN).toJSON() !== null + || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; +}); + +// `Date.prototype.toJSON` method +// https://tc39.es/ecma262/#sec-date.prototype.tojson +$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O, 'number'); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } +}); + + +/***/ }), +/* 243 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var defineBuiltIn = __webpack_require__(47); +var dateToPrimitive = __webpack_require__(244); +var wellKnownSymbol = __webpack_require__(33); + +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); +var DatePrototype = Date.prototype; + +// `Date.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +if (!hasOwn(DatePrototype, TO_PRIMITIVE)) { + defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive); +} + + +/***/ }), +/* 244 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var ordinaryToPrimitive = __webpack_require__(32); + +var $TypeError = TypeError; + +// `Date.prototype[@@toPrimitive](hint)` method implementation +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +module.exports = function (hint) { + anObject(this); + if (hint === 'string' || hint === 'default') hint = 'string'; + else if (hint !== 'number') throw new $TypeError('Incorrect hint'); + return ordinaryToPrimitive(this, hint); +}; + + +/***/ }), +/* 245 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); + +var DatePrototype = Date.prototype; +var INVALID_DATE = 'Invalid Date'; +var TO_STRING = 'toString'; +var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]); +var thisTimeValue = uncurryThis(DatePrototype.getTime); + +// `Date.prototype.toString` method +// https://tc39.es/ecma262/#sec-date.prototype.tostring +if (String(new Date(NaN)) !== INVALID_DATE) { + defineBuiltIn(DatePrototype, TO_STRING, function toString() { + var value = thisTimeValue(this); + // eslint-disable-next-line no-self-compare -- NaN check + return value === value ? nativeDateToString(this) : INVALID_DATE; + }); +} + + +/***/ }), +/* 246 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var exec = uncurryThis(/./.exec); +var numberToString = uncurryThis(1.0.toString); +var toUpperCase = uncurryThis(''.toUpperCase); + +var raw = /[\w*+\-./@]/; + +var hex = function (code, length) { + var result = numberToString(code, 16); + while (result.length < length) result = '0' + result; + return result; +}; + +// `escape` method +// https://tc39.es/ecma262/#sec-escape-string +$({ global: true }, { + escape: function escape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, code; + while (index < length) { + chr = charAt(str, index++); + if (exec(raw, chr)) { + result += chr; + } else { + code = charCodeAt(chr, 0); + if (code < 256) { + result += '%' + hex(code, 2); + } else { + result += '%u' + toUpperCase(hex(code, 4)); + } + } + } return result; + } +}); + + +/***/ }), +/* 247 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var bind = __webpack_require__(248); + +// `Function.prototype.bind` method +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +$({ target: 'Function', proto: true, forced: Function.bind !== bind }, { + bind: bind +}); + + +/***/ }), +/* 248 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var arraySlice = __webpack_require__(76); +var NATIVE_BIND = __webpack_require__(9); + +var $Function = Function; +var concat = uncurryThis([].concat); +var join = uncurryThis([].join); +var factories = {}; + +var construct = function (C, argsLength, args) { + if (!hasOwn(factories, argsLength)) { + var list = []; + var i = 0; + for (; i < argsLength; i++) list[i] = 'a[' + i + ']'; + factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')'); + } return factories[argsLength](C, args); +}; + +// `Function.prototype.bind` method implementation +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +module.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) { + var F = aCallable(this); + var Prototype = F.prototype; + var partArgs = arraySlice(arguments, 1); + var boundFunction = function bound(/* args... */) { + var args = concat(partArgs, arraySlice(arguments)); + return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args); + }; + if (isObject(Prototype)) boundFunction.prototype = Prototype; + return boundFunction; +}; + + +/***/ }), +/* 249 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var definePropertyModule = __webpack_require__(44); +var isPrototypeOf = __webpack_require__(24); +var wellKnownSymbol = __webpack_require__(33); +var makeBuiltIn = __webpack_require__(48); + +var HAS_INSTANCE = wellKnownSymbol('hasInstance'); +var FunctionPrototype = Function.prototype; + +// `Function.prototype[@@hasInstance]` method +// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance +if (!(HAS_INSTANCE in FunctionPrototype)) { + definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) { + if (!isCallable(this) || !isObject(O)) return false; + var P = this.prototype; + return isObject(P) ? isPrototypeOf(P, O) : O instanceof this; + }, HAS_INSTANCE) }); +} + + +/***/ }), +/* 250 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var FUNCTION_NAME_EXISTS = (__webpack_require__(49).EXISTS); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var FunctionPrototype = Function.prototype; +var functionToString = uncurryThis(FunctionPrototype.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor(FunctionPrototype, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + + +/***/ }), +/* 251 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); + +// `globalThis` object +// https://tc39.es/ecma262/#sec-globalthis +$({ global: true, forced: global.globalThis !== global }, { + globalThis: global +}); + + +/***/ }), +/* 252 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +// JSON[@@toStringTag] property +// https://tc39.es/ecma262/#sec-json-@@tostringtag +setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), +/* 253 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(254); + + +/***/ }), +/* 254 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Map` constructor +// https://tc39.es/ecma262/#sec-map-objects +collection('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 255 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var defineBuiltIn = __webpack_require__(47); +var InternalMetadataModule = __webpack_require__(256); +var iterate = __webpack_require__(130); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var setToStringTag = __webpack_require__(82); +var inheritIfRequired = __webpack_require__(118); + +module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); + defineBuiltIn(NativePrototype, KEY, + KEY === 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY === 'delete' ? function (key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'get' ? function get(key) { + return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'has' ? function has(key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + + +/***/ }), +/* 256 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var hiddenKeys = __webpack_require__(54); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var defineProperty = (__webpack_require__(44).f); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternalModule = __webpack_require__(75); +var isExtensible = __webpack_require__(257); +var uid = __webpack_require__(40); +var FREEZING = __webpack_require__(259); + +var REQUIRED = false; +var METADATA = uid('meta'); +var id = 0; + +var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id++, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData = function (it, create) { + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it); + return it; +}; + +var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } +}; + +var meta = module.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + + +/***/ }), +/* 257 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isextensible -- safe +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); }); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +module.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + + +/***/ }), +/* 258 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it +var fails = __webpack_require__(7); + +module.exports = fails(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + + +/***/ }), +/* 259 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); +}); + + +/***/ }), +/* 260 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var create = __webpack_require__(71); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var bind = __webpack_require__(84); +var anInstance = __webpack_require__(210); +var isNullOrUndefined = __webpack_require__(17); +var iterate = __webpack_require__(130); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var setSpecies = __webpack_require__(193); +var DESCRIPTORS = __webpack_require__(6); +var fastKey = (__webpack_require__(256).fastKey); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS) that.size = 0; + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key === key) return entry; + } + }; + + defineBuiltIns(Prototype, { + // `{ Map, Set }.prototype.clear()` methods + // https://tc39.es/ecma262/#sec-map.prototype.clear + // https://tc39.es/ecma262/#sec-set.prototype.clear + clear: function clear() { + var that = this; + var state = getInternalState(that); + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + entry = entry.next; + } + state.first = state.last = undefined; + state.index = create(null); + if (DESCRIPTORS) state.size = 0; + else that.size = 0; + }, + // `{ Map, Set }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.delete + // https://tc39.es/ecma262/#sec-set.prototype.delete + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first === entry) state.first = next; + if (state.last === entry) state.last = prev; + if (DESCRIPTORS) state.size--; + else that.size--; + } return !!entry; + }, + // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods + // https://tc39.es/ecma262/#sec-map.prototype.foreach + // https://tc39.es/ecma262/#sec-set.prototype.foreach + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // `{ Map, Set}.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.has + // https://tc39.es/ecma262/#sec-set.prototype.has + has: function has(key) { + return !!getEntry(this, key); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `Map.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-map.prototype.get + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // `Map.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-map.prototype.set + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // `Set.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-set.prototype.add + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', { + configurable: true, + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods + // https://tc39.es/ecma262/#sec-map.prototype.entries + // https://tc39.es/ecma262/#sec-map.prototype.keys + // https://tc39.es/ecma262/#sec-map.prototype.values + // https://tc39.es/ecma262/#sec-map.prototype-@@iterator + // https://tc39.es/ecma262/#sec-set.prototype.entries + // https://tc39.es/ecma262/#sec-set.prototype.keys + // https://tc39.es/ecma262/#sec-set.prototype.values + // https://tc39.es/ecma262/#sec-set.prototype-@@iterator + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return createIterResultObject(undefined, true); + } + // return step by kind + if (kind === 'keys') return createIterResultObject(entry.key, false); + if (kind === 'values') return createIterResultObject(entry.value, false); + return createIterResultObject([entry.key, entry.value], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // `{ Map, Set }.prototype[@@species]` accessors + // https://tc39.es/ecma262/#sec-get-map-@@species + // https://tc39.es/ecma262/#sec-get-set-@@species + setSpecies(CONSTRUCTOR_NAME); + } +}; + + +/***/ }), +/* 261 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var iterate = __webpack_require__(130); +var MapHelpers = __webpack_require__(262); +var IS_PURE = __webpack_require__(36); +var fails = __webpack_require__(7); + +var Map = MapHelpers.Map; +var has = MapHelpers.has; +var get = MapHelpers.get; +var set = MapHelpers.set; +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () { + return Map.groupBy('ab', function (it) { + return it; + }).get('a').length !== 1; +}); + +// `Map.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var map = new Map(); + var k = 0; + iterate(items, function (value) { + var key = callbackfn(value, k++); + if (!has(map, key)) set(map, key, [value]); + else push(get(map, key), value); + }); + return map; + } +}); + + +/***/ }), +/* 262 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-map -- safe +var MapPrototype = Map.prototype; + +module.exports = { + // eslint-disable-next-line es/no-map -- safe + Map: Map, + set: uncurryThis(MapPrototype.set), + get: uncurryThis(MapPrototype.get), + has: uncurryThis(MapPrototype.has), + remove: uncurryThis(MapPrototype['delete']), + proto: MapPrototype +}; + + +/***/ }), +/* 263 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// eslint-disable-next-line es/no-math-acosh -- required for testing +var $acosh = Math.acosh; +var log = Math.log; +var sqrt = Math.sqrt; +var LN2 = Math.LN2; + +var FORCED = !$acosh + // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 + || Math.floor($acosh(Number.MAX_VALUE)) !== 710 + // Tor Browser bug: Math.acosh(Infinity) -> NaN + || $acosh(Infinity) !== Infinity; + +// `Math.acosh` method +// https://tc39.es/ecma262/#sec-math.acosh +$({ target: 'Math', stat: true, forced: FORCED }, { + acosh: function acosh(x) { + var n = +x; + return n < 1 ? NaN : n > 94906265.62425156 + ? log(n) + LN2 + : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1)); + } +}); + + +/***/ }), +/* 264 */ +/***/ (function(module) { + + +var log = Math.log; + +// `Math.log1p` method implementation +// https://tc39.es/ecma262/#sec-math.log1p +// eslint-disable-next-line es/no-math-log1p -- safe +module.exports = Math.log1p || function log1p(x) { + var n = +x; + return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n); +}; + + +/***/ }), +/* 265 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-asinh -- required for testing +var $asinh = Math.asinh; +var log = Math.log; +var sqrt = Math.sqrt; + +function asinh(x) { + var n = +x; + return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1)); +} + +var FORCED = !($asinh && 1 / $asinh(0) > 0); + +// `Math.asinh` method +// https://tc39.es/ecma262/#sec-math.asinh +// Tor Browser bug: Math.asinh(0) -> -0 +$({ target: 'Math', stat: true, forced: FORCED }, { + asinh: asinh +}); + + +/***/ }), +/* 266 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-atanh -- required for testing +var $atanh = Math.atanh; +var log = Math.log; + +var FORCED = !($atanh && 1 / $atanh(-0) < 0); + +// `Math.atanh` method +// https://tc39.es/ecma262/#sec-math.atanh +// Tor Browser bug: Math.atanh(-0) -> 0 +$({ target: 'Math', stat: true, forced: FORCED }, { + atanh: function atanh(x) { + var n = +x; + return n === 0 ? n : log((1 + n) / (1 - n)) / 2; + } +}); + + +/***/ }), +/* 267 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +var abs = Math.abs; +var pow = Math.pow; + +// `Math.cbrt` method +// https://tc39.es/ecma262/#sec-math.cbrt +$({ target: 'Math', stat: true }, { + cbrt: function cbrt(x) { + var n = +x; + return sign(n) * pow(abs(n), 1 / 3); + } +}); + + +/***/ }), +/* 268 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var floor = Math.floor; +var log = Math.log; +var LOG2E = Math.LOG2E; + +// `Math.clz32` method +// https://tc39.es/ecma262/#sec-math.clz32 +$({ target: 'Math', stat: true }, { + clz32: function clz32(x) { + var n = x >>> 0; + return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32; + } +}); + + +/***/ }), +/* 269 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// eslint-disable-next-line es/no-math-cosh -- required for testing +var $cosh = Math.cosh; +var abs = Math.abs; +var E = Math.E; + +var FORCED = !$cosh || $cosh(710) === Infinity; + +// `Math.cosh` method +// https://tc39.es/ecma262/#sec-math.cosh +$({ target: 'Math', stat: true, forced: FORCED }, { + cosh: function cosh(x) { + var t = expm1(abs(x) - 1) + 1; + return (t + 1 / (t * E * E)) * (E / 2); + } +}); + + +/***/ }), +/* 270 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-math-expm1 -- safe +var $expm1 = Math.expm1; +var exp = Math.exp; + +// `Math.expm1` method implementation +// https://tc39.es/ecma262/#sec-math.expm1 +module.exports = (!$expm1 + // Old FF bug + // eslint-disable-next-line no-loss-of-precision -- required for old engines + || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 + // Tor Browser bug + || $expm1(-2e-17) !== -2e-17 +) ? function expm1(x) { + var n = +x; + return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1; +} : $expm1; + + +/***/ }), +/* 271 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// `Math.expm1` method +// https://tc39.es/ecma262/#sec-math.expm1 +// eslint-disable-next-line es/no-math-expm1 -- required for testing +$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 }); + + +/***/ }), +/* 272 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fround = __webpack_require__(212); + +// `Math.fround` method +// https://tc39.es/ecma262/#sec-math.fround +$({ target: 'Math', stat: true }, { fround: fround }); + + +/***/ }), +/* 273 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-hypot -- required for testing +var $hypot = Math.hypot; +var abs = Math.abs; +var sqrt = Math.sqrt; + +// Chrome 77 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=9546 +var FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity; + +// `Math.hypot` method +// https://tc39.es/ecma262/#sec-math.hypot +$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + hypot: function hypot(value1, value2) { + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + while (i < aLen) { + arg = abs(arguments[i++]); + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + return larg === Infinity ? Infinity : larg * sqrt(sum); + } +}); + + +/***/ }), +/* 274 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-math-imul -- required for testing +var $imul = Math.imul; + +var FORCED = fails(function () { + return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2; +}); + +// `Math.imul` method +// https://tc39.es/ecma262/#sec-math.imul +// some WebKit versions fails with big numbers, some has wrong arity +$({ target: 'Math', stat: true, forced: FORCED }, { + imul: function imul(x, y) { + var UINT16 = 0xFFFF; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } +}); + + +/***/ }), +/* 275 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log10 = __webpack_require__(276); + +// `Math.log10` method +// https://tc39.es/ecma262/#sec-math.log10 +$({ target: 'Math', stat: true }, { + log10: log10 +}); + + +/***/ }), +/* 276 */ +/***/ (function(module) { + + +var log = Math.log; +var LOG10E = Math.LOG10E; + +// eslint-disable-next-line es/no-math-log10 -- safe +module.exports = Math.log10 || function log10(x) { + return log(x) * LOG10E; +}; + + +/***/ }), +/* 277 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// `Math.log1p` method +// https://tc39.es/ecma262/#sec-math.log1p +$({ target: 'Math', stat: true }, { log1p: log1p }); + + +/***/ }), +/* 278 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var log = Math.log; +var LN2 = Math.LN2; + +// `Math.log2` method +// https://tc39.es/ecma262/#sec-math.log2 +$({ target: 'Math', stat: true }, { + log2: function log2(x) { + return log(x) / LN2; + } +}); + + +/***/ }), +/* 279 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +// `Math.sign` method +// https://tc39.es/ecma262/#sec-math.sign +$({ target: 'Math', stat: true }, { + sign: sign +}); + + +/***/ }), +/* 280 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var expm1 = __webpack_require__(270); + +var abs = Math.abs; +var exp = Math.exp; +var E = Math.E; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-math-sinh -- required for testing + return Math.sinh(-2e-17) !== -2e-17; +}); + +// `Math.sinh` method +// https://tc39.es/ecma262/#sec-math.sinh +// V8 near Chromium 38 has a problem with very small numbers +$({ target: 'Math', stat: true, forced: FORCED }, { + sinh: function sinh(x) { + var n = +x; + return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2); + } +}); + + +/***/ }), +/* 281 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +var exp = Math.exp; + +// `Math.tanh` method +// https://tc39.es/ecma262/#sec-math.tanh +$({ target: 'Math', stat: true }, { + tanh: function tanh(x) { + var n = +x; + var a = expm1(n); + var b = expm1(-n); + return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n)); + } +}); + + +/***/ }), +/* 282 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setToStringTag = __webpack_require__(82); + +// Math[@@toStringTag] property +// https://tc39.es/ecma262/#sec-math-@@tostringtag +setToStringTag(Math, 'Math', true); + + +/***/ }), +/* 283 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trunc = __webpack_require__(62); + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +$({ target: 'Math', stat: true }, { + trunc: trunc +}); + + +/***/ }), +/* 284 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var path = __webpack_require__(80); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var hasOwn = __webpack_require__(38); +var inheritIfRequired = __webpack_require__(118); +var isPrototypeOf = __webpack_require__(24); +var isSymbol = __webpack_require__(22); +var toPrimitive = __webpack_require__(19); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(57).f); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var defineProperty = (__webpack_require__(44).f); +var thisNumberValue = __webpack_require__(285); +var trim = (__webpack_require__(286).trim); + +var NUMBER = 'Number'; +var NativeNumber = global[NUMBER]; +var PureNumberNamespace = path[NUMBER]; +var NumberPrototype = NativeNumber.prototype; +var TypeError = global.TypeError; +var stringSlice = uncurryThis(''.slice); +var charCodeAt = uncurryThis(''.charCodeAt); + +// `ToNumeric` abstract operation +// https://tc39.es/ecma262/#sec-tonumeric +var toNumeric = function (value) { + var primValue = toPrimitive(value, 'number'); + return typeof primValue == 'bigint' ? primValue : toNumber(primValue); +}; + +// `ToNumber` abstract operation +// https://tc39.es/ecma262/#sec-tonumber +var toNumber = function (argument) { + var it = toPrimitive(argument, 'number'); + var first, third, radix, maxCode, digits, length, index, code; + if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number'); + if (typeof it == 'string' && it.length > 2) { + it = trim(it); + first = charCodeAt(it, 0); + if (first === 43 || first === 45) { + third = charCodeAt(it, 2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (charCodeAt(it, 1)) { + // fast equal of /^0b[01]+$/i + case 66: + case 98: + radix = 2; + maxCode = 49; + break; + // fast equal of /^0o[0-7]+$/i + case 79: + case 111: + radix = 8; + maxCode = 55; + break; + default: + return +it; + } + digits = stringSlice(it, 2); + length = digits.length; + for (index = 0; index < length; index++) { + code = charCodeAt(digits, index); + // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + if (code < 48 || code > maxCode) return NaN; + } return parseInt(digits, radix); + } + } return +it; +}; + +var FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1')); + +var calledWithNew = function (dummy) { + // includes check on 1..constructor(foo) case + return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); }); +}; + +// `Number` constructor +// https://tc39.es/ecma262/#sec-number-constructor +var NumberWrapper = function Number(value) { + var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value)); + return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n; +}; + +NumberWrapper.prototype = NumberPrototype; +if (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper; + +$({ global: true, constructor: true, wrap: true, forced: FORCED }, { + Number: NumberWrapper +}); + +// Use `internal/copy-constructor-properties` helper in `core-js@4` +var copyConstructorProperties = function (target, source) { + for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : ( + // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + + // ES2015 (in case, if modules with ES2015 Number statics required before): + 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' + + // ESNext + 'fromString,range' + ).split(','), j = 0, key; keys.length > j; j++) { + if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +if (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace); +if (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber); + + +/***/ }), +/* 285 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// `thisNumberValue` abstract operation +// https://tc39.es/ecma262/#sec-thisnumbervalue +module.exports = uncurryThis(1.0.valueOf); + + +/***/ }), +/* 286 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var whitespaces = __webpack_require__(287); + +var replace = uncurryThis(''.replace); +var ltrim = RegExp('^[' + whitespaces + ']+'); +var rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod = function (TYPE) { + return function ($this) { + var string = toString(requireObjectCoercible($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, '$1'); + return string; + }; +}; + +module.exports = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) +}; + + +/***/ }), +/* 287 */ +/***/ (function(module) { + + +// a string of all valid unicode whitespaces +module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), +/* 288 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.EPSILON` constant +// https://tc39.es/ecma262/#sec-number.epsilon +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + EPSILON: Math.pow(2, -52) +}); + + +/***/ }), +/* 289 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var numberIsFinite = __webpack_require__(290); + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +$({ target: 'Number', stat: true }, { isFinite: numberIsFinite }); + + +/***/ }), +/* 290 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +var globalIsFinite = global.isFinite; + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +// eslint-disable-next-line es/no-number-isfinite -- safe +module.exports = Number.isFinite || function isFinite(it) { + return typeof it == 'number' && globalIsFinite(it); +}; + + +/***/ }), +/* 291 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +// `Number.isInteger` method +// https://tc39.es/ecma262/#sec-number.isinteger +$({ target: 'Number', stat: true }, { + isInteger: isIntegralNumber +}); + + +/***/ }), +/* 292 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var floor = Math.floor; + +// `IsIntegralNumber` abstract operation +// https://tc39.es/ecma262/#sec-isintegralnumber +// eslint-disable-next-line es/no-number-isinteger -- safe +module.exports = Number.isInteger || function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + + +/***/ }), +/* 293 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.isNaN` method +// https://tc39.es/ecma262/#sec-number.isnan +$({ target: 'Number', stat: true }, { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number; + } +}); + + +/***/ }), +/* 294 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +var abs = Math.abs; + +// `Number.isSafeInteger` method +// https://tc39.es/ecma262/#sec-number.issafeinteger +$({ target: 'Number', stat: true }, { + isSafeInteger: function isSafeInteger(number) { + return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF; + } +}); + + +/***/ }), +/* 295 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MAX_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.max_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 296 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MIN_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.min_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 297 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseFloat = __webpack_require__(298); + +// `Number.parseFloat` method +// https://tc39.es/ecma262/#sec-number.parseFloat +// eslint-disable-next-line es/no-number-parsefloat -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, { + parseFloat: parseFloat +}); + + +/***/ }), +/* 298 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var charAt = uncurryThis(''.charAt); +var $parseFloat = global.parseFloat; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); })); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +module.exports = FORCED ? function parseFloat(string) { + var trimmedString = trim(toString(string)); + var result = $parseFloat(trimmedString); + return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result; +} : $parseFloat; + + +/***/ }), +/* 299 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseInt = __webpack_require__(300); + +// `Number.parseInt` method +// https://tc39.es/ecma262/#sec-number.parseint +// eslint-disable-next-line es/no-number-parseint -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, { + parseInt: parseInt +}); + + +/***/ }), +/* 300 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var $parseInt = global.parseInt; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var hex = /^[+-]?0x/i; +var exec = uncurryThis(hex.exec); +var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); })); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +module.exports = FORCED ? function parseInt(string, radix) { + var S = trim(toString(string)); + return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); +} : $parseInt; + + +/***/ }), +/* 301 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var log10 = __webpack_require__(276); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var $isFinite = isFinite; +var abs = Math.abs; +var floor = Math.floor; +var pow = Math.pow; +var round = Math.round; +var nativeToExponential = uncurryThis(1.0.toExponential); +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); + +// Edge 17- +var ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11' + // IE11- && Edge 14- + && nativeToExponential(1.255, 2) === '1.25e+0' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(12345, 3) === '1.235e+4' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(25, 0) === '3e+1'; + +// IE8- +var throwsOnInfinityFraction = function () { + return fails(function () { + nativeToExponential(1, Infinity); + }) && fails(function () { + nativeToExponential(1, -Infinity); + }); +}; + +// Safari <11 && FF <50 +var properNonFiniteThisCheck = function () { + return !fails(function () { + nativeToExponential(Infinity, Infinity); + nativeToExponential(NaN, Infinity); + }); +}; + +var FORCED = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFiniteThisCheck(); + +// `Number.prototype.toExponential` method +// https://tc39.es/ecma262/#sec-number.prototype.toexponential +$({ target: 'Number', proto: true, forced: FORCED }, { + toExponential: function toExponential(fractionDigits) { + var x = thisNumberValue(this); + if (fractionDigits === undefined) return nativeToExponential(x); + var f = toIntegerOrInfinity(fractionDigits); + if (!$isFinite(x)) return String(x); + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits'); + if (ROUNDS_PROPERLY) return nativeToExponential(x, f); + var s = ''; + var m = ''; + var e = 0; + var c = ''; + var d = ''; + if (x < 0) { + s = '-'; + x = -x; + } + if (x === 0) { + e = 0; + m = repeat('0', f + 1); + } else { + // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08 + // TODO: improve accuracy with big fraction digits + var l = log10(x); + e = floor(l); + var n = 0; + var w = pow(10, e - f); + n = round(x / w); + if (2 * x >= (2 * n + 1) * w) { + n += 1; + } + if (n >= pow(10, f + 1)) { + n /= 10; + e += 1; + } + m = $String(n); + } + if (f !== 0) { + m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1); + } + if (e === 0) { + c = '+'; + d = '0'; + } else { + c = e > 0 ? '+' : '-'; + d = $String(abs(e)); + } + m += 'e' + c + d; + return s + m; + } +}); + + +/***/ }), +/* 302 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var floor = Math.floor; +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var nativeToFixed = uncurryThis(1.0.toFixed); + +var pow = function (x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); +}; + +var log = function (x) { + var n = 0; + var x2 = x; + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + while (x2 >= 2) { + n += 1; + x2 /= 2; + } return n; +}; + +var multiply = function (data, n, c) { + var index = -1; + var c2 = c; + while (++index < 6) { + c2 += n * data[index]; + data[index] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } +}; + +var divide = function (data, n) { + var index = 6; + var c = 0; + while (--index >= 0) { + c += data[index]; + data[index] = floor(c / n); + c = (c % n) * 1e7; + } +}; + +var dataToString = function (data) { + var index = 6; + var s = ''; + while (--index >= 0) { + if (s !== '' || index === 0 || data[index] !== 0) { + var t = $String(data[index]); + s = s === '' ? t : s + repeat('0', 7 - t.length) + t; + } + } return s; +}; + +var FORCED = fails(function () { + return nativeToFixed(0.00008, 3) !== '0.000' || + nativeToFixed(0.9, 0) !== '1' || + nativeToFixed(1.255, 2) !== '1.25' || + nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToFixed({}); +}); + +// `Number.prototype.toFixed` method +// https://tc39.es/ecma262/#sec-number.prototype.tofixed +$({ target: 'Number', proto: true, forced: FORCED }, { + toFixed: function toFixed(fractionDigits) { + var number = thisNumberValue(this); + var fractDigits = toIntegerOrInfinity(fractionDigits); + var data = [0, 0, 0, 0, 0, 0]; + var sign = ''; + var result = '0'; + var e, z, j, k; + + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits'); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number) return 'NaN'; + if (number <= -1e21 || number >= 1e21) return $String(number); + if (number < 0) { + sign = '-'; + number = -number; + } + if (number > 1e-21) { + e = log(number * pow(2, 69, 1)) - 69; + z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + if (e > 0) { + multiply(data, 0, z); + j = fractDigits; + while (j >= 7) { + multiply(data, 1e7, 0); + j -= 7; + } + multiply(data, pow(10, j, 1), 0); + j = e - 1; + while (j >= 23) { + divide(data, 1 << 23); + j -= 23; + } + divide(data, 1 << j); + multiply(data, 1, 1); + divide(data, 2); + result = dataToString(data); + } else { + multiply(data, 0, z); + multiply(data, 1 << -e, 0); + result = dataToString(data) + repeat('0', fractDigits); + } + } + if (fractDigits > 0) { + k = result.length; + result = sign + (k <= fractDigits + ? '0.' + repeat('0', fractDigits - k) + result + : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits)); + } else { + result = sign + result; + } return result; + } +}); + + +/***/ }), +/* 303 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var thisNumberValue = __webpack_require__(285); + +var nativeToPrecision = uncurryThis(1.0.toPrecision); + +var FORCED = fails(function () { + // IE7- + return nativeToPrecision(1, undefined) !== '1'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToPrecision({}); +}); + +// `Number.prototype.toPrecision` method +// https://tc39.es/ecma262/#sec-number.prototype.toprecision +$({ target: 'Number', proto: true, forced: FORCED }, { + toPrecision: function toPrecision(precision) { + return precision === undefined + ? nativeToPrecision(thisNumberValue(this)) + : nativeToPrecision(thisNumberValue(this), precision); + } +}); + + +/***/ }), +/* 304 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var assign = __webpack_require__(305); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + + +/***/ }), +/* 305 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var objectKeys = __webpack_require__(73); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var propertyIsEnumerableModule = __webpack_require__(10); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty = Object.defineProperty; +var concat = uncurryThis([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +module.exports = !$assign || fails(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + + +/***/ }), +/* 306 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var create = __webpack_require__(71); + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + create: create +}); + + +/***/ }), +/* 307 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineGetter__: function __defineGetter__(P, getter) { + definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 308 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var WEBKIT = __webpack_require__(191); + +// Forced replacement object prototype accessors methods +module.exports = IS_PURE || !fails(function () { + // This feature detection crashes old WebKit + // https://github.com/zloirock/core-js/issues/232 + if (WEBKIT && WEBKIT < 535) return; + var key = Math.random(); + // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call, es/no-legacy-object-prototype-accessor-methods -- required for testing + __defineSetter__.call(null, key, function () { /* empty */ }); + delete global[key]; +}); + + +/***/ }), +/* 309 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperties = (__webpack_require__(72).f); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, { + defineProperties: defineProperties +}); + + +/***/ }), +/* 310 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperty = (__webpack_require__(44).f); + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +// eslint-disable-next-line es/no-object-defineproperty -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, { + defineProperty: defineProperty +}); + + +/***/ }), +/* 311 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineSetter__: function __defineSetter__(P, setter) { + definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 312 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $entries = (__webpack_require__(313).entries); + +// `Object.entries` method +// https://tc39.es/ecma262/#sec-object.entries +$({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } +}); + + +/***/ }), +/* 313 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var objectGetPrototypeOf = __webpack_require__(128); +var objectKeys = __webpack_require__(73); +var toIndexedObject = __webpack_require__(12); +var $propertyIsEnumerable = (__webpack_require__(10).f); + +var propertyIsEnumerable = uncurryThis($propertyIsEnumerable); +var push = uncurryThis([].push); + +// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys +// of `null` prototype objects +var IE_BUG = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-create -- safe + var O = Object.create(null); + O[2] = 2; + return !propertyIsEnumerable(O, 2); +}); + +// `Object.{ entries, values }` methods implementation +var createMethod = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + push(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; +}; + +module.exports = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod(false) +}; + + +/***/ }), +/* 314 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); + +// eslint-disable-next-line es/no-object-freeze -- safe +var $freeze = Object.freeze; +var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); }); + +// `Object.freeze` method +// https://tc39.es/ecma262/#sec-object.freeze +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + freeze: function freeze(it) { + return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 315 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var iterate = __webpack_require__(130); +var createProperty = __webpack_require__(141); + +// `Object.fromEntries` method +// https://github.com/tc39/proposal-object-from-entries +$({ target: 'Object', stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function (k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } +}); + + +/***/ }), +/* 316 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toIndexedObject = __webpack_require__(12); +var nativeGetOwnPropertyDescriptor = (__webpack_require__(5).f); +var DESCRIPTORS = __webpack_require__(6); + +var FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); }); + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { + return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key); + } +}); + + +/***/ }), +/* 317 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var ownKeys = __webpack_require__(56); +var toIndexedObject = __webpack_require__(12); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var createProperty = __webpack_require__(141); + +// `Object.getOwnPropertyDescriptors` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIndexedObject(object); + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + var keys = ownKeys(O); + var result = {}; + var index = 0; + var key, descriptor; + while (keys.length > index) { + descriptor = getOwnPropertyDescriptor(O, key = keys[index++]); + if (descriptor !== undefined) createProperty(result, key, descriptor); + } + return result; + } +}); + + +/***/ }), +/* 318 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(75).f); + +// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing +var FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); }); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + getOwnPropertyNames: getOwnPropertyNames +}); + + +/***/ }), +/* 319 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var nativeGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); }); + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(it) { + return nativeGetPrototypeOf(toObject(it)); + } +}); + + + +/***/ }), +/* 320 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var toPropertyKey = __webpack_require__(18); +var iterate = __webpack_require__(130); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-map-groupby -- testing +var nativeGroupBy = Object.groupBy; +var create = getBuiltIn('Object', 'create'); +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () { + return nativeGroupBy('ab', function (it) { + return it; + }).a.length !== 1; +}); + +// `Object.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var obj = create(null); + var k = 0; + iterate(items, function (value) { + var key = toPropertyKey(callbackfn(value, k++)); + // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys + // but since it's a `null` prototype object, we can safely use `in` + if (key in obj) push(obj[key], value); + else obj[key] = [value]; + }); + return obj; + } +}); + + +/***/ }), +/* 321 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); + +// `Object.hasOwn` method +// https://tc39.es/ecma262/#sec-object.hasown +$({ target: 'Object', stat: true }, { + hasOwn: hasOwn +}); + + +/***/ }), +/* 322 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var is = __webpack_require__(323); + +// `Object.is` method +// https://tc39.es/ecma262/#sec-object.is +$({ target: 'Object', stat: true }, { + is: is +}); + + +/***/ }), +/* 323 */ +/***/ (function(module) { + + +// `SameValue` abstract operation +// https://tc39.es/ecma262/#sec-samevalue +// eslint-disable-next-line es/no-object-is -- safe +module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; +}; + + +/***/ }), +/* 324 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $isExtensible = __webpack_require__(257); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +// eslint-disable-next-line es/no-object-isextensible -- safe +$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, { + isExtensible: $isExtensible +}); + + +/***/ }), +/* 325 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isfrozen -- safe +var $isFrozen = Object.isFrozen; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); }); + +// `Object.isFrozen` method +// https://tc39.es/ecma262/#sec-object.isfrozen +$({ target: 'Object', stat: true, forced: FORCED }, { + isFrozen: function isFrozen(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isFrozen ? $isFrozen(it) : false; + } +}); + + +/***/ }), +/* 326 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-issealed -- safe +var $isSealed = Object.isSealed; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); }); + +// `Object.isSealed` method +// https://tc39.es/ecma262/#sec-object.issealed +$({ target: 'Object', stat: true, forced: FORCED }, { + isSealed: function isSealed(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isSealed ? $isSealed(it) : false; + } +}); + + +/***/ }), +/* 327 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var nativeKeys = __webpack_require__(73); +var fails = __webpack_require__(7); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject(it)); + } +}); + + +/***/ }), +/* 328 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.get; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 329 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.set; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 330 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-preventextensions -- safe +var $preventExtensions = Object.preventExtensions; +var FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); }); + +// `Object.preventExtensions` method +// https://tc39.es/ecma262/#sec-object.preventextensions +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + preventExtensions: function preventExtensions(it) { + return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 331 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isObject = __webpack_require__(20); +var isPossiblePrototype = __webpack_require__(116); +var toObject = __webpack_require__(39); +var requireObjectCoercible = __webpack_require__(16); + +// eslint-disable-next-line es/no-object-getprototypeof -- safe +var getPrototypeOf = Object.getPrototypeOf; +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var setPrototypeOf = Object.setPrototypeOf; +var ObjectPrototype = Object.prototype; +var PROTO = '__proto__'; + +// `Object.prototype.__proto__` accessor +// https://tc39.es/ecma262/#sec-object.prototype.__proto__ +if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { + defineBuiltInAccessor(ObjectPrototype, PROTO, { + configurable: true, + get: function __proto__() { + return getPrototypeOf(toObject(this)); + }, + set: function __proto__(proto) { + var O = requireObjectCoercible(this); + if (isPossiblePrototype(proto) && isObject(O)) { + setPrototypeOf(O, proto); + } + } + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 332 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-seal -- safe +var $seal = Object.seal; +var FAILS_ON_PRIMITIVES = fails(function () { $seal(1); }); + +// `Object.seal` method +// https://tc39.es/ecma262/#sec-object.seal +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + seal: function seal(it) { + return $seal && isObject(it) ? $seal(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 333 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var setPrototypeOf = __webpack_require__(113); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +$({ target: 'Object', stat: true }, { + setPrototypeOf: setPrototypeOf +}); + + +/***/ }), +/* 334 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var defineBuiltIn = __webpack_require__(47); +var toString = __webpack_require__(335); + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true }); +} + + +/***/ }), +/* 335 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var classof = __webpack_require__(69); + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; +}; + + +/***/ }), +/* 336 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $values = (__webpack_require__(313).values); + +// `Object.values` method +// https://tc39.es/ecma262/#sec-object.values +$({ target: 'Object', stat: true }, { + values: function values(O) { + return $values(O); + } +}); + + +/***/ }), +/* 337 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseFloat = __webpack_require__(298); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +$({ global: true, forced: parseFloat !== $parseFloat }, { + parseFloat: $parseFloat +}); + + +/***/ }), +/* 338 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseInt = __webpack_require__(300); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +$({ global: true, forced: parseInt !== $parseInt }, { + parseInt: $parseInt +}); + + +/***/ }), +/* 339 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(340); +__webpack_require__(354); +__webpack_require__(356); +__webpack_require__(357); +__webpack_require__(358); +__webpack_require__(359); + + +/***/ }), +/* 340 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var IS_NODE = __webpack_require__(182); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var setSpecies = __webpack_require__(193); +var aCallable = __webpack_require__(30); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var anInstance = __webpack_require__(210); +var speciesConstructor = __webpack_require__(219); +var task = (__webpack_require__(341).set); +var microtask = __webpack_require__(344); +var hostReportErrors = __webpack_require__(349); +var perform = __webpack_require__(350); +var Queue = __webpack_require__(346); +var InternalStateModule = __webpack_require__(51); +var NativePromiseConstructor = __webpack_require__(351); +var PromiseConstructorDetection = __webpack_require__(352); +var newPromiseCapabilityModule = __webpack_require__(353); + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); +var setInternalState = InternalStateModule.set; +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var PromiseConstructor = NativePromiseConstructor; +var PromisePrototype = NativePromisePrototype; +var TypeError = global.TypeError; +var document = global.document; +var process = global.process; +var newPromiseCapability = newPromiseCapabilityModule.f; +var newGenericPromiseCapability = newPromiseCapability; + +var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject(it) && isCallable(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state === FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(new TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform(function () { + if (IS_NODE) { + process.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + if (IS_NODE) { + process.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw new TypeError("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call(then, value, + bind(internalResolve, wrapper, state), + bind(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromisePrototype); + aCallable(executor); + call(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind(internalResolve, state), bind(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable(onRejected) && onRejected; + reaction.domain = IS_NODE ? process.domain : undefined; + if (state.state === PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind(internalResolve, state); + this.reject = bind(internalReject, state); + }; + + newPromiseCapabilityModule.f = newPromiseCapability = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) { + nativeThen = NativePromisePrototype.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf) { + setPrototypeOf(NativePromisePrototype, PromisePrototype); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + Promise: PromiseConstructor +}); + +setToStringTag(PromiseConstructor, PROMISE, false, true); +setSpecies(PROMISE); + + +/***/ }), +/* 341 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var bind = __webpack_require__(84); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var fails = __webpack_require__(7); +var html = __webpack_require__(74); +var arraySlice = __webpack_require__(76); +var createElement = __webpack_require__(42); +var validateArgumentsLength = __webpack_require__(342); +var IS_IOS = __webpack_require__(343); +var IS_NODE = __webpack_require__(182); + +var set = global.setImmediate; +var clear = global.clearImmediate; +var process = global.process; +var Dispatch = global.Dispatch; +var Function = global.Function; +var MessageChannel = global.MessageChannel; +var String = global.String; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global.location; +}); + +var run = function (id) { + if (hasOwn(queue, id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global.postMessage(String(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable(handler) ? handler : Function(handler); + var args = arraySlice(arguments, 1); + queue[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue[id]; + }; + // Node.js 0.8- + if (IS_NODE) { + defer = function (id) { + process.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global.addEventListener && + isCallable(global.postMessage) && + !global.importScripts && + $location && $location.protocol !== 'file:' && + !fails(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +module.exports = { + set: set, + clear: clear +}; + + +/***/ }), +/* 342 */ +/***/ (function(module) { + + +var $TypeError = TypeError; + +module.exports = function (passed, required) { + if (passed < required) throw new $TypeError('Not enough arguments'); + return passed; +}; + + +/***/ }), +/* 343 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +// eslint-disable-next-line redos/no-vulnerable -- safe +module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent); + + +/***/ }), +/* 344 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var bind = __webpack_require__(84); +var macrotask = (__webpack_require__(341).set); +var Queue = __webpack_require__(346); +var IS_IOS = __webpack_require__(343); +var IS_IOS_PEBBLE = __webpack_require__(347); +var IS_WEBOS_WEBKIT = __webpack_require__(348); +var IS_NODE = __webpack_require__(182); + +var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; +var document = global.document; +var process = global.process; +var Promise = global.Promise; +var microtask = safeGetBuiltIn('queueMicrotask'); +var notify, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask) { + var queue = new Queue(); + + var flush = function () { + var parent, fn; + if (IS_NODE && (parent = process.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { + toggle = true; + node = document.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise; + then = bind(promise.then, promise); + notify = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE) { + notify = function () { + process.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind(macrotask, global); + notify = function () { + macrotask(flush); + }; + } + + microtask = function (fn) { + if (!queue.head) notify(); + queue.add(fn); + }; +} + +module.exports = microtask; + + +/***/ }), +/* 345 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Avoid NodeJS experimental warning +module.exports = function (name) { + if (!DESCRIPTORS) return global[name]; + var descriptor = getOwnPropertyDescriptor(global, name); + return descriptor && descriptor.value; +}; + + +/***/ }), +/* 346 */ +/***/ (function(module) { + + +var Queue = function () { + this.head = null; + this.tail = null; +}; + +Queue.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +module.exports = Queue; + + +/***/ }), +/* 347 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined'; + + +/***/ }), +/* 348 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /web0s(?!.*chrome)/i.test(userAgent); + + +/***/ }), +/* 349 */ +/***/ (function(module) { + + +module.exports = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length === 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 350 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + + +/***/ }), +/* 351 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global.Promise; + + +/***/ }), +/* 352 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var NativePromiseConstructor = __webpack_require__(351); +var isCallable = __webpack_require__(21); +var isForced = __webpack_require__(67); +var inspectSource = __webpack_require__(50); +var wellKnownSymbol = __webpack_require__(33); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_PURE = __webpack_require__(36); +var V8_VERSION = __webpack_require__(27); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var SPECIES = wellKnownSymbol('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution + if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT; +}); + +module.exports = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT, + SUBCLASSING: SUBCLASSING +}; + + +/***/ }), +/* 353 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); + +var $TypeError = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable(resolve); + this.reject = aCallable(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + + +/***/ }), +/* 354 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 355 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NativePromiseConstructor = __webpack_require__(351); +var checkCorrectnessOfIteration = __webpack_require__(164); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +module.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) { + NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ }); +}); + + +/***/ }), +/* 356 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var NativePromiseConstructor = __webpack_require__(351); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + + +/***/ }), +/* 357 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate(iterable, function (promise) { + call($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 358 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + var capabilityReject = capability.reject; + capabilityReject(r); + return capability.promise; + } +}); + + +/***/ }), +/* 359 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var promiseResolve = __webpack_require__(360); + +var PromiseConstructorWrapper = getBuiltIn('Promise'); +var CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x); + } +}); + + +/***/ }), +/* 360 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var newPromiseCapability = __webpack_require__(353); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + + +/***/ }), +/* 361 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.allSettled` method +// https://tc39.es/ecma262/#sec-promise.allsettled +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 362 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var getBuiltIn = __webpack_require__(23); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +var PROMISE_ANY_ERROR = 'No one promise resolved'; + +// `Promise.any` method +// https://tc39.es/ecma262/#sec-promise.any +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + any: function any(iterable) { + var C = this; + var AggregateError = getBuiltIn('AggregateError'); + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var errors = []; + var counter = 0; + var remaining = 1; + var alreadyResolved = false; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyRejected = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyRejected || alreadyResolved) return; + alreadyResolved = true; + resolve(value); + }, function (error) { + if (alreadyRejected || alreadyResolved) return; + alreadyRejected = true; + errors[index] = error; + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + }); + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 363 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var fails = __webpack_require__(7); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var speciesConstructor = __webpack_require__(219); +var promiseResolve = __webpack_require__(360); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 +var NON_GENERIC = !!NativePromiseConstructor && fails(function () { + // eslint-disable-next-line unicorn/no-thenable -- required for testing + NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); +}); + +// `Promise.prototype.finally` method +// https://tc39.es/ecma262/#sec-promise.prototype.finally +$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { + 'finally': function (onFinally) { + var C = speciesConstructor(this, getBuiltIn('Promise')); + var isFunction = isCallable(onFinally); + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); + } +}); + +// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['finally']; + if (NativePromisePrototype['finally'] !== method) { + defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true }); + } +} + + +/***/ }), +/* 364 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); + +// `Promise.withResolvers` method +// https://github.com/tc39/proposal-promise-with-resolvers +$({ target: 'Promise', stat: true }, { + withResolvers: function withResolvers() { + var promiseCapability = newPromiseCapabilityModule.f(this); + return { + promise: promiseCapability.promise, + resolve: promiseCapability.resolve, + reject: promiseCapability.reject + }; + } +}); + + +/***/ }), +/* 365 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var functionApply = __webpack_require__(94); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var fails = __webpack_require__(7); + +// MS Edge argumentsList argument is optional +var OPTIONAL_ARGUMENTS_LIST = !fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.apply(function () { /* empty */ }); +}); + +// `Reflect.apply` method +// https://tc39.es/ecma262/#sec-reflect.apply +$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, { + apply: function apply(target, thisArgument, argumentsList) { + return functionApply(aCallable(target), thisArgument, anObject(argumentsList)); + } +}); + + +/***/ }), +/* 366 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var bind = __webpack_require__(248); +var aConstructor = __webpack_require__(220); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var fails = __webpack_require__(7); + +var nativeConstruct = getBuiltIn('Reflect', 'construct'); +var ObjectPrototype = Object.prototype; +var push = [].push; + +// `Reflect.construct` method +// https://tc39.es/ecma262/#sec-reflect.construct +// MS Edge supports only 2 arguments and argumentsList argument is optional +// FF Nightly sets third argument as `new.target`, but does not create `this` from it +var NEW_TARGET_BUG = fails(function () { + function F() { /* empty */ } + return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F); +}); + +var ARGS_BUG = !fails(function () { + nativeConstruct(function () { /* empty */ }); +}); + +var FORCED = NEW_TARGET_BUG || ARGS_BUG; + +$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, { + construct: function construct(Target, args /* , newTarget */) { + aConstructor(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget); + if (Target === newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: return new Target(); + case 1: return new Target(args[0]); + case 2: return new Target(args[0], args[1]); + case 3: return new Target(args[0], args[1], args[2]); + case 4: return new Target(args[0], args[1], args[2], args[3]); + } + // w/o altered newTarget, lot of arguments case + var $args = [null]; + apply(push, $args, args); + return new (apply(bind, Target, $args))(); + } + // with altered newTarget, not support built-in constructors + var proto = newTarget.prototype; + var instance = create(isObject(proto) ? proto : ObjectPrototype); + var result = apply(Target, instance, args); + return isObject(result) ? result : instance; + } +}); + + +/***/ }), +/* 367 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); +var definePropertyModule = __webpack_require__(44); +var fails = __webpack_require__(7); + +// MS Edge has broken Reflect.defineProperty - throwing instead of returning false +var ERROR_INSTEAD_OF_FALSE = fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 }); +}); + +// `Reflect.defineProperty` method +// https://tc39.es/ecma262/#sec-reflect.defineproperty +$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + var key = toPropertyKey(propertyKey); + anObject(attributes); + try { + definePropertyModule.f(target, key, attributes); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 368 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Reflect.deleteProperty` method +// https://tc39.es/ecma262/#sec-reflect.deleteproperty +$({ target: 'Reflect', stat: true }, { + deleteProperty: function deleteProperty(target, propertyKey) { + var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey); + return descriptor && !descriptor.configurable ? false : delete target[propertyKey]; + } +}); + + +/***/ }), +/* 369 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var anObject = __webpack_require__(46); +var isDataDescriptor = __webpack_require__(370); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); + +// `Reflect.get` method +// https://tc39.es/ecma262/#sec-reflect.get +function get(target, propertyKey /* , receiver */) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var descriptor, prototype; + if (anObject(target) === receiver) return target[propertyKey]; + descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey); + if (descriptor) return isDataDescriptor(descriptor) + ? descriptor.value + : descriptor.get === undefined ? undefined : call(descriptor.get, receiver); + if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver); +} + +$({ target: 'Reflect', stat: true }, { + get: get +}); + + +/***/ }), +/* 370 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); + +module.exports = function (descriptor) { + return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable')); +}; + + +/***/ }), +/* 371 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptorModule = __webpack_require__(5); + +// `Reflect.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor +$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + } +}); + + +/***/ }), +/* 372 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var objectGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +// `Reflect.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.getprototypeof +$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(target) { + return objectGetPrototypeOf(anObject(target)); + } +}); + + +/***/ }), +/* 373 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Reflect.has` method +// https://tc39.es/ecma262/#sec-reflect.has +$({ target: 'Reflect', stat: true }, { + has: function has(target, propertyKey) { + return propertyKey in target; + } +}); + + +/***/ }), +/* 374 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var $isExtensible = __webpack_require__(257); + +// `Reflect.isExtensible` method +// https://tc39.es/ecma262/#sec-reflect.isextensible +$({ target: 'Reflect', stat: true }, { + isExtensible: function isExtensible(target) { + anObject(target); + return $isExtensible(target); + } +}); + + +/***/ }), +/* 375 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ownKeys = __webpack_require__(56); + +// `Reflect.ownKeys` method +// https://tc39.es/ecma262/#sec-reflect.ownkeys +$({ target: 'Reflect', stat: true }, { + ownKeys: ownKeys +}); + + +/***/ }), +/* 376 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var anObject = __webpack_require__(46); +var FREEZING = __webpack_require__(259); + +// `Reflect.preventExtensions` method +// https://tc39.es/ecma262/#sec-reflect.preventextensions +$({ target: 'Reflect', stat: true, sham: !FREEZING }, { + preventExtensions: function preventExtensions(target) { + anObject(target); + try { + var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions'); + if (objectPreventExtensions) objectPreventExtensions(target); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 377 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var isDataDescriptor = __webpack_require__(370); +var fails = __webpack_require__(7); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); +var createPropertyDescriptor = __webpack_require__(11); + +// `Reflect.set` method +// https://tc39.es/ecma262/#sec-reflect.set +function set(target, propertyKey, V /* , receiver */) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + var existingDescriptor, prototype, setter; + if (!ownDescriptor) { + if (isObject(prototype = getPrototypeOf(target))) { + return set(prototype, propertyKey, V, receiver); + } + ownDescriptor = createPropertyDescriptor(0); + } + if (isDataDescriptor(ownDescriptor)) { + if (ownDescriptor.writable === false || !isObject(receiver)) return false; + if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + definePropertyModule.f(receiver, propertyKey, existingDescriptor); + } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V)); + } else { + setter = ownDescriptor.set; + if (setter === undefined) return false; + call(setter, receiver, V); + } return true; +} + +// MS Edge 17-18 Reflect.set allows setting the property to object +// with non-writable property on the prototype +var MS_EDGE_BUG = fails(function () { + var Constructor = function () { /* empty */ }; + var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true }); + // eslint-disable-next-line es/no-reflect -- required for testing + return Reflect.set(Constructor.prototype, 'a', 1, object) !== false; +}); + +$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, { + set: set +}); + + +/***/ }), +/* 378 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var aPossiblePrototype = __webpack_require__(115); +var objectSetPrototypeOf = __webpack_require__(113); + +// `Reflect.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.setprototypeof +if (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, { + setPrototypeOf: function setPrototypeOf(target, proto) { + anObject(target); + aPossiblePrototype(proto); + try { + objectSetPrototypeOf(target, proto); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 379 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +$({ global: true }, { Reflect: {} }); + +// Reflect[@@toStringTag] property +// https://tc39.es/ecma262/#sec-reflect-@@tostringtag +setToStringTag(global.Reflect, 'Reflect', true); + + +/***/ }), +/* 380 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var inheritIfRequired = __webpack_require__(118); +var createNonEnumerableProperty = __webpack_require__(43); +var create = __webpack_require__(71); +var getOwnPropertyNames = (__webpack_require__(57).f); +var isPrototypeOf = __webpack_require__(24); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getRegExpFlags = __webpack_require__(382); +var stickyHelpers = __webpack_require__(384); +var proxyAccessor = __webpack_require__(117); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var enforceInternalState = (__webpack_require__(51).enforce); +var setSpecies = __webpack_require__(193); +var wellKnownSymbol = __webpack_require__(33); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var MATCH = wellKnownSymbol('match'); +var NativeRegExp = global.RegExp; +var RegExpPrototype = NativeRegExp.prototype; +var SyntaxError = global.SyntaxError; +var exec = uncurryThis(RegExpPrototype.exec); +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); +// TODO: Use only proper RegExpIdentifierName +var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/; +var re1 = /a/g; +var re2 = /a/g; + +// "new" should create a new object, old webkit bug +var CORRECT_NEW = new NativeRegExp(re1) !== re1; + +var MISSED_STICKY = stickyHelpers.MISSED_STICKY; +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; + +var BASE_FORCED = DESCRIPTORS && + (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () { + re2[MATCH] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i'; + })); + +var handleDotAll = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var brackets = false; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + result += chr + charAt(string, ++index); + continue; + } + if (!brackets && chr === '.') { + result += '[\\s\\S]'; + } else { + if (chr === '[') { + brackets = true; + } else if (chr === ']') { + brackets = false; + } result += chr; + } + } return result; +}; + +var handleNCG = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var named = []; + var names = create(null); + var brackets = false; + var ncg = false; + var groupid = 0; + var groupname = ''; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + chr += charAt(string, ++index); + } else if (chr === ']') { + brackets = false; + } else if (!brackets) switch (true) { + case chr === '[': + brackets = true; + break; + case chr === '(': + if (exec(IS_NCG, stringSlice(string, index + 1))) { + index += 2; + ncg = true; + } + result += chr; + groupid++; + continue; + case chr === '>' && ncg: + if (groupname === '' || hasOwn(names, groupname)) { + throw new SyntaxError('Invalid capture group name'); + } + names[groupname] = true; + named[named.length] = [groupname, groupid]; + ncg = false; + groupname = ''; + continue; + } + if (ncg) groupname += chr; + else result += chr; + } return [result, named]; +}; + +// `RegExp` constructor +// https://tc39.es/ecma262/#sec-regexp-constructor +if (isForced('RegExp', BASE_FORCED)) { + var RegExpWrapper = function RegExp(pattern, flags) { + var thisIsRegExp = isPrototypeOf(RegExpPrototype, this); + var patternIsRegExp = isRegExp(pattern); + var flagsAreUndefined = flags === undefined; + var groups = []; + var rawPattern = pattern; + var rawFlags, dotAll, sticky, handled, result, state; + + if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) { + return pattern; + } + + if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) { + pattern = pattern.source; + if (flagsAreUndefined) flags = getRegExpFlags(rawPattern); + } + + pattern = pattern === undefined ? '' : toString(pattern); + flags = flags === undefined ? '' : toString(flags); + rawPattern = pattern; + + if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) { + dotAll = !!flags && stringIndexOf(flags, 's') > -1; + if (dotAll) flags = replace(flags, /s/g, ''); + } + + rawFlags = flags; + + if (MISSED_STICKY && 'sticky' in re1) { + sticky = !!flags && stringIndexOf(flags, 'y') > -1; + if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, ''); + } + + if (UNSUPPORTED_NCG) { + handled = handleNCG(pattern); + pattern = handled[0]; + groups = handled[1]; + } + + result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper); + + if (dotAll || sticky || groups.length) { + state = enforceInternalState(result); + if (dotAll) { + state.dotAll = true; + state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags); + } + if (sticky) state.sticky = true; + if (groups.length) state.groups = groups; + } + + if (pattern !== rawPattern) try { + // fails in old engines, but we have no alternatives for unsupported regex syntax + createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern); + } catch (error) { /* empty */ } + + return result; + }; + + for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) { + proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]); + } + + RegExpPrototype.constructor = RegExpWrapper; + RegExpWrapper.prototype = RegExpPrototype; + defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true }); +} + +// https://tc39.es/ecma262/#sec-get-regexp-@@species +setSpecies('RegExp'); + + +/***/ }), +/* 381 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +// `IsRegExp` abstract operation +// https://tc39.es/ecma262/#sec-isregexp +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp'); +}; + + +/***/ }), +/* 382 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var regExpFlags = __webpack_require__(383); + +var RegExpPrototype = RegExp.prototype; + +module.exports = function (R) { + var flags = R.flags; + return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) + ? call(regExpFlags, R) : flags; +}; + + +/***/ }), +/* 383 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); + +// `RegExp.prototype.flags` getter implementation +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; +}; + + +/***/ }), +/* 384 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError +var $RegExp = global.RegExp; + +var UNSUPPORTED_Y = fails(function () { + var re = $RegExp('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') !== null; +}); + +// UC Browser bug +// https://github.com/zloirock/core-js/issues/1008 +var MISSED_STICKY = UNSUPPORTED_Y || fails(function () { + return !$RegExp('a', 'y').sticky; +}); + +var BROKEN_CARET = UNSUPPORTED_Y || fails(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') !== null; +}); + +module.exports = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y +}; + + +/***/ }), +/* 385 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('.', 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); +}); + + +/***/ }), +/* 386 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('(?<a>b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$<a>c') !== 'bc'; +}); + + +/***/ }), +/* 387 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.dotAll` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall +if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) { + defineBuiltInAccessor(RegExpPrototype, 'dotAll', { + configurable: true, + get: function dotAll() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).dotAll; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 388 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var exec = __webpack_require__(389); + +// `RegExp.prototype.exec` method +// https://tc39.es/ecma262/#sec-regexp.prototype.exec +$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec +}); + + +/***/ }), +/* 389 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ +/* eslint-disable regexp/no-useless-quantifier -- testing */ +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var regexpFlags = __webpack_require__(383); +var stickyHelpers = __webpack_require__(384); +var shared = __webpack_require__(34); +var create = __webpack_require__(71); +var getInternalState = (__webpack_require__(51).get); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var nativeReplace = shared('native-string-replace', String.prototype.replace); +var nativeExec = RegExp.prototype.exec; +var patchedExec = nativeExec; +var charAt = uncurryThis(''.charAt); +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); + +var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call(nativeExec, re1, 'a'); + call(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; +})(); + +var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + +// nonparticipating capturing group, copied from es5-shim's String#split patch. +var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + +if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice(match.input, charsAdded); + match[0] = stringSlice(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; +} + +module.exports = patchedExec; + + +/***/ }), +/* 390 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var regExpFlags = __webpack_require__(383); +var fails = __webpack_require__(7); + +// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError +var RegExp = global.RegExp; +var RegExpPrototype = RegExp.prototype; + +var FORCED = DESCRIPTORS && fails(function () { + var INDICES_SUPPORT = true; + try { + RegExp('.', 'd'); + } catch (error) { + INDICES_SUPPORT = false; + } + + var O = {}; + // modern V8 bug + var calls = ''; + var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; + + var addGetter = function (key, chr) { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(O, key, { get: function () { + calls += chr; + return true; + } }); + }; + + var pairs = { + dotAll: 's', + global: 'g', + ignoreCase: 'i', + multiline: 'm', + sticky: 'y' + }; + + if (INDICES_SUPPORT) pairs.hasIndices = 'd'; + + for (var key in pairs) addGetter(key, pairs[key]); + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O); + + return result !== expected || calls !== expected; +}); + +// `RegExp.prototype.flags` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', { + configurable: true, + get: regExpFlags +}); + + +/***/ }), +/* 391 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var MISSED_STICKY = (__webpack_require__(384).MISSED_STICKY); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.sticky` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky +if (DESCRIPTORS && MISSED_STICKY) { + defineBuiltInAccessor(RegExpPrototype, 'sticky', { + configurable: true, + get: function sticky() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).sticky; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 392 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var anObject = __webpack_require__(46); +var toString = __webpack_require__(68); + +var DELEGATES_TO_EXEC = function () { + var execCalled = false; + var re = /[ac]/; + re.exec = function () { + execCalled = true; + return /./.exec.apply(this, arguments); + }; + return re.test('abc') === true && execCalled; +}(); + +var nativeTest = /./.test; + +// `RegExp.prototype.test` method +// https://tc39.es/ecma262/#sec-regexp.prototype.test +$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { + test: function (S) { + var R = anObject(this); + var string = toString(S); + var exec = R.exec; + if (!isCallable(exec)) return call(nativeTest, R, string); + var result = call(exec, R, string); + if (result === null) return false; + anObject(result); + return true; + } +}); + + +/***/ }), +/* 393 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var defineBuiltIn = __webpack_require__(47); +var anObject = __webpack_require__(46); +var $toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var getRegExpFlags = __webpack_require__(382); + +var TO_STRING = 'toString'; +var RegExpPrototype = RegExp.prototype; +var nativeToString = RegExpPrototype[TO_STRING]; + +var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; }); +// FF44- RegExp#toString has a wrong name +var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING; + +// `RegExp.prototype.toString` method +// https://tc39.es/ecma262/#sec-regexp.prototype.tostring +if (NOT_GENERIC || INCORRECT_NAME) { + defineBuiltIn(RegExpPrototype, TO_STRING, function toString() { + var R = anObject(this); + var pattern = $toString(R.source); + var flags = $toString(getRegExpFlags(R)); + return '/' + pattern + '/' + flags; + }, { unsafe: true }); +} + + +/***/ }), +/* 394 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(395); + + +/***/ }), +/* 395 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Set` constructor +// https://tc39.es/ecma262/#sec-set-objects +collection('Set', function (init) { + return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 396 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var difference = __webpack_require__(397); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, { + difference: difference +}); + + +/***/ }), +/* 397 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function difference(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = clone(O); + if (size(O) <= otherRec.size) iterateSet(O, function (e) { + if (otherRec.includes(e)) remove(result, e); + }); + else iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) remove(result, e); + }); + return result; +}; + + +/***/ }), +/* 398 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var has = (__webpack_require__(399).has); + +// Perform ? RequireInternalSlot(M, [[SetData]]) +module.exports = function (it) { + has(it); + return it; +}; + + +/***/ }), +/* 399 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-set -- safe +var SetPrototype = Set.prototype; + +module.exports = { + // eslint-disable-next-line es/no-set -- safe + Set: Set, + add: uncurryThis(SetPrototype.add), + has: uncurryThis(SetPrototype.has), + remove: uncurryThis(SetPrototype['delete']), + proto: SetPrototype +}; + + +/***/ }), +/* 400 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var SetHelpers = __webpack_require__(399); +var iterate = __webpack_require__(401); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; + +module.exports = function (set) { + var result = new Set(); + iterate(set, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 401 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var iterateSimple = __webpack_require__(402); +var SetHelpers = __webpack_require__(399); + +var Set = SetHelpers.Set; +var SetPrototype = SetHelpers.proto; +var forEach = uncurryThis(SetPrototype.forEach); +var keys = uncurryThis(SetPrototype.keys); +var next = keys(new Set()).next; + +module.exports = function (set, fn, interruptible) { + return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn); +}; + + +/***/ }), +/* 402 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); + +module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) { + var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator; + var next = record.next; + var step, result; + while (!(step = call(next, iterator)).done) { + result = fn(step.value); + if (result !== undefined) return result; + } +}; + + +/***/ }), +/* 403 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var SetHelpers = __webpack_require__(399); + +module.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) { + return set.size; +}; + + +/***/ }), +/* 404 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var call = __webpack_require__(8); +var toIntegerOrInfinity = __webpack_require__(61); +var getIteratorDirect = __webpack_require__(405); + +var INVALID_SIZE = 'Invalid size'; +var $RangeError = RangeError; +var $TypeError = TypeError; +var max = Math.max; + +var SetRecord = function (set, intSize) { + this.set = set; + this.size = max(intSize, 0); + this.has = aCallable(set.has); + this.keys = aCallable(set.keys); +}; + +SetRecord.prototype = { + getIterator: function () { + return getIteratorDirect(anObject(call(this.keys, this.set))); + }, + includes: function (it) { + return call(this.has, this.set, it); + } +}; + +// `GetSetRecord` abstract operation +// https://tc39.es/proposal-set-methods/#sec-getsetrecord +module.exports = function (obj) { + anObject(obj); + var numSize = +obj.size; + // NOTE: If size is undefined, then numSize will be NaN + // eslint-disable-next-line no-self-compare -- NaN check + if (numSize !== numSize) throw new $TypeError(INVALID_SIZE); + var intSize = toIntegerOrInfinity(numSize); + if (intSize < 0) throw new $RangeError(INVALID_SIZE); + return new SetRecord(obj, intSize); +}; + + +/***/ }), +/* 405 */ +/***/ (function(module) { + + +// `GetIteratorDirect(obj)` abstract operation +// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect +module.exports = function (obj) { + return { + iterator: obj, + next: obj.next, + done: false + }; +}; + + +/***/ }), +/* 406 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +var createSetLike = function (size) { + return { + size: size, + has: function () { + return false; + }, + keys: function () { + return { + next: function () { + return { done: true }; + } + }; + } + }; +}; + +module.exports = function (name) { + var Set = getBuiltIn('Set'); + try { + new Set()[name](createSetLike(0)); + try { + // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it + // https://github.com/tc39/proposal-set-methods/pull/88 + new Set()[name](createSetLike(-1)); + return false; + } catch (error2) { + return true; + } + } catch (error) { + return false; + } +}; + + +/***/ }), +/* 407 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var intersection = __webpack_require__(408); +var setMethodAcceptSetLike = __webpack_require__(406); + +var INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () { + // eslint-disable-next-line es/no-array-from, es/no-set -- testing + return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2'; +}); + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { + intersection: intersection +}); + + +/***/ }), +/* 408 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; +var has = SetHelpers.has; + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +module.exports = function intersection(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = new Set(); + + if (size(O) > otherRec.size) { + iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) add(result, e); + }); + } else { + iterateSet(O, function (e) { + if (otherRec.includes(e)) add(result, e); + }); + } + + return result; +}; + + +/***/ }), +/* 409 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isDisjointFrom = __webpack_require__(410); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isDisjointFrom` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, { + isDisjointFrom: isDisjointFrom +}); + + +/***/ }), +/* 410 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isDisjointFrom` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom +module.exports = function isDisjointFrom(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) <= otherRec.size) return iterateSet(O, function (e) { + if (otherRec.includes(e)) return false; + }, true) !== false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 411 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSubsetOf = __webpack_require__(412); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSubsetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, { + isSubsetOf: isSubsetOf +}); + + +/***/ }), +/* 412 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var size = __webpack_require__(403); +var iterate = __webpack_require__(401); +var getSetRecord = __webpack_require__(404); + +// `Set.prototype.isSubsetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf +module.exports = function isSubsetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) > otherRec.size) return false; + return iterate(O, function (e) { + if (!otherRec.includes(e)) return false; + }, true) !== false; +}; + + +/***/ }), +/* 413 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSupersetOf = __webpack_require__(414); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSupersetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, { + isSupersetOf: isSupersetOf +}); + + +/***/ }), +/* 414 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isSupersetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf +module.exports = function isSupersetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) < otherRec.size) return false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (!has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 415 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var symmetricDifference = __webpack_require__(416); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, { + symmetricDifference: symmetricDifference +}); + + +/***/ }), +/* 416 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +var add = SetHelpers.add; +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function symmetricDifference(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (e) { + if (has(O, e)) remove(result, e); + else add(result, e); + }); + return result; +}; + + +/***/ }), +/* 417 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var union = __webpack_require__(418); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, { + union: union +}); + + +/***/ }), +/* 418 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var add = (__webpack_require__(399).add); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +module.exports = function union(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 419 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var charAt = uncurryThis(''.charAt); + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-array-string-prototype-at -- safe + return '𠮷'.at(-2) !== '\uD842'; +}); + +// `String.prototype.at` method +// https://tc39.es/ecma262/#sec-string.prototype.at +$({ target: 'String', proto: true, forced: FORCED }, { + at: function at(index) { + var S = toString(requireObjectCoercible(this)); + var len = S.length; + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : charAt(S, k); + } +}); + + +/***/ }), +/* 420 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var codeAt = (__webpack_require__(421).codeAt); + +// `String.prototype.codePointAt` method +// https://tc39.es/ecma262/#sec-string.prototype.codepointat +$({ target: 'String', proto: true }, { + codePointAt: function codePointAt(pos) { + return codeAt(this, pos); + } +}); + + +/***/ }), +/* 421 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var stringSlice = uncurryThis(''.slice); + +var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +module.exports = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) +}; + + +/***/ }), +/* 422 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var slice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.endsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.endswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = that.length; + var end = endPosition === undefined ? len : min(toLength(endPosition), len); + var search = toString(searchString); + return slice(that, end - search.length, end) === search; + } +}); + + +/***/ }), +/* 423 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isRegExp = __webpack_require__(381); + +var $TypeError = TypeError; + +module.exports = function (it) { + if (isRegExp(it)) { + throw new $TypeError("The method doesn't accept regular expressions"); + } return it; +}; + + +/***/ }), +/* 424 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +module.exports = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; +}; + + +/***/ }), +/* 425 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toAbsoluteIndex = __webpack_require__(60); + +var $RangeError = RangeError; +var fromCharCode = String.fromCharCode; +// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing +var $fromCodePoint = String.fromCodePoint; +var join = uncurryThis([].join); + +// length should be 1, old FF problem +var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1; + +// `String.fromCodePoint` method +// https://tc39.es/ecma262/#sec-string.fromcodepoint +$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + fromCodePoint: function fromCodePoint(x) { + var elements = []; + var length = arguments.length; + var i = 0; + var code; + while (length > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point'); + elements[i] = code < 0x10000 + ? fromCharCode(code) + : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00); + } return join(elements, ''); + } +}); + + +/***/ }), +/* 426 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var correctIsRegExpLogic = __webpack_require__(424); + +var stringIndexOf = uncurryThis(''.indexOf); + +// `String.prototype.includes` method +// https://tc39.es/ecma262/#sec-string.prototype.includes +$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString(requireObjectCoercible(this)), + toString(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } +}); + + +/***/ }), +/* 427 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var charCodeAt = uncurryThis(''.charCodeAt); + +// `String.prototype.isWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true }, { + isWellFormed: function isWellFormed() { + var S = toString(requireObjectCoercible(this)); + var length = S.length; + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) continue; + // unpaired surrogate + if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false; + } return true; + } +}); + + +/***/ }), +/* 428 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); +var toString = __webpack_require__(68); +var InternalStateModule = __webpack_require__(51); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator(String, 'String', function (iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject(point, false); +}); + + +/***/ }), +/* 429 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var getMethod = __webpack_require__(29); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); + +// @@match logic +fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) { + return [ + // `String.prototype.match` method + // https://tc39.es/ecma262/#sec-string.prototype.match + function match(regexp) { + var O = requireObjectCoercible(this); + var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH); + return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O)); + }, + // `RegExp.prototype[@@match]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@match + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeMatch, rx, S); + + if (res.done) return res.value; + + if (!rx.global) return regExpExec(rx, S); + + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + var A = []; + var n = 0; + var result; + while ((result = regExpExec(rx, S)) !== null) { + var matchStr = toString(result[0]); + A[n] = matchStr; + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + n++; + } + return n === 0 ? null : A; + } + ]; +}); + + +/***/ }), +/* 430 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var regexpExec = __webpack_require__(389); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var createNonEnumerableProperty = __webpack_require__(43); + +var SPECIES = wellKnownSymbol('species'); +var RegExpPrototype = RegExp.prototype; + +module.exports = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol(KEY); + + var DELEGATES_TO_SYMBOL = !fails(function () { + // String methods call symbol-named RegExp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) !== 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var $exec = regexp.exec; + if ($exec === regexpExec || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) }; + } + return { done: true, value: call(nativeMethod, str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); +}; + + +/***/ }), +/* 431 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); + +// `AdvanceStringIndex` abstract operation +// https://tc39.es/ecma262/#sec-advancestringindex +module.exports = function (S, index, unicode) { + return index + (unicode ? charAt(S, index).length : 1); +}; + + +/***/ }), +/* 432 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var regexpExec = __webpack_require__(389); + +var $TypeError = TypeError; + +// `RegExpExec` abstract operation +// https://tc39.es/ecma262/#sec-regexpexec +module.exports = function (R, S) { + var exec = R.exec; + if (isCallable(exec)) { + var result = call(exec, R, S); + if (result !== null) anObject(result); + return result; + } + if (classof(R) === 'RegExp') return call(regexpExec, R, S); + throw new $TypeError('RegExp#exec called on incompatible receiver'); +}; + + +/***/ }), +/* 433 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-string-prototype-matchall -- safe */ +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(85); +var createIteratorConstructor = __webpack_require__(170); +var createIterResultObject = __webpack_require__(172); +var requireObjectCoercible = __webpack_require__(16); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var classof = __webpack_require__(15); +var isRegExp = __webpack_require__(381); +var getRegExpFlags = __webpack_require__(382); +var getMethod = __webpack_require__(29); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); +var InternalStateModule = __webpack_require__(51); +var IS_PURE = __webpack_require__(36); + +var MATCH_ALL = wellKnownSymbol('matchAll'); +var REGEXP_STRING = 'RegExp String'; +var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR); +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; +var stringIndexOf = uncurryThis(''.indexOf); +var nativeMatchAll = uncurryThis(''.matchAll); + +var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () { + nativeMatchAll('a', /./); +}); + +var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) { + setInternalState(this, { + type: REGEXP_STRING_ITERATOR, + regexp: regexp, + string: string, + global: $global, + unicode: fullUnicode, + done: false + }); +}, REGEXP_STRING, function next() { + var state = getInternalState(this); + if (state.done) return createIterResultObject(undefined, true); + var R = state.regexp; + var S = state.string; + var match = regExpExec(R, S); + if (match === null) { + state.done = true; + return createIterResultObject(undefined, true); + } + if (state.global) { + if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode); + return createIterResultObject(match, false); + } + state.done = true; + return createIterResultObject(match, false); +}); + +var $matchAll = function (string) { + var R = anObject(this); + var S = toString(string); + var C = speciesConstructor(R, RegExp); + var flags = toString(getRegExpFlags(R)); + var matcher, $global, fullUnicode; + matcher = new C(C === RegExp ? R.source : R, flags); + $global = !!~stringIndexOf(flags, 'g'); + fullUnicode = !!~stringIndexOf(flags, 'u'); + matcher.lastIndex = toLength(R.lastIndex); + return new $RegExpStringIterator(matcher, S, $global, fullUnicode); +}; + +// `String.prototype.matchAll` method +// https://tc39.es/ecma262/#sec-string.prototype.matchall +$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, { + matchAll: function matchAll(regexp) { + var O = requireObjectCoercible(this); + var flags, S, matcher, rx; + if (!isNullOrUndefined(regexp)) { + if (isRegExp(regexp)) { + flags = toString(requireObjectCoercible(getRegExpFlags(regexp))); + if (!~stringIndexOf(flags, 'g')) throw new $TypeError('`.matchAll` does not allow non-global regexes'); + } + if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + matcher = getMethod(regexp, MATCH_ALL); + if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll; + if (matcher) return call(matcher, regexp, O); + } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + S = toString(O); + rx = new RegExp(regexp, 'g'); + return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S); + } +}); + +IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll); + + +/***/ }), +/* 434 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padEnd = (__webpack_require__(240).end); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.padend +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padEnd: function padEnd(maxLength /* , fillString = ' ' */) { + return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 435 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/zloirock/core-js/issues/280 +var userAgent = __webpack_require__(28); + +module.exports = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent); + + +/***/ }), +/* 436 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padStart = (__webpack_require__(240).start); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padStart` method +// https://tc39.es/ecma262/#sec-string.prototype.padstart +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padStart: function padStart(maxLength /* , fillString = ' ' */) { + return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 437 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIndexedObject = __webpack_require__(12); +var toObject = __webpack_require__(39); +var toString = __webpack_require__(68); +var lengthOfArrayLike = __webpack_require__(63); + +var push = uncurryThis([].push); +var join = uncurryThis([].join); + +// `String.raw` method +// https://tc39.es/ecma262/#sec-string.raw +$({ target: 'String', stat: true }, { + raw: function raw(template) { + var rawTemplate = toIndexedObject(toObject(template).raw); + var literalSegments = lengthOfArrayLike(rawTemplate); + if (!literalSegments) return ''; + var argumentsLength = arguments.length; + var elements = []; + var i = 0; + while (true) { + push(elements, toString(rawTemplate[i++])); + if (i === literalSegments) return join(elements, ''); + if (i < argumentsLength) push(elements, toString(arguments[i])); + } + } +}); + + +/***/ }), +/* 438 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var repeat = __webpack_require__(241); + +// `String.prototype.repeat` method +// https://tc39.es/ecma262/#sec-string.prototype.repeat +$({ target: 'String', proto: true }, { + repeat: repeat +}); + + +/***/ }), +/* 439 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var advanceStringIndex = __webpack_require__(431); +var getMethod = __webpack_require__(29); +var getSubstitution = __webpack_require__(440); +var regExpExec = __webpack_require__(432); +var wellKnownSymbol = __webpack_require__(33); + +var REPLACE = wellKnownSymbol('replace'); +var max = Math.max; +var min = Math.min; +var concat = uncurryThis([].concat); +var push = uncurryThis([].push); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); + +var maybeToString = function (it) { + return it === undefined ? it : String(it); +}; + +// IE <= 11 replaces $0 with the whole match, as if it was $& +// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 +var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; +})(); + +// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string +var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + return false; +})(); + +var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$<a>') !== '7'; +}); + +// @@replace logic +fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + + return [ + // `String.prototype.replace` method + // https://tc39.es/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE); + return replacer + ? call(replacer, searchValue, O, replaceValue) + : call(nativeReplace, toString(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace + function (string, replaceValue) { + var rx = anObject(this); + var S = toString(string); + + if ( + typeof replaceValue == 'string' && + stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf(replaceValue, '$<') === -1 + ) { + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); + if (res.done) return res.value; + } + + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + + var global = rx.global; + var fullUnicode; + if (global) { + fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + + var results = []; + var result; + while (true) { + result = regExpExec(rx, S); + if (result === null) break; + + push(results, result); + if (!global) break; + + var matchStr = toString(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + + var matched = toString(result[0]); + var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); + var captures = []; + var replacement; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = concat([matched], captures, position, S); + if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); + replacement = toString(apply(replaceValue, undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + + return accumulatedResult + stringSlice(S, nextSourcePosition); + } + ]; +}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); + + +/***/ }), +/* 440 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var floor = Math.floor; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +// eslint-disable-next-line redos/no-vulnerable -- safe +var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; +var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + +// `GetSubstitution` abstract operation +// https://tc39.es/ecma262/#sec-getsubstitution +module.exports = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace(replacement, symbols, function (match, ch) { + var capture; + switch (charAt(ch, 0)) { + case '$': return '$'; + case '&': return matched; + case '`': return stringSlice(str, 0, position); + case "'": return stringSlice(str, tailPos); + case '<': + capture = namedCaptures[stringSlice(ch, 1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); +}; + + +/***/ }), +/* 441 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var getRegExpFlags = __webpack_require__(382); +var getSubstitution = __webpack_require__(440); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var REPLACE = wellKnownSymbol('replace'); +var $TypeError = TypeError; +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +var max = Math.max; + +// `String.prototype.replaceAll` method +// https://tc39.es/ecma262/#sec-string.prototype.replaceall +$({ target: 'String', proto: true }, { + replaceAll: function replaceAll(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement; + var position = 0; + var endOfLastMatch = 0; + var result = ''; + if (!isNullOrUndefined(searchValue)) { + IS_REG_EXP = isRegExp(searchValue); + if (IS_REG_EXP) { + flags = toString(requireObjectCoercible(getRegExpFlags(searchValue))); + if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes'); + } + replacer = getMethod(searchValue, REPLACE); + if (replacer) { + return call(replacer, searchValue, O, replaceValue); + } else if (IS_PURE && IS_REG_EXP) { + return replace(toString(O), searchValue, replaceValue); + } + } + string = toString(O); + searchString = toString(searchValue); + functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + searchLength = searchString.length; + advanceBy = max(1, searchLength); + position = indexOf(string, searchString); + while (position !== -1) { + replacement = functionalReplace + ? toString(replaceValue(searchString, position, string)) + : getSubstitution(searchString, string, position, [], undefined, replaceValue); + result += stringSlice(string, endOfLastMatch, position) + replacement; + endOfLastMatch = position + searchLength; + position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy); + } + if (endOfLastMatch < string.length) { + result += stringSlice(string, endOfLastMatch); + } + return result; + } +}); + + +/***/ }), +/* 442 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var sameValue = __webpack_require__(323); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); + +// @@search logic +fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH); + return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeSearch, rx, S); + + if (res.done) return res.value; + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; +}); + + +/***/ }), +/* 443 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); +var stickyHelpers = __webpack_require__(384); +var fails = __webpack_require__(7); + +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; +var MAX_UINT32 = 0xFFFFFFFF; +var min = Math.min; +var push = uncurryThis([].push); +var stringSlice = uncurryThis(''.slice); + +// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec +// Weex JS has frozen built-in prototypes, so use try / catch wrapper +var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { + // eslint-disable-next-line regexp/no-empty-group -- required for testing + var re = /(?:)/; + var originalExec = re.exec; + re.exec = function () { return originalExec.apply(this, arguments); }; + var result = 'ab'.split(re); + return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; +}); + +var BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' || + // eslint-disable-next-line regexp/no-empty-group -- required for testing + 'test'.split(/(?:)/, -1).length !== 4 || + 'ab'.split(/(?:ab)*/).length !== 2 || + '.'.split(/(.?)(.?)/).length !== 4 || + // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing + '.'.split(/()()/).length > 1 || + ''.split(/.?/).length; + +// @@split logic +fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) { + var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) { + return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit); + } : nativeSplit; + + return [ + // `String.prototype.split` method + // https://tc39.es/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = requireObjectCoercible(this); + var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT); + return splitter + ? call(splitter, separator, O, limit) + : call(internalSplit, toString(O), separator, limit); + }, + // `RegExp.prototype[@@split]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (string, limit) { + var rx = anObject(this); + var S = toString(string); + + if (!BUGGY) { + var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit); + if (res.done) return res.value; + } + + var C = speciesConstructor(rx, RegExp); + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + + (rx.multiline ? 'm' : '') + + (rx.unicode ? 'u' : '') + + (UNSUPPORTED_Y ? 'g' : 'y'); + // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + while (q < S.length) { + splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; + var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S); + var e; + if ( + z === null || + (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p + ) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + push(A, stringSlice(S, p, q)); + if (A.length === lim) return A; + for (var i = 1; i <= z.length - 1; i++) { + push(A, z[i]); + if (A.length === lim) return A; + } + q = p = e; + } + } + push(A, stringSlice(S, p)); + return A; + } + ]; +}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); + + +/***/ }), +/* 444 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var stringSlice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.startsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.startswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString(searchString); + return stringSlice(that, index, index + search.length) === search; + } +}); + + +/***/ }), +/* 445 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); + +var stringSlice = uncurryThis(''.slice); +var max = Math.max; +var min = Math.min; + +// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing +var FORCED = !''.substr || 'ab'.substr(-1) !== 'b'; + +// `String.prototype.substr` method +// https://tc39.es/ecma262/#sec-string.prototype.substr +$({ target: 'String', proto: true, forced: FORCED }, { + substr: function substr(start, length) { + var that = toString(requireObjectCoercible(this)); + var size = that.length; + var intStart = toIntegerOrInfinity(start); + var intLength, intEnd; + if (intStart === Infinity) intStart = 0; + if (intStart < 0) intStart = max(size + intStart, 0); + intLength = length === undefined ? size : toIntegerOrInfinity(length); + if (intLength <= 0 || intLength === Infinity) return ''; + intEnd = min(intStart + intLength, size); + return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd); + } +}); + + +/***/ }), +/* 446 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var $Array = Array; +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +// eslint-disable-next-line es/no-string-prototype-iswellformed-towellformed -- safe +var $toWellFormed = ''.toWellFormed; +var REPLACEMENT_CHARACTER = '\uFFFD'; + +// Safari bug +var TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () { + return call($toWellFormed, 1) !== '1'; +}); + +// `String.prototype.toWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, { + toWellFormed: function toWellFormed() { + var S = toString(requireObjectCoercible(this)); + if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S); + var length = S.length; + var result = $Array(length); + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i); + // unpaired surrogate + else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER; + // surrogate pair + else { + result[i] = charAt(S, i); + result[++i] = charAt(S, i); + } + } return join(result, ''); + } +}); + + +/***/ }), +/* 447 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $trim = (__webpack_require__(286).trim); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.trim` method +// https://tc39.es/ecma262/#sec-string.prototype.trim +$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } +}); + + +/***/ }), +/* 448 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var fails = __webpack_require__(7); +var whitespaces = __webpack_require__(287); + +var non = '\u200B\u0085\u180E'; + +// check that a method works with the correct list +// of whitespaces and has a correct name +module.exports = function (METHOD_NAME) { + return fails(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); +}; + + +/***/ }), +/* 449 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(450); +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, { + trimEnd: trimEnd +}); + + +/***/ }), +/* 450 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimRight` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, { + trimRight: trimEnd +}); + + +/***/ }), +/* 451 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimEnd = (__webpack_require__(286).end); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimEnd, trimRight }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// https://tc39.es/ecma262/#String.prototype.trimright +module.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() { + return $trimEnd(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimEnd; + + +/***/ }), +/* 452 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(453); +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimStart` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, { + trimStart: trimStart +}); + + +/***/ }), +/* 453 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimLeft` method +// https://tc39.es/ecma262/#sec-string.prototype.trimleft +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, { + trimLeft: trimStart +}); + + +/***/ }), +/* 454 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimStart = (__webpack_require__(286).start); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimStart, trimLeft }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// https://tc39.es/ecma262/#String.prototype.trimleft +module.exports = forcedStringTrimMethod('trimStart') ? function trimStart() { + return $trimStart(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimStart; + + +/***/ }), +/* 455 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.anchor` method +// https://tc39.es/ecma262/#sec-string.prototype.anchor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, { + anchor: function anchor(name) { + return createHTML(this, 'a', 'name', name); + } +}); + + +/***/ }), +/* 456 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var quot = /"/g; +var replace = uncurryThis(''.replace); + +// `CreateHTML` abstract operation +// https://tc39.es/ecma262/#sec-createhtml +module.exports = function (string, tag, attribute, value) { + var S = toString(requireObjectCoercible(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + replace(toString(value), quot, '"') + '"'; + return p1 + '>' + S + '</' + tag + '>'; +}; + + +/***/ }), +/* 457 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// check the existence of a method, lowercase +// of a tag and escaping quotes in arguments +module.exports = function (METHOD_NAME) { + return fails(function () { + var test = ''[METHOD_NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }); +}; + + +/***/ }), +/* 458 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.big` method +// https://tc39.es/ecma262/#sec-string.prototype.big +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, { + big: function big() { + return createHTML(this, 'big', '', ''); + } +}); + + +/***/ }), +/* 459 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.blink` method +// https://tc39.es/ecma262/#sec-string.prototype.blink +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, { + blink: function blink() { + return createHTML(this, 'blink', '', ''); + } +}); + + +/***/ }), +/* 460 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.bold` method +// https://tc39.es/ecma262/#sec-string.prototype.bold +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, { + bold: function bold() { + return createHTML(this, 'b', '', ''); + } +}); + + +/***/ }), +/* 461 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fixed` method +// https://tc39.es/ecma262/#sec-string.prototype.fixed +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, { + fixed: function fixed() { + return createHTML(this, 'tt', '', ''); + } +}); + + +/***/ }), +/* 462 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontcolor` method +// https://tc39.es/ecma262/#sec-string.prototype.fontcolor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, { + fontcolor: function fontcolor(color) { + return createHTML(this, 'font', 'color', color); + } +}); + + +/***/ }), +/* 463 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontsize` method +// https://tc39.es/ecma262/#sec-string.prototype.fontsize +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, { + fontsize: function fontsize(size) { + return createHTML(this, 'font', 'size', size); + } +}); + + +/***/ }), +/* 464 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.italics` method +// https://tc39.es/ecma262/#sec-string.prototype.italics +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, { + italics: function italics() { + return createHTML(this, 'i', '', ''); + } +}); + + +/***/ }), +/* 465 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.link` method +// https://tc39.es/ecma262/#sec-string.prototype.link +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, { + link: function link(url) { + return createHTML(this, 'a', 'href', url); + } +}); + + +/***/ }), +/* 466 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.small` method +// https://tc39.es/ecma262/#sec-string.prototype.small +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, { + small: function small() { + return createHTML(this, 'small', '', ''); + } +}); + + +/***/ }), +/* 467 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.strike` method +// https://tc39.es/ecma262/#sec-string.prototype.strike +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, { + strike: function strike() { + return createHTML(this, 'strike', '', ''); + } +}); + + +/***/ }), +/* 468 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sub` method +// https://tc39.es/ecma262/#sec-string.prototype.sub +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, { + sub: function sub() { + return createHTML(this, 'sub', '', ''); + } +}); + + +/***/ }), +/* 469 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sup` method +// https://tc39.es/ecma262/#sec-string.prototype.sup +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, { + sup: function sup() { + return createHTML(this, 'sup', '', ''); + } +}); + + +/***/ }), +/* 470 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float32', function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 471 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var DESCRIPTORS = __webpack_require__(6); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayBufferModule = __webpack_require__(207); +var anInstance = __webpack_require__(210); +var createPropertyDescriptor = __webpack_require__(11); +var createNonEnumerableProperty = __webpack_require__(43); +var isIntegralNumber = __webpack_require__(292); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var toOffset = __webpack_require__(473); +var toUint8Clamped = __webpack_require__(475); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var create = __webpack_require__(71); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var getOwnPropertyNames = (__webpack_require__(57).f); +var typedArrayFrom = __webpack_require__(476); +var forEach = (__webpack_require__(83).forEach); +var setSpecies = __webpack_require__(193); +var defineBuiltInAccessor = __webpack_require__(77); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var arrayFromConstructorAndList = __webpack_require__(198); +var InternalStateModule = __webpack_require__(51); +var inheritIfRequired = __webpack_require__(118); + +var getInternalState = InternalStateModule.get; +var setInternalState = InternalStateModule.set; +var enforceInternalState = InternalStateModule.enforce; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var RangeError = global.RangeError; +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataView = ArrayBufferModule.DataView; +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; +var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG; +var TypedArray = ArrayBufferViewCore.TypedArray; +var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype; +var isTypedArray = ArrayBufferViewCore.isTypedArray; +var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; +var WRONG_LENGTH = 'Wrong length'; + +var addGetter = function (it, key) { + defineBuiltInAccessor(it, key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var isArrayBuffer = function (it) { + var klass; + return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer'; +}; + +var isTypedArrayIndex = function (target, key) { + return isTypedArray(target) + && !isSymbol(key) + && key in target + && isIntegralNumber(+key) + && key >= 0; +}; + +var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { + key = toPropertyKey(key); + return isTypedArrayIndex(target, key) + ? createPropertyDescriptor(2, target[key]) + : nativeGetOwnPropertyDescriptor(target, key); +}; + +var wrappedDefineProperty = function defineProperty(target, key, descriptor) { + key = toPropertyKey(key); + if (isTypedArrayIndex(target, key) + && isObject(descriptor) + && hasOwn(descriptor, 'value') + && !hasOwn(descriptor, 'get') + && !hasOwn(descriptor, 'set') + // TODO: add validation descriptor w/o calling accessors + && !descriptor.configurable + && (!hasOwn(descriptor, 'writable') || descriptor.writable) + && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable) + ) { + target[key] = descriptor.value; + return target; + } return nativeDefineProperty(target, key, descriptor); +}; + +if (DESCRIPTORS) { + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor; + definePropertyModule.f = wrappedDefineProperty; + addGetter(TypedArrayPrototype, 'buffer'); + addGetter(TypedArrayPrototype, 'byteOffset'); + addGetter(TypedArrayPrototype, 'byteLength'); + addGetter(TypedArrayPrototype, 'length'); + } + + $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, + defineProperty: wrappedDefineProperty + }); + + module.exports = function (TYPE, wrapper, CLAMPED) { + var BYTES = TYPE.match(/\d+/)[0] / 8; + var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + TYPE; + var SETTER = 'set' + TYPE; + var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME]; + var TypedArrayConstructor = NativeTypedArrayConstructor; + var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; + var exported = {}; + + var getter = function (that, index) { + var data = getInternalState(that); + return data.view[GETTER](index * BYTES + data.byteOffset, true); + }; + + var setter = function (that, index, value) { + var data = getInternalState(that); + data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true); + }; + + var addElement = function (that, index) { + nativeDefineProperty(that, index, { + get: function () { + return getter(this, index); + }, + set: function (value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + TypedArrayConstructor = wrapper(function (that, data, offset, $length) { + anInstance(that, TypedArrayConstructorPrototype); + var index = 0; + var byteOffset = 0; + var buffer, byteLength, length; + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new ArrayBuffer(byteLength); + } else if (isArrayBuffer(data)) { + buffer = data; + byteOffset = toOffset(offset, BYTES); + var $len = data.byteLength; + if ($length === undefined) { + if ($len % BYTES) throw new RangeError(WRONG_LENGTH); + byteLength = $len - byteOffset; + if (byteLength < 0) throw new RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH); + } + length = byteLength / BYTES; + } else if (isTypedArray(data)) { + return arrayFromConstructorAndList(TypedArrayConstructor, data); + } else { + return call(typedArrayFrom, TypedArrayConstructor, data); + } + setInternalState(that, { + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength, + length: length, + view: new DataView(buffer) + }); + while (index < length) addElement(that, index++); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype); + } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) { + TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { + anInstance(dummy, TypedArrayConstructorPrototype); + return inheritIfRequired(function () { + if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); + if (isArrayBuffer(data)) return $length !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) + : typedArrayOffset !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) + : new NativeTypedArrayConstructor(data); + if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data); + return call(typedArrayFrom, TypedArrayConstructor, data); + }(), dummy, TypedArrayConstructor); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { + if (!(key in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); + } + }); + TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; + } + + if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); + } + + enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor; + + if (TYPED_ARRAY_TAG) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); + } + + var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor; + + exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; + + $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported); + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); + } + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); + } + + setSpecies(CONSTRUCTOR_NAME); + }; +} else module.exports = function () { /* empty */ }; + + +/***/ }), +/* 472 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-new -- required for testing */ +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var NATIVE_ARRAY_BUFFER_VIEWS = (__webpack_require__(217).NATIVE_ARRAY_BUFFER_VIEWS); + +var ArrayBuffer = global.ArrayBuffer; +var Int8Array = global.Int8Array; + +module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () { + Int8Array(1); +}) || !fails(function () { + new Int8Array(-1); +}) || !checkCorrectnessOfIteration(function (iterable) { + new Int8Array(); + new Int8Array(null); + new Int8Array(1.5); + new Int8Array(iterable); +}, true) || fails(function () { + // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill + return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1; +}); + + +/***/ }), +/* 473 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPositiveInteger = __webpack_require__(474); + +var $RangeError = RangeError; + +module.exports = function (it, BYTES) { + var offset = toPositiveInteger(it); + if (offset % BYTES) throw new $RangeError('Wrong offset'); + return offset; +}; + + +/***/ }), +/* 474 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +module.exports = function (it) { + var result = toIntegerOrInfinity(it); + if (result < 0) throw new $RangeError("The argument can't be less than 0"); + return result; +}; + + +/***/ }), +/* 475 */ +/***/ (function(module) { + + +var round = Math.round; + +module.exports = function (it) { + var value = round(it); + return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF; +}; + + +/***/ }), +/* 476 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var aConstructor = __webpack_require__(220); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var isArrayIteratorMethod = __webpack_require__(131); +var isBigIntArray = __webpack_require__(477); +var aTypedArrayConstructor = (__webpack_require__(217).aTypedArrayConstructor); +var toBigInt = __webpack_require__(478); + +module.exports = function from(source /* , mapfn, thisArg */) { + var C = aConstructor(this); + var O = toObject(source); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iteratorMethod = getIteratorMethod(O); + var i, length, result, thisIsBigIntArray, value, step, iterator, next; + if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + O = []; + while (!(step = call(next, iterator)).done) { + O.push(step.value); + } + } + if (mapping && argumentsLength > 2) { + mapfn = bind(mapfn, arguments[2]); + } + length = lengthOfArrayLike(O); + result = new (aTypedArrayConstructor(C))(length); + thisIsBigIntArray = isBigIntArray(result); + for (i = 0; length > i; i++) { + value = mapping ? mapfn(O[i], i) : O[i]; + // FF30- typed arrays doesn't properly convert objects to typed array values + result[i] = thisIsBigIntArray ? toBigInt(value) : +value; + } + return result; +}; + + +/***/ }), +/* 477 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +module.exports = function (it) { + var klass = classof(it); + return klass === 'BigInt64Array' || klass === 'BigUint64Array'; +}; + + +/***/ }), +/* 478 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); + +var $TypeError = TypeError; + +// `ToBigInt` abstract operation +// https://tc39.es/ecma262/#sec-tobigint +module.exports = function (argument) { + var prim = toPrimitive(argument, 'number'); + if (typeof prim == 'number') throw new $TypeError("Can't convert number to bigint"); + // eslint-disable-next-line es/no-bigint -- safe + return BigInt(prim); +}; + + +/***/ }), +/* 479 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float64Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float64', function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 480 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int8', function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 481 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int16', function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 482 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int32', function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 483 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 484 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8ClampedArray` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}, true); + + +/***/ }), +/* 485 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint16', function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 486 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint32', function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 487 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.at` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at +exportTypedArrayMethod('at', function at(index) { + var O = aTypedArray(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; +}); + + +/***/ }), +/* 488 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var $ArrayCopyWithin = __webpack_require__(144); + +var u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin +exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) { + return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined); +}); + + +/***/ }), +/* 489 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $every = (__webpack_require__(83).every); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.every` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every +exportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) { + return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 490 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $fill = __webpack_require__(149); +var toBigInt = __webpack_require__(478); +var classof = __webpack_require__(69); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var slice = uncurryThis(''.slice); + +// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18 +var CONVERSION_BUG = fails(function () { + var count = 0; + // eslint-disable-next-line es/no-typed-arrays -- safe + new Int8Array(2).fill({ valueOf: function () { return count++; } }); + return count !== 1; +}); + +// `%TypedArray%.prototype.fill` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill +exportTypedArrayMethod('fill', function fill(value /* , start, end */) { + var length = arguments.length; + aTypedArray(this); + var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value; + return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined); +}, CONVERSION_BUG); + + +/***/ }), +/* 491 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $filter = (__webpack_require__(83).filter); +var fromSpeciesAndList = __webpack_require__(492); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.filter` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter +exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) { + var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return fromSpeciesAndList(this, list); +}); + + +/***/ }), +/* 492 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arrayFromConstructorAndList = __webpack_require__(198); +var typedArraySpeciesConstructor = __webpack_require__(493); + +module.exports = function (instance, list) { + return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list); +}; + + +/***/ }), +/* 493 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var speciesConstructor = __webpack_require__(219); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// a part of `TypedArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#typedarray-species-create +module.exports = function (originalArray) { + return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray))); +}; + + +/***/ }), +/* 494 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $find = (__webpack_require__(83).find); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.find` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find +exportTypedArrayMethod('find', function find(predicate /* , thisArg */) { + return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 495 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findIndex = (__webpack_require__(83).findIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex +exportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) { + return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 496 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLast = (__webpack_require__(154).findLast); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLast` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast +exportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) { + return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 497 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLastIndex = (__webpack_require__(154).findLastIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex +exportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) { + return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 498 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $forEach = (__webpack_require__(83).forEach); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.forEach` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach +exportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) { + $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 499 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var exportTypedArrayStaticMethod = (__webpack_require__(217).exportTypedArrayStaticMethod); +var typedArrayFrom = __webpack_require__(476); + +// `%TypedArray%.from` method +// https://tc39.es/ecma262/#sec-%typedarray%.from +exportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 500 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $includes = (__webpack_require__(59).includes); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.includes` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes +exportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) { + return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 501 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $indexOf = (__webpack_require__(59).indexOf); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof +exportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) { + return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 502 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayIterators = __webpack_require__(168); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var Uint8Array = global.Uint8Array; +var arrayValues = uncurryThis(ArrayIterators.values); +var arrayKeys = uncurryThis(ArrayIterators.keys); +var arrayEntries = uncurryThis(ArrayIterators.entries); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var TypedArrayPrototype = Uint8Array && Uint8Array.prototype; + +var GENERIC = !fails(function () { + TypedArrayPrototype[ITERATOR].call([1]); +}); + +var ITERATOR_IS_VALUES = !!TypedArrayPrototype + && TypedArrayPrototype.values + && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values + && TypedArrayPrototype.values.name === 'values'; + +var typedArrayValues = function values() { + return arrayValues(aTypedArray(this)); +}; + +// `%TypedArray%.prototype.entries` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries +exportTypedArrayMethod('entries', function entries() { + return arrayEntries(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.keys` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys +exportTypedArrayMethod('keys', function keys() { + return arrayKeys(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.values` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values +exportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); +// `%TypedArray%.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator +exportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); + + +/***/ }), +/* 503 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $join = uncurryThis([].join); + +// `%TypedArray%.prototype.join` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join +exportTypedArrayMethod('join', function join(separator) { + return $join(aTypedArray(this), separator); +}); + + +/***/ }), +/* 504 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var apply = __webpack_require__(94); +var $lastIndexOf = __webpack_require__(175); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof +exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { + var length = arguments.length; + return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]); +}); + + +/***/ }), +/* 505 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $map = (__webpack_require__(83).map); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.map` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map +exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) { + return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { + return new (typedArraySpeciesConstructor(O))(length); + }); +}); + + +/***/ }), +/* 506 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod; + +// `%TypedArray%.of` method +// https://tc39.es/ecma262/#sec-%typedarray%.of +exportTypedArrayStaticMethod('of', function of(/* ...items */) { + var index = 0; + var length = arguments.length; + var result = new (aTypedArrayConstructor(this))(length); + while (length > index) result[index] = arguments[index++]; + return result; +}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 507 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduce = (__webpack_require__(181).left); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduce` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce +exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 508 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduceRight = (__webpack_require__(181).right); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright +exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 509 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var floor = Math.floor; + +// `%TypedArray%.prototype.reverse` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse +exportTypedArrayMethod('reverse', function reverse() { + var that = this; + var length = aTypedArray(that).length; + var middle = floor(length / 2); + var index = 0; + var value; + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } return that; +}); + + +/***/ }), +/* 510 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toOffset = __webpack_require__(473); +var toIndexedObject = __webpack_require__(39); +var fails = __webpack_require__(7); + +var RangeError = global.RangeError; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var $set = Int8ArrayPrototype && Int8ArrayPrototype.set; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + var array = new Uint8ClampedArray(2); + call($set, array, { length: 1, 0: 3 }, 1); + return array[1] !== 3; +}); + +// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other +var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () { + var array = new Int8Array(2); + array.set(1); + array.set('2', 1); + return array[0] !== 0 || array[1] !== 2; +}); + +// `%TypedArray%.prototype.set` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set +exportTypedArrayMethod('set', function set(arrayLike /* , offset */) { + aTypedArray(this); + var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); + var src = toIndexedObject(arrayLike); + if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset); + var length = this.length; + var len = lengthOfArrayLike(src); + var index = 0; + if (len + offset > length) throw new RangeError('Wrong length'); + while (index < len) this[offset + index] = src[index++]; +}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG); + + +/***/ }), +/* 511 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var typedArraySpeciesConstructor = __webpack_require__(493); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + new Int8Array(1).slice(); +}); + +// `%TypedArray%.prototype.slice` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice +exportTypedArrayMethod('slice', function slice(start, end) { + var list = arraySlice(aTypedArray(this), start, end); + var C = typedArraySpeciesConstructor(this); + var index = 0; + var length = list.length; + var result = new C(length); + while (length > index) result[index] = list[index++]; + return result; +}, FORCED); + + +/***/ }), +/* 512 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $some = (__webpack_require__(83).some); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.some` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some +exportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) { + return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 513 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var aCallable = __webpack_require__(30); +var internalSort = __webpack_require__(188); +var ArrayBufferViewCore = __webpack_require__(217); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var Uint16Array = global.Uint16Array; +var nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort); + +// WebKit +var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () { + nativeSort(new Uint16Array(2), null); +}) && fails(function () { + nativeSort(new Uint16Array(2), {}); +})); + +var STABLE_SORT = !!nativeSort && !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 74; + if (FF) return FF < 67; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 602; + + var array = new Uint16Array(516); + var expected = Array(516); + var index, mod; + + for (index = 0; index < 516; index++) { + mod = index % 4; + array[index] = 515 - index; + expected[index] = index - 2 * mod + 3; + } + + nativeSort(array, function (a, b) { + return (a / 4 | 0) - (b / 4 | 0); + }); + + for (index = 0; index < 516; index++) { + if (array[index] !== expected[index]) return true; + } +}); + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (comparefn !== undefined) return +comparefn(x, y) || 0; + // eslint-disable-next-line no-self-compare -- NaN check + if (y !== y) return -1; + // eslint-disable-next-line no-self-compare -- NaN check + if (x !== x) return 1; + if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1; + return x > y; + }; +}; + +// `%TypedArray%.prototype.sort` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort +exportTypedArrayMethod('sort', function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + if (STABLE_SORT) return nativeSort(this, comparefn); + + return internalSort(aTypedArray(this), getSortCompare(comparefn)); +}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS); + + +/***/ }), +/* 514 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var toLength = __webpack_require__(64); +var toAbsoluteIndex = __webpack_require__(60); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.subarray` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray +exportTypedArrayMethod('subarray', function subarray(begin, end) { + var O = aTypedArray(this); + var length = O.length; + var beginIndex = toAbsoluteIndex(begin, length); + var C = typedArraySpeciesConstructor(O); + return new C( + O.buffer, + O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, + toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex) + ); +}); + + +/***/ }), +/* 515 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var ArrayBufferViewCore = __webpack_require__(217); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var Int8Array = global.Int8Array; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $toLocaleString = [].toLocaleString; + +// iOS Safari 6.x fails here +var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () { + $toLocaleString.call(new Int8Array(1)); +}); + +var FORCED = fails(function () { + return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString(); +}) || !fails(function () { + Int8Array.prototype.toLocaleString.call([1, 2]); +}); + +// `%TypedArray%.prototype.toLocaleString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring +exportTypedArrayMethod('toLocaleString', function toLocaleString() { + return apply( + $toLocaleString, + TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this), + arraySlice(arguments) + ); +}, FORCED); + + +/***/ }), +/* 516 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayToReversed = __webpack_require__(196); +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// `%TypedArray%.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed +exportTypedArrayMethod('toReversed', function toReversed() { + return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this)); +}); + + +/***/ }), +/* 517 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var arrayFromConstructorAndList = __webpack_require__(198); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort); + +// `%TypedArray%.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted +exportTypedArrayMethod('toSorted', function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = aTypedArray(this); + var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O); + return sort(A, compareFn); +}); + + +/***/ }), +/* 518 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var exportTypedArrayMethod = (__webpack_require__(217).exportTypedArrayMethod); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); + +var Uint8Array = global.Uint8Array; +var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {}; +var arrayToString = [].toString; +var join = uncurryThis([].join); + +if (fails(function () { arrayToString.call({}); })) { + arrayToString = function toString() { + return join(this); + }; +} + +var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString; + +// `%TypedArray%.prototype.toString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring +exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD); + + +/***/ }), +/* 519 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayWith = __webpack_require__(205); +var ArrayBufferViewCore = __webpack_require__(217); +var isBigIntArray = __webpack_require__(477); +var toIntegerOrInfinity = __webpack_require__(61); +var toBigInt = __webpack_require__(478); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var PROPER_ORDER = !!function () { + try { + // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing + new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } }); + } catch (error) { + // some early implementations, like WebKit, does not follow the final semantic + // https://github.com/tc39/proposal-change-array-by-copy/pull/86 + return error === 8; + } +}(); + +// `%TypedArray%.prototype.with` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with +exportTypedArrayMethod('with', { 'with': function (index, value) { + var O = aTypedArray(this); + var relativeIndex = toIntegerOrInfinity(index); + var actualValue = isBigIntArray(O) ? toBigInt(value) : +value; + return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue); +} }['with'], !PROPER_ORDER); + + +/***/ }), +/* 520 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var stringSlice = uncurryThis(''.slice); + +var hex2 = /^[\da-f]{2}$/i; +var hex4 = /^[\da-f]{4}$/i; + +// `unescape` method +// https://tc39.es/ecma262/#sec-unescape-string +$({ global: true }, { + unescape: function unescape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, part; + while (index < length) { + chr = charAt(str, index++); + if (chr === '%') { + if (charAt(str, index) === 'u') { + part = stringSlice(str, index + 1, index + 5); + if (exec(hex4, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 5; + continue; + } + } else { + part = stringSlice(str, index, index + 2); + if (exec(hex2, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 2; + continue; + } + } + } + result += chr; + } return result; + } +}); + + +/***/ }), +/* 521 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(522); + + +/***/ }), +/* 522 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var FREEZING = __webpack_require__(259); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var InternalMetadataModule = __webpack_require__(256); +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); +var isObject = __webpack_require__(20); +var enforceInternalState = (__webpack_require__(51).enforce); +var fails = __webpack_require__(7); +var NATIVE_WEAK_MAP = __webpack_require__(52); + +var $Object = Object; +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray = Array.isArray; +// eslint-disable-next-line es/no-object-isextensible -- safe +var isExtensible = $Object.isExtensible; +// eslint-disable-next-line es/no-object-isfrozen -- safe +var isFrozen = $Object.isFrozen; +// eslint-disable-next-line es/no-object-issealed -- safe +var isSealed = $Object.isSealed; +// eslint-disable-next-line es/no-object-freeze -- safe +var freeze = $Object.freeze; +// eslint-disable-next-line es/no-object-seal -- safe +var seal = $Object.seal; + +var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; +var InternalWeakMap; + +var wrapper = function (init) { + return function WeakMap() { + return init(this, arguments.length ? arguments[0] : undefined); + }; +}; + +// `WeakMap` constructor +// https://tc39.es/ecma262/#sec-weakmap-constructor +var $WeakMap = collection('WeakMap', wrapper, collectionWeak); +var WeakMapPrototype = $WeakMap.prototype; +var nativeSet = uncurryThis(WeakMapPrototype.set); + +// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them +var hasMSEdgeFreezingBug = function () { + return FREEZING && fails(function () { + var frozenArray = freeze([]); + nativeSet(new $WeakMap(), frozenArray, 1); + return !isFrozen(frozenArray); + }); +}; + +// IE11 WeakMap frozen keys fix +// We can't use feature detection because it crash some old IE builds +// https://github.com/zloirock/core-js/issues/485 +if (NATIVE_WEAK_MAP) if (IS_IE11) { + InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); + InternalMetadataModule.enable(); + var nativeDelete = uncurryThis(WeakMapPrototype['delete']); + var nativeHas = uncurryThis(WeakMapPrototype.has); + var nativeGet = uncurryThis(WeakMapPrototype.get); + defineBuiltIns(WeakMapPrototype, { + 'delete': function (key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeDelete(this, key) || state.frozen['delete'](key); + } return nativeDelete(this, key); + }, + has: function has(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) || state.frozen.has(key); + } return nativeHas(this, key); + }, + get: function get(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key); + } return nativeGet(this, key); + }, + set: function set(key, value) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value); + } else nativeSet(this, key, value); + return this; + } + }); +// Chakra Edge frozen keys fix +} else if (hasMSEdgeFreezingBug()) { + defineBuiltIns(WeakMapPrototype, { + set: function set(key, value) { + var arrayIntegrityLevel; + if (isArray(key)) { + if (isFrozen(key)) arrayIntegrityLevel = freeze; + else if (isSealed(key)) arrayIntegrityLevel = seal; + } + nativeSet(this, key, value); + if (arrayIntegrityLevel) arrayIntegrityLevel(key); + return this; + } + }); +} + + +/***/ }), +/* 523 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var getWeakData = (__webpack_require__(256).getWeakData); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var iterate = __webpack_require__(130); +var ArrayIterationModule = __webpack_require__(83); +var hasOwn = __webpack_require__(38); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var splice = uncurryThis([].splice); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } +}; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } +}; + + +/***/ }), +/* 524 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(525); + + +/***/ }), +/* 525 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); + +// `WeakSet` constructor +// https://tc39.es/ecma262/#sec-weakset-constructor +collection('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionWeak); + + +/***/ }), +/* 526 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var c2i = (__webpack_require__(527).c2i); + +var disallowed = /[^\d+/a-z]/i; +var whitespaces = /[\t\n\f\r ]+/g; +var finalEq = /[=]{1,2}$/; + +var $atob = getBuiltIn('atob'); +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var exec = uncurryThis(disallowed.exec); + +var BASIC = !!$atob && !fails(function () { + return $atob('aGk=') !== 'hi'; +}); + +var NO_SPACES_IGNORE = BASIC && fails(function () { + return $atob(' ') !== ''; +}); + +var NO_ENCODING_CHECK = BASIC && !fails(function () { + $atob('a'); +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $atob(); +}); + +var WRONG_ARITY = BASIC && $atob.length !== 1; + +var FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY; + +// `atob` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob +$({ global: true, bind: true, enumerable: true, forced: FORCED }, { + atob: function atob(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, global, data); + var string = replace(toString(data), whitespaces, ''); + var output = ''; + var position = 0; + var bc = 0; + var length, chr, bs; + if (string.length % 4 === 0) { + string = replace(string, finalEq, ''); + } + length = string.length; + if (length % 4 === 1 || exec(disallowed, string)) { + throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError'); + } + while (position < length) { + chr = charAt(string, position++); + bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr]; + if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6)); + } return output; + } +}); + + +/***/ }), +/* 527 */ +/***/ (function(module) { + + +var commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; +var base64Alphabet = commonAlphabet + '+/'; +var base64UrlAlphabet = commonAlphabet + '-_'; + +var inverse = function (characters) { + // TODO: use `Object.create(null)` in `core-js@4` + var result = {}; + var index = 0; + for (; index < 64; index++) result[characters.charAt(index)] = index; + return result; +}; + +module.exports = { + i2c: base64Alphabet, + c2i: inverse(base64Alphabet), + i2cUrl: base64UrlAlphabet, + c2iUrl: inverse(base64UrlAlphabet) +}; + + +/***/ }), +/* 528 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var i2c = (__webpack_require__(527).i2c); + +var $btoa = getBuiltIn('btoa'); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); + +var BASIC = !!$btoa && !fails(function () { + return $btoa('hi') !== 'aGk='; +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $btoa(); +}); + +var WRONG_ARG_CONVERSION = BASIC && fails(function () { + return $btoa(null) !== 'bnVsbA=='; +}); + +var WRONG_ARITY = BASIC && $btoa.length !== 1; + +// `btoa` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa +$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, { + btoa: function btoa(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC) return call($btoa, global, toString(data)); + var string = toString(data); + var output = ''; + var position = 0; + var map = i2c; + var block, charCode; + while (charAt(string, position) || (map = '=', position % 1)) { + charCode = charCodeAt(string, position += 3 / 4); + if (charCode > 0xFF) { + throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError'); + } + block = block << 8 | charCode; + output += charAt(map, 63 & block >> 8 - position % 1 * 8); + } return output; + } +}); + + +/***/ }), +/* 529 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var forEach = __webpack_require__(160); +var createNonEnumerableProperty = __webpack_require__(43); + +var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype); + } +} + +handlePrototype(DOMTokenListPrototype); + + +/***/ }), +/* 530 */ +/***/ (function(module) { + + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +module.exports = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + + +/***/ }), +/* 531 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` +var documentCreateElement = __webpack_require__(42); + +var classList = documentCreateElement('span').classList; +var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype; + +module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype; + + +/***/ }), +/* 532 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var ArrayIteratorMethods = __webpack_require__(168); +var createNonEnumerableProperty = __webpack_require__(43); +var setToStringTag = __webpack_require__(82); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayValues = ArrayIteratorMethods.values; + +var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + setToStringTag(CollectionPrototype, COLLECTION_NAME, true); + if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME); +} + +handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); + + +/***/ }), +/* 533 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var tryNodeRequire = __webpack_require__(229); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var errorToString = __webpack_require__(125); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var InternalStateModule = __webpack_require__(51); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var DATA_CLONE_ERR = 'DATA_CLONE_ERR'; +var Error = getBuiltIn('Error'); +// NodeJS < 17.0 does not expose `DOMException` to global +var NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () { + try { + // NodeJS < 15.0 does not expose `MessageChannel` to global + var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel; + // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe + new MessageChannel().port1.postMessage(new WeakMap()); + } catch (error) { + if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor; + } +})(); +var NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype; +var ErrorPrototype = Error.prototype; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION); +var HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); + +var codeFor = function (name) { + return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0; +}; + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var code = codeFor(name); + setInternalState(this, { + type: DOM_EXCEPTION, + name: name, + message: message, + code: code + }); + if (!DESCRIPTORS) { + this.name = name; + this.message = message; + this.code = code; + } + if (HAS_STACK) { + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + } +}; + +var DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype); + +var createGetterDescriptor = function (get) { + return { enumerable: true, configurable: true, get: get }; +}; + +var getterFor = function (key) { + return createGetterDescriptor(function () { + return getInternalState(this)[key]; + }); +}; + +if (DESCRIPTORS) { + // `DOMException.prototype.code` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code')); + // `DOMException.prototype.message` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message')); + // `DOMException.prototype.name` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name')); +} + +defineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException)); + +// FF36- DOMException is a function, but can't be constructed +var INCORRECT_CONSTRUCTOR = fails(function () { + return !(new NativeDOMException() instanceof Error); +}); + +// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs +var INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () { + return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1'; +}); + +// Deno 1.6.3- DOMException.prototype.code just missed +var INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () { + return new NativeDOMException(1, 'DataCloneError').code !== 25; +}); + +// Deno 1.6.3- DOMException constants just missed +var MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR + || NativeDOMException[DATA_CLONE_ERR] !== 25 + || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25; + +var FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR; + +// `DOMException` constructor +// https://webidl.spec.whatwg.org/#idl-DOMException +$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, { + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) { + defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString); +} + +if (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) { + defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () { + return codeFor(anObject(this).name); + })); +} + +// `DOMException` constants +for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + var descriptor = createPropertyDescriptor(6, constant.c); + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, descriptor); + } + if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) { + defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor); + } +} + + +/***/ }), +/* 534 */ +/***/ (function(module) { + + +module.exports = { + IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 }, + DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 }, + HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 }, + WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 }, + InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 }, + NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 }, + NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 }, + NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 }, + NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 }, + InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 }, + InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 }, + SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 }, + InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 }, + NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 }, + InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 }, + ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 }, + TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 }, + SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 }, + NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 }, + AbortError: { s: 'ABORT_ERR', c: 20, m: 1 }, + URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 }, + QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 }, + TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 }, + InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 }, + DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 } +}; + + +/***/ }), +/* 535 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var Error = getBuiltIn('Error'); +var NativeDOMException = getBuiltIn(DOM_EXCEPTION); + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var that = new NativeDOMException(message, name); + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + inheritIfRequired(that, this, $DOMException); + return that; +}; + +var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype; + +var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); +var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION); + +// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it +// https://github.com/Jarred-Sumner/bun/issues/399 +var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable); + +var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK; + +// `DOMException` constructor patch for `.stack` where it's required +// https://webidl.spec.whatwg.org/#es-DOMException-specialness +$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) { + if (!IS_PURE) { + defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException)); + } + + for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c)); + } + } +} + + +/***/ }), +/* 536 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var setToStringTag = __webpack_require__(82); + +var DOM_EXCEPTION = 'DOMException'; + +// `DOMException.prototype[@@toStringTag]` property +setToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION); + + +/***/ }), +/* 537 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(538); +__webpack_require__(539); + + +/***/ }), +/* 538 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var clearImmediate = (__webpack_require__(341).clear); + +// `clearImmediate` method +// http://w3c.github.io/setImmediate/#si-clearImmediate +$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, { + clearImmediate: clearImmediate +}); + + +/***/ }), +/* 539 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setTask = (__webpack_require__(341).set); +var schedulersFix = __webpack_require__(540); + +// https://github.com/oven-sh/bun/issues/1633 +var setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask; + +// `setImmediate` method +// http://w3c.github.io/setImmediate/#si-setImmediate +$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, { + setImmediate: setImmediate +}); + + +/***/ }), +/* 540 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var isCallable = __webpack_require__(21); +var ENGINE_IS_BUN = __webpack_require__(541); +var USER_AGENT = __webpack_require__(28); +var arraySlice = __webpack_require__(76); +var validateArgumentsLength = __webpack_require__(342); + +var Function = global.Function; +// dirty IE9- and Bun 0.3.0- checks +var WRAP = /MSIE .\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () { + var version = global.Bun.version.split('.'); + return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0'); +})(); + +// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers +// https://github.com/oven-sh/bun/issues/1633 +module.exports = function (scheduler, hasTimeArg) { + var firstParamIndex = hasTimeArg ? 2 : 1; + return WRAP ? function (handler, timeout /* , ...arguments */) { + var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex; + var fn = isCallable(handler) ? handler : Function(handler); + var params = boundArgs ? arraySlice(arguments, firstParamIndex) : []; + var callback = boundArgs ? function () { + apply(fn, this, params); + } : fn; + return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback); + } : scheduler; +}; + + +/***/ }), +/* 541 */ +/***/ (function(module) { + + +/* global Bun -- Bun case */ +module.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string'; + + +/***/ }), +/* 542 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var globalThis = __webpack_require__(4); +var microtask = __webpack_require__(344); +var aCallable = __webpack_require__(30); +var validateArgumentsLength = __webpack_require__(342); +var fails = __webpack_require__(7); +var DESCRIPTORS = __webpack_require__(6); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9249 +var WRONG_ARITY = fails(function () { + // getOwnPropertyDescriptor for prevent experimental warning in Node 11 + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1; +}); + +// `queueMicrotask` method +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask +$({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, { + queueMicrotask: function queueMicrotask(fn) { + validateArgumentsLength(arguments.length, 1); + microtask(aCallable(fn)); + } +}); + + +/***/ }), +/* 543 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var defineBuiltInAccessor = __webpack_require__(77); +var DESCRIPTORS = __webpack_require__(6); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var INCORRECT_VALUE = global.self !== global; + +// `self` getter +// https://html.spec.whatwg.org/multipage/window-object.html#dom-self +try { + if (DESCRIPTORS) { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var descriptor = Object.getOwnPropertyDescriptor(global, 'self'); + // some engines have `self`, but with incorrect descriptor + // https://github.com/denoland/deno/issues/15765 + if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) { + defineBuiltInAccessor(global, 'self', { + get: function self() { + return global; + }, + set: function self(value) { + if (this !== global) throw new $TypeError('Illegal invocation'); + defineProperty(global, 'self', { + value: value, + writable: true, + configurable: true, + enumerable: true + }); + }, + configurable: true, + enumerable: true + }); + } + } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, { + self: global + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 544 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var uid = __webpack_require__(40); +var isCallable = __webpack_require__(21); +var isConstructor = __webpack_require__(89); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var iterate = __webpack_require__(130); +var anObject = __webpack_require__(46); +var classof = __webpack_require__(69); +var hasOwn = __webpack_require__(38); +var createProperty = __webpack_require__(141); +var createNonEnumerableProperty = __webpack_require__(43); +var lengthOfArrayLike = __webpack_require__(63); +var validateArgumentsLength = __webpack_require__(342); +var getRegExpFlags = __webpack_require__(382); +var MapHelpers = __webpack_require__(262); +var SetHelpers = __webpack_require__(399); +var setIterate = __webpack_require__(401); +var detachTransferable = __webpack_require__(228); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var Object = global.Object; +var Array = global.Array; +var Date = global.Date; +var Error = global.Error; +var TypeError = global.TypeError; +var PerformanceMark = global.PerformanceMark; +var DOMException = getBuiltIn('DOMException'); +var Map = MapHelpers.Map; +var mapHas = MapHelpers.has; +var mapGet = MapHelpers.get; +var mapSet = MapHelpers.set; +var Set = SetHelpers.Set; +var setAdd = SetHelpers.add; +var setHas = SetHelpers.has; +var objectKeys = getBuiltIn('Object', 'keys'); +var push = uncurryThis([].push); +var thisBooleanValue = uncurryThis(true.valueOf); +var thisNumberValue = uncurryThis(1.0.valueOf); +var thisStringValue = uncurryThis(''.valueOf); +var thisTimeValue = uncurryThis(Date.prototype.getTime); +var PERFORMANCE_MARK = uid('structuredClone'); +var DATA_CLONE_ERROR = 'DataCloneError'; +var TRANSFERRING = 'Transferring'; + +var checkBasicSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var set1 = new global.Set([7]); + var set2 = structuredCloneImplementation(set1); + var number = structuredCloneImplementation(Object(7)); + return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7; + }) && structuredCloneImplementation; +}; + +var checkErrorsCloning = function (structuredCloneImplementation, $Error) { + return !fails(function () { + var error = new $Error(); + var test = structuredCloneImplementation({ a: error, b: error }); + return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack); + }); +}; + +// https://github.com/whatwg/html/pull/5749 +var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 })); + return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3; + }); +}; + +// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+ +// FF<103 and Safari implementations can't clone errors +// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604 +// FF103 can clone errors, but `.stack` of clone is an empty string +// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762 +// FF104+ fixed it on usual errors, but not on DOMExceptions +// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321 +// Chrome <102 returns `null` if cloned object contains multiple references to one error +// https://bugs.chromium.org/p/v8/issues/detail?id=12542 +// NodeJS implementation can't clone DOMExceptions +// https://github.com/nodejs/node/issues/41038 +// only FF103+ supports new (html/5749) error cloning semantic +var nativeStructuredClone = global.structuredClone; + +var FORCED_REPLACEMENT = IS_PURE + || !checkErrorsCloning(nativeStructuredClone, Error) + || !checkErrorsCloning(nativeStructuredClone, DOMException) + || !checkNewErrorsCloningSemantic(nativeStructuredClone); + +// Chrome 82+, Safari 14.1+, Deno 1.11+ +// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException` +// Chrome returns `null` if cloned object contains multiple references to one error +// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround +// Safari implementation can't clone errors +// Deno 1.2-1.10 implementations too naive +// NodeJS 16.0+ does not have `PerformanceMark` constructor +// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive +// and can't clone, for example, `RegExp` or some boxed primitives +// https://github.com/nodejs/node/issues/40840 +// no one of those implementations supports new (html/5749) error cloning semantic +var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) { + return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail; +}); + +var nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark; + +var throwUncloneable = function (type) { + throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR); +}; + +var throwUnpolyfillable = function (type, action) { + throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR); +}; + +var tryNativeRestrictedStructuredClone = function (value, type) { + if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type); + return nativeRestrictedStructuredClone(value); +}; + +var createDataTransfer = function () { + var dataTransfer; + try { + dataTransfer = new global.DataTransfer(); + } catch (error) { + try { + dataTransfer = new global.ClipboardEvent('').clipboardData; + } catch (error2) { /* empty */ } + } + return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null; +}; + +var cloneBuffer = function (value, map, $type) { + if (mapHas(map, value)) return mapGet(map, value); + + var type = $type || classof(value); + var clone, length, options, source, target, i; + + if (type === 'SharedArrayBuffer') { + if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value); + // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original + else clone = value; + } else { + var DataView = global.DataView; + + // `ArrayBuffer#slice` is not available in IE10 + // `ArrayBuffer#slice` and `DataView` are not available in old FF + if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer'); + // detached buffers throws in `DataView` and `.slice` + try { + if (isCallable(value.slice) && !value.resizable) { + clone = value.slice(0); + } else { + length = value.byteLength; + options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined; + // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe + clone = new ArrayBuffer(length, options); + source = new DataView(value); + target = new DataView(clone); + for (i = 0; i < length; i++) { + target.setUint8(i, source.getUint8(i)); + } + } + } catch (error) { + throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR); + } + } + + mapSet(map, value, clone); + + return clone; +}; + +var cloneView = function (value, type, offset, length, map) { + var C = global[type]; + // in some old engines like Safari 9, typeof C is 'object' + // on Uint8ClampedArray or some other constructors + if (!isObject(C)) throwUnpolyfillable(type); + return new C(cloneBuffer(value.buffer, map), offset, length); +}; + +var structuredCloneInternal = function (value, map) { + if (isSymbol(value)) throwUncloneable('Symbol'); + if (!isObject(value)) return value; + // effectively preserves circular references + if (map) { + if (mapHas(map, value)) return mapGet(map, value); + } else map = new Map(); + + var type = classof(value); + var C, name, cloned, dataTransfer, i, length, keys, key; + + switch (type) { + case 'Array': + cloned = Array(lengthOfArrayLike(value)); + break; + case 'Object': + cloned = {}; + break; + case 'Map': + cloned = new Map(); + break; + case 'Set': + cloned = new Set(); + break; + case 'RegExp': + // in this block because of a Safari 14.1 bug + // old FF does not clone regexes passed to the constructor, so get the source and flags directly + cloned = new RegExp(value.source, getRegExpFlags(value)); + break; + case 'Error': + name = value.name; + switch (name) { + case 'AggregateError': + cloned = new (getBuiltIn(name))([]); + break; + case 'EvalError': + case 'RangeError': + case 'ReferenceError': + case 'SuppressedError': + case 'SyntaxError': + case 'TypeError': + case 'URIError': + cloned = new (getBuiltIn(name))(); + break; + case 'CompileError': + case 'LinkError': + case 'RuntimeError': + cloned = new (getBuiltIn('WebAssembly', name))(); + break; + default: + cloned = new Error(); + } + break; + case 'DOMException': + cloned = new DOMException(value.message, value.name); + break; + case 'ArrayBuffer': + case 'SharedArrayBuffer': + cloned = cloneBuffer(value, map, type); + break; + case 'DataView': + case 'Int8Array': + case 'Uint8Array': + case 'Uint8ClampedArray': + case 'Int16Array': + case 'Uint16Array': + case 'Int32Array': + case 'Uint32Array': + case 'Float16Array': + case 'Float32Array': + case 'Float64Array': + case 'BigInt64Array': + case 'BigUint64Array': + length = type === 'DataView' ? value.byteLength : value.length; + cloned = cloneView(value, type, value.byteOffset, length, map); + break; + case 'DOMQuad': + try { + cloned = new DOMQuad( + structuredCloneInternal(value.p1, map), + structuredCloneInternal(value.p2, map), + structuredCloneInternal(value.p3, map), + structuredCloneInternal(value.p4, map) + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } + break; + case 'File': + if (nativeRestrictedStructuredClone) try { + cloned = nativeRestrictedStructuredClone(value); + // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612 + if (classof(cloned) !== type) cloned = undefined; + } catch (error) { /* empty */ } + if (!cloned) try { + cloned = new File([value], value.name, value); + } catch (error) { /* empty */ } + if (!cloned) throwUnpolyfillable(type); + break; + case 'FileList': + dataTransfer = createDataTransfer(); + if (dataTransfer) { + for (i = 0, length = lengthOfArrayLike(value); i < length; i++) { + dataTransfer.items.add(structuredCloneInternal(value[i], map)); + } + cloned = dataTransfer.files; + } else cloned = tryNativeRestrictedStructuredClone(value, type); + break; + case 'ImageData': + // Safari 9 ImageData is a constructor, but typeof ImageData is 'object' + try { + cloned = new ImageData( + structuredCloneInternal(value.data, map), + value.width, + value.height, + { colorSpace: value.colorSpace } + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } break; + default: + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else switch (type) { + case 'BigInt': + // can be a 3rd party polyfill + cloned = Object(value.valueOf()); + break; + case 'Boolean': + cloned = Object(thisBooleanValue(value)); + break; + case 'Number': + cloned = Object(thisNumberValue(value)); + break; + case 'String': + cloned = Object(thisStringValue(value)); + break; + case 'Date': + cloned = new Date(thisTimeValue(value)); + break; + case 'Blob': + try { + cloned = value.slice(0, value.size, value.type); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMPoint': + case 'DOMPointReadOnly': + C = global[type]; + try { + cloned = C.fromPoint + ? C.fromPoint(value) + : new C(value.x, value.y, value.z, value.w); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMRect': + case 'DOMRectReadOnly': + C = global[type]; + try { + cloned = C.fromRect + ? C.fromRect(value) + : new C(value.x, value.y, value.width, value.height); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMMatrix': + case 'DOMMatrixReadOnly': + C = global[type]; + try { + cloned = C.fromMatrix + ? C.fromMatrix(value) + : new C(value); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone)) throwUnpolyfillable(type); + try { + cloned = value.clone(); + } catch (error) { + throwUncloneable(type); + } break; + case 'CropTarget': + case 'CryptoKey': + case 'FileSystemDirectoryHandle': + case 'FileSystemFileHandle': + case 'FileSystemHandle': + case 'GPUCompilationInfo': + case 'GPUCompilationMessage': + case 'ImageBitmap': + case 'RTCCertificate': + case 'WebAssembly.Module': + throwUnpolyfillable(type); + // break omitted + default: + throwUncloneable(type); + } + } + + mapSet(map, value, cloned); + + switch (type) { + case 'Array': + case 'Object': + keys = objectKeys(value); + for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) { + key = keys[i]; + createProperty(cloned, key, structuredCloneInternal(value[key], map)); + } break; + case 'Map': + value.forEach(function (v, k) { + mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map)); + }); + break; + case 'Set': + value.forEach(function (v) { + setAdd(cloned, structuredCloneInternal(v, map)); + }); + break; + case 'Error': + createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map)); + if (hasOwn(value, 'cause')) { + createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map)); + } + if (name === 'AggregateError') { + cloned.errors = structuredCloneInternal(value.errors, map); + } else if (name === 'SuppressedError') { + cloned.error = structuredCloneInternal(value.error, map); + cloned.suppressed = structuredCloneInternal(value.suppressed, map); + } // break omitted + case 'DOMException': + if (ERROR_STACK_INSTALLABLE) { + createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map)); + } + } + + return cloned; +}; + +var tryToTransfer = function (rawTransfer, map) { + if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence'); + + var transfer = []; + + iterate(rawTransfer, function (value) { + push(transfer, anObject(value)); + }); + + var i = 0; + var length = lengthOfArrayLike(transfer); + var buffers = new Set(); + var value, type, C, transferred, canvas, context; + + while (i < length) { + value = transfer[i++]; + + type = classof(value); + + if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) { + throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); + } + + if (type === 'ArrayBuffer') { + setAdd(buffers, value); + continue; + } + + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + transferred = nativeStructuredClone(value, { transfer: [value] }); + } else switch (type) { + case 'ImageBitmap': + C = global.OffscreenCanvas; + if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING); + try { + canvas = new C(value.width, value.height); + context = canvas.getContext('bitmaprenderer'); + context.transferFromImageBitmap(value); + transferred = canvas.transferToImageBitmap(); + } catch (error) { /* empty */ } + break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING); + try { + transferred = value.clone(); + value.close(); + } catch (error) { /* empty */ } + break; + case 'MediaSourceHandle': + case 'MessagePort': + case 'OffscreenCanvas': + case 'ReadableStream': + case 'TransformStream': + case 'WritableStream': + throwUnpolyfillable(type, TRANSFERRING); + } + + if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR); + + mapSet(map, value, transferred); + } + + return buffers; +}; + +var detachBuffers = function (buffers) { + setIterate(buffers, function (buffer) { + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + nativeRestrictedStructuredClone(buffer, { transfer: [buffer] }); + } else if (isCallable(buffer.transfer)) { + buffer.transfer(); + } else if (detachTransferable) { + detachTransferable(buffer); + } else { + throwUnpolyfillable('ArrayBuffer', TRANSFERRING); + } + }); +}; + +// `structuredClone` method +// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone +$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, { + structuredClone: function structuredClone(value /* , { transfer } */) { + var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined; + var transfer = options ? options.transfer : undefined; + var map, buffers; + + if (transfer !== undefined) { + map = new Map(); + buffers = tryToTransfer(transfer, map); + } + + var clone = structuredCloneInternal(value, map); + + // since of an issue with cloning views of transferred buffers, we a forced to detach them later + // https://github.com/zloirock/core-js/issues/1265 + if (buffers) detachBuffers(buffers); + + return clone; + } +}); + + +/***/ }), +/* 545 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(546); +__webpack_require__(547); + + +/***/ }), +/* 546 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setInterval = schedulersFix(global.setInterval, true); + +// Bun / IE9- setInterval additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval +$({ global: true, bind: true, forced: global.setInterval !== setInterval }, { + setInterval: setInterval +}); + + +/***/ }), +/* 547 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setTimeout = schedulersFix(global.setTimeout, true); + +// Bun / IE9- setTimeout additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout +$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, { + setTimeout: setTimeout +}); + + +/***/ }), +/* 548 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(549); + + +/***/ }), +/* 549 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(428); +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var global = __webpack_require__(4); +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var anInstance = __webpack_require__(210); +var hasOwn = __webpack_require__(38); +var assign = __webpack_require__(305); +var arrayFrom = __webpack_require__(162); +var arraySlice = __webpack_require__(76); +var codeAt = (__webpack_require__(421).codeAt); +var toASCII = __webpack_require__(551); +var $toString = __webpack_require__(68); +var setToStringTag = __webpack_require__(82); +var validateArgumentsLength = __webpack_require__(342); +var URLSearchParamsModule = __webpack_require__(552); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var getInternalURLState = InternalStateModule.getterFor('URL'); +var URLSearchParams = URLSearchParamsModule.URLSearchParams; +var getInternalSearchParamsState = URLSearchParamsModule.getState; + +var NativeURL = global.URL; +var TypeError = global.TypeError; +var parseInt = global.parseInt; +var floor = Math.floor; +var pow = Math.pow; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var join = uncurryThis([].join); +var numberToString = uncurryThis(1.0.toString); +var pop = uncurryThis([].pop); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); +var toLowerCase = uncurryThis(''.toLowerCase); +var unshift = uncurryThis([].unshift); + +var INVALID_AUTHORITY = 'Invalid authority'; +var INVALID_SCHEME = 'Invalid scheme'; +var INVALID_HOST = 'Invalid host'; +var INVALID_PORT = 'Invalid port'; + +var ALPHA = /[a-z]/i; +// eslint-disable-next-line regexp/no-obscure-range -- safe +var ALPHANUMERIC = /[\d+-.a-z]/i; +var DIGIT = /\d/; +var HEX_START = /^0x/i; +var OCT = /^[0-7]+$/; +var DEC = /^\d+$/; +var HEX = /^[\da-f]+$/i; +/* eslint-disable regexp/no-control-character -- safe */ +var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/; +var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/; +var LEADING_C0_CONTROL_OR_SPACE = /^[\u0000-\u0020]+/; +var TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\u0000-\u0020])[\u0000-\u0020]+$/; +var TAB_AND_NEW_LINE = /[\t\n\r]/g; +/* eslint-enable regexp/no-control-character -- safe */ +var EOF; + +// https://url.spec.whatwg.org/#ipv4-number-parser +var parseIPv4 = function (input) { + var parts = split(input, '.'); + var partsLength, numbers, index, part, radix, number, ipv4; + if (parts.length && parts[parts.length - 1] === '') { + parts.length--; + } + partsLength = parts.length; + if (partsLength > 4) return input; + numbers = []; + for (index = 0; index < partsLength; index++) { + part = parts[index]; + if (part === '') return input; + radix = 10; + if (part.length > 1 && charAt(part, 0) === '0') { + radix = exec(HEX_START, part) ? 16 : 8; + part = stringSlice(part, radix === 8 ? 1 : 2); + } + if (part === '') { + number = 0; + } else { + if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input; + number = parseInt(part, radix); + } + push(numbers, number); + } + for (index = 0; index < partsLength; index++) { + number = numbers[index]; + if (index === partsLength - 1) { + if (number >= pow(256, 5 - partsLength)) return null; + } else if (number > 255) return null; + } + ipv4 = pop(numbers); + for (index = 0; index < numbers.length; index++) { + ipv4 += numbers[index] * pow(256, 3 - index); + } + return ipv4; +}; + +// https://url.spec.whatwg.org/#concept-ipv6-parser +// eslint-disable-next-line max-statements -- TODO +var parseIPv6 = function (input) { + var address = [0, 0, 0, 0, 0, 0, 0, 0]; + var pieceIndex = 0; + var compress = null; + var pointer = 0; + var value, length, numbersSeen, ipv4Piece, number, swaps, swap; + + var chr = function () { + return charAt(input, pointer); + }; + + if (chr() === ':') { + if (charAt(input, 1) !== ':') return; + pointer += 2; + pieceIndex++; + compress = pieceIndex; + } + while (chr()) { + if (pieceIndex === 8) return; + if (chr() === ':') { + if (compress !== null) return; + pointer++; + pieceIndex++; + compress = pieceIndex; + continue; + } + value = length = 0; + while (length < 4 && exec(HEX, chr())) { + value = value * 16 + parseInt(chr(), 16); + pointer++; + length++; + } + if (chr() === '.') { + if (length === 0) return; + pointer -= length; + if (pieceIndex > 6) return; + numbersSeen = 0; + while (chr()) { + ipv4Piece = null; + if (numbersSeen > 0) { + if (chr() === '.' && numbersSeen < 4) pointer++; + else return; + } + if (!exec(DIGIT, chr())) return; + while (exec(DIGIT, chr())) { + number = parseInt(chr(), 10); + if (ipv4Piece === null) ipv4Piece = number; + else if (ipv4Piece === 0) return; + else ipv4Piece = ipv4Piece * 10 + number; + if (ipv4Piece > 255) return; + pointer++; + } + address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; + numbersSeen++; + if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++; + } + if (numbersSeen !== 4) return; + break; + } else if (chr() === ':') { + pointer++; + if (!chr()) return; + } else if (chr()) return; + address[pieceIndex++] = value; + } + if (compress !== null) { + swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + swap = address[pieceIndex]; + address[pieceIndex--] = address[compress + swaps - 1]; + address[compress + --swaps] = swap; + } + } else if (pieceIndex !== 8) return; + return address; +}; + +var findLongestZeroSequence = function (ipv6) { + var maxIndex = null; + var maxLength = 1; + var currStart = null; + var currLength = 0; + var index = 0; + for (; index < 8; index++) { + if (ipv6[index] !== 0) { + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + currStart = null; + currLength = 0; + } else { + if (currStart === null) currStart = index; + ++currLength; + } + } + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + return maxIndex; +}; + +// https://url.spec.whatwg.org/#host-serializing +var serializeHost = function (host) { + var result, index, compress, ignore0; + // ipv4 + if (typeof host == 'number') { + result = []; + for (index = 0; index < 4; index++) { + unshift(result, host % 256); + host = floor(host / 256); + } return join(result, '.'); + // ipv6 + } else if (typeof host == 'object') { + result = ''; + compress = findLongestZeroSequence(host); + for (index = 0; index < 8; index++) { + if (ignore0 && host[index] === 0) continue; + if (ignore0) ignore0 = false; + if (compress === index) { + result += index ? ':' : '::'; + ignore0 = true; + } else { + result += numberToString(host[index], 16); + if (index < 7) result += ':'; + } + } + return '[' + result + ']'; + } return host; +}; + +var C0ControlPercentEncodeSet = {}; +var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { + ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 +}); +var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { + '#': 1, '?': 1, '{': 1, '}': 1 +}); +var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { + '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 +}); + +var percentEncode = function (chr, set) { + var code = codeAt(chr, 0); + return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr); +}; + +// https://url.spec.whatwg.org/#special-scheme +var specialSchemes = { + ftp: 21, + file: null, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +// https://url.spec.whatwg.org/#windows-drive-letter +var isWindowsDriveLetter = function (string, normalized) { + var second; + return string.length === 2 && exec(ALPHA, charAt(string, 0)) + && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|')); +}; + +// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter +var startsWithWindowsDriveLetter = function (string) { + var third; + return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && ( + string.length === 2 || + ((third = charAt(string, 2)) === '/' || third === '\\' || third === '?' || third === '#') + ); +}; + +// https://url.spec.whatwg.org/#single-dot-path-segment +var isSingleDot = function (segment) { + return segment === '.' || toLowerCase(segment) === '%2e'; +}; + +// https://url.spec.whatwg.org/#double-dot-path-segment +var isDoubleDot = function (segment) { + segment = toLowerCase(segment); + return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; +}; + +// States: +var SCHEME_START = {}; +var SCHEME = {}; +var NO_SCHEME = {}; +var SPECIAL_RELATIVE_OR_AUTHORITY = {}; +var PATH_OR_AUTHORITY = {}; +var RELATIVE = {}; +var RELATIVE_SLASH = {}; +var SPECIAL_AUTHORITY_SLASHES = {}; +var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; +var AUTHORITY = {}; +var HOST = {}; +var HOSTNAME = {}; +var PORT = {}; +var FILE = {}; +var FILE_SLASH = {}; +var FILE_HOST = {}; +var PATH_START = {}; +var PATH = {}; +var CANNOT_BE_A_BASE_URL_PATH = {}; +var QUERY = {}; +var FRAGMENT = {}; + +var URLState = function (url, isBase, base) { + var urlString = $toString(url); + var baseState, failure, searchParams; + if (isBase) { + failure = this.parse(urlString); + if (failure) throw new TypeError(failure); + this.searchParams = null; + } else { + if (base !== undefined) baseState = new URLState(base, true); + failure = this.parse(urlString, null, baseState); + if (failure) throw new TypeError(failure); + searchParams = getInternalSearchParamsState(new URLSearchParams()); + searchParams.bindURL(this); + this.searchParams = searchParams; + } +}; + +URLState.prototype = { + type: 'URL', + // https://url.spec.whatwg.org/#url-parsing + // eslint-disable-next-line max-statements -- TODO + parse: function (input, stateOverride, base) { + var url = this; + var state = stateOverride || SCHEME_START; + var pointer = 0; + var buffer = ''; + var seenAt = false; + var seenBracket = false; + var seenPasswordToken = false; + var codePoints, chr, bufferCodePoints, failure; + + input = $toString(input); + + if (!stateOverride) { + url.scheme = ''; + url.username = ''; + url.password = ''; + url.host = null; + url.port = null; + url.path = []; + url.query = null; + url.fragment = null; + url.cannotBeABaseURL = false; + input = replace(input, LEADING_C0_CONTROL_OR_SPACE, ''); + input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1'); + } + + input = replace(input, TAB_AND_NEW_LINE, ''); + + codePoints = arrayFrom(input); + + while (pointer <= codePoints.length) { + chr = codePoints[pointer]; + switch (state) { + case SCHEME_START: + if (chr && exec(ALPHA, chr)) { + buffer += toLowerCase(chr); + state = SCHEME; + } else if (!stateOverride) { + state = NO_SCHEME; + continue; + } else return INVALID_SCHEME; + break; + + case SCHEME: + if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) { + buffer += toLowerCase(chr); + } else if (chr === ':') { + if (stateOverride && ( + (url.isSpecial() !== hasOwn(specialSchemes, buffer)) || + (buffer === 'file' && (url.includesCredentials() || url.port !== null)) || + (url.scheme === 'file' && !url.host) + )) return; + url.scheme = buffer; + if (stateOverride) { + if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null; + return; + } + buffer = ''; + if (url.scheme === 'file') { + state = FILE; + } else if (url.isSpecial() && base && base.scheme === url.scheme) { + state = SPECIAL_RELATIVE_OR_AUTHORITY; + } else if (url.isSpecial()) { + state = SPECIAL_AUTHORITY_SLASHES; + } else if (codePoints[pointer + 1] === '/') { + state = PATH_OR_AUTHORITY; + pointer++; + } else { + url.cannotBeABaseURL = true; + push(url.path, ''); + state = CANNOT_BE_A_BASE_URL_PATH; + } + } else if (!stateOverride) { + buffer = ''; + state = NO_SCHEME; + pointer = 0; + continue; + } else return INVALID_SCHEME; + break; + + case NO_SCHEME: + if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME; + if (base.cannotBeABaseURL && chr === '#') { + url.scheme = base.scheme; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + url.cannotBeABaseURL = true; + state = FRAGMENT; + break; + } + state = base.scheme === 'file' ? FILE : RELATIVE; + continue; + + case SPECIAL_RELATIVE_OR_AUTHORITY: + if (chr === '/' && codePoints[pointer + 1] === '/') { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + pointer++; + } else { + state = RELATIVE; + continue; + } break; + + case PATH_OR_AUTHORITY: + if (chr === '/') { + state = AUTHORITY; + break; + } else { + state = PATH; + continue; + } + + case RELATIVE: + url.scheme = base.scheme; + if (chr === EOF) { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + } else if (chr === '/' || (chr === '\\' && url.isSpecial())) { + state = RELATIVE_SLASH; + } else if (chr === '?') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.path.length--; + state = PATH; + continue; + } break; + + case RELATIVE_SLASH: + if (url.isSpecial() && (chr === '/' || chr === '\\')) { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + } else if (chr === '/') { + state = AUTHORITY; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + state = PATH; + continue; + } break; + + case SPECIAL_AUTHORITY_SLASHES: + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue; + pointer++; + break; + + case SPECIAL_AUTHORITY_IGNORE_SLASHES: + if (chr !== '/' && chr !== '\\') { + state = AUTHORITY; + continue; + } break; + + case AUTHORITY: + if (chr === '@') { + if (seenAt) buffer = '%40' + buffer; + seenAt = true; + bufferCodePoints = arrayFrom(buffer); + for (var i = 0; i < bufferCodePoints.length; i++) { + var codePoint = bufferCodePoints[i]; + if (codePoint === ':' && !seenPasswordToken) { + seenPasswordToken = true; + continue; + } + var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); + if (seenPasswordToken) url.password += encodedCodePoints; + else url.username += encodedCodePoints; + } + buffer = ''; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (seenAt && buffer === '') return INVALID_AUTHORITY; + pointer -= arrayFrom(buffer).length + 1; + buffer = ''; + state = HOST; + } else buffer += chr; + break; + + case HOST: + case HOSTNAME: + if (stateOverride && url.scheme === 'file') { + state = FILE_HOST; + continue; + } else if (chr === ':' && !seenBracket) { + if (buffer === '') return INVALID_HOST; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PORT; + if (stateOverride === HOSTNAME) return; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (url.isSpecial() && buffer === '') return INVALID_HOST; + if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PATH_START; + if (stateOverride) return; + continue; + } else { + if (chr === '[') seenBracket = true; + else if (chr === ']') seenBracket = false; + buffer += chr; + } break; + + case PORT: + if (exec(DIGIT, chr)) { + buffer += chr; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) || + stateOverride + ) { + if (buffer !== '') { + var port = parseInt(buffer, 10); + if (port > 0xFFFF) return INVALID_PORT; + url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port; + buffer = ''; + } + if (stateOverride) return; + state = PATH_START; + continue; + } else return INVALID_PORT; + break; + + case FILE: + url.scheme = 'file'; + if (chr === '/' || chr === '\\') state = FILE_SLASH; + else if (base && base.scheme === 'file') { + switch (chr) { + case EOF: + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + break; + case '?': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + break; + case '#': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + break; + default: + if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + url.host = base.host; + url.path = arraySlice(base.path); + url.shortenPath(); + } + state = PATH; + continue; + } + } else { + state = PATH; + continue; + } break; + + case FILE_SLASH: + if (chr === '/' || chr === '\\') { + state = FILE_HOST; + break; + } + if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]); + else url.host = base.host; + } + state = PATH; + continue; + + case FILE_HOST: + if (chr === EOF || chr === '/' || chr === '\\' || chr === '?' || chr === '#') { + if (!stateOverride && isWindowsDriveLetter(buffer)) { + state = PATH; + } else if (buffer === '') { + url.host = ''; + if (stateOverride) return; + state = PATH_START; + } else { + failure = url.parseHost(buffer); + if (failure) return failure; + if (url.host === 'localhost') url.host = ''; + if (stateOverride) return; + buffer = ''; + state = PATH_START; + } continue; + } else buffer += chr; + break; + + case PATH_START: + if (url.isSpecial()) { + state = PATH; + if (chr !== '/' && chr !== '\\') continue; + } else if (!stateOverride && chr === '?') { + url.query = ''; + state = QUERY; + } else if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + state = PATH; + if (chr !== '/') continue; + } break; + + case PATH: + if ( + chr === EOF || chr === '/' || + (chr === '\\' && url.isSpecial()) || + (!stateOverride && (chr === '?' || chr === '#')) + ) { + if (isDoubleDot(buffer)) { + url.shortenPath(); + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else if (isSingleDot(buffer)) { + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else { + if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { + if (url.host) url.host = ''; + buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter + } + push(url.path, buffer); + } + buffer = ''; + if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) { + while (url.path.length > 1 && url.path[0] === '') { + shift(url.path); + } + } + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } + } else { + buffer += percentEncode(chr, pathPercentEncodeSet); + } break; + + case CANNOT_BE_A_BASE_URL_PATH: + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case QUERY: + if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + if (chr === "'" && url.isSpecial()) url.query += '%27'; + else if (chr === '#') url.query += '%23'; + else url.query += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case FRAGMENT: + if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet); + break; + } + + pointer++; + } + }, + // https://url.spec.whatwg.org/#host-parsing + parseHost: function (input) { + var result, codePoints, index; + if (charAt(input, 0) === '[') { + if (charAt(input, input.length - 1) !== ']') return INVALID_HOST; + result = parseIPv6(stringSlice(input, 1, -1)); + if (!result) return INVALID_HOST; + this.host = result; + // opaque host + } else if (!this.isSpecial()) { + if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST; + result = ''; + codePoints = arrayFrom(input); + for (index = 0; index < codePoints.length; index++) { + result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); + } + this.host = result; + } else { + input = toASCII(input); + if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST; + result = parseIPv4(input); + if (result === null) return INVALID_HOST; + this.host = result; + } + }, + // https://url.spec.whatwg.org/#cannot-have-a-username-password-port + cannotHaveUsernamePasswordPort: function () { + return !this.host || this.cannotBeABaseURL || this.scheme === 'file'; + }, + // https://url.spec.whatwg.org/#include-credentials + includesCredentials: function () { + return this.username !== '' || this.password !== ''; + }, + // https://url.spec.whatwg.org/#is-special + isSpecial: function () { + return hasOwn(specialSchemes, this.scheme); + }, + // https://url.spec.whatwg.org/#shorten-a-urls-path + shortenPath: function () { + var path = this.path; + var pathSize = path.length; + if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) { + path.length--; + } + }, + // https://url.spec.whatwg.org/#concept-url-serializer + serialize: function () { + var url = this; + var scheme = url.scheme; + var username = url.username; + var password = url.password; + var host = url.host; + var port = url.port; + var path = url.path; + var query = url.query; + var fragment = url.fragment; + var output = scheme + ':'; + if (host !== null) { + output += '//'; + if (url.includesCredentials()) { + output += username + (password ? ':' + password : '') + '@'; + } + output += serializeHost(host); + if (port !== null) output += ':' + port; + } else if (scheme === 'file') output += '//'; + output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + if (query !== null) output += '?' + query; + if (fragment !== null) output += '#' + fragment; + return output; + }, + // https://url.spec.whatwg.org/#dom-url-href + setHref: function (href) { + var failure = this.parse(href); + if (failure) throw new TypeError(failure); + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-origin + getOrigin: function () { + var scheme = this.scheme; + var port = this.port; + if (scheme === 'blob') try { + return new URLConstructor(scheme.path[0]).origin; + } catch (error) { + return 'null'; + } + if (scheme === 'file' || !this.isSpecial()) return 'null'; + return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : ''); + }, + // https://url.spec.whatwg.org/#dom-url-protocol + getProtocol: function () { + return this.scheme + ':'; + }, + setProtocol: function (protocol) { + this.parse($toString(protocol) + ':', SCHEME_START); + }, + // https://url.spec.whatwg.org/#dom-url-username + getUsername: function () { + return this.username; + }, + setUsername: function (username) { + var codePoints = arrayFrom($toString(username)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.username = ''; + for (var i = 0; i < codePoints.length; i++) { + this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-password + getPassword: function () { + return this.password; + }, + setPassword: function (password) { + var codePoints = arrayFrom($toString(password)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.password = ''; + for (var i = 0; i < codePoints.length; i++) { + this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-host + getHost: function () { + var host = this.host; + var port = this.port; + return host === null ? '' + : port === null ? serializeHost(host) + : serializeHost(host) + ':' + port; + }, + setHost: function (host) { + if (this.cannotBeABaseURL) return; + this.parse(host, HOST); + }, + // https://url.spec.whatwg.org/#dom-url-hostname + getHostname: function () { + var host = this.host; + return host === null ? '' : serializeHost(host); + }, + setHostname: function (hostname) { + if (this.cannotBeABaseURL) return; + this.parse(hostname, HOSTNAME); + }, + // https://url.spec.whatwg.org/#dom-url-port + getPort: function () { + var port = this.port; + return port === null ? '' : $toString(port); + }, + setPort: function (port) { + if (this.cannotHaveUsernamePasswordPort()) return; + port = $toString(port); + if (port === '') this.port = null; + else this.parse(port, PORT); + }, + // https://url.spec.whatwg.org/#dom-url-pathname + getPathname: function () { + var path = this.path; + return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + }, + setPathname: function (pathname) { + if (this.cannotBeABaseURL) return; + this.path = []; + this.parse(pathname, PATH_START); + }, + // https://url.spec.whatwg.org/#dom-url-search + getSearch: function () { + var query = this.query; + return query ? '?' + query : ''; + }, + setSearch: function (search) { + search = $toString(search); + if (search === '') { + this.query = null; + } else { + if (charAt(search, 0) === '?') search = stringSlice(search, 1); + this.query = ''; + this.parse(search, QUERY); + } + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-searchparams + getSearchParams: function () { + return this.searchParams.facade; + }, + // https://url.spec.whatwg.org/#dom-url-hash + getHash: function () { + var fragment = this.fragment; + return fragment ? '#' + fragment : ''; + }, + setHash: function (hash) { + hash = $toString(hash); + if (hash === '') { + this.fragment = null; + return; + } + if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1); + this.fragment = ''; + this.parse(hash, FRAGMENT); + }, + update: function () { + this.query = this.searchParams.serialize() || null; + } +}; + +// `URL` constructor +// https://url.spec.whatwg.org/#url-class +var URLConstructor = function URL(url /* , base */) { + var that = anInstance(this, URLPrototype); + var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined; + var state = setInternalState(that, new URLState(url, false, base)); + if (!DESCRIPTORS) { + that.href = state.serialize(); + that.origin = state.getOrigin(); + that.protocol = state.getProtocol(); + that.username = state.getUsername(); + that.password = state.getPassword(); + that.host = state.getHost(); + that.hostname = state.getHostname(); + that.port = state.getPort(); + that.pathname = state.getPathname(); + that.search = state.getSearch(); + that.searchParams = state.getSearchParams(); + that.hash = state.getHash(); + } +}; + +var URLPrototype = URLConstructor.prototype; + +var accessorDescriptor = function (getter, setter) { + return { + get: function () { + return getInternalURLState(this)[getter](); + }, + set: setter && function (value) { + return getInternalURLState(this)[setter](value); + }, + configurable: true, + enumerable: true + }; +}; + +if (DESCRIPTORS) { + // `URL.prototype.href` accessors pair + // https://url.spec.whatwg.org/#dom-url-href + defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref')); + // `URL.prototype.origin` getter + // https://url.spec.whatwg.org/#dom-url-origin + defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin')); + // `URL.prototype.protocol` accessors pair + // https://url.spec.whatwg.org/#dom-url-protocol + defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol')); + // `URL.prototype.username` accessors pair + // https://url.spec.whatwg.org/#dom-url-username + defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername')); + // `URL.prototype.password` accessors pair + // https://url.spec.whatwg.org/#dom-url-password + defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword')); + // `URL.prototype.host` accessors pair + // https://url.spec.whatwg.org/#dom-url-host + defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost')); + // `URL.prototype.hostname` accessors pair + // https://url.spec.whatwg.org/#dom-url-hostname + defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname')); + // `URL.prototype.port` accessors pair + // https://url.spec.whatwg.org/#dom-url-port + defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort')); + // `URL.prototype.pathname` accessors pair + // https://url.spec.whatwg.org/#dom-url-pathname + defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname')); + // `URL.prototype.search` accessors pair + // https://url.spec.whatwg.org/#dom-url-search + defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch')); + // `URL.prototype.searchParams` getter + // https://url.spec.whatwg.org/#dom-url-searchparams + defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams')); + // `URL.prototype.hash` accessors pair + // https://url.spec.whatwg.org/#dom-url-hash + defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash')); +} + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +defineBuiltIn(URLPrototype, 'toJSON', function toJSON() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +// `URL.prototype.toString` method +// https://url.spec.whatwg.org/#URL-stringification-behavior +defineBuiltIn(URLPrototype, 'toString', function toString() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +if (NativeURL) { + var nativeCreateObjectURL = NativeURL.createObjectURL; + var nativeRevokeObjectURL = NativeURL.revokeObjectURL; + // `URL.createObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL + if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL)); + // `URL.revokeObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL + if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL)); +} + +setToStringTag(URLConstructor, 'URL'); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { + URL: URLConstructor +}); + + +/***/ }), +/* 550 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = !fails(function () { + // eslint-disable-next-line unicorn/relative-url-style -- required for testing + var url = new URL('b?a=1&b=2&c=3', 'http://a'); + var params = url.searchParams; + var params2 = new URLSearchParams('a=1&a=2&b=3'); + var result = ''; + url.pathname = 'c%20d'; + params.forEach(function (value, key) { + params['delete']('b'); + result += key + value; + }); + params2['delete']('a', 2); + // `undefined` case is a Chromium 117 bug + // https://bugs.chromium.org/p/v8/issues/detail?id=14222 + params2['delete']('b', undefined); + return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b'))) + || (!params.size && (IS_PURE || !DESCRIPTORS)) + || !params.sort + || url.href !== 'http://a/c%20d?a=1&c=3' + || params.get('c') !== '3' + || String(new URLSearchParams('?a=1')) !== 'a=1' + || !params[ITERATOR] + // throws in Edge + || new URL('https://a@b').username !== 'a' + || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' + // not punycoded in Edge + || new URL('http://тест').host !== 'xn--e1aybc' + // not escaped in Chrome 62- + || new URL('http://a#б').hash !== '#%D0%B1' + // fails in Chrome 66- + || result !== 'a1c3' + // throws in Safari + || new URL('http://x', undefined).host !== 'x'; +}); + + +/***/ }), +/* 551 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js +var uncurryThis = __webpack_require__(14); + +var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 +var base = 36; +var tMin = 1; +var tMax = 26; +var skew = 38; +var damp = 700; +var initialBias = 72; +var initialN = 128; // 0x80 +var delimiter = '-'; // '\x2D' +var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars +var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators +var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; +var baseMinusTMin = base - tMin; + +var $RangeError = RangeError; +var exec = uncurryThis(regexSeparators.exec); +var floor = Math.floor; +var fromCharCode = String.fromCharCode; +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var split = uncurryThis(''.split); +var toLowerCase = uncurryThis(''.toLowerCase); + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + */ +var ucs2decode = function (string) { + var output = []; + var counter = 0; + var length = string.length; + while (counter < length) { + var value = charCodeAt(string, counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + var extra = charCodeAt(string, counter++); + if ((extra & 0xFC00) === 0xDC00) { // Low surrogate. + push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + push(output, value); + counter--; + } + } else { + push(output, value); + } + } + return output; +}; + +/** + * Converts a digit/integer into a basic code point. + */ +var digitToBasic = function (digit) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + */ +var adapt = function (delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + while (delta > baseMinusTMin * tMax >> 1) { + delta = floor(delta / baseMinusTMin); + k += base; + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + */ +var encode = function (input) { + var output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + var inputLength = input.length; + + // Initialize the state. + var n = initialN; + var delta = 0; + var bias = initialBias; + var i, currentValue; + + // Handle the basic code points. + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < 0x80) { + push(output, fromCharCode(currentValue)); + } + } + + var basicLength = output.length; // number of basic code points. + var handledCPCount = basicLength; // number of code points that have been handled; + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + push(output, delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + // All non-basic code points < n have been handled already. Find the next larger one: + var m = maxInt; + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow. + var handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + throw new $RangeError(OVERFLOW_ERROR); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < n && ++delta > maxInt) { + throw new $RangeError(OVERFLOW_ERROR); + } + if (currentValue === n) { + // Represent delta as a generalized variable-length integer. + var q = delta; + var k = base; + while (true) { + var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (q < t) break; + var qMinusT = q - t; + var baseMinusT = base - t; + push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT))); + q = floor(qMinusT / baseMinusT); + k += base; + } + + push(output, fromCharCode(digitToBasic(q))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength); + delta = 0; + handledCPCount++; + } + } + + delta++; + n++; + } + return join(output, ''); +}; + +module.exports = function (input) { + var encoded = []; + var labels = split(replace(toLowerCase(input), regexSeparators, '\u002E'), '.'); + var i, label; + for (i = 0; i < labels.length; i++) { + label = labels[i]; + push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label); + } + return join(encoded, '.'); +}; + + +/***/ }), +/* 552 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(168); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var setToStringTag = __webpack_require__(82); +var createIteratorConstructor = __webpack_require__(170); +var InternalStateModule = __webpack_require__(51); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var bind = __webpack_require__(84); +var classof = __webpack_require__(69); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var $toString = __webpack_require__(68); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var createIterResultObject = __webpack_require__(172); +var validateArgumentsLength = __webpack_require__(342); +var wellKnownSymbol = __webpack_require__(33); +var arraySort = __webpack_require__(188); + +var ITERATOR = wellKnownSymbol('iterator'); +var URL_SEARCH_PARAMS = 'URLSearchParams'; +var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); +var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); + +var nativeFetch = safeGetBuiltIn('fetch'); +var NativeRequest = safeGetBuiltIn('Request'); +var Headers = safeGetBuiltIn('Headers'); +var RequestPrototype = NativeRequest && NativeRequest.prototype; +var HeadersPrototype = Headers && Headers.prototype; +var RegExp = global.RegExp; +var TypeError = global.TypeError; +var decodeURIComponent = global.decodeURIComponent; +var encodeURIComponent = global.encodeURIComponent; +var charAt = uncurryThis(''.charAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var splice = uncurryThis([].splice); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); + +var plus = /\+/g; +var sequences = Array(4); + +var percentSequence = function (bytes) { + return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); +}; + +var percentDecode = function (sequence) { + try { + return decodeURIComponent(sequence); + } catch (error) { + return sequence; + } +}; + +var deserialize = function (it) { + var result = replace(it, plus, ' '); + var bytes = 4; + try { + return decodeURIComponent(result); + } catch (error) { + while (bytes) { + result = replace(result, percentSequence(bytes--), percentDecode); + } + return result; + } +}; + +var find = /[!'()~]|%20/g; + +var replacements = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+' +}; + +var replacer = function (match) { + return replacements[match]; +}; + +var serialize = function (it) { + return replace(encodeURIComponent(it), find, replacer); +}; + +var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { + setInternalState(this, { + type: URL_SEARCH_PARAMS_ITERATOR, + target: getInternalParamsState(params).entries, + index: 0, + kind: kind + }); +}, URL_SEARCH_PARAMS, function next() { + var state = getInternalIteratorState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + var entry = target[index]; + switch (state.kind) { + case 'keys': return createIterResultObject(entry.key, false); + case 'values': return createIterResultObject(entry.value, false); + } return createIterResultObject([entry.key, entry.value], false); +}, true); + +var URLSearchParamsState = function (init) { + this.entries = []; + this.url = null; + + if (init !== undefined) { + if (isObject(init)) this.parseObject(init); + else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init)); + } +}; + +URLSearchParamsState.prototype = { + type: URL_SEARCH_PARAMS, + bindURL: function (url) { + this.url = url; + this.update(); + }, + parseObject: function (object) { + var entries = this.entries; + var iteratorMethod = getIteratorMethod(object); + var iterator, next, step, entryIterator, entryNext, first, second; + + if (iteratorMethod) { + iterator = getIterator(object, iteratorMethod); + next = iterator.next; + while (!(step = call(next, iterator)).done) { + entryIterator = getIterator(anObject(step.value)); + entryNext = entryIterator.next; + if ( + (first = call(entryNext, entryIterator)).done || + (second = call(entryNext, entryIterator)).done || + !call(entryNext, entryIterator).done + ) throw new TypeError('Expected sequence with length 2'); + push(entries, { key: $toString(first.value), value: $toString(second.value) }); + } + } else for (var key in object) if (hasOwn(object, key)) { + push(entries, { key: key, value: $toString(object[key]) }); + } + }, + parseQuery: function (query) { + if (query) { + var entries = this.entries; + var attributes = split(query, '&'); + var index = 0; + var attribute, entry; + while (index < attributes.length) { + attribute = attributes[index++]; + if (attribute.length) { + entry = split(attribute, '='); + push(entries, { + key: deserialize(shift(entry)), + value: deserialize(join(entry, '=')) + }); + } + } + } + }, + serialize: function () { + var entries = this.entries; + var result = []; + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + push(result, serialize(entry.key) + '=' + serialize(entry.value)); + } return join(result, '&'); + }, + update: function () { + this.entries.length = 0; + this.parseQuery(this.url.query); + }, + updateURL: function () { + if (this.url) this.url.update(); + } +}; + +// `URLSearchParams` constructor +// https://url.spec.whatwg.org/#interface-urlsearchparams +var URLSearchParamsConstructor = function URLSearchParams(/* init */) { + anInstance(this, URLSearchParamsPrototype); + var init = arguments.length > 0 ? arguments[0] : undefined; + var state = setInternalState(this, new URLSearchParamsState(init)); + if (!DESCRIPTORS) this.size = state.entries.length; +}; + +var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; + +defineBuiltIns(URLSearchParamsPrototype, { + // `URLSearchParams.prototype.append` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-append + append: function append(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 2); + push(state.entries, { key: $toString(name), value: $toString(value) }); + if (!DESCRIPTORS) this.length++; + state.updateURL(); + }, + // `URLSearchParams.prototype.delete` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-delete + 'delete': function (name /* , value */) { + var state = getInternalParamsState(this); + var length = validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index]; + if (entry.key === key && (value === undefined || entry.value === value)) { + splice(entries, index, 1); + if (value !== undefined) break; + } else index++; + } + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.get` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-get + get: function get(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) return entries[index].value; + } + return null; + }, + // `URLSearchParams.prototype.getAll` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-getall + getAll: function getAll(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var result = []; + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) push(result, entries[index].value); + } + return result; + }, + // `URLSearchParams.prototype.has` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-has + has: function has(name /* , value */) { + var entries = getInternalParamsState(this).entries; + var length = validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index++]; + if (entry.key === key && (value === undefined || entry.value === value)) return true; + } + return false; + }, + // `URLSearchParams.prototype.set` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-set + set: function set(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var found = false; + var key = $toString(name); + var val = $toString(value); + var index = 0; + var entry; + for (; index < entries.length; index++) { + entry = entries[index]; + if (entry.key === key) { + if (found) splice(entries, index--, 1); + else { + found = true; + entry.value = val; + } + } + } + if (!found) push(entries, { key: key, value: val }); + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.sort` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-sort + sort: function sort() { + var state = getInternalParamsState(this); + arraySort(state.entries, function (a, b) { + return a.key > b.key ? 1 : -1; + }); + state.updateURL(); + }, + // `URLSearchParams.prototype.forEach` method + forEach: function forEach(callback /* , thisArg */) { + var entries = getInternalParamsState(this).entries; + var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined); + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + boundFunction(entry.value, entry.key, this); + } + }, + // `URLSearchParams.prototype.keys` method + keys: function keys() { + return new URLSearchParamsIterator(this, 'keys'); + }, + // `URLSearchParams.prototype.values` method + values: function values() { + return new URLSearchParamsIterator(this, 'values'); + }, + // `URLSearchParams.prototype.entries` method + entries: function entries() { + return new URLSearchParamsIterator(this, 'entries'); + } +}, { enumerable: true }); + +// `URLSearchParams.prototype[@@iterator]` method +defineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' }); + +// `URLSearchParams.prototype.toString` method +// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior +defineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() { + return getInternalParamsState(this).serialize(); +}, { enumerable: true }); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + return getInternalParamsState(this).entries.length; + }, + configurable: true, + enumerable: true +}); + +setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, { + URLSearchParams: URLSearchParamsConstructor +}); + +// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams` +if (!USE_NATIVE_URL && isCallable(Headers)) { + var headersHas = uncurryThis(HeadersPrototype.has); + var headersSet = uncurryThis(HeadersPrototype.set); + + var wrapRequestOptions = function (init) { + if (isObject(init)) { + var body = init.body; + var headers; + if (classof(body) === URL_SEARCH_PARAMS) { + headers = init.headers ? new Headers(init.headers) : new Headers(); + if (!headersHas(headers, 'content-type')) { + headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); + } + return create(init, { + body: createPropertyDescriptor(0, $toString(body)), + headers: createPropertyDescriptor(0, headers) + }); + } + } return init; + }; + + if (isCallable(nativeFetch)) { + $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, { + fetch: function fetch(input /* , init */) { + return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + } + }); + } + + if (isCallable(NativeRequest)) { + var RequestConstructor = function Request(input /* , init */) { + anInstance(this, RequestPrototype); + return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + }; + + RequestPrototype.constructor = RequestConstructor; + RequestConstructor.prototype = RequestPrototype; + + $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, { + Request: RequestConstructor + }); + } +} + +module.exports = { + URLSearchParams: URLSearchParamsConstructor, + getState: getInternalParamsState +}; + + +/***/ }), +/* 553 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// https://github.com/nodejs/node/issues/47505 +// https://github.com/denoland/deno/issues/18893 +var THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () { + URL.canParse(); +}); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9250 +var WRONG_ARITY = fails(function () { + return URL.canParse.length !== 1; +}); + +// `URL.canParse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, { + canParse: function canParse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return !!new URL(urlString, base); + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 554 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// `URL.parse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, { + parse: function parse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return new URL(urlString, base); + } catch (error) { + return null; + } + } +}); + + +/***/ }), +/* 555 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +$({ target: 'URL', proto: true, enumerable: true }, { + toJSON: function toJSON() { + return call(URL.prototype.toString, this); + } +}); + + +/***/ }), +/* 556 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(552); + + +/***/ }), +/* 557 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var append = uncurryThis(URLSearchParamsPrototype.append); +var $delete = uncurryThis(URLSearchParamsPrototype['delete']); +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); +var push = uncurryThis([].push); +var params = new $URLSearchParams('a=1&a=2&b=3'); + +params['delete']('a', 1); +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +params['delete']('b', undefined); + +if (params + '' !== 'a=2') { + defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $delete(this, name); + var entries = []; + forEach(this, function (v, k) { // also validates `this` + push(entries, { key: k, value: v }); + }); + validateArgumentsLength(length, 1); + var key = toString(name); + var value = toString($value); + var index = 0; + var dindex = 0; + var found = false; + var entriesLength = entries.length; + var entry; + while (index < entriesLength) { + entry = entries[index++]; + if (found || entry.key === key) { + found = true; + $delete(this, entry.key); + } else dindex++; + } + while (dindex < entriesLength) { + entry = entries[dindex++]; + if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value); + } + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 558 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var getAll = uncurryThis(URLSearchParamsPrototype.getAll); +var $has = uncurryThis(URLSearchParamsPrototype.has); +var params = new $URLSearchParams('a=1'); + +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +if (params.has('a', 2) || !params.has('a', undefined)) { + defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $has(this, name); + var values = getAll(this, name); // also validates `this` + validateArgumentsLength(length, 1); + var value = toString($value); + var index = 0; + while (index < values.length) { + if (values[index++] === value) return true; + } return false; + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 559 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var URLSearchParamsPrototype = URLSearchParams.prototype; +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) { + defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + var count = 0; + forEach(this, function () { count++; }); + return count; + }, + configurable: true, + enumerable: true + }); +} + + +/***/ }), +/* 560 */ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ BubbleCompare; } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selector.js +function none() { +} +/* harmony default export */ function selector(selector) { + return selector == null ? none : function() { + return this.querySelector(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/select.js + + +/* harmony default export */ function selection_select(select) { + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/array.js +function array(x) { + return x == null ? [] : Array.isArray(x) ? x : Array.from(x); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selectorAll.js +function empty() { + return []; +} +/* harmony default export */ function selectorAll(selector) { + return selector == null ? empty : function() { + return this.querySelectorAll(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectAll.js + + + +function arrayAll(select) { + return function() { + return array(select.apply(this, arguments)); + }; +} +/* harmony default export */ function selectAll(select) { + if (typeof select === "function") + select = arrayAll(select); + else + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + subgroups.push(select.call(node, node.__data__, i, group)); + parents.push(node); + } + } + } + return new Selection(subgroups, parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/matcher.js +/* harmony default export */ function matcher(selector) { + return function() { + return this.matches(selector); + }; +} +function childMatcher(selector) { + return function(node) { + return node.matches(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChild.js + +var find = Array.prototype.find; +function childFind(match) { + return function() { + return find.call(this.children, match); + }; +} +function childFirst() { + return this.firstElementChild; +} +/* harmony default export */ function selectChild(match) { + return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChildren.js + +var filter = Array.prototype.filter; +function children() { + return Array.from(this.children); +} +function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; +} +/* harmony default export */ function selectChildren(match) { + return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/filter.js + + +/* harmony default export */ function selection_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sparse.js +/* harmony default export */ function sparse(update) { + return new Array(update.length); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/enter.js + + +/* harmony default export */ function enter() { + return new Selection(this._enter || this._groups.map(sparse), this._parents); +} +function EnterNode(parent, datum) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum; +} +EnterNode.prototype = { + constructor: EnterNode, + appendChild: function(child) { + return this._parent.insertBefore(child, this._next); + }, + insertBefore: function(child, next) { + return this._parent.insertBefore(child, next); + }, + querySelector: function(selector) { + return this._parent.querySelector(selector); + }, + querySelectorAll: function(selector) { + return this._parent.querySelectorAll(selector); + } +}; + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/constant.js +/* harmony default export */ function constant(x) { + return function() { + return x; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/data.js + + + +function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, node, groupLength = group.length, dataLength = data.length; + for (; i < dataLength; ++i) { + if (node = group[i]) { + node.__data__ = data[i]; + update[i] = node; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (; i < groupLength; ++i) { + if (node = group[i]) { + exit[i] = node; + } + } +} +function bindKey(parent, group, enter, update, exit, data, key) { + var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue; + for (i = 0; i < groupLength; ++i) { + if (node = group[i]) { + keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + } + } + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node = nodeByKeyValue.get(keyValue)) { + update[i] = node; + node.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (i = 0; i < groupLength; ++i) { + if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) { + exit[i] = node; + } + } +} +function datum(node) { + return node.__data__; +} +/* harmony default export */ function data(value, key) { + if (!arguments.length) + return Array.from(this, datum); + var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups; + if (typeof value !== "function") + value = constant(value); + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength); + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) + i1 = i0 + 1; + while (!(next = updateGroup[i1]) && ++i1 < dataLength) + ; + previous._next = next || null; + } + } + } + update = new Selection(update, parents); + update._enter = enter; + update._exit = exit; + return update; +} +function arraylike(data) { + return typeof data === "object" && "length" in data ? data : Array.from(data); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/exit.js + + +/* harmony default export */ function exit() { + return new Selection(this._exit || this._groups.map(sparse), this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/join.js +/* harmony default export */ function join(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + if (typeof onenter === "function") { + enter = onenter(enter); + if (enter) + enter = enter.selection(); + } else { + enter = enter.append(onenter + ""); + } + if (onupdate != null) { + update = onupdate(update); + if (update) + update = update.selection(); + } + if (onexit == null) + exit.remove(); + else + onexit(exit); + return enter && update ? enter.merge(update).order() : update; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/merge.js + +/* harmony default export */ function merge(context) { + var selection = context.selection ? context.selection() : context; + for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Selection(merges, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/order.js +/* harmony default export */ function order() { + for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) { + for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && node.compareDocumentPosition(next) ^ 4) + next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sort.js + +/* harmony default export */ function sort(compare) { + if (!compare) + compare = ascending; + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group[i]) { + sortgroup[i] = node; + } + } + sortgroup.sort(compareNode); + } + return new Selection(sortgroups, this._parents).order(); +} +function ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/call.js +/* harmony default export */ function call() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/nodes.js +/* harmony default export */ function nodes() { + return Array.from(this); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/node.js +/* harmony default export */ function node() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node = group[i]; + if (node) + return node; + } + } + return null; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/size.js +/* harmony default export */ function size() { + let size = 0; + for (const node of this) + ++size; + return size; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/empty.js +/* harmony default export */ function selection_empty() { + return !this.node(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/each.js +/* harmony default export */ function each(callback) { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + callback.call(node, node.__data__, i, group); + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespaces.js +var xhtml = "http://www.w3.org/1999/xhtml"; +/* harmony default export */ var namespaces = ({ + svg: "http://www.w3.org/2000/svg", + xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespace.js + +/* harmony default export */ function namespace(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") + name = name.slice(i + 1); + return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name } : name; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/attr.js + +function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attrConstant(name, value) { + return function() { + this.setAttribute(name, value); + }; +} +function attrConstantNS(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; +} +function attrFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttribute(name); + else + this.setAttribute(name, v); + }; +} +function attrFunctionNS(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttributeNS(fullname.space, fullname.local); + else + this.setAttributeNS(fullname.space, fullname.local, v); + }; +} +/* harmony default export */ function attr(name, value) { + var fullname = namespace(name); + if (arguments.length < 2) { + var node = this.node(); + return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname); + } + return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === "function" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/window.js +/* harmony default export */ function src_window(node) { + return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/style.js + +function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function styleConstant(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; +} +function styleFunction(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.style.removeProperty(name); + else + this.style.setProperty(name, v, priority); + }; +} +/* harmony default export */ function style(name, value, priority) { + return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name); +} +function styleValue(node, name) { + return node.style.getPropertyValue(name) || src_window(node).getComputedStyle(node, null).getPropertyValue(name); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/property.js +function propertyRemove(name) { + return function() { + delete this[name]; + }; +} +function propertyConstant(name, value) { + return function() { + this[name] = value; + }; +} +function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + delete this[name]; + else + this[name] = v; + }; +} +/* harmony default export */ function property(name, value) { + return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/classed.js +function classArray(string) { + return string.trim().split(/^|\s+/); +} +function classList(node) { + return node.classList || new ClassList(node); +} +function ClassList(node) { + this._node = node; + this._names = classArray(node.getAttribute("class") || ""); +} +ClassList.prototype = { + add: function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + remove: function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + contains: function(name) { + return this._names.indexOf(name) >= 0; + } +}; +function classedAdd(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.add(names[i]); +} +function classedRemove(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.remove(names[i]); +} +function classedTrue(names) { + return function() { + classedAdd(this, names); + }; +} +function classedFalse(names) { + return function() { + classedRemove(this, names); + }; +} +function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; +} +/* harmony default export */ function classed(name, value) { + var names = classArray(name + ""); + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) + if (!list.contains(names[i])) + return false; + return true; + } + return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/text.js +function textRemove() { + this.textContent = ""; +} +function textConstant(value) { + return function() { + this.textContent = value; + }; +} +function textFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; +} +/* harmony default export */ function selection_text(value) { + return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction : textConstant)(value)) : this.node().textContent; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/html.js +function htmlRemove() { + this.innerHTML = ""; +} +function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; +} +function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; +} +/* harmony default export */ function html(value) { + return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/raise.js +function raise() { + if (this.nextSibling) + this.parentNode.appendChild(this); +} +/* harmony default export */ function selection_raise() { + return this.each(raise); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/lower.js +function lower() { + if (this.previousSibling) + this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +/* harmony default export */ function selection_lower() { + return this.each(lower); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/creator.js + + +function creatorInherit(name) { + return function() { + var document = this.ownerDocument, uri = this.namespaceURI; + return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name); + }; +} +function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; +} +/* harmony default export */ function creator(name) { + var fullname = namespace(name); + return (fullname.local ? creatorFixed : creatorInherit)(fullname); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/append.js + +/* harmony default export */ function append(name) { + var create = typeof name === "function" ? name : creator(name); + return this.select(function() { + return this.appendChild(create.apply(this, arguments)); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/insert.js + + +function constantNull() { + return null; +} +/* harmony default export */ function insert(name, before) { + var create = typeof name === "function" ? name : creator(name), select = before == null ? constantNull : typeof before === "function" ? before : selector(before); + return this.select(function() { + return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/remove.js +function remove() { + var parent = this.parentNode; + if (parent) + parent.removeChild(this); +} +/* harmony default export */ function selection_remove() { + return this.each(remove); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/clone.js +function selection_cloneShallow() { + var clone = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +function selection_cloneDeep() { + var clone = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +/* harmony default export */ function clone(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/datum.js +/* harmony default export */ function selection_datum(value) { + return arguments.length ? this.property("__data__", value) : this.node().__data__; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/on.js +function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; +} +function parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + return { type: t, name }; + }); +} +function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) + return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) + on.length = i; + else + delete this.__on; + }; +} +function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) + for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = { type: typename.type, name: typename.name, value, listener, options }; + if (!on) + this.__on = [o]; + else + on.push(o); + }; +} +/* harmony default export */ function on(typename, value, options) { + var typenames = parseTypenames(typename + ""), i, n = typenames.length, t; + if (arguments.length < 2) { + var on = this.node().__on; + if (on) + for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) + this.each(on(typenames[i], value, options)); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/dispatch.js + +function dispatchEvent(node, type, params) { + var window = src_window(node), event = window.CustomEvent; + if (typeof event === "function") { + event = new event(type, params); + } else { + event = window.document.createEvent("Event"); + if (params) + event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; + else + event.initEvent(type, false, false); + } + node.dispatchEvent(event); +} +function dispatchConstant(type, params) { + return function() { + return dispatchEvent(this, type, params); + }; +} +function dispatchFunction(type, params) { + return function() { + return dispatchEvent(this, type, params.apply(this, arguments)); + }; +} +/* harmony default export */ function dispatch(type, params) { + return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type, params)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/iterator.js +/* harmony default export */ function* iterator() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + yield node; + } + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/index.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var root = [null]; +function Selection(groups, parents) { + this._groups = groups; + this._parents = parents; +} +function selection() { + return new Selection([[document.documentElement]], root); +} +function selection_selection() { + return this; +} +Selection.prototype = selection.prototype = { + constructor: Selection, + select: selection_select, + selectAll: selectAll, + selectChild: selectChild, + selectChildren: selectChildren, + filter: selection_filter, + data: data, + enter: enter, + exit: exit, + join: join, + merge: merge, + selection: selection_selection, + order: order, + sort: sort, + call: call, + nodes: nodes, + node: node, + size: size, + empty: selection_empty, + each: each, + attr: attr, + style: style, + property: property, + classed: classed, + text: selection_text, + html: html, + raise: selection_raise, + lower: selection_lower, + append: append, + insert: insert, + remove: selection_remove, + clone: clone, + datum: selection_datum, + on: on, + dispatch: dispatch, + [Symbol.iterator]: iterator +}; +/* harmony default export */ var src_selection = (selection); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/select.js + +/* harmony default export */ function src_select(selector) { + return typeof selector === "string" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root); +} + +;// CONCATENATED MODULE: ./src/Plugin/Plugin.ts +var __defProp = Object.defineProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class Plugin { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + constructor(options = {}) { + __publicField(this, "$$"); + __publicField(this, "options"); + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + $beforeInit() { + } + /** + * Lifecycle hook for 'init' phase. + * @private + */ + $init() { + } + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + $afterInit() { + } + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + $redraw() { + } + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + $willDestroy() { + Object.keys(this).forEach((key) => { + this[key] = null; + delete this[key]; + }); + } +} +__publicField(Plugin, "version", "3.12.4"); + +;// CONCATENATED MODULE: ./src/Plugin/bubblecompare/index.ts +var bubblecompare_defProp = Object.defineProperty; +var bubblecompare_defNormalProp = (obj, key, value) => key in obj ? bubblecompare_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var bubblecompare_publicField = (obj, key, value) => { + bubblecompare_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + +const _BubbleCompare = class _BubbleCompare extends Plugin { + constructor(options) { + super(options); + bubblecompare_publicField(this, "$$"); + return this; + } + $init() { + const { $$ } = this; + $$.findClosest = this.findClosest.bind(this); + $$.getBubbleR = this.getBubbleR.bind(this); + $$.pointExpandedR = this.pointExpandedR.bind(this); + } + pointExpandedR(d) { + const baseR = this.getBubbleR(d); + const { expandScale = 1 } = this.options; + _BubbleCompare.raiseFocusedBubbleLayer(d); + this.changeCursorPoint(); + return baseR * expandScale; + } + static raiseFocusedBubbleLayer(d) { + d.raise && src_select(d.node().parentNode.parentNode).raise(); + } + changeCursorPoint() { + this.$$.$el.eventRect.style("cursor", "pointer"); + } + findClosest(values, pos) { + const { $$ } = this; + return values.filter((v) => v && !$$.isBarType(v.id)).reduce((acc, cur) => { + const d = $$.dist(cur, pos); + return d < this.getBubbleR(cur) ? cur : acc; + }, 0); + } + getBubbleR(d) { + const { minR, maxR } = this.options; + const curVal = this.getZData(d); + if (!curVal) + return minR; + const [min, max] = this.$$.data.targets.reduce( + ([accMin, accMax], cur) => { + const val = this.getZData(cur.values[0]); + return [Math.min(accMin, val), Math.max(accMax, val)]; + }, + [1e4, 0] + ); + const size = min > 0 && max === min ? 0 : curVal / max; + return Math.abs(size) * (maxR - minR) + minR; + } + getZData(d) { + return this.$$.isBubbleZType(d) ? this.$$.getBubbleZData(d.value, "z") : d.value; + } +}; +bubblecompare_publicField(_BubbleCompare, "version", `0.0.1`); +let BubbleCompare = _BubbleCompare; + + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module used 'module' so it can't be inlined +/******/ __webpack_require__(0); +/******/ var __webpack_exports__ = __webpack_require__(560); +/******/ __webpack_exports__ = __webpack_exports__["default"]; +/******/ +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-bubblecompare.pkgd.min.js b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-bubblecompare.pkgd.min.js new file mode 100644 index 000000000..45f0cd226 --- /dev/null +++ b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-bubblecompare.pkgd.min.js @@ -0,0 +1,14 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */(function(vr,rr){typeof exports=="object"&&typeof module=="object"?module.exports=rr():typeof define=="function"&&define.amd?define("bb",[],rr):typeof exports=="object"?exports.bb=rr():(vr.bb=vr.bb||{},vr.bb.plugin=vr.bb.plugin||{},vr.bb.plugin["bubblecompare.pkgd"]=rr())})(this,function(){return function(){"use strict";var Dr={19770:function(s,l,t){t.d(l,{default:function(){return br}});function r(){}function n(R){return R==null?r:function(){return this.querySelector(R)}}function e(R){typeof R!="function"&&(R=n(R));for(var M=this._groups,Z=M.length,it=new Array(Z),_=0;_<Z;++_)for(var dt=M[_],Et=dt.length,It=it[_]=new Array(Et),Ft,Gt,Kt=0;Kt<Et;++Kt)(Ft=dt[Kt])&&(Gt=R.call(Ft,Ft.__data__,Kt,dt))&&("__data__"in Ft&&(Gt.__data__=Ft.__data__),It[Kt]=Gt);return new Ot(it,this._parents)}function a(R){return R==null?[]:Array.isArray(R)?R:Array.from(R)}function o(){return[]}function u(R){return R==null?o:function(){return this.querySelectorAll(R)}}function i(R){return function(){return a(R.apply(this,arguments))}}function v(R){typeof R=="function"?R=i(R):R=u(R);for(var M=this._groups,Z=M.length,it=[],_=[],dt=0;dt<Z;++dt)for(var Et=M[dt],It=Et.length,Ft,Gt=0;Gt<It;++Gt)(Ft=Et[Gt])&&(it.push(R.call(Ft,Ft.__data__,Gt,Et)),_.push(Ft));return new Ot(it,_)}function f(R){return function(){return this.matches(R)}}function c(R){return function(M){return M.matches(R)}}var d=Array.prototype.find;function h(R){return function(){return d.call(this.children,R)}}function g(){return this.firstElementChild}function p(R){return this.select(R==null?g:h(typeof R=="function"?R:c(R)))}var y=Array.prototype.filter;function m(){return Array.from(this.children)}function O(R){return function(){return y.call(this.children,R)}}function S(R){return this.selectAll(R==null?m:O(typeof R=="function"?R:c(R)))}function E(R){typeof R!="function"&&(R=f(R));for(var M=this._groups,Z=M.length,it=new Array(Z),_=0;_<Z;++_)for(var dt=M[_],Et=dt.length,It=it[_]=[],Ft,Gt=0;Gt<Et;++Gt)(Ft=dt[Gt])&&R.call(Ft,Ft.__data__,Gt,dt)&&It.push(Ft);return new Ot(it,this._parents)}function T(R){return new Array(R.length)}function x(){return new Ot(this._enter||this._groups.map(T),this._parents)}function I(R,M){this.ownerDocument=R.ownerDocument,this.namespaceURI=R.namespaceURI,this._next=null,this._parent=R,this.__data__=M}I.prototype={constructor:I,appendChild:function(R){return this._parent.insertBefore(R,this._next)},insertBefore:function(R,M){return this._parent.insertBefore(R,M)},querySelector:function(R){return this._parent.querySelector(R)},querySelectorAll:function(R){return this._parent.querySelectorAll(R)}};function A(R){return function(){return R}}function C(R,M,Z,it,_,dt){for(var Et=0,It,Ft=M.length,Gt=dt.length;Et<Gt;++Et)(It=M[Et])?(It.__data__=dt[Et],it[Et]=It):Z[Et]=new I(R,dt[Et]);for(;Et<Ft;++Et)(It=M[Et])&&(_[Et]=It)}function P(R,M,Z,it,_,dt,Et){var It,Ft,Gt=new Map,Kt=M.length,tr=dt.length,sr=new Array(Kt),ar;for(It=0;It<Kt;++It)(Ft=M[It])&&(sr[It]=ar=Et.call(Ft,Ft.__data__,It,M)+"",Gt.has(ar)?_[It]=Ft:Gt.set(ar,Ft));for(It=0;It<tr;++It)ar=Et.call(R,dt[It],It,dt)+"",(Ft=Gt.get(ar))?(it[It]=Ft,Ft.__data__=dt[It],Gt.delete(ar)):Z[It]=new I(R,dt[It]);for(It=0;It<Kt;++It)(Ft=M[It])&&Gt.get(sr[It])===Ft&&(_[It]=Ft)}function N(R){return R.__data__}function $(R,M){if(!arguments.length)return Array.from(this,N);var Z=M?P:C,it=this._parents,_=this._groups;typeof R!="function"&&(R=A(R));for(var dt=_.length,Et=new Array(dt),It=new Array(dt),Ft=new Array(dt),Gt=0;Gt<dt;++Gt){var Kt=it[Gt],tr=_[Gt],sr=tr.length,ar=U(R.call(Kt,Kt&&Kt.__data__,Gt,it)),ur=ar.length,Lr=It[Gt]=new Array(ur),$r=Et[Gt]=new Array(ur),Gr=Ft[Gt]=new Array(sr);Z(Kt,tr,Lr,$r,Gr,ar,M);for(var Rr=0,Mr=0,Ur,Br;Rr<ur;++Rr)if(Ur=Lr[Rr]){for(Rr>=Mr&&(Mr=Rr+1);!(Br=$r[Mr])&&++Mr<ur;);Ur._next=Br||null}}return Et=new Ot(Et,it),Et._enter=It,Et._exit=Ft,Et}function U(R){return typeof R=="object"&&"length"in R?R:Array.from(R)}function F(){return new Ot(this._exit||this._groups.map(T),this._parents)}function D(R,M,Z){var it=this.enter(),_=this,dt=this.exit();return typeof R=="function"?(it=R(it),it&&(it=it.selection())):it=it.append(R+""),M!=null&&(_=M(_),_&&(_=_.selection())),Z==null?dt.remove():Z(dt),it&&_?it.merge(_).order():_}function L(R){for(var M=R.selection?R.selection():R,Z=this._groups,it=M._groups,_=Z.length,dt=it.length,Et=Math.min(_,dt),It=new Array(_),Ft=0;Ft<Et;++Ft)for(var Gt=Z[Ft],Kt=it[Ft],tr=Gt.length,sr=It[Ft]=new Array(tr),ar,ur=0;ur<tr;++ur)(ar=Gt[ur]||Kt[ur])&&(sr[ur]=ar);for(;Ft<_;++Ft)It[Ft]=Z[Ft];return new Ot(It,this._parents)}function b(){for(var R=this._groups,M=-1,Z=R.length;++M<Z;)for(var it=R[M],_=it.length-1,dt=it[_],Et;--_>=0;)(Et=it[_])&&(dt&&Et.compareDocumentPosition(dt)^4&&dt.parentNode.insertBefore(Et,dt),dt=Et);return this}function K(R){R||(R=H);function M(tr,sr){return tr&&sr?R(tr.__data__,sr.__data__):!tr-!sr}for(var Z=this._groups,it=Z.length,_=new Array(it),dt=0;dt<it;++dt){for(var Et=Z[dt],It=Et.length,Ft=_[dt]=new Array(It),Gt,Kt=0;Kt<It;++Kt)(Gt=Et[Kt])&&(Ft[Kt]=Gt);Ft.sort(M)}return new Ot(_,this._parents).order()}function H(R,M){return R<M?-1:R>M?1:R>=M?0:NaN}function Q(){var R=arguments[0];return arguments[0]=this,R.apply(null,arguments),this}function X(){return Array.from(this)}function st(){for(var R=this._groups,M=0,Z=R.length;M<Z;++M)for(var it=R[M],_=0,dt=it.length;_<dt;++_){var Et=it[_];if(Et)return Et}return null}function et(){let R=0;for(const M of this)++R;return R}function lt(){return!this.node()}function ht(R){for(var M=this._groups,Z=0,it=M.length;Z<it;++Z)for(var _=M[Z],dt=0,Et=_.length,It;dt<Et;++dt)(It=_[dt])&&R.call(It,It.__data__,dt,_);return this}var gt="http://www.w3.org/1999/xhtml",Lt={svg:"http://www.w3.org/2000/svg",xhtml:gt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Dt(R){var M=R+="",Z=M.indexOf(":");return Z>=0&&(M=R.slice(0,Z))!=="xmlns"&&(R=R.slice(Z+1)),Lt.hasOwnProperty(M)?{space:Lt[M],local:R}:R}function Ct(R){return function(){this.removeAttribute(R)}}function at(R){return function(){this.removeAttributeNS(R.space,R.local)}}function vt(R,M){return function(){this.setAttribute(R,M)}}function St(R,M){return function(){this.setAttributeNS(R.space,R.local,M)}}function Rt(R,M){return function(){var Z=M.apply(this,arguments);Z==null?this.removeAttribute(R):this.setAttribute(R,Z)}}function Tt(R,M){return function(){var Z=M.apply(this,arguments);Z==null?this.removeAttributeNS(R.space,R.local):this.setAttributeNS(R.space,R.local,Z)}}function Nt(R,M){var Z=Dt(R);if(arguments.length<2){var it=this.node();return Z.local?it.getAttributeNS(Z.space,Z.local):it.getAttribute(Z)}return this.each((M==null?Z.local?at:Ct:typeof M=="function"?Z.local?Tt:Rt:Z.local?St:vt)(Z,M))}function Ht(R){return R.ownerDocument&&R.ownerDocument.defaultView||R.document&&R||R.defaultView}function Wt(R){return function(){this.style.removeProperty(R)}}function bt(R,M,Z){return function(){this.style.setProperty(R,M,Z)}}function Pt(R,M,Z){return function(){var it=M.apply(this,arguments);it==null?this.style.removeProperty(R):this.style.setProperty(R,it,Z)}}function Vt(R,M,Z){return arguments.length>1?this.each((M==null?Wt:typeof M=="function"?Pt:bt)(R,M,Z==null?"":Z)):$t(this.node(),R)}function $t(R,M){return R.style.getPropertyValue(M)||Ht(R).getComputedStyle(R,null).getPropertyValue(M)}function Mt(R){return function(){delete this[R]}}function q(R,M){return function(){this[R]=M}}function ut(R,M){return function(){var Z=M.apply(this,arguments);Z==null?delete this[R]:this[R]=Z}}function J(R,M){return arguments.length>1?this.each((M==null?Mt:typeof M=="function"?ut:q)(R,M)):this.node()[R]}function yt(R){return R.trim().split(/^|\s+/)}function pt(R){return R.classList||new ct(R)}function ct(R){this._node=R,this._names=yt(R.getAttribute("class")||"")}ct.prototype={add:function(R){var M=this._names.indexOf(R);M<0&&(this._names.push(R),this._node.setAttribute("class",this._names.join(" ")))},remove:function(R){var M=this._names.indexOf(R);M>=0&&(this._names.splice(M,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(R){return this._names.indexOf(R)>=0}};function ft(R,M){for(var Z=pt(R),it=-1,_=M.length;++it<_;)Z.add(M[it])}function zt(R,M){for(var Z=pt(R),it=-1,_=M.length;++it<_;)Z.remove(M[it])}function Yt(R){return function(){ft(this,R)}}function W(R){return function(){zt(this,R)}}function k(R,M){return function(){(M.apply(this,arguments)?ft:zt)(this,R)}}function tt(R,M){var Z=yt(R+"");if(arguments.length<2){for(var it=pt(this.node()),_=-1,dt=Z.length;++_<dt;)if(!it.contains(Z[_]))return!1;return!0}return this.each((typeof M=="function"?k:M?Yt:W)(Z,M))}function j(){this.textContent=""}function z(R){return function(){this.textContent=R}}function G(R){return function(){var M=R.apply(this,arguments);this.textContent=M==null?"":M}}function ot(R){return arguments.length?this.each(R==null?j:(typeof R=="function"?G:z)(R)):this.node().textContent}function mt(){this.innerHTML=""}function At(R){return function(){this.innerHTML=R}}function Bt(R){return function(){var M=R.apply(this,arguments);this.innerHTML=M==null?"":M}}function jt(R){return arguments.length?this.each(R==null?mt:(typeof R=="function"?Bt:At)(R)):this.node().innerHTML}function Ut(){this.nextSibling&&this.parentNode.appendChild(this)}function Qt(){return this.each(Ut)}function fr(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function dr(){return this.each(fr)}function hr(R){return function(){var M=this.ownerDocument,Z=this.namespaceURI;return Z===gt&&M.documentElement.namespaceURI===gt?M.createElement(R):M.createElementNS(Z,R)}}function pr(R){return function(){return this.ownerDocument.createElementNS(R.space,R.local)}}function gr(R){var M=Dt(R);return(M.local?pr:hr)(M)}function mr(R){var M=typeof R=="function"?R:gr(R);return this.select(function(){return this.appendChild(M.apply(this,arguments))})}function xr(){return null}function Ar(R,M){var Z=typeof R=="function"?R:gr(R),it=M==null?xr:typeof M=="function"?M:n(M);return this.select(function(){return this.insertBefore(Z.apply(this,arguments),it.apply(this,arguments)||null)})}function Sr(){var R=this.parentNode;R&&R.removeChild(this)}function lr(){return this.each(Sr)}function nr(){var R=this.cloneNode(!1),M=this.parentNode;return M?M.insertBefore(R,this.nextSibling):R}function Pr(){var R=this.cloneNode(!0),M=this.parentNode;return M?M.insertBefore(R,this.nextSibling):R}function ir(R){return this.select(R?Pr:nr)}function or(R){return arguments.length?this.property("__data__",R):this.node().__data__}function Er(R){return function(M){R.call(this,M,this.__data__)}}function cr(R){return R.trim().split(/^|\s+/).map(function(M){var Z="",it=M.indexOf(".");return it>=0&&(Z=M.slice(it+1),M=M.slice(0,it)),{type:M,name:Z}})}function kt(R){return function(){var M=this.__on;if(M){for(var Z=0,it=-1,_=M.length,dt;Z<_;++Z)dt=M[Z],(!R.type||dt.type===R.type)&&dt.name===R.name?this.removeEventListener(dt.type,dt.listener,dt.options):M[++it]=dt;++it?M.length=it:delete this.__on}}}function qt(R,M,Z){return function(){var it=this.__on,_,dt=Er(M);if(it){for(var Et=0,It=it.length;Et<It;++Et)if((_=it[Et]).type===R.type&&_.name===R.name){this.removeEventListener(_.type,_.listener,_.options),this.addEventListener(_.type,_.listener=dt,_.options=Z),_.value=M;return}}this.addEventListener(R.type,dt,Z),_={type:R.type,name:R.name,value:M,listener:dt,options:Z},it?it.push(_):this.__on=[_]}}function Cr(R,M,Z){var it=cr(R+""),_,dt=it.length,Et;if(arguments.length<2){var It=this.node().__on;if(It){for(var Ft=0,Gt=It.length,Kt;Ft<Gt;++Ft)for(_=0,Kt=It[Ft];_<dt;++_)if((Et=it[_]).type===Kt.type&&Et.name===Kt.name)return Kt.value}return}for(It=M?qt:kt,_=0;_<dt;++_)this.each(It(it[_],M,Z));return this}function Or(R,M,Z){var it=Ht(R),_=it.CustomEvent;typeof _=="function"?_=new _(M,Z):(_=it.document.createEvent("Event"),Z?(_.initEvent(M,Z.bubbles,Z.cancelable),_.detail=Z.detail):_.initEvent(M,!1,!1)),R.dispatchEvent(_)}function V(R,M){return function(){return Or(this,R,M)}}function rt(R,M){return function(){return Or(this,R,M.apply(this,arguments))}}function Y(R,M){return this.each((typeof M=="function"?rt:V)(R,M))}function*B(){for(var R=this._groups,M=0,Z=R.length;M<Z;++M)for(var it=R[M],_=0,dt=it.length,Et;_<dt;++_)(Et=it[_])&&(yield Et)}var w=[null];function Ot(R,M){this._groups=R,this._parents=M}function xt(){return new Ot([[document.documentElement]],w)}function Xt(){return this}Ot.prototype=xt.prototype={constructor:Ot,select:e,selectAll:v,selectChild:p,selectChildren:S,filter:E,data:$,enter:x,exit:F,join:D,merge:L,selection:Xt,order:b,sort:K,call:Q,nodes:X,node:st,size:et,empty:lt,each:ht,attr:Nt,style:Vt,property:J,classed:tt,text:ot,html:jt,raise:Qt,lower:dr,append:mr,insert:Ar,remove:lr,clone:ir,datum:or,on:Cr,dispatch:Y,[Symbol.iterator]:B};var Zt=null;function wt(R){return typeof R=="string"?new Ot([[document.querySelector(R)]],[document.documentElement]):new Ot([[R]],w)}var _t=Object.defineProperty,nt=(R,M,Z)=>M in R?_t(R,M,{enumerable:!0,configurable:!0,writable:!0,value:Z}):R[M]=Z,Jt=(R,M,Z)=>(nt(R,typeof M!="symbol"?M+"":M,Z),Z);class er{constructor(M={}){Jt(this,"$$"),Jt(this,"options"),this.options=M}$beforeInit(){}$init(){}$afterInit(){}$redraw(){}$willDestroy(){Object.keys(this).forEach(M=>{this[M]=null,delete this[M]})}}Jt(er,"version","3.12.4");var Ir=Object.defineProperty,Nr=(R,M,Z)=>M in R?Ir(R,M,{enumerable:!0,configurable:!0,writable:!0,value:Z}):R[M]=Z,Tr=(R,M,Z)=>(Nr(R,typeof M!="symbol"?M+"":M,Z),Z);const yr=class jr extends er{constructor(M){return super(M),Tr(this,"$$"),this}$init(){const{$$:M}=this;M.findClosest=this.findClosest.bind(this),M.getBubbleR=this.getBubbleR.bind(this),M.pointExpandedR=this.pointExpandedR.bind(this)}pointExpandedR(M){const Z=this.getBubbleR(M),{expandScale:it=1}=this.options;return jr.raiseFocusedBubbleLayer(M),this.changeCursorPoint(),Z*it}static raiseFocusedBubbleLayer(M){M.raise&&wt(M.node().parentNode.parentNode).raise()}changeCursorPoint(){this.$$.$el.eventRect.style("cursor","pointer")}findClosest(M,Z){const{$$:it}=this;return M.filter(_=>_&&!it.isBarType(_.id)).reduce((_,dt)=>it.dist(dt,Z)<this.getBubbleR(dt)?dt:_,0)}getBubbleR(M){const{minR:Z,maxR:it}=this.options,_=this.getZData(M);if(!_)return Z;const[dt,Et]=this.$$.data.targets.reduce(([Ft,Gt],Kt)=>{const tr=this.getZData(Kt.values[0]);return[Math.min(Ft,tr),Math.max(Gt,tr)]},[1e4,0]),It=dt>0&&Et===dt?0:_/Et;return Math.abs(It)*(it-Z)+Z}getZData(M){return this.$$.isBubbleZType(M)?this.$$.getBubbleZData(M.value,"z"):M.value}};Tr(yr,"version","0.0.1");let br=yr},85156:function(s,l,t){var r=t(23583),n=t(82453),e=TypeError;s.exports=function(a){if(r(a))return a;throw new e(n(a)+" is not a function")}},80042:function(s,l,t){var r=t(11051),n=t(82453),e=TypeError;s.exports=function(a){if(r(a))return a;throw new e(n(a)+" is not a constructor")}},53408:function(s,l,t){var r=t(52427),n=String,e=TypeError;s.exports=function(a){if(r(a))return a;throw new e("Can't set "+n(a)+" as a prototype")}},76602:function(s,l,t){var r=t(172).has;s.exports=function(n){return r(n),n}},23811:function(s,l,t){var r=t(18565),n=t(5406),e=t(7831).f,a=r("unscopables"),o=Array.prototype;o[a]===void 0&&e(o,a,{configurable:!0,value:n(null)}),s.exports=function(u){o[a][u]=!0}},24487:function(s,l,t){var r=t(22149).charAt;s.exports=function(n,e,a){return e+(a?r(n,e).length:1)}},12833:function(s,l,t){var r=t(95307),n=TypeError;s.exports=function(e,a){if(r(a,e))return e;throw new n("Incorrect invocation")}},25001:function(s,l,t){var r=t(37540),n=String,e=TypeError;s.exports=function(a){if(r(a))return a;throw new e(n(a)+" is not an object")}},3237:function(s){s.exports=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"},58360:function(s,l,t){var r=t(84756),n=t(14274),e=TypeError;s.exports=r(ArrayBuffer.prototype,"byteLength","get")||function(a){if(n(a)!=="ArrayBuffer")throw new e("ArrayBuffer expected");return a.byteLength}},30736:function(s,l,t){var r=t(11286),n=t(58360),e=r(ArrayBuffer.prototype.slice);s.exports=function(a){if(n(a)!==0)return!1;try{return e(a,0,0),!1}catch(o){return!0}}},72058:function(s,l,t){var r=t(72069);s.exports=r(function(){if(typeof ArrayBuffer=="function"){var n=new ArrayBuffer(8);Object.isExtensible(n)&&Object.defineProperty(n,"a",{value:8})}})},65006:function(s,l,t){var r=t(66009),n=t(11286),e=t(84756),a=t(9450),o=t(30736),u=t(58360),i=t(63741),v=t(99050),f=r.structuredClone,c=r.ArrayBuffer,d=r.DataView,h=r.TypeError,g=Math.min,p=c.prototype,y=d.prototype,m=n(p.slice),O=e(p,"resizable","get"),S=e(p,"maxByteLength","get"),E=n(y.getInt8),T=n(y.setInt8);s.exports=(v||i)&&function(x,I,A){var C=u(x),P=I===void 0?C:a(I),N=!O||!O(x),$;if(o(x))throw new h("ArrayBuffer is detached");if(v&&(x=f(x,{transfer:[x]}),C===P&&(A||N)))return x;if(C>=P&&(!A||N))$=m(x,0,P);else{var U=A&&!N&&S?{maxByteLength:S(x)}:void 0;$=new c(P,U);for(var F=new d(x),D=new d($),L=g(P,C),b=0;b<L;b++)T(D,b,E(F,b))}return v||i(x),$}},88037:function(s,l,t){var r=t(3237),n=t(92986),e=t(66009),a=t(23583),o=t(37540),u=t(94879),i=t(9205),v=t(82453),f=t(90809),c=t(16142),d=t(85500),h=t(95307),g=t(26313),p=t(15861),y=t(18565),m=t(36374),O=t(82367),S=O.enforce,E=O.get,T=e.Int8Array,x=T&&T.prototype,I=e.Uint8ClampedArray,A=I&&I.prototype,C=T&&g(T),P=x&&g(x),N=Object.prototype,$=e.TypeError,U=y("toStringTag"),F=m("TYPED_ARRAY_TAG"),D="TypedArrayConstructor",L=r&&!!p&&i(e.opera)!=="Opera",b=!1,K,H,Q,X={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},st={BigInt64Array:8,BigUint64Array:8},et=function(vt){if(!o(vt))return!1;var St=i(vt);return St==="DataView"||u(X,St)||u(st,St)},lt=function(at){var vt=g(at);if(o(vt)){var St=E(vt);return St&&u(St,D)?St[D]:lt(vt)}},ht=function(at){if(!o(at))return!1;var vt=i(at);return u(X,vt)||u(st,vt)},gt=function(at){if(ht(at))return at;throw new $("Target is not a typed array")},Lt=function(at){if(a(at)&&(!p||h(C,at)))return at;throw new $(v(at)+" is not a typed array constructor")},Dt=function(at,vt,St,Rt){if(n){if(St)for(var Tt in X){var Nt=e[Tt];if(Nt&&u(Nt.prototype,at))try{delete Nt.prototype[at]}catch(Ht){try{Nt.prototype[at]=vt}catch(Wt){}}}(!P[at]||St)&&c(P,at,St?vt:L&&x[at]||vt,Rt)}},Ct=function(at,vt,St){var Rt,Tt;if(n){if(p){if(St){for(Rt in X)if(Tt=e[Rt],Tt&&u(Tt,at))try{delete Tt[at]}catch(Nt){}}if(!C[at]||St)try{return c(C,at,St?vt:L&&C[at]||vt)}catch(Nt){}else return}for(Rt in X)Tt=e[Rt],Tt&&(!Tt[at]||St)&&c(Tt,at,vt)}};for(K in X)H=e[K],Q=H&&H.prototype,Q?S(Q)[D]=H:L=!1;for(K in st)H=e[K],Q=H&&H.prototype,Q&&(S(Q)[D]=H);if((!L||!a(C)||C===Function.prototype)&&(C=function(){throw new $("Incorrect invocation")},L))for(K in X)e[K]&&p(e[K],C);if((!L||!P||P===N)&&(P=C.prototype,L))for(K in X)e[K]&&p(e[K].prototype,P);if(L&&g(A)!==P&&p(A,P),n&&!u(P,U)){b=!0,d(P,U,{configurable:!0,get:function(){return o(this)?this[F]:void 0}});for(K in X)e[K]&&f(e[K],F,K)}s.exports={NATIVE_ARRAY_BUFFER_VIEWS:L,TYPED_ARRAY_TAG:b&&F,aTypedArray:gt,aTypedArrayConstructor:Lt,exportTypedArrayMethod:Dt,exportTypedArrayStaticMethod:Ct,getTypedArrayConstructor:lt,isView:et,isTypedArray:ht,TypedArray:C,TypedArrayPrototype:P}},17468:function(s,l,t){var r=t(66009),n=t(11286),e=t(92986),a=t(3237),o=t(86588),u=t(90809),i=t(85500),v=t(2725),f=t(72069),c=t(12833),d=t(12105),h=t(45344),g=t(9450),p=t(93279),y=t(25212),m=t(26313),O=t(15861),S=t(43011),E=t(22806),T=t(32345),x=t(93706),I=t(78401),A=t(82367),C=o.PROPER,P=o.CONFIGURABLE,N="ArrayBuffer",$="DataView",U="prototype",F="Wrong length",D="Wrong index",L=A.getterFor(N),b=A.getterFor($),K=A.set,H=r[N],Q=H,X=Q&&Q[U],st=r[$],et=st&&st[U],lt=Object.prototype,ht=r.Array,gt=r.RangeError,Lt=n(S),Dt=n([].reverse),Ct=y.pack,at=y.unpack,vt=function(q){return[q&255]},St=function(q){return[q&255,q>>8&255]},Rt=function(q){return[q&255,q>>8&255,q>>16&255,q>>24&255]},Tt=function(q){return q[3]<<24|q[2]<<16|q[1]<<8|q[0]},Nt=function(q){return Ct(p(q),23,4)},Ht=function(q){return Ct(q,52,8)},Wt=function(q,ut,J){i(q[U],ut,{configurable:!0,get:function(){return J(this)[ut]}})},bt=function(q,ut,J,yt){var pt=b(q),ct=g(J),ft=!!yt;if(ct+ut>pt.byteLength)throw new gt(D);var zt=pt.bytes,Yt=ct+pt.byteOffset,W=E(zt,Yt,Yt+ut);return ft?W:Dt(W)},Pt=function(q,ut,J,yt,pt,ct){var ft=b(q),zt=g(J),Yt=yt(+pt),W=!!ct;if(zt+ut>ft.byteLength)throw new gt(D);for(var k=ft.bytes,tt=zt+ft.byteOffset,j=0;j<ut;j++)k[tt+j]=Yt[W?j:ut-j-1]};if(!a)Q=function(ut){c(this,X);var J=g(ut);K(this,{type:N,bytes:Lt(ht(J),0),byteLength:J}),e||(this.byteLength=J,this.detached=!1)},X=Q[U],st=function(ut,J,yt){c(this,et),c(ut,X);var pt=L(ut),ct=pt.byteLength,ft=d(J);if(ft<0||ft>ct)throw new gt("Wrong offset");if(yt=yt===void 0?ct-ft:h(yt),ft+yt>ct)throw new gt(F);K(this,{type:$,buffer:ut,byteLength:yt,byteOffset:ft,bytes:pt.bytes}),e||(this.buffer=ut,this.byteLength=yt,this.byteOffset=ft)},et=st[U],e&&(Wt(Q,"byteLength",L),Wt(st,"buffer",b),Wt(st,"byteLength",b),Wt(st,"byteOffset",b)),v(et,{getInt8:function(ut){return bt(this,1,ut)[0]<<24>>24},getUint8:function(ut){return bt(this,1,ut)[0]},getInt16:function(ut){var J=bt(this,2,ut,arguments.length>1?arguments[1]:!1);return(J[1]<<8|J[0])<<16>>16},getUint16:function(ut){var J=bt(this,2,ut,arguments.length>1?arguments[1]:!1);return J[1]<<8|J[0]},getInt32:function(ut){return Tt(bt(this,4,ut,arguments.length>1?arguments[1]:!1))},getUint32:function(ut){return Tt(bt(this,4,ut,arguments.length>1?arguments[1]:!1))>>>0},getFloat32:function(ut){return at(bt(this,4,ut,arguments.length>1?arguments[1]:!1),23)},getFloat64:function(ut){return at(bt(this,8,ut,arguments.length>1?arguments[1]:!1),52)},setInt8:function(ut,J){Pt(this,1,ut,vt,J)},setUint8:function(ut,J){Pt(this,1,ut,vt,J)},setInt16:function(ut,J){Pt(this,2,ut,St,J,arguments.length>2?arguments[2]:!1)},setUint16:function(ut,J){Pt(this,2,ut,St,J,arguments.length>2?arguments[2]:!1)},setInt32:function(ut,J){Pt(this,4,ut,Rt,J,arguments.length>2?arguments[2]:!1)},setUint32:function(ut,J){Pt(this,4,ut,Rt,J,arguments.length>2?arguments[2]:!1)},setFloat32:function(ut,J){Pt(this,4,ut,Nt,J,arguments.length>2?arguments[2]:!1)},setFloat64:function(ut,J){Pt(this,8,ut,Ht,J,arguments.length>2?arguments[2]:!1)}});else{var Vt=C&&H.name!==N;!f(function(){H(1)})||!f(function(){new H(-1)})||f(function(){return new H,new H(1.5),new H(NaN),H.length!==1||Vt&&!P})?(Q=function(ut){return c(this,X),T(new H(g(ut)),this,Q)},Q[U]=X,X.constructor=Q,x(Q,H)):Vt&&P&&u(H,"name",N),O&&m(et)!==lt&&O(et,lt);var $t=new st(new Q(2)),Mt=n(et.setInt8);$t.setInt8(0,2147483648),$t.setInt8(1,2147483649),($t.getInt8(0)||!$t.getInt8(1))&&v(et,{setInt8:function(ut,J){Mt(this,ut,J<<24>>24)},setUint8:function(ut,J){Mt(this,ut,J<<24>>24)}},{unsafe:!0})}I(Q,N),I(st,$),s.exports={ArrayBuffer:Q,DataView:st}},81499:function(s,l,t){var r=t(49671),n=t(4652),e=t(82628),a=t(12384),o=Math.min;s.exports=[].copyWithin||function(i,v){var f=r(this),c=e(f),d=n(i,c),h=n(v,c),g=arguments.length>2?arguments[2]:void 0,p=o((g===void 0?c:n(g,c))-h,c-d),y=1;for(h<d&&d<h+p&&(y=-1,h+=p-1,d+=p-1);p-- >0;)h in f?f[d]=f[h]:a(f,d),d+=y,h+=y;return f}},43011:function(s,l,t){var r=t(49671),n=t(4652),e=t(82628);s.exports=function(o){for(var u=r(this),i=e(u),v=arguments.length,f=n(v>1?arguments[1]:void 0,i),c=v>2?arguments[2]:void 0,d=c===void 0?i:n(c,i);d>f;)u[f++]=o;return u}},13349:function(s,l,t){var r=t(66655).forEach,n=t(6148),e=n("forEach");s.exports=e?[].forEach:function(o){return r(this,o,arguments.length>1?arguments[1]:void 0)}},5220:function(s,l,t){var r=t(82628);s.exports=function(n,e,a){for(var o=0,u=arguments.length>2?a:r(e),i=new n(u);u>o;)i[o]=e[o++];return i}},48258:function(s,l,t){var r=t(45526),n=t(96499),e=t(49671),a=t(39969),o=t(48199),u=t(11051),i=t(82628),v=t(84082),f=t(90619),c=t(81077),d=Array;s.exports=function(g){var p=e(g),y=u(this),m=arguments.length,O=m>1?arguments[1]:void 0,S=O!==void 0;S&&(O=r(O,m>2?arguments[2]:void 0));var E=c(p),T=0,x,I,A,C,P,N;if(E&&!(this===d&&o(E)))for(I=y?new this:[],C=f(p,E),P=C.next;!(A=n(P,C)).done;T++)N=S?a(C,O,[A.value,T],!0):A.value,v(I,T,N);else for(x=i(p),I=y?new this(x):d(x);x>T;T++)N=S?O(p[T],T):p[T],v(I,T,N);return I.length=T,I}},94319:function(s,l,t){var r=t(36859),n=t(4652),e=t(82628),a=function(o){return function(u,i,v){var f=r(u),c=e(f);if(c===0)return!o&&-1;var d=n(v,c),h;if(o&&i!==i){for(;c>d;)if(h=f[d++],h!==h)return!0}else for(;c>d;d++)if((o||d in f)&&f[d]===i)return o||d||0;return!o&&-1}};s.exports={includes:a(!0),indexOf:a(!1)}},73849:function(s,l,t){var r=t(45526),n=t(72181),e=t(49671),a=t(82628),o=function(u){var i=u===1;return function(v,f,c){for(var d=e(v),h=n(d),g=a(h),p=r(f,c),y,m;g-- >0;)if(y=h[g],m=p(y,g,d),m)switch(u){case 0:return y;case 1:return g}return i?-1:void 0}};s.exports={findLast:o(0),findLastIndex:o(1)}},66655:function(s,l,t){var r=t(45526),n=t(11286),e=t(72181),a=t(49671),o=t(82628),u=t(62083),i=n([].push),v=function(f){var c=f===1,d=f===2,h=f===3,g=f===4,p=f===6,y=f===7,m=f===5||p;return function(O,S,E,T){for(var x=a(O),I=e(x),A=o(I),C=r(S,E),P=0,N=T||u,$=c?N(O,A):d||y?N(O,0):void 0,U,F;A>P;P++)if((m||P in I)&&(U=I[P],F=C(U,P,x),f))if(c)$[P]=F;else if(F)switch(f){case 3:return!0;case 5:return U;case 6:return P;case 2:i($,U)}else switch(f){case 4:return!1;case 7:i($,U)}return p?-1:h||g?g:$}};s.exports={forEach:v(0),map:v(1),filter:v(2),some:v(3),every:v(4),find:v(5),findIndex:v(6),filterReject:v(7)}},58465:function(s,l,t){var r=t(66543),n=t(36859),e=t(12105),a=t(82628),o=t(6148),u=Math.min,i=[].lastIndexOf,v=!!i&&1/[1].lastIndexOf(1,-0)<0,f=o("lastIndexOf"),c=v||!f;s.exports=c?function(h){if(v)return r(i,this,arguments)||0;var g=n(this),p=a(g);if(p===0)return-1;var y=p-1;for(arguments.length>1&&(y=u(y,e(arguments[1]))),y<0&&(y=p+y);y>=0;y--)if(y in g&&g[y]===h)return y||0;return-1}:i},52183:function(s,l,t){var r=t(72069),n=t(18565),e=t(73126),a=n("species");s.exports=function(o){return e>=51||!r(function(){var u=[],i=u.constructor={};return i[a]=function(){return{foo:1}},u[o](Boolean).foo!==1})}},6148:function(s,l,t){var r=t(72069);s.exports=function(n,e){var a=[][n];return!!a&&r(function(){a.call(null,e||function(){return 1},1)})}},97264:function(s,l,t){var r=t(85156),n=t(49671),e=t(72181),a=t(82628),o=TypeError,u="Reduce of empty array with no initial value",i=function(v){return function(f,c,d,h){var g=n(f),p=e(g),y=a(g);if(r(c),y===0&&d<2)throw new o(u);var m=v?y-1:0,O=v?-1:1;if(d<2)for(;;){if(m in p){h=p[m],m+=O;break}if(m+=O,v?m<0:y<=m)throw new o(u)}for(;v?m>=0:y>m;m+=O)m in p&&(h=c(h,p[m],m,g));return h}};s.exports={left:i(!1),right:i(!0)}},2213:function(s,l,t){var r=t(92986),n=t(3438),e=TypeError,a=Object.getOwnPropertyDescriptor,o=r&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(u){return u instanceof TypeError}}();s.exports=o?function(u,i){if(n(u)&&!a(u,"length").writable)throw new e("Cannot set read only .length");return u.length=i}:function(u,i){return u.length=i}},22806:function(s,l,t){var r=t(11286);s.exports=r([].slice)},13270:function(s,l,t){var r=t(22806),n=Math.floor,e=function(a,o){var u=a.length;if(u<8)for(var i=1,v,f;i<u;){for(f=i,v=a[i];f&&o(a[f-1],v)>0;)a[f]=a[--f];f!==i++&&(a[f]=v)}else for(var c=n(u/2),d=e(r(a,0,c),o),h=e(r(a,c),o),g=d.length,p=h.length,y=0,m=0;y<g||m<p;)a[y+m]=y<g&&m<p?o(d[y],h[m])<=0?d[y++]:h[m++]:y<g?d[y++]:h[m++];return a};s.exports=e},37555:function(s,l,t){var r=t(3438),n=t(11051),e=t(37540),a=t(18565),o=a("species"),u=Array;s.exports=function(i){var v;return r(i)&&(v=i.constructor,n(v)&&(v===u||r(v.prototype))?v=void 0:e(v)&&(v=v[o],v===null&&(v=void 0))),v===void 0?u:v}},62083:function(s,l,t){var r=t(37555);s.exports=function(n,e){return new(r(n))(e===0?0:e)}},61638:function(s,l,t){var r=t(82628);s.exports=function(n,e){for(var a=r(n),o=new e(a),u=0;u<a;u++)o[u]=n[a-u-1];return o}},72302:function(s,l,t){var r=t(82628),n=t(12105),e=RangeError;s.exports=function(a,o,u,i){var v=r(a),f=n(u),c=f<0?v+f:f;if(c>=v||c<0)throw new e("Incorrect index");for(var d=new o(v),h=0;h<v;h++)d[h]=h===c?i:a[h];return d}},6210:function(s){var l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t=l+"+/",r=l+"-_",n=function(e){for(var a={},o=0;o<64;o++)a[e.charAt(o)]=o;return a};s.exports={i2c:t,c2i:n(t),i2cUrl:r,c2iUrl:n(r)}},39969:function(s,l,t){var r=t(25001),n=t(99797);s.exports=function(e,a,o,u){try{return u?a(r(o)[0],o[1]):a(o)}catch(i){n(e,"throw",i)}}},97494:function(s,l,t){var r=t(18565),n=r("iterator"),e=!1;try{var a=0,o={next:function(){return{done:!!a++}},return:function(){e=!0}};o[n]=function(){return this},Array.from(o,function(){throw 2})}catch(u){}s.exports=function(u,i){try{if(!i&&!e)return!1}catch(c){return!1}var v=!1;try{var f={};f[n]=function(){return{next:function(){return{done:v=!0}}}},u(f)}catch(c){}return v}},14274:function(s,l,t){var r=t(11286),n=r({}.toString),e=r("".slice);s.exports=function(a){return e(n(a),8,-1)}},9205:function(s,l,t){var r=t(67878),n=t(23583),e=t(14274),a=t(18565),o=a("toStringTag"),u=Object,i=e(function(){return arguments}())==="Arguments",v=function(f,c){try{return f[c]}catch(d){}};s.exports=r?e:function(f){var c,d,h;return f===void 0?"Undefined":f===null?"Null":typeof(d=v(c=u(f),o))=="string"?d:i?e(c):(h=e(c))==="Object"&&n(c.callee)?"Arguments":h}},34440:function(s,l,t){var r=t(5406),n=t(85500),e=t(2725),a=t(45526),o=t(12833),u=t(5683),i=t(55902),v=t(10218),f=t(10659),c=t(36167),d=t(92986),h=t(31853).fastKey,g=t(82367),p=g.set,y=g.getterFor;s.exports={getConstructor:function(m,O,S,E){var T=m(function(P,N){o(P,x),p(P,{type:O,index:r(null),first:void 0,last:void 0,size:0}),d||(P.size=0),u(N)||i(N,P[E],{that:P,AS_ENTRIES:S})}),x=T.prototype,I=y(O),A=function(P,N,$){var U=I(P),F=C(P,N),D,L;return F?F.value=$:(U.last=F={index:L=h(N,!0),key:N,value:$,previous:D=U.last,next:void 0,removed:!1},U.first||(U.first=F),D&&(D.next=F),d?U.size++:P.size++,L!=="F"&&(U.index[L]=F)),P},C=function(P,N){var $=I(P),U=h(N),F;if(U!=="F")return $.index[U];for(F=$.first;F;F=F.next)if(F.key===N)return F};return e(x,{clear:function(){for(var N=this,$=I(N),U=$.first;U;)U.removed=!0,U.previous&&(U.previous=U.previous.next=void 0),U=U.next;$.first=$.last=void 0,$.index=r(null),d?$.size=0:N.size=0},delete:function(P){var N=this,$=I(N),U=C(N,P);if(U){var F=U.next,D=U.previous;delete $.index[U.index],U.removed=!0,D&&(D.next=F),F&&(F.previous=D),$.first===U&&($.first=F),$.last===U&&($.last=D),d?$.size--:N.size--}return!!U},forEach:function(N){for(var $=I(this),U=a(N,arguments.length>1?arguments[1]:void 0),F;F=F?F.next:$.first;)for(U(F.value,F.key,this);F&&F.removed;)F=F.previous},has:function(N){return!!C(this,N)}}),e(x,S?{get:function(N){var $=C(this,N);return $&&$.value},set:function(N,$){return A(this,N===0?0:N,$)}}:{add:function(N){return A(this,N=N===0?0:N,N)}}),d&&n(x,"size",{configurable:!0,get:function(){return I(this).size}}),T},setStrong:function(m,O,S){var E=O+" Iterator",T=y(O),x=y(E);v(m,O,function(I,A){p(this,{type:E,target:I,state:T(I),kind:A,last:void 0})},function(){for(var I=x(this),A=I.kind,C=I.last;C&&C.removed;)C=C.previous;return!I.target||!(I.last=C=C?C.next:I.state.first)?(I.target=void 0,f(void 0,!0)):f(A==="keys"?C.key:A==="values"?C.value:[C.key,C.value],!1)},S?"entries":"values",!S,!0),c(O)}}},94667:function(s,l,t){var r=t(11286),n=t(2725),e=t(31853).getWeakData,a=t(12833),o=t(25001),u=t(5683),i=t(37540),v=t(55902),f=t(66655),c=t(94879),d=t(82367),h=d.set,g=d.getterFor,p=f.find,y=f.findIndex,m=r([].splice),O=0,S=function(x){return x.frozen||(x.frozen=new E)},E=function(){this.entries=[]},T=function(x,I){return p(x.entries,function(A){return A[0]===I})};E.prototype={get:function(x){var I=T(this,x);if(I)return I[1]},has:function(x){return!!T(this,x)},set:function(x,I){var A=T(this,x);A?A[1]=I:this.entries.push([x,I])},delete:function(x){var I=y(this.entries,function(A){return A[0]===x});return~I&&m(this.entries,I,1),!!~I}},s.exports={getConstructor:function(x,I,A,C){var P=x(function(F,D){a(F,N),h(F,{type:I,id:O++,frozen:void 0}),u(D)||v(D,F[C],{that:F,AS_ENTRIES:A})}),N=P.prototype,$=g(I),U=function(F,D,L){var b=$(F),K=e(o(D),!0);return K===!0?S(b).set(D,L):K[b.id]=L,F};return n(N,{delete:function(F){var D=$(this);if(!i(F))return!1;var L=e(F);return L===!0?S(D).delete(F):L&&c(L,D.id)&&delete L[D.id]},has:function(D){var L=$(this);if(!i(D))return!1;var b=e(D);return b===!0?S(L).has(D):b&&c(b,L.id)}}),n(N,A?{get:function(D){var L=$(this);if(i(D)){var b=e(D);return b===!0?S(L).get(D):b?b[L.id]:void 0}},set:function(D,L){return U(this,D,L)}}:{add:function(D){return U(this,D,!0)}}),P}}},89378:function(s,l,t){var r=t(14304),n=t(66009),e=t(11286),a=t(13278),o=t(16142),u=t(31853),i=t(55902),v=t(12833),f=t(23583),c=t(5683),d=t(37540),h=t(72069),g=t(97494),p=t(78401),y=t(32345);s.exports=function(m,O,S){var E=m.indexOf("Map")!==-1,T=m.indexOf("Weak")!==-1,x=E?"set":"add",I=n[m],A=I&&I.prototype,C=I,P={},N=function(K){var H=e(A[K]);o(A,K,K==="add"?function(X){return H(this,X===0?0:X),this}:K==="delete"?function(Q){return T&&!d(Q)?!1:H(this,Q===0?0:Q)}:K==="get"?function(X){return T&&!d(X)?void 0:H(this,X===0?0:X)}:K==="has"?function(X){return T&&!d(X)?!1:H(this,X===0?0:X)}:function(X,st){return H(this,X===0?0:X,st),this})},$=a(m,!f(I)||!(T||A.forEach&&!h(function(){new I().entries().next()})));if($)C=S.getConstructor(O,m,E,x),u.enable();else if(a(m,!0)){var U=new C,F=U[x](T?{}:-0,1)!==U,D=h(function(){U.has(1)}),L=g(function(K){new I(K)}),b=!T&&h(function(){for(var K=new I,H=5;H--;)K[x](H,H);return!K.has(-0)});L||(C=O(function(K,H){v(K,A);var Q=y(new I,K,C);return c(H)||i(H,Q[x],{that:Q,AS_ENTRIES:E}),Q}),C.prototype=A,A.constructor=C),(D||b)&&(N("delete"),N("has"),E&&N("get")),(b||F)&&N(x),T&&A.clear&&delete A.clear}return P[m]=C,r({global:!0,constructor:!0,forced:C!==I},P),p(C,m),T||S.setStrong(C,m,E),C}},93706:function(s,l,t){var r=t(94879),n=t(16885),e=t(71349),a=t(7831);s.exports=function(o,u,i){for(var v=n(u),f=a.f,c=e.f,d=0;d<v.length;d++){var h=v[d];!r(o,h)&&!(i&&r(i,h))&&f(o,h,c(u,h))}}},8790:function(s,l,t){var r=t(18565),n=r("match");s.exports=function(e){var a=/./;try{"/./"[e](a)}catch(o){try{return a[n]=!1,"/./"[e](a)}catch(u){}}return!1}},87501:function(s,l,t){var r=t(72069);s.exports=!r(function(){function n(){}return n.prototype.constructor=null,Object.getPrototypeOf(new n)!==n.prototype})},68422:function(s,l,t){var r=t(11286),n=t(2068),e=t(17361),a=/"/g,o=r("".replace);s.exports=function(u,i,v,f){var c=e(n(u)),d="<"+i;return v!==""&&(d+=" "+v+'="'+o(e(f),a,""")+'"'),d+">"+c+"</"+i+">"}},10659:function(s){s.exports=function(l,t){return{value:l,done:t}}},90809:function(s,l,t){var r=t(92986),n=t(7831),e=t(18526);s.exports=r?function(a,o,u){return n.f(a,o,e(1,u))}:function(a,o,u){return a[o]=u,a}},18526:function(s){s.exports=function(l,t){return{enumerable:!(l&1),configurable:!(l&2),writable:!(l&4),value:t}}},84082:function(s,l,t){var r=t(92986),n=t(7831),e=t(18526);s.exports=function(a,o,u){r?n.f(a,o,e(0,u)):a[o]=u}},11890:function(s,l,t){var r=t(11286),n=t(72069),e=t(61607).start,a=RangeError,o=isFinite,u=Math.abs,i=Date.prototype,v=i.toISOString,f=r(i.getTime),c=r(i.getUTCDate),d=r(i.getUTCFullYear),h=r(i.getUTCHours),g=r(i.getUTCMilliseconds),p=r(i.getUTCMinutes),y=r(i.getUTCMonth),m=r(i.getUTCSeconds);s.exports=n(function(){return v.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!n(function(){v.call(new Date(NaN))})?function(){if(!o(f(this)))throw new a("Invalid time value");var S=this,E=d(S),T=g(S),x=E<0?"-":E>9999?"+":"";return x+e(u(E),x?6:4,0)+"-"+e(y(S)+1,2,0)+"-"+e(c(S),2,0)+"T"+e(h(S),2,0)+":"+e(p(S),2,0)+":"+e(m(S),2,0)+"."+e(T,3,0)+"Z"}:v},84306:function(s,l,t){var r=t(25001),n=t(2064),e=TypeError;s.exports=function(a){if(r(this),a==="string"||a==="default")a="string";else if(a!=="number")throw new e("Incorrect hint");return n(this,a)}},85500:function(s,l,t){var r=t(13749),n=t(7831);s.exports=function(e,a,o){return o.get&&r(o.get,a,{getter:!0}),o.set&&r(o.set,a,{setter:!0}),n.f(e,a,o)}},16142:function(s,l,t){var r=t(23583),n=t(7831),e=t(13749),a=t(36003);s.exports=function(o,u,i,v){v||(v={});var f=v.enumerable,c=v.name!==void 0?v.name:u;if(r(i)&&e(i,c,v),v.global)f?o[u]=i:a(u,i);else{try{v.unsafe?o[u]&&(f=!0):delete o[u]}catch(d){}f?o[u]=i:n.f(o,u,{value:i,enumerable:!1,configurable:!v.nonConfigurable,writable:!v.nonWritable})}return o}},2725:function(s,l,t){var r=t(16142);s.exports=function(n,e,a){for(var o in e)r(n,o,e[o],a);return n}},36003:function(s,l,t){var r=t(66009),n=Object.defineProperty;s.exports=function(e,a){try{n(r,e,{value:a,configurable:!0,writable:!0})}catch(o){r[e]=a}return a}},12384:function(s,l,t){var r=t(82453),n=TypeError;s.exports=function(e,a){if(!delete e[a])throw new n("Cannot delete property "+r(a)+" of "+r(e))}},92986:function(s,l,t){var r=t(72069);s.exports=!r(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})},63741:function(s,l,t){var r=t(66009),n=t(18096),e=t(99050),a=r.structuredClone,o=r.ArrayBuffer,u=r.MessageChannel,i=!1,v,f,c,d;if(e)i=function(h){a(h,{transfer:[h]})};else if(o)try{u||(v=n("worker_threads"),v&&(u=v.MessageChannel)),u&&(f=new u,c=new o(2),d=function(h){f.port1.postMessage(null,[h])},c.byteLength===2&&(d(c),c.byteLength===0&&(i=d)))}catch(h){}s.exports=i},85501:function(s,l,t){var r=t(66009),n=t(37540),e=r.document,a=n(e)&&n(e.createElement);s.exports=function(o){return a?e.createElement(o):{}}},20095:function(s){var l=TypeError,t=9007199254740991;s.exports=function(r){if(r>t)throw l("Maximum allowed index exceeded");return r}},74408:function(s){s.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},93014:function(s){s.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},39882:function(s,l,t){var r=t(85501),n=r("span").classList,e=n&&n.constructor&&n.constructor.prototype;s.exports=e===Object.prototype?void 0:e},54040:function(s,l,t){var r=t(89042),n=r.match(/firefox\/(\d+)/i);s.exports=!!n&&+n[1]},63144:function(s,l,t){var r=t(56422),n=t(42954);s.exports=!r&&!n&&typeof window=="object"&&typeof document=="object"},5017:function(s){s.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"},56422:function(s){s.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},87216:function(s,l,t){var r=t(89042);s.exports=/MSIE|Trident/.test(r)},92150:function(s,l,t){var r=t(89042);s.exports=/ipad|iphone|ipod/i.test(r)&&typeof Pebble!="undefined"},51149:function(s,l,t){var r=t(89042);s.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},42954:function(s,l,t){var r=t(66009),n=t(14274);s.exports=n(r.process)==="process"},81539:function(s,l,t){var r=t(89042);s.exports=/web0s(?!.*chrome)/i.test(r)},89042:function(s){s.exports=typeof navigator!="undefined"&&String(navigator.userAgent)||""},73126:function(s,l,t){var r=t(66009),n=t(89042),e=r.process,a=r.Deno,o=e&&e.versions||a&&a.version,u=o&&o.v8,i,v;u&&(i=u.split("."),v=i[0]>0&&i[0]<4?1:+(i[0]+i[1])),!v&&n&&(i=n.match(/Edge\/(\d+)/),(!i||i[1]>=74)&&(i=n.match(/Chrome\/(\d+)/),i&&(v=+i[1]))),s.exports=v},68674:function(s,l,t){var r=t(89042),n=r.match(/AppleWebKit\/(\d+)\./);s.exports=!!n&&+n[1]},75785:function(s){s.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},40851:function(s,l,t){var r=t(11286),n=Error,e=r("".replace),a=function(i){return String(new n(i).stack)}("zxcasd"),o=/\n\s*at [^:]*:[^\n]*/,u=o.test(a);s.exports=function(i,v){if(u&&typeof i=="string"&&!n.prepareStackTrace)for(;v--;)i=e(i,o,"");return i}},97077:function(s,l,t){var r=t(90809),n=t(40851),e=t(16929),a=Error.captureStackTrace;s.exports=function(o,u,i,v){e&&(a?a(o,u):r(o,"stack",n(i,v)))}},16929:function(s,l,t){var r=t(72069),n=t(18526);s.exports=!r(function(){var e=new Error("a");return"stack"in e?(Object.defineProperty(e,"stack",n(1,7)),e.stack!==7):!0})},58434:function(s,l,t){var r=t(92986),n=t(72069),e=t(25001),a=t(15453),o=Error.prototype.toString,u=n(function(){if(r){var i=Object.create(Object.defineProperty({},"name",{get:function(){return this===i}}));if(o.call(i)!=="true")return!0}return o.call({message:1,name:2})!=="2: 1"||o.call({})!=="Error"});s.exports=u?function(){var v=e(this),f=a(v.name,"Error"),c=a(v.message);return f?c?f+": "+c:f:c}:o},14304:function(s,l,t){var r=t(66009),n=t(71349).f,e=t(90809),a=t(16142),o=t(36003),u=t(93706),i=t(13278);s.exports=function(v,f){var c=v.target,d=v.global,h=v.stat,g,p,y,m,O,S;if(d?p=r:h?p=r[c]||o(c,{}):p=r[c]&&r[c].prototype,p)for(y in f){if(O=f[y],v.dontCallGetSet?(S=n(p,y),m=S&&S.value):m=p[y],g=i(d?y:c+(h?".":"#")+y,v.forced),!g&&m!==void 0){if(typeof O==typeof m)continue;u(O,m)}(v.sham||m&&m.sham)&&e(O,"sham",!0),a(p,y,O,v)}}},72069:function(s){s.exports=function(l){try{return!!l()}catch(t){return!0}}},63194:function(s,l,t){t(31145);var r=t(96499),n=t(16142),e=t(44381),a=t(72069),o=t(18565),u=t(90809),i=o("species"),v=RegExp.prototype;s.exports=function(f,c,d,h){var g=o(f),p=!a(function(){var S={};return S[g]=function(){return 7},""[f](S)!==7}),y=p&&!a(function(){var S=!1,E=/a/;return f==="split"&&(E={},E.constructor={},E.constructor[i]=function(){return E},E.flags="",E[g]=/./[g]),E.exec=function(){return S=!0,null},E[g](""),!S});if(!p||!y||d){var m=/./[g],O=c(g,""[f],function(S,E,T,x,I){var A=E.exec;return A===e||A===v.exec?p&&!I?{done:!0,value:r(m,E,T,x)}:{done:!0,value:r(S,T,E,x)}:{done:!1}});n(String.prototype,f,O[0]),n(v,g,O[1])}h&&u(v[g],"sham",!0)}},53149:function(s,l,t){var r=t(3438),n=t(82628),e=t(20095),a=t(45526),o=function(u,i,v,f,c,d,h,g){for(var p=c,y=0,m=h?a(h,g):!1,O,S;y<f;)y in v&&(O=m?m(v[y],y,i):v[y],d>0&&r(O)?(S=n(O),p=o(u,i,O,S,p,d-1)-1):(e(p+1),u[p]=O),p++),y++;return p};s.exports=o},27534:function(s,l,t){var r=t(72069);s.exports=!r(function(){return Object.isExtensible(Object.preventExtensions({}))})},66543:function(s,l,t){var r=t(87878),n=Function.prototype,e=n.apply,a=n.call;s.exports=typeof Reflect=="object"&&Reflect.apply||(r?a.bind(e):function(){return a.apply(e,arguments)})},45526:function(s,l,t){var r=t(77422),n=t(85156),e=t(87878),a=r(r.bind);s.exports=function(o,u){return n(o),u===void 0?o:e?a(o,u):function(){return o.apply(u,arguments)}}},87878:function(s,l,t){var r=t(72069);s.exports=!r(function(){var n=function(){}.bind();return typeof n!="function"||n.hasOwnProperty("prototype")})},91384:function(s,l,t){var r=t(11286),n=t(85156),e=t(37540),a=t(94879),o=t(22806),u=t(87878),i=Function,v=r([].concat),f=r([].join),c={},d=function(h,g,p){if(!a(c,g)){for(var y=[],m=0;m<g;m++)y[m]="a["+m+"]";c[g]=i("C,a","return new C("+f(y,",")+")")}return c[g](h,p)};s.exports=u?i.bind:function(g){var p=n(this),y=p.prototype,m=o(arguments,1),O=function(){var E=v(m,o(arguments));return this instanceof O?d(p,E.length,E):p.apply(g,E)};return e(y)&&(O.prototype=y),O}},96499:function(s,l,t){var r=t(87878),n=Function.prototype.call;s.exports=r?n.bind(n):function(){return n.apply(n,arguments)}},86588:function(s,l,t){var r=t(92986),n=t(94879),e=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,o=n(e,"name"),u=o&&function(){}.name==="something",i=o&&(!r||r&&a(e,"name").configurable);s.exports={EXISTS:o,PROPER:u,CONFIGURABLE:i}},84756:function(s,l,t){var r=t(11286),n=t(85156);s.exports=function(e,a,o){try{return r(n(Object.getOwnPropertyDescriptor(e,a)[o]))}catch(u){}}},77422:function(s,l,t){var r=t(14274),n=t(11286);s.exports=function(e){if(r(e)==="Function")return n(e)}},11286:function(s,l,t){var r=t(87878),n=Function.prototype,e=n.call,a=r&&n.bind.bind(e,e);s.exports=r?a:function(o){return function(){return e.apply(o,arguments)}}},65470:function(s,l,t){var r=t(66009);s.exports=function(n,e){var a=r[n],o=a&&a.prototype;return o&&o[e]}},38941:function(s,l,t){var r=t(66009),n=t(23583),e=function(a){return n(a)?a:void 0};s.exports=function(a,o){return arguments.length<2?e(r[a]):r[a]&&r[a][o]}},10613:function(s){s.exports=function(l){return{iterator:l,next:l.next,done:!1}}},81077:function(s,l,t){var r=t(9205),n=t(10512),e=t(5683),a=t(29107),o=t(18565),u=o("iterator");s.exports=function(i){if(!e(i))return n(i,u)||n(i,"@@iterator")||a[r(i)]}},90619:function(s,l,t){var r=t(96499),n=t(85156),e=t(25001),a=t(82453),o=t(81077),u=TypeError;s.exports=function(i,v){var f=arguments.length<2?o(i):v;if(n(f))return e(r(f,i));throw new u(a(i)+" is not iterable")}},10443:function(s,l,t){var r=t(11286),n=t(3438),e=t(23583),a=t(14274),o=t(17361),u=r([].push);s.exports=function(i){if(e(i))return i;if(n(i)){for(var v=i.length,f=[],c=0;c<v;c++){var d=i[c];typeof d=="string"?u(f,d):(typeof d=="number"||a(d)==="Number"||a(d)==="String")&&u(f,o(d))}var h=f.length,g=!0;return function(p,y){if(g)return g=!1,y;if(n(this))return y;for(var m=0;m<h;m++)if(f[m]===p)return y}}}},10512:function(s,l,t){var r=t(85156),n=t(5683);s.exports=function(e,a){var o=e[a];return n(o)?void 0:r(o)}},65263:function(s,l,t){var r=t(85156),n=t(25001),e=t(96499),a=t(12105),o=t(10613),u="Invalid size",i=RangeError,v=TypeError,f=Math.max,c=function(d,h){this.set=d,this.size=f(h,0),this.has=r(d.has),this.keys=r(d.keys)};c.prototype={getIterator:function(){return o(n(e(this.keys,this.set)))},includes:function(d){return e(this.has,this.set,d)}},s.exports=function(d){n(d);var h=+d.size;if(h!==h)throw new v(u);var g=a(h);if(g<0)throw new i(u);return new c(d,g)}},38368:function(s,l,t){var r=t(11286),n=t(49671),e=Math.floor,a=r("".charAt),o=r("".replace),u=r("".slice),i=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,v=/\$([$&'`]|\d{1,2})/g;s.exports=function(f,c,d,h,g,p){var y=d+f.length,m=h.length,O=v;return g!==void 0&&(g=n(g),O=i),o(p,O,function(S,E){var T;switch(a(E,0)){case"$":return"$";case"&":return f;case"`":return u(c,0,d);case"'":return u(c,y);case"<":T=g[u(E,1,-1)];break;default:var x=+E;if(x===0)return S;if(x>m){var I=e(x/10);return I===0?S:I<=m?h[I-1]===void 0?a(E,1):h[I-1]+a(E,1):S}T=h[x-1]}return T===void 0?"":T})}},66009:function(s){var l=function(t){return t&&t.Math===Math&&t};s.exports=l(typeof globalThis=="object"&&globalThis)||l(typeof window=="object"&&window)||l(typeof self=="object"&&self)||l(typeof global=="object"&&global)||l(typeof this=="object"&&this)||function(){return this}()||Function("return this")()},94879:function(s,l,t){var r=t(11286),n=t(49671),e=r({}.hasOwnProperty);s.exports=Object.hasOwn||function(o,u){return e(n(o),u)}},19423:function(s){s.exports={}},99095:function(s){s.exports=function(l,t){try{arguments.length===1?console.error(l):console.error(l,t)}catch(r){}}},96439:function(s,l,t){var r=t(38941);s.exports=r("document","documentElement")},52515:function(s,l,t){var r=t(92986),n=t(72069),e=t(85501);s.exports=!r&&!n(function(){return Object.defineProperty(e("div"),"a",{get:function(){return 7}}).a!==7})},25212:function(s){var l=Array,t=Math.abs,r=Math.pow,n=Math.floor,e=Math.log,a=Math.LN2,o=function(i,v,f){var c=l(f),d=f*8-v-1,h=(1<<d)-1,g=h>>1,p=v===23?r(2,-24)-r(2,-77):0,y=i<0||i===0&&1/i<0?1:0,m=0,O,S,E;for(i=t(i),i!==i||i===1/0?(S=i!==i?1:0,O=h):(O=n(e(i)/a),E=r(2,-O),i*E<1&&(O--,E*=2),O+g>=1?i+=p/E:i+=p*r(2,1-g),i*E>=2&&(O++,E/=2),O+g>=h?(S=0,O=h):O+g>=1?(S=(i*E-1)*r(2,v),O+=g):(S=i*r(2,g-1)*r(2,v),O=0));v>=8;)c[m++]=S&255,S/=256,v-=8;for(O=O<<v|S,d+=v;d>0;)c[m++]=O&255,O/=256,d-=8;return c[--m]|=y*128,c},u=function(i,v){var f=i.length,c=f*8-v-1,d=(1<<c)-1,h=d>>1,g=c-7,p=f-1,y=i[p--],m=y&127,O;for(y>>=7;g>0;)m=m*256+i[p--],g-=8;for(O=m&(1<<-g)-1,m>>=-g,g+=v;g>0;)O=O*256+i[p--],g-=8;if(m===0)m=1-h;else{if(m===d)return O?NaN:y?-1/0:1/0;O+=r(2,v),m-=h}return(y?-1:1)*O*r(2,m-v)};s.exports={pack:o,unpack:u}},72181:function(s,l,t){var r=t(11286),n=t(72069),e=t(14274),a=Object,o=r("".split);s.exports=n(function(){return!a("z").propertyIsEnumerable(0)})?function(u){return e(u)==="String"?o(u,""):a(u)}:a},32345:function(s,l,t){var r=t(23583),n=t(37540),e=t(15861);s.exports=function(a,o,u){var i,v;return e&&r(i=o.constructor)&&i!==u&&n(v=i.prototype)&&v!==u.prototype&&e(a,v),a}},84352:function(s,l,t){var r=t(11286),n=t(23583),e=t(70443),a=r(Function.toString);n(e.inspectSource)||(e.inspectSource=function(o){return a(o)}),s.exports=e.inspectSource},31486:function(s,l,t){var r=t(37540),n=t(90809);s.exports=function(e,a){r(a)&&"cause"in a&&n(e,"cause",a.cause)}},31853:function(s,l,t){var r=t(14304),n=t(11286),e=t(19423),a=t(37540),o=t(94879),u=t(7831).f,i=t(83258),v=t(92880),f=t(28174),c=t(36374),d=t(27534),h=!1,g=c("meta"),p=0,y=function(x){u(x,g,{value:{objectID:"O"+p++,weakData:{}}})},m=function(x,I){if(!a(x))return typeof x=="symbol"?x:(typeof x=="string"?"S":"P")+x;if(!o(x,g)){if(!f(x))return"F";if(!I)return"E";y(x)}return x[g].objectID},O=function(x,I){if(!o(x,g)){if(!f(x))return!0;if(!I)return!1;y(x)}return x[g].weakData},S=function(x){return d&&h&&f(x)&&!o(x,g)&&y(x),x},E=function(){T.enable=function(){},h=!0;var x=i.f,I=n([].splice),A={};A[g]=1,x(A).length&&(i.f=function(C){for(var P=x(C),N=0,$=P.length;N<$;N++)if(P[N]===g){I(P,N,1);break}return P},r({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:v.f}))},T=s.exports={enable:E,fastKey:m,getWeakData:O,onFreeze:S};e[g]=!0},82367:function(s,l,t){var r=t(42960),n=t(66009),e=t(37540),a=t(90809),o=t(94879),u=t(70443),i=t(44869),v=t(19423),f="Object already initialized",c=n.TypeError,d=n.WeakMap,h,g,p,y=function(E){return p(E)?g(E):h(E,{})},m=function(E){return function(T){var x;if(!e(T)||(x=g(T)).type!==E)throw new c("Incompatible receiver, "+E+" required");return x}};if(r||u.state){var O=u.state||(u.state=new d);O.get=O.get,O.has=O.has,O.set=O.set,h=function(E,T){if(O.has(E))throw new c(f);return T.facade=E,O.set(E,T),T},g=function(E){return O.get(E)||{}},p=function(E){return O.has(E)}}else{var S=i("state");v[S]=!0,h=function(E,T){if(o(E,S))throw new c(f);return T.facade=E,a(E,S,T),T},g=function(E){return o(E,S)?E[S]:{}},p=function(E){return o(E,S)}}s.exports={set:h,get:g,has:p,enforce:y,getterFor:m}},48199:function(s,l,t){var r=t(18565),n=t(29107),e=r("iterator"),a=Array.prototype;s.exports=function(o){return o!==void 0&&(n.Array===o||a[e]===o)}},3438:function(s,l,t){var r=t(14274);s.exports=Array.isArray||function(e){return r(e)==="Array"}},77129:function(s,l,t){var r=t(9205);s.exports=function(n){var e=r(n);return e==="BigInt64Array"||e==="BigUint64Array"}},23583:function(s){var l=typeof document=="object"&&document.all;s.exports=typeof l=="undefined"&&l!==void 0?function(t){return typeof t=="function"||t===l}:function(t){return typeof t=="function"}},11051:function(s,l,t){var r=t(11286),n=t(72069),e=t(23583),a=t(9205),o=t(38941),u=t(84352),i=function(){},v=o("Reflect","construct"),f=/^\s*(?:class|function)\b/,c=r(f.exec),d=!f.test(i),h=function(y){if(!e(y))return!1;try{return v(i,[],y),!0}catch(m){return!1}},g=function(y){if(!e(y))return!1;switch(a(y)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return d||!!c(f,u(y))}catch(m){return!0}};g.sham=!0,s.exports=!v||n(function(){var p;return h(h.call)||!h(Object)||!h(function(){p=!0})||p})?g:h},69745:function(s,l,t){var r=t(94879);s.exports=function(n){return n!==void 0&&(r(n,"value")||r(n,"writable"))}},13278:function(s,l,t){var r=t(72069),n=t(23583),e=/#|\.prototype\./,a=function(f,c){var d=u[o(f)];return d===v?!0:d===i?!1:n(c)?r(c):!!c},o=a.normalize=function(f){return String(f).replace(e,".").toLowerCase()},u=a.data={},i=a.NATIVE="N",v=a.POLYFILL="P";s.exports=a},613:function(s,l,t){var r=t(37540),n=Math.floor;s.exports=Number.isInteger||function(a){return!r(a)&&isFinite(a)&&n(a)===a}},5683:function(s){s.exports=function(l){return l==null}},37540:function(s,l,t){var r=t(23583);s.exports=function(n){return typeof n=="object"?n!==null:r(n)}},52427:function(s,l,t){var r=t(37540);s.exports=function(n){return r(n)||n===null}},70457:function(s){s.exports=!1},11566:function(s,l,t){var r=t(37540),n=t(14274),e=t(18565),a=e("match");s.exports=function(o){var u;return r(o)&&((u=o[a])!==void 0?!!u:n(o)==="RegExp")}},491:function(s,l,t){var r=t(38941),n=t(23583),e=t(95307),a=t(50234),o=Object;s.exports=a?function(u){return typeof u=="symbol"}:function(u){var i=r("Symbol");return n(i)&&e(i.prototype,o(u))}},9573:function(s,l,t){var r=t(96499);s.exports=function(n,e,a){for(var o=a?n:n.iterator,u=n.next,i,v;!(i=r(u,o)).done;)if(v=e(i.value),v!==void 0)return v}},55902:function(s,l,t){var r=t(45526),n=t(96499),e=t(25001),a=t(82453),o=t(48199),u=t(82628),i=t(95307),v=t(90619),f=t(81077),c=t(99797),d=TypeError,h=function(p,y){this.stopped=p,this.result=y},g=h.prototype;s.exports=function(p,y,m){var O=m&&m.that,S=!!(m&&m.AS_ENTRIES),E=!!(m&&m.IS_RECORD),T=!!(m&&m.IS_ITERATOR),x=!!(m&&m.INTERRUPTED),I=r(y,O),A,C,P,N,$,U,F,D=function(b){return A&&c(A,"normal",b),new h(!0,b)},L=function(b){return S?(e(b),x?I(b[0],b[1],D):I(b[0],b[1])):x?I(b,D):I(b)};if(E)A=p.iterator;else if(T)A=p;else{if(C=f(p),!C)throw new d(a(p)+" is not iterable");if(o(C)){for(P=0,N=u(p);N>P;P++)if($=L(p[P]),$&&i(g,$))return $;return new h(!1)}A=v(p,C)}for(U=E?p.next:A.next;!(F=n(U,A)).done;){try{$=L(F.value)}catch(b){c(A,"throw",b)}if(typeof $=="object"&&$&&i(g,$))return $}return new h(!1)}},99797:function(s,l,t){var r=t(96499),n=t(25001),e=t(10512);s.exports=function(a,o,u){var i,v;n(a);try{if(i=e(a,"return"),!i){if(o==="throw")throw u;return u}i=r(i,a)}catch(f){v=!0,i=f}if(o==="throw")throw u;if(v)throw i;return n(i),u}},26820:function(s,l,t){var r=t(24519).IteratorPrototype,n=t(5406),e=t(18526),a=t(78401),o=t(29107),u=function(){return this};s.exports=function(i,v,f,c){var d=v+" Iterator";return i.prototype=n(r,{next:e(+!c,f)}),a(i,d,!1,!0),o[d]=u,i}},10218:function(s,l,t){var r=t(14304),n=t(96499),e=t(70457),a=t(86588),o=t(23583),u=t(26820),i=t(26313),v=t(15861),f=t(78401),c=t(90809),d=t(16142),h=t(18565),g=t(29107),p=t(24519),y=a.PROPER,m=a.CONFIGURABLE,O=p.IteratorPrototype,S=p.BUGGY_SAFARI_ITERATORS,E=h("iterator"),T="keys",x="values",I="entries",A=function(){return this};s.exports=function(C,P,N,$,U,F,D){u(N,P,$);var L=function(gt){if(gt===U&&X)return X;if(!S&>&> in H)return H[gt];switch(gt){case T:return function(){return new N(this,gt)};case x:return function(){return new N(this,gt)};case I:return function(){return new N(this,gt)}}return function(){return new N(this)}},b=P+" Iterator",K=!1,H=C.prototype,Q=H[E]||H["@@iterator"]||U&&H[U],X=!S&&Q||L(U),st=P==="Array"&&H.entries||Q,et,lt,ht;if(st&&(et=i(st.call(new C)),et!==Object.prototype&&et.next&&(!e&&i(et)!==O&&(v?v(et,O):o(et[E])||d(et,E,A)),f(et,b,!0,!0),e&&(g[b]=A))),y&&U===x&&Q&&Q.name!==x&&(!e&&m?c(H,"name",x):(K=!0,X=function(){return n(Q,this)})),U)if(lt={values:L(x),keys:F?X:L(T),entries:L(I)},D)for(ht in lt)(S||K||!(ht in H))&&d(H,ht,lt[ht]);else r({target:P,proto:!0,forced:S||K},lt);return(!e||D)&&H[E]!==X&&d(H,E,X,{name:U}),g[P]=X,lt}},24519:function(s,l,t){var r=t(72069),n=t(23583),e=t(37540),a=t(5406),o=t(26313),u=t(16142),i=t(18565),v=t(70457),f=i("iterator"),c=!1,d,h,g;[].keys&&(g=[].keys(),"next"in g?(h=o(o(g)),h!==Object.prototype&&(d=h)):c=!0);var p=!e(d)||r(function(){var y={};return d[f].call(y)!==y});p?d={}:v&&(d=a(d)),n(d[f])||u(d,f,function(){return this}),s.exports={IteratorPrototype:d,BUGGY_SAFARI_ITERATORS:c}},29107:function(s){s.exports={}},82628:function(s,l,t){var r=t(45344);s.exports=function(n){return r(n.length)}},13749:function(s,l,t){var r=t(11286),n=t(72069),e=t(23583),a=t(94879),o=t(92986),u=t(86588).CONFIGURABLE,i=t(84352),v=t(82367),f=v.enforce,c=v.get,d=String,h=Object.defineProperty,g=r("".slice),p=r("".replace),y=r([].join),m=o&&!n(function(){return h(function(){},"length",{value:8}).length!==8}),O=String(String).split("String"),S=s.exports=function(E,T,x){g(d(T),0,7)==="Symbol("&&(T="["+p(d(T),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),x&&x.getter&&(T="get "+T),x&&x.setter&&(T="set "+T),(!a(E,"name")||u&&E.name!==T)&&(o?h(E,"name",{value:T,configurable:!0}):E.name=T),m&&x&&a(x,"arity")&&E.length!==x.arity&&h(E,"length",{value:x.arity});try{x&&a(x,"constructor")&&x.constructor?o&&h(E,"prototype",{writable:!1}):E.prototype&&(E.prototype=void 0)}catch(A){}var I=f(E);return a(I,"source")||(I.source=y(O,typeof T=="string"?T:"")),E};Function.prototype.toString=S(function(){return e(this)&&c(this).source||i(this)},"toString")},1774:function(s,l,t){var r=t(11286),n=Map.prototype;s.exports={Map,set:r(n.set),get:r(n.get),has:r(n.has),remove:r(n.delete),proto:n}},98940:function(s){var l=Math.expm1,t=Math.exp;s.exports=!l||l(10)>22025.465794806718||l(10)<22025.465794806718||l(-2e-17)!==-2e-17?function(n){var e=+n;return e===0?e:e>-1e-6&&e<1e-6?e+e*e/2:t(e)-1}:l},10418:function(s,l,t){var r=t(93976),n=Math.abs,e=2220446049250313e-31,a=1/e,o=function(u){return u+a-a};s.exports=function(u,i,v,f){var c=+u,d=n(c),h=r(c);if(d<f)return h*o(d/f/i)*f*i;var g=(1+i/e)*d,p=g-(g-d);return p>v||p!==p?h*(1/0):h*p}},93279:function(s,l,t){var r=t(10418),n=11920928955078125e-23,e=34028234663852886e22,a=11754943508222875e-54;s.exports=Math.fround||function(u){return r(u,n,e,a)}},41942:function(s){var l=Math.log,t=Math.LOG10E;s.exports=Math.log10||function(n){return l(n)*t}},49366:function(s){var l=Math.log;s.exports=Math.log1p||function(r){var n=+r;return n>-1e-8&&n<1e-8?n-n*n/2:l(1+n)}},93976:function(s){s.exports=Math.sign||function(t){var r=+t;return r===0||r!==r?r:r<0?-1:1}},22459:function(s){var l=Math.ceil,t=Math.floor;s.exports=Math.trunc||function(n){var e=+n;return(e>0?t:l)(e)}},9709:function(s,l,t){var r=t(66009),n=t(28167),e=t(45526),a=t(23115).set,o=t(76895),u=t(51149),i=t(92150),v=t(81539),f=t(42954),c=r.MutationObserver||r.WebKitMutationObserver,d=r.document,h=r.process,g=r.Promise,p=n("queueMicrotask"),y,m,O,S,E;if(!p){var T=new o,x=function(){var I,A;for(f&&(I=h.domain)&&I.exit();A=T.get();)try{A()}catch(C){throw T.head&&y(),C}I&&I.enter()};!u&&!f&&!v&&c&&d?(m=!0,O=d.createTextNode(""),new c(x).observe(O,{characterData:!0}),y=function(){O.data=m=!m}):!i&&g&&g.resolve?(S=g.resolve(void 0),S.constructor=g,E=e(S.then,S),y=function(){E(x)}):f?y=function(){h.nextTick(x)}:(a=e(a,r),y=function(){a(x)}),p=function(I){T.head||y(),T.add(I)}}s.exports=p},24649:function(s,l,t){var r=t(85156),n=TypeError,e=function(a){var o,u;this.promise=new a(function(i,v){if(o!==void 0||u!==void 0)throw new n("Bad Promise constructor");o=i,u=v}),this.resolve=r(o),this.reject=r(u)};s.exports.f=function(a){return new e(a)}},15453:function(s,l,t){var r=t(17361);s.exports=function(n,e){return n===void 0?arguments.length<2?"":e:r(n)}},92337:function(s,l,t){var r=t(11566),n=TypeError;s.exports=function(e){if(r(e))throw new n("The method doesn't accept regular expressions");return e}},98074:function(s,l,t){var r=t(66009),n=r.isFinite;s.exports=Number.isFinite||function(a){return typeof a=="number"&&n(a)}},25838:function(s,l,t){var r=t(66009),n=t(72069),e=t(11286),a=t(17361),o=t(85900).trim,u=t(77082),i=e("".charAt),v=r.parseFloat,f=r.Symbol,c=f&&f.iterator,d=1/v(u+"-0")!==-1/0||c&&!n(function(){v(Object(c))});s.exports=d?function(g){var p=o(a(g)),y=v(p);return y===0&&i(p,0)==="-"?-0:y}:v},23009:function(s,l,t){var r=t(66009),n=t(72069),e=t(11286),a=t(17361),o=t(85900).trim,u=t(77082),i=r.parseInt,v=r.Symbol,f=v&&v.iterator,c=/^[+-]?0x/i,d=e(c.exec),h=i(u+"08")!==8||i(u+"0x16")!==22||f&&!n(function(){i(Object(f))});s.exports=h?function(p,y){var m=o(a(p));return i(m,y>>>0||(d(c,m)?16:10))}:i},16667:function(s,l,t){var r=t(92986),n=t(11286),e=t(96499),a=t(72069),o=t(18350),u=t(24943),i=t(79591),v=t(49671),f=t(72181),c=Object.assign,d=Object.defineProperty,h=n([].concat);s.exports=!c||a(function(){if(r&&c({b:1},c(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var g={},p={},y=Symbol("assign detection"),m="abcdefghijklmnopqrst";return g[y]=7,m.split("").forEach(function(O){p[O]=O}),c({},g)[y]!==7||o(c({},p)).join("")!==m})?function(p,y){for(var m=v(p),O=arguments.length,S=1,E=u.f,T=i.f;O>S;)for(var x=f(arguments[S++]),I=E?h(o(x),E(x)):o(x),A=I.length,C=0,P;A>C;)P=I[C++],(!r||e(T,x,P))&&(m[P]=x[P]);return m}:c},5406:function(s,l,t){var r=t(25001),n=t(61963),e=t(75785),a=t(19423),o=t(96439),u=t(85501),i=t(44869),v=">",f="<",c="prototype",d="script",h=i("IE_PROTO"),g=function(){},p=function(E){return f+d+v+E+f+"/"+d+v},y=function(E){E.write(p("")),E.close();var T=E.parentWindow.Object;return E=null,T},m=function(){var E=u("iframe"),T="java"+d+":",x;return E.style.display="none",o.appendChild(E),E.src=String(T),x=E.contentWindow.document,x.open(),x.write(p("document.F=Object")),x.close(),x.F},O,S=function(){try{O=new ActiveXObject("htmlfile")}catch(T){}S=typeof document!="undefined"?document.domain&&O?y(O):m():y(O);for(var E=e.length;E--;)delete S[c][e[E]];return S()};a[h]=!0,s.exports=Object.create||function(T,x){var I;return T!==null?(g[c]=r(T),I=new g,g[c]=null,I[h]=T):I=S(),x===void 0?I:n.f(I,x)}},61963:function(s,l,t){var r=t(92986),n=t(356),e=t(7831),a=t(25001),o=t(36859),u=t(18350);l.f=r&&!n?Object.defineProperties:function(v,f){a(v);for(var c=o(f),d=u(f),h=d.length,g=0,p;h>g;)e.f(v,p=d[g++],c[p]);return v}},7831:function(s,l,t){var r=t(92986),n=t(52515),e=t(356),a=t(25001),o=t(50035),u=TypeError,i=Object.defineProperty,v=Object.getOwnPropertyDescriptor,f="enumerable",c="configurable",d="writable";l.f=r?e?function(g,p,y){if(a(g),p=o(p),a(y),typeof g=="function"&&p==="prototype"&&"value"in y&&d in y&&!y[d]){var m=v(g,p);m&&m[d]&&(g[p]=y.value,y={configurable:c in y?y[c]:m[c],enumerable:f in y?y[f]:m[f],writable:!1})}return i(g,p,y)}:i:function(g,p,y){if(a(g),p=o(p),a(y),n)try{return i(g,p,y)}catch(m){}if("get"in y||"set"in y)throw new u("Accessors not supported");return"value"in y&&(g[p]=y.value),g}},71349:function(s,l,t){var r=t(92986),n=t(96499),e=t(79591),a=t(18526),o=t(36859),u=t(50035),i=t(94879),v=t(52515),f=Object.getOwnPropertyDescriptor;l.f=r?f:function(d,h){if(d=o(d),h=u(h),v)try{return f(d,h)}catch(g){}if(i(d,h))return a(!n(e.f,d,h),d[h])}},92880:function(s,l,t){var r=t(14274),n=t(36859),e=t(83258).f,a=t(22806),o=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(i){try{return e(i)}catch(v){return a(o)}};s.exports.f=function(v){return o&&r(v)==="Window"?u(v):e(n(v))}},83258:function(s,l,t){var r=t(6242),n=t(75785),e=n.concat("length","prototype");l.f=Object.getOwnPropertyNames||function(o){return r(o,e)}},24943:function(s,l){l.f=Object.getOwnPropertySymbols},26313:function(s,l,t){var r=t(94879),n=t(23583),e=t(49671),a=t(44869),o=t(87501),u=a("IE_PROTO"),i=Object,v=i.prototype;s.exports=o?i.getPrototypeOf:function(f){var c=e(f);if(r(c,u))return c[u];var d=c.constructor;return n(d)&&c instanceof d?d.prototype:c instanceof i?v:null}},28174:function(s,l,t){var r=t(72069),n=t(37540),e=t(14274),a=t(72058),o=Object.isExtensible,u=r(function(){o(1)});s.exports=u||a?function(v){return!n(v)||a&&e(v)==="ArrayBuffer"?!1:o?o(v):!0}:o},95307:function(s,l,t){var r=t(11286);s.exports=r({}.isPrototypeOf)},6242:function(s,l,t){var r=t(11286),n=t(94879),e=t(36859),a=t(94319).indexOf,o=t(19423),u=r([].push);s.exports=function(i,v){var f=e(i),c=0,d=[],h;for(h in f)!n(o,h)&&n(f,h)&&u(d,h);for(;v.length>c;)n(f,h=v[c++])&&(~a(d,h)||u(d,h));return d}},18350:function(s,l,t){var r=t(6242),n=t(75785);s.exports=Object.keys||function(a){return r(a,n)}},79591:function(s,l){var t={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,n=r&&!t.call({1:2},1);l.f=n?function(a){var o=r(this,a);return!!o&&o.enumerable}:t},57629:function(s,l,t){var r=t(70457),n=t(66009),e=t(72069),a=t(68674);s.exports=r||!e(function(){if(!(a&&a<535)){var o=Math.random();__defineSetter__.call(null,o,function(){}),delete n[o]}})},15861:function(s,l,t){var r=t(84756),n=t(37540),e=t(2068),a=t(53408);s.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var o=!1,u={},i;try{i=r(Object.prototype,"__proto__","set"),i(u,[]),o=u instanceof Array}catch(v){}return function(f,c){return e(f),a(c),n(f)&&(o?i(f,c):f.__proto__=c),f}}():void 0)},8511:function(s,l,t){var r=t(92986),n=t(72069),e=t(11286),a=t(26313),o=t(18350),u=t(36859),i=t(79591).f,v=e(i),f=e([].push),c=r&&n(function(){var h=Object.create(null);return h[2]=2,!v(h,2)}),d=function(h){return function(g){for(var p=u(g),y=o(p),m=c&&a(p)===null,O=y.length,S=0,E=[],T;O>S;)T=y[S++],(!r||(m?T in p:v(p,T)))&&f(E,h?[T,p[T]]:p[T]);return E}};s.exports={entries:d(!0),values:d(!1)}},60105:function(s,l,t){var r=t(67878),n=t(9205);s.exports=r?{}.toString:function(){return"[object "+n(this)+"]"}},2064:function(s,l,t){var r=t(96499),n=t(23583),e=t(37540),a=TypeError;s.exports=function(o,u){var i,v;if(u==="string"&&n(i=o.toString)&&!e(v=r(i,o))||n(i=o.valueOf)&&!e(v=r(i,o))||u!=="string"&&n(i=o.toString)&&!e(v=r(i,o)))return v;throw new a("Can't convert object to primitive value")}},16885:function(s,l,t){var r=t(38941),n=t(11286),e=t(83258),a=t(24943),o=t(25001),u=n([].concat);s.exports=r("Reflect","ownKeys")||function(v){var f=e.f(o(v)),c=a.f;return c?u(f,c(v)):f}},75081:function(s,l,t){var r=t(66009);s.exports=r},67805:function(s){s.exports=function(l){try{return{error:!1,value:l()}}catch(t){return{error:!0,value:t}}}},37130:function(s,l,t){var r=t(66009),n=t(98844),e=t(23583),a=t(13278),o=t(84352),u=t(18565),i=t(63144),v=t(56422),f=t(70457),c=t(73126),d=n&&n.prototype,h=u("species"),g=!1,p=e(r.PromiseRejectionEvent),y=a("Promise",function(){var m=o(n),O=m!==String(n);if(!O&&c===66||f&&!(d.catch&&d.finally))return!0;if(!c||c<51||!/native code/.test(m)){var S=new n(function(x){x(1)}),E=function(x){x(function(){},function(){})},T=S.constructor={};if(T[h]=E,g=S.then(function(){})instanceof E,!g)return!0}return!O&&(i||v)&&!p});s.exports={CONSTRUCTOR:y,REJECTION_EVENT:p,SUBCLASSING:g}},98844:function(s,l,t){var r=t(66009);s.exports=r.Promise},87408:function(s,l,t){var r=t(25001),n=t(37540),e=t(24649);s.exports=function(a,o){if(r(a),n(o)&&o.constructor===a)return o;var u=e.f(a),i=u.resolve;return i(o),u.promise}},26035:function(s,l,t){var r=t(98844),n=t(97494),e=t(37130).CONSTRUCTOR;s.exports=e||!n(function(a){r.all(a).then(void 0,function(){})})},2594:function(s,l,t){var r=t(7831).f;s.exports=function(n,e,a){a in n||r(n,a,{configurable:!0,get:function(){return e[a]},set:function(o){e[a]=o}})}},76895:function(s){var l=function(){this.head=null,this.tail=null};l.prototype={add:function(t){var r={item:t,next:null},n=this.tail;n?n.next=r:this.head=r,this.tail=r},get:function(){var t=this.head;if(t){var r=this.head=t.next;return r===null&&(this.tail=null),t.item}}},s.exports=l},33064:function(s,l,t){var r=t(96499),n=t(25001),e=t(23583),a=t(14274),o=t(44381),u=TypeError;s.exports=function(i,v){var f=i.exec;if(e(f)){var c=r(f,i,v);return c!==null&&n(c),c}if(a(i)==="RegExp")return r(o,i,v);throw new u("RegExp#exec called on incompatible receiver")}},44381:function(s,l,t){var r=t(96499),n=t(11286),e=t(17361),a=t(29833),o=t(39807),u=t(96731),i=t(5406),v=t(82367).get,f=t(76769),c=t(85220),d=u("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,g=h,p=n("".charAt),y=n("".indexOf),m=n("".replace),O=n("".slice),S=function(){var I=/a/,A=/b*/g;return r(h,I,"a"),r(h,A,"a"),I.lastIndex!==0||A.lastIndex!==0}(),E=o.BROKEN_CARET,T=/()??/.exec("")[1]!==void 0,x=S||T||E||f||c;x&&(g=function(A){var C=this,P=v(C),N=e(A),$=P.raw,U,F,D,L,b,K,H;if($)return $.lastIndex=C.lastIndex,U=r(g,$,N),C.lastIndex=$.lastIndex,U;var Q=P.groups,X=E&&C.sticky,st=r(a,C),et=C.source,lt=0,ht=N;if(X&&(st=m(st,"y",""),y(st,"g")===-1&&(st+="g"),ht=O(N,C.lastIndex),C.lastIndex>0&&(!C.multiline||C.multiline&&p(N,C.lastIndex-1)!==` +`)&&(et="(?: "+et+")",ht=" "+ht,lt++),F=new RegExp("^(?:"+et+")",st)),T&&(F=new RegExp("^"+et+"$(?!\\s)",st)),S&&(D=C.lastIndex),L=r(h,X?F:C,ht),X?L?(L.input=O(L.input,lt),L[0]=O(L[0],lt),L.index=C.lastIndex,C.lastIndex+=L[0].length):C.lastIndex=0:S&&L&&(C.lastIndex=C.global?L.index+L[0].length:D),T&&L&&L.length>1&&r(d,L[0],F,function(){for(b=1;b<arguments.length-2;b++)arguments[b]===void 0&&(L[b]=void 0)}),L&&Q)for(L.groups=K=i(null),b=0;b<Q.length;b++)H=Q[b],K[H[0]]=L[H[1]];return L}),s.exports=g},29833:function(s,l,t){var r=t(25001);s.exports=function(){var n=r(this),e="";return n.hasIndices&&(e+="d"),n.global&&(e+="g"),n.ignoreCase&&(e+="i"),n.multiline&&(e+="m"),n.dotAll&&(e+="s"),n.unicode&&(e+="u"),n.unicodeSets&&(e+="v"),n.sticky&&(e+="y"),e}},54932:function(s,l,t){var r=t(96499),n=t(94879),e=t(95307),a=t(29833),o=RegExp.prototype;s.exports=function(u){var i=u.flags;return i===void 0&&!("flags"in o)&&!n(u,"flags")&&e(o,u)?r(a,u):i}},39807:function(s,l,t){var r=t(72069),n=t(66009),e=n.RegExp,a=r(function(){var i=e("a","y");return i.lastIndex=2,i.exec("abcd")!==null}),o=a||r(function(){return!e("a","y").sticky}),u=a||r(function(){var i=e("^r","gy");return i.lastIndex=2,i.exec("str")!==null});s.exports={BROKEN_CARET:u,MISSED_STICKY:o,UNSUPPORTED_Y:a}},76769:function(s,l,t){var r=t(72069),n=t(66009),e=n.RegExp;s.exports=r(function(){var a=e(".","s");return!(a.dotAll&&a.test(` +`)&&a.flags==="s")})},85220:function(s,l,t){var r=t(72069),n=t(66009),e=n.RegExp;s.exports=r(function(){var a=e("(?<a>b)","g");return a.exec("b").groups.a!=="b"||"b".replace(a,"$<a>c")!=="bc"})},2068:function(s,l,t){var r=t(5683),n=TypeError;s.exports=function(e){if(r(e))throw new n("Can't call method on "+e);return e}},28167:function(s,l,t){var r=t(66009),n=t(92986),e=Object.getOwnPropertyDescriptor;s.exports=function(a){if(!n)return r[a];var o=e(r,a);return o&&o.value}},13944:function(s){s.exports=Object.is||function(t,r){return t===r?t!==0||1/t===1/r:t!==t&&r!==r}},9934:function(s,l,t){var r=t(66009),n=t(66543),e=t(23583),a=t(5017),o=t(89042),u=t(22806),i=t(95486),v=r.Function,f=/MSIE .\./.test(o)||a&&function(){var c=r.Bun.version.split(".");return c.length<3||c[0]==="0"&&(c[1]<3||c[1]==="3"&&c[2]==="0")}();s.exports=function(c,d){var h=d?2:1;return f?function(g,p){var y=i(arguments.length,1)>h,m=e(g)?g:v(g),O=y?u(arguments,h):[],S=y?function(){n(m,this,O)}:m;return d?c(S,p):c(S)}:c}},48348:function(s,l,t){var r=t(172),n=t(35051),e=r.Set,a=r.add;s.exports=function(o){var u=new e;return n(o,function(i){a(u,i)}),u}},41754:function(s,l,t){var r=t(76602),n=t(172),e=t(48348),a=t(17768),o=t(65263),u=t(35051),i=t(9573),v=n.has,f=n.remove;s.exports=function(d){var h=r(this),g=o(d),p=e(h);return a(h)<=g.size?u(h,function(y){g.includes(y)&&f(p,y)}):i(g.getIterator(),function(y){v(h,y)&&f(p,y)}),p}},172:function(s,l,t){var r=t(11286),n=Set.prototype;s.exports={Set,add:r(n.add),has:r(n.has),remove:r(n.delete),proto:n}},92292:function(s,l,t){var r=t(76602),n=t(172),e=t(17768),a=t(65263),o=t(35051),u=t(9573),i=n.Set,v=n.add,f=n.has;s.exports=function(d){var h=r(this),g=a(d),p=new i;return e(h)>g.size?u(g.getIterator(),function(y){f(h,y)&&v(p,y)}):o(h,function(y){g.includes(y)&&v(p,y)}),p}},47391:function(s,l,t){var r=t(76602),n=t(172).has,e=t(17768),a=t(65263),o=t(35051),u=t(9573),i=t(99797);s.exports=function(f){var c=r(this),d=a(f);if(e(c)<=d.size)return o(c,function(g){if(d.includes(g))return!1},!0)!==!1;var h=d.getIterator();return u(h,function(g){if(n(c,g))return i(h,"normal",!1)})!==!1}},75492:function(s,l,t){var r=t(76602),n=t(17768),e=t(35051),a=t(65263);s.exports=function(u){var i=r(this),v=a(u);return n(i)>v.size?!1:e(i,function(f){if(!v.includes(f))return!1},!0)!==!1}},1333:function(s,l,t){var r=t(76602),n=t(172).has,e=t(17768),a=t(65263),o=t(9573),u=t(99797);s.exports=function(v){var f=r(this),c=a(v);if(e(f)<c.size)return!1;var d=c.getIterator();return o(d,function(h){if(!n(f,h))return u(d,"normal",!1)})!==!1}},35051:function(s,l,t){var r=t(11286),n=t(9573),e=t(172),a=e.Set,o=e.proto,u=r(o.forEach),i=r(o.keys),v=i(new a).next;s.exports=function(f,c,d){return d?n({iterator:i(f),next:v},c):u(f,c)}},94118:function(s,l,t){var r=t(38941),n=function(e){return{size:e,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}};s.exports=function(e){var a=r("Set");try{new a()[e](n(0));try{return new a()[e](n(-1)),!1}catch(o){return!0}}catch(o){return!1}}},17768:function(s,l,t){var r=t(84756),n=t(172);s.exports=r(n.proto,"size","get")||function(e){return e.size}},36167:function(s,l,t){var r=t(38941),n=t(85500),e=t(18565),a=t(92986),o=e("species");s.exports=function(u){var i=r(u);a&&i&&!i[o]&&n(i,o,{configurable:!0,get:function(){return this}})}},64680:function(s,l,t){var r=t(76602),n=t(172),e=t(48348),a=t(65263),o=t(9573),u=n.add,i=n.has,v=n.remove;s.exports=function(c){var d=r(this),h=a(c).getIterator(),g=e(d);return o(h,function(p){i(d,p)?v(g,p):u(g,p)}),g}},78401:function(s,l,t){var r=t(7831).f,n=t(94879),e=t(18565),a=e("toStringTag");s.exports=function(o,u,i){o&&!i&&(o=o.prototype),o&&!n(o,a)&&r(o,a,{configurable:!0,value:u})}},70402:function(s,l,t){var r=t(76602),n=t(172).add,e=t(48348),a=t(65263),o=t(9573);s.exports=function(i){var v=r(this),f=a(i).getIterator(),c=e(v);return o(f,function(d){n(c,d)}),c}},44869:function(s,l,t){var r=t(96731),n=t(36374),e=r("keys");s.exports=function(a){return e[a]||(e[a]=n(a))}},70443:function(s,l,t){var r=t(70457),n=t(66009),e=t(36003),a="__core-js_shared__",o=s.exports=n[a]||e(a,{});(o.versions||(o.versions=[])).push({version:"3.37.1",mode:r?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE",source:"https://github.com/zloirock/core-js"})},96731:function(s,l,t){var r=t(70443);s.exports=function(n,e){return r[n]||(r[n]=e||{})}},16887:function(s,l,t){var r=t(25001),n=t(80042),e=t(5683),a=t(18565),o=a("species");s.exports=function(u,i){var v=r(u).constructor,f;return v===void 0||e(f=r(v)[o])?i:n(f)}},5287:function(s,l,t){var r=t(72069);s.exports=function(n){return r(function(){var e=""[n]('"');return e!==e.toLowerCase()||e.split('"').length>3})}},22149:function(s,l,t){var r=t(11286),n=t(12105),e=t(17361),a=t(2068),o=r("".charAt),u=r("".charCodeAt),i=r("".slice),v=function(f){return function(c,d){var h=e(a(c)),g=n(d),p=h.length,y,m;return g<0||g>=p?f?"":void 0:(y=u(h,g),y<55296||y>56319||g+1===p||(m=u(h,g+1))<56320||m>57343?f?o(h,g):y:f?i(h,g,g+2):(y-55296<<10)+(m-56320)+65536)}};s.exports={codeAt:v(!1),charAt:v(!0)}},36945:function(s,l,t){var r=t(89042);s.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},61607:function(s,l,t){var r=t(11286),n=t(45344),e=t(17361),a=t(79719),o=t(2068),u=r(a),i=r("".slice),v=Math.ceil,f=function(c){return function(d,h,g){var p=e(o(d)),y=n(h),m=p.length,O=g===void 0?" ":e(g),S,E;return y<=m||O===""?p:(S=y-m,E=u(O,v(S/O.length)),E.length>S&&(E=i(E,0,S)),c?p+E:E+p)}};s.exports={start:f(!1),end:f(!0)}},38679:function(s,l,t){var r=t(11286),n=2147483647,e=36,a=1,o=26,u=38,i=700,v=72,f=128,c="-",d=/[^\0-\u007E]/,h=/[.\u3002\uFF0E\uFF61]/g,g="Overflow: input needs wider integers to process",p=e-a,y=RangeError,m=r(h.exec),O=Math.floor,S=String.fromCharCode,E=r("".charCodeAt),T=r([].join),x=r([].push),I=r("".replace),A=r("".split),C=r("".toLowerCase),P=function(F){for(var D=[],L=0,b=F.length;L<b;){var K=E(F,L++);if(K>=55296&&K<=56319&&L<b){var H=E(F,L++);(H&64512)===56320?x(D,((K&1023)<<10)+(H&1023)+65536):(x(D,K),L--)}else x(D,K)}return D},N=function(F){return F+22+75*(F<26)},$=function(F,D,L){var b=0;for(F=L?O(F/i):F>>1,F+=O(F/D);F>p*o>>1;)F=O(F/p),b+=e;return O(b+(p+1)*F/(F+u))},U=function(F){var D=[];F=P(F);var L=F.length,b=f,K=0,H=v,Q,X;for(Q=0;Q<F.length;Q++)X=F[Q],X<128&&x(D,S(X));var st=D.length,et=st;for(st&&x(D,c);et<L;){var lt=n;for(Q=0;Q<F.length;Q++)X=F[Q],X>=b&&X<lt&&(lt=X);var ht=et+1;if(lt-b>O((n-K)/ht))throw new y(g);for(K+=(lt-b)*ht,b=lt,Q=0;Q<F.length;Q++){if(X=F[Q],X<b&&++K>n)throw new y(g);if(X===b){for(var gt=K,Lt=e;;){var Dt=Lt<=H?a:Lt>=H+o?o:Lt-H;if(gt<Dt)break;var Ct=gt-Dt,at=e-Dt;x(D,S(N(Dt+Ct%at))),gt=O(Ct/at),Lt+=e}x(D,S(N(gt))),H=$(K,ht,et===st),K=0,et++}}K++,b++}return T(D,"")};s.exports=function(F){var D=[],L=A(I(C(F),h,"."),"."),b,K;for(b=0;b<L.length;b++)K=L[b],x(D,m(d,K)?"xn--"+U(K):K);return T(D,".")}},79719:function(s,l,t){var r=t(12105),n=t(17361),e=t(2068),a=RangeError;s.exports=function(u){var i=n(e(this)),v="",f=r(u);if(f<0||f===1/0)throw new a("Wrong number of repetitions");for(;f>0;(f>>>=1)&&(i+=i))f&1&&(v+=i);return v}},75176:function(s,l,t){var r=t(85900).end,n=t(33328);s.exports=n("trimEnd")?function(){return r(this)}:"".trimEnd},33328:function(s,l,t){var r=t(86588).PROPER,n=t(72069),e=t(77082),a="\u200B\x85\u180E";s.exports=function(o){return n(function(){return!!e[o]()||a[o]()!==a||r&&e[o].name!==o})}},83481:function(s,l,t){var r=t(85900).start,n=t(33328);s.exports=n("trimStart")?function(){return r(this)}:"".trimStart},85900:function(s,l,t){var r=t(11286),n=t(2068),e=t(17361),a=t(77082),o=r("".replace),u=RegExp("^["+a+"]+"),i=RegExp("(^|[^"+a+"])["+a+"]+$"),v=function(f){return function(c){var d=e(n(c));return f&1&&(d=o(d,u,"")),f&2&&(d=o(d,i,"$1")),d}};s.exports={start:v(1),end:v(2),trim:v(3)}},99050:function(s,l,t){var r=t(66009),n=t(72069),e=t(73126),a=t(63144),o=t(56422),u=t(42954),i=r.structuredClone;s.exports=!!i&&!n(function(){if(o&&e>92||u&&e>94||a&&e>97)return!1;var v=new ArrayBuffer(8),f=i(v,{transfer:[v]});return v.byteLength!==0||f.byteLength!==8})},39729:function(s,l,t){var r=t(73126),n=t(72069),e=t(66009),a=e.String;s.exports=!!Object.getOwnPropertySymbols&&!n(function(){var o=Symbol("symbol detection");return!a(o)||!(Object(o)instanceof Symbol)||!Symbol.sham&&r&&r<41})},60796:function(s,l,t){var r=t(96499),n=t(38941),e=t(18565),a=t(16142);s.exports=function(){var o=n("Symbol"),u=o&&o.prototype,i=u&&u.valueOf,v=e("toPrimitive");u&&!u[v]&&a(u,v,function(f){return r(i,this)},{arity:1})}},61190:function(s,l,t){var r=t(39729);s.exports=r&&!!Symbol.for&&!!Symbol.keyFor},23115:function(s,l,t){var r=t(66009),n=t(66543),e=t(45526),a=t(23583),o=t(94879),u=t(72069),i=t(96439),v=t(22806),f=t(85501),c=t(95486),d=t(51149),h=t(42954),g=r.setImmediate,p=r.clearImmediate,y=r.process,m=r.Dispatch,O=r.Function,S=r.MessageChannel,E=r.String,T=0,x={},I="onreadystatechange",A,C,P,N;u(function(){A=r.location});var $=function(L){if(o(x,L)){var b=x[L];delete x[L],b()}},U=function(L){return function(){$(L)}},F=function(L){$(L.data)},D=function(L){r.postMessage(E(L),A.protocol+"//"+A.host)};(!g||!p)&&(g=function(b){c(arguments.length,1);var K=a(b)?b:O(b),H=v(arguments,1);return x[++T]=function(){n(K,void 0,H)},C(T),T},p=function(b){delete x[b]},h?C=function(L){y.nextTick(U(L))}:m&&m.now?C=function(L){m.now(U(L))}:S&&!d?(P=new S,N=P.port2,P.port1.onmessage=F,C=e(N.postMessage,N)):r.addEventListener&&a(r.postMessage)&&!r.importScripts&&A&&A.protocol!=="file:"&&!u(D)?(C=D,r.addEventListener("message",F,!1)):I in f("script")?C=function(L){i.appendChild(f("script"))[I]=function(){i.removeChild(this),$(L)}}:C=function(L){setTimeout(U(L),0)}),s.exports={set:g,clear:p}},34338:function(s,l,t){var r=t(11286);s.exports=r(1 .valueOf)},4652:function(s,l,t){var r=t(12105),n=Math.max,e=Math.min;s.exports=function(a,o){var u=r(a);return u<0?n(u+o,0):e(u,o)}},11344:function(s,l,t){var r=t(89935),n=TypeError;s.exports=function(e){var a=r(e,"number");if(typeof a=="number")throw new n("Can't convert number to bigint");return BigInt(a)}},9450:function(s,l,t){var r=t(12105),n=t(45344),e=RangeError;s.exports=function(a){if(a===void 0)return 0;var o=r(a),u=n(o);if(o!==u)throw new e("Wrong length or index");return u}},36859:function(s,l,t){var r=t(72181),n=t(2068);s.exports=function(e){return r(n(e))}},12105:function(s,l,t){var r=t(22459);s.exports=function(n){var e=+n;return e!==e||e===0?0:r(e)}},45344:function(s,l,t){var r=t(12105),n=Math.min;s.exports=function(e){var a=r(e);return a>0?n(a,9007199254740991):0}},49671:function(s,l,t){var r=t(2068),n=Object;s.exports=function(e){return n(r(e))}},58143:function(s,l,t){var r=t(98072),n=RangeError;s.exports=function(e,a){var o=r(e);if(o%a)throw new n("Wrong offset");return o}},98072:function(s,l,t){var r=t(12105),n=RangeError;s.exports=function(e){var a=r(e);if(a<0)throw new n("The argument can't be less than 0");return a}},89935:function(s,l,t){var r=t(96499),n=t(37540),e=t(491),a=t(10512),o=t(2064),u=t(18565),i=TypeError,v=u("toPrimitive");s.exports=function(f,c){if(!n(f)||e(f))return f;var d=a(f,v),h;if(d){if(c===void 0&&(c="default"),h=r(d,f,c),!n(h)||e(h))return h;throw new i("Can't convert object to primitive value")}return c===void 0&&(c="number"),o(f,c)}},50035:function(s,l,t){var r=t(89935),n=t(491);s.exports=function(e){var a=r(e,"string");return n(a)?a:a+""}},67878:function(s,l,t){var r=t(18565),n=r("toStringTag"),e={};e[n]="z",s.exports=String(e)==="[object z]"},17361:function(s,l,t){var r=t(9205),n=String;s.exports=function(e){if(r(e)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return n(e)}},76517:function(s){var l=Math.round;s.exports=function(t){var r=l(t);return r<0?0:r>255?255:r&255}},18096:function(s,l,t){var r=t(42954);s.exports=function(n){try{if(r)return Function('return require("'+n+'")')()}catch(e){}}},82453:function(s){var l=String;s.exports=function(t){try{return l(t)}catch(r){return"Object"}}},80357:function(s,l,t){var r=t(14304),n=t(66009),e=t(96499),a=t(92986),o=t(46868),u=t(88037),i=t(17468),v=t(12833),f=t(18526),c=t(90809),d=t(613),h=t(45344),g=t(9450),p=t(58143),y=t(76517),m=t(50035),O=t(94879),S=t(9205),E=t(37540),T=t(491),x=t(5406),I=t(95307),A=t(15861),C=t(83258).f,P=t(66169),N=t(66655).forEach,$=t(36167),U=t(85500),F=t(7831),D=t(71349),L=t(5220),b=t(82367),K=t(32345),H=b.get,Q=b.set,X=b.enforce,st=F.f,et=D.f,lt=n.RangeError,ht=i.ArrayBuffer,gt=ht.prototype,Lt=i.DataView,Dt=u.NATIVE_ARRAY_BUFFER_VIEWS,Ct=u.TYPED_ARRAY_TAG,at=u.TypedArray,vt=u.TypedArrayPrototype,St=u.isTypedArray,Rt="BYTES_PER_ELEMENT",Tt="Wrong length",Nt=function(Vt,$t){U(Vt,$t,{configurable:!0,get:function(){return H(this)[$t]}})},Ht=function(Vt){var $t;return I(gt,Vt)||($t=S(Vt))==="ArrayBuffer"||$t==="SharedArrayBuffer"},Wt=function(Vt,$t){return St(Vt)&&!T($t)&&$t in Vt&&d(+$t)&&$t>=0},bt=function($t,Mt){return Mt=m(Mt),Wt($t,Mt)?f(2,$t[Mt]):et($t,Mt)},Pt=function($t,Mt,q){return Mt=m(Mt),Wt($t,Mt)&&E(q)&&O(q,"value")&&!O(q,"get")&&!O(q,"set")&&!q.configurable&&(!O(q,"writable")||q.writable)&&(!O(q,"enumerable")||q.enumerable)?($t[Mt]=q.value,$t):st($t,Mt,q)};a?(Dt||(D.f=bt,F.f=Pt,Nt(vt,"buffer"),Nt(vt,"byteOffset"),Nt(vt,"byteLength"),Nt(vt,"length")),r({target:"Object",stat:!0,forced:!Dt},{getOwnPropertyDescriptor:bt,defineProperty:Pt}),s.exports=function(Vt,$t,Mt){var q=Vt.match(/\d+/)[0]/8,ut=Vt+(Mt?"Clamped":"")+"Array",J="get"+Vt,yt="set"+Vt,pt=n[ut],ct=pt,ft=ct&&ct.prototype,zt={},Yt=function(j,z){var G=H(j);return G.view[J](z*q+G.byteOffset,!0)},W=function(j,z,G){var ot=H(j);ot.view[yt](z*q+ot.byteOffset,Mt?y(G):G,!0)},k=function(j,z){st(j,z,{get:function(){return Yt(this,z)},set:function(G){return W(this,z,G)},enumerable:!0})};Dt?o&&(ct=$t(function(j,z,G,ot){return v(j,ft),K(function(){return E(z)?Ht(z)?ot!==void 0?new pt(z,p(G,q),ot):G!==void 0?new pt(z,p(G,q)):new pt(z):St(z)?L(ct,z):e(P,ct,z):new pt(g(z))}(),j,ct)}),A&&A(ct,at),N(C(pt),function(j){j in ct||c(ct,j,pt[j])}),ct.prototype=ft):(ct=$t(function(j,z,G,ot){v(j,ft);var mt=0,At=0,Bt,jt,Ut;if(!E(z))Ut=g(z),jt=Ut*q,Bt=new ht(jt);else if(Ht(z)){Bt=z,At=p(G,q);var Qt=z.byteLength;if(ot===void 0){if(Qt%q)throw new lt(Tt);if(jt=Qt-At,jt<0)throw new lt(Tt)}else if(jt=h(ot)*q,jt+At>Qt)throw new lt(Tt);Ut=jt/q}else return St(z)?L(ct,z):e(P,ct,z);for(Q(j,{buffer:Bt,byteOffset:At,byteLength:jt,length:Ut,view:new Lt(Bt)});mt<Ut;)k(j,mt++)}),A&&A(ct,at),ft=ct.prototype=x(vt)),ft.constructor!==ct&&c(ft,"constructor",ct),X(ft).TypedArrayConstructor=ct,Ct&&c(ft,Ct,ut);var tt=ct!==pt;zt[ut]=ct,r({global:!0,constructor:!0,forced:tt,sham:!Dt},zt),Rt in ct||c(ct,Rt,q),Rt in ft||c(ft,Rt,q),$(ut)}):s.exports=function(){}},46868:function(s,l,t){var r=t(66009),n=t(72069),e=t(97494),a=t(88037).NATIVE_ARRAY_BUFFER_VIEWS,o=r.ArrayBuffer,u=r.Int8Array;s.exports=!a||!n(function(){u(1)})||!n(function(){new u(-1)})||!e(function(i){new u,new u(null),new u(1.5),new u(i)},!0)||n(function(){return new u(new o(2),1,void 0).length!==1})},3795:function(s,l,t){var r=t(5220),n=t(21822);s.exports=function(e,a){return r(n(e),a)}},66169:function(s,l,t){var r=t(45526),n=t(96499),e=t(80042),a=t(49671),o=t(82628),u=t(90619),i=t(81077),v=t(48199),f=t(77129),c=t(88037).aTypedArrayConstructor,d=t(11344);s.exports=function(g){var p=e(this),y=a(g),m=arguments.length,O=m>1?arguments[1]:void 0,S=O!==void 0,E=i(y),T,x,I,A,C,P,N,$;if(E&&!v(E))for(N=u(y,E),$=N.next,y=[];!(P=n($,N)).done;)y.push(P.value);for(S&&m>2&&(O=r(O,arguments[2])),x=o(y),I=new(c(p))(x),A=f(I),T=0;x>T;T++)C=S?O(y[T],T):y[T],I[T]=A?d(C):+C;return I}},21822:function(s,l,t){var r=t(88037),n=t(16887),e=r.aTypedArrayConstructor,a=r.getTypedArrayConstructor;s.exports=function(o){return e(n(o,a(o)))}},36374:function(s,l,t){var r=t(11286),n=0,e=Math.random(),a=r(1 .toString);s.exports=function(o){return"Symbol("+(o===void 0?"":o)+")_"+a(++n+e,36)}},91918:function(s,l,t){var r=t(72069),n=t(18565),e=t(92986),a=t(70457),o=n("iterator");s.exports=!r(function(){var u=new URL("b?a=1&b=2&c=3","http://a"),i=u.searchParams,v=new URLSearchParams("a=1&a=2&b=3"),f="";return u.pathname="c%20d",i.forEach(function(c,d){i.delete("b"),f+=d+c}),v.delete("a",2),v.delete("b",void 0),a&&(!u.toJSON||!v.has("a",1)||v.has("a",2)||!v.has("a",void 0)||v.has("b"))||!i.size&&(a||!e)||!i.sort||u.href!=="http://a/c%20d?a=1&c=3"||i.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!i[o]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("http://a#\u0431").hash!=="#%D0%B1"||f!=="a1c3"||new URL("http://x",void 0).host!=="x"})},50234:function(s,l,t){var r=t(39729);s.exports=r&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},356:function(s,l,t){var r=t(92986),n=t(72069);s.exports=r&&n(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})},95486:function(s){var l=TypeError;s.exports=function(t,r){if(t<r)throw new l("Not enough arguments");return t}},42960:function(s,l,t){var r=t(66009),n=t(23583),e=r.WeakMap;s.exports=n(e)&&/native code/.test(String(e))},83749:function(s,l,t){var r=t(75081),n=t(94879),e=t(56529),a=t(7831).f;s.exports=function(o){var u=r.Symbol||(r.Symbol={});n(u,o)||a(u,o,{value:e.f(o)})}},56529:function(s,l,t){var r=t(18565);l.f=r},18565:function(s,l,t){var r=t(66009),n=t(96731),e=t(94879),a=t(36374),o=t(39729),u=t(50234),i=r.Symbol,v=n("wks"),f=u?i.for||i:i&&i.withoutSetter||a;s.exports=function(c){return e(v,c)||(v[c]=o&&e(i,c)?i[c]:f("Symbol."+c)),v[c]}},77082:function(s){s.exports=` +\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},70003:function(s,l,t){var r=t(38941),n=t(94879),e=t(90809),a=t(95307),o=t(15861),u=t(93706),i=t(2594),v=t(32345),f=t(15453),c=t(31486),d=t(97077),h=t(92986),g=t(70457);s.exports=function(p,y,m,O){var S="stackTraceLimit",E=O?2:1,T=p.split("."),x=T[T.length-1],I=r.apply(null,T);if(I){var A=I.prototype;if(!g&&n(A,"cause")&&delete A.cause,!m)return I;var C=r("Error"),P=y(function(N,$){var U=f(O?$:N,void 0),F=O?new I(N):new I;return U!==void 0&&e(F,"message",U),d(F,P,F.stack,2),this&&a(A,this)&&v(F,this,P),arguments.length>E&&c(F,arguments[E]),F});if(P.prototype=A,x!=="Error"?o?o(P,C):u(P,C,{name:!0}):h&&S in I&&(i(P,I,S),i(P,I,"prepareStackTrace")),u(P,I),!g)try{A.name!==x&&e(A,"name",x),A.constructor=P}catch(N){}return P}}},27796:function(s,l,t){var r=t(14304),n=t(38941),e=t(66543),a=t(72069),o=t(70003),u="AggregateError",i=n(u),v=!a(function(){return i([1]).errors[0]!==1})&&a(function(){return i([1],u,{cause:7}).cause!==7});r({global:!0,constructor:!0,arity:2,forced:v},{AggregateError:o(u,function(f){return function(d,h){return e(f,this,arguments)}},v,!0)})},85647:function(s,l,t){var r=t(14304),n=t(95307),e=t(26313),a=t(15861),o=t(93706),u=t(5406),i=t(90809),v=t(18526),f=t(31486),c=t(97077),d=t(55902),h=t(15453),g=t(18565),p=g("toStringTag"),y=Error,m=[].push,O=function(T,x){var I=n(S,this),A;a?A=a(new y,I?e(this):S):(A=I?this:u(S),i(A,p,"Error")),x!==void 0&&i(A,"message",h(x)),c(A,O,A.stack,1),arguments.length>2&&f(A,arguments[2]);var C=[];return d(T,m,{that:C}),i(A,"errors",C),A};a?a(O,y):o(O,y,{name:!0});var S=O.prototype=u(y.prototype,{constructor:v(1,O),message:v(1,""),name:v(1,"AggregateError")});r({global:!0,constructor:!0,arity:2},{AggregateError:O})},42861:function(s,l,t){t(85647)},35473:function(s,l,t){var r=t(14304),n=t(66009),e=t(17468),a=t(36167),o="ArrayBuffer",u=e[o],i=n[o];r({global:!0,constructor:!0,forced:i!==u},{ArrayBuffer:u}),a(o)},35495:function(s,l,t){var r=t(92986),n=t(85500),e=t(30736),a=ArrayBuffer.prototype;r&&!("detached"in a)&&n(a,"detached",{configurable:!0,get:function(){return e(this)}})},4983:function(s,l,t){var r=t(14304),n=t(88037),e=n.NATIVE_ARRAY_BUFFER_VIEWS;r({target:"ArrayBuffer",stat:!0,forced:!e},{isView:n.isView})},6875:function(s,l,t){var r=t(14304),n=t(77422),e=t(72069),a=t(17468),o=t(25001),u=t(4652),i=t(45344),v=t(16887),f=a.ArrayBuffer,c=a.DataView,d=c.prototype,h=n(f.prototype.slice),g=n(d.getUint8),p=n(d.setUint8),y=e(function(){return!new f(2).slice(1,void 0).byteLength});r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:y},{slice:function(O,S){if(h&&S===void 0)return h(o(this),O);for(var E=o(this).byteLength,T=u(O,E),x=u(S===void 0?E:S,E),I=new(v(this,f))(i(x-T)),A=new c(this),C=new c(I),P=0;T<x;)p(C,P++,g(A,T++));return I}})},58594:function(s,l,t){var r=t(14304),n=t(65006);n&&r({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return n(this,arguments.length?arguments[0]:void 0,!1)}})},32790:function(s,l,t){var r=t(14304),n=t(65006);n&&r({target:"ArrayBuffer",proto:!0},{transfer:function(){return n(this,arguments.length?arguments[0]:void 0,!0)}})},1341:function(s,l,t){var r=t(14304),n=t(49671),e=t(82628),a=t(12105),o=t(23811);r({target:"Array",proto:!0},{at:function(i){var v=n(this),f=e(v),c=a(i),d=c>=0?c:f+c;return d<0||d>=f?void 0:v[d]}}),o("at")},98700:function(s,l,t){var r=t(14304),n=t(72069),e=t(3438),a=t(37540),o=t(49671),u=t(82628),i=t(20095),v=t(84082),f=t(62083),c=t(52183),d=t(18565),h=t(73126),g=d("isConcatSpreadable"),p=h>=51||!n(function(){var O=[];return O[g]=!1,O.concat()[0]!==O}),y=function(O){if(!a(O))return!1;var S=O[g];return S!==void 0?!!S:e(O)},m=!p||!c("concat");r({target:"Array",proto:!0,arity:1,forced:m},{concat:function(S){var E=o(this),T=f(E,0),x=0,I,A,C,P,N;for(I=-1,C=arguments.length;I<C;I++)if(N=I===-1?E:arguments[I],y(N))for(P=u(N),i(x+P),A=0;A<P;A++,x++)A in N&&v(T,x,N[A]);else i(x+1),v(T,x++,N);return T.length=x,T}})},65481:function(s,l,t){var r=t(14304),n=t(81499),e=t(23811);r({target:"Array",proto:!0},{copyWithin:n}),e("copyWithin")},46509:function(s,l,t){var r=t(14304),n=t(66655).every,e=t(6148),a=e("every");r({target:"Array",proto:!0,forced:!a},{every:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},41585:function(s,l,t){var r=t(14304),n=t(43011),e=t(23811);r({target:"Array",proto:!0},{fill:n}),e("fill")},84554:function(s,l,t){var r=t(14304),n=t(66655).filter,e=t(52183),a=e("filter");r({target:"Array",proto:!0,forced:!a},{filter:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},33818:function(s,l,t){var r=t(14304),n=t(66655).findIndex,e=t(23811),a="findIndex",o=!0;a in[]&&Array(1)[a](function(){o=!1}),r({target:"Array",proto:!0,forced:o},{findIndex:function(i){return n(this,i,arguments.length>1?arguments[1]:void 0)}}),e(a)},2209:function(s,l,t){var r=t(14304),n=t(73849).findLastIndex,e=t(23811);r({target:"Array",proto:!0},{findLastIndex:function(o){return n(this,o,arguments.length>1?arguments[1]:void 0)}}),e("findLastIndex")},64096:function(s,l,t){var r=t(14304),n=t(73849).findLast,e=t(23811);r({target:"Array",proto:!0},{findLast:function(o){return n(this,o,arguments.length>1?arguments[1]:void 0)}}),e("findLast")},36619:function(s,l,t){var r=t(14304),n=t(66655).find,e=t(23811),a="find",o=!0;a in[]&&Array(1)[a](function(){o=!1}),r({target:"Array",proto:!0,forced:o},{find:function(i){return n(this,i,arguments.length>1?arguments[1]:void 0)}}),e(a)},74092:function(s,l,t){var r=t(14304),n=t(53149),e=t(85156),a=t(49671),o=t(82628),u=t(62083);r({target:"Array",proto:!0},{flatMap:function(v){var f=a(this),c=o(f),d;return e(v),d=u(f,0),d.length=n(d,f,f,c,0,1,v,arguments.length>1?arguments[1]:void 0),d}})},91591:function(s,l,t){var r=t(14304),n=t(53149),e=t(49671),a=t(82628),o=t(12105),u=t(62083);r({target:"Array",proto:!0},{flat:function(){var v=arguments.length?arguments[0]:void 0,f=e(this),c=a(f),d=u(f,0);return d.length=n(d,f,f,c,0,v===void 0?1:o(v)),d}})},54703:function(s,l,t){var r=t(14304),n=t(13349);r({target:"Array",proto:!0,forced:[].forEach!==n},{forEach:n})},82936:function(s,l,t){var r=t(14304),n=t(48258),e=t(97494),a=!e(function(o){Array.from(o)});r({target:"Array",stat:!0,forced:a},{from:n})},48493:function(s,l,t){var r=t(14304),n=t(94319).includes,e=t(72069),a=t(23811),o=e(function(){return!Array(1).includes()});r({target:"Array",proto:!0,forced:o},{includes:function(i){return n(this,i,arguments.length>1?arguments[1]:void 0)}}),a("includes")},64730:function(s,l,t){var r=t(14304),n=t(77422),e=t(94319).indexOf,a=t(6148),o=n([].indexOf),u=!!o&&1/o([1],1,-0)<0,i=u||!a("indexOf");r({target:"Array",proto:!0,forced:i},{indexOf:function(f){var c=arguments.length>1?arguments[1]:void 0;return u?o(this,f,c)||0:e(this,f,c)}})},95024:function(s,l,t){var r=t(14304),n=t(3438);r({target:"Array",stat:!0},{isArray:n})},35054:function(s,l,t){var r=t(36859),n=t(23811),e=t(29107),a=t(82367),o=t(7831).f,u=t(10218),i=t(10659),v=t(70457),f=t(92986),c="Array Iterator",d=a.set,h=a.getterFor(c);s.exports=u(Array,"Array",function(p,y){d(this,{type:c,target:r(p),index:0,kind:y})},function(){var p=h(this),y=p.target,m=p.index++;if(!y||m>=y.length)return p.target=void 0,i(void 0,!0);switch(p.kind){case"keys":return i(m,!1);case"values":return i(y[m],!1)}return i([m,y[m]],!1)},"values");var g=e.Arguments=e.Array;if(n("keys"),n("values"),n("entries"),!v&&f&&g.name!=="values")try{o(g,"name",{value:"values"})}catch(p){}},25460:function(s,l,t){var r=t(14304),n=t(11286),e=t(72181),a=t(36859),o=t(6148),u=n([].join),i=e!==Object,v=i||!o("join",",");r({target:"Array",proto:!0,forced:v},{join:function(c){return u(a(this),c===void 0?",":c)}})},60703:function(s,l,t){var r=t(14304),n=t(58465);r({target:"Array",proto:!0,forced:n!==[].lastIndexOf},{lastIndexOf:n})},90468:function(s,l,t){var r=t(14304),n=t(66655).map,e=t(52183),a=e("map");r({target:"Array",proto:!0,forced:!a},{map:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},69581:function(s,l,t){var r=t(14304),n=t(72069),e=t(11051),a=t(84082),o=Array,u=n(function(){function i(){}return!(o.of.call(i)instanceof i)});r({target:"Array",stat:!0,forced:u},{of:function(){for(var v=0,f=arguments.length,c=new(e(this)?this:o)(f);f>v;)a(c,v,arguments[v++]);return c.length=f,c}})},720:function(s,l,t){var r=t(14304),n=t(49671),e=t(82628),a=t(2213),o=t(20095),u=t(72069),i=u(function(){return[].push.call({length:4294967296},1)!==4294967297}),v=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(c){return c instanceof TypeError}},f=i||!v();r({target:"Array",proto:!0,arity:1,forced:f},{push:function(d){var h=n(this),g=e(h),p=arguments.length;o(g+p);for(var y=0;y<p;y++)h[g]=arguments[y],g++;return a(h,g),g}})},17289:function(s,l,t){var r=t(14304),n=t(97264).right,e=t(6148),a=t(73126),o=t(42954),u=!o&&a>79&&a<83,i=u||!e("reduceRight");r({target:"Array",proto:!0,forced:i},{reduceRight:function(f){return n(this,f,arguments.length,arguments.length>1?arguments[1]:void 0)}})},11042:function(s,l,t){var r=t(14304),n=t(97264).left,e=t(6148),a=t(73126),o=t(42954),u=!o&&a>79&&a<83,i=u||!e("reduce");r({target:"Array",proto:!0,forced:i},{reduce:function(f){var c=arguments.length;return n(this,f,c,c>1?arguments[1]:void 0)}})},24608:function(s,l,t){var r=t(14304),n=t(11286),e=t(3438),a=n([].reverse),o=[1,2];r({target:"Array",proto:!0,forced:String(o)===String(o.reverse())},{reverse:function(){return e(this)&&(this.length=this.length),a(this)}})},51644:function(s,l,t){var r=t(14304),n=t(3438),e=t(11051),a=t(37540),o=t(4652),u=t(82628),i=t(36859),v=t(84082),f=t(18565),c=t(52183),d=t(22806),h=c("slice"),g=f("species"),p=Array,y=Math.max;r({target:"Array",proto:!0,forced:!h},{slice:function(O,S){var E=i(this),T=u(E),x=o(O,T),I=o(S===void 0?T:S,T),A,C,P;if(n(E)&&(A=E.constructor,e(A)&&(A===p||n(A.prototype))?A=void 0:a(A)&&(A=A[g],A===null&&(A=void 0)),A===p||A===void 0))return d(E,x,I);for(C=new(A===void 0?p:A)(y(I-x,0)),P=0;x<I;x++,P++)x in E&&v(C,P,E[x]);return C.length=P,C}})},88088:function(s,l,t){var r=t(14304),n=t(66655).some,e=t(6148),a=e("some");r({target:"Array",proto:!0,forced:!a},{some:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},46828:function(s,l,t){var r=t(14304),n=t(11286),e=t(85156),a=t(49671),o=t(82628),u=t(12384),i=t(17361),v=t(72069),f=t(13270),c=t(6148),d=t(54040),h=t(87216),g=t(73126),p=t(68674),y=[],m=n(y.sort),O=n(y.push),S=v(function(){y.sort(void 0)}),E=v(function(){y.sort(null)}),T=c("sort"),x=!v(function(){if(g)return g<70;if(!(d&&d>3)){if(h)return!0;if(p)return p<603;var C="",P,N,$,U;for(P=65;P<76;P++){switch(N=String.fromCharCode(P),P){case 66:case 69:case 70:case 72:$=3;break;case 68:case 71:$=4;break;default:$=2}for(U=0;U<47;U++)y.push({k:N+U,v:$})}for(y.sort(function(F,D){return D.v-F.v}),U=0;U<y.length;U++)N=y[U].k.charAt(0),C.charAt(C.length-1)!==N&&(C+=N);return C!=="DGBEFHACIJK"}}),I=S||!E||!T||!x,A=function(C){return function(P,N){return N===void 0?-1:P===void 0?1:C!==void 0?+C(P,N)||0:i(P)>i(N)?1:-1}};r({target:"Array",proto:!0,forced:I},{sort:function(P){P!==void 0&&e(P);var N=a(this);if(x)return P===void 0?m(N):m(N,P);var $=[],U=o(N),F,D;for(D=0;D<U;D++)D in N&&O($,N[D]);for(f($,A(P)),F=o($),D=0;D<F;)N[D]=$[D++];for(;D<U;)u(N,D++);return N}})},90088:function(s,l,t){var r=t(36167);r("Array")},35148:function(s,l,t){var r=t(14304),n=t(49671),e=t(4652),a=t(12105),o=t(82628),u=t(2213),i=t(20095),v=t(62083),f=t(84082),c=t(12384),d=t(52183),h=d("splice"),g=Math.max,p=Math.min;r({target:"Array",proto:!0,forced:!h},{splice:function(m,O){var S=n(this),E=o(S),T=e(m,E),x=arguments.length,I,A,C,P,N,$;for(x===0?I=A=0:x===1?(I=0,A=E-T):(I=x-2,A=p(g(a(O),0),E-T)),i(E+I-A),C=v(S,A),P=0;P<A;P++)N=T+P,N in S&&f(C,P,S[N]);if(C.length=A,I<A){for(P=T;P<E-A;P++)N=P+A,$=P+I,N in S?S[$]=S[N]:c(S,$);for(P=E;P>E-A+I;P--)c(S,P-1)}else if(I>A)for(P=E-A;P>T;P--)N=P+A-1,$=P+I-1,N in S?S[$]=S[N]:c(S,$);for(P=0;P<I;P++)S[P+T]=arguments[P+2];return u(S,E-A+I),C}})},86184:function(s,l,t){var r=t(14304),n=t(61638),e=t(36859),a=t(23811),o=Array;r({target:"Array",proto:!0},{toReversed:function(){return n(e(this),o)}}),a("toReversed")},53983:function(s,l,t){var r=t(14304),n=t(11286),e=t(85156),a=t(36859),o=t(5220),u=t(65470),i=t(23811),v=Array,f=n(u("Array","sort"));r({target:"Array",proto:!0},{toSorted:function(d){d!==void 0&&e(d);var h=a(this),g=o(v,h);return f(g,d)}}),i("toSorted")},42560:function(s,l,t){var r=t(14304),n=t(23811),e=t(20095),a=t(82628),o=t(4652),u=t(36859),i=t(12105),v=Array,f=Math.max,c=Math.min;r({target:"Array",proto:!0},{toSpliced:function(h,g){var p=u(this),y=a(p),m=o(h,y),O=arguments.length,S=0,E,T,x,I;for(O===0?E=T=0:O===1?(E=0,T=y-m):(E=O-2,T=c(f(i(g),0),y-m)),x=e(y+E-T),I=v(x);S<m;S++)I[S]=p[S];for(;S<m+E;S++)I[S]=arguments[S-m+2];for(;S<x;S++)I[S]=p[S+T-E];return I}}),n("toSpliced")},27839:function(s,l,t){var r=t(23811);r("flatMap")},88444:function(s,l,t){var r=t(23811);r("flat")},73051:function(s,l,t){var r=t(14304),n=t(49671),e=t(82628),a=t(2213),o=t(12384),u=t(20095),i=[].unshift(0)!==1,v=function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(c){return c instanceof TypeError}},f=i||!v();r({target:"Array",proto:!0,arity:1,forced:f},{unshift:function(d){var h=n(this),g=e(h),p=arguments.length;if(p){u(g+p);for(var y=g;y--;){var m=y+p;y in h?h[m]=h[y]:o(h,m)}for(var O=0;O<p;O++)h[O]=arguments[O]}return a(h,g+p)}})},9372:function(s,l,t){var r=t(14304),n=t(72302),e=t(36859),a=Array;r({target:"Array",proto:!0},{with:function(o,u){return n(e(this),a,o,u)}})},77885:function(s,l,t){var r=t(14304),n=t(17468),e=t(3237);r({global:!0,constructor:!0,forced:!e},{DataView:n.DataView})},68575:function(s,l,t){t(77885)},30801:function(s,l,t){var r=t(14304),n=t(11286),e=t(72069),a=e(function(){return new Date(16e11).getYear()!==120}),o=n(Date.prototype.getFullYear);r({target:"Date",proto:!0,forced:a},{getYear:function(){return o(this)-1900}})},90911:function(s,l,t){var r=t(14304),n=t(11286),e=Date,a=n(e.prototype.getTime);r({target:"Date",stat:!0},{now:function(){return a(new e)}})},90429:function(s,l,t){var r=t(14304),n=t(11286),e=t(12105),a=Date.prototype,o=n(a.getTime),u=n(a.setFullYear);r({target:"Date",proto:!0},{setYear:function(v){o(this);var f=e(v),c=f>=0&&f<=99?f+1900:f;return u(this,c)}})},33685:function(s,l,t){var r=t(14304);r({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},60086:function(s,l,t){var r=t(14304),n=t(11890);r({target:"Date",proto:!0,forced:Date.prototype.toISOString!==n},{toISOString:n})},96049:function(s,l,t){var r=t(14304),n=t(72069),e=t(49671),a=t(89935),o=n(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1});r({target:"Date",proto:!0,arity:1,forced:o},{toJSON:function(i){var v=e(this),f=a(v,"number");return typeof f=="number"&&!isFinite(f)?null:v.toISOString()}})},14038:function(s,l,t){var r=t(94879),n=t(16142),e=t(84306),a=t(18565),o=a("toPrimitive"),u=Date.prototype;r(u,o)||n(u,o,e)},55518:function(s,l,t){var r=t(11286),n=t(16142),e=Date.prototype,a="Invalid Date",o="toString",u=r(e[o]),i=r(e.getTime);String(new Date(NaN))!==a&&n(e,o,function(){var f=i(this);return f===f?u(this):a})},81742:function(s,l,t){var r=t(14304),n=t(66009),e=t(66543),a=t(70003),o="WebAssembly",u=n[o],i=new Error("e",{cause:7}).cause!==7,v=function(c,d){var h={};h[c]=a(c,d,i),r({global:!0,constructor:!0,arity:1,forced:i},h)},f=function(c,d){if(u&&u[c]){var h={};h[c]=a(o+"."+c,d,i),r({target:o,stat:!0,constructor:!0,arity:1,forced:i},h)}};v("Error",function(c){return function(h){return e(c,this,arguments)}}),v("EvalError",function(c){return function(h){return e(c,this,arguments)}}),v("RangeError",function(c){return function(h){return e(c,this,arguments)}}),v("ReferenceError",function(c){return function(h){return e(c,this,arguments)}}),v("SyntaxError",function(c){return function(h){return e(c,this,arguments)}}),v("TypeError",function(c){return function(h){return e(c,this,arguments)}}),v("URIError",function(c){return function(h){return e(c,this,arguments)}}),f("CompileError",function(c){return function(h){return e(c,this,arguments)}}),f("LinkError",function(c){return function(h){return e(c,this,arguments)}}),f("RuntimeError",function(c){return function(h){return e(c,this,arguments)}})},8720:function(s,l,t){var r=t(16142),n=t(58434),e=Error.prototype;e.toString!==n&&r(e,"toString",n)},8894:function(s,l,t){var r=t(14304),n=t(11286),e=t(17361),a=n("".charAt),o=n("".charCodeAt),u=n(/./.exec),i=n(1 .toString),v=n("".toUpperCase),f=/[\w*+\-./@]/,c=function(d,h){for(var g=i(d,16);g.length<h;)g="0"+g;return g};r({global:!0},{escape:function(h){for(var g=e(h),p="",y=g.length,m=0,O,S;m<y;)O=a(g,m++),u(f,O)?p+=O:(S=o(O,0),S<256?p+="%"+c(S,2):p+="%u"+v(c(S,4)));return p}})},60628:function(s,l,t){var r=t(14304),n=t(91384);r({target:"Function",proto:!0,forced:Function.bind!==n},{bind:n})},56347:function(s,l,t){var r=t(23583),n=t(37540),e=t(7831),a=t(95307),o=t(18565),u=t(13749),i=o("hasInstance"),v=Function.prototype;i in v||e.f(v,i,{value:u(function(f){if(!r(this)||!n(f))return!1;var c=this.prototype;return n(c)?a(c,f):f instanceof this},i)})},16864:function(s,l,t){var r=t(92986),n=t(86588).EXISTS,e=t(11286),a=t(85500),o=Function.prototype,u=e(o.toString),i=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,v=e(i.exec),f="name";r&&!n&&a(o,f,{configurable:!0,get:function(){try{return v(i,u(this))[1]}catch(c){return""}}})},93819:function(s,l,t){var r=t(14304),n=t(66009);r({global:!0,forced:n.globalThis!==n},{globalThis:n})},71332:function(s,l,t){var r=t(14304),n=t(38941),e=t(66543),a=t(96499),o=t(11286),u=t(72069),i=t(23583),v=t(491),f=t(22806),c=t(10443),d=t(39729),h=String,g=n("JSON","stringify"),p=o(/./.exec),y=o("".charAt),m=o("".charCodeAt),O=o("".replace),S=o(1 .toString),E=/[\uD800-\uDFFF]/g,T=/^[\uD800-\uDBFF]$/,x=/^[\uDC00-\uDFFF]$/,I=!d||u(function(){var N=n("Symbol")("stringify detection");return g([N])!=="[null]"||g({a:N})!=="{}"||g(Object(N))!=="{}"}),A=u(function(){return g("\uDF06\uD834")!=='"\\udf06\\ud834"'||g("\uDEAD")!=='"\\udead"'}),C=function(N,$){var U=f(arguments),F=c($);if(!(!i(F)&&(N===void 0||v(N))))return U[1]=function(D,L){if(i(F)&&(L=a(F,this,h(D),L)),!v(L))return L},e(g,null,U)},P=function(N,$,U){var F=y(U,$-1),D=y(U,$+1);return p(T,N)&&!p(x,D)||p(x,N)&&!p(T,F)?"\\u"+S(m(N,0),16):N};g&&r({target:"JSON",stat:!0,arity:3,forced:I||A},{stringify:function($,U,F){var D=f(arguments),L=e(I?C:g,null,D);return A&&typeof L=="string"?O(L,E,P):L}})},47269:function(s,l,t){var r=t(66009),n=t(78401);n(r.JSON,"JSON",!0)},87777:function(s,l,t){var r=t(89378),n=t(34440);r("Map",function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},n)},22090:function(s,l,t){var r=t(14304),n=t(11286),e=t(85156),a=t(2068),o=t(55902),u=t(1774),i=t(70457),v=t(72069),f=u.Map,c=u.has,d=u.get,h=u.set,g=n([].push),p=i||v(function(){return f.groupBy("ab",function(y){return y}).get("a").length!==1});r({target:"Map",stat:!0,forced:i||p},{groupBy:function(m,O){a(m),e(O);var S=new f,E=0;return o(m,function(T){var x=O(T,E++);c(S,x)?g(d(S,x),T):h(S,x,[T])}),S}})},25627:function(s,l,t){t(87777)},9839:function(s,l,t){var r=t(14304),n=t(49366),e=Math.acosh,a=Math.log,o=Math.sqrt,u=Math.LN2,i=!e||Math.floor(e(Number.MAX_VALUE))!==710||e(1/0)!==1/0;r({target:"Math",stat:!0,forced:i},{acosh:function(f){var c=+f;return c<1?NaN:c>9490626562425156e-8?a(c)+u:n(c-1+o(c-1)*o(c+1))}})},15656:function(s,l,t){var r=t(14304),n=Math.asinh,e=Math.log,a=Math.sqrt;function o(i){var v=+i;return!isFinite(v)||v===0?v:v<0?-o(-v):e(v+a(v*v+1))}var u=!(n&&1/n(0)>0);r({target:"Math",stat:!0,forced:u},{asinh:o})},22091:function(s,l,t){var r=t(14304),n=Math.atanh,e=Math.log,a=!(n&&1/n(-0)<0);r({target:"Math",stat:!0,forced:a},{atanh:function(u){var i=+u;return i===0?i:e((1+i)/(1-i))/2}})},2886:function(s,l,t){var r=t(14304),n=t(93976),e=Math.abs,a=Math.pow;r({target:"Math",stat:!0},{cbrt:function(u){var i=+u;return n(i)*a(e(i),.3333333333333333)}})},25895:function(s,l,t){var r=t(14304),n=Math.floor,e=Math.log,a=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(u){var i=u>>>0;return i?31-n(e(i+.5)*a):32}})},24228:function(s,l,t){var r=t(14304),n=t(98940),e=Math.cosh,a=Math.abs,o=Math.E,u=!e||e(710)===1/0;r({target:"Math",stat:!0,forced:u},{cosh:function(v){var f=n(a(v)-1)+1;return(f+1/(f*o*o))*(o/2)}})},79488:function(s,l,t){var r=t(14304),n=t(98940);r({target:"Math",stat:!0,forced:n!==Math.expm1},{expm1:n})},75987:function(s,l,t){var r=t(14304),n=t(93279);r({target:"Math",stat:!0},{fround:n})},81555:function(s,l,t){var r=t(14304),n=Math.hypot,e=Math.abs,a=Math.sqrt,o=!!n&&n(1/0,NaN)!==1/0;r({target:"Math",stat:!0,arity:2,forced:o},{hypot:function(i,v){for(var f=0,c=0,d=arguments.length,h=0,g,p;c<d;)g=e(arguments[c++]),h<g?(p=h/g,f=f*p*p+1,h=g):g>0?(p=g/h,f+=p*p):f+=g;return h===1/0?1/0:h*a(f)}})},87854:function(s,l,t){var r=t(14304),n=t(72069),e=Math.imul,a=n(function(){return e(4294967295,5)!==-5||e.length!==2});r({target:"Math",stat:!0,forced:a},{imul:function(u,i){var v=65535,f=+u,c=+i,d=v&f,h=v&c;return 0|d*h+((v&f>>>16)*h+d*(v&c>>>16)<<16>>>0)}})},35074:function(s,l,t){var r=t(14304),n=t(41942);r({target:"Math",stat:!0},{log10:n})},50946:function(s,l,t){var r=t(14304),n=t(49366);r({target:"Math",stat:!0},{log1p:n})},29417:function(s,l,t){var r=t(14304),n=Math.log,e=Math.LN2;r({target:"Math",stat:!0},{log2:function(o){return n(o)/e}})},80628:function(s,l,t){var r=t(14304),n=t(93976);r({target:"Math",stat:!0},{sign:n})},74375:function(s,l,t){var r=t(14304),n=t(72069),e=t(98940),a=Math.abs,o=Math.exp,u=Math.E,i=n(function(){return Math.sinh(-2e-17)!==-2e-17});r({target:"Math",stat:!0,forced:i},{sinh:function(f){var c=+f;return a(c)<1?(e(c)-e(-c))/2:(o(c-1)-o(-c-1))*(u/2)}})},29708:function(s,l,t){var r=t(14304),n=t(98940),e=Math.exp;r({target:"Math",stat:!0},{tanh:function(o){var u=+o,i=n(u),v=n(-u);return i===1/0?1:v===1/0?-1:(i-v)/(e(u)+e(-u))}})},93449:function(s,l,t){var r=t(78401);r(Math,"Math",!0)},9111:function(s,l,t){var r=t(14304),n=t(22459);r({target:"Math",stat:!0},{trunc:n})},83514:function(s,l,t){var r=t(14304),n=t(70457),e=t(92986),a=t(66009),o=t(75081),u=t(11286),i=t(13278),v=t(94879),f=t(32345),c=t(95307),d=t(491),h=t(89935),g=t(72069),p=t(83258).f,y=t(71349).f,m=t(7831).f,O=t(34338),S=t(85900).trim,E="Number",T=a[E],x=o[E],I=T.prototype,A=a.TypeError,C=u("".slice),P=u("".charCodeAt),N=function(b){var K=h(b,"number");return typeof K=="bigint"?K:$(K)},$=function(b){var K=h(b,"number"),H,Q,X,st,et,lt,ht,gt;if(d(K))throw new A("Cannot convert a Symbol value to a number");if(typeof K=="string"&&K.length>2){if(K=S(K),H=P(K,0),H===43||H===45){if(Q=P(K,2),Q===88||Q===120)return NaN}else if(H===48){switch(P(K,1)){case 66:case 98:X=2,st=49;break;case 79:case 111:X=8,st=55;break;default:return+K}for(et=C(K,2),lt=et.length,ht=0;ht<lt;ht++)if(gt=P(et,ht),gt<48||gt>st)return NaN;return parseInt(et,X)}}return+K},U=i(E,!T(" 0o1")||!T("0b1")||T("+0x1")),F=function(b){return c(I,b)&&g(function(){O(b)})},D=function(K){var H=arguments.length<1?0:T(N(K));return F(this)?f(Object(H),this,D):H};D.prototype=I,U&&!n&&(I.constructor=D),r({global:!0,constructor:!0,wrap:!0,forced:U},{Number:D});var L=function(b,K){for(var H=e?p(K):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),Q=0,X;H.length>Q;Q++)v(K,X=H[Q])&&!v(b,X)&&m(b,X,y(K,X))};n&&x&&L(o[E],x),(U||n)&&L(o[E],T)},15096:function(s,l,t){var r=t(14304);r({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},59590:function(s,l,t){var r=t(14304),n=t(98074);r({target:"Number",stat:!0},{isFinite:n})},99663:function(s,l,t){var r=t(14304),n=t(613);r({target:"Number",stat:!0},{isInteger:n})},89988:function(s,l,t){var r=t(14304);r({target:"Number",stat:!0},{isNaN:function(e){return e!==e}})},54427:function(s,l,t){var r=t(14304),n=t(613),e=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(o){return n(o)&&e(o)<=9007199254740991}})},67895:function(s,l,t){var r=t(14304);r({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},57909:function(s,l,t){var r=t(14304);r({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},83938:function(s,l,t){var r=t(14304),n=t(25838);r({target:"Number",stat:!0,forced:Number.parseFloat!==n},{parseFloat:n})},55461:function(s,l,t){var r=t(14304),n=t(23009);r({target:"Number",stat:!0,forced:Number.parseInt!==n},{parseInt:n})},97339:function(s,l,t){var r=t(14304),n=t(11286),e=t(12105),a=t(34338),o=t(79719),u=t(41942),i=t(72069),v=RangeError,f=String,c=isFinite,d=Math.abs,h=Math.floor,g=Math.pow,p=Math.round,y=n(1 .toExponential),m=n(o),O=n("".slice),S=y(-69e-12,4)==="-6.9000e-11"&&y(1.255,2)==="1.25e+0"&&y(12345,3)==="1.235e+4"&&y(25,0)==="3e+1",E=function(){return i(function(){y(1,1/0)})&&i(function(){y(1,-1/0)})},T=function(){return!i(function(){y(1/0,1/0),y(NaN,1/0)})},x=!S||!E()||!T();r({target:"Number",proto:!0,forced:x},{toExponential:function(A){var C=a(this);if(A===void 0)return y(C);var P=e(A);if(!c(C))return String(C);if(P<0||P>20)throw new v("Incorrect fraction digits");if(S)return y(C,P);var N="",$="",U=0,F="",D="";if(C<0&&(N="-",C=-C),C===0)U=0,$=m("0",P+1);else{var L=u(C);U=h(L);var b=0,K=g(10,U-P);b=p(C/K),2*C>=(2*b+1)*K&&(b+=1),b>=g(10,P+1)&&(b/=10,U+=1),$=f(b)}return P!==0&&($=O($,0,1)+"."+O($,1)),U===0?(F="+",D="0"):(F=U>0?"+":"-",D=f(d(U))),$+="e"+F+D,N+$}})},3670:function(s,l,t){var r=t(14304),n=t(11286),e=t(12105),a=t(34338),o=t(79719),u=t(72069),i=RangeError,v=String,f=Math.floor,c=n(o),d=n("".slice),h=n(1 .toFixed),g=function(E,T,x){return T===0?x:T%2===1?g(E,T-1,x*E):g(E*E,T/2,x)},p=function(E){for(var T=0,x=E;x>=4096;)T+=12,x/=4096;for(;x>=2;)T+=1,x/=2;return T},y=function(E,T,x){for(var I=-1,A=x;++I<6;)A+=T*E[I],E[I]=A%1e7,A=f(A/1e7)},m=function(E,T){for(var x=6,I=0;--x>=0;)I+=E[x],E[x]=f(I/T),I=I%T*1e7},O=function(E){for(var T=6,x="";--T>=0;)if(x!==""||T===0||E[T]!==0){var I=v(E[T]);x=x===""?I:x+c("0",7-I.length)+I}return x},S=u(function(){return h(8e-5,3)!=="0.000"||h(.9,0)!=="1"||h(1.255,2)!=="1.25"||h(0xde0b6b3a7640080,0)!=="1000000000000000128"})||!u(function(){h({})});r({target:"Number",proto:!0,forced:S},{toFixed:function(T){var x=a(this),I=e(T),A=[0,0,0,0,0,0],C="",P="0",N,$,U,F;if(I<0||I>20)throw new i("Incorrect fraction digits");if(x!==x)return"NaN";if(x<=-1e21||x>=1e21)return v(x);if(x<0&&(C="-",x=-x),x>1e-21)if(N=p(x*g(2,69,1))-69,$=N<0?x*g(2,-N,1):x/g(2,N,1),$*=4503599627370496,N=52-N,N>0){for(y(A,0,$),U=I;U>=7;)y(A,1e7,0),U-=7;for(y(A,g(10,U,1),0),U=N-1;U>=23;)m(A,8388608),U-=23;m(A,1<<U),y(A,1,1),m(A,2),P=O(A)}else y(A,0,$),y(A,1<<-N,0),P=O(A)+c("0",I);return I>0?(F=P.length,P=C+(F<=I?"0."+c("0",I-F)+P:d(P,0,F-I)+"."+d(P,F-I))):P=C+P,P}})},15224:function(s,l,t){var r=t(14304),n=t(11286),e=t(72069),a=t(34338),o=n(1 .toPrecision),u=e(function(){return o(1,void 0)!=="1"})||!e(function(){o({})});r({target:"Number",proto:!0,forced:u},{toPrecision:function(v){return v===void 0?o(a(this)):o(a(this),v)}})},45891:function(s,l,t){var r=t(14304),n=t(16667);r({target:"Object",stat:!0,arity:2,forced:Object.assign!==n},{assign:n})},99910:function(s,l,t){var r=t(14304),n=t(92986),e=t(5406);r({target:"Object",stat:!0,sham:!n},{create:e})},92445:function(s,l,t){var r=t(14304),n=t(92986),e=t(57629),a=t(85156),o=t(49671),u=t(7831);n&&r({target:"Object",proto:!0,forced:e},{__defineGetter__:function(v,f){u.f(o(this),v,{get:a(f),enumerable:!0,configurable:!0})}})},21875:function(s,l,t){var r=t(14304),n=t(92986),e=t(61963).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==e,sham:!n},{defineProperties:e})},4383:function(s,l,t){var r=t(14304),n=t(92986),e=t(7831).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==e,sham:!n},{defineProperty:e})},11361:function(s,l,t){var r=t(14304),n=t(92986),e=t(57629),a=t(85156),o=t(49671),u=t(7831);n&&r({target:"Object",proto:!0,forced:e},{__defineSetter__:function(v,f){u.f(o(this),v,{set:a(f),enumerable:!0,configurable:!0})}})},13728:function(s,l,t){var r=t(14304),n=t(8511).entries;r({target:"Object",stat:!0},{entries:function(a){return n(a)}})},14885:function(s,l,t){var r=t(14304),n=t(27534),e=t(72069),a=t(37540),o=t(31853).onFreeze,u=Object.freeze,i=e(function(){u(1)});r({target:"Object",stat:!0,forced:i,sham:!n},{freeze:function(f){return u&&a(f)?u(o(f)):f}})},30343:function(s,l,t){var r=t(14304),n=t(55902),e=t(84082);r({target:"Object",stat:!0},{fromEntries:function(o){var u={};return n(o,function(i,v){e(u,i,v)},{AS_ENTRIES:!0}),u}})},22045:function(s,l,t){var r=t(14304),n=t(72069),e=t(36859),a=t(71349).f,o=t(92986),u=!o||n(function(){a(1)});r({target:"Object",stat:!0,forced:u,sham:!o},{getOwnPropertyDescriptor:function(v,f){return a(e(v),f)}})},75e3:function(s,l,t){var r=t(14304),n=t(92986),e=t(16885),a=t(36859),o=t(71349),u=t(84082);r({target:"Object",stat:!0,sham:!n},{getOwnPropertyDescriptors:function(v){for(var f=a(v),c=o.f,d=e(f),h={},g=0,p,y;d.length>g;)y=c(f,p=d[g++]),y!==void 0&&u(h,p,y);return h}})},64658:function(s,l,t){var r=t(14304),n=t(72069),e=t(92880).f,a=n(function(){return!Object.getOwnPropertyNames(1)});r({target:"Object",stat:!0,forced:a},{getOwnPropertyNames:e})},45223:function(s,l,t){var r=t(14304),n=t(39729),e=t(72069),a=t(24943),o=t(49671),u=!n||e(function(){a.f(1)});r({target:"Object",stat:!0,forced:u},{getOwnPropertySymbols:function(v){var f=a.f;return f?f(o(v)):[]}})},16017:function(s,l,t){var r=t(14304),n=t(72069),e=t(49671),a=t(26313),o=t(87501),u=n(function(){a(1)});r({target:"Object",stat:!0,forced:u,sham:!o},{getPrototypeOf:function(v){return a(e(v))}})},84681:function(s,l,t){var r=t(14304),n=t(38941),e=t(11286),a=t(85156),o=t(2068),u=t(50035),i=t(55902),v=t(72069),f=Object.groupBy,c=n("Object","create"),d=e([].push),h=!f||v(function(){return f("ab",function(g){return g}).a.length!==1});r({target:"Object",stat:!0,forced:h},{groupBy:function(p,y){o(p),a(y);var m=c(null),O=0;return i(p,function(S){var E=u(y(S,O++));E in m?d(m[E],S):m[E]=[S]}),m}})},73421:function(s,l,t){var r=t(14304),n=t(94879);r({target:"Object",stat:!0},{hasOwn:n})},31046:function(s,l,t){var r=t(14304),n=t(28174);r({target:"Object",stat:!0,forced:Object.isExtensible!==n},{isExtensible:n})},94645:function(s,l,t){var r=t(14304),n=t(72069),e=t(37540),a=t(14274),o=t(72058),u=Object.isFrozen,i=o||n(function(){u(1)});r({target:"Object",stat:!0,forced:i},{isFrozen:function(f){return!e(f)||o&&a(f)==="ArrayBuffer"?!0:u?u(f):!1}})},62935:function(s,l,t){var r=t(14304),n=t(72069),e=t(37540),a=t(14274),o=t(72058),u=Object.isSealed,i=o||n(function(){u(1)});r({target:"Object",stat:!0,forced:i},{isSealed:function(f){return!e(f)||o&&a(f)==="ArrayBuffer"?!0:u?u(f):!1}})},93446:function(s,l,t){var r=t(14304),n=t(13944);r({target:"Object",stat:!0},{is:n})},62518:function(s,l,t){var r=t(14304),n=t(49671),e=t(18350),a=t(72069),o=a(function(){e(1)});r({target:"Object",stat:!0,forced:o},{keys:function(i){return e(n(i))}})},45130:function(s,l,t){var r=t(14304),n=t(92986),e=t(57629),a=t(49671),o=t(50035),u=t(26313),i=t(71349).f;n&&r({target:"Object",proto:!0,forced:e},{__lookupGetter__:function(f){var c=a(this),d=o(f),h;do if(h=i(c,d))return h.get;while(c=u(c))}})},51542:function(s,l,t){var r=t(14304),n=t(92986),e=t(57629),a=t(49671),o=t(50035),u=t(26313),i=t(71349).f;n&&r({target:"Object",proto:!0,forced:e},{__lookupSetter__:function(f){var c=a(this),d=o(f),h;do if(h=i(c,d))return h.set;while(c=u(c))}})},43781:function(s,l,t){var r=t(14304),n=t(37540),e=t(31853).onFreeze,a=t(27534),o=t(72069),u=Object.preventExtensions,i=o(function(){u(1)});r({target:"Object",stat:!0,forced:i,sham:!a},{preventExtensions:function(f){return u&&n(f)?u(e(f)):f}})},25738:function(s,l,t){var r=t(92986),n=t(85500),e=t(37540),a=t(52427),o=t(49671),u=t(2068),i=Object.getPrototypeOf,v=Object.setPrototypeOf,f=Object.prototype,c="__proto__";if(r&&i&&v&&!(c in f))try{n(f,c,{configurable:!0,get:function(){return i(o(this))},set:function(h){var g=u(this);a(h)&&e(g)&&v(g,h)}})}catch(d){}},93247:function(s,l,t){var r=t(14304),n=t(37540),e=t(31853).onFreeze,a=t(27534),o=t(72069),u=Object.seal,i=o(function(){u(1)});r({target:"Object",stat:!0,forced:i,sham:!a},{seal:function(f){return u&&n(f)?u(e(f)):f}})},41533:function(s,l,t){var r=t(14304),n=t(15861);r({target:"Object",stat:!0},{setPrototypeOf:n})},60225:function(s,l,t){var r=t(67878),n=t(16142),e=t(60105);r||n(Object.prototype,"toString",e,{unsafe:!0})},69920:function(s,l,t){var r=t(14304),n=t(8511).values;r({target:"Object",stat:!0},{values:function(a){return n(a)}})},89205:function(s,l,t){var r=t(14304),n=t(25838);r({global:!0,forced:parseFloat!==n},{parseFloat:n})},78546:function(s,l,t){var r=t(14304),n=t(23009);r({global:!0,forced:parseInt!==n},{parseInt:n})},16893:function(s,l,t){var r=t(14304),n=t(96499),e=t(85156),a=t(24649),o=t(67805),u=t(55902),i=t(26035);r({target:"Promise",stat:!0,forced:i},{allSettled:function(f){var c=this,d=a.f(c),h=d.resolve,g=d.reject,p=o(function(){var y=e(c.resolve),m=[],O=0,S=1;u(f,function(E){var T=O++,x=!1;S++,n(y,c,E).then(function(I){x||(x=!0,m[T]={status:"fulfilled",value:I},--S||h(m))},function(I){x||(x=!0,m[T]={status:"rejected",reason:I},--S||h(m))})}),--S||h(m)});return p.error&&g(p.value),d.promise}})},11733:function(s,l,t){var r=t(14304),n=t(96499),e=t(85156),a=t(24649),o=t(67805),u=t(55902),i=t(26035);r({target:"Promise",stat:!0,forced:i},{all:function(f){var c=this,d=a.f(c),h=d.resolve,g=d.reject,p=o(function(){var y=e(c.resolve),m=[],O=0,S=1;u(f,function(E){var T=O++,x=!1;S++,n(y,c,E).then(function(I){x||(x=!0,m[T]=I,--S||h(m))},g)}),--S||h(m)});return p.error&&g(p.value),d.promise}})},3676:function(s,l,t){var r=t(14304),n=t(96499),e=t(85156),a=t(38941),o=t(24649),u=t(67805),i=t(55902),v=t(26035),f="No one promise resolved";r({target:"Promise",stat:!0,forced:v},{any:function(d){var h=this,g=a("AggregateError"),p=o.f(h),y=p.resolve,m=p.reject,O=u(function(){var S=e(h.resolve),E=[],T=0,x=1,I=!1;i(d,function(A){var C=T++,P=!1;x++,n(S,h,A).then(function(N){P||I||(I=!0,y(N))},function(N){P||I||(P=!0,E[C]=N,--x||m(new g(E,f)))})}),--x||m(new g(E,f))});return O.error&&m(O.value),p.promise}})},14013:function(s,l,t){var r=t(14304),n=t(70457),e=t(37130).CONSTRUCTOR,a=t(98844),o=t(38941),u=t(23583),i=t(16142),v=a&&a.prototype;if(r({target:"Promise",proto:!0,forced:e,real:!0},{catch:function(c){return this.then(void 0,c)}}),!n&&u(a)){var f=o("Promise").prototype.catch;v.catch!==f&&i(v,"catch",f,{unsafe:!0})}},20238:function(s,l,t){var r=t(14304),n=t(70457),e=t(42954),a=t(66009),o=t(96499),u=t(16142),i=t(15861),v=t(78401),f=t(36167),c=t(85156),d=t(23583),h=t(37540),g=t(12833),p=t(16887),y=t(23115).set,m=t(9709),O=t(99095),S=t(67805),E=t(76895),T=t(82367),x=t(98844),I=t(37130),A=t(24649),C="Promise",P=I.CONSTRUCTOR,N=I.REJECTION_EVENT,$=I.SUBCLASSING,U=T.getterFor(C),F=T.set,D=x&&x.prototype,L=x,b=D,K=a.TypeError,H=a.document,Q=a.process,X=A.f,st=X,et=!!(H&&H.createEvent&&a.dispatchEvent),lt="unhandledrejection",ht="rejectionhandled",gt=0,Lt=1,Dt=2,Ct=1,at=2,vt,St,Rt,Tt,Nt=function(J){var yt;return h(J)&&d(yt=J.then)?yt:!1},Ht=function(J,yt){var pt=yt.value,ct=yt.state===Lt,ft=ct?J.ok:J.fail,zt=J.resolve,Yt=J.reject,W=J.domain,k,tt,j;try{ft?(ct||(yt.rejection===at&&$t(yt),yt.rejection=Ct),ft===!0?k=pt:(W&&W.enter(),k=ft(pt),W&&(W.exit(),j=!0)),k===J.promise?Yt(new K("Promise-chain cycle")):(tt=Nt(k))?o(tt,k,zt,Yt):zt(k)):Yt(pt)}catch(z){W&&!j&&W.exit(),Yt(z)}},Wt=function(J,yt){J.notified||(J.notified=!0,m(function(){for(var pt=J.reactions,ct;ct=pt.get();)Ht(ct,J);J.notified=!1,yt&&!J.rejection&&Pt(J)}))},bt=function(J,yt,pt){var ct,ft;et?(ct=H.createEvent("Event"),ct.promise=yt,ct.reason=pt,ct.initEvent(J,!1,!0),a.dispatchEvent(ct)):ct={promise:yt,reason:pt},!N&&(ft=a["on"+J])?ft(ct):J===lt&&O("Unhandled promise rejection",pt)},Pt=function(J){o(y,a,function(){var yt=J.facade,pt=J.value,ct=Vt(J),ft;if(ct&&(ft=S(function(){e?Q.emit("unhandledRejection",pt,yt):bt(lt,yt,pt)}),J.rejection=e||Vt(J)?at:Ct,ft.error))throw ft.value})},Vt=function(J){return J.rejection!==Ct&&!J.parent},$t=function(J){o(y,a,function(){var yt=J.facade;e?Q.emit("rejectionHandled",yt):bt(ht,yt,J.value)})},Mt=function(J,yt,pt){return function(ct){J(yt,ct,pt)}},q=function(J,yt,pt){J.done||(J.done=!0,pt&&(J=pt),J.value=yt,J.state=Dt,Wt(J,!0))},ut=function(J,yt,pt){if(!J.done){J.done=!0,pt&&(J=pt);try{if(J.facade===yt)throw new K("Promise can't be resolved itself");var ct=Nt(yt);ct?m(function(){var ft={done:!1};try{o(ct,yt,Mt(ut,ft,J),Mt(q,ft,J))}catch(zt){q(ft,zt,J)}}):(J.value=yt,J.state=Lt,Wt(J,!1))}catch(ft){q({done:!1},ft,J)}}};if(P&&(L=function(yt){g(this,b),c(yt),o(vt,this);var pt=U(this);try{yt(Mt(ut,pt),Mt(q,pt))}catch(ct){q(pt,ct)}},b=L.prototype,vt=function(yt){F(this,{type:C,done:!1,notified:!1,parent:!1,reactions:new E,rejection:!1,state:gt,value:void 0})},vt.prototype=u(b,"then",function(yt,pt){var ct=U(this),ft=X(p(this,L));return ct.parent=!0,ft.ok=d(yt)?yt:!0,ft.fail=d(pt)&&pt,ft.domain=e?Q.domain:void 0,ct.state===gt?ct.reactions.add(ft):m(function(){Ht(ft,ct)}),ft.promise}),St=function(){var J=new vt,yt=U(J);this.promise=J,this.resolve=Mt(ut,yt),this.reject=Mt(q,yt)},A.f=X=function(J){return J===L||J===Rt?new St(J):st(J)},!n&&d(x)&&D!==Object.prototype)){Tt=D.then,$||u(D,"then",function(yt,pt){var ct=this;return new L(function(ft,zt){o(Tt,ct,ft,zt)}).then(yt,pt)},{unsafe:!0});try{delete D.constructor}catch(J){}i&&i(D,b)}r({global:!0,constructor:!0,wrap:!0,forced:P},{Promise:L}),v(L,C,!1,!0),f(C)},58361:function(s,l,t){var r=t(14304),n=t(70457),e=t(98844),a=t(72069),o=t(38941),u=t(23583),i=t(16887),v=t(87408),f=t(16142),c=e&&e.prototype,d=!!e&&a(function(){c.finally.call({then:function(){}},function(){})});if(r({target:"Promise",proto:!0,real:!0,forced:d},{finally:function(g){var p=i(this,o("Promise")),y=u(g);return this.then(y?function(m){return v(p,g()).then(function(){return m})}:g,y?function(m){return v(p,g()).then(function(){throw m})}:g)}}),!n&&u(e)){var h=o("Promise").prototype.finally;c.finally!==h&&f(c,"finally",h,{unsafe:!0})}},63616:function(s,l,t){t(20238),t(11733),t(14013),t(3037),t(36027),t(97282)},3037:function(s,l,t){var r=t(14304),n=t(96499),e=t(85156),a=t(24649),o=t(67805),u=t(55902),i=t(26035);r({target:"Promise",stat:!0,forced:i},{race:function(f){var c=this,d=a.f(c),h=d.reject,g=o(function(){var p=e(c.resolve);u(f,function(y){n(p,c,y).then(d.resolve,h)})});return g.error&&h(g.value),d.promise}})},36027:function(s,l,t){var r=t(14304),n=t(24649),e=t(37130).CONSTRUCTOR;r({target:"Promise",stat:!0,forced:e},{reject:function(o){var u=n.f(this),i=u.reject;return i(o),u.promise}})},97282:function(s,l,t){var r=t(14304),n=t(38941),e=t(70457),a=t(98844),o=t(37130).CONSTRUCTOR,u=t(87408),i=n("Promise"),v=e&&!o;r({target:"Promise",stat:!0,forced:e||o},{resolve:function(c){return u(v&&this===i?a:this,c)}})},23958:function(s,l,t){var r=t(14304),n=t(24649);r({target:"Promise",stat:!0},{withResolvers:function(){var a=n.f(this);return{promise:a.promise,resolve:a.resolve,reject:a.reject}}})},9798:function(s,l,t){var r=t(14304),n=t(66543),e=t(85156),a=t(25001),o=t(72069),u=!o(function(){Reflect.apply(function(){})});r({target:"Reflect",stat:!0,forced:u},{apply:function(v,f,c){return n(e(v),f,a(c))}})},2371:function(s,l,t){var r=t(14304),n=t(38941),e=t(66543),a=t(91384),o=t(80042),u=t(25001),i=t(37540),v=t(5406),f=t(72069),c=n("Reflect","construct"),d=Object.prototype,h=[].push,g=f(function(){function m(){}return!(c(function(){},[],m)instanceof m)}),p=!f(function(){c(function(){})}),y=g||p;r({target:"Reflect",stat:!0,forced:y,sham:y},{construct:function(O,S){o(O),u(S);var E=arguments.length<3?O:o(arguments[2]);if(p&&!g)return c(O,S,E);if(O===E){switch(S.length){case 0:return new O;case 1:return new O(S[0]);case 2:return new O(S[0],S[1]);case 3:return new O(S[0],S[1],S[2]);case 4:return new O(S[0],S[1],S[2],S[3])}var T=[null];return e(h,T,S),new(e(a,O,T))}var x=E.prototype,I=v(i(x)?x:d),A=e(O,I,S);return i(A)?A:I}})},76185:function(s,l,t){var r=t(14304),n=t(92986),e=t(25001),a=t(50035),o=t(7831),u=t(72069),i=u(function(){Reflect.defineProperty(o.f({},1,{value:1}),1,{value:2})});r({target:"Reflect",stat:!0,forced:i,sham:!n},{defineProperty:function(f,c,d){e(f);var h=a(c);e(d);try{return o.f(f,h,d),!0}catch(g){return!1}}})},76553:function(s,l,t){var r=t(14304),n=t(25001),e=t(71349).f;r({target:"Reflect",stat:!0},{deleteProperty:function(o,u){var i=e(n(o),u);return i&&!i.configurable?!1:delete o[u]}})},25227:function(s,l,t){var r=t(14304),n=t(92986),e=t(25001),a=t(71349);r({target:"Reflect",stat:!0,sham:!n},{getOwnPropertyDescriptor:function(u,i){return a.f(e(u),i)}})},91723:function(s,l,t){var r=t(14304),n=t(25001),e=t(26313),a=t(87501);r({target:"Reflect",stat:!0,sham:!a},{getPrototypeOf:function(u){return e(n(u))}})},93518:function(s,l,t){var r=t(14304),n=t(96499),e=t(37540),a=t(25001),o=t(69745),u=t(71349),i=t(26313);function v(f,c){var d=arguments.length<3?f:arguments[2],h,g;if(a(f)===d)return f[c];if(h=u.f(f,c),h)return o(h)?h.value:h.get===void 0?void 0:n(h.get,d);if(e(g=i(f)))return v(g,c,d)}r({target:"Reflect",stat:!0},{get:v})},57882:function(s,l,t){var r=t(14304);r({target:"Reflect",stat:!0},{has:function(e,a){return a in e}})},37796:function(s,l,t){var r=t(14304),n=t(25001),e=t(28174);r({target:"Reflect",stat:!0},{isExtensible:function(o){return n(o),e(o)}})},11563:function(s,l,t){var r=t(14304),n=t(16885);r({target:"Reflect",stat:!0},{ownKeys:n})},26159:function(s,l,t){var r=t(14304),n=t(38941),e=t(25001),a=t(27534);r({target:"Reflect",stat:!0,sham:!a},{preventExtensions:function(u){e(u);try{var i=n("Object","preventExtensions");return i&&i(u),!0}catch(v){return!1}}})},77487:function(s,l,t){var r=t(14304),n=t(25001),e=t(53408),a=t(15861);a&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(u,i){n(u),e(i);try{return a(u,i),!0}catch(v){return!1}}})},20962:function(s,l,t){var r=t(14304),n=t(96499),e=t(25001),a=t(37540),o=t(69745),u=t(72069),i=t(7831),v=t(71349),f=t(26313),c=t(18526);function d(g,p,y){var m=arguments.length<4?g:arguments[3],O=v.f(e(g),p),S,E,T;if(!O){if(a(E=f(g)))return d(E,p,y,m);O=c(0)}if(o(O)){if(O.writable===!1||!a(m))return!1;if(S=v.f(m,p)){if(S.get||S.set||S.writable===!1)return!1;S.value=y,i.f(m,p,S)}else i.f(m,p,c(0,y))}else{if(T=O.set,T===void 0)return!1;n(T,m,y)}return!0}var h=u(function(){var g=function(){},p=i.f(new g,"a",{configurable:!0});return Reflect.set(g.prototype,"a",1,p)!==!1});r({target:"Reflect",stat:!0,forced:h},{set:d})},6130:function(s,l,t){var r=t(14304),n=t(66009),e=t(78401);r({global:!0},{Reflect:{}}),e(n.Reflect,"Reflect",!0)},1354:function(s,l,t){var r=t(92986),n=t(66009),e=t(11286),a=t(13278),o=t(32345),u=t(90809),i=t(5406),v=t(83258).f,f=t(95307),c=t(11566),d=t(17361),h=t(54932),g=t(39807),p=t(2594),y=t(16142),m=t(72069),O=t(94879),S=t(82367).enforce,E=t(36167),T=t(18565),x=t(76769),I=t(85220),A=T("match"),C=n.RegExp,P=C.prototype,N=n.SyntaxError,$=e(P.exec),U=e("".charAt),F=e("".replace),D=e("".indexOf),L=e("".slice),b=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,K=/a/g,H=/a/g,Q=new C(K)!==K,X=g.MISSED_STICKY,st=g.UNSUPPORTED_Y,et=r&&(!Q||X||x||I||m(function(){return H[A]=!1,C(K)!==K||C(H)===H||String(C(K,"i"))!=="/a/i"})),lt=function(Ct){for(var at=Ct.length,vt=0,St="",Rt=!1,Tt;vt<=at;vt++){if(Tt=U(Ct,vt),Tt==="\\"){St+=Tt+U(Ct,++vt);continue}!Rt&&Tt==="."?St+="[\\s\\S]":(Tt==="["?Rt=!0:Tt==="]"&&(Rt=!1),St+=Tt)}return St},ht=function(Ct){for(var at=Ct.length,vt=0,St="",Rt=[],Tt=i(null),Nt=!1,Ht=!1,Wt=0,bt="",Pt;vt<=at;vt++){if(Pt=U(Ct,vt),Pt==="\\")Pt+=U(Ct,++vt);else if(Pt==="]")Nt=!1;else if(!Nt)switch(!0){case Pt==="[":Nt=!0;break;case Pt==="(":$(b,L(Ct,vt+1))&&(vt+=2,Ht=!0),St+=Pt,Wt++;continue;case(Pt===">"&&Ht):if(bt===""||O(Tt,bt))throw new N("Invalid capture group name");Tt[bt]=!0,Rt[Rt.length]=[bt,Wt],Ht=!1,bt="";continue}Ht?bt+=Pt:St+=Pt}return[St,Rt]};if(a("RegExp",et)){for(var gt=function(at,vt){var St=f(P,this),Rt=c(at),Tt=vt===void 0,Nt=[],Ht=at,Wt,bt,Pt,Vt,$t,Mt;if(!St&&Rt&&Tt&&at.constructor===gt)return at;if((Rt||f(P,at))&&(at=at.source,Tt&&(vt=h(Ht))),at=at===void 0?"":d(at),vt=vt===void 0?"":d(vt),Ht=at,x&&"dotAll"in K&&(bt=!!vt&&D(vt,"s")>-1,bt&&(vt=F(vt,/s/g,""))),Wt=vt,X&&"sticky"in K&&(Pt=!!vt&&D(vt,"y")>-1,Pt&&st&&(vt=F(vt,/y/g,""))),I&&(Vt=ht(at),at=Vt[0],Nt=Vt[1]),$t=o(C(at,vt),St?this:P,gt),(bt||Pt||Nt.length)&&(Mt=S($t),bt&&(Mt.dotAll=!0,Mt.raw=gt(lt(at),Wt)),Pt&&(Mt.sticky=!0),Nt.length&&(Mt.groups=Nt)),at!==Ht)try{u($t,"source",Ht===""?"(?:)":Ht)}catch(q){}return $t},Lt=v(C),Dt=0;Lt.length>Dt;)p(gt,C,Lt[Dt++]);P.constructor=gt,gt.prototype=P,y(n,"RegExp",gt,{constructor:!0})}E("RegExp")},47119:function(s,l,t){var r=t(92986),n=t(76769),e=t(14274),a=t(85500),o=t(82367).get,u=RegExp.prototype,i=TypeError;r&&n&&a(u,"dotAll",{configurable:!0,get:function(){if(this!==u){if(e(this)==="RegExp")return!!o(this).dotAll;throw new i("Incompatible receiver, RegExp required")}}})},31145:function(s,l,t){var r=t(14304),n=t(44381);r({target:"RegExp",proto:!0,forced:/./.exec!==n},{exec:n})},96773:function(s,l,t){var r=t(66009),n=t(92986),e=t(85500),a=t(29833),o=t(72069),u=r.RegExp,i=u.prototype,v=n&&o(function(){var f=!0;try{u(".","d")}catch(O){f=!1}var c={},d="",h=f?"dgimsy":"gimsy",g=function(O,S){Object.defineProperty(c,O,{get:function(){return d+=S,!0}})},p={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};f&&(p.hasIndices="d");for(var y in p)g(y,p[y]);var m=Object.getOwnPropertyDescriptor(i,"flags").get.call(c);return m!==h||d!==h});v&&e(i,"flags",{configurable:!0,get:a})},14371:function(s,l,t){var r=t(92986),n=t(39807).MISSED_STICKY,e=t(14274),a=t(85500),o=t(82367).get,u=RegExp.prototype,i=TypeError;r&&n&&a(u,"sticky",{configurable:!0,get:function(){if(this!==u){if(e(this)==="RegExp")return!!o(this).sticky;throw new i("Incompatible receiver, RegExp required")}}})},18180:function(s,l,t){t(31145);var r=t(14304),n=t(96499),e=t(23583),a=t(25001),o=t(17361),u=function(){var v=!1,f=/[ac]/;return f.exec=function(){return v=!0,/./.exec.apply(this,arguments)},f.test("abc")===!0&&v}(),i=/./.test;r({target:"RegExp",proto:!0,forced:!u},{test:function(v){var f=a(this),c=o(v),d=f.exec;if(!e(d))return n(i,f,c);var h=n(d,f,c);return h===null?!1:(a(h),!0)}})},83147:function(s,l,t){var r=t(86588).PROPER,n=t(16142),e=t(25001),a=t(17361),o=t(72069),u=t(54932),i="toString",v=RegExp.prototype,f=v[i],c=o(function(){return f.call({source:"a",flags:"b"})!=="/a/b"}),d=r&&f.name!==i;(c||d)&&n(v,i,function(){var g=e(this),p=a(g.source),y=a(u(g));return"/"+p+"/"+y},{unsafe:!0})},6583:function(s,l,t){var r=t(89378),n=t(34440);r("Set",function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},n)},86548:function(s,l,t){var r=t(14304),n=t(41754),e=t(94118);r({target:"Set",proto:!0,real:!0,forced:!e("difference")},{difference:n})},15282:function(s,l,t){var r=t(14304),n=t(72069),e=t(92292),a=t(94118),o=!a("intersection")||n(function(){return String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))!=="3,2"});r({target:"Set",proto:!0,real:!0,forced:o},{intersection:e})},51275:function(s,l,t){var r=t(14304),n=t(47391),e=t(94118);r({target:"Set",proto:!0,real:!0,forced:!e("isDisjointFrom")},{isDisjointFrom:n})},91890:function(s,l,t){var r=t(14304),n=t(75492),e=t(94118);r({target:"Set",proto:!0,real:!0,forced:!e("isSubsetOf")},{isSubsetOf:n})},15089:function(s,l,t){var r=t(14304),n=t(1333),e=t(94118);r({target:"Set",proto:!0,real:!0,forced:!e("isSupersetOf")},{isSupersetOf:n})},75765:function(s,l,t){t(6583)},78134:function(s,l,t){var r=t(14304),n=t(64680),e=t(94118);r({target:"Set",proto:!0,real:!0,forced:!e("symmetricDifference")},{symmetricDifference:n})},56456:function(s,l,t){var r=t(14304),n=t(70402),e=t(94118);r({target:"Set",proto:!0,real:!0,forced:!e("union")},{union:n})},70641:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("anchor")},{anchor:function(o){return n(this,"a","name",o)}})},40735:function(s,l,t){var r=t(14304),n=t(11286),e=t(2068),a=t(12105),o=t(17361),u=t(72069),i=n("".charAt),v=u(function(){return"\u{20BB7}".at(-2)!=="\uD842"});r({target:"String",proto:!0,forced:v},{at:function(c){var d=o(e(this)),h=d.length,g=a(c),p=g>=0?g:h+g;return p<0||p>=h?void 0:i(d,p)}})},53892:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("big")},{big:function(){return n(this,"big","","")}})},95976:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("blink")},{blink:function(){return n(this,"blink","","")}})},399:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("bold")},{bold:function(){return n(this,"b","","")}})},8510:function(s,l,t){var r=t(14304),n=t(22149).codeAt;r({target:"String",proto:!0},{codePointAt:function(a){return n(this,a)}})},70159:function(s,l,t){var r=t(14304),n=t(77422),e=t(71349).f,a=t(45344),o=t(17361),u=t(92337),i=t(2068),v=t(8790),f=t(70457),c=n("".slice),d=Math.min,h=v("endsWith"),g=!f&&!h&&!!function(){var p=e(String.prototype,"endsWith");return p&&!p.writable}();r({target:"String",proto:!0,forced:!g&&!h},{endsWith:function(y){var m=o(i(this));u(y);var O=arguments.length>1?arguments[1]:void 0,S=m.length,E=O===void 0?S:d(a(O),S),T=o(y);return c(m,E-T.length,E)===T}})},72032:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("fixed")},{fixed:function(){return n(this,"tt","","")}})},49442:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("fontcolor")},{fontcolor:function(o){return n(this,"font","color",o)}})},16012:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("fontsize")},{fontsize:function(o){return n(this,"font","size",o)}})},93087:function(s,l,t){var r=t(14304),n=t(11286),e=t(4652),a=RangeError,o=String.fromCharCode,u=String.fromCodePoint,i=n([].join),v=!!u&&u.length!==1;r({target:"String",stat:!0,arity:1,forced:v},{fromCodePoint:function(c){for(var d=[],h=arguments.length,g=0,p;h>g;){if(p=+arguments[g++],e(p,1114111)!==p)throw new a(p+" is not a valid code point");d[g]=p<65536?o(p):o(((p-=65536)>>10)+55296,p%1024+56320)}return i(d,"")}})},26021:function(s,l,t){var r=t(14304),n=t(11286),e=t(92337),a=t(2068),o=t(17361),u=t(8790),i=n("".indexOf);r({target:"String",proto:!0,forced:!u("includes")},{includes:function(f){return!!~i(o(a(this)),o(e(f)),arguments.length>1?arguments[1]:void 0)}})},93029:function(s,l,t){var r=t(14304),n=t(11286),e=t(2068),a=t(17361),o=n("".charCodeAt);r({target:"String",proto:!0},{isWellFormed:function(){for(var i=a(e(this)),v=i.length,f=0;f<v;f++){var c=o(i,f);if((c&63488)===55296&&(c>=56320||++f>=v||(o(i,f)&64512)!==56320))return!1}return!0}})},9943:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("italics")},{italics:function(){return n(this,"i","","")}})},59158:function(s,l,t){var r=t(22149).charAt,n=t(17361),e=t(82367),a=t(10218),o=t(10659),u="String Iterator",i=e.set,v=e.getterFor(u);a(String,"String",function(f){i(this,{type:u,string:n(f),index:0})},function(){var c=v(this),d=c.string,h=c.index,g;return h>=d.length?o(void 0,!0):(g=r(d,h),c.index+=g.length,o(g,!1))})},33128:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("link")},{link:function(o){return n(this,"a","href",o)}})},18509:function(s,l,t){var r=t(14304),n=t(96499),e=t(77422),a=t(26820),o=t(10659),u=t(2068),i=t(45344),v=t(17361),f=t(25001),c=t(5683),d=t(14274),h=t(11566),g=t(54932),p=t(10512),y=t(16142),m=t(72069),O=t(18565),S=t(16887),E=t(24487),T=t(33064),x=t(82367),I=t(70457),A=O("matchAll"),C="RegExp String",P=C+" Iterator",N=x.set,$=x.getterFor(P),U=RegExp.prototype,F=TypeError,D=e("".indexOf),L=e("".matchAll),b=!!L&&!m(function(){L("a",/./)}),K=a(function(X,st,et,lt){N(this,{type:P,regexp:X,string:st,global:et,unicode:lt,done:!1})},C,function(){var X=$(this);if(X.done)return o(void 0,!0);var st=X.regexp,et=X.string,lt=T(st,et);return lt===null?(X.done=!0,o(void 0,!0)):X.global?(v(lt[0])===""&&(st.lastIndex=E(et,i(st.lastIndex),X.unicode)),o(lt,!1)):(X.done=!0,o(lt,!1))}),H=function(Q){var X=f(this),st=v(Q),et=S(X,RegExp),lt=v(g(X)),ht,gt,Lt;return ht=new et(et===RegExp?X.source:X,lt),gt=!!~D(lt,"g"),Lt=!!~D(lt,"u"),ht.lastIndex=i(X.lastIndex),new K(ht,st,gt,Lt)};r({target:"String",proto:!0,forced:b},{matchAll:function(X){var st=u(this),et,lt,ht,gt;if(c(X)){if(b)return L(st,X)}else{if(h(X)&&(et=v(u(g(X))),!~D(et,"g")))throw new F("`.matchAll` does not allow non-global regexes");if(b)return L(st,X);if(ht=p(X,A),ht===void 0&&I&&d(X)==="RegExp"&&(ht=H),ht)return n(ht,X,st)}return lt=v(st),gt=new RegExp(X,"g"),I?n(H,gt,lt):gt[A](lt)}}),I||A in U||y(U,A,H)},15599:function(s,l,t){var r=t(96499),n=t(63194),e=t(25001),a=t(5683),o=t(45344),u=t(17361),i=t(2068),v=t(10512),f=t(24487),c=t(33064);n("match",function(d,h,g){return[function(y){var m=i(this),O=a(y)?void 0:v(y,d);return O?r(O,y,m):new RegExp(y)[d](u(m))},function(p){var y=e(this),m=u(p),O=g(h,y,m);if(O.done)return O.value;if(!y.global)return c(y,m);var S=y.unicode;y.lastIndex=0;for(var E=[],T=0,x;(x=c(y,m))!==null;){var I=u(x[0]);E[T]=I,I===""&&(y.lastIndex=f(m,o(y.lastIndex),S)),T++}return T===0?null:E}]})},21579:function(s,l,t){var r=t(14304),n=t(61607).end,e=t(36945);r({target:"String",proto:!0,forced:e},{padEnd:function(o){return n(this,o,arguments.length>1?arguments[1]:void 0)}})},8854:function(s,l,t){var r=t(14304),n=t(61607).start,e=t(36945);r({target:"String",proto:!0,forced:e},{padStart:function(o){return n(this,o,arguments.length>1?arguments[1]:void 0)}})},57676:function(s,l,t){var r=t(14304),n=t(11286),e=t(36859),a=t(49671),o=t(17361),u=t(82628),i=n([].push),v=n([].join);r({target:"String",stat:!0},{raw:function(c){var d=e(a(c).raw),h=u(d);if(!h)return"";for(var g=arguments.length,p=[],y=0;;){if(i(p,o(d[y++])),y===h)return v(p,"");y<g&&i(p,o(arguments[y]))}}})},14527:function(s,l,t){var r=t(14304),n=t(79719);r({target:"String",proto:!0},{repeat:n})},52684:function(s,l,t){var r=t(14304),n=t(96499),e=t(11286),a=t(2068),o=t(23583),u=t(5683),i=t(11566),v=t(17361),f=t(10512),c=t(54932),d=t(38368),h=t(18565),g=t(70457),p=h("replace"),y=TypeError,m=e("".indexOf),O=e("".replace),S=e("".slice),E=Math.max;r({target:"String",proto:!0},{replaceAll:function(x,I){var A=a(this),C,P,N,$,U,F,D,L,b,K=0,H=0,Q="";if(!u(x)){if(C=i(x),C&&(P=v(a(c(x))),!~m(P,"g")))throw new y("`.replaceAll` does not allow non-global regexes");if(N=f(x,p),N)return n(N,x,A,I);if(g&&C)return O(v(A),x,I)}for($=v(A),U=v(x),F=o(I),F||(I=v(I)),D=U.length,L=E(1,D),K=m($,U);K!==-1;)b=F?v(I(U,K,$)):d(U,$,K,[],void 0,I),Q+=S($,H,K)+b,H=K+D,K=K+L>$.length?-1:m($,U,K+L);return H<$.length&&(Q+=S($,H)),Q}})},96834:function(s,l,t){var r=t(66543),n=t(96499),e=t(11286),a=t(63194),o=t(72069),u=t(25001),i=t(23583),v=t(5683),f=t(12105),c=t(45344),d=t(17361),h=t(2068),g=t(24487),p=t(10512),y=t(38368),m=t(33064),O=t(18565),S=O("replace"),E=Math.max,T=Math.min,x=e([].concat),I=e([].push),A=e("".indexOf),C=e("".slice),P=function(F){return F===void 0?F:String(F)},N=function(){return"a".replace(/./,"$0")==="$0"}(),$=function(){return/./[S]?/./[S]("a","$0")==="":!1}(),U=!o(function(){var F=/./;return F.exec=function(){var D=[];return D.groups={a:"7"},D},"".replace(F,"$<a>")!=="7"});a("replace",function(F,D,L){var b=$?"$":"$0";return[function(H,Q){var X=h(this),st=v(H)?void 0:p(H,S);return st?n(st,H,X,Q):n(D,d(X),H,Q)},function(K,H){var Q=u(this),X=d(K);if(typeof H=="string"&&A(H,b)===-1&&A(H,"$<")===-1){var st=L(D,Q,X,H);if(st.done)return st.value}var et=i(H);et||(H=d(H));var lt=Q.global,ht;lt&&(ht=Q.unicode,Q.lastIndex=0);for(var gt=[],Lt;Lt=m(Q,X),!(Lt===null||(I(gt,Lt),!lt));){var Dt=d(Lt[0]);Dt===""&&(Q.lastIndex=g(X,c(Q.lastIndex),ht))}for(var Ct="",at=0,vt=0;vt<gt.length;vt++){Lt=gt[vt];for(var St=d(Lt[0]),Rt=E(T(f(Lt.index),X.length),0),Tt=[],Nt,Ht=1;Ht<Lt.length;Ht++)I(Tt,P(Lt[Ht]));var Wt=Lt.groups;if(et){var bt=x([St],Tt,Rt,X);Wt!==void 0&&I(bt,Wt),Nt=d(r(H,void 0,bt))}else Nt=y(St,X,Rt,Tt,Wt,H);Rt>=at&&(Ct+=C(X,at,Rt)+Nt,at=Rt+St.length)}return Ct+C(X,at)}]},!U||!N||$)},74980:function(s,l,t){var r=t(96499),n=t(63194),e=t(25001),a=t(5683),o=t(2068),u=t(13944),i=t(17361),v=t(10512),f=t(33064);n("search",function(c,d,h){return[function(p){var y=o(this),m=a(p)?void 0:v(p,c);return m?r(m,p,y):new RegExp(p)[c](i(y))},function(g){var p=e(this),y=i(g),m=h(d,p,y);if(m.done)return m.value;var O=p.lastIndex;u(O,0)||(p.lastIndex=0);var S=f(p,y);return u(p.lastIndex,O)||(p.lastIndex=O),S===null?-1:S.index}]})},95625:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("small")},{small:function(){return n(this,"small","","")}})},390:function(s,l,t){var r=t(96499),n=t(11286),e=t(63194),a=t(25001),o=t(5683),u=t(2068),i=t(16887),v=t(24487),f=t(45344),c=t(17361),d=t(10512),h=t(33064),g=t(39807),p=t(72069),y=g.UNSUPPORTED_Y,m=4294967295,O=Math.min,S=n([].push),E=n("".slice),T=!p(function(){var I=/(?:)/,A=I.exec;I.exec=function(){return A.apply(this,arguments)};var C="ab".split(I);return C.length!==2||C[0]!=="a"||C[1]!=="b"}),x="abbc".split(/(b)*/)[1]==="c"||"test".split(/(?:)/,-1).length!==4||"ab".split(/(?:ab)*/).length!==2||".".split(/(.?)(.?)/).length!==4||".".split(/()()/).length>1||"".split(/.?/).length;e("split",function(I,A,C){var P="0".split(void 0,0).length?function(N,$){return N===void 0&&$===0?[]:r(A,this,N,$)}:A;return[function($,U){var F=u(this),D=o($)?void 0:d($,I);return D?r(D,$,F,U):r(P,c(F),$,U)},function(N,$){var U=a(this),F=c(N);if(!x){var D=C(P,U,F,$,P!==A);if(D.done)return D.value}var L=i(U,RegExp),b=U.unicode,K=(U.ignoreCase?"i":"")+(U.multiline?"m":"")+(U.unicode?"u":"")+(y?"g":"y"),H=new L(y?"^(?:"+U.source+")":U,K),Q=$===void 0?m:$>>>0;if(Q===0)return[];if(F.length===0)return h(H,F)===null?[F]:[];for(var X=0,st=0,et=[];st<F.length;){H.lastIndex=y?0:st;var lt=h(H,y?E(F,st):F),ht;if(lt===null||(ht=O(f(H.lastIndex+(y?st:0)),F.length))===X)st=v(F,st,b);else{if(S(et,E(F,X,st)),et.length===Q)return et;for(var gt=1;gt<=lt.length-1;gt++)if(S(et,lt[gt]),et.length===Q)return et;st=X=ht}}return S(et,E(F,X)),et}]},x||!T,y)},42794:function(s,l,t){var r=t(14304),n=t(77422),e=t(71349).f,a=t(45344),o=t(17361),u=t(92337),i=t(2068),v=t(8790),f=t(70457),c=n("".slice),d=Math.min,h=v("startsWith"),g=!f&&!h&&!!function(){var p=e(String.prototype,"startsWith");return p&&!p.writable}();r({target:"String",proto:!0,forced:!g&&!h},{startsWith:function(y){var m=o(i(this));u(y);var O=a(d(arguments.length>1?arguments[1]:void 0,m.length)),S=o(y);return c(m,O,O+S.length)===S}})},90614:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("strike")},{strike:function(){return n(this,"strike","","")}})},60120:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("sub")},{sub:function(){return n(this,"sub","","")}})},21293:function(s,l,t){var r=t(14304),n=t(11286),e=t(2068),a=t(12105),o=t(17361),u=n("".slice),i=Math.max,v=Math.min,f=!"".substr||"ab".substr(-1)!=="b";r({target:"String",proto:!0,forced:f},{substr:function(d,h){var g=o(e(this)),p=g.length,y=a(d),m,O;return y===1/0&&(y=0),y<0&&(y=i(p+y,0)),m=h===void 0?p:a(h),m<=0||m===1/0?"":(O=v(y+m,p),y>=O?"":u(g,y,O))}})},75826:function(s,l,t){var r=t(14304),n=t(68422),e=t(5287);r({target:"String",proto:!0,forced:e("sup")},{sup:function(){return n(this,"sup","","")}})},18184:function(s,l,t){var r=t(14304),n=t(96499),e=t(11286),a=t(2068),o=t(17361),u=t(72069),i=Array,v=e("".charAt),f=e("".charCodeAt),c=e([].join),d="".toWellFormed,h="\uFFFD",g=d&&u(function(){return n(d,1)!=="1"});r({target:"String",proto:!0,forced:g},{toWellFormed:function(){var y=o(a(this));if(g)return n(d,y);for(var m=y.length,O=i(m),S=0;S<m;S++){var E=f(y,S);(E&63488)!==55296?O[S]=v(y,S):E>=56320||S+1>=m||(f(y,S+1)&64512)!==56320?O[S]=h:(O[S]=v(y,S),O[++S]=v(y,S))}return c(O,"")}})},19680:function(s,l,t){t(23283);var r=t(14304),n=t(75176);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==n},{trimEnd:n})},12272:function(s,l,t){var r=t(14304),n=t(83481);r({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==n},{trimLeft:n})},23283:function(s,l,t){var r=t(14304),n=t(75176);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==n},{trimRight:n})},4193:function(s,l,t){t(12272);var r=t(14304),n=t(83481);r({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==n},{trimStart:n})},75012:function(s,l,t){var r=t(14304),n=t(85900).trim,e=t(33328);r({target:"String",proto:!0,forced:e("trim")},{trim:function(){return n(this)}})},43606:function(s,l,t){var r=t(83749);r("asyncIterator")},51767:function(s,l,t){var r=t(14304),n=t(66009),e=t(96499),a=t(11286),o=t(70457),u=t(92986),i=t(39729),v=t(72069),f=t(94879),c=t(95307),d=t(25001),h=t(36859),g=t(50035),p=t(17361),y=t(18526),m=t(5406),O=t(18350),S=t(83258),E=t(92880),T=t(24943),x=t(71349),I=t(7831),A=t(61963),C=t(79591),P=t(16142),N=t(85500),$=t(96731),U=t(44869),F=t(19423),D=t(36374),L=t(18565),b=t(56529),K=t(83749),H=t(60796),Q=t(78401),X=t(82367),st=t(66655).forEach,et=U("hidden"),lt="Symbol",ht="prototype",gt=X.set,Lt=X.getterFor(lt),Dt=Object[ht],Ct=n.Symbol,at=Ct&&Ct[ht],vt=n.RangeError,St=n.TypeError,Rt=n.QObject,Tt=x.f,Nt=I.f,Ht=E.f,Wt=C.f,bt=a([].push),Pt=$("symbols"),Vt=$("op-symbols"),$t=$("wks"),Mt=!Rt||!Rt[ht]||!Rt[ht].findChild,q=function(k,tt,j){var z=Tt(Dt,tt);z&&delete Dt[tt],Nt(k,tt,j),z&&k!==Dt&&Nt(Dt,tt,z)},ut=u&&v(function(){return m(Nt({},"a",{get:function(){return Nt(this,"a",{value:7}).a}})).a!==7})?q:Nt,J=function(k,tt){var j=Pt[k]=m(at);return gt(j,{type:lt,tag:k,description:tt}),u||(j.description=tt),j},yt=function(tt,j,z){tt===Dt&&yt(Vt,j,z),d(tt);var G=g(j);return d(z),f(Pt,G)?(z.enumerable?(f(tt,et)&&tt[et][G]&&(tt[et][G]=!1),z=m(z,{enumerable:y(0,!1)})):(f(tt,et)||Nt(tt,et,y(1,m(null))),tt[et][G]=!0),ut(tt,G,z)):Nt(tt,G,z)},pt=function(tt,j){d(tt);var z=h(j),G=O(z).concat(W(z));return st(G,function(ot){(!u||e(ft,z,ot))&&yt(tt,ot,z[ot])}),tt},ct=function(tt,j){return j===void 0?m(tt):pt(m(tt),j)},ft=function(tt){var j=g(tt),z=e(Wt,this,j);return this===Dt&&f(Pt,j)&&!f(Vt,j)?!1:z||!f(this,j)||!f(Pt,j)||f(this,et)&&this[et][j]?z:!0},zt=function(tt,j){var z=h(tt),G=g(j);if(!(z===Dt&&f(Pt,G)&&!f(Vt,G))){var ot=Tt(z,G);return ot&&f(Pt,G)&&!(f(z,et)&&z[et][G])&&(ot.enumerable=!0),ot}},Yt=function(tt){var j=Ht(h(tt)),z=[];return st(j,function(G){!f(Pt,G)&&!f(F,G)&&bt(z,G)}),z},W=function(k){var tt=k===Dt,j=Ht(tt?Vt:h(k)),z=[];return st(j,function(G){f(Pt,G)&&(!tt||f(Dt,G))&&bt(z,Pt[G])}),z};i||(Ct=function(){if(c(at,this))throw new St("Symbol is not a constructor");var tt=!arguments.length||arguments[0]===void 0?void 0:p(arguments[0]),j=D(tt),z=function(G){var ot=this===void 0?n:this;ot===Dt&&e(z,Vt,G),f(ot,et)&&f(ot[et],j)&&(ot[et][j]=!1);var mt=y(1,G);try{ut(ot,j,mt)}catch(At){if(!(At instanceof vt))throw At;q(ot,j,mt)}};return u&&Mt&&ut(Dt,j,{configurable:!0,set:z}),J(j,tt)},at=Ct[ht],P(at,"toString",function(){return Lt(this).tag}),P(Ct,"withoutSetter",function(k){return J(D(k),k)}),C.f=ft,I.f=yt,A.f=pt,x.f=zt,S.f=E.f=Yt,T.f=W,b.f=function(k){return J(L(k),k)},u&&(N(at,"description",{configurable:!0,get:function(){return Lt(this).description}}),o||P(Dt,"propertyIsEnumerable",ft,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!i,sham:!i},{Symbol:Ct}),st(O($t),function(k){K(k)}),r({target:lt,stat:!0,forced:!i},{useSetter:function(){Mt=!0},useSimple:function(){Mt=!1}}),r({target:"Object",stat:!0,forced:!i,sham:!u},{create:ct,defineProperty:yt,defineProperties:pt,getOwnPropertyDescriptor:zt}),r({target:"Object",stat:!0,forced:!i},{getOwnPropertyNames:Yt}),H(),Q(Ct,lt),F[et]=!0},43657:function(s,l,t){var r=t(14304),n=t(92986),e=t(66009),a=t(11286),o=t(94879),u=t(23583),i=t(95307),v=t(17361),f=t(85500),c=t(93706),d=e.Symbol,h=d&&d.prototype;if(n&&u(d)&&(!("description"in h)||d().description!==void 0)){var g={},p=function(){var I=arguments.length<1||arguments[0]===void 0?void 0:v(arguments[0]),A=i(h,this)?new d(I):I===void 0?d():d(I);return I===""&&(g[A]=!0),A};c(p,d),p.prototype=h,h.constructor=p;var y=String(d("description detection"))==="Symbol(description detection)",m=a(h.valueOf),O=a(h.toString),S=/^Symbol\((.*)\)[^)]+$/,E=a("".replace),T=a("".slice);f(h,"description",{configurable:!0,get:function(){var I=m(this);if(o(g,I))return"";var A=O(I),C=y?T(A,7,-1):E(A,S,"$1");return C===""?void 0:C}}),r({global:!0,constructor:!0,forced:!0},{Symbol:p})}},20872:function(s,l,t){var r=t(14304),n=t(38941),e=t(94879),a=t(17361),o=t(96731),u=t(61190),i=o("string-to-symbol-registry"),v=o("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!u},{for:function(f){var c=a(f);if(e(i,c))return i[c];var d=n("Symbol")(c);return i[c]=d,v[d]=c,d}})},15855:function(s,l,t){var r=t(83749);r("hasInstance")},42026:function(s,l,t){var r=t(83749);r("isConcatSpreadable")},33257:function(s,l,t){var r=t(83749);r("iterator")},40949:function(s,l,t){t(51767),t(20872),t(94762),t(71332),t(45223)},94762:function(s,l,t){var r=t(14304),n=t(94879),e=t(491),a=t(82453),o=t(96731),u=t(61190),i=o("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!u},{keyFor:function(f){if(!e(f))throw new TypeError(a(f)+" is not a symbol");if(n(i,f))return i[f]}})},88344:function(s,l,t){var r=t(83749);r("matchAll")},59414:function(s,l,t){var r=t(83749);r("match")},92579:function(s,l,t){var r=t(83749);r("replace")},94655:function(s,l,t){var r=t(83749);r("search")},8565:function(s,l,t){var r=t(83749);r("species")},60843:function(s,l,t){var r=t(83749);r("split")},65842:function(s,l,t){var r=t(83749),n=t(60796);r("toPrimitive"),n()},51595:function(s,l,t){var r=t(38941),n=t(83749),e=t(78401);n("toStringTag"),e(r("Symbol"),"Symbol")},54908:function(s,l,t){var r=t(83749);r("unscopables")},71998:function(s,l,t){var r=t(88037),n=t(82628),e=t(12105),a=r.aTypedArray,o=r.exportTypedArrayMethod;o("at",function(i){var v=a(this),f=n(v),c=e(i),d=c>=0?c:f+c;return d<0||d>=f?void 0:v[d]})},6116:function(s,l,t){var r=t(11286),n=t(88037),e=t(81499),a=r(e),o=n.aTypedArray,u=n.exportTypedArrayMethod;u("copyWithin",function(v,f){return a(o(this),v,f,arguments.length>2?arguments[2]:void 0)})},33032:function(s,l,t){var r=t(88037),n=t(66655).every,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("every",function(u){return n(e(this),u,arguments.length>1?arguments[1]:void 0)})},80962:function(s,l,t){var r=t(88037),n=t(43011),e=t(11344),a=t(9205),o=t(96499),u=t(11286),i=t(72069),v=r.aTypedArray,f=r.exportTypedArrayMethod,c=u("".slice),d=i(function(){var h=0;return new Int8Array(2).fill({valueOf:function(){return h++}}),h!==1});f("fill",function(g){var p=arguments.length;v(this);var y=c(a(this),0,3)==="Big"?e(g):+g;return o(n,this,y,p>1?arguments[1]:void 0,p>2?arguments[2]:void 0)},d)},49381:function(s,l,t){var r=t(88037),n=t(66655).filter,e=t(3795),a=r.aTypedArray,o=r.exportTypedArrayMethod;o("filter",function(i){var v=n(a(this),i,arguments.length>1?arguments[1]:void 0);return e(this,v)})},65961:function(s,l,t){var r=t(88037),n=t(66655).findIndex,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("findIndex",function(u){return n(e(this),u,arguments.length>1?arguments[1]:void 0)})},16028:function(s,l,t){var r=t(88037),n=t(73849).findLastIndex,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("findLastIndex",function(u){return n(e(this),u,arguments.length>1?arguments[1]:void 0)})},94153:function(s,l,t){var r=t(88037),n=t(73849).findLast,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("findLast",function(u){return n(e(this),u,arguments.length>1?arguments[1]:void 0)})},38344:function(s,l,t){var r=t(88037),n=t(66655).find,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("find",function(u){return n(e(this),u,arguments.length>1?arguments[1]:void 0)})},25560:function(s,l,t){var r=t(80357);r("Float32",function(n){return function(a,o,u){return n(this,a,o,u)}})},22571:function(s,l,t){var r=t(80357);r("Float64",function(n){return function(a,o,u){return n(this,a,o,u)}})},20656:function(s,l,t){var r=t(88037),n=t(66655).forEach,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("forEach",function(u){n(e(this),u,arguments.length>1?arguments[1]:void 0)})},17063:function(s,l,t){var r=t(46868),n=t(88037).exportTypedArrayStaticMethod,e=t(66169);n("from",e,r)},21774:function(s,l,t){var r=t(88037),n=t(94319).includes,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("includes",function(u){return n(e(this),u,arguments.length>1?arguments[1]:void 0)})},51761:function(s,l,t){var r=t(88037),n=t(94319).indexOf,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("indexOf",function(u){return n(e(this),u,arguments.length>1?arguments[1]:void 0)})},36849:function(s,l,t){var r=t(80357);r("Int16",function(n){return function(a,o,u){return n(this,a,o,u)}})},49191:function(s,l,t){var r=t(80357);r("Int32",function(n){return function(a,o,u){return n(this,a,o,u)}})},40704:function(s,l,t){var r=t(80357);r("Int8",function(n){return function(a,o,u){return n(this,a,o,u)}})},12317:function(s,l,t){var r=t(66009),n=t(72069),e=t(11286),a=t(88037),o=t(35054),u=t(18565),i=u("iterator"),v=r.Uint8Array,f=e(o.values),c=e(o.keys),d=e(o.entries),h=a.aTypedArray,g=a.exportTypedArrayMethod,p=v&&v.prototype,y=!n(function(){p[i].call([1])}),m=!!p&&p.values&&p[i]===p.values&&p.values.name==="values",O=function(){return f(h(this))};g("entries",function(){return d(h(this))},y),g("keys",function(){return c(h(this))},y),g("values",O,y||!m,{name:"values"}),g(i,O,y||!m,{name:"values"})},19711:function(s,l,t){var r=t(88037),n=t(11286),e=r.aTypedArray,a=r.exportTypedArrayMethod,o=n([].join);a("join",function(i){return o(e(this),i)})},41034:function(s,l,t){var r=t(88037),n=t(66543),e=t(58465),a=r.aTypedArray,o=r.exportTypedArrayMethod;o("lastIndexOf",function(i){var v=arguments.length;return n(e,a(this),v>1?[i,arguments[1]]:[i])})},13313:function(s,l,t){var r=t(88037),n=t(66655).map,e=t(21822),a=r.aTypedArray,o=r.exportTypedArrayMethod;o("map",function(i){return n(a(this),i,arguments.length>1?arguments[1]:void 0,function(v,f){return new(e(v))(f)})})},44698:function(s,l,t){var r=t(88037),n=t(46868),e=r.aTypedArrayConstructor,a=r.exportTypedArrayStaticMethod;a("of",function(){for(var u=0,i=arguments.length,v=new(e(this))(i);i>u;)v[u]=arguments[u++];return v},n)},66178:function(s,l,t){var r=t(88037),n=t(97264).right,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("reduceRight",function(u){var i=arguments.length;return n(e(this),u,i,i>1?arguments[1]:void 0)})},7369:function(s,l,t){var r=t(88037),n=t(97264).left,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("reduce",function(u){var i=arguments.length;return n(e(this),u,i,i>1?arguments[1]:void 0)})},67961:function(s,l,t){var r=t(88037),n=r.aTypedArray,e=r.exportTypedArrayMethod,a=Math.floor;e("reverse",function(){for(var u=this,i=n(u).length,v=a(i/2),f=0,c;f<v;)c=u[f],u[f++]=u[--i],u[i]=c;return u})},8695:function(s,l,t){var r=t(66009),n=t(96499),e=t(88037),a=t(82628),o=t(58143),u=t(49671),i=t(72069),v=r.RangeError,f=r.Int8Array,c=f&&f.prototype,d=c&&c.set,h=e.aTypedArray,g=e.exportTypedArrayMethod,p=!i(function(){var m=new Uint8ClampedArray(2);return n(d,m,{length:1,0:3},1),m[1]!==3}),y=p&&e.NATIVE_ARRAY_BUFFER_VIEWS&&i(function(){var m=new f(2);return m.set(1),m.set("2",1),m[0]!==0||m[1]!==2});g("set",function(O){h(this);var S=o(arguments.length>1?arguments[1]:void 0,1),E=u(O);if(p)return n(d,this,E,S);var T=this.length,x=a(E),I=0;if(x+S>T)throw new v("Wrong length");for(;I<x;)this[S+I]=E[I++]},!p||y)},69997:function(s,l,t){var r=t(88037),n=t(21822),e=t(72069),a=t(22806),o=r.aTypedArray,u=r.exportTypedArrayMethod,i=e(function(){new Int8Array(1).slice()});u("slice",function(f,c){for(var d=a(o(this),f,c),h=n(this),g=0,p=d.length,y=new h(p);p>g;)y[g]=d[g++];return y},i)},9711:function(s,l,t){var r=t(88037),n=t(66655).some,e=r.aTypedArray,a=r.exportTypedArrayMethod;a("some",function(u){return n(e(this),u,arguments.length>1?arguments[1]:void 0)})},3923:function(s,l,t){var r=t(66009),n=t(77422),e=t(72069),a=t(85156),o=t(13270),u=t(88037),i=t(54040),v=t(87216),f=t(73126),c=t(68674),d=u.aTypedArray,h=u.exportTypedArrayMethod,g=r.Uint16Array,p=g&&n(g.prototype.sort),y=!!p&&!(e(function(){p(new g(2),null)})&&e(function(){p(new g(2),{})})),m=!!p&&!e(function(){if(f)return f<74;if(i)return i<67;if(v)return!0;if(c)return c<602;var S=new g(516),E=Array(516),T,x;for(T=0;T<516;T++)x=T%4,S[T]=515-T,E[T]=T-2*x+3;for(p(S,function(I,A){return(I/4|0)-(A/4|0)}),T=0;T<516;T++)if(S[T]!==E[T])return!0}),O=function(S){return function(E,T){return S!==void 0?+S(E,T)||0:T!==T?-1:E!==E?1:E===0&&T===0?1/E>0&&1/T<0?1:-1:E>T}};h("sort",function(E){return E!==void 0&&a(E),m?p(this,E):o(d(this),O(E))},!m||y)},59728:function(s,l,t){var r=t(88037),n=t(45344),e=t(4652),a=t(21822),o=r.aTypedArray,u=r.exportTypedArrayMethod;u("subarray",function(v,f){var c=o(this),d=c.length,h=e(v,d),g=a(c);return new g(c.buffer,c.byteOffset+h*c.BYTES_PER_ELEMENT,n((f===void 0?d:e(f,d))-h))})},85227:function(s,l,t){var r=t(66009),n=t(66543),e=t(88037),a=t(72069),o=t(22806),u=r.Int8Array,i=e.aTypedArray,v=e.exportTypedArrayMethod,f=[].toLocaleString,c=!!u&&a(function(){f.call(new u(1))}),d=a(function(){return[1,2].toLocaleString()!==new u([1,2]).toLocaleString()})||!a(function(){u.prototype.toLocaleString.call([1,2])});v("toLocaleString",function(){return n(f,c?o(i(this)):i(this),o(arguments))},d)},56933:function(s,l,t){var r=t(61638),n=t(88037),e=n.aTypedArray,a=n.exportTypedArrayMethod,o=n.getTypedArrayConstructor;a("toReversed",function(){return r(e(this),o(this))})},91490:function(s,l,t){var r=t(88037),n=t(11286),e=t(85156),a=t(5220),o=r.aTypedArray,u=r.getTypedArrayConstructor,i=r.exportTypedArrayMethod,v=n(r.TypedArrayPrototype.sort);i("toSorted",function(c){c!==void 0&&e(c);var d=o(this),h=a(u(d),d);return v(h,c)})},61766:function(s,l,t){var r=t(88037).exportTypedArrayMethod,n=t(72069),e=t(66009),a=t(11286),o=e.Uint8Array,u=o&&o.prototype||{},i=[].toString,v=a([].join);n(function(){i.call({})})&&(i=function(){return v(this)});var f=u.toString!==i;r("toString",i,f)},44884:function(s,l,t){var r=t(80357);r("Uint16",function(n){return function(a,o,u){return n(this,a,o,u)}})},48658:function(s,l,t){var r=t(80357);r("Uint32",function(n){return function(a,o,u){return n(this,a,o,u)}})},81083:function(s,l,t){var r=t(80357);r("Uint8",function(n){return function(a,o,u){return n(this,a,o,u)}})},27428:function(s,l,t){var r=t(80357);r("Uint8",function(n){return function(a,o,u){return n(this,a,o,u)}},!0)},85143:function(s,l,t){var r=t(72302),n=t(88037),e=t(77129),a=t(12105),o=t(11344),u=n.aTypedArray,i=n.getTypedArrayConstructor,v=n.exportTypedArrayMethod,f=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(c){return c===8}}();v("with",function(c,d){var h=u(this),g=a(c),p=e(h)?o(d):+d;return r(h,i(h),g,p)},!f)},47005:function(s,l,t){var r=t(14304),n=t(11286),e=t(17361),a=String.fromCharCode,o=n("".charAt),u=n(/./.exec),i=n("".slice),v=/^[\da-f]{2}$/i,f=/^[\da-f]{4}$/i;r({global:!0},{unescape:function(d){for(var h=e(d),g="",p=h.length,y=0,m,O;y<p;){if(m=o(h,y++),m==="%"){if(o(h,y)==="u"){if(O=i(h,y+1,y+5),u(f,O)){g+=a(parseInt(O,16)),y+=5;continue}}else if(O=i(h,y,y+2),u(v,O)){g+=a(parseInt(O,16)),y+=2;continue}}g+=m}return g}})},21084:function(s,l,t){var r=t(27534),n=t(66009),e=t(11286),a=t(2725),o=t(31853),u=t(89378),i=t(94667),v=t(37540),f=t(82367).enforce,c=t(72069),d=t(42960),h=Object,g=Array.isArray,p=h.isExtensible,y=h.isFrozen,m=h.isSealed,O=h.freeze,S=h.seal,E=!n.ActiveXObject&&"ActiveXObject"in n,T,x=function(F){return function(){return F(this,arguments.length?arguments[0]:void 0)}},I=u("WeakMap",x,i),A=I.prototype,C=e(A.set),P=function(){return r&&c(function(){var F=O([]);return C(new I,F,1),!y(F)})};if(d)if(E){T=i.getConstructor(x,"WeakMap",!0),o.enable();var N=e(A.delete),$=e(A.has),U=e(A.get);a(A,{delete:function(F){if(v(F)&&!p(F)){var D=f(this);return D.frozen||(D.frozen=new T),N(this,F)||D.frozen.delete(F)}return N(this,F)},has:function(D){if(v(D)&&!p(D)){var L=f(this);return L.frozen||(L.frozen=new T),$(this,D)||L.frozen.has(D)}return $(this,D)},get:function(D){if(v(D)&&!p(D)){var L=f(this);return L.frozen||(L.frozen=new T),$(this,D)?U(this,D):L.frozen.get(D)}return U(this,D)},set:function(D,L){if(v(D)&&!p(D)){var b=f(this);b.frozen||(b.frozen=new T),$(this,D)?C(this,D,L):b.frozen.set(D,L)}else C(this,D,L);return this}})}else P()&&a(A,{set:function(D,L){var b;return g(D)&&(y(D)?b=O:m(D)&&(b=S)),C(this,D,L),b&&b(D),this}})},10042:function(s,l,t){t(21084)},58990:function(s,l,t){var r=t(89378),n=t(94667);r("WeakSet",function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}},n)},37888:function(s,l,t){t(58990)},19431:function(s,l,t){var r=t(14304),n=t(66009),e=t(38941),a=t(11286),o=t(96499),u=t(72069),i=t(17361),v=t(95486),f=t(6210).c2i,c=/[^\d+/a-z]/i,d=/[\t\n\f\r ]+/g,h=/[=]{1,2}$/,g=e("atob"),p=String.fromCharCode,y=a("".charAt),m=a("".replace),O=a(c.exec),S=!!g&&!u(function(){return g("aGk=")!=="hi"}),E=S&&u(function(){return g(" ")!==""}),T=S&&!u(function(){g("a")}),x=S&&!u(function(){g()}),I=S&&g.length!==1,A=!S||E||T||x||I;r({global:!0,bind:!0,enumerable:!0,forced:A},{atob:function(P){if(v(arguments.length,1),S&&!E&&!T)return o(g,n,P);var N=m(i(P),d,""),$="",U=0,F=0,D,L,b;if(N.length%4===0&&(N=m(N,h,"")),D=N.length,D%4===1||O(c,N))throw new(e("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;U<D;)L=y(N,U++),b=F%4?b*64+f[L]:f[L],F++%4&&($+=p(255&b>>(-2*F&6)));return $}})},60869:function(s,l,t){var r=t(14304),n=t(66009),e=t(38941),a=t(11286),o=t(96499),u=t(72069),i=t(17361),v=t(95486),f=t(6210).i2c,c=e("btoa"),d=a("".charAt),h=a("".charCodeAt),g=!!c&&!u(function(){return c("hi")!=="aGk="}),p=g&&!u(function(){c()}),y=g&&u(function(){return c(null)!=="bnVsbA=="}),m=g&&c.length!==1;r({global:!0,bind:!0,enumerable:!0,forced:!g||p||y||m},{btoa:function(S){if(v(arguments.length,1),g)return o(c,n,i(S));for(var E=i(S),T="",x=0,I=f,A,C;d(E,x)||(I="=",x%1);){if(C=h(E,x+=.75),C>255)throw new(e("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");A=A<<8|C,T+=d(I,63&A>>8-x%1*8)}return T}})},66722:function(s,l,t){var r=t(14304),n=t(66009),e=t(23115).clear;r({global:!0,bind:!0,enumerable:!0,forced:n.clearImmediate!==e},{clearImmediate:e})},50338:function(s,l,t){var r=t(66009),n=t(93014),e=t(39882),a=t(13349),o=t(90809),u=function(v){if(v&&v.forEach!==a)try{o(v,"forEach",a)}catch(f){v.forEach=a}};for(var i in n)n[i]&&u(r[i]&&r[i].prototype);u(e)},53059:function(s,l,t){var r=t(66009),n=t(93014),e=t(39882),a=t(35054),o=t(90809),u=t(78401),i=t(18565),v=i("iterator"),f=a.values,c=function(h,g){if(h){if(h[v]!==f)try{o(h,v,f)}catch(y){h[v]=f}if(u(h,g,!0),n[g]){for(var p in a)if(h[p]!==a[p])try{o(h,p,a[p])}catch(y){h[p]=a[p]}}}};for(var d in n)c(r[d]&&r[d].prototype,d);c(e,"DOMTokenList")},5805:function(s,l,t){var r=t(14304),n=t(18096),e=t(38941),a=t(72069),o=t(5406),u=t(18526),i=t(7831).f,v=t(16142),f=t(85500),c=t(94879),d=t(12833),h=t(25001),g=t(58434),p=t(15453),y=t(74408),m=t(40851),O=t(82367),S=t(92986),E=t(70457),T="DOMException",x="DATA_CLONE_ERR",I=e("Error"),A=e(T)||function(){try{var at=e("MessageChannel")||n("worker_threads").MessageChannel;new at().port1.postMessage(new WeakMap)}catch(vt){if(vt.name===x&&vt.code===25)return vt.constructor}}(),C=A&&A.prototype,P=I.prototype,N=O.set,$=O.getterFor(T),U="stack"in new I(T),F=function(at){return c(y,at)&&y[at].m?y[at].c:0},D=function(){d(this,L);var vt=arguments.length,St=p(vt<1?void 0:arguments[0]),Rt=p(vt<2?void 0:arguments[1],"Error"),Tt=F(Rt);if(N(this,{type:T,name:Rt,message:St,code:Tt}),S||(this.name=Rt,this.message=St,this.code=Tt),U){var Nt=new I(St);Nt.name=T,i(this,"stack",u(1,m(Nt.stack,1)))}},L=D.prototype=o(P),b=function(at){return{enumerable:!0,configurable:!0,get:at}},K=function(at){return b(function(){return $(this)[at]})};S&&(f(L,"code",K("code")),f(L,"message",K("message")),f(L,"name",K("name"))),i(L,"constructor",u(1,D));var H=a(function(){return!(new A instanceof I)}),Q=H||a(function(){return P.toString!==g||String(new A(1,2))!=="2: 1"}),X=H||a(function(){return new A(1,"DataCloneError").code!==25}),st=H||A[x]!==25||C[x]!==25,et=E?Q||X||st:H;r({global:!0,constructor:!0,forced:et},{DOMException:et?D:A});var lt=e(T),ht=lt.prototype;Q&&(E||A===lt)&&v(ht,"toString",g),X&&S&&A===lt&&f(ht,"code",b(function(){return F(h(this).name)}));for(var gt in y)if(c(y,gt)){var Lt=y[gt],Dt=Lt.s,Ct=u(6,Lt.c);c(lt,Dt)||i(lt,Dt,Ct),c(ht,Dt)||i(ht,Dt,Ct)}},50685:function(s,l,t){var r=t(14304),n=t(66009),e=t(38941),a=t(18526),o=t(7831).f,u=t(94879),i=t(12833),v=t(32345),f=t(15453),c=t(74408),d=t(40851),h=t(92986),g=t(70457),p="DOMException",y=e("Error"),m=e(p),O=function(){i(this,S);var D=arguments.length,L=f(D<1?void 0:arguments[0]),b=f(D<2?void 0:arguments[1],"Error"),K=new m(L,b),H=new y(L);return H.name=p,o(K,"stack",a(1,d(H.stack,1))),v(K,this,O),K},S=O.prototype=m.prototype,E="stack"in new y(p),T="stack"in new m(1,2),x=m&&h&&Object.getOwnPropertyDescriptor(n,p),I=!!x&&!(x.writable&&x.configurable),A=E&&!I&&!T;r({global:!0,constructor:!0,forced:g||A},{DOMException:A?O:m});var C=e(p),P=C.prototype;if(P.constructor!==C){g||o(P,"constructor",a(1,C));for(var N in c)if(u(c,N)){var $=c[N],U=$.s;u(C,U)||o(C,U,a(6,$.c))}}},70649:function(s,l,t){var r=t(38941),n=t(78401),e="DOMException";n(r(e),e)},39842:function(s,l,t){t(66722),t(8235)},82872:function(s,l,t){var r=t(14304),n=t(66009),e=t(9709),a=t(85156),o=t(95486),u=t(72069),i=t(92986),v=u(function(){return i&&Object.getOwnPropertyDescriptor(n,"queueMicrotask").value.length!==1});r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:v},{queueMicrotask:function(c){o(arguments.length,1),e(a(c))}})},91401:function(s,l,t){var r=t(14304),n=t(66009),e=t(85500),a=t(92986),o=TypeError,u=Object.defineProperty,i=n.self!==n;try{if(a){var v=Object.getOwnPropertyDescriptor(n,"self");(i||!v||!v.get||!v.enumerable)&&e(n,"self",{get:function(){return n},set:function(c){if(this!==n)throw new o("Illegal invocation");u(n,"self",{value:c,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else r({global:!0,simple:!0,forced:i},{self:n})}catch(f){}},8235:function(s,l,t){var r=t(14304),n=t(66009),e=t(23115).set,a=t(9934),o=n.setImmediate?a(e,!1):e;r({global:!0,bind:!0,enumerable:!0,forced:n.setImmediate!==o},{setImmediate:o})},63981:function(s,l,t){var r=t(14304),n=t(66009),e=t(9934),a=e(n.setInterval,!0);r({global:!0,bind:!0,forced:n.setInterval!==a},{setInterval:a})},23913:function(s,l,t){var r=t(14304),n=t(66009),e=t(9934),a=e(n.setTimeout,!0);r({global:!0,bind:!0,forced:n.setTimeout!==a},{setTimeout:a})},92904:function(s,l,t){var r=t(70457),n=t(14304),e=t(66009),a=t(38941),o=t(11286),u=t(72069),i=t(36374),v=t(23583),f=t(11051),c=t(5683),d=t(37540),h=t(491),g=t(55902),p=t(25001),y=t(9205),m=t(94879),O=t(84082),S=t(90809),E=t(82628),T=t(95486),x=t(54932),I=t(1774),A=t(172),C=t(35051),P=t(63741),N=t(16929),$=t(99050),U=e.Object,F=e.Array,D=e.Date,L=e.Error,b=e.TypeError,K=e.PerformanceMark,H=a("DOMException"),Q=I.Map,X=I.has,st=I.get,et=I.set,lt=A.Set,ht=A.add,gt=A.has,Lt=a("Object","keys"),Dt=o([].push),Ct=o((!0).valueOf),at=o(1 .valueOf),vt=o("".valueOf),St=o(D.prototype.getTime),Rt=i("structuredClone"),Tt="DataCloneError",Nt="Transferring",Ht=function(W){return!u(function(){var k=new e.Set([7]),tt=W(k),j=W(U(7));return tt===k||!tt.has(7)||!d(j)||+j!=7})&&W},Wt=function(W,k){return!u(function(){var tt=new k,j=W({a:tt,b:tt});return!(j&&j.a===j.b&&j.a instanceof k&&j.a.stack===tt.stack)})},bt=function(W){return!u(function(){var k=W(new e.AggregateError([1],Rt,{cause:3}));return k.name!=="AggregateError"||k.errors[0]!==1||k.message!==Rt||k.cause!==3})},Pt=e.structuredClone,Vt=r||!Wt(Pt,L)||!Wt(Pt,H)||!bt(Pt),$t=!Pt&&Ht(function(W){return new K(Rt,{detail:W}).detail}),Mt=Ht(Pt)||$t,q=function(W){throw new H("Uncloneable type: "+W,Tt)},ut=function(W,k){throw new H((k||"Cloning")+" of "+W+" cannot be properly polyfilled in this engine",Tt)},J=function(W,k){return Mt||ut(k),Mt(W)},yt=function(){var W;try{W=new e.DataTransfer}catch(k){try{W=new e.ClipboardEvent("").clipboardData}catch(tt){}}return W&&W.items&&W.files?W:null},pt=function(W,k,tt){if(X(k,W))return st(k,W);var j=tt||y(W),z,G,ot,mt,At,Bt;if(j==="SharedArrayBuffer")Mt?z=Mt(W):z=W;else{var jt=e.DataView;!jt&&!v(W.slice)&&ut("ArrayBuffer");try{if(v(W.slice)&&!W.resizable)z=W.slice(0);else for(G=W.byteLength,ot=("maxByteLength"in W)?{maxByteLength:W.maxByteLength}:void 0,z=new ArrayBuffer(G,ot),mt=new jt(W),At=new jt(z),Bt=0;Bt<G;Bt++)At.setUint8(Bt,mt.getUint8(Bt))}catch(Ut){throw new H("ArrayBuffer is detached",Tt)}}return et(k,W,z),z},ct=function(W,k,tt,j,z){var G=e[k];return d(G)||ut(k),new G(pt(W.buffer,z),tt,j)},ft=function(W,k){if(h(W)&&q("Symbol"),!d(W))return W;if(k){if(X(k,W))return st(k,W)}else k=new Q;var tt=y(W),j,z,G,ot,mt,At,Bt,jt;switch(tt){case"Array":G=F(E(W));break;case"Object":G={};break;case"Map":G=new Q;break;case"Set":G=new lt;break;case"RegExp":G=new RegExp(W.source,x(W));break;case"Error":switch(z=W.name,z){case"AggregateError":G=new(a(z))([]);break;case"EvalError":case"RangeError":case"ReferenceError":case"SuppressedError":case"SyntaxError":case"TypeError":case"URIError":G=new(a(z));break;case"CompileError":case"LinkError":case"RuntimeError":G=new(a("WebAssembly",z));break;default:G=new L}break;case"DOMException":G=new H(W.message,W.name);break;case"ArrayBuffer":case"SharedArrayBuffer":G=pt(W,k,tt);break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float16Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":At=tt==="DataView"?W.byteLength:W.length,G=ct(W,tt,W.byteOffset,At,k);break;case"DOMQuad":try{G=new DOMQuad(ft(W.p1,k),ft(W.p2,k),ft(W.p3,k),ft(W.p4,k))}catch(Ut){G=J(W,tt)}break;case"File":if(Mt)try{G=Mt(W),y(G)!==tt&&(G=void 0)}catch(Ut){}if(!G)try{G=new File([W],W.name,W)}catch(Ut){}G||ut(tt);break;case"FileList":if(ot=yt(),ot){for(mt=0,At=E(W);mt<At;mt++)ot.items.add(ft(W[mt],k));G=ot.files}else G=J(W,tt);break;case"ImageData":try{G=new ImageData(ft(W.data,k),W.width,W.height,{colorSpace:W.colorSpace})}catch(Ut){G=J(W,tt)}break;default:if(Mt)G=Mt(W);else switch(tt){case"BigInt":G=U(W.valueOf());break;case"Boolean":G=U(Ct(W));break;case"Number":G=U(at(W));break;case"String":G=U(vt(W));break;case"Date":G=new D(St(W));break;case"Blob":try{G=W.slice(0,W.size,W.type)}catch(Ut){ut(tt)}break;case"DOMPoint":case"DOMPointReadOnly":j=e[tt];try{G=j.fromPoint?j.fromPoint(W):new j(W.x,W.y,W.z,W.w)}catch(Ut){ut(tt)}break;case"DOMRect":case"DOMRectReadOnly":j=e[tt];try{G=j.fromRect?j.fromRect(W):new j(W.x,W.y,W.width,W.height)}catch(Ut){ut(tt)}break;case"DOMMatrix":case"DOMMatrixReadOnly":j=e[tt];try{G=j.fromMatrix?j.fromMatrix(W):new j(W)}catch(Ut){ut(tt)}break;case"AudioData":case"VideoFrame":v(W.clone)||ut(tt);try{G=W.clone()}catch(Ut){q(tt)}break;case"CropTarget":case"CryptoKey":case"FileSystemDirectoryHandle":case"FileSystemFileHandle":case"FileSystemHandle":case"GPUCompilationInfo":case"GPUCompilationMessage":case"ImageBitmap":case"RTCCertificate":case"WebAssembly.Module":ut(tt);default:q(tt)}}switch(et(k,W,G),tt){case"Array":case"Object":for(Bt=Lt(W),mt=0,At=E(Bt);mt<At;mt++)jt=Bt[mt],O(G,jt,ft(W[jt],k));break;case"Map":W.forEach(function(Ut,Qt){et(G,ft(Qt,k),ft(Ut,k))});break;case"Set":W.forEach(function(Ut){ht(G,ft(Ut,k))});break;case"Error":S(G,"message",ft(W.message,k)),m(W,"cause")&&S(G,"cause",ft(W.cause,k)),z==="AggregateError"?G.errors=ft(W.errors,k):z==="SuppressedError"&&(G.error=ft(W.error,k),G.suppressed=ft(W.suppressed,k));case"DOMException":N&&S(G,"stack",ft(W.stack,k))}return G},zt=function(W,k){if(!d(W))throw new b("Transfer option cannot be converted to a sequence");var tt=[];g(W,function(Qt){Dt(tt,p(Qt))});for(var j=0,z=E(tt),G=new lt,ot,mt,At,Bt,jt,Ut;j<z;){if(ot=tt[j++],mt=y(ot),mt==="ArrayBuffer"?gt(G,ot):X(k,ot))throw new H("Duplicate transferable",Tt);if(mt==="ArrayBuffer"){ht(G,ot);continue}if($)Bt=Pt(ot,{transfer:[ot]});else switch(mt){case"ImageBitmap":At=e.OffscreenCanvas,f(At)||ut(mt,Nt);try{jt=new At(ot.width,ot.height),Ut=jt.getContext("bitmaprenderer"),Ut.transferFromImageBitmap(ot),Bt=jt.transferToImageBitmap()}catch(Qt){}break;case"AudioData":case"VideoFrame":(!v(ot.clone)||!v(ot.close))&&ut(mt,Nt);try{Bt=ot.clone(),ot.close()}catch(Qt){}break;case"MediaSourceHandle":case"MessagePort":case"OffscreenCanvas":case"ReadableStream":case"TransformStream":case"WritableStream":ut(mt,Nt)}if(Bt===void 0)throw new H("This object cannot be transferred: "+mt,Tt);et(k,ot,Bt)}return G},Yt=function(W){C(W,function(k){$?Mt(k,{transfer:[k]}):v(k.transfer)?k.transfer():P?P(k):ut("ArrayBuffer",Nt)})};n({global:!0,enumerable:!0,sham:!$,forced:Vt},{structuredClone:function(k){var tt=T(arguments.length,1)>1&&!c(arguments[1])?p(arguments[1]):void 0,j=tt?tt.transfer:void 0,z,G;j!==void 0&&(z=new Q,G=zt(j,z));var ot=ft(k,z);return G&&Yt(G),ot}})},28381:function(s,l,t){t(63981),t(23913)},98812:function(s,l,t){t(35054);var r=t(14304),n=t(66009),e=t(28167),a=t(96499),o=t(11286),u=t(92986),i=t(91918),v=t(16142),f=t(85500),c=t(2725),d=t(78401),h=t(26820),g=t(82367),p=t(12833),y=t(23583),m=t(94879),O=t(45526),S=t(9205),E=t(25001),T=t(37540),x=t(17361),I=t(5406),A=t(18526),C=t(90619),P=t(81077),N=t(10659),$=t(95486),U=t(18565),F=t(13270),D=U("iterator"),L="URLSearchParams",b=L+"Iterator",K=g.set,H=g.getterFor(L),Q=g.getterFor(b),X=e("fetch"),st=e("Request"),et=e("Headers"),lt=st&&st.prototype,ht=et&&et.prototype,gt=n.RegExp,Lt=n.TypeError,Dt=n.decodeURIComponent,Ct=n.encodeURIComponent,at=o("".charAt),vt=o([].join),St=o([].push),Rt=o("".replace),Tt=o([].shift),Nt=o([].splice),Ht=o("".split),Wt=o("".slice),bt=/\+/g,Pt=Array(4),Vt=function(j){return Pt[j-1]||(Pt[j-1]=gt("((?:%[\\da-f]{2}){"+j+"})","gi"))},$t=function(j){try{return Dt(j)}catch(z){return j}},Mt=function(j){var z=Rt(j,bt," "),G=4;try{return Dt(z)}catch(ot){for(;G;)z=Rt(z,Vt(G--),$t);return z}},q=/[!'()~]|%20/g,ut={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},J=function(j){return ut[j]},yt=function(j){return Rt(Ct(j),q,J)},pt=h(function(z,G){K(this,{type:b,target:H(z).entries,index:0,kind:G})},L,function(){var z=Q(this),G=z.target,ot=z.index++;if(!G||ot>=G.length)return z.target=void 0,N(void 0,!0);var mt=G[ot];switch(z.kind){case"keys":return N(mt.key,!1);case"values":return N(mt.value,!1)}return N([mt.key,mt.value],!1)},!0),ct=function(j){this.entries=[],this.url=null,j!==void 0&&(T(j)?this.parseObject(j):this.parseQuery(typeof j=="string"?at(j,0)==="?"?Wt(j,1):j:x(j)))};ct.prototype={type:L,bindURL:function(j){this.url=j,this.update()},parseObject:function(j){var z=this.entries,G=P(j),ot,mt,At,Bt,jt,Ut,Qt;if(G)for(ot=C(j,G),mt=ot.next;!(At=a(mt,ot)).done;){if(Bt=C(E(At.value)),jt=Bt.next,(Ut=a(jt,Bt)).done||(Qt=a(jt,Bt)).done||!a(jt,Bt).done)throw new Lt("Expected sequence with length 2");St(z,{key:x(Ut.value),value:x(Qt.value)})}else for(var fr in j)m(j,fr)&&St(z,{key:fr,value:x(j[fr])})},parseQuery:function(j){if(j)for(var z=this.entries,G=Ht(j,"&"),ot=0,mt,At;ot<G.length;)mt=G[ot++],mt.length&&(At=Ht(mt,"="),St(z,{key:Mt(Tt(At)),value:Mt(vt(At,"="))}))},serialize:function(){for(var j=this.entries,z=[],G=0,ot;G<j.length;)ot=j[G++],St(z,yt(ot.key)+"="+yt(ot.value));return vt(z,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var ft=function(){p(this,zt);var z=arguments.length>0?arguments[0]:void 0,G=K(this,new ct(z));u||(this.size=G.entries.length)},zt=ft.prototype;if(c(zt,{append:function(z,G){var ot=H(this);$(arguments.length,2),St(ot.entries,{key:x(z),value:x(G)}),u||this.length++,ot.updateURL()},delete:function(j){for(var z=H(this),G=$(arguments.length,1),ot=z.entries,mt=x(j),At=G<2?void 0:arguments[1],Bt=At===void 0?At:x(At),jt=0;jt<ot.length;){var Ut=ot[jt];if(Ut.key===mt&&(Bt===void 0||Ut.value===Bt)){if(Nt(ot,jt,1),Bt!==void 0)break}else jt++}u||(this.size=ot.length),z.updateURL()},get:function(z){var G=H(this).entries;$(arguments.length,1);for(var ot=x(z),mt=0;mt<G.length;mt++)if(G[mt].key===ot)return G[mt].value;return null},getAll:function(z){var G=H(this).entries;$(arguments.length,1);for(var ot=x(z),mt=[],At=0;At<G.length;At++)G[At].key===ot&&St(mt,G[At].value);return mt},has:function(z){for(var G=H(this).entries,ot=$(arguments.length,1),mt=x(z),At=ot<2?void 0:arguments[1],Bt=At===void 0?At:x(At),jt=0;jt<G.length;){var Ut=G[jt++];if(Ut.key===mt&&(Bt===void 0||Ut.value===Bt))return!0}return!1},set:function(z,G){var ot=H(this);$(arguments.length,1);for(var mt=ot.entries,At=!1,Bt=x(z),jt=x(G),Ut=0,Qt;Ut<mt.length;Ut++)Qt=mt[Ut],Qt.key===Bt&&(At?Nt(mt,Ut--,1):(At=!0,Qt.value=jt));At||St(mt,{key:Bt,value:jt}),u||(this.size=mt.length),ot.updateURL()},sort:function(){var z=H(this);F(z.entries,function(G,ot){return G.key>ot.key?1:-1}),z.updateURL()},forEach:function(z){for(var G=H(this).entries,ot=O(z,arguments.length>1?arguments[1]:void 0),mt=0,At;mt<G.length;)At=G[mt++],ot(At.value,At.key,this)},keys:function(){return new pt(this,"keys")},values:function(){return new pt(this,"values")},entries:function(){return new pt(this,"entries")}},{enumerable:!0}),v(zt,D,zt.entries,{name:"entries"}),v(zt,"toString",function(){return H(this).serialize()},{enumerable:!0}),u&&f(zt,"size",{get:function(){return H(this).entries.length},configurable:!0,enumerable:!0}),d(ft,L),r({global:!0,constructor:!0,forced:!i},{URLSearchParams:ft}),!i&&y(et)){var Yt=o(ht.has),W=o(ht.set),k=function(j){if(T(j)){var z=j.body,G;if(S(z)===L)return G=j.headers?new et(j.headers):new et,Yt(G,"content-type")||W(G,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),I(j,{body:A(0,x(z)),headers:A(0,G)})}return j};if(y(X)&&r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(z){return X(z,arguments.length>1?k(arguments[1]):{})}}),y(st)){var tt=function(z){return p(this,lt),new st(z,arguments.length>1?k(arguments[1]):{})};lt.constructor=tt,tt.prototype=lt,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:tt})}}s.exports={URLSearchParams:ft,getState:H}},10901:function(s,l,t){var r=t(16142),n=t(11286),e=t(17361),a=t(95486),o=URLSearchParams,u=o.prototype,i=n(u.append),v=n(u.delete),f=n(u.forEach),c=n([].push),d=new o("a=1&a=2&b=3");d.delete("a",1),d.delete("b",void 0),d+""!="a=2"&&r(u,"delete",function(h){var g=arguments.length,p=g<2?void 0:arguments[1];if(g&&p===void 0)return v(this,h);var y=[];f(this,function(A,C){c(y,{key:C,value:A})}),a(g,1);for(var m=e(h),O=e(p),S=0,E=0,T=!1,x=y.length,I;S<x;)I=y[S++],T||I.key===m?(T=!0,v(this,I.key)):E++;for(;E<x;)I=y[E++],I.key===m&&I.value===O||i(this,I.key,I.value)},{enumerable:!0,unsafe:!0})},93944:function(s,l,t){var r=t(16142),n=t(11286),e=t(17361),a=t(95486),o=URLSearchParams,u=o.prototype,i=n(u.getAll),v=n(u.has),f=new o("a=1");(f.has("a",2)||!f.has("a",void 0))&&r(u,"has",function(d){var h=arguments.length,g=h<2?void 0:arguments[1];if(h&&g===void 0)return v(this,d);var p=i(this,d);a(h,1);for(var y=e(g),m=0;m<p.length;)if(p[m++]===y)return!0;return!1},{enumerable:!0,unsafe:!0})},86650:function(s,l,t){t(98812)},79043:function(s,l,t){var r=t(92986),n=t(11286),e=t(85500),a=URLSearchParams.prototype,o=n(a.forEach);r&&!("size"in a)&&e(a,"size",{get:function(){var i=0;return o(this,function(){i++}),i},configurable:!0,enumerable:!0})},20760:function(s,l,t){var r=t(14304),n=t(38941),e=t(72069),a=t(95486),o=t(17361),u=t(91918),i=n("URL"),v=u&&e(function(){i.canParse()}),f=e(function(){return i.canParse.length!==1});r({target:"URL",stat:!0,forced:!v||f},{canParse:function(d){var h=a(arguments.length,1),g=o(d),p=h<2||arguments[1]===void 0?void 0:o(arguments[1]);try{return!!new i(g,p)}catch(y){return!1}}})},81888:function(s,l,t){t(59158);var r=t(14304),n=t(92986),e=t(91918),a=t(66009),o=t(45526),u=t(11286),i=t(16142),v=t(85500),f=t(12833),c=t(94879),d=t(16667),h=t(48258),g=t(22806),p=t(22149).codeAt,y=t(38679),m=t(17361),O=t(78401),S=t(95486),E=t(98812),T=t(82367),x=T.set,I=T.getterFor("URL"),A=E.URLSearchParams,C=E.getState,P=a.URL,N=a.TypeError,$=a.parseInt,U=Math.floor,F=Math.pow,D=u("".charAt),L=u(/./.exec),b=u([].join),K=u(1 .toString),H=u([].pop),Q=u([].push),X=u("".replace),st=u([].shift),et=u("".split),lt=u("".slice),ht=u("".toLowerCase),gt=u([].unshift),Lt="Invalid authority",Dt="Invalid scheme",Ct="Invalid host",at="Invalid port",vt=/[a-z]/i,St=/[\d+-.a-z]/i,Rt=/\d/,Tt=/^0x/i,Nt=/^[0-7]+$/,Ht=/^\d+$/,Wt=/^[\da-f]+$/i,bt=/[\0\t\n\r #%/:<>?@[\\\]^|]/,Pt=/[\0\t\n\r #/:<>?@[\\\]^|]/,Vt=/^[\u0000-\u0020]+/,$t=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,Mt=/[\t\n\r]/g,q,ut=function(V){var rt=et(V,"."),Y,B,w,Ot,xt,Xt,Zt;if(rt.length&&rt[rt.length-1]===""&&rt.length--,Y=rt.length,Y>4)return V;for(B=[],w=0;w<Y;w++){if(Ot=rt[w],Ot==="")return V;if(xt=10,Ot.length>1&&D(Ot,0)==="0"&&(xt=L(Tt,Ot)?16:8,Ot=lt(Ot,xt===8?1:2)),Ot==="")Xt=0;else{if(!L(xt===10?Ht:xt===8?Nt:Wt,Ot))return V;Xt=$(Ot,xt)}Q(B,Xt)}for(w=0;w<Y;w++)if(Xt=B[w],w===Y-1){if(Xt>=F(256,5-Y))return null}else if(Xt>255)return null;for(Zt=H(B),w=0;w<B.length;w++)Zt+=B[w]*F(256,3-w);return Zt},J=function(V){var rt=[0,0,0,0,0,0,0,0],Y=0,B=null,w=0,Ot,xt,Xt,Zt,wt,_t,nt,Jt=function(){return D(V,w)};if(Jt()===":"){if(D(V,1)!==":")return;w+=2,Y++,B=Y}for(;Jt();){if(Y===8)return;if(Jt()===":"){if(B!==null)return;w++,Y++,B=Y;continue}for(Ot=xt=0;xt<4&&L(Wt,Jt());)Ot=Ot*16+$(Jt(),16),w++,xt++;if(Jt()==="."){if(xt===0||(w-=xt,Y>6))return;for(Xt=0;Jt();){if(Zt=null,Xt>0)if(Jt()==="."&&Xt<4)w++;else return;if(!L(Rt,Jt()))return;for(;L(Rt,Jt());){if(wt=$(Jt(),10),Zt===null)Zt=wt;else{if(Zt===0)return;Zt=Zt*10+wt}if(Zt>255)return;w++}rt[Y]=rt[Y]*256+Zt,Xt++,(Xt===2||Xt===4)&&Y++}if(Xt!==4)return;break}else if(Jt()===":"){if(w++,!Jt())return}else if(Jt())return;rt[Y++]=Ot}if(B!==null)for(_t=Y-B,Y=7;Y!==0&&_t>0;)nt=rt[Y],rt[Y--]=rt[B+_t-1],rt[B+--_t]=nt;else if(Y!==8)return;return rt},yt=function(V){for(var rt=null,Y=1,B=null,w=0,Ot=0;Ot<8;Ot++)V[Ot]!==0?(w>Y&&(rt=B,Y=w),B=null,w=0):(B===null&&(B=Ot),++w);return w>Y&&(rt=B,Y=w),rt},pt=function(V){var rt,Y,B,w;if(typeof V=="number"){for(rt=[],Y=0;Y<4;Y++)gt(rt,V%256),V=U(V/256);return b(rt,".")}else if(typeof V=="object"){for(rt="",B=yt(V),Y=0;Y<8;Y++)w&&V[Y]===0||(w&&(w=!1),B===Y?(rt+=Y?":":"::",w=!0):(rt+=K(V[Y],16),Y<7&&(rt+=":")));return"["+rt+"]"}return V},ct={},ft=d({},ct,{" ":1,'"':1,"<":1,">":1,"`":1}),zt=d({},ft,{"#":1,"?":1,"{":1,"}":1}),Yt=d({},zt,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),W=function(V,rt){var Y=p(V,0);return Y>32&&Y<127&&!c(rt,V)?V:encodeURIComponent(V)},k={ftp:21,file:null,http:80,https:443,ws:80,wss:443},tt=function(V,rt){var Y;return V.length===2&&L(vt,D(V,0))&&((Y=D(V,1))===":"||!rt&&Y==="|")},j=function(V){var rt;return V.length>1&&tt(lt(V,0,2))&&(V.length===2||(rt=D(V,2))==="/"||rt==="\\"||rt==="?"||rt==="#")},z=function(V){return V==="."||ht(V)==="%2e"},G=function(V){return V=ht(V),V===".."||V==="%2e."||V===".%2e"||V==="%2e%2e"},ot={},mt={},At={},Bt={},jt={},Ut={},Qt={},fr={},dr={},hr={},pr={},gr={},mr={},xr={},Ar={},Sr={},lr={},nr={},Pr={},ir={},or={},Er=function(V,rt,Y){var B=m(V),w,Ot,xt;if(rt){if(Ot=this.parse(B),Ot)throw new N(Ot);this.searchParams=null}else{if(Y!==void 0&&(w=new Er(Y,!0)),Ot=this.parse(B,null,w),Ot)throw new N(Ot);xt=C(new A),xt.bindURL(this),this.searchParams=xt}};Er.prototype={type:"URL",parse:function(V,rt,Y){var B=this,w=rt||ot,Ot=0,xt="",Xt=!1,Zt=!1,wt=!1,_t,nt,Jt,er;for(V=m(V),rt||(B.scheme="",B.username="",B.password="",B.host=null,B.port=null,B.path=[],B.query=null,B.fragment=null,B.cannotBeABaseURL=!1,V=X(V,Vt,""),V=X(V,$t,"$1")),V=X(V,Mt,""),_t=h(V);Ot<=_t.length;){switch(nt=_t[Ot],w){case ot:if(nt&&L(vt,nt))xt+=ht(nt),w=mt;else{if(rt)return Dt;w=At;continue}break;case mt:if(nt&&(L(St,nt)||nt==="+"||nt==="-"||nt==="."))xt+=ht(nt);else if(nt===":"){if(rt&&(B.isSpecial()!==c(k,xt)||xt==="file"&&(B.includesCredentials()||B.port!==null)||B.scheme==="file"&&!B.host))return;if(B.scheme=xt,rt){B.isSpecial()&&k[B.scheme]===B.port&&(B.port=null);return}xt="",B.scheme==="file"?w=xr:B.isSpecial()&&Y&&Y.scheme===B.scheme?w=Bt:B.isSpecial()?w=fr:_t[Ot+1]==="/"?(w=jt,Ot++):(B.cannotBeABaseURL=!0,Q(B.path,""),w=Pr)}else{if(rt)return Dt;xt="",w=At,Ot=0;continue}break;case At:if(!Y||Y.cannotBeABaseURL&&nt!=="#")return Dt;if(Y.cannotBeABaseURL&&nt==="#"){B.scheme=Y.scheme,B.path=g(Y.path),B.query=Y.query,B.fragment="",B.cannotBeABaseURL=!0,w=or;break}w=Y.scheme==="file"?xr:Ut;continue;case Bt:if(nt==="/"&&_t[Ot+1]==="/")w=dr,Ot++;else{w=Ut;continue}break;case jt:if(nt==="/"){w=hr;break}else{w=nr;continue}case Ut:if(B.scheme=Y.scheme,nt===q)B.username=Y.username,B.password=Y.password,B.host=Y.host,B.port=Y.port,B.path=g(Y.path),B.query=Y.query;else if(nt==="/"||nt==="\\"&&B.isSpecial())w=Qt;else if(nt==="?")B.username=Y.username,B.password=Y.password,B.host=Y.host,B.port=Y.port,B.path=g(Y.path),B.query="",w=ir;else if(nt==="#")B.username=Y.username,B.password=Y.password,B.host=Y.host,B.port=Y.port,B.path=g(Y.path),B.query=Y.query,B.fragment="",w=or;else{B.username=Y.username,B.password=Y.password,B.host=Y.host,B.port=Y.port,B.path=g(Y.path),B.path.length--,w=nr;continue}break;case Qt:if(B.isSpecial()&&(nt==="/"||nt==="\\"))w=dr;else if(nt==="/")w=hr;else{B.username=Y.username,B.password=Y.password,B.host=Y.host,B.port=Y.port,w=nr;continue}break;case fr:if(w=dr,nt!=="/"||D(xt,Ot+1)!=="/")continue;Ot++;break;case dr:if(nt!=="/"&&nt!=="\\"){w=hr;continue}break;case hr:if(nt==="@"){Xt&&(xt="%40"+xt),Xt=!0,Jt=h(xt);for(var Ir=0;Ir<Jt.length;Ir++){var Nr=Jt[Ir];if(Nr===":"&&!wt){wt=!0;continue}var Tr=W(Nr,Yt);wt?B.password+=Tr:B.username+=Tr}xt=""}else if(nt===q||nt==="/"||nt==="?"||nt==="#"||nt==="\\"&&B.isSpecial()){if(Xt&&xt==="")return Lt;Ot-=h(xt).length+1,xt="",w=pr}else xt+=nt;break;case pr:case gr:if(rt&&B.scheme==="file"){w=Sr;continue}else if(nt===":"&&!Zt){if(xt==="")return Ct;if(er=B.parseHost(xt),er)return er;if(xt="",w=mr,rt===gr)return}else if(nt===q||nt==="/"||nt==="?"||nt==="#"||nt==="\\"&&B.isSpecial()){if(B.isSpecial()&&xt==="")return Ct;if(rt&&xt===""&&(B.includesCredentials()||B.port!==null))return;if(er=B.parseHost(xt),er)return er;if(xt="",w=lr,rt)return;continue}else nt==="["?Zt=!0:nt==="]"&&(Zt=!1),xt+=nt;break;case mr:if(L(Rt,nt))xt+=nt;else if(nt===q||nt==="/"||nt==="?"||nt==="#"||nt==="\\"&&B.isSpecial()||rt){if(xt!==""){var yr=$(xt,10);if(yr>65535)return at;B.port=B.isSpecial()&&yr===k[B.scheme]?null:yr,xt=""}if(rt)return;w=lr;continue}else return at;break;case xr:if(B.scheme="file",nt==="/"||nt==="\\")w=Ar;else if(Y&&Y.scheme==="file")switch(nt){case q:B.host=Y.host,B.path=g(Y.path),B.query=Y.query;break;case"?":B.host=Y.host,B.path=g(Y.path),B.query="",w=ir;break;case"#":B.host=Y.host,B.path=g(Y.path),B.query=Y.query,B.fragment="",w=or;break;default:j(b(g(_t,Ot),""))||(B.host=Y.host,B.path=g(Y.path),B.shortenPath()),w=nr;continue}else{w=nr;continue}break;case Ar:if(nt==="/"||nt==="\\"){w=Sr;break}Y&&Y.scheme==="file"&&!j(b(g(_t,Ot),""))&&(tt(Y.path[0],!0)?Q(B.path,Y.path[0]):B.host=Y.host),w=nr;continue;case Sr:if(nt===q||nt==="/"||nt==="\\"||nt==="?"||nt==="#"){if(!rt&&tt(xt))w=nr;else if(xt===""){if(B.host="",rt)return;w=lr}else{if(er=B.parseHost(xt),er)return er;if(B.host==="localhost"&&(B.host=""),rt)return;xt="",w=lr}continue}else xt+=nt;break;case lr:if(B.isSpecial()){if(w=nr,nt!=="/"&&nt!=="\\")continue}else if(!rt&&nt==="?")B.query="",w=ir;else if(!rt&&nt==="#")B.fragment="",w=or;else if(nt!==q&&(w=nr,nt!=="/"))continue;break;case nr:if(nt===q||nt==="/"||nt==="\\"&&B.isSpecial()||!rt&&(nt==="?"||nt==="#")){if(G(xt)?(B.shortenPath(),nt!=="/"&&!(nt==="\\"&&B.isSpecial())&&Q(B.path,"")):z(xt)?nt!=="/"&&!(nt==="\\"&&B.isSpecial())&&Q(B.path,""):(B.scheme==="file"&&!B.path.length&&tt(xt)&&(B.host&&(B.host=""),xt=D(xt,0)+":"),Q(B.path,xt)),xt="",B.scheme==="file"&&(nt===q||nt==="?"||nt==="#"))for(;B.path.length>1&&B.path[0]==="";)st(B.path);nt==="?"?(B.query="",w=ir):nt==="#"&&(B.fragment="",w=or)}else xt+=W(nt,zt);break;case Pr:nt==="?"?(B.query="",w=ir):nt==="#"?(B.fragment="",w=or):nt!==q&&(B.path[0]+=W(nt,ct));break;case ir:!rt&&nt==="#"?(B.fragment="",w=or):nt!==q&&(nt==="'"&&B.isSpecial()?B.query+="%27":nt==="#"?B.query+="%23":B.query+=W(nt,ct));break;case or:nt!==q&&(B.fragment+=W(nt,ft));break}Ot++}},parseHost:function(V){var rt,Y,B;if(D(V,0)==="["){if(D(V,V.length-1)!=="]"||(rt=J(lt(V,1,-1)),!rt))return Ct;this.host=rt}else if(this.isSpecial()){if(V=y(V),L(bt,V)||(rt=ut(V),rt===null))return Ct;this.host=rt}else{if(L(Pt,V))return Ct;for(rt="",Y=h(V),B=0;B<Y.length;B++)rt+=W(Y[B],ct);this.host=rt}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme==="file"},includesCredentials:function(){return this.username!==""||this.password!==""},isSpecial:function(){return c(k,this.scheme)},shortenPath:function(){var V=this.path,rt=V.length;rt&&(this.scheme!=="file"||rt!==1||!tt(V[0],!0))&&V.length--},serialize:function(){var V=this,rt=V.scheme,Y=V.username,B=V.password,w=V.host,Ot=V.port,xt=V.path,Xt=V.query,Zt=V.fragment,wt=rt+":";return w!==null?(wt+="//",V.includesCredentials()&&(wt+=Y+(B?":"+B:"")+"@"),wt+=pt(w),Ot!==null&&(wt+=":"+Ot)):rt==="file"&&(wt+="//"),wt+=V.cannotBeABaseURL?xt[0]:xt.length?"/"+b(xt,"/"):"",Xt!==null&&(wt+="?"+Xt),Zt!==null&&(wt+="#"+Zt),wt},setHref:function(V){var rt=this.parse(V);if(rt)throw new N(rt);this.searchParams.update()},getOrigin:function(){var V=this.scheme,rt=this.port;if(V==="blob")try{return new cr(V.path[0]).origin}catch(Y){return"null"}return V==="file"||!this.isSpecial()?"null":V+"://"+pt(this.host)+(rt!==null?":"+rt:"")},getProtocol:function(){return this.scheme+":"},setProtocol:function(V){this.parse(m(V)+":",ot)},getUsername:function(){return this.username},setUsername:function(V){var rt=h(m(V));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var Y=0;Y<rt.length;Y++)this.username+=W(rt[Y],Yt)}},getPassword:function(){return this.password},setPassword:function(V){var rt=h(m(V));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var Y=0;Y<rt.length;Y++)this.password+=W(rt[Y],Yt)}},getHost:function(){var V=this.host,rt=this.port;return V===null?"":rt===null?pt(V):pt(V)+":"+rt},setHost:function(V){this.cannotBeABaseURL||this.parse(V,pr)},getHostname:function(){var V=this.host;return V===null?"":pt(V)},setHostname:function(V){this.cannotBeABaseURL||this.parse(V,gr)},getPort:function(){var V=this.port;return V===null?"":m(V)},setPort:function(V){this.cannotHaveUsernamePasswordPort()||(V=m(V),V===""?this.port=null:this.parse(V,mr))},getPathname:function(){var V=this.path;return this.cannotBeABaseURL?V[0]:V.length?"/"+b(V,"/"):""},setPathname:function(V){this.cannotBeABaseURL||(this.path=[],this.parse(V,lr))},getSearch:function(){var V=this.query;return V?"?"+V:""},setSearch:function(V){V=m(V),V===""?this.query=null:(D(V,0)==="?"&&(V=lt(V,1)),this.query="",this.parse(V,ir)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var V=this.fragment;return V?"#"+V:""},setHash:function(V){if(V=m(V),V===""){this.fragment=null;return}D(V,0)==="#"&&(V=lt(V,1)),this.fragment="",this.parse(V,or)},update:function(){this.query=this.searchParams.serialize()||null}};var cr=function(rt){var Y=f(this,kt),B=S(arguments.length,1)>1?arguments[1]:void 0,w=x(Y,new Er(rt,!1,B));n||(Y.href=w.serialize(),Y.origin=w.getOrigin(),Y.protocol=w.getProtocol(),Y.username=w.getUsername(),Y.password=w.getPassword(),Y.host=w.getHost(),Y.hostname=w.getHostname(),Y.port=w.getPort(),Y.pathname=w.getPathname(),Y.search=w.getSearch(),Y.searchParams=w.getSearchParams(),Y.hash=w.getHash())},kt=cr.prototype,qt=function(V,rt){return{get:function(){return I(this)[V]()},set:rt&&function(Y){return I(this)[rt](Y)},configurable:!0,enumerable:!0}};if(n&&(v(kt,"href",qt("serialize","setHref")),v(kt,"origin",qt("getOrigin")),v(kt,"protocol",qt("getProtocol","setProtocol")),v(kt,"username",qt("getUsername","setUsername")),v(kt,"password",qt("getPassword","setPassword")),v(kt,"host",qt("getHost","setHost")),v(kt,"hostname",qt("getHostname","setHostname")),v(kt,"port",qt("getPort","setPort")),v(kt,"pathname",qt("getPathname","setPathname")),v(kt,"search",qt("getSearch","setSearch")),v(kt,"searchParams",qt("getSearchParams")),v(kt,"hash",qt("getHash","setHash"))),i(kt,"toJSON",function(){return I(this).serialize()},{enumerable:!0}),i(kt,"toString",function(){return I(this).serialize()},{enumerable:!0}),P){var Cr=P.createObjectURL,Or=P.revokeObjectURL;Cr&&i(cr,"createObjectURL",o(Cr,P)),Or&&i(cr,"revokeObjectURL",o(Or,P))}O(cr,"URL"),r({global:!0,constructor:!0,forced:!e,sham:!n},{URL:cr})},51862:function(s,l,t){t(81888)},24119:function(s,l,t){var r=t(14304),n=t(38941),e=t(95486),a=t(17361),o=t(91918),u=n("URL");r({target:"URL",stat:!0,forced:!o},{parse:function(v){var f=e(arguments.length,1),c=a(v),d=f<2||arguments[1]===void 0?void 0:a(arguments[1]);try{return new u(c,d)}catch(h){return null}}})},97526:function(s,l,t){var r=t(14304),n=t(96499);r({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return n(URL.prototype.toString,this)}})},61969:function(s,l,t){t(40949),t(43657),t(43606),t(15855),t(42026),t(33257),t(59414),t(88344),t(92579),t(94655),t(8565),t(60843),t(65842),t(51595),t(54908),t(81742),t(8720),t(42861),t(27796),t(1341),t(98700),t(65481),t(46509),t(41585),t(84554),t(36619),t(33818),t(64096),t(2209),t(91591),t(74092),t(54703),t(82936),t(48493),t(64730),t(95024),t(35054),t(25460),t(60703),t(90468),t(69581),t(720),t(11042),t(17289),t(24608),t(51644),t(88088),t(46828),t(90088),t(35148),t(86184),t(53983),t(42560),t(88444),t(27839),t(73051),t(9372),t(35473),t(4983),t(6875),t(68575),t(35495),t(32790),t(58594),t(30801),t(90911),t(90429),t(33685),t(60086),t(96049),t(14038),t(55518),t(8894),t(60628),t(56347),t(16864),t(93819),t(71332),t(47269),t(25627),t(22090),t(9839),t(15656),t(22091),t(2886),t(25895),t(24228),t(79488),t(75987),t(81555),t(87854),t(35074),t(50946),t(29417),t(80628),t(74375),t(29708),t(93449),t(9111),t(83514),t(15096),t(59590),t(99663),t(89988),t(54427),t(67895),t(57909),t(83938),t(55461),t(97339),t(3670),t(15224),t(45891),t(99910),t(92445),t(21875),t(4383),t(11361),t(13728),t(14885),t(30343),t(22045),t(75e3),t(64658),t(16017),t(84681),t(73421),t(93446),t(31046),t(94645),t(62935),t(62518),t(45130),t(51542),t(43781),t(25738),t(93247),t(41533),t(60225),t(69920),t(89205),t(78546),t(63616),t(16893),t(3676),t(58361),t(23958),t(9798),t(2371),t(76185),t(76553),t(93518),t(25227),t(91723),t(57882),t(37796),t(11563),t(26159),t(20962),t(77487),t(6130),t(1354),t(47119),t(31145),t(96773),t(14371),t(18180),t(83147),t(75765),t(86548),t(15282),t(51275),t(91890),t(15089),t(78134),t(56456),t(40735),t(8510),t(70159),t(93087),t(26021),t(93029),t(59158),t(15599),t(18509),t(21579),t(8854),t(57676),t(14527),t(96834),t(52684),t(74980),t(390),t(42794),t(21293),t(18184),t(75012),t(19680),t(4193),t(70641),t(53892),t(95976),t(399),t(72032),t(49442),t(16012),t(9943),t(33128),t(95625),t(90614),t(60120),t(75826),t(25560),t(22571),t(40704),t(36849),t(49191),t(81083),t(27428),t(44884),t(48658),t(71998),t(6116),t(33032),t(80962),t(49381),t(38344),t(65961),t(94153),t(16028),t(20656),t(17063),t(21774),t(51761),t(12317),t(19711),t(41034),t(13313),t(44698),t(7369),t(66178),t(67961),t(8695),t(69997),t(9711),t(3923),t(59728),t(85227),t(56933),t(91490),t(61766),t(85143),t(47005),t(10042),t(37888),t(19431),t(60869),t(50338),t(53059),t(5805),t(50685),t(70649),t(39842),t(82872),t(91401),t(92904),t(28381),t(51862),t(20760),t(24119),t(97526),t(86650),t(10901),t(93944),t(79043),t(75081)}},vr={};function rr(s){var l=vr[s];if(l!==void 0)return l.exports;var t=vr[s]={exports:{}};return Dr[s].call(t.exports,t,t.exports,rr),t.exports}(function(){rr.d=function(s,l){for(var t in l)rr.o(l,t)&&!rr.o(s,t)&&Object.defineProperty(s,t,{enumerable:!0,get:l[t]})}})(),function(){rr.o=function(s,l){return Object.prototype.hasOwnProperty.call(s,l)}}(),rr(61969);var Fr=rr(19770);return Fr=Fr.default,Fr}()}); diff --git a/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-sparkline.pkgd.js b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-sparkline.pkgd.js new file mode 100644 index 000000000..8272bfe00 --- /dev/null +++ b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-sparkline.pkgd.js @@ -0,0 +1,23401 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("bb", [], factory); + else if(typeof exports === 'object') + exports["bb"] = factory(); + else + root["bb"] = root["bb"] || {}, root["bb"]["plugin"] = root["bb"]["plugin"] || {}, root["bb"]["plugin"]["sparkline.pkgd"] = factory(); +})(this, function() { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +__webpack_require__(1); +__webpack_require__(97); +__webpack_require__(98); +__webpack_require__(99); +__webpack_require__(100); +__webpack_require__(101); +__webpack_require__(102); +__webpack_require__(103); +__webpack_require__(104); +__webpack_require__(105); +__webpack_require__(106); +__webpack_require__(107); +__webpack_require__(108); +__webpack_require__(109); +__webpack_require__(110); +__webpack_require__(111); +__webpack_require__(124); +__webpack_require__(126); +__webpack_require__(136); +__webpack_require__(137); +__webpack_require__(139); +__webpack_require__(143); +__webpack_require__(146); +__webpack_require__(148); +__webpack_require__(150); +__webpack_require__(151); +__webpack_require__(152); +__webpack_require__(153); +__webpack_require__(155); +__webpack_require__(156); +__webpack_require__(158); +__webpack_require__(159); +__webpack_require__(161); +__webpack_require__(165); +__webpack_require__(166); +__webpack_require__(167); +__webpack_require__(168); +__webpack_require__(173); +__webpack_require__(174); +__webpack_require__(176); +__webpack_require__(177); +__webpack_require__(178); +__webpack_require__(180); +__webpack_require__(183); +__webpack_require__(184); +__webpack_require__(185); +__webpack_require__(186); +__webpack_require__(187); +__webpack_require__(192); +__webpack_require__(194); +__webpack_require__(195); +__webpack_require__(197); +__webpack_require__(200); +__webpack_require__(201); +__webpack_require__(202); +__webpack_require__(203); +__webpack_require__(204); +__webpack_require__(206); +__webpack_require__(216); +__webpack_require__(218); +__webpack_require__(221); +__webpack_require__(223); +__webpack_require__(226); +__webpack_require__(233); +__webpack_require__(234); +__webpack_require__(235); +__webpack_require__(236); +__webpack_require__(237); +__webpack_require__(238); +__webpack_require__(242); +__webpack_require__(243); +__webpack_require__(245); +__webpack_require__(246); +__webpack_require__(247); +__webpack_require__(249); +__webpack_require__(250); +__webpack_require__(251); +__webpack_require__(93); +__webpack_require__(252); +__webpack_require__(253); +__webpack_require__(261); +__webpack_require__(263); +__webpack_require__(265); +__webpack_require__(266); +__webpack_require__(267); +__webpack_require__(268); +__webpack_require__(269); +__webpack_require__(271); +__webpack_require__(272); +__webpack_require__(273); +__webpack_require__(274); +__webpack_require__(275); +__webpack_require__(277); +__webpack_require__(278); +__webpack_require__(279); +__webpack_require__(280); +__webpack_require__(281); +__webpack_require__(282); +__webpack_require__(283); +__webpack_require__(284); +__webpack_require__(288); +__webpack_require__(289); +__webpack_require__(291); +__webpack_require__(293); +__webpack_require__(294); +__webpack_require__(295); +__webpack_require__(296); +__webpack_require__(297); +__webpack_require__(299); +__webpack_require__(301); +__webpack_require__(302); +__webpack_require__(303); +__webpack_require__(304); +__webpack_require__(306); +__webpack_require__(307); +__webpack_require__(309); +__webpack_require__(310); +__webpack_require__(311); +__webpack_require__(312); +__webpack_require__(314); +__webpack_require__(315); +__webpack_require__(316); +__webpack_require__(317); +__webpack_require__(318); +__webpack_require__(319); +__webpack_require__(320); +__webpack_require__(321); +__webpack_require__(322); +__webpack_require__(324); +__webpack_require__(325); +__webpack_require__(326); +__webpack_require__(327); +__webpack_require__(328); +__webpack_require__(329); +__webpack_require__(330); +__webpack_require__(331); +__webpack_require__(332); +__webpack_require__(333); +__webpack_require__(334); +__webpack_require__(336); +__webpack_require__(337); +__webpack_require__(338); +__webpack_require__(339); +__webpack_require__(361); +__webpack_require__(362); +__webpack_require__(363); +__webpack_require__(364); +__webpack_require__(365); +__webpack_require__(366); +__webpack_require__(367); +__webpack_require__(368); +__webpack_require__(369); +__webpack_require__(371); +__webpack_require__(372); +__webpack_require__(373); +__webpack_require__(374); +__webpack_require__(375); +__webpack_require__(376); +__webpack_require__(377); +__webpack_require__(378); +__webpack_require__(379); +__webpack_require__(380); +__webpack_require__(387); +__webpack_require__(388); +__webpack_require__(390); +__webpack_require__(391); +__webpack_require__(392); +__webpack_require__(393); +__webpack_require__(394); +__webpack_require__(396); +__webpack_require__(407); +__webpack_require__(409); +__webpack_require__(411); +__webpack_require__(413); +__webpack_require__(415); +__webpack_require__(417); +__webpack_require__(419); +__webpack_require__(420); +__webpack_require__(422); +__webpack_require__(425); +__webpack_require__(426); +__webpack_require__(427); +__webpack_require__(428); +__webpack_require__(429); +__webpack_require__(433); +__webpack_require__(434); +__webpack_require__(436); +__webpack_require__(437); +__webpack_require__(438); +__webpack_require__(439); +__webpack_require__(441); +__webpack_require__(442); +__webpack_require__(443); +__webpack_require__(444); +__webpack_require__(445); +__webpack_require__(446); +__webpack_require__(447); +__webpack_require__(449); +__webpack_require__(452); +__webpack_require__(455); +__webpack_require__(458); +__webpack_require__(459); +__webpack_require__(460); +__webpack_require__(461); +__webpack_require__(462); +__webpack_require__(463); +__webpack_require__(464); +__webpack_require__(465); +__webpack_require__(466); +__webpack_require__(467); +__webpack_require__(468); +__webpack_require__(469); +__webpack_require__(470); +__webpack_require__(479); +__webpack_require__(480); +__webpack_require__(481); +__webpack_require__(482); +__webpack_require__(483); +__webpack_require__(484); +__webpack_require__(485); +__webpack_require__(486); +__webpack_require__(487); +__webpack_require__(488); +__webpack_require__(489); +__webpack_require__(490); +__webpack_require__(491); +__webpack_require__(494); +__webpack_require__(495); +__webpack_require__(496); +__webpack_require__(497); +__webpack_require__(498); +__webpack_require__(499); +__webpack_require__(500); +__webpack_require__(501); +__webpack_require__(502); +__webpack_require__(503); +__webpack_require__(504); +__webpack_require__(505); +__webpack_require__(506); +__webpack_require__(507); +__webpack_require__(508); +__webpack_require__(509); +__webpack_require__(510); +__webpack_require__(511); +__webpack_require__(512); +__webpack_require__(513); +__webpack_require__(514); +__webpack_require__(515); +__webpack_require__(516); +__webpack_require__(517); +__webpack_require__(518); +__webpack_require__(519); +__webpack_require__(520); +__webpack_require__(521); +__webpack_require__(524); +__webpack_require__(526); +__webpack_require__(528); +__webpack_require__(529); +__webpack_require__(532); +__webpack_require__(533); +__webpack_require__(535); +__webpack_require__(536); +__webpack_require__(537); +__webpack_require__(542); +__webpack_require__(543); +__webpack_require__(544); +__webpack_require__(545); +__webpack_require__(548); +__webpack_require__(553); +__webpack_require__(554); +__webpack_require__(555); +__webpack_require__(556); +__webpack_require__(557); +__webpack_require__(558); +__webpack_require__(559); + +/* unused reexport */ __webpack_require__(80); + + +/***/ }), +/* 1 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(2); +__webpack_require__(90); +__webpack_require__(92); +__webpack_require__(93); +__webpack_require__(96); + + +/***/ }), +/* 2 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var $toString = __webpack_require__(68); +var createPropertyDescriptor = __webpack_require__(11); +var nativeObjectCreate = __webpack_require__(71); +var objectKeys = __webpack_require__(73); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternal = __webpack_require__(75); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); +var definePropertiesModule = __webpack_require__(72); +var propertyIsEnumerableModule = __webpack_require__(10); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var shared = __webpack_require__(34); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); +var uid = __webpack_require__(40); +var wellKnownSymbol = __webpack_require__(33); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); +var $forEach = (__webpack_require__(83).forEach); + +var HIDDEN = sharedKey('hidden'); +var SYMBOL = 'Symbol'; +var PROTOTYPE = 'prototype'; + +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(SYMBOL); + +var ObjectPrototype = Object[PROTOTYPE]; +var $Symbol = global.Symbol; +var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; +var RangeError = global.RangeError; +var TypeError = global.TypeError; +var QObject = global.QObject; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; +var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; +var push = uncurryThis([].push); + +var AllSymbols = shared('symbols'); +var ObjectPrototypeSymbols = shared('op-symbols'); +var WellKnownSymbolsStore = shared('wks'); + +// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 +var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var fallbackDefineProperty = function (O, P, Attributes) { + var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); + if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; + nativeDefineProperty(O, P, Attributes); + if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { + nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); + } +}; + +var setSymbolDescriptor = DESCRIPTORS && fails(function () { + return nativeObjectCreate(nativeDefineProperty({}, 'a', { + get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } + })).a !== 7; +}) ? fallbackDefineProperty : nativeDefineProperty; + +var wrap = function (tag, description) { + var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype); + setInternalState(symbol, { + type: SYMBOL, + tag: tag, + description: description + }); + if (!DESCRIPTORS) symbol.description = description; + return symbol; +}; + +var $defineProperty = function defineProperty(O, P, Attributes) { + if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); + anObject(O); + var key = toPropertyKey(P); + anObject(Attributes); + if (hasOwn(AllSymbols, key)) { + if (!Attributes.enumerable) { + if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null))); + O[HIDDEN][key] = true; + } else { + if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; + Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); + } return setSymbolDescriptor(O, key, Attributes); + } return nativeDefineProperty(O, key, Attributes); +}; + +var $defineProperties = function defineProperties(O, Properties) { + anObject(O); + var properties = toIndexedObject(Properties); + var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); + $forEach(keys, function (key) { + if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); + }); + return O; +}; + +var $create = function create(O, Properties) { + return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); +}; + +var $propertyIsEnumerable = function propertyIsEnumerable(V) { + var P = toPropertyKey(V); + var enumerable = call(nativePropertyIsEnumerable, this, P); + if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false; + return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P] + ? enumerable : true; +}; + +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { + var it = toIndexedObject(O); + var key = toPropertyKey(P); + if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return; + var descriptor = nativeGetOwnPropertyDescriptor(it, key); + if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) { + descriptor.enumerable = true; + } + return descriptor; +}; + +var $getOwnPropertyNames = function getOwnPropertyNames(O) { + var names = nativeGetOwnPropertyNames(toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key); + }); + return result; +}; + +var $getOwnPropertySymbols = function (O) { + var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; + var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) { + push(result, AllSymbols[key]); + } + }); + return result; +}; + +// `Symbol` constructor +// https://tc39.es/ecma262/#sec-symbol-constructor +if (!NATIVE_SYMBOL) { + $Symbol = function Symbol() { + if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor'); + var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]); + var tag = uid(description); + var setter = function (value) { + var $this = this === undefined ? global : this; + if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value); + if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false; + var descriptor = createPropertyDescriptor(1, value); + try { + setSymbolDescriptor($this, tag, descriptor); + } catch (error) { + if (!(error instanceof RangeError)) throw error; + fallbackDefineProperty($this, tag, descriptor); + } + }; + if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); + return wrap(tag, description); + }; + + SymbolPrototype = $Symbol[PROTOTYPE]; + + defineBuiltIn(SymbolPrototype, 'toString', function toString() { + return getInternalState(this).tag; + }); + + defineBuiltIn($Symbol, 'withoutSetter', function (description) { + return wrap(uid(description), description); + }); + + propertyIsEnumerableModule.f = $propertyIsEnumerable; + definePropertyModule.f = $defineProperty; + definePropertiesModule.f = $defineProperties; + getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; + getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; + getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; + + wrappedWellKnownSymbolModule.f = function (name) { + return wrap(wellKnownSymbol(name), name); + }; + + if (DESCRIPTORS) { + // https://github.com/tc39/proposal-Symbol-description + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + return getInternalState(this).description; + } + }); + if (!IS_PURE) { + defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { + Symbol: $Symbol +}); + +$forEach(objectKeys(WellKnownSymbolsStore), function (name) { + defineWellKnownSymbol(name); +}); + +$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { + useSetter: function () { USE_SETTER = true; }, + useSimple: function () { USE_SETTER = false; } +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, { + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + create: $create, + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + defineProperty: $defineProperty, + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + defineProperties: $defineProperties, + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors + getOwnPropertyDescriptor: $getOwnPropertyDescriptor +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + getOwnPropertyNames: $getOwnPropertyNames +}); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag($Symbol, SYMBOL); + +hiddenKeys[HIDDEN] = true; + + +/***/ }), +/* 3 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineGlobalProperty = __webpack_require__(37); +var copyConstructorProperties = __webpack_require__(55); +var isForced = __webpack_require__(67); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global[TARGET] && global[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn(target, key, sourceProperty, options); + } +}; + + +/***/ }), +/* 4 */ +/***/ (function(module) { + + +var check = function (it) { + return it && it.Math === Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + check(typeof this == 'object' && this) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + +/***/ }), +/* 5 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var call = __webpack_require__(8); +var propertyIsEnumerableModule = __webpack_require__(10); +var createPropertyDescriptor = __webpack_require__(11); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var IE8_DOM_DEFINE = __webpack_require__(41); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); +}; + + +/***/ }), +/* 6 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; +}); + + +/***/ }), +/* 7 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var call = Function.prototype.call; + +module.exports = NATIVE_BIND ? call.bind(call) : function () { + return call.apply(call, arguments); +}; + + +/***/ }), +/* 9 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + + +/***/ }), +/* 10 */ +/***/ (function(__unused_webpack_module, exports) { + + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + + +/***/ }), +/* 11 */ +/***/ (function(module) { + + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), +/* 12 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = __webpack_require__(13); +var requireObjectCoercible = __webpack_require__(16); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + + +/***/ }), +/* 13 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var classof = __webpack_require__(15); + +var $Object = Object; +var split = uncurryThis(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) === 'String' ? split(it, '') : $Object(it); +} : $Object; + + +/***/ }), +/* 14 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var call = FunctionPrototype.call; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); + +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + + +/***/ }), +/* 15 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var toString = uncurryThis({}.toString); +var stringSlice = uncurryThis(''.slice); + +module.exports = function (it) { + return stringSlice(toString(it), 8, -1); +}; + + +/***/ }), +/* 16 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isNullOrUndefined = __webpack_require__(17); + +var $TypeError = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), +/* 17 */ +/***/ (function(module) { + + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +module.exports = function (it) { + return it === null || it === undefined; +}; + + +/***/ }), +/* 18 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); +var isSymbol = __webpack_require__(22); + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +module.exports = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + + +/***/ }), +/* 19 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var getMethod = __webpack_require__(29); +var ordinaryToPrimitive = __webpack_require__(32); +var wellKnownSymbol = __webpack_require__(33); + +var $TypeError = TypeError; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +module.exports = function (input, pref) { + if (!isObject(input) || isSymbol(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) return result; + throw new $TypeError("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + + +/***/ }), +/* 20 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); + +module.exports = function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); +}; + + +/***/ }), +/* 21 */ +/***/ (function(module) { + + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +var documentAll = typeof document == 'object' && document.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; +} : function (argument) { + return typeof argument == 'function'; +}; + + +/***/ }), +/* 22 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var $Object = Object; + +module.exports = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); +}; + + +/***/ }), +/* 23 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; +}; + + +/***/ }), +/* 24 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis({}.isPrototypeOf); + + +/***/ }), +/* 25 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var NATIVE_SYMBOL = __webpack_require__(26); + +module.exports = NATIVE_SYMBOL + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + +/***/ }), +/* 26 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var V8_VERSION = __webpack_require__(27); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +var $String = global.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); + + +/***/ }), +/* 27 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var userAgent = __webpack_require__(28); + +var process = global.process; +var Deno = global.Deno; +var versions = process && process.versions || Deno && Deno.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +module.exports = version; + + +/***/ }), +/* 28 */ +/***/ (function(module) { + + +module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + +/***/ }), +/* 29 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var isNullOrUndefined = __webpack_require__(17); + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +module.exports = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable(func); +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsCallable(argument) is true` +module.exports = function (argument) { + if (isCallable(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a function'); +}; + + +/***/ }), +/* 31 */ +/***/ (function(module) { + + +var $String = String; + +module.exports = function (argument) { + try { + return $String(argument); + } catch (error) { + return 'Object'; + } +}; + + +/***/ }), +/* 32 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); + +var $TypeError = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +module.exports = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + throw new $TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), +/* 33 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var shared = __webpack_require__(34); +var hasOwn = __webpack_require__(38); +var uid = __webpack_require__(40); +var NATIVE_SYMBOL = __webpack_require__(26); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var Symbol = global.Symbol; +var WellKnownSymbolsStore = shared('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!hasOwn(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) + ? Symbol[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + + +/***/ }), +/* 34 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var store = __webpack_require__(35); + +module.exports = function (key, value) { + return store[key] || (store[key] = value || {}); +}; + + +/***/ }), +/* 35 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var globalThis = __webpack_require__(4); +var defineGlobalProperty = __webpack_require__(37); + +var SHARED = '__core-js_shared__'; +var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {}); + +(store.versions || (store.versions = [])).push({ + version: '3.37.1', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + + +/***/ }), +/* 36 */ +/***/ (function(module) { + + +module.exports = false; + + +/***/ }), +/* 37 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(global, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global[key] = value; + } return value; +}; + + +/***/ }), +/* 38 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var hasOwnProperty = uncurryThis({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +module.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); +}; + + +/***/ }), +/* 39 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var requireObjectCoercible = __webpack_require__(16); + +var $Object = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return $Object(requireObjectCoercible(argument)); +}; + + +/***/ }), +/* 40 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var id = 0; +var postfix = Math.random(); +var toString = uncurryThis(1.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + + +/***/ }), +/* 41 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var createElement = __webpack_require__(42); + +// Thanks to IE8 for its funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; +}); + + +/***/ }), +/* 42 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); + +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + + +/***/ }), +/* 43 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), +/* 44 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var IE8_DOM_DEFINE = __webpack_require__(41); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), +/* 45 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +module.exports = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; +}); + + +/***/ }), +/* 46 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var $String = String; +var $TypeError = TypeError; + +// `Assert: Type(argument) is Object` +module.exports = function (argument) { + if (isObject(argument)) return argument; + throw new $TypeError($String(argument) + ' is not an object'); +}; + + +/***/ }), +/* 47 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var definePropertyModule = __webpack_require__(44); +var makeBuiltIn = __webpack_require__(48); +var defineGlobalProperty = __webpack_require__(37); + +module.exports = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + + +/***/ }), +/* 48 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var DESCRIPTORS = __webpack_require__(6); +var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(49).CONFIGURABLE); +var inspectSource = __webpack_require__(50); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var $String = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var stringSlice = uncurryThis(''.slice); +var replace = uncurryThis(''.replace); +var join = uncurryThis([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { + return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn = module.exports = function (value, name, options) { + if (stringSlice($String(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { + defineProperty(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn(options, 'constructor') && options.constructor) { + if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn(function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); +}, 'toString'); + + +/***/ }), +/* 49 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var hasOwn = __webpack_require__(38); + +var FunctionPrototype = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn(FunctionPrototype, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); + +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + + +/***/ }), +/* 50 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isCallable = __webpack_require__(21); +var store = __webpack_require__(35); + +var functionToString = uncurryThis(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; +} + +module.exports = store.inspectSource; + + +/***/ }), +/* 51 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_WEAK_MAP = __webpack_require__(52); +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); +var hasOwn = __webpack_require__(38); +var shared = __webpack_require__(35); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError = global.TypeError; +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw new TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), +/* 52 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var WeakMap = global.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); + + +/***/ }), +/* 53 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var shared = __webpack_require__(34); +var uid = __webpack_require__(40); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + + +/***/ }), +/* 54 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 55 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var ownKeys = __webpack_require__(56); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); + +module.exports = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + + +/***/ }), +/* 56 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var anObject = __webpack_require__(46); + +var concat = uncurryThis([].concat); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), +/* 57 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), +/* 58 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var toIndexedObject = __webpack_require__(12); +var indexOf = (__webpack_require__(59).indexOf); +var hiddenKeys = __webpack_require__(54); + +var push = uncurryThis([].push); + +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + + +/***/ }), +/* 59 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), +/* 60 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), +/* 61 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var trunc = __webpack_require__(62); + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +module.exports = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + + +/***/ }), +/* 62 */ +/***/ (function(module) { + + +var ceil = Math.ceil; +var floor = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +module.exports = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + + +/***/ }), +/* 63 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toLength = __webpack_require__(64); + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +module.exports = function (obj) { + return toLength(obj.length); +}; + + +/***/ }), +/* 64 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), +/* 65 */ +/***/ (function(module) { + + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), +/* 66 */ +/***/ (function(__unused_webpack_module, exports) { + + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 67 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable(detection) ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + + +/***/ }), +/* 68 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +var $String = String; + +module.exports = function (argument) { + if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + + +/***/ }), +/* 69 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var isCallable = __webpack_require__(21); +var classofRaw = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Object = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result; +}; + + +/***/ }), +/* 70 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + + +/***/ }), +/* 71 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* global ActiveXObject -- old IE, WSH */ +var anObject = __webpack_require__(46); +var definePropertiesModule = __webpack_require__(72); +var enumBugKeys = __webpack_require__(65); +var hiddenKeys = __webpack_require__(54); +var html = __webpack_require__(74); +var documentCreateElement = __webpack_require__(42); +var sharedKey = __webpack_require__(53); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + + +/***/ }), +/* 72 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var definePropertyModule = __webpack_require__(44); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var objectKeys = __webpack_require__(73); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var props = toIndexedObject(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + + +/***/ }), +/* 73 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + + +/***/ }), +/* 74 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), +/* 75 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-object-getownpropertynames -- safe */ +var classof = __webpack_require__(15); +var toIndexedObject = __webpack_require__(12); +var $getOwnPropertyNames = (__webpack_require__(57).f); +var arraySlice = __webpack_require__(76); + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && classof(it) === 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); +}; + + +/***/ }), +/* 76 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis([].slice); + + +/***/ }), +/* 77 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var makeBuiltIn = __webpack_require__(48); +var defineProperty = __webpack_require__(44); + +module.exports = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty.f(target, name, descriptor); +}; + + +/***/ }), +/* 78 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +exports.f = wellKnownSymbol; + + +/***/ }), +/* 79 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var path = __webpack_require__(80); +var hasOwn = __webpack_require__(38); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (NAME) { + var Symbol = path.Symbol || (path.Symbol = {}); + if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, { + value: wrappedWellKnownSymbolModule.f(NAME) + }); +}; + + +/***/ }), +/* 80 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global; + + +/***/ }), +/* 81 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var getBuiltIn = __webpack_require__(23); +var wellKnownSymbol = __webpack_require__(33); +var defineBuiltIn = __webpack_require__(47); + +module.exports = function () { + var Symbol = getBuiltIn('Symbol'); + var SymbolPrototype = Symbol && Symbol.prototype; + var valueOf = SymbolPrototype && SymbolPrototype.valueOf; + var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + + if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) { + // `Symbol.prototype[@@toPrimitive]` method + // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive + // eslint-disable-next-line no-unused-vars -- required for .length + defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) { + return call(valueOf, this); + }, { arity: 1 }); + } +}; + + +/***/ }), +/* 82 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +module.exports = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } +}; + + +/***/ }), +/* 83 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +var push = uncurryThis([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +module.exports = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) +}; + + +/***/ }), +/* 84 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(85); +var aCallable = __webpack_require__(30); +var NATIVE_BIND = __webpack_require__(9); + +var bind = uncurryThis(uncurryThis.bind); + +// optional / simple context binding +module.exports = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), +/* 85 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classofRaw = __webpack_require__(15); +var uncurryThis = __webpack_require__(14); + +module.exports = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis(fn); +}; + + +/***/ }), +/* 86 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySpeciesConstructor = __webpack_require__(87); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + + +/***/ }), +/* 87 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; +}; + + +/***/ }), +/* 88 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(15); + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +module.exports = Array.isArray || function isArray(argument) { + return classof(argument) === 'Array'; +}; + + +/***/ }), +/* 89 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(69); +var getBuiltIn = __webpack_require__(23); +var inspectSource = __webpack_require__(50); + +var noop = function () { /* empty */ }; +var construct = getBuiltIn('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) return false; + switch (classof(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +module.exports = !construct || fails(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + + +/***/ }), +/* 90 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var toString = __webpack_require__(68); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var StringToSymbolRegistry = shared('string-to-symbol-registry'); +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.for` method +// https://tc39.es/ecma262/#sec-symbol.for +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + 'for': function (key) { + var string = toString(key); + if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; + var symbol = getBuiltIn('Symbol')(string); + StringToSymbolRegistry[string] = symbol; + SymbolToStringRegistry[symbol] = string; + return symbol; + } +}); + + +/***/ }), +/* 91 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_SYMBOL = __webpack_require__(26); + +/* eslint-disable es/no-symbol -- safe */ +module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor; + + +/***/ }), +/* 92 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); +var isSymbol = __webpack_require__(22); +var tryToString = __webpack_require__(31); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.keyFor` method +// https://tc39.es/ecma262/#sec-symbol.keyfor +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol'); + if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; + } +}); + + +/***/ }), +/* 93 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isSymbol = __webpack_require__(22); +var arraySlice = __webpack_require__(76); +var getReplacerFunction = __webpack_require__(95); +var NATIVE_SYMBOL = __webpack_require__(26); + +var $String = String; +var $stringify = getBuiltIn('JSON', 'stringify'); +var exec = uncurryThis(/./.exec); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var replace = uncurryThis(''.replace); +var numberToString = uncurryThis(1.0.toString); + +var tester = /[\uD800-\uDFFF]/g; +var low = /^[\uD800-\uDBFF]$/; +var hi = /^[\uDC00-\uDFFF]$/; + +var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () { + var symbol = getBuiltIn('Symbol')('stringify detection'); + // MS Edge converts symbol values to JSON as {} + return $stringify([symbol]) !== '[null]' + // WebKit converts symbol values to JSON as null + || $stringify({ a: symbol }) !== '{}' + // V8 throws on boxed symbols + || $stringify(Object(symbol)) !== '{}'; +}); + +// https://github.com/tc39/proposal-well-formed-stringify +var ILL_FORMED_UNICODE = fails(function () { + return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' + || $stringify('\uDEAD') !== '"\\udead"'; +}); + +var stringifyWithSymbolsFix = function (it, replacer) { + var args = arraySlice(arguments); + var $replacer = getReplacerFunction(replacer); + if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined + args[1] = function (key, value) { + // some old implementations (like WebKit) could pass numbers as keys + if (isCallable($replacer)) value = call($replacer, this, $String(key), value); + if (!isSymbol(value)) return value; + }; + return apply($stringify, null, args); +}; + +var fixIllFormed = function (match, offset, string) { + var prev = charAt(string, offset - 1); + var next = charAt(string, offset + 1); + if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) { + return '\\u' + numberToString(charCodeAt(match, 0), 16); + } return match; +}; + +if ($stringify) { + // `JSON.stringify` method + // https://tc39.es/ecma262/#sec-json.stringify + $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + stringify: function stringify(it, replacer, space) { + var args = arraySlice(arguments); + var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args); + return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result; + } + }); +} + + +/***/ }), +/* 94 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var apply = FunctionPrototype.apply; +var call = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () { + return call.apply(apply, arguments); +}); + + +/***/ }), +/* 95 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var toString = __webpack_require__(68); + +var push = uncurryThis([].push); + +module.exports = function (replacer) { + if (isCallable(replacer)) return replacer; + if (!isArray(replacer)) return; + var rawLength = replacer.length; + var keys = []; + for (var i = 0; i < rawLength; i++) { + var element = replacer[i]; + if (typeof element == 'string') push(keys, element); + else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element)); + } + var keysLength = keys.length; + var root = true; + return function (key, value) { + if (root) { + root = false; + return value; + } + if (isArray(this)) return value; + for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value; + }; +}; + + +/***/ }), +/* 96 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var toObject = __webpack_require__(39); + +// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives +// https://bugs.chromium.org/p/v8/issues/detail?id=3443 +var FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); }); + +// `Object.getOwnPropertySymbols` method +// https://tc39.es/ecma262/#sec-object.getownpropertysymbols +$({ target: 'Object', stat: true, forced: FORCED }, { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : []; + } +}); + + +/***/ }), +/* 97 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +// `Symbol.prototype.description` getter +// https://tc39.es/ecma262/#sec-symbol.prototype.description + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var toString = __webpack_require__(68); +var defineBuiltInAccessor = __webpack_require__(77); +var copyConstructorProperties = __webpack_require__(55); + +var NativeSymbol = global.Symbol; +var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; + +if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || + // Safari 12 bug + NativeSymbol().description !== undefined +)) { + var EmptyStringDescriptionStore = {}; + // wrap Symbol constructor for correct work with undefined description + var SymbolWrapper = function Symbol() { + var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]); + var result = isPrototypeOf(SymbolPrototype, this) + ? new NativeSymbol(description) + // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' + : description === undefined ? NativeSymbol() : NativeSymbol(description); + if (description === '') EmptyStringDescriptionStore[result] = true; + return result; + }; + + copyConstructorProperties(SymbolWrapper, NativeSymbol); + SymbolWrapper.prototype = SymbolPrototype; + SymbolPrototype.constructor = SymbolWrapper; + + var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)'; + var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf); + var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString); + var regexp = /^Symbol\((.*)\)[^)]+$/; + var replace = uncurryThis(''.replace); + var stringSlice = uncurryThis(''.slice); + + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + var symbol = thisSymbolValue(this); + if (hasOwn(EmptyStringDescriptionStore, symbol)) return ''; + var string = symbolDescriptiveString(symbol); + var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1'); + return desc === '' ? undefined : desc; + } + }); + + $({ global: true, constructor: true, forced: true }, { + Symbol: SymbolWrapper + }); +} + + +/***/ }), +/* 98 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.asyncIterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.asynciterator +defineWellKnownSymbol('asyncIterator'); + + +/***/ }), +/* 99 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.hasInstance` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.hasinstance +defineWellKnownSymbol('hasInstance'); + + +/***/ }), +/* 100 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.isConcatSpreadable` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable +defineWellKnownSymbol('isConcatSpreadable'); + + +/***/ }), +/* 101 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.iterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.iterator +defineWellKnownSymbol('iterator'); + + +/***/ }), +/* 102 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.match` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.match +defineWellKnownSymbol('match'); + + +/***/ }), +/* 103 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.matchAll` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.matchall +defineWellKnownSymbol('matchAll'); + + +/***/ }), +/* 104 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.replace` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.replace +defineWellKnownSymbol('replace'); + + +/***/ }), +/* 105 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.search` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.search +defineWellKnownSymbol('search'); + + +/***/ }), +/* 106 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.species` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.species +defineWellKnownSymbol('species'); + + +/***/ }), +/* 107 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.split` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.split +defineWellKnownSymbol('split'); + + +/***/ }), +/* 108 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); + +// `Symbol.toPrimitive` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.toprimitive +defineWellKnownSymbol('toPrimitive'); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + + +/***/ }), +/* 109 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineWellKnownSymbol = __webpack_require__(79); +var setToStringTag = __webpack_require__(82); + +// `Symbol.toStringTag` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.tostringtag +defineWellKnownSymbol('toStringTag'); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag(getBuiltIn('Symbol'), 'Symbol'); + + +/***/ }), +/* 110 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.unscopables` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.unscopables +defineWellKnownSymbol('unscopables'); + + +/***/ }), +/* 111 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-unused-vars -- required for functions `.length` */ +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var WEB_ASSEMBLY = 'WebAssembly'; +var WebAssembly = global[WEB_ASSEMBLY]; + +// eslint-disable-next-line es/no-error-cause -- feature detection +var FORCED = new Error('e', { cause: 7 }).cause !== 7; + +var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED); + $({ global: true, constructor: true, arity: 1, forced: FORCED }, O); +}; + +var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) { + if (WebAssembly && WebAssembly[ERROR_NAME]) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED); + $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O); + } +}; + +// https://tc39.es/ecma262/#sec-nativeerror +exportGlobalErrorCauseWrapper('Error', function (init) { + return function Error(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('EvalError', function (init) { + return function EvalError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('RangeError', function (init) { + return function RangeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('ReferenceError', function (init) { + return function ReferenceError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('SyntaxError', function (init) { + return function SyntaxError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('TypeError', function (init) { + return function TypeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('URIError', function (init) { + return function URIError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('CompileError', function (init) { + return function CompileError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('LinkError', function (init) { + return function LinkError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) { + return function RuntimeError(message) { return apply(init, this, arguments); }; +}); + + +/***/ }), +/* 112 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var createNonEnumerableProperty = __webpack_require__(43); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var proxyAccessor = __webpack_require__(117); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +module.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) { + var STACK_TRACE_LIMIT = 'stackTraceLimit'; + var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1; + var path = FULL_NAME.split('.'); + var ERROR_NAME = path[path.length - 1]; + var OriginalError = getBuiltIn.apply(null, path); + + if (!OriginalError) return; + + var OriginalErrorPrototype = OriginalError.prototype; + + // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006 + if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause; + + if (!FORCED) return OriginalError; + + var BaseError = getBuiltIn('Error'); + + var WrappedError = wrapper(function (a, b) { + var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined); + var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError(); + if (message !== undefined) createNonEnumerableProperty(result, 'message', message); + installErrorStack(result, WrappedError, result.stack, 2); + if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError); + if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]); + return result; + }); + + WrappedError.prototype = OriginalErrorPrototype; + + if (ERROR_NAME !== 'Error') { + if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError); + else copyConstructorProperties(WrappedError, BaseError, { name: true }); + } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) { + proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT); + proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace'); + } + + copyConstructorProperties(WrappedError, OriginalError); + + if (!IS_PURE) try { + // Safari 13- bug: WebAssembly errors does not have a proper `.name` + if (OriginalErrorPrototype.name !== ERROR_NAME) { + createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME); + } + OriginalErrorPrototype.constructor = WrappedError; + } catch (error) { /* empty */ } + + return WrappedError; +}; + + +/***/ }), +/* 113 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-proto -- safe */ +var uncurryThisAccessor = __webpack_require__(114); +var isObject = __webpack_require__(20); +var requireObjectCoercible = __webpack_require__(16); +var aPossiblePrototype = __webpack_require__(115); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + requireObjectCoercible(O); + aPossiblePrototype(proto); + if (!isObject(O)) return O; + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + + +/***/ }), +/* 114 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); + +module.exports = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 115 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPossiblePrototype = __webpack_require__(116); + +var $String = String; +var $TypeError = TypeError; + +module.exports = function (argument) { + if (isPossiblePrototype(argument)) return argument; + throw new $TypeError("Can't set " + $String(argument) + ' as a prototype'); +}; + + +/***/ }), +/* 116 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +module.exports = function (argument) { + return isObject(argument) || argument === null; +}; + + +/***/ }), +/* 117 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (Target, Source, key) { + key in Target || defineProperty(Target, key, { + configurable: true, + get: function () { return Source[key]; }, + set: function (it) { Source[key] = it; } + }); +}; + + +/***/ }), +/* 118 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var setPrototypeOf = __webpack_require__(113); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), +/* 119 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toString = __webpack_require__(68); + +module.exports = function (argument, $default) { + return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument); +}; + + +/***/ }), +/* 120 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); + +// `InstallErrorCause` abstract operation +// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause +module.exports = function (O, options) { + if (isObject(options) && 'cause' in options) { + createNonEnumerableProperty(O, 'cause', options.cause); + } +}; + + +/***/ }), +/* 121 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var createNonEnumerableProperty = __webpack_require__(43); +var clearErrorStack = __webpack_require__(122); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); + +// non-standard V8 +var captureStackTrace = Error.captureStackTrace; + +module.exports = function (error, C, stack, dropEntries) { + if (ERROR_STACK_INSTALLABLE) { + if (captureStackTrace) captureStackTrace(error, C); + else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries)); + } +}; + + +/***/ }), +/* 122 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var $Error = Error; +var replace = uncurryThis(''.replace); + +var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd'); +// eslint-disable-next-line redos/no-vulnerable -- safe +var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; +var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); + +module.exports = function (stack, dropEntries) { + if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) { + while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); + } return stack; +}; + + +/***/ }), +/* 123 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = !fails(function () { + var error = new Error('a'); + if (!('stack' in error)) return true; + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); + return error.stack !== 7; +}); + + +/***/ }), +/* 124 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var errorToString = __webpack_require__(125); + +var ErrorPrototype = Error.prototype; + +// `Error.prototype.toString` method fix +// https://tc39.es/ecma262/#sec-error.prototype.tostring +if (ErrorPrototype.toString !== errorToString) { + defineBuiltIn(ErrorPrototype, 'toString', errorToString); +} + + +/***/ }), +/* 125 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var normalizeStringArgument = __webpack_require__(119); + +var nativeErrorToString = Error.prototype.toString; + +var INCORRECT_TO_STRING = fails(function () { + if (DESCRIPTORS) { + // Chrome 32- incorrectly call accessor + // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe + var object = Object.create(Object.defineProperty({}, 'name', { get: function () { + return this === object; + } })); + if (nativeErrorToString.call(object) !== 'true') return true; + } + // FF10- does not properly handle non-strings + return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1' + // IE8 does not properly handle defaults + || nativeErrorToString.call({}) !== 'Error'; +}); + +module.exports = INCORRECT_TO_STRING ? function toString() { + var O = anObject(this); + var name = normalizeStringArgument(O.name, 'Error'); + var message = normalizeStringArgument(O.message); + return !name ? message : !message ? name : name + ': ' + message; +} : nativeErrorToString; + + +/***/ }), +/* 126 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(127); + + +/***/ }), +/* 127 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var create = __webpack_require__(71); +var createNonEnumerableProperty = __webpack_require__(43); +var createPropertyDescriptor = __webpack_require__(11); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var iterate = __webpack_require__(130); +var normalizeStringArgument = __webpack_require__(119); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Error = Error; +var push = [].push; + +var $AggregateError = function AggregateError(errors, message /* , options */) { + var isInstance = isPrototypeOf(AggregateErrorPrototype, this); + var that; + if (setPrototypeOf) { + that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype); + } else { + that = isInstance ? this : create(AggregateErrorPrototype); + createNonEnumerableProperty(that, TO_STRING_TAG, 'Error'); + } + if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message)); + installErrorStack(that, $AggregateError, that.stack, 1); + if (arguments.length > 2) installErrorCause(that, arguments[2]); + var errorsArray = []; + iterate(errors, push, { that: errorsArray }); + createNonEnumerableProperty(that, 'errors', errorsArray); + return that; +}; + +if (setPrototypeOf) setPrototypeOf($AggregateError, $Error); +else copyConstructorProperties($AggregateError, $Error, { name: true }); + +var AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, { + constructor: createPropertyDescriptor(1, $AggregateError), + message: createPropertyDescriptor(1, ''), + name: createPropertyDescriptor(1, 'AggregateError') +}); + +// `AggregateError` constructor +// https://tc39.es/ecma262/#sec-aggregate-error-constructor +$({ global: true, constructor: true, arity: 2 }, { + AggregateError: $AggregateError +}); + + +/***/ }), +/* 128 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var toObject = __webpack_require__(39); +var sharedKey = __webpack_require__(53); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + + +/***/ }), +/* 129 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + + +/***/ }), +/* 130 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var isArrayIteratorMethod = __webpack_require__(131); +var lengthOfArrayLike = __webpack_require__(63); +var isPrototypeOf = __webpack_require__(24); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var iteratorClose = __webpack_require__(135); + +var $TypeError = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +module.exports = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + + +/***/ }), +/* 131 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; + + +/***/ }), +/* 132 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 133 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var getIteratorMethod = __webpack_require__(134); + +var $TypeError = TypeError; + +module.exports = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); + throw new $TypeError(tryToString(argument) + ' is not iterable'); +}; + + +/***/ }), +/* 134 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); +var getMethod = __webpack_require__(29); +var isNullOrUndefined = __webpack_require__(17); +var Iterators = __webpack_require__(132); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = function (it) { + if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) + || getMethod(it, '@@iterator') + || Iterators[classof(it)]; +}; + + +/***/ }), +/* 135 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var getMethod = __webpack_require__(29); + +module.exports = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject(innerResult); + return value; +}; + + +/***/ }), +/* 136 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var fails = __webpack_require__(7); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var AGGREGATE_ERROR = 'AggregateError'; +var $AggregateError = getBuiltIn(AGGREGATE_ERROR); + +var FORCED = !fails(function () { + return $AggregateError([1]).errors[0] !== 1; +}) && fails(function () { + return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7; +}); + +// https://tc39.es/ecma262/#sec-aggregate-error +$({ global: true, constructor: true, arity: 2, forced: FORCED }, { + AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) { + // eslint-disable-next-line no-unused-vars -- required for functions `.length` + return function AggregateError(errors, message) { return apply(init, this, arguments); }; + }, FORCED, true) +}); + + +/***/ }), +/* 137 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.at` method +// https://tc39.es/ecma262/#sec-array.prototype.at +$({ target: 'Array', proto: true }, { + at: function at(index) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; + } +}); + +addToUnscopables('at'); + + +/***/ }), +/* 138 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var create = __webpack_require__(71); +var defineProperty = (__webpack_require__(44).f); + +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + + +/***/ }), +/* 139 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isArray = __webpack_require__(88); +var isObject = __webpack_require__(20); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var createProperty = __webpack_require__(141); +var arraySpeciesCreate = __webpack_require__(86); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); + +// We can't use this feature detection in V8 since it causes +// deoptimization and serious performance degradation +// https://github.com/zloirock/core-js/issues/679 +var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; +}); + +var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); +}; + +var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + +// `Array.prototype.concat` method +// https://tc39.es/ecma262/#sec-array.prototype.concat +// with adding support of @@isConcatSpreadable and @@species +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } +}); + + +/***/ }), +/* 140 */ +/***/ (function(module) { + + +var $TypeError = TypeError; +var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + +module.exports = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded'); + return it; +}; + + +/***/ }), +/* 141 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = function (object, key, value) { + if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; +}; + + +/***/ }), +/* 142 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + + +/***/ }), +/* 143 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var copyWithin = __webpack_require__(144); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +$({ target: 'Array', proto: true }, { + copyWithin: copyWithin +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('copyWithin'); + + +/***/ }), +/* 144 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); + +var min = Math.min; + +// `Array.prototype.copyWithin` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +// eslint-disable-next-line es/no-array-prototype-copywithin -- safe +module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + while (count-- > 0) { + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + to += inc; + from += inc; + } return O; +}; + + +/***/ }), +/* 145 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +module.exports = function (O, P) { + if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O)); +}; + + +/***/ }), +/* 146 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $every = (__webpack_require__(83).every); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('every'); + +// `Array.prototype.every` method +// https://tc39.es/ecma262/#sec-array.prototype.every +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + every: function every(callbackfn /* , thisArg */) { + return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 147 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); +}; + + +/***/ }), +/* 148 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fill = __webpack_require__(149); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.fill` method +// https://tc39.es/ecma262/#sec-array.prototype.fill +$({ target: 'Array', proto: true }, { + fill: fill +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('fill'); + + +/***/ }), +/* 149 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.fill` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.fill +module.exports = function fill(value /* , start = 0, end = @length */) { + var O = toObject(this); + var length = lengthOfArrayLike(O); + var argumentsLength = arguments.length; + var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); + var end = argumentsLength > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + while (endPos > index) O[index++] = value; + return O; +}; + + +/***/ }), +/* 150 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $filter = (__webpack_require__(83).filter); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + +// `Array.prototype.filter` method +// https://tc39.es/ecma262/#sec-array.prototype.filter +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 151 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $find = (__webpack_require__(83).find); +var addToUnscopables = __webpack_require__(138); + +var FIND = 'find'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-find -- testing +if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.find` method +// https://tc39.es/ecma262/#sec-array.prototype.find +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND); + + +/***/ }), +/* 152 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findIndex = (__webpack_require__(83).findIndex); +var addToUnscopables = __webpack_require__(138); + +var FIND_INDEX = 'findIndex'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-findindex -- testing +if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findindex +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + findIndex: function findIndex(callbackfn /* , that = undefined */) { + return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND_INDEX); + + +/***/ }), +/* 153 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLast = (__webpack_require__(154).findLast); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLast` method +// https://tc39.es/ecma262/#sec-array.prototype.findlast +$({ target: 'Array', proto: true }, { + findLast: function findLast(callbackfn /* , that = undefined */) { + return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLast'); + + +/***/ }), +/* 154 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ findLast, findLastIndex }` methods implementation +var createMethod = function (TYPE) { + var IS_FIND_LAST_INDEX = TYPE === 1; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IndexedObject(O); + var index = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var value, result; + while (index-- > 0) { + value = self[index]; + result = boundFunction(value, index, O); + if (result) switch (TYPE) { + case 0: return value; // findLast + case 1: return index; // findLastIndex + } + } + return IS_FIND_LAST_INDEX ? -1 : undefined; + }; +}; + +module.exports = { + // `Array.prototype.findLast` method + // https://github.com/tc39/proposal-array-find-from-last + findLast: createMethod(0), + // `Array.prototype.findLastIndex` method + // https://github.com/tc39/proposal-array-find-from-last + findLastIndex: createMethod(1) +}; + + +/***/ }), +/* 155 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLastIndex = (__webpack_require__(154).findLastIndex); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findlastindex +$({ target: 'Array', proto: true }, { + findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) { + return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLastIndex'); + + +/***/ }), +/* 156 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flat` method +// https://tc39.es/ecma262/#sec-array.prototype.flat +$({ target: 'Array', proto: true }, { + flat: function flat(/* depthArg = 1 */) { + var depthArg = arguments.length ? arguments[0] : undefined; + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg)); + return A; + } +}); + + +/***/ }), +/* 157 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var bind = __webpack_require__(84); + +// `FlattenIntoArray` abstract operation +// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray +var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? bind(mapper, thisArg) : false; + var element, elementLen; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + if (depth > 0 && isArray(element)) { + elementLen = lengthOfArrayLike(element); + targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1; + } else { + doesNotExceedSafeInteger(targetIndex + 1); + target[targetIndex] = element; + } + + targetIndex++; + } + sourceIndex++; + } + return targetIndex; +}; + +module.exports = flattenIntoArray; + + +/***/ }), +/* 158 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flatMap` method +// https://tc39.es/ecma262/#sec-array.prototype.flatmap +$({ target: 'Array', proto: true }, { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A; + aCallable(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return A; + } +}); + + +/***/ }), +/* 159 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var forEach = __webpack_require__(160); + +// `Array.prototype.forEach` method +// https://tc39.es/ecma262/#sec-array.prototype.foreach +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, { + forEach: forEach +}); + + +/***/ }), +/* 160 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $forEach = (__webpack_require__(83).forEach); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('forEach'); + +// `Array.prototype.forEach` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.foreach +module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +} : [].forEach; + + +/***/ }), +/* 161 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var from = __webpack_require__(162); +var checkCorrectnessOfIteration = __webpack_require__(164); + +var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); +}); + +// `Array.from` method +// https://tc39.es/ecma262/#sec-array.from +$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from +}); + + +/***/ }), +/* 162 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var toObject = __webpack_require__(39); +var callWithSafeIterationClosing = __webpack_require__(163); +var isArrayIteratorMethod = __webpack_require__(131); +var isConstructor = __webpack_require__(89); +var lengthOfArrayLike = __webpack_require__(63); +var createProperty = __webpack_require__(141); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); + +var $Array = Array; + +// `Array.from` method implementation +// https://tc39.es/ecma262/#sec-array.from +module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + result = IS_CONSTRUCTOR ? new this() : []; + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + for (;!(step = call(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; +}; + + +/***/ }), +/* 163 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var iteratorClose = __webpack_require__(135); + +// call something on iterator step with safe closing on error +module.exports = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } +}; + + +/***/ }), +/* 164 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +module.exports = function (exec, SKIP_CLOSING) { + try { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + } catch (error) { return false; } // workaround of old WebKit + `eval` bug + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + + +/***/ }), +/* 165 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $includes = (__webpack_require__(59).includes); +var fails = __webpack_require__(7); +var addToUnscopables = __webpack_require__(138); + +// FF99+ bug +var BROKEN_ON_SPARSE = fails(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); +}); + +// `Array.prototype.includes` method +// https://tc39.es/ecma262/#sec-array.prototype.includes +$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('includes'); + + +/***/ }), +/* 166 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-indexof -- required for testing */ +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var $indexOf = (__webpack_require__(59).indexOf); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeIndexOf = uncurryThis([].indexOf); + +var NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0; +var FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf'); + +// `Array.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.indexof +$({ target: 'Array', proto: true, forced: FORCED }, { + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + var fromIndex = arguments.length > 1 ? arguments[1] : undefined; + return NEGATIVE_ZERO + // convert -0 to +0 + ? nativeIndexOf(this, searchElement, fromIndex) || 0 + : $indexOf(this, searchElement, fromIndex); + } +}); + + +/***/ }), +/* 167 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); + +// `Array.isArray` method +// https://tc39.es/ecma262/#sec-array.isarray +$({ target: 'Array', stat: true }, { + isArray: isArray +}); + + +/***/ }), +/* 168 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); +var Iterators = __webpack_require__(132); +var InternalStateModule = __webpack_require__(51); +var defineProperty = (__webpack_require__(44).f); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +module.exports = defineIterator(Array, 'Array', function (iterated, kind) { + setInternalState(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + switch (state.kind) { + case 'keys': return createIterResultObject(index, false); + case 'values': return createIterResultObject(target[index], false); + } return createIterResultObject([index, target[index]], false); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +// V8 ~ Chrome 45- bug +if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try { + defineProperty(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 169 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var IS_PURE = __webpack_require__(36); +var FunctionName = __webpack_require__(49); +var isCallable = __webpack_require__(21); +var createIteratorConstructor = __webpack_require__(170); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); +var IteratorsCore = __webpack_require__(171); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR = wellKnownSymbol('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND]; + + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } + + return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { + defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn(IterablePrototype, KEY, methods[KEY]); + } + } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); + } + Iterators[NAME] = defaultIterator; + + return methods; +}; + + +/***/ }), +/* 170 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IteratorPrototype = (__webpack_require__(171).IteratorPrototype); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var setToStringTag = __webpack_require__(82); +var Iterators = __webpack_require__(132); + +var returnThis = function () { return this; }; + +module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; +}; + + +/***/ }), +/* 171 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var getPrototypeOf = __webpack_require__(128); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype[ITERATOR].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; +else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable(IteratorPrototype[ITERATOR])) { + defineBuiltIn(IteratorPrototype, ITERATOR, function () { + return this; + }); +} + +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + + +/***/ }), +/* 172 */ +/***/ (function(module) { + + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +module.exports = function (value, done) { + return { value: value, done: done }; +}; + + +/***/ }), +/* 173 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toIndexedObject = __webpack_require__(12); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeJoin = uncurryThis([].join); + +var ES3_STRINGS = IndexedObject !== Object; +var FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ','); + +// `Array.prototype.join` method +// https://tc39.es/ecma262/#sec-array.prototype.join +$({ target: 'Array', proto: true, forced: FORCED }, { + join: function join(separator) { + return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator); + } +}); + + +/***/ }), +/* 174 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var lastIndexOf = __webpack_require__(175); + +// `Array.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing +$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, { + lastIndexOf: lastIndexOf +}); + + +/***/ }), +/* 175 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-lastindexof -- safe */ +var apply = __webpack_require__(94); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var arrayMethodIsStrict = __webpack_require__(147); + +var min = Math.min; +var $lastIndexOf = [].lastIndexOf; +var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; +var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); +var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; + +// `Array.prototype.lastIndexOf` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0; + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + if (length === 0) return -1; + var index = length - 1; + if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1])); + if (index < 0) index = length + index; + for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; + return -1; +} : $lastIndexOf; + + +/***/ }), +/* 176 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $map = (__webpack_require__(83).map); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); + +// `Array.prototype.map` method +// https://tc39.es/ecma262/#sec-array.prototype.map +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 177 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isConstructor = __webpack_require__(89); +var createProperty = __webpack_require__(141); + +var $Array = Array; + +var ISNT_GENERIC = fails(function () { + function F() { /* empty */ } + // eslint-disable-next-line es/no-array-of -- safe + return !($Array.of.call(F) instanceof F); +}); + +// `Array.of` method +// https://tc39.es/ecma262/#sec-array.of +// WebKit Array.of isn't generic +$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { + of: function of(/* ...args */) { + var index = 0; + var argumentsLength = arguments.length; + var result = new (isConstructor(this) ? this : $Array)(argumentsLength); + while (argumentsLength > index) createProperty(result, index, arguments[index++]); + result.length = argumentsLength; + return result; + } +}); + + +/***/ }), +/* 178 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var fails = __webpack_require__(7); + +var INCORRECT_TO_LENGTH = fails(function () { + return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; +}); + +// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError +// https://bugs.chromium.org/p/v8/issues/detail?id=12681 +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).push(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); + +// `Array.prototype.push` method +// https://tc39.es/ecma262/#sec-array.prototype.push +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + push: function push(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + doesNotExceedSafeInteger(len + argCount); + for (var i = 0; i < argCount; i++) { + O[len] = arguments[i]; + len++; + } + setArrayLength(O, len); + return len; + } +}); + + +/***/ }), +/* 179 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var isArray = __webpack_require__(88); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Safari < 13 does not throw an error in this case +var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () { + // makes no sense without proper strict mode support + if (this !== undefined) return true; + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).length = 1; + } catch (error) { + return error instanceof TypeError; + } +}(); + +module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) { + if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) { + throw new $TypeError('Cannot set read only .length'); + } return O.length = length; +} : function (O, length) { + return O.length = length; +}; + + +/***/ }), +/* 180 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduce = (__webpack_require__(181).left); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce'); + +// `Array.prototype.reduce` method +// https://tc39.es/ecma262/#sec-array.prototype.reduce +$({ target: 'Array', proto: true, forced: FORCED }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 181 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); +var lengthOfArrayLike = __webpack_require__(63); + +var $TypeError = TypeError; + +var REDUCE_EMPTY = 'Reduce of empty array with no initial value'; + +// `Array.prototype.{ reduce, reduceRight }` methods implementation +var createMethod = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + var O = toObject(that); + var self = IndexedObject(O); + var length = lengthOfArrayLike(O); + aCallable(callbackfn); + if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw new $TypeError(REDUCE_EMPTY); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; +}; + +module.exports = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod(true) +}; + + +/***/ }), +/* 182 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var classof = __webpack_require__(15); + +module.exports = classof(global.process) === 'process'; + + +/***/ }), +/* 183 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduceRight = (__webpack_require__(181).right); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight'); + +// `Array.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-array.prototype.reduceright +$({ target: 'Array', proto: true, forced: FORCED }, { + reduceRight: function reduceRight(callbackfn /* , initialValue */) { + return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 184 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); + +var nativeReverse = uncurryThis([].reverse); +var test = [1, 2]; + +// `Array.prototype.reverse` method +// https://tc39.es/ecma262/#sec-array.prototype.reverse +// fix for Safari 12.0 bug +// https://bugs.webkit.org/show_bug.cgi?id=188794 +$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, { + reverse: function reverse() { + // eslint-disable-next-line no-self-assign -- dirty hack + if (isArray(this)) this.length = this.length; + return nativeReverse(this); + } +}); + + +/***/ }), +/* 185 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var toIndexedObject = __webpack_require__(12); +var createProperty = __webpack_require__(141); +var wellKnownSymbol = __webpack_require__(33); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var nativeSlice = __webpack_require__(76); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; +var max = Math.max; + +// `Array.prototype.slice` method +// https://tc39.es/ecma262/#sec-array.prototype.slice +// fallback for not array-like ES3 strings and DOM objects +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + slice: function slice(start, end) { + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject(Constructor)) { + Constructor = Constructor[SPECIES]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); + result.length = n; + return result; + } +}); + + +/***/ }), +/* 186 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $some = (__webpack_require__(83).some); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('some'); + +// `Array.prototype.some` method +// https://tc39.es/ecma262/#sec-array.prototype.some +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + some: function some(callbackfn /* , thisArg */) { + return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 187 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var internalSort = __webpack_require__(188); +var arrayMethodIsStrict = __webpack_require__(147); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var test = []; +var nativeSort = uncurryThis(test.sort); +var push = uncurryThis(test.push); + +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var STABLE_SORT = !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; +}); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString(x) > toString(y) ? 1 : -1; + }; +}; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + + var array = toObject(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = lengthOfArrayLike(items); + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) deletePropertyOrThrow(array, index++); + + return array; + } +}); + + +/***/ }), +/* 188 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySlice = __webpack_require__(76); + +var floor = Math.floor; + +var sort = function (array, comparefn) { + var length = array.length; + + if (length < 8) { + // insertion sort + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } + } else { + // merge sort + var middle = floor(length / 2); + var left = sort(arraySlice(array, 0, middle), comparefn); + var right = sort(arraySlice(array, middle), comparefn); + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } + } + + return array; +}; + +module.exports = sort; + + +/***/ }), +/* 189 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var firefox = userAgent.match(/firefox\/(\d+)/i); + +module.exports = !!firefox && +firefox[1]; + + +/***/ }), +/* 190 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var UA = __webpack_require__(28); + +module.exports = /MSIE|Trident/.test(UA); + + +/***/ }), +/* 191 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + +module.exports = !!webkit && +webkit[1]; + + +/***/ }), +/* 192 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setSpecies = __webpack_require__(193); + +// `Array[@@species]` getter +// https://tc39.es/ecma262/#sec-get-array-@@species +setSpecies('Array'); + + +/***/ }), +/* 193 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineBuiltInAccessor = __webpack_require__(77); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + + if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + defineBuiltInAccessor(Constructor, SPECIES, { + configurable: true, + get: function () { return this; } + }); + } +}; + + +/***/ }), +/* 194 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var arraySpeciesCreate = __webpack_require__(86); +var createProperty = __webpack_require__(141); +var deletePropertyOrThrow = __webpack_require__(145); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); + +var max = Math.max; +var min = Math.min; + +// `Array.prototype.splice` method +// https://tc39.es/ecma262/#sec-array.prototype.splice +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + splice: function splice(start, deleteCount /* , ...items */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var insertCount, actualDeleteCount, A, k, from, to; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = arraySpeciesCreate(O, actualDeleteCount); + for (k = 0; k < actualDeleteCount; k++) { + from = actualStart + k; + if (from in O) createProperty(A, k, O[from]); + } + A.length = actualDeleteCount; + if (insertCount < actualDeleteCount) { + for (k = actualStart; k < len - actualDeleteCount; k++) { + from = k + actualDeleteCount; + to = k + insertCount; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1); + } else if (insertCount > actualDeleteCount) { + for (k = len - actualDeleteCount; k > actualStart; k--) { + from = k + actualDeleteCount - 1; + to = k + insertCount - 1; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + } + for (k = 0; k < insertCount; k++) { + O[k + actualStart] = arguments[k + 2]; + } + setArrayLength(O, len - actualDeleteCount + insertCount); + return A; + } +}); + + +/***/ }), +/* 195 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayToReversed = __webpack_require__(196); +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; + +// `Array.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-array.prototype.toreversed +$({ target: 'Array', proto: true }, { + toReversed: function toReversed() { + return arrayToReversed(toIndexedObject(this), $Array); + } +}); + +addToUnscopables('toReversed'); + + +/***/ }), +/* 196 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed +module.exports = function (O, C) { + var len = lengthOfArrayLike(O); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = O[len - k - 1]; + return A; +}; + + +/***/ }), +/* 197 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toIndexedObject = __webpack_require__(12); +var arrayFromConstructorAndList = __webpack_require__(198); +var getBuiltInPrototypeMethod = __webpack_require__(199); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; +var sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort')); + +// `Array.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-array.prototype.tosorted +$({ target: 'Array', proto: true }, { + toSorted: function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = toIndexedObject(this); + var A = arrayFromConstructorAndList($Array, O); + return sort(A, compareFn); + } +}); + +addToUnscopables('toSorted'); + + +/***/ }), +/* 198 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +module.exports = function (Constructor, list, $length) { + var index = 0; + var length = arguments.length > 2 ? $length : lengthOfArrayLike(list); + var result = new Constructor(length); + while (length > index) result[index] = list[index++]; + return result; +}; + + +/***/ }), +/* 199 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = function (CONSTRUCTOR, METHOD) { + var Constructor = global[CONSTRUCTOR]; + var Prototype = Constructor && Constructor.prototype; + return Prototype && Prototype[METHOD]; +}; + + +/***/ }), +/* 200 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var addToUnscopables = __webpack_require__(138); +var doesNotExceedSafeInteger = __webpack_require__(140); +var lengthOfArrayLike = __webpack_require__(63); +var toAbsoluteIndex = __webpack_require__(60); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); + +var $Array = Array; +var max = Math.max; +var min = Math.min; + +// `Array.prototype.toSpliced` method +// https://tc39.es/ecma262/#sec-array.prototype.tospliced +$({ target: 'Array', proto: true }, { + toSpliced: function toSpliced(start, deleteCount /* , ...items */) { + var O = toIndexedObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var k = 0; + var insertCount, actualDeleteCount, newLen, A; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = $Array(newLen); + + for (; k < actualStart; k++) A[k] = O[k]; + for (; k < actualStart + insertCount; k++) A[k] = arguments[k - actualStart + 2]; + for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount]; + + return A; + } +}); + +addToUnscopables('toSpliced'); + + +/***/ }), +/* 201 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flat'); + + +/***/ }), +/* 202 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flatMap'); + + +/***/ }), +/* 203 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var deletePropertyOrThrow = __webpack_require__(145); +var doesNotExceedSafeInteger = __webpack_require__(140); + +// IE8- +var INCORRECT_RESULT = [].unshift(0) !== 1; + +// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).unshift(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength(); + +// `Array.prototype.unshift` method +// https://tc39.es/ecma262/#sec-array.prototype.unshift +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + unshift: function unshift(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + if (argCount) { + doesNotExceedSafeInteger(len + argCount); + var k = len; + while (k--) { + var to = k + argCount; + if (k in O) O[to] = O[k]; + else deletePropertyOrThrow(O, to); + } + for (var j = 0; j < argCount; j++) { + O[j] = arguments[j]; + } + } return setArrayLength(O, len + argCount); + } +}); + + +/***/ }), +/* 204 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayWith = __webpack_require__(205); +var toIndexedObject = __webpack_require__(12); + +var $Array = Array; + +// `Array.prototype.with` method +// https://tc39.es/ecma262/#sec-array.prototype.with +$({ target: 'Array', proto: true }, { + 'with': function (index, value) { + return arrayWith(toIndexedObject(this), $Array, index, value); + } +}); + + +/***/ }), +/* 205 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with +module.exports = function (O, C, index, value) { + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; + if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index'); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = k === actualIndex ? value : O[k]; + return A; +}; + + +/***/ }), +/* 206 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var arrayBufferModule = __webpack_require__(207); +var setSpecies = __webpack_require__(193); + +var ARRAY_BUFFER = 'ArrayBuffer'; +var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER]; +var NativeArrayBuffer = global[ARRAY_BUFFER]; + +// `ArrayBuffer` constructor +// https://tc39.es/ecma262/#sec-arraybuffer-constructor +$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, { + ArrayBuffer: ArrayBuffer +}); + +setSpecies(ARRAY_BUFFER); + + +/***/ }), +/* 207 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var FunctionName = __webpack_require__(49); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var fails = __webpack_require__(7); +var anInstance = __webpack_require__(210); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var fround = __webpack_require__(212); +var IEEE754 = __webpack_require__(215); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var arrayFill = __webpack_require__(149); +var arraySlice = __webpack_require__(76); +var inheritIfRequired = __webpack_require__(118); +var copyConstructorProperties = __webpack_require__(55); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var ARRAY_BUFFER = 'ArrayBuffer'; +var DATA_VIEW = 'DataView'; +var PROTOTYPE = 'prototype'; +var WRONG_LENGTH = 'Wrong length'; +var WRONG_INDEX = 'Wrong index'; +var getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER); +var getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW); +var setInternalState = InternalStateModule.set; +var NativeArrayBuffer = global[ARRAY_BUFFER]; +var $ArrayBuffer = NativeArrayBuffer; +var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE]; +var $DataView = global[DATA_VIEW]; +var DataViewPrototype = $DataView && $DataView[PROTOTYPE]; +var ObjectPrototype = Object.prototype; +var Array = global.Array; +var RangeError = global.RangeError; +var fill = uncurryThis(arrayFill); +var reverse = uncurryThis([].reverse); + +var packIEEE754 = IEEE754.pack; +var unpackIEEE754 = IEEE754.unpack; + +var packInt8 = function (number) { + return [number & 0xFF]; +}; + +var packInt16 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF]; +}; + +var packInt32 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF]; +}; + +var unpackInt32 = function (buffer) { + return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0]; +}; + +var packFloat32 = function (number) { + return packIEEE754(fround(number), 23, 4); +}; + +var packFloat64 = function (number) { + return packIEEE754(number, 52, 8); +}; + +var addGetter = function (Constructor, key, getInternalState) { + defineBuiltInAccessor(Constructor[PROTOTYPE], key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var get = function (view, count, index, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + var pack = arraySlice(bytes, start, start + count); + return boolIsLittleEndian ? pack : reverse(pack); +}; + +var set = function (view, count, index, conversion, value, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var pack = conversion(+value); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1]; +}; + +if (!NATIVE_ARRAY_BUFFER) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + var byteLength = toIndex(length); + setInternalState(this, { + type: ARRAY_BUFFER, + bytes: fill(Array(byteLength), 0), + byteLength: byteLength + }); + if (!DESCRIPTORS) { + this.byteLength = byteLength; + this.detached = false; + } + }; + + ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE]; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, DataViewPrototype); + anInstance(buffer, ArrayBufferPrototype); + var bufferState = getInternalArrayBufferState(buffer); + var bufferLength = bufferState.byteLength; + var offset = toIntegerOrInfinity(byteOffset); + if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH); + setInternalState(this, { + type: DATA_VIEW, + buffer: buffer, + byteLength: byteLength, + byteOffset: offset, + bytes: bufferState.bytes + }); + if (!DESCRIPTORS) { + this.buffer = buffer; + this.byteLength = byteLength; + this.byteOffset = offset; + } + }; + + DataViewPrototype = $DataView[PROTOTYPE]; + + if (DESCRIPTORS) { + addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState); + addGetter($DataView, 'buffer', getInternalDataViewState); + addGetter($DataView, 'byteLength', getInternalDataViewState); + addGetter($DataView, 'byteOffset', getInternalDataViewState); + } + + defineBuiltIns(DataViewPrototype, { + getInt8: function getInt8(byteOffset) { + return get(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)); + }, + getUint32: function getUint32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0; + }, + getFloat32: function getFloat32(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23); + }, + getFloat64: function getFloat64(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52); + }, + setInt8: function setInt8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setInt16: function setInt16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint16: function setUint16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setInt32: function setInt32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint32: function setUint32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { + set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false); + } + }); +} else { + var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER; + /* eslint-disable no-new -- required for testing */ + if (!fails(function () { + NativeArrayBuffer(1); + }) || !fails(function () { + new NativeArrayBuffer(-1); + }) || fails(function () { + new NativeArrayBuffer(); + new NativeArrayBuffer(1.5); + new NativeArrayBuffer(NaN); + return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME; + })) { + /* eslint-enable no-new -- required for testing */ + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer); + }; + + $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype; + + ArrayBufferPrototype.constructor = $ArrayBuffer; + + copyConstructorProperties($ArrayBuffer, NativeArrayBuffer); + } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER); + } + + // WebKit bug - the same parent prototype for typed arrays and data view + if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) { + setPrototypeOf(DataViewPrototype, ObjectPrototype); + } + + // iOS Safari 7.x bug + var testView = new $DataView(new $ArrayBuffer(2)); + var $setInt8 = uncurryThis(DataViewPrototype.setInt8); + testView.setInt8(0, 2147483648); + testView.setInt8(1, 2147483649); + if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, { + setInt8: function setInt8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + } + }, { unsafe: true }); +} + +setToStringTag($ArrayBuffer, ARRAY_BUFFER); +setToStringTag($DataView, DATA_VIEW); + +module.exports = { + ArrayBuffer: $ArrayBuffer, + DataView: $DataView +}; + + +/***/ }), +/* 208 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-typed-arrays -- safe +module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; + + +/***/ }), +/* 209 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); + +module.exports = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; +}; + + +/***/ }), +/* 210 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPrototypeOf = __webpack_require__(24); + +var $TypeError = TypeError; + +module.exports = function (it, Prototype) { + if (isPrototypeOf(Prototype, it)) return it; + throw new $TypeError('Incorrect invocation'); +}; + + +/***/ }), +/* 211 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); + +var $RangeError = RangeError; + +// `ToIndex` abstract operation +// https://tc39.es/ecma262/#sec-toindex +module.exports = function (it) { + if (it === undefined) return 0; + var number = toIntegerOrInfinity(it); + var length = toLength(number); + if (number !== length) throw new $RangeError('Wrong length or index'); + return length; +}; + + +/***/ }), +/* 212 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var floatRound = __webpack_require__(213); + +var FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23; +var FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104 +var FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126; + +// `Math.fround` method implementation +// https://tc39.es/ecma262/#sec-math.fround +// eslint-disable-next-line es/no-math-fround -- safe +module.exports = Math.fround || function fround(x) { + return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE); +}; + + +/***/ }), +/* 213 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var sign = __webpack_require__(214); + +var abs = Math.abs; + +var EPSILON = 2.220446049250313e-16; // Number.EPSILON +var INVERSE_EPSILON = 1 / EPSILON; + +var roundTiesToEven = function (n) { + return n + INVERSE_EPSILON - INVERSE_EPSILON; +}; + +module.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) { + var n = +x; + var absolute = abs(n); + var s = sign(n); + if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON; + var a = (1 + FLOAT_EPSILON / EPSILON) * absolute; + var result = a - (a - absolute); + // eslint-disable-next-line no-self-compare -- NaN check + if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity; + return s * result; +}; + + +/***/ }), +/* 214 */ +/***/ (function(module) { + + +// `Math.sign` method implementation +// https://tc39.es/ecma262/#sec-math.sign +// eslint-disable-next-line es/no-math-sign -- safe +module.exports = Math.sign || function sign(x) { + var n = +x; + // eslint-disable-next-line no-self-compare -- NaN check + return n === 0 || n !== n ? n : n < 0 ? -1 : 1; +}; + + +/***/ }), +/* 215 */ +/***/ (function(module) { + + +// IEEE754 conversions based on https://github.com/feross/ieee754 +var $Array = Array; +var abs = Math.abs; +var pow = Math.pow; +var floor = Math.floor; +var log = Math.log; +var LN2 = Math.LN2; + +var pack = function (number, mantissaLength, bytes) { + var buffer = $Array(bytes); + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0; + var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; + var index = 0; + var exponent, mantissa, c; + number = abs(number); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number || number === Infinity) { + // eslint-disable-next-line no-self-compare -- NaN check + mantissa = number !== number ? 1 : 0; + exponent = eMax; + } else { + exponent = floor(log(number) / LN2); + c = pow(2, -exponent); + if (number * c < 1) { + exponent--; + c *= 2; + } + if (exponent + eBias >= 1) { + number += rt / c; + } else { + number += rt * pow(2, 1 - eBias); + } + if (number * c >= 2) { + exponent++; + c /= 2; + } + if (exponent + eBias >= eMax) { + mantissa = 0; + exponent = eMax; + } else if (exponent + eBias >= 1) { + mantissa = (number * c - 1) * pow(2, mantissaLength); + exponent += eBias; + } else { + mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength); + exponent = 0; + } + } + while (mantissaLength >= 8) { + buffer[index++] = mantissa & 255; + mantissa /= 256; + mantissaLength -= 8; + } + exponent = exponent << mantissaLength | mantissa; + exponentLength += mantissaLength; + while (exponentLength > 0) { + buffer[index++] = exponent & 255; + exponent /= 256; + exponentLength -= 8; + } + buffer[--index] |= sign * 128; + return buffer; +}; + +var unpack = function (buffer, mantissaLength) { + var bytes = buffer.length; + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var nBits = exponentLength - 7; + var index = bytes - 1; + var sign = buffer[index--]; + var exponent = sign & 127; + var mantissa; + sign >>= 7; + while (nBits > 0) { + exponent = exponent * 256 + buffer[index--]; + nBits -= 8; + } + mantissa = exponent & (1 << -nBits) - 1; + exponent >>= -nBits; + nBits += mantissaLength; + while (nBits > 0) { + mantissa = mantissa * 256 + buffer[index--]; + nBits -= 8; + } + if (exponent === 0) { + exponent = 1 - eBias; + } else if (exponent === eMax) { + return mantissa ? NaN : sign ? -Infinity : Infinity; + } else { + mantissa += pow(2, mantissaLength); + exponent -= eBias; + } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength); +}; + +module.exports = { + pack: pack, + unpack: unpack +}; + + +/***/ }), +/* 216 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferViewCore = __webpack_require__(217); + +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; + +// `ArrayBuffer.isView` method +// https://tc39.es/ecma262/#sec-arraybuffer.isview +$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + isView: ArrayBufferViewCore.isView +}); + + +/***/ }), +/* 217 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var tryToString = __webpack_require__(31); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var wellKnownSymbol = __webpack_require__(33); +var uid = __webpack_require__(40); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = global.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; +var TypeError = global.TypeError; + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); +var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; +// Fixing native typed arrays in Opera Presto crashes the browser, see #595 +var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera'; +var TYPED_ARRAY_TAG_REQUIRED = false; +var NAME, Constructor, Prototype; + +var TypedArrayConstructorsList = { + Int8Array: 1, + Uint8Array: 1, + Uint8ClampedArray: 1, + Int16Array: 2, + Uint16Array: 2, + Int32Array: 4, + Uint32Array: 4, + Float32Array: 4, + Float64Array: 8 +}; + +var BigIntArrayConstructorsList = { + BigInt64Array: 8, + BigUint64Array: 8 +}; + +var isView = function isView(it) { + if (!isObject(it)) return false; + var klass = classof(it); + return klass === 'DataView' + || hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var getTypedArrayConstructor = function (it) { + var proto = getPrototypeOf(it); + if (!isObject(proto)) return; + var state = getInternalState(proto); + return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto); +}; + +var isTypedArray = function (it) { + if (!isObject(it)) return false; + var klass = classof(it); + return hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var aTypedArray = function (it) { + if (isTypedArray(it)) return it; + throw new TypeError('Target is not a typed array'); +}; + +var aTypedArrayConstructor = function (C) { + if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C; + throw new TypeError(tryToString(C) + ' is not a typed array constructor'); +}; + +var exportTypedArrayMethod = function (KEY, property, forced, options) { + if (!DESCRIPTORS) return; + if (forced) for (var ARRAY in TypedArrayConstructorsList) { + var TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try { + delete TypedArrayConstructor.prototype[KEY]; + } catch (error) { + // old WebKit bug - some methods are non-configurable + try { + TypedArrayConstructor.prototype[KEY] = property; + } catch (error2) { /* empty */ } + } + } + if (!TypedArrayPrototype[KEY] || forced) { + defineBuiltIn(TypedArrayPrototype, KEY, forced ? property + : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options); + } +}; + +var exportTypedArrayStaticMethod = function (KEY, property, forced) { + var ARRAY, TypedArrayConstructor; + if (!DESCRIPTORS) return; + if (setPrototypeOf) { + if (forced) for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try { + delete TypedArrayConstructor[KEY]; + } catch (error) { /* empty */ } + } + if (!TypedArray[KEY] || forced) { + // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable + try { + return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property); + } catch (error) { /* empty */ } + } else return; + } + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); + } + } +}; + +for (NAME in TypedArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else NATIVE_ARRAY_BUFFER_VIEWS = false; +} + +for (NAME in BigIntArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; +} + +// WebKit bug - typed arrays constructors prototype is Object.prototype +if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) { + // eslint-disable-next-line no-shadow -- safe + TypedArray = function TypedArray() { + throw new TypeError('Incorrect invocation'); + }; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME], TypedArray); + } +} + +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype); + } +} + +// WebKit bug - one more object in Uint8ClampedArray prototype chain +if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { + setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); +} + +if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { + TYPED_ARRAY_TAG_REQUIRED = true; + defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, { + configurable: true, + get: function () { + return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; + } + }); + for (NAME in TypedArrayConstructorsList) if (global[NAME]) { + createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME); + } +} + +module.exports = { + NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, + TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG, + aTypedArray: aTypedArray, + aTypedArrayConstructor: aTypedArrayConstructor, + exportTypedArrayMethod: exportTypedArrayMethod, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, + getTypedArrayConstructor: getTypedArrayConstructor, + isView: isView, + isTypedArray: isTypedArray, + TypedArray: TypedArray, + TypedArrayPrototype: TypedArrayPrototype +}; + + +/***/ }), +/* 218 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var ArrayBufferModule = __webpack_require__(207); +var anObject = __webpack_require__(46); +var toAbsoluteIndex = __webpack_require__(60); +var toLength = __webpack_require__(64); +var speciesConstructor = __webpack_require__(219); + +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var DataView = ArrayBufferModule.DataView; +var DataViewPrototype = DataView.prototype; +var nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice); +var getUint8 = uncurryThis(DataViewPrototype.getUint8); +var setUint8 = uncurryThis(DataViewPrototype.setUint8); + +var INCORRECT_SLICE = fails(function () { + return !new ArrayBuffer(2).slice(1, undefined).byteLength; +}); + +// `ArrayBuffer.prototype.slice` method +// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice +$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, { + slice: function slice(start, end) { + if (nativeArrayBufferSlice && end === undefined) { + return nativeArrayBufferSlice(anObject(this), start); // FF fix + } + var length = anObject(this).byteLength; + var first = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first)); + var viewSource = new DataView(this); + var viewTarget = new DataView(result); + var index = 0; + while (first < fin) { + setUint8(viewTarget, index++, getUint8(viewSource, first++)); + } return result; + } +}); + + +/***/ }), +/* 219 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var aConstructor = __webpack_require__(220); +var isNullOrUndefined = __webpack_require__(17); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +module.exports = function (O, defaultConstructor) { + var C = anObject(O).constructor; + var S; + return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S); +}; + + +/***/ }), +/* 220 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isConstructor = __webpack_require__(89); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsConstructor(argument) is true` +module.exports = function (argument) { + if (isConstructor(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a constructor'); +}; + + +/***/ }), +/* 221 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(222); + + +/***/ }), +/* 222 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferModule = __webpack_require__(207); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); + +// `DataView` constructor +// https://tc39.es/ecma262/#sec-dataview-constructor +$({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, { + DataView: ArrayBufferModule.DataView +}); + + +/***/ }), +/* 223 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isDetached = __webpack_require__(224); + +var ArrayBufferPrototype = ArrayBuffer.prototype; + +if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) { + defineBuiltInAccessor(ArrayBufferPrototype, 'detached', { + configurable: true, + get: function detached() { + return isDetached(this); + } + }); +} + + +/***/ }), +/* 224 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var arrayBufferByteLength = __webpack_require__(225); + +var slice = uncurryThis(ArrayBuffer.prototype.slice); + +module.exports = function (O) { + if (arrayBufferByteLength(O) !== 0) return false; + try { + slice(O, 0, 0); + return false; + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 225 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var classof = __webpack_require__(15); + +var $TypeError = TypeError; + +// Includes +// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). +// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. +module.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) { + if (classof(O) !== 'ArrayBuffer') throw new $TypeError('ArrayBuffer expected'); + return O.byteLength; +}; + + +/***/ }), +/* 226 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transfer` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transfer: function transfer() { + return $transfer(this, arguments.length ? arguments[0] : undefined, true); + } +}); + + +/***/ }), +/* 227 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var uncurryThisAccessor = __webpack_require__(114); +var toIndex = __webpack_require__(211); +var isDetached = __webpack_require__(224); +var arrayBufferByteLength = __webpack_require__(225); +var detachTransferable = __webpack_require__(228); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var ArrayBuffer = global.ArrayBuffer; +var DataView = global.DataView; +var TypeError = global.TypeError; +var min = Math.min; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataViewPrototype = DataView.prototype; +var slice = uncurryThis(ArrayBufferPrototype.slice); +var isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get'); +var maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get'); +var getInt8 = uncurryThis(DataViewPrototype.getInt8); +var setInt8 = uncurryThis(DataViewPrototype.setInt8); + +module.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) { + var byteLength = arrayBufferByteLength(arrayBuffer); + var newByteLength = newLength === undefined ? byteLength : toIndex(newLength); + var fixedLength = !isResizable || !isResizable(arrayBuffer); + var newBuffer; + if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached'); + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] }); + if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer; + } + if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) { + newBuffer = slice(arrayBuffer, 0, newByteLength); + } else { + var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined; + newBuffer = new ArrayBuffer(newByteLength, options); + var a = new DataView(arrayBuffer); + var b = new DataView(newBuffer); + var copyLength = min(newByteLength, byteLength); + for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i)); + } + if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer); + return newBuffer; +}; + + +/***/ }), +/* 228 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var tryNodeRequire = __webpack_require__(229); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var $ArrayBuffer = global.ArrayBuffer; +var $MessageChannel = global.MessageChannel; +var detach = false; +var WorkerThreads, channel, buffer, $detach; + +if (PROPER_STRUCTURED_CLONE_TRANSFER) { + detach = function (transferable) { + structuredClone(transferable, { transfer: [transferable] }); + }; +} else if ($ArrayBuffer) try { + if (!$MessageChannel) { + WorkerThreads = tryNodeRequire('worker_threads'); + if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel; + } + + if ($MessageChannel) { + channel = new $MessageChannel(); + buffer = new $ArrayBuffer(2); + + $detach = function (transferable) { + channel.port1.postMessage(null, [transferable]); + }; + + if (buffer.byteLength === 2) { + $detach(buffer); + if (buffer.byteLength === 0) detach = $detach; + } + } +} catch (error) { /* empty */ } + +module.exports = detach; + + +/***/ }), +/* 229 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_NODE = __webpack_require__(182); + +module.exports = function (name) { + try { + // eslint-disable-next-line no-new-func -- safe + if (IS_NODE) return Function('return require("' + name + '")')(); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 230 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var V8 = __webpack_require__(27); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +var structuredClone = global.structuredClone; + +module.exports = !!structuredClone && !fails(function () { + // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false; + var buffer = new ArrayBuffer(8); + var clone = structuredClone(buffer, { transfer: [buffer] }); + return buffer.byteLength !== 0 || clone.byteLength !== 8; +}); + + +/***/ }), +/* 231 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +module.exports = !IS_DENO && !IS_NODE + && typeof window == 'object' + && typeof document == 'object'; + + +/***/ }), +/* 232 */ +/***/ (function(module) { + + +/* global Deno -- Deno case */ +module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + +/***/ }), +/* 233 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transferToFixedLength` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transferToFixedLength: function transferToFixedLength() { + return $transfer(this, arguments.length ? arguments[0] : undefined, false); + } +}); + + +/***/ }), +/* 234 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +// IE8- non-standard case +var FORCED = fails(function () { + // eslint-disable-next-line es/no-date-prototype-getyear-setyear -- detection + return new Date(16e11).getYear() !== 120; +}); + +var getFullYear = uncurryThis(Date.prototype.getFullYear); + +// `Date.prototype.getYear` method +// https://tc39.es/ecma262/#sec-date.prototype.getyear +$({ target: 'Date', proto: true, forced: FORCED }, { + getYear: function getYear() { + return getFullYear(this) - 1900; + } +}); + + +/***/ }), +/* 235 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); + +var $Date = Date; +var thisTimeValue = uncurryThis($Date.prototype.getTime); + +// `Date.now` method +// https://tc39.es/ecma262/#sec-date.now +$({ target: 'Date', stat: true }, { + now: function now() { + return thisTimeValue(new $Date()); + } +}); + + +/***/ }), +/* 236 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); + +var DatePrototype = Date.prototype; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var setFullYear = uncurryThis(DatePrototype.setFullYear); + +// `Date.prototype.setYear` method +// https://tc39.es/ecma262/#sec-date.prototype.setyear +$({ target: 'Date', proto: true }, { + setYear: function setYear(year) { + // validate + thisTimeValue(this); + var yi = toIntegerOrInfinity(year); + var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi; + return setFullYear(this, yyyy); + } +}); + + +/***/ }), +/* 237 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Date.prototype.toGMTString` method +// https://tc39.es/ecma262/#sec-date.prototype.togmtstring +$({ target: 'Date', proto: true }, { + toGMTString: Date.prototype.toUTCString +}); + + +/***/ }), +/* 238 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toISOString = __webpack_require__(239); + +// `Date.prototype.toISOString` method +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit has a broken implementations +$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, { + toISOString: toISOString +}); + + +/***/ }), +/* 239 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var padStart = (__webpack_require__(240).start); + +var $RangeError = RangeError; +var $isFinite = isFinite; +var abs = Math.abs; +var DatePrototype = Date.prototype; +var nativeDateToISOString = DatePrototype.toISOString; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var getUTCDate = uncurryThis(DatePrototype.getUTCDate); +var getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear); +var getUTCHours = uncurryThis(DatePrototype.getUTCHours); +var getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds); +var getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes); +var getUTCMonth = uncurryThis(DatePrototype.getUTCMonth); +var getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds); + +// `Date.prototype.toISOString` method implementation +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit fails here: +module.exports = (fails(function () { + return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z'; +}) || !fails(function () { + nativeDateToISOString.call(new Date(NaN)); +})) ? function toISOString() { + if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value'); + var date = this; + var year = getUTCFullYear(date); + var milliseconds = getUTCMilliseconds(date); + var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; + return sign + padStart(abs(year), sign ? 6 : 4, 0) + + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + + '-' + padStart(getUTCDate(date), 2, 0) + + 'T' + padStart(getUTCHours(date), 2, 0) + + ':' + padStart(getUTCMinutes(date), 2, 0) + + ':' + padStart(getUTCSeconds(date), 2, 0) + + '.' + padStart(milliseconds, 3, 0) + + 'Z'; +} : nativeDateToISOString; + + +/***/ }), +/* 240 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/tc39/proposal-string-pad-start-end +var uncurryThis = __webpack_require__(14); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var $repeat = __webpack_require__(241); +var requireObjectCoercible = __webpack_require__(16); + +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var ceil = Math.ceil; + +// `String.prototype.{ padStart, padEnd }` methods implementation +var createMethod = function (IS_END) { + return function ($this, maxLength, fillString) { + var S = toString(requireObjectCoercible($this)); + var intMaxLength = toLength(maxLength); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : toString(fillString); + var fillLen, stringFiller; + if (intMaxLength <= stringLength || fillStr === '') return S; + fillLen = intMaxLength - stringLength; + stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen); + return IS_END ? S + stringFiller : stringFiller + S; + }; +}; + +module.exports = { + // `String.prototype.padStart` method + // https://tc39.es/ecma262/#sec-string.prototype.padstart + start: createMethod(false), + // `String.prototype.padEnd` method + // https://tc39.es/ecma262/#sec-string.prototype.padend + end: createMethod(true) +}; + + +/***/ }), +/* 241 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var $RangeError = RangeError; + +// `String.prototype.repeat` method implementation +// https://tc39.es/ecma262/#sec-string.prototype.repeat +module.exports = function repeat(count) { + var str = toString(requireObjectCoercible(this)); + var result = ''; + var n = toIntegerOrInfinity(count); + if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions'); + for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; + return result; +}; + + +/***/ }), +/* 242 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var toPrimitive = __webpack_require__(19); + +var FORCED = fails(function () { + return new Date(NaN).toJSON() !== null + || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; +}); + +// `Date.prototype.toJSON` method +// https://tc39.es/ecma262/#sec-date.prototype.tojson +$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O, 'number'); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } +}); + + +/***/ }), +/* 243 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var defineBuiltIn = __webpack_require__(47); +var dateToPrimitive = __webpack_require__(244); +var wellKnownSymbol = __webpack_require__(33); + +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); +var DatePrototype = Date.prototype; + +// `Date.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +if (!hasOwn(DatePrototype, TO_PRIMITIVE)) { + defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive); +} + + +/***/ }), +/* 244 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var ordinaryToPrimitive = __webpack_require__(32); + +var $TypeError = TypeError; + +// `Date.prototype[@@toPrimitive](hint)` method implementation +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +module.exports = function (hint) { + anObject(this); + if (hint === 'string' || hint === 'default') hint = 'string'; + else if (hint !== 'number') throw new $TypeError('Incorrect hint'); + return ordinaryToPrimitive(this, hint); +}; + + +/***/ }), +/* 245 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); + +var DatePrototype = Date.prototype; +var INVALID_DATE = 'Invalid Date'; +var TO_STRING = 'toString'; +var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]); +var thisTimeValue = uncurryThis(DatePrototype.getTime); + +// `Date.prototype.toString` method +// https://tc39.es/ecma262/#sec-date.prototype.tostring +if (String(new Date(NaN)) !== INVALID_DATE) { + defineBuiltIn(DatePrototype, TO_STRING, function toString() { + var value = thisTimeValue(this); + // eslint-disable-next-line no-self-compare -- NaN check + return value === value ? nativeDateToString(this) : INVALID_DATE; + }); +} + + +/***/ }), +/* 246 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var exec = uncurryThis(/./.exec); +var numberToString = uncurryThis(1.0.toString); +var toUpperCase = uncurryThis(''.toUpperCase); + +var raw = /[\w*+\-./@]/; + +var hex = function (code, length) { + var result = numberToString(code, 16); + while (result.length < length) result = '0' + result; + return result; +}; + +// `escape` method +// https://tc39.es/ecma262/#sec-escape-string +$({ global: true }, { + escape: function escape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, code; + while (index < length) { + chr = charAt(str, index++); + if (exec(raw, chr)) { + result += chr; + } else { + code = charCodeAt(chr, 0); + if (code < 256) { + result += '%' + hex(code, 2); + } else { + result += '%u' + toUpperCase(hex(code, 4)); + } + } + } return result; + } +}); + + +/***/ }), +/* 247 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var bind = __webpack_require__(248); + +// `Function.prototype.bind` method +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +$({ target: 'Function', proto: true, forced: Function.bind !== bind }, { + bind: bind +}); + + +/***/ }), +/* 248 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var arraySlice = __webpack_require__(76); +var NATIVE_BIND = __webpack_require__(9); + +var $Function = Function; +var concat = uncurryThis([].concat); +var join = uncurryThis([].join); +var factories = {}; + +var construct = function (C, argsLength, args) { + if (!hasOwn(factories, argsLength)) { + var list = []; + var i = 0; + for (; i < argsLength; i++) list[i] = 'a[' + i + ']'; + factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')'); + } return factories[argsLength](C, args); +}; + +// `Function.prototype.bind` method implementation +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +module.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) { + var F = aCallable(this); + var Prototype = F.prototype; + var partArgs = arraySlice(arguments, 1); + var boundFunction = function bound(/* args... */) { + var args = concat(partArgs, arraySlice(arguments)); + return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args); + }; + if (isObject(Prototype)) boundFunction.prototype = Prototype; + return boundFunction; +}; + + +/***/ }), +/* 249 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var definePropertyModule = __webpack_require__(44); +var isPrototypeOf = __webpack_require__(24); +var wellKnownSymbol = __webpack_require__(33); +var makeBuiltIn = __webpack_require__(48); + +var HAS_INSTANCE = wellKnownSymbol('hasInstance'); +var FunctionPrototype = Function.prototype; + +// `Function.prototype[@@hasInstance]` method +// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance +if (!(HAS_INSTANCE in FunctionPrototype)) { + definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) { + if (!isCallable(this) || !isObject(O)) return false; + var P = this.prototype; + return isObject(P) ? isPrototypeOf(P, O) : O instanceof this; + }, HAS_INSTANCE) }); +} + + +/***/ }), +/* 250 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var FUNCTION_NAME_EXISTS = (__webpack_require__(49).EXISTS); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var FunctionPrototype = Function.prototype; +var functionToString = uncurryThis(FunctionPrototype.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor(FunctionPrototype, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + + +/***/ }), +/* 251 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); + +// `globalThis` object +// https://tc39.es/ecma262/#sec-globalthis +$({ global: true, forced: global.globalThis !== global }, { + globalThis: global +}); + + +/***/ }), +/* 252 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +// JSON[@@toStringTag] property +// https://tc39.es/ecma262/#sec-json-@@tostringtag +setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), +/* 253 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(254); + + +/***/ }), +/* 254 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Map` constructor +// https://tc39.es/ecma262/#sec-map-objects +collection('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 255 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var defineBuiltIn = __webpack_require__(47); +var InternalMetadataModule = __webpack_require__(256); +var iterate = __webpack_require__(130); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var setToStringTag = __webpack_require__(82); +var inheritIfRequired = __webpack_require__(118); + +module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); + defineBuiltIn(NativePrototype, KEY, + KEY === 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY === 'delete' ? function (key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'get' ? function get(key) { + return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'has' ? function has(key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + + +/***/ }), +/* 256 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var hiddenKeys = __webpack_require__(54); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var defineProperty = (__webpack_require__(44).f); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternalModule = __webpack_require__(75); +var isExtensible = __webpack_require__(257); +var uid = __webpack_require__(40); +var FREEZING = __webpack_require__(259); + +var REQUIRED = false; +var METADATA = uid('meta'); +var id = 0; + +var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id++, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData = function (it, create) { + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it); + return it; +}; + +var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } +}; + +var meta = module.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + + +/***/ }), +/* 257 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isextensible -- safe +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); }); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +module.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + + +/***/ }), +/* 258 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it +var fails = __webpack_require__(7); + +module.exports = fails(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + + +/***/ }), +/* 259 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); +}); + + +/***/ }), +/* 260 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var create = __webpack_require__(71); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var bind = __webpack_require__(84); +var anInstance = __webpack_require__(210); +var isNullOrUndefined = __webpack_require__(17); +var iterate = __webpack_require__(130); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var setSpecies = __webpack_require__(193); +var DESCRIPTORS = __webpack_require__(6); +var fastKey = (__webpack_require__(256).fastKey); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS) that.size = 0; + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key === key) return entry; + } + }; + + defineBuiltIns(Prototype, { + // `{ Map, Set }.prototype.clear()` methods + // https://tc39.es/ecma262/#sec-map.prototype.clear + // https://tc39.es/ecma262/#sec-set.prototype.clear + clear: function clear() { + var that = this; + var state = getInternalState(that); + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + entry = entry.next; + } + state.first = state.last = undefined; + state.index = create(null); + if (DESCRIPTORS) state.size = 0; + else that.size = 0; + }, + // `{ Map, Set }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.delete + // https://tc39.es/ecma262/#sec-set.prototype.delete + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first === entry) state.first = next; + if (state.last === entry) state.last = prev; + if (DESCRIPTORS) state.size--; + else that.size--; + } return !!entry; + }, + // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods + // https://tc39.es/ecma262/#sec-map.prototype.foreach + // https://tc39.es/ecma262/#sec-set.prototype.foreach + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // `{ Map, Set}.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.has + // https://tc39.es/ecma262/#sec-set.prototype.has + has: function has(key) { + return !!getEntry(this, key); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `Map.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-map.prototype.get + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // `Map.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-map.prototype.set + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // `Set.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-set.prototype.add + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', { + configurable: true, + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods + // https://tc39.es/ecma262/#sec-map.prototype.entries + // https://tc39.es/ecma262/#sec-map.prototype.keys + // https://tc39.es/ecma262/#sec-map.prototype.values + // https://tc39.es/ecma262/#sec-map.prototype-@@iterator + // https://tc39.es/ecma262/#sec-set.prototype.entries + // https://tc39.es/ecma262/#sec-set.prototype.keys + // https://tc39.es/ecma262/#sec-set.prototype.values + // https://tc39.es/ecma262/#sec-set.prototype-@@iterator + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return createIterResultObject(undefined, true); + } + // return step by kind + if (kind === 'keys') return createIterResultObject(entry.key, false); + if (kind === 'values') return createIterResultObject(entry.value, false); + return createIterResultObject([entry.key, entry.value], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // `{ Map, Set }.prototype[@@species]` accessors + // https://tc39.es/ecma262/#sec-get-map-@@species + // https://tc39.es/ecma262/#sec-get-set-@@species + setSpecies(CONSTRUCTOR_NAME); + } +}; + + +/***/ }), +/* 261 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var iterate = __webpack_require__(130); +var MapHelpers = __webpack_require__(262); +var IS_PURE = __webpack_require__(36); +var fails = __webpack_require__(7); + +var Map = MapHelpers.Map; +var has = MapHelpers.has; +var get = MapHelpers.get; +var set = MapHelpers.set; +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () { + return Map.groupBy('ab', function (it) { + return it; + }).get('a').length !== 1; +}); + +// `Map.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var map = new Map(); + var k = 0; + iterate(items, function (value) { + var key = callbackfn(value, k++); + if (!has(map, key)) set(map, key, [value]); + else push(get(map, key), value); + }); + return map; + } +}); + + +/***/ }), +/* 262 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-map -- safe +var MapPrototype = Map.prototype; + +module.exports = { + // eslint-disable-next-line es/no-map -- safe + Map: Map, + set: uncurryThis(MapPrototype.set), + get: uncurryThis(MapPrototype.get), + has: uncurryThis(MapPrototype.has), + remove: uncurryThis(MapPrototype['delete']), + proto: MapPrototype +}; + + +/***/ }), +/* 263 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// eslint-disable-next-line es/no-math-acosh -- required for testing +var $acosh = Math.acosh; +var log = Math.log; +var sqrt = Math.sqrt; +var LN2 = Math.LN2; + +var FORCED = !$acosh + // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 + || Math.floor($acosh(Number.MAX_VALUE)) !== 710 + // Tor Browser bug: Math.acosh(Infinity) -> NaN + || $acosh(Infinity) !== Infinity; + +// `Math.acosh` method +// https://tc39.es/ecma262/#sec-math.acosh +$({ target: 'Math', stat: true, forced: FORCED }, { + acosh: function acosh(x) { + var n = +x; + return n < 1 ? NaN : n > 94906265.62425156 + ? log(n) + LN2 + : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1)); + } +}); + + +/***/ }), +/* 264 */ +/***/ (function(module) { + + +var log = Math.log; + +// `Math.log1p` method implementation +// https://tc39.es/ecma262/#sec-math.log1p +// eslint-disable-next-line es/no-math-log1p -- safe +module.exports = Math.log1p || function log1p(x) { + var n = +x; + return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n); +}; + + +/***/ }), +/* 265 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-asinh -- required for testing +var $asinh = Math.asinh; +var log = Math.log; +var sqrt = Math.sqrt; + +function asinh(x) { + var n = +x; + return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1)); +} + +var FORCED = !($asinh && 1 / $asinh(0) > 0); + +// `Math.asinh` method +// https://tc39.es/ecma262/#sec-math.asinh +// Tor Browser bug: Math.asinh(0) -> -0 +$({ target: 'Math', stat: true, forced: FORCED }, { + asinh: asinh +}); + + +/***/ }), +/* 266 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-atanh -- required for testing +var $atanh = Math.atanh; +var log = Math.log; + +var FORCED = !($atanh && 1 / $atanh(-0) < 0); + +// `Math.atanh` method +// https://tc39.es/ecma262/#sec-math.atanh +// Tor Browser bug: Math.atanh(-0) -> 0 +$({ target: 'Math', stat: true, forced: FORCED }, { + atanh: function atanh(x) { + var n = +x; + return n === 0 ? n : log((1 + n) / (1 - n)) / 2; + } +}); + + +/***/ }), +/* 267 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +var abs = Math.abs; +var pow = Math.pow; + +// `Math.cbrt` method +// https://tc39.es/ecma262/#sec-math.cbrt +$({ target: 'Math', stat: true }, { + cbrt: function cbrt(x) { + var n = +x; + return sign(n) * pow(abs(n), 1 / 3); + } +}); + + +/***/ }), +/* 268 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var floor = Math.floor; +var log = Math.log; +var LOG2E = Math.LOG2E; + +// `Math.clz32` method +// https://tc39.es/ecma262/#sec-math.clz32 +$({ target: 'Math', stat: true }, { + clz32: function clz32(x) { + var n = x >>> 0; + return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32; + } +}); + + +/***/ }), +/* 269 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// eslint-disable-next-line es/no-math-cosh -- required for testing +var $cosh = Math.cosh; +var abs = Math.abs; +var E = Math.E; + +var FORCED = !$cosh || $cosh(710) === Infinity; + +// `Math.cosh` method +// https://tc39.es/ecma262/#sec-math.cosh +$({ target: 'Math', stat: true, forced: FORCED }, { + cosh: function cosh(x) { + var t = expm1(abs(x) - 1) + 1; + return (t + 1 / (t * E * E)) * (E / 2); + } +}); + + +/***/ }), +/* 270 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-math-expm1 -- safe +var $expm1 = Math.expm1; +var exp = Math.exp; + +// `Math.expm1` method implementation +// https://tc39.es/ecma262/#sec-math.expm1 +module.exports = (!$expm1 + // Old FF bug + // eslint-disable-next-line no-loss-of-precision -- required for old engines + || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 + // Tor Browser bug + || $expm1(-2e-17) !== -2e-17 +) ? function expm1(x) { + var n = +x; + return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1; +} : $expm1; + + +/***/ }), +/* 271 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// `Math.expm1` method +// https://tc39.es/ecma262/#sec-math.expm1 +// eslint-disable-next-line es/no-math-expm1 -- required for testing +$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 }); + + +/***/ }), +/* 272 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fround = __webpack_require__(212); + +// `Math.fround` method +// https://tc39.es/ecma262/#sec-math.fround +$({ target: 'Math', stat: true }, { fround: fround }); + + +/***/ }), +/* 273 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-hypot -- required for testing +var $hypot = Math.hypot; +var abs = Math.abs; +var sqrt = Math.sqrt; + +// Chrome 77 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=9546 +var FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity; + +// `Math.hypot` method +// https://tc39.es/ecma262/#sec-math.hypot +$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + hypot: function hypot(value1, value2) { + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + while (i < aLen) { + arg = abs(arguments[i++]); + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + return larg === Infinity ? Infinity : larg * sqrt(sum); + } +}); + + +/***/ }), +/* 274 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-math-imul -- required for testing +var $imul = Math.imul; + +var FORCED = fails(function () { + return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2; +}); + +// `Math.imul` method +// https://tc39.es/ecma262/#sec-math.imul +// some WebKit versions fails with big numbers, some has wrong arity +$({ target: 'Math', stat: true, forced: FORCED }, { + imul: function imul(x, y) { + var UINT16 = 0xFFFF; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } +}); + + +/***/ }), +/* 275 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log10 = __webpack_require__(276); + +// `Math.log10` method +// https://tc39.es/ecma262/#sec-math.log10 +$({ target: 'Math', stat: true }, { + log10: log10 +}); + + +/***/ }), +/* 276 */ +/***/ (function(module) { + + +var log = Math.log; +var LOG10E = Math.LOG10E; + +// eslint-disable-next-line es/no-math-log10 -- safe +module.exports = Math.log10 || function log10(x) { + return log(x) * LOG10E; +}; + + +/***/ }), +/* 277 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// `Math.log1p` method +// https://tc39.es/ecma262/#sec-math.log1p +$({ target: 'Math', stat: true }, { log1p: log1p }); + + +/***/ }), +/* 278 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var log = Math.log; +var LN2 = Math.LN2; + +// `Math.log2` method +// https://tc39.es/ecma262/#sec-math.log2 +$({ target: 'Math', stat: true }, { + log2: function log2(x) { + return log(x) / LN2; + } +}); + + +/***/ }), +/* 279 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +// `Math.sign` method +// https://tc39.es/ecma262/#sec-math.sign +$({ target: 'Math', stat: true }, { + sign: sign +}); + + +/***/ }), +/* 280 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var expm1 = __webpack_require__(270); + +var abs = Math.abs; +var exp = Math.exp; +var E = Math.E; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-math-sinh -- required for testing + return Math.sinh(-2e-17) !== -2e-17; +}); + +// `Math.sinh` method +// https://tc39.es/ecma262/#sec-math.sinh +// V8 near Chromium 38 has a problem with very small numbers +$({ target: 'Math', stat: true, forced: FORCED }, { + sinh: function sinh(x) { + var n = +x; + return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2); + } +}); + + +/***/ }), +/* 281 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +var exp = Math.exp; + +// `Math.tanh` method +// https://tc39.es/ecma262/#sec-math.tanh +$({ target: 'Math', stat: true }, { + tanh: function tanh(x) { + var n = +x; + var a = expm1(n); + var b = expm1(-n); + return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n)); + } +}); + + +/***/ }), +/* 282 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setToStringTag = __webpack_require__(82); + +// Math[@@toStringTag] property +// https://tc39.es/ecma262/#sec-math-@@tostringtag +setToStringTag(Math, 'Math', true); + + +/***/ }), +/* 283 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trunc = __webpack_require__(62); + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +$({ target: 'Math', stat: true }, { + trunc: trunc +}); + + +/***/ }), +/* 284 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var path = __webpack_require__(80); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var hasOwn = __webpack_require__(38); +var inheritIfRequired = __webpack_require__(118); +var isPrototypeOf = __webpack_require__(24); +var isSymbol = __webpack_require__(22); +var toPrimitive = __webpack_require__(19); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(57).f); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var defineProperty = (__webpack_require__(44).f); +var thisNumberValue = __webpack_require__(285); +var trim = (__webpack_require__(286).trim); + +var NUMBER = 'Number'; +var NativeNumber = global[NUMBER]; +var PureNumberNamespace = path[NUMBER]; +var NumberPrototype = NativeNumber.prototype; +var TypeError = global.TypeError; +var stringSlice = uncurryThis(''.slice); +var charCodeAt = uncurryThis(''.charCodeAt); + +// `ToNumeric` abstract operation +// https://tc39.es/ecma262/#sec-tonumeric +var toNumeric = function (value) { + var primValue = toPrimitive(value, 'number'); + return typeof primValue == 'bigint' ? primValue : toNumber(primValue); +}; + +// `ToNumber` abstract operation +// https://tc39.es/ecma262/#sec-tonumber +var toNumber = function (argument) { + var it = toPrimitive(argument, 'number'); + var first, third, radix, maxCode, digits, length, index, code; + if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number'); + if (typeof it == 'string' && it.length > 2) { + it = trim(it); + first = charCodeAt(it, 0); + if (first === 43 || first === 45) { + third = charCodeAt(it, 2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (charCodeAt(it, 1)) { + // fast equal of /^0b[01]+$/i + case 66: + case 98: + radix = 2; + maxCode = 49; + break; + // fast equal of /^0o[0-7]+$/i + case 79: + case 111: + radix = 8; + maxCode = 55; + break; + default: + return +it; + } + digits = stringSlice(it, 2); + length = digits.length; + for (index = 0; index < length; index++) { + code = charCodeAt(digits, index); + // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + if (code < 48 || code > maxCode) return NaN; + } return parseInt(digits, radix); + } + } return +it; +}; + +var FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1')); + +var calledWithNew = function (dummy) { + // includes check on 1..constructor(foo) case + return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); }); +}; + +// `Number` constructor +// https://tc39.es/ecma262/#sec-number-constructor +var NumberWrapper = function Number(value) { + var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value)); + return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n; +}; + +NumberWrapper.prototype = NumberPrototype; +if (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper; + +$({ global: true, constructor: true, wrap: true, forced: FORCED }, { + Number: NumberWrapper +}); + +// Use `internal/copy-constructor-properties` helper in `core-js@4` +var copyConstructorProperties = function (target, source) { + for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : ( + // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + + // ES2015 (in case, if modules with ES2015 Number statics required before): + 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' + + // ESNext + 'fromString,range' + ).split(','), j = 0, key; keys.length > j; j++) { + if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +if (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace); +if (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber); + + +/***/ }), +/* 285 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// `thisNumberValue` abstract operation +// https://tc39.es/ecma262/#sec-thisnumbervalue +module.exports = uncurryThis(1.0.valueOf); + + +/***/ }), +/* 286 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var whitespaces = __webpack_require__(287); + +var replace = uncurryThis(''.replace); +var ltrim = RegExp('^[' + whitespaces + ']+'); +var rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod = function (TYPE) { + return function ($this) { + var string = toString(requireObjectCoercible($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, '$1'); + return string; + }; +}; + +module.exports = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) +}; + + +/***/ }), +/* 287 */ +/***/ (function(module) { + + +// a string of all valid unicode whitespaces +module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), +/* 288 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.EPSILON` constant +// https://tc39.es/ecma262/#sec-number.epsilon +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + EPSILON: Math.pow(2, -52) +}); + + +/***/ }), +/* 289 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var numberIsFinite = __webpack_require__(290); + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +$({ target: 'Number', stat: true }, { isFinite: numberIsFinite }); + + +/***/ }), +/* 290 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +var globalIsFinite = global.isFinite; + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +// eslint-disable-next-line es/no-number-isfinite -- safe +module.exports = Number.isFinite || function isFinite(it) { + return typeof it == 'number' && globalIsFinite(it); +}; + + +/***/ }), +/* 291 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +// `Number.isInteger` method +// https://tc39.es/ecma262/#sec-number.isinteger +$({ target: 'Number', stat: true }, { + isInteger: isIntegralNumber +}); + + +/***/ }), +/* 292 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var floor = Math.floor; + +// `IsIntegralNumber` abstract operation +// https://tc39.es/ecma262/#sec-isintegralnumber +// eslint-disable-next-line es/no-number-isinteger -- safe +module.exports = Number.isInteger || function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + + +/***/ }), +/* 293 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.isNaN` method +// https://tc39.es/ecma262/#sec-number.isnan +$({ target: 'Number', stat: true }, { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number; + } +}); + + +/***/ }), +/* 294 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +var abs = Math.abs; + +// `Number.isSafeInteger` method +// https://tc39.es/ecma262/#sec-number.issafeinteger +$({ target: 'Number', stat: true }, { + isSafeInteger: function isSafeInteger(number) { + return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF; + } +}); + + +/***/ }), +/* 295 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MAX_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.max_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 296 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MIN_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.min_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 297 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseFloat = __webpack_require__(298); + +// `Number.parseFloat` method +// https://tc39.es/ecma262/#sec-number.parseFloat +// eslint-disable-next-line es/no-number-parsefloat -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, { + parseFloat: parseFloat +}); + + +/***/ }), +/* 298 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var charAt = uncurryThis(''.charAt); +var $parseFloat = global.parseFloat; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); })); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +module.exports = FORCED ? function parseFloat(string) { + var trimmedString = trim(toString(string)); + var result = $parseFloat(trimmedString); + return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result; +} : $parseFloat; + + +/***/ }), +/* 299 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseInt = __webpack_require__(300); + +// `Number.parseInt` method +// https://tc39.es/ecma262/#sec-number.parseint +// eslint-disable-next-line es/no-number-parseint -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, { + parseInt: parseInt +}); + + +/***/ }), +/* 300 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var $parseInt = global.parseInt; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var hex = /^[+-]?0x/i; +var exec = uncurryThis(hex.exec); +var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); })); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +module.exports = FORCED ? function parseInt(string, radix) { + var S = trim(toString(string)); + return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); +} : $parseInt; + + +/***/ }), +/* 301 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var log10 = __webpack_require__(276); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var $isFinite = isFinite; +var abs = Math.abs; +var floor = Math.floor; +var pow = Math.pow; +var round = Math.round; +var nativeToExponential = uncurryThis(1.0.toExponential); +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); + +// Edge 17- +var ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11' + // IE11- && Edge 14- + && nativeToExponential(1.255, 2) === '1.25e+0' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(12345, 3) === '1.235e+4' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(25, 0) === '3e+1'; + +// IE8- +var throwsOnInfinityFraction = function () { + return fails(function () { + nativeToExponential(1, Infinity); + }) && fails(function () { + nativeToExponential(1, -Infinity); + }); +}; + +// Safari <11 && FF <50 +var properNonFiniteThisCheck = function () { + return !fails(function () { + nativeToExponential(Infinity, Infinity); + nativeToExponential(NaN, Infinity); + }); +}; + +var FORCED = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFiniteThisCheck(); + +// `Number.prototype.toExponential` method +// https://tc39.es/ecma262/#sec-number.prototype.toexponential +$({ target: 'Number', proto: true, forced: FORCED }, { + toExponential: function toExponential(fractionDigits) { + var x = thisNumberValue(this); + if (fractionDigits === undefined) return nativeToExponential(x); + var f = toIntegerOrInfinity(fractionDigits); + if (!$isFinite(x)) return String(x); + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits'); + if (ROUNDS_PROPERLY) return nativeToExponential(x, f); + var s = ''; + var m = ''; + var e = 0; + var c = ''; + var d = ''; + if (x < 0) { + s = '-'; + x = -x; + } + if (x === 0) { + e = 0; + m = repeat('0', f + 1); + } else { + // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08 + // TODO: improve accuracy with big fraction digits + var l = log10(x); + e = floor(l); + var n = 0; + var w = pow(10, e - f); + n = round(x / w); + if (2 * x >= (2 * n + 1) * w) { + n += 1; + } + if (n >= pow(10, f + 1)) { + n /= 10; + e += 1; + } + m = $String(n); + } + if (f !== 0) { + m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1); + } + if (e === 0) { + c = '+'; + d = '0'; + } else { + c = e > 0 ? '+' : '-'; + d = $String(abs(e)); + } + m += 'e' + c + d; + return s + m; + } +}); + + +/***/ }), +/* 302 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var floor = Math.floor; +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var nativeToFixed = uncurryThis(1.0.toFixed); + +var pow = function (x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); +}; + +var log = function (x) { + var n = 0; + var x2 = x; + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + while (x2 >= 2) { + n += 1; + x2 /= 2; + } return n; +}; + +var multiply = function (data, n, c) { + var index = -1; + var c2 = c; + while (++index < 6) { + c2 += n * data[index]; + data[index] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } +}; + +var divide = function (data, n) { + var index = 6; + var c = 0; + while (--index >= 0) { + c += data[index]; + data[index] = floor(c / n); + c = (c % n) * 1e7; + } +}; + +var dataToString = function (data) { + var index = 6; + var s = ''; + while (--index >= 0) { + if (s !== '' || index === 0 || data[index] !== 0) { + var t = $String(data[index]); + s = s === '' ? t : s + repeat('0', 7 - t.length) + t; + } + } return s; +}; + +var FORCED = fails(function () { + return nativeToFixed(0.00008, 3) !== '0.000' || + nativeToFixed(0.9, 0) !== '1' || + nativeToFixed(1.255, 2) !== '1.25' || + nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToFixed({}); +}); + +// `Number.prototype.toFixed` method +// https://tc39.es/ecma262/#sec-number.prototype.tofixed +$({ target: 'Number', proto: true, forced: FORCED }, { + toFixed: function toFixed(fractionDigits) { + var number = thisNumberValue(this); + var fractDigits = toIntegerOrInfinity(fractionDigits); + var data = [0, 0, 0, 0, 0, 0]; + var sign = ''; + var result = '0'; + var e, z, j, k; + + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits'); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number) return 'NaN'; + if (number <= -1e21 || number >= 1e21) return $String(number); + if (number < 0) { + sign = '-'; + number = -number; + } + if (number > 1e-21) { + e = log(number * pow(2, 69, 1)) - 69; + z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + if (e > 0) { + multiply(data, 0, z); + j = fractDigits; + while (j >= 7) { + multiply(data, 1e7, 0); + j -= 7; + } + multiply(data, pow(10, j, 1), 0); + j = e - 1; + while (j >= 23) { + divide(data, 1 << 23); + j -= 23; + } + divide(data, 1 << j); + multiply(data, 1, 1); + divide(data, 2); + result = dataToString(data); + } else { + multiply(data, 0, z); + multiply(data, 1 << -e, 0); + result = dataToString(data) + repeat('0', fractDigits); + } + } + if (fractDigits > 0) { + k = result.length; + result = sign + (k <= fractDigits + ? '0.' + repeat('0', fractDigits - k) + result + : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits)); + } else { + result = sign + result; + } return result; + } +}); + + +/***/ }), +/* 303 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var thisNumberValue = __webpack_require__(285); + +var nativeToPrecision = uncurryThis(1.0.toPrecision); + +var FORCED = fails(function () { + // IE7- + return nativeToPrecision(1, undefined) !== '1'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToPrecision({}); +}); + +// `Number.prototype.toPrecision` method +// https://tc39.es/ecma262/#sec-number.prototype.toprecision +$({ target: 'Number', proto: true, forced: FORCED }, { + toPrecision: function toPrecision(precision) { + return precision === undefined + ? nativeToPrecision(thisNumberValue(this)) + : nativeToPrecision(thisNumberValue(this), precision); + } +}); + + +/***/ }), +/* 304 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var assign = __webpack_require__(305); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + + +/***/ }), +/* 305 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var objectKeys = __webpack_require__(73); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var propertyIsEnumerableModule = __webpack_require__(10); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty = Object.defineProperty; +var concat = uncurryThis([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +module.exports = !$assign || fails(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + + +/***/ }), +/* 306 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var create = __webpack_require__(71); + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + create: create +}); + + +/***/ }), +/* 307 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineGetter__: function __defineGetter__(P, getter) { + definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 308 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var WEBKIT = __webpack_require__(191); + +// Forced replacement object prototype accessors methods +module.exports = IS_PURE || !fails(function () { + // This feature detection crashes old WebKit + // https://github.com/zloirock/core-js/issues/232 + if (WEBKIT && WEBKIT < 535) return; + var key = Math.random(); + // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call, es/no-legacy-object-prototype-accessor-methods -- required for testing + __defineSetter__.call(null, key, function () { /* empty */ }); + delete global[key]; +}); + + +/***/ }), +/* 309 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperties = (__webpack_require__(72).f); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, { + defineProperties: defineProperties +}); + + +/***/ }), +/* 310 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperty = (__webpack_require__(44).f); + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +// eslint-disable-next-line es/no-object-defineproperty -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, { + defineProperty: defineProperty +}); + + +/***/ }), +/* 311 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineSetter__: function __defineSetter__(P, setter) { + definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 312 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $entries = (__webpack_require__(313).entries); + +// `Object.entries` method +// https://tc39.es/ecma262/#sec-object.entries +$({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } +}); + + +/***/ }), +/* 313 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var objectGetPrototypeOf = __webpack_require__(128); +var objectKeys = __webpack_require__(73); +var toIndexedObject = __webpack_require__(12); +var $propertyIsEnumerable = (__webpack_require__(10).f); + +var propertyIsEnumerable = uncurryThis($propertyIsEnumerable); +var push = uncurryThis([].push); + +// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys +// of `null` prototype objects +var IE_BUG = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-create -- safe + var O = Object.create(null); + O[2] = 2; + return !propertyIsEnumerable(O, 2); +}); + +// `Object.{ entries, values }` methods implementation +var createMethod = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + push(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; +}; + +module.exports = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod(false) +}; + + +/***/ }), +/* 314 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); + +// eslint-disable-next-line es/no-object-freeze -- safe +var $freeze = Object.freeze; +var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); }); + +// `Object.freeze` method +// https://tc39.es/ecma262/#sec-object.freeze +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + freeze: function freeze(it) { + return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 315 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var iterate = __webpack_require__(130); +var createProperty = __webpack_require__(141); + +// `Object.fromEntries` method +// https://github.com/tc39/proposal-object-from-entries +$({ target: 'Object', stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function (k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } +}); + + +/***/ }), +/* 316 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toIndexedObject = __webpack_require__(12); +var nativeGetOwnPropertyDescriptor = (__webpack_require__(5).f); +var DESCRIPTORS = __webpack_require__(6); + +var FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); }); + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { + return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key); + } +}); + + +/***/ }), +/* 317 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var ownKeys = __webpack_require__(56); +var toIndexedObject = __webpack_require__(12); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var createProperty = __webpack_require__(141); + +// `Object.getOwnPropertyDescriptors` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIndexedObject(object); + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + var keys = ownKeys(O); + var result = {}; + var index = 0; + var key, descriptor; + while (keys.length > index) { + descriptor = getOwnPropertyDescriptor(O, key = keys[index++]); + if (descriptor !== undefined) createProperty(result, key, descriptor); + } + return result; + } +}); + + +/***/ }), +/* 318 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(75).f); + +// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing +var FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); }); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + getOwnPropertyNames: getOwnPropertyNames +}); + + +/***/ }), +/* 319 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var nativeGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); }); + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(it) { + return nativeGetPrototypeOf(toObject(it)); + } +}); + + + +/***/ }), +/* 320 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var toPropertyKey = __webpack_require__(18); +var iterate = __webpack_require__(130); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-map-groupby -- testing +var nativeGroupBy = Object.groupBy; +var create = getBuiltIn('Object', 'create'); +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () { + return nativeGroupBy('ab', function (it) { + return it; + }).a.length !== 1; +}); + +// `Object.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var obj = create(null); + var k = 0; + iterate(items, function (value) { + var key = toPropertyKey(callbackfn(value, k++)); + // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys + // but since it's a `null` prototype object, we can safely use `in` + if (key in obj) push(obj[key], value); + else obj[key] = [value]; + }); + return obj; + } +}); + + +/***/ }), +/* 321 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); + +// `Object.hasOwn` method +// https://tc39.es/ecma262/#sec-object.hasown +$({ target: 'Object', stat: true }, { + hasOwn: hasOwn +}); + + +/***/ }), +/* 322 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var is = __webpack_require__(323); + +// `Object.is` method +// https://tc39.es/ecma262/#sec-object.is +$({ target: 'Object', stat: true }, { + is: is +}); + + +/***/ }), +/* 323 */ +/***/ (function(module) { + + +// `SameValue` abstract operation +// https://tc39.es/ecma262/#sec-samevalue +// eslint-disable-next-line es/no-object-is -- safe +module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; +}; + + +/***/ }), +/* 324 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $isExtensible = __webpack_require__(257); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +// eslint-disable-next-line es/no-object-isextensible -- safe +$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, { + isExtensible: $isExtensible +}); + + +/***/ }), +/* 325 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isfrozen -- safe +var $isFrozen = Object.isFrozen; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); }); + +// `Object.isFrozen` method +// https://tc39.es/ecma262/#sec-object.isfrozen +$({ target: 'Object', stat: true, forced: FORCED }, { + isFrozen: function isFrozen(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isFrozen ? $isFrozen(it) : false; + } +}); + + +/***/ }), +/* 326 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-issealed -- safe +var $isSealed = Object.isSealed; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); }); + +// `Object.isSealed` method +// https://tc39.es/ecma262/#sec-object.issealed +$({ target: 'Object', stat: true, forced: FORCED }, { + isSealed: function isSealed(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isSealed ? $isSealed(it) : false; + } +}); + + +/***/ }), +/* 327 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var nativeKeys = __webpack_require__(73); +var fails = __webpack_require__(7); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject(it)); + } +}); + + +/***/ }), +/* 328 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.get; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 329 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.set; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 330 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-preventextensions -- safe +var $preventExtensions = Object.preventExtensions; +var FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); }); + +// `Object.preventExtensions` method +// https://tc39.es/ecma262/#sec-object.preventextensions +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + preventExtensions: function preventExtensions(it) { + return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 331 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isObject = __webpack_require__(20); +var isPossiblePrototype = __webpack_require__(116); +var toObject = __webpack_require__(39); +var requireObjectCoercible = __webpack_require__(16); + +// eslint-disable-next-line es/no-object-getprototypeof -- safe +var getPrototypeOf = Object.getPrototypeOf; +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var setPrototypeOf = Object.setPrototypeOf; +var ObjectPrototype = Object.prototype; +var PROTO = '__proto__'; + +// `Object.prototype.__proto__` accessor +// https://tc39.es/ecma262/#sec-object.prototype.__proto__ +if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { + defineBuiltInAccessor(ObjectPrototype, PROTO, { + configurable: true, + get: function __proto__() { + return getPrototypeOf(toObject(this)); + }, + set: function __proto__(proto) { + var O = requireObjectCoercible(this); + if (isPossiblePrototype(proto) && isObject(O)) { + setPrototypeOf(O, proto); + } + } + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 332 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-seal -- safe +var $seal = Object.seal; +var FAILS_ON_PRIMITIVES = fails(function () { $seal(1); }); + +// `Object.seal` method +// https://tc39.es/ecma262/#sec-object.seal +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + seal: function seal(it) { + return $seal && isObject(it) ? $seal(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 333 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var setPrototypeOf = __webpack_require__(113); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +$({ target: 'Object', stat: true }, { + setPrototypeOf: setPrototypeOf +}); + + +/***/ }), +/* 334 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var defineBuiltIn = __webpack_require__(47); +var toString = __webpack_require__(335); + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true }); +} + + +/***/ }), +/* 335 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var classof = __webpack_require__(69); + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; +}; + + +/***/ }), +/* 336 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $values = (__webpack_require__(313).values); + +// `Object.values` method +// https://tc39.es/ecma262/#sec-object.values +$({ target: 'Object', stat: true }, { + values: function values(O) { + return $values(O); + } +}); + + +/***/ }), +/* 337 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseFloat = __webpack_require__(298); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +$({ global: true, forced: parseFloat !== $parseFloat }, { + parseFloat: $parseFloat +}); + + +/***/ }), +/* 338 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseInt = __webpack_require__(300); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +$({ global: true, forced: parseInt !== $parseInt }, { + parseInt: $parseInt +}); + + +/***/ }), +/* 339 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(340); +__webpack_require__(354); +__webpack_require__(356); +__webpack_require__(357); +__webpack_require__(358); +__webpack_require__(359); + + +/***/ }), +/* 340 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var IS_NODE = __webpack_require__(182); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var setSpecies = __webpack_require__(193); +var aCallable = __webpack_require__(30); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var anInstance = __webpack_require__(210); +var speciesConstructor = __webpack_require__(219); +var task = (__webpack_require__(341).set); +var microtask = __webpack_require__(344); +var hostReportErrors = __webpack_require__(349); +var perform = __webpack_require__(350); +var Queue = __webpack_require__(346); +var InternalStateModule = __webpack_require__(51); +var NativePromiseConstructor = __webpack_require__(351); +var PromiseConstructorDetection = __webpack_require__(352); +var newPromiseCapabilityModule = __webpack_require__(353); + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); +var setInternalState = InternalStateModule.set; +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var PromiseConstructor = NativePromiseConstructor; +var PromisePrototype = NativePromisePrototype; +var TypeError = global.TypeError; +var document = global.document; +var process = global.process; +var newPromiseCapability = newPromiseCapabilityModule.f; +var newGenericPromiseCapability = newPromiseCapability; + +var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject(it) && isCallable(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state === FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(new TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform(function () { + if (IS_NODE) { + process.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + if (IS_NODE) { + process.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw new TypeError("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call(then, value, + bind(internalResolve, wrapper, state), + bind(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromisePrototype); + aCallable(executor); + call(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind(internalResolve, state), bind(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable(onRejected) && onRejected; + reaction.domain = IS_NODE ? process.domain : undefined; + if (state.state === PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind(internalResolve, state); + this.reject = bind(internalReject, state); + }; + + newPromiseCapabilityModule.f = newPromiseCapability = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) { + nativeThen = NativePromisePrototype.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf) { + setPrototypeOf(NativePromisePrototype, PromisePrototype); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + Promise: PromiseConstructor +}); + +setToStringTag(PromiseConstructor, PROMISE, false, true); +setSpecies(PROMISE); + + +/***/ }), +/* 341 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var bind = __webpack_require__(84); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var fails = __webpack_require__(7); +var html = __webpack_require__(74); +var arraySlice = __webpack_require__(76); +var createElement = __webpack_require__(42); +var validateArgumentsLength = __webpack_require__(342); +var IS_IOS = __webpack_require__(343); +var IS_NODE = __webpack_require__(182); + +var set = global.setImmediate; +var clear = global.clearImmediate; +var process = global.process; +var Dispatch = global.Dispatch; +var Function = global.Function; +var MessageChannel = global.MessageChannel; +var String = global.String; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global.location; +}); + +var run = function (id) { + if (hasOwn(queue, id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global.postMessage(String(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable(handler) ? handler : Function(handler); + var args = arraySlice(arguments, 1); + queue[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue[id]; + }; + // Node.js 0.8- + if (IS_NODE) { + defer = function (id) { + process.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global.addEventListener && + isCallable(global.postMessage) && + !global.importScripts && + $location && $location.protocol !== 'file:' && + !fails(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +module.exports = { + set: set, + clear: clear +}; + + +/***/ }), +/* 342 */ +/***/ (function(module) { + + +var $TypeError = TypeError; + +module.exports = function (passed, required) { + if (passed < required) throw new $TypeError('Not enough arguments'); + return passed; +}; + + +/***/ }), +/* 343 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +// eslint-disable-next-line redos/no-vulnerable -- safe +module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent); + + +/***/ }), +/* 344 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var bind = __webpack_require__(84); +var macrotask = (__webpack_require__(341).set); +var Queue = __webpack_require__(346); +var IS_IOS = __webpack_require__(343); +var IS_IOS_PEBBLE = __webpack_require__(347); +var IS_WEBOS_WEBKIT = __webpack_require__(348); +var IS_NODE = __webpack_require__(182); + +var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; +var document = global.document; +var process = global.process; +var Promise = global.Promise; +var microtask = safeGetBuiltIn('queueMicrotask'); +var notify, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask) { + var queue = new Queue(); + + var flush = function () { + var parent, fn; + if (IS_NODE && (parent = process.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { + toggle = true; + node = document.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise; + then = bind(promise.then, promise); + notify = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE) { + notify = function () { + process.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind(macrotask, global); + notify = function () { + macrotask(flush); + }; + } + + microtask = function (fn) { + if (!queue.head) notify(); + queue.add(fn); + }; +} + +module.exports = microtask; + + +/***/ }), +/* 345 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Avoid NodeJS experimental warning +module.exports = function (name) { + if (!DESCRIPTORS) return global[name]; + var descriptor = getOwnPropertyDescriptor(global, name); + return descriptor && descriptor.value; +}; + + +/***/ }), +/* 346 */ +/***/ (function(module) { + + +var Queue = function () { + this.head = null; + this.tail = null; +}; + +Queue.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +module.exports = Queue; + + +/***/ }), +/* 347 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined'; + + +/***/ }), +/* 348 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /web0s(?!.*chrome)/i.test(userAgent); + + +/***/ }), +/* 349 */ +/***/ (function(module) { + + +module.exports = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length === 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 350 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + + +/***/ }), +/* 351 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global.Promise; + + +/***/ }), +/* 352 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var NativePromiseConstructor = __webpack_require__(351); +var isCallable = __webpack_require__(21); +var isForced = __webpack_require__(67); +var inspectSource = __webpack_require__(50); +var wellKnownSymbol = __webpack_require__(33); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_PURE = __webpack_require__(36); +var V8_VERSION = __webpack_require__(27); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var SPECIES = wellKnownSymbol('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution + if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT; +}); + +module.exports = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT, + SUBCLASSING: SUBCLASSING +}; + + +/***/ }), +/* 353 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); + +var $TypeError = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable(resolve); + this.reject = aCallable(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + + +/***/ }), +/* 354 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 355 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NativePromiseConstructor = __webpack_require__(351); +var checkCorrectnessOfIteration = __webpack_require__(164); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +module.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) { + NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ }); +}); + + +/***/ }), +/* 356 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var NativePromiseConstructor = __webpack_require__(351); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + + +/***/ }), +/* 357 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate(iterable, function (promise) { + call($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 358 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + var capabilityReject = capability.reject; + capabilityReject(r); + return capability.promise; + } +}); + + +/***/ }), +/* 359 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var promiseResolve = __webpack_require__(360); + +var PromiseConstructorWrapper = getBuiltIn('Promise'); +var CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x); + } +}); + + +/***/ }), +/* 360 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var newPromiseCapability = __webpack_require__(353); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + + +/***/ }), +/* 361 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.allSettled` method +// https://tc39.es/ecma262/#sec-promise.allsettled +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 362 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var getBuiltIn = __webpack_require__(23); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +var PROMISE_ANY_ERROR = 'No one promise resolved'; + +// `Promise.any` method +// https://tc39.es/ecma262/#sec-promise.any +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + any: function any(iterable) { + var C = this; + var AggregateError = getBuiltIn('AggregateError'); + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var errors = []; + var counter = 0; + var remaining = 1; + var alreadyResolved = false; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyRejected = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyRejected || alreadyResolved) return; + alreadyResolved = true; + resolve(value); + }, function (error) { + if (alreadyRejected || alreadyResolved) return; + alreadyRejected = true; + errors[index] = error; + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + }); + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 363 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var fails = __webpack_require__(7); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var speciesConstructor = __webpack_require__(219); +var promiseResolve = __webpack_require__(360); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 +var NON_GENERIC = !!NativePromiseConstructor && fails(function () { + // eslint-disable-next-line unicorn/no-thenable -- required for testing + NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); +}); + +// `Promise.prototype.finally` method +// https://tc39.es/ecma262/#sec-promise.prototype.finally +$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { + 'finally': function (onFinally) { + var C = speciesConstructor(this, getBuiltIn('Promise')); + var isFunction = isCallable(onFinally); + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); + } +}); + +// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['finally']; + if (NativePromisePrototype['finally'] !== method) { + defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true }); + } +} + + +/***/ }), +/* 364 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); + +// `Promise.withResolvers` method +// https://github.com/tc39/proposal-promise-with-resolvers +$({ target: 'Promise', stat: true }, { + withResolvers: function withResolvers() { + var promiseCapability = newPromiseCapabilityModule.f(this); + return { + promise: promiseCapability.promise, + resolve: promiseCapability.resolve, + reject: promiseCapability.reject + }; + } +}); + + +/***/ }), +/* 365 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var functionApply = __webpack_require__(94); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var fails = __webpack_require__(7); + +// MS Edge argumentsList argument is optional +var OPTIONAL_ARGUMENTS_LIST = !fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.apply(function () { /* empty */ }); +}); + +// `Reflect.apply` method +// https://tc39.es/ecma262/#sec-reflect.apply +$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, { + apply: function apply(target, thisArgument, argumentsList) { + return functionApply(aCallable(target), thisArgument, anObject(argumentsList)); + } +}); + + +/***/ }), +/* 366 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var bind = __webpack_require__(248); +var aConstructor = __webpack_require__(220); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var fails = __webpack_require__(7); + +var nativeConstruct = getBuiltIn('Reflect', 'construct'); +var ObjectPrototype = Object.prototype; +var push = [].push; + +// `Reflect.construct` method +// https://tc39.es/ecma262/#sec-reflect.construct +// MS Edge supports only 2 arguments and argumentsList argument is optional +// FF Nightly sets third argument as `new.target`, but does not create `this` from it +var NEW_TARGET_BUG = fails(function () { + function F() { /* empty */ } + return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F); +}); + +var ARGS_BUG = !fails(function () { + nativeConstruct(function () { /* empty */ }); +}); + +var FORCED = NEW_TARGET_BUG || ARGS_BUG; + +$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, { + construct: function construct(Target, args /* , newTarget */) { + aConstructor(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget); + if (Target === newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: return new Target(); + case 1: return new Target(args[0]); + case 2: return new Target(args[0], args[1]); + case 3: return new Target(args[0], args[1], args[2]); + case 4: return new Target(args[0], args[1], args[2], args[3]); + } + // w/o altered newTarget, lot of arguments case + var $args = [null]; + apply(push, $args, args); + return new (apply(bind, Target, $args))(); + } + // with altered newTarget, not support built-in constructors + var proto = newTarget.prototype; + var instance = create(isObject(proto) ? proto : ObjectPrototype); + var result = apply(Target, instance, args); + return isObject(result) ? result : instance; + } +}); + + +/***/ }), +/* 367 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); +var definePropertyModule = __webpack_require__(44); +var fails = __webpack_require__(7); + +// MS Edge has broken Reflect.defineProperty - throwing instead of returning false +var ERROR_INSTEAD_OF_FALSE = fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 }); +}); + +// `Reflect.defineProperty` method +// https://tc39.es/ecma262/#sec-reflect.defineproperty +$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + var key = toPropertyKey(propertyKey); + anObject(attributes); + try { + definePropertyModule.f(target, key, attributes); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 368 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Reflect.deleteProperty` method +// https://tc39.es/ecma262/#sec-reflect.deleteproperty +$({ target: 'Reflect', stat: true }, { + deleteProperty: function deleteProperty(target, propertyKey) { + var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey); + return descriptor && !descriptor.configurable ? false : delete target[propertyKey]; + } +}); + + +/***/ }), +/* 369 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var anObject = __webpack_require__(46); +var isDataDescriptor = __webpack_require__(370); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); + +// `Reflect.get` method +// https://tc39.es/ecma262/#sec-reflect.get +function get(target, propertyKey /* , receiver */) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var descriptor, prototype; + if (anObject(target) === receiver) return target[propertyKey]; + descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey); + if (descriptor) return isDataDescriptor(descriptor) + ? descriptor.value + : descriptor.get === undefined ? undefined : call(descriptor.get, receiver); + if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver); +} + +$({ target: 'Reflect', stat: true }, { + get: get +}); + + +/***/ }), +/* 370 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); + +module.exports = function (descriptor) { + return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable')); +}; + + +/***/ }), +/* 371 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptorModule = __webpack_require__(5); + +// `Reflect.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor +$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + } +}); + + +/***/ }), +/* 372 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var objectGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +// `Reflect.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.getprototypeof +$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(target) { + return objectGetPrototypeOf(anObject(target)); + } +}); + + +/***/ }), +/* 373 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Reflect.has` method +// https://tc39.es/ecma262/#sec-reflect.has +$({ target: 'Reflect', stat: true }, { + has: function has(target, propertyKey) { + return propertyKey in target; + } +}); + + +/***/ }), +/* 374 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var $isExtensible = __webpack_require__(257); + +// `Reflect.isExtensible` method +// https://tc39.es/ecma262/#sec-reflect.isextensible +$({ target: 'Reflect', stat: true }, { + isExtensible: function isExtensible(target) { + anObject(target); + return $isExtensible(target); + } +}); + + +/***/ }), +/* 375 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ownKeys = __webpack_require__(56); + +// `Reflect.ownKeys` method +// https://tc39.es/ecma262/#sec-reflect.ownkeys +$({ target: 'Reflect', stat: true }, { + ownKeys: ownKeys +}); + + +/***/ }), +/* 376 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var anObject = __webpack_require__(46); +var FREEZING = __webpack_require__(259); + +// `Reflect.preventExtensions` method +// https://tc39.es/ecma262/#sec-reflect.preventextensions +$({ target: 'Reflect', stat: true, sham: !FREEZING }, { + preventExtensions: function preventExtensions(target) { + anObject(target); + try { + var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions'); + if (objectPreventExtensions) objectPreventExtensions(target); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 377 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var isDataDescriptor = __webpack_require__(370); +var fails = __webpack_require__(7); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); +var createPropertyDescriptor = __webpack_require__(11); + +// `Reflect.set` method +// https://tc39.es/ecma262/#sec-reflect.set +function set(target, propertyKey, V /* , receiver */) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + var existingDescriptor, prototype, setter; + if (!ownDescriptor) { + if (isObject(prototype = getPrototypeOf(target))) { + return set(prototype, propertyKey, V, receiver); + } + ownDescriptor = createPropertyDescriptor(0); + } + if (isDataDescriptor(ownDescriptor)) { + if (ownDescriptor.writable === false || !isObject(receiver)) return false; + if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + definePropertyModule.f(receiver, propertyKey, existingDescriptor); + } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V)); + } else { + setter = ownDescriptor.set; + if (setter === undefined) return false; + call(setter, receiver, V); + } return true; +} + +// MS Edge 17-18 Reflect.set allows setting the property to object +// with non-writable property on the prototype +var MS_EDGE_BUG = fails(function () { + var Constructor = function () { /* empty */ }; + var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true }); + // eslint-disable-next-line es/no-reflect -- required for testing + return Reflect.set(Constructor.prototype, 'a', 1, object) !== false; +}); + +$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, { + set: set +}); + + +/***/ }), +/* 378 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var aPossiblePrototype = __webpack_require__(115); +var objectSetPrototypeOf = __webpack_require__(113); + +// `Reflect.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.setprototypeof +if (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, { + setPrototypeOf: function setPrototypeOf(target, proto) { + anObject(target); + aPossiblePrototype(proto); + try { + objectSetPrototypeOf(target, proto); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 379 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +$({ global: true }, { Reflect: {} }); + +// Reflect[@@toStringTag] property +// https://tc39.es/ecma262/#sec-reflect-@@tostringtag +setToStringTag(global.Reflect, 'Reflect', true); + + +/***/ }), +/* 380 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var inheritIfRequired = __webpack_require__(118); +var createNonEnumerableProperty = __webpack_require__(43); +var create = __webpack_require__(71); +var getOwnPropertyNames = (__webpack_require__(57).f); +var isPrototypeOf = __webpack_require__(24); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getRegExpFlags = __webpack_require__(382); +var stickyHelpers = __webpack_require__(384); +var proxyAccessor = __webpack_require__(117); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var enforceInternalState = (__webpack_require__(51).enforce); +var setSpecies = __webpack_require__(193); +var wellKnownSymbol = __webpack_require__(33); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var MATCH = wellKnownSymbol('match'); +var NativeRegExp = global.RegExp; +var RegExpPrototype = NativeRegExp.prototype; +var SyntaxError = global.SyntaxError; +var exec = uncurryThis(RegExpPrototype.exec); +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); +// TODO: Use only proper RegExpIdentifierName +var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/; +var re1 = /a/g; +var re2 = /a/g; + +// "new" should create a new object, old webkit bug +var CORRECT_NEW = new NativeRegExp(re1) !== re1; + +var MISSED_STICKY = stickyHelpers.MISSED_STICKY; +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; + +var BASE_FORCED = DESCRIPTORS && + (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () { + re2[MATCH] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i'; + })); + +var handleDotAll = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var brackets = false; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + result += chr + charAt(string, ++index); + continue; + } + if (!brackets && chr === '.') { + result += '[\\s\\S]'; + } else { + if (chr === '[') { + brackets = true; + } else if (chr === ']') { + brackets = false; + } result += chr; + } + } return result; +}; + +var handleNCG = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var named = []; + var names = create(null); + var brackets = false; + var ncg = false; + var groupid = 0; + var groupname = ''; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + chr += charAt(string, ++index); + } else if (chr === ']') { + brackets = false; + } else if (!brackets) switch (true) { + case chr === '[': + brackets = true; + break; + case chr === '(': + if (exec(IS_NCG, stringSlice(string, index + 1))) { + index += 2; + ncg = true; + } + result += chr; + groupid++; + continue; + case chr === '>' && ncg: + if (groupname === '' || hasOwn(names, groupname)) { + throw new SyntaxError('Invalid capture group name'); + } + names[groupname] = true; + named[named.length] = [groupname, groupid]; + ncg = false; + groupname = ''; + continue; + } + if (ncg) groupname += chr; + else result += chr; + } return [result, named]; +}; + +// `RegExp` constructor +// https://tc39.es/ecma262/#sec-regexp-constructor +if (isForced('RegExp', BASE_FORCED)) { + var RegExpWrapper = function RegExp(pattern, flags) { + var thisIsRegExp = isPrototypeOf(RegExpPrototype, this); + var patternIsRegExp = isRegExp(pattern); + var flagsAreUndefined = flags === undefined; + var groups = []; + var rawPattern = pattern; + var rawFlags, dotAll, sticky, handled, result, state; + + if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) { + return pattern; + } + + if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) { + pattern = pattern.source; + if (flagsAreUndefined) flags = getRegExpFlags(rawPattern); + } + + pattern = pattern === undefined ? '' : toString(pattern); + flags = flags === undefined ? '' : toString(flags); + rawPattern = pattern; + + if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) { + dotAll = !!flags && stringIndexOf(flags, 's') > -1; + if (dotAll) flags = replace(flags, /s/g, ''); + } + + rawFlags = flags; + + if (MISSED_STICKY && 'sticky' in re1) { + sticky = !!flags && stringIndexOf(flags, 'y') > -1; + if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, ''); + } + + if (UNSUPPORTED_NCG) { + handled = handleNCG(pattern); + pattern = handled[0]; + groups = handled[1]; + } + + result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper); + + if (dotAll || sticky || groups.length) { + state = enforceInternalState(result); + if (dotAll) { + state.dotAll = true; + state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags); + } + if (sticky) state.sticky = true; + if (groups.length) state.groups = groups; + } + + if (pattern !== rawPattern) try { + // fails in old engines, but we have no alternatives for unsupported regex syntax + createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern); + } catch (error) { /* empty */ } + + return result; + }; + + for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) { + proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]); + } + + RegExpPrototype.constructor = RegExpWrapper; + RegExpWrapper.prototype = RegExpPrototype; + defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true }); +} + +// https://tc39.es/ecma262/#sec-get-regexp-@@species +setSpecies('RegExp'); + + +/***/ }), +/* 381 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +// `IsRegExp` abstract operation +// https://tc39.es/ecma262/#sec-isregexp +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp'); +}; + + +/***/ }), +/* 382 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var regExpFlags = __webpack_require__(383); + +var RegExpPrototype = RegExp.prototype; + +module.exports = function (R) { + var flags = R.flags; + return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) + ? call(regExpFlags, R) : flags; +}; + + +/***/ }), +/* 383 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); + +// `RegExp.prototype.flags` getter implementation +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; +}; + + +/***/ }), +/* 384 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError +var $RegExp = global.RegExp; + +var UNSUPPORTED_Y = fails(function () { + var re = $RegExp('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') !== null; +}); + +// UC Browser bug +// https://github.com/zloirock/core-js/issues/1008 +var MISSED_STICKY = UNSUPPORTED_Y || fails(function () { + return !$RegExp('a', 'y').sticky; +}); + +var BROKEN_CARET = UNSUPPORTED_Y || fails(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') !== null; +}); + +module.exports = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y +}; + + +/***/ }), +/* 385 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('.', 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); +}); + + +/***/ }), +/* 386 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('(?<a>b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$<a>c') !== 'bc'; +}); + + +/***/ }), +/* 387 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.dotAll` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall +if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) { + defineBuiltInAccessor(RegExpPrototype, 'dotAll', { + configurable: true, + get: function dotAll() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).dotAll; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 388 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var exec = __webpack_require__(389); + +// `RegExp.prototype.exec` method +// https://tc39.es/ecma262/#sec-regexp.prototype.exec +$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec +}); + + +/***/ }), +/* 389 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ +/* eslint-disable regexp/no-useless-quantifier -- testing */ +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var regexpFlags = __webpack_require__(383); +var stickyHelpers = __webpack_require__(384); +var shared = __webpack_require__(34); +var create = __webpack_require__(71); +var getInternalState = (__webpack_require__(51).get); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var nativeReplace = shared('native-string-replace', String.prototype.replace); +var nativeExec = RegExp.prototype.exec; +var patchedExec = nativeExec; +var charAt = uncurryThis(''.charAt); +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); + +var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call(nativeExec, re1, 'a'); + call(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; +})(); + +var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + +// nonparticipating capturing group, copied from es5-shim's String#split patch. +var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + +if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice(match.input, charsAdded); + match[0] = stringSlice(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; +} + +module.exports = patchedExec; + + +/***/ }), +/* 390 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var regExpFlags = __webpack_require__(383); +var fails = __webpack_require__(7); + +// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError +var RegExp = global.RegExp; +var RegExpPrototype = RegExp.prototype; + +var FORCED = DESCRIPTORS && fails(function () { + var INDICES_SUPPORT = true; + try { + RegExp('.', 'd'); + } catch (error) { + INDICES_SUPPORT = false; + } + + var O = {}; + // modern V8 bug + var calls = ''; + var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; + + var addGetter = function (key, chr) { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(O, key, { get: function () { + calls += chr; + return true; + } }); + }; + + var pairs = { + dotAll: 's', + global: 'g', + ignoreCase: 'i', + multiline: 'm', + sticky: 'y' + }; + + if (INDICES_SUPPORT) pairs.hasIndices = 'd'; + + for (var key in pairs) addGetter(key, pairs[key]); + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O); + + return result !== expected || calls !== expected; +}); + +// `RegExp.prototype.flags` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', { + configurable: true, + get: regExpFlags +}); + + +/***/ }), +/* 391 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var MISSED_STICKY = (__webpack_require__(384).MISSED_STICKY); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.sticky` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky +if (DESCRIPTORS && MISSED_STICKY) { + defineBuiltInAccessor(RegExpPrototype, 'sticky', { + configurable: true, + get: function sticky() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).sticky; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 392 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var anObject = __webpack_require__(46); +var toString = __webpack_require__(68); + +var DELEGATES_TO_EXEC = function () { + var execCalled = false; + var re = /[ac]/; + re.exec = function () { + execCalled = true; + return /./.exec.apply(this, arguments); + }; + return re.test('abc') === true && execCalled; +}(); + +var nativeTest = /./.test; + +// `RegExp.prototype.test` method +// https://tc39.es/ecma262/#sec-regexp.prototype.test +$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { + test: function (S) { + var R = anObject(this); + var string = toString(S); + var exec = R.exec; + if (!isCallable(exec)) return call(nativeTest, R, string); + var result = call(exec, R, string); + if (result === null) return false; + anObject(result); + return true; + } +}); + + +/***/ }), +/* 393 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var defineBuiltIn = __webpack_require__(47); +var anObject = __webpack_require__(46); +var $toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var getRegExpFlags = __webpack_require__(382); + +var TO_STRING = 'toString'; +var RegExpPrototype = RegExp.prototype; +var nativeToString = RegExpPrototype[TO_STRING]; + +var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; }); +// FF44- RegExp#toString has a wrong name +var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING; + +// `RegExp.prototype.toString` method +// https://tc39.es/ecma262/#sec-regexp.prototype.tostring +if (NOT_GENERIC || INCORRECT_NAME) { + defineBuiltIn(RegExpPrototype, TO_STRING, function toString() { + var R = anObject(this); + var pattern = $toString(R.source); + var flags = $toString(getRegExpFlags(R)); + return '/' + pattern + '/' + flags; + }, { unsafe: true }); +} + + +/***/ }), +/* 394 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(395); + + +/***/ }), +/* 395 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Set` constructor +// https://tc39.es/ecma262/#sec-set-objects +collection('Set', function (init) { + return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 396 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var difference = __webpack_require__(397); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, { + difference: difference +}); + + +/***/ }), +/* 397 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function difference(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = clone(O); + if (size(O) <= otherRec.size) iterateSet(O, function (e) { + if (otherRec.includes(e)) remove(result, e); + }); + else iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) remove(result, e); + }); + return result; +}; + + +/***/ }), +/* 398 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var has = (__webpack_require__(399).has); + +// Perform ? RequireInternalSlot(M, [[SetData]]) +module.exports = function (it) { + has(it); + return it; +}; + + +/***/ }), +/* 399 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-set -- safe +var SetPrototype = Set.prototype; + +module.exports = { + // eslint-disable-next-line es/no-set -- safe + Set: Set, + add: uncurryThis(SetPrototype.add), + has: uncurryThis(SetPrototype.has), + remove: uncurryThis(SetPrototype['delete']), + proto: SetPrototype +}; + + +/***/ }), +/* 400 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var SetHelpers = __webpack_require__(399); +var iterate = __webpack_require__(401); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; + +module.exports = function (set) { + var result = new Set(); + iterate(set, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 401 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var iterateSimple = __webpack_require__(402); +var SetHelpers = __webpack_require__(399); + +var Set = SetHelpers.Set; +var SetPrototype = SetHelpers.proto; +var forEach = uncurryThis(SetPrototype.forEach); +var keys = uncurryThis(SetPrototype.keys); +var next = keys(new Set()).next; + +module.exports = function (set, fn, interruptible) { + return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn); +}; + + +/***/ }), +/* 402 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); + +module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) { + var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator; + var next = record.next; + var step, result; + while (!(step = call(next, iterator)).done) { + result = fn(step.value); + if (result !== undefined) return result; + } +}; + + +/***/ }), +/* 403 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var SetHelpers = __webpack_require__(399); + +module.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) { + return set.size; +}; + + +/***/ }), +/* 404 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var call = __webpack_require__(8); +var toIntegerOrInfinity = __webpack_require__(61); +var getIteratorDirect = __webpack_require__(405); + +var INVALID_SIZE = 'Invalid size'; +var $RangeError = RangeError; +var $TypeError = TypeError; +var max = Math.max; + +var SetRecord = function (set, intSize) { + this.set = set; + this.size = max(intSize, 0); + this.has = aCallable(set.has); + this.keys = aCallable(set.keys); +}; + +SetRecord.prototype = { + getIterator: function () { + return getIteratorDirect(anObject(call(this.keys, this.set))); + }, + includes: function (it) { + return call(this.has, this.set, it); + } +}; + +// `GetSetRecord` abstract operation +// https://tc39.es/proposal-set-methods/#sec-getsetrecord +module.exports = function (obj) { + anObject(obj); + var numSize = +obj.size; + // NOTE: If size is undefined, then numSize will be NaN + // eslint-disable-next-line no-self-compare -- NaN check + if (numSize !== numSize) throw new $TypeError(INVALID_SIZE); + var intSize = toIntegerOrInfinity(numSize); + if (intSize < 0) throw new $RangeError(INVALID_SIZE); + return new SetRecord(obj, intSize); +}; + + +/***/ }), +/* 405 */ +/***/ (function(module) { + + +// `GetIteratorDirect(obj)` abstract operation +// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect +module.exports = function (obj) { + return { + iterator: obj, + next: obj.next, + done: false + }; +}; + + +/***/ }), +/* 406 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +var createSetLike = function (size) { + return { + size: size, + has: function () { + return false; + }, + keys: function () { + return { + next: function () { + return { done: true }; + } + }; + } + }; +}; + +module.exports = function (name) { + var Set = getBuiltIn('Set'); + try { + new Set()[name](createSetLike(0)); + try { + // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it + // https://github.com/tc39/proposal-set-methods/pull/88 + new Set()[name](createSetLike(-1)); + return false; + } catch (error2) { + return true; + } + } catch (error) { + return false; + } +}; + + +/***/ }), +/* 407 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var intersection = __webpack_require__(408); +var setMethodAcceptSetLike = __webpack_require__(406); + +var INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () { + // eslint-disable-next-line es/no-array-from, es/no-set -- testing + return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2'; +}); + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { + intersection: intersection +}); + + +/***/ }), +/* 408 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; +var has = SetHelpers.has; + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +module.exports = function intersection(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = new Set(); + + if (size(O) > otherRec.size) { + iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) add(result, e); + }); + } else { + iterateSet(O, function (e) { + if (otherRec.includes(e)) add(result, e); + }); + } + + return result; +}; + + +/***/ }), +/* 409 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isDisjointFrom = __webpack_require__(410); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isDisjointFrom` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, { + isDisjointFrom: isDisjointFrom +}); + + +/***/ }), +/* 410 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isDisjointFrom` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom +module.exports = function isDisjointFrom(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) <= otherRec.size) return iterateSet(O, function (e) { + if (otherRec.includes(e)) return false; + }, true) !== false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 411 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSubsetOf = __webpack_require__(412); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSubsetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, { + isSubsetOf: isSubsetOf +}); + + +/***/ }), +/* 412 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var size = __webpack_require__(403); +var iterate = __webpack_require__(401); +var getSetRecord = __webpack_require__(404); + +// `Set.prototype.isSubsetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf +module.exports = function isSubsetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) > otherRec.size) return false; + return iterate(O, function (e) { + if (!otherRec.includes(e)) return false; + }, true) !== false; +}; + + +/***/ }), +/* 413 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSupersetOf = __webpack_require__(414); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSupersetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, { + isSupersetOf: isSupersetOf +}); + + +/***/ }), +/* 414 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isSupersetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf +module.exports = function isSupersetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) < otherRec.size) return false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (!has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 415 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var symmetricDifference = __webpack_require__(416); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, { + symmetricDifference: symmetricDifference +}); + + +/***/ }), +/* 416 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +var add = SetHelpers.add; +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function symmetricDifference(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (e) { + if (has(O, e)) remove(result, e); + else add(result, e); + }); + return result; +}; + + +/***/ }), +/* 417 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var union = __webpack_require__(418); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, { + union: union +}); + + +/***/ }), +/* 418 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var add = (__webpack_require__(399).add); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +module.exports = function union(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 419 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var charAt = uncurryThis(''.charAt); + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-array-string-prototype-at -- safe + return '𠮷'.at(-2) !== '\uD842'; +}); + +// `String.prototype.at` method +// https://tc39.es/ecma262/#sec-string.prototype.at +$({ target: 'String', proto: true, forced: FORCED }, { + at: function at(index) { + var S = toString(requireObjectCoercible(this)); + var len = S.length; + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : charAt(S, k); + } +}); + + +/***/ }), +/* 420 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var codeAt = (__webpack_require__(421).codeAt); + +// `String.prototype.codePointAt` method +// https://tc39.es/ecma262/#sec-string.prototype.codepointat +$({ target: 'String', proto: true }, { + codePointAt: function codePointAt(pos) { + return codeAt(this, pos); + } +}); + + +/***/ }), +/* 421 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var stringSlice = uncurryThis(''.slice); + +var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +module.exports = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) +}; + + +/***/ }), +/* 422 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var slice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.endsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.endswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = that.length; + var end = endPosition === undefined ? len : min(toLength(endPosition), len); + var search = toString(searchString); + return slice(that, end - search.length, end) === search; + } +}); + + +/***/ }), +/* 423 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isRegExp = __webpack_require__(381); + +var $TypeError = TypeError; + +module.exports = function (it) { + if (isRegExp(it)) { + throw new $TypeError("The method doesn't accept regular expressions"); + } return it; +}; + + +/***/ }), +/* 424 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +module.exports = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; +}; + + +/***/ }), +/* 425 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toAbsoluteIndex = __webpack_require__(60); + +var $RangeError = RangeError; +var fromCharCode = String.fromCharCode; +// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing +var $fromCodePoint = String.fromCodePoint; +var join = uncurryThis([].join); + +// length should be 1, old FF problem +var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1; + +// `String.fromCodePoint` method +// https://tc39.es/ecma262/#sec-string.fromcodepoint +$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + fromCodePoint: function fromCodePoint(x) { + var elements = []; + var length = arguments.length; + var i = 0; + var code; + while (length > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point'); + elements[i] = code < 0x10000 + ? fromCharCode(code) + : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00); + } return join(elements, ''); + } +}); + + +/***/ }), +/* 426 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var correctIsRegExpLogic = __webpack_require__(424); + +var stringIndexOf = uncurryThis(''.indexOf); + +// `String.prototype.includes` method +// https://tc39.es/ecma262/#sec-string.prototype.includes +$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString(requireObjectCoercible(this)), + toString(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } +}); + + +/***/ }), +/* 427 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var charCodeAt = uncurryThis(''.charCodeAt); + +// `String.prototype.isWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true }, { + isWellFormed: function isWellFormed() { + var S = toString(requireObjectCoercible(this)); + var length = S.length; + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) continue; + // unpaired surrogate + if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false; + } return true; + } +}); + + +/***/ }), +/* 428 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); +var toString = __webpack_require__(68); +var InternalStateModule = __webpack_require__(51); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator(String, 'String', function (iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject(point, false); +}); + + +/***/ }), +/* 429 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var getMethod = __webpack_require__(29); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); + +// @@match logic +fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) { + return [ + // `String.prototype.match` method + // https://tc39.es/ecma262/#sec-string.prototype.match + function match(regexp) { + var O = requireObjectCoercible(this); + var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH); + return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O)); + }, + // `RegExp.prototype[@@match]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@match + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeMatch, rx, S); + + if (res.done) return res.value; + + if (!rx.global) return regExpExec(rx, S); + + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + var A = []; + var n = 0; + var result; + while ((result = regExpExec(rx, S)) !== null) { + var matchStr = toString(result[0]); + A[n] = matchStr; + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + n++; + } + return n === 0 ? null : A; + } + ]; +}); + + +/***/ }), +/* 430 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var regexpExec = __webpack_require__(389); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var createNonEnumerableProperty = __webpack_require__(43); + +var SPECIES = wellKnownSymbol('species'); +var RegExpPrototype = RegExp.prototype; + +module.exports = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol(KEY); + + var DELEGATES_TO_SYMBOL = !fails(function () { + // String methods call symbol-named RegExp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) !== 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var $exec = regexp.exec; + if ($exec === regexpExec || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) }; + } + return { done: true, value: call(nativeMethod, str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); +}; + + +/***/ }), +/* 431 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); + +// `AdvanceStringIndex` abstract operation +// https://tc39.es/ecma262/#sec-advancestringindex +module.exports = function (S, index, unicode) { + return index + (unicode ? charAt(S, index).length : 1); +}; + + +/***/ }), +/* 432 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var regexpExec = __webpack_require__(389); + +var $TypeError = TypeError; + +// `RegExpExec` abstract operation +// https://tc39.es/ecma262/#sec-regexpexec +module.exports = function (R, S) { + var exec = R.exec; + if (isCallable(exec)) { + var result = call(exec, R, S); + if (result !== null) anObject(result); + return result; + } + if (classof(R) === 'RegExp') return call(regexpExec, R, S); + throw new $TypeError('RegExp#exec called on incompatible receiver'); +}; + + +/***/ }), +/* 433 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-string-prototype-matchall -- safe */ +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(85); +var createIteratorConstructor = __webpack_require__(170); +var createIterResultObject = __webpack_require__(172); +var requireObjectCoercible = __webpack_require__(16); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var classof = __webpack_require__(15); +var isRegExp = __webpack_require__(381); +var getRegExpFlags = __webpack_require__(382); +var getMethod = __webpack_require__(29); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); +var InternalStateModule = __webpack_require__(51); +var IS_PURE = __webpack_require__(36); + +var MATCH_ALL = wellKnownSymbol('matchAll'); +var REGEXP_STRING = 'RegExp String'; +var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR); +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; +var stringIndexOf = uncurryThis(''.indexOf); +var nativeMatchAll = uncurryThis(''.matchAll); + +var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () { + nativeMatchAll('a', /./); +}); + +var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) { + setInternalState(this, { + type: REGEXP_STRING_ITERATOR, + regexp: regexp, + string: string, + global: $global, + unicode: fullUnicode, + done: false + }); +}, REGEXP_STRING, function next() { + var state = getInternalState(this); + if (state.done) return createIterResultObject(undefined, true); + var R = state.regexp; + var S = state.string; + var match = regExpExec(R, S); + if (match === null) { + state.done = true; + return createIterResultObject(undefined, true); + } + if (state.global) { + if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode); + return createIterResultObject(match, false); + } + state.done = true; + return createIterResultObject(match, false); +}); + +var $matchAll = function (string) { + var R = anObject(this); + var S = toString(string); + var C = speciesConstructor(R, RegExp); + var flags = toString(getRegExpFlags(R)); + var matcher, $global, fullUnicode; + matcher = new C(C === RegExp ? R.source : R, flags); + $global = !!~stringIndexOf(flags, 'g'); + fullUnicode = !!~stringIndexOf(flags, 'u'); + matcher.lastIndex = toLength(R.lastIndex); + return new $RegExpStringIterator(matcher, S, $global, fullUnicode); +}; + +// `String.prototype.matchAll` method +// https://tc39.es/ecma262/#sec-string.prototype.matchall +$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, { + matchAll: function matchAll(regexp) { + var O = requireObjectCoercible(this); + var flags, S, matcher, rx; + if (!isNullOrUndefined(regexp)) { + if (isRegExp(regexp)) { + flags = toString(requireObjectCoercible(getRegExpFlags(regexp))); + if (!~stringIndexOf(flags, 'g')) throw new $TypeError('`.matchAll` does not allow non-global regexes'); + } + if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + matcher = getMethod(regexp, MATCH_ALL); + if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll; + if (matcher) return call(matcher, regexp, O); + } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + S = toString(O); + rx = new RegExp(regexp, 'g'); + return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S); + } +}); + +IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll); + + +/***/ }), +/* 434 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padEnd = (__webpack_require__(240).end); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.padend +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padEnd: function padEnd(maxLength /* , fillString = ' ' */) { + return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 435 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/zloirock/core-js/issues/280 +var userAgent = __webpack_require__(28); + +module.exports = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent); + + +/***/ }), +/* 436 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padStart = (__webpack_require__(240).start); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padStart` method +// https://tc39.es/ecma262/#sec-string.prototype.padstart +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padStart: function padStart(maxLength /* , fillString = ' ' */) { + return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 437 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIndexedObject = __webpack_require__(12); +var toObject = __webpack_require__(39); +var toString = __webpack_require__(68); +var lengthOfArrayLike = __webpack_require__(63); + +var push = uncurryThis([].push); +var join = uncurryThis([].join); + +// `String.raw` method +// https://tc39.es/ecma262/#sec-string.raw +$({ target: 'String', stat: true }, { + raw: function raw(template) { + var rawTemplate = toIndexedObject(toObject(template).raw); + var literalSegments = lengthOfArrayLike(rawTemplate); + if (!literalSegments) return ''; + var argumentsLength = arguments.length; + var elements = []; + var i = 0; + while (true) { + push(elements, toString(rawTemplate[i++])); + if (i === literalSegments) return join(elements, ''); + if (i < argumentsLength) push(elements, toString(arguments[i])); + } + } +}); + + +/***/ }), +/* 438 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var repeat = __webpack_require__(241); + +// `String.prototype.repeat` method +// https://tc39.es/ecma262/#sec-string.prototype.repeat +$({ target: 'String', proto: true }, { + repeat: repeat +}); + + +/***/ }), +/* 439 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var advanceStringIndex = __webpack_require__(431); +var getMethod = __webpack_require__(29); +var getSubstitution = __webpack_require__(440); +var regExpExec = __webpack_require__(432); +var wellKnownSymbol = __webpack_require__(33); + +var REPLACE = wellKnownSymbol('replace'); +var max = Math.max; +var min = Math.min; +var concat = uncurryThis([].concat); +var push = uncurryThis([].push); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); + +var maybeToString = function (it) { + return it === undefined ? it : String(it); +}; + +// IE <= 11 replaces $0 with the whole match, as if it was $& +// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 +var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; +})(); + +// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string +var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + return false; +})(); + +var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$<a>') !== '7'; +}); + +// @@replace logic +fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + + return [ + // `String.prototype.replace` method + // https://tc39.es/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE); + return replacer + ? call(replacer, searchValue, O, replaceValue) + : call(nativeReplace, toString(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace + function (string, replaceValue) { + var rx = anObject(this); + var S = toString(string); + + if ( + typeof replaceValue == 'string' && + stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf(replaceValue, '$<') === -1 + ) { + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); + if (res.done) return res.value; + } + + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + + var global = rx.global; + var fullUnicode; + if (global) { + fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + + var results = []; + var result; + while (true) { + result = regExpExec(rx, S); + if (result === null) break; + + push(results, result); + if (!global) break; + + var matchStr = toString(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + + var matched = toString(result[0]); + var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); + var captures = []; + var replacement; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = concat([matched], captures, position, S); + if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); + replacement = toString(apply(replaceValue, undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + + return accumulatedResult + stringSlice(S, nextSourcePosition); + } + ]; +}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); + + +/***/ }), +/* 440 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var floor = Math.floor; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +// eslint-disable-next-line redos/no-vulnerable -- safe +var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; +var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + +// `GetSubstitution` abstract operation +// https://tc39.es/ecma262/#sec-getsubstitution +module.exports = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace(replacement, symbols, function (match, ch) { + var capture; + switch (charAt(ch, 0)) { + case '$': return '$'; + case '&': return matched; + case '`': return stringSlice(str, 0, position); + case "'": return stringSlice(str, tailPos); + case '<': + capture = namedCaptures[stringSlice(ch, 1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); +}; + + +/***/ }), +/* 441 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var getRegExpFlags = __webpack_require__(382); +var getSubstitution = __webpack_require__(440); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var REPLACE = wellKnownSymbol('replace'); +var $TypeError = TypeError; +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +var max = Math.max; + +// `String.prototype.replaceAll` method +// https://tc39.es/ecma262/#sec-string.prototype.replaceall +$({ target: 'String', proto: true }, { + replaceAll: function replaceAll(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement; + var position = 0; + var endOfLastMatch = 0; + var result = ''; + if (!isNullOrUndefined(searchValue)) { + IS_REG_EXP = isRegExp(searchValue); + if (IS_REG_EXP) { + flags = toString(requireObjectCoercible(getRegExpFlags(searchValue))); + if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes'); + } + replacer = getMethod(searchValue, REPLACE); + if (replacer) { + return call(replacer, searchValue, O, replaceValue); + } else if (IS_PURE && IS_REG_EXP) { + return replace(toString(O), searchValue, replaceValue); + } + } + string = toString(O); + searchString = toString(searchValue); + functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + searchLength = searchString.length; + advanceBy = max(1, searchLength); + position = indexOf(string, searchString); + while (position !== -1) { + replacement = functionalReplace + ? toString(replaceValue(searchString, position, string)) + : getSubstitution(searchString, string, position, [], undefined, replaceValue); + result += stringSlice(string, endOfLastMatch, position) + replacement; + endOfLastMatch = position + searchLength; + position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy); + } + if (endOfLastMatch < string.length) { + result += stringSlice(string, endOfLastMatch); + } + return result; + } +}); + + +/***/ }), +/* 442 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var sameValue = __webpack_require__(323); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); + +// @@search logic +fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH); + return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeSearch, rx, S); + + if (res.done) return res.value; + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; +}); + + +/***/ }), +/* 443 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); +var stickyHelpers = __webpack_require__(384); +var fails = __webpack_require__(7); + +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; +var MAX_UINT32 = 0xFFFFFFFF; +var min = Math.min; +var push = uncurryThis([].push); +var stringSlice = uncurryThis(''.slice); + +// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec +// Weex JS has frozen built-in prototypes, so use try / catch wrapper +var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { + // eslint-disable-next-line regexp/no-empty-group -- required for testing + var re = /(?:)/; + var originalExec = re.exec; + re.exec = function () { return originalExec.apply(this, arguments); }; + var result = 'ab'.split(re); + return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; +}); + +var BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' || + // eslint-disable-next-line regexp/no-empty-group -- required for testing + 'test'.split(/(?:)/, -1).length !== 4 || + 'ab'.split(/(?:ab)*/).length !== 2 || + '.'.split(/(.?)(.?)/).length !== 4 || + // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing + '.'.split(/()()/).length > 1 || + ''.split(/.?/).length; + +// @@split logic +fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) { + var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) { + return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit); + } : nativeSplit; + + return [ + // `String.prototype.split` method + // https://tc39.es/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = requireObjectCoercible(this); + var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT); + return splitter + ? call(splitter, separator, O, limit) + : call(internalSplit, toString(O), separator, limit); + }, + // `RegExp.prototype[@@split]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (string, limit) { + var rx = anObject(this); + var S = toString(string); + + if (!BUGGY) { + var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit); + if (res.done) return res.value; + } + + var C = speciesConstructor(rx, RegExp); + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + + (rx.multiline ? 'm' : '') + + (rx.unicode ? 'u' : '') + + (UNSUPPORTED_Y ? 'g' : 'y'); + // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + while (q < S.length) { + splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; + var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S); + var e; + if ( + z === null || + (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p + ) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + push(A, stringSlice(S, p, q)); + if (A.length === lim) return A; + for (var i = 1; i <= z.length - 1; i++) { + push(A, z[i]); + if (A.length === lim) return A; + } + q = p = e; + } + } + push(A, stringSlice(S, p)); + return A; + } + ]; +}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); + + +/***/ }), +/* 444 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var stringSlice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.startsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.startswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString(searchString); + return stringSlice(that, index, index + search.length) === search; + } +}); + + +/***/ }), +/* 445 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); + +var stringSlice = uncurryThis(''.slice); +var max = Math.max; +var min = Math.min; + +// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing +var FORCED = !''.substr || 'ab'.substr(-1) !== 'b'; + +// `String.prototype.substr` method +// https://tc39.es/ecma262/#sec-string.prototype.substr +$({ target: 'String', proto: true, forced: FORCED }, { + substr: function substr(start, length) { + var that = toString(requireObjectCoercible(this)); + var size = that.length; + var intStart = toIntegerOrInfinity(start); + var intLength, intEnd; + if (intStart === Infinity) intStart = 0; + if (intStart < 0) intStart = max(size + intStart, 0); + intLength = length === undefined ? size : toIntegerOrInfinity(length); + if (intLength <= 0 || intLength === Infinity) return ''; + intEnd = min(intStart + intLength, size); + return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd); + } +}); + + +/***/ }), +/* 446 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var $Array = Array; +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +// eslint-disable-next-line es/no-string-prototype-iswellformed-towellformed -- safe +var $toWellFormed = ''.toWellFormed; +var REPLACEMENT_CHARACTER = '\uFFFD'; + +// Safari bug +var TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () { + return call($toWellFormed, 1) !== '1'; +}); + +// `String.prototype.toWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, { + toWellFormed: function toWellFormed() { + var S = toString(requireObjectCoercible(this)); + if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S); + var length = S.length; + var result = $Array(length); + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i); + // unpaired surrogate + else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER; + // surrogate pair + else { + result[i] = charAt(S, i); + result[++i] = charAt(S, i); + } + } return join(result, ''); + } +}); + + +/***/ }), +/* 447 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $trim = (__webpack_require__(286).trim); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.trim` method +// https://tc39.es/ecma262/#sec-string.prototype.trim +$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } +}); + + +/***/ }), +/* 448 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var fails = __webpack_require__(7); +var whitespaces = __webpack_require__(287); + +var non = '\u200B\u0085\u180E'; + +// check that a method works with the correct list +// of whitespaces and has a correct name +module.exports = function (METHOD_NAME) { + return fails(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); +}; + + +/***/ }), +/* 449 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(450); +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, { + trimEnd: trimEnd +}); + + +/***/ }), +/* 450 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimRight` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, { + trimRight: trimEnd +}); + + +/***/ }), +/* 451 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimEnd = (__webpack_require__(286).end); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimEnd, trimRight }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// https://tc39.es/ecma262/#String.prototype.trimright +module.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() { + return $trimEnd(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimEnd; + + +/***/ }), +/* 452 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(453); +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimStart` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, { + trimStart: trimStart +}); + + +/***/ }), +/* 453 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimLeft` method +// https://tc39.es/ecma262/#sec-string.prototype.trimleft +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, { + trimLeft: trimStart +}); + + +/***/ }), +/* 454 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimStart = (__webpack_require__(286).start); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimStart, trimLeft }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// https://tc39.es/ecma262/#String.prototype.trimleft +module.exports = forcedStringTrimMethod('trimStart') ? function trimStart() { + return $trimStart(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimStart; + + +/***/ }), +/* 455 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.anchor` method +// https://tc39.es/ecma262/#sec-string.prototype.anchor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, { + anchor: function anchor(name) { + return createHTML(this, 'a', 'name', name); + } +}); + + +/***/ }), +/* 456 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var quot = /"/g; +var replace = uncurryThis(''.replace); + +// `CreateHTML` abstract operation +// https://tc39.es/ecma262/#sec-createhtml +module.exports = function (string, tag, attribute, value) { + var S = toString(requireObjectCoercible(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + replace(toString(value), quot, '"') + '"'; + return p1 + '>' + S + '</' + tag + '>'; +}; + + +/***/ }), +/* 457 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// check the existence of a method, lowercase +// of a tag and escaping quotes in arguments +module.exports = function (METHOD_NAME) { + return fails(function () { + var test = ''[METHOD_NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }); +}; + + +/***/ }), +/* 458 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.big` method +// https://tc39.es/ecma262/#sec-string.prototype.big +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, { + big: function big() { + return createHTML(this, 'big', '', ''); + } +}); + + +/***/ }), +/* 459 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.blink` method +// https://tc39.es/ecma262/#sec-string.prototype.blink +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, { + blink: function blink() { + return createHTML(this, 'blink', '', ''); + } +}); + + +/***/ }), +/* 460 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.bold` method +// https://tc39.es/ecma262/#sec-string.prototype.bold +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, { + bold: function bold() { + return createHTML(this, 'b', '', ''); + } +}); + + +/***/ }), +/* 461 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fixed` method +// https://tc39.es/ecma262/#sec-string.prototype.fixed +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, { + fixed: function fixed() { + return createHTML(this, 'tt', '', ''); + } +}); + + +/***/ }), +/* 462 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontcolor` method +// https://tc39.es/ecma262/#sec-string.prototype.fontcolor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, { + fontcolor: function fontcolor(color) { + return createHTML(this, 'font', 'color', color); + } +}); + + +/***/ }), +/* 463 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontsize` method +// https://tc39.es/ecma262/#sec-string.prototype.fontsize +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, { + fontsize: function fontsize(size) { + return createHTML(this, 'font', 'size', size); + } +}); + + +/***/ }), +/* 464 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.italics` method +// https://tc39.es/ecma262/#sec-string.prototype.italics +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, { + italics: function italics() { + return createHTML(this, 'i', '', ''); + } +}); + + +/***/ }), +/* 465 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.link` method +// https://tc39.es/ecma262/#sec-string.prototype.link +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, { + link: function link(url) { + return createHTML(this, 'a', 'href', url); + } +}); + + +/***/ }), +/* 466 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.small` method +// https://tc39.es/ecma262/#sec-string.prototype.small +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, { + small: function small() { + return createHTML(this, 'small', '', ''); + } +}); + + +/***/ }), +/* 467 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.strike` method +// https://tc39.es/ecma262/#sec-string.prototype.strike +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, { + strike: function strike() { + return createHTML(this, 'strike', '', ''); + } +}); + + +/***/ }), +/* 468 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sub` method +// https://tc39.es/ecma262/#sec-string.prototype.sub +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, { + sub: function sub() { + return createHTML(this, 'sub', '', ''); + } +}); + + +/***/ }), +/* 469 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sup` method +// https://tc39.es/ecma262/#sec-string.prototype.sup +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, { + sup: function sup() { + return createHTML(this, 'sup', '', ''); + } +}); + + +/***/ }), +/* 470 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float32', function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 471 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var DESCRIPTORS = __webpack_require__(6); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayBufferModule = __webpack_require__(207); +var anInstance = __webpack_require__(210); +var createPropertyDescriptor = __webpack_require__(11); +var createNonEnumerableProperty = __webpack_require__(43); +var isIntegralNumber = __webpack_require__(292); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var toOffset = __webpack_require__(473); +var toUint8Clamped = __webpack_require__(475); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var create = __webpack_require__(71); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var getOwnPropertyNames = (__webpack_require__(57).f); +var typedArrayFrom = __webpack_require__(476); +var forEach = (__webpack_require__(83).forEach); +var setSpecies = __webpack_require__(193); +var defineBuiltInAccessor = __webpack_require__(77); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var arrayFromConstructorAndList = __webpack_require__(198); +var InternalStateModule = __webpack_require__(51); +var inheritIfRequired = __webpack_require__(118); + +var getInternalState = InternalStateModule.get; +var setInternalState = InternalStateModule.set; +var enforceInternalState = InternalStateModule.enforce; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var RangeError = global.RangeError; +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataView = ArrayBufferModule.DataView; +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; +var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG; +var TypedArray = ArrayBufferViewCore.TypedArray; +var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype; +var isTypedArray = ArrayBufferViewCore.isTypedArray; +var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; +var WRONG_LENGTH = 'Wrong length'; + +var addGetter = function (it, key) { + defineBuiltInAccessor(it, key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var isArrayBuffer = function (it) { + var klass; + return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer'; +}; + +var isTypedArrayIndex = function (target, key) { + return isTypedArray(target) + && !isSymbol(key) + && key in target + && isIntegralNumber(+key) + && key >= 0; +}; + +var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { + key = toPropertyKey(key); + return isTypedArrayIndex(target, key) + ? createPropertyDescriptor(2, target[key]) + : nativeGetOwnPropertyDescriptor(target, key); +}; + +var wrappedDefineProperty = function defineProperty(target, key, descriptor) { + key = toPropertyKey(key); + if (isTypedArrayIndex(target, key) + && isObject(descriptor) + && hasOwn(descriptor, 'value') + && !hasOwn(descriptor, 'get') + && !hasOwn(descriptor, 'set') + // TODO: add validation descriptor w/o calling accessors + && !descriptor.configurable + && (!hasOwn(descriptor, 'writable') || descriptor.writable) + && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable) + ) { + target[key] = descriptor.value; + return target; + } return nativeDefineProperty(target, key, descriptor); +}; + +if (DESCRIPTORS) { + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor; + definePropertyModule.f = wrappedDefineProperty; + addGetter(TypedArrayPrototype, 'buffer'); + addGetter(TypedArrayPrototype, 'byteOffset'); + addGetter(TypedArrayPrototype, 'byteLength'); + addGetter(TypedArrayPrototype, 'length'); + } + + $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, + defineProperty: wrappedDefineProperty + }); + + module.exports = function (TYPE, wrapper, CLAMPED) { + var BYTES = TYPE.match(/\d+/)[0] / 8; + var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + TYPE; + var SETTER = 'set' + TYPE; + var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME]; + var TypedArrayConstructor = NativeTypedArrayConstructor; + var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; + var exported = {}; + + var getter = function (that, index) { + var data = getInternalState(that); + return data.view[GETTER](index * BYTES + data.byteOffset, true); + }; + + var setter = function (that, index, value) { + var data = getInternalState(that); + data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true); + }; + + var addElement = function (that, index) { + nativeDefineProperty(that, index, { + get: function () { + return getter(this, index); + }, + set: function (value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + TypedArrayConstructor = wrapper(function (that, data, offset, $length) { + anInstance(that, TypedArrayConstructorPrototype); + var index = 0; + var byteOffset = 0; + var buffer, byteLength, length; + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new ArrayBuffer(byteLength); + } else if (isArrayBuffer(data)) { + buffer = data; + byteOffset = toOffset(offset, BYTES); + var $len = data.byteLength; + if ($length === undefined) { + if ($len % BYTES) throw new RangeError(WRONG_LENGTH); + byteLength = $len - byteOffset; + if (byteLength < 0) throw new RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH); + } + length = byteLength / BYTES; + } else if (isTypedArray(data)) { + return arrayFromConstructorAndList(TypedArrayConstructor, data); + } else { + return call(typedArrayFrom, TypedArrayConstructor, data); + } + setInternalState(that, { + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength, + length: length, + view: new DataView(buffer) + }); + while (index < length) addElement(that, index++); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype); + } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) { + TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { + anInstance(dummy, TypedArrayConstructorPrototype); + return inheritIfRequired(function () { + if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); + if (isArrayBuffer(data)) return $length !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) + : typedArrayOffset !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) + : new NativeTypedArrayConstructor(data); + if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data); + return call(typedArrayFrom, TypedArrayConstructor, data); + }(), dummy, TypedArrayConstructor); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { + if (!(key in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); + } + }); + TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; + } + + if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); + } + + enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor; + + if (TYPED_ARRAY_TAG) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); + } + + var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor; + + exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; + + $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported); + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); + } + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); + } + + setSpecies(CONSTRUCTOR_NAME); + }; +} else module.exports = function () { /* empty */ }; + + +/***/ }), +/* 472 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-new -- required for testing */ +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var NATIVE_ARRAY_BUFFER_VIEWS = (__webpack_require__(217).NATIVE_ARRAY_BUFFER_VIEWS); + +var ArrayBuffer = global.ArrayBuffer; +var Int8Array = global.Int8Array; + +module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () { + Int8Array(1); +}) || !fails(function () { + new Int8Array(-1); +}) || !checkCorrectnessOfIteration(function (iterable) { + new Int8Array(); + new Int8Array(null); + new Int8Array(1.5); + new Int8Array(iterable); +}, true) || fails(function () { + // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill + return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1; +}); + + +/***/ }), +/* 473 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPositiveInteger = __webpack_require__(474); + +var $RangeError = RangeError; + +module.exports = function (it, BYTES) { + var offset = toPositiveInteger(it); + if (offset % BYTES) throw new $RangeError('Wrong offset'); + return offset; +}; + + +/***/ }), +/* 474 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +module.exports = function (it) { + var result = toIntegerOrInfinity(it); + if (result < 0) throw new $RangeError("The argument can't be less than 0"); + return result; +}; + + +/***/ }), +/* 475 */ +/***/ (function(module) { + + +var round = Math.round; + +module.exports = function (it) { + var value = round(it); + return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF; +}; + + +/***/ }), +/* 476 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var aConstructor = __webpack_require__(220); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var isArrayIteratorMethod = __webpack_require__(131); +var isBigIntArray = __webpack_require__(477); +var aTypedArrayConstructor = (__webpack_require__(217).aTypedArrayConstructor); +var toBigInt = __webpack_require__(478); + +module.exports = function from(source /* , mapfn, thisArg */) { + var C = aConstructor(this); + var O = toObject(source); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iteratorMethod = getIteratorMethod(O); + var i, length, result, thisIsBigIntArray, value, step, iterator, next; + if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + O = []; + while (!(step = call(next, iterator)).done) { + O.push(step.value); + } + } + if (mapping && argumentsLength > 2) { + mapfn = bind(mapfn, arguments[2]); + } + length = lengthOfArrayLike(O); + result = new (aTypedArrayConstructor(C))(length); + thisIsBigIntArray = isBigIntArray(result); + for (i = 0; length > i; i++) { + value = mapping ? mapfn(O[i], i) : O[i]; + // FF30- typed arrays doesn't properly convert objects to typed array values + result[i] = thisIsBigIntArray ? toBigInt(value) : +value; + } + return result; +}; + + +/***/ }), +/* 477 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +module.exports = function (it) { + var klass = classof(it); + return klass === 'BigInt64Array' || klass === 'BigUint64Array'; +}; + + +/***/ }), +/* 478 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); + +var $TypeError = TypeError; + +// `ToBigInt` abstract operation +// https://tc39.es/ecma262/#sec-tobigint +module.exports = function (argument) { + var prim = toPrimitive(argument, 'number'); + if (typeof prim == 'number') throw new $TypeError("Can't convert number to bigint"); + // eslint-disable-next-line es/no-bigint -- safe + return BigInt(prim); +}; + + +/***/ }), +/* 479 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float64Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float64', function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 480 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int8', function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 481 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int16', function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 482 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int32', function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 483 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 484 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8ClampedArray` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}, true); + + +/***/ }), +/* 485 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint16', function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 486 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint32', function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 487 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.at` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at +exportTypedArrayMethod('at', function at(index) { + var O = aTypedArray(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; +}); + + +/***/ }), +/* 488 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var $ArrayCopyWithin = __webpack_require__(144); + +var u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin +exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) { + return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined); +}); + + +/***/ }), +/* 489 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $every = (__webpack_require__(83).every); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.every` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every +exportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) { + return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 490 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $fill = __webpack_require__(149); +var toBigInt = __webpack_require__(478); +var classof = __webpack_require__(69); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var slice = uncurryThis(''.slice); + +// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18 +var CONVERSION_BUG = fails(function () { + var count = 0; + // eslint-disable-next-line es/no-typed-arrays -- safe + new Int8Array(2).fill({ valueOf: function () { return count++; } }); + return count !== 1; +}); + +// `%TypedArray%.prototype.fill` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill +exportTypedArrayMethod('fill', function fill(value /* , start, end */) { + var length = arguments.length; + aTypedArray(this); + var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value; + return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined); +}, CONVERSION_BUG); + + +/***/ }), +/* 491 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $filter = (__webpack_require__(83).filter); +var fromSpeciesAndList = __webpack_require__(492); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.filter` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter +exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) { + var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return fromSpeciesAndList(this, list); +}); + + +/***/ }), +/* 492 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arrayFromConstructorAndList = __webpack_require__(198); +var typedArraySpeciesConstructor = __webpack_require__(493); + +module.exports = function (instance, list) { + return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list); +}; + + +/***/ }), +/* 493 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var speciesConstructor = __webpack_require__(219); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// a part of `TypedArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#typedarray-species-create +module.exports = function (originalArray) { + return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray))); +}; + + +/***/ }), +/* 494 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $find = (__webpack_require__(83).find); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.find` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find +exportTypedArrayMethod('find', function find(predicate /* , thisArg */) { + return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 495 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findIndex = (__webpack_require__(83).findIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex +exportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) { + return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 496 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLast = (__webpack_require__(154).findLast); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLast` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast +exportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) { + return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 497 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLastIndex = (__webpack_require__(154).findLastIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex +exportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) { + return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 498 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $forEach = (__webpack_require__(83).forEach); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.forEach` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach +exportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) { + $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 499 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var exportTypedArrayStaticMethod = (__webpack_require__(217).exportTypedArrayStaticMethod); +var typedArrayFrom = __webpack_require__(476); + +// `%TypedArray%.from` method +// https://tc39.es/ecma262/#sec-%typedarray%.from +exportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 500 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $includes = (__webpack_require__(59).includes); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.includes` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes +exportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) { + return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 501 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $indexOf = (__webpack_require__(59).indexOf); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof +exportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) { + return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 502 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayIterators = __webpack_require__(168); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var Uint8Array = global.Uint8Array; +var arrayValues = uncurryThis(ArrayIterators.values); +var arrayKeys = uncurryThis(ArrayIterators.keys); +var arrayEntries = uncurryThis(ArrayIterators.entries); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var TypedArrayPrototype = Uint8Array && Uint8Array.prototype; + +var GENERIC = !fails(function () { + TypedArrayPrototype[ITERATOR].call([1]); +}); + +var ITERATOR_IS_VALUES = !!TypedArrayPrototype + && TypedArrayPrototype.values + && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values + && TypedArrayPrototype.values.name === 'values'; + +var typedArrayValues = function values() { + return arrayValues(aTypedArray(this)); +}; + +// `%TypedArray%.prototype.entries` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries +exportTypedArrayMethod('entries', function entries() { + return arrayEntries(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.keys` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys +exportTypedArrayMethod('keys', function keys() { + return arrayKeys(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.values` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values +exportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); +// `%TypedArray%.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator +exportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); + + +/***/ }), +/* 503 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $join = uncurryThis([].join); + +// `%TypedArray%.prototype.join` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join +exportTypedArrayMethod('join', function join(separator) { + return $join(aTypedArray(this), separator); +}); + + +/***/ }), +/* 504 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var apply = __webpack_require__(94); +var $lastIndexOf = __webpack_require__(175); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof +exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { + var length = arguments.length; + return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]); +}); + + +/***/ }), +/* 505 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $map = (__webpack_require__(83).map); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.map` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map +exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) { + return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { + return new (typedArraySpeciesConstructor(O))(length); + }); +}); + + +/***/ }), +/* 506 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod; + +// `%TypedArray%.of` method +// https://tc39.es/ecma262/#sec-%typedarray%.of +exportTypedArrayStaticMethod('of', function of(/* ...items */) { + var index = 0; + var length = arguments.length; + var result = new (aTypedArrayConstructor(this))(length); + while (length > index) result[index] = arguments[index++]; + return result; +}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 507 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduce = (__webpack_require__(181).left); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduce` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce +exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 508 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduceRight = (__webpack_require__(181).right); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright +exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 509 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var floor = Math.floor; + +// `%TypedArray%.prototype.reverse` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse +exportTypedArrayMethod('reverse', function reverse() { + var that = this; + var length = aTypedArray(that).length; + var middle = floor(length / 2); + var index = 0; + var value; + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } return that; +}); + + +/***/ }), +/* 510 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toOffset = __webpack_require__(473); +var toIndexedObject = __webpack_require__(39); +var fails = __webpack_require__(7); + +var RangeError = global.RangeError; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var $set = Int8ArrayPrototype && Int8ArrayPrototype.set; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + var array = new Uint8ClampedArray(2); + call($set, array, { length: 1, 0: 3 }, 1); + return array[1] !== 3; +}); + +// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other +var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () { + var array = new Int8Array(2); + array.set(1); + array.set('2', 1); + return array[0] !== 0 || array[1] !== 2; +}); + +// `%TypedArray%.prototype.set` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set +exportTypedArrayMethod('set', function set(arrayLike /* , offset */) { + aTypedArray(this); + var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); + var src = toIndexedObject(arrayLike); + if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset); + var length = this.length; + var len = lengthOfArrayLike(src); + var index = 0; + if (len + offset > length) throw new RangeError('Wrong length'); + while (index < len) this[offset + index] = src[index++]; +}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG); + + +/***/ }), +/* 511 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var typedArraySpeciesConstructor = __webpack_require__(493); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + new Int8Array(1).slice(); +}); + +// `%TypedArray%.prototype.slice` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice +exportTypedArrayMethod('slice', function slice(start, end) { + var list = arraySlice(aTypedArray(this), start, end); + var C = typedArraySpeciesConstructor(this); + var index = 0; + var length = list.length; + var result = new C(length); + while (length > index) result[index] = list[index++]; + return result; +}, FORCED); + + +/***/ }), +/* 512 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $some = (__webpack_require__(83).some); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.some` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some +exportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) { + return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 513 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var aCallable = __webpack_require__(30); +var internalSort = __webpack_require__(188); +var ArrayBufferViewCore = __webpack_require__(217); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var Uint16Array = global.Uint16Array; +var nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort); + +// WebKit +var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () { + nativeSort(new Uint16Array(2), null); +}) && fails(function () { + nativeSort(new Uint16Array(2), {}); +})); + +var STABLE_SORT = !!nativeSort && !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 74; + if (FF) return FF < 67; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 602; + + var array = new Uint16Array(516); + var expected = Array(516); + var index, mod; + + for (index = 0; index < 516; index++) { + mod = index % 4; + array[index] = 515 - index; + expected[index] = index - 2 * mod + 3; + } + + nativeSort(array, function (a, b) { + return (a / 4 | 0) - (b / 4 | 0); + }); + + for (index = 0; index < 516; index++) { + if (array[index] !== expected[index]) return true; + } +}); + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (comparefn !== undefined) return +comparefn(x, y) || 0; + // eslint-disable-next-line no-self-compare -- NaN check + if (y !== y) return -1; + // eslint-disable-next-line no-self-compare -- NaN check + if (x !== x) return 1; + if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1; + return x > y; + }; +}; + +// `%TypedArray%.prototype.sort` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort +exportTypedArrayMethod('sort', function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + if (STABLE_SORT) return nativeSort(this, comparefn); + + return internalSort(aTypedArray(this), getSortCompare(comparefn)); +}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS); + + +/***/ }), +/* 514 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var toLength = __webpack_require__(64); +var toAbsoluteIndex = __webpack_require__(60); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.subarray` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray +exportTypedArrayMethod('subarray', function subarray(begin, end) { + var O = aTypedArray(this); + var length = O.length; + var beginIndex = toAbsoluteIndex(begin, length); + var C = typedArraySpeciesConstructor(O); + return new C( + O.buffer, + O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, + toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex) + ); +}); + + +/***/ }), +/* 515 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var ArrayBufferViewCore = __webpack_require__(217); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var Int8Array = global.Int8Array; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $toLocaleString = [].toLocaleString; + +// iOS Safari 6.x fails here +var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () { + $toLocaleString.call(new Int8Array(1)); +}); + +var FORCED = fails(function () { + return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString(); +}) || !fails(function () { + Int8Array.prototype.toLocaleString.call([1, 2]); +}); + +// `%TypedArray%.prototype.toLocaleString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring +exportTypedArrayMethod('toLocaleString', function toLocaleString() { + return apply( + $toLocaleString, + TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this), + arraySlice(arguments) + ); +}, FORCED); + + +/***/ }), +/* 516 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayToReversed = __webpack_require__(196); +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// `%TypedArray%.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed +exportTypedArrayMethod('toReversed', function toReversed() { + return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this)); +}); + + +/***/ }), +/* 517 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var arrayFromConstructorAndList = __webpack_require__(198); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort); + +// `%TypedArray%.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted +exportTypedArrayMethod('toSorted', function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = aTypedArray(this); + var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O); + return sort(A, compareFn); +}); + + +/***/ }), +/* 518 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var exportTypedArrayMethod = (__webpack_require__(217).exportTypedArrayMethod); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); + +var Uint8Array = global.Uint8Array; +var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {}; +var arrayToString = [].toString; +var join = uncurryThis([].join); + +if (fails(function () { arrayToString.call({}); })) { + arrayToString = function toString() { + return join(this); + }; +} + +var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString; + +// `%TypedArray%.prototype.toString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring +exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD); + + +/***/ }), +/* 519 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayWith = __webpack_require__(205); +var ArrayBufferViewCore = __webpack_require__(217); +var isBigIntArray = __webpack_require__(477); +var toIntegerOrInfinity = __webpack_require__(61); +var toBigInt = __webpack_require__(478); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var PROPER_ORDER = !!function () { + try { + // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing + new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } }); + } catch (error) { + // some early implementations, like WebKit, does not follow the final semantic + // https://github.com/tc39/proposal-change-array-by-copy/pull/86 + return error === 8; + } +}(); + +// `%TypedArray%.prototype.with` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with +exportTypedArrayMethod('with', { 'with': function (index, value) { + var O = aTypedArray(this); + var relativeIndex = toIntegerOrInfinity(index); + var actualValue = isBigIntArray(O) ? toBigInt(value) : +value; + return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue); +} }['with'], !PROPER_ORDER); + + +/***/ }), +/* 520 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var stringSlice = uncurryThis(''.slice); + +var hex2 = /^[\da-f]{2}$/i; +var hex4 = /^[\da-f]{4}$/i; + +// `unescape` method +// https://tc39.es/ecma262/#sec-unescape-string +$({ global: true }, { + unescape: function unescape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, part; + while (index < length) { + chr = charAt(str, index++); + if (chr === '%') { + if (charAt(str, index) === 'u') { + part = stringSlice(str, index + 1, index + 5); + if (exec(hex4, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 5; + continue; + } + } else { + part = stringSlice(str, index, index + 2); + if (exec(hex2, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 2; + continue; + } + } + } + result += chr; + } return result; + } +}); + + +/***/ }), +/* 521 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(522); + + +/***/ }), +/* 522 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var FREEZING = __webpack_require__(259); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var InternalMetadataModule = __webpack_require__(256); +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); +var isObject = __webpack_require__(20); +var enforceInternalState = (__webpack_require__(51).enforce); +var fails = __webpack_require__(7); +var NATIVE_WEAK_MAP = __webpack_require__(52); + +var $Object = Object; +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray = Array.isArray; +// eslint-disable-next-line es/no-object-isextensible -- safe +var isExtensible = $Object.isExtensible; +// eslint-disable-next-line es/no-object-isfrozen -- safe +var isFrozen = $Object.isFrozen; +// eslint-disable-next-line es/no-object-issealed -- safe +var isSealed = $Object.isSealed; +// eslint-disable-next-line es/no-object-freeze -- safe +var freeze = $Object.freeze; +// eslint-disable-next-line es/no-object-seal -- safe +var seal = $Object.seal; + +var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; +var InternalWeakMap; + +var wrapper = function (init) { + return function WeakMap() { + return init(this, arguments.length ? arguments[0] : undefined); + }; +}; + +// `WeakMap` constructor +// https://tc39.es/ecma262/#sec-weakmap-constructor +var $WeakMap = collection('WeakMap', wrapper, collectionWeak); +var WeakMapPrototype = $WeakMap.prototype; +var nativeSet = uncurryThis(WeakMapPrototype.set); + +// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them +var hasMSEdgeFreezingBug = function () { + return FREEZING && fails(function () { + var frozenArray = freeze([]); + nativeSet(new $WeakMap(), frozenArray, 1); + return !isFrozen(frozenArray); + }); +}; + +// IE11 WeakMap frozen keys fix +// We can't use feature detection because it crash some old IE builds +// https://github.com/zloirock/core-js/issues/485 +if (NATIVE_WEAK_MAP) if (IS_IE11) { + InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); + InternalMetadataModule.enable(); + var nativeDelete = uncurryThis(WeakMapPrototype['delete']); + var nativeHas = uncurryThis(WeakMapPrototype.has); + var nativeGet = uncurryThis(WeakMapPrototype.get); + defineBuiltIns(WeakMapPrototype, { + 'delete': function (key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeDelete(this, key) || state.frozen['delete'](key); + } return nativeDelete(this, key); + }, + has: function has(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) || state.frozen.has(key); + } return nativeHas(this, key); + }, + get: function get(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key); + } return nativeGet(this, key); + }, + set: function set(key, value) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value); + } else nativeSet(this, key, value); + return this; + } + }); +// Chakra Edge frozen keys fix +} else if (hasMSEdgeFreezingBug()) { + defineBuiltIns(WeakMapPrototype, { + set: function set(key, value) { + var arrayIntegrityLevel; + if (isArray(key)) { + if (isFrozen(key)) arrayIntegrityLevel = freeze; + else if (isSealed(key)) arrayIntegrityLevel = seal; + } + nativeSet(this, key, value); + if (arrayIntegrityLevel) arrayIntegrityLevel(key); + return this; + } + }); +} + + +/***/ }), +/* 523 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var getWeakData = (__webpack_require__(256).getWeakData); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var iterate = __webpack_require__(130); +var ArrayIterationModule = __webpack_require__(83); +var hasOwn = __webpack_require__(38); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var splice = uncurryThis([].splice); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } +}; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } +}; + + +/***/ }), +/* 524 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(525); + + +/***/ }), +/* 525 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); + +// `WeakSet` constructor +// https://tc39.es/ecma262/#sec-weakset-constructor +collection('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionWeak); + + +/***/ }), +/* 526 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var c2i = (__webpack_require__(527).c2i); + +var disallowed = /[^\d+/a-z]/i; +var whitespaces = /[\t\n\f\r ]+/g; +var finalEq = /[=]{1,2}$/; + +var $atob = getBuiltIn('atob'); +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var exec = uncurryThis(disallowed.exec); + +var BASIC = !!$atob && !fails(function () { + return $atob('aGk=') !== 'hi'; +}); + +var NO_SPACES_IGNORE = BASIC && fails(function () { + return $atob(' ') !== ''; +}); + +var NO_ENCODING_CHECK = BASIC && !fails(function () { + $atob('a'); +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $atob(); +}); + +var WRONG_ARITY = BASIC && $atob.length !== 1; + +var FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY; + +// `atob` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob +$({ global: true, bind: true, enumerable: true, forced: FORCED }, { + atob: function atob(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, global, data); + var string = replace(toString(data), whitespaces, ''); + var output = ''; + var position = 0; + var bc = 0; + var length, chr, bs; + if (string.length % 4 === 0) { + string = replace(string, finalEq, ''); + } + length = string.length; + if (length % 4 === 1 || exec(disallowed, string)) { + throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError'); + } + while (position < length) { + chr = charAt(string, position++); + bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr]; + if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6)); + } return output; + } +}); + + +/***/ }), +/* 527 */ +/***/ (function(module) { + + +var commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; +var base64Alphabet = commonAlphabet + '+/'; +var base64UrlAlphabet = commonAlphabet + '-_'; + +var inverse = function (characters) { + // TODO: use `Object.create(null)` in `core-js@4` + var result = {}; + var index = 0; + for (; index < 64; index++) result[characters.charAt(index)] = index; + return result; +}; + +module.exports = { + i2c: base64Alphabet, + c2i: inverse(base64Alphabet), + i2cUrl: base64UrlAlphabet, + c2iUrl: inverse(base64UrlAlphabet) +}; + + +/***/ }), +/* 528 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var i2c = (__webpack_require__(527).i2c); + +var $btoa = getBuiltIn('btoa'); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); + +var BASIC = !!$btoa && !fails(function () { + return $btoa('hi') !== 'aGk='; +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $btoa(); +}); + +var WRONG_ARG_CONVERSION = BASIC && fails(function () { + return $btoa(null) !== 'bnVsbA=='; +}); + +var WRONG_ARITY = BASIC && $btoa.length !== 1; + +// `btoa` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa +$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, { + btoa: function btoa(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC) return call($btoa, global, toString(data)); + var string = toString(data); + var output = ''; + var position = 0; + var map = i2c; + var block, charCode; + while (charAt(string, position) || (map = '=', position % 1)) { + charCode = charCodeAt(string, position += 3 / 4); + if (charCode > 0xFF) { + throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError'); + } + block = block << 8 | charCode; + output += charAt(map, 63 & block >> 8 - position % 1 * 8); + } return output; + } +}); + + +/***/ }), +/* 529 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var forEach = __webpack_require__(160); +var createNonEnumerableProperty = __webpack_require__(43); + +var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype); + } +} + +handlePrototype(DOMTokenListPrototype); + + +/***/ }), +/* 530 */ +/***/ (function(module) { + + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +module.exports = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + + +/***/ }), +/* 531 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` +var documentCreateElement = __webpack_require__(42); + +var classList = documentCreateElement('span').classList; +var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype; + +module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype; + + +/***/ }), +/* 532 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var ArrayIteratorMethods = __webpack_require__(168); +var createNonEnumerableProperty = __webpack_require__(43); +var setToStringTag = __webpack_require__(82); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayValues = ArrayIteratorMethods.values; + +var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + setToStringTag(CollectionPrototype, COLLECTION_NAME, true); + if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME); +} + +handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); + + +/***/ }), +/* 533 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var tryNodeRequire = __webpack_require__(229); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var errorToString = __webpack_require__(125); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var InternalStateModule = __webpack_require__(51); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var DATA_CLONE_ERR = 'DATA_CLONE_ERR'; +var Error = getBuiltIn('Error'); +// NodeJS < 17.0 does not expose `DOMException` to global +var NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () { + try { + // NodeJS < 15.0 does not expose `MessageChannel` to global + var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel; + // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe + new MessageChannel().port1.postMessage(new WeakMap()); + } catch (error) { + if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor; + } +})(); +var NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype; +var ErrorPrototype = Error.prototype; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION); +var HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); + +var codeFor = function (name) { + return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0; +}; + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var code = codeFor(name); + setInternalState(this, { + type: DOM_EXCEPTION, + name: name, + message: message, + code: code + }); + if (!DESCRIPTORS) { + this.name = name; + this.message = message; + this.code = code; + } + if (HAS_STACK) { + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + } +}; + +var DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype); + +var createGetterDescriptor = function (get) { + return { enumerable: true, configurable: true, get: get }; +}; + +var getterFor = function (key) { + return createGetterDescriptor(function () { + return getInternalState(this)[key]; + }); +}; + +if (DESCRIPTORS) { + // `DOMException.prototype.code` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code')); + // `DOMException.prototype.message` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message')); + // `DOMException.prototype.name` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name')); +} + +defineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException)); + +// FF36- DOMException is a function, but can't be constructed +var INCORRECT_CONSTRUCTOR = fails(function () { + return !(new NativeDOMException() instanceof Error); +}); + +// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs +var INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () { + return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1'; +}); + +// Deno 1.6.3- DOMException.prototype.code just missed +var INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () { + return new NativeDOMException(1, 'DataCloneError').code !== 25; +}); + +// Deno 1.6.3- DOMException constants just missed +var MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR + || NativeDOMException[DATA_CLONE_ERR] !== 25 + || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25; + +var FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR; + +// `DOMException` constructor +// https://webidl.spec.whatwg.org/#idl-DOMException +$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, { + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) { + defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString); +} + +if (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) { + defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () { + return codeFor(anObject(this).name); + })); +} + +// `DOMException` constants +for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + var descriptor = createPropertyDescriptor(6, constant.c); + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, descriptor); + } + if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) { + defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor); + } +} + + +/***/ }), +/* 534 */ +/***/ (function(module) { + + +module.exports = { + IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 }, + DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 }, + HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 }, + WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 }, + InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 }, + NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 }, + NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 }, + NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 }, + NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 }, + InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 }, + InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 }, + SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 }, + InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 }, + NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 }, + InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 }, + ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 }, + TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 }, + SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 }, + NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 }, + AbortError: { s: 'ABORT_ERR', c: 20, m: 1 }, + URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 }, + QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 }, + TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 }, + InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 }, + DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 } +}; + + +/***/ }), +/* 535 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var Error = getBuiltIn('Error'); +var NativeDOMException = getBuiltIn(DOM_EXCEPTION); + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var that = new NativeDOMException(message, name); + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + inheritIfRequired(that, this, $DOMException); + return that; +}; + +var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype; + +var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); +var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION); + +// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it +// https://github.com/Jarred-Sumner/bun/issues/399 +var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable); + +var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK; + +// `DOMException` constructor patch for `.stack` where it's required +// https://webidl.spec.whatwg.org/#es-DOMException-specialness +$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) { + if (!IS_PURE) { + defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException)); + } + + for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c)); + } + } +} + + +/***/ }), +/* 536 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var setToStringTag = __webpack_require__(82); + +var DOM_EXCEPTION = 'DOMException'; + +// `DOMException.prototype[@@toStringTag]` property +setToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION); + + +/***/ }), +/* 537 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(538); +__webpack_require__(539); + + +/***/ }), +/* 538 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var clearImmediate = (__webpack_require__(341).clear); + +// `clearImmediate` method +// http://w3c.github.io/setImmediate/#si-clearImmediate +$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, { + clearImmediate: clearImmediate +}); + + +/***/ }), +/* 539 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setTask = (__webpack_require__(341).set); +var schedulersFix = __webpack_require__(540); + +// https://github.com/oven-sh/bun/issues/1633 +var setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask; + +// `setImmediate` method +// http://w3c.github.io/setImmediate/#si-setImmediate +$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, { + setImmediate: setImmediate +}); + + +/***/ }), +/* 540 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var isCallable = __webpack_require__(21); +var ENGINE_IS_BUN = __webpack_require__(541); +var USER_AGENT = __webpack_require__(28); +var arraySlice = __webpack_require__(76); +var validateArgumentsLength = __webpack_require__(342); + +var Function = global.Function; +// dirty IE9- and Bun 0.3.0- checks +var WRAP = /MSIE .\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () { + var version = global.Bun.version.split('.'); + return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0'); +})(); + +// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers +// https://github.com/oven-sh/bun/issues/1633 +module.exports = function (scheduler, hasTimeArg) { + var firstParamIndex = hasTimeArg ? 2 : 1; + return WRAP ? function (handler, timeout /* , ...arguments */) { + var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex; + var fn = isCallable(handler) ? handler : Function(handler); + var params = boundArgs ? arraySlice(arguments, firstParamIndex) : []; + var callback = boundArgs ? function () { + apply(fn, this, params); + } : fn; + return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback); + } : scheduler; +}; + + +/***/ }), +/* 541 */ +/***/ (function(module) { + + +/* global Bun -- Bun case */ +module.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string'; + + +/***/ }), +/* 542 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var globalThis = __webpack_require__(4); +var microtask = __webpack_require__(344); +var aCallable = __webpack_require__(30); +var validateArgumentsLength = __webpack_require__(342); +var fails = __webpack_require__(7); +var DESCRIPTORS = __webpack_require__(6); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9249 +var WRONG_ARITY = fails(function () { + // getOwnPropertyDescriptor for prevent experimental warning in Node 11 + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1; +}); + +// `queueMicrotask` method +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask +$({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, { + queueMicrotask: function queueMicrotask(fn) { + validateArgumentsLength(arguments.length, 1); + microtask(aCallable(fn)); + } +}); + + +/***/ }), +/* 543 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var defineBuiltInAccessor = __webpack_require__(77); +var DESCRIPTORS = __webpack_require__(6); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var INCORRECT_VALUE = global.self !== global; + +// `self` getter +// https://html.spec.whatwg.org/multipage/window-object.html#dom-self +try { + if (DESCRIPTORS) { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var descriptor = Object.getOwnPropertyDescriptor(global, 'self'); + // some engines have `self`, but with incorrect descriptor + // https://github.com/denoland/deno/issues/15765 + if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) { + defineBuiltInAccessor(global, 'self', { + get: function self() { + return global; + }, + set: function self(value) { + if (this !== global) throw new $TypeError('Illegal invocation'); + defineProperty(global, 'self', { + value: value, + writable: true, + configurable: true, + enumerable: true + }); + }, + configurable: true, + enumerable: true + }); + } + } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, { + self: global + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 544 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var uid = __webpack_require__(40); +var isCallable = __webpack_require__(21); +var isConstructor = __webpack_require__(89); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var iterate = __webpack_require__(130); +var anObject = __webpack_require__(46); +var classof = __webpack_require__(69); +var hasOwn = __webpack_require__(38); +var createProperty = __webpack_require__(141); +var createNonEnumerableProperty = __webpack_require__(43); +var lengthOfArrayLike = __webpack_require__(63); +var validateArgumentsLength = __webpack_require__(342); +var getRegExpFlags = __webpack_require__(382); +var MapHelpers = __webpack_require__(262); +var SetHelpers = __webpack_require__(399); +var setIterate = __webpack_require__(401); +var detachTransferable = __webpack_require__(228); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var Object = global.Object; +var Array = global.Array; +var Date = global.Date; +var Error = global.Error; +var TypeError = global.TypeError; +var PerformanceMark = global.PerformanceMark; +var DOMException = getBuiltIn('DOMException'); +var Map = MapHelpers.Map; +var mapHas = MapHelpers.has; +var mapGet = MapHelpers.get; +var mapSet = MapHelpers.set; +var Set = SetHelpers.Set; +var setAdd = SetHelpers.add; +var setHas = SetHelpers.has; +var objectKeys = getBuiltIn('Object', 'keys'); +var push = uncurryThis([].push); +var thisBooleanValue = uncurryThis(true.valueOf); +var thisNumberValue = uncurryThis(1.0.valueOf); +var thisStringValue = uncurryThis(''.valueOf); +var thisTimeValue = uncurryThis(Date.prototype.getTime); +var PERFORMANCE_MARK = uid('structuredClone'); +var DATA_CLONE_ERROR = 'DataCloneError'; +var TRANSFERRING = 'Transferring'; + +var checkBasicSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var set1 = new global.Set([7]); + var set2 = structuredCloneImplementation(set1); + var number = structuredCloneImplementation(Object(7)); + return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7; + }) && structuredCloneImplementation; +}; + +var checkErrorsCloning = function (structuredCloneImplementation, $Error) { + return !fails(function () { + var error = new $Error(); + var test = structuredCloneImplementation({ a: error, b: error }); + return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack); + }); +}; + +// https://github.com/whatwg/html/pull/5749 +var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 })); + return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3; + }); +}; + +// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+ +// FF<103 and Safari implementations can't clone errors +// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604 +// FF103 can clone errors, but `.stack` of clone is an empty string +// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762 +// FF104+ fixed it on usual errors, but not on DOMExceptions +// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321 +// Chrome <102 returns `null` if cloned object contains multiple references to one error +// https://bugs.chromium.org/p/v8/issues/detail?id=12542 +// NodeJS implementation can't clone DOMExceptions +// https://github.com/nodejs/node/issues/41038 +// only FF103+ supports new (html/5749) error cloning semantic +var nativeStructuredClone = global.structuredClone; + +var FORCED_REPLACEMENT = IS_PURE + || !checkErrorsCloning(nativeStructuredClone, Error) + || !checkErrorsCloning(nativeStructuredClone, DOMException) + || !checkNewErrorsCloningSemantic(nativeStructuredClone); + +// Chrome 82+, Safari 14.1+, Deno 1.11+ +// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException` +// Chrome returns `null` if cloned object contains multiple references to one error +// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround +// Safari implementation can't clone errors +// Deno 1.2-1.10 implementations too naive +// NodeJS 16.0+ does not have `PerformanceMark` constructor +// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive +// and can't clone, for example, `RegExp` or some boxed primitives +// https://github.com/nodejs/node/issues/40840 +// no one of those implementations supports new (html/5749) error cloning semantic +var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) { + return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail; +}); + +var nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark; + +var throwUncloneable = function (type) { + throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR); +}; + +var throwUnpolyfillable = function (type, action) { + throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR); +}; + +var tryNativeRestrictedStructuredClone = function (value, type) { + if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type); + return nativeRestrictedStructuredClone(value); +}; + +var createDataTransfer = function () { + var dataTransfer; + try { + dataTransfer = new global.DataTransfer(); + } catch (error) { + try { + dataTransfer = new global.ClipboardEvent('').clipboardData; + } catch (error2) { /* empty */ } + } + return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null; +}; + +var cloneBuffer = function (value, map, $type) { + if (mapHas(map, value)) return mapGet(map, value); + + var type = $type || classof(value); + var clone, length, options, source, target, i; + + if (type === 'SharedArrayBuffer') { + if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value); + // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original + else clone = value; + } else { + var DataView = global.DataView; + + // `ArrayBuffer#slice` is not available in IE10 + // `ArrayBuffer#slice` and `DataView` are not available in old FF + if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer'); + // detached buffers throws in `DataView` and `.slice` + try { + if (isCallable(value.slice) && !value.resizable) { + clone = value.slice(0); + } else { + length = value.byteLength; + options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined; + // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe + clone = new ArrayBuffer(length, options); + source = new DataView(value); + target = new DataView(clone); + for (i = 0; i < length; i++) { + target.setUint8(i, source.getUint8(i)); + } + } + } catch (error) { + throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR); + } + } + + mapSet(map, value, clone); + + return clone; +}; + +var cloneView = function (value, type, offset, length, map) { + var C = global[type]; + // in some old engines like Safari 9, typeof C is 'object' + // on Uint8ClampedArray or some other constructors + if (!isObject(C)) throwUnpolyfillable(type); + return new C(cloneBuffer(value.buffer, map), offset, length); +}; + +var structuredCloneInternal = function (value, map) { + if (isSymbol(value)) throwUncloneable('Symbol'); + if (!isObject(value)) return value; + // effectively preserves circular references + if (map) { + if (mapHas(map, value)) return mapGet(map, value); + } else map = new Map(); + + var type = classof(value); + var C, name, cloned, dataTransfer, i, length, keys, key; + + switch (type) { + case 'Array': + cloned = Array(lengthOfArrayLike(value)); + break; + case 'Object': + cloned = {}; + break; + case 'Map': + cloned = new Map(); + break; + case 'Set': + cloned = new Set(); + break; + case 'RegExp': + // in this block because of a Safari 14.1 bug + // old FF does not clone regexes passed to the constructor, so get the source and flags directly + cloned = new RegExp(value.source, getRegExpFlags(value)); + break; + case 'Error': + name = value.name; + switch (name) { + case 'AggregateError': + cloned = new (getBuiltIn(name))([]); + break; + case 'EvalError': + case 'RangeError': + case 'ReferenceError': + case 'SuppressedError': + case 'SyntaxError': + case 'TypeError': + case 'URIError': + cloned = new (getBuiltIn(name))(); + break; + case 'CompileError': + case 'LinkError': + case 'RuntimeError': + cloned = new (getBuiltIn('WebAssembly', name))(); + break; + default: + cloned = new Error(); + } + break; + case 'DOMException': + cloned = new DOMException(value.message, value.name); + break; + case 'ArrayBuffer': + case 'SharedArrayBuffer': + cloned = cloneBuffer(value, map, type); + break; + case 'DataView': + case 'Int8Array': + case 'Uint8Array': + case 'Uint8ClampedArray': + case 'Int16Array': + case 'Uint16Array': + case 'Int32Array': + case 'Uint32Array': + case 'Float16Array': + case 'Float32Array': + case 'Float64Array': + case 'BigInt64Array': + case 'BigUint64Array': + length = type === 'DataView' ? value.byteLength : value.length; + cloned = cloneView(value, type, value.byteOffset, length, map); + break; + case 'DOMQuad': + try { + cloned = new DOMQuad( + structuredCloneInternal(value.p1, map), + structuredCloneInternal(value.p2, map), + structuredCloneInternal(value.p3, map), + structuredCloneInternal(value.p4, map) + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } + break; + case 'File': + if (nativeRestrictedStructuredClone) try { + cloned = nativeRestrictedStructuredClone(value); + // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612 + if (classof(cloned) !== type) cloned = undefined; + } catch (error) { /* empty */ } + if (!cloned) try { + cloned = new File([value], value.name, value); + } catch (error) { /* empty */ } + if (!cloned) throwUnpolyfillable(type); + break; + case 'FileList': + dataTransfer = createDataTransfer(); + if (dataTransfer) { + for (i = 0, length = lengthOfArrayLike(value); i < length; i++) { + dataTransfer.items.add(structuredCloneInternal(value[i], map)); + } + cloned = dataTransfer.files; + } else cloned = tryNativeRestrictedStructuredClone(value, type); + break; + case 'ImageData': + // Safari 9 ImageData is a constructor, but typeof ImageData is 'object' + try { + cloned = new ImageData( + structuredCloneInternal(value.data, map), + value.width, + value.height, + { colorSpace: value.colorSpace } + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } break; + default: + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else switch (type) { + case 'BigInt': + // can be a 3rd party polyfill + cloned = Object(value.valueOf()); + break; + case 'Boolean': + cloned = Object(thisBooleanValue(value)); + break; + case 'Number': + cloned = Object(thisNumberValue(value)); + break; + case 'String': + cloned = Object(thisStringValue(value)); + break; + case 'Date': + cloned = new Date(thisTimeValue(value)); + break; + case 'Blob': + try { + cloned = value.slice(0, value.size, value.type); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMPoint': + case 'DOMPointReadOnly': + C = global[type]; + try { + cloned = C.fromPoint + ? C.fromPoint(value) + : new C(value.x, value.y, value.z, value.w); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMRect': + case 'DOMRectReadOnly': + C = global[type]; + try { + cloned = C.fromRect + ? C.fromRect(value) + : new C(value.x, value.y, value.width, value.height); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMMatrix': + case 'DOMMatrixReadOnly': + C = global[type]; + try { + cloned = C.fromMatrix + ? C.fromMatrix(value) + : new C(value); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone)) throwUnpolyfillable(type); + try { + cloned = value.clone(); + } catch (error) { + throwUncloneable(type); + } break; + case 'CropTarget': + case 'CryptoKey': + case 'FileSystemDirectoryHandle': + case 'FileSystemFileHandle': + case 'FileSystemHandle': + case 'GPUCompilationInfo': + case 'GPUCompilationMessage': + case 'ImageBitmap': + case 'RTCCertificate': + case 'WebAssembly.Module': + throwUnpolyfillable(type); + // break omitted + default: + throwUncloneable(type); + } + } + + mapSet(map, value, cloned); + + switch (type) { + case 'Array': + case 'Object': + keys = objectKeys(value); + for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) { + key = keys[i]; + createProperty(cloned, key, structuredCloneInternal(value[key], map)); + } break; + case 'Map': + value.forEach(function (v, k) { + mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map)); + }); + break; + case 'Set': + value.forEach(function (v) { + setAdd(cloned, structuredCloneInternal(v, map)); + }); + break; + case 'Error': + createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map)); + if (hasOwn(value, 'cause')) { + createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map)); + } + if (name === 'AggregateError') { + cloned.errors = structuredCloneInternal(value.errors, map); + } else if (name === 'SuppressedError') { + cloned.error = structuredCloneInternal(value.error, map); + cloned.suppressed = structuredCloneInternal(value.suppressed, map); + } // break omitted + case 'DOMException': + if (ERROR_STACK_INSTALLABLE) { + createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map)); + } + } + + return cloned; +}; + +var tryToTransfer = function (rawTransfer, map) { + if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence'); + + var transfer = []; + + iterate(rawTransfer, function (value) { + push(transfer, anObject(value)); + }); + + var i = 0; + var length = lengthOfArrayLike(transfer); + var buffers = new Set(); + var value, type, C, transferred, canvas, context; + + while (i < length) { + value = transfer[i++]; + + type = classof(value); + + if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) { + throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); + } + + if (type === 'ArrayBuffer') { + setAdd(buffers, value); + continue; + } + + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + transferred = nativeStructuredClone(value, { transfer: [value] }); + } else switch (type) { + case 'ImageBitmap': + C = global.OffscreenCanvas; + if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING); + try { + canvas = new C(value.width, value.height); + context = canvas.getContext('bitmaprenderer'); + context.transferFromImageBitmap(value); + transferred = canvas.transferToImageBitmap(); + } catch (error) { /* empty */ } + break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING); + try { + transferred = value.clone(); + value.close(); + } catch (error) { /* empty */ } + break; + case 'MediaSourceHandle': + case 'MessagePort': + case 'OffscreenCanvas': + case 'ReadableStream': + case 'TransformStream': + case 'WritableStream': + throwUnpolyfillable(type, TRANSFERRING); + } + + if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR); + + mapSet(map, value, transferred); + } + + return buffers; +}; + +var detachBuffers = function (buffers) { + setIterate(buffers, function (buffer) { + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + nativeRestrictedStructuredClone(buffer, { transfer: [buffer] }); + } else if (isCallable(buffer.transfer)) { + buffer.transfer(); + } else if (detachTransferable) { + detachTransferable(buffer); + } else { + throwUnpolyfillable('ArrayBuffer', TRANSFERRING); + } + }); +}; + +// `structuredClone` method +// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone +$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, { + structuredClone: function structuredClone(value /* , { transfer } */) { + var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined; + var transfer = options ? options.transfer : undefined; + var map, buffers; + + if (transfer !== undefined) { + map = new Map(); + buffers = tryToTransfer(transfer, map); + } + + var clone = structuredCloneInternal(value, map); + + // since of an issue with cloning views of transferred buffers, we a forced to detach them later + // https://github.com/zloirock/core-js/issues/1265 + if (buffers) detachBuffers(buffers); + + return clone; + } +}); + + +/***/ }), +/* 545 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(546); +__webpack_require__(547); + + +/***/ }), +/* 546 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setInterval = schedulersFix(global.setInterval, true); + +// Bun / IE9- setInterval additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval +$({ global: true, bind: true, forced: global.setInterval !== setInterval }, { + setInterval: setInterval +}); + + +/***/ }), +/* 547 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setTimeout = schedulersFix(global.setTimeout, true); + +// Bun / IE9- setTimeout additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout +$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, { + setTimeout: setTimeout +}); + + +/***/ }), +/* 548 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(549); + + +/***/ }), +/* 549 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(428); +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var global = __webpack_require__(4); +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var anInstance = __webpack_require__(210); +var hasOwn = __webpack_require__(38); +var assign = __webpack_require__(305); +var arrayFrom = __webpack_require__(162); +var arraySlice = __webpack_require__(76); +var codeAt = (__webpack_require__(421).codeAt); +var toASCII = __webpack_require__(551); +var $toString = __webpack_require__(68); +var setToStringTag = __webpack_require__(82); +var validateArgumentsLength = __webpack_require__(342); +var URLSearchParamsModule = __webpack_require__(552); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var getInternalURLState = InternalStateModule.getterFor('URL'); +var URLSearchParams = URLSearchParamsModule.URLSearchParams; +var getInternalSearchParamsState = URLSearchParamsModule.getState; + +var NativeURL = global.URL; +var TypeError = global.TypeError; +var parseInt = global.parseInt; +var floor = Math.floor; +var pow = Math.pow; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var join = uncurryThis([].join); +var numberToString = uncurryThis(1.0.toString); +var pop = uncurryThis([].pop); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); +var toLowerCase = uncurryThis(''.toLowerCase); +var unshift = uncurryThis([].unshift); + +var INVALID_AUTHORITY = 'Invalid authority'; +var INVALID_SCHEME = 'Invalid scheme'; +var INVALID_HOST = 'Invalid host'; +var INVALID_PORT = 'Invalid port'; + +var ALPHA = /[a-z]/i; +// eslint-disable-next-line regexp/no-obscure-range -- safe +var ALPHANUMERIC = /[\d+-.a-z]/i; +var DIGIT = /\d/; +var HEX_START = /^0x/i; +var OCT = /^[0-7]+$/; +var DEC = /^\d+$/; +var HEX = /^[\da-f]+$/i; +/* eslint-disable regexp/no-control-character -- safe */ +var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/; +var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/; +var LEADING_C0_CONTROL_OR_SPACE = /^[\u0000-\u0020]+/; +var TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\u0000-\u0020])[\u0000-\u0020]+$/; +var TAB_AND_NEW_LINE = /[\t\n\r]/g; +/* eslint-enable regexp/no-control-character -- safe */ +var EOF; + +// https://url.spec.whatwg.org/#ipv4-number-parser +var parseIPv4 = function (input) { + var parts = split(input, '.'); + var partsLength, numbers, index, part, radix, number, ipv4; + if (parts.length && parts[parts.length - 1] === '') { + parts.length--; + } + partsLength = parts.length; + if (partsLength > 4) return input; + numbers = []; + for (index = 0; index < partsLength; index++) { + part = parts[index]; + if (part === '') return input; + radix = 10; + if (part.length > 1 && charAt(part, 0) === '0') { + radix = exec(HEX_START, part) ? 16 : 8; + part = stringSlice(part, radix === 8 ? 1 : 2); + } + if (part === '') { + number = 0; + } else { + if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input; + number = parseInt(part, radix); + } + push(numbers, number); + } + for (index = 0; index < partsLength; index++) { + number = numbers[index]; + if (index === partsLength - 1) { + if (number >= pow(256, 5 - partsLength)) return null; + } else if (number > 255) return null; + } + ipv4 = pop(numbers); + for (index = 0; index < numbers.length; index++) { + ipv4 += numbers[index] * pow(256, 3 - index); + } + return ipv4; +}; + +// https://url.spec.whatwg.org/#concept-ipv6-parser +// eslint-disable-next-line max-statements -- TODO +var parseIPv6 = function (input) { + var address = [0, 0, 0, 0, 0, 0, 0, 0]; + var pieceIndex = 0; + var compress = null; + var pointer = 0; + var value, length, numbersSeen, ipv4Piece, number, swaps, swap; + + var chr = function () { + return charAt(input, pointer); + }; + + if (chr() === ':') { + if (charAt(input, 1) !== ':') return; + pointer += 2; + pieceIndex++; + compress = pieceIndex; + } + while (chr()) { + if (pieceIndex === 8) return; + if (chr() === ':') { + if (compress !== null) return; + pointer++; + pieceIndex++; + compress = pieceIndex; + continue; + } + value = length = 0; + while (length < 4 && exec(HEX, chr())) { + value = value * 16 + parseInt(chr(), 16); + pointer++; + length++; + } + if (chr() === '.') { + if (length === 0) return; + pointer -= length; + if (pieceIndex > 6) return; + numbersSeen = 0; + while (chr()) { + ipv4Piece = null; + if (numbersSeen > 0) { + if (chr() === '.' && numbersSeen < 4) pointer++; + else return; + } + if (!exec(DIGIT, chr())) return; + while (exec(DIGIT, chr())) { + number = parseInt(chr(), 10); + if (ipv4Piece === null) ipv4Piece = number; + else if (ipv4Piece === 0) return; + else ipv4Piece = ipv4Piece * 10 + number; + if (ipv4Piece > 255) return; + pointer++; + } + address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; + numbersSeen++; + if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++; + } + if (numbersSeen !== 4) return; + break; + } else if (chr() === ':') { + pointer++; + if (!chr()) return; + } else if (chr()) return; + address[pieceIndex++] = value; + } + if (compress !== null) { + swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + swap = address[pieceIndex]; + address[pieceIndex--] = address[compress + swaps - 1]; + address[compress + --swaps] = swap; + } + } else if (pieceIndex !== 8) return; + return address; +}; + +var findLongestZeroSequence = function (ipv6) { + var maxIndex = null; + var maxLength = 1; + var currStart = null; + var currLength = 0; + var index = 0; + for (; index < 8; index++) { + if (ipv6[index] !== 0) { + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + currStart = null; + currLength = 0; + } else { + if (currStart === null) currStart = index; + ++currLength; + } + } + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + return maxIndex; +}; + +// https://url.spec.whatwg.org/#host-serializing +var serializeHost = function (host) { + var result, index, compress, ignore0; + // ipv4 + if (typeof host == 'number') { + result = []; + for (index = 0; index < 4; index++) { + unshift(result, host % 256); + host = floor(host / 256); + } return join(result, '.'); + // ipv6 + } else if (typeof host == 'object') { + result = ''; + compress = findLongestZeroSequence(host); + for (index = 0; index < 8; index++) { + if (ignore0 && host[index] === 0) continue; + if (ignore0) ignore0 = false; + if (compress === index) { + result += index ? ':' : '::'; + ignore0 = true; + } else { + result += numberToString(host[index], 16); + if (index < 7) result += ':'; + } + } + return '[' + result + ']'; + } return host; +}; + +var C0ControlPercentEncodeSet = {}; +var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { + ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 +}); +var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { + '#': 1, '?': 1, '{': 1, '}': 1 +}); +var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { + '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 +}); + +var percentEncode = function (chr, set) { + var code = codeAt(chr, 0); + return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr); +}; + +// https://url.spec.whatwg.org/#special-scheme +var specialSchemes = { + ftp: 21, + file: null, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +// https://url.spec.whatwg.org/#windows-drive-letter +var isWindowsDriveLetter = function (string, normalized) { + var second; + return string.length === 2 && exec(ALPHA, charAt(string, 0)) + && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|')); +}; + +// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter +var startsWithWindowsDriveLetter = function (string) { + var third; + return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && ( + string.length === 2 || + ((third = charAt(string, 2)) === '/' || third === '\\' || third === '?' || third === '#') + ); +}; + +// https://url.spec.whatwg.org/#single-dot-path-segment +var isSingleDot = function (segment) { + return segment === '.' || toLowerCase(segment) === '%2e'; +}; + +// https://url.spec.whatwg.org/#double-dot-path-segment +var isDoubleDot = function (segment) { + segment = toLowerCase(segment); + return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; +}; + +// States: +var SCHEME_START = {}; +var SCHEME = {}; +var NO_SCHEME = {}; +var SPECIAL_RELATIVE_OR_AUTHORITY = {}; +var PATH_OR_AUTHORITY = {}; +var RELATIVE = {}; +var RELATIVE_SLASH = {}; +var SPECIAL_AUTHORITY_SLASHES = {}; +var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; +var AUTHORITY = {}; +var HOST = {}; +var HOSTNAME = {}; +var PORT = {}; +var FILE = {}; +var FILE_SLASH = {}; +var FILE_HOST = {}; +var PATH_START = {}; +var PATH = {}; +var CANNOT_BE_A_BASE_URL_PATH = {}; +var QUERY = {}; +var FRAGMENT = {}; + +var URLState = function (url, isBase, base) { + var urlString = $toString(url); + var baseState, failure, searchParams; + if (isBase) { + failure = this.parse(urlString); + if (failure) throw new TypeError(failure); + this.searchParams = null; + } else { + if (base !== undefined) baseState = new URLState(base, true); + failure = this.parse(urlString, null, baseState); + if (failure) throw new TypeError(failure); + searchParams = getInternalSearchParamsState(new URLSearchParams()); + searchParams.bindURL(this); + this.searchParams = searchParams; + } +}; + +URLState.prototype = { + type: 'URL', + // https://url.spec.whatwg.org/#url-parsing + // eslint-disable-next-line max-statements -- TODO + parse: function (input, stateOverride, base) { + var url = this; + var state = stateOverride || SCHEME_START; + var pointer = 0; + var buffer = ''; + var seenAt = false; + var seenBracket = false; + var seenPasswordToken = false; + var codePoints, chr, bufferCodePoints, failure; + + input = $toString(input); + + if (!stateOverride) { + url.scheme = ''; + url.username = ''; + url.password = ''; + url.host = null; + url.port = null; + url.path = []; + url.query = null; + url.fragment = null; + url.cannotBeABaseURL = false; + input = replace(input, LEADING_C0_CONTROL_OR_SPACE, ''); + input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1'); + } + + input = replace(input, TAB_AND_NEW_LINE, ''); + + codePoints = arrayFrom(input); + + while (pointer <= codePoints.length) { + chr = codePoints[pointer]; + switch (state) { + case SCHEME_START: + if (chr && exec(ALPHA, chr)) { + buffer += toLowerCase(chr); + state = SCHEME; + } else if (!stateOverride) { + state = NO_SCHEME; + continue; + } else return INVALID_SCHEME; + break; + + case SCHEME: + if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) { + buffer += toLowerCase(chr); + } else if (chr === ':') { + if (stateOverride && ( + (url.isSpecial() !== hasOwn(specialSchemes, buffer)) || + (buffer === 'file' && (url.includesCredentials() || url.port !== null)) || + (url.scheme === 'file' && !url.host) + )) return; + url.scheme = buffer; + if (stateOverride) { + if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null; + return; + } + buffer = ''; + if (url.scheme === 'file') { + state = FILE; + } else if (url.isSpecial() && base && base.scheme === url.scheme) { + state = SPECIAL_RELATIVE_OR_AUTHORITY; + } else if (url.isSpecial()) { + state = SPECIAL_AUTHORITY_SLASHES; + } else if (codePoints[pointer + 1] === '/') { + state = PATH_OR_AUTHORITY; + pointer++; + } else { + url.cannotBeABaseURL = true; + push(url.path, ''); + state = CANNOT_BE_A_BASE_URL_PATH; + } + } else if (!stateOverride) { + buffer = ''; + state = NO_SCHEME; + pointer = 0; + continue; + } else return INVALID_SCHEME; + break; + + case NO_SCHEME: + if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME; + if (base.cannotBeABaseURL && chr === '#') { + url.scheme = base.scheme; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + url.cannotBeABaseURL = true; + state = FRAGMENT; + break; + } + state = base.scheme === 'file' ? FILE : RELATIVE; + continue; + + case SPECIAL_RELATIVE_OR_AUTHORITY: + if (chr === '/' && codePoints[pointer + 1] === '/') { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + pointer++; + } else { + state = RELATIVE; + continue; + } break; + + case PATH_OR_AUTHORITY: + if (chr === '/') { + state = AUTHORITY; + break; + } else { + state = PATH; + continue; + } + + case RELATIVE: + url.scheme = base.scheme; + if (chr === EOF) { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + } else if (chr === '/' || (chr === '\\' && url.isSpecial())) { + state = RELATIVE_SLASH; + } else if (chr === '?') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.path.length--; + state = PATH; + continue; + } break; + + case RELATIVE_SLASH: + if (url.isSpecial() && (chr === '/' || chr === '\\')) { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + } else if (chr === '/') { + state = AUTHORITY; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + state = PATH; + continue; + } break; + + case SPECIAL_AUTHORITY_SLASHES: + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue; + pointer++; + break; + + case SPECIAL_AUTHORITY_IGNORE_SLASHES: + if (chr !== '/' && chr !== '\\') { + state = AUTHORITY; + continue; + } break; + + case AUTHORITY: + if (chr === '@') { + if (seenAt) buffer = '%40' + buffer; + seenAt = true; + bufferCodePoints = arrayFrom(buffer); + for (var i = 0; i < bufferCodePoints.length; i++) { + var codePoint = bufferCodePoints[i]; + if (codePoint === ':' && !seenPasswordToken) { + seenPasswordToken = true; + continue; + } + var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); + if (seenPasswordToken) url.password += encodedCodePoints; + else url.username += encodedCodePoints; + } + buffer = ''; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (seenAt && buffer === '') return INVALID_AUTHORITY; + pointer -= arrayFrom(buffer).length + 1; + buffer = ''; + state = HOST; + } else buffer += chr; + break; + + case HOST: + case HOSTNAME: + if (stateOverride && url.scheme === 'file') { + state = FILE_HOST; + continue; + } else if (chr === ':' && !seenBracket) { + if (buffer === '') return INVALID_HOST; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PORT; + if (stateOverride === HOSTNAME) return; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (url.isSpecial() && buffer === '') return INVALID_HOST; + if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PATH_START; + if (stateOverride) return; + continue; + } else { + if (chr === '[') seenBracket = true; + else if (chr === ']') seenBracket = false; + buffer += chr; + } break; + + case PORT: + if (exec(DIGIT, chr)) { + buffer += chr; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) || + stateOverride + ) { + if (buffer !== '') { + var port = parseInt(buffer, 10); + if (port > 0xFFFF) return INVALID_PORT; + url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port; + buffer = ''; + } + if (stateOverride) return; + state = PATH_START; + continue; + } else return INVALID_PORT; + break; + + case FILE: + url.scheme = 'file'; + if (chr === '/' || chr === '\\') state = FILE_SLASH; + else if (base && base.scheme === 'file') { + switch (chr) { + case EOF: + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + break; + case '?': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + break; + case '#': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + break; + default: + if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + url.host = base.host; + url.path = arraySlice(base.path); + url.shortenPath(); + } + state = PATH; + continue; + } + } else { + state = PATH; + continue; + } break; + + case FILE_SLASH: + if (chr === '/' || chr === '\\') { + state = FILE_HOST; + break; + } + if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]); + else url.host = base.host; + } + state = PATH; + continue; + + case FILE_HOST: + if (chr === EOF || chr === '/' || chr === '\\' || chr === '?' || chr === '#') { + if (!stateOverride && isWindowsDriveLetter(buffer)) { + state = PATH; + } else if (buffer === '') { + url.host = ''; + if (stateOverride) return; + state = PATH_START; + } else { + failure = url.parseHost(buffer); + if (failure) return failure; + if (url.host === 'localhost') url.host = ''; + if (stateOverride) return; + buffer = ''; + state = PATH_START; + } continue; + } else buffer += chr; + break; + + case PATH_START: + if (url.isSpecial()) { + state = PATH; + if (chr !== '/' && chr !== '\\') continue; + } else if (!stateOverride && chr === '?') { + url.query = ''; + state = QUERY; + } else if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + state = PATH; + if (chr !== '/') continue; + } break; + + case PATH: + if ( + chr === EOF || chr === '/' || + (chr === '\\' && url.isSpecial()) || + (!stateOverride && (chr === '?' || chr === '#')) + ) { + if (isDoubleDot(buffer)) { + url.shortenPath(); + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else if (isSingleDot(buffer)) { + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else { + if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { + if (url.host) url.host = ''; + buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter + } + push(url.path, buffer); + } + buffer = ''; + if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) { + while (url.path.length > 1 && url.path[0] === '') { + shift(url.path); + } + } + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } + } else { + buffer += percentEncode(chr, pathPercentEncodeSet); + } break; + + case CANNOT_BE_A_BASE_URL_PATH: + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case QUERY: + if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + if (chr === "'" && url.isSpecial()) url.query += '%27'; + else if (chr === '#') url.query += '%23'; + else url.query += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case FRAGMENT: + if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet); + break; + } + + pointer++; + } + }, + // https://url.spec.whatwg.org/#host-parsing + parseHost: function (input) { + var result, codePoints, index; + if (charAt(input, 0) === '[') { + if (charAt(input, input.length - 1) !== ']') return INVALID_HOST; + result = parseIPv6(stringSlice(input, 1, -1)); + if (!result) return INVALID_HOST; + this.host = result; + // opaque host + } else if (!this.isSpecial()) { + if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST; + result = ''; + codePoints = arrayFrom(input); + for (index = 0; index < codePoints.length; index++) { + result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); + } + this.host = result; + } else { + input = toASCII(input); + if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST; + result = parseIPv4(input); + if (result === null) return INVALID_HOST; + this.host = result; + } + }, + // https://url.spec.whatwg.org/#cannot-have-a-username-password-port + cannotHaveUsernamePasswordPort: function () { + return !this.host || this.cannotBeABaseURL || this.scheme === 'file'; + }, + // https://url.spec.whatwg.org/#include-credentials + includesCredentials: function () { + return this.username !== '' || this.password !== ''; + }, + // https://url.spec.whatwg.org/#is-special + isSpecial: function () { + return hasOwn(specialSchemes, this.scheme); + }, + // https://url.spec.whatwg.org/#shorten-a-urls-path + shortenPath: function () { + var path = this.path; + var pathSize = path.length; + if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) { + path.length--; + } + }, + // https://url.spec.whatwg.org/#concept-url-serializer + serialize: function () { + var url = this; + var scheme = url.scheme; + var username = url.username; + var password = url.password; + var host = url.host; + var port = url.port; + var path = url.path; + var query = url.query; + var fragment = url.fragment; + var output = scheme + ':'; + if (host !== null) { + output += '//'; + if (url.includesCredentials()) { + output += username + (password ? ':' + password : '') + '@'; + } + output += serializeHost(host); + if (port !== null) output += ':' + port; + } else if (scheme === 'file') output += '//'; + output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + if (query !== null) output += '?' + query; + if (fragment !== null) output += '#' + fragment; + return output; + }, + // https://url.spec.whatwg.org/#dom-url-href + setHref: function (href) { + var failure = this.parse(href); + if (failure) throw new TypeError(failure); + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-origin + getOrigin: function () { + var scheme = this.scheme; + var port = this.port; + if (scheme === 'blob') try { + return new URLConstructor(scheme.path[0]).origin; + } catch (error) { + return 'null'; + } + if (scheme === 'file' || !this.isSpecial()) return 'null'; + return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : ''); + }, + // https://url.spec.whatwg.org/#dom-url-protocol + getProtocol: function () { + return this.scheme + ':'; + }, + setProtocol: function (protocol) { + this.parse($toString(protocol) + ':', SCHEME_START); + }, + // https://url.spec.whatwg.org/#dom-url-username + getUsername: function () { + return this.username; + }, + setUsername: function (username) { + var codePoints = arrayFrom($toString(username)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.username = ''; + for (var i = 0; i < codePoints.length; i++) { + this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-password + getPassword: function () { + return this.password; + }, + setPassword: function (password) { + var codePoints = arrayFrom($toString(password)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.password = ''; + for (var i = 0; i < codePoints.length; i++) { + this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-host + getHost: function () { + var host = this.host; + var port = this.port; + return host === null ? '' + : port === null ? serializeHost(host) + : serializeHost(host) + ':' + port; + }, + setHost: function (host) { + if (this.cannotBeABaseURL) return; + this.parse(host, HOST); + }, + // https://url.spec.whatwg.org/#dom-url-hostname + getHostname: function () { + var host = this.host; + return host === null ? '' : serializeHost(host); + }, + setHostname: function (hostname) { + if (this.cannotBeABaseURL) return; + this.parse(hostname, HOSTNAME); + }, + // https://url.spec.whatwg.org/#dom-url-port + getPort: function () { + var port = this.port; + return port === null ? '' : $toString(port); + }, + setPort: function (port) { + if (this.cannotHaveUsernamePasswordPort()) return; + port = $toString(port); + if (port === '') this.port = null; + else this.parse(port, PORT); + }, + // https://url.spec.whatwg.org/#dom-url-pathname + getPathname: function () { + var path = this.path; + return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + }, + setPathname: function (pathname) { + if (this.cannotBeABaseURL) return; + this.path = []; + this.parse(pathname, PATH_START); + }, + // https://url.spec.whatwg.org/#dom-url-search + getSearch: function () { + var query = this.query; + return query ? '?' + query : ''; + }, + setSearch: function (search) { + search = $toString(search); + if (search === '') { + this.query = null; + } else { + if (charAt(search, 0) === '?') search = stringSlice(search, 1); + this.query = ''; + this.parse(search, QUERY); + } + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-searchparams + getSearchParams: function () { + return this.searchParams.facade; + }, + // https://url.spec.whatwg.org/#dom-url-hash + getHash: function () { + var fragment = this.fragment; + return fragment ? '#' + fragment : ''; + }, + setHash: function (hash) { + hash = $toString(hash); + if (hash === '') { + this.fragment = null; + return; + } + if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1); + this.fragment = ''; + this.parse(hash, FRAGMENT); + }, + update: function () { + this.query = this.searchParams.serialize() || null; + } +}; + +// `URL` constructor +// https://url.spec.whatwg.org/#url-class +var URLConstructor = function URL(url /* , base */) { + var that = anInstance(this, URLPrototype); + var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined; + var state = setInternalState(that, new URLState(url, false, base)); + if (!DESCRIPTORS) { + that.href = state.serialize(); + that.origin = state.getOrigin(); + that.protocol = state.getProtocol(); + that.username = state.getUsername(); + that.password = state.getPassword(); + that.host = state.getHost(); + that.hostname = state.getHostname(); + that.port = state.getPort(); + that.pathname = state.getPathname(); + that.search = state.getSearch(); + that.searchParams = state.getSearchParams(); + that.hash = state.getHash(); + } +}; + +var URLPrototype = URLConstructor.prototype; + +var accessorDescriptor = function (getter, setter) { + return { + get: function () { + return getInternalURLState(this)[getter](); + }, + set: setter && function (value) { + return getInternalURLState(this)[setter](value); + }, + configurable: true, + enumerable: true + }; +}; + +if (DESCRIPTORS) { + // `URL.prototype.href` accessors pair + // https://url.spec.whatwg.org/#dom-url-href + defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref')); + // `URL.prototype.origin` getter + // https://url.spec.whatwg.org/#dom-url-origin + defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin')); + // `URL.prototype.protocol` accessors pair + // https://url.spec.whatwg.org/#dom-url-protocol + defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol')); + // `URL.prototype.username` accessors pair + // https://url.spec.whatwg.org/#dom-url-username + defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername')); + // `URL.prototype.password` accessors pair + // https://url.spec.whatwg.org/#dom-url-password + defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword')); + // `URL.prototype.host` accessors pair + // https://url.spec.whatwg.org/#dom-url-host + defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost')); + // `URL.prototype.hostname` accessors pair + // https://url.spec.whatwg.org/#dom-url-hostname + defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname')); + // `URL.prototype.port` accessors pair + // https://url.spec.whatwg.org/#dom-url-port + defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort')); + // `URL.prototype.pathname` accessors pair + // https://url.spec.whatwg.org/#dom-url-pathname + defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname')); + // `URL.prototype.search` accessors pair + // https://url.spec.whatwg.org/#dom-url-search + defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch')); + // `URL.prototype.searchParams` getter + // https://url.spec.whatwg.org/#dom-url-searchparams + defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams')); + // `URL.prototype.hash` accessors pair + // https://url.spec.whatwg.org/#dom-url-hash + defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash')); +} + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +defineBuiltIn(URLPrototype, 'toJSON', function toJSON() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +// `URL.prototype.toString` method +// https://url.spec.whatwg.org/#URL-stringification-behavior +defineBuiltIn(URLPrototype, 'toString', function toString() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +if (NativeURL) { + var nativeCreateObjectURL = NativeURL.createObjectURL; + var nativeRevokeObjectURL = NativeURL.revokeObjectURL; + // `URL.createObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL + if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL)); + // `URL.revokeObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL + if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL)); +} + +setToStringTag(URLConstructor, 'URL'); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { + URL: URLConstructor +}); + + +/***/ }), +/* 550 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = !fails(function () { + // eslint-disable-next-line unicorn/relative-url-style -- required for testing + var url = new URL('b?a=1&b=2&c=3', 'http://a'); + var params = url.searchParams; + var params2 = new URLSearchParams('a=1&a=2&b=3'); + var result = ''; + url.pathname = 'c%20d'; + params.forEach(function (value, key) { + params['delete']('b'); + result += key + value; + }); + params2['delete']('a', 2); + // `undefined` case is a Chromium 117 bug + // https://bugs.chromium.org/p/v8/issues/detail?id=14222 + params2['delete']('b', undefined); + return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b'))) + || (!params.size && (IS_PURE || !DESCRIPTORS)) + || !params.sort + || url.href !== 'http://a/c%20d?a=1&c=3' + || params.get('c') !== '3' + || String(new URLSearchParams('?a=1')) !== 'a=1' + || !params[ITERATOR] + // throws in Edge + || new URL('https://a@b').username !== 'a' + || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' + // not punycoded in Edge + || new URL('http://тест').host !== 'xn--e1aybc' + // not escaped in Chrome 62- + || new URL('http://a#б').hash !== '#%D0%B1' + // fails in Chrome 66- + || result !== 'a1c3' + // throws in Safari + || new URL('http://x', undefined).host !== 'x'; +}); + + +/***/ }), +/* 551 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js +var uncurryThis = __webpack_require__(14); + +var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 +var base = 36; +var tMin = 1; +var tMax = 26; +var skew = 38; +var damp = 700; +var initialBias = 72; +var initialN = 128; // 0x80 +var delimiter = '-'; // '\x2D' +var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars +var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators +var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; +var baseMinusTMin = base - tMin; + +var $RangeError = RangeError; +var exec = uncurryThis(regexSeparators.exec); +var floor = Math.floor; +var fromCharCode = String.fromCharCode; +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var split = uncurryThis(''.split); +var toLowerCase = uncurryThis(''.toLowerCase); + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + */ +var ucs2decode = function (string) { + var output = []; + var counter = 0; + var length = string.length; + while (counter < length) { + var value = charCodeAt(string, counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + var extra = charCodeAt(string, counter++); + if ((extra & 0xFC00) === 0xDC00) { // Low surrogate. + push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + push(output, value); + counter--; + } + } else { + push(output, value); + } + } + return output; +}; + +/** + * Converts a digit/integer into a basic code point. + */ +var digitToBasic = function (digit) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + */ +var adapt = function (delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + while (delta > baseMinusTMin * tMax >> 1) { + delta = floor(delta / baseMinusTMin); + k += base; + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + */ +var encode = function (input) { + var output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + var inputLength = input.length; + + // Initialize the state. + var n = initialN; + var delta = 0; + var bias = initialBias; + var i, currentValue; + + // Handle the basic code points. + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < 0x80) { + push(output, fromCharCode(currentValue)); + } + } + + var basicLength = output.length; // number of basic code points. + var handledCPCount = basicLength; // number of code points that have been handled; + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + push(output, delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + // All non-basic code points < n have been handled already. Find the next larger one: + var m = maxInt; + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow. + var handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + throw new $RangeError(OVERFLOW_ERROR); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < n && ++delta > maxInt) { + throw new $RangeError(OVERFLOW_ERROR); + } + if (currentValue === n) { + // Represent delta as a generalized variable-length integer. + var q = delta; + var k = base; + while (true) { + var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (q < t) break; + var qMinusT = q - t; + var baseMinusT = base - t; + push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT))); + q = floor(qMinusT / baseMinusT); + k += base; + } + + push(output, fromCharCode(digitToBasic(q))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength); + delta = 0; + handledCPCount++; + } + } + + delta++; + n++; + } + return join(output, ''); +}; + +module.exports = function (input) { + var encoded = []; + var labels = split(replace(toLowerCase(input), regexSeparators, '\u002E'), '.'); + var i, label; + for (i = 0; i < labels.length; i++) { + label = labels[i]; + push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label); + } + return join(encoded, '.'); +}; + + +/***/ }), +/* 552 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(168); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var setToStringTag = __webpack_require__(82); +var createIteratorConstructor = __webpack_require__(170); +var InternalStateModule = __webpack_require__(51); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var bind = __webpack_require__(84); +var classof = __webpack_require__(69); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var $toString = __webpack_require__(68); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var createIterResultObject = __webpack_require__(172); +var validateArgumentsLength = __webpack_require__(342); +var wellKnownSymbol = __webpack_require__(33); +var arraySort = __webpack_require__(188); + +var ITERATOR = wellKnownSymbol('iterator'); +var URL_SEARCH_PARAMS = 'URLSearchParams'; +var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); +var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); + +var nativeFetch = safeGetBuiltIn('fetch'); +var NativeRequest = safeGetBuiltIn('Request'); +var Headers = safeGetBuiltIn('Headers'); +var RequestPrototype = NativeRequest && NativeRequest.prototype; +var HeadersPrototype = Headers && Headers.prototype; +var RegExp = global.RegExp; +var TypeError = global.TypeError; +var decodeURIComponent = global.decodeURIComponent; +var encodeURIComponent = global.encodeURIComponent; +var charAt = uncurryThis(''.charAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var splice = uncurryThis([].splice); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); + +var plus = /\+/g; +var sequences = Array(4); + +var percentSequence = function (bytes) { + return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); +}; + +var percentDecode = function (sequence) { + try { + return decodeURIComponent(sequence); + } catch (error) { + return sequence; + } +}; + +var deserialize = function (it) { + var result = replace(it, plus, ' '); + var bytes = 4; + try { + return decodeURIComponent(result); + } catch (error) { + while (bytes) { + result = replace(result, percentSequence(bytes--), percentDecode); + } + return result; + } +}; + +var find = /[!'()~]|%20/g; + +var replacements = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+' +}; + +var replacer = function (match) { + return replacements[match]; +}; + +var serialize = function (it) { + return replace(encodeURIComponent(it), find, replacer); +}; + +var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { + setInternalState(this, { + type: URL_SEARCH_PARAMS_ITERATOR, + target: getInternalParamsState(params).entries, + index: 0, + kind: kind + }); +}, URL_SEARCH_PARAMS, function next() { + var state = getInternalIteratorState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + var entry = target[index]; + switch (state.kind) { + case 'keys': return createIterResultObject(entry.key, false); + case 'values': return createIterResultObject(entry.value, false); + } return createIterResultObject([entry.key, entry.value], false); +}, true); + +var URLSearchParamsState = function (init) { + this.entries = []; + this.url = null; + + if (init !== undefined) { + if (isObject(init)) this.parseObject(init); + else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init)); + } +}; + +URLSearchParamsState.prototype = { + type: URL_SEARCH_PARAMS, + bindURL: function (url) { + this.url = url; + this.update(); + }, + parseObject: function (object) { + var entries = this.entries; + var iteratorMethod = getIteratorMethod(object); + var iterator, next, step, entryIterator, entryNext, first, second; + + if (iteratorMethod) { + iterator = getIterator(object, iteratorMethod); + next = iterator.next; + while (!(step = call(next, iterator)).done) { + entryIterator = getIterator(anObject(step.value)); + entryNext = entryIterator.next; + if ( + (first = call(entryNext, entryIterator)).done || + (second = call(entryNext, entryIterator)).done || + !call(entryNext, entryIterator).done + ) throw new TypeError('Expected sequence with length 2'); + push(entries, { key: $toString(first.value), value: $toString(second.value) }); + } + } else for (var key in object) if (hasOwn(object, key)) { + push(entries, { key: key, value: $toString(object[key]) }); + } + }, + parseQuery: function (query) { + if (query) { + var entries = this.entries; + var attributes = split(query, '&'); + var index = 0; + var attribute, entry; + while (index < attributes.length) { + attribute = attributes[index++]; + if (attribute.length) { + entry = split(attribute, '='); + push(entries, { + key: deserialize(shift(entry)), + value: deserialize(join(entry, '=')) + }); + } + } + } + }, + serialize: function () { + var entries = this.entries; + var result = []; + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + push(result, serialize(entry.key) + '=' + serialize(entry.value)); + } return join(result, '&'); + }, + update: function () { + this.entries.length = 0; + this.parseQuery(this.url.query); + }, + updateURL: function () { + if (this.url) this.url.update(); + } +}; + +// `URLSearchParams` constructor +// https://url.spec.whatwg.org/#interface-urlsearchparams +var URLSearchParamsConstructor = function URLSearchParams(/* init */) { + anInstance(this, URLSearchParamsPrototype); + var init = arguments.length > 0 ? arguments[0] : undefined; + var state = setInternalState(this, new URLSearchParamsState(init)); + if (!DESCRIPTORS) this.size = state.entries.length; +}; + +var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; + +defineBuiltIns(URLSearchParamsPrototype, { + // `URLSearchParams.prototype.append` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-append + append: function append(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 2); + push(state.entries, { key: $toString(name), value: $toString(value) }); + if (!DESCRIPTORS) this.length++; + state.updateURL(); + }, + // `URLSearchParams.prototype.delete` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-delete + 'delete': function (name /* , value */) { + var state = getInternalParamsState(this); + var length = validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index]; + if (entry.key === key && (value === undefined || entry.value === value)) { + splice(entries, index, 1); + if (value !== undefined) break; + } else index++; + } + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.get` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-get + get: function get(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) return entries[index].value; + } + return null; + }, + // `URLSearchParams.prototype.getAll` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-getall + getAll: function getAll(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var result = []; + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) push(result, entries[index].value); + } + return result; + }, + // `URLSearchParams.prototype.has` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-has + has: function has(name /* , value */) { + var entries = getInternalParamsState(this).entries; + var length = validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index++]; + if (entry.key === key && (value === undefined || entry.value === value)) return true; + } + return false; + }, + // `URLSearchParams.prototype.set` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-set + set: function set(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var found = false; + var key = $toString(name); + var val = $toString(value); + var index = 0; + var entry; + for (; index < entries.length; index++) { + entry = entries[index]; + if (entry.key === key) { + if (found) splice(entries, index--, 1); + else { + found = true; + entry.value = val; + } + } + } + if (!found) push(entries, { key: key, value: val }); + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.sort` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-sort + sort: function sort() { + var state = getInternalParamsState(this); + arraySort(state.entries, function (a, b) { + return a.key > b.key ? 1 : -1; + }); + state.updateURL(); + }, + // `URLSearchParams.prototype.forEach` method + forEach: function forEach(callback /* , thisArg */) { + var entries = getInternalParamsState(this).entries; + var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined); + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + boundFunction(entry.value, entry.key, this); + } + }, + // `URLSearchParams.prototype.keys` method + keys: function keys() { + return new URLSearchParamsIterator(this, 'keys'); + }, + // `URLSearchParams.prototype.values` method + values: function values() { + return new URLSearchParamsIterator(this, 'values'); + }, + // `URLSearchParams.prototype.entries` method + entries: function entries() { + return new URLSearchParamsIterator(this, 'entries'); + } +}, { enumerable: true }); + +// `URLSearchParams.prototype[@@iterator]` method +defineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' }); + +// `URLSearchParams.prototype.toString` method +// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior +defineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() { + return getInternalParamsState(this).serialize(); +}, { enumerable: true }); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + return getInternalParamsState(this).entries.length; + }, + configurable: true, + enumerable: true +}); + +setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, { + URLSearchParams: URLSearchParamsConstructor +}); + +// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams` +if (!USE_NATIVE_URL && isCallable(Headers)) { + var headersHas = uncurryThis(HeadersPrototype.has); + var headersSet = uncurryThis(HeadersPrototype.set); + + var wrapRequestOptions = function (init) { + if (isObject(init)) { + var body = init.body; + var headers; + if (classof(body) === URL_SEARCH_PARAMS) { + headers = init.headers ? new Headers(init.headers) : new Headers(); + if (!headersHas(headers, 'content-type')) { + headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); + } + return create(init, { + body: createPropertyDescriptor(0, $toString(body)), + headers: createPropertyDescriptor(0, headers) + }); + } + } return init; + }; + + if (isCallable(nativeFetch)) { + $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, { + fetch: function fetch(input /* , init */) { + return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + } + }); + } + + if (isCallable(NativeRequest)) { + var RequestConstructor = function Request(input /* , init */) { + anInstance(this, RequestPrototype); + return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + }; + + RequestPrototype.constructor = RequestConstructor; + RequestConstructor.prototype = RequestPrototype; + + $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, { + Request: RequestConstructor + }); + } +} + +module.exports = { + URLSearchParams: URLSearchParamsConstructor, + getState: getInternalParamsState +}; + + +/***/ }), +/* 553 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// https://github.com/nodejs/node/issues/47505 +// https://github.com/denoland/deno/issues/18893 +var THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () { + URL.canParse(); +}); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9250 +var WRONG_ARITY = fails(function () { + return URL.canParse.length !== 1; +}); + +// `URL.canParse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, { + canParse: function canParse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return !!new URL(urlString, base); + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 554 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// `URL.parse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, { + parse: function parse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return new URL(urlString, base); + } catch (error) { + return null; + } + } +}); + + +/***/ }), +/* 555 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +$({ target: 'URL', proto: true, enumerable: true }, { + toJSON: function toJSON() { + return call(URL.prototype.toString, this); + } +}); + + +/***/ }), +/* 556 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(552); + + +/***/ }), +/* 557 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var append = uncurryThis(URLSearchParamsPrototype.append); +var $delete = uncurryThis(URLSearchParamsPrototype['delete']); +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); +var push = uncurryThis([].push); +var params = new $URLSearchParams('a=1&a=2&b=3'); + +params['delete']('a', 1); +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +params['delete']('b', undefined); + +if (params + '' !== 'a=2') { + defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $delete(this, name); + var entries = []; + forEach(this, function (v, k) { // also validates `this` + push(entries, { key: k, value: v }); + }); + validateArgumentsLength(length, 1); + var key = toString(name); + var value = toString($value); + var index = 0; + var dindex = 0; + var found = false; + var entriesLength = entries.length; + var entry; + while (index < entriesLength) { + entry = entries[index++]; + if (found || entry.key === key) { + found = true; + $delete(this, entry.key); + } else dindex++; + } + while (dindex < entriesLength) { + entry = entries[dindex++]; + if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value); + } + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 558 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var getAll = uncurryThis(URLSearchParamsPrototype.getAll); +var $has = uncurryThis(URLSearchParamsPrototype.has); +var params = new $URLSearchParams('a=1'); + +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +if (params.has('a', 2) || !params.has('a', undefined)) { + defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $has(this, name); + var values = getAll(this, name); // also validates `this` + validateArgumentsLength(length, 1); + var value = toString($value); + var index = 0; + while (index < values.length) { + if (values[index++] === value) return true; + } return false; + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 559 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var URLSearchParamsPrototype = URLSearchParams.prototype; +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) { + defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + var count = 0; + forEach(this, function () { count++; }); + return count; + }, + configurable: true, + enumerable: true + }); +} + + +/***/ }), +/* 560 */, +/* 561 */ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ Sparkline; } +}); + +;// CONCATENATED MODULE: ./src/config/classes.ts +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +const $COMMON = { + button: "bb-button", + chart: "bb-chart", + empty: "bb-empty", + main: "bb-main", + target: "bb-target", + EXPANDED: "_expanded_" +}; +const $ARC = { + arc: "bb-arc", + arcLabelLine: "bb-arc-label-line", + arcRange: "bb-arc-range", + arcs: "bb-arcs", + chartArc: "bb-chart-arc", + chartArcs: "bb-chart-arcs", + chartArcsBackground: "bb-chart-arcs-background", + chartArcsTitle: "bb-chart-arcs-title", + needle: "bb-needle" +}; +const $AREA = { + area: "bb-area", + areas: "bb-areas" +}; +const $AXIS = { + axis: "bb-axis", + axisX: "bb-axis-x", + axisXLabel: "bb-axis-x-label", + axisY: "bb-axis-y", + axisY2: "bb-axis-y2", + axisY2Label: "bb-axis-y2-label", + axisYLabel: "bb-axis-y-label", + axisXTooltip: "bb-axis-x-tooltip", + axisYTooltip: "bb-axis-y-tooltip", + axisY2Tooltip: "bb-axis-y2-tooltip" +}; +const $BAR = { + bar: "bb-bar", + bars: "bb-bars", + chartBar: "bb-chart-bar", + chartBars: "bb-chart-bars" +}; +const $CANDLESTICK = { + candlestick: "bb-candlestick", + candlesticks: "bb-candlesticks", + chartCandlestick: "bb-chart-candlestick", + chartCandlesticks: "bb-chart-candlesticks", + valueDown: "bb-value-down", + valueUp: "bb-value-up" +}; +const $CIRCLE = { + chartCircles: "bb-chart-circles", + circle: "bb-circle", + circles: "bb-circles" +}; +const $COLOR = { + colorPattern: "bb-color-pattern", + colorScale: "bb-colorscale" +}; +const $DRAG = { + dragarea: "bb-dragarea", + INCLUDED: "_included_" +}; +const $FUNNEL = { + funnel: "bb-funnel", + chartFunnel: "bb-chart-funnel", + chartFunnels: "bb-chart-funnels", + funnelBackground: "bb-funnel-background" +}; +const $GAUGE = { + chartArcsGaugeMax: "bb-chart-arcs-gauge-max", + chartArcsGaugeMin: "bb-chart-arcs-gauge-min", + chartArcsGaugeUnit: "bb-chart-arcs-gauge-unit", + chartArcsGaugeTitle: "bb-chart-arcs-gauge-title", + gaugeValue: "bb-gauge-value" +}; +const $LEGEND = { + legend: "bb-legend", + legendBackground: "bb-legend-background", + legendItem: "bb-legend-item", + legendItemEvent: "bb-legend-item-event", + legendItemHidden: "bb-legend-item-hidden", + legendItemPoint: "bb-legend-item-point", + legendItemTile: "bb-legend-item-tile" +}; +const $LINE = { + chartLine: "bb-chart-line", + chartLines: "bb-chart-lines", + line: "bb-line", + lines: "bb-lines" +}; +const $EVENT = { + eventRect: "bb-event-rect", + eventRects: "bb-event-rects", + eventRectsMultiple: "bb-event-rects-multiple", + eventRectsSingle: "bb-event-rects-single" +}; +const $FOCUS = { + focused: "bb-focused", + defocused: "bb-defocused", + legendItemFocused: "bb-legend-item-focused", + xgridFocus: "bb-xgrid-focus", + ygridFocus: "bb-ygrid-focus" +}; +const $GRID = { + grid: "bb-grid", + gridLines: "bb-grid-lines", + xgrid: "bb-xgrid", + xgridLine: "bb-xgrid-line", + xgridLines: "bb-xgrid-lines", + xgrids: "bb-xgrids", + ygrid: "bb-ygrid", + ygridLine: "bb-ygrid-line", + ygridLines: "bb-ygrid-lines", + ygrids: "bb-ygrids" +}; +const $LEVEL = { + level: "bb-level", + levels: "bb-levels" +}; +const $RADAR = { + chartRadar: "bb-chart-radar", + chartRadars: "bb-chart-radars" +}; +const $REGION = { + region: "bb-region", + regions: "bb-regions" +}; +const $SELECT = { + selectedCircle: "bb-selected-circle", + selectedCircles: "bb-selected-circles", + SELECTED: "_selected_" +}; +const $SHAPE = { + shape: "bb-shape", + shapes: "bb-shapes" +}; +const $SUBCHART = { + brush: "bb-brush", + subchart: "bb-subchart" +}; +const $TEXT = { + chartText: "bb-chart-text", + chartTexts: "bb-chart-texts", + text: "bb-text", + texts: "bb-texts", + title: "bb-title", + TextOverlapping: "text-overlapping" +}; +const $TOOLTIP = { + tooltip: "bb-tooltip", + tooltipContainer: "bb-tooltip-container", + tooltipName: "bb-tooltip-name" +}; +const $TREEMAP = { + treemap: "bb-treemap", + chartTreemap: "bb-chart-treemap", + chartTreemaps: "bb-chart-treemaps" +}; +const $ZOOM = { + buttonZoomReset: "bb-zoom-reset", + zoomBrush: "bb-zoom-brush" +}; +/* harmony default export */ var classes = (__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, $COMMON), $ARC), $AREA), $AXIS), $BAR), $CANDLESTICK), $CIRCLE), $COLOR), $DRAG), $GAUGE), $LEGEND), $LINE), $EVENT), $FOCUS), $FUNNEL), $GRID), $RADAR), $REGION), $SELECT), $SHAPE), $SUBCHART), $TEXT), $TOOLTIP), $TREEMAP), $ZOOM)); + +;// CONCATENATED MODULE: ./node_modules/d3-dispatch/src/dispatch.js +var noop = { value: () => { +} }; +function dispatch() { + for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t)) + throw new Error("illegal type: " + t); + _[t] = []; + } + return new Dispatch(_); +} +function Dispatch(_) { + this._ = _; +} +function parseTypenames(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + return { type: t, name }; + }); +} +Dispatch.prototype = dispatch.prototype = { + constructor: Dispatch, + on: function(typename, callback) { + var _ = this._, T = parseTypenames(typename + "", _), t, i = -1, n = T.length; + if (arguments.length < 2) { + while (++i < n) + if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) + return t; + return; + } + if (callback != null && typeof callback !== "function") + throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) + _[t] = set(_[t], typename.name, callback); + else if (callback == null) + for (t in _) + _[t] = set(_[t], typename.name, null); + } + return this; + }, + copy: function() { + var copy = {}, _ = this._; + for (var t in _) + copy[t] = _[t].slice(); + return new Dispatch(copy); + }, + call: function(type, that) { + if ((n = arguments.length - 2) > 0) + for (var args = new Array(n), i = 0, n, t; i < n; ++i) + args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type)) + throw new Error("unknown type: " + type); + for (t = this._[type], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + }, + apply: function(type, that, args) { + if (!this._.hasOwnProperty(type)) + throw new Error("unknown type: " + type); + for (var t = this._[type], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + } +}; +function get(type, name) { + for (var i = 0, n = type.length, c; i < n; ++i) { + if ((c = type[i]).name === name) { + return c.value; + } + } +} +function set(type, name, callback) { + for (var i = 0, n = type.length; i < n; ++i) { + if (type[i].name === name) { + type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1)); + break; + } + } + if (callback != null) + type.push({ name, value: callback }); + return type; +} +/* harmony default export */ var src_dispatch = (dispatch); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selector.js +function none() { +} +/* harmony default export */ function selector(selector) { + return selector == null ? none : function() { + return this.querySelector(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/select.js + + +/* harmony default export */ function selection_select(select) { + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/array.js +function array(x) { + return x == null ? [] : Array.isArray(x) ? x : Array.from(x); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selectorAll.js +function empty() { + return []; +} +/* harmony default export */ function selectorAll(selector) { + return selector == null ? empty : function() { + return this.querySelectorAll(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectAll.js + + + +function arrayAll(select) { + return function() { + return array(select.apply(this, arguments)); + }; +} +/* harmony default export */ function selectAll(select) { + if (typeof select === "function") + select = arrayAll(select); + else + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + subgroups.push(select.call(node, node.__data__, i, group)); + parents.push(node); + } + } + } + return new Selection(subgroups, parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/matcher.js +/* harmony default export */ function matcher(selector) { + return function() { + return this.matches(selector); + }; +} +function childMatcher(selector) { + return function(node) { + return node.matches(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChild.js + +var find = Array.prototype.find; +function childFind(match) { + return function() { + return find.call(this.children, match); + }; +} +function childFirst() { + return this.firstElementChild; +} +/* harmony default export */ function selectChild(match) { + return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChildren.js + +var filter = Array.prototype.filter; +function children() { + return Array.from(this.children); +} +function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; +} +/* harmony default export */ function selectChildren(match) { + return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/filter.js + + +/* harmony default export */ function selection_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sparse.js +/* harmony default export */ function sparse(update) { + return new Array(update.length); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/enter.js + + +/* harmony default export */ function enter() { + return new Selection(this._enter || this._groups.map(sparse), this._parents); +} +function EnterNode(parent, datum) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum; +} +EnterNode.prototype = { + constructor: EnterNode, + appendChild: function(child) { + return this._parent.insertBefore(child, this._next); + }, + insertBefore: function(child, next) { + return this._parent.insertBefore(child, next); + }, + querySelector: function(selector) { + return this._parent.querySelector(selector); + }, + querySelectorAll: function(selector) { + return this._parent.querySelectorAll(selector); + } +}; + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/constant.js +/* harmony default export */ function constant(x) { + return function() { + return x; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/data.js + + + +function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, node, groupLength = group.length, dataLength = data.length; + for (; i < dataLength; ++i) { + if (node = group[i]) { + node.__data__ = data[i]; + update[i] = node; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (; i < groupLength; ++i) { + if (node = group[i]) { + exit[i] = node; + } + } +} +function bindKey(parent, group, enter, update, exit, data, key) { + var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue; + for (i = 0; i < groupLength; ++i) { + if (node = group[i]) { + keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + } + } + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node = nodeByKeyValue.get(keyValue)) { + update[i] = node; + node.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (i = 0; i < groupLength; ++i) { + if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) { + exit[i] = node; + } + } +} +function datum(node) { + return node.__data__; +} +/* harmony default export */ function data(value, key) { + if (!arguments.length) + return Array.from(this, datum); + var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups; + if (typeof value !== "function") + value = constant(value); + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength); + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) + i1 = i0 + 1; + while (!(next = updateGroup[i1]) && ++i1 < dataLength) + ; + previous._next = next || null; + } + } + } + update = new Selection(update, parents); + update._enter = enter; + update._exit = exit; + return update; +} +function arraylike(data) { + return typeof data === "object" && "length" in data ? data : Array.from(data); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/exit.js + + +/* harmony default export */ function exit() { + return new Selection(this._exit || this._groups.map(sparse), this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/join.js +/* harmony default export */ function join(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + if (typeof onenter === "function") { + enter = onenter(enter); + if (enter) + enter = enter.selection(); + } else { + enter = enter.append(onenter + ""); + } + if (onupdate != null) { + update = onupdate(update); + if (update) + update = update.selection(); + } + if (onexit == null) + exit.remove(); + else + onexit(exit); + return enter && update ? enter.merge(update).order() : update; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/merge.js + +/* harmony default export */ function merge(context) { + var selection = context.selection ? context.selection() : context; + for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Selection(merges, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/order.js +/* harmony default export */ function order() { + for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) { + for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && node.compareDocumentPosition(next) ^ 4) + next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sort.js + +/* harmony default export */ function sort(compare) { + if (!compare) + compare = ascending; + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group[i]) { + sortgroup[i] = node; + } + } + sortgroup.sort(compareNode); + } + return new Selection(sortgroups, this._parents).order(); +} +function ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/call.js +/* harmony default export */ function call() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/nodes.js +/* harmony default export */ function nodes() { + return Array.from(this); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/node.js +/* harmony default export */ function node() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node = group[i]; + if (node) + return node; + } + } + return null; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/size.js +/* harmony default export */ function size() { + let size = 0; + for (const node of this) + ++size; + return size; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/empty.js +/* harmony default export */ function selection_empty() { + return !this.node(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/each.js +/* harmony default export */ function each(callback) { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + callback.call(node, node.__data__, i, group); + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespaces.js +var xhtml = "http://www.w3.org/1999/xhtml"; +/* harmony default export */ var namespaces = ({ + svg: "http://www.w3.org/2000/svg", + xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespace.js + +/* harmony default export */ function namespace(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") + name = name.slice(i + 1); + return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name } : name; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/attr.js + +function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attrConstant(name, value) { + return function() { + this.setAttribute(name, value); + }; +} +function attrConstantNS(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; +} +function attrFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttribute(name); + else + this.setAttribute(name, v); + }; +} +function attrFunctionNS(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttributeNS(fullname.space, fullname.local); + else + this.setAttributeNS(fullname.space, fullname.local, v); + }; +} +/* harmony default export */ function attr(name, value) { + var fullname = namespace(name); + if (arguments.length < 2) { + var node = this.node(); + return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname); + } + return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === "function" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/window.js +/* harmony default export */ function src_window(node) { + return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/style.js + +function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function styleConstant(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; +} +function styleFunction(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.style.removeProperty(name); + else + this.style.setProperty(name, v, priority); + }; +} +/* harmony default export */ function style(name, value, priority) { + return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name); +} +function styleValue(node, name) { + return node.style.getPropertyValue(name) || src_window(node).getComputedStyle(node, null).getPropertyValue(name); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/property.js +function propertyRemove(name) { + return function() { + delete this[name]; + }; +} +function propertyConstant(name, value) { + return function() { + this[name] = value; + }; +} +function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + delete this[name]; + else + this[name] = v; + }; +} +/* harmony default export */ function property(name, value) { + return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/classed.js +function classArray(string) { + return string.trim().split(/^|\s+/); +} +function classList(node) { + return node.classList || new ClassList(node); +} +function ClassList(node) { + this._node = node; + this._names = classArray(node.getAttribute("class") || ""); +} +ClassList.prototype = { + add: function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + remove: function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + contains: function(name) { + return this._names.indexOf(name) >= 0; + } +}; +function classedAdd(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.add(names[i]); +} +function classedRemove(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.remove(names[i]); +} +function classedTrue(names) { + return function() { + classedAdd(this, names); + }; +} +function classedFalse(names) { + return function() { + classedRemove(this, names); + }; +} +function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; +} +/* harmony default export */ function classed(name, value) { + var names = classArray(name + ""); + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) + if (!list.contains(names[i])) + return false; + return true; + } + return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/text.js +function textRemove() { + this.textContent = ""; +} +function textConstant(value) { + return function() { + this.textContent = value; + }; +} +function textFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; +} +/* harmony default export */ function selection_text(value) { + return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction : textConstant)(value)) : this.node().textContent; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/html.js +function htmlRemove() { + this.innerHTML = ""; +} +function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; +} +function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; +} +/* harmony default export */ function html(value) { + return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/raise.js +function raise() { + if (this.nextSibling) + this.parentNode.appendChild(this); +} +/* harmony default export */ function selection_raise() { + return this.each(raise); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/lower.js +function lower() { + if (this.previousSibling) + this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +/* harmony default export */ function selection_lower() { + return this.each(lower); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/creator.js + + +function creatorInherit(name) { + return function() { + var document = this.ownerDocument, uri = this.namespaceURI; + return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name); + }; +} +function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; +} +/* harmony default export */ function creator(name) { + var fullname = namespace(name); + return (fullname.local ? creatorFixed : creatorInherit)(fullname); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/append.js + +/* harmony default export */ function append(name) { + var create = typeof name === "function" ? name : creator(name); + return this.select(function() { + return this.appendChild(create.apply(this, arguments)); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/insert.js + + +function constantNull() { + return null; +} +/* harmony default export */ function insert(name, before) { + var create = typeof name === "function" ? name : creator(name), select = before == null ? constantNull : typeof before === "function" ? before : selector(before); + return this.select(function() { + return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/remove.js +function remove() { + var parent = this.parentNode; + if (parent) + parent.removeChild(this); +} +/* harmony default export */ function selection_remove() { + return this.each(remove); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/clone.js +function selection_cloneShallow() { + var clone = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +function selection_cloneDeep() { + var clone = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +/* harmony default export */ function clone(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/datum.js +/* harmony default export */ function selection_datum(value) { + return arguments.length ? this.property("__data__", value) : this.node().__data__; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/on.js +function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; +} +function on_parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + return { type: t, name }; + }); +} +function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) + return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) + on.length = i; + else + delete this.__on; + }; +} +function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) + for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = { type: typename.type, name: typename.name, value, listener, options }; + if (!on) + this.__on = [o]; + else + on.push(o); + }; +} +/* harmony default export */ function on(typename, value, options) { + var typenames = on_parseTypenames(typename + ""), i, n = typenames.length, t; + if (arguments.length < 2) { + var on = this.node().__on; + if (on) + for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) + this.each(on(typenames[i], value, options)); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/dispatch.js + +function dispatchEvent(node, type, params) { + var window = src_window(node), event = window.CustomEvent; + if (typeof event === "function") { + event = new event(type, params); + } else { + event = window.document.createEvent("Event"); + if (params) + event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; + else + event.initEvent(type, false, false); + } + node.dispatchEvent(event); +} +function dispatchConstant(type, params) { + return function() { + return dispatchEvent(this, type, params); + }; +} +function dispatchFunction(type, params) { + return function() { + return dispatchEvent(this, type, params.apply(this, arguments)); + }; +} +/* harmony default export */ function selection_dispatch(type, params) { + return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type, params)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/iterator.js +/* harmony default export */ function* iterator() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + yield node; + } + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/index.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var root = [null]; +function Selection(groups, parents) { + this._groups = groups; + this._parents = parents; +} +function selection() { + return new Selection([[document.documentElement]], root); +} +function selection_selection() { + return this; +} +Selection.prototype = selection.prototype = { + constructor: Selection, + select: selection_select, + selectAll: selectAll, + selectChild: selectChild, + selectChildren: selectChildren, + filter: selection_filter, + data: data, + enter: enter, + exit: exit, + join: join, + merge: merge, + selection: selection_selection, + order: order, + sort: sort, + call: call, + nodes: nodes, + node: node, + size: size, + empty: selection_empty, + each: each, + attr: attr, + style: style, + property: property, + classed: classed, + text: selection_text, + html: html, + raise: selection_raise, + lower: selection_lower, + append: append, + insert: insert, + remove: selection_remove, + clone: clone, + datum: selection_datum, + on: on, + dispatch: selection_dispatch, + [Symbol.iterator]: iterator +}; +/* harmony default export */ var src_selection = (selection); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/select.js + +/* harmony default export */ function src_select(selector) { + return typeof selector === "string" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root); +} + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/noevent.js +const nonpassive = { passive: false }; +const nonpassivecapture = { capture: true, passive: false }; +function nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/nodrag.js + + +/* harmony default export */ function nodrag(view) { + var root = view.document.documentElement, selection = src_select(view).on("dragstart.drag", noevent, nonpassivecapture); + if ("onselectstart" in root) { + selection.on("selectstart.drag", noevent, nonpassivecapture); + } else { + root.__noselect = root.style.MozUserSelect; + root.style.MozUserSelect = "none"; + } +} +function yesdrag(view, noclick) { + var root = view.document.documentElement, selection = src_select(view).on("dragstart.drag", null); + if (noclick) { + selection.on("click.drag", noevent, nonpassivecapture); + setTimeout(function() { + selection.on("click.drag", null); + }, 0); + } + if ("onselectstart" in root) { + selection.on("selectstart.drag", null); + } else { + root.style.MozUserSelect = root.__noselect; + delete root.__noselect; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-color/src/define.js +/* harmony default export */ function src_define(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; +} +function extend(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) + prototype[key] = definition[key]; + return prototype; +} + +;// CONCATENATED MODULE: ./node_modules/d3-color/src/color.js + +function Color() { +} +var darker = 0.7; +var brighter = 1 / darker; +var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); +var named = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 +}; +src_define(Color, color, { + copy(channels) { + return Object.assign(new this.constructor(), this, channels); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: color_formatHex, + // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHex8: color_formatHex8, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb +}); +function color_formatHex() { + return this.rgb().formatHex(); +} +function color_formatHex8() { + return this.rgb().formatHex8(); +} +function color_formatHsl() { + return hslConvert(this).formatHsl(); +} +function color_formatRgb() { + return this.rgb().formatRgb(); +} +function color(format) { + var m, l; + format = (format + "").trim().toLowerCase(); + return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null; +} +function rgbn(n) { + return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1); +} +function rgba(r, g, b, a) { + if (a <= 0) + r = g = b = NaN; + return new Rgb(r, g, b, a); +} +function rgbConvert(o) { + if (!(o instanceof Color)) + o = color(o); + if (!o) + return new Rgb(); + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); +} +function color_rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); +} +function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; +} +src_define(Rgb, color_rgb, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity)); + }, + displayable() { + return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1); + }, + hex: rgb_formatHex, + // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb +})); +function rgb_formatHex() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; +} +function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} +function rgb_formatRgb() { + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; +} +function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); +} +function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); +} +function hex(value) { + value = clampi(value); + return (value < 16 ? "0" : "") + value.toString(16); +} +function hsla(h, s, l, a) { + if (a <= 0) + h = s = l = NaN; + else if (l <= 0 || l >= 1) + h = s = NaN; + else if (s <= 0) + h = NaN; + return new Hsl(h, s, l, a); +} +function hslConvert(o) { + if (o instanceof Hsl) + return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color)) + o = color(o); + if (!o) + return new Hsl(); + if (o instanceof Hsl) + return o; + o = o.rgb(); + var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2; + if (s) { + if (r === max) + h = (g - b) / s + (g < b) * 6; + else if (g === max) + h = (b - r) / s + 2; + else + h = (r - g) / s + 4; + s /= l < 0.5 ? max + min : 2 - max - min; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; + } + return new Hsl(h, s, l, o.opacity); +} +function hsl(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); +} +function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} +src_define(Hsl, hsl, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb() { + var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + this.opacity + ); + }, + clamp() { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity)); + }, + displayable() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1); + }, + formatHsl() { + const a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; + } +})); +function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; +} +function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); +} +function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basis.js +function basis(t1, v0, v1, v2, v3) { + var t2 = t1 * t1, t3 = t2 * t1; + return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6; +} +/* harmony default export */ function src_basis(values) { + var n = values.length - 1; + return function(t) { + var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basisClosed.js + +/* harmony default export */ function basisClosed(values) { + var n = values.length; + return function(t) { + var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n]; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/constant.js +/* harmony default export */ var src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/color.js + +function linear(a, d) { + return function(t) { + return a + t * d; + }; +} +function exponential(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; +} +function hue(a, b) { + var d = b - a; + return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : src_constant(isNaN(a) ? b : a); +} +function gamma(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential(a, b, y) : src_constant(isNaN(a) ? b : a); + }; +} +function nogamma(a, b) { + var d = b - a; + return d ? linear(a, d) : src_constant(isNaN(a) ? b : a); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/rgb.js + + + + +/* harmony default export */ var rgb = ((function rgbGamma(y) { + var color = gamma(y); + function rgb(start, end) { + var r = color((start = color_rgb(start)).r, (end = color_rgb(end)).r), g = color(start.g, end.g), b = color(start.b, end.b), opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.r = r(t); + start.g = g(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; + } + rgb.gamma = rgbGamma; + return rgb; +})(1)); +function rgbSpline(spline) { + return function(colors) { + var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color; + for (i = 0; i < n; ++i) { + color = color_rgb(colors[i]); + r[i] = color.r || 0; + g[i] = color.g || 0; + b[i] = color.b || 0; + } + r = spline(r); + g = spline(g); + b = spline(b); + color.opacity = 1; + return function(t) { + color.r = r(t); + color.g = g(t); + color.b = b(t); + return color + ""; + }; + }; +} +var rgbBasis = rgbSpline(src_basis); +var rgbBasisClosed = rgbSpline(basisClosed); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/numberArray.js +/* harmony default export */ function numberArray(a, b) { + if (!b) + b = []; + var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i; + return function(t) { + for (i = 0; i < n; ++i) + c[i] = a[i] * (1 - t) + b[i] * t; + return c; + }; +} +function isNumberArray(x) { + return ArrayBuffer.isView(x) && !(x instanceof DataView); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/array.js + + +/* harmony default export */ function src_array(a, b) { + return (isNumberArray(b) ? numberArray : genericArray)(a, b); +} +function genericArray(a, b) { + var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i; + for (i = 0; i < na; ++i) + x[i] = value(a[i], b[i]); + for (; i < nb; ++i) + c[i] = b[i]; + return function(t) { + for (i = 0; i < na; ++i) + c[i] = x[i](t); + return c; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/date.js +/* harmony default export */ function date(a, b) { + var d = /* @__PURE__ */ new Date(); + return a = +a, b = +b, function(t) { + return d.setTime(a * (1 - t) + b * t), d; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/number.js +/* harmony default export */ function number(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/object.js + +/* harmony default export */ function object(a, b) { + var i = {}, c = {}, k; + if (a === null || typeof a !== "object") + a = {}; + if (b === null || typeof b !== "object") + b = {}; + for (k in b) { + if (k in a) { + i[k] = value(a[k], b[k]); + } else { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) + c[k] = i[k](t); + return c; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/string.js + +var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g"); +function zero(b) { + return function() { + return b; + }; +} +function one(b) { + return function(t) { + return b(t) + ""; + }; +} +/* harmony default export */ function string(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = reA.exec(a)) && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.slice(bi, bs); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) + s[i] += bm; + else + s[++i] = bm; + } else { + s[++i] = null; + q.push({ i, x: number(am, bm) }); + } + bi = reB.lastIndex; + } + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) { + for (var i2 = 0, o; i2 < b; ++i2) + s[(o = q[i2]).i] = o.x(t); + return s.join(""); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/value.js + + + + + + + + + +/* harmony default export */ function value(a, b) { + var t = typeof b, c; + return b == null || t === "boolean" ? src_constant(b) : (t === "number" ? number : t === "string" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : number)(a, b); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/sourceEvent.js +/* harmony default export */ function sourceEvent(event) { + let sourceEvent; + while (sourceEvent = event.sourceEvent) + event = sourceEvent; + return event; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/pointer.js + +/* harmony default export */ function src_pointer(event, node) { + event = sourceEvent(event); + if (node === void 0) + node = event.currentTarget; + if (node) { + var svg = node.ownerSVGElement || node; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + point.x = event.clientX, point.y = event.clientY; + point = point.matrixTransform(node.getScreenCTM().inverse()); + return [point.x, point.y]; + } + if (node.getBoundingClientRect) { + var rect = node.getBoundingClientRect(); + return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; + } + } + return [event.pageX, event.pageY]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timer.js +var timer_frame = 0, timeout = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { + setTimeout(f, 17); +}; +function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); +} +function clearNow() { + clockNow = 0; +} +function Timer() { + this._call = this._time = this._next = null; +} +Timer.prototype = timer.prototype = { + constructor: Timer, + restart: function(callback, delay, time) { + if (typeof callback !== "function") + throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) + taskTail._next = this; + else + taskHead = this; + taskTail = this; + } + this._call = callback; + this._time = time; + sleep(); + }, + stop: function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); + } + } +}; +function timer(callback, delay, time) { + var t = new Timer(); + t.restart(callback, delay, time); + return t; +} +function timerFlush() { + now(); + ++timer_frame; + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) + t._call.call(void 0, e); + t = t._next; + } + --timer_frame; +} +function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + timer_frame = timeout = 0; + try { + timerFlush(); + } finally { + timer_frame = 0; + nap(); + clockNow = 0; + } +} +function poke() { + var now2 = clock.now(), delay = now2 - clockLast; + if (delay > pokeDelay) + clockSkew -= delay, clockLast = now2; +} +function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) + time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } + } + taskTail = t0; + sleep(time); +} +function sleep(time) { + if (timer_frame) + return; + if (timeout) + timeout = clearTimeout(timeout); + var delay = time - clockNow; + if (delay > 24) { + if (time < Infinity) + timeout = setTimeout(wake, time - clock.now() - clockSkew); + if (interval) + interval = clearInterval(interval); + } else { + if (!interval) + clockLast = clock.now(), interval = setInterval(poke, pokeDelay); + timer_frame = 1, setFrame(wake); + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timeout.js + +/* harmony default export */ function src_timeout(callback, delay, time) { + var t = new Timer(); + delay = delay == null ? 0 : +delay; + t.restart((elapsed) => { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/schedule.js + + +var emptyOn = src_dispatch("start", "end", "cancel", "interrupt"); +var emptyTween = []; +var CREATED = 0; +var SCHEDULED = 1; +var STARTING = 2; +var STARTED = 3; +var RUNNING = 4; +var ENDING = 5; +var ENDED = 6; +/* harmony default export */ function schedule(node, name, id, index, group, timing) { + var schedules = node.__transition; + if (!schedules) + node.__transition = {}; + else if (id in schedules) + return; + create(node, id, { + name, + index, + // For context during callback. + group, + // For context during callback. + on: emptyOn, + tween: emptyTween, + time: timing.time, + delay: timing.delay, + duration: timing.duration, + ease: timing.ease, + timer: null, + state: CREATED + }); +} +function init(node, id) { + var schedule = schedule_get(node, id); + if (schedule.state > CREATED) + throw new Error("too late; already scheduled"); + return schedule; +} +function schedule_set(node, id) { + var schedule = schedule_get(node, id); + if (schedule.state > STARTED) + throw new Error("too late; already running"); + return schedule; +} +function schedule_get(node, id) { + var schedule = node.__transition; + if (!schedule || !(schedule = schedule[id])) + throw new Error("transition not found"); + return schedule; +} +function create(node, id, self) { + var schedules = node.__transition, tween; + schedules[id] = self; + self.timer = timer(schedule, 0, self.time); + function schedule(elapsed) { + self.state = SCHEDULED; + self.timer.restart(start, self.delay, self.time); + if (self.delay <= elapsed) + start(elapsed - self.delay); + } + function start(elapsed) { + var i, j, n, o; + if (self.state !== SCHEDULED) + return stop(); + for (i in schedules) { + o = schedules[i]; + if (o.name !== self.name) + continue; + if (o.state === STARTED) + return src_timeout(start); + if (o.state === RUNNING) { + o.state = ENDED; + o.timer.stop(); + o.on.call("interrupt", node, node.__data__, o.index, o.group); + delete schedules[i]; + } else if (+i < id) { + o.state = ENDED; + o.timer.stop(); + o.on.call("cancel", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + } + src_timeout(function() { + if (self.state === STARTED) { + self.state = RUNNING; + self.timer.restart(tick, self.delay, self.time); + tick(elapsed); + } + }); + self.state = STARTING; + self.on.call("start", node, node.__data__, self.index, self.group); + if (self.state !== STARTING) + return; + self.state = STARTED; + tween = new Array(n = self.tween.length); + for (i = 0, j = -1; i < n; ++i) { + if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { + tween[++j] = o; + } + } + tween.length = j + 1; + } + function tick(elapsed) { + var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length; + while (++i < n) { + tween[i].call(node, t); + } + if (self.state === ENDING) { + self.on.call("end", node, node.__data__, self.index, self.group); + stop(); + } + } + function stop() { + self.state = ENDED; + self.timer.stop(); + delete schedules[id]; + for (var i in schedules) + return; + delete node.__transition; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/interrupt.js + +/* harmony default export */ function interrupt(node, name) { + var schedules = node.__transition, schedule, active, empty = true, i; + if (!schedules) + return; + name = name == null ? null : name + ""; + for (i in schedules) { + if ((schedule = schedules[i]).name !== name) { + empty = false; + continue; + } + active = schedule.state > STARTING && schedule.state < ENDING; + schedule.state = ENDED; + schedule.timer.stop(); + schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); + delete schedules[i]; + } + if (empty) + delete node.__transition; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/interrupt.js + +/* harmony default export */ function selection_interrupt(name) { + return this.each(function() { + interrupt(this, name); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/decompose.js +var degrees = 180 / Math.PI; +var identity = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; +/* harmony default export */ function decompose(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) + a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) + c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) + c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) + a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees, + skewX: Math.atan(skewX) * degrees, + scaleX, + scaleY + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/parse.js + +var svgNode; +function parseCss(value) { + const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); + return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f); +} +function parseSvg(value) { + if (value == null) + return identity; + if (!svgNode) + svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) + return identity; + value = value.matrix; + return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/index.js + + +function interpolateTransform(parse, pxComma, pxParen, degParen) { + function pop(s) { + return s.length ? s.pop() + " " : ""; + } + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({ i: i - 4, x: number(xa, xb) }, { i: i - 2, x: number(ya, yb) }); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } + } + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) + b += 360; + else if (b - a > 180) + a += 360; + q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b) }); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); + } + } + function skewX(a, b, s, q) { + if (a !== b) { + q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b) }); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } + } + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({ i: i - 4, x: number(xa, xb) }, { i: i - 2, x: number(ya, yb) }); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + } + } + return function(a, b) { + var s = [], q = []; + a = parse(a), b = parse(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) + s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + }; +} +var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); +var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/tween.js + +function tweenRemove(id, name) { + var tween0, tween1; + return function() { + var schedule = schedule_set(this, id), tween = schedule.tween; + if (tween !== tween0) { + tween1 = tween0 = tween; + for (var i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1 = tween1.slice(); + tween1.splice(i, 1); + break; + } + } + } + schedule.tween = tween1; + }; +} +function tweenFunction(id, name, value) { + var tween0, tween1; + if (typeof value !== "function") + throw new Error(); + return function() { + var schedule = schedule_set(this, id), tween = schedule.tween; + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; + break; + } + } + if (i === n) + tween1.push(t); + } + schedule.tween = tween1; + }; +} +/* harmony default export */ function tween(name, value) { + var id = this._id; + name += ""; + if (arguments.length < 2) { + var tween = schedule_get(this.node(), id).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { + return t.value; + } + } + return null; + } + return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); +} +function tweenValue(transition, name, value) { + var id = transition._id; + transition.each(function() { + var schedule = schedule_set(this, id); + (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); + }); + return function(node) { + return schedule_get(node, id).value[name]; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/interpolate.js + + +/* harmony default export */ function interpolate(a, b) { + var c; + return (typeof b === "number" ? number : b instanceof color ? rgb : (c = color(b)) ? (b = c, rgb) : string)(a, b); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attr.js + + + + +function attr_attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attr_attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attr_attrConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttribute(name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attr_attrConstantNS(fullname, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttributeNS(fullname.space, fullname.local); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attr_attrFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttribute(name); + string0 = this.getAttribute(name); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function attr_attrFunctionNS(fullname, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttributeNS(fullname.space, fullname.local); + string0 = this.getAttributeNS(fullname.space, fullname.local); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +/* harmony default export */ function transition_attr(name, value) { + var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate; + return this.attrTween(name, typeof value === "function" ? (fullname.local ? attr_attrFunctionNS : attr_attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) : value == null ? (fullname.local ? attr_attrRemoveNS : attr_attrRemove)(fullname) : (fullname.local ? attr_attrConstantNS : attr_attrConstant)(fullname, i, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attrTween.js + +function attrInterpolate(name, i) { + return function(t) { + this.setAttribute(name, i.call(this, t)); + }; +} +function attrInterpolateNS(fullname, i) { + return function(t) { + this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); + }; +} +function attrTweenNS(fullname, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolateNS(fullname, i); + return t0; + } + tween._value = value; + return tween; +} +function attrTween(name, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolate(name, i); + return t0; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_attrTween(name, value) { + var key = "attr." + name; + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + var fullname = namespace(name); + return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/delay.js + +function delayFunction(id, value) { + return function() { + init(this, id).delay = +value.apply(this, arguments); + }; +} +function delayConstant(id, value) { + return value = +value, function() { + init(this, id).delay = value; + }; +} +/* harmony default export */ function delay(value) { + var id = this._id; + return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id, value)) : schedule_get(this.node(), id).delay; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/duration.js + +function durationFunction(id, value) { + return function() { + schedule_set(this, id).duration = +value.apply(this, arguments); + }; +} +function durationConstant(id, value) { + return value = +value, function() { + schedule_set(this, id).duration = value; + }; +} +/* harmony default export */ function duration(value) { + var id = this._id; + return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id, value)) : schedule_get(this.node(), id).duration; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/ease.js + +function easeConstant(id, value) { + if (typeof value !== "function") + throw new Error(); + return function() { + schedule_set(this, id).ease = value; + }; +} +/* harmony default export */ function ease(value) { + var id = this._id; + return arguments.length ? this.each(easeConstant(id, value)) : schedule_get(this.node(), id).ease; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/easeVarying.js + +function easeVarying(id, value) { + return function() { + var v = value.apply(this, arguments); + if (typeof v !== "function") + throw new Error(); + schedule_set(this, id).ease = v; + }; +} +/* harmony default export */ function transition_easeVarying(value) { + if (typeof value !== "function") + throw new Error(); + return this.each(easeVarying(this._id, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/filter.js + + +/* harmony default export */ function transition_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Transition(subgroups, this._parents, this._name, this._id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/merge.js + +/* harmony default export */ function transition_merge(transition) { + if (transition._id !== this._id) + throw new Error(); + for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Transition(merges, this._parents, this._name, this._id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/on.js + +function start(name) { + return (name + "").trim().split(/^|\s+/).every(function(t) { + var i = t.indexOf("."); + if (i >= 0) + t = t.slice(0, i); + return !t || t === "start"; + }); +} +function onFunction(id, name, listener) { + var on0, on1, sit = start(name) ? init : schedule_set; + return function() { + var schedule = sit(this, id), on = schedule.on; + if (on !== on0) + (on1 = (on0 = on).copy()).on(name, listener); + schedule.on = on1; + }; +} +/* harmony default export */ function transition_on(name, listener) { + var id = this._id; + return arguments.length < 2 ? schedule_get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/remove.js +function removeFunction(id) { + return function() { + var parent = this.parentNode; + for (var i in this.__transition) + if (+i !== id) + return; + if (parent) + parent.removeChild(this); + }; +} +/* harmony default export */ function transition_remove() { + return this.on("end.remove", removeFunction(this._id)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/select.js + + + +/* harmony default export */ function transition_select(select) { + var name = this._name, id = this._id; + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + schedule(subgroup[i], name, id, i, subgroup, schedule_get(node, id)); + } + } + } + return new Transition(subgroups, this._parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selectAll.js + + + +/* harmony default export */ function transition_selectAll(select) { + var name = this._name, id = this._id; + if (typeof select !== "function") + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + for (var children = select.call(node, node.__data__, i, group), child, inherit = schedule_get(node, id), k = 0, l = children.length; k < l; ++k) { + if (child = children[k]) { + schedule(child, name, id, k, children, inherit); + } + } + subgroups.push(children); + parents.push(node); + } + } + } + return new Transition(subgroups, parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selection.js + +var selection_Selection = src_selection.prototype.constructor; +/* harmony default export */ function transition_selection() { + return new selection_Selection(this._groups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/style.js + + + + + +function styleNull(name, interpolate2) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1); + }; +} +function style_styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function style_styleConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = styleValue(this, name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function style_styleFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + ""; + if (value1 == null) + string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function styleMaybeRemove(id, name) { + var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; + return function() { + var schedule = schedule_set(this, id), on = schedule.on, listener = schedule.value[key] == null ? remove || (remove = style_styleRemove(name)) : void 0; + if (on !== on0 || listener0 !== listener) + (on1 = (on0 = on).copy()).on(event, listener0 = listener); + schedule.on = on1; + }; +} +/* harmony default export */ function transition_style(name, value, priority) { + var i = (name += "") === "transform" ? interpolateTransformCss : interpolate; + return value == null ? this.styleTween(name, styleNull(name, i)).on("end.style." + name, style_styleRemove(name)) : typeof value === "function" ? this.styleTween(name, style_styleFunction(name, i, tweenValue(this, "style." + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, style_styleConstant(name, i, value), priority).on("end.style." + name, null); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/styleTween.js +function styleInterpolate(name, i, priority) { + return function(t) { + this.style.setProperty(name, i.call(this, t), priority); + }; +} +function styleTween(name, value, priority) { + var t, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t = (i0 = i) && styleInterpolate(name, i, priority); + return t; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_styleTween(name, value, priority) { + var key = "style." + (name += ""); + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/text.js + +function text_textConstant(value) { + return function() { + this.textContent = value; + }; +} +function text_textFunction(value) { + return function() { + var value1 = value(this); + this.textContent = value1 == null ? "" : value1; + }; +} +/* harmony default export */ function transition_text(value) { + return this.tween("text", typeof value === "function" ? text_textFunction(tweenValue(this, "text", value)) : text_textConstant(value == null ? "" : value + "")); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/textTween.js +function textInterpolate(i) { + return function(t) { + this.textContent = i.call(this, t); + }; +} +function textTween(value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && textInterpolate(i); + return t0; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_textTween(value) { + var key = "text"; + if (arguments.length < 1) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, textTween(value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/transition.js + + +/* harmony default export */ function transition() { + var name = this._name, id0 = this._id, id1 = newId(); + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + var inherit = schedule_get(node, id0); + schedule(node, name, id1, i, group, { + time: inherit.time + inherit.delay + inherit.duration, + delay: 0, + duration: inherit.duration, + ease: inherit.ease + }); + } + } + } + return new Transition(groups, this._parents, name, id1); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/end.js + +/* harmony default export */ function end() { + var on0, on1, that = this, id = that._id, size = that.size(); + return new Promise(function(resolve, reject) { + var cancel = { value: reject }, end = { value: function() { + if (--size === 0) + resolve(); + } }; + that.each(function() { + var schedule = schedule_set(this, id), on = schedule.on; + if (on !== on0) { + on1 = (on0 = on).copy(); + on1._.cancel.push(cancel); + on1._.interrupt.push(cancel); + on1._.end.push(end); + } + schedule.on = on1; + }); + if (size === 0) + resolve(); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/index.js + + + + + + + + + + + + + + + + + + + + + +var id = 0; +function Transition(groups, parents, name, id2) { + this._groups = groups; + this._parents = parents; + this._name = name; + this._id = id2; +} +function transition_transition(name) { + return src_selection().transition(name); +} +function newId() { + return ++id; +} +var selection_prototype = src_selection.prototype; +Transition.prototype = transition_transition.prototype = { + constructor: Transition, + select: transition_select, + selectAll: transition_selectAll, + selectChild: selection_prototype.selectChild, + selectChildren: selection_prototype.selectChildren, + filter: transition_filter, + merge: transition_merge, + selection: transition_selection, + transition: transition, + call: selection_prototype.call, + nodes: selection_prototype.nodes, + node: selection_prototype.node, + size: selection_prototype.size, + empty: selection_prototype.empty, + each: selection_prototype.each, + on: transition_on, + attr: transition_attr, + attrTween: transition_attrTween, + style: transition_style, + styleTween: transition_styleTween, + text: transition_text, + textTween: transition_textTween, + remove: transition_remove, + tween: tween, + delay: delay, + duration: duration, + ease: ease, + easeVarying: transition_easeVarying, + end: end, + [Symbol.iterator]: selection_prototype[Symbol.iterator] +}; + +;// CONCATENATED MODULE: ./node_modules/d3-ease/src/cubic.js +function cubicIn(t) { + return t * t * t; +} +function cubicOut(t) { + return --t * t * t + 1; +} +function cubicInOut(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/transition.js + + + + +var defaultTiming = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: cubicInOut +}; +function inherit(node, id) { + var timing; + while (!(timing = node.__transition) || !(timing = timing[id])) { + if (!(node = node.parentNode)) { + throw new Error(`transition ${id} not found`); + } + } + return timing; +} +/* harmony default export */ function selection_transition(name) { + var id, timing; + if (name instanceof Transition) { + id = name._id, name = name._name; + } else { + id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; + } + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + schedule(node, name, id, i, group, timing || inherit(node, id)); + } + } + } + return new Transition(groups, this._parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/index.js + + + +src_selection.prototype.interrupt = selection_interrupt; +src_selection.prototype.transition = selection_transition; + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/index.js + + + + + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/constant.js +/* harmony default export */ var d3_brush_src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/event.js +function BrushEvent(type, { + sourceEvent, + target, + selection, + mode, + dispatch +}) { + Object.defineProperties(this, { + type: { value: type, enumerable: true, configurable: true }, + sourceEvent: { value: sourceEvent, enumerable: true, configurable: true }, + target: { value: target, enumerable: true, configurable: true }, + selection: { value: selection, enumerable: true, configurable: true }, + mode: { value: mode, enumerable: true, configurable: true }, + _: { value: dispatch } + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/noevent.js +function noevent_nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function src_noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/brush.js + + + + + + + + +var MODE_DRAG = { name: "drag" }, MODE_SPACE = { name: "space" }, MODE_HANDLE = { name: "handle" }, MODE_CENTER = { name: "center" }; +const { abs, max, min } = Math; +function number1(e) { + return [+e[0], +e[1]]; +} +function number2(e) { + return [number1(e[0]), number1(e[1])]; +} +var X = { + name: "x", + handles: ["w", "e"].map(type), + input: function(x, e) { + return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; + }, + output: function(xy) { + return xy && [xy[0][0], xy[1][0]]; + } +}; +var Y = { + name: "y", + handles: ["n", "s"].map(type), + input: function(y, e) { + return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; + }, + output: function(xy) { + return xy && [xy[0][1], xy[1][1]]; + } +}; +var XY = { + name: "xy", + handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type), + input: function(xy) { + return xy == null ? null : number2(xy); + }, + output: function(xy) { + return xy; + } +}; +var cursors = { + overlay: "crosshair", + selection: "move", + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" +}; +var flipX = { + e: "w", + w: "e", + nw: "ne", + ne: "nw", + se: "sw", + sw: "se" +}; +var flipY = { + n: "s", + s: "n", + nw: "sw", + ne: "se", + se: "ne", + sw: "nw" +}; +var signsX = { + overlay: 1, + selection: 1, + n: null, + e: 1, + s: null, + w: -1, + nw: -1, + ne: 1, + se: 1, + sw: -1 +}; +var signsY = { + overlay: 1, + selection: 1, + n: -1, + e: null, + s: 1, + w: null, + nw: -1, + ne: -1, + se: 1, + sw: 1 +}; +function type(t) { + return { type: t }; +} +function defaultFilter(event) { + return !event.ctrlKey && !event.button; +} +function defaultExtent() { + var svg = this.ownerSVGElement || this; + if (svg.hasAttribute("viewBox")) { + svg = svg.viewBox.baseVal; + return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]]; + } + return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; +} +function defaultTouchable() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +function local(node) { + while (!node.__brush) + if (!(node = node.parentNode)) + return; + return node.__brush; +} +function brush_empty(extent) { + return extent[0][0] === extent[1][0] || extent[0][1] === extent[1][1]; +} +function brushSelection(node) { + var state = node.__brush; + return state ? state.dim.output(state.selection) : null; +} +function brushX() { + return brush_brush(X); +} +function brushY() { + return brush_brush(Y); +} +/* harmony default export */ function brush() { + return brush_brush(XY); +} +function brush_brush(dim) { + var extent = defaultExtent, filter = defaultFilter, touchable = defaultTouchable, keys = true, listeners = src_dispatch("start", "brush", "end"), handleSize = 6, touchending; + function brush2(group) { + var overlay = group.property("__brush", initialize).selectAll(".overlay").data([type("overlay")]); + overlay.enter().append("rect").attr("class", "overlay").attr("pointer-events", "all").attr("cursor", cursors.overlay).merge(overlay).each(function() { + var extent2 = local(this).extent; + src_select(this).attr("x", extent2[0][0]).attr("y", extent2[0][1]).attr("width", extent2[1][0] - extent2[0][0]).attr("height", extent2[1][1] - extent2[0][1]); + }); + group.selectAll(".selection").data([type("selection")]).enter().append("rect").attr("class", "selection").attr("cursor", cursors.selection).attr("fill", "#777").attr("fill-opacity", 0.3).attr("stroke", "#fff").attr("shape-rendering", "crispEdges"); + var handle = group.selectAll(".handle").data(dim.handles, function(d) { + return d.type; + }); + handle.exit().remove(); + handle.enter().append("rect").attr("class", function(d) { + return "handle handle--" + d.type; + }).attr("cursor", function(d) { + return cursors[d.type]; + }); + group.each(redraw).attr("fill", "none").attr("pointer-events", "all").on("mousedown.brush", started).filter(touchable).on("touchstart.brush", started).on("touchmove.brush", touchmoved).on("touchend.brush touchcancel.brush", touchended).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + brush2.move = function(group, selection, event) { + if (group.tween) { + group.on("start.brush", function(event2) { + emitter(this, arguments).beforestart().start(event2); + }).on("interrupt.brush end.brush", function(event2) { + emitter(this, arguments).end(event2); + }).tween("brush", function() { + var that = this, state = that.__brush, emit = emitter(that, arguments), selection0 = state.selection, selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), i = value(selection0, selection1); + function tween(t) { + state.selection = t === 1 && selection1 === null ? null : i(t); + redraw.call(that); + emit.brush(); + } + return selection0 !== null && selection1 !== null ? tween : tween(1); + }); + } else { + group.each(function() { + var that = this, args = arguments, state = that.__brush, selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), emit = emitter(that, args).beforestart(); + interrupt(that); + state.selection = selection1 === null ? null : selection1; + redraw.call(that); + emit.start(event).brush(event).end(event); + }); + } + }; + brush2.clear = function(group, event) { + brush2.move(group, null, event); + }; + function redraw() { + var group = src_select(this), selection = local(this).selection; + if (selection) { + group.selectAll(".selection").style("display", null).attr("x", selection[0][0]).attr("y", selection[0][1]).attr("width", selection[1][0] - selection[0][0]).attr("height", selection[1][1] - selection[0][1]); + group.selectAll(".handle").style("display", null).attr("x", function(d) { + return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; + }).attr("y", function(d) { + return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; + }).attr("width", function(d) { + return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; + }).attr("height", function(d) { + return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; + }); + } else { + group.selectAll(".selection,.handle").style("display", "none").attr("x", null).attr("y", null).attr("width", null).attr("height", null); + } + } + function emitter(that, args, clean) { + var emit = that.__brush.emitter; + return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean); + } + function Emitter(that, args, clean) { + this.that = that; + this.args = args; + this.state = that.__brush; + this.active = 0; + this.clean = clean; + } + Emitter.prototype = { + beforestart: function() { + if (++this.active === 1) + this.state.emitter = this, this.starting = true; + return this; + }, + start: function(event, mode) { + if (this.starting) + this.starting = false, this.emit("start", event, mode); + else + this.emit("brush", event); + return this; + }, + brush: function(event, mode) { + this.emit("brush", event, mode); + return this; + }, + end: function(event, mode) { + if (--this.active === 0) + delete this.state.emitter, this.emit("end", event, mode); + return this; + }, + emit: function(type2, event, mode) { + var d = src_select(this.that).datum(); + listeners.call( + type2, + this.that, + new BrushEvent(type2, { + sourceEvent: event, + target: brush2, + selection: dim.output(this.state.selection), + mode, + dispatch: listeners + }), + d + ); + } + }; + function started(event) { + if (touchending && !event.touches) + return; + if (!filter.apply(this, arguments)) + return; + var that = this, type2 = event.target.__data__.type, mode = (keys && event.metaKey ? type2 = "overlay" : type2) === "selection" ? MODE_DRAG : keys && event.altKey ? MODE_CENTER : MODE_HANDLE, signX = dim === Y ? null : signsX[type2], signY = dim === X ? null : signsY[type2], state = local(that), extent2 = state.extent, selection = state.selection, W = extent2[0][0], w0, w1, N = extent2[0][1], n0, n1, E = extent2[1][0], e0, e1, S = extent2[1][1], s0, s1, dx = 0, dy = 0, moving, shifting = signX && signY && keys && event.shiftKey, lockX, lockY, points = Array.from(event.touches || [event], (t) => { + const i = t.identifier; + t = src_pointer(t, that); + t.point0 = t.slice(); + t.identifier = i; + return t; + }); + interrupt(that); + var emit = emitter(that, arguments, true).beforestart(); + if (type2 === "overlay") { + if (selection) + moving = true; + const pts = [points[0], points[1] || points[0]]; + state.selection = selection = [[ + w0 = dim === Y ? W : min(pts[0][0], pts[1][0]), + n0 = dim === X ? N : min(pts[0][1], pts[1][1]) + ], [ + e0 = dim === Y ? E : max(pts[0][0], pts[1][0]), + s0 = dim === X ? S : max(pts[0][1], pts[1][1]) + ]]; + if (points.length > 1) + move(event); + } else { + w0 = selection[0][0]; + n0 = selection[0][1]; + e0 = selection[1][0]; + s0 = selection[1][1]; + } + w1 = w0; + n1 = n0; + e1 = e0; + s1 = s0; + var group = src_select(that).attr("pointer-events", "none"); + var overlay = group.selectAll(".overlay").attr("cursor", cursors[type2]); + if (event.touches) { + emit.moved = moved; + emit.ended = ended; + } else { + var view = src_select(event.view).on("mousemove.brush", moved, true).on("mouseup.brush", ended, true); + if (keys) + view.on("keydown.brush", keydowned, true).on("keyup.brush", keyupped, true); + nodrag(event.view); + } + redraw.call(that); + emit.start(event, mode.name); + function moved(event2) { + for (const p of event2.changedTouches || [event2]) { + for (const d of points) + if (d.identifier === p.identifier) + d.cur = src_pointer(p, that); + } + if (shifting && !lockX && !lockY && points.length === 1) { + const point = points[0]; + if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1])) + lockY = true; + else + lockX = true; + } + for (const point of points) + if (point.cur) + point[0] = point.cur[0], point[1] = point.cur[1]; + moving = true; + src_noevent(event2); + move(event2); + } + function move(event2) { + const point = points[0], point0 = point.point0; + var t; + dx = point[0] - point0[0]; + dy = point[1] - point0[1]; + switch (mode) { + case MODE_SPACE: + case MODE_DRAG: { + if (signX) + dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; + if (signY) + dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; + break; + } + case MODE_HANDLE: { + if (points[1]) { + if (signX) + w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1; + if (signY) + n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1; + } else { + if (signX < 0) + dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0; + else if (signX > 0) + dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx; + if (signY < 0) + dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0; + else if (signY > 0) + dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy; + } + break; + } + case MODE_CENTER: { + if (signX) + w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX)); + if (signY) + n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY)); + break; + } + } + if (e1 < w1) { + signX *= -1; + t = w0, w0 = e0, e0 = t; + t = w1, w1 = e1, e1 = t; + if (type2 in flipX) + overlay.attr("cursor", cursors[type2 = flipX[type2]]); + } + if (s1 < n1) { + signY *= -1; + t = n0, n0 = s0, s0 = t; + t = n1, n1 = s1, s1 = t; + if (type2 in flipY) + overlay.attr("cursor", cursors[type2 = flipY[type2]]); + } + if (state.selection) + selection = state.selection; + if (lockX) + w1 = selection[0][0], e1 = selection[1][0]; + if (lockY) + n1 = selection[0][1], s1 = selection[1][1]; + if (selection[0][0] !== w1 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) { + state.selection = [[w1, n1], [e1, s1]]; + redraw.call(that); + emit.brush(event2, mode.name); + } + } + function ended(event2) { + noevent_nopropagation(event2); + if (event2.touches) { + if (event2.touches.length) + return; + if (touchending) + clearTimeout(touchending); + touchending = setTimeout(function() { + touchending = null; + }, 500); + } else { + yesdrag(event2.view, moving); + view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); + } + group.attr("pointer-events", "all"); + overlay.attr("cursor", cursors.overlay); + if (state.selection) + selection = state.selection; + if (brush_empty(selection)) + state.selection = null, redraw.call(that); + emit.end(event2, mode.name); + } + function keydowned(event2) { + switch (event2.keyCode) { + case 16: { + shifting = signX && signY; + break; + } + case 18: { + if (mode === MODE_HANDLE) { + if (signX) + e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) + s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + move(event2); + } + break; + } + case 32: { + if (mode === MODE_HANDLE || mode === MODE_CENTER) { + if (signX < 0) + e0 = e1 - dx; + else if (signX > 0) + w0 = w1 - dx; + if (signY < 0) + s0 = s1 - dy; + else if (signY > 0) + n0 = n1 - dy; + mode = MODE_SPACE; + overlay.attr("cursor", cursors.selection); + move(event2); + } + break; + } + default: + return; + } + src_noevent(event2); + } + function keyupped(event2) { + switch (event2.keyCode) { + case 16: { + if (shifting) { + lockX = lockY = shifting = false; + move(event2); + } + break; + } + case 18: { + if (mode === MODE_CENTER) { + if (signX < 0) + e0 = e1; + else if (signX > 0) + w0 = w1; + if (signY < 0) + s0 = s1; + else if (signY > 0) + n0 = n1; + mode = MODE_HANDLE; + move(event2); + } + break; + } + case 32: { + if (mode === MODE_SPACE) { + if (event2.altKey) { + if (signX) + e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) + s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + } else { + if (signX < 0) + e0 = e1; + else if (signX > 0) + w0 = w1; + if (signY < 0) + s0 = s1; + else if (signY > 0) + n0 = n1; + mode = MODE_HANDLE; + } + overlay.attr("cursor", cursors[type2]); + move(event2); + } + break; + } + default: + return; + } + src_noevent(event2); + } + } + function touchmoved(event) { + emitter(this, arguments).moved(event); + } + function touchended(event) { + emitter(this, arguments).ended(event); + } + function initialize() { + var state = this.__brush || { selection: null }; + state.extent = number2(extent.apply(this, arguments)); + state.dim = dim; + return state; + } + brush2.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : d3_brush_src_constant(number2(_)), brush2) : extent; + }; + brush2.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush2) : filter; + }; + brush2.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush2) : touchable; + }; + brush2.handleSize = function(_) { + return arguments.length ? (handleSize = +_, brush2) : handleSize; + }; + brush2.keyModifiers = function(_) { + return arguments.length ? (keys = !!_, brush2) : keys; + }; + brush2.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? brush2 : value; + }; + return brush2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/index.js + + +;// CONCATENATED MODULE: ./src/module/browser.ts +function getGlobal() { + return typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && globalThis || typeof global === "object" && global !== null && global.Object === Object && global || typeof self === "object" && self !== null && self.Object === Object && self || Function("return this")(); +} +function getFallback(w) { + const hasRAF = typeof (w == null ? void 0 : w.requestAnimationFrame) === "function" && typeof (w == null ? void 0 : w.cancelAnimationFrame) === "function"; + const hasRIC = typeof (w == null ? void 0 : w.requestIdleCallback) === "function" && typeof (w == null ? void 0 : w.cancelIdleCallback) === "function"; + const request = (cb) => setTimeout(cb, 1); + const cancel = (id) => clearTimeout(id); + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +const win = getGlobal(); +const doc = win == null ? void 0 : win.document; +const [ + requestAnimationFrame, + cancelAnimationFrame, + requestIdleCallback, + cancelIdleCallback +] = getFallback(win); + + +;// CONCATENATED MODULE: ./src/module/util.ts +var util_defProp = Object.defineProperty; +var util_getOwnPropSymbols = Object.getOwnPropertySymbols; +var util_hasOwnProp = Object.prototype.hasOwnProperty; +var util_propIsEnum = Object.prototype.propertyIsEnumerable; +var util_defNormalProp = (obj, key, value) => key in obj ? util_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var util_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (util_hasOwnProp.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + if (util_getOwnPropSymbols) + for (var prop of util_getOwnPropSymbols(b)) { + if (util_propIsEnum.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + + +const isValue = (v) => v || v === 0; +const isFunction = (v) => typeof v === "function"; +const isString = (v) => typeof v === "string"; +const isNumber = (v) => typeof v === "number"; +const isUndefined = (v) => typeof v === "undefined"; +const isDefined = (v) => typeof v !== "undefined"; +const isBoolean = (v) => typeof v === "boolean"; +const ceil10 = (v) => Math.ceil(v / 10) * 10; +const asHalfPixel = (n) => Math.ceil(n) + 0.5; +const diffDomain = (d) => d[1] - d[0]; +const isObjectType = (v) => typeof v === "object"; +const isEmpty = (o) => isUndefined(o) || o === null || isString(o) && o.length === 0 || isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0 || isNumber(o) && isNaN(o); +const notEmpty = (o) => !isEmpty(o); +const isArray = (arr) => Array.isArray(arr); +const isObject = (obj) => obj && !(obj == null ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +function hasValue(dict, value) { + let found = false; + Object.keys(dict).forEach((key) => dict[key] === value && (found = true)); + return found; +} +function callFn(fn, thisArg, ...args) { + const isFn = isFunction(fn); + isFn && fn.call(thisArg, ...args); + return isFn; +} +function endall(transition, cb) { + let n = 0; + const end = function(...args) { + !--n && cb.apply(this, ...args); + }; + if ("duration" in transition) { + transition.each(() => ++n).on("end", end); + } else { + ++n; + transition.call(end); + } +} +function sanitize(str) { + return isString(str) ? str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : str; +} +function setTextValue(node, text, dy = [-1, 1], toMiddle = false) { + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } else { + const diff = [node.text(), text].map((v) => v.replace(/[\s\n]/g, "")); + if (diff[0] !== diff[1]) { + const multiline = text.split("\n"); + const len = toMiddle ? multiline.length - 1 : 1; + node.html(""); + multiline.forEach((v, i) => { + node.append("tspan").attr("x", 0).attr("dy", `${i === 0 ? dy[0] * len : dy[1]}em`).text(v); + }); + } + } +} +function getRectSegList(path) { + const { x, y, width, height } = path.getBBox(); + return [ + { x, y: y + height }, + // seg0 + { x, y }, + // seg1 + { x: x + width, y }, + // seg2 + { x: x + width, y: y + height } + // seg3 + ]; +} +function getPathBox(path) { + const { width, height } = path.getBoundingClientRect(); + const items = getRectSegList(path); + const x = items[0].x; + const y = Math.min(items[0].y, items[1].y); + return { + x, + y, + width, + height + }; +} +function getPointer(event, element) { + var _a; + const touches = event && ((_a = event.touches || event.sourceEvent && event.sourceEvent.touches) == null ? void 0 : _a[0]); + let pointer = [0, 0]; + try { + pointer = src_pointer(touches || event, element); + } catch (e) { + } + return pointer.map((v) => isNaN(v) ? 0 : v); +} +function getBrushSelection(ctx) { + const { event, $el } = ctx; + const main = $el.subchart.main || $el.main; + let selection; + if (event && event.type === "brush") { + selection = event.selection; + } else if (main && (selection = main.select(".bb-brush").node())) { + selection = brushSelection(selection); + } + return selection; +} +function getBoundingRect(node) { + const needEvaluate = !("rect" in node) || "rect" in node && node.hasAttribute("width") && node.rect.width !== +node.getAttribute("width"); + return needEvaluate ? node.rect = node.getBoundingClientRect() : node.rect; +} +function getRandom(asStr = true, min = 0, max = 1e4) { + const crpt = win.crypto || win.msCrypto; + const rand = crpt ? min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + const mid = Math.floor((start + end) / 2); + let { x, w = 0 } = arr[mid]; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? findIndex(arr, v, start, mid - 1, isRotated) : findIndex(arr, v, mid + 1, end, isRotated); +} +function brushEmpty(ctx) { + const selection = getBrushSelection(ctx); + if (selection) { + return selection[0] === selection[1]; + } + return true; +} +function deepClone(...objectN) { + const clone = (v) => { + if (isObject(v) && v.constructor) { + const r = new v.constructor(); + for (const k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map((v) => clone(v)).reduce((a, c) => util_spreadValues(util_spreadValues({}, a), c)); +} +function util_extend(target = {}, source) { + if (isArray(source)) { + source.forEach((v) => util_extend(target, v)); + } + for (const p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); +function camelize(str, separator = "-") { + return str.split(separator).map((v, i) => i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()).join(""); +} +const toArray = (v) => [].slice.call(v); +function addCssRules(style, selector, prop) { + const { rootSelector = "", sheet } = style; + const getSelector = (s) => s.replace(/\s?(bb-)/g, ".$1").replace(/\.+/g, "."); + const rule = `${rootSelector} ${getSelector(selector)} {${prop.join(";")}}`; + return sheet[sheet.insertRule ? "insertRule" : "addRule"]( + rule, + sheet.cssRules.length + ); +} +function getCssRules(styleSheets) { + let rules = []; + styleSheets.forEach((sheet) => { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } catch (e) { + (_a = win.console) == null ? void 0 : _a.warn(`Error while reading rules from ${sheet.href}: ${e.toString()}`); + } + }); + return rules; +} +function getScrollPosition(node) { + var _a, _b, _c, _d; + return { + x: ((_b = (_a = win.pageXOffset) != null ? _a : win.scrollX) != null ? _b : 0) + node.scrollLeft, + y: ((_d = (_c = win.pageYOffset) != null ? _c : win.scrollY) != null ? _d : 0) + node.scrollTop + }; +} +function getTranslation(node) { + const transform = node ? node.transform : null; + const baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? baseVal.getItem(0).matrix : { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +function getUnique(data) { + const isDate = data[0] instanceof Date; + const d = (isDate ? data.map(Number) : data).filter((v, i, self) => self.indexOf(v) === i); + return isDate ? d.map((v) => new Date(v)) : d; +} +function mergeArray(arr) { + return arr && arr.length ? arr.reduce((p, c) => p.concat(c)) : []; +} +function mergeObj(target, ...objectN) { + if (!objectN.length || objectN.length === 1 && !objectN[0]) { + return target; + } + const source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach((key) => { + const value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj(target, ...objectN); +} +function sortValue(data, isAsc = true) { + let fn; + if (data[0] instanceof Date) { + fn = isAsc ? (a, b) => a - b : (a, b) => b - a; + } else { + if (isAsc && !data.every(isNaN)) { + fn = (a, b) => a - b; + } else if (!isAsc) { + fn = (a, b) => a > b && -1 || a < b && 1 || a === b && 0; + } + } + return data.concat().sort(fn); +} +function getMinMax(type, data) { + let res = data.filter((v) => notEmpty(v)); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type](...res); + } else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } else { + res = void 0; + } + return res; +} +const getRange = (start, end, step = 1) => { + const res = []; + const n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (let i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +const emulateEvent = { + mouse: (() => { + const getParams = () => ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); + try { + new MouseEvent("t"); + return (el, eventType, params = getParams()) => { + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } catch (e) { + return (el, eventType, params = getParams()) => { + const mouseEvent = doc.createEvent("MouseEvent"); + mouseEvent.initMouseEvent( + eventType, + params.bubbles, + params.cancelable, + win, + 0, + // the event's mouse click count + params.screenX, + params.screenY, + params.clientX, + params.clientY, + false, + false, + false, + false, + 0, + null + ); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: (el, eventType, params) => { + const touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +function tplProcess(tpl, data) { + let res = tpl; + for (const x in data) { + res = res.replace(new RegExp(`{=${x}}`, "g"), data[x]); + } + return res; +} +function parseDate(date) { + var _a; + let parsedDate; + if (date instanceof Date) { + parsedDate = date; + } else if (isString(date)) { + const { config, format } = this; + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) != null ? _a : new Date(date); + } else if (isNumber(date) && !isNaN(date)) { + parsedDate = /* @__PURE__ */ new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && console.error(`Failed to parse x '${date}' to Date object`); + } + return parsedDate; +} +function isTabVisible() { + var _a, _b; + return ((_a = doc) == null ? void 0 : _a.hidden) === false || ((_b = doc) == null ? void 0 : _b.visibilityState) === "visible"; +} +function convertInputType(mouse, touch) { + const { DocumentTouch, matchMedia, navigator } = win; + let hasTouch = false; + if (touch) { + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + } else if ("ontouchmove" in win || DocumentTouch && doc instanceof DocumentTouch) { + hasTouch = true; + } else { + if (matchMedia == null ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } else { + const UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + const hasMouse = mouse && ((matchMedia == null ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia == null ? void 0 : matchMedia("any-pointer:fine").matches)); + return hasMouse && "mouse" || hasTouch && "touch" || "mouse"; +} +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(() => runUntil(fn, conditionFn)); + } else { + fn(); + } +} + +;// CONCATENATED MODULE: ./src/config/config.ts + +function loadConfig(config) { + const thisConfig = this.config; + let target; + let keys; + let read; + const find = () => { + const key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } else if (!key) { + return target; + } + return void 0; + }; + Object.keys(thisConfig).forEach((key) => { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + if (this.api) { + this.state.orgConfig = config; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/Plugin.ts +var Plugin_defProp = Object.defineProperty; +var Plugin_defNormalProp = (obj, key, value) => key in obj ? Plugin_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + Plugin_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class Plugin { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + constructor(options = {}) { + __publicField(this, "$$"); + __publicField(this, "options"); + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + $beforeInit() { + } + /** + * Lifecycle hook for 'init' phase. + * @private + */ + $init() { + } + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + $afterInit() { + } + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + $redraw() { + } + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + $willDestroy() { + Object.keys(this).forEach((key) => { + this[key] = null; + delete this[key]; + }); + } +} +__publicField(Plugin, "version", "3.12.4"); + +;// CONCATENATED MODULE: ./src/Plugin/sparkline/Options.ts +class Options { + constructor() { + return { + /** + * Specify sparkline charts holder selector. + * - **NOTE:** The amount of holder should match with the amount of data. If has less, will append necessaray amount nodes as sibling of main chart. + * @name selector + * @memberof plugin-sparkline + * @type {string} + * @default undefined + * @example + * selector: ".sparkline" + */ + selector: void 0 + }; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/sparkline/index.ts +var sparkline_defProp = Object.defineProperty; +var sparkline_defNormalProp = (obj, key, value) => key in obj ? sparkline_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var sparkline_publicField = (obj, key, value) => { + sparkline_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + +class Sparkline extends Plugin { + constructor(options) { + super(options); + sparkline_publicField(this, "config"); + sparkline_publicField(this, "element"); + this.config = new Options(); + return this; + } + $beforeInit() { + loadConfig.call(this, this.options); + this.validate(); + this.element = [].slice.call(document.querySelectorAll(this.config.selector)); + this.overrideInternals(); + this.overrideOptions(); + this.overHandler = this.overHandler.bind(this); + this.moveHandler = this.moveHandler.bind(this); + this.outHandler = this.outHandler.bind(this); + } + validate() { + const { $$, config } = this; + let msg = ""; + if (!config.selector || !document.querySelector(config.selector)) { + msg = "No holder elements found from given selector option."; + } + if ($$.hasType("bubble") || $$.hasType("scatter") || $$.hasArcType($$.data.targets)) { + msg = "Contains non supported chart types."; + } + if (msg) { + throw new Error(`[Sparkline plugin] ${msg}`); + } + } + overrideInternals() { + const { $$ } = this; + const { getBarW, getIndices } = $$; + $$.getIndices = function(indices, d, caller) { + return caller === "getShapeX" ? {} : getIndices.call(this, indices, d); + }; + $$.getBarW = function(type, axis) { + return getBarW.call(this, type, axis, 1); + }; + } + overrideOptions() { + const { config } = this.$$; + config.legend_show = false; + config.resize_auto = false; + config.axis_x_show = false; + if (config.padding !== false) { + const hasOption = (o) => Object.keys(o || {}).length > 0; + if (hasOption(config.axis_x_padding)) { + config.axis_x_padding = { + left: 15, + right: 15, + unit: "px" + }; + } + if (hasOption(config.axis_y_padding)) { + config.axis_y_padding = 5; + } + } + config.axis_y_show = false; + if (!config.tooltip_position) { + config.tooltip_position = function(data, width, height) { + const { internal: { state: { event } } } = this; + let top = event.pageY - height * 1.35; + let left = event.pageX - width / 2; + if (top < 0) { + top = 0; + } + if (left < 0) { + left = 0; + } + return { top, left }; + }; + } + } + $init() { + var _a; + const { $$: { $el } } = this; + $el.chart.style("width", "0").style("height", "0").style("pointer-events", "none"); + ((_a = $el.tooltip) == null ? void 0 : _a.node()) && document.body.appendChild($el.tooltip.node()); + } + $afterInit() { + const { $$ } = this; + $$.$el.svg.attr("style", null).style("width", "0").style("height", "0"); + this.bindEvents(true); + } + /** + * Bind tooltip event handlers for each sparkline elements. + * @param {boolean} bind or unbind + * @private + */ + bindEvents(bind = true) { + const { $$: { config } } = this; + if (config.interaction_enabled && config.tooltip_show) { + const method = `${bind ? "add" : "remove"}EventListener`; + this.element.forEach((el) => { + const svg = el.querySelector("svg"); + svg[method]("mouseover", this.overHandler); + svg[method]("mousemove", this.moveHandler); + svg[method]("mouseout", this.outHandler); + }); + } + } + overHandler(e) { + const { $$ } = this; + const { state: { eventReceiver } } = $$; + eventReceiver.rect = e.target.getBoundingClientRect(); + } + moveHandler(e) { + var _a, _b, _c, _d; + const { $$ } = this; + const index = $$.getDataIndexFromEvent(e); + const data = (_a = $$.api.data(e.target.__id)) == null ? void 0 : _a[0]; + const d = (_b = data == null ? void 0 : data.values) == null ? void 0 : _b[index]; + if (d && !d.name) { + d.name = d.id; + } + $$.state.event = e; + if (((_c = $$.isPointFocusOnly) == null ? void 0 : _c.call($$)) && d) { + (_d = $$.showCircleFocus) == null ? void 0 : _d.call($$, [d]); + } + $$.setExpand(index, data.id, true); + $$.showTooltip([d], e.target); + } + outHandler(e) { + const { $$ } = this; + $$.state.event = e; + $$.isPointFocusOnly() ? $$.hideCircleFocus() : $$.unexpandCircles(); + $$.hideTooltip(); + } + $redraw() { + var _a; + const { $$ } = this; + const { $el } = $$; + let el = this.element; + const data = $$.api.data(); + const svgWrapper = (_a = $el.chart.html().match(/<svg[^>]*>/)) == null ? void 0 : _a[0]; + if (el.length < data.length) { + const chart = $el.chart.node(); + for (let i = data.length - el.length; i > 0; i--) { + chart.parentNode.insertBefore(el[0].cloneNode(), chart.nextSibling); + } + this.element = document.querySelectorAll(this.config.selector); + el = this.element; + } + data.map((v) => v.id).forEach((id, i) => { + const selector = `.${$COMMON.target}-${id}`; + const shape = $el.main.selectAll(selector); + let svg = el[i].querySelector("svg"); + if (!svg) { + el[i].innerHTML = `${svgWrapper}</svg>`; + svg = el[i].querySelector("svg"); + svg.__id = id; + } + if (!svg.querySelector(selector)) { + shape.style("opacity", null); + } + shape.style("fill", "none").style("opacity", null); + svg.innerHTML = ""; + svg.appendChild(shape.node()); + }); + } + $willDestroy() { + this.bindEvents(false); + this.element.forEach((el) => { + el.innerHTML = ""; + }); + } +} +sparkline_publicField(Sparkline, "version", `0.0.1`); + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module used 'module' so it can't be inlined +/******/ __webpack_require__(0); +/******/ var __webpack_exports__ = __webpack_require__(561); +/******/ __webpack_exports__ = __webpack_exports__["default"]; +/******/ +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-sparkline.pkgd.min.js b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-sparkline.pkgd.min.js new file mode 100644 index 000000000..08e6a2e4a --- /dev/null +++ b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-sparkline.pkgd.min.js @@ -0,0 +1,16 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */(function(Kr,Mr){typeof exports=="object"&&typeof module=="object"?module.exports=Mr():typeof define=="function"&&define.amd?define("bb",[],Mr):typeof exports=="object"?exports.bb=Mr():(Kr.bb=Kr.bb||{},Kr.bb.plugin=Kr.bb.plugin||{},Kr.bb.plugin["sparkline.pkgd"]=Mr())})(this,function(){return function(){"use strict";var Ce={68990:function(i,h,t){t.d(h,{default:function(){return Sa}});var r=Object.defineProperty,n=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,s=(e,f,c)=>f in e?r(e,f,{enumerable:!0,configurable:!0,writable:!0,value:c}):e[f]=c,u=(e,f)=>{for(var c in f||(f={}))a.call(f,c)&&s(e,c,f[c]);if(n)for(var c of n(f))o.call(f,c)&&s(e,c,f[c]);return e};const l={button:"bb-button",chart:"bb-chart",empty:"bb-empty",main:"bb-main",target:"bb-target",EXPANDED:"_expanded_"},v={arc:"bb-arc",arcLabelLine:"bb-arc-label-line",arcRange:"bb-arc-range",arcs:"bb-arcs",chartArc:"bb-chart-arc",chartArcs:"bb-chart-arcs",chartArcsBackground:"bb-chart-arcs-background",chartArcsTitle:"bb-chart-arcs-title",needle:"bb-needle"},d={area:"bb-area",areas:"bb-areas"},g={axis:"bb-axis",axisX:"bb-axis-x",axisXLabel:"bb-axis-x-label",axisY:"bb-axis-y",axisY2:"bb-axis-y2",axisY2Label:"bb-axis-y2-label",axisYLabel:"bb-axis-y-label",axisXTooltip:"bb-axis-x-tooltip",axisYTooltip:"bb-axis-y-tooltip",axisY2Tooltip:"bb-axis-y2-tooltip"},y={bar:"bb-bar",bars:"bb-bars",chartBar:"bb-chart-bar",chartBars:"bb-chart-bars"},p={candlestick:"bb-candlestick",candlesticks:"bb-candlesticks",chartCandlestick:"bb-chart-candlestick",chartCandlesticks:"bb-chart-candlesticks",valueDown:"bb-value-down",valueUp:"bb-value-up"},m={chartCircles:"bb-chart-circles",circle:"bb-circle",circles:"bb-circles"},E={colorPattern:"bb-color-pattern",colorScale:"bb-colorscale"},S={dragarea:"bb-dragarea",INCLUDED:"_included_"},I={funnel:"bb-funnel",chartFunnel:"bb-chart-funnel",chartFunnels:"bb-chart-funnels",funnelBackground:"bb-funnel-background"},P={chartArcsGaugeMax:"bb-chart-arcs-gauge-max",chartArcsGaugeMin:"bb-chart-arcs-gauge-min",chartArcsGaugeUnit:"bb-chart-arcs-gauge-unit",chartArcsGaugeTitle:"bb-chart-arcs-gauge-title",gaugeValue:"bb-gauge-value"},A={legend:"bb-legend",legendBackground:"bb-legend-background",legendItem:"bb-legend-item",legendItemEvent:"bb-legend-item-event",legendItemHidden:"bb-legend-item-hidden",legendItemPoint:"bb-legend-item-point",legendItemTile:"bb-legend-item-tile"},R={chartLine:"bb-chart-line",chartLines:"bb-chart-lines",line:"bb-line",lines:"bb-lines"},N={eventRect:"bb-event-rect",eventRects:"bb-event-rects",eventRectsMultiple:"bb-event-rects-multiple",eventRectsSingle:"bb-event-rects-single"},T={focused:"bb-focused",defocused:"bb-defocused",legendItemFocused:"bb-legend-item-focused",xgridFocus:"bb-xgrid-focus",ygridFocus:"bb-ygrid-focus"},C={grid:"bb-grid",gridLines:"bb-grid-lines",xgrid:"bb-xgrid",xgridLine:"bb-xgrid-line",xgridLines:"bb-xgrid-lines",xgrids:"bb-xgrids",ygrid:"bb-ygrid",ygridLine:"bb-ygrid-line",ygridLines:"bb-ygrid-lines",ygrids:"bb-ygrids"},b={level:"bb-level",levels:"bb-levels"},L={chartRadar:"bb-chart-radar",chartRadars:"bb-chart-radars"},D={region:"bb-region",regions:"bb-regions"},$={selectedCircle:"bb-selected-circle",selectedCircles:"bb-selected-circles",SELECTED:"_selected_"},w={shape:"bb-shape",shapes:"bb-shapes"},H={brush:"bb-brush",subchart:"bb-subchart"},U={chartText:"bb-chart-text",chartTexts:"bb-chart-texts",text:"bb-text",texts:"bb-texts",title:"bb-title",TextOverlapping:"text-overlapping"},B={tooltip:"bb-tooltip",tooltipContainer:"bb-tooltip-container",tooltipName:"bb-tooltip-name"},j={treemap:"bb-treemap",chartTreemap:"bb-chart-treemap",chartTreemaps:"bb-chart-treemaps"},Y={buttonZoomReset:"bb-zoom-reset",zoomBrush:"bb-zoom-brush"};var k=u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u(u({},l),v),d),g),y),p),m),E),S),P),A),R),N),T),I),C),L),D),$),w),H),U),B),j),Y);function J(){}function nt(e){return e==null?J:function(){return this.querySelector(e)}}function _(e){typeof e!="function"&&(e=nt(e));for(var f=this._groups,c=f.length,x=new Array(c),O=0;O<c;++O)for(var M=f[O],F=M.length,G=x[O]=new Array(F),W,tt,et=0;et<F;++et)(W=M[et])&&(tt=e.call(W,W.__data__,et,M))&&("__data__"in W&&(tt.__data__=W.__data__),G[et]=tt);return new Lr(x,this._parents)}function dt(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function lt(){return[]}function gt(e){return e==null?lt:function(){return this.querySelectorAll(e)}}function St(e){return function(){return dt(e.apply(this,arguments))}}function It(e){typeof e=="function"?e=St(e):e=gt(e);for(var f=this._groups,c=f.length,x=[],O=[],M=0;M<c;++M)for(var F=f[M],G=F.length,W,tt=0;tt<G;++tt)(W=F[tt])&&(x.push(e.call(W,W.__data__,tt,F)),O.push(W));return new Lr(x,O)}function Gt(e){return function(){return this.matches(e)}}function jt(e){return function(f){return f.matches(e)}}var Ft=Array.prototype.find;function vt(e){return function(){return Ft.call(this.children,e)}}function yt(){return this.firstElementChild}function Pt(e){return this.select(e==null?yt:vt(typeof e=="function"?e:jt(e)))}var Mt=Array.prototype.filter;function Ct(){return Array.from(this.children)}function Lt(e){return function(){return Mt.call(this.children,e)}}function Zt(e){return this.selectAll(e==null?Ct:Lt(typeof e=="function"?e:jt(e)))}function kt(e){typeof e!="function"&&(e=Gt(e));for(var f=this._groups,c=f.length,x=new Array(c),O=0;O<c;++O)for(var M=f[O],F=M.length,G=x[O]=[],W,tt=0;tt<F;++tt)(W=M[tt])&&e.call(W,W.__data__,tt,M)&&G.push(W);return new Lr(x,this._parents)}function Kt(e){return new Array(e.length)}function Dt(){return new Lr(this._enter||this._groups.map(Kt),this._parents)}function Xt(e,f){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=f}Xt.prototype={constructor:Xt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,f){return this._parent.insertBefore(e,f)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Vt(e){return function(){return e}}function Ut(e,f,c,x,O,M){for(var F=0,G,W=f.length,tt=M.length;F<tt;++F)(G=f[F])?(G.__data__=M[F],x[F]=G):c[F]=new Xt(e,M[F]);for(;F<W;++F)(G=f[F])&&(O[F]=G)}function st(e,f,c,x,O,M,F){var G,W,tt=new Map,et=f.length,Et=M.length,bt=new Array(et),wt;for(G=0;G<et;++G)(W=f[G])&&(bt[G]=wt=F.call(W,W.__data__,G,f)+"",tt.has(wt)?O[G]=W:tt.set(wt,W));for(G=0;G<Et;++G)wt=F.call(e,M[G],G,M)+"",(W=tt.get(wt))?(x[G]=W,W.__data__=M[G],tt.delete(wt)):c[G]=new Xt(e,M[G]);for(G=0;G<et;++G)(W=f[G])&&tt.get(bt[G])===W&&(O[G]=W)}function ht(e){return e.__data__}function rt(e,f){if(!arguments.length)return Array.from(this,ht);var c=f?st:Ut,x=this._parents,O=this._groups;typeof e!="function"&&(e=Vt(e));for(var M=O.length,F=new Array(M),G=new Array(M),W=new Array(M),tt=0;tt<M;++tt){var et=x[tt],Et=O[tt],bt=Et.length,wt=Ot(e.call(et,et&&et.__data__,tt,x)),or=wt.length,hr=G[tt]=new Array(or),mt=F[tt]=new Array(or),Bt=W[tt]=new Array(bt);c(et,Et,hr,mt,Bt,wt,f);for(var zt=0,$t=0,qt,tr;zt<or;++zt)if(qt=hr[zt]){for(zt>=$t&&($t=zt+1);!(tr=mt[$t])&&++$t<or;);qt._next=tr||null}}return F=new Lr(F,x),F._enter=G,F._exit=W,F}function Ot(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Tt(){return new Lr(this._exit||this._groups.map(Kt),this._parents)}function xt(e,f,c){var x=this.enter(),O=this,M=this.exit();return typeof e=="function"?(x=e(x),x&&(x=x.selection())):x=x.append(e+""),f!=null&&(O=f(O),O&&(O=O.selection())),c==null?M.remove():c(M),x&&O?x.merge(O).order():O}function pt(e){for(var f=e.selection?e.selection():e,c=this._groups,x=f._groups,O=c.length,M=x.length,F=Math.min(O,M),G=new Array(O),W=0;W<F;++W)for(var tt=c[W],et=x[W],Et=tt.length,bt=G[W]=new Array(Et),wt,or=0;or<Et;++or)(wt=tt[or]||et[or])&&(bt[or]=wt);for(;W<O;++W)G[W]=c[W];return new Lr(G,this._parents)}function _t(){for(var e=this._groups,f=-1,c=e.length;++f<c;)for(var x=e[f],O=x.length-1,M=x[O],F;--O>=0;)(F=x[O])&&(M&&F.compareDocumentPosition(M)^4&&M.parentNode.insertBefore(F,M),M=F);return this}function rr(e){e||(e=Q);function f(Et,bt){return Et&&bt?e(Et.__data__,bt.__data__):!Et-!bt}for(var c=this._groups,x=c.length,O=new Array(x),M=0;M<x;++M){for(var F=c[M],G=F.length,W=O[M]=new Array(G),tt,et=0;et<G;++et)(tt=F[et])&&(W[et]=tt);W.sort(f)}return new Lr(O,this._parents).order()}function Q(e,f){return e<f?-1:e>f?1:e>=f?0:NaN}function ot(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function it(){return Array.from(this)}function z(){for(var e=this._groups,f=0,c=e.length;f<c;++f)for(var x=e[f],O=0,M=x.length;O<M;++O){var F=x[O];if(F)return F}return null}function Z(){let e=0;for(const f of this)++e;return e}function K(){return!this.node()}function ct(e){for(var f=this._groups,c=0,x=f.length;c<x;++c)for(var O=f[c],M=0,F=O.length,G;M<F;++M)(G=O[M])&&e.call(G,G.__data__,M,O);return this}var At="http://www.w3.org/1999/xhtml",Nt={svg:"http://www.w3.org/2000/svg",xhtml:At,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Wt(e){var f=e+="",c=f.indexOf(":");return c>=0&&(f=e.slice(0,c))!=="xmlns"&&(e=e.slice(c+1)),Nt.hasOwnProperty(f)?{space:Nt[f],local:e}:e}function Jt(e){return function(){this.removeAttribute(e)}}function Yt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function er(e,f){return function(){this.setAttribute(e,f)}}function Xr(e,f){return function(){this.setAttributeNS(e.space,e.local,f)}}function en(e,f){return function(){var c=f.apply(this,arguments);c==null?this.removeAttribute(e):this.setAttribute(e,c)}}function an(e,f){return function(){var c=f.apply(this,arguments);c==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,c)}}function dn(e,f){var c=Wt(e);if(arguments.length<2){var x=this.node();return c.local?x.getAttributeNS(c.space,c.local):x.getAttribute(c)}return this.each((f==null?c.local?Yt:Jt:typeof f=="function"?c.local?an:en:c.local?Xr:er)(c,f))}function on(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function hn(e){return function(){this.style.removeProperty(e)}}function gn(e,f,c){return function(){this.style.setProperty(e,f,c)}}function Dn(e,f,c){return function(){var x=f.apply(this,arguments);x==null?this.style.removeProperty(e):this.style.setProperty(e,x,c)}}function yn(e,f,c){return arguments.length>1?this.each((f==null?hn:typeof f=="function"?Dn:gn)(e,f,c==null?"":c)):Nr(this.node(),e)}function Nr(e,f){return e.style.getPropertyValue(f)||on(e).getComputedStyle(e,null).getPropertyValue(f)}function br(e){return function(){delete this[e]}}function Fn(e,f){return function(){this[e]=f}}function Vr(e,f){return function(){var c=f.apply(this,arguments);c==null?delete this[e]:this[e]=c}}function Dr(e,f){return arguments.length>1?this.each((f==null?br:typeof f=="function"?Vr:Fn)(e,f)):this.node()[e]}function sn(e){return e.trim().split(/^|\s+/)}function jr(e){return e.classList||new dr(e)}function dr(e){this._node=e,this._names=sn(e.getAttribute("class")||"")}dr.prototype={add:function(e){var f=this._names.indexOf(e);f<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var f=this._names.indexOf(e);f>=0&&(this._names.splice(f,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Tr(e,f){for(var c=jr(e),x=-1,O=f.length;++x<O;)c.add(f[x])}function pn(e,f){for(var c=jr(e),x=-1,O=f.length;++x<O;)c.remove(f[x])}function Ln(e){return function(){Tr(this,e)}}function X(e){return function(){pn(this,e)}}function ut(e,f){return function(){(f.apply(this,arguments)?Tr:pn)(this,e)}}function q(e,f){var c=sn(e+"");if(arguments.length<2){for(var x=jr(this.node()),O=-1,M=c.length;++O<M;)if(!x.contains(c[O]))return!1;return!0}return this.each((typeof f=="function"?ut:f?Ln:X)(c,f))}function V(){this.textContent=""}function at(e){return function(){this.textContent=e}}function Ht(e){return function(){var f=e.apply(this,arguments);this.textContent=f==null?"":f}}function Rt(e){return arguments.length?this.each(e==null?V:(typeof e=="function"?Ht:at)(e)):this.node().textContent}function nr(){this.innerHTML=""}function ar(e){return function(){this.innerHTML=e}}function ur(e){return function(){var f=e.apply(this,arguments);this.innerHTML=f==null?"":f}}function Rr(e){return arguments.length?this.each(e==null?nr:(typeof e=="function"?ur:ar)(e)):this.node().innerHTML}function ft(){this.nextSibling&&this.parentNode.appendChild(this)}function sr(){return this.each(ft)}function Fr(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function mn(){return this.each(Fr)}function $n(e){return function(){var f=this.ownerDocument,c=this.namespaceURI;return c===At&&f.documentElement.namespaceURI===At?f.createElement(e):f.createElementNS(c,e)}}function Un(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function un(e){var f=Wt(e);return(f.local?Un:$n)(f)}function Aa(e){var f=typeof e=="function"?e:un(e);return this.select(function(){return this.appendChild(f.apply(this,arguments))})}function Ra(){return null}function Pa(e,f){var c=typeof e=="function"?e:un(e),x=f==null?Ra:typeof f=="function"?f:nt(f);return this.select(function(){return this.insertBefore(c.apply(this,arguments),x.apply(this,arguments)||null)})}function Ca(){var e=this.parentNode;e&&e.removeChild(this)}function Na(){return this.each(Ca)}function Ma(){var e=this.cloneNode(!1),f=this.parentNode;return f?f.insertBefore(e,this.nextSibling):e}function ba(){var e=this.cloneNode(!0),f=this.parentNode;return f?f.insertBefore(e,this.nextSibling):e}function Da(e){return this.select(e?ba:Ma)}function Fa(e){return arguments.length?this.property("__data__",e):this.node().__data__}function La(e){return function(f){e.call(this,f,this.__data__)}}function $a(e){return e.trim().split(/^|\s+/).map(function(f){var c="",x=f.indexOf(".");return x>=0&&(c=f.slice(x+1),f=f.slice(0,x)),{type:f,name:c}})}function Ua(e){return function(){var f=this.__on;if(f){for(var c=0,x=-1,O=f.length,M;c<O;++c)M=f[c],(!e.type||M.type===e.type)&&M.name===e.name?this.removeEventListener(M.type,M.listener,M.options):f[++x]=M;++x?f.length=x:delete this.__on}}}function Ba(e,f,c){return function(){var x=this.__on,O,M=La(f);if(x){for(var F=0,G=x.length;F<G;++F)if((O=x[F]).type===e.type&&O.name===e.name){this.removeEventListener(O.type,O.listener,O.options),this.addEventListener(O.type,O.listener=M,O.options=c),O.value=f;return}}this.addEventListener(e.type,M,c),O={type:e.type,name:e.name,value:f,listener:M,options:c},x?x.push(O):this.__on=[O]}}function ja(e,f,c){var x=$a(e+""),O,M=x.length,F;if(arguments.length<2){var G=this.node().__on;if(G){for(var W=0,tt=G.length,et;W<tt;++W)for(O=0,et=G[W];O<M;++O)if((F=x[O]).type===et.type&&F.name===et.name)return et.value}return}for(G=f?Ba:Ua,O=0;O<M;++O)this.each(G(x[O],f,c));return this}function Ne(e,f,c){var x=on(e),O=x.CustomEvent;typeof O=="function"?O=new O(f,c):(O=x.document.createEvent("Event"),c?(O.initEvent(f,c.bubbles,c.cancelable),O.detail=c.detail):O.initEvent(f,!1,!1)),e.dispatchEvent(O)}function wa(e,f){return function(){return Ne(this,e,f)}}function Ga(e,f){return function(){return Ne(this,e,f.apply(this,arguments))}}function Ha(e,f){return this.each((typeof f=="function"?Ga:wa)(e,f))}function*Va(){for(var e=this._groups,f=0,c=e.length;f<c;++f)for(var x=e[f],O=0,M=x.length,F;O<M;++O)(F=x[O])&&(yield F)}var Wa=[null];function Lr(e,f){this._groups=e,this._parents=f}function Me(){return new Lr([[document.documentElement]],Wa)}function za(){return this}Lr.prototype=Me.prototype={constructor:Lr,select:_,selectAll:It,selectChild:Pt,selectChildren:Zt,filter:kt,data:rt,enter:Dt,exit:Tt,join:xt,merge:pt,selection:za,order:_t,sort:rr,call:ot,nodes:it,node:z,size:Z,empty:K,each:ct,attr:dn,style:yn,property:Dr,classed:q,text:Rt,html:Rr,raise:sr,lower:mn,append:Aa,insert:Pa,remove:Na,clone:Da,datum:Fa,on:ja,dispatch:Ha,[Symbol.iterator]:Va};var xn=Me,Ya={value:()=>{}};function be(){for(var e=0,f=arguments.length,c={},x;e<f;++e){if(!(x=arguments[e]+"")||x in c||/[\s.]/.test(x))throw new Error("illegal type: "+x);c[x]=[]}return new Bn(c)}function Bn(e){this._=e}function Ka(e,f){return e.trim().split(/^|\s+/).map(function(c){var x="",O=c.indexOf(".");if(O>=0&&(x=c.slice(O+1),c=c.slice(0,O)),c&&!f.hasOwnProperty(c))throw new Error("unknown type: "+c);return{type:c,name:x}})}Bn.prototype=be.prototype={constructor:Bn,on:function(e,f){var c=this._,x=Ka(e+"",c),O,M=-1,F=x.length;if(arguments.length<2){for(;++M<F;)if((O=(e=x[M]).type)&&(O=Xa(c[O],e.name)))return O;return}if(f!=null&&typeof f!="function")throw new Error("invalid callback: "+f);for(;++M<F;)if(O=(e=x[M]).type)c[O]=De(c[O],e.name,f);else if(f==null)for(O in c)c[O]=De(c[O],e.name,null);return this},copy:function(){var e={},f=this._;for(var c in f)e[c]=f[c].slice();return new Bn(e)},call:function(e,f){if((O=arguments.length-2)>0)for(var c=new Array(O),x=0,O,M;x<O;++x)c[x]=arguments[x+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(M=this._[e],x=0,O=M.length;x<O;++x)M[x].value.apply(f,c)},apply:function(e,f,c){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var x=this._[e],O=0,M=x.length;O<M;++O)x[O].value.apply(f,c)}};function Xa(e,f){for(var c=0,x=e.length,O;c<x;++c)if((O=e[c]).name===f)return O.value}function De(e,f,c){for(var x=0,O=e.length;x<O;++x)if(e[x].name===f){e[x]=Ya,e=e.slice(0,x).concat(e.slice(x+1));break}return c!=null&&e.push({name:f,value:c}),e}var Ja=be,fn=0,Sn=0,En=0,Fe=1e3,jn,On,wn=0,_r=0,Gn=0,In=typeof performance=="object"&&performance.now?performance:Date,Le=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function se(){return _r||(Le(Qa),_r=In.now()+Gn)}function Qa(){_r=0}function Hn(){this._call=this._time=this._next=null}Hn.prototype=$e.prototype={constructor:Hn,restart:function(e,f,c){if(typeof e!="function")throw new TypeError("callback is not a function");c=(c==null?se():+c)+(f==null?0:+f),!this._next&&On!==this&&(On?On._next=this:jn=this,On=this),this._call=e,this._time=c,ie()},stop:function(){this._call&&(this._call=null,this._time=1/0,ie())}};function $e(e,f,c){var x=new Hn;return x.restart(e,f,c),x}function Za(){se(),++fn;for(var e=jn,f;e;)(f=_r-e._time)>=0&&e._call.call(void 0,f),e=e._next;--fn}function Ue(){_r=(wn=In.now())+Gn,fn=Sn=0;try{Za()}finally{fn=0,qa(),_r=0}}function ka(){var e=In.now(),f=e-wn;f>Fe&&(Gn-=f,wn=e)}function qa(){for(var e,f=jn,c,x=1/0;f;)f._call?(x>f._time&&(x=f._time),e=f,f=f._next):(c=f._next,f._next=null,f=e?e._next=c:jn=c);On=e,ie(x)}function ie(e){if(!fn){Sn&&(Sn=clearTimeout(Sn));var f=e-_r;f>24?(e<1/0&&(Sn=setTimeout(Ue,e-In.now()-Gn)),En&&(En=clearInterval(En))):(En||(wn=In.now(),En=setInterval(ka,Fe)),fn=1,Le(Ue))}}function Be(e,f,c){var x=new Hn;return f=f==null?0:+f,x.restart(O=>{x.stop(),e(O+f)},f,c),x}var _a=Ja("start","end","cancel","interrupt"),to=[],je=0,we=1,ue=2,Vn=3,Ge=4,fe=5,Wn=6;function zn(e,f,c,x,O,M){var F=e.__transition;if(!F)e.__transition={};else if(c in F)return;ro(e,c,{name:f,index:x,group:O,on:_a,tween:to,time:M.time,delay:M.delay,duration:M.duration,ease:M.ease,timer:null,state:je})}function le(e,f){var c=$r(e,f);if(c.state>je)throw new Error("too late; already scheduled");return c}function wr(e,f){var c=$r(e,f);if(c.state>Vn)throw new Error("too late; already running");return c}function $r(e,f){var c=e.__transition;if(!c||!(c=c[f]))throw new Error("transition not found");return c}function ro(e,f,c){var x=e.__transition,O;x[f]=c,c.timer=$e(M,0,c.time);function M(tt){c.state=we,c.timer.restart(F,c.delay,c.time),c.delay<=tt&&F(tt-c.delay)}function F(tt){var et,Et,bt,wt;if(c.state!==we)return W();for(et in x)if(wt=x[et],wt.name===c.name){if(wt.state===Vn)return Be(F);wt.state===Ge?(wt.state=Wn,wt.timer.stop(),wt.on.call("interrupt",e,e.__data__,wt.index,wt.group),delete x[et]):+et<f&&(wt.state=Wn,wt.timer.stop(),wt.on.call("cancel",e,e.__data__,wt.index,wt.group),delete x[et])}if(Be(function(){c.state===Vn&&(c.state=Ge,c.timer.restart(G,c.delay,c.time),G(tt))}),c.state=ue,c.on.call("start",e,e.__data__,c.index,c.group),c.state===ue){for(c.state=Vn,O=new Array(bt=c.tween.length),et=0,Et=-1;et<bt;++et)(wt=c.tween[et].value.call(e,e.__data__,c.index,c.group))&&(O[++Et]=wt);O.length=Et+1}}function G(tt){for(var et=tt<c.duration?c.ease.call(null,tt/c.duration):(c.timer.restart(W),c.state=fe,1),Et=-1,bt=O.length;++Et<bt;)O[Et].call(e,et);c.state===fe&&(c.on.call("end",e,e.__data__,c.index,c.group),W())}function W(){c.state=Wn,c.timer.stop(),delete x[f];for(var tt in x)return;delete e.__transition}}function no(e,f){var c=e.__transition,x,O,M=!0,F;if(c){f=f==null?null:f+"";for(F in c){if((x=c[F]).name!==f){M=!1;continue}O=x.state>ue&&x.state<fe,x.state=Wn,x.timer.stop(),x.on.call(O?"interrupt":"cancel",e,e.__data__,x.index,x.group),delete c[F]}M&&delete e.__transition}}function eo(e){return this.each(function(){no(this,e)})}function Jr(e,f){return e=+e,f=+f,function(c){return e*(1-c)+f*c}}var He=180/Math.PI,ve={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ve(e,f,c,x,O,M){var F,G,W;return(F=Math.sqrt(e*e+f*f))&&(e/=F,f/=F),(W=e*c+f*x)&&(c-=e*W,x-=f*W),(G=Math.sqrt(c*c+x*x))&&(c/=G,x/=G,W/=G),e*x<f*c&&(e=-e,f=-f,W=-W,F=-F),{translateX:O,translateY:M,rotate:Math.atan2(f,e)*He,skewX:Math.atan(W)*He,scaleX:F,scaleY:G}}var Yn;function ao(e){const f=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return f.isIdentity?ve:Ve(f.a,f.b,f.c,f.d,f.e,f.f)}function oo(e){return e==null||(Yn||(Yn=document.createElementNS("http://www.w3.org/2000/svg","g")),Yn.setAttribute("transform",e),!(e=Yn.transform.baseVal.consolidate()))?ve:(e=e.matrix,Ve(e.a,e.b,e.c,e.d,e.e,e.f))}function We(e,f,c,x){function O(tt){return tt.length?tt.pop()+" ":""}function M(tt,et,Et,bt,wt,or){if(tt!==Et||et!==bt){var hr=wt.push("translate(",null,f,null,c);or.push({i:hr-4,x:Jr(tt,Et)},{i:hr-2,x:Jr(et,bt)})}else(Et||bt)&&wt.push("translate("+Et+f+bt+c)}function F(tt,et,Et,bt){tt!==et?(tt-et>180?et+=360:et-tt>180&&(tt+=360),bt.push({i:Et.push(O(Et)+"rotate(",null,x)-2,x:Jr(tt,et)})):et&&Et.push(O(Et)+"rotate("+et+x)}function G(tt,et,Et,bt){tt!==et?bt.push({i:Et.push(O(Et)+"skewX(",null,x)-2,x:Jr(tt,et)}):et&&Et.push(O(Et)+"skewX("+et+x)}function W(tt,et,Et,bt,wt,or){if(tt!==Et||et!==bt){var hr=wt.push(O(wt)+"scale(",null,",",null,")");or.push({i:hr-4,x:Jr(tt,Et)},{i:hr-2,x:Jr(et,bt)})}else(Et!==1||bt!==1)&&wt.push(O(wt)+"scale("+Et+","+bt+")")}return function(tt,et){var Et=[],bt=[];return tt=e(tt),et=e(et),M(tt.translateX,tt.translateY,et.translateX,et.translateY,Et,bt),F(tt.rotate,et.rotate,Et,bt),G(tt.skewX,et.skewX,Et,bt),W(tt.scaleX,tt.scaleY,et.scaleX,et.scaleY,Et,bt),tt=et=null,function(wt){for(var or=-1,hr=bt.length,mt;++or<hr;)Et[(mt=bt[or]).i]=mt.x(wt);return Et.join("")}}}var so=We(ao,"px, ","px)","deg)"),io=We(oo,", ",")",")");function uo(e,f){var c,x;return function(){var O=wr(this,e),M=O.tween;if(M!==c){x=c=M;for(var F=0,G=x.length;F<G;++F)if(x[F].name===f){x=x.slice(),x.splice(F,1);break}}O.tween=x}}function fo(e,f,c){var x,O;if(typeof c!="function")throw new Error;return function(){var M=wr(this,e),F=M.tween;if(F!==x){O=(x=F).slice();for(var G={name:f,value:c},W=0,tt=O.length;W<tt;++W)if(O[W].name===f){O[W]=G;break}W===tt&&O.push(G)}M.tween=O}}function lo(e,f){var c=this._id;if(e+="",arguments.length<2){for(var x=$r(this.node(),c).tween,O=0,M=x.length,F;O<M;++O)if((F=x[O]).name===e)return F.value;return null}return this.each((f==null?uo:fo)(c,e,f))}function ce(e,f,c){var x=e._id;return e.each(function(){var O=wr(this,x);(O.value||(O.value={}))[f]=c.apply(this,arguments)}),function(O){return $r(O,x).value[f]}}function de(e,f,c){e.prototype=f.prototype=c,c.constructor=e}function ze(e,f){var c=Object.create(e.prototype);for(var x in f)c[x]=f[x];return c}function Tn(){}var An=.7,Kn=1/An,ln="\\s*([+-]?\\d+)\\s*",Rn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Gr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",vo=/^#([0-9a-f]{3,8})$/,co=new RegExp(`^rgb\\(${ln},${ln},${ln}\\)$`),ho=new RegExp(`^rgb\\(${Gr},${Gr},${Gr}\\)$`),go=new RegExp(`^rgba\\(${ln},${ln},${ln},${Rn}\\)$`),yo=new RegExp(`^rgba\\(${Gr},${Gr},${Gr},${Rn}\\)$`),po=new RegExp(`^hsl\\(${Rn},${Gr},${Gr}\\)$`),mo=new RegExp(`^hsla\\(${Rn},${Gr},${Gr},${Rn}\\)$`),Ye={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};de(Tn,Pn,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Ke,formatHex:Ke,formatHex8:xo,formatHsl:So,formatRgb:Xe,toString:Xe});function Ke(){return this.rgb().formatHex()}function xo(){return this.rgb().formatHex8()}function So(){return qe(this).formatHsl()}function Xe(){return this.rgb().formatRgb()}function Pn(e){var f,c;return e=(e+"").trim().toLowerCase(),(f=vo.exec(e))?(c=f[1].length,f=parseInt(f[1],16),c===6?Je(f):c===3?new Pr(f>>8&15|f>>4&240,f>>4&15|f&240,(f&15)<<4|f&15,1):c===8?Xn(f>>24&255,f>>16&255,f>>8&255,(f&255)/255):c===4?Xn(f>>12&15|f>>8&240,f>>8&15|f>>4&240,f>>4&15|f&240,((f&15)<<4|f&15)/255):null):(f=co.exec(e))?new Pr(f[1],f[2],f[3],1):(f=ho.exec(e))?new Pr(f[1]*255/100,f[2]*255/100,f[3]*255/100,1):(f=go.exec(e))?Xn(f[1],f[2],f[3],f[4]):(f=yo.exec(e))?Xn(f[1]*255/100,f[2]*255/100,f[3]*255/100,f[4]):(f=po.exec(e))?ke(f[1],f[2]/100,f[3]/100,1):(f=mo.exec(e))?ke(f[1],f[2]/100,f[3]/100,f[4]):Ye.hasOwnProperty(e)?Je(Ye[e]):e==="transparent"?new Pr(NaN,NaN,NaN,0):null}function Je(e){return new Pr(e>>16&255,e>>8&255,e&255,1)}function Xn(e,f,c,x){return x<=0&&(e=f=c=NaN),new Pr(e,f,c,x)}function Eo(e){return e instanceof Tn||(e=Pn(e)),e?(e=e.rgb(),new Pr(e.r,e.g,e.b,e.opacity)):new Pr}function Jn(e,f,c,x){return arguments.length===1?Eo(e):new Pr(e,f,c,x==null?1:x)}function Pr(e,f,c,x){this.r=+e,this.g=+f,this.b=+c,this.opacity=+x}de(Pr,Jn,ze(Tn,{brighter(e){return e=e==null?Kn:Math.pow(Kn,e),new Pr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?An:Math.pow(An,e),new Pr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Pr(tn(this.r),tn(this.g),tn(this.b),Qn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Qe,formatHex:Qe,formatHex8:Oo,formatRgb:Ze,toString:Ze}));function Qe(){return`#${rn(this.r)}${rn(this.g)}${rn(this.b)}`}function Oo(){return`#${rn(this.r)}${rn(this.g)}${rn(this.b)}${rn((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ze(){const e=Qn(this.opacity);return`${e===1?"rgb(":"rgba("}${tn(this.r)}, ${tn(this.g)}, ${tn(this.b)}${e===1?")":`, ${e})`}`}function Qn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function tn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function rn(e){return e=tn(e),(e<16?"0":"")+e.toString(16)}function ke(e,f,c,x){return x<=0?e=f=c=NaN:c<=0||c>=1?e=f=NaN:f<=0&&(e=NaN),new Ur(e,f,c,x)}function qe(e){if(e instanceof Ur)return new Ur(e.h,e.s,e.l,e.opacity);if(e instanceof Tn||(e=Pn(e)),!e)return new Ur;if(e instanceof Ur)return e;e=e.rgb();var f=e.r/255,c=e.g/255,x=e.b/255,O=Math.min(f,c,x),M=Math.max(f,c,x),F=NaN,G=M-O,W=(M+O)/2;return G?(f===M?F=(c-x)/G+(c<x)*6:c===M?F=(x-f)/G+2:F=(f-c)/G+4,G/=W<.5?M+O:2-M-O,F*=60):G=W>0&&W<1?0:F,new Ur(F,G,W,e.opacity)}function Io(e,f,c,x){return arguments.length===1?qe(e):new Ur(e,f,c,x==null?1:x)}function Ur(e,f,c,x){this.h=+e,this.s=+f,this.l=+c,this.opacity=+x}de(Ur,Io,ze(Tn,{brighter(e){return e=e==null?Kn:Math.pow(Kn,e),new Ur(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?An:Math.pow(An,e),new Ur(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,f=isNaN(e)||isNaN(this.s)?0:this.s,c=this.l,x=c+(c<.5?c:1-c)*f,O=2*c-x;return new Pr(he(e>=240?e-240:e+120,O,x),he(e,O,x),he(e<120?e+240:e-120,O,x),this.opacity)},clamp(){return new Ur(_e(this.h),Zn(this.s),Zn(this.l),Qn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Qn(this.opacity);return`${e===1?"hsl(":"hsla("}${_e(this.h)}, ${Zn(this.s)*100}%, ${Zn(this.l)*100}%${e===1?")":`, ${e})`}`}}));function _e(e){return e=(e||0)%360,e<0?e+360:e}function Zn(e){return Math.max(0,Math.min(1,e||0))}function he(e,f,c){return(e<60?f+(c-f)*e/60:e<180?c:e<240?f+(c-f)*(240-e)/60:f)*255}function ta(e,f,c,x,O){var M=e*e,F=M*e;return((1-3*e+3*M-F)*f+(4-6*M+3*F)*c+(1+3*e+3*M-3*F)*x+F*O)/6}function To(e){var f=e.length-1;return function(c){var x=c<=0?c=0:c>=1?(c=1,f-1):Math.floor(c*f),O=e[x],M=e[x+1],F=x>0?e[x-1]:2*O-M,G=x<f-1?e[x+2]:2*M-O;return ta((c-x/f)*f,F,O,M,G)}}function Ao(e){var f=e.length;return function(c){var x=Math.floor(((c%=1)<0?++c:c)*f),O=e[(x+f-1)%f],M=e[x%f],F=e[(x+1)%f],G=e[(x+2)%f];return ta((c-x/f)*f,O,M,F,G)}}var ra=e=>()=>e;function na(e,f){return function(c){return e+c*f}}function Ro(e,f,c){return e=Math.pow(e,c),f=Math.pow(f,c)-e,c=1/c,function(x){return Math.pow(e+x*f,c)}}function fi(e,f){var c=f-e;return c?na(e,c>180||c<-180?c-360*Math.round(c/360):c):constant(isNaN(e)?f:e)}function Po(e){return(e=+e)==1?ea:function(f,c){return c-f?Ro(f,c,e):ra(isNaN(f)?c:f)}}function ea(e,f){var c=f-e;return c?na(e,c):ra(isNaN(e)?f:e)}var aa=function e(f){var c=Po(f);function x(O,M){var F=c((O=Jn(O)).r,(M=Jn(M)).r),G=c(O.g,M.g),W=c(O.b,M.b),tt=ea(O.opacity,M.opacity);return function(et){return O.r=F(et),O.g=G(et),O.b=W(et),O.opacity=tt(et),O+""}}return x.gamma=e,x}(1);function oa(e){return function(f){var c=f.length,x=new Array(c),O=new Array(c),M=new Array(c),F,G;for(F=0;F<c;++F)G=Jn(f[F]),x[F]=G.r||0,O[F]=G.g||0,M[F]=G.b||0;return x=e(x),O=e(O),M=e(M),G.opacity=1,function(W){return G.r=x(W),G.g=O(W),G.b=M(W),G+""}}}var li=oa(To),vi=oa(Ao),ge=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ye=new RegExp(ge.source,"g");function Co(e){return function(){return e}}function No(e){return function(f){return e(f)+""}}function Mo(e,f){var c=ge.lastIndex=ye.lastIndex=0,x,O,M,F=-1,G=[],W=[];for(e=e+"",f=f+"";(x=ge.exec(e))&&(O=ye.exec(f));)(M=O.index)>c&&(M=f.slice(c,M),G[F]?G[F]+=M:G[++F]=M),(x=x[0])===(O=O[0])?G[F]?G[F]+=O:G[++F]=O:(G[++F]=null,W.push({i:F,x:Jr(x,O)})),c=ye.lastIndex;return c<f.length&&(M=f.slice(c),G[F]?G[F]+=M:G[++F]=M),G.length<2?W[0]?No(W[0].x):Co(f):(f=W.length,function(tt){for(var et=0,Et;et<f;++et)G[(Et=W[et]).i]=Et.x(tt);return G.join("")})}function sa(e,f){var c;return(typeof f=="number"?Jr:f instanceof Pn?aa:(c=Pn(f))?(f=c,aa):Mo)(e,f)}function bo(e){return function(){this.removeAttribute(e)}}function Do(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Fo(e,f,c){var x,O=c+"",M;return function(){var F=this.getAttribute(e);return F===O?null:F===x?M:M=f(x=F,c)}}function Lo(e,f,c){var x,O=c+"",M;return function(){var F=this.getAttributeNS(e.space,e.local);return F===O?null:F===x?M:M=f(x=F,c)}}function $o(e,f,c){var x,O,M;return function(){var F,G=c(this),W;return G==null?void this.removeAttribute(e):(F=this.getAttribute(e),W=G+"",F===W?null:F===x&&W===O?M:(O=W,M=f(x=F,G)))}}function Uo(e,f,c){var x,O,M;return function(){var F,G=c(this),W;return G==null?void this.removeAttributeNS(e.space,e.local):(F=this.getAttributeNS(e.space,e.local),W=G+"",F===W?null:F===x&&W===O?M:(O=W,M=f(x=F,G)))}}function Bo(e,f){var c=Wt(e),x=c==="transform"?io:sa;return this.attrTween(e,typeof f=="function"?(c.local?Uo:$o)(c,x,ce(this,"attr."+e,f)):f==null?(c.local?Do:bo)(c):(c.local?Lo:Fo)(c,x,f))}function jo(e,f){return function(c){this.setAttribute(e,f.call(this,c))}}function wo(e,f){return function(c){this.setAttributeNS(e.space,e.local,f.call(this,c))}}function Go(e,f){var c,x;function O(){var M=f.apply(this,arguments);return M!==x&&(c=(x=M)&&wo(e,M)),c}return O._value=f,O}function Ho(e,f){var c,x;function O(){var M=f.apply(this,arguments);return M!==x&&(c=(x=M)&&jo(e,M)),c}return O._value=f,O}function Vo(e,f){var c="attr."+e;if(arguments.length<2)return(c=this.tween(c))&&c._value;if(f==null)return this.tween(c,null);if(typeof f!="function")throw new Error;var x=Wt(e);return this.tween(c,(x.local?Go:Ho)(x,f))}function Wo(e,f){return function(){le(this,e).delay=+f.apply(this,arguments)}}function zo(e,f){return f=+f,function(){le(this,e).delay=f}}function Yo(e){var f=this._id;return arguments.length?this.each((typeof e=="function"?Wo:zo)(f,e)):$r(this.node(),f).delay}function Ko(e,f){return function(){wr(this,e).duration=+f.apply(this,arguments)}}function Xo(e,f){return f=+f,function(){wr(this,e).duration=f}}function Jo(e){var f=this._id;return arguments.length?this.each((typeof e=="function"?Ko:Xo)(f,e)):$r(this.node(),f).duration}function Qo(e,f){if(typeof f!="function")throw new Error;return function(){wr(this,e).ease=f}}function Zo(e){var f=this._id;return arguments.length?this.each(Qo(f,e)):$r(this.node(),f).ease}function ko(e,f){return function(){var c=f.apply(this,arguments);if(typeof c!="function")throw new Error;wr(this,e).ease=c}}function qo(e){if(typeof e!="function")throw new Error;return this.each(ko(this._id,e))}function _o(e){typeof e!="function"&&(e=Gt(e));for(var f=this._groups,c=f.length,x=new Array(c),O=0;O<c;++O)for(var M=f[O],F=M.length,G=x[O]=[],W,tt=0;tt<F;++tt)(W=M[tt])&&e.call(W,W.__data__,tt,M)&&G.push(W);return new Wr(x,this._parents,this._name,this._id)}function ts(e){if(e._id!==this._id)throw new Error;for(var f=this._groups,c=e._groups,x=f.length,O=c.length,M=Math.min(x,O),F=new Array(x),G=0;G<M;++G)for(var W=f[G],tt=c[G],et=W.length,Et=F[G]=new Array(et),bt,wt=0;wt<et;++wt)(bt=W[wt]||tt[wt])&&(Et[wt]=bt);for(;G<x;++G)F[G]=f[G];return new Wr(F,this._parents,this._name,this._id)}function rs(e){return(e+"").trim().split(/^|\s+/).every(function(f){var c=f.indexOf(".");return c>=0&&(f=f.slice(0,c)),!f||f==="start"})}function ns(e,f,c){var x,O,M=rs(f)?le:wr;return function(){var F=M(this,e),G=F.on;G!==x&&(O=(x=G).copy()).on(f,c),F.on=O}}function es(e,f){var c=this._id;return arguments.length<2?$r(this.node(),c).on.on(e):this.each(ns(c,e,f))}function as(e){return function(){var f=this.parentNode;for(var c in this.__transition)if(+c!==e)return;f&&f.removeChild(this)}}function os(){return this.on("end.remove",as(this._id))}function ss(e){var f=this._name,c=this._id;typeof e!="function"&&(e=nt(e));for(var x=this._groups,O=x.length,M=new Array(O),F=0;F<O;++F)for(var G=x[F],W=G.length,tt=M[F]=new Array(W),et,Et,bt=0;bt<W;++bt)(et=G[bt])&&(Et=e.call(et,et.__data__,bt,G))&&("__data__"in et&&(Et.__data__=et.__data__),tt[bt]=Et,zn(tt[bt],f,c,bt,tt,$r(et,c)));return new Wr(M,this._parents,f,c)}function is(e){var f=this._name,c=this._id;typeof e!="function"&&(e=gt(e));for(var x=this._groups,O=x.length,M=[],F=[],G=0;G<O;++G)for(var W=x[G],tt=W.length,et,Et=0;Et<tt;++Et)if(et=W[Et]){for(var bt=e.call(et,et.__data__,Et,W),wt,or=$r(et,c),hr=0,mt=bt.length;hr<mt;++hr)(wt=bt[hr])&&zn(wt,f,c,hr,bt,or);M.push(bt),F.push(et)}return new Wr(M,F,f,c)}var us=xn.prototype.constructor;function fs(){return new us(this._groups,this._parents)}function ls(e,f){var c,x,O;return function(){var M=Nr(this,e),F=(this.style.removeProperty(e),Nr(this,e));return M===F?null:M===c&&F===x?O:O=f(c=M,x=F)}}function ia(e){return function(){this.style.removeProperty(e)}}function vs(e,f,c){var x,O=c+"",M;return function(){var F=Nr(this,e);return F===O?null:F===x?M:M=f(x=F,c)}}function cs(e,f,c){var x,O,M;return function(){var F=Nr(this,e),G=c(this),W=G+"";return G==null&&(W=G=(this.style.removeProperty(e),Nr(this,e))),F===W?null:F===x&&W===O?M:(O=W,M=f(x=F,G))}}function ds(e,f){var c,x,O,M="style."+f,F="end."+M,G;return function(){var W=wr(this,e),tt=W.on,et=W.value[M]==null?G||(G=ia(f)):void 0;(tt!==c||O!==et)&&(x=(c=tt).copy()).on(F,O=et),W.on=x}}function hs(e,f,c){var x=(e+="")=="transform"?so:sa;return f==null?this.styleTween(e,ls(e,x)).on("end.style."+e,ia(e)):typeof f=="function"?this.styleTween(e,cs(e,x,ce(this,"style."+e,f))).each(ds(this._id,e)):this.styleTween(e,vs(e,x,f),c).on("end.style."+e,null)}function gs(e,f,c){return function(x){this.style.setProperty(e,f.call(this,x),c)}}function ys(e,f,c){var x,O;function M(){var F=f.apply(this,arguments);return F!==O&&(x=(O=F)&&gs(e,F,c)),x}return M._value=f,M}function ps(e,f,c){var x="style."+(e+="");if(arguments.length<2)return(x=this.tween(x))&&x._value;if(f==null)return this.tween(x,null);if(typeof f!="function")throw new Error;return this.tween(x,ys(e,f,c==null?"":c))}function ms(e){return function(){this.textContent=e}}function xs(e){return function(){var f=e(this);this.textContent=f==null?"":f}}function Ss(e){return this.tween("text",typeof e=="function"?xs(ce(this,"text",e)):ms(e==null?"":e+""))}function Es(e){return function(f){this.textContent=e.call(this,f)}}function Os(e){var f,c;function x(){var O=e.apply(this,arguments);return O!==c&&(f=(c=O)&&Es(O)),f}return x._value=e,x}function Is(e){var f="text";if(arguments.length<1)return(f=this.tween(f))&&f._value;if(e==null)return this.tween(f,null);if(typeof e!="function")throw new Error;return this.tween(f,Os(e))}function Ts(){for(var e=this._name,f=this._id,c=ua(),x=this._groups,O=x.length,M=0;M<O;++M)for(var F=x[M],G=F.length,W,tt=0;tt<G;++tt)if(W=F[tt]){var et=$r(W,f);zn(W,e,c,tt,F,{time:et.time+et.delay+et.duration,delay:0,duration:et.duration,ease:et.ease})}return new Wr(x,this._parents,e,c)}function As(){var e,f,c=this,x=c._id,O=c.size();return new Promise(function(M,F){var G={value:F},W={value:function(){--O===0&&M()}};c.each(function(){var tt=wr(this,x),et=tt.on;et!==e&&(f=(e=et).copy(),f._.cancel.push(G),f._.interrupt.push(G),f._.end.push(W)),tt.on=f}),O===0&&M()})}var Rs=0;function Wr(e,f,c,x){this._groups=e,this._parents=f,this._name=c,this._id=x}function Ps(e){return xn().transition(e)}function ua(){return++Rs}var zr=xn.prototype;Wr.prototype=Ps.prototype={constructor:Wr,select:ss,selectAll:is,selectChild:zr.selectChild,selectChildren:zr.selectChildren,filter:_o,merge:ts,selection:fs,transition:Ts,call:zr.call,nodes:zr.nodes,node:zr.node,size:zr.size,empty:zr.empty,each:zr.each,on:es,attr:Bo,attrTween:Vo,style:hs,styleTween:ps,text:Ss,textTween:Is,remove:os,tween:lo,delay:Yo,duration:Jo,ease:Zo,easeVarying:qo,end:As,[Symbol.iterator]:zr[Symbol.iterator]};function ci(e){return e*e*e}function di(e){return--e*e*e+1}function Cs(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Ns={time:null,delay:0,duration:250,ease:Cs};function Ms(e,f){for(var c;!(c=e.__transition)||!(c=c[f]);)if(!(e=e.parentNode))throw new Error(`transition ${f} not found`);return c}function bs(e){var f,c;e instanceof Wr?(f=e._id,e=e._name):(f=ua(),(c=Ns).time=se(),e=e==null?null:e+"");for(var x=this._groups,O=x.length,M=0;M<O;++M)for(var F=x[M],G=F.length,W,tt=0;tt<G;++tt)(W=F[tt])&&zn(W,e,f,tt,F,c||Ms(W,f));return new Wr(x,this._parents,e,f)}xn.prototype.interrupt=eo,xn.prototype.transition=bs;var fa={name:"drag"},pe={name:"space"},vn={name:"handle"},cn={name:"center"};const{abs:la,max:Or,min:Ir}=Math;function va(e){return[+e[0],+e[1]]}function me(e){return[va(e[0]),va(e[1])]}var kn={name:"x",handles:["w","e"].map(Cn),input:function(e,f){return e==null?null:[[+e[0],f[0][1]],[+e[1],f[1][1]]]},output:function(e){return e&&[e[0][0],e[1][0]]}},qn={name:"y",handles:["n","s"].map(Cn),input:function(e,f){return e==null?null:[[f[0][0],+e[0]],[f[1][0],+e[1]]]},output:function(e){return e&&[e[0][1],e[1][1]]}},Ds={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Cn),input:function(e){return e==null?null:me(e)},output:function(e){return e}},Yr={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},ca={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},da={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Fs={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Ls={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Cn(e){return{type:e}}function $s(e){return!e.ctrlKey&&!e.button}function Us(){var e=this.ownerSVGElement||this;return e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]}function Bs(){return navigator.maxTouchPoints||"ontouchstart"in this}function xe(e){for(;!e.__brush;)if(!(e=e.parentNode))return;return e.__brush}function js(e){return e[0][0]===e[1][0]||e[0][1]===e[1][1]}function hi(e){var f=e.__brush;return f?f.dim.output(f.selection):null}function gi(){return Se(kn)}function yi(){return Se(qn)}function pi(){return Se(Ds)}function Se(e){var f=Us,c=$s,x=Bs,O=!0,M=dispatch("start","brush","end"),F=6,G;function W(mt){var Bt=mt.property("__brush",hr).selectAll(".overlay").data([Cn("overlay")]);Bt.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Yr.overlay).merge(Bt).each(function(){var $t=xe(this).extent;select(this).attr("x",$t[0][0]).attr("y",$t[0][1]).attr("width",$t[1][0]-$t[0][0]).attr("height",$t[1][1]-$t[0][1])}),mt.selectAll(".selection").data([Cn("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Yr.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var zt=mt.selectAll(".handle").data(e.handles,function($t){return $t.type});zt.exit().remove(),zt.enter().append("rect").attr("class",function($t){return"handle handle--"+$t.type}).attr("cursor",function($t){return Yr[$t.type]}),mt.each(tt).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",bt).filter(x).on("touchstart.brush",bt).on("touchmove.brush",wt).on("touchend.brush touchcancel.brush",or).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}W.move=function(mt,Bt,zt){mt.tween?mt.on("start.brush",function($t){et(this,arguments).beforestart().start($t)}).on("interrupt.brush end.brush",function($t){et(this,arguments).end($t)}).tween("brush",function(){var $t=this,qt=$t.__brush,tr=et($t,arguments),Ar=qt.selection,Hr=e.input(typeof Bt=="function"?Bt.apply(this,arguments):Bt,qt.extent),fr=interpolate(Ar,Hr);function Br(ir){qt.selection=ir===1&&Hr===null?null:fr(ir),tt.call($t),tr.brush()}return Ar!==null&&Hr!==null?Br:Br(1)}):mt.each(function(){var $t=this,qt=arguments,tr=$t.__brush,Ar=e.input(typeof Bt=="function"?Bt.apply($t,qt):Bt,tr.extent),Hr=et($t,qt).beforestart();interrupt($t),tr.selection=Ar===null?null:Ar,tt.call($t),Hr.start(zt).brush(zt).end(zt)})},W.clear=function(mt,Bt){W.move(mt,null,Bt)};function tt(){var mt=select(this),Bt=xe(this).selection;Bt?(mt.selectAll(".selection").style("display",null).attr("x",Bt[0][0]).attr("y",Bt[0][1]).attr("width",Bt[1][0]-Bt[0][0]).attr("height",Bt[1][1]-Bt[0][1]),mt.selectAll(".handle").style("display",null).attr("x",function(zt){return zt.type[zt.type.length-1]==="e"?Bt[1][0]-F/2:Bt[0][0]-F/2}).attr("y",function(zt){return zt.type[0]==="s"?Bt[1][1]-F/2:Bt[0][1]-F/2}).attr("width",function(zt){return zt.type==="n"||zt.type==="s"?Bt[1][0]-Bt[0][0]+F:F}).attr("height",function(zt){return zt.type==="e"||zt.type==="w"?Bt[1][1]-Bt[0][1]+F:F})):mt.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function et(mt,Bt,zt){var $t=mt.__brush.emitter;return $t&&(!zt||!$t.clean)?$t:new Et(mt,Bt,zt)}function Et(mt,Bt,zt){this.that=mt,this.args=Bt,this.state=mt.__brush,this.active=0,this.clean=zt}Et.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(mt,Bt){return this.starting?(this.starting=!1,this.emit("start",mt,Bt)):this.emit("brush",mt),this},brush:function(mt,Bt){return this.emit("brush",mt,Bt),this},end:function(mt,Bt){return--this.active===0&&(delete this.state.emitter,this.emit("end",mt,Bt)),this},emit:function(mt,Bt,zt){var $t=select(this.that).datum();M.call(mt,this.that,new BrushEvent(mt,{sourceEvent:Bt,target:W,selection:e.output(this.state.selection),mode:zt,dispatch:M}),$t)}};function bt(mt){if(G&&!mt.touches||!c.apply(this,arguments))return;var Bt=this,zt=mt.target.__data__.type,$t=(O&&mt.metaKey?zt="overlay":zt)==="selection"?fa:O&&mt.altKey?cn:vn,qt=e===qn?null:Fs[zt],tr=e===kn?null:Ls[zt],Ar=xe(Bt),Hr=Ar.extent,fr=Ar.selection,Br=Hr[0][0],ir,gr,Qr=Hr[0][1],yr,pr,Zr=Hr[1][0],mr,xr,kr=Hr[1][1],Sr,Er,lr=0,vr=0,Pe,ne=qt&&tr&&O&&mt.shiftKey,ee,ae,Cr=Array.from(mt.touches||[mt],Qt=>{const cr=Qt.identifier;return Qt=pointer(Qt,Bt),Qt.point0=Qt.slice(),Qt.identifier=cr,Qt});interrupt(Bt);var Nn=et(Bt,arguments,!0).beforestart();if(zt==="overlay"){fr&&(Pe=!0);const Qt=[Cr[0],Cr[1]||Cr[0]];Ar.selection=fr=[[ir=e===qn?Br:Ir(Qt[0][0],Qt[1][0]),yr=e===kn?Qr:Ir(Qt[0][1],Qt[1][1])],[mr=e===qn?Zr:Or(Qt[0][0],Qt[1][0]),Sr=e===kn?kr:Or(Qt[0][1],Qt[1][1])]],Cr.length>1&&nn(mt)}else ir=fr[0][0],yr=fr[0][1],mr=fr[1][0],Sr=fr[1][1];gr=ir,pr=yr,xr=mr,Er=Sr;var Ea=select(Bt).attr("pointer-events","none"),Mn=Ea.selectAll(".overlay").attr("cursor",Yr[zt]);if(mt.touches)Nn.moved=Ia,Nn.ended=Ta;else{var Oa=select(mt.view).on("mousemove.brush",Ia,!0).on("mouseup.brush",Ta,!0);O&&Oa.on("keydown.brush",ii,!0).on("keyup.brush",ui,!0),dragDisable(mt.view)}tt.call(Bt),Nn.start(mt,$t.name);function Ia(Qt){for(const cr of Qt.changedTouches||[Qt])for(const bn of Cr)bn.identifier===cr.identifier&&(bn.cur=pointer(cr,Bt));if(ne&&!ee&&!ae&&Cr.length===1){const cr=Cr[0];la(cr.cur[0]-cr[0])>la(cr.cur[1]-cr[1])?ae=!0:ee=!0}for(const cr of Cr)cr.cur&&(cr[0]=cr.cur[0],cr[1]=cr.cur[1]);Pe=!0,noevent(Qt),nn(Qt)}function nn(Qt){const cr=Cr[0],bn=cr.point0;var qr;switch(lr=cr[0]-bn[0],vr=cr[1]-bn[1],$t){case pe:case fa:{qt&&(lr=Or(Br-ir,Ir(Zr-mr,lr)),gr=ir+lr,xr=mr+lr),tr&&(vr=Or(Qr-yr,Ir(kr-Sr,vr)),pr=yr+vr,Er=Sr+vr);break}case vn:{Cr[1]?(qt&&(gr=Or(Br,Ir(Zr,Cr[0][0])),xr=Or(Br,Ir(Zr,Cr[1][0])),qt=1),tr&&(pr=Or(Qr,Ir(kr,Cr[0][1])),Er=Or(Qr,Ir(kr,Cr[1][1])),tr=1)):(qt<0?(lr=Or(Br-ir,Ir(Zr-ir,lr)),gr=ir+lr,xr=mr):qt>0&&(lr=Or(Br-mr,Ir(Zr-mr,lr)),gr=ir,xr=mr+lr),tr<0?(vr=Or(Qr-yr,Ir(kr-yr,vr)),pr=yr+vr,Er=Sr):tr>0&&(vr=Or(Qr-Sr,Ir(kr-Sr,vr)),pr=yr,Er=Sr+vr));break}case cn:{qt&&(gr=Or(Br,Ir(Zr,ir-lr*qt)),xr=Or(Br,Ir(Zr,mr+lr*qt))),tr&&(pr=Or(Qr,Ir(kr,yr-vr*tr)),Er=Or(Qr,Ir(kr,Sr+vr*tr)));break}}xr<gr&&(qt*=-1,qr=ir,ir=mr,mr=qr,qr=gr,gr=xr,xr=qr,zt in ca&&Mn.attr("cursor",Yr[zt=ca[zt]])),Er<pr&&(tr*=-1,qr=yr,yr=Sr,Sr=qr,qr=pr,pr=Er,Er=qr,zt in da&&Mn.attr("cursor",Yr[zt=da[zt]])),Ar.selection&&(fr=Ar.selection),ee&&(gr=fr[0][0],xr=fr[1][0]),ae&&(pr=fr[0][1],Er=fr[1][1]),(fr[0][0]!==gr||fr[0][1]!==pr||fr[1][0]!==xr||fr[1][1]!==Er)&&(Ar.selection=[[gr,pr],[xr,Er]],tt.call(Bt),Nn.brush(Qt,$t.name))}function Ta(Qt){if(nopropagation(Qt),Qt.touches){if(Qt.touches.length)return;G&&clearTimeout(G),G=setTimeout(function(){G=null},500)}else dragEnable(Qt.view,Pe),Oa.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);Ea.attr("pointer-events","all"),Mn.attr("cursor",Yr.overlay),Ar.selection&&(fr=Ar.selection),js(fr)&&(Ar.selection=null,tt.call(Bt)),Nn.end(Qt,$t.name)}function ii(Qt){switch(Qt.keyCode){case 16:{ne=qt&&tr;break}case 18:{$t===vn&&(qt&&(mr=xr-lr*qt,ir=gr+lr*qt),tr&&(Sr=Er-vr*tr,yr=pr+vr*tr),$t=cn,nn(Qt));break}case 32:{($t===vn||$t===cn)&&(qt<0?mr=xr-lr:qt>0&&(ir=gr-lr),tr<0?Sr=Er-vr:tr>0&&(yr=pr-vr),$t=pe,Mn.attr("cursor",Yr.selection),nn(Qt));break}default:return}noevent(Qt)}function ui(Qt){switch(Qt.keyCode){case 16:{ne&&(ee=ae=ne=!1,nn(Qt));break}case 18:{$t===cn&&(qt<0?mr=xr:qt>0&&(ir=gr),tr<0?Sr=Er:tr>0&&(yr=pr),$t=vn,nn(Qt));break}case 32:{$t===pe&&(Qt.altKey?(qt&&(mr=xr-lr*qt,ir=gr+lr*qt),tr&&(Sr=Er-vr*tr,yr=pr+vr*tr),$t=cn):(qt<0?mr=xr:qt>0&&(ir=gr),tr<0?Sr=Er:tr>0&&(yr=pr),$t=vn),Mn.attr("cursor",Yr[zt]),nn(Qt));break}default:return}noevent(Qt)}}function wt(mt){et(this,arguments).moved(mt)}function or(mt){et(this,arguments).ended(mt)}function hr(){var mt=this.__brush||{selection:null};return mt.extent=me(f.apply(this,arguments)),mt.dim=e,mt}return W.extent=function(mt){return arguments.length?(f=typeof mt=="function"?mt:constant(me(mt)),W):f},W.filter=function(mt){return arguments.length?(c=typeof mt=="function"?mt:constant(!!mt),W):c},W.touchable=function(mt){return arguments.length?(x=typeof mt=="function"?mt:constant(!!mt),W):x},W.handleSize=function(mt){return arguments.length?(F=+mt,W):F},W.keyModifiers=function(mt){return arguments.length?(O=!!mt,W):O},W.on=function(){var mt=M.on.apply(M,arguments);return mt===M?W:mt},W}function ws(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function Gs(e){const f=typeof(e==null?void 0:e.requestAnimationFrame)=="function"&&typeof(e==null?void 0:e.cancelAnimationFrame)=="function",c=typeof(e==null?void 0:e.requestIdleCallback)=="function"&&typeof(e==null?void 0:e.cancelIdleCallback)=="function",x=M=>setTimeout(M,1),O=M=>clearTimeout(M);return[f?e.requestAnimationFrame:x,f?e.cancelAnimationFrame:O,c?e.requestIdleCallback:x,c?e.cancelIdleCallback:O]}const _n=ws(),Hs=_n==null?void 0:_n.document,[mi,xi,Si,Ei]=Gs(_n);var Vs=Object.defineProperty,ha=Object.getOwnPropertySymbols,Ws=Object.prototype.hasOwnProperty,zs=Object.prototype.propertyIsEnumerable,ga=(e,f,c)=>f in e?Vs(e,f,{enumerable:!0,configurable:!0,writable:!0,value:c}):e[f]=c,ya=(e,f)=>{for(var c in f||(f={}))Ws.call(f,c)&&ga(e,c,f[c]);if(ha)for(var c of ha(f))zs.call(f,c)&&ga(e,c,f[c]);return e};const Oi=e=>e||e===0,Ys=e=>typeof e=="function",te=e=>typeof e=="string",Ee=e=>typeof e=="number",Ks=e=>typeof e=="undefined",pa=e=>typeof e!="undefined",Ii=e=>typeof e=="boolean",Ti=e=>Math.ceil(e/10)*10,Ai=e=>Math.ceil(e)+.5,Ri=e=>e[1]-e[0],Oe=e=>typeof e=="object",Xs=e=>Ks(e)||e===null||te(e)&&e.length===0||Oe(e)&&!(e instanceof Date)&&Object.keys(e).length===0||Ee(e)&&isNaN(e),Js=e=>!Xs(e),Ie=e=>Array.isArray(e),re=e=>e&&!(e!=null&&e.nodeType)&&Oe(e)&&!Ie(e);function Pi(e,f,c){return pa(e[f])?e[f]:c}function Ci(e,f){let c=!1;return Object.keys(e).forEach(x=>e[x]===f&&(c=!0)),c}function Ni(e,f,...c){const x=Ys(e);return x&&e.call(f,...c),x}function Mi(e,f){let c=0;const x=function(...O){!--c&&f.apply(this,...O)};"duration"in e?e.each(()=>++c).on("end",x):(++c,e.call(x))}function bi(e){return te(e)?e.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):e}function Di(e,f,c=[-1,1],x=!1){if(!(!e||!te(f)))if(f.indexOf(` +`)===-1)e.text(f);else{const O=[e.text(),f].map(M=>M.replace(/[\s\n]/g,""));if(O[0]!==O[1]){const M=f.split(` +`),F=x?M.length-1:1;e.html(""),M.forEach((G,W)=>{e.append("tspan").attr("x",0).attr("dy",`${W===0?c[0]*F:c[1]}em`).text(G)})}}}function Qs(e){const{x:f,y:c,width:x,height:O}=e.getBBox();return[{x:f,y:c+O},{x:f,y:c},{x:f+x,y:c},{x:f+x,y:c+O}]}function Fi(e){const{width:f,height:c}=e.getBoundingClientRect(),x=Qs(e),O=x[0].x,M=Math.min(x[0].y,x[1].y);return{x:O,y:M,width:f,height:c}}function Li(e,f){var c;const x=e&&((c=e.touches||e.sourceEvent&&e.sourceEvent.touches)==null?void 0:c[0]);let O=[0,0];try{O=d3Pointer(x||e,f)}catch(M){}return O.map(M=>isNaN(M)?0:M)}function Zs(e){const{event:f,$el:c}=e,x=c.subchart.main||c.main;let O;return f&&f.type==="brush"?O=f.selection:x&&(O=x.select(".bb-brush").node())&&(O=d3BrushSelection(O)),O}function $i(e){return!("rect"in e)||"rect"in e&&e.hasAttribute("width")&&e.rect.width!==+e.getAttribute("width")?e.rect=e.getBoundingClientRect():e.rect}function Ui(e=!0,f=0,c=1e4){const x=window.crypto||window.msCrypto,O=x?f+x.getRandomValues(new Uint32Array(1))[0]%(c-f+1):Math.floor(Math.random()*(c-f)+f);return e?String(O):O}function ma(e,f,c,x,O){if(c>x)return-1;const M=Math.floor((c+x)/2);let{x:F,w:G=0}=e[M];return O&&(F=e[M].y,G=e[M].h),f>=F&&f<=F+G?M:f<F?ma(e,f,c,M-1,O):ma(e,f,M+1,x,O)}function Bi(e){const f=Zs(e);return f?f[0]===f[1]:!0}function ji(...e){const f=c=>{if(re(c)&&c.constructor){const x=new c.constructor;for(const O in c)x[O]=f(c[O]);return x}return c};return e.map(c=>f(c)).reduce((c,x)=>ya(ya({},c),x))}function ks(e={},f){Ie(f)&&f.forEach(c=>ks(e,c));for(const c in f)/^\d+$/.test(c)||c in e||(e[c]=f[c]);return e}const wi=e=>e.charAt(0).toUpperCase()+e.slice(1);function Gi(e,f="-"){return e.split(f).map((c,x)=>x?c.charAt(0).toUpperCase()+c.slice(1).toLowerCase():c.toLowerCase()).join("")}const qs=e=>[].slice.call(e);function Hi(e,f,c){const{rootSelector:x="",sheet:O}=e,F=`${x} ${(G=>G.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(f)} {${c.join(";")}}`;return O[O.insertRule?"insertRule":"addRule"](F,O.cssRules.length)}function Vi(e){let f=[];return e.forEach(c=>{var x;try{c.cssRules&&c.cssRules.length&&(f=f.concat(qs(c.cssRules)))}catch(O){(x=window.console)==null||x.warn(`Error while reading rules from ${c.href}: ${O.toString()}`)}}),f}function Wi(e){var f,c,x,O;return{x:((c=(f=window.pageXOffset)!=null?f:window.scrollX)!=null?c:0)+e.scrollLeft,y:((O=(x=window.pageYOffset)!=null?x:window.scrollY)!=null?O:0)+e.scrollTop}}function zi(e){const f=e?e.transform:null,c=f&&f.baseVal;return c&&c.numberOfItems?c.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function Yi(e){const f=e[0]instanceof Date,c=(f?e.map(Number):e).filter((x,O,M)=>M.indexOf(x)===O);return f?c.map(x=>new Date(x)):c}function Ki(e){return e&&e.length?e.reduce((f,c)=>f.concat(c)):[]}function Te(e,...f){if(!f.length||f.length===1&&!f[0])return e;const c=f.shift();return re(e)&&re(c)&&Object.keys(c).forEach(x=>{const O=c[x];re(O)?(!e[x]&&(e[x]={}),e[x]=Te(e[x],O)):e[x]=Ie(O)?O.concat():O}),Te(e,...f)}function _s(e,f=!0){let c;return e[0]instanceof Date?c=f?(x,O)=>x-O:(x,O)=>O-x:f&&!e.every(isNaN)?c=(x,O)=>x-O:f||(c=(x,O)=>x>O&&-1||x<O&&1||x===O&&0),e.concat().sort(c)}function Xi(e,f){let c=f.filter(x=>Js(x));return c.length?Ee(c[0])?c=Math[e](...c):c[0]instanceof Date&&(c=_s(c,e==="min")[0]):c=void 0,c}const Ji=(e,f,c=1)=>{const x=[],O=Math.max(0,Math.ceil((f-e)/c))|0;for(let M=e;M<O;M++)x.push(e+M*c);return x},Qi={mouse:(()=>{const e=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(f,c,x=e())=>{f.dispatchEvent(new MouseEvent(c,x))}}catch(f){return(c,x,O=e())=>{const M=Hs.createEvent("MouseEvent");M.initMouseEvent(x,O.bubbles,O.cancelable,_n,0,O.screenX,O.screenY,O.clientX,O.clientY,!1,!1,!1,!1,0,null),c.dispatchEvent(M)}}})(),touch:(e,f,c)=>{const x=new Touch(Te({identifier:Date.now(),target:e,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},c));e.dispatchEvent(new TouchEvent(f,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[x],targetTouches:[],changedTouches:[x]}))}};function Zi(e,f){let c=e;for(const x in f)c=c.replace(new RegExp(`{=${x}}`,"g"),f[x]);return c}function ki(e){var f;let c;if(e instanceof Date)c=e;else if(te(e)){const{config:x,format:O}=this;c=(f=O.dataTime(x.data_xFormat)(e))!=null?f:new Date(e)}else Ee(e)&&!isNaN(e)&&(c=new Date(+e));return(!c||isNaN(+c))&&console&&console.error&&console.error(`Failed to parse x '${e}' to Date object`),c}function qi(){var e,f;return((e=document)==null?void 0:e.hidden)===!1||((f=document)==null?void 0:f.visibilityState)==="visible"}function _i(e,f){const{DocumentTouch:c,matchMedia:x,navigator:O}=window;let M=!1;if(f)if(O&&"maxTouchPoints"in O)M=O.maxTouchPoints>0;else if("ontouchmove"in window||c&&document instanceof c)M=!0;else if(x!=null&&x("(pointer:coarse)").matches)M=!0;else{const G=O.userAgent;M=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(G)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(G)}return e&&((x==null?void 0:x("any-hover:hover").matches)||(x==null?void 0:x("any-pointer:fine").matches))&&"mouse"||M&&"touch"||"mouse"}function ti(e,f){f()===!1?requestAnimationFrame(()=>ti(e,f)):e()}function ri(e){const f=this.config;let c,x,O;const M=()=>{const F=x.shift();if(F&&c&&Oe(c)&&F in c)return c=c[F],M();if(!F)return c};Object.keys(f).forEach(F=>{c=e,x=F.split("_"),O=M(),pa(O)&&(f[F]=O)}),this.api&&(this.state.orgConfig=e)}var ni=Object.defineProperty,ei=(e,f,c)=>f in e?ni(e,f,{enumerable:!0,configurable:!0,writable:!0,value:c}):e[f]=c,Ae=(e,f,c)=>(ei(e,typeof f!="symbol"?f+"":f,c),c);class xa{constructor(f={}){Ae(this,"$$"),Ae(this,"options"),this.options=f}$beforeInit(){}$init(){}$afterInit(){}$redraw(){}$willDestroy(){Object.keys(this).forEach(f=>{this[f]=null,delete this[f]})}}Ae(xa,"version","3.12.4");class ai{constructor(){return{selector:void 0}}}var oi=Object.defineProperty,si=(e,f,c)=>f in e?oi(e,f,{enumerable:!0,configurable:!0,writable:!0,value:c}):e[f]=c,Re=(e,f,c)=>(si(e,typeof f!="symbol"?f+"":f,c),c);class Sa extends xa{constructor(f){return super(f),Re(this,"config"),Re(this,"element"),this.config=new ai,this}$beforeInit(){ri.call(this,this.options),this.validate(),this.element=[].slice.call(document.querySelectorAll(this.config.selector)),this.overrideInternals(),this.overrideOptions(),this.overHandler=this.overHandler.bind(this),this.moveHandler=this.moveHandler.bind(this),this.outHandler=this.outHandler.bind(this)}validate(){const{$$:f,config:c}=this;let x="";if((!c.selector||!document.querySelector(c.selector))&&(x="No holder elements found from given selector option."),(f.hasType("bubble")||f.hasType("scatter")||f.hasArcType(f.data.targets))&&(x="Contains non supported chart types."),x)throw new Error(`[Sparkline plugin] ${x}`)}overrideInternals(){const{$$:f}=this,{getBarW:c,getIndices:x}=f;f.getIndices=function(O,M,F){return F==="getShapeX"?{}:x.call(this,O,M)},f.getBarW=function(O,M){return c.call(this,O,M,1)}}overrideOptions(){const{config:f}=this.$$;if(f.legend_show=!1,f.resize_auto=!1,f.axis_x_show=!1,f.padding!==!1){const c=x=>Object.keys(x||{}).length>0;c(f.axis_x_padding)&&(f.axis_x_padding={left:15,right:15,unit:"px"}),c(f.axis_y_padding)&&(f.axis_y_padding=5)}f.axis_y_show=!1,f.tooltip_position||(f.tooltip_position=function(c,x,O){const{internal:{state:{event:M}}}=this;let F=M.pageY-O*1.35,G=M.pageX-x/2;return F<0&&(F=0),G<0&&(G=0),{top:F,left:G}})}$init(){var f;const{$$:{$el:c}}=this;c.chart.style("width","0").style("height","0").style("pointer-events","none"),(f=c.tooltip)!=null&&f.node()&&document.body.appendChild(c.tooltip.node())}$afterInit(){const{$$:f}=this;f.$el.svg.attr("style",null).style("width","0").style("height","0"),this.bindEvents(!0)}bindEvents(f=!0){const{$$:{config:c}}=this;if(c.interaction_enabled&&c.tooltip_show){const x=`${f?"add":"remove"}EventListener`;this.element.forEach(O=>{const M=O.querySelector("svg");M[x]("mouseover",this.overHandler),M[x]("mousemove",this.moveHandler),M[x]("mouseout",this.outHandler)})}}overHandler(f){const{$$:c}=this,{state:{eventReceiver:x}}=c;x.rect=f.target.getBoundingClientRect()}moveHandler(f){var c,x,O,M;const{$$:F}=this,G=F.getDataIndexFromEvent(f),W=(c=F.api.data(f.target.__id))==null?void 0:c[0],tt=(x=W==null?void 0:W.values)==null?void 0:x[G];tt&&!tt.name&&(tt.name=tt.id),F.state.event=f,(O=F.isPointFocusOnly)!=null&&O.call(F)&&tt&&((M=F.showCircleFocus)==null||M.call(F,[tt])),F.setExpand(G,W.id,!0),F.showTooltip([tt],f.target)}outHandler(f){const{$$:c}=this;c.state.event=f,c.isPointFocusOnly()?c.hideCircleFocus():c.unexpandCircles(),c.hideTooltip()}$redraw(){var f;const{$$:c}=this,{$el:x}=c;let O=this.element;const M=c.api.data(),F=(f=x.chart.html().match(/<svg[^>]*>/))==null?void 0:f[0];if(O.length<M.length){const G=x.chart.node();for(let W=M.length-O.length;W>0;W--)G.parentNode.insertBefore(O[0].cloneNode(),G.nextSibling);this.element=document.querySelectorAll(this.config.selector),O=this.element}M.map(G=>G.id).forEach((G,W)=>{const tt=`.${l.target}-${G}`,et=x.main.selectAll(tt);let Et=O[W].querySelector("svg");Et||(O[W].innerHTML=`${F}</svg>`,Et=O[W].querySelector("svg"),Et.__id=G),Et.querySelector(tt)||et.style("opacity",null),et.style("fill","none").style("opacity",null),Et.innerHTML="",Et.appendChild(et.node())})}$willDestroy(){this.bindEvents(!1),this.element.forEach(f=>{f.innerHTML=""})}}Re(Sa,"version","0.0.1")},85156:function(i,h,t){var r=t(23583),n=t(82453),a=TypeError;i.exports=function(o){if(r(o))return o;throw new a(n(o)+" is not a function")}},80042:function(i,h,t){var r=t(11051),n=t(82453),a=TypeError;i.exports=function(o){if(r(o))return o;throw new a(n(o)+" is not a constructor")}},53408:function(i,h,t){var r=t(52427),n=String,a=TypeError;i.exports=function(o){if(r(o))return o;throw new a("Can't set "+n(o)+" as a prototype")}},76602:function(i,h,t){var r=t(172).has;i.exports=function(n){return r(n),n}},23811:function(i,h,t){var r=t(18565),n=t(5406),a=t(7831).f,o=r("unscopables"),s=Array.prototype;s[o]===void 0&&a(s,o,{configurable:!0,value:n(null)}),i.exports=function(u){s[o][u]=!0}},24487:function(i,h,t){var r=t(22149).charAt;i.exports=function(n,a,o){return a+(o?r(n,a).length:1)}},12833:function(i,h,t){var r=t(95307),n=TypeError;i.exports=function(a,o){if(r(o,a))return a;throw new n("Incorrect invocation")}},25001:function(i,h,t){var r=t(37540),n=String,a=TypeError;i.exports=function(o){if(r(o))return o;throw new a(n(o)+" is not an object")}},3237:function(i){i.exports=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"},58360:function(i,h,t){var r=t(84756),n=t(14274),a=TypeError;i.exports=r(ArrayBuffer.prototype,"byteLength","get")||function(o){if(n(o)!=="ArrayBuffer")throw new a("ArrayBuffer expected");return o.byteLength}},30736:function(i,h,t){var r=t(11286),n=t(58360),a=r(ArrayBuffer.prototype.slice);i.exports=function(o){if(n(o)!==0)return!1;try{return a(o,0,0),!1}catch(s){return!0}}},72058:function(i,h,t){var r=t(72069);i.exports=r(function(){if(typeof ArrayBuffer=="function"){var n=new ArrayBuffer(8);Object.isExtensible(n)&&Object.defineProperty(n,"a",{value:8})}})},65006:function(i,h,t){var r=t(66009),n=t(11286),a=t(84756),o=t(9450),s=t(30736),u=t(58360),l=t(63741),v=t(99050),d=r.structuredClone,g=r.ArrayBuffer,y=r.DataView,p=r.TypeError,m=Math.min,E=g.prototype,S=y.prototype,I=n(E.slice),P=a(E,"resizable","get"),A=a(E,"maxByteLength","get"),R=n(S.getInt8),N=n(S.setInt8);i.exports=(v||l)&&function(T,C,b){var L=u(T),D=C===void 0?L:o(C),$=!P||!P(T),w;if(s(T))throw new p("ArrayBuffer is detached");if(v&&(T=d(T,{transfer:[T]}),L===D&&(b||$)))return T;if(L>=D&&(!b||$))w=I(T,0,D);else{var H=b&&!$&&A?{maxByteLength:A(T)}:void 0;w=new g(D,H);for(var U=new y(T),B=new y(w),j=m(D,L),Y=0;Y<j;Y++)N(B,Y,R(U,Y))}return v||l(T),w}},88037:function(i,h,t){var r=t(3237),n=t(92986),a=t(66009),o=t(23583),s=t(37540),u=t(94879),l=t(9205),v=t(82453),d=t(90809),g=t(16142),y=t(85500),p=t(95307),m=t(26313),E=t(15861),S=t(18565),I=t(36374),P=t(82367),A=P.enforce,R=P.get,N=a.Int8Array,T=N&&N.prototype,C=a.Uint8ClampedArray,b=C&&C.prototype,L=N&&m(N),D=T&&m(T),$=Object.prototype,w=a.TypeError,H=S("toStringTag"),U=I("TYPED_ARRAY_TAG"),B="TypedArrayConstructor",j=r&&!!E&&l(a.opera)!=="Opera",Y=!1,k,J,nt,_={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},dt={BigInt64Array:8,BigUint64Array:8},lt=function(yt){if(!s(yt))return!1;var Pt=l(yt);return Pt==="DataView"||u(_,Pt)||u(dt,Pt)},gt=function(vt){var yt=m(vt);if(s(yt)){var Pt=R(yt);return Pt&&u(Pt,B)?Pt[B]:gt(yt)}},St=function(vt){if(!s(vt))return!1;var yt=l(vt);return u(_,yt)||u(dt,yt)},It=function(vt){if(St(vt))return vt;throw new w("Target is not a typed array")},Gt=function(vt){if(o(vt)&&(!E||p(L,vt)))return vt;throw new w(v(vt)+" is not a typed array constructor")},jt=function(vt,yt,Pt,Mt){if(n){if(Pt)for(var Ct in _){var Lt=a[Ct];if(Lt&&u(Lt.prototype,vt))try{delete Lt.prototype[vt]}catch(Zt){try{Lt.prototype[vt]=yt}catch(kt){}}}(!D[vt]||Pt)&&g(D,vt,Pt?yt:j&&T[vt]||yt,Mt)}},Ft=function(vt,yt,Pt){var Mt,Ct;if(n){if(E){if(Pt){for(Mt in _)if(Ct=a[Mt],Ct&&u(Ct,vt))try{delete Ct[vt]}catch(Lt){}}if(!L[vt]||Pt)try{return g(L,vt,Pt?yt:j&&L[vt]||yt)}catch(Lt){}else return}for(Mt in _)Ct=a[Mt],Ct&&(!Ct[vt]||Pt)&&g(Ct,vt,yt)}};for(k in _)J=a[k],nt=J&&J.prototype,nt?A(nt)[B]=J:j=!1;for(k in dt)J=a[k],nt=J&&J.prototype,nt&&(A(nt)[B]=J);if((!j||!o(L)||L===Function.prototype)&&(L=function(){throw new w("Incorrect invocation")},j))for(k in _)a[k]&&E(a[k],L);if((!j||!D||D===$)&&(D=L.prototype,j))for(k in _)a[k]&&E(a[k].prototype,D);if(j&&m(b)!==D&&E(b,D),n&&!u(D,H)){Y=!0,y(D,H,{configurable:!0,get:function(){return s(this)?this[U]:void 0}});for(k in _)a[k]&&d(a[k],U,k)}i.exports={NATIVE_ARRAY_BUFFER_VIEWS:j,TYPED_ARRAY_TAG:Y&&U,aTypedArray:It,aTypedArrayConstructor:Gt,exportTypedArrayMethod:jt,exportTypedArrayStaticMethod:Ft,getTypedArrayConstructor:gt,isView:lt,isTypedArray:St,TypedArray:L,TypedArrayPrototype:D}},17468:function(i,h,t){var r=t(66009),n=t(11286),a=t(92986),o=t(3237),s=t(86588),u=t(90809),l=t(85500),v=t(2725),d=t(72069),g=t(12833),y=t(12105),p=t(45344),m=t(9450),E=t(93279),S=t(25212),I=t(26313),P=t(15861),A=t(43011),R=t(22806),N=t(32345),T=t(93706),C=t(78401),b=t(82367),L=s.PROPER,D=s.CONFIGURABLE,$="ArrayBuffer",w="DataView",H="prototype",U="Wrong length",B="Wrong index",j=b.getterFor($),Y=b.getterFor(w),k=b.set,J=r[$],nt=J,_=nt&&nt[H],dt=r[w],lt=dt&&dt[H],gt=Object.prototype,St=r.Array,It=r.RangeError,Gt=n(A),jt=n([].reverse),Ft=S.pack,vt=S.unpack,yt=function(st){return[st&255]},Pt=function(st){return[st&255,st>>8&255]},Mt=function(st){return[st&255,st>>8&255,st>>16&255,st>>24&255]},Ct=function(st){return st[3]<<24|st[2]<<16|st[1]<<8|st[0]},Lt=function(st){return Ft(E(st),23,4)},Zt=function(st){return Ft(st,52,8)},kt=function(st,ht,rt){l(st[H],ht,{configurable:!0,get:function(){return rt(this)[ht]}})},Kt=function(st,ht,rt,Ot){var Tt=Y(st),xt=m(rt),pt=!!Ot;if(xt+ht>Tt.byteLength)throw new It(B);var _t=Tt.bytes,rr=xt+Tt.byteOffset,Q=R(_t,rr,rr+ht);return pt?Q:jt(Q)},Dt=function(st,ht,rt,Ot,Tt,xt){var pt=Y(st),_t=m(rt),rr=Ot(+Tt),Q=!!xt;if(_t+ht>pt.byteLength)throw new It(B);for(var ot=pt.bytes,it=_t+pt.byteOffset,z=0;z<ht;z++)ot[it+z]=rr[Q?z:ht-z-1]};if(!o)nt=function(ht){g(this,_);var rt=m(ht);k(this,{type:$,bytes:Gt(St(rt),0),byteLength:rt}),a||(this.byteLength=rt,this.detached=!1)},_=nt[H],dt=function(ht,rt,Ot){g(this,lt),g(ht,_);var Tt=j(ht),xt=Tt.byteLength,pt=y(rt);if(pt<0||pt>xt)throw new It("Wrong offset");if(Ot=Ot===void 0?xt-pt:p(Ot),pt+Ot>xt)throw new It(U);k(this,{type:w,buffer:ht,byteLength:Ot,byteOffset:pt,bytes:Tt.bytes}),a||(this.buffer=ht,this.byteLength=Ot,this.byteOffset=pt)},lt=dt[H],a&&(kt(nt,"byteLength",j),kt(dt,"buffer",Y),kt(dt,"byteLength",Y),kt(dt,"byteOffset",Y)),v(lt,{getInt8:function(ht){return Kt(this,1,ht)[0]<<24>>24},getUint8:function(ht){return Kt(this,1,ht)[0]},getInt16:function(ht){var rt=Kt(this,2,ht,arguments.length>1?arguments[1]:!1);return(rt[1]<<8|rt[0])<<16>>16},getUint16:function(ht){var rt=Kt(this,2,ht,arguments.length>1?arguments[1]:!1);return rt[1]<<8|rt[0]},getInt32:function(ht){return Ct(Kt(this,4,ht,arguments.length>1?arguments[1]:!1))},getUint32:function(ht){return Ct(Kt(this,4,ht,arguments.length>1?arguments[1]:!1))>>>0},getFloat32:function(ht){return vt(Kt(this,4,ht,arguments.length>1?arguments[1]:!1),23)},getFloat64:function(ht){return vt(Kt(this,8,ht,arguments.length>1?arguments[1]:!1),52)},setInt8:function(ht,rt){Dt(this,1,ht,yt,rt)},setUint8:function(ht,rt){Dt(this,1,ht,yt,rt)},setInt16:function(ht,rt){Dt(this,2,ht,Pt,rt,arguments.length>2?arguments[2]:!1)},setUint16:function(ht,rt){Dt(this,2,ht,Pt,rt,arguments.length>2?arguments[2]:!1)},setInt32:function(ht,rt){Dt(this,4,ht,Mt,rt,arguments.length>2?arguments[2]:!1)},setUint32:function(ht,rt){Dt(this,4,ht,Mt,rt,arguments.length>2?arguments[2]:!1)},setFloat32:function(ht,rt){Dt(this,4,ht,Lt,rt,arguments.length>2?arguments[2]:!1)},setFloat64:function(ht,rt){Dt(this,8,ht,Zt,rt,arguments.length>2?arguments[2]:!1)}});else{var Xt=L&&J.name!==$;!d(function(){J(1)})||!d(function(){new J(-1)})||d(function(){return new J,new J(1.5),new J(NaN),J.length!==1||Xt&&!D})?(nt=function(ht){return g(this,_),N(new J(m(ht)),this,nt)},nt[H]=_,_.constructor=nt,T(nt,J)):Xt&&D&&u(J,"name",$),P&&I(lt)!==gt&&P(lt,gt);var Vt=new dt(new nt(2)),Ut=n(lt.setInt8);Vt.setInt8(0,2147483648),Vt.setInt8(1,2147483649),(Vt.getInt8(0)||!Vt.getInt8(1))&&v(lt,{setInt8:function(ht,rt){Ut(this,ht,rt<<24>>24)},setUint8:function(ht,rt){Ut(this,ht,rt<<24>>24)}},{unsafe:!0})}C(nt,$),C(dt,w),i.exports={ArrayBuffer:nt,DataView:dt}},81499:function(i,h,t){var r=t(49671),n=t(4652),a=t(82628),o=t(12384),s=Math.min;i.exports=[].copyWithin||function(l,v){var d=r(this),g=a(d),y=n(l,g),p=n(v,g),m=arguments.length>2?arguments[2]:void 0,E=s((m===void 0?g:n(m,g))-p,g-y),S=1;for(p<y&&y<p+E&&(S=-1,p+=E-1,y+=E-1);E-- >0;)p in d?d[y]=d[p]:o(d,y),y+=S,p+=S;return d}},43011:function(i,h,t){var r=t(49671),n=t(4652),a=t(82628);i.exports=function(s){for(var u=r(this),l=a(u),v=arguments.length,d=n(v>1?arguments[1]:void 0,l),g=v>2?arguments[2]:void 0,y=g===void 0?l:n(g,l);y>d;)u[d++]=s;return u}},13349:function(i,h,t){var r=t(66655).forEach,n=t(6148),a=n("forEach");i.exports=a?[].forEach:function(s){return r(this,s,arguments.length>1?arguments[1]:void 0)}},5220:function(i,h,t){var r=t(82628);i.exports=function(n,a,o){for(var s=0,u=arguments.length>2?o:r(a),l=new n(u);u>s;)l[s]=a[s++];return l}},48258:function(i,h,t){var r=t(45526),n=t(96499),a=t(49671),o=t(39969),s=t(48199),u=t(11051),l=t(82628),v=t(84082),d=t(90619),g=t(81077),y=Array;i.exports=function(m){var E=a(m),S=u(this),I=arguments.length,P=I>1?arguments[1]:void 0,A=P!==void 0;A&&(P=r(P,I>2?arguments[2]:void 0));var R=g(E),N=0,T,C,b,L,D,$;if(R&&!(this===y&&s(R)))for(C=S?new this:[],L=d(E,R),D=L.next;!(b=n(D,L)).done;N++)$=A?o(L,P,[b.value,N],!0):b.value,v(C,N,$);else for(T=l(E),C=S?new this(T):y(T);T>N;N++)$=A?P(E[N],N):E[N],v(C,N,$);return C.length=N,C}},94319:function(i,h,t){var r=t(36859),n=t(4652),a=t(82628),o=function(s){return function(u,l,v){var d=r(u),g=a(d);if(g===0)return!s&&-1;var y=n(v,g),p;if(s&&l!==l){for(;g>y;)if(p=d[y++],p!==p)return!0}else for(;g>y;y++)if((s||y in d)&&d[y]===l)return s||y||0;return!s&&-1}};i.exports={includes:o(!0),indexOf:o(!1)}},73849:function(i,h,t){var r=t(45526),n=t(72181),a=t(49671),o=t(82628),s=function(u){var l=u===1;return function(v,d,g){for(var y=a(v),p=n(y),m=o(p),E=r(d,g),S,I;m-- >0;)if(S=p[m],I=E(S,m,y),I)switch(u){case 0:return S;case 1:return m}return l?-1:void 0}};i.exports={findLast:s(0),findLastIndex:s(1)}},66655:function(i,h,t){var r=t(45526),n=t(11286),a=t(72181),o=t(49671),s=t(82628),u=t(62083),l=n([].push),v=function(d){var g=d===1,y=d===2,p=d===3,m=d===4,E=d===6,S=d===7,I=d===5||E;return function(P,A,R,N){for(var T=o(P),C=a(T),b=s(C),L=r(A,R),D=0,$=N||u,w=g?$(P,b):y||S?$(P,0):void 0,H,U;b>D;D++)if((I||D in C)&&(H=C[D],U=L(H,D,T),d))if(g)w[D]=U;else if(U)switch(d){case 3:return!0;case 5:return H;case 6:return D;case 2:l(w,H)}else switch(d){case 4:return!1;case 7:l(w,H)}return E?-1:p||m?m:w}};i.exports={forEach:v(0),map:v(1),filter:v(2),some:v(3),every:v(4),find:v(5),findIndex:v(6),filterReject:v(7)}},58465:function(i,h,t){var r=t(66543),n=t(36859),a=t(12105),o=t(82628),s=t(6148),u=Math.min,l=[].lastIndexOf,v=!!l&&1/[1].lastIndexOf(1,-0)<0,d=s("lastIndexOf"),g=v||!d;i.exports=g?function(p){if(v)return r(l,this,arguments)||0;var m=n(this),E=o(m);if(E===0)return-1;var S=E-1;for(arguments.length>1&&(S=u(S,a(arguments[1]))),S<0&&(S=E+S);S>=0;S--)if(S in m&&m[S]===p)return S||0;return-1}:l},52183:function(i,h,t){var r=t(72069),n=t(18565),a=t(73126),o=n("species");i.exports=function(s){return a>=51||!r(function(){var u=[],l=u.constructor={};return l[o]=function(){return{foo:1}},u[s](Boolean).foo!==1})}},6148:function(i,h,t){var r=t(72069);i.exports=function(n,a){var o=[][n];return!!o&&r(function(){o.call(null,a||function(){return 1},1)})}},97264:function(i,h,t){var r=t(85156),n=t(49671),a=t(72181),o=t(82628),s=TypeError,u="Reduce of empty array with no initial value",l=function(v){return function(d,g,y,p){var m=n(d),E=a(m),S=o(m);if(r(g),S===0&&y<2)throw new s(u);var I=v?S-1:0,P=v?-1:1;if(y<2)for(;;){if(I in E){p=E[I],I+=P;break}if(I+=P,v?I<0:S<=I)throw new s(u)}for(;v?I>=0:S>I;I+=P)I in E&&(p=g(p,E[I],I,m));return p}};i.exports={left:l(!1),right:l(!0)}},2213:function(i,h,t){var r=t(92986),n=t(3438),a=TypeError,o=Object.getOwnPropertyDescriptor,s=r&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(u){return u instanceof TypeError}}();i.exports=s?function(u,l){if(n(u)&&!o(u,"length").writable)throw new a("Cannot set read only .length");return u.length=l}:function(u,l){return u.length=l}},22806:function(i,h,t){var r=t(11286);i.exports=r([].slice)},13270:function(i,h,t){var r=t(22806),n=Math.floor,a=function(o,s){var u=o.length;if(u<8)for(var l=1,v,d;l<u;){for(d=l,v=o[l];d&&s(o[d-1],v)>0;)o[d]=o[--d];d!==l++&&(o[d]=v)}else for(var g=n(u/2),y=a(r(o,0,g),s),p=a(r(o,g),s),m=y.length,E=p.length,S=0,I=0;S<m||I<E;)o[S+I]=S<m&&I<E?s(y[S],p[I])<=0?y[S++]:p[I++]:S<m?y[S++]:p[I++];return o};i.exports=a},37555:function(i,h,t){var r=t(3438),n=t(11051),a=t(37540),o=t(18565),s=o("species"),u=Array;i.exports=function(l){var v;return r(l)&&(v=l.constructor,n(v)&&(v===u||r(v.prototype))?v=void 0:a(v)&&(v=v[s],v===null&&(v=void 0))),v===void 0?u:v}},62083:function(i,h,t){var r=t(37555);i.exports=function(n,a){return new(r(n))(a===0?0:a)}},61638:function(i,h,t){var r=t(82628);i.exports=function(n,a){for(var o=r(n),s=new a(o),u=0;u<o;u++)s[u]=n[o-u-1];return s}},72302:function(i,h,t){var r=t(82628),n=t(12105),a=RangeError;i.exports=function(o,s,u,l){var v=r(o),d=n(u),g=d<0?v+d:d;if(g>=v||g<0)throw new a("Incorrect index");for(var y=new s(v),p=0;p<v;p++)y[p]=p===g?l:o[p];return y}},6210:function(i){var h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t=h+"+/",r=h+"-_",n=function(a){for(var o={},s=0;s<64;s++)o[a.charAt(s)]=s;return o};i.exports={i2c:t,c2i:n(t),i2cUrl:r,c2iUrl:n(r)}},39969:function(i,h,t){var r=t(25001),n=t(99797);i.exports=function(a,o,s,u){try{return u?o(r(s)[0],s[1]):o(s)}catch(l){n(a,"throw",l)}}},97494:function(i,h,t){var r=t(18565),n=r("iterator"),a=!1;try{var o=0,s={next:function(){return{done:!!o++}},return:function(){a=!0}};s[n]=function(){return this},Array.from(s,function(){throw 2})}catch(u){}i.exports=function(u,l){try{if(!l&&!a)return!1}catch(g){return!1}var v=!1;try{var d={};d[n]=function(){return{next:function(){return{done:v=!0}}}},u(d)}catch(g){}return v}},14274:function(i,h,t){var r=t(11286),n=r({}.toString),a=r("".slice);i.exports=function(o){return a(n(o),8,-1)}},9205:function(i,h,t){var r=t(67878),n=t(23583),a=t(14274),o=t(18565),s=o("toStringTag"),u=Object,l=a(function(){return arguments}())==="Arguments",v=function(d,g){try{return d[g]}catch(y){}};i.exports=r?a:function(d){var g,y,p;return d===void 0?"Undefined":d===null?"Null":typeof(y=v(g=u(d),s))=="string"?y:l?a(g):(p=a(g))==="Object"&&n(g.callee)?"Arguments":p}},34440:function(i,h,t){var r=t(5406),n=t(85500),a=t(2725),o=t(45526),s=t(12833),u=t(5683),l=t(55902),v=t(10218),d=t(10659),g=t(36167),y=t(92986),p=t(31853).fastKey,m=t(82367),E=m.set,S=m.getterFor;i.exports={getConstructor:function(I,P,A,R){var N=I(function(D,$){s(D,T),E(D,{type:P,index:r(null),first:void 0,last:void 0,size:0}),y||(D.size=0),u($)||l($,D[R],{that:D,AS_ENTRIES:A})}),T=N.prototype,C=S(P),b=function(D,$,w){var H=C(D),U=L(D,$),B,j;return U?U.value=w:(H.last=U={index:j=p($,!0),key:$,value:w,previous:B=H.last,next:void 0,removed:!1},H.first||(H.first=U),B&&(B.next=U),y?H.size++:D.size++,j!=="F"&&(H.index[j]=U)),D},L=function(D,$){var w=C(D),H=p($),U;if(H!=="F")return w.index[H];for(U=w.first;U;U=U.next)if(U.key===$)return U};return a(T,{clear:function(){for(var $=this,w=C($),H=w.first;H;)H.removed=!0,H.previous&&(H.previous=H.previous.next=void 0),H=H.next;w.first=w.last=void 0,w.index=r(null),y?w.size=0:$.size=0},delete:function(D){var $=this,w=C($),H=L($,D);if(H){var U=H.next,B=H.previous;delete w.index[H.index],H.removed=!0,B&&(B.next=U),U&&(U.previous=B),w.first===H&&(w.first=U),w.last===H&&(w.last=B),y?w.size--:$.size--}return!!H},forEach:function($){for(var w=C(this),H=o($,arguments.length>1?arguments[1]:void 0),U;U=U?U.next:w.first;)for(H(U.value,U.key,this);U&&U.removed;)U=U.previous},has:function($){return!!L(this,$)}}),a(T,A?{get:function($){var w=L(this,$);return w&&w.value},set:function($,w){return b(this,$===0?0:$,w)}}:{add:function($){return b(this,$=$===0?0:$,$)}}),y&&n(T,"size",{configurable:!0,get:function(){return C(this).size}}),N},setStrong:function(I,P,A){var R=P+" Iterator",N=S(P),T=S(R);v(I,P,function(C,b){E(this,{type:R,target:C,state:N(C),kind:b,last:void 0})},function(){for(var C=T(this),b=C.kind,L=C.last;L&&L.removed;)L=L.previous;return!C.target||!(C.last=L=L?L.next:C.state.first)?(C.target=void 0,d(void 0,!0)):d(b==="keys"?L.key:b==="values"?L.value:[L.key,L.value],!1)},A?"entries":"values",!A,!0),g(P)}}},94667:function(i,h,t){var r=t(11286),n=t(2725),a=t(31853).getWeakData,o=t(12833),s=t(25001),u=t(5683),l=t(37540),v=t(55902),d=t(66655),g=t(94879),y=t(82367),p=y.set,m=y.getterFor,E=d.find,S=d.findIndex,I=r([].splice),P=0,A=function(T){return T.frozen||(T.frozen=new R)},R=function(){this.entries=[]},N=function(T,C){return E(T.entries,function(b){return b[0]===C})};R.prototype={get:function(T){var C=N(this,T);if(C)return C[1]},has:function(T){return!!N(this,T)},set:function(T,C){var b=N(this,T);b?b[1]=C:this.entries.push([T,C])},delete:function(T){var C=S(this.entries,function(b){return b[0]===T});return~C&&I(this.entries,C,1),!!~C}},i.exports={getConstructor:function(T,C,b,L){var D=T(function(U,B){o(U,$),p(U,{type:C,id:P++,frozen:void 0}),u(B)||v(B,U[L],{that:U,AS_ENTRIES:b})}),$=D.prototype,w=m(C),H=function(U,B,j){var Y=w(U),k=a(s(B),!0);return k===!0?A(Y).set(B,j):k[Y.id]=j,U};return n($,{delete:function(U){var B=w(this);if(!l(U))return!1;var j=a(U);return j===!0?A(B).delete(U):j&&g(j,B.id)&&delete j[B.id]},has:function(B){var j=w(this);if(!l(B))return!1;var Y=a(B);return Y===!0?A(j).has(B):Y&&g(Y,j.id)}}),n($,b?{get:function(B){var j=w(this);if(l(B)){var Y=a(B);return Y===!0?A(j).get(B):Y?Y[j.id]:void 0}},set:function(B,j){return H(this,B,j)}}:{add:function(B){return H(this,B,!0)}}),D}}},89378:function(i,h,t){var r=t(14304),n=t(66009),a=t(11286),o=t(13278),s=t(16142),u=t(31853),l=t(55902),v=t(12833),d=t(23583),g=t(5683),y=t(37540),p=t(72069),m=t(97494),E=t(78401),S=t(32345);i.exports=function(I,P,A){var R=I.indexOf("Map")!==-1,N=I.indexOf("Weak")!==-1,T=R?"set":"add",C=n[I],b=C&&C.prototype,L=C,D={},$=function(k){var J=a(b[k]);s(b,k,k==="add"?function(_){return J(this,_===0?0:_),this}:k==="delete"?function(nt){return N&&!y(nt)?!1:J(this,nt===0?0:nt)}:k==="get"?function(_){return N&&!y(_)?void 0:J(this,_===0?0:_)}:k==="has"?function(_){return N&&!y(_)?!1:J(this,_===0?0:_)}:function(_,dt){return J(this,_===0?0:_,dt),this})},w=o(I,!d(C)||!(N||b.forEach&&!p(function(){new C().entries().next()})));if(w)L=A.getConstructor(P,I,R,T),u.enable();else if(o(I,!0)){var H=new L,U=H[T](N?{}:-0,1)!==H,B=p(function(){H.has(1)}),j=m(function(k){new C(k)}),Y=!N&&p(function(){for(var k=new C,J=5;J--;)k[T](J,J);return!k.has(-0)});j||(L=P(function(k,J){v(k,b);var nt=S(new C,k,L);return g(J)||l(J,nt[T],{that:nt,AS_ENTRIES:R}),nt}),L.prototype=b,b.constructor=L),(B||Y)&&($("delete"),$("has"),R&&$("get")),(Y||U)&&$(T),N&&b.clear&&delete b.clear}return D[I]=L,r({global:!0,constructor:!0,forced:L!==C},D),E(L,I),N||A.setStrong(L,I,R),L}},93706:function(i,h,t){var r=t(94879),n=t(16885),a=t(71349),o=t(7831);i.exports=function(s,u,l){for(var v=n(u),d=o.f,g=a.f,y=0;y<v.length;y++){var p=v[y];!r(s,p)&&!(l&&r(l,p))&&d(s,p,g(u,p))}}},8790:function(i,h,t){var r=t(18565),n=r("match");i.exports=function(a){var o=/./;try{"/./"[a](o)}catch(s){try{return o[n]=!1,"/./"[a](o)}catch(u){}}return!1}},87501:function(i,h,t){var r=t(72069);i.exports=!r(function(){function n(){}return n.prototype.constructor=null,Object.getPrototypeOf(new n)!==n.prototype})},68422:function(i,h,t){var r=t(11286),n=t(2068),a=t(17361),o=/"/g,s=r("".replace);i.exports=function(u,l,v,d){var g=a(n(u)),y="<"+l;return v!==""&&(y+=" "+v+'="'+s(a(d),o,""")+'"'),y+">"+g+"</"+l+">"}},10659:function(i){i.exports=function(h,t){return{value:h,done:t}}},90809:function(i,h,t){var r=t(92986),n=t(7831),a=t(18526);i.exports=r?function(o,s,u){return n.f(o,s,a(1,u))}:function(o,s,u){return o[s]=u,o}},18526:function(i){i.exports=function(h,t){return{enumerable:!(h&1),configurable:!(h&2),writable:!(h&4),value:t}}},84082:function(i,h,t){var r=t(92986),n=t(7831),a=t(18526);i.exports=function(o,s,u){r?n.f(o,s,a(0,u)):o[s]=u}},11890:function(i,h,t){var r=t(11286),n=t(72069),a=t(61607).start,o=RangeError,s=isFinite,u=Math.abs,l=Date.prototype,v=l.toISOString,d=r(l.getTime),g=r(l.getUTCDate),y=r(l.getUTCFullYear),p=r(l.getUTCHours),m=r(l.getUTCMilliseconds),E=r(l.getUTCMinutes),S=r(l.getUTCMonth),I=r(l.getUTCSeconds);i.exports=n(function(){return v.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!n(function(){v.call(new Date(NaN))})?function(){if(!s(d(this)))throw new o("Invalid time value");var A=this,R=y(A),N=m(A),T=R<0?"-":R>9999?"+":"";return T+a(u(R),T?6:4,0)+"-"+a(S(A)+1,2,0)+"-"+a(g(A),2,0)+"T"+a(p(A),2,0)+":"+a(E(A),2,0)+":"+a(I(A),2,0)+"."+a(N,3,0)+"Z"}:v},84306:function(i,h,t){var r=t(25001),n=t(2064),a=TypeError;i.exports=function(o){if(r(this),o==="string"||o==="default")o="string";else if(o!=="number")throw new a("Incorrect hint");return n(this,o)}},85500:function(i,h,t){var r=t(13749),n=t(7831);i.exports=function(a,o,s){return s.get&&r(s.get,o,{getter:!0}),s.set&&r(s.set,o,{setter:!0}),n.f(a,o,s)}},16142:function(i,h,t){var r=t(23583),n=t(7831),a=t(13749),o=t(36003);i.exports=function(s,u,l,v){v||(v={});var d=v.enumerable,g=v.name!==void 0?v.name:u;if(r(l)&&a(l,g,v),v.global)d?s[u]=l:o(u,l);else{try{v.unsafe?s[u]&&(d=!0):delete s[u]}catch(y){}d?s[u]=l:n.f(s,u,{value:l,enumerable:!1,configurable:!v.nonConfigurable,writable:!v.nonWritable})}return s}},2725:function(i,h,t){var r=t(16142);i.exports=function(n,a,o){for(var s in a)r(n,s,a[s],o);return n}},36003:function(i,h,t){var r=t(66009),n=Object.defineProperty;i.exports=function(a,o){try{n(r,a,{value:o,configurable:!0,writable:!0})}catch(s){r[a]=o}return o}},12384:function(i,h,t){var r=t(82453),n=TypeError;i.exports=function(a,o){if(!delete a[o])throw new n("Cannot delete property "+r(o)+" of "+r(a))}},92986:function(i,h,t){var r=t(72069);i.exports=!r(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})},63741:function(i,h,t){var r=t(66009),n=t(18096),a=t(99050),o=r.structuredClone,s=r.ArrayBuffer,u=r.MessageChannel,l=!1,v,d,g,y;if(a)l=function(p){o(p,{transfer:[p]})};else if(s)try{u||(v=n("worker_threads"),v&&(u=v.MessageChannel)),u&&(d=new u,g=new s(2),y=function(p){d.port1.postMessage(null,[p])},g.byteLength===2&&(y(g),g.byteLength===0&&(l=y)))}catch(p){}i.exports=l},85501:function(i,h,t){var r=t(66009),n=t(37540),a=r.document,o=n(a)&&n(a.createElement);i.exports=function(s){return o?a.createElement(s):{}}},20095:function(i){var h=TypeError,t=9007199254740991;i.exports=function(r){if(r>t)throw h("Maximum allowed index exceeded");return r}},74408:function(i){i.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},93014:function(i){i.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},39882:function(i,h,t){var r=t(85501),n=r("span").classList,a=n&&n.constructor&&n.constructor.prototype;i.exports=a===Object.prototype?void 0:a},54040:function(i,h,t){var r=t(89042),n=r.match(/firefox\/(\d+)/i);i.exports=!!n&&+n[1]},63144:function(i,h,t){var r=t(56422),n=t(42954);i.exports=!r&&!n&&typeof window=="object"&&typeof document=="object"},5017:function(i){i.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"},56422:function(i){i.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},87216:function(i,h,t){var r=t(89042);i.exports=/MSIE|Trident/.test(r)},92150:function(i,h,t){var r=t(89042);i.exports=/ipad|iphone|ipod/i.test(r)&&typeof Pebble!="undefined"},51149:function(i,h,t){var r=t(89042);i.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},42954:function(i,h,t){var r=t(66009),n=t(14274);i.exports=n(r.process)==="process"},81539:function(i,h,t){var r=t(89042);i.exports=/web0s(?!.*chrome)/i.test(r)},89042:function(i){i.exports=typeof navigator!="undefined"&&String(navigator.userAgent)||""},73126:function(i,h,t){var r=t(66009),n=t(89042),a=r.process,o=r.Deno,s=a&&a.versions||o&&o.version,u=s&&s.v8,l,v;u&&(l=u.split("."),v=l[0]>0&&l[0]<4?1:+(l[0]+l[1])),!v&&n&&(l=n.match(/Edge\/(\d+)/),(!l||l[1]>=74)&&(l=n.match(/Chrome\/(\d+)/),l&&(v=+l[1]))),i.exports=v},68674:function(i,h,t){var r=t(89042),n=r.match(/AppleWebKit\/(\d+)\./);i.exports=!!n&&+n[1]},75785:function(i){i.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},40851:function(i,h,t){var r=t(11286),n=Error,a=r("".replace),o=function(l){return String(new n(l).stack)}("zxcasd"),s=/\n\s*at [^:]*:[^\n]*/,u=s.test(o);i.exports=function(l,v){if(u&&typeof l=="string"&&!n.prepareStackTrace)for(;v--;)l=a(l,s,"");return l}},97077:function(i,h,t){var r=t(90809),n=t(40851),a=t(16929),o=Error.captureStackTrace;i.exports=function(s,u,l,v){a&&(o?o(s,u):r(s,"stack",n(l,v)))}},16929:function(i,h,t){var r=t(72069),n=t(18526);i.exports=!r(function(){var a=new Error("a");return"stack"in a?(Object.defineProperty(a,"stack",n(1,7)),a.stack!==7):!0})},58434:function(i,h,t){var r=t(92986),n=t(72069),a=t(25001),o=t(15453),s=Error.prototype.toString,u=n(function(){if(r){var l=Object.create(Object.defineProperty({},"name",{get:function(){return this===l}}));if(s.call(l)!=="true")return!0}return s.call({message:1,name:2})!=="2: 1"||s.call({})!=="Error"});i.exports=u?function(){var v=a(this),d=o(v.name,"Error"),g=o(v.message);return d?g?d+": "+g:d:g}:s},14304:function(i,h,t){var r=t(66009),n=t(71349).f,a=t(90809),o=t(16142),s=t(36003),u=t(93706),l=t(13278);i.exports=function(v,d){var g=v.target,y=v.global,p=v.stat,m,E,S,I,P,A;if(y?E=r:p?E=r[g]||s(g,{}):E=r[g]&&r[g].prototype,E)for(S in d){if(P=d[S],v.dontCallGetSet?(A=n(E,S),I=A&&A.value):I=E[S],m=l(y?S:g+(p?".":"#")+S,v.forced),!m&&I!==void 0){if(typeof P==typeof I)continue;u(P,I)}(v.sham||I&&I.sham)&&a(P,"sham",!0),o(E,S,P,v)}}},72069:function(i){i.exports=function(h){try{return!!h()}catch(t){return!0}}},63194:function(i,h,t){t(31145);var r=t(96499),n=t(16142),a=t(44381),o=t(72069),s=t(18565),u=t(90809),l=s("species"),v=RegExp.prototype;i.exports=function(d,g,y,p){var m=s(d),E=!o(function(){var A={};return A[m]=function(){return 7},""[d](A)!==7}),S=E&&!o(function(){var A=!1,R=/a/;return d==="split"&&(R={},R.constructor={},R.constructor[l]=function(){return R},R.flags="",R[m]=/./[m]),R.exec=function(){return A=!0,null},R[m](""),!A});if(!E||!S||y){var I=/./[m],P=g(m,""[d],function(A,R,N,T,C){var b=R.exec;return b===a||b===v.exec?E&&!C?{done:!0,value:r(I,R,N,T)}:{done:!0,value:r(A,N,R,T)}:{done:!1}});n(String.prototype,d,P[0]),n(v,m,P[1])}p&&u(v[m],"sham",!0)}},53149:function(i,h,t){var r=t(3438),n=t(82628),a=t(20095),o=t(45526),s=function(u,l,v,d,g,y,p,m){for(var E=g,S=0,I=p?o(p,m):!1,P,A;S<d;)S in v&&(P=I?I(v[S],S,l):v[S],y>0&&r(P)?(A=n(P),E=s(u,l,P,A,E,y-1)-1):(a(E+1),u[E]=P),E++),S++;return E};i.exports=s},27534:function(i,h,t){var r=t(72069);i.exports=!r(function(){return Object.isExtensible(Object.preventExtensions({}))})},66543:function(i,h,t){var r=t(87878),n=Function.prototype,a=n.apply,o=n.call;i.exports=typeof Reflect=="object"&&Reflect.apply||(r?o.bind(a):function(){return o.apply(a,arguments)})},45526:function(i,h,t){var r=t(77422),n=t(85156),a=t(87878),o=r(r.bind);i.exports=function(s,u){return n(s),u===void 0?s:a?o(s,u):function(){return s.apply(u,arguments)}}},87878:function(i,h,t){var r=t(72069);i.exports=!r(function(){var n=function(){}.bind();return typeof n!="function"||n.hasOwnProperty("prototype")})},91384:function(i,h,t){var r=t(11286),n=t(85156),a=t(37540),o=t(94879),s=t(22806),u=t(87878),l=Function,v=r([].concat),d=r([].join),g={},y=function(p,m,E){if(!o(g,m)){for(var S=[],I=0;I<m;I++)S[I]="a["+I+"]";g[m]=l("C,a","return new C("+d(S,",")+")")}return g[m](p,E)};i.exports=u?l.bind:function(m){var E=n(this),S=E.prototype,I=s(arguments,1),P=function(){var R=v(I,s(arguments));return this instanceof P?y(E,R.length,R):E.apply(m,R)};return a(S)&&(P.prototype=S),P}},96499:function(i,h,t){var r=t(87878),n=Function.prototype.call;i.exports=r?n.bind(n):function(){return n.apply(n,arguments)}},86588:function(i,h,t){var r=t(92986),n=t(94879),a=Function.prototype,o=r&&Object.getOwnPropertyDescriptor,s=n(a,"name"),u=s&&function(){}.name==="something",l=s&&(!r||r&&o(a,"name").configurable);i.exports={EXISTS:s,PROPER:u,CONFIGURABLE:l}},84756:function(i,h,t){var r=t(11286),n=t(85156);i.exports=function(a,o,s){try{return r(n(Object.getOwnPropertyDescriptor(a,o)[s]))}catch(u){}}},77422:function(i,h,t){var r=t(14274),n=t(11286);i.exports=function(a){if(r(a)==="Function")return n(a)}},11286:function(i,h,t){var r=t(87878),n=Function.prototype,a=n.call,o=r&&n.bind.bind(a,a);i.exports=r?o:function(s){return function(){return a.apply(s,arguments)}}},65470:function(i,h,t){var r=t(66009);i.exports=function(n,a){var o=r[n],s=o&&o.prototype;return s&&s[a]}},38941:function(i,h,t){var r=t(66009),n=t(23583),a=function(o){return n(o)?o:void 0};i.exports=function(o,s){return arguments.length<2?a(r[o]):r[o]&&r[o][s]}},10613:function(i){i.exports=function(h){return{iterator:h,next:h.next,done:!1}}},81077:function(i,h,t){var r=t(9205),n=t(10512),a=t(5683),o=t(29107),s=t(18565),u=s("iterator");i.exports=function(l){if(!a(l))return n(l,u)||n(l,"@@iterator")||o[r(l)]}},90619:function(i,h,t){var r=t(96499),n=t(85156),a=t(25001),o=t(82453),s=t(81077),u=TypeError;i.exports=function(l,v){var d=arguments.length<2?s(l):v;if(n(d))return a(r(d,l));throw new u(o(l)+" is not iterable")}},10443:function(i,h,t){var r=t(11286),n=t(3438),a=t(23583),o=t(14274),s=t(17361),u=r([].push);i.exports=function(l){if(a(l))return l;if(n(l)){for(var v=l.length,d=[],g=0;g<v;g++){var y=l[g];typeof y=="string"?u(d,y):(typeof y=="number"||o(y)==="Number"||o(y)==="String")&&u(d,s(y))}var p=d.length,m=!0;return function(E,S){if(m)return m=!1,S;if(n(this))return S;for(var I=0;I<p;I++)if(d[I]===E)return S}}}},10512:function(i,h,t){var r=t(85156),n=t(5683);i.exports=function(a,o){var s=a[o];return n(s)?void 0:r(s)}},65263:function(i,h,t){var r=t(85156),n=t(25001),a=t(96499),o=t(12105),s=t(10613),u="Invalid size",l=RangeError,v=TypeError,d=Math.max,g=function(y,p){this.set=y,this.size=d(p,0),this.has=r(y.has),this.keys=r(y.keys)};g.prototype={getIterator:function(){return s(n(a(this.keys,this.set)))},includes:function(y){return a(this.has,this.set,y)}},i.exports=function(y){n(y);var p=+y.size;if(p!==p)throw new v(u);var m=o(p);if(m<0)throw new l(u);return new g(y,m)}},38368:function(i,h,t){var r=t(11286),n=t(49671),a=Math.floor,o=r("".charAt),s=r("".replace),u=r("".slice),l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,v=/\$([$&'`]|\d{1,2})/g;i.exports=function(d,g,y,p,m,E){var S=y+d.length,I=p.length,P=v;return m!==void 0&&(m=n(m),P=l),s(E,P,function(A,R){var N;switch(o(R,0)){case"$":return"$";case"&":return d;case"`":return u(g,0,y);case"'":return u(g,S);case"<":N=m[u(R,1,-1)];break;default:var T=+R;if(T===0)return A;if(T>I){var C=a(T/10);return C===0?A:C<=I?p[C-1]===void 0?o(R,1):p[C-1]+o(R,1):A}N=p[T-1]}return N===void 0?"":N})}},66009:function(i){var h=function(t){return t&&t.Math===Math&&t};i.exports=h(typeof globalThis=="object"&&globalThis)||h(typeof window=="object"&&window)||h(typeof self=="object"&&self)||h(typeof global=="object"&&global)||h(typeof this=="object"&&this)||function(){return this}()||Function("return this")()},94879:function(i,h,t){var r=t(11286),n=t(49671),a=r({}.hasOwnProperty);i.exports=Object.hasOwn||function(s,u){return a(n(s),u)}},19423:function(i){i.exports={}},99095:function(i){i.exports=function(h,t){try{arguments.length===1?console.error(h):console.error(h,t)}catch(r){}}},96439:function(i,h,t){var r=t(38941);i.exports=r("document","documentElement")},52515:function(i,h,t){var r=t(92986),n=t(72069),a=t(85501);i.exports=!r&&!n(function(){return Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a!==7})},25212:function(i){var h=Array,t=Math.abs,r=Math.pow,n=Math.floor,a=Math.log,o=Math.LN2,s=function(l,v,d){var g=h(d),y=d*8-v-1,p=(1<<y)-1,m=p>>1,E=v===23?r(2,-24)-r(2,-77):0,S=l<0||l===0&&1/l<0?1:0,I=0,P,A,R;for(l=t(l),l!==l||l===1/0?(A=l!==l?1:0,P=p):(P=n(a(l)/o),R=r(2,-P),l*R<1&&(P--,R*=2),P+m>=1?l+=E/R:l+=E*r(2,1-m),l*R>=2&&(P++,R/=2),P+m>=p?(A=0,P=p):P+m>=1?(A=(l*R-1)*r(2,v),P+=m):(A=l*r(2,m-1)*r(2,v),P=0));v>=8;)g[I++]=A&255,A/=256,v-=8;for(P=P<<v|A,y+=v;y>0;)g[I++]=P&255,P/=256,y-=8;return g[--I]|=S*128,g},u=function(l,v){var d=l.length,g=d*8-v-1,y=(1<<g)-1,p=y>>1,m=g-7,E=d-1,S=l[E--],I=S&127,P;for(S>>=7;m>0;)I=I*256+l[E--],m-=8;for(P=I&(1<<-m)-1,I>>=-m,m+=v;m>0;)P=P*256+l[E--],m-=8;if(I===0)I=1-p;else{if(I===y)return P?NaN:S?-1/0:1/0;P+=r(2,v),I-=p}return(S?-1:1)*P*r(2,I-v)};i.exports={pack:s,unpack:u}},72181:function(i,h,t){var r=t(11286),n=t(72069),a=t(14274),o=Object,s=r("".split);i.exports=n(function(){return!o("z").propertyIsEnumerable(0)})?function(u){return a(u)==="String"?s(u,""):o(u)}:o},32345:function(i,h,t){var r=t(23583),n=t(37540),a=t(15861);i.exports=function(o,s,u){var l,v;return a&&r(l=s.constructor)&&l!==u&&n(v=l.prototype)&&v!==u.prototype&&a(o,v),o}},84352:function(i,h,t){var r=t(11286),n=t(23583),a=t(70443),o=r(Function.toString);n(a.inspectSource)||(a.inspectSource=function(s){return o(s)}),i.exports=a.inspectSource},31486:function(i,h,t){var r=t(37540),n=t(90809);i.exports=function(a,o){r(o)&&"cause"in o&&n(a,"cause",o.cause)}},31853:function(i,h,t){var r=t(14304),n=t(11286),a=t(19423),o=t(37540),s=t(94879),u=t(7831).f,l=t(83258),v=t(92880),d=t(28174),g=t(36374),y=t(27534),p=!1,m=g("meta"),E=0,S=function(T){u(T,m,{value:{objectID:"O"+E++,weakData:{}}})},I=function(T,C){if(!o(T))return typeof T=="symbol"?T:(typeof T=="string"?"S":"P")+T;if(!s(T,m)){if(!d(T))return"F";if(!C)return"E";S(T)}return T[m].objectID},P=function(T,C){if(!s(T,m)){if(!d(T))return!0;if(!C)return!1;S(T)}return T[m].weakData},A=function(T){return y&&p&&d(T)&&!s(T,m)&&S(T),T},R=function(){N.enable=function(){},p=!0;var T=l.f,C=n([].splice),b={};b[m]=1,T(b).length&&(l.f=function(L){for(var D=T(L),$=0,w=D.length;$<w;$++)if(D[$]===m){C(D,$,1);break}return D},r({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:v.f}))},N=i.exports={enable:R,fastKey:I,getWeakData:P,onFreeze:A};a[m]=!0},82367:function(i,h,t){var r=t(42960),n=t(66009),a=t(37540),o=t(90809),s=t(94879),u=t(70443),l=t(44869),v=t(19423),d="Object already initialized",g=n.TypeError,y=n.WeakMap,p,m,E,S=function(R){return E(R)?m(R):p(R,{})},I=function(R){return function(N){var T;if(!a(N)||(T=m(N)).type!==R)throw new g("Incompatible receiver, "+R+" required");return T}};if(r||u.state){var P=u.state||(u.state=new y);P.get=P.get,P.has=P.has,P.set=P.set,p=function(R,N){if(P.has(R))throw new g(d);return N.facade=R,P.set(R,N),N},m=function(R){return P.get(R)||{}},E=function(R){return P.has(R)}}else{var A=l("state");v[A]=!0,p=function(R,N){if(s(R,A))throw new g(d);return N.facade=R,o(R,A,N),N},m=function(R){return s(R,A)?R[A]:{}},E=function(R){return s(R,A)}}i.exports={set:p,get:m,has:E,enforce:S,getterFor:I}},48199:function(i,h,t){var r=t(18565),n=t(29107),a=r("iterator"),o=Array.prototype;i.exports=function(s){return s!==void 0&&(n.Array===s||o[a]===s)}},3438:function(i,h,t){var r=t(14274);i.exports=Array.isArray||function(a){return r(a)==="Array"}},77129:function(i,h,t){var r=t(9205);i.exports=function(n){var a=r(n);return a==="BigInt64Array"||a==="BigUint64Array"}},23583:function(i){var h=typeof document=="object"&&document.all;i.exports=typeof h=="undefined"&&h!==void 0?function(t){return typeof t=="function"||t===h}:function(t){return typeof t=="function"}},11051:function(i,h,t){var r=t(11286),n=t(72069),a=t(23583),o=t(9205),s=t(38941),u=t(84352),l=function(){},v=s("Reflect","construct"),d=/^\s*(?:class|function)\b/,g=r(d.exec),y=!d.test(l),p=function(S){if(!a(S))return!1;try{return v(l,[],S),!0}catch(I){return!1}},m=function(S){if(!a(S))return!1;switch(o(S)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return y||!!g(d,u(S))}catch(I){return!0}};m.sham=!0,i.exports=!v||n(function(){var E;return p(p.call)||!p(Object)||!p(function(){E=!0})||E})?m:p},69745:function(i,h,t){var r=t(94879);i.exports=function(n){return n!==void 0&&(r(n,"value")||r(n,"writable"))}},13278:function(i,h,t){var r=t(72069),n=t(23583),a=/#|\.prototype\./,o=function(d,g){var y=u[s(d)];return y===v?!0:y===l?!1:n(g)?r(g):!!g},s=o.normalize=function(d){return String(d).replace(a,".").toLowerCase()},u=o.data={},l=o.NATIVE="N",v=o.POLYFILL="P";i.exports=o},613:function(i,h,t){var r=t(37540),n=Math.floor;i.exports=Number.isInteger||function(o){return!r(o)&&isFinite(o)&&n(o)===o}},5683:function(i){i.exports=function(h){return h==null}},37540:function(i,h,t){var r=t(23583);i.exports=function(n){return typeof n=="object"?n!==null:r(n)}},52427:function(i,h,t){var r=t(37540);i.exports=function(n){return r(n)||n===null}},70457:function(i){i.exports=!1},11566:function(i,h,t){var r=t(37540),n=t(14274),a=t(18565),o=a("match");i.exports=function(s){var u;return r(s)&&((u=s[o])!==void 0?!!u:n(s)==="RegExp")}},491:function(i,h,t){var r=t(38941),n=t(23583),a=t(95307),o=t(50234),s=Object;i.exports=o?function(u){return typeof u=="symbol"}:function(u){var l=r("Symbol");return n(l)&&a(l.prototype,s(u))}},9573:function(i,h,t){var r=t(96499);i.exports=function(n,a,o){for(var s=o?n:n.iterator,u=n.next,l,v;!(l=r(u,s)).done;)if(v=a(l.value),v!==void 0)return v}},55902:function(i,h,t){var r=t(45526),n=t(96499),a=t(25001),o=t(82453),s=t(48199),u=t(82628),l=t(95307),v=t(90619),d=t(81077),g=t(99797),y=TypeError,p=function(E,S){this.stopped=E,this.result=S},m=p.prototype;i.exports=function(E,S,I){var P=I&&I.that,A=!!(I&&I.AS_ENTRIES),R=!!(I&&I.IS_RECORD),N=!!(I&&I.IS_ITERATOR),T=!!(I&&I.INTERRUPTED),C=r(S,P),b,L,D,$,w,H,U,B=function(Y){return b&&g(b,"normal",Y),new p(!0,Y)},j=function(Y){return A?(a(Y),T?C(Y[0],Y[1],B):C(Y[0],Y[1])):T?C(Y,B):C(Y)};if(R)b=E.iterator;else if(N)b=E;else{if(L=d(E),!L)throw new y(o(E)+" is not iterable");if(s(L)){for(D=0,$=u(E);$>D;D++)if(w=j(E[D]),w&&l(m,w))return w;return new p(!1)}b=v(E,L)}for(H=R?E.next:b.next;!(U=n(H,b)).done;){try{w=j(U.value)}catch(Y){g(b,"throw",Y)}if(typeof w=="object"&&w&&l(m,w))return w}return new p(!1)}},99797:function(i,h,t){var r=t(96499),n=t(25001),a=t(10512);i.exports=function(o,s,u){var l,v;n(o);try{if(l=a(o,"return"),!l){if(s==="throw")throw u;return u}l=r(l,o)}catch(d){v=!0,l=d}if(s==="throw")throw u;if(v)throw l;return n(l),u}},26820:function(i,h,t){var r=t(24519).IteratorPrototype,n=t(5406),a=t(18526),o=t(78401),s=t(29107),u=function(){return this};i.exports=function(l,v,d,g){var y=v+" Iterator";return l.prototype=n(r,{next:a(+!g,d)}),o(l,y,!1,!0),s[y]=u,l}},10218:function(i,h,t){var r=t(14304),n=t(96499),a=t(70457),o=t(86588),s=t(23583),u=t(26820),l=t(26313),v=t(15861),d=t(78401),g=t(90809),y=t(16142),p=t(18565),m=t(29107),E=t(24519),S=o.PROPER,I=o.CONFIGURABLE,P=E.IteratorPrototype,A=E.BUGGY_SAFARI_ITERATORS,R=p("iterator"),N="keys",T="values",C="entries",b=function(){return this};i.exports=function(L,D,$,w,H,U,B){u($,D,w);var j=function(It){if(It===H&&_)return _;if(!A&&It&&It in J)return J[It];switch(It){case N:return function(){return new $(this,It)};case T:return function(){return new $(this,It)};case C:return function(){return new $(this,It)}}return function(){return new $(this)}},Y=D+" Iterator",k=!1,J=L.prototype,nt=J[R]||J["@@iterator"]||H&&J[H],_=!A&&nt||j(H),dt=D==="Array"&&J.entries||nt,lt,gt,St;if(dt&&(lt=l(dt.call(new L)),lt!==Object.prototype&<.next&&(!a&&l(lt)!==P&&(v?v(lt,P):s(lt[R])||y(lt,R,b)),d(lt,Y,!0,!0),a&&(m[Y]=b))),S&&H===T&&nt&&nt.name!==T&&(!a&&I?g(J,"name",T):(k=!0,_=function(){return n(nt,this)})),H)if(gt={values:j(T),keys:U?_:j(N),entries:j(C)},B)for(St in gt)(A||k||!(St in J))&&y(J,St,gt[St]);else r({target:D,proto:!0,forced:A||k},gt);return(!a||B)&&J[R]!==_&&y(J,R,_,{name:H}),m[D]=_,gt}},24519:function(i,h,t){var r=t(72069),n=t(23583),a=t(37540),o=t(5406),s=t(26313),u=t(16142),l=t(18565),v=t(70457),d=l("iterator"),g=!1,y,p,m;[].keys&&(m=[].keys(),"next"in m?(p=s(s(m)),p!==Object.prototype&&(y=p)):g=!0);var E=!a(y)||r(function(){var S={};return y[d].call(S)!==S});E?y={}:v&&(y=o(y)),n(y[d])||u(y,d,function(){return this}),i.exports={IteratorPrototype:y,BUGGY_SAFARI_ITERATORS:g}},29107:function(i){i.exports={}},82628:function(i,h,t){var r=t(45344);i.exports=function(n){return r(n.length)}},13749:function(i,h,t){var r=t(11286),n=t(72069),a=t(23583),o=t(94879),s=t(92986),u=t(86588).CONFIGURABLE,l=t(84352),v=t(82367),d=v.enforce,g=v.get,y=String,p=Object.defineProperty,m=r("".slice),E=r("".replace),S=r([].join),I=s&&!n(function(){return p(function(){},"length",{value:8}).length!==8}),P=String(String).split("String"),A=i.exports=function(R,N,T){m(y(N),0,7)==="Symbol("&&(N="["+E(y(N),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),T&&T.getter&&(N="get "+N),T&&T.setter&&(N="set "+N),(!o(R,"name")||u&&R.name!==N)&&(s?p(R,"name",{value:N,configurable:!0}):R.name=N),I&&T&&o(T,"arity")&&R.length!==T.arity&&p(R,"length",{value:T.arity});try{T&&o(T,"constructor")&&T.constructor?s&&p(R,"prototype",{writable:!1}):R.prototype&&(R.prototype=void 0)}catch(b){}var C=d(R);return o(C,"source")||(C.source=S(P,typeof N=="string"?N:"")),R};Function.prototype.toString=A(function(){return a(this)&&g(this).source||l(this)},"toString")},1774:function(i,h,t){var r=t(11286),n=Map.prototype;i.exports={Map,set:r(n.set),get:r(n.get),has:r(n.has),remove:r(n.delete),proto:n}},98940:function(i){var h=Math.expm1,t=Math.exp;i.exports=!h||h(10)>22025.465794806718||h(10)<22025.465794806718||h(-2e-17)!==-2e-17?function(n){var a=+n;return a===0?a:a>-1e-6&&a<1e-6?a+a*a/2:t(a)-1}:h},10418:function(i,h,t){var r=t(93976),n=Math.abs,a=2220446049250313e-31,o=1/a,s=function(u){return u+o-o};i.exports=function(u,l,v,d){var g=+u,y=n(g),p=r(g);if(y<d)return p*s(y/d/l)*d*l;var m=(1+l/a)*y,E=m-(m-y);return E>v||E!==E?p*(1/0):p*E}},93279:function(i,h,t){var r=t(10418),n=11920928955078125e-23,a=34028234663852886e22,o=11754943508222875e-54;i.exports=Math.fround||function(u){return r(u,n,a,o)}},41942:function(i){var h=Math.log,t=Math.LOG10E;i.exports=Math.log10||function(n){return h(n)*t}},49366:function(i){var h=Math.log;i.exports=Math.log1p||function(r){var n=+r;return n>-1e-8&&n<1e-8?n-n*n/2:h(1+n)}},93976:function(i){i.exports=Math.sign||function(t){var r=+t;return r===0||r!==r?r:r<0?-1:1}},22459:function(i){var h=Math.ceil,t=Math.floor;i.exports=Math.trunc||function(n){var a=+n;return(a>0?t:h)(a)}},9709:function(i,h,t){var r=t(66009),n=t(28167),a=t(45526),o=t(23115).set,s=t(76895),u=t(51149),l=t(92150),v=t(81539),d=t(42954),g=r.MutationObserver||r.WebKitMutationObserver,y=r.document,p=r.process,m=r.Promise,E=n("queueMicrotask"),S,I,P,A,R;if(!E){var N=new s,T=function(){var C,b;for(d&&(C=p.domain)&&C.exit();b=N.get();)try{b()}catch(L){throw N.head&&S(),L}C&&C.enter()};!u&&!d&&!v&&g&&y?(I=!0,P=y.createTextNode(""),new g(T).observe(P,{characterData:!0}),S=function(){P.data=I=!I}):!l&&m&&m.resolve?(A=m.resolve(void 0),A.constructor=m,R=a(A.then,A),S=function(){R(T)}):d?S=function(){p.nextTick(T)}:(o=a(o,r),S=function(){o(T)}),E=function(C){N.head||S(),N.add(C)}}i.exports=E},24649:function(i,h,t){var r=t(85156),n=TypeError,a=function(o){var s,u;this.promise=new o(function(l,v){if(s!==void 0||u!==void 0)throw new n("Bad Promise constructor");s=l,u=v}),this.resolve=r(s),this.reject=r(u)};i.exports.f=function(o){return new a(o)}},15453:function(i,h,t){var r=t(17361);i.exports=function(n,a){return n===void 0?arguments.length<2?"":a:r(n)}},92337:function(i,h,t){var r=t(11566),n=TypeError;i.exports=function(a){if(r(a))throw new n("The method doesn't accept regular expressions");return a}},98074:function(i,h,t){var r=t(66009),n=r.isFinite;i.exports=Number.isFinite||function(o){return typeof o=="number"&&n(o)}},25838:function(i,h,t){var r=t(66009),n=t(72069),a=t(11286),o=t(17361),s=t(85900).trim,u=t(77082),l=a("".charAt),v=r.parseFloat,d=r.Symbol,g=d&&d.iterator,y=1/v(u+"-0")!==-1/0||g&&!n(function(){v(Object(g))});i.exports=y?function(m){var E=s(o(m)),S=v(E);return S===0&&l(E,0)==="-"?-0:S}:v},23009:function(i,h,t){var r=t(66009),n=t(72069),a=t(11286),o=t(17361),s=t(85900).trim,u=t(77082),l=r.parseInt,v=r.Symbol,d=v&&v.iterator,g=/^[+-]?0x/i,y=a(g.exec),p=l(u+"08")!==8||l(u+"0x16")!==22||d&&!n(function(){l(Object(d))});i.exports=p?function(E,S){var I=s(o(E));return l(I,S>>>0||(y(g,I)?16:10))}:l},16667:function(i,h,t){var r=t(92986),n=t(11286),a=t(96499),o=t(72069),s=t(18350),u=t(24943),l=t(79591),v=t(49671),d=t(72181),g=Object.assign,y=Object.defineProperty,p=n([].concat);i.exports=!g||o(function(){if(r&&g({b:1},g(y({},"a",{enumerable:!0,get:function(){y(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var m={},E={},S=Symbol("assign detection"),I="abcdefghijklmnopqrst";return m[S]=7,I.split("").forEach(function(P){E[P]=P}),g({},m)[S]!==7||s(g({},E)).join("")!==I})?function(E,S){for(var I=v(E),P=arguments.length,A=1,R=u.f,N=l.f;P>A;)for(var T=d(arguments[A++]),C=R?p(s(T),R(T)):s(T),b=C.length,L=0,D;b>L;)D=C[L++],(!r||a(N,T,D))&&(I[D]=T[D]);return I}:g},5406:function(i,h,t){var r=t(25001),n=t(61963),a=t(75785),o=t(19423),s=t(96439),u=t(85501),l=t(44869),v=">",d="<",g="prototype",y="script",p=l("IE_PROTO"),m=function(){},E=function(R){return d+y+v+R+d+"/"+y+v},S=function(R){R.write(E("")),R.close();var N=R.parentWindow.Object;return R=null,N},I=function(){var R=u("iframe"),N="java"+y+":",T;return R.style.display="none",s.appendChild(R),R.src=String(N),T=R.contentWindow.document,T.open(),T.write(E("document.F=Object")),T.close(),T.F},P,A=function(){try{P=new ActiveXObject("htmlfile")}catch(N){}A=typeof document!="undefined"?document.domain&&P?S(P):I():S(P);for(var R=a.length;R--;)delete A[g][a[R]];return A()};o[p]=!0,i.exports=Object.create||function(N,T){var C;return N!==null?(m[g]=r(N),C=new m,m[g]=null,C[p]=N):C=A(),T===void 0?C:n.f(C,T)}},61963:function(i,h,t){var r=t(92986),n=t(356),a=t(7831),o=t(25001),s=t(36859),u=t(18350);h.f=r&&!n?Object.defineProperties:function(v,d){o(v);for(var g=s(d),y=u(d),p=y.length,m=0,E;p>m;)a.f(v,E=y[m++],g[E]);return v}},7831:function(i,h,t){var r=t(92986),n=t(52515),a=t(356),o=t(25001),s=t(50035),u=TypeError,l=Object.defineProperty,v=Object.getOwnPropertyDescriptor,d="enumerable",g="configurable",y="writable";h.f=r?a?function(m,E,S){if(o(m),E=s(E),o(S),typeof m=="function"&&E==="prototype"&&"value"in S&&y in S&&!S[y]){var I=v(m,E);I&&I[y]&&(m[E]=S.value,S={configurable:g in S?S[g]:I[g],enumerable:d in S?S[d]:I[d],writable:!1})}return l(m,E,S)}:l:function(m,E,S){if(o(m),E=s(E),o(S),n)try{return l(m,E,S)}catch(I){}if("get"in S||"set"in S)throw new u("Accessors not supported");return"value"in S&&(m[E]=S.value),m}},71349:function(i,h,t){var r=t(92986),n=t(96499),a=t(79591),o=t(18526),s=t(36859),u=t(50035),l=t(94879),v=t(52515),d=Object.getOwnPropertyDescriptor;h.f=r?d:function(y,p){if(y=s(y),p=u(p),v)try{return d(y,p)}catch(m){}if(l(y,p))return o(!n(a.f,y,p),y[p])}},92880:function(i,h,t){var r=t(14274),n=t(36859),a=t(83258).f,o=t(22806),s=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(l){try{return a(l)}catch(v){return o(s)}};i.exports.f=function(v){return s&&r(v)==="Window"?u(v):a(n(v))}},83258:function(i,h,t){var r=t(6242),n=t(75785),a=n.concat("length","prototype");h.f=Object.getOwnPropertyNames||function(s){return r(s,a)}},24943:function(i,h){h.f=Object.getOwnPropertySymbols},26313:function(i,h,t){var r=t(94879),n=t(23583),a=t(49671),o=t(44869),s=t(87501),u=o("IE_PROTO"),l=Object,v=l.prototype;i.exports=s?l.getPrototypeOf:function(d){var g=a(d);if(r(g,u))return g[u];var y=g.constructor;return n(y)&&g instanceof y?y.prototype:g instanceof l?v:null}},28174:function(i,h,t){var r=t(72069),n=t(37540),a=t(14274),o=t(72058),s=Object.isExtensible,u=r(function(){s(1)});i.exports=u||o?function(v){return!n(v)||o&&a(v)==="ArrayBuffer"?!1:s?s(v):!0}:s},95307:function(i,h,t){var r=t(11286);i.exports=r({}.isPrototypeOf)},6242:function(i,h,t){var r=t(11286),n=t(94879),a=t(36859),o=t(94319).indexOf,s=t(19423),u=r([].push);i.exports=function(l,v){var d=a(l),g=0,y=[],p;for(p in d)!n(s,p)&&n(d,p)&&u(y,p);for(;v.length>g;)n(d,p=v[g++])&&(~o(y,p)||u(y,p));return y}},18350:function(i,h,t){var r=t(6242),n=t(75785);i.exports=Object.keys||function(o){return r(o,n)}},79591:function(i,h){var t={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,n=r&&!t.call({1:2},1);h.f=n?function(o){var s=r(this,o);return!!s&&s.enumerable}:t},57629:function(i,h,t){var r=t(70457),n=t(66009),a=t(72069),o=t(68674);i.exports=r||!a(function(){if(!(o&&o<535)){var s=Math.random();__defineSetter__.call(null,s,function(){}),delete n[s]}})},15861:function(i,h,t){var r=t(84756),n=t(37540),a=t(2068),o=t(53408);i.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var s=!1,u={},l;try{l=r(Object.prototype,"__proto__","set"),l(u,[]),s=u instanceof Array}catch(v){}return function(d,g){return a(d),o(g),n(d)&&(s?l(d,g):d.__proto__=g),d}}():void 0)},8511:function(i,h,t){var r=t(92986),n=t(72069),a=t(11286),o=t(26313),s=t(18350),u=t(36859),l=t(79591).f,v=a(l),d=a([].push),g=r&&n(function(){var p=Object.create(null);return p[2]=2,!v(p,2)}),y=function(p){return function(m){for(var E=u(m),S=s(E),I=g&&o(E)===null,P=S.length,A=0,R=[],N;P>A;)N=S[A++],(!r||(I?N in E:v(E,N)))&&d(R,p?[N,E[N]]:E[N]);return R}};i.exports={entries:y(!0),values:y(!1)}},60105:function(i,h,t){var r=t(67878),n=t(9205);i.exports=r?{}.toString:function(){return"[object "+n(this)+"]"}},2064:function(i,h,t){var r=t(96499),n=t(23583),a=t(37540),o=TypeError;i.exports=function(s,u){var l,v;if(u==="string"&&n(l=s.toString)&&!a(v=r(l,s))||n(l=s.valueOf)&&!a(v=r(l,s))||u!=="string"&&n(l=s.toString)&&!a(v=r(l,s)))return v;throw new o("Can't convert object to primitive value")}},16885:function(i,h,t){var r=t(38941),n=t(11286),a=t(83258),o=t(24943),s=t(25001),u=n([].concat);i.exports=r("Reflect","ownKeys")||function(v){var d=a.f(s(v)),g=o.f;return g?u(d,g(v)):d}},75081:function(i,h,t){var r=t(66009);i.exports=r},67805:function(i){i.exports=function(h){try{return{error:!1,value:h()}}catch(t){return{error:!0,value:t}}}},37130:function(i,h,t){var r=t(66009),n=t(98844),a=t(23583),o=t(13278),s=t(84352),u=t(18565),l=t(63144),v=t(56422),d=t(70457),g=t(73126),y=n&&n.prototype,p=u("species"),m=!1,E=a(r.PromiseRejectionEvent),S=o("Promise",function(){var I=s(n),P=I!==String(n);if(!P&&g===66||d&&!(y.catch&&y.finally))return!0;if(!g||g<51||!/native code/.test(I)){var A=new n(function(T){T(1)}),R=function(T){T(function(){},function(){})},N=A.constructor={};if(N[p]=R,m=A.then(function(){})instanceof R,!m)return!0}return!P&&(l||v)&&!E});i.exports={CONSTRUCTOR:S,REJECTION_EVENT:E,SUBCLASSING:m}},98844:function(i,h,t){var r=t(66009);i.exports=r.Promise},87408:function(i,h,t){var r=t(25001),n=t(37540),a=t(24649);i.exports=function(o,s){if(r(o),n(s)&&s.constructor===o)return s;var u=a.f(o),l=u.resolve;return l(s),u.promise}},26035:function(i,h,t){var r=t(98844),n=t(97494),a=t(37130).CONSTRUCTOR;i.exports=a||!n(function(o){r.all(o).then(void 0,function(){})})},2594:function(i,h,t){var r=t(7831).f;i.exports=function(n,a,o){o in n||r(n,o,{configurable:!0,get:function(){return a[o]},set:function(s){a[o]=s}})}},76895:function(i){var h=function(){this.head=null,this.tail=null};h.prototype={add:function(t){var r={item:t,next:null},n=this.tail;n?n.next=r:this.head=r,this.tail=r},get:function(){var t=this.head;if(t){var r=this.head=t.next;return r===null&&(this.tail=null),t.item}}},i.exports=h},33064:function(i,h,t){var r=t(96499),n=t(25001),a=t(23583),o=t(14274),s=t(44381),u=TypeError;i.exports=function(l,v){var d=l.exec;if(a(d)){var g=r(d,l,v);return g!==null&&n(g),g}if(o(l)==="RegExp")return r(s,l,v);throw new u("RegExp#exec called on incompatible receiver")}},44381:function(i,h,t){var r=t(96499),n=t(11286),a=t(17361),o=t(29833),s=t(39807),u=t(96731),l=t(5406),v=t(82367).get,d=t(76769),g=t(85220),y=u("native-string-replace",String.prototype.replace),p=RegExp.prototype.exec,m=p,E=n("".charAt),S=n("".indexOf),I=n("".replace),P=n("".slice),A=function(){var C=/a/,b=/b*/g;return r(p,C,"a"),r(p,b,"a"),C.lastIndex!==0||b.lastIndex!==0}(),R=s.BROKEN_CARET,N=/()??/.exec("")[1]!==void 0,T=A||N||R||d||g;T&&(m=function(b){var L=this,D=v(L),$=a(b),w=D.raw,H,U,B,j,Y,k,J;if(w)return w.lastIndex=L.lastIndex,H=r(m,w,$),L.lastIndex=w.lastIndex,H;var nt=D.groups,_=R&&L.sticky,dt=r(o,L),lt=L.source,gt=0,St=$;if(_&&(dt=I(dt,"y",""),S(dt,"g")===-1&&(dt+="g"),St=P($,L.lastIndex),L.lastIndex>0&&(!L.multiline||L.multiline&&E($,L.lastIndex-1)!==` +`)&&(lt="(?: "+lt+")",St=" "+St,gt++),U=new RegExp("^(?:"+lt+")",dt)),N&&(U=new RegExp("^"+lt+"$(?!\\s)",dt)),A&&(B=L.lastIndex),j=r(p,_?U:L,St),_?j?(j.input=P(j.input,gt),j[0]=P(j[0],gt),j.index=L.lastIndex,L.lastIndex+=j[0].length):L.lastIndex=0:A&&j&&(L.lastIndex=L.global?j.index+j[0].length:B),N&&j&&j.length>1&&r(y,j[0],U,function(){for(Y=1;Y<arguments.length-2;Y++)arguments[Y]===void 0&&(j[Y]=void 0)}),j&&nt)for(j.groups=k=l(null),Y=0;Y<nt.length;Y++)J=nt[Y],k[J[0]]=j[J[1]];return j}),i.exports=m},29833:function(i,h,t){var r=t(25001);i.exports=function(){var n=r(this),a="";return n.hasIndices&&(a+="d"),n.global&&(a+="g"),n.ignoreCase&&(a+="i"),n.multiline&&(a+="m"),n.dotAll&&(a+="s"),n.unicode&&(a+="u"),n.unicodeSets&&(a+="v"),n.sticky&&(a+="y"),a}},54932:function(i,h,t){var r=t(96499),n=t(94879),a=t(95307),o=t(29833),s=RegExp.prototype;i.exports=function(u){var l=u.flags;return l===void 0&&!("flags"in s)&&!n(u,"flags")&&a(s,u)?r(o,u):l}},39807:function(i,h,t){var r=t(72069),n=t(66009),a=n.RegExp,o=r(function(){var l=a("a","y");return l.lastIndex=2,l.exec("abcd")!==null}),s=o||r(function(){return!a("a","y").sticky}),u=o||r(function(){var l=a("^r","gy");return l.lastIndex=2,l.exec("str")!==null});i.exports={BROKEN_CARET:u,MISSED_STICKY:s,UNSUPPORTED_Y:o}},76769:function(i,h,t){var r=t(72069),n=t(66009),a=n.RegExp;i.exports=r(function(){var o=a(".","s");return!(o.dotAll&&o.test(` +`)&&o.flags==="s")})},85220:function(i,h,t){var r=t(72069),n=t(66009),a=n.RegExp;i.exports=r(function(){var o=a("(?<a>b)","g");return o.exec("b").groups.a!=="b"||"b".replace(o,"$<a>c")!=="bc"})},2068:function(i,h,t){var r=t(5683),n=TypeError;i.exports=function(a){if(r(a))throw new n("Can't call method on "+a);return a}},28167:function(i,h,t){var r=t(66009),n=t(92986),a=Object.getOwnPropertyDescriptor;i.exports=function(o){if(!n)return r[o];var s=a(r,o);return s&&s.value}},13944:function(i){i.exports=Object.is||function(t,r){return t===r?t!==0||1/t===1/r:t!==t&&r!==r}},9934:function(i,h,t){var r=t(66009),n=t(66543),a=t(23583),o=t(5017),s=t(89042),u=t(22806),l=t(95486),v=r.Function,d=/MSIE .\./.test(s)||o&&function(){var g=r.Bun.version.split(".");return g.length<3||g[0]==="0"&&(g[1]<3||g[1]==="3"&&g[2]==="0")}();i.exports=function(g,y){var p=y?2:1;return d?function(m,E){var S=l(arguments.length,1)>p,I=a(m)?m:v(m),P=S?u(arguments,p):[],A=S?function(){n(I,this,P)}:I;return y?g(A,E):g(A)}:g}},48348:function(i,h,t){var r=t(172),n=t(35051),a=r.Set,o=r.add;i.exports=function(s){var u=new a;return n(s,function(l){o(u,l)}),u}},41754:function(i,h,t){var r=t(76602),n=t(172),a=t(48348),o=t(17768),s=t(65263),u=t(35051),l=t(9573),v=n.has,d=n.remove;i.exports=function(y){var p=r(this),m=s(y),E=a(p);return o(p)<=m.size?u(p,function(S){m.includes(S)&&d(E,S)}):l(m.getIterator(),function(S){v(p,S)&&d(E,S)}),E}},172:function(i,h,t){var r=t(11286),n=Set.prototype;i.exports={Set,add:r(n.add),has:r(n.has),remove:r(n.delete),proto:n}},92292:function(i,h,t){var r=t(76602),n=t(172),a=t(17768),o=t(65263),s=t(35051),u=t(9573),l=n.Set,v=n.add,d=n.has;i.exports=function(y){var p=r(this),m=o(y),E=new l;return a(p)>m.size?u(m.getIterator(),function(S){d(p,S)&&v(E,S)}):s(p,function(S){m.includes(S)&&v(E,S)}),E}},47391:function(i,h,t){var r=t(76602),n=t(172).has,a=t(17768),o=t(65263),s=t(35051),u=t(9573),l=t(99797);i.exports=function(d){var g=r(this),y=o(d);if(a(g)<=y.size)return s(g,function(m){if(y.includes(m))return!1},!0)!==!1;var p=y.getIterator();return u(p,function(m){if(n(g,m))return l(p,"normal",!1)})!==!1}},75492:function(i,h,t){var r=t(76602),n=t(17768),a=t(35051),o=t(65263);i.exports=function(u){var l=r(this),v=o(u);return n(l)>v.size?!1:a(l,function(d){if(!v.includes(d))return!1},!0)!==!1}},1333:function(i,h,t){var r=t(76602),n=t(172).has,a=t(17768),o=t(65263),s=t(9573),u=t(99797);i.exports=function(v){var d=r(this),g=o(v);if(a(d)<g.size)return!1;var y=g.getIterator();return s(y,function(p){if(!n(d,p))return u(y,"normal",!1)})!==!1}},35051:function(i,h,t){var r=t(11286),n=t(9573),a=t(172),o=a.Set,s=a.proto,u=r(s.forEach),l=r(s.keys),v=l(new o).next;i.exports=function(d,g,y){return y?n({iterator:l(d),next:v},g):u(d,g)}},94118:function(i,h,t){var r=t(38941),n=function(a){return{size:a,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}};i.exports=function(a){var o=r("Set");try{new o()[a](n(0));try{return new o()[a](n(-1)),!1}catch(s){return!0}}catch(s){return!1}}},17768:function(i,h,t){var r=t(84756),n=t(172);i.exports=r(n.proto,"size","get")||function(a){return a.size}},36167:function(i,h,t){var r=t(38941),n=t(85500),a=t(18565),o=t(92986),s=a("species");i.exports=function(u){var l=r(u);o&&l&&!l[s]&&n(l,s,{configurable:!0,get:function(){return this}})}},64680:function(i,h,t){var r=t(76602),n=t(172),a=t(48348),o=t(65263),s=t(9573),u=n.add,l=n.has,v=n.remove;i.exports=function(g){var y=r(this),p=o(g).getIterator(),m=a(y);return s(p,function(E){l(y,E)?v(m,E):u(m,E)}),m}},78401:function(i,h,t){var r=t(7831).f,n=t(94879),a=t(18565),o=a("toStringTag");i.exports=function(s,u,l){s&&!l&&(s=s.prototype),s&&!n(s,o)&&r(s,o,{configurable:!0,value:u})}},70402:function(i,h,t){var r=t(76602),n=t(172).add,a=t(48348),o=t(65263),s=t(9573);i.exports=function(l){var v=r(this),d=o(l).getIterator(),g=a(v);return s(d,function(y){n(g,y)}),g}},44869:function(i,h,t){var r=t(96731),n=t(36374),a=r("keys");i.exports=function(o){return a[o]||(a[o]=n(o))}},70443:function(i,h,t){var r=t(70457),n=t(66009),a=t(36003),o="__core-js_shared__",s=i.exports=n[o]||a(o,{});(s.versions||(s.versions=[])).push({version:"3.37.1",mode:r?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE",source:"https://github.com/zloirock/core-js"})},96731:function(i,h,t){var r=t(70443);i.exports=function(n,a){return r[n]||(r[n]=a||{})}},16887:function(i,h,t){var r=t(25001),n=t(80042),a=t(5683),o=t(18565),s=o("species");i.exports=function(u,l){var v=r(u).constructor,d;return v===void 0||a(d=r(v)[s])?l:n(d)}},5287:function(i,h,t){var r=t(72069);i.exports=function(n){return r(function(){var a=""[n]('"');return a!==a.toLowerCase()||a.split('"').length>3})}},22149:function(i,h,t){var r=t(11286),n=t(12105),a=t(17361),o=t(2068),s=r("".charAt),u=r("".charCodeAt),l=r("".slice),v=function(d){return function(g,y){var p=a(o(g)),m=n(y),E=p.length,S,I;return m<0||m>=E?d?"":void 0:(S=u(p,m),S<55296||S>56319||m+1===E||(I=u(p,m+1))<56320||I>57343?d?s(p,m):S:d?l(p,m,m+2):(S-55296<<10)+(I-56320)+65536)}};i.exports={codeAt:v(!1),charAt:v(!0)}},36945:function(i,h,t){var r=t(89042);i.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},61607:function(i,h,t){var r=t(11286),n=t(45344),a=t(17361),o=t(79719),s=t(2068),u=r(o),l=r("".slice),v=Math.ceil,d=function(g){return function(y,p,m){var E=a(s(y)),S=n(p),I=E.length,P=m===void 0?" ":a(m),A,R;return S<=I||P===""?E:(A=S-I,R=u(P,v(A/P.length)),R.length>A&&(R=l(R,0,A)),g?E+R:R+E)}};i.exports={start:d(!1),end:d(!0)}},38679:function(i,h,t){var r=t(11286),n=2147483647,a=36,o=1,s=26,u=38,l=700,v=72,d=128,g="-",y=/[^\0-\u007E]/,p=/[.\u3002\uFF0E\uFF61]/g,m="Overflow: input needs wider integers to process",E=a-o,S=RangeError,I=r(p.exec),P=Math.floor,A=String.fromCharCode,R=r("".charCodeAt),N=r([].join),T=r([].push),C=r("".replace),b=r("".split),L=r("".toLowerCase),D=function(U){for(var B=[],j=0,Y=U.length;j<Y;){var k=R(U,j++);if(k>=55296&&k<=56319&&j<Y){var J=R(U,j++);(J&64512)===56320?T(B,((k&1023)<<10)+(J&1023)+65536):(T(B,k),j--)}else T(B,k)}return B},$=function(U){return U+22+75*(U<26)},w=function(U,B,j){var Y=0;for(U=j?P(U/l):U>>1,U+=P(U/B);U>E*s>>1;)U=P(U/E),Y+=a;return P(Y+(E+1)*U/(U+u))},H=function(U){var B=[];U=D(U);var j=U.length,Y=d,k=0,J=v,nt,_;for(nt=0;nt<U.length;nt++)_=U[nt],_<128&&T(B,A(_));var dt=B.length,lt=dt;for(dt&&T(B,g);lt<j;){var gt=n;for(nt=0;nt<U.length;nt++)_=U[nt],_>=Y&&_<gt&&(gt=_);var St=lt+1;if(gt-Y>P((n-k)/St))throw new S(m);for(k+=(gt-Y)*St,Y=gt,nt=0;nt<U.length;nt++){if(_=U[nt],_<Y&&++k>n)throw new S(m);if(_===Y){for(var It=k,Gt=a;;){var jt=Gt<=J?o:Gt>=J+s?s:Gt-J;if(It<jt)break;var Ft=It-jt,vt=a-jt;T(B,A($(jt+Ft%vt))),It=P(Ft/vt),Gt+=a}T(B,A($(It))),J=w(k,St,lt===dt),k=0,lt++}}k++,Y++}return N(B,"")};i.exports=function(U){var B=[],j=b(C(L(U),p,"."),"."),Y,k;for(Y=0;Y<j.length;Y++)k=j[Y],T(B,I(y,k)?"xn--"+H(k):k);return N(B,".")}},79719:function(i,h,t){var r=t(12105),n=t(17361),a=t(2068),o=RangeError;i.exports=function(u){var l=n(a(this)),v="",d=r(u);if(d<0||d===1/0)throw new o("Wrong number of repetitions");for(;d>0;(d>>>=1)&&(l+=l))d&1&&(v+=l);return v}},75176:function(i,h,t){var r=t(85900).end,n=t(33328);i.exports=n("trimEnd")?function(){return r(this)}:"".trimEnd},33328:function(i,h,t){var r=t(86588).PROPER,n=t(72069),a=t(77082),o="\u200B\x85\u180E";i.exports=function(s){return n(function(){return!!a[s]()||o[s]()!==o||r&&a[s].name!==s})}},83481:function(i,h,t){var r=t(85900).start,n=t(33328);i.exports=n("trimStart")?function(){return r(this)}:"".trimStart},85900:function(i,h,t){var r=t(11286),n=t(2068),a=t(17361),o=t(77082),s=r("".replace),u=RegExp("^["+o+"]+"),l=RegExp("(^|[^"+o+"])["+o+"]+$"),v=function(d){return function(g){var y=a(n(g));return d&1&&(y=s(y,u,"")),d&2&&(y=s(y,l,"$1")),y}};i.exports={start:v(1),end:v(2),trim:v(3)}},99050:function(i,h,t){var r=t(66009),n=t(72069),a=t(73126),o=t(63144),s=t(56422),u=t(42954),l=r.structuredClone;i.exports=!!l&&!n(function(){if(s&&a>92||u&&a>94||o&&a>97)return!1;var v=new ArrayBuffer(8),d=l(v,{transfer:[v]});return v.byteLength!==0||d.byteLength!==8})},39729:function(i,h,t){var r=t(73126),n=t(72069),a=t(66009),o=a.String;i.exports=!!Object.getOwnPropertySymbols&&!n(function(){var s=Symbol("symbol detection");return!o(s)||!(Object(s)instanceof Symbol)||!Symbol.sham&&r&&r<41})},60796:function(i,h,t){var r=t(96499),n=t(38941),a=t(18565),o=t(16142);i.exports=function(){var s=n("Symbol"),u=s&&s.prototype,l=u&&u.valueOf,v=a("toPrimitive");u&&!u[v]&&o(u,v,function(d){return r(l,this)},{arity:1})}},61190:function(i,h,t){var r=t(39729);i.exports=r&&!!Symbol.for&&!!Symbol.keyFor},23115:function(i,h,t){var r=t(66009),n=t(66543),a=t(45526),o=t(23583),s=t(94879),u=t(72069),l=t(96439),v=t(22806),d=t(85501),g=t(95486),y=t(51149),p=t(42954),m=r.setImmediate,E=r.clearImmediate,S=r.process,I=r.Dispatch,P=r.Function,A=r.MessageChannel,R=r.String,N=0,T={},C="onreadystatechange",b,L,D,$;u(function(){b=r.location});var w=function(j){if(s(T,j)){var Y=T[j];delete T[j],Y()}},H=function(j){return function(){w(j)}},U=function(j){w(j.data)},B=function(j){r.postMessage(R(j),b.protocol+"//"+b.host)};(!m||!E)&&(m=function(Y){g(arguments.length,1);var k=o(Y)?Y:P(Y),J=v(arguments,1);return T[++N]=function(){n(k,void 0,J)},L(N),N},E=function(Y){delete T[Y]},p?L=function(j){S.nextTick(H(j))}:I&&I.now?L=function(j){I.now(H(j))}:A&&!y?(D=new A,$=D.port2,D.port1.onmessage=U,L=a($.postMessage,$)):r.addEventListener&&o(r.postMessage)&&!r.importScripts&&b&&b.protocol!=="file:"&&!u(B)?(L=B,r.addEventListener("message",U,!1)):C in d("script")?L=function(j){l.appendChild(d("script"))[C]=function(){l.removeChild(this),w(j)}}:L=function(j){setTimeout(H(j),0)}),i.exports={set:m,clear:E}},34338:function(i,h,t){var r=t(11286);i.exports=r(1 .valueOf)},4652:function(i,h,t){var r=t(12105),n=Math.max,a=Math.min;i.exports=function(o,s){var u=r(o);return u<0?n(u+s,0):a(u,s)}},11344:function(i,h,t){var r=t(89935),n=TypeError;i.exports=function(a){var o=r(a,"number");if(typeof o=="number")throw new n("Can't convert number to bigint");return BigInt(o)}},9450:function(i,h,t){var r=t(12105),n=t(45344),a=RangeError;i.exports=function(o){if(o===void 0)return 0;var s=r(o),u=n(s);if(s!==u)throw new a("Wrong length or index");return u}},36859:function(i,h,t){var r=t(72181),n=t(2068);i.exports=function(a){return r(n(a))}},12105:function(i,h,t){var r=t(22459);i.exports=function(n){var a=+n;return a!==a||a===0?0:r(a)}},45344:function(i,h,t){var r=t(12105),n=Math.min;i.exports=function(a){var o=r(a);return o>0?n(o,9007199254740991):0}},49671:function(i,h,t){var r=t(2068),n=Object;i.exports=function(a){return n(r(a))}},58143:function(i,h,t){var r=t(98072),n=RangeError;i.exports=function(a,o){var s=r(a);if(s%o)throw new n("Wrong offset");return s}},98072:function(i,h,t){var r=t(12105),n=RangeError;i.exports=function(a){var o=r(a);if(o<0)throw new n("The argument can't be less than 0");return o}},89935:function(i,h,t){var r=t(96499),n=t(37540),a=t(491),o=t(10512),s=t(2064),u=t(18565),l=TypeError,v=u("toPrimitive");i.exports=function(d,g){if(!n(d)||a(d))return d;var y=o(d,v),p;if(y){if(g===void 0&&(g="default"),p=r(y,d,g),!n(p)||a(p))return p;throw new l("Can't convert object to primitive value")}return g===void 0&&(g="number"),s(d,g)}},50035:function(i,h,t){var r=t(89935),n=t(491);i.exports=function(a){var o=r(a,"string");return n(o)?o:o+""}},67878:function(i,h,t){var r=t(18565),n=r("toStringTag"),a={};a[n]="z",i.exports=String(a)==="[object z]"},17361:function(i,h,t){var r=t(9205),n=String;i.exports=function(a){if(r(a)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return n(a)}},76517:function(i){var h=Math.round;i.exports=function(t){var r=h(t);return r<0?0:r>255?255:r&255}},18096:function(i,h,t){var r=t(42954);i.exports=function(n){try{if(r)return Function('return require("'+n+'")')()}catch(a){}}},82453:function(i){var h=String;i.exports=function(t){try{return h(t)}catch(r){return"Object"}}},80357:function(i,h,t){var r=t(14304),n=t(66009),a=t(96499),o=t(92986),s=t(46868),u=t(88037),l=t(17468),v=t(12833),d=t(18526),g=t(90809),y=t(613),p=t(45344),m=t(9450),E=t(58143),S=t(76517),I=t(50035),P=t(94879),A=t(9205),R=t(37540),N=t(491),T=t(5406),C=t(95307),b=t(15861),L=t(83258).f,D=t(66169),$=t(66655).forEach,w=t(36167),H=t(85500),U=t(7831),B=t(71349),j=t(5220),Y=t(82367),k=t(32345),J=Y.get,nt=Y.set,_=Y.enforce,dt=U.f,lt=B.f,gt=n.RangeError,St=l.ArrayBuffer,It=St.prototype,Gt=l.DataView,jt=u.NATIVE_ARRAY_BUFFER_VIEWS,Ft=u.TYPED_ARRAY_TAG,vt=u.TypedArray,yt=u.TypedArrayPrototype,Pt=u.isTypedArray,Mt="BYTES_PER_ELEMENT",Ct="Wrong length",Lt=function(Xt,Vt){H(Xt,Vt,{configurable:!0,get:function(){return J(this)[Vt]}})},Zt=function(Xt){var Vt;return C(It,Xt)||(Vt=A(Xt))==="ArrayBuffer"||Vt==="SharedArrayBuffer"},kt=function(Xt,Vt){return Pt(Xt)&&!N(Vt)&&Vt in Xt&&y(+Vt)&&Vt>=0},Kt=function(Vt,Ut){return Ut=I(Ut),kt(Vt,Ut)?d(2,Vt[Ut]):lt(Vt,Ut)},Dt=function(Vt,Ut,st){return Ut=I(Ut),kt(Vt,Ut)&&R(st)&&P(st,"value")&&!P(st,"get")&&!P(st,"set")&&!st.configurable&&(!P(st,"writable")||st.writable)&&(!P(st,"enumerable")||st.enumerable)?(Vt[Ut]=st.value,Vt):dt(Vt,Ut,st)};o?(jt||(B.f=Kt,U.f=Dt,Lt(yt,"buffer"),Lt(yt,"byteOffset"),Lt(yt,"byteLength"),Lt(yt,"length")),r({target:"Object",stat:!0,forced:!jt},{getOwnPropertyDescriptor:Kt,defineProperty:Dt}),i.exports=function(Xt,Vt,Ut){var st=Xt.match(/\d+/)[0]/8,ht=Xt+(Ut?"Clamped":"")+"Array",rt="get"+Xt,Ot="set"+Xt,Tt=n[ht],xt=Tt,pt=xt&&xt.prototype,_t={},rr=function(z,Z){var K=J(z);return K.view[rt](Z*st+K.byteOffset,!0)},Q=function(z,Z,K){var ct=J(z);ct.view[Ot](Z*st+ct.byteOffset,Ut?S(K):K,!0)},ot=function(z,Z){dt(z,Z,{get:function(){return rr(this,Z)},set:function(K){return Q(this,Z,K)},enumerable:!0})};jt?s&&(xt=Vt(function(z,Z,K,ct){return v(z,pt),k(function(){return R(Z)?Zt(Z)?ct!==void 0?new Tt(Z,E(K,st),ct):K!==void 0?new Tt(Z,E(K,st)):new Tt(Z):Pt(Z)?j(xt,Z):a(D,xt,Z):new Tt(m(Z))}(),z,xt)}),b&&b(xt,vt),$(L(Tt),function(z){z in xt||g(xt,z,Tt[z])}),xt.prototype=pt):(xt=Vt(function(z,Z,K,ct){v(z,pt);var At=0,Nt=0,Wt,Jt,Yt;if(!R(Z))Yt=m(Z),Jt=Yt*st,Wt=new St(Jt);else if(Zt(Z)){Wt=Z,Nt=E(K,st);var er=Z.byteLength;if(ct===void 0){if(er%st)throw new gt(Ct);if(Jt=er-Nt,Jt<0)throw new gt(Ct)}else if(Jt=p(ct)*st,Jt+Nt>er)throw new gt(Ct);Yt=Jt/st}else return Pt(Z)?j(xt,Z):a(D,xt,Z);for(nt(z,{buffer:Wt,byteOffset:Nt,byteLength:Jt,length:Yt,view:new Gt(Wt)});At<Yt;)ot(z,At++)}),b&&b(xt,vt),pt=xt.prototype=T(yt)),pt.constructor!==xt&&g(pt,"constructor",xt),_(pt).TypedArrayConstructor=xt,Ft&&g(pt,Ft,ht);var it=xt!==Tt;_t[ht]=xt,r({global:!0,constructor:!0,forced:it,sham:!jt},_t),Mt in xt||g(xt,Mt,st),Mt in pt||g(pt,Mt,st),w(ht)}):i.exports=function(){}},46868:function(i,h,t){var r=t(66009),n=t(72069),a=t(97494),o=t(88037).NATIVE_ARRAY_BUFFER_VIEWS,s=r.ArrayBuffer,u=r.Int8Array;i.exports=!o||!n(function(){u(1)})||!n(function(){new u(-1)})||!a(function(l){new u,new u(null),new u(1.5),new u(l)},!0)||n(function(){return new u(new s(2),1,void 0).length!==1})},3795:function(i,h,t){var r=t(5220),n=t(21822);i.exports=function(a,o){return r(n(a),o)}},66169:function(i,h,t){var r=t(45526),n=t(96499),a=t(80042),o=t(49671),s=t(82628),u=t(90619),l=t(81077),v=t(48199),d=t(77129),g=t(88037).aTypedArrayConstructor,y=t(11344);i.exports=function(m){var E=a(this),S=o(m),I=arguments.length,P=I>1?arguments[1]:void 0,A=P!==void 0,R=l(S),N,T,C,b,L,D,$,w;if(R&&!v(R))for($=u(S,R),w=$.next,S=[];!(D=n(w,$)).done;)S.push(D.value);for(A&&I>2&&(P=r(P,arguments[2])),T=s(S),C=new(g(E))(T),b=d(C),N=0;T>N;N++)L=A?P(S[N],N):S[N],C[N]=b?y(L):+L;return C}},21822:function(i,h,t){var r=t(88037),n=t(16887),a=r.aTypedArrayConstructor,o=r.getTypedArrayConstructor;i.exports=function(s){return a(n(s,o(s)))}},36374:function(i,h,t){var r=t(11286),n=0,a=Math.random(),o=r(1 .toString);i.exports=function(s){return"Symbol("+(s===void 0?"":s)+")_"+o(++n+a,36)}},91918:function(i,h,t){var r=t(72069),n=t(18565),a=t(92986),o=t(70457),s=n("iterator");i.exports=!r(function(){var u=new URL("b?a=1&b=2&c=3","http://a"),l=u.searchParams,v=new URLSearchParams("a=1&a=2&b=3"),d="";return u.pathname="c%20d",l.forEach(function(g,y){l.delete("b"),d+=y+g}),v.delete("a",2),v.delete("b",void 0),o&&(!u.toJSON||!v.has("a",1)||v.has("a",2)||!v.has("a",void 0)||v.has("b"))||!l.size&&(o||!a)||!l.sort||u.href!=="http://a/c%20d?a=1&c=3"||l.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!l[s]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("http://a#\u0431").hash!=="#%D0%B1"||d!=="a1c3"||new URL("http://x",void 0).host!=="x"})},50234:function(i,h,t){var r=t(39729);i.exports=r&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},356:function(i,h,t){var r=t(92986),n=t(72069);i.exports=r&&n(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})},95486:function(i){var h=TypeError;i.exports=function(t,r){if(t<r)throw new h("Not enough arguments");return t}},42960:function(i,h,t){var r=t(66009),n=t(23583),a=r.WeakMap;i.exports=n(a)&&/native code/.test(String(a))},83749:function(i,h,t){var r=t(75081),n=t(94879),a=t(56529),o=t(7831).f;i.exports=function(s){var u=r.Symbol||(r.Symbol={});n(u,s)||o(u,s,{value:a.f(s)})}},56529:function(i,h,t){var r=t(18565);h.f=r},18565:function(i,h,t){var r=t(66009),n=t(96731),a=t(94879),o=t(36374),s=t(39729),u=t(50234),l=r.Symbol,v=n("wks"),d=u?l.for||l:l&&l.withoutSetter||o;i.exports=function(g){return a(v,g)||(v[g]=s&&a(l,g)?l[g]:d("Symbol."+g)),v[g]}},77082:function(i){i.exports=` +\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},70003:function(i,h,t){var r=t(38941),n=t(94879),a=t(90809),o=t(95307),s=t(15861),u=t(93706),l=t(2594),v=t(32345),d=t(15453),g=t(31486),y=t(97077),p=t(92986),m=t(70457);i.exports=function(E,S,I,P){var A="stackTraceLimit",R=P?2:1,N=E.split("."),T=N[N.length-1],C=r.apply(null,N);if(C){var b=C.prototype;if(!m&&n(b,"cause")&&delete b.cause,!I)return C;var L=r("Error"),D=S(function($,w){var H=d(P?w:$,void 0),U=P?new C($):new C;return H!==void 0&&a(U,"message",H),y(U,D,U.stack,2),this&&o(b,this)&&v(U,this,D),arguments.length>R&&g(U,arguments[R]),U});if(D.prototype=b,T!=="Error"?s?s(D,L):u(D,L,{name:!0}):p&&A in C&&(l(D,C,A),l(D,C,"prepareStackTrace")),u(D,C),!m)try{b.name!==T&&a(b,"name",T),b.constructor=D}catch($){}return D}}},27796:function(i,h,t){var r=t(14304),n=t(38941),a=t(66543),o=t(72069),s=t(70003),u="AggregateError",l=n(u),v=!o(function(){return l([1]).errors[0]!==1})&&o(function(){return l([1],u,{cause:7}).cause!==7});r({global:!0,constructor:!0,arity:2,forced:v},{AggregateError:s(u,function(d){return function(y,p){return a(d,this,arguments)}},v,!0)})},85647:function(i,h,t){var r=t(14304),n=t(95307),a=t(26313),o=t(15861),s=t(93706),u=t(5406),l=t(90809),v=t(18526),d=t(31486),g=t(97077),y=t(55902),p=t(15453),m=t(18565),E=m("toStringTag"),S=Error,I=[].push,P=function(N,T){var C=n(A,this),b;o?b=o(new S,C?a(this):A):(b=C?this:u(A),l(b,E,"Error")),T!==void 0&&l(b,"message",p(T)),g(b,P,b.stack,1),arguments.length>2&&d(b,arguments[2]);var L=[];return y(N,I,{that:L}),l(b,"errors",L),b};o?o(P,S):s(P,S,{name:!0});var A=P.prototype=u(S.prototype,{constructor:v(1,P),message:v(1,""),name:v(1,"AggregateError")});r({global:!0,constructor:!0,arity:2},{AggregateError:P})},42861:function(i,h,t){t(85647)},35473:function(i,h,t){var r=t(14304),n=t(66009),a=t(17468),o=t(36167),s="ArrayBuffer",u=a[s],l=n[s];r({global:!0,constructor:!0,forced:l!==u},{ArrayBuffer:u}),o(s)},35495:function(i,h,t){var r=t(92986),n=t(85500),a=t(30736),o=ArrayBuffer.prototype;r&&!("detached"in o)&&n(o,"detached",{configurable:!0,get:function(){return a(this)}})},4983:function(i,h,t){var r=t(14304),n=t(88037),a=n.NATIVE_ARRAY_BUFFER_VIEWS;r({target:"ArrayBuffer",stat:!0,forced:!a},{isView:n.isView})},6875:function(i,h,t){var r=t(14304),n=t(77422),a=t(72069),o=t(17468),s=t(25001),u=t(4652),l=t(45344),v=t(16887),d=o.ArrayBuffer,g=o.DataView,y=g.prototype,p=n(d.prototype.slice),m=n(y.getUint8),E=n(y.setUint8),S=a(function(){return!new d(2).slice(1,void 0).byteLength});r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:S},{slice:function(P,A){if(p&&A===void 0)return p(s(this),P);for(var R=s(this).byteLength,N=u(P,R),T=u(A===void 0?R:A,R),C=new(v(this,d))(l(T-N)),b=new g(this),L=new g(C),D=0;N<T;)E(L,D++,m(b,N++));return C}})},58594:function(i,h,t){var r=t(14304),n=t(65006);n&&r({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return n(this,arguments.length?arguments[0]:void 0,!1)}})},32790:function(i,h,t){var r=t(14304),n=t(65006);n&&r({target:"ArrayBuffer",proto:!0},{transfer:function(){return n(this,arguments.length?arguments[0]:void 0,!0)}})},1341:function(i,h,t){var r=t(14304),n=t(49671),a=t(82628),o=t(12105),s=t(23811);r({target:"Array",proto:!0},{at:function(l){var v=n(this),d=a(v),g=o(l),y=g>=0?g:d+g;return y<0||y>=d?void 0:v[y]}}),s("at")},98700:function(i,h,t){var r=t(14304),n=t(72069),a=t(3438),o=t(37540),s=t(49671),u=t(82628),l=t(20095),v=t(84082),d=t(62083),g=t(52183),y=t(18565),p=t(73126),m=y("isConcatSpreadable"),E=p>=51||!n(function(){var P=[];return P[m]=!1,P.concat()[0]!==P}),S=function(P){if(!o(P))return!1;var A=P[m];return A!==void 0?!!A:a(P)},I=!E||!g("concat");r({target:"Array",proto:!0,arity:1,forced:I},{concat:function(A){var R=s(this),N=d(R,0),T=0,C,b,L,D,$;for(C=-1,L=arguments.length;C<L;C++)if($=C===-1?R:arguments[C],S($))for(D=u($),l(T+D),b=0;b<D;b++,T++)b in $&&v(N,T,$[b]);else l(T+1),v(N,T++,$);return N.length=T,N}})},65481:function(i,h,t){var r=t(14304),n=t(81499),a=t(23811);r({target:"Array",proto:!0},{copyWithin:n}),a("copyWithin")},46509:function(i,h,t){var r=t(14304),n=t(66655).every,a=t(6148),o=a("every");r({target:"Array",proto:!0,forced:!o},{every:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},41585:function(i,h,t){var r=t(14304),n=t(43011),a=t(23811);r({target:"Array",proto:!0},{fill:n}),a("fill")},84554:function(i,h,t){var r=t(14304),n=t(66655).filter,a=t(52183),o=a("filter");r({target:"Array",proto:!0,forced:!o},{filter:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},33818:function(i,h,t){var r=t(14304),n=t(66655).findIndex,a=t(23811),o="findIndex",s=!0;o in[]&&Array(1)[o](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{findIndex:function(l){return n(this,l,arguments.length>1?arguments[1]:void 0)}}),a(o)},2209:function(i,h,t){var r=t(14304),n=t(73849).findLastIndex,a=t(23811);r({target:"Array",proto:!0},{findLastIndex:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}}),a("findLastIndex")},64096:function(i,h,t){var r=t(14304),n=t(73849).findLast,a=t(23811);r({target:"Array",proto:!0},{findLast:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}}),a("findLast")},36619:function(i,h,t){var r=t(14304),n=t(66655).find,a=t(23811),o="find",s=!0;o in[]&&Array(1)[o](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{find:function(l){return n(this,l,arguments.length>1?arguments[1]:void 0)}}),a(o)},74092:function(i,h,t){var r=t(14304),n=t(53149),a=t(85156),o=t(49671),s=t(82628),u=t(62083);r({target:"Array",proto:!0},{flatMap:function(v){var d=o(this),g=s(d),y;return a(v),y=u(d,0),y.length=n(y,d,d,g,0,1,v,arguments.length>1?arguments[1]:void 0),y}})},91591:function(i,h,t){var r=t(14304),n=t(53149),a=t(49671),o=t(82628),s=t(12105),u=t(62083);r({target:"Array",proto:!0},{flat:function(){var v=arguments.length?arguments[0]:void 0,d=a(this),g=o(d),y=u(d,0);return y.length=n(y,d,d,g,0,v===void 0?1:s(v)),y}})},54703:function(i,h,t){var r=t(14304),n=t(13349);r({target:"Array",proto:!0,forced:[].forEach!==n},{forEach:n})},82936:function(i,h,t){var r=t(14304),n=t(48258),a=t(97494),o=!a(function(s){Array.from(s)});r({target:"Array",stat:!0,forced:o},{from:n})},48493:function(i,h,t){var r=t(14304),n=t(94319).includes,a=t(72069),o=t(23811),s=a(function(){return!Array(1).includes()});r({target:"Array",proto:!0,forced:s},{includes:function(l){return n(this,l,arguments.length>1?arguments[1]:void 0)}}),o("includes")},64730:function(i,h,t){var r=t(14304),n=t(77422),a=t(94319).indexOf,o=t(6148),s=n([].indexOf),u=!!s&&1/s([1],1,-0)<0,l=u||!o("indexOf");r({target:"Array",proto:!0,forced:l},{indexOf:function(d){var g=arguments.length>1?arguments[1]:void 0;return u?s(this,d,g)||0:a(this,d,g)}})},95024:function(i,h,t){var r=t(14304),n=t(3438);r({target:"Array",stat:!0},{isArray:n})},35054:function(i,h,t){var r=t(36859),n=t(23811),a=t(29107),o=t(82367),s=t(7831).f,u=t(10218),l=t(10659),v=t(70457),d=t(92986),g="Array Iterator",y=o.set,p=o.getterFor(g);i.exports=u(Array,"Array",function(E,S){y(this,{type:g,target:r(E),index:0,kind:S})},function(){var E=p(this),S=E.target,I=E.index++;if(!S||I>=S.length)return E.target=void 0,l(void 0,!0);switch(E.kind){case"keys":return l(I,!1);case"values":return l(S[I],!1)}return l([I,S[I]],!1)},"values");var m=a.Arguments=a.Array;if(n("keys"),n("values"),n("entries"),!v&&d&&m.name!=="values")try{s(m,"name",{value:"values"})}catch(E){}},25460:function(i,h,t){var r=t(14304),n=t(11286),a=t(72181),o=t(36859),s=t(6148),u=n([].join),l=a!==Object,v=l||!s("join",",");r({target:"Array",proto:!0,forced:v},{join:function(g){return u(o(this),g===void 0?",":g)}})},60703:function(i,h,t){var r=t(14304),n=t(58465);r({target:"Array",proto:!0,forced:n!==[].lastIndexOf},{lastIndexOf:n})},90468:function(i,h,t){var r=t(14304),n=t(66655).map,a=t(52183),o=a("map");r({target:"Array",proto:!0,forced:!o},{map:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},69581:function(i,h,t){var r=t(14304),n=t(72069),a=t(11051),o=t(84082),s=Array,u=n(function(){function l(){}return!(s.of.call(l)instanceof l)});r({target:"Array",stat:!0,forced:u},{of:function(){for(var v=0,d=arguments.length,g=new(a(this)?this:s)(d);d>v;)o(g,v,arguments[v++]);return g.length=d,g}})},720:function(i,h,t){var r=t(14304),n=t(49671),a=t(82628),o=t(2213),s=t(20095),u=t(72069),l=u(function(){return[].push.call({length:4294967296},1)!==4294967297}),v=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(g){return g instanceof TypeError}},d=l||!v();r({target:"Array",proto:!0,arity:1,forced:d},{push:function(y){var p=n(this),m=a(p),E=arguments.length;s(m+E);for(var S=0;S<E;S++)p[m]=arguments[S],m++;return o(p,m),m}})},17289:function(i,h,t){var r=t(14304),n=t(97264).right,a=t(6148),o=t(73126),s=t(42954),u=!s&&o>79&&o<83,l=u||!a("reduceRight");r({target:"Array",proto:!0,forced:l},{reduceRight:function(d){return n(this,d,arguments.length,arguments.length>1?arguments[1]:void 0)}})},11042:function(i,h,t){var r=t(14304),n=t(97264).left,a=t(6148),o=t(73126),s=t(42954),u=!s&&o>79&&o<83,l=u||!a("reduce");r({target:"Array",proto:!0,forced:l},{reduce:function(d){var g=arguments.length;return n(this,d,g,g>1?arguments[1]:void 0)}})},24608:function(i,h,t){var r=t(14304),n=t(11286),a=t(3438),o=n([].reverse),s=[1,2];r({target:"Array",proto:!0,forced:String(s)===String(s.reverse())},{reverse:function(){return a(this)&&(this.length=this.length),o(this)}})},51644:function(i,h,t){var r=t(14304),n=t(3438),a=t(11051),o=t(37540),s=t(4652),u=t(82628),l=t(36859),v=t(84082),d=t(18565),g=t(52183),y=t(22806),p=g("slice"),m=d("species"),E=Array,S=Math.max;r({target:"Array",proto:!0,forced:!p},{slice:function(P,A){var R=l(this),N=u(R),T=s(P,N),C=s(A===void 0?N:A,N),b,L,D;if(n(R)&&(b=R.constructor,a(b)&&(b===E||n(b.prototype))?b=void 0:o(b)&&(b=b[m],b===null&&(b=void 0)),b===E||b===void 0))return y(R,T,C);for(L=new(b===void 0?E:b)(S(C-T,0)),D=0;T<C;T++,D++)T in R&&v(L,D,R[T]);return L.length=D,L}})},88088:function(i,h,t){var r=t(14304),n=t(66655).some,a=t(6148),o=a("some");r({target:"Array",proto:!0,forced:!o},{some:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},46828:function(i,h,t){var r=t(14304),n=t(11286),a=t(85156),o=t(49671),s=t(82628),u=t(12384),l=t(17361),v=t(72069),d=t(13270),g=t(6148),y=t(54040),p=t(87216),m=t(73126),E=t(68674),S=[],I=n(S.sort),P=n(S.push),A=v(function(){S.sort(void 0)}),R=v(function(){S.sort(null)}),N=g("sort"),T=!v(function(){if(m)return m<70;if(!(y&&y>3)){if(p)return!0;if(E)return E<603;var L="",D,$,w,H;for(D=65;D<76;D++){switch($=String.fromCharCode(D),D){case 66:case 69:case 70:case 72:w=3;break;case 68:case 71:w=4;break;default:w=2}for(H=0;H<47;H++)S.push({k:$+H,v:w})}for(S.sort(function(U,B){return B.v-U.v}),H=0;H<S.length;H++)$=S[H].k.charAt(0),L.charAt(L.length-1)!==$&&(L+=$);return L!=="DGBEFHACIJK"}}),C=A||!R||!N||!T,b=function(L){return function(D,$){return $===void 0?-1:D===void 0?1:L!==void 0?+L(D,$)||0:l(D)>l($)?1:-1}};r({target:"Array",proto:!0,forced:C},{sort:function(D){D!==void 0&&a(D);var $=o(this);if(T)return D===void 0?I($):I($,D);var w=[],H=s($),U,B;for(B=0;B<H;B++)B in $&&P(w,$[B]);for(d(w,b(D)),U=s(w),B=0;B<U;)$[B]=w[B++];for(;B<H;)u($,B++);return $}})},90088:function(i,h,t){var r=t(36167);r("Array")},35148:function(i,h,t){var r=t(14304),n=t(49671),a=t(4652),o=t(12105),s=t(82628),u=t(2213),l=t(20095),v=t(62083),d=t(84082),g=t(12384),y=t(52183),p=y("splice"),m=Math.max,E=Math.min;r({target:"Array",proto:!0,forced:!p},{splice:function(I,P){var A=n(this),R=s(A),N=a(I,R),T=arguments.length,C,b,L,D,$,w;for(T===0?C=b=0:T===1?(C=0,b=R-N):(C=T-2,b=E(m(o(P),0),R-N)),l(R+C-b),L=v(A,b),D=0;D<b;D++)$=N+D,$ in A&&d(L,D,A[$]);if(L.length=b,C<b){for(D=N;D<R-b;D++)$=D+b,w=D+C,$ in A?A[w]=A[$]:g(A,w);for(D=R;D>R-b+C;D--)g(A,D-1)}else if(C>b)for(D=R-b;D>N;D--)$=D+b-1,w=D+C-1,$ in A?A[w]=A[$]:g(A,w);for(D=0;D<C;D++)A[D+N]=arguments[D+2];return u(A,R-b+C),L}})},86184:function(i,h,t){var r=t(14304),n=t(61638),a=t(36859),o=t(23811),s=Array;r({target:"Array",proto:!0},{toReversed:function(){return n(a(this),s)}}),o("toReversed")},53983:function(i,h,t){var r=t(14304),n=t(11286),a=t(85156),o=t(36859),s=t(5220),u=t(65470),l=t(23811),v=Array,d=n(u("Array","sort"));r({target:"Array",proto:!0},{toSorted:function(y){y!==void 0&&a(y);var p=o(this),m=s(v,p);return d(m,y)}}),l("toSorted")},42560:function(i,h,t){var r=t(14304),n=t(23811),a=t(20095),o=t(82628),s=t(4652),u=t(36859),l=t(12105),v=Array,d=Math.max,g=Math.min;r({target:"Array",proto:!0},{toSpliced:function(p,m){var E=u(this),S=o(E),I=s(p,S),P=arguments.length,A=0,R,N,T,C;for(P===0?R=N=0:P===1?(R=0,N=S-I):(R=P-2,N=g(d(l(m),0),S-I)),T=a(S+R-N),C=v(T);A<I;A++)C[A]=E[A];for(;A<I+R;A++)C[A]=arguments[A-I+2];for(;A<T;A++)C[A]=E[A+N-R];return C}}),n("toSpliced")},27839:function(i,h,t){var r=t(23811);r("flatMap")},88444:function(i,h,t){var r=t(23811);r("flat")},73051:function(i,h,t){var r=t(14304),n=t(49671),a=t(82628),o=t(2213),s=t(12384),u=t(20095),l=[].unshift(0)!==1,v=function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(g){return g instanceof TypeError}},d=l||!v();r({target:"Array",proto:!0,arity:1,forced:d},{unshift:function(y){var p=n(this),m=a(p),E=arguments.length;if(E){u(m+E);for(var S=m;S--;){var I=S+E;S in p?p[I]=p[S]:s(p,I)}for(var P=0;P<E;P++)p[P]=arguments[P]}return o(p,m+E)}})},9372:function(i,h,t){var r=t(14304),n=t(72302),a=t(36859),o=Array;r({target:"Array",proto:!0},{with:function(s,u){return n(a(this),o,s,u)}})},77885:function(i,h,t){var r=t(14304),n=t(17468),a=t(3237);r({global:!0,constructor:!0,forced:!a},{DataView:n.DataView})},68575:function(i,h,t){t(77885)},30801:function(i,h,t){var r=t(14304),n=t(11286),a=t(72069),o=a(function(){return new Date(16e11).getYear()!==120}),s=n(Date.prototype.getFullYear);r({target:"Date",proto:!0,forced:o},{getYear:function(){return s(this)-1900}})},90911:function(i,h,t){var r=t(14304),n=t(11286),a=Date,o=n(a.prototype.getTime);r({target:"Date",stat:!0},{now:function(){return o(new a)}})},90429:function(i,h,t){var r=t(14304),n=t(11286),a=t(12105),o=Date.prototype,s=n(o.getTime),u=n(o.setFullYear);r({target:"Date",proto:!0},{setYear:function(v){s(this);var d=a(v),g=d>=0&&d<=99?d+1900:d;return u(this,g)}})},33685:function(i,h,t){var r=t(14304);r({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},60086:function(i,h,t){var r=t(14304),n=t(11890);r({target:"Date",proto:!0,forced:Date.prototype.toISOString!==n},{toISOString:n})},96049:function(i,h,t){var r=t(14304),n=t(72069),a=t(49671),o=t(89935),s=n(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1});r({target:"Date",proto:!0,arity:1,forced:s},{toJSON:function(l){var v=a(this),d=o(v,"number");return typeof d=="number"&&!isFinite(d)?null:v.toISOString()}})},14038:function(i,h,t){var r=t(94879),n=t(16142),a=t(84306),o=t(18565),s=o("toPrimitive"),u=Date.prototype;r(u,s)||n(u,s,a)},55518:function(i,h,t){var r=t(11286),n=t(16142),a=Date.prototype,o="Invalid Date",s="toString",u=r(a[s]),l=r(a.getTime);String(new Date(NaN))!==o&&n(a,s,function(){var d=l(this);return d===d?u(this):o})},81742:function(i,h,t){var r=t(14304),n=t(66009),a=t(66543),o=t(70003),s="WebAssembly",u=n[s],l=new Error("e",{cause:7}).cause!==7,v=function(g,y){var p={};p[g]=o(g,y,l),r({global:!0,constructor:!0,arity:1,forced:l},p)},d=function(g,y){if(u&&u[g]){var p={};p[g]=o(s+"."+g,y,l),r({target:s,stat:!0,constructor:!0,arity:1,forced:l},p)}};v("Error",function(g){return function(p){return a(g,this,arguments)}}),v("EvalError",function(g){return function(p){return a(g,this,arguments)}}),v("RangeError",function(g){return function(p){return a(g,this,arguments)}}),v("ReferenceError",function(g){return function(p){return a(g,this,arguments)}}),v("SyntaxError",function(g){return function(p){return a(g,this,arguments)}}),v("TypeError",function(g){return function(p){return a(g,this,arguments)}}),v("URIError",function(g){return function(p){return a(g,this,arguments)}}),d("CompileError",function(g){return function(p){return a(g,this,arguments)}}),d("LinkError",function(g){return function(p){return a(g,this,arguments)}}),d("RuntimeError",function(g){return function(p){return a(g,this,arguments)}})},8720:function(i,h,t){var r=t(16142),n=t(58434),a=Error.prototype;a.toString!==n&&r(a,"toString",n)},8894:function(i,h,t){var r=t(14304),n=t(11286),a=t(17361),o=n("".charAt),s=n("".charCodeAt),u=n(/./.exec),l=n(1 .toString),v=n("".toUpperCase),d=/[\w*+\-./@]/,g=function(y,p){for(var m=l(y,16);m.length<p;)m="0"+m;return m};r({global:!0},{escape:function(p){for(var m=a(p),E="",S=m.length,I=0,P,A;I<S;)P=o(m,I++),u(d,P)?E+=P:(A=s(P,0),A<256?E+="%"+g(A,2):E+="%u"+v(g(A,4)));return E}})},60628:function(i,h,t){var r=t(14304),n=t(91384);r({target:"Function",proto:!0,forced:Function.bind!==n},{bind:n})},56347:function(i,h,t){var r=t(23583),n=t(37540),a=t(7831),o=t(95307),s=t(18565),u=t(13749),l=s("hasInstance"),v=Function.prototype;l in v||a.f(v,l,{value:u(function(d){if(!r(this)||!n(d))return!1;var g=this.prototype;return n(g)?o(g,d):d instanceof this},l)})},16864:function(i,h,t){var r=t(92986),n=t(86588).EXISTS,a=t(11286),o=t(85500),s=Function.prototype,u=a(s.toString),l=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,v=a(l.exec),d="name";r&&!n&&o(s,d,{configurable:!0,get:function(){try{return v(l,u(this))[1]}catch(g){return""}}})},93819:function(i,h,t){var r=t(14304),n=t(66009);r({global:!0,forced:n.globalThis!==n},{globalThis:n})},71332:function(i,h,t){var r=t(14304),n=t(38941),a=t(66543),o=t(96499),s=t(11286),u=t(72069),l=t(23583),v=t(491),d=t(22806),g=t(10443),y=t(39729),p=String,m=n("JSON","stringify"),E=s(/./.exec),S=s("".charAt),I=s("".charCodeAt),P=s("".replace),A=s(1 .toString),R=/[\uD800-\uDFFF]/g,N=/^[\uD800-\uDBFF]$/,T=/^[\uDC00-\uDFFF]$/,C=!y||u(function(){var $=n("Symbol")("stringify detection");return m([$])!=="[null]"||m({a:$})!=="{}"||m(Object($))!=="{}"}),b=u(function(){return m("\uDF06\uD834")!=='"\\udf06\\ud834"'||m("\uDEAD")!=='"\\udead"'}),L=function($,w){var H=d(arguments),U=g(w);if(!(!l(U)&&($===void 0||v($))))return H[1]=function(B,j){if(l(U)&&(j=o(U,this,p(B),j)),!v(j))return j},a(m,null,H)},D=function($,w,H){var U=S(H,w-1),B=S(H,w+1);return E(N,$)&&!E(T,B)||E(T,$)&&!E(N,U)?"\\u"+A(I($,0),16):$};m&&r({target:"JSON",stat:!0,arity:3,forced:C||b},{stringify:function(w,H,U){var B=d(arguments),j=a(C?L:m,null,B);return b&&typeof j=="string"?P(j,R,D):j}})},47269:function(i,h,t){var r=t(66009),n=t(78401);n(r.JSON,"JSON",!0)},87777:function(i,h,t){var r=t(89378),n=t(34440);r("Map",function(a){return function(){return a(this,arguments.length?arguments[0]:void 0)}},n)},22090:function(i,h,t){var r=t(14304),n=t(11286),a=t(85156),o=t(2068),s=t(55902),u=t(1774),l=t(70457),v=t(72069),d=u.Map,g=u.has,y=u.get,p=u.set,m=n([].push),E=l||v(function(){return d.groupBy("ab",function(S){return S}).get("a").length!==1});r({target:"Map",stat:!0,forced:l||E},{groupBy:function(I,P){o(I),a(P);var A=new d,R=0;return s(I,function(N){var T=P(N,R++);g(A,T)?m(y(A,T),N):p(A,T,[N])}),A}})},25627:function(i,h,t){t(87777)},9839:function(i,h,t){var r=t(14304),n=t(49366),a=Math.acosh,o=Math.log,s=Math.sqrt,u=Math.LN2,l=!a||Math.floor(a(Number.MAX_VALUE))!==710||a(1/0)!==1/0;r({target:"Math",stat:!0,forced:l},{acosh:function(d){var g=+d;return g<1?NaN:g>9490626562425156e-8?o(g)+u:n(g-1+s(g-1)*s(g+1))}})},15656:function(i,h,t){var r=t(14304),n=Math.asinh,a=Math.log,o=Math.sqrt;function s(l){var v=+l;return!isFinite(v)||v===0?v:v<0?-s(-v):a(v+o(v*v+1))}var u=!(n&&1/n(0)>0);r({target:"Math",stat:!0,forced:u},{asinh:s})},22091:function(i,h,t){var r=t(14304),n=Math.atanh,a=Math.log,o=!(n&&1/n(-0)<0);r({target:"Math",stat:!0,forced:o},{atanh:function(u){var l=+u;return l===0?l:a((1+l)/(1-l))/2}})},2886:function(i,h,t){var r=t(14304),n=t(93976),a=Math.abs,o=Math.pow;r({target:"Math",stat:!0},{cbrt:function(u){var l=+u;return n(l)*o(a(l),.3333333333333333)}})},25895:function(i,h,t){var r=t(14304),n=Math.floor,a=Math.log,o=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(u){var l=u>>>0;return l?31-n(a(l+.5)*o):32}})},24228:function(i,h,t){var r=t(14304),n=t(98940),a=Math.cosh,o=Math.abs,s=Math.E,u=!a||a(710)===1/0;r({target:"Math",stat:!0,forced:u},{cosh:function(v){var d=n(o(v)-1)+1;return(d+1/(d*s*s))*(s/2)}})},79488:function(i,h,t){var r=t(14304),n=t(98940);r({target:"Math",stat:!0,forced:n!==Math.expm1},{expm1:n})},75987:function(i,h,t){var r=t(14304),n=t(93279);r({target:"Math",stat:!0},{fround:n})},81555:function(i,h,t){var r=t(14304),n=Math.hypot,a=Math.abs,o=Math.sqrt,s=!!n&&n(1/0,NaN)!==1/0;r({target:"Math",stat:!0,arity:2,forced:s},{hypot:function(l,v){for(var d=0,g=0,y=arguments.length,p=0,m,E;g<y;)m=a(arguments[g++]),p<m?(E=p/m,d=d*E*E+1,p=m):m>0?(E=m/p,d+=E*E):d+=m;return p===1/0?1/0:p*o(d)}})},87854:function(i,h,t){var r=t(14304),n=t(72069),a=Math.imul,o=n(function(){return a(4294967295,5)!==-5||a.length!==2});r({target:"Math",stat:!0,forced:o},{imul:function(u,l){var v=65535,d=+u,g=+l,y=v&d,p=v&g;return 0|y*p+((v&d>>>16)*p+y*(v&g>>>16)<<16>>>0)}})},35074:function(i,h,t){var r=t(14304),n=t(41942);r({target:"Math",stat:!0},{log10:n})},50946:function(i,h,t){var r=t(14304),n=t(49366);r({target:"Math",stat:!0},{log1p:n})},29417:function(i,h,t){var r=t(14304),n=Math.log,a=Math.LN2;r({target:"Math",stat:!0},{log2:function(s){return n(s)/a}})},80628:function(i,h,t){var r=t(14304),n=t(93976);r({target:"Math",stat:!0},{sign:n})},74375:function(i,h,t){var r=t(14304),n=t(72069),a=t(98940),o=Math.abs,s=Math.exp,u=Math.E,l=n(function(){return Math.sinh(-2e-17)!==-2e-17});r({target:"Math",stat:!0,forced:l},{sinh:function(d){var g=+d;return o(g)<1?(a(g)-a(-g))/2:(s(g-1)-s(-g-1))*(u/2)}})},29708:function(i,h,t){var r=t(14304),n=t(98940),a=Math.exp;r({target:"Math",stat:!0},{tanh:function(s){var u=+s,l=n(u),v=n(-u);return l===1/0?1:v===1/0?-1:(l-v)/(a(u)+a(-u))}})},93449:function(i,h,t){var r=t(78401);r(Math,"Math",!0)},9111:function(i,h,t){var r=t(14304),n=t(22459);r({target:"Math",stat:!0},{trunc:n})},83514:function(i,h,t){var r=t(14304),n=t(70457),a=t(92986),o=t(66009),s=t(75081),u=t(11286),l=t(13278),v=t(94879),d=t(32345),g=t(95307),y=t(491),p=t(89935),m=t(72069),E=t(83258).f,S=t(71349).f,I=t(7831).f,P=t(34338),A=t(85900).trim,R="Number",N=o[R],T=s[R],C=N.prototype,b=o.TypeError,L=u("".slice),D=u("".charCodeAt),$=function(Y){var k=p(Y,"number");return typeof k=="bigint"?k:w(k)},w=function(Y){var k=p(Y,"number"),J,nt,_,dt,lt,gt,St,It;if(y(k))throw new b("Cannot convert a Symbol value to a number");if(typeof k=="string"&&k.length>2){if(k=A(k),J=D(k,0),J===43||J===45){if(nt=D(k,2),nt===88||nt===120)return NaN}else if(J===48){switch(D(k,1)){case 66:case 98:_=2,dt=49;break;case 79:case 111:_=8,dt=55;break;default:return+k}for(lt=L(k,2),gt=lt.length,St=0;St<gt;St++)if(It=D(lt,St),It<48||It>dt)return NaN;return parseInt(lt,_)}}return+k},H=l(R,!N(" 0o1")||!N("0b1")||N("+0x1")),U=function(Y){return g(C,Y)&&m(function(){P(Y)})},B=function(k){var J=arguments.length<1?0:N($(k));return U(this)?d(Object(J),this,B):J};B.prototype=C,H&&!n&&(C.constructor=B),r({global:!0,constructor:!0,wrap:!0,forced:H},{Number:B});var j=function(Y,k){for(var J=a?E(k):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),nt=0,_;J.length>nt;nt++)v(k,_=J[nt])&&!v(Y,_)&&I(Y,_,S(k,_))};n&&T&&j(s[R],T),(H||n)&&j(s[R],N)},15096:function(i,h,t){var r=t(14304);r({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},59590:function(i,h,t){var r=t(14304),n=t(98074);r({target:"Number",stat:!0},{isFinite:n})},99663:function(i,h,t){var r=t(14304),n=t(613);r({target:"Number",stat:!0},{isInteger:n})},89988:function(i,h,t){var r=t(14304);r({target:"Number",stat:!0},{isNaN:function(a){return a!==a}})},54427:function(i,h,t){var r=t(14304),n=t(613),a=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(s){return n(s)&&a(s)<=9007199254740991}})},67895:function(i,h,t){var r=t(14304);r({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},57909:function(i,h,t){var r=t(14304);r({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},83938:function(i,h,t){var r=t(14304),n=t(25838);r({target:"Number",stat:!0,forced:Number.parseFloat!==n},{parseFloat:n})},55461:function(i,h,t){var r=t(14304),n=t(23009);r({target:"Number",stat:!0,forced:Number.parseInt!==n},{parseInt:n})},97339:function(i,h,t){var r=t(14304),n=t(11286),a=t(12105),o=t(34338),s=t(79719),u=t(41942),l=t(72069),v=RangeError,d=String,g=isFinite,y=Math.abs,p=Math.floor,m=Math.pow,E=Math.round,S=n(1 .toExponential),I=n(s),P=n("".slice),A=S(-69e-12,4)==="-6.9000e-11"&&S(1.255,2)==="1.25e+0"&&S(12345,3)==="1.235e+4"&&S(25,0)==="3e+1",R=function(){return l(function(){S(1,1/0)})&&l(function(){S(1,-1/0)})},N=function(){return!l(function(){S(1/0,1/0),S(NaN,1/0)})},T=!A||!R()||!N();r({target:"Number",proto:!0,forced:T},{toExponential:function(b){var L=o(this);if(b===void 0)return S(L);var D=a(b);if(!g(L))return String(L);if(D<0||D>20)throw new v("Incorrect fraction digits");if(A)return S(L,D);var $="",w="",H=0,U="",B="";if(L<0&&($="-",L=-L),L===0)H=0,w=I("0",D+1);else{var j=u(L);H=p(j);var Y=0,k=m(10,H-D);Y=E(L/k),2*L>=(2*Y+1)*k&&(Y+=1),Y>=m(10,D+1)&&(Y/=10,H+=1),w=d(Y)}return D!==0&&(w=P(w,0,1)+"."+P(w,1)),H===0?(U="+",B="0"):(U=H>0?"+":"-",B=d(y(H))),w+="e"+U+B,$+w}})},3670:function(i,h,t){var r=t(14304),n=t(11286),a=t(12105),o=t(34338),s=t(79719),u=t(72069),l=RangeError,v=String,d=Math.floor,g=n(s),y=n("".slice),p=n(1 .toFixed),m=function(R,N,T){return N===0?T:N%2===1?m(R,N-1,T*R):m(R*R,N/2,T)},E=function(R){for(var N=0,T=R;T>=4096;)N+=12,T/=4096;for(;T>=2;)N+=1,T/=2;return N},S=function(R,N,T){for(var C=-1,b=T;++C<6;)b+=N*R[C],R[C]=b%1e7,b=d(b/1e7)},I=function(R,N){for(var T=6,C=0;--T>=0;)C+=R[T],R[T]=d(C/N),C=C%N*1e7},P=function(R){for(var N=6,T="";--N>=0;)if(T!==""||N===0||R[N]!==0){var C=v(R[N]);T=T===""?C:T+g("0",7-C.length)+C}return T},A=u(function(){return p(8e-5,3)!=="0.000"||p(.9,0)!=="1"||p(1.255,2)!=="1.25"||p(0xde0b6b3a7640080,0)!=="1000000000000000128"})||!u(function(){p({})});r({target:"Number",proto:!0,forced:A},{toFixed:function(N){var T=o(this),C=a(N),b=[0,0,0,0,0,0],L="",D="0",$,w,H,U;if(C<0||C>20)throw new l("Incorrect fraction digits");if(T!==T)return"NaN";if(T<=-1e21||T>=1e21)return v(T);if(T<0&&(L="-",T=-T),T>1e-21)if($=E(T*m(2,69,1))-69,w=$<0?T*m(2,-$,1):T/m(2,$,1),w*=4503599627370496,$=52-$,$>0){for(S(b,0,w),H=C;H>=7;)S(b,1e7,0),H-=7;for(S(b,m(10,H,1),0),H=$-1;H>=23;)I(b,8388608),H-=23;I(b,1<<H),S(b,1,1),I(b,2),D=P(b)}else S(b,0,w),S(b,1<<-$,0),D=P(b)+g("0",C);return C>0?(U=D.length,D=L+(U<=C?"0."+g("0",C-U)+D:y(D,0,U-C)+"."+y(D,U-C))):D=L+D,D}})},15224:function(i,h,t){var r=t(14304),n=t(11286),a=t(72069),o=t(34338),s=n(1 .toPrecision),u=a(function(){return s(1,void 0)!=="1"})||!a(function(){s({})});r({target:"Number",proto:!0,forced:u},{toPrecision:function(v){return v===void 0?s(o(this)):s(o(this),v)}})},45891:function(i,h,t){var r=t(14304),n=t(16667);r({target:"Object",stat:!0,arity:2,forced:Object.assign!==n},{assign:n})},99910:function(i,h,t){var r=t(14304),n=t(92986),a=t(5406);r({target:"Object",stat:!0,sham:!n},{create:a})},92445:function(i,h,t){var r=t(14304),n=t(92986),a=t(57629),o=t(85156),s=t(49671),u=t(7831);n&&r({target:"Object",proto:!0,forced:a},{__defineGetter__:function(v,d){u.f(s(this),v,{get:o(d),enumerable:!0,configurable:!0})}})},21875:function(i,h,t){var r=t(14304),n=t(92986),a=t(61963).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==a,sham:!n},{defineProperties:a})},4383:function(i,h,t){var r=t(14304),n=t(92986),a=t(7831).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==a,sham:!n},{defineProperty:a})},11361:function(i,h,t){var r=t(14304),n=t(92986),a=t(57629),o=t(85156),s=t(49671),u=t(7831);n&&r({target:"Object",proto:!0,forced:a},{__defineSetter__:function(v,d){u.f(s(this),v,{set:o(d),enumerable:!0,configurable:!0})}})},13728:function(i,h,t){var r=t(14304),n=t(8511).entries;r({target:"Object",stat:!0},{entries:function(o){return n(o)}})},14885:function(i,h,t){var r=t(14304),n=t(27534),a=t(72069),o=t(37540),s=t(31853).onFreeze,u=Object.freeze,l=a(function(){u(1)});r({target:"Object",stat:!0,forced:l,sham:!n},{freeze:function(d){return u&&o(d)?u(s(d)):d}})},30343:function(i,h,t){var r=t(14304),n=t(55902),a=t(84082);r({target:"Object",stat:!0},{fromEntries:function(s){var u={};return n(s,function(l,v){a(u,l,v)},{AS_ENTRIES:!0}),u}})},22045:function(i,h,t){var r=t(14304),n=t(72069),a=t(36859),o=t(71349).f,s=t(92986),u=!s||n(function(){o(1)});r({target:"Object",stat:!0,forced:u,sham:!s},{getOwnPropertyDescriptor:function(v,d){return o(a(v),d)}})},75e3:function(i,h,t){var r=t(14304),n=t(92986),a=t(16885),o=t(36859),s=t(71349),u=t(84082);r({target:"Object",stat:!0,sham:!n},{getOwnPropertyDescriptors:function(v){for(var d=o(v),g=s.f,y=a(d),p={},m=0,E,S;y.length>m;)S=g(d,E=y[m++]),S!==void 0&&u(p,E,S);return p}})},64658:function(i,h,t){var r=t(14304),n=t(72069),a=t(92880).f,o=n(function(){return!Object.getOwnPropertyNames(1)});r({target:"Object",stat:!0,forced:o},{getOwnPropertyNames:a})},45223:function(i,h,t){var r=t(14304),n=t(39729),a=t(72069),o=t(24943),s=t(49671),u=!n||a(function(){o.f(1)});r({target:"Object",stat:!0,forced:u},{getOwnPropertySymbols:function(v){var d=o.f;return d?d(s(v)):[]}})},16017:function(i,h,t){var r=t(14304),n=t(72069),a=t(49671),o=t(26313),s=t(87501),u=n(function(){o(1)});r({target:"Object",stat:!0,forced:u,sham:!s},{getPrototypeOf:function(v){return o(a(v))}})},84681:function(i,h,t){var r=t(14304),n=t(38941),a=t(11286),o=t(85156),s=t(2068),u=t(50035),l=t(55902),v=t(72069),d=Object.groupBy,g=n("Object","create"),y=a([].push),p=!d||v(function(){return d("ab",function(m){return m}).a.length!==1});r({target:"Object",stat:!0,forced:p},{groupBy:function(E,S){s(E),o(S);var I=g(null),P=0;return l(E,function(A){var R=u(S(A,P++));R in I?y(I[R],A):I[R]=[A]}),I}})},73421:function(i,h,t){var r=t(14304),n=t(94879);r({target:"Object",stat:!0},{hasOwn:n})},31046:function(i,h,t){var r=t(14304),n=t(28174);r({target:"Object",stat:!0,forced:Object.isExtensible!==n},{isExtensible:n})},94645:function(i,h,t){var r=t(14304),n=t(72069),a=t(37540),o=t(14274),s=t(72058),u=Object.isFrozen,l=s||n(function(){u(1)});r({target:"Object",stat:!0,forced:l},{isFrozen:function(d){return!a(d)||s&&o(d)==="ArrayBuffer"?!0:u?u(d):!1}})},62935:function(i,h,t){var r=t(14304),n=t(72069),a=t(37540),o=t(14274),s=t(72058),u=Object.isSealed,l=s||n(function(){u(1)});r({target:"Object",stat:!0,forced:l},{isSealed:function(d){return!a(d)||s&&o(d)==="ArrayBuffer"?!0:u?u(d):!1}})},93446:function(i,h,t){var r=t(14304),n=t(13944);r({target:"Object",stat:!0},{is:n})},62518:function(i,h,t){var r=t(14304),n=t(49671),a=t(18350),o=t(72069),s=o(function(){a(1)});r({target:"Object",stat:!0,forced:s},{keys:function(l){return a(n(l))}})},45130:function(i,h,t){var r=t(14304),n=t(92986),a=t(57629),o=t(49671),s=t(50035),u=t(26313),l=t(71349).f;n&&r({target:"Object",proto:!0,forced:a},{__lookupGetter__:function(d){var g=o(this),y=s(d),p;do if(p=l(g,y))return p.get;while(g=u(g))}})},51542:function(i,h,t){var r=t(14304),n=t(92986),a=t(57629),o=t(49671),s=t(50035),u=t(26313),l=t(71349).f;n&&r({target:"Object",proto:!0,forced:a},{__lookupSetter__:function(d){var g=o(this),y=s(d),p;do if(p=l(g,y))return p.set;while(g=u(g))}})},43781:function(i,h,t){var r=t(14304),n=t(37540),a=t(31853).onFreeze,o=t(27534),s=t(72069),u=Object.preventExtensions,l=s(function(){u(1)});r({target:"Object",stat:!0,forced:l,sham:!o},{preventExtensions:function(d){return u&&n(d)?u(a(d)):d}})},25738:function(i,h,t){var r=t(92986),n=t(85500),a=t(37540),o=t(52427),s=t(49671),u=t(2068),l=Object.getPrototypeOf,v=Object.setPrototypeOf,d=Object.prototype,g="__proto__";if(r&&l&&v&&!(g in d))try{n(d,g,{configurable:!0,get:function(){return l(s(this))},set:function(p){var m=u(this);o(p)&&a(m)&&v(m,p)}})}catch(y){}},93247:function(i,h,t){var r=t(14304),n=t(37540),a=t(31853).onFreeze,o=t(27534),s=t(72069),u=Object.seal,l=s(function(){u(1)});r({target:"Object",stat:!0,forced:l,sham:!o},{seal:function(d){return u&&n(d)?u(a(d)):d}})},41533:function(i,h,t){var r=t(14304),n=t(15861);r({target:"Object",stat:!0},{setPrototypeOf:n})},60225:function(i,h,t){var r=t(67878),n=t(16142),a=t(60105);r||n(Object.prototype,"toString",a,{unsafe:!0})},69920:function(i,h,t){var r=t(14304),n=t(8511).values;r({target:"Object",stat:!0},{values:function(o){return n(o)}})},89205:function(i,h,t){var r=t(14304),n=t(25838);r({global:!0,forced:parseFloat!==n},{parseFloat:n})},78546:function(i,h,t){var r=t(14304),n=t(23009);r({global:!0,forced:parseInt!==n},{parseInt:n})},16893:function(i,h,t){var r=t(14304),n=t(96499),a=t(85156),o=t(24649),s=t(67805),u=t(55902),l=t(26035);r({target:"Promise",stat:!0,forced:l},{allSettled:function(d){var g=this,y=o.f(g),p=y.resolve,m=y.reject,E=s(function(){var S=a(g.resolve),I=[],P=0,A=1;u(d,function(R){var N=P++,T=!1;A++,n(S,g,R).then(function(C){T||(T=!0,I[N]={status:"fulfilled",value:C},--A||p(I))},function(C){T||(T=!0,I[N]={status:"rejected",reason:C},--A||p(I))})}),--A||p(I)});return E.error&&m(E.value),y.promise}})},11733:function(i,h,t){var r=t(14304),n=t(96499),a=t(85156),o=t(24649),s=t(67805),u=t(55902),l=t(26035);r({target:"Promise",stat:!0,forced:l},{all:function(d){var g=this,y=o.f(g),p=y.resolve,m=y.reject,E=s(function(){var S=a(g.resolve),I=[],P=0,A=1;u(d,function(R){var N=P++,T=!1;A++,n(S,g,R).then(function(C){T||(T=!0,I[N]=C,--A||p(I))},m)}),--A||p(I)});return E.error&&m(E.value),y.promise}})},3676:function(i,h,t){var r=t(14304),n=t(96499),a=t(85156),o=t(38941),s=t(24649),u=t(67805),l=t(55902),v=t(26035),d="No one promise resolved";r({target:"Promise",stat:!0,forced:v},{any:function(y){var p=this,m=o("AggregateError"),E=s.f(p),S=E.resolve,I=E.reject,P=u(function(){var A=a(p.resolve),R=[],N=0,T=1,C=!1;l(y,function(b){var L=N++,D=!1;T++,n(A,p,b).then(function($){D||C||(C=!0,S($))},function($){D||C||(D=!0,R[L]=$,--T||I(new m(R,d)))})}),--T||I(new m(R,d))});return P.error&&I(P.value),E.promise}})},14013:function(i,h,t){var r=t(14304),n=t(70457),a=t(37130).CONSTRUCTOR,o=t(98844),s=t(38941),u=t(23583),l=t(16142),v=o&&o.prototype;if(r({target:"Promise",proto:!0,forced:a,real:!0},{catch:function(g){return this.then(void 0,g)}}),!n&&u(o)){var d=s("Promise").prototype.catch;v.catch!==d&&l(v,"catch",d,{unsafe:!0})}},20238:function(i,h,t){var r=t(14304),n=t(70457),a=t(42954),o=t(66009),s=t(96499),u=t(16142),l=t(15861),v=t(78401),d=t(36167),g=t(85156),y=t(23583),p=t(37540),m=t(12833),E=t(16887),S=t(23115).set,I=t(9709),P=t(99095),A=t(67805),R=t(76895),N=t(82367),T=t(98844),C=t(37130),b=t(24649),L="Promise",D=C.CONSTRUCTOR,$=C.REJECTION_EVENT,w=C.SUBCLASSING,H=N.getterFor(L),U=N.set,B=T&&T.prototype,j=T,Y=B,k=o.TypeError,J=o.document,nt=o.process,_=b.f,dt=_,lt=!!(J&&J.createEvent&&o.dispatchEvent),gt="unhandledrejection",St="rejectionhandled",It=0,Gt=1,jt=2,Ft=1,vt=2,yt,Pt,Mt,Ct,Lt=function(rt){var Ot;return p(rt)&&y(Ot=rt.then)?Ot:!1},Zt=function(rt,Ot){var Tt=Ot.value,xt=Ot.state===Gt,pt=xt?rt.ok:rt.fail,_t=rt.resolve,rr=rt.reject,Q=rt.domain,ot,it,z;try{pt?(xt||(Ot.rejection===vt&&Vt(Ot),Ot.rejection=Ft),pt===!0?ot=Tt:(Q&&Q.enter(),ot=pt(Tt),Q&&(Q.exit(),z=!0)),ot===rt.promise?rr(new k("Promise-chain cycle")):(it=Lt(ot))?s(it,ot,_t,rr):_t(ot)):rr(Tt)}catch(Z){Q&&!z&&Q.exit(),rr(Z)}},kt=function(rt,Ot){rt.notified||(rt.notified=!0,I(function(){for(var Tt=rt.reactions,xt;xt=Tt.get();)Zt(xt,rt);rt.notified=!1,Ot&&!rt.rejection&&Dt(rt)}))},Kt=function(rt,Ot,Tt){var xt,pt;lt?(xt=J.createEvent("Event"),xt.promise=Ot,xt.reason=Tt,xt.initEvent(rt,!1,!0),o.dispatchEvent(xt)):xt={promise:Ot,reason:Tt},!$&&(pt=o["on"+rt])?pt(xt):rt===gt&&P("Unhandled promise rejection",Tt)},Dt=function(rt){s(S,o,function(){var Ot=rt.facade,Tt=rt.value,xt=Xt(rt),pt;if(xt&&(pt=A(function(){a?nt.emit("unhandledRejection",Tt,Ot):Kt(gt,Ot,Tt)}),rt.rejection=a||Xt(rt)?vt:Ft,pt.error))throw pt.value})},Xt=function(rt){return rt.rejection!==Ft&&!rt.parent},Vt=function(rt){s(S,o,function(){var Ot=rt.facade;a?nt.emit("rejectionHandled",Ot):Kt(St,Ot,rt.value)})},Ut=function(rt,Ot,Tt){return function(xt){rt(Ot,xt,Tt)}},st=function(rt,Ot,Tt){rt.done||(rt.done=!0,Tt&&(rt=Tt),rt.value=Ot,rt.state=jt,kt(rt,!0))},ht=function(rt,Ot,Tt){if(!rt.done){rt.done=!0,Tt&&(rt=Tt);try{if(rt.facade===Ot)throw new k("Promise can't be resolved itself");var xt=Lt(Ot);xt?I(function(){var pt={done:!1};try{s(xt,Ot,Ut(ht,pt,rt),Ut(st,pt,rt))}catch(_t){st(pt,_t,rt)}}):(rt.value=Ot,rt.state=Gt,kt(rt,!1))}catch(pt){st({done:!1},pt,rt)}}};if(D&&(j=function(Ot){m(this,Y),g(Ot),s(yt,this);var Tt=H(this);try{Ot(Ut(ht,Tt),Ut(st,Tt))}catch(xt){st(Tt,xt)}},Y=j.prototype,yt=function(Ot){U(this,{type:L,done:!1,notified:!1,parent:!1,reactions:new R,rejection:!1,state:It,value:void 0})},yt.prototype=u(Y,"then",function(Ot,Tt){var xt=H(this),pt=_(E(this,j));return xt.parent=!0,pt.ok=y(Ot)?Ot:!0,pt.fail=y(Tt)&&Tt,pt.domain=a?nt.domain:void 0,xt.state===It?xt.reactions.add(pt):I(function(){Zt(pt,xt)}),pt.promise}),Pt=function(){var rt=new yt,Ot=H(rt);this.promise=rt,this.resolve=Ut(ht,Ot),this.reject=Ut(st,Ot)},b.f=_=function(rt){return rt===j||rt===Mt?new Pt(rt):dt(rt)},!n&&y(T)&&B!==Object.prototype)){Ct=B.then,w||u(B,"then",function(Ot,Tt){var xt=this;return new j(function(pt,_t){s(Ct,xt,pt,_t)}).then(Ot,Tt)},{unsafe:!0});try{delete B.constructor}catch(rt){}l&&l(B,Y)}r({global:!0,constructor:!0,wrap:!0,forced:D},{Promise:j}),v(j,L,!1,!0),d(L)},58361:function(i,h,t){var r=t(14304),n=t(70457),a=t(98844),o=t(72069),s=t(38941),u=t(23583),l=t(16887),v=t(87408),d=t(16142),g=a&&a.prototype,y=!!a&&o(function(){g.finally.call({then:function(){}},function(){})});if(r({target:"Promise",proto:!0,real:!0,forced:y},{finally:function(m){var E=l(this,s("Promise")),S=u(m);return this.then(S?function(I){return v(E,m()).then(function(){return I})}:m,S?function(I){return v(E,m()).then(function(){throw I})}:m)}}),!n&&u(a)){var p=s("Promise").prototype.finally;g.finally!==p&&d(g,"finally",p,{unsafe:!0})}},63616:function(i,h,t){t(20238),t(11733),t(14013),t(3037),t(36027),t(97282)},3037:function(i,h,t){var r=t(14304),n=t(96499),a=t(85156),o=t(24649),s=t(67805),u=t(55902),l=t(26035);r({target:"Promise",stat:!0,forced:l},{race:function(d){var g=this,y=o.f(g),p=y.reject,m=s(function(){var E=a(g.resolve);u(d,function(S){n(E,g,S).then(y.resolve,p)})});return m.error&&p(m.value),y.promise}})},36027:function(i,h,t){var r=t(14304),n=t(24649),a=t(37130).CONSTRUCTOR;r({target:"Promise",stat:!0,forced:a},{reject:function(s){var u=n.f(this),l=u.reject;return l(s),u.promise}})},97282:function(i,h,t){var r=t(14304),n=t(38941),a=t(70457),o=t(98844),s=t(37130).CONSTRUCTOR,u=t(87408),l=n("Promise"),v=a&&!s;r({target:"Promise",stat:!0,forced:a||s},{resolve:function(g){return u(v&&this===l?o:this,g)}})},23958:function(i,h,t){var r=t(14304),n=t(24649);r({target:"Promise",stat:!0},{withResolvers:function(){var o=n.f(this);return{promise:o.promise,resolve:o.resolve,reject:o.reject}}})},9798:function(i,h,t){var r=t(14304),n=t(66543),a=t(85156),o=t(25001),s=t(72069),u=!s(function(){Reflect.apply(function(){})});r({target:"Reflect",stat:!0,forced:u},{apply:function(v,d,g){return n(a(v),d,o(g))}})},2371:function(i,h,t){var r=t(14304),n=t(38941),a=t(66543),o=t(91384),s=t(80042),u=t(25001),l=t(37540),v=t(5406),d=t(72069),g=n("Reflect","construct"),y=Object.prototype,p=[].push,m=d(function(){function I(){}return!(g(function(){},[],I)instanceof I)}),E=!d(function(){g(function(){})}),S=m||E;r({target:"Reflect",stat:!0,forced:S,sham:S},{construct:function(P,A){s(P),u(A);var R=arguments.length<3?P:s(arguments[2]);if(E&&!m)return g(P,A,R);if(P===R){switch(A.length){case 0:return new P;case 1:return new P(A[0]);case 2:return new P(A[0],A[1]);case 3:return new P(A[0],A[1],A[2]);case 4:return new P(A[0],A[1],A[2],A[3])}var N=[null];return a(p,N,A),new(a(o,P,N))}var T=R.prototype,C=v(l(T)?T:y),b=a(P,C,A);return l(b)?b:C}})},76185:function(i,h,t){var r=t(14304),n=t(92986),a=t(25001),o=t(50035),s=t(7831),u=t(72069),l=u(function(){Reflect.defineProperty(s.f({},1,{value:1}),1,{value:2})});r({target:"Reflect",stat:!0,forced:l,sham:!n},{defineProperty:function(d,g,y){a(d);var p=o(g);a(y);try{return s.f(d,p,y),!0}catch(m){return!1}}})},76553:function(i,h,t){var r=t(14304),n=t(25001),a=t(71349).f;r({target:"Reflect",stat:!0},{deleteProperty:function(s,u){var l=a(n(s),u);return l&&!l.configurable?!1:delete s[u]}})},25227:function(i,h,t){var r=t(14304),n=t(92986),a=t(25001),o=t(71349);r({target:"Reflect",stat:!0,sham:!n},{getOwnPropertyDescriptor:function(u,l){return o.f(a(u),l)}})},91723:function(i,h,t){var r=t(14304),n=t(25001),a=t(26313),o=t(87501);r({target:"Reflect",stat:!0,sham:!o},{getPrototypeOf:function(u){return a(n(u))}})},93518:function(i,h,t){var r=t(14304),n=t(96499),a=t(37540),o=t(25001),s=t(69745),u=t(71349),l=t(26313);function v(d,g){var y=arguments.length<3?d:arguments[2],p,m;if(o(d)===y)return d[g];if(p=u.f(d,g),p)return s(p)?p.value:p.get===void 0?void 0:n(p.get,y);if(a(m=l(d)))return v(m,g,y)}r({target:"Reflect",stat:!0},{get:v})},57882:function(i,h,t){var r=t(14304);r({target:"Reflect",stat:!0},{has:function(a,o){return o in a}})},37796:function(i,h,t){var r=t(14304),n=t(25001),a=t(28174);r({target:"Reflect",stat:!0},{isExtensible:function(s){return n(s),a(s)}})},11563:function(i,h,t){var r=t(14304),n=t(16885);r({target:"Reflect",stat:!0},{ownKeys:n})},26159:function(i,h,t){var r=t(14304),n=t(38941),a=t(25001),o=t(27534);r({target:"Reflect",stat:!0,sham:!o},{preventExtensions:function(u){a(u);try{var l=n("Object","preventExtensions");return l&&l(u),!0}catch(v){return!1}}})},77487:function(i,h,t){var r=t(14304),n=t(25001),a=t(53408),o=t(15861);o&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(u,l){n(u),a(l);try{return o(u,l),!0}catch(v){return!1}}})},20962:function(i,h,t){var r=t(14304),n=t(96499),a=t(25001),o=t(37540),s=t(69745),u=t(72069),l=t(7831),v=t(71349),d=t(26313),g=t(18526);function y(m,E,S){var I=arguments.length<4?m:arguments[3],P=v.f(a(m),E),A,R,N;if(!P){if(o(R=d(m)))return y(R,E,S,I);P=g(0)}if(s(P)){if(P.writable===!1||!o(I))return!1;if(A=v.f(I,E)){if(A.get||A.set||A.writable===!1)return!1;A.value=S,l.f(I,E,A)}else l.f(I,E,g(0,S))}else{if(N=P.set,N===void 0)return!1;n(N,I,S)}return!0}var p=u(function(){var m=function(){},E=l.f(new m,"a",{configurable:!0});return Reflect.set(m.prototype,"a",1,E)!==!1});r({target:"Reflect",stat:!0,forced:p},{set:y})},6130:function(i,h,t){var r=t(14304),n=t(66009),a=t(78401);r({global:!0},{Reflect:{}}),a(n.Reflect,"Reflect",!0)},1354:function(i,h,t){var r=t(92986),n=t(66009),a=t(11286),o=t(13278),s=t(32345),u=t(90809),l=t(5406),v=t(83258).f,d=t(95307),g=t(11566),y=t(17361),p=t(54932),m=t(39807),E=t(2594),S=t(16142),I=t(72069),P=t(94879),A=t(82367).enforce,R=t(36167),N=t(18565),T=t(76769),C=t(85220),b=N("match"),L=n.RegExp,D=L.prototype,$=n.SyntaxError,w=a(D.exec),H=a("".charAt),U=a("".replace),B=a("".indexOf),j=a("".slice),Y=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,k=/a/g,J=/a/g,nt=new L(k)!==k,_=m.MISSED_STICKY,dt=m.UNSUPPORTED_Y,lt=r&&(!nt||_||T||C||I(function(){return J[b]=!1,L(k)!==k||L(J)===J||String(L(k,"i"))!=="/a/i"})),gt=function(Ft){for(var vt=Ft.length,yt=0,Pt="",Mt=!1,Ct;yt<=vt;yt++){if(Ct=H(Ft,yt),Ct==="\\"){Pt+=Ct+H(Ft,++yt);continue}!Mt&&Ct==="."?Pt+="[\\s\\S]":(Ct==="["?Mt=!0:Ct==="]"&&(Mt=!1),Pt+=Ct)}return Pt},St=function(Ft){for(var vt=Ft.length,yt=0,Pt="",Mt=[],Ct=l(null),Lt=!1,Zt=!1,kt=0,Kt="",Dt;yt<=vt;yt++){if(Dt=H(Ft,yt),Dt==="\\")Dt+=H(Ft,++yt);else if(Dt==="]")Lt=!1;else if(!Lt)switch(!0){case Dt==="[":Lt=!0;break;case Dt==="(":w(Y,j(Ft,yt+1))&&(yt+=2,Zt=!0),Pt+=Dt,kt++;continue;case(Dt===">"&&Zt):if(Kt===""||P(Ct,Kt))throw new $("Invalid capture group name");Ct[Kt]=!0,Mt[Mt.length]=[Kt,kt],Zt=!1,Kt="";continue}Zt?Kt+=Dt:Pt+=Dt}return[Pt,Mt]};if(o("RegExp",lt)){for(var It=function(vt,yt){var Pt=d(D,this),Mt=g(vt),Ct=yt===void 0,Lt=[],Zt=vt,kt,Kt,Dt,Xt,Vt,Ut;if(!Pt&&Mt&&Ct&&vt.constructor===It)return vt;if((Mt||d(D,vt))&&(vt=vt.source,Ct&&(yt=p(Zt))),vt=vt===void 0?"":y(vt),yt=yt===void 0?"":y(yt),Zt=vt,T&&"dotAll"in k&&(Kt=!!yt&&B(yt,"s")>-1,Kt&&(yt=U(yt,/s/g,""))),kt=yt,_&&"sticky"in k&&(Dt=!!yt&&B(yt,"y")>-1,Dt&&dt&&(yt=U(yt,/y/g,""))),C&&(Xt=St(vt),vt=Xt[0],Lt=Xt[1]),Vt=s(L(vt,yt),Pt?this:D,It),(Kt||Dt||Lt.length)&&(Ut=A(Vt),Kt&&(Ut.dotAll=!0,Ut.raw=It(gt(vt),kt)),Dt&&(Ut.sticky=!0),Lt.length&&(Ut.groups=Lt)),vt!==Zt)try{u(Vt,"source",Zt===""?"(?:)":Zt)}catch(st){}return Vt},Gt=v(L),jt=0;Gt.length>jt;)E(It,L,Gt[jt++]);D.constructor=It,It.prototype=D,S(n,"RegExp",It,{constructor:!0})}R("RegExp")},47119:function(i,h,t){var r=t(92986),n=t(76769),a=t(14274),o=t(85500),s=t(82367).get,u=RegExp.prototype,l=TypeError;r&&n&&o(u,"dotAll",{configurable:!0,get:function(){if(this!==u){if(a(this)==="RegExp")return!!s(this).dotAll;throw new l("Incompatible receiver, RegExp required")}}})},31145:function(i,h,t){var r=t(14304),n=t(44381);r({target:"RegExp",proto:!0,forced:/./.exec!==n},{exec:n})},96773:function(i,h,t){var r=t(66009),n=t(92986),a=t(85500),o=t(29833),s=t(72069),u=r.RegExp,l=u.prototype,v=n&&s(function(){var d=!0;try{u(".","d")}catch(P){d=!1}var g={},y="",p=d?"dgimsy":"gimsy",m=function(P,A){Object.defineProperty(g,P,{get:function(){return y+=A,!0}})},E={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};d&&(E.hasIndices="d");for(var S in E)m(S,E[S]);var I=Object.getOwnPropertyDescriptor(l,"flags").get.call(g);return I!==p||y!==p});v&&a(l,"flags",{configurable:!0,get:o})},14371:function(i,h,t){var r=t(92986),n=t(39807).MISSED_STICKY,a=t(14274),o=t(85500),s=t(82367).get,u=RegExp.prototype,l=TypeError;r&&n&&o(u,"sticky",{configurable:!0,get:function(){if(this!==u){if(a(this)==="RegExp")return!!s(this).sticky;throw new l("Incompatible receiver, RegExp required")}}})},18180:function(i,h,t){t(31145);var r=t(14304),n=t(96499),a=t(23583),o=t(25001),s=t(17361),u=function(){var v=!1,d=/[ac]/;return d.exec=function(){return v=!0,/./.exec.apply(this,arguments)},d.test("abc")===!0&&v}(),l=/./.test;r({target:"RegExp",proto:!0,forced:!u},{test:function(v){var d=o(this),g=s(v),y=d.exec;if(!a(y))return n(l,d,g);var p=n(y,d,g);return p===null?!1:(o(p),!0)}})},83147:function(i,h,t){var r=t(86588).PROPER,n=t(16142),a=t(25001),o=t(17361),s=t(72069),u=t(54932),l="toString",v=RegExp.prototype,d=v[l],g=s(function(){return d.call({source:"a",flags:"b"})!=="/a/b"}),y=r&&d.name!==l;(g||y)&&n(v,l,function(){var m=a(this),E=o(m.source),S=o(u(m));return"/"+E+"/"+S},{unsafe:!0})},6583:function(i,h,t){var r=t(89378),n=t(34440);r("Set",function(a){return function(){return a(this,arguments.length?arguments[0]:void 0)}},n)},86548:function(i,h,t){var r=t(14304),n=t(41754),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("difference")},{difference:n})},15282:function(i,h,t){var r=t(14304),n=t(72069),a=t(92292),o=t(94118),s=!o("intersection")||n(function(){return String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))!=="3,2"});r({target:"Set",proto:!0,real:!0,forced:s},{intersection:a})},51275:function(i,h,t){var r=t(14304),n=t(47391),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("isDisjointFrom")},{isDisjointFrom:n})},91890:function(i,h,t){var r=t(14304),n=t(75492),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("isSubsetOf")},{isSubsetOf:n})},15089:function(i,h,t){var r=t(14304),n=t(1333),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("isSupersetOf")},{isSupersetOf:n})},75765:function(i,h,t){t(6583)},78134:function(i,h,t){var r=t(14304),n=t(64680),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("symmetricDifference")},{symmetricDifference:n})},56456:function(i,h,t){var r=t(14304),n=t(70402),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("union")},{union:n})},70641:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("anchor")},{anchor:function(s){return n(this,"a","name",s)}})},40735:function(i,h,t){var r=t(14304),n=t(11286),a=t(2068),o=t(12105),s=t(17361),u=t(72069),l=n("".charAt),v=u(function(){return"\u{20BB7}".at(-2)!=="\uD842"});r({target:"String",proto:!0,forced:v},{at:function(g){var y=s(a(this)),p=y.length,m=o(g),E=m>=0?m:p+m;return E<0||E>=p?void 0:l(y,E)}})},53892:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("big")},{big:function(){return n(this,"big","","")}})},95976:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("blink")},{blink:function(){return n(this,"blink","","")}})},399:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("bold")},{bold:function(){return n(this,"b","","")}})},8510:function(i,h,t){var r=t(14304),n=t(22149).codeAt;r({target:"String",proto:!0},{codePointAt:function(o){return n(this,o)}})},70159:function(i,h,t){var r=t(14304),n=t(77422),a=t(71349).f,o=t(45344),s=t(17361),u=t(92337),l=t(2068),v=t(8790),d=t(70457),g=n("".slice),y=Math.min,p=v("endsWith"),m=!d&&!p&&!!function(){var E=a(String.prototype,"endsWith");return E&&!E.writable}();r({target:"String",proto:!0,forced:!m&&!p},{endsWith:function(S){var I=s(l(this));u(S);var P=arguments.length>1?arguments[1]:void 0,A=I.length,R=P===void 0?A:y(o(P),A),N=s(S);return g(I,R-N.length,R)===N}})},72032:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return n(this,"tt","","")}})},49442:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("fontcolor")},{fontcolor:function(s){return n(this,"font","color",s)}})},16012:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("fontsize")},{fontsize:function(s){return n(this,"font","size",s)}})},93087:function(i,h,t){var r=t(14304),n=t(11286),a=t(4652),o=RangeError,s=String.fromCharCode,u=String.fromCodePoint,l=n([].join),v=!!u&&u.length!==1;r({target:"String",stat:!0,arity:1,forced:v},{fromCodePoint:function(g){for(var y=[],p=arguments.length,m=0,E;p>m;){if(E=+arguments[m++],a(E,1114111)!==E)throw new o(E+" is not a valid code point");y[m]=E<65536?s(E):s(((E-=65536)>>10)+55296,E%1024+56320)}return l(y,"")}})},26021:function(i,h,t){var r=t(14304),n=t(11286),a=t(92337),o=t(2068),s=t(17361),u=t(8790),l=n("".indexOf);r({target:"String",proto:!0,forced:!u("includes")},{includes:function(d){return!!~l(s(o(this)),s(a(d)),arguments.length>1?arguments[1]:void 0)}})},93029:function(i,h,t){var r=t(14304),n=t(11286),a=t(2068),o=t(17361),s=n("".charCodeAt);r({target:"String",proto:!0},{isWellFormed:function(){for(var l=o(a(this)),v=l.length,d=0;d<v;d++){var g=s(l,d);if((g&63488)===55296&&(g>=56320||++d>=v||(s(l,d)&64512)!==56320))return!1}return!0}})},9943:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("italics")},{italics:function(){return n(this,"i","","")}})},59158:function(i,h,t){var r=t(22149).charAt,n=t(17361),a=t(82367),o=t(10218),s=t(10659),u="String Iterator",l=a.set,v=a.getterFor(u);o(String,"String",function(d){l(this,{type:u,string:n(d),index:0})},function(){var g=v(this),y=g.string,p=g.index,m;return p>=y.length?s(void 0,!0):(m=r(y,p),g.index+=m.length,s(m,!1))})},33128:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("link")},{link:function(s){return n(this,"a","href",s)}})},18509:function(i,h,t){var r=t(14304),n=t(96499),a=t(77422),o=t(26820),s=t(10659),u=t(2068),l=t(45344),v=t(17361),d=t(25001),g=t(5683),y=t(14274),p=t(11566),m=t(54932),E=t(10512),S=t(16142),I=t(72069),P=t(18565),A=t(16887),R=t(24487),N=t(33064),T=t(82367),C=t(70457),b=P("matchAll"),L="RegExp String",D=L+" Iterator",$=T.set,w=T.getterFor(D),H=RegExp.prototype,U=TypeError,B=a("".indexOf),j=a("".matchAll),Y=!!j&&!I(function(){j("a",/./)}),k=o(function(_,dt,lt,gt){$(this,{type:D,regexp:_,string:dt,global:lt,unicode:gt,done:!1})},L,function(){var _=w(this);if(_.done)return s(void 0,!0);var dt=_.regexp,lt=_.string,gt=N(dt,lt);return gt===null?(_.done=!0,s(void 0,!0)):_.global?(v(gt[0])===""&&(dt.lastIndex=R(lt,l(dt.lastIndex),_.unicode)),s(gt,!1)):(_.done=!0,s(gt,!1))}),J=function(nt){var _=d(this),dt=v(nt),lt=A(_,RegExp),gt=v(m(_)),St,It,Gt;return St=new lt(lt===RegExp?_.source:_,gt),It=!!~B(gt,"g"),Gt=!!~B(gt,"u"),St.lastIndex=l(_.lastIndex),new k(St,dt,It,Gt)};r({target:"String",proto:!0,forced:Y},{matchAll:function(_){var dt=u(this),lt,gt,St,It;if(g(_)){if(Y)return j(dt,_)}else{if(p(_)&&(lt=v(u(m(_))),!~B(lt,"g")))throw new U("`.matchAll` does not allow non-global regexes");if(Y)return j(dt,_);if(St=E(_,b),St===void 0&&C&&y(_)==="RegExp"&&(St=J),St)return n(St,_,dt)}return gt=v(dt),It=new RegExp(_,"g"),C?n(J,It,gt):It[b](gt)}}),C||b in H||S(H,b,J)},15599:function(i,h,t){var r=t(96499),n=t(63194),a=t(25001),o=t(5683),s=t(45344),u=t(17361),l=t(2068),v=t(10512),d=t(24487),g=t(33064);n("match",function(y,p,m){return[function(S){var I=l(this),P=o(S)?void 0:v(S,y);return P?r(P,S,I):new RegExp(S)[y](u(I))},function(E){var S=a(this),I=u(E),P=m(p,S,I);if(P.done)return P.value;if(!S.global)return g(S,I);var A=S.unicode;S.lastIndex=0;for(var R=[],N=0,T;(T=g(S,I))!==null;){var C=u(T[0]);R[N]=C,C===""&&(S.lastIndex=d(I,s(S.lastIndex),A)),N++}return N===0?null:R}]})},21579:function(i,h,t){var r=t(14304),n=t(61607).end,a=t(36945);r({target:"String",proto:!0,forced:a},{padEnd:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}})},8854:function(i,h,t){var r=t(14304),n=t(61607).start,a=t(36945);r({target:"String",proto:!0,forced:a},{padStart:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}})},57676:function(i,h,t){var r=t(14304),n=t(11286),a=t(36859),o=t(49671),s=t(17361),u=t(82628),l=n([].push),v=n([].join);r({target:"String",stat:!0},{raw:function(g){var y=a(o(g).raw),p=u(y);if(!p)return"";for(var m=arguments.length,E=[],S=0;;){if(l(E,s(y[S++])),S===p)return v(E,"");S<m&&l(E,s(arguments[S]))}}})},14527:function(i,h,t){var r=t(14304),n=t(79719);r({target:"String",proto:!0},{repeat:n})},52684:function(i,h,t){var r=t(14304),n=t(96499),a=t(11286),o=t(2068),s=t(23583),u=t(5683),l=t(11566),v=t(17361),d=t(10512),g=t(54932),y=t(38368),p=t(18565),m=t(70457),E=p("replace"),S=TypeError,I=a("".indexOf),P=a("".replace),A=a("".slice),R=Math.max;r({target:"String",proto:!0},{replaceAll:function(T,C){var b=o(this),L,D,$,w,H,U,B,j,Y,k=0,J=0,nt="";if(!u(T)){if(L=l(T),L&&(D=v(o(g(T))),!~I(D,"g")))throw new S("`.replaceAll` does not allow non-global regexes");if($=d(T,E),$)return n($,T,b,C);if(m&&L)return P(v(b),T,C)}for(w=v(b),H=v(T),U=s(C),U||(C=v(C)),B=H.length,j=R(1,B),k=I(w,H);k!==-1;)Y=U?v(C(H,k,w)):y(H,w,k,[],void 0,C),nt+=A(w,J,k)+Y,J=k+B,k=k+j>w.length?-1:I(w,H,k+j);return J<w.length&&(nt+=A(w,J)),nt}})},96834:function(i,h,t){var r=t(66543),n=t(96499),a=t(11286),o=t(63194),s=t(72069),u=t(25001),l=t(23583),v=t(5683),d=t(12105),g=t(45344),y=t(17361),p=t(2068),m=t(24487),E=t(10512),S=t(38368),I=t(33064),P=t(18565),A=P("replace"),R=Math.max,N=Math.min,T=a([].concat),C=a([].push),b=a("".indexOf),L=a("".slice),D=function(U){return U===void 0?U:String(U)},$=function(){return"a".replace(/./,"$0")==="$0"}(),w=function(){return/./[A]?/./[A]("a","$0")==="":!1}(),H=!s(function(){var U=/./;return U.exec=function(){var B=[];return B.groups={a:"7"},B},"".replace(U,"$<a>")!=="7"});o("replace",function(U,B,j){var Y=w?"$":"$0";return[function(J,nt){var _=p(this),dt=v(J)?void 0:E(J,A);return dt?n(dt,J,_,nt):n(B,y(_),J,nt)},function(k,J){var nt=u(this),_=y(k);if(typeof J=="string"&&b(J,Y)===-1&&b(J,"$<")===-1){var dt=j(B,nt,_,J);if(dt.done)return dt.value}var lt=l(J);lt||(J=y(J));var gt=nt.global,St;gt&&(St=nt.unicode,nt.lastIndex=0);for(var It=[],Gt;Gt=I(nt,_),!(Gt===null||(C(It,Gt),!gt));){var jt=y(Gt[0]);jt===""&&(nt.lastIndex=m(_,g(nt.lastIndex),St))}for(var Ft="",vt=0,yt=0;yt<It.length;yt++){Gt=It[yt];for(var Pt=y(Gt[0]),Mt=R(N(d(Gt.index),_.length),0),Ct=[],Lt,Zt=1;Zt<Gt.length;Zt++)C(Ct,D(Gt[Zt]));var kt=Gt.groups;if(lt){var Kt=T([Pt],Ct,Mt,_);kt!==void 0&&C(Kt,kt),Lt=y(r(J,void 0,Kt))}else Lt=S(Pt,_,Mt,Ct,kt,J);Mt>=vt&&(Ft+=L(_,vt,Mt)+Lt,vt=Mt+Pt.length)}return Ft+L(_,vt)}]},!H||!$||w)},74980:function(i,h,t){var r=t(96499),n=t(63194),a=t(25001),o=t(5683),s=t(2068),u=t(13944),l=t(17361),v=t(10512),d=t(33064);n("search",function(g,y,p){return[function(E){var S=s(this),I=o(E)?void 0:v(E,g);return I?r(I,E,S):new RegExp(E)[g](l(S))},function(m){var E=a(this),S=l(m),I=p(y,E,S);if(I.done)return I.value;var P=E.lastIndex;u(P,0)||(E.lastIndex=0);var A=d(E,S);return u(E.lastIndex,P)||(E.lastIndex=P),A===null?-1:A.index}]})},95625:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("small")},{small:function(){return n(this,"small","","")}})},390:function(i,h,t){var r=t(96499),n=t(11286),a=t(63194),o=t(25001),s=t(5683),u=t(2068),l=t(16887),v=t(24487),d=t(45344),g=t(17361),y=t(10512),p=t(33064),m=t(39807),E=t(72069),S=m.UNSUPPORTED_Y,I=4294967295,P=Math.min,A=n([].push),R=n("".slice),N=!E(function(){var C=/(?:)/,b=C.exec;C.exec=function(){return b.apply(this,arguments)};var L="ab".split(C);return L.length!==2||L[0]!=="a"||L[1]!=="b"}),T="abbc".split(/(b)*/)[1]==="c"||"test".split(/(?:)/,-1).length!==4||"ab".split(/(?:ab)*/).length!==2||".".split(/(.?)(.?)/).length!==4||".".split(/()()/).length>1||"".split(/.?/).length;a("split",function(C,b,L){var D="0".split(void 0,0).length?function($,w){return $===void 0&&w===0?[]:r(b,this,$,w)}:b;return[function(w,H){var U=u(this),B=s(w)?void 0:y(w,C);return B?r(B,w,U,H):r(D,g(U),w,H)},function($,w){var H=o(this),U=g($);if(!T){var B=L(D,H,U,w,D!==b);if(B.done)return B.value}var j=l(H,RegExp),Y=H.unicode,k=(H.ignoreCase?"i":"")+(H.multiline?"m":"")+(H.unicode?"u":"")+(S?"g":"y"),J=new j(S?"^(?:"+H.source+")":H,k),nt=w===void 0?I:w>>>0;if(nt===0)return[];if(U.length===0)return p(J,U)===null?[U]:[];for(var _=0,dt=0,lt=[];dt<U.length;){J.lastIndex=S?0:dt;var gt=p(J,S?R(U,dt):U),St;if(gt===null||(St=P(d(J.lastIndex+(S?dt:0)),U.length))===_)dt=v(U,dt,Y);else{if(A(lt,R(U,_,dt)),lt.length===nt)return lt;for(var It=1;It<=gt.length-1;It++)if(A(lt,gt[It]),lt.length===nt)return lt;dt=_=St}}return A(lt,R(U,_)),lt}]},T||!N,S)},42794:function(i,h,t){var r=t(14304),n=t(77422),a=t(71349).f,o=t(45344),s=t(17361),u=t(92337),l=t(2068),v=t(8790),d=t(70457),g=n("".slice),y=Math.min,p=v("startsWith"),m=!d&&!p&&!!function(){var E=a(String.prototype,"startsWith");return E&&!E.writable}();r({target:"String",proto:!0,forced:!m&&!p},{startsWith:function(S){var I=s(l(this));u(S);var P=o(y(arguments.length>1?arguments[1]:void 0,I.length)),A=s(S);return g(I,P,P+A.length)===A}})},90614:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("strike")},{strike:function(){return n(this,"strike","","")}})},60120:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("sub")},{sub:function(){return n(this,"sub","","")}})},21293:function(i,h,t){var r=t(14304),n=t(11286),a=t(2068),o=t(12105),s=t(17361),u=n("".slice),l=Math.max,v=Math.min,d=!"".substr||"ab".substr(-1)!=="b";r({target:"String",proto:!0,forced:d},{substr:function(y,p){var m=s(a(this)),E=m.length,S=o(y),I,P;return S===1/0&&(S=0),S<0&&(S=l(E+S,0)),I=p===void 0?E:o(p),I<=0||I===1/0?"":(P=v(S+I,E),S>=P?"":u(m,S,P))}})},75826:function(i,h,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("sup")},{sup:function(){return n(this,"sup","","")}})},18184:function(i,h,t){var r=t(14304),n=t(96499),a=t(11286),o=t(2068),s=t(17361),u=t(72069),l=Array,v=a("".charAt),d=a("".charCodeAt),g=a([].join),y="".toWellFormed,p="\uFFFD",m=y&&u(function(){return n(y,1)!=="1"});r({target:"String",proto:!0,forced:m},{toWellFormed:function(){var S=s(o(this));if(m)return n(y,S);for(var I=S.length,P=l(I),A=0;A<I;A++){var R=d(S,A);(R&63488)!==55296?P[A]=v(S,A):R>=56320||A+1>=I||(d(S,A+1)&64512)!==56320?P[A]=p:(P[A]=v(S,A),P[++A]=v(S,A))}return g(P,"")}})},19680:function(i,h,t){t(23283);var r=t(14304),n=t(75176);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==n},{trimEnd:n})},12272:function(i,h,t){var r=t(14304),n=t(83481);r({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==n},{trimLeft:n})},23283:function(i,h,t){var r=t(14304),n=t(75176);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==n},{trimRight:n})},4193:function(i,h,t){t(12272);var r=t(14304),n=t(83481);r({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==n},{trimStart:n})},75012:function(i,h,t){var r=t(14304),n=t(85900).trim,a=t(33328);r({target:"String",proto:!0,forced:a("trim")},{trim:function(){return n(this)}})},43606:function(i,h,t){var r=t(83749);r("asyncIterator")},51767:function(i,h,t){var r=t(14304),n=t(66009),a=t(96499),o=t(11286),s=t(70457),u=t(92986),l=t(39729),v=t(72069),d=t(94879),g=t(95307),y=t(25001),p=t(36859),m=t(50035),E=t(17361),S=t(18526),I=t(5406),P=t(18350),A=t(83258),R=t(92880),N=t(24943),T=t(71349),C=t(7831),b=t(61963),L=t(79591),D=t(16142),$=t(85500),w=t(96731),H=t(44869),U=t(19423),B=t(36374),j=t(18565),Y=t(56529),k=t(83749),J=t(60796),nt=t(78401),_=t(82367),dt=t(66655).forEach,lt=H("hidden"),gt="Symbol",St="prototype",It=_.set,Gt=_.getterFor(gt),jt=Object[St],Ft=n.Symbol,vt=Ft&&Ft[St],yt=n.RangeError,Pt=n.TypeError,Mt=n.QObject,Ct=T.f,Lt=C.f,Zt=R.f,kt=L.f,Kt=o([].push),Dt=w("symbols"),Xt=w("op-symbols"),Vt=w("wks"),Ut=!Mt||!Mt[St]||!Mt[St].findChild,st=function(ot,it,z){var Z=Ct(jt,it);Z&&delete jt[it],Lt(ot,it,z),Z&&ot!==jt&&Lt(jt,it,Z)},ht=u&&v(function(){return I(Lt({},"a",{get:function(){return Lt(this,"a",{value:7}).a}})).a!==7})?st:Lt,rt=function(ot,it){var z=Dt[ot]=I(vt);return It(z,{type:gt,tag:ot,description:it}),u||(z.description=it),z},Ot=function(it,z,Z){it===jt&&Ot(Xt,z,Z),y(it);var K=m(z);return y(Z),d(Dt,K)?(Z.enumerable?(d(it,lt)&&it[lt][K]&&(it[lt][K]=!1),Z=I(Z,{enumerable:S(0,!1)})):(d(it,lt)||Lt(it,lt,S(1,I(null))),it[lt][K]=!0),ht(it,K,Z)):Lt(it,K,Z)},Tt=function(it,z){y(it);var Z=p(z),K=P(Z).concat(Q(Z));return dt(K,function(ct){(!u||a(pt,Z,ct))&&Ot(it,ct,Z[ct])}),it},xt=function(it,z){return z===void 0?I(it):Tt(I(it),z)},pt=function(it){var z=m(it),Z=a(kt,this,z);return this===jt&&d(Dt,z)&&!d(Xt,z)?!1:Z||!d(this,z)||!d(Dt,z)||d(this,lt)&&this[lt][z]?Z:!0},_t=function(it,z){var Z=p(it),K=m(z);if(!(Z===jt&&d(Dt,K)&&!d(Xt,K))){var ct=Ct(Z,K);return ct&&d(Dt,K)&&!(d(Z,lt)&&Z[lt][K])&&(ct.enumerable=!0),ct}},rr=function(it){var z=Zt(p(it)),Z=[];return dt(z,function(K){!d(Dt,K)&&!d(U,K)&&Kt(Z,K)}),Z},Q=function(ot){var it=ot===jt,z=Zt(it?Xt:p(ot)),Z=[];return dt(z,function(K){d(Dt,K)&&(!it||d(jt,K))&&Kt(Z,Dt[K])}),Z};l||(Ft=function(){if(g(vt,this))throw new Pt("Symbol is not a constructor");var it=!arguments.length||arguments[0]===void 0?void 0:E(arguments[0]),z=B(it),Z=function(K){var ct=this===void 0?n:this;ct===jt&&a(Z,Xt,K),d(ct,lt)&&d(ct[lt],z)&&(ct[lt][z]=!1);var At=S(1,K);try{ht(ct,z,At)}catch(Nt){if(!(Nt instanceof yt))throw Nt;st(ct,z,At)}};return u&&Ut&&ht(jt,z,{configurable:!0,set:Z}),rt(z,it)},vt=Ft[St],D(vt,"toString",function(){return Gt(this).tag}),D(Ft,"withoutSetter",function(ot){return rt(B(ot),ot)}),L.f=pt,C.f=Ot,b.f=Tt,T.f=_t,A.f=R.f=rr,N.f=Q,Y.f=function(ot){return rt(j(ot),ot)},u&&($(vt,"description",{configurable:!0,get:function(){return Gt(this).description}}),s||D(jt,"propertyIsEnumerable",pt,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!l,sham:!l},{Symbol:Ft}),dt(P(Vt),function(ot){k(ot)}),r({target:gt,stat:!0,forced:!l},{useSetter:function(){Ut=!0},useSimple:function(){Ut=!1}}),r({target:"Object",stat:!0,forced:!l,sham:!u},{create:xt,defineProperty:Ot,defineProperties:Tt,getOwnPropertyDescriptor:_t}),r({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:rr}),J(),nt(Ft,gt),U[lt]=!0},43657:function(i,h,t){var r=t(14304),n=t(92986),a=t(66009),o=t(11286),s=t(94879),u=t(23583),l=t(95307),v=t(17361),d=t(85500),g=t(93706),y=a.Symbol,p=y&&y.prototype;if(n&&u(y)&&(!("description"in p)||y().description!==void 0)){var m={},E=function(){var C=arguments.length<1||arguments[0]===void 0?void 0:v(arguments[0]),b=l(p,this)?new y(C):C===void 0?y():y(C);return C===""&&(m[b]=!0),b};g(E,y),E.prototype=p,p.constructor=E;var S=String(y("description detection"))==="Symbol(description detection)",I=o(p.valueOf),P=o(p.toString),A=/^Symbol\((.*)\)[^)]+$/,R=o("".replace),N=o("".slice);d(p,"description",{configurable:!0,get:function(){var C=I(this);if(s(m,C))return"";var b=P(C),L=S?N(b,7,-1):R(b,A,"$1");return L===""?void 0:L}}),r({global:!0,constructor:!0,forced:!0},{Symbol:E})}},20872:function(i,h,t){var r=t(14304),n=t(38941),a=t(94879),o=t(17361),s=t(96731),u=t(61190),l=s("string-to-symbol-registry"),v=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!u},{for:function(d){var g=o(d);if(a(l,g))return l[g];var y=n("Symbol")(g);return l[g]=y,v[y]=g,y}})},15855:function(i,h,t){var r=t(83749);r("hasInstance")},42026:function(i,h,t){var r=t(83749);r("isConcatSpreadable")},33257:function(i,h,t){var r=t(83749);r("iterator")},40949:function(i,h,t){t(51767),t(20872),t(94762),t(71332),t(45223)},94762:function(i,h,t){var r=t(14304),n=t(94879),a=t(491),o=t(82453),s=t(96731),u=t(61190),l=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!u},{keyFor:function(d){if(!a(d))throw new TypeError(o(d)+" is not a symbol");if(n(l,d))return l[d]}})},88344:function(i,h,t){var r=t(83749);r("matchAll")},59414:function(i,h,t){var r=t(83749);r("match")},92579:function(i,h,t){var r=t(83749);r("replace")},94655:function(i,h,t){var r=t(83749);r("search")},8565:function(i,h,t){var r=t(83749);r("species")},60843:function(i,h,t){var r=t(83749);r("split")},65842:function(i,h,t){var r=t(83749),n=t(60796);r("toPrimitive"),n()},51595:function(i,h,t){var r=t(38941),n=t(83749),a=t(78401);n("toStringTag"),a(r("Symbol"),"Symbol")},54908:function(i,h,t){var r=t(83749);r("unscopables")},71998:function(i,h,t){var r=t(88037),n=t(82628),a=t(12105),o=r.aTypedArray,s=r.exportTypedArrayMethod;s("at",function(l){var v=o(this),d=n(v),g=a(l),y=g>=0?g:d+g;return y<0||y>=d?void 0:v[y]})},6116:function(i,h,t){var r=t(11286),n=t(88037),a=t(81499),o=r(a),s=n.aTypedArray,u=n.exportTypedArrayMethod;u("copyWithin",function(v,d){return o(s(this),v,d,arguments.length>2?arguments[2]:void 0)})},33032:function(i,h,t){var r=t(88037),n=t(66655).every,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("every",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},80962:function(i,h,t){var r=t(88037),n=t(43011),a=t(11344),o=t(9205),s=t(96499),u=t(11286),l=t(72069),v=r.aTypedArray,d=r.exportTypedArrayMethod,g=u("".slice),y=l(function(){var p=0;return new Int8Array(2).fill({valueOf:function(){return p++}}),p!==1});d("fill",function(m){var E=arguments.length;v(this);var S=g(o(this),0,3)==="Big"?a(m):+m;return s(n,this,S,E>1?arguments[1]:void 0,E>2?arguments[2]:void 0)},y)},49381:function(i,h,t){var r=t(88037),n=t(66655).filter,a=t(3795),o=r.aTypedArray,s=r.exportTypedArrayMethod;s("filter",function(l){var v=n(o(this),l,arguments.length>1?arguments[1]:void 0);return a(this,v)})},65961:function(i,h,t){var r=t(88037),n=t(66655).findIndex,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("findIndex",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},16028:function(i,h,t){var r=t(88037),n=t(73849).findLastIndex,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("findLastIndex",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},94153:function(i,h,t){var r=t(88037),n=t(73849).findLast,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("findLast",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},38344:function(i,h,t){var r=t(88037),n=t(66655).find,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("find",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},25560:function(i,h,t){var r=t(80357);r("Float32",function(n){return function(o,s,u){return n(this,o,s,u)}})},22571:function(i,h,t){var r=t(80357);r("Float64",function(n){return function(o,s,u){return n(this,o,s,u)}})},20656:function(i,h,t){var r=t(88037),n=t(66655).forEach,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("forEach",function(u){n(a(this),u,arguments.length>1?arguments[1]:void 0)})},17063:function(i,h,t){var r=t(46868),n=t(88037).exportTypedArrayStaticMethod,a=t(66169);n("from",a,r)},21774:function(i,h,t){var r=t(88037),n=t(94319).includes,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("includes",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},51761:function(i,h,t){var r=t(88037),n=t(94319).indexOf,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("indexOf",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},36849:function(i,h,t){var r=t(80357);r("Int16",function(n){return function(o,s,u){return n(this,o,s,u)}})},49191:function(i,h,t){var r=t(80357);r("Int32",function(n){return function(o,s,u){return n(this,o,s,u)}})},40704:function(i,h,t){var r=t(80357);r("Int8",function(n){return function(o,s,u){return n(this,o,s,u)}})},12317:function(i,h,t){var r=t(66009),n=t(72069),a=t(11286),o=t(88037),s=t(35054),u=t(18565),l=u("iterator"),v=r.Uint8Array,d=a(s.values),g=a(s.keys),y=a(s.entries),p=o.aTypedArray,m=o.exportTypedArrayMethod,E=v&&v.prototype,S=!n(function(){E[l].call([1])}),I=!!E&&E.values&&E[l]===E.values&&E.values.name==="values",P=function(){return d(p(this))};m("entries",function(){return y(p(this))},S),m("keys",function(){return g(p(this))},S),m("values",P,S||!I,{name:"values"}),m(l,P,S||!I,{name:"values"})},19711:function(i,h,t){var r=t(88037),n=t(11286),a=r.aTypedArray,o=r.exportTypedArrayMethod,s=n([].join);o("join",function(l){return s(a(this),l)})},41034:function(i,h,t){var r=t(88037),n=t(66543),a=t(58465),o=r.aTypedArray,s=r.exportTypedArrayMethod;s("lastIndexOf",function(l){var v=arguments.length;return n(a,o(this),v>1?[l,arguments[1]]:[l])})},13313:function(i,h,t){var r=t(88037),n=t(66655).map,a=t(21822),o=r.aTypedArray,s=r.exportTypedArrayMethod;s("map",function(l){return n(o(this),l,arguments.length>1?arguments[1]:void 0,function(v,d){return new(a(v))(d)})})},44698:function(i,h,t){var r=t(88037),n=t(46868),a=r.aTypedArrayConstructor,o=r.exportTypedArrayStaticMethod;o("of",function(){for(var u=0,l=arguments.length,v=new(a(this))(l);l>u;)v[u]=arguments[u++];return v},n)},66178:function(i,h,t){var r=t(88037),n=t(97264).right,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("reduceRight",function(u){var l=arguments.length;return n(a(this),u,l,l>1?arguments[1]:void 0)})},7369:function(i,h,t){var r=t(88037),n=t(97264).left,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("reduce",function(u){var l=arguments.length;return n(a(this),u,l,l>1?arguments[1]:void 0)})},67961:function(i,h,t){var r=t(88037),n=r.aTypedArray,a=r.exportTypedArrayMethod,o=Math.floor;a("reverse",function(){for(var u=this,l=n(u).length,v=o(l/2),d=0,g;d<v;)g=u[d],u[d++]=u[--l],u[l]=g;return u})},8695:function(i,h,t){var r=t(66009),n=t(96499),a=t(88037),o=t(82628),s=t(58143),u=t(49671),l=t(72069),v=r.RangeError,d=r.Int8Array,g=d&&d.prototype,y=g&&g.set,p=a.aTypedArray,m=a.exportTypedArrayMethod,E=!l(function(){var I=new Uint8ClampedArray(2);return n(y,I,{length:1,0:3},1),I[1]!==3}),S=E&&a.NATIVE_ARRAY_BUFFER_VIEWS&&l(function(){var I=new d(2);return I.set(1),I.set("2",1),I[0]!==0||I[1]!==2});m("set",function(P){p(this);var A=s(arguments.length>1?arguments[1]:void 0,1),R=u(P);if(E)return n(y,this,R,A);var N=this.length,T=o(R),C=0;if(T+A>N)throw new v("Wrong length");for(;C<T;)this[A+C]=R[C++]},!E||S)},69997:function(i,h,t){var r=t(88037),n=t(21822),a=t(72069),o=t(22806),s=r.aTypedArray,u=r.exportTypedArrayMethod,l=a(function(){new Int8Array(1).slice()});u("slice",function(d,g){for(var y=o(s(this),d,g),p=n(this),m=0,E=y.length,S=new p(E);E>m;)S[m]=y[m++];return S},l)},9711:function(i,h,t){var r=t(88037),n=t(66655).some,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("some",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},3923:function(i,h,t){var r=t(66009),n=t(77422),a=t(72069),o=t(85156),s=t(13270),u=t(88037),l=t(54040),v=t(87216),d=t(73126),g=t(68674),y=u.aTypedArray,p=u.exportTypedArrayMethod,m=r.Uint16Array,E=m&&n(m.prototype.sort),S=!!E&&!(a(function(){E(new m(2),null)})&&a(function(){E(new m(2),{})})),I=!!E&&!a(function(){if(d)return d<74;if(l)return l<67;if(v)return!0;if(g)return g<602;var A=new m(516),R=Array(516),N,T;for(N=0;N<516;N++)T=N%4,A[N]=515-N,R[N]=N-2*T+3;for(E(A,function(C,b){return(C/4|0)-(b/4|0)}),N=0;N<516;N++)if(A[N]!==R[N])return!0}),P=function(A){return function(R,N){return A!==void 0?+A(R,N)||0:N!==N?-1:R!==R?1:R===0&&N===0?1/R>0&&1/N<0?1:-1:R>N}};p("sort",function(R){return R!==void 0&&o(R),I?E(this,R):s(y(this),P(R))},!I||S)},59728:function(i,h,t){var r=t(88037),n=t(45344),a=t(4652),o=t(21822),s=r.aTypedArray,u=r.exportTypedArrayMethod;u("subarray",function(v,d){var g=s(this),y=g.length,p=a(v,y),m=o(g);return new m(g.buffer,g.byteOffset+p*g.BYTES_PER_ELEMENT,n((d===void 0?y:a(d,y))-p))})},85227:function(i,h,t){var r=t(66009),n=t(66543),a=t(88037),o=t(72069),s=t(22806),u=r.Int8Array,l=a.aTypedArray,v=a.exportTypedArrayMethod,d=[].toLocaleString,g=!!u&&o(function(){d.call(new u(1))}),y=o(function(){return[1,2].toLocaleString()!==new u([1,2]).toLocaleString()})||!o(function(){u.prototype.toLocaleString.call([1,2])});v("toLocaleString",function(){return n(d,g?s(l(this)):l(this),s(arguments))},y)},56933:function(i,h,t){var r=t(61638),n=t(88037),a=n.aTypedArray,o=n.exportTypedArrayMethod,s=n.getTypedArrayConstructor;o("toReversed",function(){return r(a(this),s(this))})},91490:function(i,h,t){var r=t(88037),n=t(11286),a=t(85156),o=t(5220),s=r.aTypedArray,u=r.getTypedArrayConstructor,l=r.exportTypedArrayMethod,v=n(r.TypedArrayPrototype.sort);l("toSorted",function(g){g!==void 0&&a(g);var y=s(this),p=o(u(y),y);return v(p,g)})},61766:function(i,h,t){var r=t(88037).exportTypedArrayMethod,n=t(72069),a=t(66009),o=t(11286),s=a.Uint8Array,u=s&&s.prototype||{},l=[].toString,v=o([].join);n(function(){l.call({})})&&(l=function(){return v(this)});var d=u.toString!==l;r("toString",l,d)},44884:function(i,h,t){var r=t(80357);r("Uint16",function(n){return function(o,s,u){return n(this,o,s,u)}})},48658:function(i,h,t){var r=t(80357);r("Uint32",function(n){return function(o,s,u){return n(this,o,s,u)}})},81083:function(i,h,t){var r=t(80357);r("Uint8",function(n){return function(o,s,u){return n(this,o,s,u)}})},27428:function(i,h,t){var r=t(80357);r("Uint8",function(n){return function(o,s,u){return n(this,o,s,u)}},!0)},85143:function(i,h,t){var r=t(72302),n=t(88037),a=t(77129),o=t(12105),s=t(11344),u=n.aTypedArray,l=n.getTypedArrayConstructor,v=n.exportTypedArrayMethod,d=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(g){return g===8}}();v("with",function(g,y){var p=u(this),m=o(g),E=a(p)?s(y):+y;return r(p,l(p),m,E)},!d)},47005:function(i,h,t){var r=t(14304),n=t(11286),a=t(17361),o=String.fromCharCode,s=n("".charAt),u=n(/./.exec),l=n("".slice),v=/^[\da-f]{2}$/i,d=/^[\da-f]{4}$/i;r({global:!0},{unescape:function(y){for(var p=a(y),m="",E=p.length,S=0,I,P;S<E;){if(I=s(p,S++),I==="%"){if(s(p,S)==="u"){if(P=l(p,S+1,S+5),u(d,P)){m+=o(parseInt(P,16)),S+=5;continue}}else if(P=l(p,S,S+2),u(v,P)){m+=o(parseInt(P,16)),S+=2;continue}}m+=I}return m}})},21084:function(i,h,t){var r=t(27534),n=t(66009),a=t(11286),o=t(2725),s=t(31853),u=t(89378),l=t(94667),v=t(37540),d=t(82367).enforce,g=t(72069),y=t(42960),p=Object,m=Array.isArray,E=p.isExtensible,S=p.isFrozen,I=p.isSealed,P=p.freeze,A=p.seal,R=!n.ActiveXObject&&"ActiveXObject"in n,N,T=function(U){return function(){return U(this,arguments.length?arguments[0]:void 0)}},C=u("WeakMap",T,l),b=C.prototype,L=a(b.set),D=function(){return r&&g(function(){var U=P([]);return L(new C,U,1),!S(U)})};if(y)if(R){N=l.getConstructor(T,"WeakMap",!0),s.enable();var $=a(b.delete),w=a(b.has),H=a(b.get);o(b,{delete:function(U){if(v(U)&&!E(U)){var B=d(this);return B.frozen||(B.frozen=new N),$(this,U)||B.frozen.delete(U)}return $(this,U)},has:function(B){if(v(B)&&!E(B)){var j=d(this);return j.frozen||(j.frozen=new N),w(this,B)||j.frozen.has(B)}return w(this,B)},get:function(B){if(v(B)&&!E(B)){var j=d(this);return j.frozen||(j.frozen=new N),w(this,B)?H(this,B):j.frozen.get(B)}return H(this,B)},set:function(B,j){if(v(B)&&!E(B)){var Y=d(this);Y.frozen||(Y.frozen=new N),w(this,B)?L(this,B,j):Y.frozen.set(B,j)}else L(this,B,j);return this}})}else D()&&o(b,{set:function(B,j){var Y;return m(B)&&(S(B)?Y=P:I(B)&&(Y=A)),L(this,B,j),Y&&Y(B),this}})},10042:function(i,h,t){t(21084)},58990:function(i,h,t){var r=t(89378),n=t(94667);r("WeakSet",function(a){return function(){return a(this,arguments.length?arguments[0]:void 0)}},n)},37888:function(i,h,t){t(58990)},19431:function(i,h,t){var r=t(14304),n=t(66009),a=t(38941),o=t(11286),s=t(96499),u=t(72069),l=t(17361),v=t(95486),d=t(6210).c2i,g=/[^\d+/a-z]/i,y=/[\t\n\f\r ]+/g,p=/[=]{1,2}$/,m=a("atob"),E=String.fromCharCode,S=o("".charAt),I=o("".replace),P=o(g.exec),A=!!m&&!u(function(){return m("aGk=")!=="hi"}),R=A&&u(function(){return m(" ")!==""}),N=A&&!u(function(){m("a")}),T=A&&!u(function(){m()}),C=A&&m.length!==1,b=!A||R||N||T||C;r({global:!0,bind:!0,enumerable:!0,forced:b},{atob:function(D){if(v(arguments.length,1),A&&!R&&!N)return s(m,n,D);var $=I(l(D),y,""),w="",H=0,U=0,B,j,Y;if($.length%4===0&&($=I($,p,"")),B=$.length,B%4===1||P(g,$))throw new(a("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;H<B;)j=S($,H++),Y=U%4?Y*64+d[j]:d[j],U++%4&&(w+=E(255&Y>>(-2*U&6)));return w}})},60869:function(i,h,t){var r=t(14304),n=t(66009),a=t(38941),o=t(11286),s=t(96499),u=t(72069),l=t(17361),v=t(95486),d=t(6210).i2c,g=a("btoa"),y=o("".charAt),p=o("".charCodeAt),m=!!g&&!u(function(){return g("hi")!=="aGk="}),E=m&&!u(function(){g()}),S=m&&u(function(){return g(null)!=="bnVsbA=="}),I=m&&g.length!==1;r({global:!0,bind:!0,enumerable:!0,forced:!m||E||S||I},{btoa:function(A){if(v(arguments.length,1),m)return s(g,n,l(A));for(var R=l(A),N="",T=0,C=d,b,L;y(R,T)||(C="=",T%1);){if(L=p(R,T+=.75),L>255)throw new(a("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");b=b<<8|L,N+=y(C,63&b>>8-T%1*8)}return N}})},66722:function(i,h,t){var r=t(14304),n=t(66009),a=t(23115).clear;r({global:!0,bind:!0,enumerable:!0,forced:n.clearImmediate!==a},{clearImmediate:a})},50338:function(i,h,t){var r=t(66009),n=t(93014),a=t(39882),o=t(13349),s=t(90809),u=function(v){if(v&&v.forEach!==o)try{s(v,"forEach",o)}catch(d){v.forEach=o}};for(var l in n)n[l]&&u(r[l]&&r[l].prototype);u(a)},53059:function(i,h,t){var r=t(66009),n=t(93014),a=t(39882),o=t(35054),s=t(90809),u=t(78401),l=t(18565),v=l("iterator"),d=o.values,g=function(p,m){if(p){if(p[v]!==d)try{s(p,v,d)}catch(S){p[v]=d}if(u(p,m,!0),n[m]){for(var E in o)if(p[E]!==o[E])try{s(p,E,o[E])}catch(S){p[E]=o[E]}}}};for(var y in n)g(r[y]&&r[y].prototype,y);g(a,"DOMTokenList")},5805:function(i,h,t){var r=t(14304),n=t(18096),a=t(38941),o=t(72069),s=t(5406),u=t(18526),l=t(7831).f,v=t(16142),d=t(85500),g=t(94879),y=t(12833),p=t(25001),m=t(58434),E=t(15453),S=t(74408),I=t(40851),P=t(82367),A=t(92986),R=t(70457),N="DOMException",T="DATA_CLONE_ERR",C=a("Error"),b=a(N)||function(){try{var vt=a("MessageChannel")||n("worker_threads").MessageChannel;new vt().port1.postMessage(new WeakMap)}catch(yt){if(yt.name===T&&yt.code===25)return yt.constructor}}(),L=b&&b.prototype,D=C.prototype,$=P.set,w=P.getterFor(N),H="stack"in new C(N),U=function(vt){return g(S,vt)&&S[vt].m?S[vt].c:0},B=function(){y(this,j);var yt=arguments.length,Pt=E(yt<1?void 0:arguments[0]),Mt=E(yt<2?void 0:arguments[1],"Error"),Ct=U(Mt);if($(this,{type:N,name:Mt,message:Pt,code:Ct}),A||(this.name=Mt,this.message=Pt,this.code=Ct),H){var Lt=new C(Pt);Lt.name=N,l(this,"stack",u(1,I(Lt.stack,1)))}},j=B.prototype=s(D),Y=function(vt){return{enumerable:!0,configurable:!0,get:vt}},k=function(vt){return Y(function(){return w(this)[vt]})};A&&(d(j,"code",k("code")),d(j,"message",k("message")),d(j,"name",k("name"))),l(j,"constructor",u(1,B));var J=o(function(){return!(new b instanceof C)}),nt=J||o(function(){return D.toString!==m||String(new b(1,2))!=="2: 1"}),_=J||o(function(){return new b(1,"DataCloneError").code!==25}),dt=J||b[T]!==25||L[T]!==25,lt=R?nt||_||dt:J;r({global:!0,constructor:!0,forced:lt},{DOMException:lt?B:b});var gt=a(N),St=gt.prototype;nt&&(R||b===gt)&&v(St,"toString",m),_&&A&&b===gt&&d(St,"code",Y(function(){return U(p(this).name)}));for(var It in S)if(g(S,It)){var Gt=S[It],jt=Gt.s,Ft=u(6,Gt.c);g(gt,jt)||l(gt,jt,Ft),g(St,jt)||l(St,jt,Ft)}},50685:function(i,h,t){var r=t(14304),n=t(66009),a=t(38941),o=t(18526),s=t(7831).f,u=t(94879),l=t(12833),v=t(32345),d=t(15453),g=t(74408),y=t(40851),p=t(92986),m=t(70457),E="DOMException",S=a("Error"),I=a(E),P=function(){l(this,A);var B=arguments.length,j=d(B<1?void 0:arguments[0]),Y=d(B<2?void 0:arguments[1],"Error"),k=new I(j,Y),J=new S(j);return J.name=E,s(k,"stack",o(1,y(J.stack,1))),v(k,this,P),k},A=P.prototype=I.prototype,R="stack"in new S(E),N="stack"in new I(1,2),T=I&&p&&Object.getOwnPropertyDescriptor(n,E),C=!!T&&!(T.writable&&T.configurable),b=R&&!C&&!N;r({global:!0,constructor:!0,forced:m||b},{DOMException:b?P:I});var L=a(E),D=L.prototype;if(D.constructor!==L){m||s(D,"constructor",o(1,L));for(var $ in g)if(u(g,$)){var w=g[$],H=w.s;u(L,H)||s(L,H,o(6,w.c))}}},70649:function(i,h,t){var r=t(38941),n=t(78401),a="DOMException";n(r(a),a)},39842:function(i,h,t){t(66722),t(8235)},82872:function(i,h,t){var r=t(14304),n=t(66009),a=t(9709),o=t(85156),s=t(95486),u=t(72069),l=t(92986),v=u(function(){return l&&Object.getOwnPropertyDescriptor(n,"queueMicrotask").value.length!==1});r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:v},{queueMicrotask:function(g){s(arguments.length,1),a(o(g))}})},91401:function(i,h,t){var r=t(14304),n=t(66009),a=t(85500),o=t(92986),s=TypeError,u=Object.defineProperty,l=n.self!==n;try{if(o){var v=Object.getOwnPropertyDescriptor(n,"self");(l||!v||!v.get||!v.enumerable)&&a(n,"self",{get:function(){return n},set:function(g){if(this!==n)throw new s("Illegal invocation");u(n,"self",{value:g,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else r({global:!0,simple:!0,forced:l},{self:n})}catch(d){}},8235:function(i,h,t){var r=t(14304),n=t(66009),a=t(23115).set,o=t(9934),s=n.setImmediate?o(a,!1):a;r({global:!0,bind:!0,enumerable:!0,forced:n.setImmediate!==s},{setImmediate:s})},63981:function(i,h,t){var r=t(14304),n=t(66009),a=t(9934),o=a(n.setInterval,!0);r({global:!0,bind:!0,forced:n.setInterval!==o},{setInterval:o})},23913:function(i,h,t){var r=t(14304),n=t(66009),a=t(9934),o=a(n.setTimeout,!0);r({global:!0,bind:!0,forced:n.setTimeout!==o},{setTimeout:o})},92904:function(i,h,t){var r=t(70457),n=t(14304),a=t(66009),o=t(38941),s=t(11286),u=t(72069),l=t(36374),v=t(23583),d=t(11051),g=t(5683),y=t(37540),p=t(491),m=t(55902),E=t(25001),S=t(9205),I=t(94879),P=t(84082),A=t(90809),R=t(82628),N=t(95486),T=t(54932),C=t(1774),b=t(172),L=t(35051),D=t(63741),$=t(16929),w=t(99050),H=a.Object,U=a.Array,B=a.Date,j=a.Error,Y=a.TypeError,k=a.PerformanceMark,J=o("DOMException"),nt=C.Map,_=C.has,dt=C.get,lt=C.set,gt=b.Set,St=b.add,It=b.has,Gt=o("Object","keys"),jt=s([].push),Ft=s((!0).valueOf),vt=s(1 .valueOf),yt=s("".valueOf),Pt=s(B.prototype.getTime),Mt=l("structuredClone"),Ct="DataCloneError",Lt="Transferring",Zt=function(Q){return!u(function(){var ot=new a.Set([7]),it=Q(ot),z=Q(H(7));return it===ot||!it.has(7)||!y(z)||+z!=7})&&Q},kt=function(Q,ot){return!u(function(){var it=new ot,z=Q({a:it,b:it});return!(z&&z.a===z.b&&z.a instanceof ot&&z.a.stack===it.stack)})},Kt=function(Q){return!u(function(){var ot=Q(new a.AggregateError([1],Mt,{cause:3}));return ot.name!=="AggregateError"||ot.errors[0]!==1||ot.message!==Mt||ot.cause!==3})},Dt=a.structuredClone,Xt=r||!kt(Dt,j)||!kt(Dt,J)||!Kt(Dt),Vt=!Dt&&Zt(function(Q){return new k(Mt,{detail:Q}).detail}),Ut=Zt(Dt)||Vt,st=function(Q){throw new J("Uncloneable type: "+Q,Ct)},ht=function(Q,ot){throw new J((ot||"Cloning")+" of "+Q+" cannot be properly polyfilled in this engine",Ct)},rt=function(Q,ot){return Ut||ht(ot),Ut(Q)},Ot=function(){var Q;try{Q=new a.DataTransfer}catch(ot){try{Q=new a.ClipboardEvent("").clipboardData}catch(it){}}return Q&&Q.items&&Q.files?Q:null},Tt=function(Q,ot,it){if(_(ot,Q))return dt(ot,Q);var z=it||S(Q),Z,K,ct,At,Nt,Wt;if(z==="SharedArrayBuffer")Ut?Z=Ut(Q):Z=Q;else{var Jt=a.DataView;!Jt&&!v(Q.slice)&&ht("ArrayBuffer");try{if(v(Q.slice)&&!Q.resizable)Z=Q.slice(0);else for(K=Q.byteLength,ct=("maxByteLength"in Q)?{maxByteLength:Q.maxByteLength}:void 0,Z=new ArrayBuffer(K,ct),At=new Jt(Q),Nt=new Jt(Z),Wt=0;Wt<K;Wt++)Nt.setUint8(Wt,At.getUint8(Wt))}catch(Yt){throw new J("ArrayBuffer is detached",Ct)}}return lt(ot,Q,Z),Z},xt=function(Q,ot,it,z,Z){var K=a[ot];return y(K)||ht(ot),new K(Tt(Q.buffer,Z),it,z)},pt=function(Q,ot){if(p(Q)&&st("Symbol"),!y(Q))return Q;if(ot){if(_(ot,Q))return dt(ot,Q)}else ot=new nt;var it=S(Q),z,Z,K,ct,At,Nt,Wt,Jt;switch(it){case"Array":K=U(R(Q));break;case"Object":K={};break;case"Map":K=new nt;break;case"Set":K=new gt;break;case"RegExp":K=new RegExp(Q.source,T(Q));break;case"Error":switch(Z=Q.name,Z){case"AggregateError":K=new(o(Z))([]);break;case"EvalError":case"RangeError":case"ReferenceError":case"SuppressedError":case"SyntaxError":case"TypeError":case"URIError":K=new(o(Z));break;case"CompileError":case"LinkError":case"RuntimeError":K=new(o("WebAssembly",Z));break;default:K=new j}break;case"DOMException":K=new J(Q.message,Q.name);break;case"ArrayBuffer":case"SharedArrayBuffer":K=Tt(Q,ot,it);break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float16Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":Nt=it==="DataView"?Q.byteLength:Q.length,K=xt(Q,it,Q.byteOffset,Nt,ot);break;case"DOMQuad":try{K=new DOMQuad(pt(Q.p1,ot),pt(Q.p2,ot),pt(Q.p3,ot),pt(Q.p4,ot))}catch(Yt){K=rt(Q,it)}break;case"File":if(Ut)try{K=Ut(Q),S(K)!==it&&(K=void 0)}catch(Yt){}if(!K)try{K=new File([Q],Q.name,Q)}catch(Yt){}K||ht(it);break;case"FileList":if(ct=Ot(),ct){for(At=0,Nt=R(Q);At<Nt;At++)ct.items.add(pt(Q[At],ot));K=ct.files}else K=rt(Q,it);break;case"ImageData":try{K=new ImageData(pt(Q.data,ot),Q.width,Q.height,{colorSpace:Q.colorSpace})}catch(Yt){K=rt(Q,it)}break;default:if(Ut)K=Ut(Q);else switch(it){case"BigInt":K=H(Q.valueOf());break;case"Boolean":K=H(Ft(Q));break;case"Number":K=H(vt(Q));break;case"String":K=H(yt(Q));break;case"Date":K=new B(Pt(Q));break;case"Blob":try{K=Q.slice(0,Q.size,Q.type)}catch(Yt){ht(it)}break;case"DOMPoint":case"DOMPointReadOnly":z=a[it];try{K=z.fromPoint?z.fromPoint(Q):new z(Q.x,Q.y,Q.z,Q.w)}catch(Yt){ht(it)}break;case"DOMRect":case"DOMRectReadOnly":z=a[it];try{K=z.fromRect?z.fromRect(Q):new z(Q.x,Q.y,Q.width,Q.height)}catch(Yt){ht(it)}break;case"DOMMatrix":case"DOMMatrixReadOnly":z=a[it];try{K=z.fromMatrix?z.fromMatrix(Q):new z(Q)}catch(Yt){ht(it)}break;case"AudioData":case"VideoFrame":v(Q.clone)||ht(it);try{K=Q.clone()}catch(Yt){st(it)}break;case"CropTarget":case"CryptoKey":case"FileSystemDirectoryHandle":case"FileSystemFileHandle":case"FileSystemHandle":case"GPUCompilationInfo":case"GPUCompilationMessage":case"ImageBitmap":case"RTCCertificate":case"WebAssembly.Module":ht(it);default:st(it)}}switch(lt(ot,Q,K),it){case"Array":case"Object":for(Wt=Gt(Q),At=0,Nt=R(Wt);At<Nt;At++)Jt=Wt[At],P(K,Jt,pt(Q[Jt],ot));break;case"Map":Q.forEach(function(Yt,er){lt(K,pt(er,ot),pt(Yt,ot))});break;case"Set":Q.forEach(function(Yt){St(K,pt(Yt,ot))});break;case"Error":A(K,"message",pt(Q.message,ot)),I(Q,"cause")&&A(K,"cause",pt(Q.cause,ot)),Z==="AggregateError"?K.errors=pt(Q.errors,ot):Z==="SuppressedError"&&(K.error=pt(Q.error,ot),K.suppressed=pt(Q.suppressed,ot));case"DOMException":$&&A(K,"stack",pt(Q.stack,ot))}return K},_t=function(Q,ot){if(!y(Q))throw new Y("Transfer option cannot be converted to a sequence");var it=[];m(Q,function(er){jt(it,E(er))});for(var z=0,Z=R(it),K=new gt,ct,At,Nt,Wt,Jt,Yt;z<Z;){if(ct=it[z++],At=S(ct),At==="ArrayBuffer"?It(K,ct):_(ot,ct))throw new J("Duplicate transferable",Ct);if(At==="ArrayBuffer"){St(K,ct);continue}if(w)Wt=Dt(ct,{transfer:[ct]});else switch(At){case"ImageBitmap":Nt=a.OffscreenCanvas,d(Nt)||ht(At,Lt);try{Jt=new Nt(ct.width,ct.height),Yt=Jt.getContext("bitmaprenderer"),Yt.transferFromImageBitmap(ct),Wt=Jt.transferToImageBitmap()}catch(er){}break;case"AudioData":case"VideoFrame":(!v(ct.clone)||!v(ct.close))&&ht(At,Lt);try{Wt=ct.clone(),ct.close()}catch(er){}break;case"MediaSourceHandle":case"MessagePort":case"OffscreenCanvas":case"ReadableStream":case"TransformStream":case"WritableStream":ht(At,Lt)}if(Wt===void 0)throw new J("This object cannot be transferred: "+At,Ct);lt(ot,ct,Wt)}return K},rr=function(Q){L(Q,function(ot){w?Ut(ot,{transfer:[ot]}):v(ot.transfer)?ot.transfer():D?D(ot):ht("ArrayBuffer",Lt)})};n({global:!0,enumerable:!0,sham:!w,forced:Xt},{structuredClone:function(ot){var it=N(arguments.length,1)>1&&!g(arguments[1])?E(arguments[1]):void 0,z=it?it.transfer:void 0,Z,K;z!==void 0&&(Z=new nt,K=_t(z,Z));var ct=pt(ot,Z);return K&&rr(K),ct}})},28381:function(i,h,t){t(63981),t(23913)},98812:function(i,h,t){t(35054);var r=t(14304),n=t(66009),a=t(28167),o=t(96499),s=t(11286),u=t(92986),l=t(91918),v=t(16142),d=t(85500),g=t(2725),y=t(78401),p=t(26820),m=t(82367),E=t(12833),S=t(23583),I=t(94879),P=t(45526),A=t(9205),R=t(25001),N=t(37540),T=t(17361),C=t(5406),b=t(18526),L=t(90619),D=t(81077),$=t(10659),w=t(95486),H=t(18565),U=t(13270),B=H("iterator"),j="URLSearchParams",Y=j+"Iterator",k=m.set,J=m.getterFor(j),nt=m.getterFor(Y),_=a("fetch"),dt=a("Request"),lt=a("Headers"),gt=dt&&dt.prototype,St=lt&<.prototype,It=n.RegExp,Gt=n.TypeError,jt=n.decodeURIComponent,Ft=n.encodeURIComponent,vt=s("".charAt),yt=s([].join),Pt=s([].push),Mt=s("".replace),Ct=s([].shift),Lt=s([].splice),Zt=s("".split),kt=s("".slice),Kt=/\+/g,Dt=Array(4),Xt=function(z){return Dt[z-1]||(Dt[z-1]=It("((?:%[\\da-f]{2}){"+z+"})","gi"))},Vt=function(z){try{return jt(z)}catch(Z){return z}},Ut=function(z){var Z=Mt(z,Kt," "),K=4;try{return jt(Z)}catch(ct){for(;K;)Z=Mt(Z,Xt(K--),Vt);return Z}},st=/[!'()~]|%20/g,ht={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},rt=function(z){return ht[z]},Ot=function(z){return Mt(Ft(z),st,rt)},Tt=p(function(Z,K){k(this,{type:Y,target:J(Z).entries,index:0,kind:K})},j,function(){var Z=nt(this),K=Z.target,ct=Z.index++;if(!K||ct>=K.length)return Z.target=void 0,$(void 0,!0);var At=K[ct];switch(Z.kind){case"keys":return $(At.key,!1);case"values":return $(At.value,!1)}return $([At.key,At.value],!1)},!0),xt=function(z){this.entries=[],this.url=null,z!==void 0&&(N(z)?this.parseObject(z):this.parseQuery(typeof z=="string"?vt(z,0)==="?"?kt(z,1):z:T(z)))};xt.prototype={type:j,bindURL:function(z){this.url=z,this.update()},parseObject:function(z){var Z=this.entries,K=D(z),ct,At,Nt,Wt,Jt,Yt,er;if(K)for(ct=L(z,K),At=ct.next;!(Nt=o(At,ct)).done;){if(Wt=L(R(Nt.value)),Jt=Wt.next,(Yt=o(Jt,Wt)).done||(er=o(Jt,Wt)).done||!o(Jt,Wt).done)throw new Gt("Expected sequence with length 2");Pt(Z,{key:T(Yt.value),value:T(er.value)})}else for(var Xr in z)I(z,Xr)&&Pt(Z,{key:Xr,value:T(z[Xr])})},parseQuery:function(z){if(z)for(var Z=this.entries,K=Zt(z,"&"),ct=0,At,Nt;ct<K.length;)At=K[ct++],At.length&&(Nt=Zt(At,"="),Pt(Z,{key:Ut(Ct(Nt)),value:Ut(yt(Nt,"="))}))},serialize:function(){for(var z=this.entries,Z=[],K=0,ct;K<z.length;)ct=z[K++],Pt(Z,Ot(ct.key)+"="+Ot(ct.value));return yt(Z,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var pt=function(){E(this,_t);var Z=arguments.length>0?arguments[0]:void 0,K=k(this,new xt(Z));u||(this.size=K.entries.length)},_t=pt.prototype;if(g(_t,{append:function(Z,K){var ct=J(this);w(arguments.length,2),Pt(ct.entries,{key:T(Z),value:T(K)}),u||this.length++,ct.updateURL()},delete:function(z){for(var Z=J(this),K=w(arguments.length,1),ct=Z.entries,At=T(z),Nt=K<2?void 0:arguments[1],Wt=Nt===void 0?Nt:T(Nt),Jt=0;Jt<ct.length;){var Yt=ct[Jt];if(Yt.key===At&&(Wt===void 0||Yt.value===Wt)){if(Lt(ct,Jt,1),Wt!==void 0)break}else Jt++}u||(this.size=ct.length),Z.updateURL()},get:function(Z){var K=J(this).entries;w(arguments.length,1);for(var ct=T(Z),At=0;At<K.length;At++)if(K[At].key===ct)return K[At].value;return null},getAll:function(Z){var K=J(this).entries;w(arguments.length,1);for(var ct=T(Z),At=[],Nt=0;Nt<K.length;Nt++)K[Nt].key===ct&&Pt(At,K[Nt].value);return At},has:function(Z){for(var K=J(this).entries,ct=w(arguments.length,1),At=T(Z),Nt=ct<2?void 0:arguments[1],Wt=Nt===void 0?Nt:T(Nt),Jt=0;Jt<K.length;){var Yt=K[Jt++];if(Yt.key===At&&(Wt===void 0||Yt.value===Wt))return!0}return!1},set:function(Z,K){var ct=J(this);w(arguments.length,1);for(var At=ct.entries,Nt=!1,Wt=T(Z),Jt=T(K),Yt=0,er;Yt<At.length;Yt++)er=At[Yt],er.key===Wt&&(Nt?Lt(At,Yt--,1):(Nt=!0,er.value=Jt));Nt||Pt(At,{key:Wt,value:Jt}),u||(this.size=At.length),ct.updateURL()},sort:function(){var Z=J(this);U(Z.entries,function(K,ct){return K.key>ct.key?1:-1}),Z.updateURL()},forEach:function(Z){for(var K=J(this).entries,ct=P(Z,arguments.length>1?arguments[1]:void 0),At=0,Nt;At<K.length;)Nt=K[At++],ct(Nt.value,Nt.key,this)},keys:function(){return new Tt(this,"keys")},values:function(){return new Tt(this,"values")},entries:function(){return new Tt(this,"entries")}},{enumerable:!0}),v(_t,B,_t.entries,{name:"entries"}),v(_t,"toString",function(){return J(this).serialize()},{enumerable:!0}),u&&d(_t,"size",{get:function(){return J(this).entries.length},configurable:!0,enumerable:!0}),y(pt,j),r({global:!0,constructor:!0,forced:!l},{URLSearchParams:pt}),!l&&S(lt)){var rr=s(St.has),Q=s(St.set),ot=function(z){if(N(z)){var Z=z.body,K;if(A(Z)===j)return K=z.headers?new lt(z.headers):new lt,rr(K,"content-type")||Q(K,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),C(z,{body:b(0,T(Z)),headers:b(0,K)})}return z};if(S(_)&&r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(Z){return _(Z,arguments.length>1?ot(arguments[1]):{})}}),S(dt)){var it=function(Z){return E(this,gt),new dt(Z,arguments.length>1?ot(arguments[1]):{})};gt.constructor=it,it.prototype=gt,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:it})}}i.exports={URLSearchParams:pt,getState:J}},10901:function(i,h,t){var r=t(16142),n=t(11286),a=t(17361),o=t(95486),s=URLSearchParams,u=s.prototype,l=n(u.append),v=n(u.delete),d=n(u.forEach),g=n([].push),y=new s("a=1&a=2&b=3");y.delete("a",1),y.delete("b",void 0),y+""!="a=2"&&r(u,"delete",function(p){var m=arguments.length,E=m<2?void 0:arguments[1];if(m&&E===void 0)return v(this,p);var S=[];d(this,function(b,L){g(S,{key:L,value:b})}),o(m,1);for(var I=a(p),P=a(E),A=0,R=0,N=!1,T=S.length,C;A<T;)C=S[A++],N||C.key===I?(N=!0,v(this,C.key)):R++;for(;R<T;)C=S[R++],C.key===I&&C.value===P||l(this,C.key,C.value)},{enumerable:!0,unsafe:!0})},93944:function(i,h,t){var r=t(16142),n=t(11286),a=t(17361),o=t(95486),s=URLSearchParams,u=s.prototype,l=n(u.getAll),v=n(u.has),d=new s("a=1");(d.has("a",2)||!d.has("a",void 0))&&r(u,"has",function(y){var p=arguments.length,m=p<2?void 0:arguments[1];if(p&&m===void 0)return v(this,y);var E=l(this,y);o(p,1);for(var S=a(m),I=0;I<E.length;)if(E[I++]===S)return!0;return!1},{enumerable:!0,unsafe:!0})},86650:function(i,h,t){t(98812)},79043:function(i,h,t){var r=t(92986),n=t(11286),a=t(85500),o=URLSearchParams.prototype,s=n(o.forEach);r&&!("size"in o)&&a(o,"size",{get:function(){var l=0;return s(this,function(){l++}),l},configurable:!0,enumerable:!0})},20760:function(i,h,t){var r=t(14304),n=t(38941),a=t(72069),o=t(95486),s=t(17361),u=t(91918),l=n("URL"),v=u&&a(function(){l.canParse()}),d=a(function(){return l.canParse.length!==1});r({target:"URL",stat:!0,forced:!v||d},{canParse:function(y){var p=o(arguments.length,1),m=s(y),E=p<2||arguments[1]===void 0?void 0:s(arguments[1]);try{return!!new l(m,E)}catch(S){return!1}}})},81888:function(i,h,t){t(59158);var r=t(14304),n=t(92986),a=t(91918),o=t(66009),s=t(45526),u=t(11286),l=t(16142),v=t(85500),d=t(12833),g=t(94879),y=t(16667),p=t(48258),m=t(22806),E=t(22149).codeAt,S=t(38679),I=t(17361),P=t(78401),A=t(95486),R=t(98812),N=t(82367),T=N.set,C=N.getterFor("URL"),b=R.URLSearchParams,L=R.getState,D=o.URL,$=o.TypeError,w=o.parseInt,H=Math.floor,U=Math.pow,B=u("".charAt),j=u(/./.exec),Y=u([].join),k=u(1 .toString),J=u([].pop),nt=u([].push),_=u("".replace),dt=u([].shift),lt=u("".split),gt=u("".slice),St=u("".toLowerCase),It=u([].unshift),Gt="Invalid authority",jt="Invalid scheme",Ft="Invalid host",vt="Invalid port",yt=/[a-z]/i,Pt=/[\d+-.a-z]/i,Mt=/\d/,Ct=/^0x/i,Lt=/^[0-7]+$/,Zt=/^\d+$/,kt=/^[\da-f]+$/i,Kt=/[\0\t\n\r #%/:<>?@[\\\]^|]/,Dt=/[\0\t\n\r #/:<>?@[\\\]^|]/,Xt=/^[\u0000-\u0020]+/,Vt=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,Ut=/[\t\n\r]/g,st,ht=function(X){var ut=lt(X,"."),q,V,at,Ht,Rt,nr,ar;if(ut.length&&ut[ut.length-1]===""&&ut.length--,q=ut.length,q>4)return X;for(V=[],at=0;at<q;at++){if(Ht=ut[at],Ht==="")return X;if(Rt=10,Ht.length>1&&B(Ht,0)==="0"&&(Rt=j(Ct,Ht)?16:8,Ht=gt(Ht,Rt===8?1:2)),Ht==="")nr=0;else{if(!j(Rt===10?Zt:Rt===8?Lt:kt,Ht))return X;nr=w(Ht,Rt)}nt(V,nr)}for(at=0;at<q;at++)if(nr=V[at],at===q-1){if(nr>=U(256,5-q))return null}else if(nr>255)return null;for(ar=J(V),at=0;at<V.length;at++)ar+=V[at]*U(256,3-at);return ar},rt=function(X){var ut=[0,0,0,0,0,0,0,0],q=0,V=null,at=0,Ht,Rt,nr,ar,ur,Rr,ft,sr=function(){return B(X,at)};if(sr()===":"){if(B(X,1)!==":")return;at+=2,q++,V=q}for(;sr();){if(q===8)return;if(sr()===":"){if(V!==null)return;at++,q++,V=q;continue}for(Ht=Rt=0;Rt<4&&j(kt,sr());)Ht=Ht*16+w(sr(),16),at++,Rt++;if(sr()==="."){if(Rt===0||(at-=Rt,q>6))return;for(nr=0;sr();){if(ar=null,nr>0)if(sr()==="."&&nr<4)at++;else return;if(!j(Mt,sr()))return;for(;j(Mt,sr());){if(ur=w(sr(),10),ar===null)ar=ur;else{if(ar===0)return;ar=ar*10+ur}if(ar>255)return;at++}ut[q]=ut[q]*256+ar,nr++,(nr===2||nr===4)&&q++}if(nr!==4)return;break}else if(sr()===":"){if(at++,!sr())return}else if(sr())return;ut[q++]=Ht}if(V!==null)for(Rr=q-V,q=7;q!==0&&Rr>0;)ft=ut[q],ut[q--]=ut[V+Rr-1],ut[V+--Rr]=ft;else if(q!==8)return;return ut},Ot=function(X){for(var ut=null,q=1,V=null,at=0,Ht=0;Ht<8;Ht++)X[Ht]!==0?(at>q&&(ut=V,q=at),V=null,at=0):(V===null&&(V=Ht),++at);return at>q&&(ut=V,q=at),ut},Tt=function(X){var ut,q,V,at;if(typeof X=="number"){for(ut=[],q=0;q<4;q++)It(ut,X%256),X=H(X/256);return Y(ut,".")}else if(typeof X=="object"){for(ut="",V=Ot(X),q=0;q<8;q++)at&&X[q]===0||(at&&(at=!1),V===q?(ut+=q?":":"::",at=!0):(ut+=k(X[q],16),q<7&&(ut+=":")));return"["+ut+"]"}return X},xt={},pt=y({},xt,{" ":1,'"':1,"<":1,">":1,"`":1}),_t=y({},pt,{"#":1,"?":1,"{":1,"}":1}),rr=y({},_t,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Q=function(X,ut){var q=E(X,0);return q>32&&q<127&&!g(ut,X)?X:encodeURIComponent(X)},ot={ftp:21,file:null,http:80,https:443,ws:80,wss:443},it=function(X,ut){var q;return X.length===2&&j(yt,B(X,0))&&((q=B(X,1))===":"||!ut&&q==="|")},z=function(X){var ut;return X.length>1&&it(gt(X,0,2))&&(X.length===2||(ut=B(X,2))==="/"||ut==="\\"||ut==="?"||ut==="#")},Z=function(X){return X==="."||St(X)==="%2e"},K=function(X){return X=St(X),X===".."||X==="%2e."||X===".%2e"||X==="%2e%2e"},ct={},At={},Nt={},Wt={},Jt={},Yt={},er={},Xr={},en={},an={},dn={},on={},hn={},gn={},Dn={},yn={},Nr={},br={},Fn={},Vr={},Dr={},sn=function(X,ut,q){var V=I(X),at,Ht,Rt;if(ut){if(Ht=this.parse(V),Ht)throw new $(Ht);this.searchParams=null}else{if(q!==void 0&&(at=new sn(q,!0)),Ht=this.parse(V,null,at),Ht)throw new $(Ht);Rt=L(new b),Rt.bindURL(this),this.searchParams=Rt}};sn.prototype={type:"URL",parse:function(X,ut,q){var V=this,at=ut||ct,Ht=0,Rt="",nr=!1,ar=!1,ur=!1,Rr,ft,sr,Fr;for(X=I(X),ut||(V.scheme="",V.username="",V.password="",V.host=null,V.port=null,V.path=[],V.query=null,V.fragment=null,V.cannotBeABaseURL=!1,X=_(X,Xt,""),X=_(X,Vt,"$1")),X=_(X,Ut,""),Rr=p(X);Ht<=Rr.length;){switch(ft=Rr[Ht],at){case ct:if(ft&&j(yt,ft))Rt+=St(ft),at=At;else{if(ut)return jt;at=Nt;continue}break;case At:if(ft&&(j(Pt,ft)||ft==="+"||ft==="-"||ft==="."))Rt+=St(ft);else if(ft===":"){if(ut&&(V.isSpecial()!==g(ot,Rt)||Rt==="file"&&(V.includesCredentials()||V.port!==null)||V.scheme==="file"&&!V.host))return;if(V.scheme=Rt,ut){V.isSpecial()&&ot[V.scheme]===V.port&&(V.port=null);return}Rt="",V.scheme==="file"?at=gn:V.isSpecial()&&q&&q.scheme===V.scheme?at=Wt:V.isSpecial()?at=Xr:Rr[Ht+1]==="/"?(at=Jt,Ht++):(V.cannotBeABaseURL=!0,nt(V.path,""),at=Fn)}else{if(ut)return jt;Rt="",at=Nt,Ht=0;continue}break;case Nt:if(!q||q.cannotBeABaseURL&&ft!=="#")return jt;if(q.cannotBeABaseURL&&ft==="#"){V.scheme=q.scheme,V.path=m(q.path),V.query=q.query,V.fragment="",V.cannotBeABaseURL=!0,at=Dr;break}at=q.scheme==="file"?gn:Yt;continue;case Wt:if(ft==="/"&&Rr[Ht+1]==="/")at=en,Ht++;else{at=Yt;continue}break;case Jt:if(ft==="/"){at=an;break}else{at=br;continue}case Yt:if(V.scheme=q.scheme,ft===st)V.username=q.username,V.password=q.password,V.host=q.host,V.port=q.port,V.path=m(q.path),V.query=q.query;else if(ft==="/"||ft==="\\"&&V.isSpecial())at=er;else if(ft==="?")V.username=q.username,V.password=q.password,V.host=q.host,V.port=q.port,V.path=m(q.path),V.query="",at=Vr;else if(ft==="#")V.username=q.username,V.password=q.password,V.host=q.host,V.port=q.port,V.path=m(q.path),V.query=q.query,V.fragment="",at=Dr;else{V.username=q.username,V.password=q.password,V.host=q.host,V.port=q.port,V.path=m(q.path),V.path.length--,at=br;continue}break;case er:if(V.isSpecial()&&(ft==="/"||ft==="\\"))at=en;else if(ft==="/")at=an;else{V.username=q.username,V.password=q.password,V.host=q.host,V.port=q.port,at=br;continue}break;case Xr:if(at=en,ft!=="/"||B(Rt,Ht+1)!=="/")continue;Ht++;break;case en:if(ft!=="/"&&ft!=="\\"){at=an;continue}break;case an:if(ft==="@"){nr&&(Rt="%40"+Rt),nr=!0,sr=p(Rt);for(var mn=0;mn<sr.length;mn++){var $n=sr[mn];if($n===":"&&!ur){ur=!0;continue}var Un=Q($n,rr);ur?V.password+=Un:V.username+=Un}Rt=""}else if(ft===st||ft==="/"||ft==="?"||ft==="#"||ft==="\\"&&V.isSpecial()){if(nr&&Rt==="")return Gt;Ht-=p(Rt).length+1,Rt="",at=dn}else Rt+=ft;break;case dn:case on:if(ut&&V.scheme==="file"){at=yn;continue}else if(ft===":"&&!ar){if(Rt==="")return Ft;if(Fr=V.parseHost(Rt),Fr)return Fr;if(Rt="",at=hn,ut===on)return}else if(ft===st||ft==="/"||ft==="?"||ft==="#"||ft==="\\"&&V.isSpecial()){if(V.isSpecial()&&Rt==="")return Ft;if(ut&&Rt===""&&(V.includesCredentials()||V.port!==null))return;if(Fr=V.parseHost(Rt),Fr)return Fr;if(Rt="",at=Nr,ut)return;continue}else ft==="["?ar=!0:ft==="]"&&(ar=!1),Rt+=ft;break;case hn:if(j(Mt,ft))Rt+=ft;else if(ft===st||ft==="/"||ft==="?"||ft==="#"||ft==="\\"&&V.isSpecial()||ut){if(Rt!==""){var un=w(Rt,10);if(un>65535)return vt;V.port=V.isSpecial()&&un===ot[V.scheme]?null:un,Rt=""}if(ut)return;at=Nr;continue}else return vt;break;case gn:if(V.scheme="file",ft==="/"||ft==="\\")at=Dn;else if(q&&q.scheme==="file")switch(ft){case st:V.host=q.host,V.path=m(q.path),V.query=q.query;break;case"?":V.host=q.host,V.path=m(q.path),V.query="",at=Vr;break;case"#":V.host=q.host,V.path=m(q.path),V.query=q.query,V.fragment="",at=Dr;break;default:z(Y(m(Rr,Ht),""))||(V.host=q.host,V.path=m(q.path),V.shortenPath()),at=br;continue}else{at=br;continue}break;case Dn:if(ft==="/"||ft==="\\"){at=yn;break}q&&q.scheme==="file"&&!z(Y(m(Rr,Ht),""))&&(it(q.path[0],!0)?nt(V.path,q.path[0]):V.host=q.host),at=br;continue;case yn:if(ft===st||ft==="/"||ft==="\\"||ft==="?"||ft==="#"){if(!ut&&it(Rt))at=br;else if(Rt===""){if(V.host="",ut)return;at=Nr}else{if(Fr=V.parseHost(Rt),Fr)return Fr;if(V.host==="localhost"&&(V.host=""),ut)return;Rt="",at=Nr}continue}else Rt+=ft;break;case Nr:if(V.isSpecial()){if(at=br,ft!=="/"&&ft!=="\\")continue}else if(!ut&&ft==="?")V.query="",at=Vr;else if(!ut&&ft==="#")V.fragment="",at=Dr;else if(ft!==st&&(at=br,ft!=="/"))continue;break;case br:if(ft===st||ft==="/"||ft==="\\"&&V.isSpecial()||!ut&&(ft==="?"||ft==="#")){if(K(Rt)?(V.shortenPath(),ft!=="/"&&!(ft==="\\"&&V.isSpecial())&&nt(V.path,"")):Z(Rt)?ft!=="/"&&!(ft==="\\"&&V.isSpecial())&&nt(V.path,""):(V.scheme==="file"&&!V.path.length&&it(Rt)&&(V.host&&(V.host=""),Rt=B(Rt,0)+":"),nt(V.path,Rt)),Rt="",V.scheme==="file"&&(ft===st||ft==="?"||ft==="#"))for(;V.path.length>1&&V.path[0]==="";)dt(V.path);ft==="?"?(V.query="",at=Vr):ft==="#"&&(V.fragment="",at=Dr)}else Rt+=Q(ft,_t);break;case Fn:ft==="?"?(V.query="",at=Vr):ft==="#"?(V.fragment="",at=Dr):ft!==st&&(V.path[0]+=Q(ft,xt));break;case Vr:!ut&&ft==="#"?(V.fragment="",at=Dr):ft!==st&&(ft==="'"&&V.isSpecial()?V.query+="%27":ft==="#"?V.query+="%23":V.query+=Q(ft,xt));break;case Dr:ft!==st&&(V.fragment+=Q(ft,pt));break}Ht++}},parseHost:function(X){var ut,q,V;if(B(X,0)==="["){if(B(X,X.length-1)!=="]"||(ut=rt(gt(X,1,-1)),!ut))return Ft;this.host=ut}else if(this.isSpecial()){if(X=S(X),j(Kt,X)||(ut=ht(X),ut===null))return Ft;this.host=ut}else{if(j(Dt,X))return Ft;for(ut="",q=p(X),V=0;V<q.length;V++)ut+=Q(q[V],xt);this.host=ut}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme==="file"},includesCredentials:function(){return this.username!==""||this.password!==""},isSpecial:function(){return g(ot,this.scheme)},shortenPath:function(){var X=this.path,ut=X.length;ut&&(this.scheme!=="file"||ut!==1||!it(X[0],!0))&&X.length--},serialize:function(){var X=this,ut=X.scheme,q=X.username,V=X.password,at=X.host,Ht=X.port,Rt=X.path,nr=X.query,ar=X.fragment,ur=ut+":";return at!==null?(ur+="//",X.includesCredentials()&&(ur+=q+(V?":"+V:"")+"@"),ur+=Tt(at),Ht!==null&&(ur+=":"+Ht)):ut==="file"&&(ur+="//"),ur+=X.cannotBeABaseURL?Rt[0]:Rt.length?"/"+Y(Rt,"/"):"",nr!==null&&(ur+="?"+nr),ar!==null&&(ur+="#"+ar),ur},setHref:function(X){var ut=this.parse(X);if(ut)throw new $(ut);this.searchParams.update()},getOrigin:function(){var X=this.scheme,ut=this.port;if(X==="blob")try{return new jr(X.path[0]).origin}catch(q){return"null"}return X==="file"||!this.isSpecial()?"null":X+"://"+Tt(this.host)+(ut!==null?":"+ut:"")},getProtocol:function(){return this.scheme+":"},setProtocol:function(X){this.parse(I(X)+":",ct)},getUsername:function(){return this.username},setUsername:function(X){var ut=p(I(X));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var q=0;q<ut.length;q++)this.username+=Q(ut[q],rr)}},getPassword:function(){return this.password},setPassword:function(X){var ut=p(I(X));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var q=0;q<ut.length;q++)this.password+=Q(ut[q],rr)}},getHost:function(){var X=this.host,ut=this.port;return X===null?"":ut===null?Tt(X):Tt(X)+":"+ut},setHost:function(X){this.cannotBeABaseURL||this.parse(X,dn)},getHostname:function(){var X=this.host;return X===null?"":Tt(X)},setHostname:function(X){this.cannotBeABaseURL||this.parse(X,on)},getPort:function(){var X=this.port;return X===null?"":I(X)},setPort:function(X){this.cannotHaveUsernamePasswordPort()||(X=I(X),X===""?this.port=null:this.parse(X,hn))},getPathname:function(){var X=this.path;return this.cannotBeABaseURL?X[0]:X.length?"/"+Y(X,"/"):""},setPathname:function(X){this.cannotBeABaseURL||(this.path=[],this.parse(X,Nr))},getSearch:function(){var X=this.query;return X?"?"+X:""},setSearch:function(X){X=I(X),X===""?this.query=null:(B(X,0)==="?"&&(X=gt(X,1)),this.query="",this.parse(X,Vr)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var X=this.fragment;return X?"#"+X:""},setHash:function(X){if(X=I(X),X===""){this.fragment=null;return}B(X,0)==="#"&&(X=gt(X,1)),this.fragment="",this.parse(X,Dr)},update:function(){this.query=this.searchParams.serialize()||null}};var jr=function(ut){var q=d(this,dr),V=A(arguments.length,1)>1?arguments[1]:void 0,at=T(q,new sn(ut,!1,V));n||(q.href=at.serialize(),q.origin=at.getOrigin(),q.protocol=at.getProtocol(),q.username=at.getUsername(),q.password=at.getPassword(),q.host=at.getHost(),q.hostname=at.getHostname(),q.port=at.getPort(),q.pathname=at.getPathname(),q.search=at.getSearch(),q.searchParams=at.getSearchParams(),q.hash=at.getHash())},dr=jr.prototype,Tr=function(X,ut){return{get:function(){return C(this)[X]()},set:ut&&function(q){return C(this)[ut](q)},configurable:!0,enumerable:!0}};if(n&&(v(dr,"href",Tr("serialize","setHref")),v(dr,"origin",Tr("getOrigin")),v(dr,"protocol",Tr("getProtocol","setProtocol")),v(dr,"username",Tr("getUsername","setUsername")),v(dr,"password",Tr("getPassword","setPassword")),v(dr,"host",Tr("getHost","setHost")),v(dr,"hostname",Tr("getHostname","setHostname")),v(dr,"port",Tr("getPort","setPort")),v(dr,"pathname",Tr("getPathname","setPathname")),v(dr,"search",Tr("getSearch","setSearch")),v(dr,"searchParams",Tr("getSearchParams")),v(dr,"hash",Tr("getHash","setHash"))),l(dr,"toJSON",function(){return C(this).serialize()},{enumerable:!0}),l(dr,"toString",function(){return C(this).serialize()},{enumerable:!0}),D){var pn=D.createObjectURL,Ln=D.revokeObjectURL;pn&&l(jr,"createObjectURL",s(pn,D)),Ln&&l(jr,"revokeObjectURL",s(Ln,D))}P(jr,"URL"),r({global:!0,constructor:!0,forced:!a,sham:!n},{URL:jr})},51862:function(i,h,t){t(81888)},24119:function(i,h,t){var r=t(14304),n=t(38941),a=t(95486),o=t(17361),s=t(91918),u=n("URL");r({target:"URL",stat:!0,forced:!s},{parse:function(v){var d=a(arguments.length,1),g=o(v),y=d<2||arguments[1]===void 0?void 0:o(arguments[1]);try{return new u(g,y)}catch(p){return null}}})},97526:function(i,h,t){var r=t(14304),n=t(96499);r({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return n(URL.prototype.toString,this)}})},61969:function(i,h,t){t(40949),t(43657),t(43606),t(15855),t(42026),t(33257),t(59414),t(88344),t(92579),t(94655),t(8565),t(60843),t(65842),t(51595),t(54908),t(81742),t(8720),t(42861),t(27796),t(1341),t(98700),t(65481),t(46509),t(41585),t(84554),t(36619),t(33818),t(64096),t(2209),t(91591),t(74092),t(54703),t(82936),t(48493),t(64730),t(95024),t(35054),t(25460),t(60703),t(90468),t(69581),t(720),t(11042),t(17289),t(24608),t(51644),t(88088),t(46828),t(90088),t(35148),t(86184),t(53983),t(42560),t(88444),t(27839),t(73051),t(9372),t(35473),t(4983),t(6875),t(68575),t(35495),t(32790),t(58594),t(30801),t(90911),t(90429),t(33685),t(60086),t(96049),t(14038),t(55518),t(8894),t(60628),t(56347),t(16864),t(93819),t(71332),t(47269),t(25627),t(22090),t(9839),t(15656),t(22091),t(2886),t(25895),t(24228),t(79488),t(75987),t(81555),t(87854),t(35074),t(50946),t(29417),t(80628),t(74375),t(29708),t(93449),t(9111),t(83514),t(15096),t(59590),t(99663),t(89988),t(54427),t(67895),t(57909),t(83938),t(55461),t(97339),t(3670),t(15224),t(45891),t(99910),t(92445),t(21875),t(4383),t(11361),t(13728),t(14885),t(30343),t(22045),t(75e3),t(64658),t(16017),t(84681),t(73421),t(93446),t(31046),t(94645),t(62935),t(62518),t(45130),t(51542),t(43781),t(25738),t(93247),t(41533),t(60225),t(69920),t(89205),t(78546),t(63616),t(16893),t(3676),t(58361),t(23958),t(9798),t(2371),t(76185),t(76553),t(93518),t(25227),t(91723),t(57882),t(37796),t(11563),t(26159),t(20962),t(77487),t(6130),t(1354),t(47119),t(31145),t(96773),t(14371),t(18180),t(83147),t(75765),t(86548),t(15282),t(51275),t(91890),t(15089),t(78134),t(56456),t(40735),t(8510),t(70159),t(93087),t(26021),t(93029),t(59158),t(15599),t(18509),t(21579),t(8854),t(57676),t(14527),t(96834),t(52684),t(74980),t(390),t(42794),t(21293),t(18184),t(75012),t(19680),t(4193),t(70641),t(53892),t(95976),t(399),t(72032),t(49442),t(16012),t(9943),t(33128),t(95625),t(90614),t(60120),t(75826),t(25560),t(22571),t(40704),t(36849),t(49191),t(81083),t(27428),t(44884),t(48658),t(71998),t(6116),t(33032),t(80962),t(49381),t(38344),t(65961),t(94153),t(16028),t(20656),t(17063),t(21774),t(51761),t(12317),t(19711),t(41034),t(13313),t(44698),t(7369),t(66178),t(67961),t(8695),t(69997),t(9711),t(3923),t(59728),t(85227),t(56933),t(91490),t(61766),t(85143),t(47005),t(10042),t(37888),t(19431),t(60869),t(50338),t(53059),t(5805),t(50685),t(70649),t(39842),t(82872),t(91401),t(92904),t(28381),t(51862),t(20760),t(24119),t(97526),t(86650),t(10901),t(93944),t(79043),t(75081)}},Kr={};function Mr(i){var h=Kr[i];if(h!==void 0)return h.exports;var t=Kr[i]={exports:{}};return Ce[i].call(t.exports,t,t.exports,Mr),t.exports}(function(){Mr.d=function(i,h){for(var t in h)Mr.o(h,t)&&!Mr.o(i,t)&&Object.defineProperty(i,t,{enumerable:!0,get:h[t]})}})(),function(){Mr.o=function(i,h){return Object.prototype.hasOwnProperty.call(i,h)}}(),Mr(61969);var oe=Mr(68990);return oe=oe.default,oe}()}); diff --git a/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-stanford.pkgd.js b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-stanford.pkgd.js new file mode 100644 index 000000000..deb11092a --- /dev/null +++ b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-stanford.pkgd.js @@ -0,0 +1,24769 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("bb", [], factory); + else if(typeof exports === 'object') + exports["bb"] = factory(); + else + root["bb"] = root["bb"] || {}, root["bb"]["plugin"] = root["bb"]["plugin"] || {}, root["bb"]["plugin"]["stanford.pkgd"] = factory(); +})(this, function() { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +__webpack_require__(1); +__webpack_require__(97); +__webpack_require__(98); +__webpack_require__(99); +__webpack_require__(100); +__webpack_require__(101); +__webpack_require__(102); +__webpack_require__(103); +__webpack_require__(104); +__webpack_require__(105); +__webpack_require__(106); +__webpack_require__(107); +__webpack_require__(108); +__webpack_require__(109); +__webpack_require__(110); +__webpack_require__(111); +__webpack_require__(124); +__webpack_require__(126); +__webpack_require__(136); +__webpack_require__(137); +__webpack_require__(139); +__webpack_require__(143); +__webpack_require__(146); +__webpack_require__(148); +__webpack_require__(150); +__webpack_require__(151); +__webpack_require__(152); +__webpack_require__(153); +__webpack_require__(155); +__webpack_require__(156); +__webpack_require__(158); +__webpack_require__(159); +__webpack_require__(161); +__webpack_require__(165); +__webpack_require__(166); +__webpack_require__(167); +__webpack_require__(168); +__webpack_require__(173); +__webpack_require__(174); +__webpack_require__(176); +__webpack_require__(177); +__webpack_require__(178); +__webpack_require__(180); +__webpack_require__(183); +__webpack_require__(184); +__webpack_require__(185); +__webpack_require__(186); +__webpack_require__(187); +__webpack_require__(192); +__webpack_require__(194); +__webpack_require__(195); +__webpack_require__(197); +__webpack_require__(200); +__webpack_require__(201); +__webpack_require__(202); +__webpack_require__(203); +__webpack_require__(204); +__webpack_require__(206); +__webpack_require__(216); +__webpack_require__(218); +__webpack_require__(221); +__webpack_require__(223); +__webpack_require__(226); +__webpack_require__(233); +__webpack_require__(234); +__webpack_require__(235); +__webpack_require__(236); +__webpack_require__(237); +__webpack_require__(238); +__webpack_require__(242); +__webpack_require__(243); +__webpack_require__(245); +__webpack_require__(246); +__webpack_require__(247); +__webpack_require__(249); +__webpack_require__(250); +__webpack_require__(251); +__webpack_require__(93); +__webpack_require__(252); +__webpack_require__(253); +__webpack_require__(261); +__webpack_require__(263); +__webpack_require__(265); +__webpack_require__(266); +__webpack_require__(267); +__webpack_require__(268); +__webpack_require__(269); +__webpack_require__(271); +__webpack_require__(272); +__webpack_require__(273); +__webpack_require__(274); +__webpack_require__(275); +__webpack_require__(277); +__webpack_require__(278); +__webpack_require__(279); +__webpack_require__(280); +__webpack_require__(281); +__webpack_require__(282); +__webpack_require__(283); +__webpack_require__(284); +__webpack_require__(288); +__webpack_require__(289); +__webpack_require__(291); +__webpack_require__(293); +__webpack_require__(294); +__webpack_require__(295); +__webpack_require__(296); +__webpack_require__(297); +__webpack_require__(299); +__webpack_require__(301); +__webpack_require__(302); +__webpack_require__(303); +__webpack_require__(304); +__webpack_require__(306); +__webpack_require__(307); +__webpack_require__(309); +__webpack_require__(310); +__webpack_require__(311); +__webpack_require__(312); +__webpack_require__(314); +__webpack_require__(315); +__webpack_require__(316); +__webpack_require__(317); +__webpack_require__(318); +__webpack_require__(319); +__webpack_require__(320); +__webpack_require__(321); +__webpack_require__(322); +__webpack_require__(324); +__webpack_require__(325); +__webpack_require__(326); +__webpack_require__(327); +__webpack_require__(328); +__webpack_require__(329); +__webpack_require__(330); +__webpack_require__(331); +__webpack_require__(332); +__webpack_require__(333); +__webpack_require__(334); +__webpack_require__(336); +__webpack_require__(337); +__webpack_require__(338); +__webpack_require__(339); +__webpack_require__(361); +__webpack_require__(362); +__webpack_require__(363); +__webpack_require__(364); +__webpack_require__(365); +__webpack_require__(366); +__webpack_require__(367); +__webpack_require__(368); +__webpack_require__(369); +__webpack_require__(371); +__webpack_require__(372); +__webpack_require__(373); +__webpack_require__(374); +__webpack_require__(375); +__webpack_require__(376); +__webpack_require__(377); +__webpack_require__(378); +__webpack_require__(379); +__webpack_require__(380); +__webpack_require__(387); +__webpack_require__(388); +__webpack_require__(390); +__webpack_require__(391); +__webpack_require__(392); +__webpack_require__(393); +__webpack_require__(394); +__webpack_require__(396); +__webpack_require__(407); +__webpack_require__(409); +__webpack_require__(411); +__webpack_require__(413); +__webpack_require__(415); +__webpack_require__(417); +__webpack_require__(419); +__webpack_require__(420); +__webpack_require__(422); +__webpack_require__(425); +__webpack_require__(426); +__webpack_require__(427); +__webpack_require__(428); +__webpack_require__(429); +__webpack_require__(433); +__webpack_require__(434); +__webpack_require__(436); +__webpack_require__(437); +__webpack_require__(438); +__webpack_require__(439); +__webpack_require__(441); +__webpack_require__(442); +__webpack_require__(443); +__webpack_require__(444); +__webpack_require__(445); +__webpack_require__(446); +__webpack_require__(447); +__webpack_require__(449); +__webpack_require__(452); +__webpack_require__(455); +__webpack_require__(458); +__webpack_require__(459); +__webpack_require__(460); +__webpack_require__(461); +__webpack_require__(462); +__webpack_require__(463); +__webpack_require__(464); +__webpack_require__(465); +__webpack_require__(466); +__webpack_require__(467); +__webpack_require__(468); +__webpack_require__(469); +__webpack_require__(470); +__webpack_require__(479); +__webpack_require__(480); +__webpack_require__(481); +__webpack_require__(482); +__webpack_require__(483); +__webpack_require__(484); +__webpack_require__(485); +__webpack_require__(486); +__webpack_require__(487); +__webpack_require__(488); +__webpack_require__(489); +__webpack_require__(490); +__webpack_require__(491); +__webpack_require__(494); +__webpack_require__(495); +__webpack_require__(496); +__webpack_require__(497); +__webpack_require__(498); +__webpack_require__(499); +__webpack_require__(500); +__webpack_require__(501); +__webpack_require__(502); +__webpack_require__(503); +__webpack_require__(504); +__webpack_require__(505); +__webpack_require__(506); +__webpack_require__(507); +__webpack_require__(508); +__webpack_require__(509); +__webpack_require__(510); +__webpack_require__(511); +__webpack_require__(512); +__webpack_require__(513); +__webpack_require__(514); +__webpack_require__(515); +__webpack_require__(516); +__webpack_require__(517); +__webpack_require__(518); +__webpack_require__(519); +__webpack_require__(520); +__webpack_require__(521); +__webpack_require__(524); +__webpack_require__(526); +__webpack_require__(528); +__webpack_require__(529); +__webpack_require__(532); +__webpack_require__(533); +__webpack_require__(535); +__webpack_require__(536); +__webpack_require__(537); +__webpack_require__(542); +__webpack_require__(543); +__webpack_require__(544); +__webpack_require__(545); +__webpack_require__(548); +__webpack_require__(553); +__webpack_require__(554); +__webpack_require__(555); +__webpack_require__(556); +__webpack_require__(557); +__webpack_require__(558); +__webpack_require__(559); + +/* unused reexport */ __webpack_require__(80); + + +/***/ }), +/* 1 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(2); +__webpack_require__(90); +__webpack_require__(92); +__webpack_require__(93); +__webpack_require__(96); + + +/***/ }), +/* 2 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var $toString = __webpack_require__(68); +var createPropertyDescriptor = __webpack_require__(11); +var nativeObjectCreate = __webpack_require__(71); +var objectKeys = __webpack_require__(73); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternal = __webpack_require__(75); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); +var definePropertiesModule = __webpack_require__(72); +var propertyIsEnumerableModule = __webpack_require__(10); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var shared = __webpack_require__(34); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); +var uid = __webpack_require__(40); +var wellKnownSymbol = __webpack_require__(33); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); +var $forEach = (__webpack_require__(83).forEach); + +var HIDDEN = sharedKey('hidden'); +var SYMBOL = 'Symbol'; +var PROTOTYPE = 'prototype'; + +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(SYMBOL); + +var ObjectPrototype = Object[PROTOTYPE]; +var $Symbol = global.Symbol; +var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; +var RangeError = global.RangeError; +var TypeError = global.TypeError; +var QObject = global.QObject; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; +var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; +var push = uncurryThis([].push); + +var AllSymbols = shared('symbols'); +var ObjectPrototypeSymbols = shared('op-symbols'); +var WellKnownSymbolsStore = shared('wks'); + +// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 +var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var fallbackDefineProperty = function (O, P, Attributes) { + var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); + if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; + nativeDefineProperty(O, P, Attributes); + if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { + nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); + } +}; + +var setSymbolDescriptor = DESCRIPTORS && fails(function () { + return nativeObjectCreate(nativeDefineProperty({}, 'a', { + get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } + })).a !== 7; +}) ? fallbackDefineProperty : nativeDefineProperty; + +var wrap = function (tag, description) { + var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype); + setInternalState(symbol, { + type: SYMBOL, + tag: tag, + description: description + }); + if (!DESCRIPTORS) symbol.description = description; + return symbol; +}; + +var $defineProperty = function defineProperty(O, P, Attributes) { + if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); + anObject(O); + var key = toPropertyKey(P); + anObject(Attributes); + if (hasOwn(AllSymbols, key)) { + if (!Attributes.enumerable) { + if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null))); + O[HIDDEN][key] = true; + } else { + if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; + Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); + } return setSymbolDescriptor(O, key, Attributes); + } return nativeDefineProperty(O, key, Attributes); +}; + +var $defineProperties = function defineProperties(O, Properties) { + anObject(O); + var properties = toIndexedObject(Properties); + var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); + $forEach(keys, function (key) { + if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); + }); + return O; +}; + +var $create = function create(O, Properties) { + return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); +}; + +var $propertyIsEnumerable = function propertyIsEnumerable(V) { + var P = toPropertyKey(V); + var enumerable = call(nativePropertyIsEnumerable, this, P); + if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false; + return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P] + ? enumerable : true; +}; + +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { + var it = toIndexedObject(O); + var key = toPropertyKey(P); + if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return; + var descriptor = nativeGetOwnPropertyDescriptor(it, key); + if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) { + descriptor.enumerable = true; + } + return descriptor; +}; + +var $getOwnPropertyNames = function getOwnPropertyNames(O) { + var names = nativeGetOwnPropertyNames(toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key); + }); + return result; +}; + +var $getOwnPropertySymbols = function (O) { + var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; + var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) { + push(result, AllSymbols[key]); + } + }); + return result; +}; + +// `Symbol` constructor +// https://tc39.es/ecma262/#sec-symbol-constructor +if (!NATIVE_SYMBOL) { + $Symbol = function Symbol() { + if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor'); + var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]); + var tag = uid(description); + var setter = function (value) { + var $this = this === undefined ? global : this; + if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value); + if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false; + var descriptor = createPropertyDescriptor(1, value); + try { + setSymbolDescriptor($this, tag, descriptor); + } catch (error) { + if (!(error instanceof RangeError)) throw error; + fallbackDefineProperty($this, tag, descriptor); + } + }; + if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); + return wrap(tag, description); + }; + + SymbolPrototype = $Symbol[PROTOTYPE]; + + defineBuiltIn(SymbolPrototype, 'toString', function toString() { + return getInternalState(this).tag; + }); + + defineBuiltIn($Symbol, 'withoutSetter', function (description) { + return wrap(uid(description), description); + }); + + propertyIsEnumerableModule.f = $propertyIsEnumerable; + definePropertyModule.f = $defineProperty; + definePropertiesModule.f = $defineProperties; + getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; + getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; + getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; + + wrappedWellKnownSymbolModule.f = function (name) { + return wrap(wellKnownSymbol(name), name); + }; + + if (DESCRIPTORS) { + // https://github.com/tc39/proposal-Symbol-description + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + return getInternalState(this).description; + } + }); + if (!IS_PURE) { + defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { + Symbol: $Symbol +}); + +$forEach(objectKeys(WellKnownSymbolsStore), function (name) { + defineWellKnownSymbol(name); +}); + +$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { + useSetter: function () { USE_SETTER = true; }, + useSimple: function () { USE_SETTER = false; } +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, { + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + create: $create, + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + defineProperty: $defineProperty, + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + defineProperties: $defineProperties, + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors + getOwnPropertyDescriptor: $getOwnPropertyDescriptor +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + getOwnPropertyNames: $getOwnPropertyNames +}); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag($Symbol, SYMBOL); + +hiddenKeys[HIDDEN] = true; + + +/***/ }), +/* 3 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineGlobalProperty = __webpack_require__(37); +var copyConstructorProperties = __webpack_require__(55); +var isForced = __webpack_require__(67); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global[TARGET] && global[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn(target, key, sourceProperty, options); + } +}; + + +/***/ }), +/* 4 */ +/***/ (function(module) { + + +var check = function (it) { + return it && it.Math === Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + check(typeof this == 'object' && this) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + +/***/ }), +/* 5 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var call = __webpack_require__(8); +var propertyIsEnumerableModule = __webpack_require__(10); +var createPropertyDescriptor = __webpack_require__(11); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var IE8_DOM_DEFINE = __webpack_require__(41); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); +}; + + +/***/ }), +/* 6 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; +}); + + +/***/ }), +/* 7 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var call = Function.prototype.call; + +module.exports = NATIVE_BIND ? call.bind(call) : function () { + return call.apply(call, arguments); +}; + + +/***/ }), +/* 9 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + + +/***/ }), +/* 10 */ +/***/ (function(__unused_webpack_module, exports) { + + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + + +/***/ }), +/* 11 */ +/***/ (function(module) { + + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), +/* 12 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = __webpack_require__(13); +var requireObjectCoercible = __webpack_require__(16); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + + +/***/ }), +/* 13 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var classof = __webpack_require__(15); + +var $Object = Object; +var split = uncurryThis(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) === 'String' ? split(it, '') : $Object(it); +} : $Object; + + +/***/ }), +/* 14 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var call = FunctionPrototype.call; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); + +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + + +/***/ }), +/* 15 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var toString = uncurryThis({}.toString); +var stringSlice = uncurryThis(''.slice); + +module.exports = function (it) { + return stringSlice(toString(it), 8, -1); +}; + + +/***/ }), +/* 16 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isNullOrUndefined = __webpack_require__(17); + +var $TypeError = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), +/* 17 */ +/***/ (function(module) { + + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +module.exports = function (it) { + return it === null || it === undefined; +}; + + +/***/ }), +/* 18 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); +var isSymbol = __webpack_require__(22); + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +module.exports = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + + +/***/ }), +/* 19 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var getMethod = __webpack_require__(29); +var ordinaryToPrimitive = __webpack_require__(32); +var wellKnownSymbol = __webpack_require__(33); + +var $TypeError = TypeError; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +module.exports = function (input, pref) { + if (!isObject(input) || isSymbol(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) return result; + throw new $TypeError("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + + +/***/ }), +/* 20 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); + +module.exports = function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); +}; + + +/***/ }), +/* 21 */ +/***/ (function(module) { + + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +var documentAll = typeof document == 'object' && document.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; +} : function (argument) { + return typeof argument == 'function'; +}; + + +/***/ }), +/* 22 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var $Object = Object; + +module.exports = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); +}; + + +/***/ }), +/* 23 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; +}; + + +/***/ }), +/* 24 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis({}.isPrototypeOf); + + +/***/ }), +/* 25 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var NATIVE_SYMBOL = __webpack_require__(26); + +module.exports = NATIVE_SYMBOL + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + +/***/ }), +/* 26 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var V8_VERSION = __webpack_require__(27); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +var $String = global.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); + + +/***/ }), +/* 27 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var userAgent = __webpack_require__(28); + +var process = global.process; +var Deno = global.Deno; +var versions = process && process.versions || Deno && Deno.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +module.exports = version; + + +/***/ }), +/* 28 */ +/***/ (function(module) { + + +module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + +/***/ }), +/* 29 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var isNullOrUndefined = __webpack_require__(17); + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +module.exports = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable(func); +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsCallable(argument) is true` +module.exports = function (argument) { + if (isCallable(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a function'); +}; + + +/***/ }), +/* 31 */ +/***/ (function(module) { + + +var $String = String; + +module.exports = function (argument) { + try { + return $String(argument); + } catch (error) { + return 'Object'; + } +}; + + +/***/ }), +/* 32 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); + +var $TypeError = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +module.exports = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + throw new $TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), +/* 33 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var shared = __webpack_require__(34); +var hasOwn = __webpack_require__(38); +var uid = __webpack_require__(40); +var NATIVE_SYMBOL = __webpack_require__(26); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var Symbol = global.Symbol; +var WellKnownSymbolsStore = shared('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!hasOwn(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) + ? Symbol[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + + +/***/ }), +/* 34 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var store = __webpack_require__(35); + +module.exports = function (key, value) { + return store[key] || (store[key] = value || {}); +}; + + +/***/ }), +/* 35 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var globalThis = __webpack_require__(4); +var defineGlobalProperty = __webpack_require__(37); + +var SHARED = '__core-js_shared__'; +var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {}); + +(store.versions || (store.versions = [])).push({ + version: '3.37.1', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + + +/***/ }), +/* 36 */ +/***/ (function(module) { + + +module.exports = false; + + +/***/ }), +/* 37 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(global, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global[key] = value; + } return value; +}; + + +/***/ }), +/* 38 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var hasOwnProperty = uncurryThis({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +module.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); +}; + + +/***/ }), +/* 39 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var requireObjectCoercible = __webpack_require__(16); + +var $Object = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return $Object(requireObjectCoercible(argument)); +}; + + +/***/ }), +/* 40 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var id = 0; +var postfix = Math.random(); +var toString = uncurryThis(1.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + + +/***/ }), +/* 41 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var createElement = __webpack_require__(42); + +// Thanks to IE8 for its funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; +}); + + +/***/ }), +/* 42 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); + +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + + +/***/ }), +/* 43 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), +/* 44 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var IE8_DOM_DEFINE = __webpack_require__(41); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), +/* 45 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +module.exports = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; +}); + + +/***/ }), +/* 46 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var $String = String; +var $TypeError = TypeError; + +// `Assert: Type(argument) is Object` +module.exports = function (argument) { + if (isObject(argument)) return argument; + throw new $TypeError($String(argument) + ' is not an object'); +}; + + +/***/ }), +/* 47 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var definePropertyModule = __webpack_require__(44); +var makeBuiltIn = __webpack_require__(48); +var defineGlobalProperty = __webpack_require__(37); + +module.exports = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + + +/***/ }), +/* 48 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var DESCRIPTORS = __webpack_require__(6); +var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(49).CONFIGURABLE); +var inspectSource = __webpack_require__(50); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var $String = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var stringSlice = uncurryThis(''.slice); +var replace = uncurryThis(''.replace); +var join = uncurryThis([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { + return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn = module.exports = function (value, name, options) { + if (stringSlice($String(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { + defineProperty(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn(options, 'constructor') && options.constructor) { + if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn(function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); +}, 'toString'); + + +/***/ }), +/* 49 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var hasOwn = __webpack_require__(38); + +var FunctionPrototype = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn(FunctionPrototype, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); + +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + + +/***/ }), +/* 50 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isCallable = __webpack_require__(21); +var store = __webpack_require__(35); + +var functionToString = uncurryThis(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; +} + +module.exports = store.inspectSource; + + +/***/ }), +/* 51 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_WEAK_MAP = __webpack_require__(52); +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); +var hasOwn = __webpack_require__(38); +var shared = __webpack_require__(35); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError = global.TypeError; +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw new TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), +/* 52 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var WeakMap = global.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); + + +/***/ }), +/* 53 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var shared = __webpack_require__(34); +var uid = __webpack_require__(40); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + + +/***/ }), +/* 54 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 55 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var ownKeys = __webpack_require__(56); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); + +module.exports = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + + +/***/ }), +/* 56 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var anObject = __webpack_require__(46); + +var concat = uncurryThis([].concat); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), +/* 57 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), +/* 58 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var toIndexedObject = __webpack_require__(12); +var indexOf = (__webpack_require__(59).indexOf); +var hiddenKeys = __webpack_require__(54); + +var push = uncurryThis([].push); + +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + + +/***/ }), +/* 59 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), +/* 60 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), +/* 61 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var trunc = __webpack_require__(62); + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +module.exports = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + + +/***/ }), +/* 62 */ +/***/ (function(module) { + + +var ceil = Math.ceil; +var floor = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +module.exports = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + + +/***/ }), +/* 63 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toLength = __webpack_require__(64); + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +module.exports = function (obj) { + return toLength(obj.length); +}; + + +/***/ }), +/* 64 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), +/* 65 */ +/***/ (function(module) { + + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), +/* 66 */ +/***/ (function(__unused_webpack_module, exports) { + + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 67 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable(detection) ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + + +/***/ }), +/* 68 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +var $String = String; + +module.exports = function (argument) { + if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + + +/***/ }), +/* 69 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var isCallable = __webpack_require__(21); +var classofRaw = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Object = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result; +}; + + +/***/ }), +/* 70 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + + +/***/ }), +/* 71 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* global ActiveXObject -- old IE, WSH */ +var anObject = __webpack_require__(46); +var definePropertiesModule = __webpack_require__(72); +var enumBugKeys = __webpack_require__(65); +var hiddenKeys = __webpack_require__(54); +var html = __webpack_require__(74); +var documentCreateElement = __webpack_require__(42); +var sharedKey = __webpack_require__(53); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + + +/***/ }), +/* 72 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var definePropertyModule = __webpack_require__(44); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var objectKeys = __webpack_require__(73); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var props = toIndexedObject(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + + +/***/ }), +/* 73 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + + +/***/ }), +/* 74 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), +/* 75 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-object-getownpropertynames -- safe */ +var classof = __webpack_require__(15); +var toIndexedObject = __webpack_require__(12); +var $getOwnPropertyNames = (__webpack_require__(57).f); +var arraySlice = __webpack_require__(76); + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && classof(it) === 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); +}; + + +/***/ }), +/* 76 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis([].slice); + + +/***/ }), +/* 77 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var makeBuiltIn = __webpack_require__(48); +var defineProperty = __webpack_require__(44); + +module.exports = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty.f(target, name, descriptor); +}; + + +/***/ }), +/* 78 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +exports.f = wellKnownSymbol; + + +/***/ }), +/* 79 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var path = __webpack_require__(80); +var hasOwn = __webpack_require__(38); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (NAME) { + var Symbol = path.Symbol || (path.Symbol = {}); + if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, { + value: wrappedWellKnownSymbolModule.f(NAME) + }); +}; + + +/***/ }), +/* 80 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global; + + +/***/ }), +/* 81 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var getBuiltIn = __webpack_require__(23); +var wellKnownSymbol = __webpack_require__(33); +var defineBuiltIn = __webpack_require__(47); + +module.exports = function () { + var Symbol = getBuiltIn('Symbol'); + var SymbolPrototype = Symbol && Symbol.prototype; + var valueOf = SymbolPrototype && SymbolPrototype.valueOf; + var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + + if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) { + // `Symbol.prototype[@@toPrimitive]` method + // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive + // eslint-disable-next-line no-unused-vars -- required for .length + defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) { + return call(valueOf, this); + }, { arity: 1 }); + } +}; + + +/***/ }), +/* 82 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +module.exports = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } +}; + + +/***/ }), +/* 83 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +var push = uncurryThis([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +module.exports = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) +}; + + +/***/ }), +/* 84 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(85); +var aCallable = __webpack_require__(30); +var NATIVE_BIND = __webpack_require__(9); + +var bind = uncurryThis(uncurryThis.bind); + +// optional / simple context binding +module.exports = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), +/* 85 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classofRaw = __webpack_require__(15); +var uncurryThis = __webpack_require__(14); + +module.exports = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis(fn); +}; + + +/***/ }), +/* 86 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySpeciesConstructor = __webpack_require__(87); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + + +/***/ }), +/* 87 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; +}; + + +/***/ }), +/* 88 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(15); + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +module.exports = Array.isArray || function isArray(argument) { + return classof(argument) === 'Array'; +}; + + +/***/ }), +/* 89 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(69); +var getBuiltIn = __webpack_require__(23); +var inspectSource = __webpack_require__(50); + +var noop = function () { /* empty */ }; +var construct = getBuiltIn('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) return false; + switch (classof(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +module.exports = !construct || fails(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + + +/***/ }), +/* 90 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var toString = __webpack_require__(68); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var StringToSymbolRegistry = shared('string-to-symbol-registry'); +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.for` method +// https://tc39.es/ecma262/#sec-symbol.for +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + 'for': function (key) { + var string = toString(key); + if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; + var symbol = getBuiltIn('Symbol')(string); + StringToSymbolRegistry[string] = symbol; + SymbolToStringRegistry[symbol] = string; + return symbol; + } +}); + + +/***/ }), +/* 91 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_SYMBOL = __webpack_require__(26); + +/* eslint-disable es/no-symbol -- safe */ +module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor; + + +/***/ }), +/* 92 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); +var isSymbol = __webpack_require__(22); +var tryToString = __webpack_require__(31); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.keyFor` method +// https://tc39.es/ecma262/#sec-symbol.keyfor +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol'); + if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; + } +}); + + +/***/ }), +/* 93 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isSymbol = __webpack_require__(22); +var arraySlice = __webpack_require__(76); +var getReplacerFunction = __webpack_require__(95); +var NATIVE_SYMBOL = __webpack_require__(26); + +var $String = String; +var $stringify = getBuiltIn('JSON', 'stringify'); +var exec = uncurryThis(/./.exec); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var replace = uncurryThis(''.replace); +var numberToString = uncurryThis(1.0.toString); + +var tester = /[\uD800-\uDFFF]/g; +var low = /^[\uD800-\uDBFF]$/; +var hi = /^[\uDC00-\uDFFF]$/; + +var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () { + var symbol = getBuiltIn('Symbol')('stringify detection'); + // MS Edge converts symbol values to JSON as {} + return $stringify([symbol]) !== '[null]' + // WebKit converts symbol values to JSON as null + || $stringify({ a: symbol }) !== '{}' + // V8 throws on boxed symbols + || $stringify(Object(symbol)) !== '{}'; +}); + +// https://github.com/tc39/proposal-well-formed-stringify +var ILL_FORMED_UNICODE = fails(function () { + return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' + || $stringify('\uDEAD') !== '"\\udead"'; +}); + +var stringifyWithSymbolsFix = function (it, replacer) { + var args = arraySlice(arguments); + var $replacer = getReplacerFunction(replacer); + if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined + args[1] = function (key, value) { + // some old implementations (like WebKit) could pass numbers as keys + if (isCallable($replacer)) value = call($replacer, this, $String(key), value); + if (!isSymbol(value)) return value; + }; + return apply($stringify, null, args); +}; + +var fixIllFormed = function (match, offset, string) { + var prev = charAt(string, offset - 1); + var next = charAt(string, offset + 1); + if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) { + return '\\u' + numberToString(charCodeAt(match, 0), 16); + } return match; +}; + +if ($stringify) { + // `JSON.stringify` method + // https://tc39.es/ecma262/#sec-json.stringify + $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + stringify: function stringify(it, replacer, space) { + var args = arraySlice(arguments); + var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args); + return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result; + } + }); +} + + +/***/ }), +/* 94 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var apply = FunctionPrototype.apply; +var call = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () { + return call.apply(apply, arguments); +}); + + +/***/ }), +/* 95 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var toString = __webpack_require__(68); + +var push = uncurryThis([].push); + +module.exports = function (replacer) { + if (isCallable(replacer)) return replacer; + if (!isArray(replacer)) return; + var rawLength = replacer.length; + var keys = []; + for (var i = 0; i < rawLength; i++) { + var element = replacer[i]; + if (typeof element == 'string') push(keys, element); + else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element)); + } + var keysLength = keys.length; + var root = true; + return function (key, value) { + if (root) { + root = false; + return value; + } + if (isArray(this)) return value; + for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value; + }; +}; + + +/***/ }), +/* 96 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var toObject = __webpack_require__(39); + +// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives +// https://bugs.chromium.org/p/v8/issues/detail?id=3443 +var FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); }); + +// `Object.getOwnPropertySymbols` method +// https://tc39.es/ecma262/#sec-object.getownpropertysymbols +$({ target: 'Object', stat: true, forced: FORCED }, { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : []; + } +}); + + +/***/ }), +/* 97 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +// `Symbol.prototype.description` getter +// https://tc39.es/ecma262/#sec-symbol.prototype.description + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var toString = __webpack_require__(68); +var defineBuiltInAccessor = __webpack_require__(77); +var copyConstructorProperties = __webpack_require__(55); + +var NativeSymbol = global.Symbol; +var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; + +if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || + // Safari 12 bug + NativeSymbol().description !== undefined +)) { + var EmptyStringDescriptionStore = {}; + // wrap Symbol constructor for correct work with undefined description + var SymbolWrapper = function Symbol() { + var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]); + var result = isPrototypeOf(SymbolPrototype, this) + ? new NativeSymbol(description) + // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' + : description === undefined ? NativeSymbol() : NativeSymbol(description); + if (description === '') EmptyStringDescriptionStore[result] = true; + return result; + }; + + copyConstructorProperties(SymbolWrapper, NativeSymbol); + SymbolWrapper.prototype = SymbolPrototype; + SymbolPrototype.constructor = SymbolWrapper; + + var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)'; + var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf); + var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString); + var regexp = /^Symbol\((.*)\)[^)]+$/; + var replace = uncurryThis(''.replace); + var stringSlice = uncurryThis(''.slice); + + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + var symbol = thisSymbolValue(this); + if (hasOwn(EmptyStringDescriptionStore, symbol)) return ''; + var string = symbolDescriptiveString(symbol); + var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1'); + return desc === '' ? undefined : desc; + } + }); + + $({ global: true, constructor: true, forced: true }, { + Symbol: SymbolWrapper + }); +} + + +/***/ }), +/* 98 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.asyncIterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.asynciterator +defineWellKnownSymbol('asyncIterator'); + + +/***/ }), +/* 99 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.hasInstance` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.hasinstance +defineWellKnownSymbol('hasInstance'); + + +/***/ }), +/* 100 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.isConcatSpreadable` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable +defineWellKnownSymbol('isConcatSpreadable'); + + +/***/ }), +/* 101 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.iterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.iterator +defineWellKnownSymbol('iterator'); + + +/***/ }), +/* 102 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.match` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.match +defineWellKnownSymbol('match'); + + +/***/ }), +/* 103 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.matchAll` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.matchall +defineWellKnownSymbol('matchAll'); + + +/***/ }), +/* 104 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.replace` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.replace +defineWellKnownSymbol('replace'); + + +/***/ }), +/* 105 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.search` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.search +defineWellKnownSymbol('search'); + + +/***/ }), +/* 106 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.species` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.species +defineWellKnownSymbol('species'); + + +/***/ }), +/* 107 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.split` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.split +defineWellKnownSymbol('split'); + + +/***/ }), +/* 108 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); + +// `Symbol.toPrimitive` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.toprimitive +defineWellKnownSymbol('toPrimitive'); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + + +/***/ }), +/* 109 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineWellKnownSymbol = __webpack_require__(79); +var setToStringTag = __webpack_require__(82); + +// `Symbol.toStringTag` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.tostringtag +defineWellKnownSymbol('toStringTag'); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag(getBuiltIn('Symbol'), 'Symbol'); + + +/***/ }), +/* 110 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.unscopables` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.unscopables +defineWellKnownSymbol('unscopables'); + + +/***/ }), +/* 111 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-unused-vars -- required for functions `.length` */ +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var WEB_ASSEMBLY = 'WebAssembly'; +var WebAssembly = global[WEB_ASSEMBLY]; + +// eslint-disable-next-line es/no-error-cause -- feature detection +var FORCED = new Error('e', { cause: 7 }).cause !== 7; + +var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED); + $({ global: true, constructor: true, arity: 1, forced: FORCED }, O); +}; + +var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) { + if (WebAssembly && WebAssembly[ERROR_NAME]) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED); + $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O); + } +}; + +// https://tc39.es/ecma262/#sec-nativeerror +exportGlobalErrorCauseWrapper('Error', function (init) { + return function Error(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('EvalError', function (init) { + return function EvalError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('RangeError', function (init) { + return function RangeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('ReferenceError', function (init) { + return function ReferenceError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('SyntaxError', function (init) { + return function SyntaxError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('TypeError', function (init) { + return function TypeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('URIError', function (init) { + return function URIError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('CompileError', function (init) { + return function CompileError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('LinkError', function (init) { + return function LinkError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) { + return function RuntimeError(message) { return apply(init, this, arguments); }; +}); + + +/***/ }), +/* 112 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var createNonEnumerableProperty = __webpack_require__(43); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var proxyAccessor = __webpack_require__(117); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +module.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) { + var STACK_TRACE_LIMIT = 'stackTraceLimit'; + var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1; + var path = FULL_NAME.split('.'); + var ERROR_NAME = path[path.length - 1]; + var OriginalError = getBuiltIn.apply(null, path); + + if (!OriginalError) return; + + var OriginalErrorPrototype = OriginalError.prototype; + + // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006 + if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause; + + if (!FORCED) return OriginalError; + + var BaseError = getBuiltIn('Error'); + + var WrappedError = wrapper(function (a, b) { + var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined); + var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError(); + if (message !== undefined) createNonEnumerableProperty(result, 'message', message); + installErrorStack(result, WrappedError, result.stack, 2); + if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError); + if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]); + return result; + }); + + WrappedError.prototype = OriginalErrorPrototype; + + if (ERROR_NAME !== 'Error') { + if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError); + else copyConstructorProperties(WrappedError, BaseError, { name: true }); + } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) { + proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT); + proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace'); + } + + copyConstructorProperties(WrappedError, OriginalError); + + if (!IS_PURE) try { + // Safari 13- bug: WebAssembly errors does not have a proper `.name` + if (OriginalErrorPrototype.name !== ERROR_NAME) { + createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME); + } + OriginalErrorPrototype.constructor = WrappedError; + } catch (error) { /* empty */ } + + return WrappedError; +}; + + +/***/ }), +/* 113 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-proto -- safe */ +var uncurryThisAccessor = __webpack_require__(114); +var isObject = __webpack_require__(20); +var requireObjectCoercible = __webpack_require__(16); +var aPossiblePrototype = __webpack_require__(115); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + requireObjectCoercible(O); + aPossiblePrototype(proto); + if (!isObject(O)) return O; + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + + +/***/ }), +/* 114 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); + +module.exports = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 115 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPossiblePrototype = __webpack_require__(116); + +var $String = String; +var $TypeError = TypeError; + +module.exports = function (argument) { + if (isPossiblePrototype(argument)) return argument; + throw new $TypeError("Can't set " + $String(argument) + ' as a prototype'); +}; + + +/***/ }), +/* 116 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +module.exports = function (argument) { + return isObject(argument) || argument === null; +}; + + +/***/ }), +/* 117 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (Target, Source, key) { + key in Target || defineProperty(Target, key, { + configurable: true, + get: function () { return Source[key]; }, + set: function (it) { Source[key] = it; } + }); +}; + + +/***/ }), +/* 118 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var setPrototypeOf = __webpack_require__(113); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), +/* 119 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toString = __webpack_require__(68); + +module.exports = function (argument, $default) { + return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument); +}; + + +/***/ }), +/* 120 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); + +// `InstallErrorCause` abstract operation +// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause +module.exports = function (O, options) { + if (isObject(options) && 'cause' in options) { + createNonEnumerableProperty(O, 'cause', options.cause); + } +}; + + +/***/ }), +/* 121 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var createNonEnumerableProperty = __webpack_require__(43); +var clearErrorStack = __webpack_require__(122); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); + +// non-standard V8 +var captureStackTrace = Error.captureStackTrace; + +module.exports = function (error, C, stack, dropEntries) { + if (ERROR_STACK_INSTALLABLE) { + if (captureStackTrace) captureStackTrace(error, C); + else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries)); + } +}; + + +/***/ }), +/* 122 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var $Error = Error; +var replace = uncurryThis(''.replace); + +var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd'); +// eslint-disable-next-line redos/no-vulnerable -- safe +var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; +var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); + +module.exports = function (stack, dropEntries) { + if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) { + while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); + } return stack; +}; + + +/***/ }), +/* 123 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = !fails(function () { + var error = new Error('a'); + if (!('stack' in error)) return true; + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); + return error.stack !== 7; +}); + + +/***/ }), +/* 124 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var errorToString = __webpack_require__(125); + +var ErrorPrototype = Error.prototype; + +// `Error.prototype.toString` method fix +// https://tc39.es/ecma262/#sec-error.prototype.tostring +if (ErrorPrototype.toString !== errorToString) { + defineBuiltIn(ErrorPrototype, 'toString', errorToString); +} + + +/***/ }), +/* 125 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var normalizeStringArgument = __webpack_require__(119); + +var nativeErrorToString = Error.prototype.toString; + +var INCORRECT_TO_STRING = fails(function () { + if (DESCRIPTORS) { + // Chrome 32- incorrectly call accessor + // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe + var object = Object.create(Object.defineProperty({}, 'name', { get: function () { + return this === object; + } })); + if (nativeErrorToString.call(object) !== 'true') return true; + } + // FF10- does not properly handle non-strings + return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1' + // IE8 does not properly handle defaults + || nativeErrorToString.call({}) !== 'Error'; +}); + +module.exports = INCORRECT_TO_STRING ? function toString() { + var O = anObject(this); + var name = normalizeStringArgument(O.name, 'Error'); + var message = normalizeStringArgument(O.message); + return !name ? message : !message ? name : name + ': ' + message; +} : nativeErrorToString; + + +/***/ }), +/* 126 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(127); + + +/***/ }), +/* 127 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var create = __webpack_require__(71); +var createNonEnumerableProperty = __webpack_require__(43); +var createPropertyDescriptor = __webpack_require__(11); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var iterate = __webpack_require__(130); +var normalizeStringArgument = __webpack_require__(119); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Error = Error; +var push = [].push; + +var $AggregateError = function AggregateError(errors, message /* , options */) { + var isInstance = isPrototypeOf(AggregateErrorPrototype, this); + var that; + if (setPrototypeOf) { + that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype); + } else { + that = isInstance ? this : create(AggregateErrorPrototype); + createNonEnumerableProperty(that, TO_STRING_TAG, 'Error'); + } + if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message)); + installErrorStack(that, $AggregateError, that.stack, 1); + if (arguments.length > 2) installErrorCause(that, arguments[2]); + var errorsArray = []; + iterate(errors, push, { that: errorsArray }); + createNonEnumerableProperty(that, 'errors', errorsArray); + return that; +}; + +if (setPrototypeOf) setPrototypeOf($AggregateError, $Error); +else copyConstructorProperties($AggregateError, $Error, { name: true }); + +var AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, { + constructor: createPropertyDescriptor(1, $AggregateError), + message: createPropertyDescriptor(1, ''), + name: createPropertyDescriptor(1, 'AggregateError') +}); + +// `AggregateError` constructor +// https://tc39.es/ecma262/#sec-aggregate-error-constructor +$({ global: true, constructor: true, arity: 2 }, { + AggregateError: $AggregateError +}); + + +/***/ }), +/* 128 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var toObject = __webpack_require__(39); +var sharedKey = __webpack_require__(53); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + + +/***/ }), +/* 129 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + + +/***/ }), +/* 130 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var isArrayIteratorMethod = __webpack_require__(131); +var lengthOfArrayLike = __webpack_require__(63); +var isPrototypeOf = __webpack_require__(24); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var iteratorClose = __webpack_require__(135); + +var $TypeError = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +module.exports = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + + +/***/ }), +/* 131 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; + + +/***/ }), +/* 132 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 133 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var getIteratorMethod = __webpack_require__(134); + +var $TypeError = TypeError; + +module.exports = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); + throw new $TypeError(tryToString(argument) + ' is not iterable'); +}; + + +/***/ }), +/* 134 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); +var getMethod = __webpack_require__(29); +var isNullOrUndefined = __webpack_require__(17); +var Iterators = __webpack_require__(132); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = function (it) { + if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) + || getMethod(it, '@@iterator') + || Iterators[classof(it)]; +}; + + +/***/ }), +/* 135 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var getMethod = __webpack_require__(29); + +module.exports = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject(innerResult); + return value; +}; + + +/***/ }), +/* 136 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var fails = __webpack_require__(7); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var AGGREGATE_ERROR = 'AggregateError'; +var $AggregateError = getBuiltIn(AGGREGATE_ERROR); + +var FORCED = !fails(function () { + return $AggregateError([1]).errors[0] !== 1; +}) && fails(function () { + return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7; +}); + +// https://tc39.es/ecma262/#sec-aggregate-error +$({ global: true, constructor: true, arity: 2, forced: FORCED }, { + AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) { + // eslint-disable-next-line no-unused-vars -- required for functions `.length` + return function AggregateError(errors, message) { return apply(init, this, arguments); }; + }, FORCED, true) +}); + + +/***/ }), +/* 137 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.at` method +// https://tc39.es/ecma262/#sec-array.prototype.at +$({ target: 'Array', proto: true }, { + at: function at(index) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; + } +}); + +addToUnscopables('at'); + + +/***/ }), +/* 138 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var create = __webpack_require__(71); +var defineProperty = (__webpack_require__(44).f); + +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + + +/***/ }), +/* 139 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isArray = __webpack_require__(88); +var isObject = __webpack_require__(20); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var createProperty = __webpack_require__(141); +var arraySpeciesCreate = __webpack_require__(86); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); + +// We can't use this feature detection in V8 since it causes +// deoptimization and serious performance degradation +// https://github.com/zloirock/core-js/issues/679 +var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; +}); + +var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); +}; + +var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + +// `Array.prototype.concat` method +// https://tc39.es/ecma262/#sec-array.prototype.concat +// with adding support of @@isConcatSpreadable and @@species +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } +}); + + +/***/ }), +/* 140 */ +/***/ (function(module) { + + +var $TypeError = TypeError; +var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + +module.exports = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded'); + return it; +}; + + +/***/ }), +/* 141 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = function (object, key, value) { + if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; +}; + + +/***/ }), +/* 142 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + + +/***/ }), +/* 143 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var copyWithin = __webpack_require__(144); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +$({ target: 'Array', proto: true }, { + copyWithin: copyWithin +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('copyWithin'); + + +/***/ }), +/* 144 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); + +var min = Math.min; + +// `Array.prototype.copyWithin` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +// eslint-disable-next-line es/no-array-prototype-copywithin -- safe +module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + while (count-- > 0) { + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + to += inc; + from += inc; + } return O; +}; + + +/***/ }), +/* 145 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +module.exports = function (O, P) { + if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O)); +}; + + +/***/ }), +/* 146 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $every = (__webpack_require__(83).every); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('every'); + +// `Array.prototype.every` method +// https://tc39.es/ecma262/#sec-array.prototype.every +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + every: function every(callbackfn /* , thisArg */) { + return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 147 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); +}; + + +/***/ }), +/* 148 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fill = __webpack_require__(149); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.fill` method +// https://tc39.es/ecma262/#sec-array.prototype.fill +$({ target: 'Array', proto: true }, { + fill: fill +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('fill'); + + +/***/ }), +/* 149 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.fill` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.fill +module.exports = function fill(value /* , start = 0, end = @length */) { + var O = toObject(this); + var length = lengthOfArrayLike(O); + var argumentsLength = arguments.length; + var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); + var end = argumentsLength > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + while (endPos > index) O[index++] = value; + return O; +}; + + +/***/ }), +/* 150 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $filter = (__webpack_require__(83).filter); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + +// `Array.prototype.filter` method +// https://tc39.es/ecma262/#sec-array.prototype.filter +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 151 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $find = (__webpack_require__(83).find); +var addToUnscopables = __webpack_require__(138); + +var FIND = 'find'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-find -- testing +if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.find` method +// https://tc39.es/ecma262/#sec-array.prototype.find +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND); + + +/***/ }), +/* 152 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findIndex = (__webpack_require__(83).findIndex); +var addToUnscopables = __webpack_require__(138); + +var FIND_INDEX = 'findIndex'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-findindex -- testing +if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findindex +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + findIndex: function findIndex(callbackfn /* , that = undefined */) { + return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND_INDEX); + + +/***/ }), +/* 153 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLast = (__webpack_require__(154).findLast); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLast` method +// https://tc39.es/ecma262/#sec-array.prototype.findlast +$({ target: 'Array', proto: true }, { + findLast: function findLast(callbackfn /* , that = undefined */) { + return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLast'); + + +/***/ }), +/* 154 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ findLast, findLastIndex }` methods implementation +var createMethod = function (TYPE) { + var IS_FIND_LAST_INDEX = TYPE === 1; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IndexedObject(O); + var index = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var value, result; + while (index-- > 0) { + value = self[index]; + result = boundFunction(value, index, O); + if (result) switch (TYPE) { + case 0: return value; // findLast + case 1: return index; // findLastIndex + } + } + return IS_FIND_LAST_INDEX ? -1 : undefined; + }; +}; + +module.exports = { + // `Array.prototype.findLast` method + // https://github.com/tc39/proposal-array-find-from-last + findLast: createMethod(0), + // `Array.prototype.findLastIndex` method + // https://github.com/tc39/proposal-array-find-from-last + findLastIndex: createMethod(1) +}; + + +/***/ }), +/* 155 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLastIndex = (__webpack_require__(154).findLastIndex); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findlastindex +$({ target: 'Array', proto: true }, { + findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) { + return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLastIndex'); + + +/***/ }), +/* 156 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flat` method +// https://tc39.es/ecma262/#sec-array.prototype.flat +$({ target: 'Array', proto: true }, { + flat: function flat(/* depthArg = 1 */) { + var depthArg = arguments.length ? arguments[0] : undefined; + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg)); + return A; + } +}); + + +/***/ }), +/* 157 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var bind = __webpack_require__(84); + +// `FlattenIntoArray` abstract operation +// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray +var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? bind(mapper, thisArg) : false; + var element, elementLen; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + if (depth > 0 && isArray(element)) { + elementLen = lengthOfArrayLike(element); + targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1; + } else { + doesNotExceedSafeInteger(targetIndex + 1); + target[targetIndex] = element; + } + + targetIndex++; + } + sourceIndex++; + } + return targetIndex; +}; + +module.exports = flattenIntoArray; + + +/***/ }), +/* 158 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flatMap` method +// https://tc39.es/ecma262/#sec-array.prototype.flatmap +$({ target: 'Array', proto: true }, { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A; + aCallable(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return A; + } +}); + + +/***/ }), +/* 159 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var forEach = __webpack_require__(160); + +// `Array.prototype.forEach` method +// https://tc39.es/ecma262/#sec-array.prototype.foreach +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, { + forEach: forEach +}); + + +/***/ }), +/* 160 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $forEach = (__webpack_require__(83).forEach); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('forEach'); + +// `Array.prototype.forEach` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.foreach +module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +} : [].forEach; + + +/***/ }), +/* 161 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var from = __webpack_require__(162); +var checkCorrectnessOfIteration = __webpack_require__(164); + +var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); +}); + +// `Array.from` method +// https://tc39.es/ecma262/#sec-array.from +$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from +}); + + +/***/ }), +/* 162 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var toObject = __webpack_require__(39); +var callWithSafeIterationClosing = __webpack_require__(163); +var isArrayIteratorMethod = __webpack_require__(131); +var isConstructor = __webpack_require__(89); +var lengthOfArrayLike = __webpack_require__(63); +var createProperty = __webpack_require__(141); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); + +var $Array = Array; + +// `Array.from` method implementation +// https://tc39.es/ecma262/#sec-array.from +module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + result = IS_CONSTRUCTOR ? new this() : []; + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + for (;!(step = call(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; +}; + + +/***/ }), +/* 163 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var iteratorClose = __webpack_require__(135); + +// call something on iterator step with safe closing on error +module.exports = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } +}; + + +/***/ }), +/* 164 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +module.exports = function (exec, SKIP_CLOSING) { + try { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + } catch (error) { return false; } // workaround of old WebKit + `eval` bug + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + + +/***/ }), +/* 165 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $includes = (__webpack_require__(59).includes); +var fails = __webpack_require__(7); +var addToUnscopables = __webpack_require__(138); + +// FF99+ bug +var BROKEN_ON_SPARSE = fails(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); +}); + +// `Array.prototype.includes` method +// https://tc39.es/ecma262/#sec-array.prototype.includes +$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('includes'); + + +/***/ }), +/* 166 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-indexof -- required for testing */ +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var $indexOf = (__webpack_require__(59).indexOf); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeIndexOf = uncurryThis([].indexOf); + +var NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0; +var FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf'); + +// `Array.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.indexof +$({ target: 'Array', proto: true, forced: FORCED }, { + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + var fromIndex = arguments.length > 1 ? arguments[1] : undefined; + return NEGATIVE_ZERO + // convert -0 to +0 + ? nativeIndexOf(this, searchElement, fromIndex) || 0 + : $indexOf(this, searchElement, fromIndex); + } +}); + + +/***/ }), +/* 167 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); + +// `Array.isArray` method +// https://tc39.es/ecma262/#sec-array.isarray +$({ target: 'Array', stat: true }, { + isArray: isArray +}); + + +/***/ }), +/* 168 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); +var Iterators = __webpack_require__(132); +var InternalStateModule = __webpack_require__(51); +var defineProperty = (__webpack_require__(44).f); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +module.exports = defineIterator(Array, 'Array', function (iterated, kind) { + setInternalState(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + switch (state.kind) { + case 'keys': return createIterResultObject(index, false); + case 'values': return createIterResultObject(target[index], false); + } return createIterResultObject([index, target[index]], false); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +// V8 ~ Chrome 45- bug +if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try { + defineProperty(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 169 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var IS_PURE = __webpack_require__(36); +var FunctionName = __webpack_require__(49); +var isCallable = __webpack_require__(21); +var createIteratorConstructor = __webpack_require__(170); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); +var IteratorsCore = __webpack_require__(171); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR = wellKnownSymbol('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND]; + + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } + + return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { + defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn(IterablePrototype, KEY, methods[KEY]); + } + } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); + } + Iterators[NAME] = defaultIterator; + + return methods; +}; + + +/***/ }), +/* 170 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IteratorPrototype = (__webpack_require__(171).IteratorPrototype); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var setToStringTag = __webpack_require__(82); +var Iterators = __webpack_require__(132); + +var returnThis = function () { return this; }; + +module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; +}; + + +/***/ }), +/* 171 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var getPrototypeOf = __webpack_require__(128); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype[ITERATOR].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; +else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable(IteratorPrototype[ITERATOR])) { + defineBuiltIn(IteratorPrototype, ITERATOR, function () { + return this; + }); +} + +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + + +/***/ }), +/* 172 */ +/***/ (function(module) { + + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +module.exports = function (value, done) { + return { value: value, done: done }; +}; + + +/***/ }), +/* 173 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toIndexedObject = __webpack_require__(12); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeJoin = uncurryThis([].join); + +var ES3_STRINGS = IndexedObject !== Object; +var FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ','); + +// `Array.prototype.join` method +// https://tc39.es/ecma262/#sec-array.prototype.join +$({ target: 'Array', proto: true, forced: FORCED }, { + join: function join(separator) { + return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator); + } +}); + + +/***/ }), +/* 174 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var lastIndexOf = __webpack_require__(175); + +// `Array.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing +$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, { + lastIndexOf: lastIndexOf +}); + + +/***/ }), +/* 175 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-lastindexof -- safe */ +var apply = __webpack_require__(94); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var arrayMethodIsStrict = __webpack_require__(147); + +var min = Math.min; +var $lastIndexOf = [].lastIndexOf; +var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; +var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); +var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; + +// `Array.prototype.lastIndexOf` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0; + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + if (length === 0) return -1; + var index = length - 1; + if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1])); + if (index < 0) index = length + index; + for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; + return -1; +} : $lastIndexOf; + + +/***/ }), +/* 176 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $map = (__webpack_require__(83).map); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); + +// `Array.prototype.map` method +// https://tc39.es/ecma262/#sec-array.prototype.map +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 177 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isConstructor = __webpack_require__(89); +var createProperty = __webpack_require__(141); + +var $Array = Array; + +var ISNT_GENERIC = fails(function () { + function F() { /* empty */ } + // eslint-disable-next-line es/no-array-of -- safe + return !($Array.of.call(F) instanceof F); +}); + +// `Array.of` method +// https://tc39.es/ecma262/#sec-array.of +// WebKit Array.of isn't generic +$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { + of: function of(/* ...args */) { + var index = 0; + var argumentsLength = arguments.length; + var result = new (isConstructor(this) ? this : $Array)(argumentsLength); + while (argumentsLength > index) createProperty(result, index, arguments[index++]); + result.length = argumentsLength; + return result; + } +}); + + +/***/ }), +/* 178 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var fails = __webpack_require__(7); + +var INCORRECT_TO_LENGTH = fails(function () { + return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; +}); + +// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError +// https://bugs.chromium.org/p/v8/issues/detail?id=12681 +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).push(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); + +// `Array.prototype.push` method +// https://tc39.es/ecma262/#sec-array.prototype.push +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + push: function push(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + doesNotExceedSafeInteger(len + argCount); + for (var i = 0; i < argCount; i++) { + O[len] = arguments[i]; + len++; + } + setArrayLength(O, len); + return len; + } +}); + + +/***/ }), +/* 179 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var isArray = __webpack_require__(88); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Safari < 13 does not throw an error in this case +var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () { + // makes no sense without proper strict mode support + if (this !== undefined) return true; + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).length = 1; + } catch (error) { + return error instanceof TypeError; + } +}(); + +module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) { + if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) { + throw new $TypeError('Cannot set read only .length'); + } return O.length = length; +} : function (O, length) { + return O.length = length; +}; + + +/***/ }), +/* 180 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduce = (__webpack_require__(181).left); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce'); + +// `Array.prototype.reduce` method +// https://tc39.es/ecma262/#sec-array.prototype.reduce +$({ target: 'Array', proto: true, forced: FORCED }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 181 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); +var lengthOfArrayLike = __webpack_require__(63); + +var $TypeError = TypeError; + +var REDUCE_EMPTY = 'Reduce of empty array with no initial value'; + +// `Array.prototype.{ reduce, reduceRight }` methods implementation +var createMethod = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + var O = toObject(that); + var self = IndexedObject(O); + var length = lengthOfArrayLike(O); + aCallable(callbackfn); + if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw new $TypeError(REDUCE_EMPTY); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; +}; + +module.exports = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod(true) +}; + + +/***/ }), +/* 182 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var classof = __webpack_require__(15); + +module.exports = classof(global.process) === 'process'; + + +/***/ }), +/* 183 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduceRight = (__webpack_require__(181).right); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight'); + +// `Array.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-array.prototype.reduceright +$({ target: 'Array', proto: true, forced: FORCED }, { + reduceRight: function reduceRight(callbackfn /* , initialValue */) { + return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 184 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); + +var nativeReverse = uncurryThis([].reverse); +var test = [1, 2]; + +// `Array.prototype.reverse` method +// https://tc39.es/ecma262/#sec-array.prototype.reverse +// fix for Safari 12.0 bug +// https://bugs.webkit.org/show_bug.cgi?id=188794 +$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, { + reverse: function reverse() { + // eslint-disable-next-line no-self-assign -- dirty hack + if (isArray(this)) this.length = this.length; + return nativeReverse(this); + } +}); + + +/***/ }), +/* 185 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var toIndexedObject = __webpack_require__(12); +var createProperty = __webpack_require__(141); +var wellKnownSymbol = __webpack_require__(33); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var nativeSlice = __webpack_require__(76); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; +var max = Math.max; + +// `Array.prototype.slice` method +// https://tc39.es/ecma262/#sec-array.prototype.slice +// fallback for not array-like ES3 strings and DOM objects +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + slice: function slice(start, end) { + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject(Constructor)) { + Constructor = Constructor[SPECIES]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); + result.length = n; + return result; + } +}); + + +/***/ }), +/* 186 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $some = (__webpack_require__(83).some); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('some'); + +// `Array.prototype.some` method +// https://tc39.es/ecma262/#sec-array.prototype.some +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + some: function some(callbackfn /* , thisArg */) { + return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 187 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var internalSort = __webpack_require__(188); +var arrayMethodIsStrict = __webpack_require__(147); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var test = []; +var nativeSort = uncurryThis(test.sort); +var push = uncurryThis(test.push); + +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var STABLE_SORT = !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; +}); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString(x) > toString(y) ? 1 : -1; + }; +}; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + + var array = toObject(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = lengthOfArrayLike(items); + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) deletePropertyOrThrow(array, index++); + + return array; + } +}); + + +/***/ }), +/* 188 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySlice = __webpack_require__(76); + +var floor = Math.floor; + +var sort = function (array, comparefn) { + var length = array.length; + + if (length < 8) { + // insertion sort + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } + } else { + // merge sort + var middle = floor(length / 2); + var left = sort(arraySlice(array, 0, middle), comparefn); + var right = sort(arraySlice(array, middle), comparefn); + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } + } + + return array; +}; + +module.exports = sort; + + +/***/ }), +/* 189 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var firefox = userAgent.match(/firefox\/(\d+)/i); + +module.exports = !!firefox && +firefox[1]; + + +/***/ }), +/* 190 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var UA = __webpack_require__(28); + +module.exports = /MSIE|Trident/.test(UA); + + +/***/ }), +/* 191 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + +module.exports = !!webkit && +webkit[1]; + + +/***/ }), +/* 192 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setSpecies = __webpack_require__(193); + +// `Array[@@species]` getter +// https://tc39.es/ecma262/#sec-get-array-@@species +setSpecies('Array'); + + +/***/ }), +/* 193 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineBuiltInAccessor = __webpack_require__(77); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + + if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + defineBuiltInAccessor(Constructor, SPECIES, { + configurable: true, + get: function () { return this; } + }); + } +}; + + +/***/ }), +/* 194 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var arraySpeciesCreate = __webpack_require__(86); +var createProperty = __webpack_require__(141); +var deletePropertyOrThrow = __webpack_require__(145); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); + +var max = Math.max; +var min = Math.min; + +// `Array.prototype.splice` method +// https://tc39.es/ecma262/#sec-array.prototype.splice +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + splice: function splice(start, deleteCount /* , ...items */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var insertCount, actualDeleteCount, A, k, from, to; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = arraySpeciesCreate(O, actualDeleteCount); + for (k = 0; k < actualDeleteCount; k++) { + from = actualStart + k; + if (from in O) createProperty(A, k, O[from]); + } + A.length = actualDeleteCount; + if (insertCount < actualDeleteCount) { + for (k = actualStart; k < len - actualDeleteCount; k++) { + from = k + actualDeleteCount; + to = k + insertCount; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1); + } else if (insertCount > actualDeleteCount) { + for (k = len - actualDeleteCount; k > actualStart; k--) { + from = k + actualDeleteCount - 1; + to = k + insertCount - 1; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + } + for (k = 0; k < insertCount; k++) { + O[k + actualStart] = arguments[k + 2]; + } + setArrayLength(O, len - actualDeleteCount + insertCount); + return A; + } +}); + + +/***/ }), +/* 195 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayToReversed = __webpack_require__(196); +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; + +// `Array.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-array.prototype.toreversed +$({ target: 'Array', proto: true }, { + toReversed: function toReversed() { + return arrayToReversed(toIndexedObject(this), $Array); + } +}); + +addToUnscopables('toReversed'); + + +/***/ }), +/* 196 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed +module.exports = function (O, C) { + var len = lengthOfArrayLike(O); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = O[len - k - 1]; + return A; +}; + + +/***/ }), +/* 197 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toIndexedObject = __webpack_require__(12); +var arrayFromConstructorAndList = __webpack_require__(198); +var getBuiltInPrototypeMethod = __webpack_require__(199); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; +var sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort')); + +// `Array.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-array.prototype.tosorted +$({ target: 'Array', proto: true }, { + toSorted: function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = toIndexedObject(this); + var A = arrayFromConstructorAndList($Array, O); + return sort(A, compareFn); + } +}); + +addToUnscopables('toSorted'); + + +/***/ }), +/* 198 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +module.exports = function (Constructor, list, $length) { + var index = 0; + var length = arguments.length > 2 ? $length : lengthOfArrayLike(list); + var result = new Constructor(length); + while (length > index) result[index] = list[index++]; + return result; +}; + + +/***/ }), +/* 199 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = function (CONSTRUCTOR, METHOD) { + var Constructor = global[CONSTRUCTOR]; + var Prototype = Constructor && Constructor.prototype; + return Prototype && Prototype[METHOD]; +}; + + +/***/ }), +/* 200 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var addToUnscopables = __webpack_require__(138); +var doesNotExceedSafeInteger = __webpack_require__(140); +var lengthOfArrayLike = __webpack_require__(63); +var toAbsoluteIndex = __webpack_require__(60); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); + +var $Array = Array; +var max = Math.max; +var min = Math.min; + +// `Array.prototype.toSpliced` method +// https://tc39.es/ecma262/#sec-array.prototype.tospliced +$({ target: 'Array', proto: true }, { + toSpliced: function toSpliced(start, deleteCount /* , ...items */) { + var O = toIndexedObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var k = 0; + var insertCount, actualDeleteCount, newLen, A; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = $Array(newLen); + + for (; k < actualStart; k++) A[k] = O[k]; + for (; k < actualStart + insertCount; k++) A[k] = arguments[k - actualStart + 2]; + for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount]; + + return A; + } +}); + +addToUnscopables('toSpliced'); + + +/***/ }), +/* 201 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flat'); + + +/***/ }), +/* 202 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flatMap'); + + +/***/ }), +/* 203 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var deletePropertyOrThrow = __webpack_require__(145); +var doesNotExceedSafeInteger = __webpack_require__(140); + +// IE8- +var INCORRECT_RESULT = [].unshift(0) !== 1; + +// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).unshift(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength(); + +// `Array.prototype.unshift` method +// https://tc39.es/ecma262/#sec-array.prototype.unshift +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + unshift: function unshift(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + if (argCount) { + doesNotExceedSafeInteger(len + argCount); + var k = len; + while (k--) { + var to = k + argCount; + if (k in O) O[to] = O[k]; + else deletePropertyOrThrow(O, to); + } + for (var j = 0; j < argCount; j++) { + O[j] = arguments[j]; + } + } return setArrayLength(O, len + argCount); + } +}); + + +/***/ }), +/* 204 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayWith = __webpack_require__(205); +var toIndexedObject = __webpack_require__(12); + +var $Array = Array; + +// `Array.prototype.with` method +// https://tc39.es/ecma262/#sec-array.prototype.with +$({ target: 'Array', proto: true }, { + 'with': function (index, value) { + return arrayWith(toIndexedObject(this), $Array, index, value); + } +}); + + +/***/ }), +/* 205 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with +module.exports = function (O, C, index, value) { + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; + if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index'); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = k === actualIndex ? value : O[k]; + return A; +}; + + +/***/ }), +/* 206 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var arrayBufferModule = __webpack_require__(207); +var setSpecies = __webpack_require__(193); + +var ARRAY_BUFFER = 'ArrayBuffer'; +var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER]; +var NativeArrayBuffer = global[ARRAY_BUFFER]; + +// `ArrayBuffer` constructor +// https://tc39.es/ecma262/#sec-arraybuffer-constructor +$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, { + ArrayBuffer: ArrayBuffer +}); + +setSpecies(ARRAY_BUFFER); + + +/***/ }), +/* 207 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var FunctionName = __webpack_require__(49); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var fails = __webpack_require__(7); +var anInstance = __webpack_require__(210); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var fround = __webpack_require__(212); +var IEEE754 = __webpack_require__(215); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var arrayFill = __webpack_require__(149); +var arraySlice = __webpack_require__(76); +var inheritIfRequired = __webpack_require__(118); +var copyConstructorProperties = __webpack_require__(55); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var ARRAY_BUFFER = 'ArrayBuffer'; +var DATA_VIEW = 'DataView'; +var PROTOTYPE = 'prototype'; +var WRONG_LENGTH = 'Wrong length'; +var WRONG_INDEX = 'Wrong index'; +var getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER); +var getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW); +var setInternalState = InternalStateModule.set; +var NativeArrayBuffer = global[ARRAY_BUFFER]; +var $ArrayBuffer = NativeArrayBuffer; +var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE]; +var $DataView = global[DATA_VIEW]; +var DataViewPrototype = $DataView && $DataView[PROTOTYPE]; +var ObjectPrototype = Object.prototype; +var Array = global.Array; +var RangeError = global.RangeError; +var fill = uncurryThis(arrayFill); +var reverse = uncurryThis([].reverse); + +var packIEEE754 = IEEE754.pack; +var unpackIEEE754 = IEEE754.unpack; + +var packInt8 = function (number) { + return [number & 0xFF]; +}; + +var packInt16 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF]; +}; + +var packInt32 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF]; +}; + +var unpackInt32 = function (buffer) { + return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0]; +}; + +var packFloat32 = function (number) { + return packIEEE754(fround(number), 23, 4); +}; + +var packFloat64 = function (number) { + return packIEEE754(number, 52, 8); +}; + +var addGetter = function (Constructor, key, getInternalState) { + defineBuiltInAccessor(Constructor[PROTOTYPE], key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var get = function (view, count, index, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + var pack = arraySlice(bytes, start, start + count); + return boolIsLittleEndian ? pack : reverse(pack); +}; + +var set = function (view, count, index, conversion, value, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var pack = conversion(+value); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1]; +}; + +if (!NATIVE_ARRAY_BUFFER) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + var byteLength = toIndex(length); + setInternalState(this, { + type: ARRAY_BUFFER, + bytes: fill(Array(byteLength), 0), + byteLength: byteLength + }); + if (!DESCRIPTORS) { + this.byteLength = byteLength; + this.detached = false; + } + }; + + ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE]; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, DataViewPrototype); + anInstance(buffer, ArrayBufferPrototype); + var bufferState = getInternalArrayBufferState(buffer); + var bufferLength = bufferState.byteLength; + var offset = toIntegerOrInfinity(byteOffset); + if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH); + setInternalState(this, { + type: DATA_VIEW, + buffer: buffer, + byteLength: byteLength, + byteOffset: offset, + bytes: bufferState.bytes + }); + if (!DESCRIPTORS) { + this.buffer = buffer; + this.byteLength = byteLength; + this.byteOffset = offset; + } + }; + + DataViewPrototype = $DataView[PROTOTYPE]; + + if (DESCRIPTORS) { + addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState); + addGetter($DataView, 'buffer', getInternalDataViewState); + addGetter($DataView, 'byteLength', getInternalDataViewState); + addGetter($DataView, 'byteOffset', getInternalDataViewState); + } + + defineBuiltIns(DataViewPrototype, { + getInt8: function getInt8(byteOffset) { + return get(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)); + }, + getUint32: function getUint32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0; + }, + getFloat32: function getFloat32(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23); + }, + getFloat64: function getFloat64(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52); + }, + setInt8: function setInt8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setInt16: function setInt16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint16: function setUint16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setInt32: function setInt32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint32: function setUint32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { + set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false); + } + }); +} else { + var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER; + /* eslint-disable no-new -- required for testing */ + if (!fails(function () { + NativeArrayBuffer(1); + }) || !fails(function () { + new NativeArrayBuffer(-1); + }) || fails(function () { + new NativeArrayBuffer(); + new NativeArrayBuffer(1.5); + new NativeArrayBuffer(NaN); + return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME; + })) { + /* eslint-enable no-new -- required for testing */ + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer); + }; + + $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype; + + ArrayBufferPrototype.constructor = $ArrayBuffer; + + copyConstructorProperties($ArrayBuffer, NativeArrayBuffer); + } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER); + } + + // WebKit bug - the same parent prototype for typed arrays and data view + if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) { + setPrototypeOf(DataViewPrototype, ObjectPrototype); + } + + // iOS Safari 7.x bug + var testView = new $DataView(new $ArrayBuffer(2)); + var $setInt8 = uncurryThis(DataViewPrototype.setInt8); + testView.setInt8(0, 2147483648); + testView.setInt8(1, 2147483649); + if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, { + setInt8: function setInt8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + } + }, { unsafe: true }); +} + +setToStringTag($ArrayBuffer, ARRAY_BUFFER); +setToStringTag($DataView, DATA_VIEW); + +module.exports = { + ArrayBuffer: $ArrayBuffer, + DataView: $DataView +}; + + +/***/ }), +/* 208 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-typed-arrays -- safe +module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; + + +/***/ }), +/* 209 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); + +module.exports = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; +}; + + +/***/ }), +/* 210 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPrototypeOf = __webpack_require__(24); + +var $TypeError = TypeError; + +module.exports = function (it, Prototype) { + if (isPrototypeOf(Prototype, it)) return it; + throw new $TypeError('Incorrect invocation'); +}; + + +/***/ }), +/* 211 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); + +var $RangeError = RangeError; + +// `ToIndex` abstract operation +// https://tc39.es/ecma262/#sec-toindex +module.exports = function (it) { + if (it === undefined) return 0; + var number = toIntegerOrInfinity(it); + var length = toLength(number); + if (number !== length) throw new $RangeError('Wrong length or index'); + return length; +}; + + +/***/ }), +/* 212 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var floatRound = __webpack_require__(213); + +var FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23; +var FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104 +var FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126; + +// `Math.fround` method implementation +// https://tc39.es/ecma262/#sec-math.fround +// eslint-disable-next-line es/no-math-fround -- safe +module.exports = Math.fround || function fround(x) { + return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE); +}; + + +/***/ }), +/* 213 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var sign = __webpack_require__(214); + +var abs = Math.abs; + +var EPSILON = 2.220446049250313e-16; // Number.EPSILON +var INVERSE_EPSILON = 1 / EPSILON; + +var roundTiesToEven = function (n) { + return n + INVERSE_EPSILON - INVERSE_EPSILON; +}; + +module.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) { + var n = +x; + var absolute = abs(n); + var s = sign(n); + if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON; + var a = (1 + FLOAT_EPSILON / EPSILON) * absolute; + var result = a - (a - absolute); + // eslint-disable-next-line no-self-compare -- NaN check + if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity; + return s * result; +}; + + +/***/ }), +/* 214 */ +/***/ (function(module) { + + +// `Math.sign` method implementation +// https://tc39.es/ecma262/#sec-math.sign +// eslint-disable-next-line es/no-math-sign -- safe +module.exports = Math.sign || function sign(x) { + var n = +x; + // eslint-disable-next-line no-self-compare -- NaN check + return n === 0 || n !== n ? n : n < 0 ? -1 : 1; +}; + + +/***/ }), +/* 215 */ +/***/ (function(module) { + + +// IEEE754 conversions based on https://github.com/feross/ieee754 +var $Array = Array; +var abs = Math.abs; +var pow = Math.pow; +var floor = Math.floor; +var log = Math.log; +var LN2 = Math.LN2; + +var pack = function (number, mantissaLength, bytes) { + var buffer = $Array(bytes); + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0; + var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; + var index = 0; + var exponent, mantissa, c; + number = abs(number); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number || number === Infinity) { + // eslint-disable-next-line no-self-compare -- NaN check + mantissa = number !== number ? 1 : 0; + exponent = eMax; + } else { + exponent = floor(log(number) / LN2); + c = pow(2, -exponent); + if (number * c < 1) { + exponent--; + c *= 2; + } + if (exponent + eBias >= 1) { + number += rt / c; + } else { + number += rt * pow(2, 1 - eBias); + } + if (number * c >= 2) { + exponent++; + c /= 2; + } + if (exponent + eBias >= eMax) { + mantissa = 0; + exponent = eMax; + } else if (exponent + eBias >= 1) { + mantissa = (number * c - 1) * pow(2, mantissaLength); + exponent += eBias; + } else { + mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength); + exponent = 0; + } + } + while (mantissaLength >= 8) { + buffer[index++] = mantissa & 255; + mantissa /= 256; + mantissaLength -= 8; + } + exponent = exponent << mantissaLength | mantissa; + exponentLength += mantissaLength; + while (exponentLength > 0) { + buffer[index++] = exponent & 255; + exponent /= 256; + exponentLength -= 8; + } + buffer[--index] |= sign * 128; + return buffer; +}; + +var unpack = function (buffer, mantissaLength) { + var bytes = buffer.length; + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var nBits = exponentLength - 7; + var index = bytes - 1; + var sign = buffer[index--]; + var exponent = sign & 127; + var mantissa; + sign >>= 7; + while (nBits > 0) { + exponent = exponent * 256 + buffer[index--]; + nBits -= 8; + } + mantissa = exponent & (1 << -nBits) - 1; + exponent >>= -nBits; + nBits += mantissaLength; + while (nBits > 0) { + mantissa = mantissa * 256 + buffer[index--]; + nBits -= 8; + } + if (exponent === 0) { + exponent = 1 - eBias; + } else if (exponent === eMax) { + return mantissa ? NaN : sign ? -Infinity : Infinity; + } else { + mantissa += pow(2, mantissaLength); + exponent -= eBias; + } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength); +}; + +module.exports = { + pack: pack, + unpack: unpack +}; + + +/***/ }), +/* 216 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferViewCore = __webpack_require__(217); + +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; + +// `ArrayBuffer.isView` method +// https://tc39.es/ecma262/#sec-arraybuffer.isview +$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + isView: ArrayBufferViewCore.isView +}); + + +/***/ }), +/* 217 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var tryToString = __webpack_require__(31); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var wellKnownSymbol = __webpack_require__(33); +var uid = __webpack_require__(40); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = global.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; +var TypeError = global.TypeError; + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); +var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; +// Fixing native typed arrays in Opera Presto crashes the browser, see #595 +var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera'; +var TYPED_ARRAY_TAG_REQUIRED = false; +var NAME, Constructor, Prototype; + +var TypedArrayConstructorsList = { + Int8Array: 1, + Uint8Array: 1, + Uint8ClampedArray: 1, + Int16Array: 2, + Uint16Array: 2, + Int32Array: 4, + Uint32Array: 4, + Float32Array: 4, + Float64Array: 8 +}; + +var BigIntArrayConstructorsList = { + BigInt64Array: 8, + BigUint64Array: 8 +}; + +var isView = function isView(it) { + if (!isObject(it)) return false; + var klass = classof(it); + return klass === 'DataView' + || hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var getTypedArrayConstructor = function (it) { + var proto = getPrototypeOf(it); + if (!isObject(proto)) return; + var state = getInternalState(proto); + return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto); +}; + +var isTypedArray = function (it) { + if (!isObject(it)) return false; + var klass = classof(it); + return hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var aTypedArray = function (it) { + if (isTypedArray(it)) return it; + throw new TypeError('Target is not a typed array'); +}; + +var aTypedArrayConstructor = function (C) { + if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C; + throw new TypeError(tryToString(C) + ' is not a typed array constructor'); +}; + +var exportTypedArrayMethod = function (KEY, property, forced, options) { + if (!DESCRIPTORS) return; + if (forced) for (var ARRAY in TypedArrayConstructorsList) { + var TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try { + delete TypedArrayConstructor.prototype[KEY]; + } catch (error) { + // old WebKit bug - some methods are non-configurable + try { + TypedArrayConstructor.prototype[KEY] = property; + } catch (error2) { /* empty */ } + } + } + if (!TypedArrayPrototype[KEY] || forced) { + defineBuiltIn(TypedArrayPrototype, KEY, forced ? property + : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options); + } +}; + +var exportTypedArrayStaticMethod = function (KEY, property, forced) { + var ARRAY, TypedArrayConstructor; + if (!DESCRIPTORS) return; + if (setPrototypeOf) { + if (forced) for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try { + delete TypedArrayConstructor[KEY]; + } catch (error) { /* empty */ } + } + if (!TypedArray[KEY] || forced) { + // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable + try { + return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property); + } catch (error) { /* empty */ } + } else return; + } + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); + } + } +}; + +for (NAME in TypedArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else NATIVE_ARRAY_BUFFER_VIEWS = false; +} + +for (NAME in BigIntArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; +} + +// WebKit bug - typed arrays constructors prototype is Object.prototype +if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) { + // eslint-disable-next-line no-shadow -- safe + TypedArray = function TypedArray() { + throw new TypeError('Incorrect invocation'); + }; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME], TypedArray); + } +} + +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype); + } +} + +// WebKit bug - one more object in Uint8ClampedArray prototype chain +if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { + setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); +} + +if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { + TYPED_ARRAY_TAG_REQUIRED = true; + defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, { + configurable: true, + get: function () { + return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; + } + }); + for (NAME in TypedArrayConstructorsList) if (global[NAME]) { + createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME); + } +} + +module.exports = { + NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, + TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG, + aTypedArray: aTypedArray, + aTypedArrayConstructor: aTypedArrayConstructor, + exportTypedArrayMethod: exportTypedArrayMethod, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, + getTypedArrayConstructor: getTypedArrayConstructor, + isView: isView, + isTypedArray: isTypedArray, + TypedArray: TypedArray, + TypedArrayPrototype: TypedArrayPrototype +}; + + +/***/ }), +/* 218 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var ArrayBufferModule = __webpack_require__(207); +var anObject = __webpack_require__(46); +var toAbsoluteIndex = __webpack_require__(60); +var toLength = __webpack_require__(64); +var speciesConstructor = __webpack_require__(219); + +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var DataView = ArrayBufferModule.DataView; +var DataViewPrototype = DataView.prototype; +var nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice); +var getUint8 = uncurryThis(DataViewPrototype.getUint8); +var setUint8 = uncurryThis(DataViewPrototype.setUint8); + +var INCORRECT_SLICE = fails(function () { + return !new ArrayBuffer(2).slice(1, undefined).byteLength; +}); + +// `ArrayBuffer.prototype.slice` method +// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice +$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, { + slice: function slice(start, end) { + if (nativeArrayBufferSlice && end === undefined) { + return nativeArrayBufferSlice(anObject(this), start); // FF fix + } + var length = anObject(this).byteLength; + var first = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first)); + var viewSource = new DataView(this); + var viewTarget = new DataView(result); + var index = 0; + while (first < fin) { + setUint8(viewTarget, index++, getUint8(viewSource, first++)); + } return result; + } +}); + + +/***/ }), +/* 219 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var aConstructor = __webpack_require__(220); +var isNullOrUndefined = __webpack_require__(17); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +module.exports = function (O, defaultConstructor) { + var C = anObject(O).constructor; + var S; + return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S); +}; + + +/***/ }), +/* 220 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isConstructor = __webpack_require__(89); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsConstructor(argument) is true` +module.exports = function (argument) { + if (isConstructor(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a constructor'); +}; + + +/***/ }), +/* 221 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(222); + + +/***/ }), +/* 222 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferModule = __webpack_require__(207); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); + +// `DataView` constructor +// https://tc39.es/ecma262/#sec-dataview-constructor +$({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, { + DataView: ArrayBufferModule.DataView +}); + + +/***/ }), +/* 223 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isDetached = __webpack_require__(224); + +var ArrayBufferPrototype = ArrayBuffer.prototype; + +if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) { + defineBuiltInAccessor(ArrayBufferPrototype, 'detached', { + configurable: true, + get: function detached() { + return isDetached(this); + } + }); +} + + +/***/ }), +/* 224 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var arrayBufferByteLength = __webpack_require__(225); + +var slice = uncurryThis(ArrayBuffer.prototype.slice); + +module.exports = function (O) { + if (arrayBufferByteLength(O) !== 0) return false; + try { + slice(O, 0, 0); + return false; + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 225 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var classof = __webpack_require__(15); + +var $TypeError = TypeError; + +// Includes +// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). +// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. +module.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) { + if (classof(O) !== 'ArrayBuffer') throw new $TypeError('ArrayBuffer expected'); + return O.byteLength; +}; + + +/***/ }), +/* 226 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transfer` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transfer: function transfer() { + return $transfer(this, arguments.length ? arguments[0] : undefined, true); + } +}); + + +/***/ }), +/* 227 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var uncurryThisAccessor = __webpack_require__(114); +var toIndex = __webpack_require__(211); +var isDetached = __webpack_require__(224); +var arrayBufferByteLength = __webpack_require__(225); +var detachTransferable = __webpack_require__(228); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var ArrayBuffer = global.ArrayBuffer; +var DataView = global.DataView; +var TypeError = global.TypeError; +var min = Math.min; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataViewPrototype = DataView.prototype; +var slice = uncurryThis(ArrayBufferPrototype.slice); +var isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get'); +var maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get'); +var getInt8 = uncurryThis(DataViewPrototype.getInt8); +var setInt8 = uncurryThis(DataViewPrototype.setInt8); + +module.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) { + var byteLength = arrayBufferByteLength(arrayBuffer); + var newByteLength = newLength === undefined ? byteLength : toIndex(newLength); + var fixedLength = !isResizable || !isResizable(arrayBuffer); + var newBuffer; + if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached'); + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] }); + if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer; + } + if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) { + newBuffer = slice(arrayBuffer, 0, newByteLength); + } else { + var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined; + newBuffer = new ArrayBuffer(newByteLength, options); + var a = new DataView(arrayBuffer); + var b = new DataView(newBuffer); + var copyLength = min(newByteLength, byteLength); + for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i)); + } + if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer); + return newBuffer; +}; + + +/***/ }), +/* 228 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var tryNodeRequire = __webpack_require__(229); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var $ArrayBuffer = global.ArrayBuffer; +var $MessageChannel = global.MessageChannel; +var detach = false; +var WorkerThreads, channel, buffer, $detach; + +if (PROPER_STRUCTURED_CLONE_TRANSFER) { + detach = function (transferable) { + structuredClone(transferable, { transfer: [transferable] }); + }; +} else if ($ArrayBuffer) try { + if (!$MessageChannel) { + WorkerThreads = tryNodeRequire('worker_threads'); + if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel; + } + + if ($MessageChannel) { + channel = new $MessageChannel(); + buffer = new $ArrayBuffer(2); + + $detach = function (transferable) { + channel.port1.postMessage(null, [transferable]); + }; + + if (buffer.byteLength === 2) { + $detach(buffer); + if (buffer.byteLength === 0) detach = $detach; + } + } +} catch (error) { /* empty */ } + +module.exports = detach; + + +/***/ }), +/* 229 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_NODE = __webpack_require__(182); + +module.exports = function (name) { + try { + // eslint-disable-next-line no-new-func -- safe + if (IS_NODE) return Function('return require("' + name + '")')(); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 230 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var V8 = __webpack_require__(27); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +var structuredClone = global.structuredClone; + +module.exports = !!structuredClone && !fails(function () { + // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false; + var buffer = new ArrayBuffer(8); + var clone = structuredClone(buffer, { transfer: [buffer] }); + return buffer.byteLength !== 0 || clone.byteLength !== 8; +}); + + +/***/ }), +/* 231 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +module.exports = !IS_DENO && !IS_NODE + && typeof window == 'object' + && typeof document == 'object'; + + +/***/ }), +/* 232 */ +/***/ (function(module) { + + +/* global Deno -- Deno case */ +module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + +/***/ }), +/* 233 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transferToFixedLength` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transferToFixedLength: function transferToFixedLength() { + return $transfer(this, arguments.length ? arguments[0] : undefined, false); + } +}); + + +/***/ }), +/* 234 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +// IE8- non-standard case +var FORCED = fails(function () { + // eslint-disable-next-line es/no-date-prototype-getyear-setyear -- detection + return new Date(16e11).getYear() !== 120; +}); + +var getFullYear = uncurryThis(Date.prototype.getFullYear); + +// `Date.prototype.getYear` method +// https://tc39.es/ecma262/#sec-date.prototype.getyear +$({ target: 'Date', proto: true, forced: FORCED }, { + getYear: function getYear() { + return getFullYear(this) - 1900; + } +}); + + +/***/ }), +/* 235 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); + +var $Date = Date; +var thisTimeValue = uncurryThis($Date.prototype.getTime); + +// `Date.now` method +// https://tc39.es/ecma262/#sec-date.now +$({ target: 'Date', stat: true }, { + now: function now() { + return thisTimeValue(new $Date()); + } +}); + + +/***/ }), +/* 236 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); + +var DatePrototype = Date.prototype; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var setFullYear = uncurryThis(DatePrototype.setFullYear); + +// `Date.prototype.setYear` method +// https://tc39.es/ecma262/#sec-date.prototype.setyear +$({ target: 'Date', proto: true }, { + setYear: function setYear(year) { + // validate + thisTimeValue(this); + var yi = toIntegerOrInfinity(year); + var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi; + return setFullYear(this, yyyy); + } +}); + + +/***/ }), +/* 237 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Date.prototype.toGMTString` method +// https://tc39.es/ecma262/#sec-date.prototype.togmtstring +$({ target: 'Date', proto: true }, { + toGMTString: Date.prototype.toUTCString +}); + + +/***/ }), +/* 238 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toISOString = __webpack_require__(239); + +// `Date.prototype.toISOString` method +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit has a broken implementations +$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, { + toISOString: toISOString +}); + + +/***/ }), +/* 239 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var padStart = (__webpack_require__(240).start); + +var $RangeError = RangeError; +var $isFinite = isFinite; +var abs = Math.abs; +var DatePrototype = Date.prototype; +var nativeDateToISOString = DatePrototype.toISOString; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var getUTCDate = uncurryThis(DatePrototype.getUTCDate); +var getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear); +var getUTCHours = uncurryThis(DatePrototype.getUTCHours); +var getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds); +var getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes); +var getUTCMonth = uncurryThis(DatePrototype.getUTCMonth); +var getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds); + +// `Date.prototype.toISOString` method implementation +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit fails here: +module.exports = (fails(function () { + return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z'; +}) || !fails(function () { + nativeDateToISOString.call(new Date(NaN)); +})) ? function toISOString() { + if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value'); + var date = this; + var year = getUTCFullYear(date); + var milliseconds = getUTCMilliseconds(date); + var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; + return sign + padStart(abs(year), sign ? 6 : 4, 0) + + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + + '-' + padStart(getUTCDate(date), 2, 0) + + 'T' + padStart(getUTCHours(date), 2, 0) + + ':' + padStart(getUTCMinutes(date), 2, 0) + + ':' + padStart(getUTCSeconds(date), 2, 0) + + '.' + padStart(milliseconds, 3, 0) + + 'Z'; +} : nativeDateToISOString; + + +/***/ }), +/* 240 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/tc39/proposal-string-pad-start-end +var uncurryThis = __webpack_require__(14); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var $repeat = __webpack_require__(241); +var requireObjectCoercible = __webpack_require__(16); + +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var ceil = Math.ceil; + +// `String.prototype.{ padStart, padEnd }` methods implementation +var createMethod = function (IS_END) { + return function ($this, maxLength, fillString) { + var S = toString(requireObjectCoercible($this)); + var intMaxLength = toLength(maxLength); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : toString(fillString); + var fillLen, stringFiller; + if (intMaxLength <= stringLength || fillStr === '') return S; + fillLen = intMaxLength - stringLength; + stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen); + return IS_END ? S + stringFiller : stringFiller + S; + }; +}; + +module.exports = { + // `String.prototype.padStart` method + // https://tc39.es/ecma262/#sec-string.prototype.padstart + start: createMethod(false), + // `String.prototype.padEnd` method + // https://tc39.es/ecma262/#sec-string.prototype.padend + end: createMethod(true) +}; + + +/***/ }), +/* 241 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var $RangeError = RangeError; + +// `String.prototype.repeat` method implementation +// https://tc39.es/ecma262/#sec-string.prototype.repeat +module.exports = function repeat(count) { + var str = toString(requireObjectCoercible(this)); + var result = ''; + var n = toIntegerOrInfinity(count); + if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions'); + for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; + return result; +}; + + +/***/ }), +/* 242 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var toPrimitive = __webpack_require__(19); + +var FORCED = fails(function () { + return new Date(NaN).toJSON() !== null + || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; +}); + +// `Date.prototype.toJSON` method +// https://tc39.es/ecma262/#sec-date.prototype.tojson +$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O, 'number'); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } +}); + + +/***/ }), +/* 243 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var defineBuiltIn = __webpack_require__(47); +var dateToPrimitive = __webpack_require__(244); +var wellKnownSymbol = __webpack_require__(33); + +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); +var DatePrototype = Date.prototype; + +// `Date.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +if (!hasOwn(DatePrototype, TO_PRIMITIVE)) { + defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive); +} + + +/***/ }), +/* 244 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var ordinaryToPrimitive = __webpack_require__(32); + +var $TypeError = TypeError; + +// `Date.prototype[@@toPrimitive](hint)` method implementation +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +module.exports = function (hint) { + anObject(this); + if (hint === 'string' || hint === 'default') hint = 'string'; + else if (hint !== 'number') throw new $TypeError('Incorrect hint'); + return ordinaryToPrimitive(this, hint); +}; + + +/***/ }), +/* 245 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); + +var DatePrototype = Date.prototype; +var INVALID_DATE = 'Invalid Date'; +var TO_STRING = 'toString'; +var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]); +var thisTimeValue = uncurryThis(DatePrototype.getTime); + +// `Date.prototype.toString` method +// https://tc39.es/ecma262/#sec-date.prototype.tostring +if (String(new Date(NaN)) !== INVALID_DATE) { + defineBuiltIn(DatePrototype, TO_STRING, function toString() { + var value = thisTimeValue(this); + // eslint-disable-next-line no-self-compare -- NaN check + return value === value ? nativeDateToString(this) : INVALID_DATE; + }); +} + + +/***/ }), +/* 246 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var exec = uncurryThis(/./.exec); +var numberToString = uncurryThis(1.0.toString); +var toUpperCase = uncurryThis(''.toUpperCase); + +var raw = /[\w*+\-./@]/; + +var hex = function (code, length) { + var result = numberToString(code, 16); + while (result.length < length) result = '0' + result; + return result; +}; + +// `escape` method +// https://tc39.es/ecma262/#sec-escape-string +$({ global: true }, { + escape: function escape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, code; + while (index < length) { + chr = charAt(str, index++); + if (exec(raw, chr)) { + result += chr; + } else { + code = charCodeAt(chr, 0); + if (code < 256) { + result += '%' + hex(code, 2); + } else { + result += '%u' + toUpperCase(hex(code, 4)); + } + } + } return result; + } +}); + + +/***/ }), +/* 247 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var bind = __webpack_require__(248); + +// `Function.prototype.bind` method +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +$({ target: 'Function', proto: true, forced: Function.bind !== bind }, { + bind: bind +}); + + +/***/ }), +/* 248 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var arraySlice = __webpack_require__(76); +var NATIVE_BIND = __webpack_require__(9); + +var $Function = Function; +var concat = uncurryThis([].concat); +var join = uncurryThis([].join); +var factories = {}; + +var construct = function (C, argsLength, args) { + if (!hasOwn(factories, argsLength)) { + var list = []; + var i = 0; + for (; i < argsLength; i++) list[i] = 'a[' + i + ']'; + factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')'); + } return factories[argsLength](C, args); +}; + +// `Function.prototype.bind` method implementation +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +module.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) { + var F = aCallable(this); + var Prototype = F.prototype; + var partArgs = arraySlice(arguments, 1); + var boundFunction = function bound(/* args... */) { + var args = concat(partArgs, arraySlice(arguments)); + return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args); + }; + if (isObject(Prototype)) boundFunction.prototype = Prototype; + return boundFunction; +}; + + +/***/ }), +/* 249 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var definePropertyModule = __webpack_require__(44); +var isPrototypeOf = __webpack_require__(24); +var wellKnownSymbol = __webpack_require__(33); +var makeBuiltIn = __webpack_require__(48); + +var HAS_INSTANCE = wellKnownSymbol('hasInstance'); +var FunctionPrototype = Function.prototype; + +// `Function.prototype[@@hasInstance]` method +// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance +if (!(HAS_INSTANCE in FunctionPrototype)) { + definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) { + if (!isCallable(this) || !isObject(O)) return false; + var P = this.prototype; + return isObject(P) ? isPrototypeOf(P, O) : O instanceof this; + }, HAS_INSTANCE) }); +} + + +/***/ }), +/* 250 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var FUNCTION_NAME_EXISTS = (__webpack_require__(49).EXISTS); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var FunctionPrototype = Function.prototype; +var functionToString = uncurryThis(FunctionPrototype.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor(FunctionPrototype, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + + +/***/ }), +/* 251 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); + +// `globalThis` object +// https://tc39.es/ecma262/#sec-globalthis +$({ global: true, forced: global.globalThis !== global }, { + globalThis: global +}); + + +/***/ }), +/* 252 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +// JSON[@@toStringTag] property +// https://tc39.es/ecma262/#sec-json-@@tostringtag +setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), +/* 253 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(254); + + +/***/ }), +/* 254 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Map` constructor +// https://tc39.es/ecma262/#sec-map-objects +collection('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 255 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var defineBuiltIn = __webpack_require__(47); +var InternalMetadataModule = __webpack_require__(256); +var iterate = __webpack_require__(130); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var setToStringTag = __webpack_require__(82); +var inheritIfRequired = __webpack_require__(118); + +module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); + defineBuiltIn(NativePrototype, KEY, + KEY === 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY === 'delete' ? function (key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'get' ? function get(key) { + return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'has' ? function has(key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + + +/***/ }), +/* 256 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var hiddenKeys = __webpack_require__(54); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var defineProperty = (__webpack_require__(44).f); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternalModule = __webpack_require__(75); +var isExtensible = __webpack_require__(257); +var uid = __webpack_require__(40); +var FREEZING = __webpack_require__(259); + +var REQUIRED = false; +var METADATA = uid('meta'); +var id = 0; + +var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id++, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData = function (it, create) { + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it); + return it; +}; + +var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } +}; + +var meta = module.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + + +/***/ }), +/* 257 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isextensible -- safe +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); }); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +module.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + + +/***/ }), +/* 258 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it +var fails = __webpack_require__(7); + +module.exports = fails(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + + +/***/ }), +/* 259 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); +}); + + +/***/ }), +/* 260 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var create = __webpack_require__(71); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var bind = __webpack_require__(84); +var anInstance = __webpack_require__(210); +var isNullOrUndefined = __webpack_require__(17); +var iterate = __webpack_require__(130); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var setSpecies = __webpack_require__(193); +var DESCRIPTORS = __webpack_require__(6); +var fastKey = (__webpack_require__(256).fastKey); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS) that.size = 0; + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key === key) return entry; + } + }; + + defineBuiltIns(Prototype, { + // `{ Map, Set }.prototype.clear()` methods + // https://tc39.es/ecma262/#sec-map.prototype.clear + // https://tc39.es/ecma262/#sec-set.prototype.clear + clear: function clear() { + var that = this; + var state = getInternalState(that); + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + entry = entry.next; + } + state.first = state.last = undefined; + state.index = create(null); + if (DESCRIPTORS) state.size = 0; + else that.size = 0; + }, + // `{ Map, Set }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.delete + // https://tc39.es/ecma262/#sec-set.prototype.delete + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first === entry) state.first = next; + if (state.last === entry) state.last = prev; + if (DESCRIPTORS) state.size--; + else that.size--; + } return !!entry; + }, + // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods + // https://tc39.es/ecma262/#sec-map.prototype.foreach + // https://tc39.es/ecma262/#sec-set.prototype.foreach + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // `{ Map, Set}.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.has + // https://tc39.es/ecma262/#sec-set.prototype.has + has: function has(key) { + return !!getEntry(this, key); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `Map.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-map.prototype.get + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // `Map.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-map.prototype.set + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // `Set.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-set.prototype.add + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', { + configurable: true, + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods + // https://tc39.es/ecma262/#sec-map.prototype.entries + // https://tc39.es/ecma262/#sec-map.prototype.keys + // https://tc39.es/ecma262/#sec-map.prototype.values + // https://tc39.es/ecma262/#sec-map.prototype-@@iterator + // https://tc39.es/ecma262/#sec-set.prototype.entries + // https://tc39.es/ecma262/#sec-set.prototype.keys + // https://tc39.es/ecma262/#sec-set.prototype.values + // https://tc39.es/ecma262/#sec-set.prototype-@@iterator + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return createIterResultObject(undefined, true); + } + // return step by kind + if (kind === 'keys') return createIterResultObject(entry.key, false); + if (kind === 'values') return createIterResultObject(entry.value, false); + return createIterResultObject([entry.key, entry.value], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // `{ Map, Set }.prototype[@@species]` accessors + // https://tc39.es/ecma262/#sec-get-map-@@species + // https://tc39.es/ecma262/#sec-get-set-@@species + setSpecies(CONSTRUCTOR_NAME); + } +}; + + +/***/ }), +/* 261 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var iterate = __webpack_require__(130); +var MapHelpers = __webpack_require__(262); +var IS_PURE = __webpack_require__(36); +var fails = __webpack_require__(7); + +var Map = MapHelpers.Map; +var has = MapHelpers.has; +var get = MapHelpers.get; +var set = MapHelpers.set; +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () { + return Map.groupBy('ab', function (it) { + return it; + }).get('a').length !== 1; +}); + +// `Map.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var map = new Map(); + var k = 0; + iterate(items, function (value) { + var key = callbackfn(value, k++); + if (!has(map, key)) set(map, key, [value]); + else push(get(map, key), value); + }); + return map; + } +}); + + +/***/ }), +/* 262 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-map -- safe +var MapPrototype = Map.prototype; + +module.exports = { + // eslint-disable-next-line es/no-map -- safe + Map: Map, + set: uncurryThis(MapPrototype.set), + get: uncurryThis(MapPrototype.get), + has: uncurryThis(MapPrototype.has), + remove: uncurryThis(MapPrototype['delete']), + proto: MapPrototype +}; + + +/***/ }), +/* 263 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// eslint-disable-next-line es/no-math-acosh -- required for testing +var $acosh = Math.acosh; +var log = Math.log; +var sqrt = Math.sqrt; +var LN2 = Math.LN2; + +var FORCED = !$acosh + // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 + || Math.floor($acosh(Number.MAX_VALUE)) !== 710 + // Tor Browser bug: Math.acosh(Infinity) -> NaN + || $acosh(Infinity) !== Infinity; + +// `Math.acosh` method +// https://tc39.es/ecma262/#sec-math.acosh +$({ target: 'Math', stat: true, forced: FORCED }, { + acosh: function acosh(x) { + var n = +x; + return n < 1 ? NaN : n > 94906265.62425156 + ? log(n) + LN2 + : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1)); + } +}); + + +/***/ }), +/* 264 */ +/***/ (function(module) { + + +var log = Math.log; + +// `Math.log1p` method implementation +// https://tc39.es/ecma262/#sec-math.log1p +// eslint-disable-next-line es/no-math-log1p -- safe +module.exports = Math.log1p || function log1p(x) { + var n = +x; + return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n); +}; + + +/***/ }), +/* 265 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-asinh -- required for testing +var $asinh = Math.asinh; +var log = Math.log; +var sqrt = Math.sqrt; + +function asinh(x) { + var n = +x; + return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1)); +} + +var FORCED = !($asinh && 1 / $asinh(0) > 0); + +// `Math.asinh` method +// https://tc39.es/ecma262/#sec-math.asinh +// Tor Browser bug: Math.asinh(0) -> -0 +$({ target: 'Math', stat: true, forced: FORCED }, { + asinh: asinh +}); + + +/***/ }), +/* 266 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-atanh -- required for testing +var $atanh = Math.atanh; +var log = Math.log; + +var FORCED = !($atanh && 1 / $atanh(-0) < 0); + +// `Math.atanh` method +// https://tc39.es/ecma262/#sec-math.atanh +// Tor Browser bug: Math.atanh(-0) -> 0 +$({ target: 'Math', stat: true, forced: FORCED }, { + atanh: function atanh(x) { + var n = +x; + return n === 0 ? n : log((1 + n) / (1 - n)) / 2; + } +}); + + +/***/ }), +/* 267 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +var abs = Math.abs; +var pow = Math.pow; + +// `Math.cbrt` method +// https://tc39.es/ecma262/#sec-math.cbrt +$({ target: 'Math', stat: true }, { + cbrt: function cbrt(x) { + var n = +x; + return sign(n) * pow(abs(n), 1 / 3); + } +}); + + +/***/ }), +/* 268 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var floor = Math.floor; +var log = Math.log; +var LOG2E = Math.LOG2E; + +// `Math.clz32` method +// https://tc39.es/ecma262/#sec-math.clz32 +$({ target: 'Math', stat: true }, { + clz32: function clz32(x) { + var n = x >>> 0; + return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32; + } +}); + + +/***/ }), +/* 269 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// eslint-disable-next-line es/no-math-cosh -- required for testing +var $cosh = Math.cosh; +var abs = Math.abs; +var E = Math.E; + +var FORCED = !$cosh || $cosh(710) === Infinity; + +// `Math.cosh` method +// https://tc39.es/ecma262/#sec-math.cosh +$({ target: 'Math', stat: true, forced: FORCED }, { + cosh: function cosh(x) { + var t = expm1(abs(x) - 1) + 1; + return (t + 1 / (t * E * E)) * (E / 2); + } +}); + + +/***/ }), +/* 270 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-math-expm1 -- safe +var $expm1 = Math.expm1; +var exp = Math.exp; + +// `Math.expm1` method implementation +// https://tc39.es/ecma262/#sec-math.expm1 +module.exports = (!$expm1 + // Old FF bug + // eslint-disable-next-line no-loss-of-precision -- required for old engines + || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 + // Tor Browser bug + || $expm1(-2e-17) !== -2e-17 +) ? function expm1(x) { + var n = +x; + return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1; +} : $expm1; + + +/***/ }), +/* 271 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// `Math.expm1` method +// https://tc39.es/ecma262/#sec-math.expm1 +// eslint-disable-next-line es/no-math-expm1 -- required for testing +$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 }); + + +/***/ }), +/* 272 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fround = __webpack_require__(212); + +// `Math.fround` method +// https://tc39.es/ecma262/#sec-math.fround +$({ target: 'Math', stat: true }, { fround: fround }); + + +/***/ }), +/* 273 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-hypot -- required for testing +var $hypot = Math.hypot; +var abs = Math.abs; +var sqrt = Math.sqrt; + +// Chrome 77 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=9546 +var FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity; + +// `Math.hypot` method +// https://tc39.es/ecma262/#sec-math.hypot +$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + hypot: function hypot(value1, value2) { + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + while (i < aLen) { + arg = abs(arguments[i++]); + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + return larg === Infinity ? Infinity : larg * sqrt(sum); + } +}); + + +/***/ }), +/* 274 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-math-imul -- required for testing +var $imul = Math.imul; + +var FORCED = fails(function () { + return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2; +}); + +// `Math.imul` method +// https://tc39.es/ecma262/#sec-math.imul +// some WebKit versions fails with big numbers, some has wrong arity +$({ target: 'Math', stat: true, forced: FORCED }, { + imul: function imul(x, y) { + var UINT16 = 0xFFFF; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } +}); + + +/***/ }), +/* 275 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log10 = __webpack_require__(276); + +// `Math.log10` method +// https://tc39.es/ecma262/#sec-math.log10 +$({ target: 'Math', stat: true }, { + log10: log10 +}); + + +/***/ }), +/* 276 */ +/***/ (function(module) { + + +var log = Math.log; +var LOG10E = Math.LOG10E; + +// eslint-disable-next-line es/no-math-log10 -- safe +module.exports = Math.log10 || function log10(x) { + return log(x) * LOG10E; +}; + + +/***/ }), +/* 277 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// `Math.log1p` method +// https://tc39.es/ecma262/#sec-math.log1p +$({ target: 'Math', stat: true }, { log1p: log1p }); + + +/***/ }), +/* 278 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var log = Math.log; +var LN2 = Math.LN2; + +// `Math.log2` method +// https://tc39.es/ecma262/#sec-math.log2 +$({ target: 'Math', stat: true }, { + log2: function log2(x) { + return log(x) / LN2; + } +}); + + +/***/ }), +/* 279 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +// `Math.sign` method +// https://tc39.es/ecma262/#sec-math.sign +$({ target: 'Math', stat: true }, { + sign: sign +}); + + +/***/ }), +/* 280 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var expm1 = __webpack_require__(270); + +var abs = Math.abs; +var exp = Math.exp; +var E = Math.E; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-math-sinh -- required for testing + return Math.sinh(-2e-17) !== -2e-17; +}); + +// `Math.sinh` method +// https://tc39.es/ecma262/#sec-math.sinh +// V8 near Chromium 38 has a problem with very small numbers +$({ target: 'Math', stat: true, forced: FORCED }, { + sinh: function sinh(x) { + var n = +x; + return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2); + } +}); + + +/***/ }), +/* 281 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +var exp = Math.exp; + +// `Math.tanh` method +// https://tc39.es/ecma262/#sec-math.tanh +$({ target: 'Math', stat: true }, { + tanh: function tanh(x) { + var n = +x; + var a = expm1(n); + var b = expm1(-n); + return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n)); + } +}); + + +/***/ }), +/* 282 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setToStringTag = __webpack_require__(82); + +// Math[@@toStringTag] property +// https://tc39.es/ecma262/#sec-math-@@tostringtag +setToStringTag(Math, 'Math', true); + + +/***/ }), +/* 283 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trunc = __webpack_require__(62); + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +$({ target: 'Math', stat: true }, { + trunc: trunc +}); + + +/***/ }), +/* 284 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var path = __webpack_require__(80); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var hasOwn = __webpack_require__(38); +var inheritIfRequired = __webpack_require__(118); +var isPrototypeOf = __webpack_require__(24); +var isSymbol = __webpack_require__(22); +var toPrimitive = __webpack_require__(19); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(57).f); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var defineProperty = (__webpack_require__(44).f); +var thisNumberValue = __webpack_require__(285); +var trim = (__webpack_require__(286).trim); + +var NUMBER = 'Number'; +var NativeNumber = global[NUMBER]; +var PureNumberNamespace = path[NUMBER]; +var NumberPrototype = NativeNumber.prototype; +var TypeError = global.TypeError; +var stringSlice = uncurryThis(''.slice); +var charCodeAt = uncurryThis(''.charCodeAt); + +// `ToNumeric` abstract operation +// https://tc39.es/ecma262/#sec-tonumeric +var toNumeric = function (value) { + var primValue = toPrimitive(value, 'number'); + return typeof primValue == 'bigint' ? primValue : toNumber(primValue); +}; + +// `ToNumber` abstract operation +// https://tc39.es/ecma262/#sec-tonumber +var toNumber = function (argument) { + var it = toPrimitive(argument, 'number'); + var first, third, radix, maxCode, digits, length, index, code; + if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number'); + if (typeof it == 'string' && it.length > 2) { + it = trim(it); + first = charCodeAt(it, 0); + if (first === 43 || first === 45) { + third = charCodeAt(it, 2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (charCodeAt(it, 1)) { + // fast equal of /^0b[01]+$/i + case 66: + case 98: + radix = 2; + maxCode = 49; + break; + // fast equal of /^0o[0-7]+$/i + case 79: + case 111: + radix = 8; + maxCode = 55; + break; + default: + return +it; + } + digits = stringSlice(it, 2); + length = digits.length; + for (index = 0; index < length; index++) { + code = charCodeAt(digits, index); + // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + if (code < 48 || code > maxCode) return NaN; + } return parseInt(digits, radix); + } + } return +it; +}; + +var FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1')); + +var calledWithNew = function (dummy) { + // includes check on 1..constructor(foo) case + return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); }); +}; + +// `Number` constructor +// https://tc39.es/ecma262/#sec-number-constructor +var NumberWrapper = function Number(value) { + var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value)); + return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n; +}; + +NumberWrapper.prototype = NumberPrototype; +if (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper; + +$({ global: true, constructor: true, wrap: true, forced: FORCED }, { + Number: NumberWrapper +}); + +// Use `internal/copy-constructor-properties` helper in `core-js@4` +var copyConstructorProperties = function (target, source) { + for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : ( + // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + + // ES2015 (in case, if modules with ES2015 Number statics required before): + 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' + + // ESNext + 'fromString,range' + ).split(','), j = 0, key; keys.length > j; j++) { + if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +if (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace); +if (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber); + + +/***/ }), +/* 285 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// `thisNumberValue` abstract operation +// https://tc39.es/ecma262/#sec-thisnumbervalue +module.exports = uncurryThis(1.0.valueOf); + + +/***/ }), +/* 286 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var whitespaces = __webpack_require__(287); + +var replace = uncurryThis(''.replace); +var ltrim = RegExp('^[' + whitespaces + ']+'); +var rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod = function (TYPE) { + return function ($this) { + var string = toString(requireObjectCoercible($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, '$1'); + return string; + }; +}; + +module.exports = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) +}; + + +/***/ }), +/* 287 */ +/***/ (function(module) { + + +// a string of all valid unicode whitespaces +module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), +/* 288 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.EPSILON` constant +// https://tc39.es/ecma262/#sec-number.epsilon +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + EPSILON: Math.pow(2, -52) +}); + + +/***/ }), +/* 289 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var numberIsFinite = __webpack_require__(290); + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +$({ target: 'Number', stat: true }, { isFinite: numberIsFinite }); + + +/***/ }), +/* 290 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +var globalIsFinite = global.isFinite; + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +// eslint-disable-next-line es/no-number-isfinite -- safe +module.exports = Number.isFinite || function isFinite(it) { + return typeof it == 'number' && globalIsFinite(it); +}; + + +/***/ }), +/* 291 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +// `Number.isInteger` method +// https://tc39.es/ecma262/#sec-number.isinteger +$({ target: 'Number', stat: true }, { + isInteger: isIntegralNumber +}); + + +/***/ }), +/* 292 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var floor = Math.floor; + +// `IsIntegralNumber` abstract operation +// https://tc39.es/ecma262/#sec-isintegralnumber +// eslint-disable-next-line es/no-number-isinteger -- safe +module.exports = Number.isInteger || function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + + +/***/ }), +/* 293 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.isNaN` method +// https://tc39.es/ecma262/#sec-number.isnan +$({ target: 'Number', stat: true }, { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number; + } +}); + + +/***/ }), +/* 294 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +var abs = Math.abs; + +// `Number.isSafeInteger` method +// https://tc39.es/ecma262/#sec-number.issafeinteger +$({ target: 'Number', stat: true }, { + isSafeInteger: function isSafeInteger(number) { + return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF; + } +}); + + +/***/ }), +/* 295 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MAX_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.max_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 296 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MIN_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.min_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 297 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseFloat = __webpack_require__(298); + +// `Number.parseFloat` method +// https://tc39.es/ecma262/#sec-number.parseFloat +// eslint-disable-next-line es/no-number-parsefloat -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, { + parseFloat: parseFloat +}); + + +/***/ }), +/* 298 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var charAt = uncurryThis(''.charAt); +var $parseFloat = global.parseFloat; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); })); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +module.exports = FORCED ? function parseFloat(string) { + var trimmedString = trim(toString(string)); + var result = $parseFloat(trimmedString); + return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result; +} : $parseFloat; + + +/***/ }), +/* 299 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseInt = __webpack_require__(300); + +// `Number.parseInt` method +// https://tc39.es/ecma262/#sec-number.parseint +// eslint-disable-next-line es/no-number-parseint -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, { + parseInt: parseInt +}); + + +/***/ }), +/* 300 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var $parseInt = global.parseInt; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var hex = /^[+-]?0x/i; +var exec = uncurryThis(hex.exec); +var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); })); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +module.exports = FORCED ? function parseInt(string, radix) { + var S = trim(toString(string)); + return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); +} : $parseInt; + + +/***/ }), +/* 301 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var log10 = __webpack_require__(276); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var $isFinite = isFinite; +var abs = Math.abs; +var floor = Math.floor; +var pow = Math.pow; +var round = Math.round; +var nativeToExponential = uncurryThis(1.0.toExponential); +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); + +// Edge 17- +var ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11' + // IE11- && Edge 14- + && nativeToExponential(1.255, 2) === '1.25e+0' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(12345, 3) === '1.235e+4' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(25, 0) === '3e+1'; + +// IE8- +var throwsOnInfinityFraction = function () { + return fails(function () { + nativeToExponential(1, Infinity); + }) && fails(function () { + nativeToExponential(1, -Infinity); + }); +}; + +// Safari <11 && FF <50 +var properNonFiniteThisCheck = function () { + return !fails(function () { + nativeToExponential(Infinity, Infinity); + nativeToExponential(NaN, Infinity); + }); +}; + +var FORCED = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFiniteThisCheck(); + +// `Number.prototype.toExponential` method +// https://tc39.es/ecma262/#sec-number.prototype.toexponential +$({ target: 'Number', proto: true, forced: FORCED }, { + toExponential: function toExponential(fractionDigits) { + var x = thisNumberValue(this); + if (fractionDigits === undefined) return nativeToExponential(x); + var f = toIntegerOrInfinity(fractionDigits); + if (!$isFinite(x)) return String(x); + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits'); + if (ROUNDS_PROPERLY) return nativeToExponential(x, f); + var s = ''; + var m = ''; + var e = 0; + var c = ''; + var d = ''; + if (x < 0) { + s = '-'; + x = -x; + } + if (x === 0) { + e = 0; + m = repeat('0', f + 1); + } else { + // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08 + // TODO: improve accuracy with big fraction digits + var l = log10(x); + e = floor(l); + var n = 0; + var w = pow(10, e - f); + n = round(x / w); + if (2 * x >= (2 * n + 1) * w) { + n += 1; + } + if (n >= pow(10, f + 1)) { + n /= 10; + e += 1; + } + m = $String(n); + } + if (f !== 0) { + m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1); + } + if (e === 0) { + c = '+'; + d = '0'; + } else { + c = e > 0 ? '+' : '-'; + d = $String(abs(e)); + } + m += 'e' + c + d; + return s + m; + } +}); + + +/***/ }), +/* 302 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var floor = Math.floor; +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var nativeToFixed = uncurryThis(1.0.toFixed); + +var pow = function (x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); +}; + +var log = function (x) { + var n = 0; + var x2 = x; + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + while (x2 >= 2) { + n += 1; + x2 /= 2; + } return n; +}; + +var multiply = function (data, n, c) { + var index = -1; + var c2 = c; + while (++index < 6) { + c2 += n * data[index]; + data[index] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } +}; + +var divide = function (data, n) { + var index = 6; + var c = 0; + while (--index >= 0) { + c += data[index]; + data[index] = floor(c / n); + c = (c % n) * 1e7; + } +}; + +var dataToString = function (data) { + var index = 6; + var s = ''; + while (--index >= 0) { + if (s !== '' || index === 0 || data[index] !== 0) { + var t = $String(data[index]); + s = s === '' ? t : s + repeat('0', 7 - t.length) + t; + } + } return s; +}; + +var FORCED = fails(function () { + return nativeToFixed(0.00008, 3) !== '0.000' || + nativeToFixed(0.9, 0) !== '1' || + nativeToFixed(1.255, 2) !== '1.25' || + nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToFixed({}); +}); + +// `Number.prototype.toFixed` method +// https://tc39.es/ecma262/#sec-number.prototype.tofixed +$({ target: 'Number', proto: true, forced: FORCED }, { + toFixed: function toFixed(fractionDigits) { + var number = thisNumberValue(this); + var fractDigits = toIntegerOrInfinity(fractionDigits); + var data = [0, 0, 0, 0, 0, 0]; + var sign = ''; + var result = '0'; + var e, z, j, k; + + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits'); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number) return 'NaN'; + if (number <= -1e21 || number >= 1e21) return $String(number); + if (number < 0) { + sign = '-'; + number = -number; + } + if (number > 1e-21) { + e = log(number * pow(2, 69, 1)) - 69; + z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + if (e > 0) { + multiply(data, 0, z); + j = fractDigits; + while (j >= 7) { + multiply(data, 1e7, 0); + j -= 7; + } + multiply(data, pow(10, j, 1), 0); + j = e - 1; + while (j >= 23) { + divide(data, 1 << 23); + j -= 23; + } + divide(data, 1 << j); + multiply(data, 1, 1); + divide(data, 2); + result = dataToString(data); + } else { + multiply(data, 0, z); + multiply(data, 1 << -e, 0); + result = dataToString(data) + repeat('0', fractDigits); + } + } + if (fractDigits > 0) { + k = result.length; + result = sign + (k <= fractDigits + ? '0.' + repeat('0', fractDigits - k) + result + : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits)); + } else { + result = sign + result; + } return result; + } +}); + + +/***/ }), +/* 303 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var thisNumberValue = __webpack_require__(285); + +var nativeToPrecision = uncurryThis(1.0.toPrecision); + +var FORCED = fails(function () { + // IE7- + return nativeToPrecision(1, undefined) !== '1'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToPrecision({}); +}); + +// `Number.prototype.toPrecision` method +// https://tc39.es/ecma262/#sec-number.prototype.toprecision +$({ target: 'Number', proto: true, forced: FORCED }, { + toPrecision: function toPrecision(precision) { + return precision === undefined + ? nativeToPrecision(thisNumberValue(this)) + : nativeToPrecision(thisNumberValue(this), precision); + } +}); + + +/***/ }), +/* 304 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var assign = __webpack_require__(305); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + + +/***/ }), +/* 305 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var objectKeys = __webpack_require__(73); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var propertyIsEnumerableModule = __webpack_require__(10); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty = Object.defineProperty; +var concat = uncurryThis([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +module.exports = !$assign || fails(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + + +/***/ }), +/* 306 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var create = __webpack_require__(71); + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + create: create +}); + + +/***/ }), +/* 307 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineGetter__: function __defineGetter__(P, getter) { + definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 308 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var WEBKIT = __webpack_require__(191); + +// Forced replacement object prototype accessors methods +module.exports = IS_PURE || !fails(function () { + // This feature detection crashes old WebKit + // https://github.com/zloirock/core-js/issues/232 + if (WEBKIT && WEBKIT < 535) return; + var key = Math.random(); + // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call, es/no-legacy-object-prototype-accessor-methods -- required for testing + __defineSetter__.call(null, key, function () { /* empty */ }); + delete global[key]; +}); + + +/***/ }), +/* 309 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperties = (__webpack_require__(72).f); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, { + defineProperties: defineProperties +}); + + +/***/ }), +/* 310 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperty = (__webpack_require__(44).f); + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +// eslint-disable-next-line es/no-object-defineproperty -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, { + defineProperty: defineProperty +}); + + +/***/ }), +/* 311 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineSetter__: function __defineSetter__(P, setter) { + definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 312 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $entries = (__webpack_require__(313).entries); + +// `Object.entries` method +// https://tc39.es/ecma262/#sec-object.entries +$({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } +}); + + +/***/ }), +/* 313 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var objectGetPrototypeOf = __webpack_require__(128); +var objectKeys = __webpack_require__(73); +var toIndexedObject = __webpack_require__(12); +var $propertyIsEnumerable = (__webpack_require__(10).f); + +var propertyIsEnumerable = uncurryThis($propertyIsEnumerable); +var push = uncurryThis([].push); + +// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys +// of `null` prototype objects +var IE_BUG = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-create -- safe + var O = Object.create(null); + O[2] = 2; + return !propertyIsEnumerable(O, 2); +}); + +// `Object.{ entries, values }` methods implementation +var createMethod = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + push(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; +}; + +module.exports = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod(false) +}; + + +/***/ }), +/* 314 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); + +// eslint-disable-next-line es/no-object-freeze -- safe +var $freeze = Object.freeze; +var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); }); + +// `Object.freeze` method +// https://tc39.es/ecma262/#sec-object.freeze +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + freeze: function freeze(it) { + return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 315 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var iterate = __webpack_require__(130); +var createProperty = __webpack_require__(141); + +// `Object.fromEntries` method +// https://github.com/tc39/proposal-object-from-entries +$({ target: 'Object', stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function (k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } +}); + + +/***/ }), +/* 316 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toIndexedObject = __webpack_require__(12); +var nativeGetOwnPropertyDescriptor = (__webpack_require__(5).f); +var DESCRIPTORS = __webpack_require__(6); + +var FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); }); + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { + return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key); + } +}); + + +/***/ }), +/* 317 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var ownKeys = __webpack_require__(56); +var toIndexedObject = __webpack_require__(12); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var createProperty = __webpack_require__(141); + +// `Object.getOwnPropertyDescriptors` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIndexedObject(object); + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + var keys = ownKeys(O); + var result = {}; + var index = 0; + var key, descriptor; + while (keys.length > index) { + descriptor = getOwnPropertyDescriptor(O, key = keys[index++]); + if (descriptor !== undefined) createProperty(result, key, descriptor); + } + return result; + } +}); + + +/***/ }), +/* 318 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(75).f); + +// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing +var FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); }); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + getOwnPropertyNames: getOwnPropertyNames +}); + + +/***/ }), +/* 319 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var nativeGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); }); + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(it) { + return nativeGetPrototypeOf(toObject(it)); + } +}); + + + +/***/ }), +/* 320 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var toPropertyKey = __webpack_require__(18); +var iterate = __webpack_require__(130); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-map-groupby -- testing +var nativeGroupBy = Object.groupBy; +var create = getBuiltIn('Object', 'create'); +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () { + return nativeGroupBy('ab', function (it) { + return it; + }).a.length !== 1; +}); + +// `Object.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var obj = create(null); + var k = 0; + iterate(items, function (value) { + var key = toPropertyKey(callbackfn(value, k++)); + // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys + // but since it's a `null` prototype object, we can safely use `in` + if (key in obj) push(obj[key], value); + else obj[key] = [value]; + }); + return obj; + } +}); + + +/***/ }), +/* 321 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); + +// `Object.hasOwn` method +// https://tc39.es/ecma262/#sec-object.hasown +$({ target: 'Object', stat: true }, { + hasOwn: hasOwn +}); + + +/***/ }), +/* 322 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var is = __webpack_require__(323); + +// `Object.is` method +// https://tc39.es/ecma262/#sec-object.is +$({ target: 'Object', stat: true }, { + is: is +}); + + +/***/ }), +/* 323 */ +/***/ (function(module) { + + +// `SameValue` abstract operation +// https://tc39.es/ecma262/#sec-samevalue +// eslint-disable-next-line es/no-object-is -- safe +module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; +}; + + +/***/ }), +/* 324 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $isExtensible = __webpack_require__(257); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +// eslint-disable-next-line es/no-object-isextensible -- safe +$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, { + isExtensible: $isExtensible +}); + + +/***/ }), +/* 325 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isfrozen -- safe +var $isFrozen = Object.isFrozen; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); }); + +// `Object.isFrozen` method +// https://tc39.es/ecma262/#sec-object.isfrozen +$({ target: 'Object', stat: true, forced: FORCED }, { + isFrozen: function isFrozen(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isFrozen ? $isFrozen(it) : false; + } +}); + + +/***/ }), +/* 326 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-issealed -- safe +var $isSealed = Object.isSealed; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); }); + +// `Object.isSealed` method +// https://tc39.es/ecma262/#sec-object.issealed +$({ target: 'Object', stat: true, forced: FORCED }, { + isSealed: function isSealed(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isSealed ? $isSealed(it) : false; + } +}); + + +/***/ }), +/* 327 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var nativeKeys = __webpack_require__(73); +var fails = __webpack_require__(7); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject(it)); + } +}); + + +/***/ }), +/* 328 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.get; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 329 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.set; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 330 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-preventextensions -- safe +var $preventExtensions = Object.preventExtensions; +var FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); }); + +// `Object.preventExtensions` method +// https://tc39.es/ecma262/#sec-object.preventextensions +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + preventExtensions: function preventExtensions(it) { + return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 331 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isObject = __webpack_require__(20); +var isPossiblePrototype = __webpack_require__(116); +var toObject = __webpack_require__(39); +var requireObjectCoercible = __webpack_require__(16); + +// eslint-disable-next-line es/no-object-getprototypeof -- safe +var getPrototypeOf = Object.getPrototypeOf; +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var setPrototypeOf = Object.setPrototypeOf; +var ObjectPrototype = Object.prototype; +var PROTO = '__proto__'; + +// `Object.prototype.__proto__` accessor +// https://tc39.es/ecma262/#sec-object.prototype.__proto__ +if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { + defineBuiltInAccessor(ObjectPrototype, PROTO, { + configurable: true, + get: function __proto__() { + return getPrototypeOf(toObject(this)); + }, + set: function __proto__(proto) { + var O = requireObjectCoercible(this); + if (isPossiblePrototype(proto) && isObject(O)) { + setPrototypeOf(O, proto); + } + } + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 332 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-seal -- safe +var $seal = Object.seal; +var FAILS_ON_PRIMITIVES = fails(function () { $seal(1); }); + +// `Object.seal` method +// https://tc39.es/ecma262/#sec-object.seal +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + seal: function seal(it) { + return $seal && isObject(it) ? $seal(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 333 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var setPrototypeOf = __webpack_require__(113); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +$({ target: 'Object', stat: true }, { + setPrototypeOf: setPrototypeOf +}); + + +/***/ }), +/* 334 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var defineBuiltIn = __webpack_require__(47); +var toString = __webpack_require__(335); + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true }); +} + + +/***/ }), +/* 335 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var classof = __webpack_require__(69); + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; +}; + + +/***/ }), +/* 336 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $values = (__webpack_require__(313).values); + +// `Object.values` method +// https://tc39.es/ecma262/#sec-object.values +$({ target: 'Object', stat: true }, { + values: function values(O) { + return $values(O); + } +}); + + +/***/ }), +/* 337 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseFloat = __webpack_require__(298); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +$({ global: true, forced: parseFloat !== $parseFloat }, { + parseFloat: $parseFloat +}); + + +/***/ }), +/* 338 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseInt = __webpack_require__(300); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +$({ global: true, forced: parseInt !== $parseInt }, { + parseInt: $parseInt +}); + + +/***/ }), +/* 339 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(340); +__webpack_require__(354); +__webpack_require__(356); +__webpack_require__(357); +__webpack_require__(358); +__webpack_require__(359); + + +/***/ }), +/* 340 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var IS_NODE = __webpack_require__(182); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var setSpecies = __webpack_require__(193); +var aCallable = __webpack_require__(30); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var anInstance = __webpack_require__(210); +var speciesConstructor = __webpack_require__(219); +var task = (__webpack_require__(341).set); +var microtask = __webpack_require__(344); +var hostReportErrors = __webpack_require__(349); +var perform = __webpack_require__(350); +var Queue = __webpack_require__(346); +var InternalStateModule = __webpack_require__(51); +var NativePromiseConstructor = __webpack_require__(351); +var PromiseConstructorDetection = __webpack_require__(352); +var newPromiseCapabilityModule = __webpack_require__(353); + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); +var setInternalState = InternalStateModule.set; +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var PromiseConstructor = NativePromiseConstructor; +var PromisePrototype = NativePromisePrototype; +var TypeError = global.TypeError; +var document = global.document; +var process = global.process; +var newPromiseCapability = newPromiseCapabilityModule.f; +var newGenericPromiseCapability = newPromiseCapability; + +var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject(it) && isCallable(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state === FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(new TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform(function () { + if (IS_NODE) { + process.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + if (IS_NODE) { + process.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw new TypeError("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call(then, value, + bind(internalResolve, wrapper, state), + bind(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromisePrototype); + aCallable(executor); + call(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind(internalResolve, state), bind(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable(onRejected) && onRejected; + reaction.domain = IS_NODE ? process.domain : undefined; + if (state.state === PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind(internalResolve, state); + this.reject = bind(internalReject, state); + }; + + newPromiseCapabilityModule.f = newPromiseCapability = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) { + nativeThen = NativePromisePrototype.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf) { + setPrototypeOf(NativePromisePrototype, PromisePrototype); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + Promise: PromiseConstructor +}); + +setToStringTag(PromiseConstructor, PROMISE, false, true); +setSpecies(PROMISE); + + +/***/ }), +/* 341 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var bind = __webpack_require__(84); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var fails = __webpack_require__(7); +var html = __webpack_require__(74); +var arraySlice = __webpack_require__(76); +var createElement = __webpack_require__(42); +var validateArgumentsLength = __webpack_require__(342); +var IS_IOS = __webpack_require__(343); +var IS_NODE = __webpack_require__(182); + +var set = global.setImmediate; +var clear = global.clearImmediate; +var process = global.process; +var Dispatch = global.Dispatch; +var Function = global.Function; +var MessageChannel = global.MessageChannel; +var String = global.String; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global.location; +}); + +var run = function (id) { + if (hasOwn(queue, id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global.postMessage(String(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable(handler) ? handler : Function(handler); + var args = arraySlice(arguments, 1); + queue[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue[id]; + }; + // Node.js 0.8- + if (IS_NODE) { + defer = function (id) { + process.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global.addEventListener && + isCallable(global.postMessage) && + !global.importScripts && + $location && $location.protocol !== 'file:' && + !fails(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +module.exports = { + set: set, + clear: clear +}; + + +/***/ }), +/* 342 */ +/***/ (function(module) { + + +var $TypeError = TypeError; + +module.exports = function (passed, required) { + if (passed < required) throw new $TypeError('Not enough arguments'); + return passed; +}; + + +/***/ }), +/* 343 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +// eslint-disable-next-line redos/no-vulnerable -- safe +module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent); + + +/***/ }), +/* 344 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var bind = __webpack_require__(84); +var macrotask = (__webpack_require__(341).set); +var Queue = __webpack_require__(346); +var IS_IOS = __webpack_require__(343); +var IS_IOS_PEBBLE = __webpack_require__(347); +var IS_WEBOS_WEBKIT = __webpack_require__(348); +var IS_NODE = __webpack_require__(182); + +var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; +var document = global.document; +var process = global.process; +var Promise = global.Promise; +var microtask = safeGetBuiltIn('queueMicrotask'); +var notify, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask) { + var queue = new Queue(); + + var flush = function () { + var parent, fn; + if (IS_NODE && (parent = process.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { + toggle = true; + node = document.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise; + then = bind(promise.then, promise); + notify = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE) { + notify = function () { + process.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind(macrotask, global); + notify = function () { + macrotask(flush); + }; + } + + microtask = function (fn) { + if (!queue.head) notify(); + queue.add(fn); + }; +} + +module.exports = microtask; + + +/***/ }), +/* 345 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Avoid NodeJS experimental warning +module.exports = function (name) { + if (!DESCRIPTORS) return global[name]; + var descriptor = getOwnPropertyDescriptor(global, name); + return descriptor && descriptor.value; +}; + + +/***/ }), +/* 346 */ +/***/ (function(module) { + + +var Queue = function () { + this.head = null; + this.tail = null; +}; + +Queue.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +module.exports = Queue; + + +/***/ }), +/* 347 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined'; + + +/***/ }), +/* 348 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /web0s(?!.*chrome)/i.test(userAgent); + + +/***/ }), +/* 349 */ +/***/ (function(module) { + + +module.exports = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length === 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 350 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + + +/***/ }), +/* 351 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global.Promise; + + +/***/ }), +/* 352 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var NativePromiseConstructor = __webpack_require__(351); +var isCallable = __webpack_require__(21); +var isForced = __webpack_require__(67); +var inspectSource = __webpack_require__(50); +var wellKnownSymbol = __webpack_require__(33); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_PURE = __webpack_require__(36); +var V8_VERSION = __webpack_require__(27); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var SPECIES = wellKnownSymbol('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution + if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT; +}); + +module.exports = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT, + SUBCLASSING: SUBCLASSING +}; + + +/***/ }), +/* 353 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); + +var $TypeError = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable(resolve); + this.reject = aCallable(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + + +/***/ }), +/* 354 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 355 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NativePromiseConstructor = __webpack_require__(351); +var checkCorrectnessOfIteration = __webpack_require__(164); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +module.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) { + NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ }); +}); + + +/***/ }), +/* 356 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var NativePromiseConstructor = __webpack_require__(351); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + + +/***/ }), +/* 357 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate(iterable, function (promise) { + call($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 358 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + var capabilityReject = capability.reject; + capabilityReject(r); + return capability.promise; + } +}); + + +/***/ }), +/* 359 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var promiseResolve = __webpack_require__(360); + +var PromiseConstructorWrapper = getBuiltIn('Promise'); +var CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x); + } +}); + + +/***/ }), +/* 360 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var newPromiseCapability = __webpack_require__(353); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + + +/***/ }), +/* 361 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.allSettled` method +// https://tc39.es/ecma262/#sec-promise.allsettled +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 362 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var getBuiltIn = __webpack_require__(23); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +var PROMISE_ANY_ERROR = 'No one promise resolved'; + +// `Promise.any` method +// https://tc39.es/ecma262/#sec-promise.any +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + any: function any(iterable) { + var C = this; + var AggregateError = getBuiltIn('AggregateError'); + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var errors = []; + var counter = 0; + var remaining = 1; + var alreadyResolved = false; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyRejected = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyRejected || alreadyResolved) return; + alreadyResolved = true; + resolve(value); + }, function (error) { + if (alreadyRejected || alreadyResolved) return; + alreadyRejected = true; + errors[index] = error; + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + }); + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 363 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var fails = __webpack_require__(7); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var speciesConstructor = __webpack_require__(219); +var promiseResolve = __webpack_require__(360); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 +var NON_GENERIC = !!NativePromiseConstructor && fails(function () { + // eslint-disable-next-line unicorn/no-thenable -- required for testing + NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); +}); + +// `Promise.prototype.finally` method +// https://tc39.es/ecma262/#sec-promise.prototype.finally +$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { + 'finally': function (onFinally) { + var C = speciesConstructor(this, getBuiltIn('Promise')); + var isFunction = isCallable(onFinally); + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); + } +}); + +// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['finally']; + if (NativePromisePrototype['finally'] !== method) { + defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true }); + } +} + + +/***/ }), +/* 364 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); + +// `Promise.withResolvers` method +// https://github.com/tc39/proposal-promise-with-resolvers +$({ target: 'Promise', stat: true }, { + withResolvers: function withResolvers() { + var promiseCapability = newPromiseCapabilityModule.f(this); + return { + promise: promiseCapability.promise, + resolve: promiseCapability.resolve, + reject: promiseCapability.reject + }; + } +}); + + +/***/ }), +/* 365 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var functionApply = __webpack_require__(94); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var fails = __webpack_require__(7); + +// MS Edge argumentsList argument is optional +var OPTIONAL_ARGUMENTS_LIST = !fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.apply(function () { /* empty */ }); +}); + +// `Reflect.apply` method +// https://tc39.es/ecma262/#sec-reflect.apply +$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, { + apply: function apply(target, thisArgument, argumentsList) { + return functionApply(aCallable(target), thisArgument, anObject(argumentsList)); + } +}); + + +/***/ }), +/* 366 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var bind = __webpack_require__(248); +var aConstructor = __webpack_require__(220); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var fails = __webpack_require__(7); + +var nativeConstruct = getBuiltIn('Reflect', 'construct'); +var ObjectPrototype = Object.prototype; +var push = [].push; + +// `Reflect.construct` method +// https://tc39.es/ecma262/#sec-reflect.construct +// MS Edge supports only 2 arguments and argumentsList argument is optional +// FF Nightly sets third argument as `new.target`, but does not create `this` from it +var NEW_TARGET_BUG = fails(function () { + function F() { /* empty */ } + return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F); +}); + +var ARGS_BUG = !fails(function () { + nativeConstruct(function () { /* empty */ }); +}); + +var FORCED = NEW_TARGET_BUG || ARGS_BUG; + +$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, { + construct: function construct(Target, args /* , newTarget */) { + aConstructor(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget); + if (Target === newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: return new Target(); + case 1: return new Target(args[0]); + case 2: return new Target(args[0], args[1]); + case 3: return new Target(args[0], args[1], args[2]); + case 4: return new Target(args[0], args[1], args[2], args[3]); + } + // w/o altered newTarget, lot of arguments case + var $args = [null]; + apply(push, $args, args); + return new (apply(bind, Target, $args))(); + } + // with altered newTarget, not support built-in constructors + var proto = newTarget.prototype; + var instance = create(isObject(proto) ? proto : ObjectPrototype); + var result = apply(Target, instance, args); + return isObject(result) ? result : instance; + } +}); + + +/***/ }), +/* 367 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); +var definePropertyModule = __webpack_require__(44); +var fails = __webpack_require__(7); + +// MS Edge has broken Reflect.defineProperty - throwing instead of returning false +var ERROR_INSTEAD_OF_FALSE = fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 }); +}); + +// `Reflect.defineProperty` method +// https://tc39.es/ecma262/#sec-reflect.defineproperty +$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + var key = toPropertyKey(propertyKey); + anObject(attributes); + try { + definePropertyModule.f(target, key, attributes); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 368 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Reflect.deleteProperty` method +// https://tc39.es/ecma262/#sec-reflect.deleteproperty +$({ target: 'Reflect', stat: true }, { + deleteProperty: function deleteProperty(target, propertyKey) { + var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey); + return descriptor && !descriptor.configurable ? false : delete target[propertyKey]; + } +}); + + +/***/ }), +/* 369 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var anObject = __webpack_require__(46); +var isDataDescriptor = __webpack_require__(370); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); + +// `Reflect.get` method +// https://tc39.es/ecma262/#sec-reflect.get +function get(target, propertyKey /* , receiver */) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var descriptor, prototype; + if (anObject(target) === receiver) return target[propertyKey]; + descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey); + if (descriptor) return isDataDescriptor(descriptor) + ? descriptor.value + : descriptor.get === undefined ? undefined : call(descriptor.get, receiver); + if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver); +} + +$({ target: 'Reflect', stat: true }, { + get: get +}); + + +/***/ }), +/* 370 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); + +module.exports = function (descriptor) { + return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable')); +}; + + +/***/ }), +/* 371 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptorModule = __webpack_require__(5); + +// `Reflect.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor +$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + } +}); + + +/***/ }), +/* 372 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var objectGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +// `Reflect.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.getprototypeof +$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(target) { + return objectGetPrototypeOf(anObject(target)); + } +}); + + +/***/ }), +/* 373 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Reflect.has` method +// https://tc39.es/ecma262/#sec-reflect.has +$({ target: 'Reflect', stat: true }, { + has: function has(target, propertyKey) { + return propertyKey in target; + } +}); + + +/***/ }), +/* 374 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var $isExtensible = __webpack_require__(257); + +// `Reflect.isExtensible` method +// https://tc39.es/ecma262/#sec-reflect.isextensible +$({ target: 'Reflect', stat: true }, { + isExtensible: function isExtensible(target) { + anObject(target); + return $isExtensible(target); + } +}); + + +/***/ }), +/* 375 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ownKeys = __webpack_require__(56); + +// `Reflect.ownKeys` method +// https://tc39.es/ecma262/#sec-reflect.ownkeys +$({ target: 'Reflect', stat: true }, { + ownKeys: ownKeys +}); + + +/***/ }), +/* 376 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var anObject = __webpack_require__(46); +var FREEZING = __webpack_require__(259); + +// `Reflect.preventExtensions` method +// https://tc39.es/ecma262/#sec-reflect.preventextensions +$({ target: 'Reflect', stat: true, sham: !FREEZING }, { + preventExtensions: function preventExtensions(target) { + anObject(target); + try { + var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions'); + if (objectPreventExtensions) objectPreventExtensions(target); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 377 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var isDataDescriptor = __webpack_require__(370); +var fails = __webpack_require__(7); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); +var createPropertyDescriptor = __webpack_require__(11); + +// `Reflect.set` method +// https://tc39.es/ecma262/#sec-reflect.set +function set(target, propertyKey, V /* , receiver */) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + var existingDescriptor, prototype, setter; + if (!ownDescriptor) { + if (isObject(prototype = getPrototypeOf(target))) { + return set(prototype, propertyKey, V, receiver); + } + ownDescriptor = createPropertyDescriptor(0); + } + if (isDataDescriptor(ownDescriptor)) { + if (ownDescriptor.writable === false || !isObject(receiver)) return false; + if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + definePropertyModule.f(receiver, propertyKey, existingDescriptor); + } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V)); + } else { + setter = ownDescriptor.set; + if (setter === undefined) return false; + call(setter, receiver, V); + } return true; +} + +// MS Edge 17-18 Reflect.set allows setting the property to object +// with non-writable property on the prototype +var MS_EDGE_BUG = fails(function () { + var Constructor = function () { /* empty */ }; + var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true }); + // eslint-disable-next-line es/no-reflect -- required for testing + return Reflect.set(Constructor.prototype, 'a', 1, object) !== false; +}); + +$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, { + set: set +}); + + +/***/ }), +/* 378 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var aPossiblePrototype = __webpack_require__(115); +var objectSetPrototypeOf = __webpack_require__(113); + +// `Reflect.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.setprototypeof +if (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, { + setPrototypeOf: function setPrototypeOf(target, proto) { + anObject(target); + aPossiblePrototype(proto); + try { + objectSetPrototypeOf(target, proto); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 379 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +$({ global: true }, { Reflect: {} }); + +// Reflect[@@toStringTag] property +// https://tc39.es/ecma262/#sec-reflect-@@tostringtag +setToStringTag(global.Reflect, 'Reflect', true); + + +/***/ }), +/* 380 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var inheritIfRequired = __webpack_require__(118); +var createNonEnumerableProperty = __webpack_require__(43); +var create = __webpack_require__(71); +var getOwnPropertyNames = (__webpack_require__(57).f); +var isPrototypeOf = __webpack_require__(24); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getRegExpFlags = __webpack_require__(382); +var stickyHelpers = __webpack_require__(384); +var proxyAccessor = __webpack_require__(117); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var enforceInternalState = (__webpack_require__(51).enforce); +var setSpecies = __webpack_require__(193); +var wellKnownSymbol = __webpack_require__(33); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var MATCH = wellKnownSymbol('match'); +var NativeRegExp = global.RegExp; +var RegExpPrototype = NativeRegExp.prototype; +var SyntaxError = global.SyntaxError; +var exec = uncurryThis(RegExpPrototype.exec); +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); +// TODO: Use only proper RegExpIdentifierName +var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/; +var re1 = /a/g; +var re2 = /a/g; + +// "new" should create a new object, old webkit bug +var CORRECT_NEW = new NativeRegExp(re1) !== re1; + +var MISSED_STICKY = stickyHelpers.MISSED_STICKY; +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; + +var BASE_FORCED = DESCRIPTORS && + (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () { + re2[MATCH] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i'; + })); + +var handleDotAll = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var brackets = false; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + result += chr + charAt(string, ++index); + continue; + } + if (!brackets && chr === '.') { + result += '[\\s\\S]'; + } else { + if (chr === '[') { + brackets = true; + } else if (chr === ']') { + brackets = false; + } result += chr; + } + } return result; +}; + +var handleNCG = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var named = []; + var names = create(null); + var brackets = false; + var ncg = false; + var groupid = 0; + var groupname = ''; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + chr += charAt(string, ++index); + } else if (chr === ']') { + brackets = false; + } else if (!brackets) switch (true) { + case chr === '[': + brackets = true; + break; + case chr === '(': + if (exec(IS_NCG, stringSlice(string, index + 1))) { + index += 2; + ncg = true; + } + result += chr; + groupid++; + continue; + case chr === '>' && ncg: + if (groupname === '' || hasOwn(names, groupname)) { + throw new SyntaxError('Invalid capture group name'); + } + names[groupname] = true; + named[named.length] = [groupname, groupid]; + ncg = false; + groupname = ''; + continue; + } + if (ncg) groupname += chr; + else result += chr; + } return [result, named]; +}; + +// `RegExp` constructor +// https://tc39.es/ecma262/#sec-regexp-constructor +if (isForced('RegExp', BASE_FORCED)) { + var RegExpWrapper = function RegExp(pattern, flags) { + var thisIsRegExp = isPrototypeOf(RegExpPrototype, this); + var patternIsRegExp = isRegExp(pattern); + var flagsAreUndefined = flags === undefined; + var groups = []; + var rawPattern = pattern; + var rawFlags, dotAll, sticky, handled, result, state; + + if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) { + return pattern; + } + + if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) { + pattern = pattern.source; + if (flagsAreUndefined) flags = getRegExpFlags(rawPattern); + } + + pattern = pattern === undefined ? '' : toString(pattern); + flags = flags === undefined ? '' : toString(flags); + rawPattern = pattern; + + if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) { + dotAll = !!flags && stringIndexOf(flags, 's') > -1; + if (dotAll) flags = replace(flags, /s/g, ''); + } + + rawFlags = flags; + + if (MISSED_STICKY && 'sticky' in re1) { + sticky = !!flags && stringIndexOf(flags, 'y') > -1; + if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, ''); + } + + if (UNSUPPORTED_NCG) { + handled = handleNCG(pattern); + pattern = handled[0]; + groups = handled[1]; + } + + result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper); + + if (dotAll || sticky || groups.length) { + state = enforceInternalState(result); + if (dotAll) { + state.dotAll = true; + state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags); + } + if (sticky) state.sticky = true; + if (groups.length) state.groups = groups; + } + + if (pattern !== rawPattern) try { + // fails in old engines, but we have no alternatives for unsupported regex syntax + createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern); + } catch (error) { /* empty */ } + + return result; + }; + + for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) { + proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]); + } + + RegExpPrototype.constructor = RegExpWrapper; + RegExpWrapper.prototype = RegExpPrototype; + defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true }); +} + +// https://tc39.es/ecma262/#sec-get-regexp-@@species +setSpecies('RegExp'); + + +/***/ }), +/* 381 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +// `IsRegExp` abstract operation +// https://tc39.es/ecma262/#sec-isregexp +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp'); +}; + + +/***/ }), +/* 382 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var regExpFlags = __webpack_require__(383); + +var RegExpPrototype = RegExp.prototype; + +module.exports = function (R) { + var flags = R.flags; + return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) + ? call(regExpFlags, R) : flags; +}; + + +/***/ }), +/* 383 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); + +// `RegExp.prototype.flags` getter implementation +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; +}; + + +/***/ }), +/* 384 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError +var $RegExp = global.RegExp; + +var UNSUPPORTED_Y = fails(function () { + var re = $RegExp('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') !== null; +}); + +// UC Browser bug +// https://github.com/zloirock/core-js/issues/1008 +var MISSED_STICKY = UNSUPPORTED_Y || fails(function () { + return !$RegExp('a', 'y').sticky; +}); + +var BROKEN_CARET = UNSUPPORTED_Y || fails(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') !== null; +}); + +module.exports = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y +}; + + +/***/ }), +/* 385 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('.', 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); +}); + + +/***/ }), +/* 386 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('(?<a>b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$<a>c') !== 'bc'; +}); + + +/***/ }), +/* 387 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.dotAll` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall +if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) { + defineBuiltInAccessor(RegExpPrototype, 'dotAll', { + configurable: true, + get: function dotAll() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).dotAll; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 388 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var exec = __webpack_require__(389); + +// `RegExp.prototype.exec` method +// https://tc39.es/ecma262/#sec-regexp.prototype.exec +$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec +}); + + +/***/ }), +/* 389 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ +/* eslint-disable regexp/no-useless-quantifier -- testing */ +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var regexpFlags = __webpack_require__(383); +var stickyHelpers = __webpack_require__(384); +var shared = __webpack_require__(34); +var create = __webpack_require__(71); +var getInternalState = (__webpack_require__(51).get); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var nativeReplace = shared('native-string-replace', String.prototype.replace); +var nativeExec = RegExp.prototype.exec; +var patchedExec = nativeExec; +var charAt = uncurryThis(''.charAt); +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); + +var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call(nativeExec, re1, 'a'); + call(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; +})(); + +var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + +// nonparticipating capturing group, copied from es5-shim's String#split patch. +var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + +if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice(match.input, charsAdded); + match[0] = stringSlice(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; +} + +module.exports = patchedExec; + + +/***/ }), +/* 390 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var regExpFlags = __webpack_require__(383); +var fails = __webpack_require__(7); + +// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError +var RegExp = global.RegExp; +var RegExpPrototype = RegExp.prototype; + +var FORCED = DESCRIPTORS && fails(function () { + var INDICES_SUPPORT = true; + try { + RegExp('.', 'd'); + } catch (error) { + INDICES_SUPPORT = false; + } + + var O = {}; + // modern V8 bug + var calls = ''; + var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; + + var addGetter = function (key, chr) { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(O, key, { get: function () { + calls += chr; + return true; + } }); + }; + + var pairs = { + dotAll: 's', + global: 'g', + ignoreCase: 'i', + multiline: 'm', + sticky: 'y' + }; + + if (INDICES_SUPPORT) pairs.hasIndices = 'd'; + + for (var key in pairs) addGetter(key, pairs[key]); + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O); + + return result !== expected || calls !== expected; +}); + +// `RegExp.prototype.flags` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', { + configurable: true, + get: regExpFlags +}); + + +/***/ }), +/* 391 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var MISSED_STICKY = (__webpack_require__(384).MISSED_STICKY); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.sticky` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky +if (DESCRIPTORS && MISSED_STICKY) { + defineBuiltInAccessor(RegExpPrototype, 'sticky', { + configurable: true, + get: function sticky() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).sticky; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 392 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var anObject = __webpack_require__(46); +var toString = __webpack_require__(68); + +var DELEGATES_TO_EXEC = function () { + var execCalled = false; + var re = /[ac]/; + re.exec = function () { + execCalled = true; + return /./.exec.apply(this, arguments); + }; + return re.test('abc') === true && execCalled; +}(); + +var nativeTest = /./.test; + +// `RegExp.prototype.test` method +// https://tc39.es/ecma262/#sec-regexp.prototype.test +$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { + test: function (S) { + var R = anObject(this); + var string = toString(S); + var exec = R.exec; + if (!isCallable(exec)) return call(nativeTest, R, string); + var result = call(exec, R, string); + if (result === null) return false; + anObject(result); + return true; + } +}); + + +/***/ }), +/* 393 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var defineBuiltIn = __webpack_require__(47); +var anObject = __webpack_require__(46); +var $toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var getRegExpFlags = __webpack_require__(382); + +var TO_STRING = 'toString'; +var RegExpPrototype = RegExp.prototype; +var nativeToString = RegExpPrototype[TO_STRING]; + +var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; }); +// FF44- RegExp#toString has a wrong name +var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING; + +// `RegExp.prototype.toString` method +// https://tc39.es/ecma262/#sec-regexp.prototype.tostring +if (NOT_GENERIC || INCORRECT_NAME) { + defineBuiltIn(RegExpPrototype, TO_STRING, function toString() { + var R = anObject(this); + var pattern = $toString(R.source); + var flags = $toString(getRegExpFlags(R)); + return '/' + pattern + '/' + flags; + }, { unsafe: true }); +} + + +/***/ }), +/* 394 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(395); + + +/***/ }), +/* 395 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Set` constructor +// https://tc39.es/ecma262/#sec-set-objects +collection('Set', function (init) { + return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 396 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var difference = __webpack_require__(397); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, { + difference: difference +}); + + +/***/ }), +/* 397 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function difference(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = clone(O); + if (size(O) <= otherRec.size) iterateSet(O, function (e) { + if (otherRec.includes(e)) remove(result, e); + }); + else iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) remove(result, e); + }); + return result; +}; + + +/***/ }), +/* 398 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var has = (__webpack_require__(399).has); + +// Perform ? RequireInternalSlot(M, [[SetData]]) +module.exports = function (it) { + has(it); + return it; +}; + + +/***/ }), +/* 399 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-set -- safe +var SetPrototype = Set.prototype; + +module.exports = { + // eslint-disable-next-line es/no-set -- safe + Set: Set, + add: uncurryThis(SetPrototype.add), + has: uncurryThis(SetPrototype.has), + remove: uncurryThis(SetPrototype['delete']), + proto: SetPrototype +}; + + +/***/ }), +/* 400 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var SetHelpers = __webpack_require__(399); +var iterate = __webpack_require__(401); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; + +module.exports = function (set) { + var result = new Set(); + iterate(set, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 401 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var iterateSimple = __webpack_require__(402); +var SetHelpers = __webpack_require__(399); + +var Set = SetHelpers.Set; +var SetPrototype = SetHelpers.proto; +var forEach = uncurryThis(SetPrototype.forEach); +var keys = uncurryThis(SetPrototype.keys); +var next = keys(new Set()).next; + +module.exports = function (set, fn, interruptible) { + return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn); +}; + + +/***/ }), +/* 402 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); + +module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) { + var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator; + var next = record.next; + var step, result; + while (!(step = call(next, iterator)).done) { + result = fn(step.value); + if (result !== undefined) return result; + } +}; + + +/***/ }), +/* 403 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var SetHelpers = __webpack_require__(399); + +module.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) { + return set.size; +}; + + +/***/ }), +/* 404 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var call = __webpack_require__(8); +var toIntegerOrInfinity = __webpack_require__(61); +var getIteratorDirect = __webpack_require__(405); + +var INVALID_SIZE = 'Invalid size'; +var $RangeError = RangeError; +var $TypeError = TypeError; +var max = Math.max; + +var SetRecord = function (set, intSize) { + this.set = set; + this.size = max(intSize, 0); + this.has = aCallable(set.has); + this.keys = aCallable(set.keys); +}; + +SetRecord.prototype = { + getIterator: function () { + return getIteratorDirect(anObject(call(this.keys, this.set))); + }, + includes: function (it) { + return call(this.has, this.set, it); + } +}; + +// `GetSetRecord` abstract operation +// https://tc39.es/proposal-set-methods/#sec-getsetrecord +module.exports = function (obj) { + anObject(obj); + var numSize = +obj.size; + // NOTE: If size is undefined, then numSize will be NaN + // eslint-disable-next-line no-self-compare -- NaN check + if (numSize !== numSize) throw new $TypeError(INVALID_SIZE); + var intSize = toIntegerOrInfinity(numSize); + if (intSize < 0) throw new $RangeError(INVALID_SIZE); + return new SetRecord(obj, intSize); +}; + + +/***/ }), +/* 405 */ +/***/ (function(module) { + + +// `GetIteratorDirect(obj)` abstract operation +// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect +module.exports = function (obj) { + return { + iterator: obj, + next: obj.next, + done: false + }; +}; + + +/***/ }), +/* 406 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +var createSetLike = function (size) { + return { + size: size, + has: function () { + return false; + }, + keys: function () { + return { + next: function () { + return { done: true }; + } + }; + } + }; +}; + +module.exports = function (name) { + var Set = getBuiltIn('Set'); + try { + new Set()[name](createSetLike(0)); + try { + // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it + // https://github.com/tc39/proposal-set-methods/pull/88 + new Set()[name](createSetLike(-1)); + return false; + } catch (error2) { + return true; + } + } catch (error) { + return false; + } +}; + + +/***/ }), +/* 407 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var intersection = __webpack_require__(408); +var setMethodAcceptSetLike = __webpack_require__(406); + +var INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () { + // eslint-disable-next-line es/no-array-from, es/no-set -- testing + return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2'; +}); + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { + intersection: intersection +}); + + +/***/ }), +/* 408 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; +var has = SetHelpers.has; + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +module.exports = function intersection(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = new Set(); + + if (size(O) > otherRec.size) { + iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) add(result, e); + }); + } else { + iterateSet(O, function (e) { + if (otherRec.includes(e)) add(result, e); + }); + } + + return result; +}; + + +/***/ }), +/* 409 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isDisjointFrom = __webpack_require__(410); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isDisjointFrom` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, { + isDisjointFrom: isDisjointFrom +}); + + +/***/ }), +/* 410 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isDisjointFrom` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom +module.exports = function isDisjointFrom(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) <= otherRec.size) return iterateSet(O, function (e) { + if (otherRec.includes(e)) return false; + }, true) !== false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 411 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSubsetOf = __webpack_require__(412); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSubsetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, { + isSubsetOf: isSubsetOf +}); + + +/***/ }), +/* 412 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var size = __webpack_require__(403); +var iterate = __webpack_require__(401); +var getSetRecord = __webpack_require__(404); + +// `Set.prototype.isSubsetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf +module.exports = function isSubsetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) > otherRec.size) return false; + return iterate(O, function (e) { + if (!otherRec.includes(e)) return false; + }, true) !== false; +}; + + +/***/ }), +/* 413 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSupersetOf = __webpack_require__(414); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSupersetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, { + isSupersetOf: isSupersetOf +}); + + +/***/ }), +/* 414 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isSupersetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf +module.exports = function isSupersetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) < otherRec.size) return false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (!has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 415 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var symmetricDifference = __webpack_require__(416); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, { + symmetricDifference: symmetricDifference +}); + + +/***/ }), +/* 416 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +var add = SetHelpers.add; +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function symmetricDifference(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (e) { + if (has(O, e)) remove(result, e); + else add(result, e); + }); + return result; +}; + + +/***/ }), +/* 417 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var union = __webpack_require__(418); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, { + union: union +}); + + +/***/ }), +/* 418 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var add = (__webpack_require__(399).add); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +module.exports = function union(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 419 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var charAt = uncurryThis(''.charAt); + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-array-string-prototype-at -- safe + return '𠮷'.at(-2) !== '\uD842'; +}); + +// `String.prototype.at` method +// https://tc39.es/ecma262/#sec-string.prototype.at +$({ target: 'String', proto: true, forced: FORCED }, { + at: function at(index) { + var S = toString(requireObjectCoercible(this)); + var len = S.length; + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : charAt(S, k); + } +}); + + +/***/ }), +/* 420 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var codeAt = (__webpack_require__(421).codeAt); + +// `String.prototype.codePointAt` method +// https://tc39.es/ecma262/#sec-string.prototype.codepointat +$({ target: 'String', proto: true }, { + codePointAt: function codePointAt(pos) { + return codeAt(this, pos); + } +}); + + +/***/ }), +/* 421 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var stringSlice = uncurryThis(''.slice); + +var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +module.exports = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) +}; + + +/***/ }), +/* 422 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var slice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.endsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.endswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = that.length; + var end = endPosition === undefined ? len : min(toLength(endPosition), len); + var search = toString(searchString); + return slice(that, end - search.length, end) === search; + } +}); + + +/***/ }), +/* 423 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isRegExp = __webpack_require__(381); + +var $TypeError = TypeError; + +module.exports = function (it) { + if (isRegExp(it)) { + throw new $TypeError("The method doesn't accept regular expressions"); + } return it; +}; + + +/***/ }), +/* 424 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +module.exports = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; +}; + + +/***/ }), +/* 425 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toAbsoluteIndex = __webpack_require__(60); + +var $RangeError = RangeError; +var fromCharCode = String.fromCharCode; +// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing +var $fromCodePoint = String.fromCodePoint; +var join = uncurryThis([].join); + +// length should be 1, old FF problem +var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1; + +// `String.fromCodePoint` method +// https://tc39.es/ecma262/#sec-string.fromcodepoint +$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + fromCodePoint: function fromCodePoint(x) { + var elements = []; + var length = arguments.length; + var i = 0; + var code; + while (length > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point'); + elements[i] = code < 0x10000 + ? fromCharCode(code) + : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00); + } return join(elements, ''); + } +}); + + +/***/ }), +/* 426 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var correctIsRegExpLogic = __webpack_require__(424); + +var stringIndexOf = uncurryThis(''.indexOf); + +// `String.prototype.includes` method +// https://tc39.es/ecma262/#sec-string.prototype.includes +$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString(requireObjectCoercible(this)), + toString(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } +}); + + +/***/ }), +/* 427 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var charCodeAt = uncurryThis(''.charCodeAt); + +// `String.prototype.isWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true }, { + isWellFormed: function isWellFormed() { + var S = toString(requireObjectCoercible(this)); + var length = S.length; + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) continue; + // unpaired surrogate + if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false; + } return true; + } +}); + + +/***/ }), +/* 428 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); +var toString = __webpack_require__(68); +var InternalStateModule = __webpack_require__(51); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator(String, 'String', function (iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject(point, false); +}); + + +/***/ }), +/* 429 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var getMethod = __webpack_require__(29); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); + +// @@match logic +fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) { + return [ + // `String.prototype.match` method + // https://tc39.es/ecma262/#sec-string.prototype.match + function match(regexp) { + var O = requireObjectCoercible(this); + var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH); + return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O)); + }, + // `RegExp.prototype[@@match]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@match + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeMatch, rx, S); + + if (res.done) return res.value; + + if (!rx.global) return regExpExec(rx, S); + + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + var A = []; + var n = 0; + var result; + while ((result = regExpExec(rx, S)) !== null) { + var matchStr = toString(result[0]); + A[n] = matchStr; + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + n++; + } + return n === 0 ? null : A; + } + ]; +}); + + +/***/ }), +/* 430 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var regexpExec = __webpack_require__(389); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var createNonEnumerableProperty = __webpack_require__(43); + +var SPECIES = wellKnownSymbol('species'); +var RegExpPrototype = RegExp.prototype; + +module.exports = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol(KEY); + + var DELEGATES_TO_SYMBOL = !fails(function () { + // String methods call symbol-named RegExp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) !== 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var $exec = regexp.exec; + if ($exec === regexpExec || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) }; + } + return { done: true, value: call(nativeMethod, str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); +}; + + +/***/ }), +/* 431 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); + +// `AdvanceStringIndex` abstract operation +// https://tc39.es/ecma262/#sec-advancestringindex +module.exports = function (S, index, unicode) { + return index + (unicode ? charAt(S, index).length : 1); +}; + + +/***/ }), +/* 432 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var regexpExec = __webpack_require__(389); + +var $TypeError = TypeError; + +// `RegExpExec` abstract operation +// https://tc39.es/ecma262/#sec-regexpexec +module.exports = function (R, S) { + var exec = R.exec; + if (isCallable(exec)) { + var result = call(exec, R, S); + if (result !== null) anObject(result); + return result; + } + if (classof(R) === 'RegExp') return call(regexpExec, R, S); + throw new $TypeError('RegExp#exec called on incompatible receiver'); +}; + + +/***/ }), +/* 433 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-string-prototype-matchall -- safe */ +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(85); +var createIteratorConstructor = __webpack_require__(170); +var createIterResultObject = __webpack_require__(172); +var requireObjectCoercible = __webpack_require__(16); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var classof = __webpack_require__(15); +var isRegExp = __webpack_require__(381); +var getRegExpFlags = __webpack_require__(382); +var getMethod = __webpack_require__(29); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); +var InternalStateModule = __webpack_require__(51); +var IS_PURE = __webpack_require__(36); + +var MATCH_ALL = wellKnownSymbol('matchAll'); +var REGEXP_STRING = 'RegExp String'; +var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR); +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; +var stringIndexOf = uncurryThis(''.indexOf); +var nativeMatchAll = uncurryThis(''.matchAll); + +var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () { + nativeMatchAll('a', /./); +}); + +var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) { + setInternalState(this, { + type: REGEXP_STRING_ITERATOR, + regexp: regexp, + string: string, + global: $global, + unicode: fullUnicode, + done: false + }); +}, REGEXP_STRING, function next() { + var state = getInternalState(this); + if (state.done) return createIterResultObject(undefined, true); + var R = state.regexp; + var S = state.string; + var match = regExpExec(R, S); + if (match === null) { + state.done = true; + return createIterResultObject(undefined, true); + } + if (state.global) { + if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode); + return createIterResultObject(match, false); + } + state.done = true; + return createIterResultObject(match, false); +}); + +var $matchAll = function (string) { + var R = anObject(this); + var S = toString(string); + var C = speciesConstructor(R, RegExp); + var flags = toString(getRegExpFlags(R)); + var matcher, $global, fullUnicode; + matcher = new C(C === RegExp ? R.source : R, flags); + $global = !!~stringIndexOf(flags, 'g'); + fullUnicode = !!~stringIndexOf(flags, 'u'); + matcher.lastIndex = toLength(R.lastIndex); + return new $RegExpStringIterator(matcher, S, $global, fullUnicode); +}; + +// `String.prototype.matchAll` method +// https://tc39.es/ecma262/#sec-string.prototype.matchall +$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, { + matchAll: function matchAll(regexp) { + var O = requireObjectCoercible(this); + var flags, S, matcher, rx; + if (!isNullOrUndefined(regexp)) { + if (isRegExp(regexp)) { + flags = toString(requireObjectCoercible(getRegExpFlags(regexp))); + if (!~stringIndexOf(flags, 'g')) throw new $TypeError('`.matchAll` does not allow non-global regexes'); + } + if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + matcher = getMethod(regexp, MATCH_ALL); + if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll; + if (matcher) return call(matcher, regexp, O); + } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + S = toString(O); + rx = new RegExp(regexp, 'g'); + return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S); + } +}); + +IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll); + + +/***/ }), +/* 434 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padEnd = (__webpack_require__(240).end); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.padend +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padEnd: function padEnd(maxLength /* , fillString = ' ' */) { + return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 435 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/zloirock/core-js/issues/280 +var userAgent = __webpack_require__(28); + +module.exports = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent); + + +/***/ }), +/* 436 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padStart = (__webpack_require__(240).start); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padStart` method +// https://tc39.es/ecma262/#sec-string.prototype.padstart +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padStart: function padStart(maxLength /* , fillString = ' ' */) { + return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 437 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIndexedObject = __webpack_require__(12); +var toObject = __webpack_require__(39); +var toString = __webpack_require__(68); +var lengthOfArrayLike = __webpack_require__(63); + +var push = uncurryThis([].push); +var join = uncurryThis([].join); + +// `String.raw` method +// https://tc39.es/ecma262/#sec-string.raw +$({ target: 'String', stat: true }, { + raw: function raw(template) { + var rawTemplate = toIndexedObject(toObject(template).raw); + var literalSegments = lengthOfArrayLike(rawTemplate); + if (!literalSegments) return ''; + var argumentsLength = arguments.length; + var elements = []; + var i = 0; + while (true) { + push(elements, toString(rawTemplate[i++])); + if (i === literalSegments) return join(elements, ''); + if (i < argumentsLength) push(elements, toString(arguments[i])); + } + } +}); + + +/***/ }), +/* 438 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var repeat = __webpack_require__(241); + +// `String.prototype.repeat` method +// https://tc39.es/ecma262/#sec-string.prototype.repeat +$({ target: 'String', proto: true }, { + repeat: repeat +}); + + +/***/ }), +/* 439 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var advanceStringIndex = __webpack_require__(431); +var getMethod = __webpack_require__(29); +var getSubstitution = __webpack_require__(440); +var regExpExec = __webpack_require__(432); +var wellKnownSymbol = __webpack_require__(33); + +var REPLACE = wellKnownSymbol('replace'); +var max = Math.max; +var min = Math.min; +var concat = uncurryThis([].concat); +var push = uncurryThis([].push); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); + +var maybeToString = function (it) { + return it === undefined ? it : String(it); +}; + +// IE <= 11 replaces $0 with the whole match, as if it was $& +// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 +var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; +})(); + +// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string +var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + return false; +})(); + +var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$<a>') !== '7'; +}); + +// @@replace logic +fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + + return [ + // `String.prototype.replace` method + // https://tc39.es/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE); + return replacer + ? call(replacer, searchValue, O, replaceValue) + : call(nativeReplace, toString(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace + function (string, replaceValue) { + var rx = anObject(this); + var S = toString(string); + + if ( + typeof replaceValue == 'string' && + stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf(replaceValue, '$<') === -1 + ) { + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); + if (res.done) return res.value; + } + + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + + var global = rx.global; + var fullUnicode; + if (global) { + fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + + var results = []; + var result; + while (true) { + result = regExpExec(rx, S); + if (result === null) break; + + push(results, result); + if (!global) break; + + var matchStr = toString(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + + var matched = toString(result[0]); + var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); + var captures = []; + var replacement; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = concat([matched], captures, position, S); + if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); + replacement = toString(apply(replaceValue, undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + + return accumulatedResult + stringSlice(S, nextSourcePosition); + } + ]; +}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); + + +/***/ }), +/* 440 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var floor = Math.floor; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +// eslint-disable-next-line redos/no-vulnerable -- safe +var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; +var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + +// `GetSubstitution` abstract operation +// https://tc39.es/ecma262/#sec-getsubstitution +module.exports = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace(replacement, symbols, function (match, ch) { + var capture; + switch (charAt(ch, 0)) { + case '$': return '$'; + case '&': return matched; + case '`': return stringSlice(str, 0, position); + case "'": return stringSlice(str, tailPos); + case '<': + capture = namedCaptures[stringSlice(ch, 1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); +}; + + +/***/ }), +/* 441 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var getRegExpFlags = __webpack_require__(382); +var getSubstitution = __webpack_require__(440); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var REPLACE = wellKnownSymbol('replace'); +var $TypeError = TypeError; +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +var max = Math.max; + +// `String.prototype.replaceAll` method +// https://tc39.es/ecma262/#sec-string.prototype.replaceall +$({ target: 'String', proto: true }, { + replaceAll: function replaceAll(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement; + var position = 0; + var endOfLastMatch = 0; + var result = ''; + if (!isNullOrUndefined(searchValue)) { + IS_REG_EXP = isRegExp(searchValue); + if (IS_REG_EXP) { + flags = toString(requireObjectCoercible(getRegExpFlags(searchValue))); + if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes'); + } + replacer = getMethod(searchValue, REPLACE); + if (replacer) { + return call(replacer, searchValue, O, replaceValue); + } else if (IS_PURE && IS_REG_EXP) { + return replace(toString(O), searchValue, replaceValue); + } + } + string = toString(O); + searchString = toString(searchValue); + functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + searchLength = searchString.length; + advanceBy = max(1, searchLength); + position = indexOf(string, searchString); + while (position !== -1) { + replacement = functionalReplace + ? toString(replaceValue(searchString, position, string)) + : getSubstitution(searchString, string, position, [], undefined, replaceValue); + result += stringSlice(string, endOfLastMatch, position) + replacement; + endOfLastMatch = position + searchLength; + position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy); + } + if (endOfLastMatch < string.length) { + result += stringSlice(string, endOfLastMatch); + } + return result; + } +}); + + +/***/ }), +/* 442 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var sameValue = __webpack_require__(323); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); + +// @@search logic +fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH); + return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeSearch, rx, S); + + if (res.done) return res.value; + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; +}); + + +/***/ }), +/* 443 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); +var stickyHelpers = __webpack_require__(384); +var fails = __webpack_require__(7); + +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; +var MAX_UINT32 = 0xFFFFFFFF; +var min = Math.min; +var push = uncurryThis([].push); +var stringSlice = uncurryThis(''.slice); + +// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec +// Weex JS has frozen built-in prototypes, so use try / catch wrapper +var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { + // eslint-disable-next-line regexp/no-empty-group -- required for testing + var re = /(?:)/; + var originalExec = re.exec; + re.exec = function () { return originalExec.apply(this, arguments); }; + var result = 'ab'.split(re); + return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; +}); + +var BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' || + // eslint-disable-next-line regexp/no-empty-group -- required for testing + 'test'.split(/(?:)/, -1).length !== 4 || + 'ab'.split(/(?:ab)*/).length !== 2 || + '.'.split(/(.?)(.?)/).length !== 4 || + // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing + '.'.split(/()()/).length > 1 || + ''.split(/.?/).length; + +// @@split logic +fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) { + var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) { + return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit); + } : nativeSplit; + + return [ + // `String.prototype.split` method + // https://tc39.es/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = requireObjectCoercible(this); + var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT); + return splitter + ? call(splitter, separator, O, limit) + : call(internalSplit, toString(O), separator, limit); + }, + // `RegExp.prototype[@@split]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (string, limit) { + var rx = anObject(this); + var S = toString(string); + + if (!BUGGY) { + var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit); + if (res.done) return res.value; + } + + var C = speciesConstructor(rx, RegExp); + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + + (rx.multiline ? 'm' : '') + + (rx.unicode ? 'u' : '') + + (UNSUPPORTED_Y ? 'g' : 'y'); + // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + while (q < S.length) { + splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; + var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S); + var e; + if ( + z === null || + (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p + ) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + push(A, stringSlice(S, p, q)); + if (A.length === lim) return A; + for (var i = 1; i <= z.length - 1; i++) { + push(A, z[i]); + if (A.length === lim) return A; + } + q = p = e; + } + } + push(A, stringSlice(S, p)); + return A; + } + ]; +}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); + + +/***/ }), +/* 444 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var stringSlice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.startsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.startswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString(searchString); + return stringSlice(that, index, index + search.length) === search; + } +}); + + +/***/ }), +/* 445 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); + +var stringSlice = uncurryThis(''.slice); +var max = Math.max; +var min = Math.min; + +// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing +var FORCED = !''.substr || 'ab'.substr(-1) !== 'b'; + +// `String.prototype.substr` method +// https://tc39.es/ecma262/#sec-string.prototype.substr +$({ target: 'String', proto: true, forced: FORCED }, { + substr: function substr(start, length) { + var that = toString(requireObjectCoercible(this)); + var size = that.length; + var intStart = toIntegerOrInfinity(start); + var intLength, intEnd; + if (intStart === Infinity) intStart = 0; + if (intStart < 0) intStart = max(size + intStart, 0); + intLength = length === undefined ? size : toIntegerOrInfinity(length); + if (intLength <= 0 || intLength === Infinity) return ''; + intEnd = min(intStart + intLength, size); + return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd); + } +}); + + +/***/ }), +/* 446 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var $Array = Array; +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +// eslint-disable-next-line es/no-string-prototype-iswellformed-towellformed -- safe +var $toWellFormed = ''.toWellFormed; +var REPLACEMENT_CHARACTER = '\uFFFD'; + +// Safari bug +var TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () { + return call($toWellFormed, 1) !== '1'; +}); + +// `String.prototype.toWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, { + toWellFormed: function toWellFormed() { + var S = toString(requireObjectCoercible(this)); + if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S); + var length = S.length; + var result = $Array(length); + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i); + // unpaired surrogate + else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER; + // surrogate pair + else { + result[i] = charAt(S, i); + result[++i] = charAt(S, i); + } + } return join(result, ''); + } +}); + + +/***/ }), +/* 447 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $trim = (__webpack_require__(286).trim); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.trim` method +// https://tc39.es/ecma262/#sec-string.prototype.trim +$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } +}); + + +/***/ }), +/* 448 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var fails = __webpack_require__(7); +var whitespaces = __webpack_require__(287); + +var non = '\u200B\u0085\u180E'; + +// check that a method works with the correct list +// of whitespaces and has a correct name +module.exports = function (METHOD_NAME) { + return fails(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); +}; + + +/***/ }), +/* 449 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(450); +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, { + trimEnd: trimEnd +}); + + +/***/ }), +/* 450 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimRight` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, { + trimRight: trimEnd +}); + + +/***/ }), +/* 451 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimEnd = (__webpack_require__(286).end); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimEnd, trimRight }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// https://tc39.es/ecma262/#String.prototype.trimright +module.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() { + return $trimEnd(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimEnd; + + +/***/ }), +/* 452 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(453); +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimStart` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, { + trimStart: trimStart +}); + + +/***/ }), +/* 453 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimLeft` method +// https://tc39.es/ecma262/#sec-string.prototype.trimleft +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, { + trimLeft: trimStart +}); + + +/***/ }), +/* 454 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimStart = (__webpack_require__(286).start); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimStart, trimLeft }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// https://tc39.es/ecma262/#String.prototype.trimleft +module.exports = forcedStringTrimMethod('trimStart') ? function trimStart() { + return $trimStart(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimStart; + + +/***/ }), +/* 455 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.anchor` method +// https://tc39.es/ecma262/#sec-string.prototype.anchor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, { + anchor: function anchor(name) { + return createHTML(this, 'a', 'name', name); + } +}); + + +/***/ }), +/* 456 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var quot = /"/g; +var replace = uncurryThis(''.replace); + +// `CreateHTML` abstract operation +// https://tc39.es/ecma262/#sec-createhtml +module.exports = function (string, tag, attribute, value) { + var S = toString(requireObjectCoercible(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + replace(toString(value), quot, '"') + '"'; + return p1 + '>' + S + '</' + tag + '>'; +}; + + +/***/ }), +/* 457 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// check the existence of a method, lowercase +// of a tag and escaping quotes in arguments +module.exports = function (METHOD_NAME) { + return fails(function () { + var test = ''[METHOD_NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }); +}; + + +/***/ }), +/* 458 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.big` method +// https://tc39.es/ecma262/#sec-string.prototype.big +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, { + big: function big() { + return createHTML(this, 'big', '', ''); + } +}); + + +/***/ }), +/* 459 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.blink` method +// https://tc39.es/ecma262/#sec-string.prototype.blink +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, { + blink: function blink() { + return createHTML(this, 'blink', '', ''); + } +}); + + +/***/ }), +/* 460 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.bold` method +// https://tc39.es/ecma262/#sec-string.prototype.bold +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, { + bold: function bold() { + return createHTML(this, 'b', '', ''); + } +}); + + +/***/ }), +/* 461 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fixed` method +// https://tc39.es/ecma262/#sec-string.prototype.fixed +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, { + fixed: function fixed() { + return createHTML(this, 'tt', '', ''); + } +}); + + +/***/ }), +/* 462 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontcolor` method +// https://tc39.es/ecma262/#sec-string.prototype.fontcolor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, { + fontcolor: function fontcolor(color) { + return createHTML(this, 'font', 'color', color); + } +}); + + +/***/ }), +/* 463 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontsize` method +// https://tc39.es/ecma262/#sec-string.prototype.fontsize +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, { + fontsize: function fontsize(size) { + return createHTML(this, 'font', 'size', size); + } +}); + + +/***/ }), +/* 464 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.italics` method +// https://tc39.es/ecma262/#sec-string.prototype.italics +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, { + italics: function italics() { + return createHTML(this, 'i', '', ''); + } +}); + + +/***/ }), +/* 465 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.link` method +// https://tc39.es/ecma262/#sec-string.prototype.link +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, { + link: function link(url) { + return createHTML(this, 'a', 'href', url); + } +}); + + +/***/ }), +/* 466 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.small` method +// https://tc39.es/ecma262/#sec-string.prototype.small +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, { + small: function small() { + return createHTML(this, 'small', '', ''); + } +}); + + +/***/ }), +/* 467 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.strike` method +// https://tc39.es/ecma262/#sec-string.prototype.strike +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, { + strike: function strike() { + return createHTML(this, 'strike', '', ''); + } +}); + + +/***/ }), +/* 468 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sub` method +// https://tc39.es/ecma262/#sec-string.prototype.sub +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, { + sub: function sub() { + return createHTML(this, 'sub', '', ''); + } +}); + + +/***/ }), +/* 469 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sup` method +// https://tc39.es/ecma262/#sec-string.prototype.sup +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, { + sup: function sup() { + return createHTML(this, 'sup', '', ''); + } +}); + + +/***/ }), +/* 470 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float32', function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 471 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var DESCRIPTORS = __webpack_require__(6); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayBufferModule = __webpack_require__(207); +var anInstance = __webpack_require__(210); +var createPropertyDescriptor = __webpack_require__(11); +var createNonEnumerableProperty = __webpack_require__(43); +var isIntegralNumber = __webpack_require__(292); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var toOffset = __webpack_require__(473); +var toUint8Clamped = __webpack_require__(475); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var create = __webpack_require__(71); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var getOwnPropertyNames = (__webpack_require__(57).f); +var typedArrayFrom = __webpack_require__(476); +var forEach = (__webpack_require__(83).forEach); +var setSpecies = __webpack_require__(193); +var defineBuiltInAccessor = __webpack_require__(77); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var arrayFromConstructorAndList = __webpack_require__(198); +var InternalStateModule = __webpack_require__(51); +var inheritIfRequired = __webpack_require__(118); + +var getInternalState = InternalStateModule.get; +var setInternalState = InternalStateModule.set; +var enforceInternalState = InternalStateModule.enforce; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var RangeError = global.RangeError; +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataView = ArrayBufferModule.DataView; +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; +var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG; +var TypedArray = ArrayBufferViewCore.TypedArray; +var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype; +var isTypedArray = ArrayBufferViewCore.isTypedArray; +var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; +var WRONG_LENGTH = 'Wrong length'; + +var addGetter = function (it, key) { + defineBuiltInAccessor(it, key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var isArrayBuffer = function (it) { + var klass; + return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer'; +}; + +var isTypedArrayIndex = function (target, key) { + return isTypedArray(target) + && !isSymbol(key) + && key in target + && isIntegralNumber(+key) + && key >= 0; +}; + +var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { + key = toPropertyKey(key); + return isTypedArrayIndex(target, key) + ? createPropertyDescriptor(2, target[key]) + : nativeGetOwnPropertyDescriptor(target, key); +}; + +var wrappedDefineProperty = function defineProperty(target, key, descriptor) { + key = toPropertyKey(key); + if (isTypedArrayIndex(target, key) + && isObject(descriptor) + && hasOwn(descriptor, 'value') + && !hasOwn(descriptor, 'get') + && !hasOwn(descriptor, 'set') + // TODO: add validation descriptor w/o calling accessors + && !descriptor.configurable + && (!hasOwn(descriptor, 'writable') || descriptor.writable) + && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable) + ) { + target[key] = descriptor.value; + return target; + } return nativeDefineProperty(target, key, descriptor); +}; + +if (DESCRIPTORS) { + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor; + definePropertyModule.f = wrappedDefineProperty; + addGetter(TypedArrayPrototype, 'buffer'); + addGetter(TypedArrayPrototype, 'byteOffset'); + addGetter(TypedArrayPrototype, 'byteLength'); + addGetter(TypedArrayPrototype, 'length'); + } + + $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, + defineProperty: wrappedDefineProperty + }); + + module.exports = function (TYPE, wrapper, CLAMPED) { + var BYTES = TYPE.match(/\d+/)[0] / 8; + var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + TYPE; + var SETTER = 'set' + TYPE; + var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME]; + var TypedArrayConstructor = NativeTypedArrayConstructor; + var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; + var exported = {}; + + var getter = function (that, index) { + var data = getInternalState(that); + return data.view[GETTER](index * BYTES + data.byteOffset, true); + }; + + var setter = function (that, index, value) { + var data = getInternalState(that); + data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true); + }; + + var addElement = function (that, index) { + nativeDefineProperty(that, index, { + get: function () { + return getter(this, index); + }, + set: function (value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + TypedArrayConstructor = wrapper(function (that, data, offset, $length) { + anInstance(that, TypedArrayConstructorPrototype); + var index = 0; + var byteOffset = 0; + var buffer, byteLength, length; + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new ArrayBuffer(byteLength); + } else if (isArrayBuffer(data)) { + buffer = data; + byteOffset = toOffset(offset, BYTES); + var $len = data.byteLength; + if ($length === undefined) { + if ($len % BYTES) throw new RangeError(WRONG_LENGTH); + byteLength = $len - byteOffset; + if (byteLength < 0) throw new RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH); + } + length = byteLength / BYTES; + } else if (isTypedArray(data)) { + return arrayFromConstructorAndList(TypedArrayConstructor, data); + } else { + return call(typedArrayFrom, TypedArrayConstructor, data); + } + setInternalState(that, { + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength, + length: length, + view: new DataView(buffer) + }); + while (index < length) addElement(that, index++); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype); + } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) { + TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { + anInstance(dummy, TypedArrayConstructorPrototype); + return inheritIfRequired(function () { + if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); + if (isArrayBuffer(data)) return $length !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) + : typedArrayOffset !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) + : new NativeTypedArrayConstructor(data); + if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data); + return call(typedArrayFrom, TypedArrayConstructor, data); + }(), dummy, TypedArrayConstructor); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { + if (!(key in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); + } + }); + TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; + } + + if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); + } + + enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor; + + if (TYPED_ARRAY_TAG) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); + } + + var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor; + + exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; + + $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported); + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); + } + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); + } + + setSpecies(CONSTRUCTOR_NAME); + }; +} else module.exports = function () { /* empty */ }; + + +/***/ }), +/* 472 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-new -- required for testing */ +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var NATIVE_ARRAY_BUFFER_VIEWS = (__webpack_require__(217).NATIVE_ARRAY_BUFFER_VIEWS); + +var ArrayBuffer = global.ArrayBuffer; +var Int8Array = global.Int8Array; + +module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () { + Int8Array(1); +}) || !fails(function () { + new Int8Array(-1); +}) || !checkCorrectnessOfIteration(function (iterable) { + new Int8Array(); + new Int8Array(null); + new Int8Array(1.5); + new Int8Array(iterable); +}, true) || fails(function () { + // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill + return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1; +}); + + +/***/ }), +/* 473 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPositiveInteger = __webpack_require__(474); + +var $RangeError = RangeError; + +module.exports = function (it, BYTES) { + var offset = toPositiveInteger(it); + if (offset % BYTES) throw new $RangeError('Wrong offset'); + return offset; +}; + + +/***/ }), +/* 474 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +module.exports = function (it) { + var result = toIntegerOrInfinity(it); + if (result < 0) throw new $RangeError("The argument can't be less than 0"); + return result; +}; + + +/***/ }), +/* 475 */ +/***/ (function(module) { + + +var round = Math.round; + +module.exports = function (it) { + var value = round(it); + return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF; +}; + + +/***/ }), +/* 476 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var aConstructor = __webpack_require__(220); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var isArrayIteratorMethod = __webpack_require__(131); +var isBigIntArray = __webpack_require__(477); +var aTypedArrayConstructor = (__webpack_require__(217).aTypedArrayConstructor); +var toBigInt = __webpack_require__(478); + +module.exports = function from(source /* , mapfn, thisArg */) { + var C = aConstructor(this); + var O = toObject(source); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iteratorMethod = getIteratorMethod(O); + var i, length, result, thisIsBigIntArray, value, step, iterator, next; + if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + O = []; + while (!(step = call(next, iterator)).done) { + O.push(step.value); + } + } + if (mapping && argumentsLength > 2) { + mapfn = bind(mapfn, arguments[2]); + } + length = lengthOfArrayLike(O); + result = new (aTypedArrayConstructor(C))(length); + thisIsBigIntArray = isBigIntArray(result); + for (i = 0; length > i; i++) { + value = mapping ? mapfn(O[i], i) : O[i]; + // FF30- typed arrays doesn't properly convert objects to typed array values + result[i] = thisIsBigIntArray ? toBigInt(value) : +value; + } + return result; +}; + + +/***/ }), +/* 477 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +module.exports = function (it) { + var klass = classof(it); + return klass === 'BigInt64Array' || klass === 'BigUint64Array'; +}; + + +/***/ }), +/* 478 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); + +var $TypeError = TypeError; + +// `ToBigInt` abstract operation +// https://tc39.es/ecma262/#sec-tobigint +module.exports = function (argument) { + var prim = toPrimitive(argument, 'number'); + if (typeof prim == 'number') throw new $TypeError("Can't convert number to bigint"); + // eslint-disable-next-line es/no-bigint -- safe + return BigInt(prim); +}; + + +/***/ }), +/* 479 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float64Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float64', function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 480 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int8', function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 481 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int16', function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 482 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int32', function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 483 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 484 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8ClampedArray` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}, true); + + +/***/ }), +/* 485 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint16', function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 486 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint32', function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 487 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.at` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at +exportTypedArrayMethod('at', function at(index) { + var O = aTypedArray(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; +}); + + +/***/ }), +/* 488 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var $ArrayCopyWithin = __webpack_require__(144); + +var u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin +exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) { + return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined); +}); + + +/***/ }), +/* 489 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $every = (__webpack_require__(83).every); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.every` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every +exportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) { + return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 490 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $fill = __webpack_require__(149); +var toBigInt = __webpack_require__(478); +var classof = __webpack_require__(69); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var slice = uncurryThis(''.slice); + +// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18 +var CONVERSION_BUG = fails(function () { + var count = 0; + // eslint-disable-next-line es/no-typed-arrays -- safe + new Int8Array(2).fill({ valueOf: function () { return count++; } }); + return count !== 1; +}); + +// `%TypedArray%.prototype.fill` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill +exportTypedArrayMethod('fill', function fill(value /* , start, end */) { + var length = arguments.length; + aTypedArray(this); + var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value; + return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined); +}, CONVERSION_BUG); + + +/***/ }), +/* 491 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $filter = (__webpack_require__(83).filter); +var fromSpeciesAndList = __webpack_require__(492); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.filter` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter +exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) { + var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return fromSpeciesAndList(this, list); +}); + + +/***/ }), +/* 492 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arrayFromConstructorAndList = __webpack_require__(198); +var typedArraySpeciesConstructor = __webpack_require__(493); + +module.exports = function (instance, list) { + return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list); +}; + + +/***/ }), +/* 493 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var speciesConstructor = __webpack_require__(219); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// a part of `TypedArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#typedarray-species-create +module.exports = function (originalArray) { + return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray))); +}; + + +/***/ }), +/* 494 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $find = (__webpack_require__(83).find); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.find` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find +exportTypedArrayMethod('find', function find(predicate /* , thisArg */) { + return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 495 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findIndex = (__webpack_require__(83).findIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex +exportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) { + return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 496 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLast = (__webpack_require__(154).findLast); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLast` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast +exportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) { + return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 497 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLastIndex = (__webpack_require__(154).findLastIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex +exportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) { + return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 498 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $forEach = (__webpack_require__(83).forEach); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.forEach` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach +exportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) { + $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 499 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var exportTypedArrayStaticMethod = (__webpack_require__(217).exportTypedArrayStaticMethod); +var typedArrayFrom = __webpack_require__(476); + +// `%TypedArray%.from` method +// https://tc39.es/ecma262/#sec-%typedarray%.from +exportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 500 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $includes = (__webpack_require__(59).includes); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.includes` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes +exportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) { + return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 501 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $indexOf = (__webpack_require__(59).indexOf); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof +exportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) { + return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 502 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayIterators = __webpack_require__(168); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var Uint8Array = global.Uint8Array; +var arrayValues = uncurryThis(ArrayIterators.values); +var arrayKeys = uncurryThis(ArrayIterators.keys); +var arrayEntries = uncurryThis(ArrayIterators.entries); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var TypedArrayPrototype = Uint8Array && Uint8Array.prototype; + +var GENERIC = !fails(function () { + TypedArrayPrototype[ITERATOR].call([1]); +}); + +var ITERATOR_IS_VALUES = !!TypedArrayPrototype + && TypedArrayPrototype.values + && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values + && TypedArrayPrototype.values.name === 'values'; + +var typedArrayValues = function values() { + return arrayValues(aTypedArray(this)); +}; + +// `%TypedArray%.prototype.entries` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries +exportTypedArrayMethod('entries', function entries() { + return arrayEntries(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.keys` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys +exportTypedArrayMethod('keys', function keys() { + return arrayKeys(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.values` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values +exportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); +// `%TypedArray%.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator +exportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); + + +/***/ }), +/* 503 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $join = uncurryThis([].join); + +// `%TypedArray%.prototype.join` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join +exportTypedArrayMethod('join', function join(separator) { + return $join(aTypedArray(this), separator); +}); + + +/***/ }), +/* 504 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var apply = __webpack_require__(94); +var $lastIndexOf = __webpack_require__(175); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof +exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { + var length = arguments.length; + return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]); +}); + + +/***/ }), +/* 505 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $map = (__webpack_require__(83).map); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.map` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map +exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) { + return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { + return new (typedArraySpeciesConstructor(O))(length); + }); +}); + + +/***/ }), +/* 506 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod; + +// `%TypedArray%.of` method +// https://tc39.es/ecma262/#sec-%typedarray%.of +exportTypedArrayStaticMethod('of', function of(/* ...items */) { + var index = 0; + var length = arguments.length; + var result = new (aTypedArrayConstructor(this))(length); + while (length > index) result[index] = arguments[index++]; + return result; +}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 507 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduce = (__webpack_require__(181).left); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduce` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce +exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 508 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduceRight = (__webpack_require__(181).right); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright +exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 509 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var floor = Math.floor; + +// `%TypedArray%.prototype.reverse` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse +exportTypedArrayMethod('reverse', function reverse() { + var that = this; + var length = aTypedArray(that).length; + var middle = floor(length / 2); + var index = 0; + var value; + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } return that; +}); + + +/***/ }), +/* 510 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toOffset = __webpack_require__(473); +var toIndexedObject = __webpack_require__(39); +var fails = __webpack_require__(7); + +var RangeError = global.RangeError; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var $set = Int8ArrayPrototype && Int8ArrayPrototype.set; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + var array = new Uint8ClampedArray(2); + call($set, array, { length: 1, 0: 3 }, 1); + return array[1] !== 3; +}); + +// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other +var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () { + var array = new Int8Array(2); + array.set(1); + array.set('2', 1); + return array[0] !== 0 || array[1] !== 2; +}); + +// `%TypedArray%.prototype.set` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set +exportTypedArrayMethod('set', function set(arrayLike /* , offset */) { + aTypedArray(this); + var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); + var src = toIndexedObject(arrayLike); + if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset); + var length = this.length; + var len = lengthOfArrayLike(src); + var index = 0; + if (len + offset > length) throw new RangeError('Wrong length'); + while (index < len) this[offset + index] = src[index++]; +}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG); + + +/***/ }), +/* 511 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var typedArraySpeciesConstructor = __webpack_require__(493); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + new Int8Array(1).slice(); +}); + +// `%TypedArray%.prototype.slice` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice +exportTypedArrayMethod('slice', function slice(start, end) { + var list = arraySlice(aTypedArray(this), start, end); + var C = typedArraySpeciesConstructor(this); + var index = 0; + var length = list.length; + var result = new C(length); + while (length > index) result[index] = list[index++]; + return result; +}, FORCED); + + +/***/ }), +/* 512 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $some = (__webpack_require__(83).some); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.some` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some +exportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) { + return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 513 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var aCallable = __webpack_require__(30); +var internalSort = __webpack_require__(188); +var ArrayBufferViewCore = __webpack_require__(217); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var Uint16Array = global.Uint16Array; +var nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort); + +// WebKit +var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () { + nativeSort(new Uint16Array(2), null); +}) && fails(function () { + nativeSort(new Uint16Array(2), {}); +})); + +var STABLE_SORT = !!nativeSort && !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 74; + if (FF) return FF < 67; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 602; + + var array = new Uint16Array(516); + var expected = Array(516); + var index, mod; + + for (index = 0; index < 516; index++) { + mod = index % 4; + array[index] = 515 - index; + expected[index] = index - 2 * mod + 3; + } + + nativeSort(array, function (a, b) { + return (a / 4 | 0) - (b / 4 | 0); + }); + + for (index = 0; index < 516; index++) { + if (array[index] !== expected[index]) return true; + } +}); + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (comparefn !== undefined) return +comparefn(x, y) || 0; + // eslint-disable-next-line no-self-compare -- NaN check + if (y !== y) return -1; + // eslint-disable-next-line no-self-compare -- NaN check + if (x !== x) return 1; + if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1; + return x > y; + }; +}; + +// `%TypedArray%.prototype.sort` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort +exportTypedArrayMethod('sort', function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + if (STABLE_SORT) return nativeSort(this, comparefn); + + return internalSort(aTypedArray(this), getSortCompare(comparefn)); +}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS); + + +/***/ }), +/* 514 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var toLength = __webpack_require__(64); +var toAbsoluteIndex = __webpack_require__(60); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.subarray` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray +exportTypedArrayMethod('subarray', function subarray(begin, end) { + var O = aTypedArray(this); + var length = O.length; + var beginIndex = toAbsoluteIndex(begin, length); + var C = typedArraySpeciesConstructor(O); + return new C( + O.buffer, + O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, + toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex) + ); +}); + + +/***/ }), +/* 515 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var ArrayBufferViewCore = __webpack_require__(217); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var Int8Array = global.Int8Array; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $toLocaleString = [].toLocaleString; + +// iOS Safari 6.x fails here +var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () { + $toLocaleString.call(new Int8Array(1)); +}); + +var FORCED = fails(function () { + return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString(); +}) || !fails(function () { + Int8Array.prototype.toLocaleString.call([1, 2]); +}); + +// `%TypedArray%.prototype.toLocaleString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring +exportTypedArrayMethod('toLocaleString', function toLocaleString() { + return apply( + $toLocaleString, + TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this), + arraySlice(arguments) + ); +}, FORCED); + + +/***/ }), +/* 516 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayToReversed = __webpack_require__(196); +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// `%TypedArray%.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed +exportTypedArrayMethod('toReversed', function toReversed() { + return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this)); +}); + + +/***/ }), +/* 517 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var arrayFromConstructorAndList = __webpack_require__(198); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort); + +// `%TypedArray%.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted +exportTypedArrayMethod('toSorted', function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = aTypedArray(this); + var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O); + return sort(A, compareFn); +}); + + +/***/ }), +/* 518 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var exportTypedArrayMethod = (__webpack_require__(217).exportTypedArrayMethod); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); + +var Uint8Array = global.Uint8Array; +var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {}; +var arrayToString = [].toString; +var join = uncurryThis([].join); + +if (fails(function () { arrayToString.call({}); })) { + arrayToString = function toString() { + return join(this); + }; +} + +var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString; + +// `%TypedArray%.prototype.toString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring +exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD); + + +/***/ }), +/* 519 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayWith = __webpack_require__(205); +var ArrayBufferViewCore = __webpack_require__(217); +var isBigIntArray = __webpack_require__(477); +var toIntegerOrInfinity = __webpack_require__(61); +var toBigInt = __webpack_require__(478); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var PROPER_ORDER = !!function () { + try { + // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing + new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } }); + } catch (error) { + // some early implementations, like WebKit, does not follow the final semantic + // https://github.com/tc39/proposal-change-array-by-copy/pull/86 + return error === 8; + } +}(); + +// `%TypedArray%.prototype.with` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with +exportTypedArrayMethod('with', { 'with': function (index, value) { + var O = aTypedArray(this); + var relativeIndex = toIntegerOrInfinity(index); + var actualValue = isBigIntArray(O) ? toBigInt(value) : +value; + return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue); +} }['with'], !PROPER_ORDER); + + +/***/ }), +/* 520 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var stringSlice = uncurryThis(''.slice); + +var hex2 = /^[\da-f]{2}$/i; +var hex4 = /^[\da-f]{4}$/i; + +// `unescape` method +// https://tc39.es/ecma262/#sec-unescape-string +$({ global: true }, { + unescape: function unescape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, part; + while (index < length) { + chr = charAt(str, index++); + if (chr === '%') { + if (charAt(str, index) === 'u') { + part = stringSlice(str, index + 1, index + 5); + if (exec(hex4, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 5; + continue; + } + } else { + part = stringSlice(str, index, index + 2); + if (exec(hex2, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 2; + continue; + } + } + } + result += chr; + } return result; + } +}); + + +/***/ }), +/* 521 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(522); + + +/***/ }), +/* 522 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var FREEZING = __webpack_require__(259); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var InternalMetadataModule = __webpack_require__(256); +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); +var isObject = __webpack_require__(20); +var enforceInternalState = (__webpack_require__(51).enforce); +var fails = __webpack_require__(7); +var NATIVE_WEAK_MAP = __webpack_require__(52); + +var $Object = Object; +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray = Array.isArray; +// eslint-disable-next-line es/no-object-isextensible -- safe +var isExtensible = $Object.isExtensible; +// eslint-disable-next-line es/no-object-isfrozen -- safe +var isFrozen = $Object.isFrozen; +// eslint-disable-next-line es/no-object-issealed -- safe +var isSealed = $Object.isSealed; +// eslint-disable-next-line es/no-object-freeze -- safe +var freeze = $Object.freeze; +// eslint-disable-next-line es/no-object-seal -- safe +var seal = $Object.seal; + +var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; +var InternalWeakMap; + +var wrapper = function (init) { + return function WeakMap() { + return init(this, arguments.length ? arguments[0] : undefined); + }; +}; + +// `WeakMap` constructor +// https://tc39.es/ecma262/#sec-weakmap-constructor +var $WeakMap = collection('WeakMap', wrapper, collectionWeak); +var WeakMapPrototype = $WeakMap.prototype; +var nativeSet = uncurryThis(WeakMapPrototype.set); + +// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them +var hasMSEdgeFreezingBug = function () { + return FREEZING && fails(function () { + var frozenArray = freeze([]); + nativeSet(new $WeakMap(), frozenArray, 1); + return !isFrozen(frozenArray); + }); +}; + +// IE11 WeakMap frozen keys fix +// We can't use feature detection because it crash some old IE builds +// https://github.com/zloirock/core-js/issues/485 +if (NATIVE_WEAK_MAP) if (IS_IE11) { + InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); + InternalMetadataModule.enable(); + var nativeDelete = uncurryThis(WeakMapPrototype['delete']); + var nativeHas = uncurryThis(WeakMapPrototype.has); + var nativeGet = uncurryThis(WeakMapPrototype.get); + defineBuiltIns(WeakMapPrototype, { + 'delete': function (key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeDelete(this, key) || state.frozen['delete'](key); + } return nativeDelete(this, key); + }, + has: function has(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) || state.frozen.has(key); + } return nativeHas(this, key); + }, + get: function get(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key); + } return nativeGet(this, key); + }, + set: function set(key, value) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value); + } else nativeSet(this, key, value); + return this; + } + }); +// Chakra Edge frozen keys fix +} else if (hasMSEdgeFreezingBug()) { + defineBuiltIns(WeakMapPrototype, { + set: function set(key, value) { + var arrayIntegrityLevel; + if (isArray(key)) { + if (isFrozen(key)) arrayIntegrityLevel = freeze; + else if (isSealed(key)) arrayIntegrityLevel = seal; + } + nativeSet(this, key, value); + if (arrayIntegrityLevel) arrayIntegrityLevel(key); + return this; + } + }); +} + + +/***/ }), +/* 523 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var getWeakData = (__webpack_require__(256).getWeakData); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var iterate = __webpack_require__(130); +var ArrayIterationModule = __webpack_require__(83); +var hasOwn = __webpack_require__(38); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var splice = uncurryThis([].splice); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } +}; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } +}; + + +/***/ }), +/* 524 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(525); + + +/***/ }), +/* 525 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); + +// `WeakSet` constructor +// https://tc39.es/ecma262/#sec-weakset-constructor +collection('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionWeak); + + +/***/ }), +/* 526 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var c2i = (__webpack_require__(527).c2i); + +var disallowed = /[^\d+/a-z]/i; +var whitespaces = /[\t\n\f\r ]+/g; +var finalEq = /[=]{1,2}$/; + +var $atob = getBuiltIn('atob'); +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var exec = uncurryThis(disallowed.exec); + +var BASIC = !!$atob && !fails(function () { + return $atob('aGk=') !== 'hi'; +}); + +var NO_SPACES_IGNORE = BASIC && fails(function () { + return $atob(' ') !== ''; +}); + +var NO_ENCODING_CHECK = BASIC && !fails(function () { + $atob('a'); +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $atob(); +}); + +var WRONG_ARITY = BASIC && $atob.length !== 1; + +var FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY; + +// `atob` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob +$({ global: true, bind: true, enumerable: true, forced: FORCED }, { + atob: function atob(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, global, data); + var string = replace(toString(data), whitespaces, ''); + var output = ''; + var position = 0; + var bc = 0; + var length, chr, bs; + if (string.length % 4 === 0) { + string = replace(string, finalEq, ''); + } + length = string.length; + if (length % 4 === 1 || exec(disallowed, string)) { + throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError'); + } + while (position < length) { + chr = charAt(string, position++); + bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr]; + if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6)); + } return output; + } +}); + + +/***/ }), +/* 527 */ +/***/ (function(module) { + + +var commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; +var base64Alphabet = commonAlphabet + '+/'; +var base64UrlAlphabet = commonAlphabet + '-_'; + +var inverse = function (characters) { + // TODO: use `Object.create(null)` in `core-js@4` + var result = {}; + var index = 0; + for (; index < 64; index++) result[characters.charAt(index)] = index; + return result; +}; + +module.exports = { + i2c: base64Alphabet, + c2i: inverse(base64Alphabet), + i2cUrl: base64UrlAlphabet, + c2iUrl: inverse(base64UrlAlphabet) +}; + + +/***/ }), +/* 528 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var i2c = (__webpack_require__(527).i2c); + +var $btoa = getBuiltIn('btoa'); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); + +var BASIC = !!$btoa && !fails(function () { + return $btoa('hi') !== 'aGk='; +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $btoa(); +}); + +var WRONG_ARG_CONVERSION = BASIC && fails(function () { + return $btoa(null) !== 'bnVsbA=='; +}); + +var WRONG_ARITY = BASIC && $btoa.length !== 1; + +// `btoa` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa +$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, { + btoa: function btoa(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC) return call($btoa, global, toString(data)); + var string = toString(data); + var output = ''; + var position = 0; + var map = i2c; + var block, charCode; + while (charAt(string, position) || (map = '=', position % 1)) { + charCode = charCodeAt(string, position += 3 / 4); + if (charCode > 0xFF) { + throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError'); + } + block = block << 8 | charCode; + output += charAt(map, 63 & block >> 8 - position % 1 * 8); + } return output; + } +}); + + +/***/ }), +/* 529 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var forEach = __webpack_require__(160); +var createNonEnumerableProperty = __webpack_require__(43); + +var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype); + } +} + +handlePrototype(DOMTokenListPrototype); + + +/***/ }), +/* 530 */ +/***/ (function(module) { + + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +module.exports = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + + +/***/ }), +/* 531 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` +var documentCreateElement = __webpack_require__(42); + +var classList = documentCreateElement('span').classList; +var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype; + +module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype; + + +/***/ }), +/* 532 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var ArrayIteratorMethods = __webpack_require__(168); +var createNonEnumerableProperty = __webpack_require__(43); +var setToStringTag = __webpack_require__(82); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayValues = ArrayIteratorMethods.values; + +var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + setToStringTag(CollectionPrototype, COLLECTION_NAME, true); + if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME); +} + +handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); + + +/***/ }), +/* 533 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var tryNodeRequire = __webpack_require__(229); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var errorToString = __webpack_require__(125); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var InternalStateModule = __webpack_require__(51); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var DATA_CLONE_ERR = 'DATA_CLONE_ERR'; +var Error = getBuiltIn('Error'); +// NodeJS < 17.0 does not expose `DOMException` to global +var NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () { + try { + // NodeJS < 15.0 does not expose `MessageChannel` to global + var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel; + // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe + new MessageChannel().port1.postMessage(new WeakMap()); + } catch (error) { + if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor; + } +})(); +var NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype; +var ErrorPrototype = Error.prototype; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION); +var HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); + +var codeFor = function (name) { + return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0; +}; + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var code = codeFor(name); + setInternalState(this, { + type: DOM_EXCEPTION, + name: name, + message: message, + code: code + }); + if (!DESCRIPTORS) { + this.name = name; + this.message = message; + this.code = code; + } + if (HAS_STACK) { + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + } +}; + +var DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype); + +var createGetterDescriptor = function (get) { + return { enumerable: true, configurable: true, get: get }; +}; + +var getterFor = function (key) { + return createGetterDescriptor(function () { + return getInternalState(this)[key]; + }); +}; + +if (DESCRIPTORS) { + // `DOMException.prototype.code` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code')); + // `DOMException.prototype.message` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message')); + // `DOMException.prototype.name` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name')); +} + +defineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException)); + +// FF36- DOMException is a function, but can't be constructed +var INCORRECT_CONSTRUCTOR = fails(function () { + return !(new NativeDOMException() instanceof Error); +}); + +// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs +var INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () { + return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1'; +}); + +// Deno 1.6.3- DOMException.prototype.code just missed +var INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () { + return new NativeDOMException(1, 'DataCloneError').code !== 25; +}); + +// Deno 1.6.3- DOMException constants just missed +var MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR + || NativeDOMException[DATA_CLONE_ERR] !== 25 + || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25; + +var FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR; + +// `DOMException` constructor +// https://webidl.spec.whatwg.org/#idl-DOMException +$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, { + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) { + defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString); +} + +if (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) { + defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () { + return codeFor(anObject(this).name); + })); +} + +// `DOMException` constants +for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + var descriptor = createPropertyDescriptor(6, constant.c); + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, descriptor); + } + if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) { + defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor); + } +} + + +/***/ }), +/* 534 */ +/***/ (function(module) { + + +module.exports = { + IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 }, + DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 }, + HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 }, + WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 }, + InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 }, + NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 }, + NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 }, + NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 }, + NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 }, + InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 }, + InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 }, + SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 }, + InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 }, + NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 }, + InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 }, + ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 }, + TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 }, + SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 }, + NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 }, + AbortError: { s: 'ABORT_ERR', c: 20, m: 1 }, + URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 }, + QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 }, + TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 }, + InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 }, + DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 } +}; + + +/***/ }), +/* 535 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var Error = getBuiltIn('Error'); +var NativeDOMException = getBuiltIn(DOM_EXCEPTION); + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var that = new NativeDOMException(message, name); + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + inheritIfRequired(that, this, $DOMException); + return that; +}; + +var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype; + +var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); +var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION); + +// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it +// https://github.com/Jarred-Sumner/bun/issues/399 +var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable); + +var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK; + +// `DOMException` constructor patch for `.stack` where it's required +// https://webidl.spec.whatwg.org/#es-DOMException-specialness +$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) { + if (!IS_PURE) { + defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException)); + } + + for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c)); + } + } +} + + +/***/ }), +/* 536 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var setToStringTag = __webpack_require__(82); + +var DOM_EXCEPTION = 'DOMException'; + +// `DOMException.prototype[@@toStringTag]` property +setToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION); + + +/***/ }), +/* 537 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(538); +__webpack_require__(539); + + +/***/ }), +/* 538 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var clearImmediate = (__webpack_require__(341).clear); + +// `clearImmediate` method +// http://w3c.github.io/setImmediate/#si-clearImmediate +$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, { + clearImmediate: clearImmediate +}); + + +/***/ }), +/* 539 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setTask = (__webpack_require__(341).set); +var schedulersFix = __webpack_require__(540); + +// https://github.com/oven-sh/bun/issues/1633 +var setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask; + +// `setImmediate` method +// http://w3c.github.io/setImmediate/#si-setImmediate +$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, { + setImmediate: setImmediate +}); + + +/***/ }), +/* 540 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var isCallable = __webpack_require__(21); +var ENGINE_IS_BUN = __webpack_require__(541); +var USER_AGENT = __webpack_require__(28); +var arraySlice = __webpack_require__(76); +var validateArgumentsLength = __webpack_require__(342); + +var Function = global.Function; +// dirty IE9- and Bun 0.3.0- checks +var WRAP = /MSIE .\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () { + var version = global.Bun.version.split('.'); + return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0'); +})(); + +// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers +// https://github.com/oven-sh/bun/issues/1633 +module.exports = function (scheduler, hasTimeArg) { + var firstParamIndex = hasTimeArg ? 2 : 1; + return WRAP ? function (handler, timeout /* , ...arguments */) { + var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex; + var fn = isCallable(handler) ? handler : Function(handler); + var params = boundArgs ? arraySlice(arguments, firstParamIndex) : []; + var callback = boundArgs ? function () { + apply(fn, this, params); + } : fn; + return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback); + } : scheduler; +}; + + +/***/ }), +/* 541 */ +/***/ (function(module) { + + +/* global Bun -- Bun case */ +module.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string'; + + +/***/ }), +/* 542 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var globalThis = __webpack_require__(4); +var microtask = __webpack_require__(344); +var aCallable = __webpack_require__(30); +var validateArgumentsLength = __webpack_require__(342); +var fails = __webpack_require__(7); +var DESCRIPTORS = __webpack_require__(6); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9249 +var WRONG_ARITY = fails(function () { + // getOwnPropertyDescriptor for prevent experimental warning in Node 11 + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1; +}); + +// `queueMicrotask` method +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask +$({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, { + queueMicrotask: function queueMicrotask(fn) { + validateArgumentsLength(arguments.length, 1); + microtask(aCallable(fn)); + } +}); + + +/***/ }), +/* 543 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var defineBuiltInAccessor = __webpack_require__(77); +var DESCRIPTORS = __webpack_require__(6); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var INCORRECT_VALUE = global.self !== global; + +// `self` getter +// https://html.spec.whatwg.org/multipage/window-object.html#dom-self +try { + if (DESCRIPTORS) { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var descriptor = Object.getOwnPropertyDescriptor(global, 'self'); + // some engines have `self`, but with incorrect descriptor + // https://github.com/denoland/deno/issues/15765 + if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) { + defineBuiltInAccessor(global, 'self', { + get: function self() { + return global; + }, + set: function self(value) { + if (this !== global) throw new $TypeError('Illegal invocation'); + defineProperty(global, 'self', { + value: value, + writable: true, + configurable: true, + enumerable: true + }); + }, + configurable: true, + enumerable: true + }); + } + } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, { + self: global + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 544 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var uid = __webpack_require__(40); +var isCallable = __webpack_require__(21); +var isConstructor = __webpack_require__(89); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var iterate = __webpack_require__(130); +var anObject = __webpack_require__(46); +var classof = __webpack_require__(69); +var hasOwn = __webpack_require__(38); +var createProperty = __webpack_require__(141); +var createNonEnumerableProperty = __webpack_require__(43); +var lengthOfArrayLike = __webpack_require__(63); +var validateArgumentsLength = __webpack_require__(342); +var getRegExpFlags = __webpack_require__(382); +var MapHelpers = __webpack_require__(262); +var SetHelpers = __webpack_require__(399); +var setIterate = __webpack_require__(401); +var detachTransferable = __webpack_require__(228); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var Object = global.Object; +var Array = global.Array; +var Date = global.Date; +var Error = global.Error; +var TypeError = global.TypeError; +var PerformanceMark = global.PerformanceMark; +var DOMException = getBuiltIn('DOMException'); +var Map = MapHelpers.Map; +var mapHas = MapHelpers.has; +var mapGet = MapHelpers.get; +var mapSet = MapHelpers.set; +var Set = SetHelpers.Set; +var setAdd = SetHelpers.add; +var setHas = SetHelpers.has; +var objectKeys = getBuiltIn('Object', 'keys'); +var push = uncurryThis([].push); +var thisBooleanValue = uncurryThis(true.valueOf); +var thisNumberValue = uncurryThis(1.0.valueOf); +var thisStringValue = uncurryThis(''.valueOf); +var thisTimeValue = uncurryThis(Date.prototype.getTime); +var PERFORMANCE_MARK = uid('structuredClone'); +var DATA_CLONE_ERROR = 'DataCloneError'; +var TRANSFERRING = 'Transferring'; + +var checkBasicSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var set1 = new global.Set([7]); + var set2 = structuredCloneImplementation(set1); + var number = structuredCloneImplementation(Object(7)); + return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7; + }) && structuredCloneImplementation; +}; + +var checkErrorsCloning = function (structuredCloneImplementation, $Error) { + return !fails(function () { + var error = new $Error(); + var test = structuredCloneImplementation({ a: error, b: error }); + return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack); + }); +}; + +// https://github.com/whatwg/html/pull/5749 +var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 })); + return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3; + }); +}; + +// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+ +// FF<103 and Safari implementations can't clone errors +// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604 +// FF103 can clone errors, but `.stack` of clone is an empty string +// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762 +// FF104+ fixed it on usual errors, but not on DOMExceptions +// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321 +// Chrome <102 returns `null` if cloned object contains multiple references to one error +// https://bugs.chromium.org/p/v8/issues/detail?id=12542 +// NodeJS implementation can't clone DOMExceptions +// https://github.com/nodejs/node/issues/41038 +// only FF103+ supports new (html/5749) error cloning semantic +var nativeStructuredClone = global.structuredClone; + +var FORCED_REPLACEMENT = IS_PURE + || !checkErrorsCloning(nativeStructuredClone, Error) + || !checkErrorsCloning(nativeStructuredClone, DOMException) + || !checkNewErrorsCloningSemantic(nativeStructuredClone); + +// Chrome 82+, Safari 14.1+, Deno 1.11+ +// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException` +// Chrome returns `null` if cloned object contains multiple references to one error +// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround +// Safari implementation can't clone errors +// Deno 1.2-1.10 implementations too naive +// NodeJS 16.0+ does not have `PerformanceMark` constructor +// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive +// and can't clone, for example, `RegExp` or some boxed primitives +// https://github.com/nodejs/node/issues/40840 +// no one of those implementations supports new (html/5749) error cloning semantic +var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) { + return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail; +}); + +var nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark; + +var throwUncloneable = function (type) { + throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR); +}; + +var throwUnpolyfillable = function (type, action) { + throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR); +}; + +var tryNativeRestrictedStructuredClone = function (value, type) { + if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type); + return nativeRestrictedStructuredClone(value); +}; + +var createDataTransfer = function () { + var dataTransfer; + try { + dataTransfer = new global.DataTransfer(); + } catch (error) { + try { + dataTransfer = new global.ClipboardEvent('').clipboardData; + } catch (error2) { /* empty */ } + } + return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null; +}; + +var cloneBuffer = function (value, map, $type) { + if (mapHas(map, value)) return mapGet(map, value); + + var type = $type || classof(value); + var clone, length, options, source, target, i; + + if (type === 'SharedArrayBuffer') { + if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value); + // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original + else clone = value; + } else { + var DataView = global.DataView; + + // `ArrayBuffer#slice` is not available in IE10 + // `ArrayBuffer#slice` and `DataView` are not available in old FF + if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer'); + // detached buffers throws in `DataView` and `.slice` + try { + if (isCallable(value.slice) && !value.resizable) { + clone = value.slice(0); + } else { + length = value.byteLength; + options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined; + // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe + clone = new ArrayBuffer(length, options); + source = new DataView(value); + target = new DataView(clone); + for (i = 0; i < length; i++) { + target.setUint8(i, source.getUint8(i)); + } + } + } catch (error) { + throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR); + } + } + + mapSet(map, value, clone); + + return clone; +}; + +var cloneView = function (value, type, offset, length, map) { + var C = global[type]; + // in some old engines like Safari 9, typeof C is 'object' + // on Uint8ClampedArray or some other constructors + if (!isObject(C)) throwUnpolyfillable(type); + return new C(cloneBuffer(value.buffer, map), offset, length); +}; + +var structuredCloneInternal = function (value, map) { + if (isSymbol(value)) throwUncloneable('Symbol'); + if (!isObject(value)) return value; + // effectively preserves circular references + if (map) { + if (mapHas(map, value)) return mapGet(map, value); + } else map = new Map(); + + var type = classof(value); + var C, name, cloned, dataTransfer, i, length, keys, key; + + switch (type) { + case 'Array': + cloned = Array(lengthOfArrayLike(value)); + break; + case 'Object': + cloned = {}; + break; + case 'Map': + cloned = new Map(); + break; + case 'Set': + cloned = new Set(); + break; + case 'RegExp': + // in this block because of a Safari 14.1 bug + // old FF does not clone regexes passed to the constructor, so get the source and flags directly + cloned = new RegExp(value.source, getRegExpFlags(value)); + break; + case 'Error': + name = value.name; + switch (name) { + case 'AggregateError': + cloned = new (getBuiltIn(name))([]); + break; + case 'EvalError': + case 'RangeError': + case 'ReferenceError': + case 'SuppressedError': + case 'SyntaxError': + case 'TypeError': + case 'URIError': + cloned = new (getBuiltIn(name))(); + break; + case 'CompileError': + case 'LinkError': + case 'RuntimeError': + cloned = new (getBuiltIn('WebAssembly', name))(); + break; + default: + cloned = new Error(); + } + break; + case 'DOMException': + cloned = new DOMException(value.message, value.name); + break; + case 'ArrayBuffer': + case 'SharedArrayBuffer': + cloned = cloneBuffer(value, map, type); + break; + case 'DataView': + case 'Int8Array': + case 'Uint8Array': + case 'Uint8ClampedArray': + case 'Int16Array': + case 'Uint16Array': + case 'Int32Array': + case 'Uint32Array': + case 'Float16Array': + case 'Float32Array': + case 'Float64Array': + case 'BigInt64Array': + case 'BigUint64Array': + length = type === 'DataView' ? value.byteLength : value.length; + cloned = cloneView(value, type, value.byteOffset, length, map); + break; + case 'DOMQuad': + try { + cloned = new DOMQuad( + structuredCloneInternal(value.p1, map), + structuredCloneInternal(value.p2, map), + structuredCloneInternal(value.p3, map), + structuredCloneInternal(value.p4, map) + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } + break; + case 'File': + if (nativeRestrictedStructuredClone) try { + cloned = nativeRestrictedStructuredClone(value); + // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612 + if (classof(cloned) !== type) cloned = undefined; + } catch (error) { /* empty */ } + if (!cloned) try { + cloned = new File([value], value.name, value); + } catch (error) { /* empty */ } + if (!cloned) throwUnpolyfillable(type); + break; + case 'FileList': + dataTransfer = createDataTransfer(); + if (dataTransfer) { + for (i = 0, length = lengthOfArrayLike(value); i < length; i++) { + dataTransfer.items.add(structuredCloneInternal(value[i], map)); + } + cloned = dataTransfer.files; + } else cloned = tryNativeRestrictedStructuredClone(value, type); + break; + case 'ImageData': + // Safari 9 ImageData is a constructor, but typeof ImageData is 'object' + try { + cloned = new ImageData( + structuredCloneInternal(value.data, map), + value.width, + value.height, + { colorSpace: value.colorSpace } + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } break; + default: + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else switch (type) { + case 'BigInt': + // can be a 3rd party polyfill + cloned = Object(value.valueOf()); + break; + case 'Boolean': + cloned = Object(thisBooleanValue(value)); + break; + case 'Number': + cloned = Object(thisNumberValue(value)); + break; + case 'String': + cloned = Object(thisStringValue(value)); + break; + case 'Date': + cloned = new Date(thisTimeValue(value)); + break; + case 'Blob': + try { + cloned = value.slice(0, value.size, value.type); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMPoint': + case 'DOMPointReadOnly': + C = global[type]; + try { + cloned = C.fromPoint + ? C.fromPoint(value) + : new C(value.x, value.y, value.z, value.w); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMRect': + case 'DOMRectReadOnly': + C = global[type]; + try { + cloned = C.fromRect + ? C.fromRect(value) + : new C(value.x, value.y, value.width, value.height); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMMatrix': + case 'DOMMatrixReadOnly': + C = global[type]; + try { + cloned = C.fromMatrix + ? C.fromMatrix(value) + : new C(value); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone)) throwUnpolyfillable(type); + try { + cloned = value.clone(); + } catch (error) { + throwUncloneable(type); + } break; + case 'CropTarget': + case 'CryptoKey': + case 'FileSystemDirectoryHandle': + case 'FileSystemFileHandle': + case 'FileSystemHandle': + case 'GPUCompilationInfo': + case 'GPUCompilationMessage': + case 'ImageBitmap': + case 'RTCCertificate': + case 'WebAssembly.Module': + throwUnpolyfillable(type); + // break omitted + default: + throwUncloneable(type); + } + } + + mapSet(map, value, cloned); + + switch (type) { + case 'Array': + case 'Object': + keys = objectKeys(value); + for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) { + key = keys[i]; + createProperty(cloned, key, structuredCloneInternal(value[key], map)); + } break; + case 'Map': + value.forEach(function (v, k) { + mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map)); + }); + break; + case 'Set': + value.forEach(function (v) { + setAdd(cloned, structuredCloneInternal(v, map)); + }); + break; + case 'Error': + createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map)); + if (hasOwn(value, 'cause')) { + createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map)); + } + if (name === 'AggregateError') { + cloned.errors = structuredCloneInternal(value.errors, map); + } else if (name === 'SuppressedError') { + cloned.error = structuredCloneInternal(value.error, map); + cloned.suppressed = structuredCloneInternal(value.suppressed, map); + } // break omitted + case 'DOMException': + if (ERROR_STACK_INSTALLABLE) { + createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map)); + } + } + + return cloned; +}; + +var tryToTransfer = function (rawTransfer, map) { + if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence'); + + var transfer = []; + + iterate(rawTransfer, function (value) { + push(transfer, anObject(value)); + }); + + var i = 0; + var length = lengthOfArrayLike(transfer); + var buffers = new Set(); + var value, type, C, transferred, canvas, context; + + while (i < length) { + value = transfer[i++]; + + type = classof(value); + + if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) { + throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); + } + + if (type === 'ArrayBuffer') { + setAdd(buffers, value); + continue; + } + + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + transferred = nativeStructuredClone(value, { transfer: [value] }); + } else switch (type) { + case 'ImageBitmap': + C = global.OffscreenCanvas; + if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING); + try { + canvas = new C(value.width, value.height); + context = canvas.getContext('bitmaprenderer'); + context.transferFromImageBitmap(value); + transferred = canvas.transferToImageBitmap(); + } catch (error) { /* empty */ } + break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING); + try { + transferred = value.clone(); + value.close(); + } catch (error) { /* empty */ } + break; + case 'MediaSourceHandle': + case 'MessagePort': + case 'OffscreenCanvas': + case 'ReadableStream': + case 'TransformStream': + case 'WritableStream': + throwUnpolyfillable(type, TRANSFERRING); + } + + if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR); + + mapSet(map, value, transferred); + } + + return buffers; +}; + +var detachBuffers = function (buffers) { + setIterate(buffers, function (buffer) { + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + nativeRestrictedStructuredClone(buffer, { transfer: [buffer] }); + } else if (isCallable(buffer.transfer)) { + buffer.transfer(); + } else if (detachTransferable) { + detachTransferable(buffer); + } else { + throwUnpolyfillable('ArrayBuffer', TRANSFERRING); + } + }); +}; + +// `structuredClone` method +// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone +$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, { + structuredClone: function structuredClone(value /* , { transfer } */) { + var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined; + var transfer = options ? options.transfer : undefined; + var map, buffers; + + if (transfer !== undefined) { + map = new Map(); + buffers = tryToTransfer(transfer, map); + } + + var clone = structuredCloneInternal(value, map); + + // since of an issue with cloning views of transferred buffers, we a forced to detach them later + // https://github.com/zloirock/core-js/issues/1265 + if (buffers) detachBuffers(buffers); + + return clone; + } +}); + + +/***/ }), +/* 545 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(546); +__webpack_require__(547); + + +/***/ }), +/* 546 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setInterval = schedulersFix(global.setInterval, true); + +// Bun / IE9- setInterval additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval +$({ global: true, bind: true, forced: global.setInterval !== setInterval }, { + setInterval: setInterval +}); + + +/***/ }), +/* 547 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setTimeout = schedulersFix(global.setTimeout, true); + +// Bun / IE9- setTimeout additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout +$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, { + setTimeout: setTimeout +}); + + +/***/ }), +/* 548 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(549); + + +/***/ }), +/* 549 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(428); +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var global = __webpack_require__(4); +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var anInstance = __webpack_require__(210); +var hasOwn = __webpack_require__(38); +var assign = __webpack_require__(305); +var arrayFrom = __webpack_require__(162); +var arraySlice = __webpack_require__(76); +var codeAt = (__webpack_require__(421).codeAt); +var toASCII = __webpack_require__(551); +var $toString = __webpack_require__(68); +var setToStringTag = __webpack_require__(82); +var validateArgumentsLength = __webpack_require__(342); +var URLSearchParamsModule = __webpack_require__(552); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var getInternalURLState = InternalStateModule.getterFor('URL'); +var URLSearchParams = URLSearchParamsModule.URLSearchParams; +var getInternalSearchParamsState = URLSearchParamsModule.getState; + +var NativeURL = global.URL; +var TypeError = global.TypeError; +var parseInt = global.parseInt; +var floor = Math.floor; +var pow = Math.pow; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var join = uncurryThis([].join); +var numberToString = uncurryThis(1.0.toString); +var pop = uncurryThis([].pop); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); +var toLowerCase = uncurryThis(''.toLowerCase); +var unshift = uncurryThis([].unshift); + +var INVALID_AUTHORITY = 'Invalid authority'; +var INVALID_SCHEME = 'Invalid scheme'; +var INVALID_HOST = 'Invalid host'; +var INVALID_PORT = 'Invalid port'; + +var ALPHA = /[a-z]/i; +// eslint-disable-next-line regexp/no-obscure-range -- safe +var ALPHANUMERIC = /[\d+-.a-z]/i; +var DIGIT = /\d/; +var HEX_START = /^0x/i; +var OCT = /^[0-7]+$/; +var DEC = /^\d+$/; +var HEX = /^[\da-f]+$/i; +/* eslint-disable regexp/no-control-character -- safe */ +var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/; +var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/; +var LEADING_C0_CONTROL_OR_SPACE = /^[\u0000-\u0020]+/; +var TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\u0000-\u0020])[\u0000-\u0020]+$/; +var TAB_AND_NEW_LINE = /[\t\n\r]/g; +/* eslint-enable regexp/no-control-character -- safe */ +var EOF; + +// https://url.spec.whatwg.org/#ipv4-number-parser +var parseIPv4 = function (input) { + var parts = split(input, '.'); + var partsLength, numbers, index, part, radix, number, ipv4; + if (parts.length && parts[parts.length - 1] === '') { + parts.length--; + } + partsLength = parts.length; + if (partsLength > 4) return input; + numbers = []; + for (index = 0; index < partsLength; index++) { + part = parts[index]; + if (part === '') return input; + radix = 10; + if (part.length > 1 && charAt(part, 0) === '0') { + radix = exec(HEX_START, part) ? 16 : 8; + part = stringSlice(part, radix === 8 ? 1 : 2); + } + if (part === '') { + number = 0; + } else { + if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input; + number = parseInt(part, radix); + } + push(numbers, number); + } + for (index = 0; index < partsLength; index++) { + number = numbers[index]; + if (index === partsLength - 1) { + if (number >= pow(256, 5 - partsLength)) return null; + } else if (number > 255) return null; + } + ipv4 = pop(numbers); + for (index = 0; index < numbers.length; index++) { + ipv4 += numbers[index] * pow(256, 3 - index); + } + return ipv4; +}; + +// https://url.spec.whatwg.org/#concept-ipv6-parser +// eslint-disable-next-line max-statements -- TODO +var parseIPv6 = function (input) { + var address = [0, 0, 0, 0, 0, 0, 0, 0]; + var pieceIndex = 0; + var compress = null; + var pointer = 0; + var value, length, numbersSeen, ipv4Piece, number, swaps, swap; + + var chr = function () { + return charAt(input, pointer); + }; + + if (chr() === ':') { + if (charAt(input, 1) !== ':') return; + pointer += 2; + pieceIndex++; + compress = pieceIndex; + } + while (chr()) { + if (pieceIndex === 8) return; + if (chr() === ':') { + if (compress !== null) return; + pointer++; + pieceIndex++; + compress = pieceIndex; + continue; + } + value = length = 0; + while (length < 4 && exec(HEX, chr())) { + value = value * 16 + parseInt(chr(), 16); + pointer++; + length++; + } + if (chr() === '.') { + if (length === 0) return; + pointer -= length; + if (pieceIndex > 6) return; + numbersSeen = 0; + while (chr()) { + ipv4Piece = null; + if (numbersSeen > 0) { + if (chr() === '.' && numbersSeen < 4) pointer++; + else return; + } + if (!exec(DIGIT, chr())) return; + while (exec(DIGIT, chr())) { + number = parseInt(chr(), 10); + if (ipv4Piece === null) ipv4Piece = number; + else if (ipv4Piece === 0) return; + else ipv4Piece = ipv4Piece * 10 + number; + if (ipv4Piece > 255) return; + pointer++; + } + address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; + numbersSeen++; + if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++; + } + if (numbersSeen !== 4) return; + break; + } else if (chr() === ':') { + pointer++; + if (!chr()) return; + } else if (chr()) return; + address[pieceIndex++] = value; + } + if (compress !== null) { + swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + swap = address[pieceIndex]; + address[pieceIndex--] = address[compress + swaps - 1]; + address[compress + --swaps] = swap; + } + } else if (pieceIndex !== 8) return; + return address; +}; + +var findLongestZeroSequence = function (ipv6) { + var maxIndex = null; + var maxLength = 1; + var currStart = null; + var currLength = 0; + var index = 0; + for (; index < 8; index++) { + if (ipv6[index] !== 0) { + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + currStart = null; + currLength = 0; + } else { + if (currStart === null) currStart = index; + ++currLength; + } + } + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + return maxIndex; +}; + +// https://url.spec.whatwg.org/#host-serializing +var serializeHost = function (host) { + var result, index, compress, ignore0; + // ipv4 + if (typeof host == 'number') { + result = []; + for (index = 0; index < 4; index++) { + unshift(result, host % 256); + host = floor(host / 256); + } return join(result, '.'); + // ipv6 + } else if (typeof host == 'object') { + result = ''; + compress = findLongestZeroSequence(host); + for (index = 0; index < 8; index++) { + if (ignore0 && host[index] === 0) continue; + if (ignore0) ignore0 = false; + if (compress === index) { + result += index ? ':' : '::'; + ignore0 = true; + } else { + result += numberToString(host[index], 16); + if (index < 7) result += ':'; + } + } + return '[' + result + ']'; + } return host; +}; + +var C0ControlPercentEncodeSet = {}; +var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { + ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 +}); +var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { + '#': 1, '?': 1, '{': 1, '}': 1 +}); +var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { + '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 +}); + +var percentEncode = function (chr, set) { + var code = codeAt(chr, 0); + return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr); +}; + +// https://url.spec.whatwg.org/#special-scheme +var specialSchemes = { + ftp: 21, + file: null, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +// https://url.spec.whatwg.org/#windows-drive-letter +var isWindowsDriveLetter = function (string, normalized) { + var second; + return string.length === 2 && exec(ALPHA, charAt(string, 0)) + && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|')); +}; + +// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter +var startsWithWindowsDriveLetter = function (string) { + var third; + return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && ( + string.length === 2 || + ((third = charAt(string, 2)) === '/' || third === '\\' || third === '?' || third === '#') + ); +}; + +// https://url.spec.whatwg.org/#single-dot-path-segment +var isSingleDot = function (segment) { + return segment === '.' || toLowerCase(segment) === '%2e'; +}; + +// https://url.spec.whatwg.org/#double-dot-path-segment +var isDoubleDot = function (segment) { + segment = toLowerCase(segment); + return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; +}; + +// States: +var SCHEME_START = {}; +var SCHEME = {}; +var NO_SCHEME = {}; +var SPECIAL_RELATIVE_OR_AUTHORITY = {}; +var PATH_OR_AUTHORITY = {}; +var RELATIVE = {}; +var RELATIVE_SLASH = {}; +var SPECIAL_AUTHORITY_SLASHES = {}; +var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; +var AUTHORITY = {}; +var HOST = {}; +var HOSTNAME = {}; +var PORT = {}; +var FILE = {}; +var FILE_SLASH = {}; +var FILE_HOST = {}; +var PATH_START = {}; +var PATH = {}; +var CANNOT_BE_A_BASE_URL_PATH = {}; +var QUERY = {}; +var FRAGMENT = {}; + +var URLState = function (url, isBase, base) { + var urlString = $toString(url); + var baseState, failure, searchParams; + if (isBase) { + failure = this.parse(urlString); + if (failure) throw new TypeError(failure); + this.searchParams = null; + } else { + if (base !== undefined) baseState = new URLState(base, true); + failure = this.parse(urlString, null, baseState); + if (failure) throw new TypeError(failure); + searchParams = getInternalSearchParamsState(new URLSearchParams()); + searchParams.bindURL(this); + this.searchParams = searchParams; + } +}; + +URLState.prototype = { + type: 'URL', + // https://url.spec.whatwg.org/#url-parsing + // eslint-disable-next-line max-statements -- TODO + parse: function (input, stateOverride, base) { + var url = this; + var state = stateOverride || SCHEME_START; + var pointer = 0; + var buffer = ''; + var seenAt = false; + var seenBracket = false; + var seenPasswordToken = false; + var codePoints, chr, bufferCodePoints, failure; + + input = $toString(input); + + if (!stateOverride) { + url.scheme = ''; + url.username = ''; + url.password = ''; + url.host = null; + url.port = null; + url.path = []; + url.query = null; + url.fragment = null; + url.cannotBeABaseURL = false; + input = replace(input, LEADING_C0_CONTROL_OR_SPACE, ''); + input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1'); + } + + input = replace(input, TAB_AND_NEW_LINE, ''); + + codePoints = arrayFrom(input); + + while (pointer <= codePoints.length) { + chr = codePoints[pointer]; + switch (state) { + case SCHEME_START: + if (chr && exec(ALPHA, chr)) { + buffer += toLowerCase(chr); + state = SCHEME; + } else if (!stateOverride) { + state = NO_SCHEME; + continue; + } else return INVALID_SCHEME; + break; + + case SCHEME: + if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) { + buffer += toLowerCase(chr); + } else if (chr === ':') { + if (stateOverride && ( + (url.isSpecial() !== hasOwn(specialSchemes, buffer)) || + (buffer === 'file' && (url.includesCredentials() || url.port !== null)) || + (url.scheme === 'file' && !url.host) + )) return; + url.scheme = buffer; + if (stateOverride) { + if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null; + return; + } + buffer = ''; + if (url.scheme === 'file') { + state = FILE; + } else if (url.isSpecial() && base && base.scheme === url.scheme) { + state = SPECIAL_RELATIVE_OR_AUTHORITY; + } else if (url.isSpecial()) { + state = SPECIAL_AUTHORITY_SLASHES; + } else if (codePoints[pointer + 1] === '/') { + state = PATH_OR_AUTHORITY; + pointer++; + } else { + url.cannotBeABaseURL = true; + push(url.path, ''); + state = CANNOT_BE_A_BASE_URL_PATH; + } + } else if (!stateOverride) { + buffer = ''; + state = NO_SCHEME; + pointer = 0; + continue; + } else return INVALID_SCHEME; + break; + + case NO_SCHEME: + if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME; + if (base.cannotBeABaseURL && chr === '#') { + url.scheme = base.scheme; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + url.cannotBeABaseURL = true; + state = FRAGMENT; + break; + } + state = base.scheme === 'file' ? FILE : RELATIVE; + continue; + + case SPECIAL_RELATIVE_OR_AUTHORITY: + if (chr === '/' && codePoints[pointer + 1] === '/') { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + pointer++; + } else { + state = RELATIVE; + continue; + } break; + + case PATH_OR_AUTHORITY: + if (chr === '/') { + state = AUTHORITY; + break; + } else { + state = PATH; + continue; + } + + case RELATIVE: + url.scheme = base.scheme; + if (chr === EOF) { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + } else if (chr === '/' || (chr === '\\' && url.isSpecial())) { + state = RELATIVE_SLASH; + } else if (chr === '?') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.path.length--; + state = PATH; + continue; + } break; + + case RELATIVE_SLASH: + if (url.isSpecial() && (chr === '/' || chr === '\\')) { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + } else if (chr === '/') { + state = AUTHORITY; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + state = PATH; + continue; + } break; + + case SPECIAL_AUTHORITY_SLASHES: + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue; + pointer++; + break; + + case SPECIAL_AUTHORITY_IGNORE_SLASHES: + if (chr !== '/' && chr !== '\\') { + state = AUTHORITY; + continue; + } break; + + case AUTHORITY: + if (chr === '@') { + if (seenAt) buffer = '%40' + buffer; + seenAt = true; + bufferCodePoints = arrayFrom(buffer); + for (var i = 0; i < bufferCodePoints.length; i++) { + var codePoint = bufferCodePoints[i]; + if (codePoint === ':' && !seenPasswordToken) { + seenPasswordToken = true; + continue; + } + var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); + if (seenPasswordToken) url.password += encodedCodePoints; + else url.username += encodedCodePoints; + } + buffer = ''; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (seenAt && buffer === '') return INVALID_AUTHORITY; + pointer -= arrayFrom(buffer).length + 1; + buffer = ''; + state = HOST; + } else buffer += chr; + break; + + case HOST: + case HOSTNAME: + if (stateOverride && url.scheme === 'file') { + state = FILE_HOST; + continue; + } else if (chr === ':' && !seenBracket) { + if (buffer === '') return INVALID_HOST; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PORT; + if (stateOverride === HOSTNAME) return; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (url.isSpecial() && buffer === '') return INVALID_HOST; + if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PATH_START; + if (stateOverride) return; + continue; + } else { + if (chr === '[') seenBracket = true; + else if (chr === ']') seenBracket = false; + buffer += chr; + } break; + + case PORT: + if (exec(DIGIT, chr)) { + buffer += chr; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) || + stateOverride + ) { + if (buffer !== '') { + var port = parseInt(buffer, 10); + if (port > 0xFFFF) return INVALID_PORT; + url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port; + buffer = ''; + } + if (stateOverride) return; + state = PATH_START; + continue; + } else return INVALID_PORT; + break; + + case FILE: + url.scheme = 'file'; + if (chr === '/' || chr === '\\') state = FILE_SLASH; + else if (base && base.scheme === 'file') { + switch (chr) { + case EOF: + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + break; + case '?': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + break; + case '#': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + break; + default: + if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + url.host = base.host; + url.path = arraySlice(base.path); + url.shortenPath(); + } + state = PATH; + continue; + } + } else { + state = PATH; + continue; + } break; + + case FILE_SLASH: + if (chr === '/' || chr === '\\') { + state = FILE_HOST; + break; + } + if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]); + else url.host = base.host; + } + state = PATH; + continue; + + case FILE_HOST: + if (chr === EOF || chr === '/' || chr === '\\' || chr === '?' || chr === '#') { + if (!stateOverride && isWindowsDriveLetter(buffer)) { + state = PATH; + } else if (buffer === '') { + url.host = ''; + if (stateOverride) return; + state = PATH_START; + } else { + failure = url.parseHost(buffer); + if (failure) return failure; + if (url.host === 'localhost') url.host = ''; + if (stateOverride) return; + buffer = ''; + state = PATH_START; + } continue; + } else buffer += chr; + break; + + case PATH_START: + if (url.isSpecial()) { + state = PATH; + if (chr !== '/' && chr !== '\\') continue; + } else if (!stateOverride && chr === '?') { + url.query = ''; + state = QUERY; + } else if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + state = PATH; + if (chr !== '/') continue; + } break; + + case PATH: + if ( + chr === EOF || chr === '/' || + (chr === '\\' && url.isSpecial()) || + (!stateOverride && (chr === '?' || chr === '#')) + ) { + if (isDoubleDot(buffer)) { + url.shortenPath(); + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else if (isSingleDot(buffer)) { + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else { + if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { + if (url.host) url.host = ''; + buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter + } + push(url.path, buffer); + } + buffer = ''; + if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) { + while (url.path.length > 1 && url.path[0] === '') { + shift(url.path); + } + } + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } + } else { + buffer += percentEncode(chr, pathPercentEncodeSet); + } break; + + case CANNOT_BE_A_BASE_URL_PATH: + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case QUERY: + if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + if (chr === "'" && url.isSpecial()) url.query += '%27'; + else if (chr === '#') url.query += '%23'; + else url.query += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case FRAGMENT: + if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet); + break; + } + + pointer++; + } + }, + // https://url.spec.whatwg.org/#host-parsing + parseHost: function (input) { + var result, codePoints, index; + if (charAt(input, 0) === '[') { + if (charAt(input, input.length - 1) !== ']') return INVALID_HOST; + result = parseIPv6(stringSlice(input, 1, -1)); + if (!result) return INVALID_HOST; + this.host = result; + // opaque host + } else if (!this.isSpecial()) { + if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST; + result = ''; + codePoints = arrayFrom(input); + for (index = 0; index < codePoints.length; index++) { + result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); + } + this.host = result; + } else { + input = toASCII(input); + if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST; + result = parseIPv4(input); + if (result === null) return INVALID_HOST; + this.host = result; + } + }, + // https://url.spec.whatwg.org/#cannot-have-a-username-password-port + cannotHaveUsernamePasswordPort: function () { + return !this.host || this.cannotBeABaseURL || this.scheme === 'file'; + }, + // https://url.spec.whatwg.org/#include-credentials + includesCredentials: function () { + return this.username !== '' || this.password !== ''; + }, + // https://url.spec.whatwg.org/#is-special + isSpecial: function () { + return hasOwn(specialSchemes, this.scheme); + }, + // https://url.spec.whatwg.org/#shorten-a-urls-path + shortenPath: function () { + var path = this.path; + var pathSize = path.length; + if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) { + path.length--; + } + }, + // https://url.spec.whatwg.org/#concept-url-serializer + serialize: function () { + var url = this; + var scheme = url.scheme; + var username = url.username; + var password = url.password; + var host = url.host; + var port = url.port; + var path = url.path; + var query = url.query; + var fragment = url.fragment; + var output = scheme + ':'; + if (host !== null) { + output += '//'; + if (url.includesCredentials()) { + output += username + (password ? ':' + password : '') + '@'; + } + output += serializeHost(host); + if (port !== null) output += ':' + port; + } else if (scheme === 'file') output += '//'; + output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + if (query !== null) output += '?' + query; + if (fragment !== null) output += '#' + fragment; + return output; + }, + // https://url.spec.whatwg.org/#dom-url-href + setHref: function (href) { + var failure = this.parse(href); + if (failure) throw new TypeError(failure); + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-origin + getOrigin: function () { + var scheme = this.scheme; + var port = this.port; + if (scheme === 'blob') try { + return new URLConstructor(scheme.path[0]).origin; + } catch (error) { + return 'null'; + } + if (scheme === 'file' || !this.isSpecial()) return 'null'; + return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : ''); + }, + // https://url.spec.whatwg.org/#dom-url-protocol + getProtocol: function () { + return this.scheme + ':'; + }, + setProtocol: function (protocol) { + this.parse($toString(protocol) + ':', SCHEME_START); + }, + // https://url.spec.whatwg.org/#dom-url-username + getUsername: function () { + return this.username; + }, + setUsername: function (username) { + var codePoints = arrayFrom($toString(username)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.username = ''; + for (var i = 0; i < codePoints.length; i++) { + this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-password + getPassword: function () { + return this.password; + }, + setPassword: function (password) { + var codePoints = arrayFrom($toString(password)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.password = ''; + for (var i = 0; i < codePoints.length; i++) { + this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-host + getHost: function () { + var host = this.host; + var port = this.port; + return host === null ? '' + : port === null ? serializeHost(host) + : serializeHost(host) + ':' + port; + }, + setHost: function (host) { + if (this.cannotBeABaseURL) return; + this.parse(host, HOST); + }, + // https://url.spec.whatwg.org/#dom-url-hostname + getHostname: function () { + var host = this.host; + return host === null ? '' : serializeHost(host); + }, + setHostname: function (hostname) { + if (this.cannotBeABaseURL) return; + this.parse(hostname, HOSTNAME); + }, + // https://url.spec.whatwg.org/#dom-url-port + getPort: function () { + var port = this.port; + return port === null ? '' : $toString(port); + }, + setPort: function (port) { + if (this.cannotHaveUsernamePasswordPort()) return; + port = $toString(port); + if (port === '') this.port = null; + else this.parse(port, PORT); + }, + // https://url.spec.whatwg.org/#dom-url-pathname + getPathname: function () { + var path = this.path; + return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + }, + setPathname: function (pathname) { + if (this.cannotBeABaseURL) return; + this.path = []; + this.parse(pathname, PATH_START); + }, + // https://url.spec.whatwg.org/#dom-url-search + getSearch: function () { + var query = this.query; + return query ? '?' + query : ''; + }, + setSearch: function (search) { + search = $toString(search); + if (search === '') { + this.query = null; + } else { + if (charAt(search, 0) === '?') search = stringSlice(search, 1); + this.query = ''; + this.parse(search, QUERY); + } + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-searchparams + getSearchParams: function () { + return this.searchParams.facade; + }, + // https://url.spec.whatwg.org/#dom-url-hash + getHash: function () { + var fragment = this.fragment; + return fragment ? '#' + fragment : ''; + }, + setHash: function (hash) { + hash = $toString(hash); + if (hash === '') { + this.fragment = null; + return; + } + if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1); + this.fragment = ''; + this.parse(hash, FRAGMENT); + }, + update: function () { + this.query = this.searchParams.serialize() || null; + } +}; + +// `URL` constructor +// https://url.spec.whatwg.org/#url-class +var URLConstructor = function URL(url /* , base */) { + var that = anInstance(this, URLPrototype); + var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined; + var state = setInternalState(that, new URLState(url, false, base)); + if (!DESCRIPTORS) { + that.href = state.serialize(); + that.origin = state.getOrigin(); + that.protocol = state.getProtocol(); + that.username = state.getUsername(); + that.password = state.getPassword(); + that.host = state.getHost(); + that.hostname = state.getHostname(); + that.port = state.getPort(); + that.pathname = state.getPathname(); + that.search = state.getSearch(); + that.searchParams = state.getSearchParams(); + that.hash = state.getHash(); + } +}; + +var URLPrototype = URLConstructor.prototype; + +var accessorDescriptor = function (getter, setter) { + return { + get: function () { + return getInternalURLState(this)[getter](); + }, + set: setter && function (value) { + return getInternalURLState(this)[setter](value); + }, + configurable: true, + enumerable: true + }; +}; + +if (DESCRIPTORS) { + // `URL.prototype.href` accessors pair + // https://url.spec.whatwg.org/#dom-url-href + defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref')); + // `URL.prototype.origin` getter + // https://url.spec.whatwg.org/#dom-url-origin + defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin')); + // `URL.prototype.protocol` accessors pair + // https://url.spec.whatwg.org/#dom-url-protocol + defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol')); + // `URL.prototype.username` accessors pair + // https://url.spec.whatwg.org/#dom-url-username + defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername')); + // `URL.prototype.password` accessors pair + // https://url.spec.whatwg.org/#dom-url-password + defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword')); + // `URL.prototype.host` accessors pair + // https://url.spec.whatwg.org/#dom-url-host + defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost')); + // `URL.prototype.hostname` accessors pair + // https://url.spec.whatwg.org/#dom-url-hostname + defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname')); + // `URL.prototype.port` accessors pair + // https://url.spec.whatwg.org/#dom-url-port + defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort')); + // `URL.prototype.pathname` accessors pair + // https://url.spec.whatwg.org/#dom-url-pathname + defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname')); + // `URL.prototype.search` accessors pair + // https://url.spec.whatwg.org/#dom-url-search + defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch')); + // `URL.prototype.searchParams` getter + // https://url.spec.whatwg.org/#dom-url-searchparams + defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams')); + // `URL.prototype.hash` accessors pair + // https://url.spec.whatwg.org/#dom-url-hash + defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash')); +} + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +defineBuiltIn(URLPrototype, 'toJSON', function toJSON() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +// `URL.prototype.toString` method +// https://url.spec.whatwg.org/#URL-stringification-behavior +defineBuiltIn(URLPrototype, 'toString', function toString() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +if (NativeURL) { + var nativeCreateObjectURL = NativeURL.createObjectURL; + var nativeRevokeObjectURL = NativeURL.revokeObjectURL; + // `URL.createObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL + if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL)); + // `URL.revokeObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL + if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL)); +} + +setToStringTag(URLConstructor, 'URL'); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { + URL: URLConstructor +}); + + +/***/ }), +/* 550 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = !fails(function () { + // eslint-disable-next-line unicorn/relative-url-style -- required for testing + var url = new URL('b?a=1&b=2&c=3', 'http://a'); + var params = url.searchParams; + var params2 = new URLSearchParams('a=1&a=2&b=3'); + var result = ''; + url.pathname = 'c%20d'; + params.forEach(function (value, key) { + params['delete']('b'); + result += key + value; + }); + params2['delete']('a', 2); + // `undefined` case is a Chromium 117 bug + // https://bugs.chromium.org/p/v8/issues/detail?id=14222 + params2['delete']('b', undefined); + return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b'))) + || (!params.size && (IS_PURE || !DESCRIPTORS)) + || !params.sort + || url.href !== 'http://a/c%20d?a=1&c=3' + || params.get('c') !== '3' + || String(new URLSearchParams('?a=1')) !== 'a=1' + || !params[ITERATOR] + // throws in Edge + || new URL('https://a@b').username !== 'a' + || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' + // not punycoded in Edge + || new URL('http://тест').host !== 'xn--e1aybc' + // not escaped in Chrome 62- + || new URL('http://a#б').hash !== '#%D0%B1' + // fails in Chrome 66- + || result !== 'a1c3' + // throws in Safari + || new URL('http://x', undefined).host !== 'x'; +}); + + +/***/ }), +/* 551 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js +var uncurryThis = __webpack_require__(14); + +var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 +var base = 36; +var tMin = 1; +var tMax = 26; +var skew = 38; +var damp = 700; +var initialBias = 72; +var initialN = 128; // 0x80 +var delimiter = '-'; // '\x2D' +var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars +var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators +var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; +var baseMinusTMin = base - tMin; + +var $RangeError = RangeError; +var exec = uncurryThis(regexSeparators.exec); +var floor = Math.floor; +var fromCharCode = String.fromCharCode; +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var split = uncurryThis(''.split); +var toLowerCase = uncurryThis(''.toLowerCase); + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + */ +var ucs2decode = function (string) { + var output = []; + var counter = 0; + var length = string.length; + while (counter < length) { + var value = charCodeAt(string, counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + var extra = charCodeAt(string, counter++); + if ((extra & 0xFC00) === 0xDC00) { // Low surrogate. + push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + push(output, value); + counter--; + } + } else { + push(output, value); + } + } + return output; +}; + +/** + * Converts a digit/integer into a basic code point. + */ +var digitToBasic = function (digit) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + */ +var adapt = function (delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + while (delta > baseMinusTMin * tMax >> 1) { + delta = floor(delta / baseMinusTMin); + k += base; + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + */ +var encode = function (input) { + var output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + var inputLength = input.length; + + // Initialize the state. + var n = initialN; + var delta = 0; + var bias = initialBias; + var i, currentValue; + + // Handle the basic code points. + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < 0x80) { + push(output, fromCharCode(currentValue)); + } + } + + var basicLength = output.length; // number of basic code points. + var handledCPCount = basicLength; // number of code points that have been handled; + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + push(output, delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + // All non-basic code points < n have been handled already. Find the next larger one: + var m = maxInt; + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow. + var handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + throw new $RangeError(OVERFLOW_ERROR); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < n && ++delta > maxInt) { + throw new $RangeError(OVERFLOW_ERROR); + } + if (currentValue === n) { + // Represent delta as a generalized variable-length integer. + var q = delta; + var k = base; + while (true) { + var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (q < t) break; + var qMinusT = q - t; + var baseMinusT = base - t; + push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT))); + q = floor(qMinusT / baseMinusT); + k += base; + } + + push(output, fromCharCode(digitToBasic(q))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength); + delta = 0; + handledCPCount++; + } + } + + delta++; + n++; + } + return join(output, ''); +}; + +module.exports = function (input) { + var encoded = []; + var labels = split(replace(toLowerCase(input), regexSeparators, '\u002E'), '.'); + var i, label; + for (i = 0; i < labels.length; i++) { + label = labels[i]; + push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label); + } + return join(encoded, '.'); +}; + + +/***/ }), +/* 552 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(168); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var setToStringTag = __webpack_require__(82); +var createIteratorConstructor = __webpack_require__(170); +var InternalStateModule = __webpack_require__(51); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var bind = __webpack_require__(84); +var classof = __webpack_require__(69); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var $toString = __webpack_require__(68); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var createIterResultObject = __webpack_require__(172); +var validateArgumentsLength = __webpack_require__(342); +var wellKnownSymbol = __webpack_require__(33); +var arraySort = __webpack_require__(188); + +var ITERATOR = wellKnownSymbol('iterator'); +var URL_SEARCH_PARAMS = 'URLSearchParams'; +var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); +var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); + +var nativeFetch = safeGetBuiltIn('fetch'); +var NativeRequest = safeGetBuiltIn('Request'); +var Headers = safeGetBuiltIn('Headers'); +var RequestPrototype = NativeRequest && NativeRequest.prototype; +var HeadersPrototype = Headers && Headers.prototype; +var RegExp = global.RegExp; +var TypeError = global.TypeError; +var decodeURIComponent = global.decodeURIComponent; +var encodeURIComponent = global.encodeURIComponent; +var charAt = uncurryThis(''.charAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var splice = uncurryThis([].splice); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); + +var plus = /\+/g; +var sequences = Array(4); + +var percentSequence = function (bytes) { + return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); +}; + +var percentDecode = function (sequence) { + try { + return decodeURIComponent(sequence); + } catch (error) { + return sequence; + } +}; + +var deserialize = function (it) { + var result = replace(it, plus, ' '); + var bytes = 4; + try { + return decodeURIComponent(result); + } catch (error) { + while (bytes) { + result = replace(result, percentSequence(bytes--), percentDecode); + } + return result; + } +}; + +var find = /[!'()~]|%20/g; + +var replacements = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+' +}; + +var replacer = function (match) { + return replacements[match]; +}; + +var serialize = function (it) { + return replace(encodeURIComponent(it), find, replacer); +}; + +var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { + setInternalState(this, { + type: URL_SEARCH_PARAMS_ITERATOR, + target: getInternalParamsState(params).entries, + index: 0, + kind: kind + }); +}, URL_SEARCH_PARAMS, function next() { + var state = getInternalIteratorState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + var entry = target[index]; + switch (state.kind) { + case 'keys': return createIterResultObject(entry.key, false); + case 'values': return createIterResultObject(entry.value, false); + } return createIterResultObject([entry.key, entry.value], false); +}, true); + +var URLSearchParamsState = function (init) { + this.entries = []; + this.url = null; + + if (init !== undefined) { + if (isObject(init)) this.parseObject(init); + else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init)); + } +}; + +URLSearchParamsState.prototype = { + type: URL_SEARCH_PARAMS, + bindURL: function (url) { + this.url = url; + this.update(); + }, + parseObject: function (object) { + var entries = this.entries; + var iteratorMethod = getIteratorMethod(object); + var iterator, next, step, entryIterator, entryNext, first, second; + + if (iteratorMethod) { + iterator = getIterator(object, iteratorMethod); + next = iterator.next; + while (!(step = call(next, iterator)).done) { + entryIterator = getIterator(anObject(step.value)); + entryNext = entryIterator.next; + if ( + (first = call(entryNext, entryIterator)).done || + (second = call(entryNext, entryIterator)).done || + !call(entryNext, entryIterator).done + ) throw new TypeError('Expected sequence with length 2'); + push(entries, { key: $toString(first.value), value: $toString(second.value) }); + } + } else for (var key in object) if (hasOwn(object, key)) { + push(entries, { key: key, value: $toString(object[key]) }); + } + }, + parseQuery: function (query) { + if (query) { + var entries = this.entries; + var attributes = split(query, '&'); + var index = 0; + var attribute, entry; + while (index < attributes.length) { + attribute = attributes[index++]; + if (attribute.length) { + entry = split(attribute, '='); + push(entries, { + key: deserialize(shift(entry)), + value: deserialize(join(entry, '=')) + }); + } + } + } + }, + serialize: function () { + var entries = this.entries; + var result = []; + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + push(result, serialize(entry.key) + '=' + serialize(entry.value)); + } return join(result, '&'); + }, + update: function () { + this.entries.length = 0; + this.parseQuery(this.url.query); + }, + updateURL: function () { + if (this.url) this.url.update(); + } +}; + +// `URLSearchParams` constructor +// https://url.spec.whatwg.org/#interface-urlsearchparams +var URLSearchParamsConstructor = function URLSearchParams(/* init */) { + anInstance(this, URLSearchParamsPrototype); + var init = arguments.length > 0 ? arguments[0] : undefined; + var state = setInternalState(this, new URLSearchParamsState(init)); + if (!DESCRIPTORS) this.size = state.entries.length; +}; + +var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; + +defineBuiltIns(URLSearchParamsPrototype, { + // `URLSearchParams.prototype.append` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-append + append: function append(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 2); + push(state.entries, { key: $toString(name), value: $toString(value) }); + if (!DESCRIPTORS) this.length++; + state.updateURL(); + }, + // `URLSearchParams.prototype.delete` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-delete + 'delete': function (name /* , value */) { + var state = getInternalParamsState(this); + var length = validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index]; + if (entry.key === key && (value === undefined || entry.value === value)) { + splice(entries, index, 1); + if (value !== undefined) break; + } else index++; + } + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.get` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-get + get: function get(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) return entries[index].value; + } + return null; + }, + // `URLSearchParams.prototype.getAll` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-getall + getAll: function getAll(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var result = []; + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) push(result, entries[index].value); + } + return result; + }, + // `URLSearchParams.prototype.has` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-has + has: function has(name /* , value */) { + var entries = getInternalParamsState(this).entries; + var length = validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index++]; + if (entry.key === key && (value === undefined || entry.value === value)) return true; + } + return false; + }, + // `URLSearchParams.prototype.set` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-set + set: function set(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var found = false; + var key = $toString(name); + var val = $toString(value); + var index = 0; + var entry; + for (; index < entries.length; index++) { + entry = entries[index]; + if (entry.key === key) { + if (found) splice(entries, index--, 1); + else { + found = true; + entry.value = val; + } + } + } + if (!found) push(entries, { key: key, value: val }); + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.sort` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-sort + sort: function sort() { + var state = getInternalParamsState(this); + arraySort(state.entries, function (a, b) { + return a.key > b.key ? 1 : -1; + }); + state.updateURL(); + }, + // `URLSearchParams.prototype.forEach` method + forEach: function forEach(callback /* , thisArg */) { + var entries = getInternalParamsState(this).entries; + var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined); + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + boundFunction(entry.value, entry.key, this); + } + }, + // `URLSearchParams.prototype.keys` method + keys: function keys() { + return new URLSearchParamsIterator(this, 'keys'); + }, + // `URLSearchParams.prototype.values` method + values: function values() { + return new URLSearchParamsIterator(this, 'values'); + }, + // `URLSearchParams.prototype.entries` method + entries: function entries() { + return new URLSearchParamsIterator(this, 'entries'); + } +}, { enumerable: true }); + +// `URLSearchParams.prototype[@@iterator]` method +defineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' }); + +// `URLSearchParams.prototype.toString` method +// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior +defineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() { + return getInternalParamsState(this).serialize(); +}, { enumerable: true }); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + return getInternalParamsState(this).entries.length; + }, + configurable: true, + enumerable: true +}); + +setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, { + URLSearchParams: URLSearchParamsConstructor +}); + +// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams` +if (!USE_NATIVE_URL && isCallable(Headers)) { + var headersHas = uncurryThis(HeadersPrototype.has); + var headersSet = uncurryThis(HeadersPrototype.set); + + var wrapRequestOptions = function (init) { + if (isObject(init)) { + var body = init.body; + var headers; + if (classof(body) === URL_SEARCH_PARAMS) { + headers = init.headers ? new Headers(init.headers) : new Headers(); + if (!headersHas(headers, 'content-type')) { + headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); + } + return create(init, { + body: createPropertyDescriptor(0, $toString(body)), + headers: createPropertyDescriptor(0, headers) + }); + } + } return init; + }; + + if (isCallable(nativeFetch)) { + $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, { + fetch: function fetch(input /* , init */) { + return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + } + }); + } + + if (isCallable(NativeRequest)) { + var RequestConstructor = function Request(input /* , init */) { + anInstance(this, RequestPrototype); + return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + }; + + RequestPrototype.constructor = RequestConstructor; + RequestConstructor.prototype = RequestPrototype; + + $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, { + Request: RequestConstructor + }); + } +} + +module.exports = { + URLSearchParams: URLSearchParamsConstructor, + getState: getInternalParamsState +}; + + +/***/ }), +/* 553 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// https://github.com/nodejs/node/issues/47505 +// https://github.com/denoland/deno/issues/18893 +var THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () { + URL.canParse(); +}); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9250 +var WRONG_ARITY = fails(function () { + return URL.canParse.length !== 1; +}); + +// `URL.canParse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, { + canParse: function canParse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return !!new URL(urlString, base); + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 554 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// `URL.parse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, { + parse: function parse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return new URL(urlString, base); + } catch (error) { + return null; + } + } +}); + + +/***/ }), +/* 555 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +$({ target: 'URL', proto: true, enumerable: true }, { + toJSON: function toJSON() { + return call(URL.prototype.toString, this); + } +}); + + +/***/ }), +/* 556 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(552); + + +/***/ }), +/* 557 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var append = uncurryThis(URLSearchParamsPrototype.append); +var $delete = uncurryThis(URLSearchParamsPrototype['delete']); +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); +var push = uncurryThis([].push); +var params = new $URLSearchParams('a=1&a=2&b=3'); + +params['delete']('a', 1); +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +params['delete']('b', undefined); + +if (params + '' !== 'a=2') { + defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $delete(this, name); + var entries = []; + forEach(this, function (v, k) { // also validates `this` + push(entries, { key: k, value: v }); + }); + validateArgumentsLength(length, 1); + var key = toString(name); + var value = toString($value); + var index = 0; + var dindex = 0; + var found = false; + var entriesLength = entries.length; + var entry; + while (index < entriesLength) { + entry = entries[index++]; + if (found || entry.key === key) { + found = true; + $delete(this, entry.key); + } else dindex++; + } + while (dindex < entriesLength) { + entry = entries[dindex++]; + if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value); + } + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 558 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var getAll = uncurryThis(URLSearchParamsPrototype.getAll); +var $has = uncurryThis(URLSearchParamsPrototype.has); +var params = new $URLSearchParams('a=1'); + +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +if (params.has('a', 2) || !params.has('a', undefined)) { + defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $has(this, name); + var values = getAll(this, name); // also validates `this` + validateArgumentsLength(length, 1); + var value = toString($value); + var index = 0; + while (index < values.length) { + if (values[index++] === value) return true; + } return false; + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 559 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var URLSearchParamsPrototype = URLSearchParams.prototype; +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) { + defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + var count = 0; + forEach(this, function () { count++; }); + return count; + }, + configurable: true, + enumerable: true + }); +} + + +/***/ }), +/* 560 */, +/* 561 */, +/* 562 */ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ Stanford; } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-color/src/define.js +/* harmony default export */ function src_define(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; +} +function extend(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) + prototype[key] = definition[key]; + return prototype; +} + +;// CONCATENATED MODULE: ./node_modules/d3-color/src/color.js + +function Color() { +} +var darker = 0.7; +var brighter = 1 / darker; +var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); +var named = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 +}; +src_define(Color, color, { + copy(channels) { + return Object.assign(new this.constructor(), this, channels); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: color_formatHex, + // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHex8: color_formatHex8, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb +}); +function color_formatHex() { + return this.rgb().formatHex(); +} +function color_formatHex8() { + return this.rgb().formatHex8(); +} +function color_formatHsl() { + return hslConvert(this).formatHsl(); +} +function color_formatRgb() { + return this.rgb().formatRgb(); +} +function color(format) { + var m, l; + format = (format + "").trim().toLowerCase(); + return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null; +} +function rgbn(n) { + return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1); +} +function rgba(r, g, b, a) { + if (a <= 0) + r = g = b = NaN; + return new Rgb(r, g, b, a); +} +function rgbConvert(o) { + if (!(o instanceof Color)) + o = color(o); + if (!o) + return new Rgb(); + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); +} +function color_rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); +} +function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; +} +src_define(Rgb, color_rgb, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity)); + }, + displayable() { + return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1); + }, + hex: rgb_formatHex, + // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb +})); +function rgb_formatHex() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; +} +function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} +function rgb_formatRgb() { + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; +} +function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); +} +function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); +} +function hex(value) { + value = clampi(value); + return (value < 16 ? "0" : "") + value.toString(16); +} +function hsla(h, s, l, a) { + if (a <= 0) + h = s = l = NaN; + else if (l <= 0 || l >= 1) + h = s = NaN; + else if (s <= 0) + h = NaN; + return new Hsl(h, s, l, a); +} +function hslConvert(o) { + if (o instanceof Hsl) + return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color)) + o = color(o); + if (!o) + return new Hsl(); + if (o instanceof Hsl) + return o; + o = o.rgb(); + var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2; + if (s) { + if (r === max) + h = (g - b) / s + (g < b) * 6; + else if (g === max) + h = (b - r) / s + 2; + else + h = (r - g) / s + 4; + s /= l < 0.5 ? max + min : 2 - max - min; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; + } + return new Hsl(h, s, l, o.opacity); +} +function hsl(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); +} +function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} +src_define(Hsl, hsl, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb() { + var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + this.opacity + ); + }, + clamp() { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity)); + }, + displayable() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1); + }, + formatHsl() { + const a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; + } +})); +function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; +} +function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); +} +function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/constant.js +/* harmony default export */ var constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/color.js + +function linear(a, d) { + return function(t) { + return a + t * d; + }; +} +function exponential(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; +} +function hue(a, b) { + var d = b - a; + return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a); +} +function gamma(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a); + }; +} +function nogamma(a, b) { + var d = b - a; + return d ? linear(a, d) : constant(isNaN(a) ? b : a); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/hsl.js + + +function hsl_hsl(hue2) { + return function(start, end) { + var h = hue2((start = hsl(start)).h, (end = hsl(end)).h), s = nogamma(start.s, end.s), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.h = h(t); + start.s = s(t); + start.l = l(t); + start.opacity = opacity(t); + return start + ""; + }; + }; +} +/* harmony default export */ var src_hsl = (hsl_hsl(hue)); +var hslLong = hsl_hsl(nogamma); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basis.js +function basis(t1, v0, v1, v2, v3) { + var t2 = t1 * t1, t3 = t2 * t1; + return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6; +} +/* harmony default export */ function src_basis(values) { + var n = values.length - 1; + return function(t) { + var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basisClosed.js + +/* harmony default export */ function basisClosed(values) { + var n = values.length; + return function(t) { + var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n]; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/rgb.js + + + + +/* harmony default export */ var rgb = ((function rgbGamma(y) { + var color = gamma(y); + function rgb(start, end) { + var r = color((start = color_rgb(start)).r, (end = color_rgb(end)).r), g = color(start.g, end.g), b = color(start.b, end.b), opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.r = r(t); + start.g = g(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; + } + rgb.gamma = rgbGamma; + return rgb; +})(1)); +function rgbSpline(spline) { + return function(colors) { + var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color; + for (i = 0; i < n; ++i) { + color = color_rgb(colors[i]); + r[i] = color.r || 0; + g[i] = color.g || 0; + b[i] = color.b || 0; + } + r = spline(r); + g = spline(g); + b = spline(b); + color.opacity = 1; + return function(t) { + color.r = r(t); + color.g = g(t); + color.b = b(t); + return color + ""; + }; + }; +} +var rgbBasis = rgbSpline(src_basis); +var rgbBasisClosed = rgbSpline(basisClosed); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/numberArray.js +/* harmony default export */ function numberArray(a, b) { + if (!b) + b = []; + var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i; + return function(t) { + for (i = 0; i < n; ++i) + c[i] = a[i] * (1 - t) + b[i] * t; + return c; + }; +} +function isNumberArray(x) { + return ArrayBuffer.isView(x) && !(x instanceof DataView); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/array.js + + +/* harmony default export */ function array(a, b) { + return (isNumberArray(b) ? numberArray : genericArray)(a, b); +} +function genericArray(a, b) { + var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i; + for (i = 0; i < na; ++i) + x[i] = value(a[i], b[i]); + for (; i < nb; ++i) + c[i] = b[i]; + return function(t) { + for (i = 0; i < na; ++i) + c[i] = x[i](t); + return c; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/date.js +/* harmony default export */ function date(a, b) { + var d = /* @__PURE__ */ new Date(); + return a = +a, b = +b, function(t) { + return d.setTime(a * (1 - t) + b * t), d; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/number.js +/* harmony default export */ function number(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/object.js + +/* harmony default export */ function object(a, b) { + var i = {}, c = {}, k; + if (a === null || typeof a !== "object") + a = {}; + if (b === null || typeof b !== "object") + b = {}; + for (k in b) { + if (k in a) { + i[k] = value(a[k], b[k]); + } else { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) + c[k] = i[k](t); + return c; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/string.js + +var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g"); +function zero(b) { + return function() { + return b; + }; +} +function one(b) { + return function(t) { + return b(t) + ""; + }; +} +/* harmony default export */ function string(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = reA.exec(a)) && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.slice(bi, bs); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) + s[i] += bm; + else + s[++i] = bm; + } else { + s[++i] = null; + q.push({ i, x: number(am, bm) }); + } + bi = reB.lastIndex; + } + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) { + for (var i2 = 0, o; i2 < b; ++i2) + s[(o = q[i2]).i] = o.x(t); + return s.join(""); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/value.js + + + + + + + + + +/* harmony default export */ function value(a, b) { + var t = typeof b, c; + return b == null || t === "boolean" ? constant(b) : (t === "number" ? number : t === "string" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : number)(a, b); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/round.js +/* harmony default export */ function round(a, b) { + return a = +a, b = +b, function(t) { + return Math.round(a * (1 - t) + b * t); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/ascending.js +function ascending(a, b) { + return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/descending.js +function descending(a, b) { + return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/bisector.js + + +function bisector(f) { + let compare1, compare2, delta; + if (f.length !== 2) { + compare1 = ascending; + compare2 = (d, x) => ascending(f(d), x); + delta = (d, x) => f(d) - x; + } else { + compare1 = f === ascending || f === descending ? f : bisector_zero; + compare2 = f; + delta = f; + } + function left(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) + return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) < 0) + lo = mid + 1; + else + hi = mid; + } while (lo < hi); + } + return lo; + } + function right(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) + return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) <= 0) + lo = mid + 1; + else + hi = mid; + } while (lo < hi); + } + return lo; + } + function center(a, x, lo = 0, hi = a.length) { + const i = left(a, x, lo, hi - 1); + return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; + } + return { left, center, right }; +} +function bisector_zero() { + return 0; +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/number.js +function number_number(x) { + return x === null ? NaN : +x; +} +function* numbers(values, valueof) { + if (valueof === void 0) { + for (let value of values) { + if (value != null && (value = +value) >= value) { + yield value; + } + } + } else { + let index = -1; + for (let value of values) { + if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) { + yield value; + } + } + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/bisect.js + + + +const ascendingBisect = bisector(ascending); +const bisectRight = ascendingBisect.right; +const bisectLeft = ascendingBisect.left; +const bisectCenter = bisector(number_number).center; +/* harmony default export */ var bisect = (bisectRight); + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/constant.js +function constants(x) { + return function() { + return x; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/number.js +function src_number_number(x) { + return +x; +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/continuous.js + + + + +var unit = [0, 1]; +function identity(x) { + return x; +} +function normalize(a, b) { + return (b -= a = +a) ? function(x) { + return (x - a) / b; + } : constants(isNaN(b) ? NaN : 0.5); +} +function clamper(a, b) { + var t; + if (a > b) + t = a, a = b, b = t; + return function(x) { + return Math.max(a, Math.min(b, x)); + }; +} +function bimap(domain, range, interpolate) { + var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1]; + if (d1 < d0) + d0 = normalize(d1, d0), r0 = interpolate(r1, r0); + else + d0 = normalize(d0, d1), r0 = interpolate(r0, r1); + return function(x) { + return r0(d0(x)); + }; +} +function polymap(domain, range, interpolate) { + var j = Math.min(domain.length, range.length) - 1, d = new Array(j), r = new Array(j), i = -1; + if (domain[j] < domain[0]) { + domain = domain.slice().reverse(); + range = range.slice().reverse(); + } + while (++i < j) { + d[i] = normalize(domain[i], domain[i + 1]); + r[i] = interpolate(range[i], range[i + 1]); + } + return function(x) { + var i2 = bisect(domain, x, 1, j) - 1; + return r[i2](d[i2](x)); + }; +} +function copy(source, target) { + return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown()); +} +function transformer() { + var domain = unit, range = unit, interpolate = value, transform, untransform, unknown, clamp = identity, piecewise, output, input; + function rescale() { + var n = Math.min(domain.length, range.length); + if (clamp !== identity) + clamp = clamper(domain[0], domain[n - 1]); + piecewise = n > 2 ? polymap : bimap; + output = input = null; + return scale; + } + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x))); + } + scale.invert = function(y) { + return clamp(untransform((input || (input = piecewise(range, domain.map(transform), number)))(y))); + }; + scale.domain = function(_) { + return arguments.length ? (domain = Array.from(_, src_number_number), rescale()) : domain.slice(); + }; + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), rescale()) : range.slice(); + }; + scale.rangeRound = function(_) { + return range = Array.from(_), interpolate = round, rescale(); + }; + scale.clamp = function(_) { + return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity; + }; + scale.interpolate = function(_) { + return arguments.length ? (interpolate = _, rescale()) : interpolate; + }; + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + return function(t, u) { + transform = t, untransform = u; + return rescale(); + }; +} +function continuous() { + return transformer()(identity, identity); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/init.js +function initRange(domain, range) { + switch (arguments.length) { + case 0: + break; + case 1: + this.range(domain); + break; + default: + this.range(range).domain(domain); + break; + } + return this; +} +function initInterpolator(domain, interpolator) { + switch (arguments.length) { + case 0: + break; + case 1: { + if (typeof domain === "function") + this.interpolator(domain); + else + this.range(domain); + break; + } + default: { + this.domain(domain); + if (typeof interpolator === "function") + this.interpolator(interpolator); + else + this.range(interpolator); + break; + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-array/src/ticks.js +const e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2); +function tickSpec(start, stop, count) { + const step = (stop - start) / Math.max(0, count), power = Math.floor(Math.log10(step)), error = step / Math.pow(10, power), factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1; + let i1, i2, inc; + if (power < 0) { + inc = Math.pow(10, -power) / factor; + i1 = Math.round(start * inc); + i2 = Math.round(stop * inc); + if (i1 / inc < start) + ++i1; + if (i2 / inc > stop) + --i2; + inc = -inc; + } else { + inc = Math.pow(10, power) * factor; + i1 = Math.round(start / inc); + i2 = Math.round(stop / inc); + if (i1 * inc < start) + ++i1; + if (i2 * inc > stop) + --i2; + } + if (i2 < i1 && 0.5 <= count && count < 2) + return tickSpec(start, stop, count * 2); + return [i1, i2, inc]; +} +function ticks(start, stop, count) { + stop = +stop, start = +start, count = +count; + if (!(count > 0)) + return []; + if (start === stop) + return [start]; + const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count); + if (!(i2 >= i1)) + return []; + const n = i2 - i1 + 1, ticks2 = new Array(n); + if (reverse) { + if (inc < 0) + for (let i = 0; i < n; ++i) + ticks2[i] = (i2 - i) / -inc; + else + for (let i = 0; i < n; ++i) + ticks2[i] = (i2 - i) * inc; + } else { + if (inc < 0) + for (let i = 0; i < n; ++i) + ticks2[i] = (i1 + i) / -inc; + else + for (let i = 0; i < n; ++i) + ticks2[i] = (i1 + i) * inc; + } + return ticks2; +} +function tickIncrement(start, stop, count) { + stop = +stop, start = +start, count = +count; + return tickSpec(start, stop, count)[2]; +} +function tickStep(start, stop, count) { + stop = +stop, start = +start, count = +count; + const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count); + return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc); +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatSpecifier.js +var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; +function formatSpecifier(specifier) { + if (!(match = re.exec(specifier))) + throw new Error("invalid format: " + specifier); + var match; + return new FormatSpecifier({ + fill: match[1], + align: match[2], + sign: match[3], + symbol: match[4], + zero: match[5], + width: match[6], + comma: match[7], + precision: match[8] && match[8].slice(1), + trim: match[9], + type: match[10] + }); +} +formatSpecifier.prototype = FormatSpecifier.prototype; +function FormatSpecifier(specifier) { + this.fill = specifier.fill === void 0 ? " " : specifier.fill + ""; + this.align = specifier.align === void 0 ? ">" : specifier.align + ""; + this.sign = specifier.sign === void 0 ? "-" : specifier.sign + ""; + this.symbol = specifier.symbol === void 0 ? "" : specifier.symbol + ""; + this.zero = !!specifier.zero; + this.width = specifier.width === void 0 ? void 0 : +specifier.width; + this.comma = !!specifier.comma; + this.precision = specifier.precision === void 0 ? void 0 : +specifier.precision; + this.trim = !!specifier.trim; + this.type = specifier.type === void 0 ? "" : specifier.type + ""; +} +FormatSpecifier.prototype.toString = function() { + return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type; +}; + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatDecimal.js +/* harmony default export */ function formatDecimal(x) { + return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString("en").replace(/,/g, "") : x.toString(10); +} +function formatDecimalParts(x, p) { + if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) + return null; + var i, coefficient = x.slice(0, i); + return [ + coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, + +x.slice(i + 1) + ]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/exponent.js + +/* harmony default export */ function exponent(x) { + return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/precisionPrefix.js + +/* harmony default export */ function precisionPrefix(step, value) { + return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatGroup.js +/* harmony default export */ function formatGroup(grouping, thousands) { + return function(value, width) { + var i = value.length, t = [], j = 0, g = grouping[0], length = 0; + while (i > 0 && g > 0) { + if (length + g + 1 > width) + g = Math.max(1, width - length); + t.push(value.substring(i -= g, i + g)); + if ((length += g + 1) > width) + break; + g = grouping[j = (j + 1) % grouping.length]; + } + return t.reverse().join(thousands); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatNumerals.js +/* harmony default export */ function formatNumerals(numerals) { + return function(value) { + return value.replace(/[0-9]/g, function(i) { + return numerals[+i]; + }); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatTrim.js +/* harmony default export */ function formatTrim(s) { + out: + for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) { + switch (s[i]) { + case ".": + i0 = i1 = i; + break; + case "0": + if (i0 === 0) + i0 = i; + i1 = i; + break; + default: + if (!+s[i]) + break out; + if (i0 > 0) + i0 = 0; + break; + } + } + return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatPrefixAuto.js + +var prefixExponent; +/* harmony default export */ function formatPrefixAuto(x, p) { + var d = formatDecimalParts(x, p); + if (!d) + return x + ""; + var coefficient = d[0], exponent = d[1], i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, n = coefficient.length; + return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join("0") : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i) : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatRounded.js + +/* harmony default export */ function formatRounded(x, p) { + var d = formatDecimalParts(x, p); + if (!d) + return x + ""; + var coefficient = d[0], exponent = d[1]; + return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join("0"); +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/formatTypes.js + + + +/* harmony default export */ var formatTypes = ({ + "%": (x, p) => (x * 100).toFixed(p), + "b": (x) => Math.round(x).toString(2), + "c": (x) => x + "", + "d": formatDecimal, + "e": (x, p) => x.toExponential(p), + "f": (x, p) => x.toFixed(p), + "g": (x, p) => x.toPrecision(p), + "o": (x) => Math.round(x).toString(8), + "p": (x, p) => formatRounded(x * 100, p), + "r": formatRounded, + "s": formatPrefixAuto, + "X": (x) => Math.round(x).toString(16).toUpperCase(), + "x": (x) => Math.round(x).toString(16) +}); + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/identity.js +/* harmony default export */ function src_identity(x) { + return x; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/locale.js + + + + + + + + +var map = Array.prototype.map, prefixes = ["y", "z", "a", "f", "p", "n", "\xB5", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"]; +/* harmony default export */ function locale(locale) { + var group = locale.grouping === void 0 || locale.thousands === void 0 ? src_identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + ""), currencyPrefix = locale.currency === void 0 ? "" : locale.currency[0] + "", currencySuffix = locale.currency === void 0 ? "" : locale.currency[1] + "", decimal = locale.decimal === void 0 ? "." : locale.decimal + "", numerals = locale.numerals === void 0 ? src_identity : formatNumerals(map.call(locale.numerals, String)), percent = locale.percent === void 0 ? "%" : locale.percent + "", minus = locale.minus === void 0 ? "\u2212" : locale.minus + "", nan = locale.nan === void 0 ? "NaN" : locale.nan + ""; + function newFormat(specifier) { + specifier = formatSpecifier(specifier); + var fill = specifier.fill, align = specifier.align, sign = specifier.sign, symbol = specifier.symbol, zero = specifier.zero, width = specifier.width, comma = specifier.comma, precision = specifier.precision, trim = specifier.trim, type = specifier.type; + if (type === "n") + comma = true, type = "g"; + else if (!formatTypes[type]) + precision === void 0 && (precision = 12), trim = true, type = "g"; + if (zero || fill === "0" && align === "=") + zero = true, fill = "0", align = "="; + var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "", suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : ""; + var formatType = formatTypes[type], maybeSuffix = /[defgprs%]/.test(type); + precision = precision === void 0 ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision)); + function format(value) { + var valuePrefix = prefix, valueSuffix = suffix, i, n, c; + if (type === "c") { + valueSuffix = formatType(value) + valueSuffix; + value = ""; + } else { + value = +value; + var valueNegative = value < 0 || 1 / value < 0; + value = isNaN(value) ? nan : formatType(Math.abs(value), precision); + if (trim) + value = formatTrim(value); + if (valueNegative && +value === 0 && sign !== "+") + valueNegative = false; + valuePrefix = (valueNegative ? sign === "(" ? sign : minus : sign === "-" || sign === "(" ? "" : sign) + valuePrefix; + valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : ""); + if (maybeSuffix) { + i = -1, n = value.length; + while (++i < n) { + if (c = value.charCodeAt(i), 48 > c || c > 57) { + valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix; + value = value.slice(0, i); + break; + } + } + } + } + if (comma && !zero) + value = group(value, Infinity); + var length = valuePrefix.length + value.length + valueSuffix.length, padding = length < width ? new Array(width - length + 1).join(fill) : ""; + if (comma && zero) + value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = ""; + switch (align) { + case "<": + value = valuePrefix + value + valueSuffix + padding; + break; + case "=": + value = valuePrefix + padding + value + valueSuffix; + break; + case "^": + value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); + break; + default: + value = padding + valuePrefix + value + valueSuffix; + break; + } + return numerals(value); + } + format.toString = function() { + return specifier + ""; + }; + return format; + } + function formatPrefix(specifier, value) { + var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, k = Math.pow(10, -e), prefix = prefixes[8 + e / 3]; + return function(value2) { + return f(k * value2) + prefix; + }; + } + return { + format: newFormat, + formatPrefix + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/defaultLocale.js + +var defaultLocale_locale; +var format; +var formatPrefix; +defaultLocale({ + thousands: ",", + grouping: [3], + currency: ["$", ""] +}); +function defaultLocale(definition) { + defaultLocale_locale = locale(definition); + format = defaultLocale_locale.format; + formatPrefix = defaultLocale_locale.formatPrefix; + return defaultLocale_locale; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/precisionRound.js + +/* harmony default export */ function precisionRound(step, max) { + step = Math.abs(step), max = Math.abs(max) - step; + return Math.max(0, exponent(max) - exponent(step)) + 1; +} + +;// CONCATENATED MODULE: ./node_modules/d3-format/src/precisionFixed.js + +/* harmony default export */ function precisionFixed(step) { + return Math.max(0, -exponent(Math.abs(step))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/tickFormat.js + + +function tickFormat(start, stop, count, specifier) { + var step = tickStep(start, stop, count), precision; + specifier = formatSpecifier(specifier == null ? ",f" : specifier); + switch (specifier.type) { + case "s": { + var value = Math.max(Math.abs(start), Math.abs(stop)); + if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) + specifier.precision = precision; + return formatPrefix(specifier, value); + } + case "": + case "e": + case "g": + case "p": + case "r": { + if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) + specifier.precision = precision - (specifier.type === "e"); + break; + } + case "f": + case "%": { + if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) + specifier.precision = precision - (specifier.type === "%") * 2; + break; + } + } + return format(specifier); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/linear.js + + + + +function linearish(scale) { + var domain = scale.domain; + scale.ticks = function(count) { + var d = domain(); + return ticks(d[0], d[d.length - 1], count == null ? 10 : count); + }; + scale.tickFormat = function(count, specifier) { + var d = domain(); + return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier); + }; + scale.nice = function(count) { + if (count == null) + count = 10; + var d = domain(); + var i0 = 0; + var i1 = d.length - 1; + var start = d[i0]; + var stop = d[i1]; + var prestep; + var step; + var maxIter = 10; + if (stop < start) { + step = start, start = stop, stop = step; + step = i0, i0 = i1, i1 = step; + } + while (maxIter-- > 0) { + step = tickIncrement(start, stop, count); + if (step === prestep) { + d[i0] = start; + d[i1] = stop; + return domain(d); + } else if (step > 0) { + start = Math.floor(start / step) * step; + stop = Math.ceil(stop / step) * step; + } else if (step < 0) { + start = Math.ceil(start * step) / step; + stop = Math.floor(stop * step) / step; + } else { + break; + } + prestep = step; + } + return scale; + }; + return scale; +} +function linear_linear() { + var scale = continuous(); + scale.copy = function() { + return copy(scale, linear_linear()); + }; + initRange.apply(scale, arguments); + return linearish(scale); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/nice.js +function nice(domain, interval) { + domain = domain.slice(); + var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], t; + if (x1 < x0) { + t = i0, i0 = i1, i1 = t; + t = x0, x0 = x1, x1 = t; + } + domain[i0] = interval.floor(x0); + domain[i1] = interval.ceil(x1); + return domain; +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/log.js + + + + + +function transformLog(x) { + return Math.log(x); +} +function transformExp(x) { + return Math.exp(x); +} +function transformLogn(x) { + return -Math.log(-x); +} +function transformExpn(x) { + return -Math.exp(-x); +} +function pow10(x) { + return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x; +} +function powp(base) { + return base === 10 ? pow10 : base === Math.E ? Math.exp : (x) => Math.pow(base, x); +} +function logp(base) { + return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), (x) => Math.log(x) / base); +} +function reflect(f) { + return (x, k) => -f(-x, k); +} +function loggish(transform) { + const scale = transform(transformLog, transformExp); + const domain = scale.domain; + let base = 10; + let logs; + let pows; + function rescale() { + logs = logp(base), pows = powp(base); + if (domain()[0] < 0) { + logs = reflect(logs), pows = reflect(pows); + transform(transformLogn, transformExpn); + } else { + transform(transformLog, transformExp); + } + return scale; + } + scale.base = function(_) { + return arguments.length ? (base = +_, rescale()) : base; + }; + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + scale.ticks = (count) => { + const d = domain(); + let u = d[0]; + let v = d[d.length - 1]; + const r = v < u; + if (r) + [u, v] = [v, u]; + let i = logs(u); + let j = logs(v); + let k; + let t; + const n = count == null ? 10 : +count; + let z = []; + if (!(base % 1) && j - i < n) { + i = Math.floor(i), j = Math.ceil(j); + if (u > 0) + for (; i <= j; ++i) { + for (k = 1; k < base; ++k) { + t = i < 0 ? k / pows(-i) : k * pows(i); + if (t < u) + continue; + if (t > v) + break; + z.push(t); + } + } + else + for (; i <= j; ++i) { + for (k = base - 1; k >= 1; --k) { + t = i > 0 ? k / pows(-i) : k * pows(i); + if (t < u) + continue; + if (t > v) + break; + z.push(t); + } + } + if (z.length * 2 < n) + z = ticks(u, v, n); + } else { + z = ticks(i, j, Math.min(j - i, n)).map(pows); + } + return r ? z.reverse() : z; + }; + scale.tickFormat = (count, specifier) => { + if (count == null) + count = 10; + if (specifier == null) + specifier = base === 10 ? "s" : ","; + if (typeof specifier !== "function") { + if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) + specifier.trim = true; + specifier = format(specifier); + } + if (count === Infinity) + return specifier; + const k = Math.max(1, base * count / scale.ticks().length); + return (d) => { + let i = d / pows(Math.round(logs(d))); + if (i * base < base - 0.5) + i *= base; + return i <= k ? specifier(d) : ""; + }; + }; + scale.nice = () => { + return domain(nice(domain(), { + floor: (x) => pows(Math.floor(logs(x))), + ceil: (x) => pows(Math.ceil(logs(x))) + })); + }; + return scale; +} +function log() { + const scale = loggish(transformer()).domain([1, 10]); + scale.copy = () => copy(scale, log()).base(scale.base()); + initRange.apply(scale, arguments); + return scale; +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/symlog.js + + + +function transformSymlog(c) { + return function(x) { + return Math.sign(x) * Math.log1p(Math.abs(x / c)); + }; +} +function transformSymexp(c) { + return function(x) { + return Math.sign(x) * Math.expm1(Math.abs(x)) * c; + }; +} +function symlogish(transform) { + var c = 1, scale = transform(transformSymlog(c), transformSymexp(c)); + scale.constant = function(_) { + return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c; + }; + return linearish(scale); +} +function symlog() { + var scale = symlogish(transformer()); + scale.copy = function() { + return copy(scale, symlog()).constant(scale.constant()); + }; + return initRange.apply(scale, arguments); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/pow.js + + + +function transformPow(exponent) { + return function(x) { + return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent); + }; +} +function transformSqrt(x) { + return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x); +} +function transformSquare(x) { + return x < 0 ? -x * x : x * x; +} +function powish(transform) { + var scale = transform(identity, identity), exponent = 1; + function rescale() { + return exponent === 1 ? transform(identity, identity) : exponent === 0.5 ? transform(transformSqrt, transformSquare) : transform(transformPow(exponent), transformPow(1 / exponent)); + } + scale.exponent = function(_) { + return arguments.length ? (exponent = +_, rescale()) : exponent; + }; + return linearish(scale); +} +function pow() { + var scale = powish(transformer()); + scale.copy = function() { + return copy(scale, pow()).exponent(scale.exponent()); + }; + initRange.apply(scale, arguments); + return scale; +} +function sqrt() { + return pow.apply(null, arguments).exponent(0.5); +} + +;// CONCATENATED MODULE: ./node_modules/d3-scale/src/sequential.js + + + + + + + +function sequential_transformer() { + var x0 = 0, x1 = 1, t0, t1, k10, transform, interpolator = identity, clamp = false, unknown; + function scale(x) { + return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x)); + } + scale.domain = function(_) { + return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1]; + }; + scale.clamp = function(_) { + return arguments.length ? (clamp = !!_, scale) : clamp; + }; + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + function range(interpolate2) { + return function(_) { + var r0, r1; + return arguments.length ? ([r0, r1] = _, interpolator = interpolate2(r0, r1), scale) : [interpolator(0), interpolator(1)]; + }; + } + scale.range = range(value); + scale.rangeRound = range(round); + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + return function(t) { + transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0); + return scale; + }; +} +function sequential_copy(source, target) { + return target.domain(source.domain()).interpolator(source.interpolator()).clamp(source.clamp()).unknown(source.unknown()); +} +function sequential() { + var scale = linearish(sequential_transformer()(identity)); + scale.copy = function() { + return sequential_copy(scale, sequential()); + }; + return initInterpolator.apply(scale, arguments); +} +function sequentialLog() { + var scale = loggish(sequential_transformer()).domain([1, 10]); + scale.copy = function() { + return sequential_copy(scale, sequentialLog()).base(scale.base()); + }; + return initInterpolator.apply(scale, arguments); +} +function sequentialSymlog() { + var scale = symlogish(sequential_transformer()); + scale.copy = function() { + return sequential_copy(scale, sequentialSymlog()).constant(scale.constant()); + }; + return initInterpolator.apply(scale, arguments); +} +function sequentialPow() { + var scale = powish(sequential_transformer()); + scale.copy = function() { + return sequential_copy(scale, sequentialPow()).exponent(scale.exponent()); + }; + return initInterpolator.apply(scale, arguments); +} +function sequentialSqrt() { + return sequentialPow.apply(null, arguments).exponent(0.5); +} + +;// CONCATENATED MODULE: ./src/config/classes.ts +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +const $COMMON = { + button: "bb-button", + chart: "bb-chart", + empty: "bb-empty", + main: "bb-main", + target: "bb-target", + EXPANDED: "_expanded_" +}; +const $ARC = { + arc: "bb-arc", + arcLabelLine: "bb-arc-label-line", + arcRange: "bb-arc-range", + arcs: "bb-arcs", + chartArc: "bb-chart-arc", + chartArcs: "bb-chart-arcs", + chartArcsBackground: "bb-chart-arcs-background", + chartArcsTitle: "bb-chart-arcs-title", + needle: "bb-needle" +}; +const $AREA = { + area: "bb-area", + areas: "bb-areas" +}; +const $AXIS = { + axis: "bb-axis", + axisX: "bb-axis-x", + axisXLabel: "bb-axis-x-label", + axisY: "bb-axis-y", + axisY2: "bb-axis-y2", + axisY2Label: "bb-axis-y2-label", + axisYLabel: "bb-axis-y-label", + axisXTooltip: "bb-axis-x-tooltip", + axisYTooltip: "bb-axis-y-tooltip", + axisY2Tooltip: "bb-axis-y2-tooltip" +}; +const $BAR = { + bar: "bb-bar", + bars: "bb-bars", + chartBar: "bb-chart-bar", + chartBars: "bb-chart-bars" +}; +const $CANDLESTICK = { + candlestick: "bb-candlestick", + candlesticks: "bb-candlesticks", + chartCandlestick: "bb-chart-candlestick", + chartCandlesticks: "bb-chart-candlesticks", + valueDown: "bb-value-down", + valueUp: "bb-value-up" +}; +const $CIRCLE = { + chartCircles: "bb-chart-circles", + circle: "bb-circle", + circles: "bb-circles" +}; +const $COLOR = { + colorPattern: "bb-color-pattern", + colorScale: "bb-colorscale" +}; +const $DRAG = { + dragarea: "bb-dragarea", + INCLUDED: "_included_" +}; +const $FUNNEL = { + funnel: "bb-funnel", + chartFunnel: "bb-chart-funnel", + chartFunnels: "bb-chart-funnels", + funnelBackground: "bb-funnel-background" +}; +const $GAUGE = { + chartArcsGaugeMax: "bb-chart-arcs-gauge-max", + chartArcsGaugeMin: "bb-chart-arcs-gauge-min", + chartArcsGaugeUnit: "bb-chart-arcs-gauge-unit", + chartArcsGaugeTitle: "bb-chart-arcs-gauge-title", + gaugeValue: "bb-gauge-value" +}; +const $LEGEND = { + legend: "bb-legend", + legendBackground: "bb-legend-background", + legendItem: "bb-legend-item", + legendItemEvent: "bb-legend-item-event", + legendItemHidden: "bb-legend-item-hidden", + legendItemPoint: "bb-legend-item-point", + legendItemTile: "bb-legend-item-tile" +}; +const $LINE = { + chartLine: "bb-chart-line", + chartLines: "bb-chart-lines", + line: "bb-line", + lines: "bb-lines" +}; +const $EVENT = { + eventRect: "bb-event-rect", + eventRects: "bb-event-rects", + eventRectsMultiple: "bb-event-rects-multiple", + eventRectsSingle: "bb-event-rects-single" +}; +const $FOCUS = { + focused: "bb-focused", + defocused: "bb-defocused", + legendItemFocused: "bb-legend-item-focused", + xgridFocus: "bb-xgrid-focus", + ygridFocus: "bb-ygrid-focus" +}; +const $GRID = { + grid: "bb-grid", + gridLines: "bb-grid-lines", + xgrid: "bb-xgrid", + xgridLine: "bb-xgrid-line", + xgridLines: "bb-xgrid-lines", + xgrids: "bb-xgrids", + ygrid: "bb-ygrid", + ygridLine: "bb-ygrid-line", + ygridLines: "bb-ygrid-lines", + ygrids: "bb-ygrids" +}; +const $LEVEL = { + level: "bb-level", + levels: "bb-levels" +}; +const $RADAR = { + chartRadar: "bb-chart-radar", + chartRadars: "bb-chart-radars" +}; +const $REGION = { + region: "bb-region", + regions: "bb-regions" +}; +const $SELECT = { + selectedCircle: "bb-selected-circle", + selectedCircles: "bb-selected-circles", + SELECTED: "_selected_" +}; +const $SHAPE = { + shape: "bb-shape", + shapes: "bb-shapes" +}; +const $SUBCHART = { + brush: "bb-brush", + subchart: "bb-subchart" +}; +const $TEXT = { + chartText: "bb-chart-text", + chartTexts: "bb-chart-texts", + text: "bb-text", + texts: "bb-texts", + title: "bb-title", + TextOverlapping: "text-overlapping" +}; +const $TOOLTIP = { + tooltip: "bb-tooltip", + tooltipContainer: "bb-tooltip-container", + tooltipName: "bb-tooltip-name" +}; +const $TREEMAP = { + treemap: "bb-treemap", + chartTreemap: "bb-chart-treemap", + chartTreemaps: "bb-chart-treemaps" +}; +const $ZOOM = { + buttonZoomReset: "bb-zoom-reset", + zoomBrush: "bb-zoom-brush" +}; +/* harmony default export */ var classes = (__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, $COMMON), $ARC), $AREA), $AXIS), $BAR), $CANDLESTICK), $CIRCLE), $COLOR), $DRAG), $GAUGE), $LEGEND), $LINE), $EVENT), $FOCUS), $FUNNEL), $GRID), $RADAR), $REGION), $SELECT), $SHAPE), $SUBCHART), $TEXT), $TOOLTIP), $TREEMAP), $ZOOM)); + +;// CONCATENATED MODULE: ./node_modules/d3-dispatch/src/dispatch.js +var noop = { value: () => { +} }; +function dispatch() { + for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t)) + throw new Error("illegal type: " + t); + _[t] = []; + } + return new Dispatch(_); +} +function Dispatch(_) { + this._ = _; +} +function parseTypenames(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + return { type: t, name }; + }); +} +Dispatch.prototype = dispatch.prototype = { + constructor: Dispatch, + on: function(typename, callback) { + var _ = this._, T = parseTypenames(typename + "", _), t, i = -1, n = T.length; + if (arguments.length < 2) { + while (++i < n) + if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) + return t; + return; + } + if (callback != null && typeof callback !== "function") + throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) + _[t] = set(_[t], typename.name, callback); + else if (callback == null) + for (t in _) + _[t] = set(_[t], typename.name, null); + } + return this; + }, + copy: function() { + var copy = {}, _ = this._; + for (var t in _) + copy[t] = _[t].slice(); + return new Dispatch(copy); + }, + call: function(type, that) { + if ((n = arguments.length - 2) > 0) + for (var args = new Array(n), i = 0, n, t; i < n; ++i) + args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type)) + throw new Error("unknown type: " + type); + for (t = this._[type], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + }, + apply: function(type, that, args) { + if (!this._.hasOwnProperty(type)) + throw new Error("unknown type: " + type); + for (var t = this._[type], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + } +}; +function get(type, name) { + for (var i = 0, n = type.length, c; i < n; ++i) { + if ((c = type[i]).name === name) { + return c.value; + } + } +} +function set(type, name, callback) { + for (var i = 0, n = type.length; i < n; ++i) { + if (type[i].name === name) { + type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1)); + break; + } + } + if (callback != null) + type.push({ name, value: callback }); + return type; +} +/* harmony default export */ var src_dispatch = (dispatch); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selector.js +function none() { +} +/* harmony default export */ function selector(selector) { + return selector == null ? none : function() { + return this.querySelector(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/select.js + + +/* harmony default export */ function selection_select(select) { + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/array.js +function array_array(x) { + return x == null ? [] : Array.isArray(x) ? x : Array.from(x); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selectorAll.js +function empty() { + return []; +} +/* harmony default export */ function selectorAll(selector) { + return selector == null ? empty : function() { + return this.querySelectorAll(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectAll.js + + + +function arrayAll(select) { + return function() { + return array_array(select.apply(this, arguments)); + }; +} +/* harmony default export */ function selectAll(select) { + if (typeof select === "function") + select = arrayAll(select); + else + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + subgroups.push(select.call(node, node.__data__, i, group)); + parents.push(node); + } + } + } + return new Selection(subgroups, parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/matcher.js +/* harmony default export */ function matcher(selector) { + return function() { + return this.matches(selector); + }; +} +function childMatcher(selector) { + return function(node) { + return node.matches(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChild.js + +var find = Array.prototype.find; +function childFind(match) { + return function() { + return find.call(this.children, match); + }; +} +function childFirst() { + return this.firstElementChild; +} +/* harmony default export */ function selectChild(match) { + return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChildren.js + +var filter = Array.prototype.filter; +function children() { + return Array.from(this.children); +} +function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; +} +/* harmony default export */ function selectChildren(match) { + return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/filter.js + + +/* harmony default export */ function selection_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sparse.js +/* harmony default export */ function sparse(update) { + return new Array(update.length); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/enter.js + + +/* harmony default export */ function enter() { + return new Selection(this._enter || this._groups.map(sparse), this._parents); +} +function EnterNode(parent, datum) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum; +} +EnterNode.prototype = { + constructor: EnterNode, + appendChild: function(child) { + return this._parent.insertBefore(child, this._next); + }, + insertBefore: function(child, next) { + return this._parent.insertBefore(child, next); + }, + querySelector: function(selector) { + return this._parent.querySelector(selector); + }, + querySelectorAll: function(selector) { + return this._parent.querySelectorAll(selector); + } +}; + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/constant.js +/* harmony default export */ function src_constant(x) { + return function() { + return x; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/data.js + + + +function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, node, groupLength = group.length, dataLength = data.length; + for (; i < dataLength; ++i) { + if (node = group[i]) { + node.__data__ = data[i]; + update[i] = node; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (; i < groupLength; ++i) { + if (node = group[i]) { + exit[i] = node; + } + } +} +function bindKey(parent, group, enter, update, exit, data, key) { + var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue; + for (i = 0; i < groupLength; ++i) { + if (node = group[i]) { + keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + } + } + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node = nodeByKeyValue.get(keyValue)) { + update[i] = node; + node.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (i = 0; i < groupLength; ++i) { + if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) { + exit[i] = node; + } + } +} +function datum(node) { + return node.__data__; +} +/* harmony default export */ function data(value, key) { + if (!arguments.length) + return Array.from(this, datum); + var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups; + if (typeof value !== "function") + value = src_constant(value); + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength); + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) + i1 = i0 + 1; + while (!(next = updateGroup[i1]) && ++i1 < dataLength) + ; + previous._next = next || null; + } + } + } + update = new Selection(update, parents); + update._enter = enter; + update._exit = exit; + return update; +} +function arraylike(data) { + return typeof data === "object" && "length" in data ? data : Array.from(data); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/exit.js + + +/* harmony default export */ function exit() { + return new Selection(this._exit || this._groups.map(sparse), this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/join.js +/* harmony default export */ function join(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + if (typeof onenter === "function") { + enter = onenter(enter); + if (enter) + enter = enter.selection(); + } else { + enter = enter.append(onenter + ""); + } + if (onupdate != null) { + update = onupdate(update); + if (update) + update = update.selection(); + } + if (onexit == null) + exit.remove(); + else + onexit(exit); + return enter && update ? enter.merge(update).order() : update; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/merge.js + +/* harmony default export */ function merge(context) { + var selection = context.selection ? context.selection() : context; + for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Selection(merges, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/order.js +/* harmony default export */ function order() { + for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) { + for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && node.compareDocumentPosition(next) ^ 4) + next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sort.js + +/* harmony default export */ function sort(compare) { + if (!compare) + compare = sort_ascending; + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group[i]) { + sortgroup[i] = node; + } + } + sortgroup.sort(compareNode); + } + return new Selection(sortgroups, this._parents).order(); +} +function sort_ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/call.js +/* harmony default export */ function call() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/nodes.js +/* harmony default export */ function nodes() { + return Array.from(this); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/node.js +/* harmony default export */ function node() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node = group[i]; + if (node) + return node; + } + } + return null; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/size.js +/* harmony default export */ function size() { + let size = 0; + for (const node of this) + ++size; + return size; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/empty.js +/* harmony default export */ function selection_empty() { + return !this.node(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/each.js +/* harmony default export */ function each(callback) { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + callback.call(node, node.__data__, i, group); + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespaces.js +var xhtml = "http://www.w3.org/1999/xhtml"; +/* harmony default export */ var namespaces = ({ + svg: "http://www.w3.org/2000/svg", + xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespace.js + +/* harmony default export */ function namespace(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") + name = name.slice(i + 1); + return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name } : name; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/attr.js + +function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attrConstant(name, value) { + return function() { + this.setAttribute(name, value); + }; +} +function attrConstantNS(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; +} +function attrFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttribute(name); + else + this.setAttribute(name, v); + }; +} +function attrFunctionNS(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttributeNS(fullname.space, fullname.local); + else + this.setAttributeNS(fullname.space, fullname.local, v); + }; +} +/* harmony default export */ function attr(name, value) { + var fullname = namespace(name); + if (arguments.length < 2) { + var node = this.node(); + return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname); + } + return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === "function" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/window.js +/* harmony default export */ function src_window(node) { + return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/style.js + +function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function styleConstant(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; +} +function styleFunction(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.style.removeProperty(name); + else + this.style.setProperty(name, v, priority); + }; +} +/* harmony default export */ function style(name, value, priority) { + return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name); +} +function styleValue(node, name) { + return node.style.getPropertyValue(name) || src_window(node).getComputedStyle(node, null).getPropertyValue(name); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/property.js +function propertyRemove(name) { + return function() { + delete this[name]; + }; +} +function propertyConstant(name, value) { + return function() { + this[name] = value; + }; +} +function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + delete this[name]; + else + this[name] = v; + }; +} +/* harmony default export */ function property(name, value) { + return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/classed.js +function classArray(string) { + return string.trim().split(/^|\s+/); +} +function classList(node) { + return node.classList || new ClassList(node); +} +function ClassList(node) { + this._node = node; + this._names = classArray(node.getAttribute("class") || ""); +} +ClassList.prototype = { + add: function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + remove: function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + contains: function(name) { + return this._names.indexOf(name) >= 0; + } +}; +function classedAdd(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.add(names[i]); +} +function classedRemove(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.remove(names[i]); +} +function classedTrue(names) { + return function() { + classedAdd(this, names); + }; +} +function classedFalse(names) { + return function() { + classedRemove(this, names); + }; +} +function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; +} +/* harmony default export */ function classed(name, value) { + var names = classArray(name + ""); + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) + if (!list.contains(names[i])) + return false; + return true; + } + return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/text.js +function textRemove() { + this.textContent = ""; +} +function textConstant(value) { + return function() { + this.textContent = value; + }; +} +function textFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; +} +/* harmony default export */ function selection_text(value) { + return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction : textConstant)(value)) : this.node().textContent; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/html.js +function htmlRemove() { + this.innerHTML = ""; +} +function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; +} +function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; +} +/* harmony default export */ function html(value) { + return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/raise.js +function raise() { + if (this.nextSibling) + this.parentNode.appendChild(this); +} +/* harmony default export */ function selection_raise() { + return this.each(raise); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/lower.js +function lower() { + if (this.previousSibling) + this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +/* harmony default export */ function selection_lower() { + return this.each(lower); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/creator.js + + +function creatorInherit(name) { + return function() { + var document = this.ownerDocument, uri = this.namespaceURI; + return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name); + }; +} +function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; +} +/* harmony default export */ function creator(name) { + var fullname = namespace(name); + return (fullname.local ? creatorFixed : creatorInherit)(fullname); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/append.js + +/* harmony default export */ function append(name) { + var create = typeof name === "function" ? name : creator(name); + return this.select(function() { + return this.appendChild(create.apply(this, arguments)); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/insert.js + + +function constantNull() { + return null; +} +/* harmony default export */ function insert(name, before) { + var create = typeof name === "function" ? name : creator(name), select = before == null ? constantNull : typeof before === "function" ? before : selector(before); + return this.select(function() { + return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/remove.js +function remove() { + var parent = this.parentNode; + if (parent) + parent.removeChild(this); +} +/* harmony default export */ function selection_remove() { + return this.each(remove); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/clone.js +function selection_cloneShallow() { + var clone = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +function selection_cloneDeep() { + var clone = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +/* harmony default export */ function clone(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/datum.js +/* harmony default export */ function selection_datum(value) { + return arguments.length ? this.property("__data__", value) : this.node().__data__; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/on.js +function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; +} +function on_parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + return { type: t, name }; + }); +} +function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) + return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) + on.length = i; + else + delete this.__on; + }; +} +function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) + for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = { type: typename.type, name: typename.name, value, listener, options }; + if (!on) + this.__on = [o]; + else + on.push(o); + }; +} +/* harmony default export */ function on(typename, value, options) { + var typenames = on_parseTypenames(typename + ""), i, n = typenames.length, t; + if (arguments.length < 2) { + var on = this.node().__on; + if (on) + for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) + this.each(on(typenames[i], value, options)); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/dispatch.js + +function dispatchEvent(node, type, params) { + var window = src_window(node), event = window.CustomEvent; + if (typeof event === "function") { + event = new event(type, params); + } else { + event = window.document.createEvent("Event"); + if (params) + event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; + else + event.initEvent(type, false, false); + } + node.dispatchEvent(event); +} +function dispatchConstant(type, params) { + return function() { + return dispatchEvent(this, type, params); + }; +} +function dispatchFunction(type, params) { + return function() { + return dispatchEvent(this, type, params.apply(this, arguments)); + }; +} +/* harmony default export */ function selection_dispatch(type, params) { + return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type, params)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/iterator.js +/* harmony default export */ function* iterator() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + yield node; + } + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/index.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var root = [null]; +function Selection(groups, parents) { + this._groups = groups; + this._parents = parents; +} +function selection() { + return new Selection([[document.documentElement]], root); +} +function selection_selection() { + return this; +} +Selection.prototype = selection.prototype = { + constructor: Selection, + select: selection_select, + selectAll: selectAll, + selectChild: selectChild, + selectChildren: selectChildren, + filter: selection_filter, + data: data, + enter: enter, + exit: exit, + join: join, + merge: merge, + selection: selection_selection, + order: order, + sort: sort, + call: call, + nodes: nodes, + node: node, + size: size, + empty: selection_empty, + each: each, + attr: attr, + style: style, + property: property, + classed: classed, + text: selection_text, + html: html, + raise: selection_raise, + lower: selection_lower, + append: append, + insert: insert, + remove: selection_remove, + clone: clone, + datum: selection_datum, + on: on, + dispatch: selection_dispatch, + [Symbol.iterator]: iterator +}; +/* harmony default export */ var src_selection = (selection); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/select.js + +/* harmony default export */ function src_select(selector) { + return typeof selector === "string" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root); +} + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/noevent.js +const nonpassive = { passive: false }; +const nonpassivecapture = { capture: true, passive: false }; +function nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/nodrag.js + + +/* harmony default export */ function nodrag(view) { + var root = view.document.documentElement, selection = src_select(view).on("dragstart.drag", noevent, nonpassivecapture); + if ("onselectstart" in root) { + selection.on("selectstart.drag", noevent, nonpassivecapture); + } else { + root.__noselect = root.style.MozUserSelect; + root.style.MozUserSelect = "none"; + } +} +function yesdrag(view, noclick) { + var root = view.document.documentElement, selection = src_select(view).on("dragstart.drag", null); + if (noclick) { + selection.on("click.drag", noevent, nonpassivecapture); + setTimeout(function() { + selection.on("click.drag", null); + }, 0); + } + if ("onselectstart" in root) { + selection.on("selectstart.drag", null); + } else { + root.style.MozUserSelect = root.__noselect; + delete root.__noselect; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/sourceEvent.js +/* harmony default export */ function sourceEvent(event) { + let sourceEvent; + while (sourceEvent = event.sourceEvent) + event = sourceEvent; + return event; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/pointer.js + +/* harmony default export */ function src_pointer(event, node) { + event = sourceEvent(event); + if (node === void 0) + node = event.currentTarget; + if (node) { + var svg = node.ownerSVGElement || node; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + point.x = event.clientX, point.y = event.clientY; + point = point.matrixTransform(node.getScreenCTM().inverse()); + return [point.x, point.y]; + } + if (node.getBoundingClientRect) { + var rect = node.getBoundingClientRect(); + return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; + } + } + return [event.pageX, event.pageY]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timer.js +var timer_frame = 0, timeout = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { + setTimeout(f, 17); +}; +function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); +} +function clearNow() { + clockNow = 0; +} +function Timer() { + this._call = this._time = this._next = null; +} +Timer.prototype = timer.prototype = { + constructor: Timer, + restart: function(callback, delay, time) { + if (typeof callback !== "function") + throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) + taskTail._next = this; + else + taskHead = this; + taskTail = this; + } + this._call = callback; + this._time = time; + sleep(); + }, + stop: function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); + } + } +}; +function timer(callback, delay, time) { + var t = new Timer(); + t.restart(callback, delay, time); + return t; +} +function timerFlush() { + now(); + ++timer_frame; + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) + t._call.call(void 0, e); + t = t._next; + } + --timer_frame; +} +function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + timer_frame = timeout = 0; + try { + timerFlush(); + } finally { + timer_frame = 0; + nap(); + clockNow = 0; + } +} +function poke() { + var now2 = clock.now(), delay = now2 - clockLast; + if (delay > pokeDelay) + clockSkew -= delay, clockLast = now2; +} +function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) + time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } + } + taskTail = t0; + sleep(time); +} +function sleep(time) { + if (timer_frame) + return; + if (timeout) + timeout = clearTimeout(timeout); + var delay = time - clockNow; + if (delay > 24) { + if (time < Infinity) + timeout = setTimeout(wake, time - clock.now() - clockSkew); + if (interval) + interval = clearInterval(interval); + } else { + if (!interval) + clockLast = clock.now(), interval = setInterval(poke, pokeDelay); + timer_frame = 1, setFrame(wake); + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timeout.js + +/* harmony default export */ function src_timeout(callback, delay, time) { + var t = new Timer(); + delay = delay == null ? 0 : +delay; + t.restart((elapsed) => { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/schedule.js + + +var emptyOn = src_dispatch("start", "end", "cancel", "interrupt"); +var emptyTween = []; +var CREATED = 0; +var SCHEDULED = 1; +var STARTING = 2; +var STARTED = 3; +var RUNNING = 4; +var ENDING = 5; +var ENDED = 6; +/* harmony default export */ function schedule(node, name, id, index, group, timing) { + var schedules = node.__transition; + if (!schedules) + node.__transition = {}; + else if (id in schedules) + return; + create(node, id, { + name, + index, + // For context during callback. + group, + // For context during callback. + on: emptyOn, + tween: emptyTween, + time: timing.time, + delay: timing.delay, + duration: timing.duration, + ease: timing.ease, + timer: null, + state: CREATED + }); +} +function init(node, id) { + var schedule = schedule_get(node, id); + if (schedule.state > CREATED) + throw new Error("too late; already scheduled"); + return schedule; +} +function schedule_set(node, id) { + var schedule = schedule_get(node, id); + if (schedule.state > STARTED) + throw new Error("too late; already running"); + return schedule; +} +function schedule_get(node, id) { + var schedule = node.__transition; + if (!schedule || !(schedule = schedule[id])) + throw new Error("transition not found"); + return schedule; +} +function create(node, id, self) { + var schedules = node.__transition, tween; + schedules[id] = self; + self.timer = timer(schedule, 0, self.time); + function schedule(elapsed) { + self.state = SCHEDULED; + self.timer.restart(start, self.delay, self.time); + if (self.delay <= elapsed) + start(elapsed - self.delay); + } + function start(elapsed) { + var i, j, n, o; + if (self.state !== SCHEDULED) + return stop(); + for (i in schedules) { + o = schedules[i]; + if (o.name !== self.name) + continue; + if (o.state === STARTED) + return src_timeout(start); + if (o.state === RUNNING) { + o.state = ENDED; + o.timer.stop(); + o.on.call("interrupt", node, node.__data__, o.index, o.group); + delete schedules[i]; + } else if (+i < id) { + o.state = ENDED; + o.timer.stop(); + o.on.call("cancel", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + } + src_timeout(function() { + if (self.state === STARTED) { + self.state = RUNNING; + self.timer.restart(tick, self.delay, self.time); + tick(elapsed); + } + }); + self.state = STARTING; + self.on.call("start", node, node.__data__, self.index, self.group); + if (self.state !== STARTING) + return; + self.state = STARTED; + tween = new Array(n = self.tween.length); + for (i = 0, j = -1; i < n; ++i) { + if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { + tween[++j] = o; + } + } + tween.length = j + 1; + } + function tick(elapsed) { + var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length; + while (++i < n) { + tween[i].call(node, t); + } + if (self.state === ENDING) { + self.on.call("end", node, node.__data__, self.index, self.group); + stop(); + } + } + function stop() { + self.state = ENDED; + self.timer.stop(); + delete schedules[id]; + for (var i in schedules) + return; + delete node.__transition; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/interrupt.js + +/* harmony default export */ function interrupt(node, name) { + var schedules = node.__transition, schedule, active, empty = true, i; + if (!schedules) + return; + name = name == null ? null : name + ""; + for (i in schedules) { + if ((schedule = schedules[i]).name !== name) { + empty = false; + continue; + } + active = schedule.state > STARTING && schedule.state < ENDING; + schedule.state = ENDED; + schedule.timer.stop(); + schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); + delete schedules[i]; + } + if (empty) + delete node.__transition; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/interrupt.js + +/* harmony default export */ function selection_interrupt(name) { + return this.each(function() { + interrupt(this, name); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/decompose.js +var degrees = 180 / Math.PI; +var decompose_identity = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; +/* harmony default export */ function decompose(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) + a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) + c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) + c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) + a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees, + skewX: Math.atan(skewX) * degrees, + scaleX, + scaleY + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/parse.js + +var svgNode; +function parseCss(value) { + const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); + return m.isIdentity ? decompose_identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f); +} +function parseSvg(value) { + if (value == null) + return decompose_identity; + if (!svgNode) + svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) + return decompose_identity; + value = value.matrix; + return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/index.js + + +function interpolateTransform(parse, pxComma, pxParen, degParen) { + function pop(s) { + return s.length ? s.pop() + " " : ""; + } + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({ i: i - 4, x: number(xa, xb) }, { i: i - 2, x: number(ya, yb) }); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } + } + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) + b += 360; + else if (b - a > 180) + a += 360; + q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b) }); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); + } + } + function skewX(a, b, s, q) { + if (a !== b) { + q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b) }); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } + } + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({ i: i - 4, x: number(xa, xb) }, { i: i - 2, x: number(ya, yb) }); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + } + } + return function(a, b) { + var s = [], q = []; + a = parse(a), b = parse(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) + s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + }; +} +var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); +var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/tween.js + +function tweenRemove(id, name) { + var tween0, tween1; + return function() { + var schedule = schedule_set(this, id), tween = schedule.tween; + if (tween !== tween0) { + tween1 = tween0 = tween; + for (var i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1 = tween1.slice(); + tween1.splice(i, 1); + break; + } + } + } + schedule.tween = tween1; + }; +} +function tweenFunction(id, name, value) { + var tween0, tween1; + if (typeof value !== "function") + throw new Error(); + return function() { + var schedule = schedule_set(this, id), tween = schedule.tween; + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; + break; + } + } + if (i === n) + tween1.push(t); + } + schedule.tween = tween1; + }; +} +/* harmony default export */ function tween(name, value) { + var id = this._id; + name += ""; + if (arguments.length < 2) { + var tween = schedule_get(this.node(), id).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { + return t.value; + } + } + return null; + } + return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); +} +function tweenValue(transition, name, value) { + var id = transition._id; + transition.each(function() { + var schedule = schedule_set(this, id); + (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); + }); + return function(node) { + return schedule_get(node, id).value[name]; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/interpolate.js + + +/* harmony default export */ function interpolate(a, b) { + var c; + return (typeof b === "number" ? number : b instanceof color ? rgb : (c = color(b)) ? (b = c, rgb) : string)(a, b); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attr.js + + + + +function attr_attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attr_attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attr_attrConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttribute(name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attr_attrConstantNS(fullname, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttributeNS(fullname.space, fullname.local); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attr_attrFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttribute(name); + string0 = this.getAttribute(name); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function attr_attrFunctionNS(fullname, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttributeNS(fullname.space, fullname.local); + string0 = this.getAttributeNS(fullname.space, fullname.local); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +/* harmony default export */ function transition_attr(name, value) { + var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate; + return this.attrTween(name, typeof value === "function" ? (fullname.local ? attr_attrFunctionNS : attr_attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) : value == null ? (fullname.local ? attr_attrRemoveNS : attr_attrRemove)(fullname) : (fullname.local ? attr_attrConstantNS : attr_attrConstant)(fullname, i, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attrTween.js + +function attrInterpolate(name, i) { + return function(t) { + this.setAttribute(name, i.call(this, t)); + }; +} +function attrInterpolateNS(fullname, i) { + return function(t) { + this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); + }; +} +function attrTweenNS(fullname, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolateNS(fullname, i); + return t0; + } + tween._value = value; + return tween; +} +function attrTween(name, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolate(name, i); + return t0; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_attrTween(name, value) { + var key = "attr." + name; + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + var fullname = namespace(name); + return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/delay.js + +function delayFunction(id, value) { + return function() { + init(this, id).delay = +value.apply(this, arguments); + }; +} +function delayConstant(id, value) { + return value = +value, function() { + init(this, id).delay = value; + }; +} +/* harmony default export */ function delay(value) { + var id = this._id; + return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id, value)) : schedule_get(this.node(), id).delay; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/duration.js + +function durationFunction(id, value) { + return function() { + schedule_set(this, id).duration = +value.apply(this, arguments); + }; +} +function durationConstant(id, value) { + return value = +value, function() { + schedule_set(this, id).duration = value; + }; +} +/* harmony default export */ function duration(value) { + var id = this._id; + return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id, value)) : schedule_get(this.node(), id).duration; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/ease.js + +function easeConstant(id, value) { + if (typeof value !== "function") + throw new Error(); + return function() { + schedule_set(this, id).ease = value; + }; +} +/* harmony default export */ function ease(value) { + var id = this._id; + return arguments.length ? this.each(easeConstant(id, value)) : schedule_get(this.node(), id).ease; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/easeVarying.js + +function easeVarying(id, value) { + return function() { + var v = value.apply(this, arguments); + if (typeof v !== "function") + throw new Error(); + schedule_set(this, id).ease = v; + }; +} +/* harmony default export */ function transition_easeVarying(value) { + if (typeof value !== "function") + throw new Error(); + return this.each(easeVarying(this._id, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/filter.js + + +/* harmony default export */ function transition_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Transition(subgroups, this._parents, this._name, this._id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/merge.js + +/* harmony default export */ function transition_merge(transition) { + if (transition._id !== this._id) + throw new Error(); + for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Transition(merges, this._parents, this._name, this._id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/on.js + +function start(name) { + return (name + "").trim().split(/^|\s+/).every(function(t) { + var i = t.indexOf("."); + if (i >= 0) + t = t.slice(0, i); + return !t || t === "start"; + }); +} +function onFunction(id, name, listener) { + var on0, on1, sit = start(name) ? init : schedule_set; + return function() { + var schedule = sit(this, id), on = schedule.on; + if (on !== on0) + (on1 = (on0 = on).copy()).on(name, listener); + schedule.on = on1; + }; +} +/* harmony default export */ function transition_on(name, listener) { + var id = this._id; + return arguments.length < 2 ? schedule_get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/remove.js +function removeFunction(id) { + return function() { + var parent = this.parentNode; + for (var i in this.__transition) + if (+i !== id) + return; + if (parent) + parent.removeChild(this); + }; +} +/* harmony default export */ function transition_remove() { + return this.on("end.remove", removeFunction(this._id)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/select.js + + + +/* harmony default export */ function transition_select(select) { + var name = this._name, id = this._id; + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + schedule(subgroup[i], name, id, i, subgroup, schedule_get(node, id)); + } + } + } + return new Transition(subgroups, this._parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selectAll.js + + + +/* harmony default export */ function transition_selectAll(select) { + var name = this._name, id = this._id; + if (typeof select !== "function") + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + for (var children = select.call(node, node.__data__, i, group), child, inherit = schedule_get(node, id), k = 0, l = children.length; k < l; ++k) { + if (child = children[k]) { + schedule(child, name, id, k, children, inherit); + } + } + subgroups.push(children); + parents.push(node); + } + } + } + return new Transition(subgroups, parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selection.js + +var selection_Selection = src_selection.prototype.constructor; +/* harmony default export */ function transition_selection() { + return new selection_Selection(this._groups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/style.js + + + + + +function styleNull(name, interpolate2) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1); + }; +} +function style_styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function style_styleConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = styleValue(this, name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function style_styleFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + ""; + if (value1 == null) + string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function styleMaybeRemove(id, name) { + var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; + return function() { + var schedule = schedule_set(this, id), on = schedule.on, listener = schedule.value[key] == null ? remove || (remove = style_styleRemove(name)) : void 0; + if (on !== on0 || listener0 !== listener) + (on1 = (on0 = on).copy()).on(event, listener0 = listener); + schedule.on = on1; + }; +} +/* harmony default export */ function transition_style(name, value, priority) { + var i = (name += "") === "transform" ? interpolateTransformCss : interpolate; + return value == null ? this.styleTween(name, styleNull(name, i)).on("end.style." + name, style_styleRemove(name)) : typeof value === "function" ? this.styleTween(name, style_styleFunction(name, i, tweenValue(this, "style." + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, style_styleConstant(name, i, value), priority).on("end.style." + name, null); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/styleTween.js +function styleInterpolate(name, i, priority) { + return function(t) { + this.style.setProperty(name, i.call(this, t), priority); + }; +} +function styleTween(name, value, priority) { + var t, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t = (i0 = i) && styleInterpolate(name, i, priority); + return t; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_styleTween(name, value, priority) { + var key = "style." + (name += ""); + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/text.js + +function text_textConstant(value) { + return function() { + this.textContent = value; + }; +} +function text_textFunction(value) { + return function() { + var value1 = value(this); + this.textContent = value1 == null ? "" : value1; + }; +} +/* harmony default export */ function transition_text(value) { + return this.tween("text", typeof value === "function" ? text_textFunction(tweenValue(this, "text", value)) : text_textConstant(value == null ? "" : value + "")); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/textTween.js +function textInterpolate(i) { + return function(t) { + this.textContent = i.call(this, t); + }; +} +function textTween(value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && textInterpolate(i); + return t0; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_textTween(value) { + var key = "text"; + if (arguments.length < 1) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, textTween(value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/transition.js + + +/* harmony default export */ function transition() { + var name = this._name, id0 = this._id, id1 = newId(); + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + var inherit = schedule_get(node, id0); + schedule(node, name, id1, i, group, { + time: inherit.time + inherit.delay + inherit.duration, + delay: 0, + duration: inherit.duration, + ease: inherit.ease + }); + } + } + } + return new Transition(groups, this._parents, name, id1); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/end.js + +/* harmony default export */ function end() { + var on0, on1, that = this, id = that._id, size = that.size(); + return new Promise(function(resolve, reject) { + var cancel = { value: reject }, end = { value: function() { + if (--size === 0) + resolve(); + } }; + that.each(function() { + var schedule = schedule_set(this, id), on = schedule.on; + if (on !== on0) { + on1 = (on0 = on).copy(); + on1._.cancel.push(cancel); + on1._.interrupt.push(cancel); + on1._.end.push(end); + } + schedule.on = on1; + }); + if (size === 0) + resolve(); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/index.js + + + + + + + + + + + + + + + + + + + + + +var id = 0; +function Transition(groups, parents, name, id2) { + this._groups = groups; + this._parents = parents; + this._name = name; + this._id = id2; +} +function transition_transition(name) { + return src_selection().transition(name); +} +function newId() { + return ++id; +} +var selection_prototype = src_selection.prototype; +Transition.prototype = transition_transition.prototype = { + constructor: Transition, + select: transition_select, + selectAll: transition_selectAll, + selectChild: selection_prototype.selectChild, + selectChildren: selection_prototype.selectChildren, + filter: transition_filter, + merge: transition_merge, + selection: transition_selection, + transition: transition, + call: selection_prototype.call, + nodes: selection_prototype.nodes, + node: selection_prototype.node, + size: selection_prototype.size, + empty: selection_prototype.empty, + each: selection_prototype.each, + on: transition_on, + attr: transition_attr, + attrTween: transition_attrTween, + style: transition_style, + styleTween: transition_styleTween, + text: transition_text, + textTween: transition_textTween, + remove: transition_remove, + tween: tween, + delay: delay, + duration: duration, + ease: ease, + easeVarying: transition_easeVarying, + end: end, + [Symbol.iterator]: selection_prototype[Symbol.iterator] +}; + +;// CONCATENATED MODULE: ./node_modules/d3-ease/src/cubic.js +function cubicIn(t) { + return t * t * t; +} +function cubicOut(t) { + return --t * t * t + 1; +} +function cubicInOut(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/transition.js + + + + +var defaultTiming = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: cubicInOut +}; +function inherit(node, id) { + var timing; + while (!(timing = node.__transition) || !(timing = timing[id])) { + if (!(node = node.parentNode)) { + throw new Error(`transition ${id} not found`); + } + } + return timing; +} +/* harmony default export */ function selection_transition(name) { + var id, timing; + if (name instanceof Transition) { + id = name._id, name = name._name; + } else { + id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; + } + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + schedule(node, name, id, i, group, timing || inherit(node, id)); + } + } + } + return new Transition(groups, this._parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/index.js + + + +src_selection.prototype.interrupt = selection_interrupt; +src_selection.prototype.transition = selection_transition; + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/index.js + + + + + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/constant.js +/* harmony default export */ var d3_brush_src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/event.js +function BrushEvent(type, { + sourceEvent, + target, + selection, + mode, + dispatch +}) { + Object.defineProperties(this, { + type: { value: type, enumerable: true, configurable: true }, + sourceEvent: { value: sourceEvent, enumerable: true, configurable: true }, + target: { value: target, enumerable: true, configurable: true }, + selection: { value: selection, enumerable: true, configurable: true }, + mode: { value: mode, enumerable: true, configurable: true }, + _: { value: dispatch } + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/noevent.js +function noevent_nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function src_noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/brush.js + + + + + + + + +var MODE_DRAG = { name: "drag" }, MODE_SPACE = { name: "space" }, MODE_HANDLE = { name: "handle" }, MODE_CENTER = { name: "center" }; +const { abs, max, min } = Math; +function number1(e) { + return [+e[0], +e[1]]; +} +function number2(e) { + return [number1(e[0]), number1(e[1])]; +} +var X = { + name: "x", + handles: ["w", "e"].map(type), + input: function(x, e) { + return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; + }, + output: function(xy) { + return xy && [xy[0][0], xy[1][0]]; + } +}; +var Y = { + name: "y", + handles: ["n", "s"].map(type), + input: function(y, e) { + return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; + }, + output: function(xy) { + return xy && [xy[0][1], xy[1][1]]; + } +}; +var XY = { + name: "xy", + handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type), + input: function(xy) { + return xy == null ? null : number2(xy); + }, + output: function(xy) { + return xy; + } +}; +var cursors = { + overlay: "crosshair", + selection: "move", + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" +}; +var flipX = { + e: "w", + w: "e", + nw: "ne", + ne: "nw", + se: "sw", + sw: "se" +}; +var flipY = { + n: "s", + s: "n", + nw: "sw", + ne: "se", + se: "ne", + sw: "nw" +}; +var signsX = { + overlay: 1, + selection: 1, + n: null, + e: 1, + s: null, + w: -1, + nw: -1, + ne: 1, + se: 1, + sw: -1 +}; +var signsY = { + overlay: 1, + selection: 1, + n: -1, + e: null, + s: 1, + w: null, + nw: -1, + ne: -1, + se: 1, + sw: 1 +}; +function type(t) { + return { type: t }; +} +function defaultFilter(event) { + return !event.ctrlKey && !event.button; +} +function defaultExtent() { + var svg = this.ownerSVGElement || this; + if (svg.hasAttribute("viewBox")) { + svg = svg.viewBox.baseVal; + return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]]; + } + return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; +} +function defaultTouchable() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +function local(node) { + while (!node.__brush) + if (!(node = node.parentNode)) + return; + return node.__brush; +} +function brush_empty(extent) { + return extent[0][0] === extent[1][0] || extent[0][1] === extent[1][1]; +} +function brushSelection(node) { + var state = node.__brush; + return state ? state.dim.output(state.selection) : null; +} +function brushX() { + return brush_brush(X); +} +function brushY() { + return brush_brush(Y); +} +/* harmony default export */ function brush() { + return brush_brush(XY); +} +function brush_brush(dim) { + var extent = defaultExtent, filter = defaultFilter, touchable = defaultTouchable, keys = true, listeners = src_dispatch("start", "brush", "end"), handleSize = 6, touchending; + function brush2(group) { + var overlay = group.property("__brush", initialize).selectAll(".overlay").data([type("overlay")]); + overlay.enter().append("rect").attr("class", "overlay").attr("pointer-events", "all").attr("cursor", cursors.overlay).merge(overlay).each(function() { + var extent2 = local(this).extent; + src_select(this).attr("x", extent2[0][0]).attr("y", extent2[0][1]).attr("width", extent2[1][0] - extent2[0][0]).attr("height", extent2[1][1] - extent2[0][1]); + }); + group.selectAll(".selection").data([type("selection")]).enter().append("rect").attr("class", "selection").attr("cursor", cursors.selection).attr("fill", "#777").attr("fill-opacity", 0.3).attr("stroke", "#fff").attr("shape-rendering", "crispEdges"); + var handle = group.selectAll(".handle").data(dim.handles, function(d) { + return d.type; + }); + handle.exit().remove(); + handle.enter().append("rect").attr("class", function(d) { + return "handle handle--" + d.type; + }).attr("cursor", function(d) { + return cursors[d.type]; + }); + group.each(redraw).attr("fill", "none").attr("pointer-events", "all").on("mousedown.brush", started).filter(touchable).on("touchstart.brush", started).on("touchmove.brush", touchmoved).on("touchend.brush touchcancel.brush", touchended).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + brush2.move = function(group, selection, event) { + if (group.tween) { + group.on("start.brush", function(event2) { + emitter(this, arguments).beforestart().start(event2); + }).on("interrupt.brush end.brush", function(event2) { + emitter(this, arguments).end(event2); + }).tween("brush", function() { + var that = this, state = that.__brush, emit = emitter(that, arguments), selection0 = state.selection, selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), i = value(selection0, selection1); + function tween(t) { + state.selection = t === 1 && selection1 === null ? null : i(t); + redraw.call(that); + emit.brush(); + } + return selection0 !== null && selection1 !== null ? tween : tween(1); + }); + } else { + group.each(function() { + var that = this, args = arguments, state = that.__brush, selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), emit = emitter(that, args).beforestart(); + interrupt(that); + state.selection = selection1 === null ? null : selection1; + redraw.call(that); + emit.start(event).brush(event).end(event); + }); + } + }; + brush2.clear = function(group, event) { + brush2.move(group, null, event); + }; + function redraw() { + var group = src_select(this), selection = local(this).selection; + if (selection) { + group.selectAll(".selection").style("display", null).attr("x", selection[0][0]).attr("y", selection[0][1]).attr("width", selection[1][0] - selection[0][0]).attr("height", selection[1][1] - selection[0][1]); + group.selectAll(".handle").style("display", null).attr("x", function(d) { + return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; + }).attr("y", function(d) { + return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; + }).attr("width", function(d) { + return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; + }).attr("height", function(d) { + return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; + }); + } else { + group.selectAll(".selection,.handle").style("display", "none").attr("x", null).attr("y", null).attr("width", null).attr("height", null); + } + } + function emitter(that, args, clean) { + var emit = that.__brush.emitter; + return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean); + } + function Emitter(that, args, clean) { + this.that = that; + this.args = args; + this.state = that.__brush; + this.active = 0; + this.clean = clean; + } + Emitter.prototype = { + beforestart: function() { + if (++this.active === 1) + this.state.emitter = this, this.starting = true; + return this; + }, + start: function(event, mode) { + if (this.starting) + this.starting = false, this.emit("start", event, mode); + else + this.emit("brush", event); + return this; + }, + brush: function(event, mode) { + this.emit("brush", event, mode); + return this; + }, + end: function(event, mode) { + if (--this.active === 0) + delete this.state.emitter, this.emit("end", event, mode); + return this; + }, + emit: function(type2, event, mode) { + var d = src_select(this.that).datum(); + listeners.call( + type2, + this.that, + new BrushEvent(type2, { + sourceEvent: event, + target: brush2, + selection: dim.output(this.state.selection), + mode, + dispatch: listeners + }), + d + ); + } + }; + function started(event) { + if (touchending && !event.touches) + return; + if (!filter.apply(this, arguments)) + return; + var that = this, type2 = event.target.__data__.type, mode = (keys && event.metaKey ? type2 = "overlay" : type2) === "selection" ? MODE_DRAG : keys && event.altKey ? MODE_CENTER : MODE_HANDLE, signX = dim === Y ? null : signsX[type2], signY = dim === X ? null : signsY[type2], state = local(that), extent2 = state.extent, selection = state.selection, W = extent2[0][0], w0, w1, N = extent2[0][1], n0, n1, E = extent2[1][0], e0, e1, S = extent2[1][1], s0, s1, dx = 0, dy = 0, moving, shifting = signX && signY && keys && event.shiftKey, lockX, lockY, points = Array.from(event.touches || [event], (t) => { + const i = t.identifier; + t = src_pointer(t, that); + t.point0 = t.slice(); + t.identifier = i; + return t; + }); + interrupt(that); + var emit = emitter(that, arguments, true).beforestart(); + if (type2 === "overlay") { + if (selection) + moving = true; + const pts = [points[0], points[1] || points[0]]; + state.selection = selection = [[ + w0 = dim === Y ? W : min(pts[0][0], pts[1][0]), + n0 = dim === X ? N : min(pts[0][1], pts[1][1]) + ], [ + e0 = dim === Y ? E : max(pts[0][0], pts[1][0]), + s0 = dim === X ? S : max(pts[0][1], pts[1][1]) + ]]; + if (points.length > 1) + move(event); + } else { + w0 = selection[0][0]; + n0 = selection[0][1]; + e0 = selection[1][0]; + s0 = selection[1][1]; + } + w1 = w0; + n1 = n0; + e1 = e0; + s1 = s0; + var group = src_select(that).attr("pointer-events", "none"); + var overlay = group.selectAll(".overlay").attr("cursor", cursors[type2]); + if (event.touches) { + emit.moved = moved; + emit.ended = ended; + } else { + var view = src_select(event.view).on("mousemove.brush", moved, true).on("mouseup.brush", ended, true); + if (keys) + view.on("keydown.brush", keydowned, true).on("keyup.brush", keyupped, true); + nodrag(event.view); + } + redraw.call(that); + emit.start(event, mode.name); + function moved(event2) { + for (const p of event2.changedTouches || [event2]) { + for (const d of points) + if (d.identifier === p.identifier) + d.cur = src_pointer(p, that); + } + if (shifting && !lockX && !lockY && points.length === 1) { + const point = points[0]; + if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1])) + lockY = true; + else + lockX = true; + } + for (const point of points) + if (point.cur) + point[0] = point.cur[0], point[1] = point.cur[1]; + moving = true; + src_noevent(event2); + move(event2); + } + function move(event2) { + const point = points[0], point0 = point.point0; + var t; + dx = point[0] - point0[0]; + dy = point[1] - point0[1]; + switch (mode) { + case MODE_SPACE: + case MODE_DRAG: { + if (signX) + dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; + if (signY) + dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; + break; + } + case MODE_HANDLE: { + if (points[1]) { + if (signX) + w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1; + if (signY) + n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1; + } else { + if (signX < 0) + dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0; + else if (signX > 0) + dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx; + if (signY < 0) + dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0; + else if (signY > 0) + dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy; + } + break; + } + case MODE_CENTER: { + if (signX) + w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX)); + if (signY) + n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY)); + break; + } + } + if (e1 < w1) { + signX *= -1; + t = w0, w0 = e0, e0 = t; + t = w1, w1 = e1, e1 = t; + if (type2 in flipX) + overlay.attr("cursor", cursors[type2 = flipX[type2]]); + } + if (s1 < n1) { + signY *= -1; + t = n0, n0 = s0, s0 = t; + t = n1, n1 = s1, s1 = t; + if (type2 in flipY) + overlay.attr("cursor", cursors[type2 = flipY[type2]]); + } + if (state.selection) + selection = state.selection; + if (lockX) + w1 = selection[0][0], e1 = selection[1][0]; + if (lockY) + n1 = selection[0][1], s1 = selection[1][1]; + if (selection[0][0] !== w1 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) { + state.selection = [[w1, n1], [e1, s1]]; + redraw.call(that); + emit.brush(event2, mode.name); + } + } + function ended(event2) { + noevent_nopropagation(event2); + if (event2.touches) { + if (event2.touches.length) + return; + if (touchending) + clearTimeout(touchending); + touchending = setTimeout(function() { + touchending = null; + }, 500); + } else { + yesdrag(event2.view, moving); + view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); + } + group.attr("pointer-events", "all"); + overlay.attr("cursor", cursors.overlay); + if (state.selection) + selection = state.selection; + if (brush_empty(selection)) + state.selection = null, redraw.call(that); + emit.end(event2, mode.name); + } + function keydowned(event2) { + switch (event2.keyCode) { + case 16: { + shifting = signX && signY; + break; + } + case 18: { + if (mode === MODE_HANDLE) { + if (signX) + e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) + s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + move(event2); + } + break; + } + case 32: { + if (mode === MODE_HANDLE || mode === MODE_CENTER) { + if (signX < 0) + e0 = e1 - dx; + else if (signX > 0) + w0 = w1 - dx; + if (signY < 0) + s0 = s1 - dy; + else if (signY > 0) + n0 = n1 - dy; + mode = MODE_SPACE; + overlay.attr("cursor", cursors.selection); + move(event2); + } + break; + } + default: + return; + } + src_noevent(event2); + } + function keyupped(event2) { + switch (event2.keyCode) { + case 16: { + if (shifting) { + lockX = lockY = shifting = false; + move(event2); + } + break; + } + case 18: { + if (mode === MODE_CENTER) { + if (signX < 0) + e0 = e1; + else if (signX > 0) + w0 = w1; + if (signY < 0) + s0 = s1; + else if (signY > 0) + n0 = n1; + mode = MODE_HANDLE; + move(event2); + } + break; + } + case 32: { + if (mode === MODE_SPACE) { + if (event2.altKey) { + if (signX) + e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) + s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + } else { + if (signX < 0) + e0 = e1; + else if (signX > 0) + w0 = w1; + if (signY < 0) + s0 = s1; + else if (signY > 0) + n0 = n1; + mode = MODE_HANDLE; + } + overlay.attr("cursor", cursors[type2]); + move(event2); + } + break; + } + default: + return; + } + src_noevent(event2); + } + } + function touchmoved(event) { + emitter(this, arguments).moved(event); + } + function touchended(event) { + emitter(this, arguments).ended(event); + } + function initialize() { + var state = this.__brush || { selection: null }; + state.extent = number2(extent.apply(this, arguments)); + state.dim = dim; + return state; + } + brush2.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : d3_brush_src_constant(number2(_)), brush2) : extent; + }; + brush2.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush2) : filter; + }; + brush2.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush2) : touchable; + }; + brush2.handleSize = function(_) { + return arguments.length ? (handleSize = +_, brush2) : handleSize; + }; + brush2.keyModifiers = function(_) { + return arguments.length ? (keys = !!_, brush2) : keys; + }; + brush2.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? brush2 : value; + }; + return brush2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/index.js + + +;// CONCATENATED MODULE: ./src/module/browser.ts +function getGlobal() { + return typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && globalThis || typeof global === "object" && global !== null && global.Object === Object && global || typeof self === "object" && self !== null && self.Object === Object && self || Function("return this")(); +} +function getFallback(w) { + const hasRAF = typeof (w == null ? void 0 : w.requestAnimationFrame) === "function" && typeof (w == null ? void 0 : w.cancelAnimationFrame) === "function"; + const hasRIC = typeof (w == null ? void 0 : w.requestIdleCallback) === "function" && typeof (w == null ? void 0 : w.cancelIdleCallback) === "function"; + const request = (cb) => setTimeout(cb, 1); + const cancel = (id) => clearTimeout(id); + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +const win = getGlobal(); +const doc = win == null ? void 0 : win.document; +const [ + requestAnimationFrame, + cancelAnimationFrame, + requestIdleCallback, + cancelIdleCallback +] = getFallback(win); + + +;// CONCATENATED MODULE: ./src/module/util.ts +var util_defProp = Object.defineProperty; +var util_getOwnPropSymbols = Object.getOwnPropertySymbols; +var util_hasOwnProp = Object.prototype.hasOwnProperty; +var util_propIsEnum = Object.prototype.propertyIsEnumerable; +var util_defNormalProp = (obj, key, value) => key in obj ? util_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var util_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (util_hasOwnProp.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + if (util_getOwnPropSymbols) + for (var prop of util_getOwnPropSymbols(b)) { + if (util_propIsEnum.call(b, prop)) + util_defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + + +const isValue = (v) => v || v === 0; +const isFunction = (v) => typeof v === "function"; +const isString = (v) => typeof v === "string"; +const isNumber = (v) => typeof v === "number"; +const isUndefined = (v) => typeof v === "undefined"; +const isDefined = (v) => typeof v !== "undefined"; +const isBoolean = (v) => typeof v === "boolean"; +const ceil10 = (v) => Math.ceil(v / 10) * 10; +const asHalfPixel = (n) => Math.ceil(n) + 0.5; +const diffDomain = (d) => d[1] - d[0]; +const isObjectType = (v) => typeof v === "object"; +const isEmpty = (o) => isUndefined(o) || o === null || isString(o) && o.length === 0 || isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0 || isNumber(o) && isNaN(o); +const notEmpty = (o) => !isEmpty(o); +const isArray = (arr) => Array.isArray(arr); +const isObject = (obj) => obj && !(obj == null ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +function hasValue(dict, value) { + let found = false; + Object.keys(dict).forEach((key) => dict[key] === value && (found = true)); + return found; +} +function callFn(fn, thisArg, ...args) { + const isFn = isFunction(fn); + isFn && fn.call(thisArg, ...args); + return isFn; +} +function endall(transition, cb) { + let n = 0; + const end = function(...args) { + !--n && cb.apply(this, ...args); + }; + if ("duration" in transition) { + transition.each(() => ++n).on("end", end); + } else { + ++n; + transition.call(end); + } +} +function sanitize(str) { + return isString(str) ? str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : str; +} +function setTextValue(node, text, dy = [-1, 1], toMiddle = false) { + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } else { + const diff = [node.text(), text].map((v) => v.replace(/[\s\n]/g, "")); + if (diff[0] !== diff[1]) { + const multiline = text.split("\n"); + const len = toMiddle ? multiline.length - 1 : 1; + node.html(""); + multiline.forEach((v, i) => { + node.append("tspan").attr("x", 0).attr("dy", `${i === 0 ? dy[0] * len : dy[1]}em`).text(v); + }); + } + } +} +function getRectSegList(path) { + const { x, y, width, height } = path.getBBox(); + return [ + { x, y: y + height }, + // seg0 + { x, y }, + // seg1 + { x: x + width, y }, + // seg2 + { x: x + width, y: y + height } + // seg3 + ]; +} +function getPathBox(path) { + const { width, height } = path.getBoundingClientRect(); + const items = getRectSegList(path); + const x = items[0].x; + const y = Math.min(items[0].y, items[1].y); + return { + x, + y, + width, + height + }; +} +function getPointer(event, element) { + var _a; + const touches = event && ((_a = event.touches || event.sourceEvent && event.sourceEvent.touches) == null ? void 0 : _a[0]); + let pointer = [0, 0]; + try { + pointer = src_pointer(touches || event, element); + } catch (e) { + } + return pointer.map((v) => isNaN(v) ? 0 : v); +} +function getBrushSelection(ctx) { + const { event, $el } = ctx; + const main = $el.subchart.main || $el.main; + let selection; + if (event && event.type === "brush") { + selection = event.selection; + } else if (main && (selection = main.select(".bb-brush").node())) { + selection = brushSelection(selection); + } + return selection; +} +function getBoundingRect(node) { + const needEvaluate = !("rect" in node) || "rect" in node && node.hasAttribute("width") && node.rect.width !== +node.getAttribute("width"); + return needEvaluate ? node.rect = node.getBoundingClientRect() : node.rect; +} +function getRandom(asStr = true, min = 0, max = 1e4) { + const crpt = win.crypto || win.msCrypto; + const rand = crpt ? min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + const mid = Math.floor((start + end) / 2); + let { x, w = 0 } = arr[mid]; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? findIndex(arr, v, start, mid - 1, isRotated) : findIndex(arr, v, mid + 1, end, isRotated); +} +function brushEmpty(ctx) { + const selection = getBrushSelection(ctx); + if (selection) { + return selection[0] === selection[1]; + } + return true; +} +function deepClone(...objectN) { + const clone = (v) => { + if (isObject(v) && v.constructor) { + const r = new v.constructor(); + for (const k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map((v) => clone(v)).reduce((a, c) => util_spreadValues(util_spreadValues({}, a), c)); +} +function util_extend(target = {}, source) { + if (isArray(source)) { + source.forEach((v) => util_extend(target, v)); + } + for (const p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); +function camelize(str, separator = "-") { + return str.split(separator).map((v, i) => i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()).join(""); +} +const toArray = (v) => [].slice.call(v); +function addCssRules(style, selector, prop) { + const { rootSelector = "", sheet } = style; + const getSelector = (s) => s.replace(/\s?(bb-)/g, ".$1").replace(/\.+/g, "."); + const rule = `${rootSelector} ${getSelector(selector)} {${prop.join(";")}}`; + return sheet[sheet.insertRule ? "insertRule" : "addRule"]( + rule, + sheet.cssRules.length + ); +} +function getCssRules(styleSheets) { + let rules = []; + styleSheets.forEach((sheet) => { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } catch (e) { + (_a = win.console) == null ? void 0 : _a.warn(`Error while reading rules from ${sheet.href}: ${e.toString()}`); + } + }); + return rules; +} +function getScrollPosition(node) { + var _a, _b, _c, _d; + return { + x: ((_b = (_a = win.pageXOffset) != null ? _a : win.scrollX) != null ? _b : 0) + node.scrollLeft, + y: ((_d = (_c = win.pageYOffset) != null ? _c : win.scrollY) != null ? _d : 0) + node.scrollTop + }; +} +function getTranslation(node) { + const transform = node ? node.transform : null; + const baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? baseVal.getItem(0).matrix : { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +function getUnique(data) { + const isDate = data[0] instanceof Date; + const d = (isDate ? data.map(Number) : data).filter((v, i, self) => self.indexOf(v) === i); + return isDate ? d.map((v) => new Date(v)) : d; +} +function mergeArray(arr) { + return arr && arr.length ? arr.reduce((p, c) => p.concat(c)) : []; +} +function mergeObj(target, ...objectN) { + if (!objectN.length || objectN.length === 1 && !objectN[0]) { + return target; + } + const source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach((key) => { + const value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj(target, ...objectN); +} +function sortValue(data, isAsc = true) { + let fn; + if (data[0] instanceof Date) { + fn = isAsc ? (a, b) => a - b : (a, b) => b - a; + } else { + if (isAsc && !data.every(isNaN)) { + fn = (a, b) => a - b; + } else if (!isAsc) { + fn = (a, b) => a > b && -1 || a < b && 1 || a === b && 0; + } + } + return data.concat().sort(fn); +} +function getMinMax(type, data) { + let res = data.filter((v) => notEmpty(v)); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type](...res); + } else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } else { + res = void 0; + } + return res; +} +const getRange = (start, end, step = 1) => { + const res = []; + const n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (let i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +const emulateEvent = { + mouse: (() => { + const getParams = () => ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); + try { + new MouseEvent("t"); + return (el, eventType, params = getParams()) => { + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } catch (e) { + return (el, eventType, params = getParams()) => { + const mouseEvent = doc.createEvent("MouseEvent"); + mouseEvent.initMouseEvent( + eventType, + params.bubbles, + params.cancelable, + win, + 0, + // the event's mouse click count + params.screenX, + params.screenY, + params.clientX, + params.clientY, + false, + false, + false, + false, + 0, + null + ); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: (el, eventType, params) => { + const touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +function tplProcess(tpl, data) { + let res = tpl; + for (const x in data) { + res = res.replace(new RegExp(`{=${x}}`, "g"), data[x]); + } + return res; +} +function parseDate(date) { + var _a; + let parsedDate; + if (date instanceof Date) { + parsedDate = date; + } else if (isString(date)) { + const { config, format } = this; + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) != null ? _a : new Date(date); + } else if (isNumber(date) && !isNaN(date)) { + parsedDate = /* @__PURE__ */ new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && console.error(`Failed to parse x '${date}' to Date object`); + } + return parsedDate; +} +function isTabVisible() { + var _a, _b; + return ((_a = doc) == null ? void 0 : _a.hidden) === false || ((_b = doc) == null ? void 0 : _b.visibilityState) === "visible"; +} +function convertInputType(mouse, touch) { + const { DocumentTouch, matchMedia, navigator } = win; + let hasTouch = false; + if (touch) { + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + } else if ("ontouchmove" in win || DocumentTouch && doc instanceof DocumentTouch) { + hasTouch = true; + } else { + if (matchMedia == null ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } else { + const UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + const hasMouse = mouse && ((matchMedia == null ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia == null ? void 0 : matchMedia("any-pointer:fine").matches)); + return hasMouse && "mouse" || hasTouch && "touch" || "mouse"; +} +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(() => runUntil(fn, conditionFn)); + } else { + fn(); + } +} + +;// CONCATENATED MODULE: ./src/config/config.ts + +function loadConfig(config) { + const thisConfig = this.config; + let target; + let keys; + let read; + const find = () => { + const key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } else if (!key) { + return target; + } + return void 0; + }; + Object.keys(thisConfig).forEach((key) => { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + if (this.api) { + this.state.orgConfig = config; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/Plugin.ts +var Plugin_defProp = Object.defineProperty; +var Plugin_defNormalProp = (obj, key, value) => key in obj ? Plugin_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + Plugin_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class Plugin { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + constructor(options = {}) { + __publicField(this, "$$"); + __publicField(this, "options"); + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + $beforeInit() { + } + /** + * Lifecycle hook for 'init' phase. + * @private + */ + $init() { + } + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + $afterInit() { + } + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + $redraw() { + } + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + $willDestroy() { + Object.keys(this).forEach((key) => { + this[key] = null; + delete this[key]; + }); + } +} +__publicField(Plugin, "version", "3.12.4"); + +;// CONCATENATED MODULE: ./node_modules/d3-axis/src/identity.js +/* harmony default export */ function d3_axis_src_identity(x) { + return x; +} + +;// CONCATENATED MODULE: ./node_modules/d3-axis/src/axis.js + +var axis_top = 1, right = 2, bottom = 3, left = 4, epsilon = 1e-6; +function translateX(x) { + return "translate(" + x + ",0)"; +} +function translateY(y) { + return "translate(0," + y + ")"; +} +function axis_number(scale) { + return (d) => +scale(d); +} +function center(scale, offset) { + offset = Math.max(0, scale.bandwidth() - offset * 2) / 2; + if (scale.round()) + offset = Math.round(offset); + return (d) => +scale(d) + offset; +} +function entering() { + return !this.__axis; +} +function axis(orient, scale) { + var tickArguments = [], tickValues = null, tickFormat = null, tickSizeInner = 6, tickSizeOuter = 6, tickPadding = 3, offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, k = orient === axis_top || orient === left ? -1 : 1, x = orient === left || orient === right ? "x" : "y", transform = orient === axis_top || orient === bottom ? translateX : translateY; + function axis2(context) { + var values = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain() : tickValues, format = tickFormat == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : d3_axis_src_identity : tickFormat, spacing = Math.max(tickSizeInner, 0) + tickPadding, range = scale.range(), range0 = +range[0] + offset, range1 = +range[range.length - 1] + offset, position = (scale.bandwidth ? center : axis_number)(scale.copy(), offset), selection = context.selection ? context.selection() : context, path = selection.selectAll(".domain").data([null]), tick = selection.selectAll(".tick").data(values, scale).order(), tickExit = tick.exit(), tickEnter = tick.enter().append("g").attr("class", "tick"), line = tick.select("line"), text = tick.select("text"); + path = path.merge(path.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor")); + tick = tick.merge(tickEnter); + line = line.merge(tickEnter.append("line").attr("stroke", "currentColor").attr(x + "2", k * tickSizeInner)); + text = text.merge(tickEnter.append("text").attr("fill", "currentColor").attr(x, k * spacing).attr("dy", orient === axis_top ? "0em" : orient === bottom ? "0.71em" : "0.32em")); + if (context !== selection) { + path = path.transition(context); + tick = tick.transition(context); + line = line.transition(context); + text = text.transition(context); + tickExit = tickExit.transition(context).attr("opacity", epsilon).attr("transform", function(d) { + return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); + }); + tickEnter.attr("opacity", epsilon).attr("transform", function(d) { + var p = this.parentNode.__axis; + return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); + }); + } + tickExit.remove(); + path.attr("d", orient === left || orient === right ? tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1 : tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1); + tick.attr("opacity", 1).attr("transform", function(d) { + return transform(position(d) + offset); + }); + line.attr(x + "2", k * tickSizeInner); + text.attr(x, k * spacing).text(format); + selection.filter(entering).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle"); + selection.each(function() { + this.__axis = position; + }); + } + axis2.scale = function(_) { + return arguments.length ? (scale = _, axis2) : scale; + }; + axis2.ticks = function() { + return tickArguments = Array.from(arguments), axis2; + }; + axis2.tickArguments = function(_) { + return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis2) : tickArguments.slice(); + }; + axis2.tickValues = function(_) { + return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis2) : tickValues && tickValues.slice(); + }; + axis2.tickFormat = function(_) { + return arguments.length ? (tickFormat = _, axis2) : tickFormat; + }; + axis2.tickSize = function(_) { + return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis2) : tickSizeInner; + }; + axis2.tickSizeInner = function(_) { + return arguments.length ? (tickSizeInner = +_, axis2) : tickSizeInner; + }; + axis2.tickSizeOuter = function(_) { + return arguments.length ? (tickSizeOuter = +_, axis2) : tickSizeOuter; + }; + axis2.tickPadding = function(_) { + return arguments.length ? (tickPadding = +_, axis2) : tickPadding; + }; + axis2.offset = function(_) { + return arguments.length ? (offset = +_, axis2) : offset; + }; + return axis2; +} +function axisTop(scale) { + return axis(axis_top, scale); +} +function axisRight(scale) { + return axis(right, scale); +} +function axisBottom(scale) { + return axis(bottom, scale); +} +function axisLeft(scale) { + return axis(left, scale); +} + +;// CONCATENATED MODULE: ./src/Plugin/stanford/classes.ts +/* harmony default export */ var stanford_classes = ({ + colorScale: "bb-colorscale", + stanfordElements: "bb-stanford-elements", + stanfordLine: "bb-stanford-line", + stanfordLines: "bb-stanford-lines", + stanfordRegion: "bb-stanford-region", + stanfordRegions: "bb-stanford-regions" +}); + +;// CONCATENATED MODULE: ./src/Plugin/stanford/ColorScale.ts +var ColorScale_defProp = Object.defineProperty; +var ColorScale_defNormalProp = (obj, key, value) => key in obj ? ColorScale_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var ColorScale_publicField = (obj, key, value) => { + ColorScale_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + +class ColorScale { + constructor(owner) { + ColorScale_publicField(this, "owner"); + ColorScale_publicField(this, "colorScale"); + this.owner = owner; + } + drawColorScale() { + const { $$, config } = this.owner; + const target = $$.data.targets[0]; + const height = $$.state.height - config.padding_bottom - config.padding_top; + const barWidth = config.scale_width; + const barHeight = 5; + const points = getRange(config.padding_bottom, height, barHeight); + const inverseScale = sequential(target.colors).domain([points[points.length - 1], points[0]]); + if (this.colorScale) { + this.colorScale.remove(); + } + this.colorScale = $$.$el.svg.append("g").attr("width", 50).attr("height", height).attr("class", stanford_classes.colorScale); + this.colorScale.append("g").attr("transform", `translate(0, ${config.padding_top})`).selectAll("bars").data(points).enter().append("rect").attr("y", (d, i) => i * barHeight).attr("x", 0).attr("width", barWidth).attr("height", barHeight).attr("fill", (d) => inverseScale(d)); + const axisScale = symlog().domain([target.minEpochs, target.maxEpochs]).range([ + points[0] + config.padding_top + points[points.length - 1] + barHeight - 1, + points[0] + config.padding_top + ]); + const legendAxis = axisRight(axisScale); + const scaleFormat = config.scale_format; + if (scaleFormat === "pow10") { + legendAxis.tickValues([1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7]); + } else if (isFunction(scaleFormat)) { + legendAxis.tickFormat(scaleFormat); + } else { + legendAxis.tickFormat(format("d")); + } + const axis = this.colorScale.append("g").attr("class", "legend axis").attr("transform", `translate(${barWidth},0)`).call(legendAxis); + if (scaleFormat === "pow10") { + axis.selectAll(".tick text").text(null).filter((d) => d / Math.pow(10, Math.ceil(Math.log(d) / Math.LN10 - 1e-12)) === 1).text(10).append("tspan").attr("dy", "-.7em").text((d) => Math.round(Math.log(d) / Math.LN10)); + } + this.colorScale.attr( + "transform", + `translate(${$$.state.current.width - this.xForColorScale()}, 0)` + ); + } + xForColorScale() { + return this.owner.config.padding_right + this.colorScale.node().getBBox().width; + } + getColorScalePadding() { + return this.xForColorScale() + this.owner.config.padding_left + 20; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/stanford/util.ts + +function pointInRegion(point, region) { + const x = point.x; + const y = point.value; + let inside = false; + for (let i = 0, j = region.length - 1; i < region.length; j = i++) { + const xi = region[i].x; + const yi = region[i].y; + const xj = region[j].x; + const yj = region[j].y; + const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi; + if (intersect) { + inside = !inside; + } + } + return inside; +} +function compareEpochs(a, b) { + if (a.epochs < b.epochs) { + return -1; + } + if (a.epochs > b.epochs) { + return 1; + } + return 0; +} +function getRegionArea(points) { + let area = 0; + let point1; + let point2; + for (let i = 0, l = points.length, j = l - 1; i < l; j = i, i++) { + point1 = points[i]; + point2 = points[j]; + area += point1.x * point2.y; + area -= point1.y * point2.x; + } + area /= 2; + return area; +} +function getCentroid(points) { + const area = getRegionArea(points); + let x = 0; + let y = 0; + let f; + for (let i = 0, l = points.length, j = l - 1; i < l; j = i, i++) { + const point1 = points[i]; + const point2 = points[j]; + f = point1.x * point2.y - point2.x * point1.y; + x += (point1.x + point2.x) * f; + y += (point1.y + point2.y) * f; + } + f = area * 6; + return { + x: x / f, + y: y / f + }; +} + + +;// CONCATENATED MODULE: ./src/Plugin/stanford/Elements.ts +var Elements_defProp = Object.defineProperty; +var Elements_defNormalProp = (obj, key, value) => key in obj ? Elements_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var Elements_publicField = (obj, key, value) => { + Elements_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + +class Elements { + constructor(owner) { + Elements_publicField(this, "owner"); + this.owner = owner; + const elements = owner.$$.$el.main.select(".bb-chart").append("g").attr("class", stanford_classes.stanfordElements); + elements.append("g").attr("class", stanford_classes.stanfordLines); + elements.append("g").attr("class", stanford_classes.stanfordRegions); + } + updateStanfordLines(duration) { + const { $$ } = this.owner; + const { config, $el: { main } } = $$; + const isRotated = config.axis_rotated; + const xvCustom = this.xvCustom.bind($$); + const yvCustom = this.yvCustom.bind($$); + const stanfordLine = main.select(`.${stanford_classes.stanfordLines}`).style("shape-rendering", "geometricprecision").selectAll(`.${stanford_classes.stanfordLine}`).data(this.owner.config.lines); + stanfordLine.exit().transition().duration(duration).style("opacity", "0").remove(); + const stanfordLineEnter = stanfordLine.enter().append("g"); + stanfordLineEnter.append("line").style("opacity", "0"); + stanfordLineEnter.merge(stanfordLine).attr("class", (d) => stanford_classes.stanfordLine + (d.class ? ` ${d.class}` : "")).select("line").transition().duration(duration).attr("x1", (d) => { + const v = isRotated ? yvCustom(d, "y1") : xvCustom(d, "x1"); + return v; + }).attr("x2", (d) => isRotated ? yvCustom(d, "y2") : xvCustom(d, "x2")).attr("y1", (d) => { + const v = isRotated ? xvCustom(d, "x1") : yvCustom(d, "y1"); + return v; + }).attr("y2", (d) => isRotated ? xvCustom(d, "x2") : yvCustom(d, "y2")).transition().style("opacity", null); + } + updateStanfordRegions(duration) { + const { $$ } = this.owner; + const { config, $el: { main } } = $$; + const isRotated = config.axis_rotated; + const xvCustom = this.xvCustom.bind($$); + const yvCustom = this.yvCustom.bind($$); + const countPointsInRegion = this.owner.countEpochsInRegion.bind($$); + let stanfordRegion = main.select(`.${stanford_classes.stanfordRegions}`).selectAll(`.${stanford_classes.stanfordRegion}`).data(this.owner.config.regions); + stanfordRegion.exit().transition().duration(duration).style("opacity", "0").remove(); + const stanfordRegionEnter = stanfordRegion.enter().append("g"); + stanfordRegionEnter.append("polygon").style("opacity", "0"); + stanfordRegionEnter.append("text").attr("transform", isRotated ? "rotate(-90)" : "").style("opacity", "0"); + stanfordRegion = stanfordRegionEnter.merge(stanfordRegion); + stanfordRegion.attr("class", (d) => stanford_classes.stanfordRegion + (d.class ? ` ${d.class}` : "")).select("polygon").transition().duration(duration).attr("points", (d) => d.points.map( + (value) => [ + isRotated ? yvCustom(value, "y") : xvCustom(value, "x"), + isRotated ? xvCustom(value, "x") : yvCustom(value, "y") + ].join(",") + ).join(" ")).transition().style("opacity", (d) => String(d.opacity ? d.opacity : 0.2)); + stanfordRegion.select("text").transition().duration(duration).attr( + "x", + (d) => isRotated ? yvCustom(getCentroid(d.points), "y") : xvCustom(getCentroid(d.points), "x") + ).attr( + "y", + (d) => isRotated ? xvCustom(getCentroid(d.points), "x") : yvCustom(getCentroid(d.points), "y") + ).text((d) => { + if (d.text) { + const { value, percentage } = countPointsInRegion(d.points); + return d.text(value, percentage); + } + return ""; + }).attr("text-anchor", "middle").attr("dominant-baseline", "middle").transition().style("opacity", null); + } + updateStanfordElements(duration = 0) { + this.updateStanfordLines(duration); + this.updateStanfordRegions(duration); + } + xvCustom(d, xyValue) { + const $$ = this; + const { axis, config } = $$; + let value = xyValue ? d[xyValue] : $$.getBaseValue(d); + if (axis.isTimeSeries()) { + value = parseDate.call($$, value); + } else if (axis.isCategorized() && isString(value)) { + value = config.axis_x_categories.indexOf(d.value); + } + return Math.ceil($$.scale.x(value)); + } + yvCustom(d, xyValue) { + const $$ = this; + const yScale = d.axis && d.axis === "y2" ? $$.scale.y2 : $$.scale.y; + const value = xyValue ? d[xyValue] : $$.getBaseValue(d); + return Math.ceil(yScale(value)); + } +} + +;// CONCATENATED MODULE: ./src/Plugin/stanford/Options.ts +class Options { + constructor() { + return { + /** + * Set the color of the color scale. This function receives a value between 0 and 1, and should return a color. + * @name colors + * @memberof plugin-stanford + * @type {Function} + * @default undefined + * @example + * colors: d3.interpolateHslLong( + * d3.hsl(250, 1, 0.5), d3.hsl(0, 1, 0.5) + * ) + */ + colors: void 0, + /** + * Specify the key of epochs values in the data. + * @name epochs + * @memberof plugin-stanford + * @type {Array} + * @default [] + * @example + * epochs: [ 1, 1, 2, 2, ... ] + */ + epochs: [], + /** + * Show additional lines anywhere on the chart. + * - Each line object should consist with following options: + * + * | Key | Type | Description | + * | --- | --- | --- | + * | x1 | Number | Starting position on the x axis | + * | y1 | Number | Starting position on the y axis | + * | x2 | Number | Ending position on the x axis | + * | y2 | Number | Ending position on the y axis | + * | class | String | Optional value. Set a custom css class to this line. | + * @type {Array} + * @memberof plugin-stanford + * @default [] + * @example + * lines: [ + * { x1: 0, y1: 0, x2: 65, y2: 65, class: "line1" }, + * { x1: 0, x2: 65, y1: 40, y2: 40, class: "line2" } + * ] + */ + lines: [], + /** + * Set scale values + * @name scale + * @memberof plugin-stanford + * @type {object} + * @property {object} [scale] scale object + * @property {number} [scale.min=undefined] Minimum value of the color scale. Default: lowest value in epochs + * @property {number} [scale.max=undefined] Maximum value of the color scale. Default: highest value in epochs + * @property {number} [scale.width=20] Width of the color scale + * @property {string|Function} [scale.format=undefined] Format of the axis of the color scale. Use 'pow10' to format as powers of 10 or a custom function. Example: d3.format("d") + * @example + * scale: { + * max: 10000, + * min: 1, + * width: 500, + * + * // specify 'pow10' to format as powers of 10 + * format: "pow10", + * + * // or specify a format function + * format: function(x) { + * return x +"%"; + * } + * }, + */ + scale_min: void 0, + scale_max: void 0, + scale_width: 20, + scale_format: void 0, + /** + * The padding for color scale element + * @name padding + * @memberof plugin-stanford + * @type {object} + * @property {object} [padding] padding object + * @property {number} [padding.top=0] Top padding value. + * @property {number} [padding.right=0] Right padding value. + * @property {number} [padding.bottom=0] Bottom padding value. + * @property {number} [padding.left=0] Left padding value. + * @example + * padding: { + * top: 15, + * right: 0, + * bottom: 0, + * left: 0 + * }, + */ + padding_top: 0, + padding_right: 0, + padding_bottom: 0, + padding_left: 0, + /** + * Show additional regions anywhere on the chart. + * - Each region object should consist with following options: + * + * | Key | Type | Default | Attributes | Description | + * | --- | --- | --- | --- | --- | + * | points | Array | | | Accepts a group of objects that has x and y.<br>These points should be added in a counter-clockwise fashion to make a closed polygon. | + * | opacity | Number | `0.2` | <optional> | Sets the opacity of the region as value between 0 and 1 | + * | text | Function | | <optional> | This function receives a value and percentage of the number of epochs in this region.<br>Return a string to place text in the middle of the region. | + * | class | String | | <optional> | Se a custom css class to this region, use the fill property in css to set a background color. | + * @name regions + * @memberof plugin-stanford + * @type {Array} + * @default [] + * @example + * regions: [ + * { + * points: [ // add points counter-clockwise + * { x: 0, y: 0 }, + * { x: 40, y: 40 }, + * { x: 0, y: 40 }, + * ], + * text: function (value, percentage) { + * return `Normal Operations: ${value} (${percentage}%)`; + * }, + * opacity: 0.2, // 0 to 1 + * class: "test-polygon1" + * }, + * ... + * ] + */ + regions: [] + }; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/stanford/index.ts +var stanford_defProp = Object.defineProperty; +var stanford_defNormalProp = (obj, key, value) => key in obj ? stanford_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var stanford_publicField = (obj, key, value) => { + stanford_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + + + + + + +class Stanford extends Plugin { + constructor(options) { + super(options); + stanford_publicField(this, "config"); + stanford_publicField(this, "colorScale"); + stanford_publicField(this, "elements"); + this.config = new Options(); + return this; + } + $beforeInit() { + const { $$ } = this; + $$.config.data_xSort = false; + $$.isMultipleX = () => true; + $$.showGridFocus = () => { + }; + $$.labelishData = (d) => d.values; + $$.opacityForCircle = () => 1; + const getCurrentPadding = $$.getCurrentPadding.bind($$); + $$.getCurrentPadding = () => { + const padding = getCurrentPadding(); + padding.right += this.colorScale ? this.colorScale.getColorScalePadding() : 0; + return padding; + }; + } + $init() { + const { $$ } = this; + loadConfig.call(this, this.options); + $$.color = this.getStanfordPointColor.bind($$); + this.colorScale = new ColorScale(this); + this.elements = new Elements(this); + this.convertData(); + this.initStanfordData(); + this.setStanfordTooltip(); + this.colorScale.drawColorScale(); + $$.right += this.colorScale ? this.colorScale.getColorScalePadding() : 0; + this.$redraw(); + } + $redraw(duration) { + var _a, _b; + (_a = this.colorScale) == null ? void 0 : _a.drawColorScale(); + (_b = this.elements) == null ? void 0 : _b.updateStanfordElements(duration); + } + getOptions() { + return new Options(); + } + convertData() { + const data = this.$$.data.targets; + const epochs = this.options.epochs; + data.forEach((d) => { + d.values.forEach((v, i) => { + v.epochs = epochs[i]; + }); + d.minEpochs = void 0; + d.maxEpochs = void 0; + d.colors = void 0; + d.colorscale = void 0; + }); + } + initStanfordData() { + const { config } = this; + const target = this.$$.data.targets[0]; + target.values.sort(compareEpochs); + const epochs = target.values.map((a) => a.epochs); + target.minEpochs = !isNaN(config.scale_min) ? config.scale_min : Math.min(...epochs); + target.maxEpochs = !isNaN(config.scale_max) ? config.scale_max : Math.max(...epochs); + target.colors = isFunction(config.colors) ? config.colors : hslLong(hsl(250, 1, 0.5), hsl(0, 1, 0.5)); + target.colorscale = sequentialLog(target.colors).domain([target.minEpochs, target.maxEpochs]); + } + getStanfordPointColor(d) { + const target = this.data.targets[0]; + return target.colorscale(d.epochs); + } + setStanfordTooltip() { + const { config } = this.$$; + if (isEmpty(config.tooltip_contents)) { + config.tooltip_contents = function(d, defaultTitleFormat, defaultValueFormat, color) { + const { data_x } = config; + let html = `<table class="${$TOOLTIP.tooltip}"><tbody>`; + d.forEach((v) => { + const { id = "", value = 0, epochs = 0, x = "" } = v; + html += `<tr> + <th>${data_x || ""}</th> + <th class="value">${defaultTitleFormat(x)}</th> + </tr> + <tr> + <th>${v.id}</th> + <th class="value">${defaultValueFormat(value)}</th> + </tr> + <tr class="${$TOOLTIP.tooltipName}-${id}"> + <td class="name"><span style="background-color:${color(v)}"></span>Epochs</td> + <td class="value">${defaultValueFormat(epochs)}</td> + </tr>`; + }); + return `${html}</tbody></table>`; + }; + } + } + countEpochsInRegion(region) { + const $$ = this; + const target = $$.data.targets[0]; + const total = target.values.reduce( + (accumulator, currentValue) => accumulator + Number(currentValue.epochs), + 0 + ); + const value = target.values.reduce((accumulator, currentValue) => { + if (pointInRegion(currentValue, region)) { + return accumulator + Number(currentValue.epochs); + } + return accumulator; + }, 0); + return { + value, + percentage: value !== 0 ? +(value / total * 100).toFixed(1) : 0 + }; + } +} + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module used 'module' so it can't be inlined +/******/ __webpack_require__(0); +/******/ var __webpack_exports__ = __webpack_require__(562); +/******/ __webpack_exports__ = __webpack_exports__["default"]; +/******/ +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-stanford.pkgd.min.js b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-stanford.pkgd.min.js new file mode 100644 index 000000000..1dfb3e680 --- /dev/null +++ b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-stanford.pkgd.min.js @@ -0,0 +1,27 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */(function(Xr,Lr){typeof exports=="object"&&typeof module=="object"?module.exports=Lr():typeof define=="function"&&define.amd?define("bb",[],Lr):typeof exports=="object"?exports.bb=Lr():(Xr.bb=Xr.bb||{},Xr.bb.plugin=Xr.bb.plugin||{},Xr.bb.plugin["stanford.pkgd"]=Lr())})(this,function(){return function(){"use strict";var Me={33539:function(u,g,t){t.d(g,{default:function(){return mf}});function n(r,a,f){r.prototype=a.prototype=f,f.constructor=r}function e(r,a){var f=Object.create(r.prototype);for(var d in a)f[d]=a[d];return f}function o(){}var s=.7,i=1/s,l="\\s*([+-]?\\d+)\\s*",c="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",v="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",h=/^#([0-9a-f]{3,8})$/,p=new RegExp(`^rgb\\(${l},${l},${l}\\)$`),y=new RegExp(`^rgb\\(${v},${v},${v}\\)$`),x=new RegExp(`^rgba\\(${l},${l},${l},${c}\\)$`),S=new RegExp(`^rgba\\(${v},${v},${v},${c}\\)$`),O=new RegExp(`^hsl\\(${c},${v},${v}\\)$`),E=new RegExp(`^hsla\\(${c},${v},${v},${c}\\)$`),A={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};n(o,R,{copy(r){return Object.assign(new this.constructor,this,r)},displayable(){return this.rgb().displayable()},hex:M,formatHex:M,formatHex8:P,formatHsl:C,formatRgb:F,toString:F});function M(){return this.rgb().formatHex()}function P(){return this.rgb().formatHex8()}function C(){return k(this).formatHsl()}function F(){return this.rgb().formatRgb()}function R(r){var a,f;return r=(r+"").trim().toLowerCase(),(a=h.exec(r))?(f=a[1].length,a=parseInt(a[1],16),f===6?N(a):f===3?new B(a>>8&15|a>>4&240,a>>4&15|a&240,(a&15)<<4|a&15,1):f===8?D(a>>24&255,a>>16&255,a>>8&255,(a&255)/255):f===4?D(a>>12&15|a>>8&240,a>>8&15|a>>4&240,a>>4&15|a&240,((a&15)<<4|a&15)/255):null):(a=p.exec(r))?new B(a[1],a[2],a[3],1):(a=y.exec(r))?new B(a[1]*255/100,a[2]*255/100,a[3]*255/100,1):(a=x.exec(r))?D(a[1],a[2],a[3],a[4]):(a=S.exec(r))?D(a[1]*255/100,a[2]*255/100,a[3]*255/100,a[4]):(a=O.exec(r))?rt(a[1],a[2]/100,a[3]/100,1):(a=E.exec(r))?rt(a[1],a[2]/100,a[3]/100,a[4]):A.hasOwnProperty(r)?N(A[r]):r==="transparent"?new B(NaN,NaN,NaN,0):null}function N(r){return new B(r>>16&255,r>>8&255,r&255,1)}function D(r,a,f,d){return d<=0&&(r=a=f=NaN),new B(r,a,f,d)}function j(r){return r instanceof o||(r=R(r)),r?(r=r.rgb(),new B(r.r,r.g,r.b,r.opacity)):new B}function U(r,a,f,d){return arguments.length===1?j(r):new B(r,a,f,d==null?1:d)}function B(r,a,f,d){this.r=+r,this.g=+a,this.b=+f,this.opacity=+d}n(B,U,e(o,{brighter(r){return r=r==null?i:Math.pow(i,r),new B(this.r*r,this.g*r,this.b*r,this.opacity)},darker(r){return r=r==null?s:Math.pow(s,r),new B(this.r*r,this.g*r,this.b*r,this.opacity)},rgb(){return this},clamp(){return new B(V(this.r),V(this.g),V(this.b),G(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:H,formatHex:H,formatHex8:z,formatRgb:w,toString:w}));function H(){return`#${J(this.r)}${J(this.g)}${J(this.b)}`}function z(){return`#${J(this.r)}${J(this.g)}${J(this.b)}${J((isNaN(this.opacity)?1:this.opacity)*255)}`}function w(){const r=G(this.opacity);return`${r===1?"rgb(":"rgba("}${V(this.r)}, ${V(this.g)}, ${V(this.b)}${r===1?")":`, ${r})`}`}function G(r){return isNaN(r)?1:Math.max(0,Math.min(1,r))}function V(r){return Math.max(0,Math.min(255,Math.round(r)||0))}function J(r){return r=V(r),(r<16?"0":"")+r.toString(16)}function rt(r,a,f,d){return d<=0?r=a=f=NaN:f<=0||f>=1?r=a=NaN:a<=0&&(r=NaN),new _(r,a,f,d)}function k(r){if(r instanceof _)return new _(r.h,r.s,r.l,r.opacity);if(r instanceof o||(r=R(r)),!r)return new _;if(r instanceof _)return r;r=r.rgb();var a=r.r/255,f=r.g/255,d=r.b/255,m=Math.min(a,f,d),I=Math.max(a,f,d),T=NaN,b=I-m,L=(I+m)/2;return b?(a===I?T=(f-d)/b+(f<d)*6:f===I?T=(d-a)/b+2:T=(a-f)/b+4,b/=L<.5?I+m:2-I-m,T*=60):b=L>0&&L<1?0:T,new _(T,b,L,r.opacity)}function ot(r,a,f,d){return arguments.length===1?k(r):new _(r,a,f,d==null?1:d)}function _(r,a,f,d){this.h=+r,this.s=+a,this.l=+f,this.opacity=+d}n(_,ot,e(o,{brighter(r){return r=r==null?i:Math.pow(i,r),new _(this.h,this.s,this.l*r,this.opacity)},darker(r){return r=r==null?s:Math.pow(s,r),new _(this.h,this.s,this.l*r,this.opacity)},rgb(){var r=this.h%360+(this.h<0)*360,a=isNaN(r)||isNaN(this.s)?0:this.s,f=this.l,d=f+(f<.5?f:1-f)*a,m=2*f-d;return new B(xt(r>=240?r-240:r+120,m,d),xt(r,m,d),xt(r<120?r+240:r-120,m,d),this.opacity)},clamp(){return new _(mt(this.h),ct(this.s),ct(this.l),G(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const r=G(this.opacity);return`${r===1?"hsl(":"hsla("}${mt(this.h)}, ${ct(this.s)*100}%, ${ct(this.l)*100}%${r===1?")":`, ${r})`}`}}));function mt(r){return r=(r||0)%360,r<0?r+360:r}function ct(r){return Math.max(0,Math.min(1,r||0))}function xt(r,a,f){return(r<60?a+(f-a)*r/60:r<180?f:r<240?a+(f-a)*(240-r)/60:a)*255}var It=r=>()=>r;function Ct(r,a){return function(f){return r+f*a}}function Yt(r,a,f){return r=Math.pow(r,f),a=Math.pow(a,f)-r,f=1/f,function(d){return Math.pow(r+d*a,f)}}function Wt(r,a){var f=a-r;return f?Ct(r,f>180||f<-180?f-360*Math.round(f/360):f):It(isNaN(r)?a:r)}function Bt(r){return(r=+r)==1?vt:function(a,f){return f-a?Yt(a,f,r):It(isNaN(a)?f:a)}}function vt(r,a){var f=a-r;return f?Ct(r,f):It(isNaN(r)?a:r)}function St(r){return function(a,f){var d=r((a=ot(a)).h,(f=ot(f)).h),m=vt(a.s,f.s),I=vt(a.l,f.l),T=vt(a.opacity,f.opacity);return function(b){return a.h=d(b),a.s=m(b),a.l=I(b),a.opacity=T(b),a+""}}}var bt=St(Wt),Lt=St(vt);function Ft(r,a,f,d,m){var I=r*r,T=I*r;return((1-3*r+3*I-T)*a+(4-6*I+3*T)*f+(1+3*r+3*I-3*T)*d+T*m)/6}function jt(r){var a=r.length-1;return function(f){var d=f<=0?f=0:f>=1?(f=1,a-1):Math.floor(f*a),m=r[d],I=r[d+1],T=d>0?r[d-1]:2*m-I,b=d<a-1?r[d+2]:2*I-m;return Ft((f-d/a)*a,T,m,I,b)}}function tr(r){var a=r.length;return function(f){var d=Math.floor(((f%=1)<0?++f:f)*a),m=r[(d+a-1)%a],I=r[d%a],T=r[(d+1)%a],b=r[(d+2)%a];return Ft((f-d/a)*a,m,I,T,b)}}var rr=function r(a){var f=Bt(a);function d(m,I){var T=f((m=U(m)).r,(I=U(I)).r),b=f(m.g,I.g),L=f(m.b,I.b),$=vt(m.opacity,I.opacity);return function(W){return m.r=T(W),m.g=b(W),m.b=L(W),m.opacity=$(W),m+""}}return d.gamma=r,d}(1);function Jt(r){return function(a){var f=a.length,d=new Array(f),m=new Array(f),I=new Array(f),T,b;for(T=0;T<f;++T)b=U(a[T]),d[T]=b.r||0,m[T]=b.g||0,I[T]=b.b||0;return d=r(d),m=r(m),I=r(I),b.opacity=1,function(L){return b.r=d(L),b.g=m(L),b.b=I(L),b+""}}}var wt=Jt(jt),_t=Jt(tr);function Kt(r,a){return(isNumberArray(a)?numberArray:Gt)(r,a)}function Gt(r,a){var f=a?a.length:0,d=r?Math.min(f,r.length):0,m=new Array(d),I=new Array(f),T;for(T=0;T<d;++T)m[T]=it(r[T],a[T]);for(;T<f;++T)I[T]=a[T];return function(b){for(T=0;T<d;++T)I[T]=m[T](b);return I}}function ft(r,a){var f=new Date;return r=+r,a=+a,function(d){return f.setTime(r*(1-d)+a*d),f}}function dt(r,a){return r=+r,a=+a,function(f){return r*(1-f)+a*f}}function at(r,a){var f={},d={},m;(r===null||typeof r!="object")&&(r={}),(a===null||typeof a!="object")&&(a={});for(m in a)m in r?f[m]=it(r[m],a[m]):d[m]=a[m];return function(I){for(m in f)d[m]=f[m](I);return d}}var At=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Pt=new RegExp(At.source,"g");function Ot(r){return function(){return r}}function Et(r){return function(a){return r(a)+""}}function ar(r,a){var f=At.lastIndex=Pt.lastIndex=0,d,m,I,T=-1,b=[],L=[];for(r=r+"",a=a+"";(d=At.exec(r))&&(m=Pt.exec(a));)(I=m.index)>f&&(I=a.slice(f,I),b[T]?b[T]+=I:b[++T]=I),(d=d[0])===(m=m[0])?b[T]?b[T]+=m:b[++T]=m:(b[++T]=null,L.push({i:T,x:dt(d,m)})),f=Pt.lastIndex;return f<a.length&&(I=a.slice(f),b[T]?b[T]+=I:b[++T]=I),b.length<2?L[0]?Et(L[0].x):Ot(a):(a=L.length,function($){for(var W=0,K;W<a;++W)b[(K=L[W]).i]=K.x($);return b.join("")})}function lr(r,a){a||(a=[]);var f=r?Math.min(a.length,r.length):0,d=a.slice(),m;return function(I){for(m=0;m<f;++m)d[m]=r[m]*(1-I)+a[m]*I;return d}}function q(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}function it(r,a){var f=typeof a,d;return a==null||f==="boolean"?It(a):(f==="number"?dt:f==="string"?(d=R(a))?(a=d,rr):ar:a instanceof R?rr:a instanceof Date?ft:q(a)?lr:Array.isArray(a)?Gt:typeof a.valueOf!="function"&&typeof a.toString!="function"||isNaN(a)?at:dt)(r,a)}function lt(r,a){return r=+r,a=+a,function(f){return Math.round(r*(1-f)+a*f)}}function X(r,a){return r==null||a==null?NaN:r<a?-1:r>a?1:r>=a?0:NaN}function nt(r,a){return r==null||a==null?NaN:a<r?-1:a>r?1:a>=r?0:NaN}function Q(r){let a,f,d;r.length!==2?(a=X,f=(b,L)=>X(r(b),L),d=(b,L)=>r(b)-L):(a=r===X||r===nt?r:yt,f=r,d=r);function m(b,L,$=0,W=b.length){if($<W){if(a(L,L)!==0)return W;do{const K=$+W>>>1;f(b[K],L)<0?$=K+1:W=K}while($<W)}return $}function I(b,L,$=0,W=b.length){if($<W){if(a(L,L)!==0)return W;do{const K=$+W>>>1;f(b[K],L)<=0?$=K+1:W=K}while($<W)}return $}function T(b,L,$=0,W=b.length){const K=m(b,L,$,W-1);return K>$&&d(b[K-1],L)>-d(b[K],L)?K-1:K}return{left:m,center:T,right:I}}function yt(){return 0}function Nt(r){return r===null?NaN:+r}function*$t(r,a){if(a===void 0)for(let f of r)f!=null&&(f=+f)>=f&&(yield f);else{let f=-1;for(let d of r)(d=a(d,++f,r))!=null&&(d=+d)>=d&&(yield d)}}const Xt=Q(X),Qt=Xt.right,Zt=Xt.left,mr=Q(Nt).center;var Jr=Qt;function rn(r){return function(){return r}}function nn(r){return+r}var en=[0,1];function $r(r){return r}function qr(r,a){return(a-=r=+r)?function(f){return(f-r)/a}:rn(isNaN(a)?NaN:.5)}function dn(r,a){var f;return r>a&&(f=r,r=a,a=f),function(d){return Math.max(r,Math.min(a,d))}}function Mn(r,a,f){var d=r[0],m=r[1],I=a[0],T=a[1];return m<d?(d=qr(m,d),I=f(T,I)):(d=qr(d,m),I=f(I,T)),function(b){return I(d(b))}}function hn(r,a,f){var d=Math.min(r.length,a.length)-1,m=new Array(d),I=new Array(d),T=-1;for(r[d]<r[0]&&(r=r.slice().reverse(),a=a.slice().reverse());++T<d;)m[T]=qr(r[T],r[T+1]),I[T]=f(a[T],a[T+1]);return function(b){var L=Jr(r,b,1,d)-1;return I[L](m[L](b))}}function Qr(r,a){return a.domain(r.domain()).range(r.range()).interpolate(r.interpolate()).clamp(r.clamp()).unknown(r.unknown())}function Fr(){var r=en,a=en,f=it,d,m,I,T=$r,b,L,$;function W(){var et=Math.min(r.length,a.length);return T!==$r&&(T=dn(r[0],r[et-1])),b=et>2?hn:Mn,L=$=null,K}function K(et){return et==null||isNaN(et=+et)?I:(L||(L=b(r.map(d),a,f)))(d(T(et)))}return K.invert=function(et){return T(m(($||($=b(a,r.map(d),dt)))(et)))},K.domain=function(et){return arguments.length?(r=Array.from(et,nn),W()):r.slice()},K.range=function(et){return arguments.length?(a=Array.from(et),W()):a.slice()},K.rangeRound=function(et){return a=Array.from(et),f=lt,W()},K.clamp=function(et){return arguments.length?(T=et?!0:$r,W()):T!==$r},K.interpolate=function(et){return arguments.length?(f=et,W()):f},K.unknown=function(et){return arguments.length?(I=et,K):I},function(et,st){return d=et,m=st,W()}}function ee(){return Fr()($r,$r)}function Wr(r,a){switch(arguments.length){case 0:break;case 1:this.range(r);break;default:this.range(a).domain(r);break}return this}function Ur(r,a){switch(arguments.length){case 0:break;case 1:{typeof r=="function"?this.interpolator(r):this.range(r);break}default:{this.domain(r),typeof a=="function"?this.interpolator(a):this.range(a);break}}return this}const gn=Math.sqrt(50),Zr=Math.sqrt(10),Tr=Math.sqrt(2);function Rr(r,a,f){const d=(a-r)/Math.max(0,f),m=Math.floor(Math.log10(d)),I=d/Math.pow(10,m),T=I>=gn?10:I>=Zr?5:I>=Tr?2:1;let b,L,$;return m<0?($=Math.pow(10,-m)/T,b=Math.round(r*$),L=Math.round(a*$),b/$<r&&++b,L/$>a&&--L,$=-$):($=Math.pow(10,m)*T,b=Math.round(r/$),L=Math.round(a/$),b*$<r&&++b,L*$>a&&--L),L<b&&.5<=f&&f<2?Rr(r,a,f*2):[b,L,$]}function an(r,a,f){if(a=+a,r=+r,f=+f,!(f>0))return[];if(r===a)return[r];const d=a<r,[m,I,T]=d?Rr(a,r,f):Rr(r,a,f);if(!(I>=m))return[];const b=I-m+1,L=new Array(b);if(d)if(T<0)for(let $=0;$<b;++$)L[$]=(I-$)/-T;else for(let $=0;$<b;++$)L[$]=(I-$)*T;else if(T<0)for(let $=0;$<b;++$)L[$]=(m+$)/-T;else for(let $=0;$<b;++$)L[$]=(m+$)*T;return L}function on(r,a,f){return a=+a,r=+r,f=+f,Rr(r,a,f)[2]}function Z(r,a,f){a=+a,r=+r,f=+f;const d=a<r,m=d?on(a,r,f):on(r,a,f);return(d?-1:1)*(m<0?1/-m:m)}var gt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tt(r){if(!(a=gt.exec(r)))throw new Error("invalid format: "+r);var a;return new Y({fill:a[1],align:a[2],sign:a[3],symbol:a[4],zero:a[5],width:a[6],comma:a[7],precision:a[8]&&a[8].slice(1),trim:a[9],type:a[10]})}tt.prototype=Y.prototype;function Y(r){this.fill=r.fill===void 0?" ":r.fill+"",this.align=r.align===void 0?">":r.align+"",this.sign=r.sign===void 0?"-":r.sign+"",this.symbol=r.symbol===void 0?"":r.symbol+"",this.zero=!!r.zero,this.width=r.width===void 0?void 0:+r.width,this.comma=!!r.comma,this.precision=r.precision===void 0?void 0:+r.precision,this.trim=!!r.trim,this.type=r.type===void 0?"":r.type+""}Y.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function ut(r){return Math.abs(r=Math.round(r))>=1e21?r.toLocaleString("en").replace(/,/g,""):r.toString(10)}function zt(r,a){if((f=(r=a?r.toExponential(a-1):r.toExponential()).indexOf("e"))<0)return null;var f,d=r.slice(0,f);return[d.length>1?d[0]+d.slice(2):d,+r.slice(f+1)]}function Tt(r){return r=zt(Math.abs(r)),r?r[1]:NaN}function dr(r,a){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Tt(a)/3)))*3-Tt(Math.abs(r)))}function yr(r,a){return function(f,d){for(var m=f.length,I=[],T=0,b=r[0],L=0;m>0&&b>0&&(L+b+1>d&&(b=Math.max(1,d-L)),I.push(f.substring(m-=b,m+b)),!((L+=b+1)>d));)b=r[T=(T+1)%r.length];return I.reverse().join(a)}}function Sr(r){return function(a){return a.replace(/[0-9]/g,function(f){return r[+f]})}}function Nr(r){t:for(var a=r.length,f=1,d=-1,m;f<a;++f)switch(r[f]){case".":d=m=f;break;case"0":d===0&&(d=f),m=f;break;default:if(!+r[f])break t;d>0&&(d=0);break}return d>0?r.slice(0,d)+r.slice(m+1):r}var ht;function xr(r,a){var f=zt(r,a);if(!f)return r+"";var d=f[0],m=f[1],I=m-(ht=Math.max(-8,Math.min(8,Math.floor(m/3)))*3)+1,T=d.length;return I===T?d:I>T?d+new Array(I-T+1).join("0"):I>0?d.slice(0,I)+"."+d.slice(I):"0."+new Array(1-I).join("0")+zt(r,Math.max(0,a+I-1))[0]}function Br(r,a){var f=zt(r,a);if(!f)return r+"";var d=f[0],m=f[1];return m<0?"0."+new Array(-m).join("0")+d:d.length>m+1?d.slice(0,m+1)+"."+d.slice(m+1):d+new Array(m-d.length+2).join("0")}var sn={"%":(r,a)=>(r*100).toFixed(a),b:r=>Math.round(r).toString(2),c:r=>r+"",d:ut,e:(r,a)=>r.toExponential(a),f:(r,a)=>r.toFixed(a),g:(r,a)=>r.toPrecision(a),o:r=>Math.round(r).toString(8),p:(r,a)=>Br(r*100,a),r:Br,s:xr,X:r=>Math.round(r).toString(16).toUpperCase(),x:r=>Math.round(r).toString(16)};function pn(r){return r}var yn=Array.prototype.map,un=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Ba(r){var a=r.grouping===void 0||r.thousands===void 0?pn:yr(yn.call(r.grouping,Number),r.thousands+""),f=r.currency===void 0?"":r.currency[0]+"",d=r.currency===void 0?"":r.currency[1]+"",m=r.decimal===void 0?".":r.decimal+"",I=r.numerals===void 0?pn:Sr(yn.call(r.numerals,String)),T=r.percent===void 0?"%":r.percent+"",b=r.minus===void 0?"\u2212":r.minus+"",L=r.nan===void 0?"NaN":r.nan+"";function $(K){K=tt(K);var et=K.fill,st=K.align,Vt=K.sign,er=K.symbol,pt=K.zero,Rt=K.width,Ut=K.comma,Mt=K.precision,kt=K.trim,Ht=K.type;Ht==="n"?(Ut=!0,Ht="g"):sn[Ht]||(Mt===void 0&&(Mt=12),kt=!0,Ht="g"),(pt||et==="0"&&st==="=")&&(pt=!0,et="0",st="=");var cr=er==="$"?f:er==="#"&&/[boxX]/.test(Ht)?"0"+Ht.toLowerCase():"",hr=er==="$"?d:/[%p]/.test(Ht)?T:"",ir=sn[Ht],Ar=/[defgprs%]/.test(Ht);Mt=Mt===void 0?6:/[gprs]/.test(Ht)?Math.max(1,Math.min(21,Mt)):Math.max(0,Math.min(20,Mt));function or(Dt){var fr=cr,nr=hr,vr,Gr,gr;if(Ht==="c")nr=ir(Dt)+nr,Dt="";else{Dt=+Dt;var pr=Dt<0||1/Dt<0;if(Dt=isNaN(Dt)?L:ir(Math.abs(Dt),Mt),kt&&(Dt=Nr(Dt)),pr&&+Dt==0&&Vt!=="+"&&(pr=!1),fr=(pr?Vt==="("?Vt:b:Vt==="-"||Vt==="("?"":Vt)+fr,nr=(Ht==="s"?un[8+ht/3]:"")+nr+(pr&&Vt==="("?")":""),Ar){for(vr=-1,Gr=Dt.length;++vr<Gr;)if(gr=Dt.charCodeAt(vr),48>gr||gr>57){nr=(gr===46?m+Dt.slice(vr+1):Dt.slice(vr))+nr,Dt=Dt.slice(0,vr);break}}}Ut&&!pt&&(Dt=a(Dt,1/0));var Dr=fr.length+Dt.length+nr.length,sr=Dr<Rt?new Array(Rt-Dr+1).join(et):"";switch(Ut&&pt&&(Dt=a(sr+Dt,sr.length?Rt-nr.length:1/0),sr=""),st){case"<":Dt=fr+Dt+nr+sr;break;case"=":Dt=fr+sr+Dt+nr;break;case"^":Dt=sr.slice(0,Dr=sr.length>>1)+fr+Dt+nr+sr.slice(Dr);break;default:Dt=sr+fr+Dt+nr;break}return I(Dt)}return or.toString=function(){return K+""},or}function W(K,et){var st=$((K=tt(K),K.type="f",K)),Vt=Math.max(-8,Math.min(8,Math.floor(Tt(et)/3)))*3,er=Math.pow(10,-Vt),pt=un[8+Vt/3];return function(Rt){return st(er*Rt)+pt}}return{format:$,formatPrefix:W}}var Nn,bn,Ne;ja({thousands:",",grouping:[3],currency:["$",""]});function ja(r){return Nn=Ba(r),bn=Nn.format,Ne=Nn.formatPrefix,Nn}function wa(r,a){return r=Math.abs(r),a=Math.abs(a)-r,Math.max(0,Tt(a)-Tt(r))+1}function Ga(r){return Math.max(0,-Tt(Math.abs(r)))}function Va(r,a,f,d){var m=Z(r,a,f),I;switch(d=tt(d==null?",f":d),d.type){case"s":{var T=Math.max(Math.abs(r),Math.abs(a));return d.precision==null&&!isNaN(I=dr(m,T))&&(d.precision=I),Ne(d,T)}case"":case"e":case"g":case"p":case"r":{d.precision==null&&!isNaN(I=wa(m,Math.max(Math.abs(r),Math.abs(a))))&&(d.precision=I-(d.type==="e"));break}case"f":case"%":{d.precision==null&&!isNaN(I=Ga(m))&&(d.precision=I-(d.type==="%")*2);break}}return bn(d)}function ae(r){var a=r.domain;return r.ticks=function(f){var d=a();return an(d[0],d[d.length-1],f==null?10:f)},r.tickFormat=function(f,d){var m=a();return Va(m[0],m[m.length-1],f==null?10:f,d)},r.nice=function(f){f==null&&(f=10);var d=a(),m=0,I=d.length-1,T=d[m],b=d[I],L,$,W=10;for(b<T&&($=T,T=b,b=$,$=m,m=I,I=$);W-- >0;){if($=on(T,b,f),$===L)return d[m]=T,d[I]=b,a(d);if($>0)T=Math.floor(T/$)*$,b=Math.ceil(b/$)*$;else if($<0)T=Math.ceil(T*$)/$,b=Math.floor(b*$)/$;else break;L=$}return r},r}function Ha(){var r=continuous();return r.copy=function(){return copy(r,Ha())},initRange.apply(r,arguments),ae(r)}function Wa(r,a){r=r.slice();var f=0,d=r.length-1,m=r[f],I=r[d],T;return I<m&&(T=f,f=d,d=T,T=m,m=I,I=T),r[f]=a.floor(m),r[d]=a.ceil(I),r}function be(r){return Math.log(r)}function Fe(r){return Math.exp(r)}function za(r){return-Math.log(-r)}function Ya(r){return-Math.exp(-r)}function Ka(r){return isFinite(r)?+("1e"+r):r<0?0:r}function Xa(r){return r===10?Ka:r===Math.E?Math.exp:a=>Math.pow(r,a)}function Ja(r){return r===Math.E?Math.log:r===10&&Math.log10||r===2&&Math.log2||(r=Math.log(r),a=>Math.log(a)/r)}function De(r){return(a,f)=>-r(-a,f)}function Le(r){const a=r(be,Fe),f=a.domain;let d=10,m,I;function T(){return m=Ja(d),I=Xa(d),f()[0]<0?(m=De(m),I=De(I),r(za,Ya)):r(be,Fe),a}return a.base=function(b){return arguments.length?(d=+b,T()):d},a.domain=function(b){return arguments.length?(f(b),T()):f()},a.ticks=b=>{const L=f();let $=L[0],W=L[L.length-1];const K=W<$;K&&([$,W]=[W,$]);let et=m($),st=m(W),Vt,er;const pt=b==null?10:+b;let Rt=[];if(!(d%1)&&st-et<pt){if(et=Math.floor(et),st=Math.ceil(st),$>0){for(;et<=st;++et)for(Vt=1;Vt<d;++Vt)if(er=et<0?Vt/I(-et):Vt*I(et),!(er<$)){if(er>W)break;Rt.push(er)}}else for(;et<=st;++et)for(Vt=d-1;Vt>=1;--Vt)if(er=et>0?Vt/I(-et):Vt*I(et),!(er<$)){if(er>W)break;Rt.push(er)}Rt.length*2<pt&&(Rt=an($,W,pt))}else Rt=an(et,st,Math.min(st-et,pt)).map(I);return K?Rt.reverse():Rt},a.tickFormat=(b,L)=>{if(b==null&&(b=10),L==null&&(L=d===10?"s":","),typeof L!="function"&&(!(d%1)&&(L=tt(L)).precision==null&&(L.trim=!0),L=bn(L)),b===1/0)return L;const $=Math.max(1,d*b/a.ticks().length);return W=>{let K=W/I(Math.round(m(W)));return K*d<d-.5&&(K*=d),K<=$?L(W):""}},a.nice=()=>f(Wa(f(),{floor:b=>I(Math.floor(m(b))),ceil:b=>I(Math.ceil(m(b)))})),a}function Qa(){const r=Le(transformer()).domain([1,10]);return r.copy=()=>copy(r,Qa()).base(r.base()),initRange.apply(r,arguments),r}function Fn(){var r=0,a=1,f,d,m,I,T=$r,b=!1,L;function $(K){return K==null||isNaN(K=+K)?L:T(m===0?.5:(K=(I(K)-f)*m,b?Math.max(0,Math.min(1,K)):K))}$.domain=function(K){return arguments.length?([r,a]=K,f=I(r=+r),d=I(a=+a),m=f===d?0:1/(d-f),$):[r,a]},$.clamp=function(K){return arguments.length?(b=!!K,$):b},$.interpolator=function(K){return arguments.length?(T=K,$):T};function W(K){return function(et){var st,Vt;return arguments.length?([st,Vt]=et,T=K(st,Vt),$):[T(0),T(1)]}}return $.range=W(it),$.rangeRound=W(lt),$.unknown=function(K){return arguments.length?(L=K,$):L},function(K){return I=K,f=K(r),d=K(a),m=f===d?0:1/(d-f),$}}function Dn(r,a){return a.domain(r.domain()).interpolator(r.interpolator()).clamp(r.clamp()).unknown(r.unknown())}function $e(){var r=ae(Fn()($r));return r.copy=function(){return Dn(r,$e())},Ur.apply(r,arguments)}function Ue(){var r=Le(Fn()).domain([1,10]);return r.copy=function(){return Dn(r,Ue()).base(r.base())},Ur.apply(r,arguments)}function Za(){var r=symlogish(Fn());return r.copy=function(){return Dn(r,Za()).constant(r.constant())},initInterpolator.apply(r,arguments)}function Be(){var r=powish(Fn());return r.copy=function(){return Dn(r,Be()).exponent(r.exponent())},initInterpolator.apply(r,arguments)}function Ef(){return Be.apply(null,arguments).exponent(.5)}var ka=Object.defineProperty,je=Object.getOwnPropertySymbols,qa=Object.prototype.hasOwnProperty,_a=Object.prototype.propertyIsEnumerable,we=(r,a,f)=>a in r?ka(r,a,{enumerable:!0,configurable:!0,writable:!0,value:f}):r[a]=f,ur=(r,a)=>{for(var f in a||(a={}))qa.call(a,f)&&we(r,f,a[f]);if(je)for(var f of je(a))_a.call(a,f)&&we(r,f,a[f]);return r};const to={button:"bb-button",chart:"bb-chart",empty:"bb-empty",main:"bb-main",target:"bb-target",EXPANDED:"_expanded_"},ro={arc:"bb-arc",arcLabelLine:"bb-arc-label-line",arcRange:"bb-arc-range",arcs:"bb-arcs",chartArc:"bb-chart-arc",chartArcs:"bb-chart-arcs",chartArcsBackground:"bb-chart-arcs-background",chartArcsTitle:"bb-chart-arcs-title",needle:"bb-needle"},no={area:"bb-area",areas:"bb-areas"},eo={axis:"bb-axis",axisX:"bb-axis-x",axisXLabel:"bb-axis-x-label",axisY:"bb-axis-y",axisY2:"bb-axis-y2",axisY2Label:"bb-axis-y2-label",axisYLabel:"bb-axis-y-label",axisXTooltip:"bb-axis-x-tooltip",axisYTooltip:"bb-axis-y-tooltip",axisY2Tooltip:"bb-axis-y2-tooltip"},ao={bar:"bb-bar",bars:"bb-bars",chartBar:"bb-chart-bar",chartBars:"bb-chart-bars"},oo={candlestick:"bb-candlestick",candlesticks:"bb-candlesticks",chartCandlestick:"bb-chart-candlestick",chartCandlesticks:"bb-chart-candlesticks",valueDown:"bb-value-down",valueUp:"bb-value-up"},so={chartCircles:"bb-chart-circles",circle:"bb-circle",circles:"bb-circles"},io={colorPattern:"bb-color-pattern",colorScale:"bb-colorscale"},uo={dragarea:"bb-dragarea",INCLUDED:"_included_"},fo={funnel:"bb-funnel",chartFunnel:"bb-chart-funnel",chartFunnels:"bb-chart-funnels",funnelBackground:"bb-funnel-background"},lo={chartArcsGaugeMax:"bb-chart-arcs-gauge-max",chartArcsGaugeMin:"bb-chart-arcs-gauge-min",chartArcsGaugeUnit:"bb-chart-arcs-gauge-unit",chartArcsGaugeTitle:"bb-chart-arcs-gauge-title",gaugeValue:"bb-gauge-value"},co={legend:"bb-legend",legendBackground:"bb-legend-background",legendItem:"bb-legend-item",legendItemEvent:"bb-legend-item-event",legendItemHidden:"bb-legend-item-hidden",legendItemPoint:"bb-legend-item-point",legendItemTile:"bb-legend-item-tile"},vo={chartLine:"bb-chart-line",chartLines:"bb-chart-lines",line:"bb-line",lines:"bb-lines"},ho={eventRect:"bb-event-rect",eventRects:"bb-event-rects",eventRectsMultiple:"bb-event-rects-multiple",eventRectsSingle:"bb-event-rects-single"},go={focused:"bb-focused",defocused:"bb-defocused",legendItemFocused:"bb-legend-item-focused",xgridFocus:"bb-xgrid-focus",ygridFocus:"bb-ygrid-focus"},po={grid:"bb-grid",gridLines:"bb-grid-lines",xgrid:"bb-xgrid",xgridLine:"bb-xgrid-line",xgridLines:"bb-xgrid-lines",xgrids:"bb-xgrids",ygrid:"bb-ygrid",ygridLine:"bb-ygrid-line",ygridLines:"bb-ygrid-lines",ygrids:"bb-ygrids"},Of={level:"bb-level",levels:"bb-levels"},yo={chartRadar:"bb-chart-radar",chartRadars:"bb-chart-radars"},mo={region:"bb-region",regions:"bb-regions"},xo={selectedCircle:"bb-selected-circle",selectedCircles:"bb-selected-circles",SELECTED:"_selected_"},So={shape:"bb-shape",shapes:"bb-shapes"},Eo={brush:"bb-brush",subchart:"bb-subchart"},Oo={chartText:"bb-chart-text",chartTexts:"bb-chart-texts",text:"bb-text",texts:"bb-texts",title:"bb-title",TextOverlapping:"text-overlapping"},oe={tooltip:"bb-tooltip",tooltipContainer:"bb-tooltip-container",tooltipName:"bb-tooltip-name"},Io={treemap:"bb-treemap",chartTreemap:"bb-chart-treemap",chartTreemaps:"bb-chart-treemaps"},Ao={buttonZoomReset:"bb-zoom-reset",zoomBrush:"bb-zoom-brush"};var If=ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur(ur({},to),ro),no),eo),ao),oo),so),io),uo),lo),co),vo),ho),go),fo),po),yo),mo),xo),So),Eo),Oo),oe),Io),Ao);function To(){}function se(r){return r==null?To:function(){return this.querySelector(r)}}function Ro(r){typeof r!="function"&&(r=se(r));for(var a=this._groups,f=a.length,d=new Array(f),m=0;m<f;++m)for(var I=a[m],T=I.length,b=d[m]=new Array(T),L,$,W=0;W<T;++W)(L=I[W])&&($=r.call(L,L.__data__,W,I))&&("__data__"in L&&($.__data__=L.__data__),b[W]=$);return new jr(d,this._parents)}function Po(r){return r==null?[]:Array.isArray(r)?r:Array.from(r)}function Co(){return[]}function Ge(r){return r==null?Co:function(){return this.querySelectorAll(r)}}function Mo(r){return function(){return Po(r.apply(this,arguments))}}function No(r){typeof r=="function"?r=Mo(r):r=Ge(r);for(var a=this._groups,f=a.length,d=[],m=[],I=0;I<f;++I)for(var T=a[I],b=T.length,L,$=0;$<b;++$)(L=T[$])&&(d.push(r.call(L,L.__data__,$,T)),m.push(L));return new jr(d,m)}function Ve(r){return function(){return this.matches(r)}}function He(r){return function(a){return a.matches(r)}}var bo=Array.prototype.find;function Fo(r){return function(){return bo.call(this.children,r)}}function Do(){return this.firstElementChild}function Lo(r){return this.select(r==null?Do:Fo(typeof r=="function"?r:He(r)))}var $o=Array.prototype.filter;function Uo(){return Array.from(this.children)}function Bo(r){return function(){return $o.call(this.children,r)}}function jo(r){return this.selectAll(r==null?Uo:Bo(typeof r=="function"?r:He(r)))}function wo(r){typeof r!="function"&&(r=Ve(r));for(var a=this._groups,f=a.length,d=new Array(f),m=0;m<f;++m)for(var I=a[m],T=I.length,b=d[m]=[],L,$=0;$<T;++$)(L=I[$])&&r.call(L,L.__data__,$,I)&&b.push(L);return new jr(d,this._parents)}function We(r){return new Array(r.length)}function Go(){return new jr(this._enter||this._groups.map(We),this._parents)}function Ln(r,a){this.ownerDocument=r.ownerDocument,this.namespaceURI=r.namespaceURI,this._next=null,this._parent=r,this.__data__=a}Ln.prototype={constructor:Ln,appendChild:function(r){return this._parent.insertBefore(r,this._next)},insertBefore:function(r,a){return this._parent.insertBefore(r,a)},querySelector:function(r){return this._parent.querySelector(r)},querySelectorAll:function(r){return this._parent.querySelectorAll(r)}};function Vo(r){return function(){return r}}function Ho(r,a,f,d,m,I){for(var T=0,b,L=a.length,$=I.length;T<$;++T)(b=a[T])?(b.__data__=I[T],d[T]=b):f[T]=new Ln(r,I[T]);for(;T<L;++T)(b=a[T])&&(m[T]=b)}function Wo(r,a,f,d,m,I,T){var b,L,$=new Map,W=a.length,K=I.length,et=new Array(W),st;for(b=0;b<W;++b)(L=a[b])&&(et[b]=st=T.call(L,L.__data__,b,a)+"",$.has(st)?m[b]=L:$.set(st,L));for(b=0;b<K;++b)st=T.call(r,I[b],b,I)+"",(L=$.get(st))?(d[b]=L,L.__data__=I[b],$.delete(st)):f[b]=new Ln(r,I[b]);for(b=0;b<W;++b)(L=a[b])&&$.get(et[b])===L&&(m[b]=L)}function zo(r){return r.__data__}function Yo(r,a){if(!arguments.length)return Array.from(this,zo);var f=a?Wo:Ho,d=this._parents,m=this._groups;typeof r!="function"&&(r=Vo(r));for(var I=m.length,T=new Array(I),b=new Array(I),L=new Array(I),$=0;$<I;++$){var W=d[$],K=m[$],et=K.length,st=Ko(r.call(W,W&&W.__data__,$,d)),Vt=st.length,er=b[$]=new Array(Vt),pt=T[$]=new Array(Vt),Rt=L[$]=new Array(et);f(W,K,er,pt,Rt,st,a);for(var Ut=0,Mt=0,kt,Ht;Ut<Vt;++Ut)if(kt=er[Ut]){for(Ut>=Mt&&(Mt=Ut+1);!(Ht=pt[Mt])&&++Mt<Vt;);kt._next=Ht||null}}return T=new jr(T,d),T._enter=b,T._exit=L,T}function Ko(r){return typeof r=="object"&&"length"in r?r:Array.from(r)}function Xo(){return new jr(this._exit||this._groups.map(We),this._parents)}function Jo(r,a,f){var d=this.enter(),m=this,I=this.exit();return typeof r=="function"?(d=r(d),d&&(d=d.selection())):d=d.append(r+""),a!=null&&(m=a(m),m&&(m=m.selection())),f==null?I.remove():f(I),d&&m?d.merge(m).order():m}function Qo(r){for(var a=r.selection?r.selection():r,f=this._groups,d=a._groups,m=f.length,I=d.length,T=Math.min(m,I),b=new Array(m),L=0;L<T;++L)for(var $=f[L],W=d[L],K=$.length,et=b[L]=new Array(K),st,Vt=0;Vt<K;++Vt)(st=$[Vt]||W[Vt])&&(et[Vt]=st);for(;L<m;++L)b[L]=f[L];return new jr(b,this._parents)}function Zo(){for(var r=this._groups,a=-1,f=r.length;++a<f;)for(var d=r[a],m=d.length-1,I=d[m],T;--m>=0;)(T=d[m])&&(I&&T.compareDocumentPosition(I)^4&&I.parentNode.insertBefore(T,I),I=T);return this}function ko(r){r||(r=qo);function a(K,et){return K&&et?r(K.__data__,et.__data__):!K-!et}for(var f=this._groups,d=f.length,m=new Array(d),I=0;I<d;++I){for(var T=f[I],b=T.length,L=m[I]=new Array(b),$,W=0;W<b;++W)($=T[W])&&(L[W]=$);L.sort(a)}return new jr(m,this._parents).order()}function qo(r,a){return r<a?-1:r>a?1:r>=a?0:NaN}function _o(){var r=arguments[0];return arguments[0]=this,r.apply(null,arguments),this}function ts(){return Array.from(this)}function rs(){for(var r=this._groups,a=0,f=r.length;a<f;++a)for(var d=r[a],m=0,I=d.length;m<I;++m){var T=d[m];if(T)return T}return null}function ns(){let r=0;for(const a of this)++r;return r}function es(){return!this.node()}function as(r){for(var a=this._groups,f=0,d=a.length;f<d;++f)for(var m=a[f],I=0,T=m.length,b;I<T;++I)(b=m[I])&&r.call(b,b.__data__,I,m);return this}var ie="http://www.w3.org/1999/xhtml",ze={svg:"http://www.w3.org/2000/svg",xhtml:ie,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function $n(r){var a=r+="",f=a.indexOf(":");return f>=0&&(a=r.slice(0,f))!=="xmlns"&&(r=r.slice(f+1)),ze.hasOwnProperty(a)?{space:ze[a],local:r}:r}function os(r){return function(){this.removeAttribute(r)}}function ss(r){return function(){this.removeAttributeNS(r.space,r.local)}}function is(r,a){return function(){this.setAttribute(r,a)}}function us(r,a){return function(){this.setAttributeNS(r.space,r.local,a)}}function fs(r,a){return function(){var f=a.apply(this,arguments);f==null?this.removeAttribute(r):this.setAttribute(r,f)}}function ls(r,a){return function(){var f=a.apply(this,arguments);f==null?this.removeAttributeNS(r.space,r.local):this.setAttributeNS(r.space,r.local,f)}}function cs(r,a){var f=$n(r);if(arguments.length<2){var d=this.node();return f.local?d.getAttributeNS(f.space,f.local):d.getAttribute(f)}return this.each((a==null?f.local?ss:os:typeof a=="function"?f.local?ls:fs:f.local?us:is)(f,a))}function Ye(r){return r.ownerDocument&&r.ownerDocument.defaultView||r.document&&r||r.defaultView}function vs(r){return function(){this.style.removeProperty(r)}}function ds(r,a,f){return function(){this.style.setProperty(r,a,f)}}function hs(r,a,f){return function(){var d=a.apply(this,arguments);d==null?this.style.removeProperty(r):this.style.setProperty(r,d,f)}}function gs(r,a,f){return arguments.length>1?this.each((a==null?vs:typeof a=="function"?hs:ds)(r,a,f==null?"":f)):fn(this.node(),r)}function fn(r,a){return r.style.getPropertyValue(a)||Ye(r).getComputedStyle(r,null).getPropertyValue(a)}function ps(r){return function(){delete this[r]}}function ys(r,a){return function(){this[r]=a}}function ms(r,a){return function(){var f=a.apply(this,arguments);f==null?delete this[r]:this[r]=f}}function xs(r,a){return arguments.length>1?this.each((a==null?ps:typeof a=="function"?ms:ys)(r,a)):this.node()[r]}function Ke(r){return r.trim().split(/^|\s+/)}function ue(r){return r.classList||new Xe(r)}function Xe(r){this._node=r,this._names=Ke(r.getAttribute("class")||"")}Xe.prototype={add:function(r){var a=this._names.indexOf(r);a<0&&(this._names.push(r),this._node.setAttribute("class",this._names.join(" ")))},remove:function(r){var a=this._names.indexOf(r);a>=0&&(this._names.splice(a,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(r){return this._names.indexOf(r)>=0}};function Je(r,a){for(var f=ue(r),d=-1,m=a.length;++d<m;)f.add(a[d])}function Qe(r,a){for(var f=ue(r),d=-1,m=a.length;++d<m;)f.remove(a[d])}function Ss(r){return function(){Je(this,r)}}function Es(r){return function(){Qe(this,r)}}function Os(r,a){return function(){(a.apply(this,arguments)?Je:Qe)(this,r)}}function Is(r,a){var f=Ke(r+"");if(arguments.length<2){for(var d=ue(this.node()),m=-1,I=f.length;++m<I;)if(!d.contains(f[m]))return!1;return!0}return this.each((typeof a=="function"?Os:a?Ss:Es)(f,a))}function As(){this.textContent=""}function Ts(r){return function(){this.textContent=r}}function Rs(r){return function(){var a=r.apply(this,arguments);this.textContent=a==null?"":a}}function Ps(r){return arguments.length?this.each(r==null?As:(typeof r=="function"?Rs:Ts)(r)):this.node().textContent}function Cs(){this.innerHTML=""}function Ms(r){return function(){this.innerHTML=r}}function Ns(r){return function(){var a=r.apply(this,arguments);this.innerHTML=a==null?"":a}}function bs(r){return arguments.length?this.each(r==null?Cs:(typeof r=="function"?Ns:Ms)(r)):this.node().innerHTML}function Fs(){this.nextSibling&&this.parentNode.appendChild(this)}function Ds(){return this.each(Fs)}function Ls(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function $s(){return this.each(Ls)}function Us(r){return function(){var a=this.ownerDocument,f=this.namespaceURI;return f===ie&&a.documentElement.namespaceURI===ie?a.createElement(r):a.createElementNS(f,r)}}function Bs(r){return function(){return this.ownerDocument.createElementNS(r.space,r.local)}}function Ze(r){var a=$n(r);return(a.local?Bs:Us)(a)}function js(r){var a=typeof r=="function"?r:Ze(r);return this.select(function(){return this.appendChild(a.apply(this,arguments))})}function ws(){return null}function Gs(r,a){var f=typeof r=="function"?r:Ze(r),d=a==null?ws:typeof a=="function"?a:se(a);return this.select(function(){return this.insertBefore(f.apply(this,arguments),d.apply(this,arguments)||null)})}function Vs(){var r=this.parentNode;r&&r.removeChild(this)}function Hs(){return this.each(Vs)}function Ws(){var r=this.cloneNode(!1),a=this.parentNode;return a?a.insertBefore(r,this.nextSibling):r}function zs(){var r=this.cloneNode(!0),a=this.parentNode;return a?a.insertBefore(r,this.nextSibling):r}function Ys(r){return this.select(r?zs:Ws)}function Ks(r){return arguments.length?this.property("__data__",r):this.node().__data__}function Xs(r){return function(a){r.call(this,a,this.__data__)}}function Js(r){return r.trim().split(/^|\s+/).map(function(a){var f="",d=a.indexOf(".");return d>=0&&(f=a.slice(d+1),a=a.slice(0,d)),{type:a,name:f}})}function Qs(r){return function(){var a=this.__on;if(a){for(var f=0,d=-1,m=a.length,I;f<m;++f)I=a[f],(!r.type||I.type===r.type)&&I.name===r.name?this.removeEventListener(I.type,I.listener,I.options):a[++d]=I;++d?a.length=d:delete this.__on}}}function Zs(r,a,f){return function(){var d=this.__on,m,I=Xs(a);if(d){for(var T=0,b=d.length;T<b;++T)if((m=d[T]).type===r.type&&m.name===r.name){this.removeEventListener(m.type,m.listener,m.options),this.addEventListener(m.type,m.listener=I,m.options=f),m.value=a;return}}this.addEventListener(r.type,I,f),m={type:r.type,name:r.name,value:a,listener:I,options:f},d?d.push(m):this.__on=[m]}}function ks(r,a,f){var d=Js(r+""),m,I=d.length,T;if(arguments.length<2){var b=this.node().__on;if(b){for(var L=0,$=b.length,W;L<$;++L)for(m=0,W=b[L];m<I;++m)if((T=d[m]).type===W.type&&T.name===W.name)return W.value}return}for(b=a?Zs:Qs,m=0;m<I;++m)this.each(b(d[m],a,f));return this}function ke(r,a,f){var d=Ye(r),m=d.CustomEvent;typeof m=="function"?m=new m(a,f):(m=d.document.createEvent("Event"),f?(m.initEvent(a,f.bubbles,f.cancelable),m.detail=f.detail):m.initEvent(a,!1,!1)),r.dispatchEvent(m)}function qs(r,a){return function(){return ke(this,r,a)}}function _s(r,a){return function(){return ke(this,r,a.apply(this,arguments))}}function ti(r,a){return this.each((typeof a=="function"?_s:qs)(r,a))}function*ri(){for(var r=this._groups,a=0,f=r.length;a<f;++a)for(var d=r[a],m=0,I=d.length,T;m<I;++m)(T=d[m])&&(yield T)}var ni=[null];function jr(r,a){this._groups=r,this._parents=a}function qe(){return new jr([[document.documentElement]],ni)}function ei(){return this}jr.prototype=qe.prototype={constructor:jr,select:Ro,selectAll:No,selectChild:Lo,selectChildren:jo,filter:wo,data:Yo,enter:Go,exit:Xo,join:Jo,merge:Qo,selection:ei,order:Zo,sort:ko,call:_o,nodes:ts,node:rs,size:ns,empty:es,each:as,attr:cs,style:gs,property:xs,classed:Is,text:Ps,html:bs,raise:Ds,lower:$s,append:js,insert:Gs,remove:Hs,clone:Ys,datum:Ks,on:ks,dispatch:ti,[Symbol.iterator]:ri};var mn=qe,ai={value:()=>{}};function _e(){for(var r=0,a=arguments.length,f={},d;r<a;++r){if(!(d=arguments[r]+"")||d in f||/[\s.]/.test(d))throw new Error("illegal type: "+d);f[d]=[]}return new Un(f)}function Un(r){this._=r}function oi(r,a){return r.trim().split(/^|\s+/).map(function(f){var d="",m=f.indexOf(".");if(m>=0&&(d=f.slice(m+1),f=f.slice(0,m)),f&&!a.hasOwnProperty(f))throw new Error("unknown type: "+f);return{type:f,name:d}})}Un.prototype=_e.prototype={constructor:Un,on:function(r,a){var f=this._,d=oi(r+"",f),m,I=-1,T=d.length;if(arguments.length<2){for(;++I<T;)if((m=(r=d[I]).type)&&(m=si(f[m],r.name)))return m;return}if(a!=null&&typeof a!="function")throw new Error("invalid callback: "+a);for(;++I<T;)if(m=(r=d[I]).type)f[m]=ta(f[m],r.name,a);else if(a==null)for(m in f)f[m]=ta(f[m],r.name,null);return this},copy:function(){var r={},a=this._;for(var f in a)r[f]=a[f].slice();return new Un(r)},call:function(r,a){if((m=arguments.length-2)>0)for(var f=new Array(m),d=0,m,I;d<m;++d)f[d]=arguments[d+2];if(!this._.hasOwnProperty(r))throw new Error("unknown type: "+r);for(I=this._[r],d=0,m=I.length;d<m;++d)I[d].value.apply(a,f)},apply:function(r,a,f){if(!this._.hasOwnProperty(r))throw new Error("unknown type: "+r);for(var d=this._[r],m=0,I=d.length;m<I;++m)d[m].value.apply(a,f)}};function si(r,a){for(var f=0,d=r.length,m;f<d;++f)if((m=r[f]).name===a)return m.value}function ta(r,a,f){for(var d=0,m=r.length;d<m;++d)if(r[d].name===a){r[d]=ai,r=r.slice(0,d).concat(r.slice(d+1));break}return f!=null&&r.push({name:a,value:f}),r}var ii=_e,ln=0,xn=0,Sn=0,ra=1e3,Bn,En,jn=0,_r=0,wn=0,On=typeof performance=="object"&&performance.now?performance:Date,na=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(r){setTimeout(r,17)};function fe(){return _r||(na(ui),_r=On.now()+wn)}function ui(){_r=0}function Gn(){this._call=this._time=this._next=null}Gn.prototype=ea.prototype={constructor:Gn,restart:function(r,a,f){if(typeof r!="function")throw new TypeError("callback is not a function");f=(f==null?fe():+f)+(a==null?0:+a),!this._next&&En!==this&&(En?En._next=this:Bn=this,En=this),this._call=r,this._time=f,le()},stop:function(){this._call&&(this._call=null,this._time=1/0,le())}};function ea(r,a,f){var d=new Gn;return d.restart(r,a,f),d}function fi(){fe(),++ln;for(var r=Bn,a;r;)(a=_r-r._time)>=0&&r._call.call(void 0,a),r=r._next;--ln}function aa(){_r=(jn=On.now())+wn,ln=xn=0;try{fi()}finally{ln=0,ci(),_r=0}}function li(){var r=On.now(),a=r-jn;a>ra&&(wn-=a,jn=r)}function ci(){for(var r,a=Bn,f,d=1/0;a;)a._call?(d>a._time&&(d=a._time),r=a,a=a._next):(f=a._next,a._next=null,a=r?r._next=f:Bn=f);En=r,le(d)}function le(r){if(!ln){xn&&(xn=clearTimeout(xn));var a=r-_r;a>24?(r<1/0&&(xn=setTimeout(aa,r-On.now()-wn)),Sn&&(Sn=clearInterval(Sn))):(Sn||(jn=On.now(),Sn=setInterval(li,ra)),ln=1,na(aa))}}function oa(r,a,f){var d=new Gn;return a=a==null?0:+a,d.restart(m=>{d.stop(),r(m+a)},a,f),d}var vi=ii("start","end","cancel","interrupt"),di=[],sa=0,ia=1,ce=2,Vn=3,ua=4,ve=5,Hn=6;function Wn(r,a,f,d,m,I){var T=r.__transition;if(!T)r.__transition={};else if(f in T)return;hi(r,f,{name:a,index:d,group:m,on:vi,tween:di,time:I.time,delay:I.delay,duration:I.duration,ease:I.ease,timer:null,state:sa})}function de(r,a){var f=wr(r,a);if(f.state>sa)throw new Error("too late; already scheduled");return f}function Vr(r,a){var f=wr(r,a);if(f.state>Vn)throw new Error("too late; already running");return f}function wr(r,a){var f=r.__transition;if(!f||!(f=f[a]))throw new Error("transition not found");return f}function hi(r,a,f){var d=r.__transition,m;d[a]=f,f.timer=ea(I,0,f.time);function I($){f.state=ia,f.timer.restart(T,f.delay,f.time),f.delay<=$&&T($-f.delay)}function T($){var W,K,et,st;if(f.state!==ia)return L();for(W in d)if(st=d[W],st.name===f.name){if(st.state===Vn)return oa(T);st.state===ua?(st.state=Hn,st.timer.stop(),st.on.call("interrupt",r,r.__data__,st.index,st.group),delete d[W]):+W<a&&(st.state=Hn,st.timer.stop(),st.on.call("cancel",r,r.__data__,st.index,st.group),delete d[W])}if(oa(function(){f.state===Vn&&(f.state=ua,f.timer.restart(b,f.delay,f.time),b($))}),f.state=ce,f.on.call("start",r,r.__data__,f.index,f.group),f.state===ce){for(f.state=Vn,m=new Array(et=f.tween.length),W=0,K=-1;W<et;++W)(st=f.tween[W].value.call(r,r.__data__,f.index,f.group))&&(m[++K]=st);m.length=K+1}}function b($){for(var W=$<f.duration?f.ease.call(null,$/f.duration):(f.timer.restart(L),f.state=ve,1),K=-1,et=m.length;++K<et;)m[K].call(r,W);f.state===ve&&(f.on.call("end",r,r.__data__,f.index,f.group),L())}function L(){f.state=Hn,f.timer.stop(),delete d[a];for(var $ in d)return;delete r.__transition}}function gi(r,a){var f=r.__transition,d,m,I=!0,T;if(f){a=a==null?null:a+"";for(T in f){if((d=f[T]).name!==a){I=!1;continue}m=d.state>ce&&d.state<ve,d.state=Hn,d.timer.stop(),d.on.call(m?"interrupt":"cancel",r,r.__data__,d.index,d.group),delete f[T]}I&&delete r.__transition}}function pi(r){return this.each(function(){gi(this,r)})}var fa=180/Math.PI,he={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function la(r,a,f,d,m,I){var T,b,L;return(T=Math.sqrt(r*r+a*a))&&(r/=T,a/=T),(L=r*f+a*d)&&(f-=r*L,d-=a*L),(b=Math.sqrt(f*f+d*d))&&(f/=b,d/=b,L/=b),r*d<a*f&&(r=-r,a=-a,L=-L,T=-T),{translateX:m,translateY:I,rotate:Math.atan2(a,r)*fa,skewX:Math.atan(L)*fa,scaleX:T,scaleY:b}}var zn;function yi(r){const a=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(r+"");return a.isIdentity?he:la(a.a,a.b,a.c,a.d,a.e,a.f)}function mi(r){return r==null||(zn||(zn=document.createElementNS("http://www.w3.org/2000/svg","g")),zn.setAttribute("transform",r),!(r=zn.transform.baseVal.consolidate()))?he:(r=r.matrix,la(r.a,r.b,r.c,r.d,r.e,r.f))}function ca(r,a,f,d){function m($){return $.length?$.pop()+" ":""}function I($,W,K,et,st,Vt){if($!==K||W!==et){var er=st.push("translate(",null,a,null,f);Vt.push({i:er-4,x:dt($,K)},{i:er-2,x:dt(W,et)})}else(K||et)&&st.push("translate("+K+a+et+f)}function T($,W,K,et){$!==W?($-W>180?W+=360:W-$>180&&($+=360),et.push({i:K.push(m(K)+"rotate(",null,d)-2,x:dt($,W)})):W&&K.push(m(K)+"rotate("+W+d)}function b($,W,K,et){$!==W?et.push({i:K.push(m(K)+"skewX(",null,d)-2,x:dt($,W)}):W&&K.push(m(K)+"skewX("+W+d)}function L($,W,K,et,st,Vt){if($!==K||W!==et){var er=st.push(m(st)+"scale(",null,",",null,")");Vt.push({i:er-4,x:dt($,K)},{i:er-2,x:dt(W,et)})}else(K!==1||et!==1)&&st.push(m(st)+"scale("+K+","+et+")")}return function($,W){var K=[],et=[];return $=r($),W=r(W),I($.translateX,$.translateY,W.translateX,W.translateY,K,et),T($.rotate,W.rotate,K,et),b($.skewX,W.skewX,K,et),L($.scaleX,$.scaleY,W.scaleX,W.scaleY,K,et),$=W=null,function(st){for(var Vt=-1,er=et.length,pt;++Vt<er;)K[(pt=et[Vt]).i]=pt.x(st);return K.join("")}}}var xi=ca(yi,"px, ","px)","deg)"),Si=ca(mi,", ",")",")");function Ei(r,a){var f,d;return function(){var m=Vr(this,r),I=m.tween;if(I!==f){d=f=I;for(var T=0,b=d.length;T<b;++T)if(d[T].name===a){d=d.slice(),d.splice(T,1);break}}m.tween=d}}function Oi(r,a,f){var d,m;if(typeof f!="function")throw new Error;return function(){var I=Vr(this,r),T=I.tween;if(T!==d){m=(d=T).slice();for(var b={name:a,value:f},L=0,$=m.length;L<$;++L)if(m[L].name===a){m[L]=b;break}L===$&&m.push(b)}I.tween=m}}function Ii(r,a){var f=this._id;if(r+="",arguments.length<2){for(var d=wr(this.node(),f).tween,m=0,I=d.length,T;m<I;++m)if((T=d[m]).name===r)return T.value;return null}return this.each((a==null?Ei:Oi)(f,r,a))}function ge(r,a,f){var d=r._id;return r.each(function(){var m=Vr(this,d);(m.value||(m.value={}))[a]=f.apply(this,arguments)}),function(m){return wr(m,d).value[a]}}function va(r,a){var f;return(typeof a=="number"?dt:a instanceof R?rr:(f=R(a))?(a=f,rr):ar)(r,a)}function Ai(r){return function(){this.removeAttribute(r)}}function Ti(r){return function(){this.removeAttributeNS(r.space,r.local)}}function Ri(r,a,f){var d,m=f+"",I;return function(){var T=this.getAttribute(r);return T===m?null:T===d?I:I=a(d=T,f)}}function Pi(r,a,f){var d,m=f+"",I;return function(){var T=this.getAttributeNS(r.space,r.local);return T===m?null:T===d?I:I=a(d=T,f)}}function Ci(r,a,f){var d,m,I;return function(){var T,b=f(this),L;return b==null?void this.removeAttribute(r):(T=this.getAttribute(r),L=b+"",T===L?null:T===d&&L===m?I:(m=L,I=a(d=T,b)))}}function Mi(r,a,f){var d,m,I;return function(){var T,b=f(this),L;return b==null?void this.removeAttributeNS(r.space,r.local):(T=this.getAttributeNS(r.space,r.local),L=b+"",T===L?null:T===d&&L===m?I:(m=L,I=a(d=T,b)))}}function Ni(r,a){var f=$n(r),d=f==="transform"?Si:va;return this.attrTween(r,typeof a=="function"?(f.local?Mi:Ci)(f,d,ge(this,"attr."+r,a)):a==null?(f.local?Ti:Ai)(f):(f.local?Pi:Ri)(f,d,a))}function bi(r,a){return function(f){this.setAttribute(r,a.call(this,f))}}function Fi(r,a){return function(f){this.setAttributeNS(r.space,r.local,a.call(this,f))}}function Di(r,a){var f,d;function m(){var I=a.apply(this,arguments);return I!==d&&(f=(d=I)&&Fi(r,I)),f}return m._value=a,m}function Li(r,a){var f,d;function m(){var I=a.apply(this,arguments);return I!==d&&(f=(d=I)&&bi(r,I)),f}return m._value=a,m}function $i(r,a){var f="attr."+r;if(arguments.length<2)return(f=this.tween(f))&&f._value;if(a==null)return this.tween(f,null);if(typeof a!="function")throw new Error;var d=$n(r);return this.tween(f,(d.local?Di:Li)(d,a))}function Ui(r,a){return function(){de(this,r).delay=+a.apply(this,arguments)}}function Bi(r,a){return a=+a,function(){de(this,r).delay=a}}function ji(r){var a=this._id;return arguments.length?this.each((typeof r=="function"?Ui:Bi)(a,r)):wr(this.node(),a).delay}function wi(r,a){return function(){Vr(this,r).duration=+a.apply(this,arguments)}}function Gi(r,a){return a=+a,function(){Vr(this,r).duration=a}}function Vi(r){var a=this._id;return arguments.length?this.each((typeof r=="function"?wi:Gi)(a,r)):wr(this.node(),a).duration}function Hi(r,a){if(typeof a!="function")throw new Error;return function(){Vr(this,r).ease=a}}function Wi(r){var a=this._id;return arguments.length?this.each(Hi(a,r)):wr(this.node(),a).ease}function zi(r,a){return function(){var f=a.apply(this,arguments);if(typeof f!="function")throw new Error;Vr(this,r).ease=f}}function Yi(r){if(typeof r!="function")throw new Error;return this.each(zi(this._id,r))}function Ki(r){typeof r!="function"&&(r=Ve(r));for(var a=this._groups,f=a.length,d=new Array(f),m=0;m<f;++m)for(var I=a[m],T=I.length,b=d[m]=[],L,$=0;$<T;++$)(L=I[$])&&r.call(L,L.__data__,$,I)&&b.push(L);return new zr(d,this._parents,this._name,this._id)}function Xi(r){if(r._id!==this._id)throw new Error;for(var a=this._groups,f=r._groups,d=a.length,m=f.length,I=Math.min(d,m),T=new Array(d),b=0;b<I;++b)for(var L=a[b],$=f[b],W=L.length,K=T[b]=new Array(W),et,st=0;st<W;++st)(et=L[st]||$[st])&&(K[st]=et);for(;b<d;++b)T[b]=a[b];return new zr(T,this._parents,this._name,this._id)}function Ji(r){return(r+"").trim().split(/^|\s+/).every(function(a){var f=a.indexOf(".");return f>=0&&(a=a.slice(0,f)),!a||a==="start"})}function Qi(r,a,f){var d,m,I=Ji(a)?de:Vr;return function(){var T=I(this,r),b=T.on;b!==d&&(m=(d=b).copy()).on(a,f),T.on=m}}function Zi(r,a){var f=this._id;return arguments.length<2?wr(this.node(),f).on.on(r):this.each(Qi(f,r,a))}function ki(r){return function(){var a=this.parentNode;for(var f in this.__transition)if(+f!==r)return;a&&a.removeChild(this)}}function qi(){return this.on("end.remove",ki(this._id))}function _i(r){var a=this._name,f=this._id;typeof r!="function"&&(r=se(r));for(var d=this._groups,m=d.length,I=new Array(m),T=0;T<m;++T)for(var b=d[T],L=b.length,$=I[T]=new Array(L),W,K,et=0;et<L;++et)(W=b[et])&&(K=r.call(W,W.__data__,et,b))&&("__data__"in W&&(K.__data__=W.__data__),$[et]=K,Wn($[et],a,f,et,$,wr(W,f)));return new zr(I,this._parents,a,f)}function tu(r){var a=this._name,f=this._id;typeof r!="function"&&(r=Ge(r));for(var d=this._groups,m=d.length,I=[],T=[],b=0;b<m;++b)for(var L=d[b],$=L.length,W,K=0;K<$;++K)if(W=L[K]){for(var et=r.call(W,W.__data__,K,L),st,Vt=wr(W,f),er=0,pt=et.length;er<pt;++er)(st=et[er])&&Wn(st,a,f,er,et,Vt);I.push(et),T.push(W)}return new zr(I,T,a,f)}var ru=mn.prototype.constructor;function nu(){return new ru(this._groups,this._parents)}function eu(r,a){var f,d,m;return function(){var I=fn(this,r),T=(this.style.removeProperty(r),fn(this,r));return I===T?null:I===f&&T===d?m:m=a(f=I,d=T)}}function da(r){return function(){this.style.removeProperty(r)}}function au(r,a,f){var d,m=f+"",I;return function(){var T=fn(this,r);return T===m?null:T===d?I:I=a(d=T,f)}}function ou(r,a,f){var d,m,I;return function(){var T=fn(this,r),b=f(this),L=b+"";return b==null&&(L=b=(this.style.removeProperty(r),fn(this,r))),T===L?null:T===d&&L===m?I:(m=L,I=a(d=T,b))}}function su(r,a){var f,d,m,I="style."+a,T="end."+I,b;return function(){var L=Vr(this,r),$=L.on,W=L.value[I]==null?b||(b=da(a)):void 0;($!==f||m!==W)&&(d=(f=$).copy()).on(T,m=W),L.on=d}}function iu(r,a,f){var d=(r+="")=="transform"?xi:va;return a==null?this.styleTween(r,eu(r,d)).on("end.style."+r,da(r)):typeof a=="function"?this.styleTween(r,ou(r,d,ge(this,"style."+r,a))).each(su(this._id,r)):this.styleTween(r,au(r,d,a),f).on("end.style."+r,null)}function uu(r,a,f){return function(d){this.style.setProperty(r,a.call(this,d),f)}}function fu(r,a,f){var d,m;function I(){var T=a.apply(this,arguments);return T!==m&&(d=(m=T)&&uu(r,T,f)),d}return I._value=a,I}function lu(r,a,f){var d="style."+(r+="");if(arguments.length<2)return(d=this.tween(d))&&d._value;if(a==null)return this.tween(d,null);if(typeof a!="function")throw new Error;return this.tween(d,fu(r,a,f==null?"":f))}function cu(r){return function(){this.textContent=r}}function vu(r){return function(){var a=r(this);this.textContent=a==null?"":a}}function du(r){return this.tween("text",typeof r=="function"?vu(ge(this,"text",r)):cu(r==null?"":r+""))}function hu(r){return function(a){this.textContent=r.call(this,a)}}function gu(r){var a,f;function d(){var m=r.apply(this,arguments);return m!==f&&(a=(f=m)&&hu(m)),a}return d._value=r,d}function pu(r){var a="text";if(arguments.length<1)return(a=this.tween(a))&&a._value;if(r==null)return this.tween(a,null);if(typeof r!="function")throw new Error;return this.tween(a,gu(r))}function yu(){for(var r=this._name,a=this._id,f=ha(),d=this._groups,m=d.length,I=0;I<m;++I)for(var T=d[I],b=T.length,L,$=0;$<b;++$)if(L=T[$]){var W=wr(L,a);Wn(L,r,f,$,T,{time:W.time+W.delay+W.duration,delay:0,duration:W.duration,ease:W.ease})}return new zr(d,this._parents,r,f)}function mu(){var r,a,f=this,d=f._id,m=f.size();return new Promise(function(I,T){var b={value:T},L={value:function(){--m===0&&I()}};f.each(function(){var $=Vr(this,d),W=$.on;W!==r&&(a=(r=W).copy(),a._.cancel.push(b),a._.interrupt.push(b),a._.end.push(L)),$.on=a}),m===0&&I()})}var xu=0;function zr(r,a,f,d){this._groups=r,this._parents=a,this._name=f,this._id=d}function Su(r){return mn().transition(r)}function ha(){return++xu}var Yr=mn.prototype;zr.prototype=Su.prototype={constructor:zr,select:_i,selectAll:tu,selectChild:Yr.selectChild,selectChildren:Yr.selectChildren,filter:Ki,merge:Xi,selection:nu,transition:yu,call:Yr.call,nodes:Yr.nodes,node:Yr.node,size:Yr.size,empty:Yr.empty,each:Yr.each,on:Zi,attr:Ni,attrTween:$i,style:iu,styleTween:lu,text:du,textTween:pu,remove:qi,tween:Ii,delay:ji,duration:Vi,ease:Wi,easeVarying:Yi,end:mu,[Symbol.iterator]:Yr[Symbol.iterator]};function Af(r){return r*r*r}function Tf(r){return--r*r*r+1}function Eu(r){return((r*=2)<=1?r*r*r:(r-=2)*r*r+2)/2}var Ou={time:null,delay:0,duration:250,ease:Eu};function Iu(r,a){for(var f;!(f=r.__transition)||!(f=f[a]);)if(!(r=r.parentNode))throw new Error(`transition ${a} not found`);return f}function Au(r){var a,f;r instanceof zr?(a=r._id,r=r._name):(a=ha(),(f=Ou).time=fe(),r=r==null?null:r+"");for(var d=this._groups,m=d.length,I=0;I<m;++I)for(var T=d[I],b=T.length,L,$=0;$<b;++$)(L=T[$])&&Wn(L,r,a,$,T,f||Iu(L,a));return new zr(d,this._parents,r,a)}mn.prototype.interrupt=pi,mn.prototype.transition=Au;var ga={name:"drag"},pe={name:"space"},cn={name:"handle"},vn={name:"center"};const{abs:pa,max:Cr,min:Mr}=Math;function ya(r){return[+r[0],+r[1]]}function ye(r){return[ya(r[0]),ya(r[1])]}var Yn={name:"x",handles:["w","e"].map(In),input:function(r,a){return r==null?null:[[+r[0],a[0][1]],[+r[1],a[1][1]]]},output:function(r){return r&&[r[0][0],r[1][0]]}},Kn={name:"y",handles:["n","s"].map(In),input:function(r,a){return r==null?null:[[a[0][0],+r[0]],[a[1][0],+r[1]]]},output:function(r){return r&&[r[0][1],r[1][1]]}},Tu={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(In),input:function(r){return r==null?null:ye(r)},output:function(r){return r}},Kr={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},ma={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},xa={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Ru={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Pu={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function In(r){return{type:r}}function Cu(r){return!r.ctrlKey&&!r.button}function Mu(){var r=this.ownerSVGElement||this;return r.hasAttribute("viewBox")?(r=r.viewBox.baseVal,[[r.x,r.y],[r.x+r.width,r.y+r.height]]):[[0,0],[r.width.baseVal.value,r.height.baseVal.value]]}function Nu(){return navigator.maxTouchPoints||"ontouchstart"in this}function me(r){for(;!r.__brush;)if(!(r=r.parentNode))return;return r.__brush}function bu(r){return r[0][0]===r[1][0]||r[0][1]===r[1][1]}function Rf(r){var a=r.__brush;return a?a.dim.output(a.selection):null}function Pf(){return xe(Yn)}function Cf(){return xe(Kn)}function Mf(){return xe(Tu)}function xe(r){var a=Mu,f=Cu,d=Nu,m=!0,I=dispatch("start","brush","end"),T=6,b;function L(pt){var Rt=pt.property("__brush",er).selectAll(".overlay").data([In("overlay")]);Rt.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Kr.overlay).merge(Rt).each(function(){var Mt=me(this).extent;select(this).attr("x",Mt[0][0]).attr("y",Mt[0][1]).attr("width",Mt[1][0]-Mt[0][0]).attr("height",Mt[1][1]-Mt[0][1])}),pt.selectAll(".selection").data([In("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Kr.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var Ut=pt.selectAll(".handle").data(r.handles,function(Mt){return Mt.type});Ut.exit().remove(),Ut.enter().append("rect").attr("class",function(Mt){return"handle handle--"+Mt.type}).attr("cursor",function(Mt){return Kr[Mt.type]}),pt.each($).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",et).filter(d).on("touchstart.brush",et).on("touchmove.brush",st).on("touchend.brush touchcancel.brush",Vt).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}L.move=function(pt,Rt,Ut){pt.tween?pt.on("start.brush",function(Mt){W(this,arguments).beforestart().start(Mt)}).on("interrupt.brush end.brush",function(Mt){W(this,arguments).end(Mt)}).tween("brush",function(){var Mt=this,kt=Mt.__brush,Ht=W(Mt,arguments),cr=kt.selection,hr=r.input(typeof Rt=="function"?Rt.apply(this,arguments):Rt,kt.extent),ir=interpolate(cr,hr);function Ar(or){kt.selection=or===1&&hr===null?null:ir(or),$.call(Mt),Ht.brush()}return cr!==null&&hr!==null?Ar:Ar(1)}):pt.each(function(){var Mt=this,kt=arguments,Ht=Mt.__brush,cr=r.input(typeof Rt=="function"?Rt.apply(Mt,kt):Rt,Ht.extent),hr=W(Mt,kt).beforestart();interrupt(Mt),Ht.selection=cr===null?null:cr,$.call(Mt),hr.start(Ut).brush(Ut).end(Ut)})},L.clear=function(pt,Rt){L.move(pt,null,Rt)};function $(){var pt=select(this),Rt=me(this).selection;Rt?(pt.selectAll(".selection").style("display",null).attr("x",Rt[0][0]).attr("y",Rt[0][1]).attr("width",Rt[1][0]-Rt[0][0]).attr("height",Rt[1][1]-Rt[0][1]),pt.selectAll(".handle").style("display",null).attr("x",function(Ut){return Ut.type[Ut.type.length-1]==="e"?Rt[1][0]-T/2:Rt[0][0]-T/2}).attr("y",function(Ut){return Ut.type[0]==="s"?Rt[1][1]-T/2:Rt[0][1]-T/2}).attr("width",function(Ut){return Ut.type==="n"||Ut.type==="s"?Rt[1][0]-Rt[0][0]+T:T}).attr("height",function(Ut){return Ut.type==="e"||Ut.type==="w"?Rt[1][1]-Rt[0][1]+T:T})):pt.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function W(pt,Rt,Ut){var Mt=pt.__brush.emitter;return Mt&&(!Ut||!Mt.clean)?Mt:new K(pt,Rt,Ut)}function K(pt,Rt,Ut){this.that=pt,this.args=Rt,this.state=pt.__brush,this.active=0,this.clean=Ut}K.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(pt,Rt){return this.starting?(this.starting=!1,this.emit("start",pt,Rt)):this.emit("brush",pt),this},brush:function(pt,Rt){return this.emit("brush",pt,Rt),this},end:function(pt,Rt){return--this.active===0&&(delete this.state.emitter,this.emit("end",pt,Rt)),this},emit:function(pt,Rt,Ut){var Mt=select(this.that).datum();I.call(pt,this.that,new BrushEvent(pt,{sourceEvent:Rt,target:L,selection:r.output(this.state.selection),mode:Ut,dispatch:I}),Mt)}};function et(pt){if(b&&!pt.touches||!f.apply(this,arguments))return;var Rt=this,Ut=pt.target.__data__.type,Mt=(m&&pt.metaKey?Ut="overlay":Ut)==="selection"?ga:m&&pt.altKey?vn:cn,kt=r===Kn?null:Ru[Ut],Ht=r===Yn?null:Pu[Ut],cr=me(Rt),hr=cr.extent,ir=cr.selection,Ar=hr[0][0],or,Dt,fr=hr[0][1],nr,vr,Gr=hr[1][0],gr,pr,Dr=hr[1][1],sr,Pr,Er=0,Or=0,Ce,_n=kt&&Ht&&m&&pt.shiftKey,te,re,br=Array.from(pt.touches||[pt],qt=>{const Ir=qt.identifier;return qt=pointer(qt,Rt),qt.point0=qt.slice(),qt.identifier=Ir,qt});interrupt(Rt);var Rn=W(Rt,arguments,!0).beforestart();if(Ut==="overlay"){ir&&(Ce=!0);const qt=[br[0],br[1]||br[0]];cr.selection=ir=[[or=r===Kn?Ar:Mr(qt[0][0],qt[1][0]),nr=r===Yn?fr:Mr(qt[0][1],qt[1][1])],[gr=r===Kn?Gr:Cr(qt[0][0],qt[1][0]),sr=r===Yn?Dr:Cr(qt[0][1],qt[1][1])]],br.length>1&&tn(pt)}else or=ir[0][0],nr=ir[0][1],gr=ir[1][0],sr=ir[1][1];Dt=or,vr=nr,pr=gr,Pr=sr;var Da=select(Rt).attr("pointer-events","none"),Pn=Da.selectAll(".overlay").attr("cursor",Kr[Ut]);if(pt.touches)Rn.moved=$a,Rn.ended=Ua;else{var La=select(pt.view).on("mousemove.brush",$a,!0).on("mouseup.brush",Ua,!0);m&&La.on("keydown.brush",xf,!0).on("keyup.brush",Sf,!0),dragDisable(pt.view)}$.call(Rt),Rn.start(pt,Mt.name);function $a(qt){for(const Ir of qt.changedTouches||[qt])for(const Cn of br)Cn.identifier===Ir.identifier&&(Cn.cur=pointer(Ir,Rt));if(_n&&!te&&!re&&br.length===1){const Ir=br[0];pa(Ir.cur[0]-Ir[0])>pa(Ir.cur[1]-Ir[1])?re=!0:te=!0}for(const Ir of br)Ir.cur&&(Ir[0]=Ir.cur[0],Ir[1]=Ir.cur[1]);Ce=!0,noevent(qt),tn(qt)}function tn(qt){const Ir=br[0],Cn=Ir.point0;var kr;switch(Er=Ir[0]-Cn[0],Or=Ir[1]-Cn[1],Mt){case pe:case ga:{kt&&(Er=Cr(Ar-or,Mr(Gr-gr,Er)),Dt=or+Er,pr=gr+Er),Ht&&(Or=Cr(fr-nr,Mr(Dr-sr,Or)),vr=nr+Or,Pr=sr+Or);break}case cn:{br[1]?(kt&&(Dt=Cr(Ar,Mr(Gr,br[0][0])),pr=Cr(Ar,Mr(Gr,br[1][0])),kt=1),Ht&&(vr=Cr(fr,Mr(Dr,br[0][1])),Pr=Cr(fr,Mr(Dr,br[1][1])),Ht=1)):(kt<0?(Er=Cr(Ar-or,Mr(Gr-or,Er)),Dt=or+Er,pr=gr):kt>0&&(Er=Cr(Ar-gr,Mr(Gr-gr,Er)),Dt=or,pr=gr+Er),Ht<0?(Or=Cr(fr-nr,Mr(Dr-nr,Or)),vr=nr+Or,Pr=sr):Ht>0&&(Or=Cr(fr-sr,Mr(Dr-sr,Or)),vr=nr,Pr=sr+Or));break}case vn:{kt&&(Dt=Cr(Ar,Mr(Gr,or-Er*kt)),pr=Cr(Ar,Mr(Gr,gr+Er*kt))),Ht&&(vr=Cr(fr,Mr(Dr,nr-Or*Ht)),Pr=Cr(fr,Mr(Dr,sr+Or*Ht)));break}}pr<Dt&&(kt*=-1,kr=or,or=gr,gr=kr,kr=Dt,Dt=pr,pr=kr,Ut in ma&&Pn.attr("cursor",Kr[Ut=ma[Ut]])),Pr<vr&&(Ht*=-1,kr=nr,nr=sr,sr=kr,kr=vr,vr=Pr,Pr=kr,Ut in xa&&Pn.attr("cursor",Kr[Ut=xa[Ut]])),cr.selection&&(ir=cr.selection),te&&(Dt=ir[0][0],pr=ir[1][0]),re&&(vr=ir[0][1],Pr=ir[1][1]),(ir[0][0]!==Dt||ir[0][1]!==vr||ir[1][0]!==pr||ir[1][1]!==Pr)&&(cr.selection=[[Dt,vr],[pr,Pr]],$.call(Rt),Rn.brush(qt,Mt.name))}function Ua(qt){if(nopropagation(qt),qt.touches){if(qt.touches.length)return;b&&clearTimeout(b),b=setTimeout(function(){b=null},500)}else dragEnable(qt.view,Ce),La.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);Da.attr("pointer-events","all"),Pn.attr("cursor",Kr.overlay),cr.selection&&(ir=cr.selection),bu(ir)&&(cr.selection=null,$.call(Rt)),Rn.end(qt,Mt.name)}function xf(qt){switch(qt.keyCode){case 16:{_n=kt&&Ht;break}case 18:{Mt===cn&&(kt&&(gr=pr-Er*kt,or=Dt+Er*kt),Ht&&(sr=Pr-Or*Ht,nr=vr+Or*Ht),Mt=vn,tn(qt));break}case 32:{(Mt===cn||Mt===vn)&&(kt<0?gr=pr-Er:kt>0&&(or=Dt-Er),Ht<0?sr=Pr-Or:Ht>0&&(nr=vr-Or),Mt=pe,Pn.attr("cursor",Kr.selection),tn(qt));break}default:return}noevent(qt)}function Sf(qt){switch(qt.keyCode){case 16:{_n&&(te=re=_n=!1,tn(qt));break}case 18:{Mt===vn&&(kt<0?gr=pr:kt>0&&(or=Dt),Ht<0?sr=Pr:Ht>0&&(nr=vr),Mt=cn,tn(qt));break}case 32:{Mt===pe&&(qt.altKey?(kt&&(gr=pr-Er*kt,or=Dt+Er*kt),Ht&&(sr=Pr-Or*Ht,nr=vr+Or*Ht),Mt=vn):(kt<0?gr=pr:kt>0&&(or=Dt),Ht<0?sr=Pr:Ht>0&&(nr=vr),Mt=cn),Pn.attr("cursor",Kr[Ut]),tn(qt));break}default:return}noevent(qt)}}function st(pt){W(this,arguments).moved(pt)}function Vt(pt){W(this,arguments).ended(pt)}function er(){var pt=this.__brush||{selection:null};return pt.extent=ye(a.apply(this,arguments)),pt.dim=r,pt}return L.extent=function(pt){return arguments.length?(a=typeof pt=="function"?pt:constant(ye(pt)),L):a},L.filter=function(pt){return arguments.length?(f=typeof pt=="function"?pt:constant(!!pt),L):f},L.touchable=function(pt){return arguments.length?(d=typeof pt=="function"?pt:constant(!!pt),L):d},L.handleSize=function(pt){return arguments.length?(T=+pt,L):T},L.keyModifiers=function(pt){return arguments.length?(m=!!pt,L):m},L.on=function(){var pt=I.on.apply(I,arguments);return pt===I?L:pt},L}function Fu(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function Du(r){const a=typeof(r==null?void 0:r.requestAnimationFrame)=="function"&&typeof(r==null?void 0:r.cancelAnimationFrame)=="function",f=typeof(r==null?void 0:r.requestIdleCallback)=="function"&&typeof(r==null?void 0:r.cancelIdleCallback)=="function",d=I=>setTimeout(I,1),m=I=>clearTimeout(I);return[a?r.requestAnimationFrame:d,a?r.cancelAnimationFrame:m,f?r.requestIdleCallback:d,f?r.cancelIdleCallback:m]}const Xn=Fu(),Lu=Xn==null?void 0:Xn.document,[Nf,bf,Ff,Df]=Du(Xn);var $u=Object.defineProperty,Sa=Object.getOwnPropertySymbols,Uu=Object.prototype.hasOwnProperty,Bu=Object.prototype.propertyIsEnumerable,Ea=(r,a,f)=>a in r?$u(r,a,{enumerable:!0,configurable:!0,writable:!0,value:f}):r[a]=f,Oa=(r,a)=>{for(var f in a||(a={}))Uu.call(a,f)&&Ea(r,f,a[f]);if(Sa)for(var f of Sa(a))Bu.call(a,f)&&Ea(r,f,a[f]);return r};const Lf=r=>r||r===0,Se=r=>typeof r=="function",An=r=>typeof r=="string",Ee=r=>typeof r=="number",ju=r=>typeof r=="undefined",Ia=r=>typeof r!="undefined",$f=r=>typeof r=="boolean",Uf=r=>Math.ceil(r/10)*10,Bf=r=>Math.ceil(r)+.5,jf=r=>r[1]-r[0],Oe=r=>typeof r=="object",Aa=r=>ju(r)||r===null||An(r)&&r.length===0||Oe(r)&&!(r instanceof Date)&&Object.keys(r).length===0||Ee(r)&&isNaN(r),wu=r=>!Aa(r),Ie=r=>Array.isArray(r),Jn=r=>r&&!(r!=null&&r.nodeType)&&Oe(r)&&!Ie(r);function wf(r,a,f){return Ia(r[a])?r[a]:f}function Gf(r,a){let f=!1;return Object.keys(r).forEach(d=>r[d]===a&&(f=!0)),f}function Vf(r,a,...f){const d=Se(r);return d&&r.call(a,...f),d}function Hf(r,a){let f=0;const d=function(...m){!--f&&a.apply(this,...m)};"duration"in r?r.each(()=>++f).on("end",d):(++f,r.call(d))}function Wf(r){return An(r)?r.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):r}function zf(r,a,f=[-1,1],d=!1){if(!(!r||!An(a)))if(a.indexOf(` +`)===-1)r.text(a);else{const m=[r.text(),a].map(I=>I.replace(/[\s\n]/g,""));if(m[0]!==m[1]){const I=a.split(` +`),T=d?I.length-1:1;r.html(""),I.forEach((b,L)=>{r.append("tspan").attr("x",0).attr("dy",`${L===0?f[0]*T:f[1]}em`).text(b)})}}}function Gu(r){const{x:a,y:f,width:d,height:m}=r.getBBox();return[{x:a,y:f+m},{x:a,y:f},{x:a+d,y:f},{x:a+d,y:f+m}]}function Yf(r){const{width:a,height:f}=r.getBoundingClientRect(),d=Gu(r),m=d[0].x,I=Math.min(d[0].y,d[1].y);return{x:m,y:I,width:a,height:f}}function Kf(r,a){var f;const d=r&&((f=r.touches||r.sourceEvent&&r.sourceEvent.touches)==null?void 0:f[0]);let m=[0,0];try{m=d3Pointer(d||r,a)}catch(I){}return m.map(I=>isNaN(I)?0:I)}function Vu(r){const{event:a,$el:f}=r,d=f.subchart.main||f.main;let m;return a&&a.type==="brush"?m=a.selection:d&&(m=d.select(".bb-brush").node())&&(m=d3BrushSelection(m)),m}function Xf(r){return!("rect"in r)||"rect"in r&&r.hasAttribute("width")&&r.rect.width!==+r.getAttribute("width")?r.rect=r.getBoundingClientRect():r.rect}function Jf(r=!0,a=0,f=1e4){const d=window.crypto||window.msCrypto,m=d?a+d.getRandomValues(new Uint32Array(1))[0]%(f-a+1):Math.floor(Math.random()*(f-a)+a);return r?String(m):m}function Ta(r,a,f,d,m){if(f>d)return-1;const I=Math.floor((f+d)/2);let{x:T,w:b=0}=r[I];return m&&(T=r[I].y,b=r[I].h),a>=T&&a<=T+b?I:a<T?Ta(r,a,f,I-1,m):Ta(r,a,I+1,d,m)}function Qf(r){const a=Vu(r);return a?a[0]===a[1]:!0}function Zf(...r){const a=f=>{if(Jn(f)&&f.constructor){const d=new f.constructor;for(const m in f)d[m]=a(f[m]);return d}return f};return r.map(f=>a(f)).reduce((f,d)=>Oa(Oa({},f),d))}function Hu(r={},a){Ie(a)&&a.forEach(f=>Hu(r,f));for(const f in a)/^\d+$/.test(f)||f in r||(r[f]=a[f]);return r}const kf=r=>r.charAt(0).toUpperCase()+r.slice(1);function qf(r,a="-"){return r.split(a).map((f,d)=>d?f.charAt(0).toUpperCase()+f.slice(1).toLowerCase():f.toLowerCase()).join("")}const Wu=r=>[].slice.call(r);function _f(r,a,f){const{rootSelector:d="",sheet:m}=r,T=`${d} ${(b=>b.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(a)} {${f.join(";")}}`;return m[m.insertRule?"insertRule":"addRule"](T,m.cssRules.length)}function tl(r){let a=[];return r.forEach(f=>{var d;try{f.cssRules&&f.cssRules.length&&(a=a.concat(Wu(f.cssRules)))}catch(m){(d=window.console)==null||d.warn(`Error while reading rules from ${f.href}: ${m.toString()}`)}}),a}function rl(r){var a,f,d,m;return{x:((f=(a=window.pageXOffset)!=null?a:window.scrollX)!=null?f:0)+r.scrollLeft,y:((m=(d=window.pageYOffset)!=null?d:window.scrollY)!=null?m:0)+r.scrollTop}}function nl(r){const a=r?r.transform:null,f=a&&a.baseVal;return f&&f.numberOfItems?f.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function el(r){const a=r[0]instanceof Date,f=(a?r.map(Number):r).filter((d,m,I)=>I.indexOf(d)===m);return a?f.map(d=>new Date(d)):f}function al(r){return r&&r.length?r.reduce((a,f)=>a.concat(f)):[]}function Ae(r,...a){if(!a.length||a.length===1&&!a[0])return r;const f=a.shift();return Jn(r)&&Jn(f)&&Object.keys(f).forEach(d=>{const m=f[d];Jn(m)?(!r[d]&&(r[d]={}),r[d]=Ae(r[d],m)):r[d]=Ie(m)?m.concat():m}),Ae(r,...a)}function zu(r,a=!0){let f;return r[0]instanceof Date?f=a?(d,m)=>d-m:(d,m)=>m-d:a&&!r.every(isNaN)?f=(d,m)=>d-m:a||(f=(d,m)=>d>m&&-1||d<m&&1||d===m&&0),r.concat().sort(f)}function ol(r,a){let f=a.filter(d=>wu(d));return f.length?Ee(f[0])?f=Math[r](...f):f[0]instanceof Date&&(f=zu(f,r==="min")[0]):f=void 0,f}const Yu=(r,a,f=1)=>{const d=[],m=Math.max(0,Math.ceil((a-r)/f))|0;for(let I=r;I<m;I++)d.push(r+I*f);return d},sl={mouse:(()=>{const r=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(a,f,d=r())=>{a.dispatchEvent(new MouseEvent(f,d))}}catch(a){return(f,d,m=r())=>{const I=Lu.createEvent("MouseEvent");I.initMouseEvent(d,m.bubbles,m.cancelable,Xn,0,m.screenX,m.screenY,m.clientX,m.clientY,!1,!1,!1,!1,0,null),f.dispatchEvent(I)}}})(),touch:(r,a,f)=>{const d=new Touch(Ae({identifier:Date.now(),target:r,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},f));r.dispatchEvent(new TouchEvent(a,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[d],targetTouches:[],changedTouches:[d]}))}};function il(r,a){let f=r;for(const d in a)f=f.replace(new RegExp(`{=${d}}`,"g"),a[d]);return f}function Ku(r){var a;let f;if(r instanceof Date)f=r;else if(An(r)){const{config:d,format:m}=this;f=(a=m.dataTime(d.data_xFormat)(r))!=null?a:new Date(r)}else Ee(r)&&!isNaN(r)&&(f=new Date(+r));return(!f||isNaN(+f))&&console&&console.error&&console.error(`Failed to parse x '${r}' to Date object`),f}function ul(){var r,a;return((r=document)==null?void 0:r.hidden)===!1||((a=document)==null?void 0:a.visibilityState)==="visible"}function fl(r,a){const{DocumentTouch:f,matchMedia:d,navigator:m}=window;let I=!1;if(a)if(m&&"maxTouchPoints"in m)I=m.maxTouchPoints>0;else if("ontouchmove"in window||f&&document instanceof f)I=!0;else if(d!=null&&d("(pointer:coarse)").matches)I=!0;else{const b=m.userAgent;I=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(b)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(b)}return r&&((d==null?void 0:d("any-hover:hover").matches)||(d==null?void 0:d("any-pointer:fine").matches))&&"mouse"||I&&"touch"||"mouse"}function Xu(r,a){a()===!1?requestAnimationFrame(()=>Xu(r,a)):r()}function Ju(r){const a=this.config;let f,d,m;const I=()=>{const T=d.shift();if(T&&f&&Oe(f)&&T in f)return f=f[T],I();if(!T)return f};Object.keys(a).forEach(T=>{f=r,d=T.split("_"),m=I(),Ia(m)&&(a[T]=m)}),this.api&&(this.state.orgConfig=r)}var Qu=Object.defineProperty,Zu=(r,a,f)=>a in r?Qu(r,a,{enumerable:!0,configurable:!0,writable:!0,value:f}):r[a]=f,Te=(r,a,f)=>(Zu(r,typeof a!="symbol"?a+"":a,f),f);class Ra{constructor(a={}){Te(this,"$$"),Te(this,"options"),this.options=a}$beforeInit(){}$init(){}$afterInit(){}$redraw(){}$willDestroy(){Object.keys(this).forEach(a=>{this[a]=null,delete this[a]})}}Te(Ra,"version","3.12.4");function ku(r){return r}var Qn=1,Zn=2,Re=3,Tn=4,Pa=1e-6;function qu(r){return"translate("+r+",0)"}function _u(r){return"translate(0,"+r+")"}function tf(r){return a=>+r(a)}function rf(r,a){return a=Math.max(0,r.bandwidth()-a*2)/2,r.round()&&(a=Math.round(a)),f=>+r(f)+a}function nf(){return!this.__axis}function kn(r,a){var f=[],d=null,m=null,I=6,T=6,b=3,L=typeof window!="undefined"&&window.devicePixelRatio>1?0:.5,$=r===Qn||r===Tn?-1:1,W=r===Tn||r===Zn?"x":"y",K=r===Qn||r===Re?qu:_u;function et(st){var Vt=d==null?a.ticks?a.ticks.apply(a,f):a.domain():d,er=m==null?a.tickFormat?a.tickFormat.apply(a,f):ku:m,pt=Math.max(I,0)+b,Rt=a.range(),Ut=+Rt[0]+L,Mt=+Rt[Rt.length-1]+L,kt=(a.bandwidth?rf:tf)(a.copy(),L),Ht=st.selection?st.selection():st,cr=Ht.selectAll(".domain").data([null]),hr=Ht.selectAll(".tick").data(Vt,a).order(),ir=hr.exit(),Ar=hr.enter().append("g").attr("class","tick"),or=hr.select("line"),Dt=hr.select("text");cr=cr.merge(cr.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),hr=hr.merge(Ar),or=or.merge(Ar.append("line").attr("stroke","currentColor").attr(W+"2",$*I)),Dt=Dt.merge(Ar.append("text").attr("fill","currentColor").attr(W,$*pt).attr("dy",r===Qn?"0em":r===Re?"0.71em":"0.32em")),st!==Ht&&(cr=cr.transition(st),hr=hr.transition(st),or=or.transition(st),Dt=Dt.transition(st),ir=ir.transition(st).attr("opacity",Pa).attr("transform",function(fr){return isFinite(fr=kt(fr))?K(fr+L):this.getAttribute("transform")}),Ar.attr("opacity",Pa).attr("transform",function(fr){var nr=this.parentNode.__axis;return K((nr&&isFinite(nr=nr(fr))?nr:kt(fr))+L)})),ir.remove(),cr.attr("d",r===Tn||r===Zn?T?"M"+$*T+","+Ut+"H"+L+"V"+Mt+"H"+$*T:"M"+L+","+Ut+"V"+Mt:T?"M"+Ut+","+$*T+"V"+L+"H"+Mt+"V"+$*T:"M"+Ut+","+L+"H"+Mt),hr.attr("opacity",1).attr("transform",function(fr){return K(kt(fr)+L)}),or.attr(W+"2",$*I),Dt.attr(W,$*pt).text(er),Ht.filter(nf).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",r===Zn?"start":r===Tn?"end":"middle"),Ht.each(function(){this.__axis=kt})}return et.scale=function(st){return arguments.length?(a=st,et):a},et.ticks=function(){return f=Array.from(arguments),et},et.tickArguments=function(st){return arguments.length?(f=st==null?[]:Array.from(st),et):f.slice()},et.tickValues=function(st){return arguments.length?(d=st==null?null:Array.from(st),et):d&&d.slice()},et.tickFormat=function(st){return arguments.length?(m=st,et):m},et.tickSize=function(st){return arguments.length?(I=T=+st,et):I},et.tickSizeInner=function(st){return arguments.length?(I=+st,et):I},et.tickSizeOuter=function(st){return arguments.length?(T=+st,et):T},et.tickPadding=function(st){return arguments.length?(b=+st,et):b},et.offset=function(st){return arguments.length?(L=+st,et):L},et}function ll(r){return kn(Qn,r)}function ef(r){return kn(Zn,r)}function cl(r){return kn(Re,r)}function vl(r){return kn(Tn,r)}function Ca(r){return function(a){return Math.sign(a)*Math.log1p(Math.abs(a/r))}}function Ma(r){return function(a){return Math.sign(a)*Math.expm1(Math.abs(a))*r}}function af(r){var a=1,f=r(Ca(a),Ma(a));return f.constant=function(d){return arguments.length?r(Ca(a=+d),Ma(a)):a},ae(f)}function Na(){var r=af(Fr());return r.copy=function(){return Qr(r,Na()).constant(r.constant())},Wr.apply(r,arguments)}var Hr={colorScale:"bb-colorscale",stanfordElements:"bb-stanford-elements",stanfordLine:"bb-stanford-line",stanfordLines:"bb-stanford-lines",stanfordRegion:"bb-stanford-region",stanfordRegions:"bb-stanford-regions"},of=Object.defineProperty,sf=(r,a,f)=>a in r?of(r,a,{enumerable:!0,configurable:!0,writable:!0,value:f}):r[a]=f,ba=(r,a,f)=>(sf(r,typeof a!="symbol"?a+"":a,f),f);class uf{constructor(a){ba(this,"owner"),ba(this,"colorScale"),this.owner=a}drawColorScale(){const{$$:a,config:f}=this.owner,d=a.data.targets[0],m=a.state.height-f.padding_bottom-f.padding_top,I=f.scale_width,T=5,b=Yu(f.padding_bottom,m,T),L=$e(d.colors).domain([b[b.length-1],b[0]]);this.colorScale&&this.colorScale.remove(),this.colorScale=a.$el.svg.append("g").attr("width",50).attr("height",m).attr("class",Hr.colorScale),this.colorScale.append("g").attr("transform",`translate(0, ${f.padding_top})`).selectAll("bars").data(b).enter().append("rect").attr("y",(st,Vt)=>Vt*T).attr("x",0).attr("width",I).attr("height",T).attr("fill",st=>L(st));const $=Na().domain([d.minEpochs,d.maxEpochs]).range([b[0]+f.padding_top+b[b.length-1]+T-1,b[0]+f.padding_top]),W=ef($),K=f.scale_format;K==="pow10"?W.tickValues([1,10,100,1e3,1e4,1e5,1e6,1e7]):Se(K)?W.tickFormat(K):W.tickFormat(bn("d"));const et=this.colorScale.append("g").attr("class","legend axis").attr("transform",`translate(${I},0)`).call(W);K==="pow10"&&et.selectAll(".tick text").text(null).filter(st=>st/Math.pow(10,Math.ceil(Math.log(st)/Math.LN10-1e-12))===1).text(10).append("tspan").attr("dy","-.7em").text(st=>Math.round(Math.log(st)/Math.LN10)),this.colorScale.attr("transform",`translate(${a.state.current.width-this.xForColorScale()}, 0)`)}xForColorScale(){return this.owner.config.padding_right+this.colorScale.node().getBBox().width}getColorScalePadding(){return this.xForColorScale()+this.owner.config.padding_left+20}}function ff(r,a){const f=r.x,d=r.value;let m=!1;for(let I=0,T=a.length-1;I<a.length;T=I++){const b=a[I].x,L=a[I].y,$=a[T].x,W=a[T].y;L>d!=W>d&&f<($-b)*(d-L)/(W-L)+b&&(m=!m)}return m}function lf(r,a){return r.epochs<a.epochs?-1:r.epochs>a.epochs?1:0}function cf(r){let a=0,f,d;for(let m=0,I=r.length,T=I-1;m<I;T=m,m++)f=r[m],d=r[T],a+=f.x*d.y,a-=f.y*d.x;return a/=2,a}function qn(r){const a=cf(r);let f=0,d=0,m;for(let I=0,T=r.length,b=T-1;I<T;b=I,I++){const L=r[I],$=r[b];m=L.x*$.y-$.x*L.y,f+=(L.x+$.x)*m,d+=(L.y+$.y)*m}return m=a*6,{x:f/m,y:d/m}}var vf=Object.defineProperty,df=(r,a,f)=>a in r?vf(r,a,{enumerable:!0,configurable:!0,writable:!0,value:f}):r[a]=f,hf=(r,a,f)=>(df(r,typeof a!="symbol"?a+"":a,f),f);class gf{constructor(a){hf(this,"owner"),this.owner=a;const f=a.$$.$el.main.select(".bb-chart").append("g").attr("class",Hr.stanfordElements);f.append("g").attr("class",Hr.stanfordLines),f.append("g").attr("class",Hr.stanfordRegions)}updateStanfordLines(a){const{$$:f}=this.owner,{config:d,$el:{main:m}}=f,I=d.axis_rotated,T=this.xvCustom.bind(f),b=this.yvCustom.bind(f),L=m.select(`.${Hr.stanfordLines}`).style("shape-rendering","geometricprecision").selectAll(`.${Hr.stanfordLine}`).data(this.owner.config.lines);L.exit().transition().duration(a).style("opacity","0").remove();const $=L.enter().append("g");$.append("line").style("opacity","0"),$.merge(L).attr("class",W=>Hr.stanfordLine+(W.class?` ${W.class}`:"")).select("line").transition().duration(a).attr("x1",W=>I?b(W,"y1"):T(W,"x1")).attr("x2",W=>I?b(W,"y2"):T(W,"x2")).attr("y1",W=>I?T(W,"x1"):b(W,"y1")).attr("y2",W=>I?T(W,"x2"):b(W,"y2")).transition().style("opacity",null)}updateStanfordRegions(a){const{$$:f}=this.owner,{config:d,$el:{main:m}}=f,I=d.axis_rotated,T=this.xvCustom.bind(f),b=this.yvCustom.bind(f),L=this.owner.countEpochsInRegion.bind(f);let $=m.select(`.${Hr.stanfordRegions}`).selectAll(`.${Hr.stanfordRegion}`).data(this.owner.config.regions);$.exit().transition().duration(a).style("opacity","0").remove();const W=$.enter().append("g");W.append("polygon").style("opacity","0"),W.append("text").attr("transform",I?"rotate(-90)":"").style("opacity","0"),$=W.merge($),$.attr("class",K=>Hr.stanfordRegion+(K.class?` ${K.class}`:"")).select("polygon").transition().duration(a).attr("points",K=>K.points.map(et=>[I?b(et,"y"):T(et,"x"),I?T(et,"x"):b(et,"y")].join(",")).join(" ")).transition().style("opacity",K=>String(K.opacity?K.opacity:.2)),$.select("text").transition().duration(a).attr("x",K=>I?b(qn(K.points),"y"):T(qn(K.points),"x")).attr("y",K=>I?T(qn(K.points),"x"):b(qn(K.points),"y")).text(K=>{if(K.text){const{value:et,percentage:st}=L(K.points);return K.text(et,st)}return""}).attr("text-anchor","middle").attr("dominant-baseline","middle").transition().style("opacity",null)}updateStanfordElements(a=0){this.updateStanfordLines(a),this.updateStanfordRegions(a)}xvCustom(a,f){const d=this,{axis:m,config:I}=d;let T=f?a[f]:d.getBaseValue(a);return m.isTimeSeries()?T=Ku.call(d,T):m.isCategorized()&&An(T)&&(T=I.axis_x_categories.indexOf(a.value)),Math.ceil(d.scale.x(T))}yvCustom(a,f){const d=this,m=a.axis&&a.axis==="y2"?d.scale.y2:d.scale.y,I=f?a[f]:d.getBaseValue(a);return Math.ceil(m(I))}}class Fa{constructor(){return{colors:void 0,epochs:[],lines:[],scale_min:void 0,scale_max:void 0,scale_width:20,scale_format:void 0,padding_top:0,padding_right:0,padding_bottom:0,padding_left:0,regions:[]}}}var pf=Object.defineProperty,yf=(r,a,f)=>a in r?pf(r,a,{enumerable:!0,configurable:!0,writable:!0,value:f}):r[a]=f,Pe=(r,a,f)=>(yf(r,typeof a!="symbol"?a+"":a,f),f);class mf extends Ra{constructor(a){return super(a),Pe(this,"config"),Pe(this,"colorScale"),Pe(this,"elements"),this.config=new Fa,this}$beforeInit(){const{$$:a}=this;a.config.data_xSort=!1,a.isMultipleX=()=>!0,a.showGridFocus=()=>{},a.labelishData=d=>d.values,a.opacityForCircle=()=>1;const f=a.getCurrentPadding.bind(a);a.getCurrentPadding=()=>{const d=f();return d.right+=this.colorScale?this.colorScale.getColorScalePadding():0,d}}$init(){const{$$:a}=this;Ju.call(this,this.options),a.color=this.getStanfordPointColor.bind(a),this.colorScale=new uf(this),this.elements=new gf(this),this.convertData(),this.initStanfordData(),this.setStanfordTooltip(),this.colorScale.drawColorScale(),a.right+=this.colorScale?this.colorScale.getColorScalePadding():0,this.$redraw()}$redraw(a){var f,d;(f=this.colorScale)==null||f.drawColorScale(),(d=this.elements)==null||d.updateStanfordElements(a)}getOptions(){return new Fa}convertData(){const a=this.$$.data.targets,f=this.options.epochs;a.forEach(d=>{d.values.forEach((m,I)=>{m.epochs=f[I]}),d.minEpochs=void 0,d.maxEpochs=void 0,d.colors=void 0,d.colorscale=void 0})}initStanfordData(){const{config:a}=this,f=this.$$.data.targets[0];f.values.sort(lf);const d=f.values.map(m=>m.epochs);f.minEpochs=isNaN(a.scale_min)?Math.min(...d):a.scale_min,f.maxEpochs=isNaN(a.scale_max)?Math.max(...d):a.scale_max,f.colors=Se(a.colors)?a.colors:Lt(ot(250,1,.5),ot(0,1,.5)),f.colorscale=Ue(f.colors).domain([f.minEpochs,f.maxEpochs])}getStanfordPointColor(a){return this.data.targets[0].colorscale(a.epochs)}setStanfordTooltip(){const{config:a}=this.$$;Aa(a.tooltip_contents)&&(a.tooltip_contents=function(f,d,m,I){const{data_x:T}=a;let b=`<table class="${oe.tooltip}"><tbody>`;return f.forEach(L=>{const{id:$="",value:W=0,epochs:K=0,x:et=""}=L;b+=`<tr> + <th>${T||""}</th> + <th class="value">${d(et)}</th> + </tr> + <tr> + <th>${L.id}</th> + <th class="value">${m(W)}</th> + </tr> + <tr class="${oe.tooltipName}-${$}"> + <td class="name"><span style="background-color:${I(L)}"></span>Epochs</td> + <td class="value">${m(K)}</td> + </tr>`}),`${b}</tbody></table>`})}countEpochsInRegion(a){const d=this.data.targets[0],m=d.values.reduce((T,b)=>T+Number(b.epochs),0),I=d.values.reduce((T,b)=>ff(b,a)?T+Number(b.epochs):T,0);return{value:I,percentage:I!==0?+(I/m*100).toFixed(1):0}}}},85156:function(u,g,t){var n=t(23583),e=t(82453),o=TypeError;u.exports=function(s){if(n(s))return s;throw new o(e(s)+" is not a function")}},80042:function(u,g,t){var n=t(11051),e=t(82453),o=TypeError;u.exports=function(s){if(n(s))return s;throw new o(e(s)+" is not a constructor")}},53408:function(u,g,t){var n=t(52427),e=String,o=TypeError;u.exports=function(s){if(n(s))return s;throw new o("Can't set "+e(s)+" as a prototype")}},76602:function(u,g,t){var n=t(172).has;u.exports=function(e){return n(e),e}},23811:function(u,g,t){var n=t(18565),e=t(5406),o=t(7831).f,s=n("unscopables"),i=Array.prototype;i[s]===void 0&&o(i,s,{configurable:!0,value:e(null)}),u.exports=function(l){i[s][l]=!0}},24487:function(u,g,t){var n=t(22149).charAt;u.exports=function(e,o,s){return o+(s?n(e,o).length:1)}},12833:function(u,g,t){var n=t(95307),e=TypeError;u.exports=function(o,s){if(n(s,o))return o;throw new e("Incorrect invocation")}},25001:function(u,g,t){var n=t(37540),e=String,o=TypeError;u.exports=function(s){if(n(s))return s;throw new o(e(s)+" is not an object")}},3237:function(u){u.exports=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"},58360:function(u,g,t){var n=t(84756),e=t(14274),o=TypeError;u.exports=n(ArrayBuffer.prototype,"byteLength","get")||function(s){if(e(s)!=="ArrayBuffer")throw new o("ArrayBuffer expected");return s.byteLength}},30736:function(u,g,t){var n=t(11286),e=t(58360),o=n(ArrayBuffer.prototype.slice);u.exports=function(s){if(e(s)!==0)return!1;try{return o(s,0,0),!1}catch(i){return!0}}},72058:function(u,g,t){var n=t(72069);u.exports=n(function(){if(typeof ArrayBuffer=="function"){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}})},65006:function(u,g,t){var n=t(66009),e=t(11286),o=t(84756),s=t(9450),i=t(30736),l=t(58360),c=t(63741),v=t(99050),h=n.structuredClone,p=n.ArrayBuffer,y=n.DataView,x=n.TypeError,S=Math.min,O=p.prototype,E=y.prototype,A=e(O.slice),M=o(O,"resizable","get"),P=o(O,"maxByteLength","get"),C=e(E.getInt8),F=e(E.setInt8);u.exports=(v||c)&&function(R,N,D){var j=l(R),U=N===void 0?j:s(N),B=!M||!M(R),H;if(i(R))throw new x("ArrayBuffer is detached");if(v&&(R=h(R,{transfer:[R]}),j===U&&(D||B)))return R;if(j>=U&&(!D||B))H=A(R,0,U);else{var z=D&&!B&&P?{maxByteLength:P(R)}:void 0;H=new p(U,z);for(var w=new y(R),G=new y(H),V=S(U,j),J=0;J<V;J++)F(G,J,C(w,J))}return v||c(R),H}},88037:function(u,g,t){var n=t(3237),e=t(92986),o=t(66009),s=t(23583),i=t(37540),l=t(94879),c=t(9205),v=t(82453),h=t(90809),p=t(16142),y=t(85500),x=t(95307),S=t(26313),O=t(15861),E=t(18565),A=t(36374),M=t(82367),P=M.enforce,C=M.get,F=o.Int8Array,R=F&&F.prototype,N=o.Uint8ClampedArray,D=N&&N.prototype,j=F&&S(F),U=R&&S(R),B=Object.prototype,H=o.TypeError,z=E("toStringTag"),w=A("TYPED_ARRAY_TAG"),G="TypedArrayConstructor",V=n&&!!O&&c(o.opera)!=="Opera",J=!1,rt,k,ot,_={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},mt={BigInt64Array:8,BigUint64Array:8},ct=function(St){if(!i(St))return!1;var bt=c(St);return bt==="DataView"||l(_,bt)||l(mt,bt)},xt=function(vt){var St=S(vt);if(i(St)){var bt=C(St);return bt&&l(bt,G)?bt[G]:xt(St)}},It=function(vt){if(!i(vt))return!1;var St=c(vt);return l(_,St)||l(mt,St)},Ct=function(vt){if(It(vt))return vt;throw new H("Target is not a typed array")},Yt=function(vt){if(s(vt)&&(!O||x(j,vt)))return vt;throw new H(v(vt)+" is not a typed array constructor")},Wt=function(vt,St,bt,Lt){if(e){if(bt)for(var Ft in _){var jt=o[Ft];if(jt&&l(jt.prototype,vt))try{delete jt.prototype[vt]}catch(tr){try{jt.prototype[vt]=St}catch(rr){}}}(!U[vt]||bt)&&p(U,vt,bt?St:V&&R[vt]||St,Lt)}},Bt=function(vt,St,bt){var Lt,Ft;if(e){if(O){if(bt){for(Lt in _)if(Ft=o[Lt],Ft&&l(Ft,vt))try{delete Ft[vt]}catch(jt){}}if(!j[vt]||bt)try{return p(j,vt,bt?St:V&&j[vt]||St)}catch(jt){}else return}for(Lt in _)Ft=o[Lt],Ft&&(!Ft[vt]||bt)&&p(Ft,vt,St)}};for(rt in _)k=o[rt],ot=k&&k.prototype,ot?P(ot)[G]=k:V=!1;for(rt in mt)k=o[rt],ot=k&&k.prototype,ot&&(P(ot)[G]=k);if((!V||!s(j)||j===Function.prototype)&&(j=function(){throw new H("Incorrect invocation")},V))for(rt in _)o[rt]&&O(o[rt],j);if((!V||!U||U===B)&&(U=j.prototype,V))for(rt in _)o[rt]&&O(o[rt].prototype,U);if(V&&S(D)!==U&&O(D,U),e&&!l(U,z)){J=!0,y(U,z,{configurable:!0,get:function(){return i(this)?this[w]:void 0}});for(rt in _)o[rt]&&h(o[rt],w,rt)}u.exports={NATIVE_ARRAY_BUFFER_VIEWS:V,TYPED_ARRAY_TAG:J&&w,aTypedArray:Ct,aTypedArrayConstructor:Yt,exportTypedArrayMethod:Wt,exportTypedArrayStaticMethod:Bt,getTypedArrayConstructor:xt,isView:ct,isTypedArray:It,TypedArray:j,TypedArrayPrototype:U}},17468:function(u,g,t){var n=t(66009),e=t(11286),o=t(92986),s=t(3237),i=t(86588),l=t(90809),c=t(85500),v=t(2725),h=t(72069),p=t(12833),y=t(12105),x=t(45344),S=t(9450),O=t(93279),E=t(25212),A=t(26313),M=t(15861),P=t(43011),C=t(22806),F=t(32345),R=t(93706),N=t(78401),D=t(82367),j=i.PROPER,U=i.CONFIGURABLE,B="ArrayBuffer",H="DataView",z="prototype",w="Wrong length",G="Wrong index",V=D.getterFor(B),J=D.getterFor(H),rt=D.set,k=n[B],ot=k,_=ot&&ot[z],mt=n[H],ct=mt&&mt[z],xt=Object.prototype,It=n.Array,Ct=n.RangeError,Yt=e(P),Wt=e([].reverse),Bt=E.pack,vt=E.unpack,St=function(ft){return[ft&255]},bt=function(ft){return[ft&255,ft>>8&255]},Lt=function(ft){return[ft&255,ft>>8&255,ft>>16&255,ft>>24&255]},Ft=function(ft){return ft[3]<<24|ft[2]<<16|ft[1]<<8|ft[0]},jt=function(ft){return Bt(O(ft),23,4)},tr=function(ft){return Bt(ft,52,8)},rr=function(ft,dt,at){c(ft[z],dt,{configurable:!0,get:function(){return at(this)[dt]}})},Jt=function(ft,dt,at,At){var Pt=J(ft),Ot=S(at),Et=!!At;if(Ot+dt>Pt.byteLength)throw new Ct(G);var ar=Pt.bytes,lr=Ot+Pt.byteOffset,q=C(ar,lr,lr+dt);return Et?q:Wt(q)},wt=function(ft,dt,at,At,Pt,Ot){var Et=J(ft),ar=S(at),lr=At(+Pt),q=!!Ot;if(ar+dt>Et.byteLength)throw new Ct(G);for(var it=Et.bytes,lt=ar+Et.byteOffset,X=0;X<dt;X++)it[lt+X]=lr[q?X:dt-X-1]};if(!s)ot=function(dt){p(this,_);var at=S(dt);rt(this,{type:B,bytes:Yt(It(at),0),byteLength:at}),o||(this.byteLength=at,this.detached=!1)},_=ot[z],mt=function(dt,at,At){p(this,ct),p(dt,_);var Pt=V(dt),Ot=Pt.byteLength,Et=y(at);if(Et<0||Et>Ot)throw new Ct("Wrong offset");if(At=At===void 0?Ot-Et:x(At),Et+At>Ot)throw new Ct(w);rt(this,{type:H,buffer:dt,byteLength:At,byteOffset:Et,bytes:Pt.bytes}),o||(this.buffer=dt,this.byteLength=At,this.byteOffset=Et)},ct=mt[z],o&&(rr(ot,"byteLength",V),rr(mt,"buffer",J),rr(mt,"byteLength",J),rr(mt,"byteOffset",J)),v(ct,{getInt8:function(dt){return Jt(this,1,dt)[0]<<24>>24},getUint8:function(dt){return Jt(this,1,dt)[0]},getInt16:function(dt){var at=Jt(this,2,dt,arguments.length>1?arguments[1]:!1);return(at[1]<<8|at[0])<<16>>16},getUint16:function(dt){var at=Jt(this,2,dt,arguments.length>1?arguments[1]:!1);return at[1]<<8|at[0]},getInt32:function(dt){return Ft(Jt(this,4,dt,arguments.length>1?arguments[1]:!1))},getUint32:function(dt){return Ft(Jt(this,4,dt,arguments.length>1?arguments[1]:!1))>>>0},getFloat32:function(dt){return vt(Jt(this,4,dt,arguments.length>1?arguments[1]:!1),23)},getFloat64:function(dt){return vt(Jt(this,8,dt,arguments.length>1?arguments[1]:!1),52)},setInt8:function(dt,at){wt(this,1,dt,St,at)},setUint8:function(dt,at){wt(this,1,dt,St,at)},setInt16:function(dt,at){wt(this,2,dt,bt,at,arguments.length>2?arguments[2]:!1)},setUint16:function(dt,at){wt(this,2,dt,bt,at,arguments.length>2?arguments[2]:!1)},setInt32:function(dt,at){wt(this,4,dt,Lt,at,arguments.length>2?arguments[2]:!1)},setUint32:function(dt,at){wt(this,4,dt,Lt,at,arguments.length>2?arguments[2]:!1)},setFloat32:function(dt,at){wt(this,4,dt,jt,at,arguments.length>2?arguments[2]:!1)},setFloat64:function(dt,at){wt(this,8,dt,tr,at,arguments.length>2?arguments[2]:!1)}});else{var _t=j&&k.name!==B;!h(function(){k(1)})||!h(function(){new k(-1)})||h(function(){return new k,new k(1.5),new k(NaN),k.length!==1||_t&&!U})?(ot=function(dt){return p(this,_),F(new k(S(dt)),this,ot)},ot[z]=_,_.constructor=ot,R(ot,k)):_t&&U&&l(k,"name",B),M&&A(ct)!==xt&&M(ct,xt);var Kt=new mt(new ot(2)),Gt=e(ct.setInt8);Kt.setInt8(0,2147483648),Kt.setInt8(1,2147483649),(Kt.getInt8(0)||!Kt.getInt8(1))&&v(ct,{setInt8:function(dt,at){Gt(this,dt,at<<24>>24)},setUint8:function(dt,at){Gt(this,dt,at<<24>>24)}},{unsafe:!0})}N(ot,B),N(mt,H),u.exports={ArrayBuffer:ot,DataView:mt}},81499:function(u,g,t){var n=t(49671),e=t(4652),o=t(82628),s=t(12384),i=Math.min;u.exports=[].copyWithin||function(c,v){var h=n(this),p=o(h),y=e(c,p),x=e(v,p),S=arguments.length>2?arguments[2]:void 0,O=i((S===void 0?p:e(S,p))-x,p-y),E=1;for(x<y&&y<x+O&&(E=-1,x+=O-1,y+=O-1);O-- >0;)x in h?h[y]=h[x]:s(h,y),y+=E,x+=E;return h}},43011:function(u,g,t){var n=t(49671),e=t(4652),o=t(82628);u.exports=function(i){for(var l=n(this),c=o(l),v=arguments.length,h=e(v>1?arguments[1]:void 0,c),p=v>2?arguments[2]:void 0,y=p===void 0?c:e(p,c);y>h;)l[h++]=i;return l}},13349:function(u,g,t){var n=t(66655).forEach,e=t(6148),o=e("forEach");u.exports=o?[].forEach:function(i){return n(this,i,arguments.length>1?arguments[1]:void 0)}},5220:function(u,g,t){var n=t(82628);u.exports=function(e,o,s){for(var i=0,l=arguments.length>2?s:n(o),c=new e(l);l>i;)c[i]=o[i++];return c}},48258:function(u,g,t){var n=t(45526),e=t(96499),o=t(49671),s=t(39969),i=t(48199),l=t(11051),c=t(82628),v=t(84082),h=t(90619),p=t(81077),y=Array;u.exports=function(S){var O=o(S),E=l(this),A=arguments.length,M=A>1?arguments[1]:void 0,P=M!==void 0;P&&(M=n(M,A>2?arguments[2]:void 0));var C=p(O),F=0,R,N,D,j,U,B;if(C&&!(this===y&&i(C)))for(N=E?new this:[],j=h(O,C),U=j.next;!(D=e(U,j)).done;F++)B=P?s(j,M,[D.value,F],!0):D.value,v(N,F,B);else for(R=c(O),N=E?new this(R):y(R);R>F;F++)B=P?M(O[F],F):O[F],v(N,F,B);return N.length=F,N}},94319:function(u,g,t){var n=t(36859),e=t(4652),o=t(82628),s=function(i){return function(l,c,v){var h=n(l),p=o(h);if(p===0)return!i&&-1;var y=e(v,p),x;if(i&&c!==c){for(;p>y;)if(x=h[y++],x!==x)return!0}else for(;p>y;y++)if((i||y in h)&&h[y]===c)return i||y||0;return!i&&-1}};u.exports={includes:s(!0),indexOf:s(!1)}},73849:function(u,g,t){var n=t(45526),e=t(72181),o=t(49671),s=t(82628),i=function(l){var c=l===1;return function(v,h,p){for(var y=o(v),x=e(y),S=s(x),O=n(h,p),E,A;S-- >0;)if(E=x[S],A=O(E,S,y),A)switch(l){case 0:return E;case 1:return S}return c?-1:void 0}};u.exports={findLast:i(0),findLastIndex:i(1)}},66655:function(u,g,t){var n=t(45526),e=t(11286),o=t(72181),s=t(49671),i=t(82628),l=t(62083),c=e([].push),v=function(h){var p=h===1,y=h===2,x=h===3,S=h===4,O=h===6,E=h===7,A=h===5||O;return function(M,P,C,F){for(var R=s(M),N=o(R),D=i(N),j=n(P,C),U=0,B=F||l,H=p?B(M,D):y||E?B(M,0):void 0,z,w;D>U;U++)if((A||U in N)&&(z=N[U],w=j(z,U,R),h))if(p)H[U]=w;else if(w)switch(h){case 3:return!0;case 5:return z;case 6:return U;case 2:c(H,z)}else switch(h){case 4:return!1;case 7:c(H,z)}return O?-1:x||S?S:H}};u.exports={forEach:v(0),map:v(1),filter:v(2),some:v(3),every:v(4),find:v(5),findIndex:v(6),filterReject:v(7)}},58465:function(u,g,t){var n=t(66543),e=t(36859),o=t(12105),s=t(82628),i=t(6148),l=Math.min,c=[].lastIndexOf,v=!!c&&1/[1].lastIndexOf(1,-0)<0,h=i("lastIndexOf"),p=v||!h;u.exports=p?function(x){if(v)return n(c,this,arguments)||0;var S=e(this),O=s(S);if(O===0)return-1;var E=O-1;for(arguments.length>1&&(E=l(E,o(arguments[1]))),E<0&&(E=O+E);E>=0;E--)if(E in S&&S[E]===x)return E||0;return-1}:c},52183:function(u,g,t){var n=t(72069),e=t(18565),o=t(73126),s=e("species");u.exports=function(i){return o>=51||!n(function(){var l=[],c=l.constructor={};return c[s]=function(){return{foo:1}},l[i](Boolean).foo!==1})}},6148:function(u,g,t){var n=t(72069);u.exports=function(e,o){var s=[][e];return!!s&&n(function(){s.call(null,o||function(){return 1},1)})}},97264:function(u,g,t){var n=t(85156),e=t(49671),o=t(72181),s=t(82628),i=TypeError,l="Reduce of empty array with no initial value",c=function(v){return function(h,p,y,x){var S=e(h),O=o(S),E=s(S);if(n(p),E===0&&y<2)throw new i(l);var A=v?E-1:0,M=v?-1:1;if(y<2)for(;;){if(A in O){x=O[A],A+=M;break}if(A+=M,v?A<0:E<=A)throw new i(l)}for(;v?A>=0:E>A;A+=M)A in O&&(x=p(x,O[A],A,S));return x}};u.exports={left:c(!1),right:c(!0)}},2213:function(u,g,t){var n=t(92986),e=t(3438),o=TypeError,s=Object.getOwnPropertyDescriptor,i=n&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(l){return l instanceof TypeError}}();u.exports=i?function(l,c){if(e(l)&&!s(l,"length").writable)throw new o("Cannot set read only .length");return l.length=c}:function(l,c){return l.length=c}},22806:function(u,g,t){var n=t(11286);u.exports=n([].slice)},13270:function(u,g,t){var n=t(22806),e=Math.floor,o=function(s,i){var l=s.length;if(l<8)for(var c=1,v,h;c<l;){for(h=c,v=s[c];h&&i(s[h-1],v)>0;)s[h]=s[--h];h!==c++&&(s[h]=v)}else for(var p=e(l/2),y=o(n(s,0,p),i),x=o(n(s,p),i),S=y.length,O=x.length,E=0,A=0;E<S||A<O;)s[E+A]=E<S&&A<O?i(y[E],x[A])<=0?y[E++]:x[A++]:E<S?y[E++]:x[A++];return s};u.exports=o},37555:function(u,g,t){var n=t(3438),e=t(11051),o=t(37540),s=t(18565),i=s("species"),l=Array;u.exports=function(c){var v;return n(c)&&(v=c.constructor,e(v)&&(v===l||n(v.prototype))?v=void 0:o(v)&&(v=v[i],v===null&&(v=void 0))),v===void 0?l:v}},62083:function(u,g,t){var n=t(37555);u.exports=function(e,o){return new(n(e))(o===0?0:o)}},61638:function(u,g,t){var n=t(82628);u.exports=function(e,o){for(var s=n(e),i=new o(s),l=0;l<s;l++)i[l]=e[s-l-1];return i}},72302:function(u,g,t){var n=t(82628),e=t(12105),o=RangeError;u.exports=function(s,i,l,c){var v=n(s),h=e(l),p=h<0?v+h:h;if(p>=v||p<0)throw new o("Incorrect index");for(var y=new i(v),x=0;x<v;x++)y[x]=x===p?c:s[x];return y}},6210:function(u){var g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t=g+"+/",n=g+"-_",e=function(o){for(var s={},i=0;i<64;i++)s[o.charAt(i)]=i;return s};u.exports={i2c:t,c2i:e(t),i2cUrl:n,c2iUrl:e(n)}},39969:function(u,g,t){var n=t(25001),e=t(99797);u.exports=function(o,s,i,l){try{return l?s(n(i)[0],i[1]):s(i)}catch(c){e(o,"throw",c)}}},97494:function(u,g,t){var n=t(18565),e=n("iterator"),o=!1;try{var s=0,i={next:function(){return{done:!!s++}},return:function(){o=!0}};i[e]=function(){return this},Array.from(i,function(){throw 2})}catch(l){}u.exports=function(l,c){try{if(!c&&!o)return!1}catch(p){return!1}var v=!1;try{var h={};h[e]=function(){return{next:function(){return{done:v=!0}}}},l(h)}catch(p){}return v}},14274:function(u,g,t){var n=t(11286),e=n({}.toString),o=n("".slice);u.exports=function(s){return o(e(s),8,-1)}},9205:function(u,g,t){var n=t(67878),e=t(23583),o=t(14274),s=t(18565),i=s("toStringTag"),l=Object,c=o(function(){return arguments}())==="Arguments",v=function(h,p){try{return h[p]}catch(y){}};u.exports=n?o:function(h){var p,y,x;return h===void 0?"Undefined":h===null?"Null":typeof(y=v(p=l(h),i))=="string"?y:c?o(p):(x=o(p))==="Object"&&e(p.callee)?"Arguments":x}},34440:function(u,g,t){var n=t(5406),e=t(85500),o=t(2725),s=t(45526),i=t(12833),l=t(5683),c=t(55902),v=t(10218),h=t(10659),p=t(36167),y=t(92986),x=t(31853).fastKey,S=t(82367),O=S.set,E=S.getterFor;u.exports={getConstructor:function(A,M,P,C){var F=A(function(U,B){i(U,R),O(U,{type:M,index:n(null),first:void 0,last:void 0,size:0}),y||(U.size=0),l(B)||c(B,U[C],{that:U,AS_ENTRIES:P})}),R=F.prototype,N=E(M),D=function(U,B,H){var z=N(U),w=j(U,B),G,V;return w?w.value=H:(z.last=w={index:V=x(B,!0),key:B,value:H,previous:G=z.last,next:void 0,removed:!1},z.first||(z.first=w),G&&(G.next=w),y?z.size++:U.size++,V!=="F"&&(z.index[V]=w)),U},j=function(U,B){var H=N(U),z=x(B),w;if(z!=="F")return H.index[z];for(w=H.first;w;w=w.next)if(w.key===B)return w};return o(R,{clear:function(){for(var B=this,H=N(B),z=H.first;z;)z.removed=!0,z.previous&&(z.previous=z.previous.next=void 0),z=z.next;H.first=H.last=void 0,H.index=n(null),y?H.size=0:B.size=0},delete:function(U){var B=this,H=N(B),z=j(B,U);if(z){var w=z.next,G=z.previous;delete H.index[z.index],z.removed=!0,G&&(G.next=w),w&&(w.previous=G),H.first===z&&(H.first=w),H.last===z&&(H.last=G),y?H.size--:B.size--}return!!z},forEach:function(B){for(var H=N(this),z=s(B,arguments.length>1?arguments[1]:void 0),w;w=w?w.next:H.first;)for(z(w.value,w.key,this);w&&w.removed;)w=w.previous},has:function(B){return!!j(this,B)}}),o(R,P?{get:function(B){var H=j(this,B);return H&&H.value},set:function(B,H){return D(this,B===0?0:B,H)}}:{add:function(B){return D(this,B=B===0?0:B,B)}}),y&&e(R,"size",{configurable:!0,get:function(){return N(this).size}}),F},setStrong:function(A,M,P){var C=M+" Iterator",F=E(M),R=E(C);v(A,M,function(N,D){O(this,{type:C,target:N,state:F(N),kind:D,last:void 0})},function(){for(var N=R(this),D=N.kind,j=N.last;j&&j.removed;)j=j.previous;return!N.target||!(N.last=j=j?j.next:N.state.first)?(N.target=void 0,h(void 0,!0)):h(D==="keys"?j.key:D==="values"?j.value:[j.key,j.value],!1)},P?"entries":"values",!P,!0),p(M)}}},94667:function(u,g,t){var n=t(11286),e=t(2725),o=t(31853).getWeakData,s=t(12833),i=t(25001),l=t(5683),c=t(37540),v=t(55902),h=t(66655),p=t(94879),y=t(82367),x=y.set,S=y.getterFor,O=h.find,E=h.findIndex,A=n([].splice),M=0,P=function(R){return R.frozen||(R.frozen=new C)},C=function(){this.entries=[]},F=function(R,N){return O(R.entries,function(D){return D[0]===N})};C.prototype={get:function(R){var N=F(this,R);if(N)return N[1]},has:function(R){return!!F(this,R)},set:function(R,N){var D=F(this,R);D?D[1]=N:this.entries.push([R,N])},delete:function(R){var N=E(this.entries,function(D){return D[0]===R});return~N&&A(this.entries,N,1),!!~N}},u.exports={getConstructor:function(R,N,D,j){var U=R(function(w,G){s(w,B),x(w,{type:N,id:M++,frozen:void 0}),l(G)||v(G,w[j],{that:w,AS_ENTRIES:D})}),B=U.prototype,H=S(N),z=function(w,G,V){var J=H(w),rt=o(i(G),!0);return rt===!0?P(J).set(G,V):rt[J.id]=V,w};return e(B,{delete:function(w){var G=H(this);if(!c(w))return!1;var V=o(w);return V===!0?P(G).delete(w):V&&p(V,G.id)&&delete V[G.id]},has:function(G){var V=H(this);if(!c(G))return!1;var J=o(G);return J===!0?P(V).has(G):J&&p(J,V.id)}}),e(B,D?{get:function(G){var V=H(this);if(c(G)){var J=o(G);return J===!0?P(V).get(G):J?J[V.id]:void 0}},set:function(G,V){return z(this,G,V)}}:{add:function(G){return z(this,G,!0)}}),U}}},89378:function(u,g,t){var n=t(14304),e=t(66009),o=t(11286),s=t(13278),i=t(16142),l=t(31853),c=t(55902),v=t(12833),h=t(23583),p=t(5683),y=t(37540),x=t(72069),S=t(97494),O=t(78401),E=t(32345);u.exports=function(A,M,P){var C=A.indexOf("Map")!==-1,F=A.indexOf("Weak")!==-1,R=C?"set":"add",N=e[A],D=N&&N.prototype,j=N,U={},B=function(rt){var k=o(D[rt]);i(D,rt,rt==="add"?function(_){return k(this,_===0?0:_),this}:rt==="delete"?function(ot){return F&&!y(ot)?!1:k(this,ot===0?0:ot)}:rt==="get"?function(_){return F&&!y(_)?void 0:k(this,_===0?0:_)}:rt==="has"?function(_){return F&&!y(_)?!1:k(this,_===0?0:_)}:function(_,mt){return k(this,_===0?0:_,mt),this})},H=s(A,!h(N)||!(F||D.forEach&&!x(function(){new N().entries().next()})));if(H)j=P.getConstructor(M,A,C,R),l.enable();else if(s(A,!0)){var z=new j,w=z[R](F?{}:-0,1)!==z,G=x(function(){z.has(1)}),V=S(function(rt){new N(rt)}),J=!F&&x(function(){for(var rt=new N,k=5;k--;)rt[R](k,k);return!rt.has(-0)});V||(j=M(function(rt,k){v(rt,D);var ot=E(new N,rt,j);return p(k)||c(k,ot[R],{that:ot,AS_ENTRIES:C}),ot}),j.prototype=D,D.constructor=j),(G||J)&&(B("delete"),B("has"),C&&B("get")),(J||w)&&B(R),F&&D.clear&&delete D.clear}return U[A]=j,n({global:!0,constructor:!0,forced:j!==N},U),O(j,A),F||P.setStrong(j,A,C),j}},93706:function(u,g,t){var n=t(94879),e=t(16885),o=t(71349),s=t(7831);u.exports=function(i,l,c){for(var v=e(l),h=s.f,p=o.f,y=0;y<v.length;y++){var x=v[y];!n(i,x)&&!(c&&n(c,x))&&h(i,x,p(l,x))}}},8790:function(u,g,t){var n=t(18565),e=n("match");u.exports=function(o){var s=/./;try{"/./"[o](s)}catch(i){try{return s[e]=!1,"/./"[o](s)}catch(l){}}return!1}},87501:function(u,g,t){var n=t(72069);u.exports=!n(function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})},68422:function(u,g,t){var n=t(11286),e=t(2068),o=t(17361),s=/"/g,i=n("".replace);u.exports=function(l,c,v,h){var p=o(e(l)),y="<"+c;return v!==""&&(y+=" "+v+'="'+i(o(h),s,""")+'"'),y+">"+p+"</"+c+">"}},10659:function(u){u.exports=function(g,t){return{value:g,done:t}}},90809:function(u,g,t){var n=t(92986),e=t(7831),o=t(18526);u.exports=n?function(s,i,l){return e.f(s,i,o(1,l))}:function(s,i,l){return s[i]=l,s}},18526:function(u){u.exports=function(g,t){return{enumerable:!(g&1),configurable:!(g&2),writable:!(g&4),value:t}}},84082:function(u,g,t){var n=t(92986),e=t(7831),o=t(18526);u.exports=function(s,i,l){n?e.f(s,i,o(0,l)):s[i]=l}},11890:function(u,g,t){var n=t(11286),e=t(72069),o=t(61607).start,s=RangeError,i=isFinite,l=Math.abs,c=Date.prototype,v=c.toISOString,h=n(c.getTime),p=n(c.getUTCDate),y=n(c.getUTCFullYear),x=n(c.getUTCHours),S=n(c.getUTCMilliseconds),O=n(c.getUTCMinutes),E=n(c.getUTCMonth),A=n(c.getUTCSeconds);u.exports=e(function(){return v.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!e(function(){v.call(new Date(NaN))})?function(){if(!i(h(this)))throw new s("Invalid time value");var P=this,C=y(P),F=S(P),R=C<0?"-":C>9999?"+":"";return R+o(l(C),R?6:4,0)+"-"+o(E(P)+1,2,0)+"-"+o(p(P),2,0)+"T"+o(x(P),2,0)+":"+o(O(P),2,0)+":"+o(A(P),2,0)+"."+o(F,3,0)+"Z"}:v},84306:function(u,g,t){var n=t(25001),e=t(2064),o=TypeError;u.exports=function(s){if(n(this),s==="string"||s==="default")s="string";else if(s!=="number")throw new o("Incorrect hint");return e(this,s)}},85500:function(u,g,t){var n=t(13749),e=t(7831);u.exports=function(o,s,i){return i.get&&n(i.get,s,{getter:!0}),i.set&&n(i.set,s,{setter:!0}),e.f(o,s,i)}},16142:function(u,g,t){var n=t(23583),e=t(7831),o=t(13749),s=t(36003);u.exports=function(i,l,c,v){v||(v={});var h=v.enumerable,p=v.name!==void 0?v.name:l;if(n(c)&&o(c,p,v),v.global)h?i[l]=c:s(l,c);else{try{v.unsafe?i[l]&&(h=!0):delete i[l]}catch(y){}h?i[l]=c:e.f(i,l,{value:c,enumerable:!1,configurable:!v.nonConfigurable,writable:!v.nonWritable})}return i}},2725:function(u,g,t){var n=t(16142);u.exports=function(e,o,s){for(var i in o)n(e,i,o[i],s);return e}},36003:function(u,g,t){var n=t(66009),e=Object.defineProperty;u.exports=function(o,s){try{e(n,o,{value:s,configurable:!0,writable:!0})}catch(i){n[o]=s}return s}},12384:function(u,g,t){var n=t(82453),e=TypeError;u.exports=function(o,s){if(!delete o[s])throw new e("Cannot delete property "+n(s)+" of "+n(o))}},92986:function(u,g,t){var n=t(72069);u.exports=!n(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})},63741:function(u,g,t){var n=t(66009),e=t(18096),o=t(99050),s=n.structuredClone,i=n.ArrayBuffer,l=n.MessageChannel,c=!1,v,h,p,y;if(o)c=function(x){s(x,{transfer:[x]})};else if(i)try{l||(v=e("worker_threads"),v&&(l=v.MessageChannel)),l&&(h=new l,p=new i(2),y=function(x){h.port1.postMessage(null,[x])},p.byteLength===2&&(y(p),p.byteLength===0&&(c=y)))}catch(x){}u.exports=c},85501:function(u,g,t){var n=t(66009),e=t(37540),o=n.document,s=e(o)&&e(o.createElement);u.exports=function(i){return s?o.createElement(i):{}}},20095:function(u){var g=TypeError,t=9007199254740991;u.exports=function(n){if(n>t)throw g("Maximum allowed index exceeded");return n}},74408:function(u){u.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},93014:function(u){u.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},39882:function(u,g,t){var n=t(85501),e=n("span").classList,o=e&&e.constructor&&e.constructor.prototype;u.exports=o===Object.prototype?void 0:o},54040:function(u,g,t){var n=t(89042),e=n.match(/firefox\/(\d+)/i);u.exports=!!e&&+e[1]},63144:function(u,g,t){var n=t(56422),e=t(42954);u.exports=!n&&!e&&typeof window=="object"&&typeof document=="object"},5017:function(u){u.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"},56422:function(u){u.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},87216:function(u,g,t){var n=t(89042);u.exports=/MSIE|Trident/.test(n)},92150:function(u,g,t){var n=t(89042);u.exports=/ipad|iphone|ipod/i.test(n)&&typeof Pebble!="undefined"},51149:function(u,g,t){var n=t(89042);u.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)},42954:function(u,g,t){var n=t(66009),e=t(14274);u.exports=e(n.process)==="process"},81539:function(u,g,t){var n=t(89042);u.exports=/web0s(?!.*chrome)/i.test(n)},89042:function(u){u.exports=typeof navigator!="undefined"&&String(navigator.userAgent)||""},73126:function(u,g,t){var n=t(66009),e=t(89042),o=n.process,s=n.Deno,i=o&&o.versions||s&&s.version,l=i&&i.v8,c,v;l&&(c=l.split("."),v=c[0]>0&&c[0]<4?1:+(c[0]+c[1])),!v&&e&&(c=e.match(/Edge\/(\d+)/),(!c||c[1]>=74)&&(c=e.match(/Chrome\/(\d+)/),c&&(v=+c[1]))),u.exports=v},68674:function(u,g,t){var n=t(89042),e=n.match(/AppleWebKit\/(\d+)\./);u.exports=!!e&&+e[1]},75785:function(u){u.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},40851:function(u,g,t){var n=t(11286),e=Error,o=n("".replace),s=function(c){return String(new e(c).stack)}("zxcasd"),i=/\n\s*at [^:]*:[^\n]*/,l=i.test(s);u.exports=function(c,v){if(l&&typeof c=="string"&&!e.prepareStackTrace)for(;v--;)c=o(c,i,"");return c}},97077:function(u,g,t){var n=t(90809),e=t(40851),o=t(16929),s=Error.captureStackTrace;u.exports=function(i,l,c,v){o&&(s?s(i,l):n(i,"stack",e(c,v)))}},16929:function(u,g,t){var n=t(72069),e=t(18526);u.exports=!n(function(){var o=new Error("a");return"stack"in o?(Object.defineProperty(o,"stack",e(1,7)),o.stack!==7):!0})},58434:function(u,g,t){var n=t(92986),e=t(72069),o=t(25001),s=t(15453),i=Error.prototype.toString,l=e(function(){if(n){var c=Object.create(Object.defineProperty({},"name",{get:function(){return this===c}}));if(i.call(c)!=="true")return!0}return i.call({message:1,name:2})!=="2: 1"||i.call({})!=="Error"});u.exports=l?function(){var v=o(this),h=s(v.name,"Error"),p=s(v.message);return h?p?h+": "+p:h:p}:i},14304:function(u,g,t){var n=t(66009),e=t(71349).f,o=t(90809),s=t(16142),i=t(36003),l=t(93706),c=t(13278);u.exports=function(v,h){var p=v.target,y=v.global,x=v.stat,S,O,E,A,M,P;if(y?O=n:x?O=n[p]||i(p,{}):O=n[p]&&n[p].prototype,O)for(E in h){if(M=h[E],v.dontCallGetSet?(P=e(O,E),A=P&&P.value):A=O[E],S=c(y?E:p+(x?".":"#")+E,v.forced),!S&&A!==void 0){if(typeof M==typeof A)continue;l(M,A)}(v.sham||A&&A.sham)&&o(M,"sham",!0),s(O,E,M,v)}}},72069:function(u){u.exports=function(g){try{return!!g()}catch(t){return!0}}},63194:function(u,g,t){t(31145);var n=t(96499),e=t(16142),o=t(44381),s=t(72069),i=t(18565),l=t(90809),c=i("species"),v=RegExp.prototype;u.exports=function(h,p,y,x){var S=i(h),O=!s(function(){var P={};return P[S]=function(){return 7},""[h](P)!==7}),E=O&&!s(function(){var P=!1,C=/a/;return h==="split"&&(C={},C.constructor={},C.constructor[c]=function(){return C},C.flags="",C[S]=/./[S]),C.exec=function(){return P=!0,null},C[S](""),!P});if(!O||!E||y){var A=/./[S],M=p(S,""[h],function(P,C,F,R,N){var D=C.exec;return D===o||D===v.exec?O&&!N?{done:!0,value:n(A,C,F,R)}:{done:!0,value:n(P,F,C,R)}:{done:!1}});e(String.prototype,h,M[0]),e(v,S,M[1])}x&&l(v[S],"sham",!0)}},53149:function(u,g,t){var n=t(3438),e=t(82628),o=t(20095),s=t(45526),i=function(l,c,v,h,p,y,x,S){for(var O=p,E=0,A=x?s(x,S):!1,M,P;E<h;)E in v&&(M=A?A(v[E],E,c):v[E],y>0&&n(M)?(P=e(M),O=i(l,c,M,P,O,y-1)-1):(o(O+1),l[O]=M),O++),E++;return O};u.exports=i},27534:function(u,g,t){var n=t(72069);u.exports=!n(function(){return Object.isExtensible(Object.preventExtensions({}))})},66543:function(u,g,t){var n=t(87878),e=Function.prototype,o=e.apply,s=e.call;u.exports=typeof Reflect=="object"&&Reflect.apply||(n?s.bind(o):function(){return s.apply(o,arguments)})},45526:function(u,g,t){var n=t(77422),e=t(85156),o=t(87878),s=n(n.bind);u.exports=function(i,l){return e(i),l===void 0?i:o?s(i,l):function(){return i.apply(l,arguments)}}},87878:function(u,g,t){var n=t(72069);u.exports=!n(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})},91384:function(u,g,t){var n=t(11286),e=t(85156),o=t(37540),s=t(94879),i=t(22806),l=t(87878),c=Function,v=n([].concat),h=n([].join),p={},y=function(x,S,O){if(!s(p,S)){for(var E=[],A=0;A<S;A++)E[A]="a["+A+"]";p[S]=c("C,a","return new C("+h(E,",")+")")}return p[S](x,O)};u.exports=l?c.bind:function(S){var O=e(this),E=O.prototype,A=i(arguments,1),M=function(){var C=v(A,i(arguments));return this instanceof M?y(O,C.length,C):O.apply(S,C)};return o(E)&&(M.prototype=E),M}},96499:function(u,g,t){var n=t(87878),e=Function.prototype.call;u.exports=n?e.bind(e):function(){return e.apply(e,arguments)}},86588:function(u,g,t){var n=t(92986),e=t(94879),o=Function.prototype,s=n&&Object.getOwnPropertyDescriptor,i=e(o,"name"),l=i&&function(){}.name==="something",c=i&&(!n||n&&s(o,"name").configurable);u.exports={EXISTS:i,PROPER:l,CONFIGURABLE:c}},84756:function(u,g,t){var n=t(11286),e=t(85156);u.exports=function(o,s,i){try{return n(e(Object.getOwnPropertyDescriptor(o,s)[i]))}catch(l){}}},77422:function(u,g,t){var n=t(14274),e=t(11286);u.exports=function(o){if(n(o)==="Function")return e(o)}},11286:function(u,g,t){var n=t(87878),e=Function.prototype,o=e.call,s=n&&e.bind.bind(o,o);u.exports=n?s:function(i){return function(){return o.apply(i,arguments)}}},65470:function(u,g,t){var n=t(66009);u.exports=function(e,o){var s=n[e],i=s&&s.prototype;return i&&i[o]}},38941:function(u,g,t){var n=t(66009),e=t(23583),o=function(s){return e(s)?s:void 0};u.exports=function(s,i){return arguments.length<2?o(n[s]):n[s]&&n[s][i]}},10613:function(u){u.exports=function(g){return{iterator:g,next:g.next,done:!1}}},81077:function(u,g,t){var n=t(9205),e=t(10512),o=t(5683),s=t(29107),i=t(18565),l=i("iterator");u.exports=function(c){if(!o(c))return e(c,l)||e(c,"@@iterator")||s[n(c)]}},90619:function(u,g,t){var n=t(96499),e=t(85156),o=t(25001),s=t(82453),i=t(81077),l=TypeError;u.exports=function(c,v){var h=arguments.length<2?i(c):v;if(e(h))return o(n(h,c));throw new l(s(c)+" is not iterable")}},10443:function(u,g,t){var n=t(11286),e=t(3438),o=t(23583),s=t(14274),i=t(17361),l=n([].push);u.exports=function(c){if(o(c))return c;if(e(c)){for(var v=c.length,h=[],p=0;p<v;p++){var y=c[p];typeof y=="string"?l(h,y):(typeof y=="number"||s(y)==="Number"||s(y)==="String")&&l(h,i(y))}var x=h.length,S=!0;return function(O,E){if(S)return S=!1,E;if(e(this))return E;for(var A=0;A<x;A++)if(h[A]===O)return E}}}},10512:function(u,g,t){var n=t(85156),e=t(5683);u.exports=function(o,s){var i=o[s];return e(i)?void 0:n(i)}},65263:function(u,g,t){var n=t(85156),e=t(25001),o=t(96499),s=t(12105),i=t(10613),l="Invalid size",c=RangeError,v=TypeError,h=Math.max,p=function(y,x){this.set=y,this.size=h(x,0),this.has=n(y.has),this.keys=n(y.keys)};p.prototype={getIterator:function(){return i(e(o(this.keys,this.set)))},includes:function(y){return o(this.has,this.set,y)}},u.exports=function(y){e(y);var x=+y.size;if(x!==x)throw new v(l);var S=s(x);if(S<0)throw new c(l);return new p(y,S)}},38368:function(u,g,t){var n=t(11286),e=t(49671),o=Math.floor,s=n("".charAt),i=n("".replace),l=n("".slice),c=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,v=/\$([$&'`]|\d{1,2})/g;u.exports=function(h,p,y,x,S,O){var E=y+h.length,A=x.length,M=v;return S!==void 0&&(S=e(S),M=c),i(O,M,function(P,C){var F;switch(s(C,0)){case"$":return"$";case"&":return h;case"`":return l(p,0,y);case"'":return l(p,E);case"<":F=S[l(C,1,-1)];break;default:var R=+C;if(R===0)return P;if(R>A){var N=o(R/10);return N===0?P:N<=A?x[N-1]===void 0?s(C,1):x[N-1]+s(C,1):P}F=x[R-1]}return F===void 0?"":F})}},66009:function(u){var g=function(t){return t&&t.Math===Math&&t};u.exports=g(typeof globalThis=="object"&&globalThis)||g(typeof window=="object"&&window)||g(typeof self=="object"&&self)||g(typeof global=="object"&&global)||g(typeof this=="object"&&this)||function(){return this}()||Function("return this")()},94879:function(u,g,t){var n=t(11286),e=t(49671),o=n({}.hasOwnProperty);u.exports=Object.hasOwn||function(i,l){return o(e(i),l)}},19423:function(u){u.exports={}},99095:function(u){u.exports=function(g,t){try{arguments.length===1?console.error(g):console.error(g,t)}catch(n){}}},96439:function(u,g,t){var n=t(38941);u.exports=n("document","documentElement")},52515:function(u,g,t){var n=t(92986),e=t(72069),o=t(85501);u.exports=!n&&!e(function(){return Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a!==7})},25212:function(u){var g=Array,t=Math.abs,n=Math.pow,e=Math.floor,o=Math.log,s=Math.LN2,i=function(c,v,h){var p=g(h),y=h*8-v-1,x=(1<<y)-1,S=x>>1,O=v===23?n(2,-24)-n(2,-77):0,E=c<0||c===0&&1/c<0?1:0,A=0,M,P,C;for(c=t(c),c!==c||c===1/0?(P=c!==c?1:0,M=x):(M=e(o(c)/s),C=n(2,-M),c*C<1&&(M--,C*=2),M+S>=1?c+=O/C:c+=O*n(2,1-S),c*C>=2&&(M++,C/=2),M+S>=x?(P=0,M=x):M+S>=1?(P=(c*C-1)*n(2,v),M+=S):(P=c*n(2,S-1)*n(2,v),M=0));v>=8;)p[A++]=P&255,P/=256,v-=8;for(M=M<<v|P,y+=v;y>0;)p[A++]=M&255,M/=256,y-=8;return p[--A]|=E*128,p},l=function(c,v){var h=c.length,p=h*8-v-1,y=(1<<p)-1,x=y>>1,S=p-7,O=h-1,E=c[O--],A=E&127,M;for(E>>=7;S>0;)A=A*256+c[O--],S-=8;for(M=A&(1<<-S)-1,A>>=-S,S+=v;S>0;)M=M*256+c[O--],S-=8;if(A===0)A=1-x;else{if(A===y)return M?NaN:E?-1/0:1/0;M+=n(2,v),A-=x}return(E?-1:1)*M*n(2,A-v)};u.exports={pack:i,unpack:l}},72181:function(u,g,t){var n=t(11286),e=t(72069),o=t(14274),s=Object,i=n("".split);u.exports=e(function(){return!s("z").propertyIsEnumerable(0)})?function(l){return o(l)==="String"?i(l,""):s(l)}:s},32345:function(u,g,t){var n=t(23583),e=t(37540),o=t(15861);u.exports=function(s,i,l){var c,v;return o&&n(c=i.constructor)&&c!==l&&e(v=c.prototype)&&v!==l.prototype&&o(s,v),s}},84352:function(u,g,t){var n=t(11286),e=t(23583),o=t(70443),s=n(Function.toString);e(o.inspectSource)||(o.inspectSource=function(i){return s(i)}),u.exports=o.inspectSource},31486:function(u,g,t){var n=t(37540),e=t(90809);u.exports=function(o,s){n(s)&&"cause"in s&&e(o,"cause",s.cause)}},31853:function(u,g,t){var n=t(14304),e=t(11286),o=t(19423),s=t(37540),i=t(94879),l=t(7831).f,c=t(83258),v=t(92880),h=t(28174),p=t(36374),y=t(27534),x=!1,S=p("meta"),O=0,E=function(R){l(R,S,{value:{objectID:"O"+O++,weakData:{}}})},A=function(R,N){if(!s(R))return typeof R=="symbol"?R:(typeof R=="string"?"S":"P")+R;if(!i(R,S)){if(!h(R))return"F";if(!N)return"E";E(R)}return R[S].objectID},M=function(R,N){if(!i(R,S)){if(!h(R))return!0;if(!N)return!1;E(R)}return R[S].weakData},P=function(R){return y&&x&&h(R)&&!i(R,S)&&E(R),R},C=function(){F.enable=function(){},x=!0;var R=c.f,N=e([].splice),D={};D[S]=1,R(D).length&&(c.f=function(j){for(var U=R(j),B=0,H=U.length;B<H;B++)if(U[B]===S){N(U,B,1);break}return U},n({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:v.f}))},F=u.exports={enable:C,fastKey:A,getWeakData:M,onFreeze:P};o[S]=!0},82367:function(u,g,t){var n=t(42960),e=t(66009),o=t(37540),s=t(90809),i=t(94879),l=t(70443),c=t(44869),v=t(19423),h="Object already initialized",p=e.TypeError,y=e.WeakMap,x,S,O,E=function(C){return O(C)?S(C):x(C,{})},A=function(C){return function(F){var R;if(!o(F)||(R=S(F)).type!==C)throw new p("Incompatible receiver, "+C+" required");return R}};if(n||l.state){var M=l.state||(l.state=new y);M.get=M.get,M.has=M.has,M.set=M.set,x=function(C,F){if(M.has(C))throw new p(h);return F.facade=C,M.set(C,F),F},S=function(C){return M.get(C)||{}},O=function(C){return M.has(C)}}else{var P=c("state");v[P]=!0,x=function(C,F){if(i(C,P))throw new p(h);return F.facade=C,s(C,P,F),F},S=function(C){return i(C,P)?C[P]:{}},O=function(C){return i(C,P)}}u.exports={set:x,get:S,has:O,enforce:E,getterFor:A}},48199:function(u,g,t){var n=t(18565),e=t(29107),o=n("iterator"),s=Array.prototype;u.exports=function(i){return i!==void 0&&(e.Array===i||s[o]===i)}},3438:function(u,g,t){var n=t(14274);u.exports=Array.isArray||function(o){return n(o)==="Array"}},77129:function(u,g,t){var n=t(9205);u.exports=function(e){var o=n(e);return o==="BigInt64Array"||o==="BigUint64Array"}},23583:function(u){var g=typeof document=="object"&&document.all;u.exports=typeof g=="undefined"&&g!==void 0?function(t){return typeof t=="function"||t===g}:function(t){return typeof t=="function"}},11051:function(u,g,t){var n=t(11286),e=t(72069),o=t(23583),s=t(9205),i=t(38941),l=t(84352),c=function(){},v=i("Reflect","construct"),h=/^\s*(?:class|function)\b/,p=n(h.exec),y=!h.test(c),x=function(E){if(!o(E))return!1;try{return v(c,[],E),!0}catch(A){return!1}},S=function(E){if(!o(E))return!1;switch(s(E)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return y||!!p(h,l(E))}catch(A){return!0}};S.sham=!0,u.exports=!v||e(function(){var O;return x(x.call)||!x(Object)||!x(function(){O=!0})||O})?S:x},69745:function(u,g,t){var n=t(94879);u.exports=function(e){return e!==void 0&&(n(e,"value")||n(e,"writable"))}},13278:function(u,g,t){var n=t(72069),e=t(23583),o=/#|\.prototype\./,s=function(h,p){var y=l[i(h)];return y===v?!0:y===c?!1:e(p)?n(p):!!p},i=s.normalize=function(h){return String(h).replace(o,".").toLowerCase()},l=s.data={},c=s.NATIVE="N",v=s.POLYFILL="P";u.exports=s},613:function(u,g,t){var n=t(37540),e=Math.floor;u.exports=Number.isInteger||function(s){return!n(s)&&isFinite(s)&&e(s)===s}},5683:function(u){u.exports=function(g){return g==null}},37540:function(u,g,t){var n=t(23583);u.exports=function(e){return typeof e=="object"?e!==null:n(e)}},52427:function(u,g,t){var n=t(37540);u.exports=function(e){return n(e)||e===null}},70457:function(u){u.exports=!1},11566:function(u,g,t){var n=t(37540),e=t(14274),o=t(18565),s=o("match");u.exports=function(i){var l;return n(i)&&((l=i[s])!==void 0?!!l:e(i)==="RegExp")}},491:function(u,g,t){var n=t(38941),e=t(23583),o=t(95307),s=t(50234),i=Object;u.exports=s?function(l){return typeof l=="symbol"}:function(l){var c=n("Symbol");return e(c)&&o(c.prototype,i(l))}},9573:function(u,g,t){var n=t(96499);u.exports=function(e,o,s){for(var i=s?e:e.iterator,l=e.next,c,v;!(c=n(l,i)).done;)if(v=o(c.value),v!==void 0)return v}},55902:function(u,g,t){var n=t(45526),e=t(96499),o=t(25001),s=t(82453),i=t(48199),l=t(82628),c=t(95307),v=t(90619),h=t(81077),p=t(99797),y=TypeError,x=function(O,E){this.stopped=O,this.result=E},S=x.prototype;u.exports=function(O,E,A){var M=A&&A.that,P=!!(A&&A.AS_ENTRIES),C=!!(A&&A.IS_RECORD),F=!!(A&&A.IS_ITERATOR),R=!!(A&&A.INTERRUPTED),N=n(E,M),D,j,U,B,H,z,w,G=function(J){return D&&p(D,"normal",J),new x(!0,J)},V=function(J){return P?(o(J),R?N(J[0],J[1],G):N(J[0],J[1])):R?N(J,G):N(J)};if(C)D=O.iterator;else if(F)D=O;else{if(j=h(O),!j)throw new y(s(O)+" is not iterable");if(i(j)){for(U=0,B=l(O);B>U;U++)if(H=V(O[U]),H&&c(S,H))return H;return new x(!1)}D=v(O,j)}for(z=C?O.next:D.next;!(w=e(z,D)).done;){try{H=V(w.value)}catch(J){p(D,"throw",J)}if(typeof H=="object"&&H&&c(S,H))return H}return new x(!1)}},99797:function(u,g,t){var n=t(96499),e=t(25001),o=t(10512);u.exports=function(s,i,l){var c,v;e(s);try{if(c=o(s,"return"),!c){if(i==="throw")throw l;return l}c=n(c,s)}catch(h){v=!0,c=h}if(i==="throw")throw l;if(v)throw c;return e(c),l}},26820:function(u,g,t){var n=t(24519).IteratorPrototype,e=t(5406),o=t(18526),s=t(78401),i=t(29107),l=function(){return this};u.exports=function(c,v,h,p){var y=v+" Iterator";return c.prototype=e(n,{next:o(+!p,h)}),s(c,y,!1,!0),i[y]=l,c}},10218:function(u,g,t){var n=t(14304),e=t(96499),o=t(70457),s=t(86588),i=t(23583),l=t(26820),c=t(26313),v=t(15861),h=t(78401),p=t(90809),y=t(16142),x=t(18565),S=t(29107),O=t(24519),E=s.PROPER,A=s.CONFIGURABLE,M=O.IteratorPrototype,P=O.BUGGY_SAFARI_ITERATORS,C=x("iterator"),F="keys",R="values",N="entries",D=function(){return this};u.exports=function(j,U,B,H,z,w,G){l(B,U,H);var V=function(Ct){if(Ct===z&&_)return _;if(!P&&Ct&&Ct in k)return k[Ct];switch(Ct){case F:return function(){return new B(this,Ct)};case R:return function(){return new B(this,Ct)};case N:return function(){return new B(this,Ct)}}return function(){return new B(this)}},J=U+" Iterator",rt=!1,k=j.prototype,ot=k[C]||k["@@iterator"]||z&&k[z],_=!P&&ot||V(z),mt=U==="Array"&&k.entries||ot,ct,xt,It;if(mt&&(ct=c(mt.call(new j)),ct!==Object.prototype&&ct.next&&(!o&&c(ct)!==M&&(v?v(ct,M):i(ct[C])||y(ct,C,D)),h(ct,J,!0,!0),o&&(S[J]=D))),E&&z===R&&ot&&ot.name!==R&&(!o&&A?p(k,"name",R):(rt=!0,_=function(){return e(ot,this)})),z)if(xt={values:V(R),keys:w?_:V(F),entries:V(N)},G)for(It in xt)(P||rt||!(It in k))&&y(k,It,xt[It]);else n({target:U,proto:!0,forced:P||rt},xt);return(!o||G)&&k[C]!==_&&y(k,C,_,{name:z}),S[U]=_,xt}},24519:function(u,g,t){var n=t(72069),e=t(23583),o=t(37540),s=t(5406),i=t(26313),l=t(16142),c=t(18565),v=t(70457),h=c("iterator"),p=!1,y,x,S;[].keys&&(S=[].keys(),"next"in S?(x=i(i(S)),x!==Object.prototype&&(y=x)):p=!0);var O=!o(y)||n(function(){var E={};return y[h].call(E)!==E});O?y={}:v&&(y=s(y)),e(y[h])||l(y,h,function(){return this}),u.exports={IteratorPrototype:y,BUGGY_SAFARI_ITERATORS:p}},29107:function(u){u.exports={}},82628:function(u,g,t){var n=t(45344);u.exports=function(e){return n(e.length)}},13749:function(u,g,t){var n=t(11286),e=t(72069),o=t(23583),s=t(94879),i=t(92986),l=t(86588).CONFIGURABLE,c=t(84352),v=t(82367),h=v.enforce,p=v.get,y=String,x=Object.defineProperty,S=n("".slice),O=n("".replace),E=n([].join),A=i&&!e(function(){return x(function(){},"length",{value:8}).length!==8}),M=String(String).split("String"),P=u.exports=function(C,F,R){S(y(F),0,7)==="Symbol("&&(F="["+O(y(F),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),R&&R.getter&&(F="get "+F),R&&R.setter&&(F="set "+F),(!s(C,"name")||l&&C.name!==F)&&(i?x(C,"name",{value:F,configurable:!0}):C.name=F),A&&R&&s(R,"arity")&&C.length!==R.arity&&x(C,"length",{value:R.arity});try{R&&s(R,"constructor")&&R.constructor?i&&x(C,"prototype",{writable:!1}):C.prototype&&(C.prototype=void 0)}catch(D){}var N=h(C);return s(N,"source")||(N.source=E(M,typeof F=="string"?F:"")),C};Function.prototype.toString=P(function(){return o(this)&&p(this).source||c(this)},"toString")},1774:function(u,g,t){var n=t(11286),e=Map.prototype;u.exports={Map,set:n(e.set),get:n(e.get),has:n(e.has),remove:n(e.delete),proto:e}},98940:function(u){var g=Math.expm1,t=Math.exp;u.exports=!g||g(10)>22025.465794806718||g(10)<22025.465794806718||g(-2e-17)!==-2e-17?function(e){var o=+e;return o===0?o:o>-1e-6&&o<1e-6?o+o*o/2:t(o)-1}:g},10418:function(u,g,t){var n=t(93976),e=Math.abs,o=2220446049250313e-31,s=1/o,i=function(l){return l+s-s};u.exports=function(l,c,v,h){var p=+l,y=e(p),x=n(p);if(y<h)return x*i(y/h/c)*h*c;var S=(1+c/o)*y,O=S-(S-y);return O>v||O!==O?x*(1/0):x*O}},93279:function(u,g,t){var n=t(10418),e=11920928955078125e-23,o=34028234663852886e22,s=11754943508222875e-54;u.exports=Math.fround||function(l){return n(l,e,o,s)}},41942:function(u){var g=Math.log,t=Math.LOG10E;u.exports=Math.log10||function(e){return g(e)*t}},49366:function(u){var g=Math.log;u.exports=Math.log1p||function(n){var e=+n;return e>-1e-8&&e<1e-8?e-e*e/2:g(1+e)}},93976:function(u){u.exports=Math.sign||function(t){var n=+t;return n===0||n!==n?n:n<0?-1:1}},22459:function(u){var g=Math.ceil,t=Math.floor;u.exports=Math.trunc||function(e){var o=+e;return(o>0?t:g)(o)}},9709:function(u,g,t){var n=t(66009),e=t(28167),o=t(45526),s=t(23115).set,i=t(76895),l=t(51149),c=t(92150),v=t(81539),h=t(42954),p=n.MutationObserver||n.WebKitMutationObserver,y=n.document,x=n.process,S=n.Promise,O=e("queueMicrotask"),E,A,M,P,C;if(!O){var F=new i,R=function(){var N,D;for(h&&(N=x.domain)&&N.exit();D=F.get();)try{D()}catch(j){throw F.head&&E(),j}N&&N.enter()};!l&&!h&&!v&&p&&y?(A=!0,M=y.createTextNode(""),new p(R).observe(M,{characterData:!0}),E=function(){M.data=A=!A}):!c&&S&&S.resolve?(P=S.resolve(void 0),P.constructor=S,C=o(P.then,P),E=function(){C(R)}):h?E=function(){x.nextTick(R)}:(s=o(s,n),E=function(){s(R)}),O=function(N){F.head||E(),F.add(N)}}u.exports=O},24649:function(u,g,t){var n=t(85156),e=TypeError,o=function(s){var i,l;this.promise=new s(function(c,v){if(i!==void 0||l!==void 0)throw new e("Bad Promise constructor");i=c,l=v}),this.resolve=n(i),this.reject=n(l)};u.exports.f=function(s){return new o(s)}},15453:function(u,g,t){var n=t(17361);u.exports=function(e,o){return e===void 0?arguments.length<2?"":o:n(e)}},92337:function(u,g,t){var n=t(11566),e=TypeError;u.exports=function(o){if(n(o))throw new e("The method doesn't accept regular expressions");return o}},98074:function(u,g,t){var n=t(66009),e=n.isFinite;u.exports=Number.isFinite||function(s){return typeof s=="number"&&e(s)}},25838:function(u,g,t){var n=t(66009),e=t(72069),o=t(11286),s=t(17361),i=t(85900).trim,l=t(77082),c=o("".charAt),v=n.parseFloat,h=n.Symbol,p=h&&h.iterator,y=1/v(l+"-0")!==-1/0||p&&!e(function(){v(Object(p))});u.exports=y?function(S){var O=i(s(S)),E=v(O);return E===0&&c(O,0)==="-"?-0:E}:v},23009:function(u,g,t){var n=t(66009),e=t(72069),o=t(11286),s=t(17361),i=t(85900).trim,l=t(77082),c=n.parseInt,v=n.Symbol,h=v&&v.iterator,p=/^[+-]?0x/i,y=o(p.exec),x=c(l+"08")!==8||c(l+"0x16")!==22||h&&!e(function(){c(Object(h))});u.exports=x?function(O,E){var A=i(s(O));return c(A,E>>>0||(y(p,A)?16:10))}:c},16667:function(u,g,t){var n=t(92986),e=t(11286),o=t(96499),s=t(72069),i=t(18350),l=t(24943),c=t(79591),v=t(49671),h=t(72181),p=Object.assign,y=Object.defineProperty,x=e([].concat);u.exports=!p||s(function(){if(n&&p({b:1},p(y({},"a",{enumerable:!0,get:function(){y(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var S={},O={},E=Symbol("assign detection"),A="abcdefghijklmnopqrst";return S[E]=7,A.split("").forEach(function(M){O[M]=M}),p({},S)[E]!==7||i(p({},O)).join("")!==A})?function(O,E){for(var A=v(O),M=arguments.length,P=1,C=l.f,F=c.f;M>P;)for(var R=h(arguments[P++]),N=C?x(i(R),C(R)):i(R),D=N.length,j=0,U;D>j;)U=N[j++],(!n||o(F,R,U))&&(A[U]=R[U]);return A}:p},5406:function(u,g,t){var n=t(25001),e=t(61963),o=t(75785),s=t(19423),i=t(96439),l=t(85501),c=t(44869),v=">",h="<",p="prototype",y="script",x=c("IE_PROTO"),S=function(){},O=function(C){return h+y+v+C+h+"/"+y+v},E=function(C){C.write(O("")),C.close();var F=C.parentWindow.Object;return C=null,F},A=function(){var C=l("iframe"),F="java"+y+":",R;return C.style.display="none",i.appendChild(C),C.src=String(F),R=C.contentWindow.document,R.open(),R.write(O("document.F=Object")),R.close(),R.F},M,P=function(){try{M=new ActiveXObject("htmlfile")}catch(F){}P=typeof document!="undefined"?document.domain&&M?E(M):A():E(M);for(var C=o.length;C--;)delete P[p][o[C]];return P()};s[x]=!0,u.exports=Object.create||function(F,R){var N;return F!==null?(S[p]=n(F),N=new S,S[p]=null,N[x]=F):N=P(),R===void 0?N:e.f(N,R)}},61963:function(u,g,t){var n=t(92986),e=t(356),o=t(7831),s=t(25001),i=t(36859),l=t(18350);g.f=n&&!e?Object.defineProperties:function(v,h){s(v);for(var p=i(h),y=l(h),x=y.length,S=0,O;x>S;)o.f(v,O=y[S++],p[O]);return v}},7831:function(u,g,t){var n=t(92986),e=t(52515),o=t(356),s=t(25001),i=t(50035),l=TypeError,c=Object.defineProperty,v=Object.getOwnPropertyDescriptor,h="enumerable",p="configurable",y="writable";g.f=n?o?function(S,O,E){if(s(S),O=i(O),s(E),typeof S=="function"&&O==="prototype"&&"value"in E&&y in E&&!E[y]){var A=v(S,O);A&&A[y]&&(S[O]=E.value,E={configurable:p in E?E[p]:A[p],enumerable:h in E?E[h]:A[h],writable:!1})}return c(S,O,E)}:c:function(S,O,E){if(s(S),O=i(O),s(E),e)try{return c(S,O,E)}catch(A){}if("get"in E||"set"in E)throw new l("Accessors not supported");return"value"in E&&(S[O]=E.value),S}},71349:function(u,g,t){var n=t(92986),e=t(96499),o=t(79591),s=t(18526),i=t(36859),l=t(50035),c=t(94879),v=t(52515),h=Object.getOwnPropertyDescriptor;g.f=n?h:function(y,x){if(y=i(y),x=l(x),v)try{return h(y,x)}catch(S){}if(c(y,x))return s(!e(o.f,y,x),y[x])}},92880:function(u,g,t){var n=t(14274),e=t(36859),o=t(83258).f,s=t(22806),i=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],l=function(c){try{return o(c)}catch(v){return s(i)}};u.exports.f=function(v){return i&&n(v)==="Window"?l(v):o(e(v))}},83258:function(u,g,t){var n=t(6242),e=t(75785),o=e.concat("length","prototype");g.f=Object.getOwnPropertyNames||function(i){return n(i,o)}},24943:function(u,g){g.f=Object.getOwnPropertySymbols},26313:function(u,g,t){var n=t(94879),e=t(23583),o=t(49671),s=t(44869),i=t(87501),l=s("IE_PROTO"),c=Object,v=c.prototype;u.exports=i?c.getPrototypeOf:function(h){var p=o(h);if(n(p,l))return p[l];var y=p.constructor;return e(y)&&p instanceof y?y.prototype:p instanceof c?v:null}},28174:function(u,g,t){var n=t(72069),e=t(37540),o=t(14274),s=t(72058),i=Object.isExtensible,l=n(function(){i(1)});u.exports=l||s?function(v){return!e(v)||s&&o(v)==="ArrayBuffer"?!1:i?i(v):!0}:i},95307:function(u,g,t){var n=t(11286);u.exports=n({}.isPrototypeOf)},6242:function(u,g,t){var n=t(11286),e=t(94879),o=t(36859),s=t(94319).indexOf,i=t(19423),l=n([].push);u.exports=function(c,v){var h=o(c),p=0,y=[],x;for(x in h)!e(i,x)&&e(h,x)&&l(y,x);for(;v.length>p;)e(h,x=v[p++])&&(~s(y,x)||l(y,x));return y}},18350:function(u,g,t){var n=t(6242),e=t(75785);u.exports=Object.keys||function(s){return n(s,e)}},79591:function(u,g){var t={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,e=n&&!t.call({1:2},1);g.f=e?function(s){var i=n(this,s);return!!i&&i.enumerable}:t},57629:function(u,g,t){var n=t(70457),e=t(66009),o=t(72069),s=t(68674);u.exports=n||!o(function(){if(!(s&&s<535)){var i=Math.random();__defineSetter__.call(null,i,function(){}),delete e[i]}})},15861:function(u,g,t){var n=t(84756),e=t(37540),o=t(2068),s=t(53408);u.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var i=!1,l={},c;try{c=n(Object.prototype,"__proto__","set"),c(l,[]),i=l instanceof Array}catch(v){}return function(h,p){return o(h),s(p),e(h)&&(i?c(h,p):h.__proto__=p),h}}():void 0)},8511:function(u,g,t){var n=t(92986),e=t(72069),o=t(11286),s=t(26313),i=t(18350),l=t(36859),c=t(79591).f,v=o(c),h=o([].push),p=n&&e(function(){var x=Object.create(null);return x[2]=2,!v(x,2)}),y=function(x){return function(S){for(var O=l(S),E=i(O),A=p&&s(O)===null,M=E.length,P=0,C=[],F;M>P;)F=E[P++],(!n||(A?F in O:v(O,F)))&&h(C,x?[F,O[F]]:O[F]);return C}};u.exports={entries:y(!0),values:y(!1)}},60105:function(u,g,t){var n=t(67878),e=t(9205);u.exports=n?{}.toString:function(){return"[object "+e(this)+"]"}},2064:function(u,g,t){var n=t(96499),e=t(23583),o=t(37540),s=TypeError;u.exports=function(i,l){var c,v;if(l==="string"&&e(c=i.toString)&&!o(v=n(c,i))||e(c=i.valueOf)&&!o(v=n(c,i))||l!=="string"&&e(c=i.toString)&&!o(v=n(c,i)))return v;throw new s("Can't convert object to primitive value")}},16885:function(u,g,t){var n=t(38941),e=t(11286),o=t(83258),s=t(24943),i=t(25001),l=e([].concat);u.exports=n("Reflect","ownKeys")||function(v){var h=o.f(i(v)),p=s.f;return p?l(h,p(v)):h}},75081:function(u,g,t){var n=t(66009);u.exports=n},67805:function(u){u.exports=function(g){try{return{error:!1,value:g()}}catch(t){return{error:!0,value:t}}}},37130:function(u,g,t){var n=t(66009),e=t(98844),o=t(23583),s=t(13278),i=t(84352),l=t(18565),c=t(63144),v=t(56422),h=t(70457),p=t(73126),y=e&&e.prototype,x=l("species"),S=!1,O=o(n.PromiseRejectionEvent),E=s("Promise",function(){var A=i(e),M=A!==String(e);if(!M&&p===66||h&&!(y.catch&&y.finally))return!0;if(!p||p<51||!/native code/.test(A)){var P=new e(function(R){R(1)}),C=function(R){R(function(){},function(){})},F=P.constructor={};if(F[x]=C,S=P.then(function(){})instanceof C,!S)return!0}return!M&&(c||v)&&!O});u.exports={CONSTRUCTOR:E,REJECTION_EVENT:O,SUBCLASSING:S}},98844:function(u,g,t){var n=t(66009);u.exports=n.Promise},87408:function(u,g,t){var n=t(25001),e=t(37540),o=t(24649);u.exports=function(s,i){if(n(s),e(i)&&i.constructor===s)return i;var l=o.f(s),c=l.resolve;return c(i),l.promise}},26035:function(u,g,t){var n=t(98844),e=t(97494),o=t(37130).CONSTRUCTOR;u.exports=o||!e(function(s){n.all(s).then(void 0,function(){})})},2594:function(u,g,t){var n=t(7831).f;u.exports=function(e,o,s){s in e||n(e,s,{configurable:!0,get:function(){return o[s]},set:function(i){o[s]=i}})}},76895:function(u){var g=function(){this.head=null,this.tail=null};g.prototype={add:function(t){var n={item:t,next:null},e=this.tail;e?e.next=n:this.head=n,this.tail=n},get:function(){var t=this.head;if(t){var n=this.head=t.next;return n===null&&(this.tail=null),t.item}}},u.exports=g},33064:function(u,g,t){var n=t(96499),e=t(25001),o=t(23583),s=t(14274),i=t(44381),l=TypeError;u.exports=function(c,v){var h=c.exec;if(o(h)){var p=n(h,c,v);return p!==null&&e(p),p}if(s(c)==="RegExp")return n(i,c,v);throw new l("RegExp#exec called on incompatible receiver")}},44381:function(u,g,t){var n=t(96499),e=t(11286),o=t(17361),s=t(29833),i=t(39807),l=t(96731),c=t(5406),v=t(82367).get,h=t(76769),p=t(85220),y=l("native-string-replace",String.prototype.replace),x=RegExp.prototype.exec,S=x,O=e("".charAt),E=e("".indexOf),A=e("".replace),M=e("".slice),P=function(){var N=/a/,D=/b*/g;return n(x,N,"a"),n(x,D,"a"),N.lastIndex!==0||D.lastIndex!==0}(),C=i.BROKEN_CARET,F=/()??/.exec("")[1]!==void 0,R=P||F||C||h||p;R&&(S=function(D){var j=this,U=v(j),B=o(D),H=U.raw,z,w,G,V,J,rt,k;if(H)return H.lastIndex=j.lastIndex,z=n(S,H,B),j.lastIndex=H.lastIndex,z;var ot=U.groups,_=C&&j.sticky,mt=n(s,j),ct=j.source,xt=0,It=B;if(_&&(mt=A(mt,"y",""),E(mt,"g")===-1&&(mt+="g"),It=M(B,j.lastIndex),j.lastIndex>0&&(!j.multiline||j.multiline&&O(B,j.lastIndex-1)!==` +`)&&(ct="(?: "+ct+")",It=" "+It,xt++),w=new RegExp("^(?:"+ct+")",mt)),F&&(w=new RegExp("^"+ct+"$(?!\\s)",mt)),P&&(G=j.lastIndex),V=n(x,_?w:j,It),_?V?(V.input=M(V.input,xt),V[0]=M(V[0],xt),V.index=j.lastIndex,j.lastIndex+=V[0].length):j.lastIndex=0:P&&V&&(j.lastIndex=j.global?V.index+V[0].length:G),F&&V&&V.length>1&&n(y,V[0],w,function(){for(J=1;J<arguments.length-2;J++)arguments[J]===void 0&&(V[J]=void 0)}),V&&ot)for(V.groups=rt=c(null),J=0;J<ot.length;J++)k=ot[J],rt[k[0]]=V[k[1]];return V}),u.exports=S},29833:function(u,g,t){var n=t(25001);u.exports=function(){var e=n(this),o="";return e.hasIndices&&(o+="d"),e.global&&(o+="g"),e.ignoreCase&&(o+="i"),e.multiline&&(o+="m"),e.dotAll&&(o+="s"),e.unicode&&(o+="u"),e.unicodeSets&&(o+="v"),e.sticky&&(o+="y"),o}},54932:function(u,g,t){var n=t(96499),e=t(94879),o=t(95307),s=t(29833),i=RegExp.prototype;u.exports=function(l){var c=l.flags;return c===void 0&&!("flags"in i)&&!e(l,"flags")&&o(i,l)?n(s,l):c}},39807:function(u,g,t){var n=t(72069),e=t(66009),o=e.RegExp,s=n(function(){var c=o("a","y");return c.lastIndex=2,c.exec("abcd")!==null}),i=s||n(function(){return!o("a","y").sticky}),l=s||n(function(){var c=o("^r","gy");return c.lastIndex=2,c.exec("str")!==null});u.exports={BROKEN_CARET:l,MISSED_STICKY:i,UNSUPPORTED_Y:s}},76769:function(u,g,t){var n=t(72069),e=t(66009),o=e.RegExp;u.exports=n(function(){var s=o(".","s");return!(s.dotAll&&s.test(` +`)&&s.flags==="s")})},85220:function(u,g,t){var n=t(72069),e=t(66009),o=e.RegExp;u.exports=n(function(){var s=o("(?<a>b)","g");return s.exec("b").groups.a!=="b"||"b".replace(s,"$<a>c")!=="bc"})},2068:function(u,g,t){var n=t(5683),e=TypeError;u.exports=function(o){if(n(o))throw new e("Can't call method on "+o);return o}},28167:function(u,g,t){var n=t(66009),e=t(92986),o=Object.getOwnPropertyDescriptor;u.exports=function(s){if(!e)return n[s];var i=o(n,s);return i&&i.value}},13944:function(u){u.exports=Object.is||function(t,n){return t===n?t!==0||1/t===1/n:t!==t&&n!==n}},9934:function(u,g,t){var n=t(66009),e=t(66543),o=t(23583),s=t(5017),i=t(89042),l=t(22806),c=t(95486),v=n.Function,h=/MSIE .\./.test(i)||s&&function(){var p=n.Bun.version.split(".");return p.length<3||p[0]==="0"&&(p[1]<3||p[1]==="3"&&p[2]==="0")}();u.exports=function(p,y){var x=y?2:1;return h?function(S,O){var E=c(arguments.length,1)>x,A=o(S)?S:v(S),M=E?l(arguments,x):[],P=E?function(){e(A,this,M)}:A;return y?p(P,O):p(P)}:p}},48348:function(u,g,t){var n=t(172),e=t(35051),o=n.Set,s=n.add;u.exports=function(i){var l=new o;return e(i,function(c){s(l,c)}),l}},41754:function(u,g,t){var n=t(76602),e=t(172),o=t(48348),s=t(17768),i=t(65263),l=t(35051),c=t(9573),v=e.has,h=e.remove;u.exports=function(y){var x=n(this),S=i(y),O=o(x);return s(x)<=S.size?l(x,function(E){S.includes(E)&&h(O,E)}):c(S.getIterator(),function(E){v(x,E)&&h(O,E)}),O}},172:function(u,g,t){var n=t(11286),e=Set.prototype;u.exports={Set,add:n(e.add),has:n(e.has),remove:n(e.delete),proto:e}},92292:function(u,g,t){var n=t(76602),e=t(172),o=t(17768),s=t(65263),i=t(35051),l=t(9573),c=e.Set,v=e.add,h=e.has;u.exports=function(y){var x=n(this),S=s(y),O=new c;return o(x)>S.size?l(S.getIterator(),function(E){h(x,E)&&v(O,E)}):i(x,function(E){S.includes(E)&&v(O,E)}),O}},47391:function(u,g,t){var n=t(76602),e=t(172).has,o=t(17768),s=t(65263),i=t(35051),l=t(9573),c=t(99797);u.exports=function(h){var p=n(this),y=s(h);if(o(p)<=y.size)return i(p,function(S){if(y.includes(S))return!1},!0)!==!1;var x=y.getIterator();return l(x,function(S){if(e(p,S))return c(x,"normal",!1)})!==!1}},75492:function(u,g,t){var n=t(76602),e=t(17768),o=t(35051),s=t(65263);u.exports=function(l){var c=n(this),v=s(l);return e(c)>v.size?!1:o(c,function(h){if(!v.includes(h))return!1},!0)!==!1}},1333:function(u,g,t){var n=t(76602),e=t(172).has,o=t(17768),s=t(65263),i=t(9573),l=t(99797);u.exports=function(v){var h=n(this),p=s(v);if(o(h)<p.size)return!1;var y=p.getIterator();return i(y,function(x){if(!e(h,x))return l(y,"normal",!1)})!==!1}},35051:function(u,g,t){var n=t(11286),e=t(9573),o=t(172),s=o.Set,i=o.proto,l=n(i.forEach),c=n(i.keys),v=c(new s).next;u.exports=function(h,p,y){return y?e({iterator:c(h),next:v},p):l(h,p)}},94118:function(u,g,t){var n=t(38941),e=function(o){return{size:o,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}};u.exports=function(o){var s=n("Set");try{new s()[o](e(0));try{return new s()[o](e(-1)),!1}catch(i){return!0}}catch(i){return!1}}},17768:function(u,g,t){var n=t(84756),e=t(172);u.exports=n(e.proto,"size","get")||function(o){return o.size}},36167:function(u,g,t){var n=t(38941),e=t(85500),o=t(18565),s=t(92986),i=o("species");u.exports=function(l){var c=n(l);s&&c&&!c[i]&&e(c,i,{configurable:!0,get:function(){return this}})}},64680:function(u,g,t){var n=t(76602),e=t(172),o=t(48348),s=t(65263),i=t(9573),l=e.add,c=e.has,v=e.remove;u.exports=function(p){var y=n(this),x=s(p).getIterator(),S=o(y);return i(x,function(O){c(y,O)?v(S,O):l(S,O)}),S}},78401:function(u,g,t){var n=t(7831).f,e=t(94879),o=t(18565),s=o("toStringTag");u.exports=function(i,l,c){i&&!c&&(i=i.prototype),i&&!e(i,s)&&n(i,s,{configurable:!0,value:l})}},70402:function(u,g,t){var n=t(76602),e=t(172).add,o=t(48348),s=t(65263),i=t(9573);u.exports=function(c){var v=n(this),h=s(c).getIterator(),p=o(v);return i(h,function(y){e(p,y)}),p}},44869:function(u,g,t){var n=t(96731),e=t(36374),o=n("keys");u.exports=function(s){return o[s]||(o[s]=e(s))}},70443:function(u,g,t){var n=t(70457),e=t(66009),o=t(36003),s="__core-js_shared__",i=u.exports=e[s]||o(s,{});(i.versions||(i.versions=[])).push({version:"3.37.1",mode:n?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE",source:"https://github.com/zloirock/core-js"})},96731:function(u,g,t){var n=t(70443);u.exports=function(e,o){return n[e]||(n[e]=o||{})}},16887:function(u,g,t){var n=t(25001),e=t(80042),o=t(5683),s=t(18565),i=s("species");u.exports=function(l,c){var v=n(l).constructor,h;return v===void 0||o(h=n(v)[i])?c:e(h)}},5287:function(u,g,t){var n=t(72069);u.exports=function(e){return n(function(){var o=""[e]('"');return o!==o.toLowerCase()||o.split('"').length>3})}},22149:function(u,g,t){var n=t(11286),e=t(12105),o=t(17361),s=t(2068),i=n("".charAt),l=n("".charCodeAt),c=n("".slice),v=function(h){return function(p,y){var x=o(s(p)),S=e(y),O=x.length,E,A;return S<0||S>=O?h?"":void 0:(E=l(x,S),E<55296||E>56319||S+1===O||(A=l(x,S+1))<56320||A>57343?h?i(x,S):E:h?c(x,S,S+2):(E-55296<<10)+(A-56320)+65536)}};u.exports={codeAt:v(!1),charAt:v(!0)}},36945:function(u,g,t){var n=t(89042);u.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(n)},61607:function(u,g,t){var n=t(11286),e=t(45344),o=t(17361),s=t(79719),i=t(2068),l=n(s),c=n("".slice),v=Math.ceil,h=function(p){return function(y,x,S){var O=o(i(y)),E=e(x),A=O.length,M=S===void 0?" ":o(S),P,C;return E<=A||M===""?O:(P=E-A,C=l(M,v(P/M.length)),C.length>P&&(C=c(C,0,P)),p?O+C:C+O)}};u.exports={start:h(!1),end:h(!0)}},38679:function(u,g,t){var n=t(11286),e=2147483647,o=36,s=1,i=26,l=38,c=700,v=72,h=128,p="-",y=/[^\0-\u007E]/,x=/[.\u3002\uFF0E\uFF61]/g,S="Overflow: input needs wider integers to process",O=o-s,E=RangeError,A=n(x.exec),M=Math.floor,P=String.fromCharCode,C=n("".charCodeAt),F=n([].join),R=n([].push),N=n("".replace),D=n("".split),j=n("".toLowerCase),U=function(w){for(var G=[],V=0,J=w.length;V<J;){var rt=C(w,V++);if(rt>=55296&&rt<=56319&&V<J){var k=C(w,V++);(k&64512)===56320?R(G,((rt&1023)<<10)+(k&1023)+65536):(R(G,rt),V--)}else R(G,rt)}return G},B=function(w){return w+22+75*(w<26)},H=function(w,G,V){var J=0;for(w=V?M(w/c):w>>1,w+=M(w/G);w>O*i>>1;)w=M(w/O),J+=o;return M(J+(O+1)*w/(w+l))},z=function(w){var G=[];w=U(w);var V=w.length,J=h,rt=0,k=v,ot,_;for(ot=0;ot<w.length;ot++)_=w[ot],_<128&&R(G,P(_));var mt=G.length,ct=mt;for(mt&&R(G,p);ct<V;){var xt=e;for(ot=0;ot<w.length;ot++)_=w[ot],_>=J&&_<xt&&(xt=_);var It=ct+1;if(xt-J>M((e-rt)/It))throw new E(S);for(rt+=(xt-J)*It,J=xt,ot=0;ot<w.length;ot++){if(_=w[ot],_<J&&++rt>e)throw new E(S);if(_===J){for(var Ct=rt,Yt=o;;){var Wt=Yt<=k?s:Yt>=k+i?i:Yt-k;if(Ct<Wt)break;var Bt=Ct-Wt,vt=o-Wt;R(G,P(B(Wt+Bt%vt))),Ct=M(Bt/vt),Yt+=o}R(G,P(B(Ct))),k=H(rt,It,ct===mt),rt=0,ct++}}rt++,J++}return F(G,"")};u.exports=function(w){var G=[],V=D(N(j(w),x,"."),"."),J,rt;for(J=0;J<V.length;J++)rt=V[J],R(G,A(y,rt)?"xn--"+z(rt):rt);return F(G,".")}},79719:function(u,g,t){var n=t(12105),e=t(17361),o=t(2068),s=RangeError;u.exports=function(l){var c=e(o(this)),v="",h=n(l);if(h<0||h===1/0)throw new s("Wrong number of repetitions");for(;h>0;(h>>>=1)&&(c+=c))h&1&&(v+=c);return v}},75176:function(u,g,t){var n=t(85900).end,e=t(33328);u.exports=e("trimEnd")?function(){return n(this)}:"".trimEnd},33328:function(u,g,t){var n=t(86588).PROPER,e=t(72069),o=t(77082),s="\u200B\x85\u180E";u.exports=function(i){return e(function(){return!!o[i]()||s[i]()!==s||n&&o[i].name!==i})}},83481:function(u,g,t){var n=t(85900).start,e=t(33328);u.exports=e("trimStart")?function(){return n(this)}:"".trimStart},85900:function(u,g,t){var n=t(11286),e=t(2068),o=t(17361),s=t(77082),i=n("".replace),l=RegExp("^["+s+"]+"),c=RegExp("(^|[^"+s+"])["+s+"]+$"),v=function(h){return function(p){var y=o(e(p));return h&1&&(y=i(y,l,"")),h&2&&(y=i(y,c,"$1")),y}};u.exports={start:v(1),end:v(2),trim:v(3)}},99050:function(u,g,t){var n=t(66009),e=t(72069),o=t(73126),s=t(63144),i=t(56422),l=t(42954),c=n.structuredClone;u.exports=!!c&&!e(function(){if(i&&o>92||l&&o>94||s&&o>97)return!1;var v=new ArrayBuffer(8),h=c(v,{transfer:[v]});return v.byteLength!==0||h.byteLength!==8})},39729:function(u,g,t){var n=t(73126),e=t(72069),o=t(66009),s=o.String;u.exports=!!Object.getOwnPropertySymbols&&!e(function(){var i=Symbol("symbol detection");return!s(i)||!(Object(i)instanceof Symbol)||!Symbol.sham&&n&&n<41})},60796:function(u,g,t){var n=t(96499),e=t(38941),o=t(18565),s=t(16142);u.exports=function(){var i=e("Symbol"),l=i&&i.prototype,c=l&&l.valueOf,v=o("toPrimitive");l&&!l[v]&&s(l,v,function(h){return n(c,this)},{arity:1})}},61190:function(u,g,t){var n=t(39729);u.exports=n&&!!Symbol.for&&!!Symbol.keyFor},23115:function(u,g,t){var n=t(66009),e=t(66543),o=t(45526),s=t(23583),i=t(94879),l=t(72069),c=t(96439),v=t(22806),h=t(85501),p=t(95486),y=t(51149),x=t(42954),S=n.setImmediate,O=n.clearImmediate,E=n.process,A=n.Dispatch,M=n.Function,P=n.MessageChannel,C=n.String,F=0,R={},N="onreadystatechange",D,j,U,B;l(function(){D=n.location});var H=function(V){if(i(R,V)){var J=R[V];delete R[V],J()}},z=function(V){return function(){H(V)}},w=function(V){H(V.data)},G=function(V){n.postMessage(C(V),D.protocol+"//"+D.host)};(!S||!O)&&(S=function(J){p(arguments.length,1);var rt=s(J)?J:M(J),k=v(arguments,1);return R[++F]=function(){e(rt,void 0,k)},j(F),F},O=function(J){delete R[J]},x?j=function(V){E.nextTick(z(V))}:A&&A.now?j=function(V){A.now(z(V))}:P&&!y?(U=new P,B=U.port2,U.port1.onmessage=w,j=o(B.postMessage,B)):n.addEventListener&&s(n.postMessage)&&!n.importScripts&&D&&D.protocol!=="file:"&&!l(G)?(j=G,n.addEventListener("message",w,!1)):N in h("script")?j=function(V){c.appendChild(h("script"))[N]=function(){c.removeChild(this),H(V)}}:j=function(V){setTimeout(z(V),0)}),u.exports={set:S,clear:O}},34338:function(u,g,t){var n=t(11286);u.exports=n(1 .valueOf)},4652:function(u,g,t){var n=t(12105),e=Math.max,o=Math.min;u.exports=function(s,i){var l=n(s);return l<0?e(l+i,0):o(l,i)}},11344:function(u,g,t){var n=t(89935),e=TypeError;u.exports=function(o){var s=n(o,"number");if(typeof s=="number")throw new e("Can't convert number to bigint");return BigInt(s)}},9450:function(u,g,t){var n=t(12105),e=t(45344),o=RangeError;u.exports=function(s){if(s===void 0)return 0;var i=n(s),l=e(i);if(i!==l)throw new o("Wrong length or index");return l}},36859:function(u,g,t){var n=t(72181),e=t(2068);u.exports=function(o){return n(e(o))}},12105:function(u,g,t){var n=t(22459);u.exports=function(e){var o=+e;return o!==o||o===0?0:n(o)}},45344:function(u,g,t){var n=t(12105),e=Math.min;u.exports=function(o){var s=n(o);return s>0?e(s,9007199254740991):0}},49671:function(u,g,t){var n=t(2068),e=Object;u.exports=function(o){return e(n(o))}},58143:function(u,g,t){var n=t(98072),e=RangeError;u.exports=function(o,s){var i=n(o);if(i%s)throw new e("Wrong offset");return i}},98072:function(u,g,t){var n=t(12105),e=RangeError;u.exports=function(o){var s=n(o);if(s<0)throw new e("The argument can't be less than 0");return s}},89935:function(u,g,t){var n=t(96499),e=t(37540),o=t(491),s=t(10512),i=t(2064),l=t(18565),c=TypeError,v=l("toPrimitive");u.exports=function(h,p){if(!e(h)||o(h))return h;var y=s(h,v),x;if(y){if(p===void 0&&(p="default"),x=n(y,h,p),!e(x)||o(x))return x;throw new c("Can't convert object to primitive value")}return p===void 0&&(p="number"),i(h,p)}},50035:function(u,g,t){var n=t(89935),e=t(491);u.exports=function(o){var s=n(o,"string");return e(s)?s:s+""}},67878:function(u,g,t){var n=t(18565),e=n("toStringTag"),o={};o[e]="z",u.exports=String(o)==="[object z]"},17361:function(u,g,t){var n=t(9205),e=String;u.exports=function(o){if(n(o)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return e(o)}},76517:function(u){var g=Math.round;u.exports=function(t){var n=g(t);return n<0?0:n>255?255:n&255}},18096:function(u,g,t){var n=t(42954);u.exports=function(e){try{if(n)return Function('return require("'+e+'")')()}catch(o){}}},82453:function(u){var g=String;u.exports=function(t){try{return g(t)}catch(n){return"Object"}}},80357:function(u,g,t){var n=t(14304),e=t(66009),o=t(96499),s=t(92986),i=t(46868),l=t(88037),c=t(17468),v=t(12833),h=t(18526),p=t(90809),y=t(613),x=t(45344),S=t(9450),O=t(58143),E=t(76517),A=t(50035),M=t(94879),P=t(9205),C=t(37540),F=t(491),R=t(5406),N=t(95307),D=t(15861),j=t(83258).f,U=t(66169),B=t(66655).forEach,H=t(36167),z=t(85500),w=t(7831),G=t(71349),V=t(5220),J=t(82367),rt=t(32345),k=J.get,ot=J.set,_=J.enforce,mt=w.f,ct=G.f,xt=e.RangeError,It=c.ArrayBuffer,Ct=It.prototype,Yt=c.DataView,Wt=l.NATIVE_ARRAY_BUFFER_VIEWS,Bt=l.TYPED_ARRAY_TAG,vt=l.TypedArray,St=l.TypedArrayPrototype,bt=l.isTypedArray,Lt="BYTES_PER_ELEMENT",Ft="Wrong length",jt=function(_t,Kt){z(_t,Kt,{configurable:!0,get:function(){return k(this)[Kt]}})},tr=function(_t){var Kt;return N(Ct,_t)||(Kt=P(_t))==="ArrayBuffer"||Kt==="SharedArrayBuffer"},rr=function(_t,Kt){return bt(_t)&&!F(Kt)&&Kt in _t&&y(+Kt)&&Kt>=0},Jt=function(Kt,Gt){return Gt=A(Gt),rr(Kt,Gt)?h(2,Kt[Gt]):ct(Kt,Gt)},wt=function(Kt,Gt,ft){return Gt=A(Gt),rr(Kt,Gt)&&C(ft)&&M(ft,"value")&&!M(ft,"get")&&!M(ft,"set")&&!ft.configurable&&(!M(ft,"writable")||ft.writable)&&(!M(ft,"enumerable")||ft.enumerable)?(Kt[Gt]=ft.value,Kt):mt(Kt,Gt,ft)};s?(Wt||(G.f=Jt,w.f=wt,jt(St,"buffer"),jt(St,"byteOffset"),jt(St,"byteLength"),jt(St,"length")),n({target:"Object",stat:!0,forced:!Wt},{getOwnPropertyDescriptor:Jt,defineProperty:wt}),u.exports=function(_t,Kt,Gt){var ft=_t.match(/\d+/)[0]/8,dt=_t+(Gt?"Clamped":"")+"Array",at="get"+_t,At="set"+_t,Pt=e[dt],Ot=Pt,Et=Ot&&Ot.prototype,ar={},lr=function(X,nt){var Q=k(X);return Q.view[at](nt*ft+Q.byteOffset,!0)},q=function(X,nt,Q){var yt=k(X);yt.view[At](nt*ft+yt.byteOffset,Gt?E(Q):Q,!0)},it=function(X,nt){mt(X,nt,{get:function(){return lr(this,nt)},set:function(Q){return q(this,nt,Q)},enumerable:!0})};Wt?i&&(Ot=Kt(function(X,nt,Q,yt){return v(X,Et),rt(function(){return C(nt)?tr(nt)?yt!==void 0?new Pt(nt,O(Q,ft),yt):Q!==void 0?new Pt(nt,O(Q,ft)):new Pt(nt):bt(nt)?V(Ot,nt):o(U,Ot,nt):new Pt(S(nt))}(),X,Ot)}),D&&D(Ot,vt),B(j(Pt),function(X){X in Ot||p(Ot,X,Pt[X])}),Ot.prototype=Et):(Ot=Kt(function(X,nt,Q,yt){v(X,Et);var Nt=0,$t=0,Xt,Qt,Zt;if(!C(nt))Zt=S(nt),Qt=Zt*ft,Xt=new It(Qt);else if(tr(nt)){Xt=nt,$t=O(Q,ft);var mr=nt.byteLength;if(yt===void 0){if(mr%ft)throw new xt(Ft);if(Qt=mr-$t,Qt<0)throw new xt(Ft)}else if(Qt=x(yt)*ft,Qt+$t>mr)throw new xt(Ft);Zt=Qt/ft}else return bt(nt)?V(Ot,nt):o(U,Ot,nt);for(ot(X,{buffer:Xt,byteOffset:$t,byteLength:Qt,length:Zt,view:new Yt(Xt)});Nt<Zt;)it(X,Nt++)}),D&&D(Ot,vt),Et=Ot.prototype=R(St)),Et.constructor!==Ot&&p(Et,"constructor",Ot),_(Et).TypedArrayConstructor=Ot,Bt&&p(Et,Bt,dt);var lt=Ot!==Pt;ar[dt]=Ot,n({global:!0,constructor:!0,forced:lt,sham:!Wt},ar),Lt in Ot||p(Ot,Lt,ft),Lt in Et||p(Et,Lt,ft),H(dt)}):u.exports=function(){}},46868:function(u,g,t){var n=t(66009),e=t(72069),o=t(97494),s=t(88037).NATIVE_ARRAY_BUFFER_VIEWS,i=n.ArrayBuffer,l=n.Int8Array;u.exports=!s||!e(function(){l(1)})||!e(function(){new l(-1)})||!o(function(c){new l,new l(null),new l(1.5),new l(c)},!0)||e(function(){return new l(new i(2),1,void 0).length!==1})},3795:function(u,g,t){var n=t(5220),e=t(21822);u.exports=function(o,s){return n(e(o),s)}},66169:function(u,g,t){var n=t(45526),e=t(96499),o=t(80042),s=t(49671),i=t(82628),l=t(90619),c=t(81077),v=t(48199),h=t(77129),p=t(88037).aTypedArrayConstructor,y=t(11344);u.exports=function(S){var O=o(this),E=s(S),A=arguments.length,M=A>1?arguments[1]:void 0,P=M!==void 0,C=c(E),F,R,N,D,j,U,B,H;if(C&&!v(C))for(B=l(E,C),H=B.next,E=[];!(U=e(H,B)).done;)E.push(U.value);for(P&&A>2&&(M=n(M,arguments[2])),R=i(E),N=new(p(O))(R),D=h(N),F=0;R>F;F++)j=P?M(E[F],F):E[F],N[F]=D?y(j):+j;return N}},21822:function(u,g,t){var n=t(88037),e=t(16887),o=n.aTypedArrayConstructor,s=n.getTypedArrayConstructor;u.exports=function(i){return o(e(i,s(i)))}},36374:function(u,g,t){var n=t(11286),e=0,o=Math.random(),s=n(1 .toString);u.exports=function(i){return"Symbol("+(i===void 0?"":i)+")_"+s(++e+o,36)}},91918:function(u,g,t){var n=t(72069),e=t(18565),o=t(92986),s=t(70457),i=e("iterator");u.exports=!n(function(){var l=new URL("b?a=1&b=2&c=3","http://a"),c=l.searchParams,v=new URLSearchParams("a=1&a=2&b=3"),h="";return l.pathname="c%20d",c.forEach(function(p,y){c.delete("b"),h+=y+p}),v.delete("a",2),v.delete("b",void 0),s&&(!l.toJSON||!v.has("a",1)||v.has("a",2)||!v.has("a",void 0)||v.has("b"))||!c.size&&(s||!o)||!c.sort||l.href!=="http://a/c%20d?a=1&c=3"||c.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!c[i]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("http://a#\u0431").hash!=="#%D0%B1"||h!=="a1c3"||new URL("http://x",void 0).host!=="x"})},50234:function(u,g,t){var n=t(39729);u.exports=n&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},356:function(u,g,t){var n=t(92986),e=t(72069);u.exports=n&&e(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})},95486:function(u){var g=TypeError;u.exports=function(t,n){if(t<n)throw new g("Not enough arguments");return t}},42960:function(u,g,t){var n=t(66009),e=t(23583),o=n.WeakMap;u.exports=e(o)&&/native code/.test(String(o))},83749:function(u,g,t){var n=t(75081),e=t(94879),o=t(56529),s=t(7831).f;u.exports=function(i){var l=n.Symbol||(n.Symbol={});e(l,i)||s(l,i,{value:o.f(i)})}},56529:function(u,g,t){var n=t(18565);g.f=n},18565:function(u,g,t){var n=t(66009),e=t(96731),o=t(94879),s=t(36374),i=t(39729),l=t(50234),c=n.Symbol,v=e("wks"),h=l?c.for||c:c&&c.withoutSetter||s;u.exports=function(p){return o(v,p)||(v[p]=i&&o(c,p)?c[p]:h("Symbol."+p)),v[p]}},77082:function(u){u.exports=` +\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},70003:function(u,g,t){var n=t(38941),e=t(94879),o=t(90809),s=t(95307),i=t(15861),l=t(93706),c=t(2594),v=t(32345),h=t(15453),p=t(31486),y=t(97077),x=t(92986),S=t(70457);u.exports=function(O,E,A,M){var P="stackTraceLimit",C=M?2:1,F=O.split("."),R=F[F.length-1],N=n.apply(null,F);if(N){var D=N.prototype;if(!S&&e(D,"cause")&&delete D.cause,!A)return N;var j=n("Error"),U=E(function(B,H){var z=h(M?H:B,void 0),w=M?new N(B):new N;return z!==void 0&&o(w,"message",z),y(w,U,w.stack,2),this&&s(D,this)&&v(w,this,U),arguments.length>C&&p(w,arguments[C]),w});if(U.prototype=D,R!=="Error"?i?i(U,j):l(U,j,{name:!0}):x&&P in N&&(c(U,N,P),c(U,N,"prepareStackTrace")),l(U,N),!S)try{D.name!==R&&o(D,"name",R),D.constructor=U}catch(B){}return U}}},27796:function(u,g,t){var n=t(14304),e=t(38941),o=t(66543),s=t(72069),i=t(70003),l="AggregateError",c=e(l),v=!s(function(){return c([1]).errors[0]!==1})&&s(function(){return c([1],l,{cause:7}).cause!==7});n({global:!0,constructor:!0,arity:2,forced:v},{AggregateError:i(l,function(h){return function(y,x){return o(h,this,arguments)}},v,!0)})},85647:function(u,g,t){var n=t(14304),e=t(95307),o=t(26313),s=t(15861),i=t(93706),l=t(5406),c=t(90809),v=t(18526),h=t(31486),p=t(97077),y=t(55902),x=t(15453),S=t(18565),O=S("toStringTag"),E=Error,A=[].push,M=function(F,R){var N=e(P,this),D;s?D=s(new E,N?o(this):P):(D=N?this:l(P),c(D,O,"Error")),R!==void 0&&c(D,"message",x(R)),p(D,M,D.stack,1),arguments.length>2&&h(D,arguments[2]);var j=[];return y(F,A,{that:j}),c(D,"errors",j),D};s?s(M,E):i(M,E,{name:!0});var P=M.prototype=l(E.prototype,{constructor:v(1,M),message:v(1,""),name:v(1,"AggregateError")});n({global:!0,constructor:!0,arity:2},{AggregateError:M})},42861:function(u,g,t){t(85647)},35473:function(u,g,t){var n=t(14304),e=t(66009),o=t(17468),s=t(36167),i="ArrayBuffer",l=o[i],c=e[i];n({global:!0,constructor:!0,forced:c!==l},{ArrayBuffer:l}),s(i)},35495:function(u,g,t){var n=t(92986),e=t(85500),o=t(30736),s=ArrayBuffer.prototype;n&&!("detached"in s)&&e(s,"detached",{configurable:!0,get:function(){return o(this)}})},4983:function(u,g,t){var n=t(14304),e=t(88037),o=e.NATIVE_ARRAY_BUFFER_VIEWS;n({target:"ArrayBuffer",stat:!0,forced:!o},{isView:e.isView})},6875:function(u,g,t){var n=t(14304),e=t(77422),o=t(72069),s=t(17468),i=t(25001),l=t(4652),c=t(45344),v=t(16887),h=s.ArrayBuffer,p=s.DataView,y=p.prototype,x=e(h.prototype.slice),S=e(y.getUint8),O=e(y.setUint8),E=o(function(){return!new h(2).slice(1,void 0).byteLength});n({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:E},{slice:function(M,P){if(x&&P===void 0)return x(i(this),M);for(var C=i(this).byteLength,F=l(M,C),R=l(P===void 0?C:P,C),N=new(v(this,h))(c(R-F)),D=new p(this),j=new p(N),U=0;F<R;)O(j,U++,S(D,F++));return N}})},58594:function(u,g,t){var n=t(14304),e=t(65006);e&&n({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return e(this,arguments.length?arguments[0]:void 0,!1)}})},32790:function(u,g,t){var n=t(14304),e=t(65006);e&&n({target:"ArrayBuffer",proto:!0},{transfer:function(){return e(this,arguments.length?arguments[0]:void 0,!0)}})},1341:function(u,g,t){var n=t(14304),e=t(49671),o=t(82628),s=t(12105),i=t(23811);n({target:"Array",proto:!0},{at:function(c){var v=e(this),h=o(v),p=s(c),y=p>=0?p:h+p;return y<0||y>=h?void 0:v[y]}}),i("at")},98700:function(u,g,t){var n=t(14304),e=t(72069),o=t(3438),s=t(37540),i=t(49671),l=t(82628),c=t(20095),v=t(84082),h=t(62083),p=t(52183),y=t(18565),x=t(73126),S=y("isConcatSpreadable"),O=x>=51||!e(function(){var M=[];return M[S]=!1,M.concat()[0]!==M}),E=function(M){if(!s(M))return!1;var P=M[S];return P!==void 0?!!P:o(M)},A=!O||!p("concat");n({target:"Array",proto:!0,arity:1,forced:A},{concat:function(P){var C=i(this),F=h(C,0),R=0,N,D,j,U,B;for(N=-1,j=arguments.length;N<j;N++)if(B=N===-1?C:arguments[N],E(B))for(U=l(B),c(R+U),D=0;D<U;D++,R++)D in B&&v(F,R,B[D]);else c(R+1),v(F,R++,B);return F.length=R,F}})},65481:function(u,g,t){var n=t(14304),e=t(81499),o=t(23811);n({target:"Array",proto:!0},{copyWithin:e}),o("copyWithin")},46509:function(u,g,t){var n=t(14304),e=t(66655).every,o=t(6148),s=o("every");n({target:"Array",proto:!0,forced:!s},{every:function(l){return e(this,l,arguments.length>1?arguments[1]:void 0)}})},41585:function(u,g,t){var n=t(14304),e=t(43011),o=t(23811);n({target:"Array",proto:!0},{fill:e}),o("fill")},84554:function(u,g,t){var n=t(14304),e=t(66655).filter,o=t(52183),s=o("filter");n({target:"Array",proto:!0,forced:!s},{filter:function(l){return e(this,l,arguments.length>1?arguments[1]:void 0)}})},33818:function(u,g,t){var n=t(14304),e=t(66655).findIndex,o=t(23811),s="findIndex",i=!0;s in[]&&Array(1)[s](function(){i=!1}),n({target:"Array",proto:!0,forced:i},{findIndex:function(c){return e(this,c,arguments.length>1?arguments[1]:void 0)}}),o(s)},2209:function(u,g,t){var n=t(14304),e=t(73849).findLastIndex,o=t(23811);n({target:"Array",proto:!0},{findLastIndex:function(i){return e(this,i,arguments.length>1?arguments[1]:void 0)}}),o("findLastIndex")},64096:function(u,g,t){var n=t(14304),e=t(73849).findLast,o=t(23811);n({target:"Array",proto:!0},{findLast:function(i){return e(this,i,arguments.length>1?arguments[1]:void 0)}}),o("findLast")},36619:function(u,g,t){var n=t(14304),e=t(66655).find,o=t(23811),s="find",i=!0;s in[]&&Array(1)[s](function(){i=!1}),n({target:"Array",proto:!0,forced:i},{find:function(c){return e(this,c,arguments.length>1?arguments[1]:void 0)}}),o(s)},74092:function(u,g,t){var n=t(14304),e=t(53149),o=t(85156),s=t(49671),i=t(82628),l=t(62083);n({target:"Array",proto:!0},{flatMap:function(v){var h=s(this),p=i(h),y;return o(v),y=l(h,0),y.length=e(y,h,h,p,0,1,v,arguments.length>1?arguments[1]:void 0),y}})},91591:function(u,g,t){var n=t(14304),e=t(53149),o=t(49671),s=t(82628),i=t(12105),l=t(62083);n({target:"Array",proto:!0},{flat:function(){var v=arguments.length?arguments[0]:void 0,h=o(this),p=s(h),y=l(h,0);return y.length=e(y,h,h,p,0,v===void 0?1:i(v)),y}})},54703:function(u,g,t){var n=t(14304),e=t(13349);n({target:"Array",proto:!0,forced:[].forEach!==e},{forEach:e})},82936:function(u,g,t){var n=t(14304),e=t(48258),o=t(97494),s=!o(function(i){Array.from(i)});n({target:"Array",stat:!0,forced:s},{from:e})},48493:function(u,g,t){var n=t(14304),e=t(94319).includes,o=t(72069),s=t(23811),i=o(function(){return!Array(1).includes()});n({target:"Array",proto:!0,forced:i},{includes:function(c){return e(this,c,arguments.length>1?arguments[1]:void 0)}}),s("includes")},64730:function(u,g,t){var n=t(14304),e=t(77422),o=t(94319).indexOf,s=t(6148),i=e([].indexOf),l=!!i&&1/i([1],1,-0)<0,c=l||!s("indexOf");n({target:"Array",proto:!0,forced:c},{indexOf:function(h){var p=arguments.length>1?arguments[1]:void 0;return l?i(this,h,p)||0:o(this,h,p)}})},95024:function(u,g,t){var n=t(14304),e=t(3438);n({target:"Array",stat:!0},{isArray:e})},35054:function(u,g,t){var n=t(36859),e=t(23811),o=t(29107),s=t(82367),i=t(7831).f,l=t(10218),c=t(10659),v=t(70457),h=t(92986),p="Array Iterator",y=s.set,x=s.getterFor(p);u.exports=l(Array,"Array",function(O,E){y(this,{type:p,target:n(O),index:0,kind:E})},function(){var O=x(this),E=O.target,A=O.index++;if(!E||A>=E.length)return O.target=void 0,c(void 0,!0);switch(O.kind){case"keys":return c(A,!1);case"values":return c(E[A],!1)}return c([A,E[A]],!1)},"values");var S=o.Arguments=o.Array;if(e("keys"),e("values"),e("entries"),!v&&h&&S.name!=="values")try{i(S,"name",{value:"values"})}catch(O){}},25460:function(u,g,t){var n=t(14304),e=t(11286),o=t(72181),s=t(36859),i=t(6148),l=e([].join),c=o!==Object,v=c||!i("join",",");n({target:"Array",proto:!0,forced:v},{join:function(p){return l(s(this),p===void 0?",":p)}})},60703:function(u,g,t){var n=t(14304),e=t(58465);n({target:"Array",proto:!0,forced:e!==[].lastIndexOf},{lastIndexOf:e})},90468:function(u,g,t){var n=t(14304),e=t(66655).map,o=t(52183),s=o("map");n({target:"Array",proto:!0,forced:!s},{map:function(l){return e(this,l,arguments.length>1?arguments[1]:void 0)}})},69581:function(u,g,t){var n=t(14304),e=t(72069),o=t(11051),s=t(84082),i=Array,l=e(function(){function c(){}return!(i.of.call(c)instanceof c)});n({target:"Array",stat:!0,forced:l},{of:function(){for(var v=0,h=arguments.length,p=new(o(this)?this:i)(h);h>v;)s(p,v,arguments[v++]);return p.length=h,p}})},720:function(u,g,t){var n=t(14304),e=t(49671),o=t(82628),s=t(2213),i=t(20095),l=t(72069),c=l(function(){return[].push.call({length:4294967296},1)!==4294967297}),v=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(p){return p instanceof TypeError}},h=c||!v();n({target:"Array",proto:!0,arity:1,forced:h},{push:function(y){var x=e(this),S=o(x),O=arguments.length;i(S+O);for(var E=0;E<O;E++)x[S]=arguments[E],S++;return s(x,S),S}})},17289:function(u,g,t){var n=t(14304),e=t(97264).right,o=t(6148),s=t(73126),i=t(42954),l=!i&&s>79&&s<83,c=l||!o("reduceRight");n({target:"Array",proto:!0,forced:c},{reduceRight:function(h){return e(this,h,arguments.length,arguments.length>1?arguments[1]:void 0)}})},11042:function(u,g,t){var n=t(14304),e=t(97264).left,o=t(6148),s=t(73126),i=t(42954),l=!i&&s>79&&s<83,c=l||!o("reduce");n({target:"Array",proto:!0,forced:c},{reduce:function(h){var p=arguments.length;return e(this,h,p,p>1?arguments[1]:void 0)}})},24608:function(u,g,t){var n=t(14304),e=t(11286),o=t(3438),s=e([].reverse),i=[1,2];n({target:"Array",proto:!0,forced:String(i)===String(i.reverse())},{reverse:function(){return o(this)&&(this.length=this.length),s(this)}})},51644:function(u,g,t){var n=t(14304),e=t(3438),o=t(11051),s=t(37540),i=t(4652),l=t(82628),c=t(36859),v=t(84082),h=t(18565),p=t(52183),y=t(22806),x=p("slice"),S=h("species"),O=Array,E=Math.max;n({target:"Array",proto:!0,forced:!x},{slice:function(M,P){var C=c(this),F=l(C),R=i(M,F),N=i(P===void 0?F:P,F),D,j,U;if(e(C)&&(D=C.constructor,o(D)&&(D===O||e(D.prototype))?D=void 0:s(D)&&(D=D[S],D===null&&(D=void 0)),D===O||D===void 0))return y(C,R,N);for(j=new(D===void 0?O:D)(E(N-R,0)),U=0;R<N;R++,U++)R in C&&v(j,U,C[R]);return j.length=U,j}})},88088:function(u,g,t){var n=t(14304),e=t(66655).some,o=t(6148),s=o("some");n({target:"Array",proto:!0,forced:!s},{some:function(l){return e(this,l,arguments.length>1?arguments[1]:void 0)}})},46828:function(u,g,t){var n=t(14304),e=t(11286),o=t(85156),s=t(49671),i=t(82628),l=t(12384),c=t(17361),v=t(72069),h=t(13270),p=t(6148),y=t(54040),x=t(87216),S=t(73126),O=t(68674),E=[],A=e(E.sort),M=e(E.push),P=v(function(){E.sort(void 0)}),C=v(function(){E.sort(null)}),F=p("sort"),R=!v(function(){if(S)return S<70;if(!(y&&y>3)){if(x)return!0;if(O)return O<603;var j="",U,B,H,z;for(U=65;U<76;U++){switch(B=String.fromCharCode(U),U){case 66:case 69:case 70:case 72:H=3;break;case 68:case 71:H=4;break;default:H=2}for(z=0;z<47;z++)E.push({k:B+z,v:H})}for(E.sort(function(w,G){return G.v-w.v}),z=0;z<E.length;z++)B=E[z].k.charAt(0),j.charAt(j.length-1)!==B&&(j+=B);return j!=="DGBEFHACIJK"}}),N=P||!C||!F||!R,D=function(j){return function(U,B){return B===void 0?-1:U===void 0?1:j!==void 0?+j(U,B)||0:c(U)>c(B)?1:-1}};n({target:"Array",proto:!0,forced:N},{sort:function(U){U!==void 0&&o(U);var B=s(this);if(R)return U===void 0?A(B):A(B,U);var H=[],z=i(B),w,G;for(G=0;G<z;G++)G in B&&M(H,B[G]);for(h(H,D(U)),w=i(H),G=0;G<w;)B[G]=H[G++];for(;G<z;)l(B,G++);return B}})},90088:function(u,g,t){var n=t(36167);n("Array")},35148:function(u,g,t){var n=t(14304),e=t(49671),o=t(4652),s=t(12105),i=t(82628),l=t(2213),c=t(20095),v=t(62083),h=t(84082),p=t(12384),y=t(52183),x=y("splice"),S=Math.max,O=Math.min;n({target:"Array",proto:!0,forced:!x},{splice:function(A,M){var P=e(this),C=i(P),F=o(A,C),R=arguments.length,N,D,j,U,B,H;for(R===0?N=D=0:R===1?(N=0,D=C-F):(N=R-2,D=O(S(s(M),0),C-F)),c(C+N-D),j=v(P,D),U=0;U<D;U++)B=F+U,B in P&&h(j,U,P[B]);if(j.length=D,N<D){for(U=F;U<C-D;U++)B=U+D,H=U+N,B in P?P[H]=P[B]:p(P,H);for(U=C;U>C-D+N;U--)p(P,U-1)}else if(N>D)for(U=C-D;U>F;U--)B=U+D-1,H=U+N-1,B in P?P[H]=P[B]:p(P,H);for(U=0;U<N;U++)P[U+F]=arguments[U+2];return l(P,C-D+N),j}})},86184:function(u,g,t){var n=t(14304),e=t(61638),o=t(36859),s=t(23811),i=Array;n({target:"Array",proto:!0},{toReversed:function(){return e(o(this),i)}}),s("toReversed")},53983:function(u,g,t){var n=t(14304),e=t(11286),o=t(85156),s=t(36859),i=t(5220),l=t(65470),c=t(23811),v=Array,h=e(l("Array","sort"));n({target:"Array",proto:!0},{toSorted:function(y){y!==void 0&&o(y);var x=s(this),S=i(v,x);return h(S,y)}}),c("toSorted")},42560:function(u,g,t){var n=t(14304),e=t(23811),o=t(20095),s=t(82628),i=t(4652),l=t(36859),c=t(12105),v=Array,h=Math.max,p=Math.min;n({target:"Array",proto:!0},{toSpliced:function(x,S){var O=l(this),E=s(O),A=i(x,E),M=arguments.length,P=0,C,F,R,N;for(M===0?C=F=0:M===1?(C=0,F=E-A):(C=M-2,F=p(h(c(S),0),E-A)),R=o(E+C-F),N=v(R);P<A;P++)N[P]=O[P];for(;P<A+C;P++)N[P]=arguments[P-A+2];for(;P<R;P++)N[P]=O[P+F-C];return N}}),e("toSpliced")},27839:function(u,g,t){var n=t(23811);n("flatMap")},88444:function(u,g,t){var n=t(23811);n("flat")},73051:function(u,g,t){var n=t(14304),e=t(49671),o=t(82628),s=t(2213),i=t(12384),l=t(20095),c=[].unshift(0)!==1,v=function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(p){return p instanceof TypeError}},h=c||!v();n({target:"Array",proto:!0,arity:1,forced:h},{unshift:function(y){var x=e(this),S=o(x),O=arguments.length;if(O){l(S+O);for(var E=S;E--;){var A=E+O;E in x?x[A]=x[E]:i(x,A)}for(var M=0;M<O;M++)x[M]=arguments[M]}return s(x,S+O)}})},9372:function(u,g,t){var n=t(14304),e=t(72302),o=t(36859),s=Array;n({target:"Array",proto:!0},{with:function(i,l){return e(o(this),s,i,l)}})},77885:function(u,g,t){var n=t(14304),e=t(17468),o=t(3237);n({global:!0,constructor:!0,forced:!o},{DataView:e.DataView})},68575:function(u,g,t){t(77885)},30801:function(u,g,t){var n=t(14304),e=t(11286),o=t(72069),s=o(function(){return new Date(16e11).getYear()!==120}),i=e(Date.prototype.getFullYear);n({target:"Date",proto:!0,forced:s},{getYear:function(){return i(this)-1900}})},90911:function(u,g,t){var n=t(14304),e=t(11286),o=Date,s=e(o.prototype.getTime);n({target:"Date",stat:!0},{now:function(){return s(new o)}})},90429:function(u,g,t){var n=t(14304),e=t(11286),o=t(12105),s=Date.prototype,i=e(s.getTime),l=e(s.setFullYear);n({target:"Date",proto:!0},{setYear:function(v){i(this);var h=o(v),p=h>=0&&h<=99?h+1900:h;return l(this,p)}})},33685:function(u,g,t){var n=t(14304);n({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},60086:function(u,g,t){var n=t(14304),e=t(11890);n({target:"Date",proto:!0,forced:Date.prototype.toISOString!==e},{toISOString:e})},96049:function(u,g,t){var n=t(14304),e=t(72069),o=t(49671),s=t(89935),i=e(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1});n({target:"Date",proto:!0,arity:1,forced:i},{toJSON:function(c){var v=o(this),h=s(v,"number");return typeof h=="number"&&!isFinite(h)?null:v.toISOString()}})},14038:function(u,g,t){var n=t(94879),e=t(16142),o=t(84306),s=t(18565),i=s("toPrimitive"),l=Date.prototype;n(l,i)||e(l,i,o)},55518:function(u,g,t){var n=t(11286),e=t(16142),o=Date.prototype,s="Invalid Date",i="toString",l=n(o[i]),c=n(o.getTime);String(new Date(NaN))!==s&&e(o,i,function(){var h=c(this);return h===h?l(this):s})},81742:function(u,g,t){var n=t(14304),e=t(66009),o=t(66543),s=t(70003),i="WebAssembly",l=e[i],c=new Error("e",{cause:7}).cause!==7,v=function(p,y){var x={};x[p]=s(p,y,c),n({global:!0,constructor:!0,arity:1,forced:c},x)},h=function(p,y){if(l&&l[p]){var x={};x[p]=s(i+"."+p,y,c),n({target:i,stat:!0,constructor:!0,arity:1,forced:c},x)}};v("Error",function(p){return function(x){return o(p,this,arguments)}}),v("EvalError",function(p){return function(x){return o(p,this,arguments)}}),v("RangeError",function(p){return function(x){return o(p,this,arguments)}}),v("ReferenceError",function(p){return function(x){return o(p,this,arguments)}}),v("SyntaxError",function(p){return function(x){return o(p,this,arguments)}}),v("TypeError",function(p){return function(x){return o(p,this,arguments)}}),v("URIError",function(p){return function(x){return o(p,this,arguments)}}),h("CompileError",function(p){return function(x){return o(p,this,arguments)}}),h("LinkError",function(p){return function(x){return o(p,this,arguments)}}),h("RuntimeError",function(p){return function(x){return o(p,this,arguments)}})},8720:function(u,g,t){var n=t(16142),e=t(58434),o=Error.prototype;o.toString!==e&&n(o,"toString",e)},8894:function(u,g,t){var n=t(14304),e=t(11286),o=t(17361),s=e("".charAt),i=e("".charCodeAt),l=e(/./.exec),c=e(1 .toString),v=e("".toUpperCase),h=/[\w*+\-./@]/,p=function(y,x){for(var S=c(y,16);S.length<x;)S="0"+S;return S};n({global:!0},{escape:function(x){for(var S=o(x),O="",E=S.length,A=0,M,P;A<E;)M=s(S,A++),l(h,M)?O+=M:(P=i(M,0),P<256?O+="%"+p(P,2):O+="%u"+v(p(P,4)));return O}})},60628:function(u,g,t){var n=t(14304),e=t(91384);n({target:"Function",proto:!0,forced:Function.bind!==e},{bind:e})},56347:function(u,g,t){var n=t(23583),e=t(37540),o=t(7831),s=t(95307),i=t(18565),l=t(13749),c=i("hasInstance"),v=Function.prototype;c in v||o.f(v,c,{value:l(function(h){if(!n(this)||!e(h))return!1;var p=this.prototype;return e(p)?s(p,h):h instanceof this},c)})},16864:function(u,g,t){var n=t(92986),e=t(86588).EXISTS,o=t(11286),s=t(85500),i=Function.prototype,l=o(i.toString),c=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,v=o(c.exec),h="name";n&&!e&&s(i,h,{configurable:!0,get:function(){try{return v(c,l(this))[1]}catch(p){return""}}})},93819:function(u,g,t){var n=t(14304),e=t(66009);n({global:!0,forced:e.globalThis!==e},{globalThis:e})},71332:function(u,g,t){var n=t(14304),e=t(38941),o=t(66543),s=t(96499),i=t(11286),l=t(72069),c=t(23583),v=t(491),h=t(22806),p=t(10443),y=t(39729),x=String,S=e("JSON","stringify"),O=i(/./.exec),E=i("".charAt),A=i("".charCodeAt),M=i("".replace),P=i(1 .toString),C=/[\uD800-\uDFFF]/g,F=/^[\uD800-\uDBFF]$/,R=/^[\uDC00-\uDFFF]$/,N=!y||l(function(){var B=e("Symbol")("stringify detection");return S([B])!=="[null]"||S({a:B})!=="{}"||S(Object(B))!=="{}"}),D=l(function(){return S("\uDF06\uD834")!=='"\\udf06\\ud834"'||S("\uDEAD")!=='"\\udead"'}),j=function(B,H){var z=h(arguments),w=p(H);if(!(!c(w)&&(B===void 0||v(B))))return z[1]=function(G,V){if(c(w)&&(V=s(w,this,x(G),V)),!v(V))return V},o(S,null,z)},U=function(B,H,z){var w=E(z,H-1),G=E(z,H+1);return O(F,B)&&!O(R,G)||O(R,B)&&!O(F,w)?"\\u"+P(A(B,0),16):B};S&&n({target:"JSON",stat:!0,arity:3,forced:N||D},{stringify:function(H,z,w){var G=h(arguments),V=o(N?j:S,null,G);return D&&typeof V=="string"?M(V,C,U):V}})},47269:function(u,g,t){var n=t(66009),e=t(78401);e(n.JSON,"JSON",!0)},87777:function(u,g,t){var n=t(89378),e=t(34440);n("Map",function(o){return function(){return o(this,arguments.length?arguments[0]:void 0)}},e)},22090:function(u,g,t){var n=t(14304),e=t(11286),o=t(85156),s=t(2068),i=t(55902),l=t(1774),c=t(70457),v=t(72069),h=l.Map,p=l.has,y=l.get,x=l.set,S=e([].push),O=c||v(function(){return h.groupBy("ab",function(E){return E}).get("a").length!==1});n({target:"Map",stat:!0,forced:c||O},{groupBy:function(A,M){s(A),o(M);var P=new h,C=0;return i(A,function(F){var R=M(F,C++);p(P,R)?S(y(P,R),F):x(P,R,[F])}),P}})},25627:function(u,g,t){t(87777)},9839:function(u,g,t){var n=t(14304),e=t(49366),o=Math.acosh,s=Math.log,i=Math.sqrt,l=Math.LN2,c=!o||Math.floor(o(Number.MAX_VALUE))!==710||o(1/0)!==1/0;n({target:"Math",stat:!0,forced:c},{acosh:function(h){var p=+h;return p<1?NaN:p>9490626562425156e-8?s(p)+l:e(p-1+i(p-1)*i(p+1))}})},15656:function(u,g,t){var n=t(14304),e=Math.asinh,o=Math.log,s=Math.sqrt;function i(c){var v=+c;return!isFinite(v)||v===0?v:v<0?-i(-v):o(v+s(v*v+1))}var l=!(e&&1/e(0)>0);n({target:"Math",stat:!0,forced:l},{asinh:i})},22091:function(u,g,t){var n=t(14304),e=Math.atanh,o=Math.log,s=!(e&&1/e(-0)<0);n({target:"Math",stat:!0,forced:s},{atanh:function(l){var c=+l;return c===0?c:o((1+c)/(1-c))/2}})},2886:function(u,g,t){var n=t(14304),e=t(93976),o=Math.abs,s=Math.pow;n({target:"Math",stat:!0},{cbrt:function(l){var c=+l;return e(c)*s(o(c),.3333333333333333)}})},25895:function(u,g,t){var n=t(14304),e=Math.floor,o=Math.log,s=Math.LOG2E;n({target:"Math",stat:!0},{clz32:function(l){var c=l>>>0;return c?31-e(o(c+.5)*s):32}})},24228:function(u,g,t){var n=t(14304),e=t(98940),o=Math.cosh,s=Math.abs,i=Math.E,l=!o||o(710)===1/0;n({target:"Math",stat:!0,forced:l},{cosh:function(v){var h=e(s(v)-1)+1;return(h+1/(h*i*i))*(i/2)}})},79488:function(u,g,t){var n=t(14304),e=t(98940);n({target:"Math",stat:!0,forced:e!==Math.expm1},{expm1:e})},75987:function(u,g,t){var n=t(14304),e=t(93279);n({target:"Math",stat:!0},{fround:e})},81555:function(u,g,t){var n=t(14304),e=Math.hypot,o=Math.abs,s=Math.sqrt,i=!!e&&e(1/0,NaN)!==1/0;n({target:"Math",stat:!0,arity:2,forced:i},{hypot:function(c,v){for(var h=0,p=0,y=arguments.length,x=0,S,O;p<y;)S=o(arguments[p++]),x<S?(O=x/S,h=h*O*O+1,x=S):S>0?(O=S/x,h+=O*O):h+=S;return x===1/0?1/0:x*s(h)}})},87854:function(u,g,t){var n=t(14304),e=t(72069),o=Math.imul,s=e(function(){return o(4294967295,5)!==-5||o.length!==2});n({target:"Math",stat:!0,forced:s},{imul:function(l,c){var v=65535,h=+l,p=+c,y=v&h,x=v&p;return 0|y*x+((v&h>>>16)*x+y*(v&p>>>16)<<16>>>0)}})},35074:function(u,g,t){var n=t(14304),e=t(41942);n({target:"Math",stat:!0},{log10:e})},50946:function(u,g,t){var n=t(14304),e=t(49366);n({target:"Math",stat:!0},{log1p:e})},29417:function(u,g,t){var n=t(14304),e=Math.log,o=Math.LN2;n({target:"Math",stat:!0},{log2:function(i){return e(i)/o}})},80628:function(u,g,t){var n=t(14304),e=t(93976);n({target:"Math",stat:!0},{sign:e})},74375:function(u,g,t){var n=t(14304),e=t(72069),o=t(98940),s=Math.abs,i=Math.exp,l=Math.E,c=e(function(){return Math.sinh(-2e-17)!==-2e-17});n({target:"Math",stat:!0,forced:c},{sinh:function(h){var p=+h;return s(p)<1?(o(p)-o(-p))/2:(i(p-1)-i(-p-1))*(l/2)}})},29708:function(u,g,t){var n=t(14304),e=t(98940),o=Math.exp;n({target:"Math",stat:!0},{tanh:function(i){var l=+i,c=e(l),v=e(-l);return c===1/0?1:v===1/0?-1:(c-v)/(o(l)+o(-l))}})},93449:function(u,g,t){var n=t(78401);n(Math,"Math",!0)},9111:function(u,g,t){var n=t(14304),e=t(22459);n({target:"Math",stat:!0},{trunc:e})},83514:function(u,g,t){var n=t(14304),e=t(70457),o=t(92986),s=t(66009),i=t(75081),l=t(11286),c=t(13278),v=t(94879),h=t(32345),p=t(95307),y=t(491),x=t(89935),S=t(72069),O=t(83258).f,E=t(71349).f,A=t(7831).f,M=t(34338),P=t(85900).trim,C="Number",F=s[C],R=i[C],N=F.prototype,D=s.TypeError,j=l("".slice),U=l("".charCodeAt),B=function(J){var rt=x(J,"number");return typeof rt=="bigint"?rt:H(rt)},H=function(J){var rt=x(J,"number"),k,ot,_,mt,ct,xt,It,Ct;if(y(rt))throw new D("Cannot convert a Symbol value to a number");if(typeof rt=="string"&&rt.length>2){if(rt=P(rt),k=U(rt,0),k===43||k===45){if(ot=U(rt,2),ot===88||ot===120)return NaN}else if(k===48){switch(U(rt,1)){case 66:case 98:_=2,mt=49;break;case 79:case 111:_=8,mt=55;break;default:return+rt}for(ct=j(rt,2),xt=ct.length,It=0;It<xt;It++)if(Ct=U(ct,It),Ct<48||Ct>mt)return NaN;return parseInt(ct,_)}}return+rt},z=c(C,!F(" 0o1")||!F("0b1")||F("+0x1")),w=function(J){return p(N,J)&&S(function(){M(J)})},G=function(rt){var k=arguments.length<1?0:F(B(rt));return w(this)?h(Object(k),this,G):k};G.prototype=N,z&&!e&&(N.constructor=G),n({global:!0,constructor:!0,wrap:!0,forced:z},{Number:G});var V=function(J,rt){for(var k=o?O(rt):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),ot=0,_;k.length>ot;ot++)v(rt,_=k[ot])&&!v(J,_)&&A(J,_,E(rt,_))};e&&R&&V(i[C],R),(z||e)&&V(i[C],F)},15096:function(u,g,t){var n=t(14304);n({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},59590:function(u,g,t){var n=t(14304),e=t(98074);n({target:"Number",stat:!0},{isFinite:e})},99663:function(u,g,t){var n=t(14304),e=t(613);n({target:"Number",stat:!0},{isInteger:e})},89988:function(u,g,t){var n=t(14304);n({target:"Number",stat:!0},{isNaN:function(o){return o!==o}})},54427:function(u,g,t){var n=t(14304),e=t(613),o=Math.abs;n({target:"Number",stat:!0},{isSafeInteger:function(i){return e(i)&&o(i)<=9007199254740991}})},67895:function(u,g,t){var n=t(14304);n({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},57909:function(u,g,t){var n=t(14304);n({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},83938:function(u,g,t){var n=t(14304),e=t(25838);n({target:"Number",stat:!0,forced:Number.parseFloat!==e},{parseFloat:e})},55461:function(u,g,t){var n=t(14304),e=t(23009);n({target:"Number",stat:!0,forced:Number.parseInt!==e},{parseInt:e})},97339:function(u,g,t){var n=t(14304),e=t(11286),o=t(12105),s=t(34338),i=t(79719),l=t(41942),c=t(72069),v=RangeError,h=String,p=isFinite,y=Math.abs,x=Math.floor,S=Math.pow,O=Math.round,E=e(1 .toExponential),A=e(i),M=e("".slice),P=E(-69e-12,4)==="-6.9000e-11"&&E(1.255,2)==="1.25e+0"&&E(12345,3)==="1.235e+4"&&E(25,0)==="3e+1",C=function(){return c(function(){E(1,1/0)})&&c(function(){E(1,-1/0)})},F=function(){return!c(function(){E(1/0,1/0),E(NaN,1/0)})},R=!P||!C()||!F();n({target:"Number",proto:!0,forced:R},{toExponential:function(D){var j=s(this);if(D===void 0)return E(j);var U=o(D);if(!p(j))return String(j);if(U<0||U>20)throw new v("Incorrect fraction digits");if(P)return E(j,U);var B="",H="",z=0,w="",G="";if(j<0&&(B="-",j=-j),j===0)z=0,H=A("0",U+1);else{var V=l(j);z=x(V);var J=0,rt=S(10,z-U);J=O(j/rt),2*j>=(2*J+1)*rt&&(J+=1),J>=S(10,U+1)&&(J/=10,z+=1),H=h(J)}return U!==0&&(H=M(H,0,1)+"."+M(H,1)),z===0?(w="+",G="0"):(w=z>0?"+":"-",G=h(y(z))),H+="e"+w+G,B+H}})},3670:function(u,g,t){var n=t(14304),e=t(11286),o=t(12105),s=t(34338),i=t(79719),l=t(72069),c=RangeError,v=String,h=Math.floor,p=e(i),y=e("".slice),x=e(1 .toFixed),S=function(C,F,R){return F===0?R:F%2===1?S(C,F-1,R*C):S(C*C,F/2,R)},O=function(C){for(var F=0,R=C;R>=4096;)F+=12,R/=4096;for(;R>=2;)F+=1,R/=2;return F},E=function(C,F,R){for(var N=-1,D=R;++N<6;)D+=F*C[N],C[N]=D%1e7,D=h(D/1e7)},A=function(C,F){for(var R=6,N=0;--R>=0;)N+=C[R],C[R]=h(N/F),N=N%F*1e7},M=function(C){for(var F=6,R="";--F>=0;)if(R!==""||F===0||C[F]!==0){var N=v(C[F]);R=R===""?N:R+p("0",7-N.length)+N}return R},P=l(function(){return x(8e-5,3)!=="0.000"||x(.9,0)!=="1"||x(1.255,2)!=="1.25"||x(0xde0b6b3a7640080,0)!=="1000000000000000128"})||!l(function(){x({})});n({target:"Number",proto:!0,forced:P},{toFixed:function(F){var R=s(this),N=o(F),D=[0,0,0,0,0,0],j="",U="0",B,H,z,w;if(N<0||N>20)throw new c("Incorrect fraction digits");if(R!==R)return"NaN";if(R<=-1e21||R>=1e21)return v(R);if(R<0&&(j="-",R=-R),R>1e-21)if(B=O(R*S(2,69,1))-69,H=B<0?R*S(2,-B,1):R/S(2,B,1),H*=4503599627370496,B=52-B,B>0){for(E(D,0,H),z=N;z>=7;)E(D,1e7,0),z-=7;for(E(D,S(10,z,1),0),z=B-1;z>=23;)A(D,8388608),z-=23;A(D,1<<z),E(D,1,1),A(D,2),U=M(D)}else E(D,0,H),E(D,1<<-B,0),U=M(D)+p("0",N);return N>0?(w=U.length,U=j+(w<=N?"0."+p("0",N-w)+U:y(U,0,w-N)+"."+y(U,w-N))):U=j+U,U}})},15224:function(u,g,t){var n=t(14304),e=t(11286),o=t(72069),s=t(34338),i=e(1 .toPrecision),l=o(function(){return i(1,void 0)!=="1"})||!o(function(){i({})});n({target:"Number",proto:!0,forced:l},{toPrecision:function(v){return v===void 0?i(s(this)):i(s(this),v)}})},45891:function(u,g,t){var n=t(14304),e=t(16667);n({target:"Object",stat:!0,arity:2,forced:Object.assign!==e},{assign:e})},99910:function(u,g,t){var n=t(14304),e=t(92986),o=t(5406);n({target:"Object",stat:!0,sham:!e},{create:o})},92445:function(u,g,t){var n=t(14304),e=t(92986),o=t(57629),s=t(85156),i=t(49671),l=t(7831);e&&n({target:"Object",proto:!0,forced:o},{__defineGetter__:function(v,h){l.f(i(this),v,{get:s(h),enumerable:!0,configurable:!0})}})},21875:function(u,g,t){var n=t(14304),e=t(92986),o=t(61963).f;n({target:"Object",stat:!0,forced:Object.defineProperties!==o,sham:!e},{defineProperties:o})},4383:function(u,g,t){var n=t(14304),e=t(92986),o=t(7831).f;n({target:"Object",stat:!0,forced:Object.defineProperty!==o,sham:!e},{defineProperty:o})},11361:function(u,g,t){var n=t(14304),e=t(92986),o=t(57629),s=t(85156),i=t(49671),l=t(7831);e&&n({target:"Object",proto:!0,forced:o},{__defineSetter__:function(v,h){l.f(i(this),v,{set:s(h),enumerable:!0,configurable:!0})}})},13728:function(u,g,t){var n=t(14304),e=t(8511).entries;n({target:"Object",stat:!0},{entries:function(s){return e(s)}})},14885:function(u,g,t){var n=t(14304),e=t(27534),o=t(72069),s=t(37540),i=t(31853).onFreeze,l=Object.freeze,c=o(function(){l(1)});n({target:"Object",stat:!0,forced:c,sham:!e},{freeze:function(h){return l&&s(h)?l(i(h)):h}})},30343:function(u,g,t){var n=t(14304),e=t(55902),o=t(84082);n({target:"Object",stat:!0},{fromEntries:function(i){var l={};return e(i,function(c,v){o(l,c,v)},{AS_ENTRIES:!0}),l}})},22045:function(u,g,t){var n=t(14304),e=t(72069),o=t(36859),s=t(71349).f,i=t(92986),l=!i||e(function(){s(1)});n({target:"Object",stat:!0,forced:l,sham:!i},{getOwnPropertyDescriptor:function(v,h){return s(o(v),h)}})},75e3:function(u,g,t){var n=t(14304),e=t(92986),o=t(16885),s=t(36859),i=t(71349),l=t(84082);n({target:"Object",stat:!0,sham:!e},{getOwnPropertyDescriptors:function(v){for(var h=s(v),p=i.f,y=o(h),x={},S=0,O,E;y.length>S;)E=p(h,O=y[S++]),E!==void 0&&l(x,O,E);return x}})},64658:function(u,g,t){var n=t(14304),e=t(72069),o=t(92880).f,s=e(function(){return!Object.getOwnPropertyNames(1)});n({target:"Object",stat:!0,forced:s},{getOwnPropertyNames:o})},45223:function(u,g,t){var n=t(14304),e=t(39729),o=t(72069),s=t(24943),i=t(49671),l=!e||o(function(){s.f(1)});n({target:"Object",stat:!0,forced:l},{getOwnPropertySymbols:function(v){var h=s.f;return h?h(i(v)):[]}})},16017:function(u,g,t){var n=t(14304),e=t(72069),o=t(49671),s=t(26313),i=t(87501),l=e(function(){s(1)});n({target:"Object",stat:!0,forced:l,sham:!i},{getPrototypeOf:function(v){return s(o(v))}})},84681:function(u,g,t){var n=t(14304),e=t(38941),o=t(11286),s=t(85156),i=t(2068),l=t(50035),c=t(55902),v=t(72069),h=Object.groupBy,p=e("Object","create"),y=o([].push),x=!h||v(function(){return h("ab",function(S){return S}).a.length!==1});n({target:"Object",stat:!0,forced:x},{groupBy:function(O,E){i(O),s(E);var A=p(null),M=0;return c(O,function(P){var C=l(E(P,M++));C in A?y(A[C],P):A[C]=[P]}),A}})},73421:function(u,g,t){var n=t(14304),e=t(94879);n({target:"Object",stat:!0},{hasOwn:e})},31046:function(u,g,t){var n=t(14304),e=t(28174);n({target:"Object",stat:!0,forced:Object.isExtensible!==e},{isExtensible:e})},94645:function(u,g,t){var n=t(14304),e=t(72069),o=t(37540),s=t(14274),i=t(72058),l=Object.isFrozen,c=i||e(function(){l(1)});n({target:"Object",stat:!0,forced:c},{isFrozen:function(h){return!o(h)||i&&s(h)==="ArrayBuffer"?!0:l?l(h):!1}})},62935:function(u,g,t){var n=t(14304),e=t(72069),o=t(37540),s=t(14274),i=t(72058),l=Object.isSealed,c=i||e(function(){l(1)});n({target:"Object",stat:!0,forced:c},{isSealed:function(h){return!o(h)||i&&s(h)==="ArrayBuffer"?!0:l?l(h):!1}})},93446:function(u,g,t){var n=t(14304),e=t(13944);n({target:"Object",stat:!0},{is:e})},62518:function(u,g,t){var n=t(14304),e=t(49671),o=t(18350),s=t(72069),i=s(function(){o(1)});n({target:"Object",stat:!0,forced:i},{keys:function(c){return o(e(c))}})},45130:function(u,g,t){var n=t(14304),e=t(92986),o=t(57629),s=t(49671),i=t(50035),l=t(26313),c=t(71349).f;e&&n({target:"Object",proto:!0,forced:o},{__lookupGetter__:function(h){var p=s(this),y=i(h),x;do if(x=c(p,y))return x.get;while(p=l(p))}})},51542:function(u,g,t){var n=t(14304),e=t(92986),o=t(57629),s=t(49671),i=t(50035),l=t(26313),c=t(71349).f;e&&n({target:"Object",proto:!0,forced:o},{__lookupSetter__:function(h){var p=s(this),y=i(h),x;do if(x=c(p,y))return x.set;while(p=l(p))}})},43781:function(u,g,t){var n=t(14304),e=t(37540),o=t(31853).onFreeze,s=t(27534),i=t(72069),l=Object.preventExtensions,c=i(function(){l(1)});n({target:"Object",stat:!0,forced:c,sham:!s},{preventExtensions:function(h){return l&&e(h)?l(o(h)):h}})},25738:function(u,g,t){var n=t(92986),e=t(85500),o=t(37540),s=t(52427),i=t(49671),l=t(2068),c=Object.getPrototypeOf,v=Object.setPrototypeOf,h=Object.prototype,p="__proto__";if(n&&c&&v&&!(p in h))try{e(h,p,{configurable:!0,get:function(){return c(i(this))},set:function(x){var S=l(this);s(x)&&o(S)&&v(S,x)}})}catch(y){}},93247:function(u,g,t){var n=t(14304),e=t(37540),o=t(31853).onFreeze,s=t(27534),i=t(72069),l=Object.seal,c=i(function(){l(1)});n({target:"Object",stat:!0,forced:c,sham:!s},{seal:function(h){return l&&e(h)?l(o(h)):h}})},41533:function(u,g,t){var n=t(14304),e=t(15861);n({target:"Object",stat:!0},{setPrototypeOf:e})},60225:function(u,g,t){var n=t(67878),e=t(16142),o=t(60105);n||e(Object.prototype,"toString",o,{unsafe:!0})},69920:function(u,g,t){var n=t(14304),e=t(8511).values;n({target:"Object",stat:!0},{values:function(s){return e(s)}})},89205:function(u,g,t){var n=t(14304),e=t(25838);n({global:!0,forced:parseFloat!==e},{parseFloat:e})},78546:function(u,g,t){var n=t(14304),e=t(23009);n({global:!0,forced:parseInt!==e},{parseInt:e})},16893:function(u,g,t){var n=t(14304),e=t(96499),o=t(85156),s=t(24649),i=t(67805),l=t(55902),c=t(26035);n({target:"Promise",stat:!0,forced:c},{allSettled:function(h){var p=this,y=s.f(p),x=y.resolve,S=y.reject,O=i(function(){var E=o(p.resolve),A=[],M=0,P=1;l(h,function(C){var F=M++,R=!1;P++,e(E,p,C).then(function(N){R||(R=!0,A[F]={status:"fulfilled",value:N},--P||x(A))},function(N){R||(R=!0,A[F]={status:"rejected",reason:N},--P||x(A))})}),--P||x(A)});return O.error&&S(O.value),y.promise}})},11733:function(u,g,t){var n=t(14304),e=t(96499),o=t(85156),s=t(24649),i=t(67805),l=t(55902),c=t(26035);n({target:"Promise",stat:!0,forced:c},{all:function(h){var p=this,y=s.f(p),x=y.resolve,S=y.reject,O=i(function(){var E=o(p.resolve),A=[],M=0,P=1;l(h,function(C){var F=M++,R=!1;P++,e(E,p,C).then(function(N){R||(R=!0,A[F]=N,--P||x(A))},S)}),--P||x(A)});return O.error&&S(O.value),y.promise}})},3676:function(u,g,t){var n=t(14304),e=t(96499),o=t(85156),s=t(38941),i=t(24649),l=t(67805),c=t(55902),v=t(26035),h="No one promise resolved";n({target:"Promise",stat:!0,forced:v},{any:function(y){var x=this,S=s("AggregateError"),O=i.f(x),E=O.resolve,A=O.reject,M=l(function(){var P=o(x.resolve),C=[],F=0,R=1,N=!1;c(y,function(D){var j=F++,U=!1;R++,e(P,x,D).then(function(B){U||N||(N=!0,E(B))},function(B){U||N||(U=!0,C[j]=B,--R||A(new S(C,h)))})}),--R||A(new S(C,h))});return M.error&&A(M.value),O.promise}})},14013:function(u,g,t){var n=t(14304),e=t(70457),o=t(37130).CONSTRUCTOR,s=t(98844),i=t(38941),l=t(23583),c=t(16142),v=s&&s.prototype;if(n({target:"Promise",proto:!0,forced:o,real:!0},{catch:function(p){return this.then(void 0,p)}}),!e&&l(s)){var h=i("Promise").prototype.catch;v.catch!==h&&c(v,"catch",h,{unsafe:!0})}},20238:function(u,g,t){var n=t(14304),e=t(70457),o=t(42954),s=t(66009),i=t(96499),l=t(16142),c=t(15861),v=t(78401),h=t(36167),p=t(85156),y=t(23583),x=t(37540),S=t(12833),O=t(16887),E=t(23115).set,A=t(9709),M=t(99095),P=t(67805),C=t(76895),F=t(82367),R=t(98844),N=t(37130),D=t(24649),j="Promise",U=N.CONSTRUCTOR,B=N.REJECTION_EVENT,H=N.SUBCLASSING,z=F.getterFor(j),w=F.set,G=R&&R.prototype,V=R,J=G,rt=s.TypeError,k=s.document,ot=s.process,_=D.f,mt=_,ct=!!(k&&k.createEvent&&s.dispatchEvent),xt="unhandledrejection",It="rejectionhandled",Ct=0,Yt=1,Wt=2,Bt=1,vt=2,St,bt,Lt,Ft,jt=function(at){var At;return x(at)&&y(At=at.then)?At:!1},tr=function(at,At){var Pt=At.value,Ot=At.state===Yt,Et=Ot?at.ok:at.fail,ar=at.resolve,lr=at.reject,q=at.domain,it,lt,X;try{Et?(Ot||(At.rejection===vt&&Kt(At),At.rejection=Bt),Et===!0?it=Pt:(q&&q.enter(),it=Et(Pt),q&&(q.exit(),X=!0)),it===at.promise?lr(new rt("Promise-chain cycle")):(lt=jt(it))?i(lt,it,ar,lr):ar(it)):lr(Pt)}catch(nt){q&&!X&&q.exit(),lr(nt)}},rr=function(at,At){at.notified||(at.notified=!0,A(function(){for(var Pt=at.reactions,Ot;Ot=Pt.get();)tr(Ot,at);at.notified=!1,At&&!at.rejection&&wt(at)}))},Jt=function(at,At,Pt){var Ot,Et;ct?(Ot=k.createEvent("Event"),Ot.promise=At,Ot.reason=Pt,Ot.initEvent(at,!1,!0),s.dispatchEvent(Ot)):Ot={promise:At,reason:Pt},!B&&(Et=s["on"+at])?Et(Ot):at===xt&&M("Unhandled promise rejection",Pt)},wt=function(at){i(E,s,function(){var At=at.facade,Pt=at.value,Ot=_t(at),Et;if(Ot&&(Et=P(function(){o?ot.emit("unhandledRejection",Pt,At):Jt(xt,At,Pt)}),at.rejection=o||_t(at)?vt:Bt,Et.error))throw Et.value})},_t=function(at){return at.rejection!==Bt&&!at.parent},Kt=function(at){i(E,s,function(){var At=at.facade;o?ot.emit("rejectionHandled",At):Jt(It,At,at.value)})},Gt=function(at,At,Pt){return function(Ot){at(At,Ot,Pt)}},ft=function(at,At,Pt){at.done||(at.done=!0,Pt&&(at=Pt),at.value=At,at.state=Wt,rr(at,!0))},dt=function(at,At,Pt){if(!at.done){at.done=!0,Pt&&(at=Pt);try{if(at.facade===At)throw new rt("Promise can't be resolved itself");var Ot=jt(At);Ot?A(function(){var Et={done:!1};try{i(Ot,At,Gt(dt,Et,at),Gt(ft,Et,at))}catch(ar){ft(Et,ar,at)}}):(at.value=At,at.state=Yt,rr(at,!1))}catch(Et){ft({done:!1},Et,at)}}};if(U&&(V=function(At){S(this,J),p(At),i(St,this);var Pt=z(this);try{At(Gt(dt,Pt),Gt(ft,Pt))}catch(Ot){ft(Pt,Ot)}},J=V.prototype,St=function(At){w(this,{type:j,done:!1,notified:!1,parent:!1,reactions:new C,rejection:!1,state:Ct,value:void 0})},St.prototype=l(J,"then",function(At,Pt){var Ot=z(this),Et=_(O(this,V));return Ot.parent=!0,Et.ok=y(At)?At:!0,Et.fail=y(Pt)&&Pt,Et.domain=o?ot.domain:void 0,Ot.state===Ct?Ot.reactions.add(Et):A(function(){tr(Et,Ot)}),Et.promise}),bt=function(){var at=new St,At=z(at);this.promise=at,this.resolve=Gt(dt,At),this.reject=Gt(ft,At)},D.f=_=function(at){return at===V||at===Lt?new bt(at):mt(at)},!e&&y(R)&&G!==Object.prototype)){Ft=G.then,H||l(G,"then",function(At,Pt){var Ot=this;return new V(function(Et,ar){i(Ft,Ot,Et,ar)}).then(At,Pt)},{unsafe:!0});try{delete G.constructor}catch(at){}c&&c(G,J)}n({global:!0,constructor:!0,wrap:!0,forced:U},{Promise:V}),v(V,j,!1,!0),h(j)},58361:function(u,g,t){var n=t(14304),e=t(70457),o=t(98844),s=t(72069),i=t(38941),l=t(23583),c=t(16887),v=t(87408),h=t(16142),p=o&&o.prototype,y=!!o&&s(function(){p.finally.call({then:function(){}},function(){})});if(n({target:"Promise",proto:!0,real:!0,forced:y},{finally:function(S){var O=c(this,i("Promise")),E=l(S);return this.then(E?function(A){return v(O,S()).then(function(){return A})}:S,E?function(A){return v(O,S()).then(function(){throw A})}:S)}}),!e&&l(o)){var x=i("Promise").prototype.finally;p.finally!==x&&h(p,"finally",x,{unsafe:!0})}},63616:function(u,g,t){t(20238),t(11733),t(14013),t(3037),t(36027),t(97282)},3037:function(u,g,t){var n=t(14304),e=t(96499),o=t(85156),s=t(24649),i=t(67805),l=t(55902),c=t(26035);n({target:"Promise",stat:!0,forced:c},{race:function(h){var p=this,y=s.f(p),x=y.reject,S=i(function(){var O=o(p.resolve);l(h,function(E){e(O,p,E).then(y.resolve,x)})});return S.error&&x(S.value),y.promise}})},36027:function(u,g,t){var n=t(14304),e=t(24649),o=t(37130).CONSTRUCTOR;n({target:"Promise",stat:!0,forced:o},{reject:function(i){var l=e.f(this),c=l.reject;return c(i),l.promise}})},97282:function(u,g,t){var n=t(14304),e=t(38941),o=t(70457),s=t(98844),i=t(37130).CONSTRUCTOR,l=t(87408),c=e("Promise"),v=o&&!i;n({target:"Promise",stat:!0,forced:o||i},{resolve:function(p){return l(v&&this===c?s:this,p)}})},23958:function(u,g,t){var n=t(14304),e=t(24649);n({target:"Promise",stat:!0},{withResolvers:function(){var s=e.f(this);return{promise:s.promise,resolve:s.resolve,reject:s.reject}}})},9798:function(u,g,t){var n=t(14304),e=t(66543),o=t(85156),s=t(25001),i=t(72069),l=!i(function(){Reflect.apply(function(){})});n({target:"Reflect",stat:!0,forced:l},{apply:function(v,h,p){return e(o(v),h,s(p))}})},2371:function(u,g,t){var n=t(14304),e=t(38941),o=t(66543),s=t(91384),i=t(80042),l=t(25001),c=t(37540),v=t(5406),h=t(72069),p=e("Reflect","construct"),y=Object.prototype,x=[].push,S=h(function(){function A(){}return!(p(function(){},[],A)instanceof A)}),O=!h(function(){p(function(){})}),E=S||O;n({target:"Reflect",stat:!0,forced:E,sham:E},{construct:function(M,P){i(M),l(P);var C=arguments.length<3?M:i(arguments[2]);if(O&&!S)return p(M,P,C);if(M===C){switch(P.length){case 0:return new M;case 1:return new M(P[0]);case 2:return new M(P[0],P[1]);case 3:return new M(P[0],P[1],P[2]);case 4:return new M(P[0],P[1],P[2],P[3])}var F=[null];return o(x,F,P),new(o(s,M,F))}var R=C.prototype,N=v(c(R)?R:y),D=o(M,N,P);return c(D)?D:N}})},76185:function(u,g,t){var n=t(14304),e=t(92986),o=t(25001),s=t(50035),i=t(7831),l=t(72069),c=l(function(){Reflect.defineProperty(i.f({},1,{value:1}),1,{value:2})});n({target:"Reflect",stat:!0,forced:c,sham:!e},{defineProperty:function(h,p,y){o(h);var x=s(p);o(y);try{return i.f(h,x,y),!0}catch(S){return!1}}})},76553:function(u,g,t){var n=t(14304),e=t(25001),o=t(71349).f;n({target:"Reflect",stat:!0},{deleteProperty:function(i,l){var c=o(e(i),l);return c&&!c.configurable?!1:delete i[l]}})},25227:function(u,g,t){var n=t(14304),e=t(92986),o=t(25001),s=t(71349);n({target:"Reflect",stat:!0,sham:!e},{getOwnPropertyDescriptor:function(l,c){return s.f(o(l),c)}})},91723:function(u,g,t){var n=t(14304),e=t(25001),o=t(26313),s=t(87501);n({target:"Reflect",stat:!0,sham:!s},{getPrototypeOf:function(l){return o(e(l))}})},93518:function(u,g,t){var n=t(14304),e=t(96499),o=t(37540),s=t(25001),i=t(69745),l=t(71349),c=t(26313);function v(h,p){var y=arguments.length<3?h:arguments[2],x,S;if(s(h)===y)return h[p];if(x=l.f(h,p),x)return i(x)?x.value:x.get===void 0?void 0:e(x.get,y);if(o(S=c(h)))return v(S,p,y)}n({target:"Reflect",stat:!0},{get:v})},57882:function(u,g,t){var n=t(14304);n({target:"Reflect",stat:!0},{has:function(o,s){return s in o}})},37796:function(u,g,t){var n=t(14304),e=t(25001),o=t(28174);n({target:"Reflect",stat:!0},{isExtensible:function(i){return e(i),o(i)}})},11563:function(u,g,t){var n=t(14304),e=t(16885);n({target:"Reflect",stat:!0},{ownKeys:e})},26159:function(u,g,t){var n=t(14304),e=t(38941),o=t(25001),s=t(27534);n({target:"Reflect",stat:!0,sham:!s},{preventExtensions:function(l){o(l);try{var c=e("Object","preventExtensions");return c&&c(l),!0}catch(v){return!1}}})},77487:function(u,g,t){var n=t(14304),e=t(25001),o=t(53408),s=t(15861);s&&n({target:"Reflect",stat:!0},{setPrototypeOf:function(l,c){e(l),o(c);try{return s(l,c),!0}catch(v){return!1}}})},20962:function(u,g,t){var n=t(14304),e=t(96499),o=t(25001),s=t(37540),i=t(69745),l=t(72069),c=t(7831),v=t(71349),h=t(26313),p=t(18526);function y(S,O,E){var A=arguments.length<4?S:arguments[3],M=v.f(o(S),O),P,C,F;if(!M){if(s(C=h(S)))return y(C,O,E,A);M=p(0)}if(i(M)){if(M.writable===!1||!s(A))return!1;if(P=v.f(A,O)){if(P.get||P.set||P.writable===!1)return!1;P.value=E,c.f(A,O,P)}else c.f(A,O,p(0,E))}else{if(F=M.set,F===void 0)return!1;e(F,A,E)}return!0}var x=l(function(){var S=function(){},O=c.f(new S,"a",{configurable:!0});return Reflect.set(S.prototype,"a",1,O)!==!1});n({target:"Reflect",stat:!0,forced:x},{set:y})},6130:function(u,g,t){var n=t(14304),e=t(66009),o=t(78401);n({global:!0},{Reflect:{}}),o(e.Reflect,"Reflect",!0)},1354:function(u,g,t){var n=t(92986),e=t(66009),o=t(11286),s=t(13278),i=t(32345),l=t(90809),c=t(5406),v=t(83258).f,h=t(95307),p=t(11566),y=t(17361),x=t(54932),S=t(39807),O=t(2594),E=t(16142),A=t(72069),M=t(94879),P=t(82367).enforce,C=t(36167),F=t(18565),R=t(76769),N=t(85220),D=F("match"),j=e.RegExp,U=j.prototype,B=e.SyntaxError,H=o(U.exec),z=o("".charAt),w=o("".replace),G=o("".indexOf),V=o("".slice),J=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,rt=/a/g,k=/a/g,ot=new j(rt)!==rt,_=S.MISSED_STICKY,mt=S.UNSUPPORTED_Y,ct=n&&(!ot||_||R||N||A(function(){return k[D]=!1,j(rt)!==rt||j(k)===k||String(j(rt,"i"))!=="/a/i"})),xt=function(Bt){for(var vt=Bt.length,St=0,bt="",Lt=!1,Ft;St<=vt;St++){if(Ft=z(Bt,St),Ft==="\\"){bt+=Ft+z(Bt,++St);continue}!Lt&&Ft==="."?bt+="[\\s\\S]":(Ft==="["?Lt=!0:Ft==="]"&&(Lt=!1),bt+=Ft)}return bt},It=function(Bt){for(var vt=Bt.length,St=0,bt="",Lt=[],Ft=c(null),jt=!1,tr=!1,rr=0,Jt="",wt;St<=vt;St++){if(wt=z(Bt,St),wt==="\\")wt+=z(Bt,++St);else if(wt==="]")jt=!1;else if(!jt)switch(!0){case wt==="[":jt=!0;break;case wt==="(":H(J,V(Bt,St+1))&&(St+=2,tr=!0),bt+=wt,rr++;continue;case(wt===">"&&tr):if(Jt===""||M(Ft,Jt))throw new B("Invalid capture group name");Ft[Jt]=!0,Lt[Lt.length]=[Jt,rr],tr=!1,Jt="";continue}tr?Jt+=wt:bt+=wt}return[bt,Lt]};if(s("RegExp",ct)){for(var Ct=function(vt,St){var bt=h(U,this),Lt=p(vt),Ft=St===void 0,jt=[],tr=vt,rr,Jt,wt,_t,Kt,Gt;if(!bt&&Lt&&Ft&&vt.constructor===Ct)return vt;if((Lt||h(U,vt))&&(vt=vt.source,Ft&&(St=x(tr))),vt=vt===void 0?"":y(vt),St=St===void 0?"":y(St),tr=vt,R&&"dotAll"in rt&&(Jt=!!St&&G(St,"s")>-1,Jt&&(St=w(St,/s/g,""))),rr=St,_&&"sticky"in rt&&(wt=!!St&&G(St,"y")>-1,wt&&mt&&(St=w(St,/y/g,""))),N&&(_t=It(vt),vt=_t[0],jt=_t[1]),Kt=i(j(vt,St),bt?this:U,Ct),(Jt||wt||jt.length)&&(Gt=P(Kt),Jt&&(Gt.dotAll=!0,Gt.raw=Ct(xt(vt),rr)),wt&&(Gt.sticky=!0),jt.length&&(Gt.groups=jt)),vt!==tr)try{l(Kt,"source",tr===""?"(?:)":tr)}catch(ft){}return Kt},Yt=v(j),Wt=0;Yt.length>Wt;)O(Ct,j,Yt[Wt++]);U.constructor=Ct,Ct.prototype=U,E(e,"RegExp",Ct,{constructor:!0})}C("RegExp")},47119:function(u,g,t){var n=t(92986),e=t(76769),o=t(14274),s=t(85500),i=t(82367).get,l=RegExp.prototype,c=TypeError;n&&e&&s(l,"dotAll",{configurable:!0,get:function(){if(this!==l){if(o(this)==="RegExp")return!!i(this).dotAll;throw new c("Incompatible receiver, RegExp required")}}})},31145:function(u,g,t){var n=t(14304),e=t(44381);n({target:"RegExp",proto:!0,forced:/./.exec!==e},{exec:e})},96773:function(u,g,t){var n=t(66009),e=t(92986),o=t(85500),s=t(29833),i=t(72069),l=n.RegExp,c=l.prototype,v=e&&i(function(){var h=!0;try{l(".","d")}catch(M){h=!1}var p={},y="",x=h?"dgimsy":"gimsy",S=function(M,P){Object.defineProperty(p,M,{get:function(){return y+=P,!0}})},O={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};h&&(O.hasIndices="d");for(var E in O)S(E,O[E]);var A=Object.getOwnPropertyDescriptor(c,"flags").get.call(p);return A!==x||y!==x});v&&o(c,"flags",{configurable:!0,get:s})},14371:function(u,g,t){var n=t(92986),e=t(39807).MISSED_STICKY,o=t(14274),s=t(85500),i=t(82367).get,l=RegExp.prototype,c=TypeError;n&&e&&s(l,"sticky",{configurable:!0,get:function(){if(this!==l){if(o(this)==="RegExp")return!!i(this).sticky;throw new c("Incompatible receiver, RegExp required")}}})},18180:function(u,g,t){t(31145);var n=t(14304),e=t(96499),o=t(23583),s=t(25001),i=t(17361),l=function(){var v=!1,h=/[ac]/;return h.exec=function(){return v=!0,/./.exec.apply(this,arguments)},h.test("abc")===!0&&v}(),c=/./.test;n({target:"RegExp",proto:!0,forced:!l},{test:function(v){var h=s(this),p=i(v),y=h.exec;if(!o(y))return e(c,h,p);var x=e(y,h,p);return x===null?!1:(s(x),!0)}})},83147:function(u,g,t){var n=t(86588).PROPER,e=t(16142),o=t(25001),s=t(17361),i=t(72069),l=t(54932),c="toString",v=RegExp.prototype,h=v[c],p=i(function(){return h.call({source:"a",flags:"b"})!=="/a/b"}),y=n&&h.name!==c;(p||y)&&e(v,c,function(){var S=o(this),O=s(S.source),E=s(l(S));return"/"+O+"/"+E},{unsafe:!0})},6583:function(u,g,t){var n=t(89378),e=t(34440);n("Set",function(o){return function(){return o(this,arguments.length?arguments[0]:void 0)}},e)},86548:function(u,g,t){var n=t(14304),e=t(41754),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("difference")},{difference:e})},15282:function(u,g,t){var n=t(14304),e=t(72069),o=t(92292),s=t(94118),i=!s("intersection")||e(function(){return String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))!=="3,2"});n({target:"Set",proto:!0,real:!0,forced:i},{intersection:o})},51275:function(u,g,t){var n=t(14304),e=t(47391),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("isDisjointFrom")},{isDisjointFrom:e})},91890:function(u,g,t){var n=t(14304),e=t(75492),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("isSubsetOf")},{isSubsetOf:e})},15089:function(u,g,t){var n=t(14304),e=t(1333),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("isSupersetOf")},{isSupersetOf:e})},75765:function(u,g,t){t(6583)},78134:function(u,g,t){var n=t(14304),e=t(64680),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("symmetricDifference")},{symmetricDifference:e})},56456:function(u,g,t){var n=t(14304),e=t(70402),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("union")},{union:e})},70641:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("anchor")},{anchor:function(i){return e(this,"a","name",i)}})},40735:function(u,g,t){var n=t(14304),e=t(11286),o=t(2068),s=t(12105),i=t(17361),l=t(72069),c=e("".charAt),v=l(function(){return"\u{20BB7}".at(-2)!=="\uD842"});n({target:"String",proto:!0,forced:v},{at:function(p){var y=i(o(this)),x=y.length,S=s(p),O=S>=0?S:x+S;return O<0||O>=x?void 0:c(y,O)}})},53892:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("big")},{big:function(){return e(this,"big","","")}})},95976:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("blink")},{blink:function(){return e(this,"blink","","")}})},399:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("bold")},{bold:function(){return e(this,"b","","")}})},8510:function(u,g,t){var n=t(14304),e=t(22149).codeAt;n({target:"String",proto:!0},{codePointAt:function(s){return e(this,s)}})},70159:function(u,g,t){var n=t(14304),e=t(77422),o=t(71349).f,s=t(45344),i=t(17361),l=t(92337),c=t(2068),v=t(8790),h=t(70457),p=e("".slice),y=Math.min,x=v("endsWith"),S=!h&&!x&&!!function(){var O=o(String.prototype,"endsWith");return O&&!O.writable}();n({target:"String",proto:!0,forced:!S&&!x},{endsWith:function(E){var A=i(c(this));l(E);var M=arguments.length>1?arguments[1]:void 0,P=A.length,C=M===void 0?P:y(s(M),P),F=i(E);return p(A,C-F.length,C)===F}})},72032:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("fixed")},{fixed:function(){return e(this,"tt","","")}})},49442:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("fontcolor")},{fontcolor:function(i){return e(this,"font","color",i)}})},16012:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("fontsize")},{fontsize:function(i){return e(this,"font","size",i)}})},93087:function(u,g,t){var n=t(14304),e=t(11286),o=t(4652),s=RangeError,i=String.fromCharCode,l=String.fromCodePoint,c=e([].join),v=!!l&&l.length!==1;n({target:"String",stat:!0,arity:1,forced:v},{fromCodePoint:function(p){for(var y=[],x=arguments.length,S=0,O;x>S;){if(O=+arguments[S++],o(O,1114111)!==O)throw new s(O+" is not a valid code point");y[S]=O<65536?i(O):i(((O-=65536)>>10)+55296,O%1024+56320)}return c(y,"")}})},26021:function(u,g,t){var n=t(14304),e=t(11286),o=t(92337),s=t(2068),i=t(17361),l=t(8790),c=e("".indexOf);n({target:"String",proto:!0,forced:!l("includes")},{includes:function(h){return!!~c(i(s(this)),i(o(h)),arguments.length>1?arguments[1]:void 0)}})},93029:function(u,g,t){var n=t(14304),e=t(11286),o=t(2068),s=t(17361),i=e("".charCodeAt);n({target:"String",proto:!0},{isWellFormed:function(){for(var c=s(o(this)),v=c.length,h=0;h<v;h++){var p=i(c,h);if((p&63488)===55296&&(p>=56320||++h>=v||(i(c,h)&64512)!==56320))return!1}return!0}})},9943:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("italics")},{italics:function(){return e(this,"i","","")}})},59158:function(u,g,t){var n=t(22149).charAt,e=t(17361),o=t(82367),s=t(10218),i=t(10659),l="String Iterator",c=o.set,v=o.getterFor(l);s(String,"String",function(h){c(this,{type:l,string:e(h),index:0})},function(){var p=v(this),y=p.string,x=p.index,S;return x>=y.length?i(void 0,!0):(S=n(y,x),p.index+=S.length,i(S,!1))})},33128:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("link")},{link:function(i){return e(this,"a","href",i)}})},18509:function(u,g,t){var n=t(14304),e=t(96499),o=t(77422),s=t(26820),i=t(10659),l=t(2068),c=t(45344),v=t(17361),h=t(25001),p=t(5683),y=t(14274),x=t(11566),S=t(54932),O=t(10512),E=t(16142),A=t(72069),M=t(18565),P=t(16887),C=t(24487),F=t(33064),R=t(82367),N=t(70457),D=M("matchAll"),j="RegExp String",U=j+" Iterator",B=R.set,H=R.getterFor(U),z=RegExp.prototype,w=TypeError,G=o("".indexOf),V=o("".matchAll),J=!!V&&!A(function(){V("a",/./)}),rt=s(function(_,mt,ct,xt){B(this,{type:U,regexp:_,string:mt,global:ct,unicode:xt,done:!1})},j,function(){var _=H(this);if(_.done)return i(void 0,!0);var mt=_.regexp,ct=_.string,xt=F(mt,ct);return xt===null?(_.done=!0,i(void 0,!0)):_.global?(v(xt[0])===""&&(mt.lastIndex=C(ct,c(mt.lastIndex),_.unicode)),i(xt,!1)):(_.done=!0,i(xt,!1))}),k=function(ot){var _=h(this),mt=v(ot),ct=P(_,RegExp),xt=v(S(_)),It,Ct,Yt;return It=new ct(ct===RegExp?_.source:_,xt),Ct=!!~G(xt,"g"),Yt=!!~G(xt,"u"),It.lastIndex=c(_.lastIndex),new rt(It,mt,Ct,Yt)};n({target:"String",proto:!0,forced:J},{matchAll:function(_){var mt=l(this),ct,xt,It,Ct;if(p(_)){if(J)return V(mt,_)}else{if(x(_)&&(ct=v(l(S(_))),!~G(ct,"g")))throw new w("`.matchAll` does not allow non-global regexes");if(J)return V(mt,_);if(It=O(_,D),It===void 0&&N&&y(_)==="RegExp"&&(It=k),It)return e(It,_,mt)}return xt=v(mt),Ct=new RegExp(_,"g"),N?e(k,Ct,xt):Ct[D](xt)}}),N||D in z||E(z,D,k)},15599:function(u,g,t){var n=t(96499),e=t(63194),o=t(25001),s=t(5683),i=t(45344),l=t(17361),c=t(2068),v=t(10512),h=t(24487),p=t(33064);e("match",function(y,x,S){return[function(E){var A=c(this),M=s(E)?void 0:v(E,y);return M?n(M,E,A):new RegExp(E)[y](l(A))},function(O){var E=o(this),A=l(O),M=S(x,E,A);if(M.done)return M.value;if(!E.global)return p(E,A);var P=E.unicode;E.lastIndex=0;for(var C=[],F=0,R;(R=p(E,A))!==null;){var N=l(R[0]);C[F]=N,N===""&&(E.lastIndex=h(A,i(E.lastIndex),P)),F++}return F===0?null:C}]})},21579:function(u,g,t){var n=t(14304),e=t(61607).end,o=t(36945);n({target:"String",proto:!0,forced:o},{padEnd:function(i){return e(this,i,arguments.length>1?arguments[1]:void 0)}})},8854:function(u,g,t){var n=t(14304),e=t(61607).start,o=t(36945);n({target:"String",proto:!0,forced:o},{padStart:function(i){return e(this,i,arguments.length>1?arguments[1]:void 0)}})},57676:function(u,g,t){var n=t(14304),e=t(11286),o=t(36859),s=t(49671),i=t(17361),l=t(82628),c=e([].push),v=e([].join);n({target:"String",stat:!0},{raw:function(p){var y=o(s(p).raw),x=l(y);if(!x)return"";for(var S=arguments.length,O=[],E=0;;){if(c(O,i(y[E++])),E===x)return v(O,"");E<S&&c(O,i(arguments[E]))}}})},14527:function(u,g,t){var n=t(14304),e=t(79719);n({target:"String",proto:!0},{repeat:e})},52684:function(u,g,t){var n=t(14304),e=t(96499),o=t(11286),s=t(2068),i=t(23583),l=t(5683),c=t(11566),v=t(17361),h=t(10512),p=t(54932),y=t(38368),x=t(18565),S=t(70457),O=x("replace"),E=TypeError,A=o("".indexOf),M=o("".replace),P=o("".slice),C=Math.max;n({target:"String",proto:!0},{replaceAll:function(R,N){var D=s(this),j,U,B,H,z,w,G,V,J,rt=0,k=0,ot="";if(!l(R)){if(j=c(R),j&&(U=v(s(p(R))),!~A(U,"g")))throw new E("`.replaceAll` does not allow non-global regexes");if(B=h(R,O),B)return e(B,R,D,N);if(S&&j)return M(v(D),R,N)}for(H=v(D),z=v(R),w=i(N),w||(N=v(N)),G=z.length,V=C(1,G),rt=A(H,z);rt!==-1;)J=w?v(N(z,rt,H)):y(z,H,rt,[],void 0,N),ot+=P(H,k,rt)+J,k=rt+G,rt=rt+V>H.length?-1:A(H,z,rt+V);return k<H.length&&(ot+=P(H,k)),ot}})},96834:function(u,g,t){var n=t(66543),e=t(96499),o=t(11286),s=t(63194),i=t(72069),l=t(25001),c=t(23583),v=t(5683),h=t(12105),p=t(45344),y=t(17361),x=t(2068),S=t(24487),O=t(10512),E=t(38368),A=t(33064),M=t(18565),P=M("replace"),C=Math.max,F=Math.min,R=o([].concat),N=o([].push),D=o("".indexOf),j=o("".slice),U=function(w){return w===void 0?w:String(w)},B=function(){return"a".replace(/./,"$0")==="$0"}(),H=function(){return/./[P]?/./[P]("a","$0")==="":!1}(),z=!i(function(){var w=/./;return w.exec=function(){var G=[];return G.groups={a:"7"},G},"".replace(w,"$<a>")!=="7"});s("replace",function(w,G,V){var J=H?"$":"$0";return[function(k,ot){var _=x(this),mt=v(k)?void 0:O(k,P);return mt?e(mt,k,_,ot):e(G,y(_),k,ot)},function(rt,k){var ot=l(this),_=y(rt);if(typeof k=="string"&&D(k,J)===-1&&D(k,"$<")===-1){var mt=V(G,ot,_,k);if(mt.done)return mt.value}var ct=c(k);ct||(k=y(k));var xt=ot.global,It;xt&&(It=ot.unicode,ot.lastIndex=0);for(var Ct=[],Yt;Yt=A(ot,_),!(Yt===null||(N(Ct,Yt),!xt));){var Wt=y(Yt[0]);Wt===""&&(ot.lastIndex=S(_,p(ot.lastIndex),It))}for(var Bt="",vt=0,St=0;St<Ct.length;St++){Yt=Ct[St];for(var bt=y(Yt[0]),Lt=C(F(h(Yt.index),_.length),0),Ft=[],jt,tr=1;tr<Yt.length;tr++)N(Ft,U(Yt[tr]));var rr=Yt.groups;if(ct){var Jt=R([bt],Ft,Lt,_);rr!==void 0&&N(Jt,rr),jt=y(n(k,void 0,Jt))}else jt=E(bt,_,Lt,Ft,rr,k);Lt>=vt&&(Bt+=j(_,vt,Lt)+jt,vt=Lt+bt.length)}return Bt+j(_,vt)}]},!z||!B||H)},74980:function(u,g,t){var n=t(96499),e=t(63194),o=t(25001),s=t(5683),i=t(2068),l=t(13944),c=t(17361),v=t(10512),h=t(33064);e("search",function(p,y,x){return[function(O){var E=i(this),A=s(O)?void 0:v(O,p);return A?n(A,O,E):new RegExp(O)[p](c(E))},function(S){var O=o(this),E=c(S),A=x(y,O,E);if(A.done)return A.value;var M=O.lastIndex;l(M,0)||(O.lastIndex=0);var P=h(O,E);return l(O.lastIndex,M)||(O.lastIndex=M),P===null?-1:P.index}]})},95625:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("small")},{small:function(){return e(this,"small","","")}})},390:function(u,g,t){var n=t(96499),e=t(11286),o=t(63194),s=t(25001),i=t(5683),l=t(2068),c=t(16887),v=t(24487),h=t(45344),p=t(17361),y=t(10512),x=t(33064),S=t(39807),O=t(72069),E=S.UNSUPPORTED_Y,A=4294967295,M=Math.min,P=e([].push),C=e("".slice),F=!O(function(){var N=/(?:)/,D=N.exec;N.exec=function(){return D.apply(this,arguments)};var j="ab".split(N);return j.length!==2||j[0]!=="a"||j[1]!=="b"}),R="abbc".split(/(b)*/)[1]==="c"||"test".split(/(?:)/,-1).length!==4||"ab".split(/(?:ab)*/).length!==2||".".split(/(.?)(.?)/).length!==4||".".split(/()()/).length>1||"".split(/.?/).length;o("split",function(N,D,j){var U="0".split(void 0,0).length?function(B,H){return B===void 0&&H===0?[]:n(D,this,B,H)}:D;return[function(H,z){var w=l(this),G=i(H)?void 0:y(H,N);return G?n(G,H,w,z):n(U,p(w),H,z)},function(B,H){var z=s(this),w=p(B);if(!R){var G=j(U,z,w,H,U!==D);if(G.done)return G.value}var V=c(z,RegExp),J=z.unicode,rt=(z.ignoreCase?"i":"")+(z.multiline?"m":"")+(z.unicode?"u":"")+(E?"g":"y"),k=new V(E?"^(?:"+z.source+")":z,rt),ot=H===void 0?A:H>>>0;if(ot===0)return[];if(w.length===0)return x(k,w)===null?[w]:[];for(var _=0,mt=0,ct=[];mt<w.length;){k.lastIndex=E?0:mt;var xt=x(k,E?C(w,mt):w),It;if(xt===null||(It=M(h(k.lastIndex+(E?mt:0)),w.length))===_)mt=v(w,mt,J);else{if(P(ct,C(w,_,mt)),ct.length===ot)return ct;for(var Ct=1;Ct<=xt.length-1;Ct++)if(P(ct,xt[Ct]),ct.length===ot)return ct;mt=_=It}}return P(ct,C(w,_)),ct}]},R||!F,E)},42794:function(u,g,t){var n=t(14304),e=t(77422),o=t(71349).f,s=t(45344),i=t(17361),l=t(92337),c=t(2068),v=t(8790),h=t(70457),p=e("".slice),y=Math.min,x=v("startsWith"),S=!h&&!x&&!!function(){var O=o(String.prototype,"startsWith");return O&&!O.writable}();n({target:"String",proto:!0,forced:!S&&!x},{startsWith:function(E){var A=i(c(this));l(E);var M=s(y(arguments.length>1?arguments[1]:void 0,A.length)),P=i(E);return p(A,M,M+P.length)===P}})},90614:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("strike")},{strike:function(){return e(this,"strike","","")}})},60120:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("sub")},{sub:function(){return e(this,"sub","","")}})},21293:function(u,g,t){var n=t(14304),e=t(11286),o=t(2068),s=t(12105),i=t(17361),l=e("".slice),c=Math.max,v=Math.min,h=!"".substr||"ab".substr(-1)!=="b";n({target:"String",proto:!0,forced:h},{substr:function(y,x){var S=i(o(this)),O=S.length,E=s(y),A,M;return E===1/0&&(E=0),E<0&&(E=c(O+E,0)),A=x===void 0?O:s(x),A<=0||A===1/0?"":(M=v(E+A,O),E>=M?"":l(S,E,M))}})},75826:function(u,g,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("sup")},{sup:function(){return e(this,"sup","","")}})},18184:function(u,g,t){var n=t(14304),e=t(96499),o=t(11286),s=t(2068),i=t(17361),l=t(72069),c=Array,v=o("".charAt),h=o("".charCodeAt),p=o([].join),y="".toWellFormed,x="\uFFFD",S=y&&l(function(){return e(y,1)!=="1"});n({target:"String",proto:!0,forced:S},{toWellFormed:function(){var E=i(s(this));if(S)return e(y,E);for(var A=E.length,M=c(A),P=0;P<A;P++){var C=h(E,P);(C&63488)!==55296?M[P]=v(E,P):C>=56320||P+1>=A||(h(E,P+1)&64512)!==56320?M[P]=x:(M[P]=v(E,P),M[++P]=v(E,P))}return p(M,"")}})},19680:function(u,g,t){t(23283);var n=t(14304),e=t(75176);n({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==e},{trimEnd:e})},12272:function(u,g,t){var n=t(14304),e=t(83481);n({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==e},{trimLeft:e})},23283:function(u,g,t){var n=t(14304),e=t(75176);n({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==e},{trimRight:e})},4193:function(u,g,t){t(12272);var n=t(14304),e=t(83481);n({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==e},{trimStart:e})},75012:function(u,g,t){var n=t(14304),e=t(85900).trim,o=t(33328);n({target:"String",proto:!0,forced:o("trim")},{trim:function(){return e(this)}})},43606:function(u,g,t){var n=t(83749);n("asyncIterator")},51767:function(u,g,t){var n=t(14304),e=t(66009),o=t(96499),s=t(11286),i=t(70457),l=t(92986),c=t(39729),v=t(72069),h=t(94879),p=t(95307),y=t(25001),x=t(36859),S=t(50035),O=t(17361),E=t(18526),A=t(5406),M=t(18350),P=t(83258),C=t(92880),F=t(24943),R=t(71349),N=t(7831),D=t(61963),j=t(79591),U=t(16142),B=t(85500),H=t(96731),z=t(44869),w=t(19423),G=t(36374),V=t(18565),J=t(56529),rt=t(83749),k=t(60796),ot=t(78401),_=t(82367),mt=t(66655).forEach,ct=z("hidden"),xt="Symbol",It="prototype",Ct=_.set,Yt=_.getterFor(xt),Wt=Object[It],Bt=e.Symbol,vt=Bt&&Bt[It],St=e.RangeError,bt=e.TypeError,Lt=e.QObject,Ft=R.f,jt=N.f,tr=C.f,rr=j.f,Jt=s([].push),wt=H("symbols"),_t=H("op-symbols"),Kt=H("wks"),Gt=!Lt||!Lt[It]||!Lt[It].findChild,ft=function(it,lt,X){var nt=Ft(Wt,lt);nt&&delete Wt[lt],jt(it,lt,X),nt&&it!==Wt&&jt(Wt,lt,nt)},dt=l&&v(function(){return A(jt({},"a",{get:function(){return jt(this,"a",{value:7}).a}})).a!==7})?ft:jt,at=function(it,lt){var X=wt[it]=A(vt);return Ct(X,{type:xt,tag:it,description:lt}),l||(X.description=lt),X},At=function(lt,X,nt){lt===Wt&&At(_t,X,nt),y(lt);var Q=S(X);return y(nt),h(wt,Q)?(nt.enumerable?(h(lt,ct)&<[ct][Q]&&(lt[ct][Q]=!1),nt=A(nt,{enumerable:E(0,!1)})):(h(lt,ct)||jt(lt,ct,E(1,A(null))),lt[ct][Q]=!0),dt(lt,Q,nt)):jt(lt,Q,nt)},Pt=function(lt,X){y(lt);var nt=x(X),Q=M(nt).concat(q(nt));return mt(Q,function(yt){(!l||o(Et,nt,yt))&&At(lt,yt,nt[yt])}),lt},Ot=function(lt,X){return X===void 0?A(lt):Pt(A(lt),X)},Et=function(lt){var X=S(lt),nt=o(rr,this,X);return this===Wt&&h(wt,X)&&!h(_t,X)?!1:nt||!h(this,X)||!h(wt,X)||h(this,ct)&&this[ct][X]?nt:!0},ar=function(lt,X){var nt=x(lt),Q=S(X);if(!(nt===Wt&&h(wt,Q)&&!h(_t,Q))){var yt=Ft(nt,Q);return yt&&h(wt,Q)&&!(h(nt,ct)&&nt[ct][Q])&&(yt.enumerable=!0),yt}},lr=function(lt){var X=tr(x(lt)),nt=[];return mt(X,function(Q){!h(wt,Q)&&!h(w,Q)&&Jt(nt,Q)}),nt},q=function(it){var lt=it===Wt,X=tr(lt?_t:x(it)),nt=[];return mt(X,function(Q){h(wt,Q)&&(!lt||h(Wt,Q))&&Jt(nt,wt[Q])}),nt};c||(Bt=function(){if(p(vt,this))throw new bt("Symbol is not a constructor");var lt=!arguments.length||arguments[0]===void 0?void 0:O(arguments[0]),X=G(lt),nt=function(Q){var yt=this===void 0?e:this;yt===Wt&&o(nt,_t,Q),h(yt,ct)&&h(yt[ct],X)&&(yt[ct][X]=!1);var Nt=E(1,Q);try{dt(yt,X,Nt)}catch($t){if(!($t instanceof St))throw $t;ft(yt,X,Nt)}};return l&&Gt&&dt(Wt,X,{configurable:!0,set:nt}),at(X,lt)},vt=Bt[It],U(vt,"toString",function(){return Yt(this).tag}),U(Bt,"withoutSetter",function(it){return at(G(it),it)}),j.f=Et,N.f=At,D.f=Pt,R.f=ar,P.f=C.f=lr,F.f=q,J.f=function(it){return at(V(it),it)},l&&(B(vt,"description",{configurable:!0,get:function(){return Yt(this).description}}),i||U(Wt,"propertyIsEnumerable",Et,{unsafe:!0}))),n({global:!0,constructor:!0,wrap:!0,forced:!c,sham:!c},{Symbol:Bt}),mt(M(Kt),function(it){rt(it)}),n({target:xt,stat:!0,forced:!c},{useSetter:function(){Gt=!0},useSimple:function(){Gt=!1}}),n({target:"Object",stat:!0,forced:!c,sham:!l},{create:Ot,defineProperty:At,defineProperties:Pt,getOwnPropertyDescriptor:ar}),n({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:lr}),k(),ot(Bt,xt),w[ct]=!0},43657:function(u,g,t){var n=t(14304),e=t(92986),o=t(66009),s=t(11286),i=t(94879),l=t(23583),c=t(95307),v=t(17361),h=t(85500),p=t(93706),y=o.Symbol,x=y&&y.prototype;if(e&&l(y)&&(!("description"in x)||y().description!==void 0)){var S={},O=function(){var N=arguments.length<1||arguments[0]===void 0?void 0:v(arguments[0]),D=c(x,this)?new y(N):N===void 0?y():y(N);return N===""&&(S[D]=!0),D};p(O,y),O.prototype=x,x.constructor=O;var E=String(y("description detection"))==="Symbol(description detection)",A=s(x.valueOf),M=s(x.toString),P=/^Symbol\((.*)\)[^)]+$/,C=s("".replace),F=s("".slice);h(x,"description",{configurable:!0,get:function(){var N=A(this);if(i(S,N))return"";var D=M(N),j=E?F(D,7,-1):C(D,P,"$1");return j===""?void 0:j}}),n({global:!0,constructor:!0,forced:!0},{Symbol:O})}},20872:function(u,g,t){var n=t(14304),e=t(38941),o=t(94879),s=t(17361),i=t(96731),l=t(61190),c=i("string-to-symbol-registry"),v=i("symbol-to-string-registry");n({target:"Symbol",stat:!0,forced:!l},{for:function(h){var p=s(h);if(o(c,p))return c[p];var y=e("Symbol")(p);return c[p]=y,v[y]=p,y}})},15855:function(u,g,t){var n=t(83749);n("hasInstance")},42026:function(u,g,t){var n=t(83749);n("isConcatSpreadable")},33257:function(u,g,t){var n=t(83749);n("iterator")},40949:function(u,g,t){t(51767),t(20872),t(94762),t(71332),t(45223)},94762:function(u,g,t){var n=t(14304),e=t(94879),o=t(491),s=t(82453),i=t(96731),l=t(61190),c=i("symbol-to-string-registry");n({target:"Symbol",stat:!0,forced:!l},{keyFor:function(h){if(!o(h))throw new TypeError(s(h)+" is not a symbol");if(e(c,h))return c[h]}})},88344:function(u,g,t){var n=t(83749);n("matchAll")},59414:function(u,g,t){var n=t(83749);n("match")},92579:function(u,g,t){var n=t(83749);n("replace")},94655:function(u,g,t){var n=t(83749);n("search")},8565:function(u,g,t){var n=t(83749);n("species")},60843:function(u,g,t){var n=t(83749);n("split")},65842:function(u,g,t){var n=t(83749),e=t(60796);n("toPrimitive"),e()},51595:function(u,g,t){var n=t(38941),e=t(83749),o=t(78401);e("toStringTag"),o(n("Symbol"),"Symbol")},54908:function(u,g,t){var n=t(83749);n("unscopables")},71998:function(u,g,t){var n=t(88037),e=t(82628),o=t(12105),s=n.aTypedArray,i=n.exportTypedArrayMethod;i("at",function(c){var v=s(this),h=e(v),p=o(c),y=p>=0?p:h+p;return y<0||y>=h?void 0:v[y]})},6116:function(u,g,t){var n=t(11286),e=t(88037),o=t(81499),s=n(o),i=e.aTypedArray,l=e.exportTypedArrayMethod;l("copyWithin",function(v,h){return s(i(this),v,h,arguments.length>2?arguments[2]:void 0)})},33032:function(u,g,t){var n=t(88037),e=t(66655).every,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("every",function(l){return e(o(this),l,arguments.length>1?arguments[1]:void 0)})},80962:function(u,g,t){var n=t(88037),e=t(43011),o=t(11344),s=t(9205),i=t(96499),l=t(11286),c=t(72069),v=n.aTypedArray,h=n.exportTypedArrayMethod,p=l("".slice),y=c(function(){var x=0;return new Int8Array(2).fill({valueOf:function(){return x++}}),x!==1});h("fill",function(S){var O=arguments.length;v(this);var E=p(s(this),0,3)==="Big"?o(S):+S;return i(e,this,E,O>1?arguments[1]:void 0,O>2?arguments[2]:void 0)},y)},49381:function(u,g,t){var n=t(88037),e=t(66655).filter,o=t(3795),s=n.aTypedArray,i=n.exportTypedArrayMethod;i("filter",function(c){var v=e(s(this),c,arguments.length>1?arguments[1]:void 0);return o(this,v)})},65961:function(u,g,t){var n=t(88037),e=t(66655).findIndex,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("findIndex",function(l){return e(o(this),l,arguments.length>1?arguments[1]:void 0)})},16028:function(u,g,t){var n=t(88037),e=t(73849).findLastIndex,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("findLastIndex",function(l){return e(o(this),l,arguments.length>1?arguments[1]:void 0)})},94153:function(u,g,t){var n=t(88037),e=t(73849).findLast,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("findLast",function(l){return e(o(this),l,arguments.length>1?arguments[1]:void 0)})},38344:function(u,g,t){var n=t(88037),e=t(66655).find,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("find",function(l){return e(o(this),l,arguments.length>1?arguments[1]:void 0)})},25560:function(u,g,t){var n=t(80357);n("Float32",function(e){return function(s,i,l){return e(this,s,i,l)}})},22571:function(u,g,t){var n=t(80357);n("Float64",function(e){return function(s,i,l){return e(this,s,i,l)}})},20656:function(u,g,t){var n=t(88037),e=t(66655).forEach,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("forEach",function(l){e(o(this),l,arguments.length>1?arguments[1]:void 0)})},17063:function(u,g,t){var n=t(46868),e=t(88037).exportTypedArrayStaticMethod,o=t(66169);e("from",o,n)},21774:function(u,g,t){var n=t(88037),e=t(94319).includes,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("includes",function(l){return e(o(this),l,arguments.length>1?arguments[1]:void 0)})},51761:function(u,g,t){var n=t(88037),e=t(94319).indexOf,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("indexOf",function(l){return e(o(this),l,arguments.length>1?arguments[1]:void 0)})},36849:function(u,g,t){var n=t(80357);n("Int16",function(e){return function(s,i,l){return e(this,s,i,l)}})},49191:function(u,g,t){var n=t(80357);n("Int32",function(e){return function(s,i,l){return e(this,s,i,l)}})},40704:function(u,g,t){var n=t(80357);n("Int8",function(e){return function(s,i,l){return e(this,s,i,l)}})},12317:function(u,g,t){var n=t(66009),e=t(72069),o=t(11286),s=t(88037),i=t(35054),l=t(18565),c=l("iterator"),v=n.Uint8Array,h=o(i.values),p=o(i.keys),y=o(i.entries),x=s.aTypedArray,S=s.exportTypedArrayMethod,O=v&&v.prototype,E=!e(function(){O[c].call([1])}),A=!!O&&O.values&&O[c]===O.values&&O.values.name==="values",M=function(){return h(x(this))};S("entries",function(){return y(x(this))},E),S("keys",function(){return p(x(this))},E),S("values",M,E||!A,{name:"values"}),S(c,M,E||!A,{name:"values"})},19711:function(u,g,t){var n=t(88037),e=t(11286),o=n.aTypedArray,s=n.exportTypedArrayMethod,i=e([].join);s("join",function(c){return i(o(this),c)})},41034:function(u,g,t){var n=t(88037),e=t(66543),o=t(58465),s=n.aTypedArray,i=n.exportTypedArrayMethod;i("lastIndexOf",function(c){var v=arguments.length;return e(o,s(this),v>1?[c,arguments[1]]:[c])})},13313:function(u,g,t){var n=t(88037),e=t(66655).map,o=t(21822),s=n.aTypedArray,i=n.exportTypedArrayMethod;i("map",function(c){return e(s(this),c,arguments.length>1?arguments[1]:void 0,function(v,h){return new(o(v))(h)})})},44698:function(u,g,t){var n=t(88037),e=t(46868),o=n.aTypedArrayConstructor,s=n.exportTypedArrayStaticMethod;s("of",function(){for(var l=0,c=arguments.length,v=new(o(this))(c);c>l;)v[l]=arguments[l++];return v},e)},66178:function(u,g,t){var n=t(88037),e=t(97264).right,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("reduceRight",function(l){var c=arguments.length;return e(o(this),l,c,c>1?arguments[1]:void 0)})},7369:function(u,g,t){var n=t(88037),e=t(97264).left,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("reduce",function(l){var c=arguments.length;return e(o(this),l,c,c>1?arguments[1]:void 0)})},67961:function(u,g,t){var n=t(88037),e=n.aTypedArray,o=n.exportTypedArrayMethod,s=Math.floor;o("reverse",function(){for(var l=this,c=e(l).length,v=s(c/2),h=0,p;h<v;)p=l[h],l[h++]=l[--c],l[c]=p;return l})},8695:function(u,g,t){var n=t(66009),e=t(96499),o=t(88037),s=t(82628),i=t(58143),l=t(49671),c=t(72069),v=n.RangeError,h=n.Int8Array,p=h&&h.prototype,y=p&&p.set,x=o.aTypedArray,S=o.exportTypedArrayMethod,O=!c(function(){var A=new Uint8ClampedArray(2);return e(y,A,{length:1,0:3},1),A[1]!==3}),E=O&&o.NATIVE_ARRAY_BUFFER_VIEWS&&c(function(){var A=new h(2);return A.set(1),A.set("2",1),A[0]!==0||A[1]!==2});S("set",function(M){x(this);var P=i(arguments.length>1?arguments[1]:void 0,1),C=l(M);if(O)return e(y,this,C,P);var F=this.length,R=s(C),N=0;if(R+P>F)throw new v("Wrong length");for(;N<R;)this[P+N]=C[N++]},!O||E)},69997:function(u,g,t){var n=t(88037),e=t(21822),o=t(72069),s=t(22806),i=n.aTypedArray,l=n.exportTypedArrayMethod,c=o(function(){new Int8Array(1).slice()});l("slice",function(h,p){for(var y=s(i(this),h,p),x=e(this),S=0,O=y.length,E=new x(O);O>S;)E[S]=y[S++];return E},c)},9711:function(u,g,t){var n=t(88037),e=t(66655).some,o=n.aTypedArray,s=n.exportTypedArrayMethod;s("some",function(l){return e(o(this),l,arguments.length>1?arguments[1]:void 0)})},3923:function(u,g,t){var n=t(66009),e=t(77422),o=t(72069),s=t(85156),i=t(13270),l=t(88037),c=t(54040),v=t(87216),h=t(73126),p=t(68674),y=l.aTypedArray,x=l.exportTypedArrayMethod,S=n.Uint16Array,O=S&&e(S.prototype.sort),E=!!O&&!(o(function(){O(new S(2),null)})&&o(function(){O(new S(2),{})})),A=!!O&&!o(function(){if(h)return h<74;if(c)return c<67;if(v)return!0;if(p)return p<602;var P=new S(516),C=Array(516),F,R;for(F=0;F<516;F++)R=F%4,P[F]=515-F,C[F]=F-2*R+3;for(O(P,function(N,D){return(N/4|0)-(D/4|0)}),F=0;F<516;F++)if(P[F]!==C[F])return!0}),M=function(P){return function(C,F){return P!==void 0?+P(C,F)||0:F!==F?-1:C!==C?1:C===0&&F===0?1/C>0&&1/F<0?1:-1:C>F}};x("sort",function(C){return C!==void 0&&s(C),A?O(this,C):i(y(this),M(C))},!A||E)},59728:function(u,g,t){var n=t(88037),e=t(45344),o=t(4652),s=t(21822),i=n.aTypedArray,l=n.exportTypedArrayMethod;l("subarray",function(v,h){var p=i(this),y=p.length,x=o(v,y),S=s(p);return new S(p.buffer,p.byteOffset+x*p.BYTES_PER_ELEMENT,e((h===void 0?y:o(h,y))-x))})},85227:function(u,g,t){var n=t(66009),e=t(66543),o=t(88037),s=t(72069),i=t(22806),l=n.Int8Array,c=o.aTypedArray,v=o.exportTypedArrayMethod,h=[].toLocaleString,p=!!l&&s(function(){h.call(new l(1))}),y=s(function(){return[1,2].toLocaleString()!==new l([1,2]).toLocaleString()})||!s(function(){l.prototype.toLocaleString.call([1,2])});v("toLocaleString",function(){return e(h,p?i(c(this)):c(this),i(arguments))},y)},56933:function(u,g,t){var n=t(61638),e=t(88037),o=e.aTypedArray,s=e.exportTypedArrayMethod,i=e.getTypedArrayConstructor;s("toReversed",function(){return n(o(this),i(this))})},91490:function(u,g,t){var n=t(88037),e=t(11286),o=t(85156),s=t(5220),i=n.aTypedArray,l=n.getTypedArrayConstructor,c=n.exportTypedArrayMethod,v=e(n.TypedArrayPrototype.sort);c("toSorted",function(p){p!==void 0&&o(p);var y=i(this),x=s(l(y),y);return v(x,p)})},61766:function(u,g,t){var n=t(88037).exportTypedArrayMethod,e=t(72069),o=t(66009),s=t(11286),i=o.Uint8Array,l=i&&i.prototype||{},c=[].toString,v=s([].join);e(function(){c.call({})})&&(c=function(){return v(this)});var h=l.toString!==c;n("toString",c,h)},44884:function(u,g,t){var n=t(80357);n("Uint16",function(e){return function(s,i,l){return e(this,s,i,l)}})},48658:function(u,g,t){var n=t(80357);n("Uint32",function(e){return function(s,i,l){return e(this,s,i,l)}})},81083:function(u,g,t){var n=t(80357);n("Uint8",function(e){return function(s,i,l){return e(this,s,i,l)}})},27428:function(u,g,t){var n=t(80357);n("Uint8",function(e){return function(s,i,l){return e(this,s,i,l)}},!0)},85143:function(u,g,t){var n=t(72302),e=t(88037),o=t(77129),s=t(12105),i=t(11344),l=e.aTypedArray,c=e.getTypedArrayConstructor,v=e.exportTypedArrayMethod,h=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(p){return p===8}}();v("with",function(p,y){var x=l(this),S=s(p),O=o(x)?i(y):+y;return n(x,c(x),S,O)},!h)},47005:function(u,g,t){var n=t(14304),e=t(11286),o=t(17361),s=String.fromCharCode,i=e("".charAt),l=e(/./.exec),c=e("".slice),v=/^[\da-f]{2}$/i,h=/^[\da-f]{4}$/i;n({global:!0},{unescape:function(y){for(var x=o(y),S="",O=x.length,E=0,A,M;E<O;){if(A=i(x,E++),A==="%"){if(i(x,E)==="u"){if(M=c(x,E+1,E+5),l(h,M)){S+=s(parseInt(M,16)),E+=5;continue}}else if(M=c(x,E,E+2),l(v,M)){S+=s(parseInt(M,16)),E+=2;continue}}S+=A}return S}})},21084:function(u,g,t){var n=t(27534),e=t(66009),o=t(11286),s=t(2725),i=t(31853),l=t(89378),c=t(94667),v=t(37540),h=t(82367).enforce,p=t(72069),y=t(42960),x=Object,S=Array.isArray,O=x.isExtensible,E=x.isFrozen,A=x.isSealed,M=x.freeze,P=x.seal,C=!e.ActiveXObject&&"ActiveXObject"in e,F,R=function(w){return function(){return w(this,arguments.length?arguments[0]:void 0)}},N=l("WeakMap",R,c),D=N.prototype,j=o(D.set),U=function(){return n&&p(function(){var w=M([]);return j(new N,w,1),!E(w)})};if(y)if(C){F=c.getConstructor(R,"WeakMap",!0),i.enable();var B=o(D.delete),H=o(D.has),z=o(D.get);s(D,{delete:function(w){if(v(w)&&!O(w)){var G=h(this);return G.frozen||(G.frozen=new F),B(this,w)||G.frozen.delete(w)}return B(this,w)},has:function(G){if(v(G)&&!O(G)){var V=h(this);return V.frozen||(V.frozen=new F),H(this,G)||V.frozen.has(G)}return H(this,G)},get:function(G){if(v(G)&&!O(G)){var V=h(this);return V.frozen||(V.frozen=new F),H(this,G)?z(this,G):V.frozen.get(G)}return z(this,G)},set:function(G,V){if(v(G)&&!O(G)){var J=h(this);J.frozen||(J.frozen=new F),H(this,G)?j(this,G,V):J.frozen.set(G,V)}else j(this,G,V);return this}})}else U()&&s(D,{set:function(G,V){var J;return S(G)&&(E(G)?J=M:A(G)&&(J=P)),j(this,G,V),J&&J(G),this}})},10042:function(u,g,t){t(21084)},58990:function(u,g,t){var n=t(89378),e=t(94667);n("WeakSet",function(o){return function(){return o(this,arguments.length?arguments[0]:void 0)}},e)},37888:function(u,g,t){t(58990)},19431:function(u,g,t){var n=t(14304),e=t(66009),o=t(38941),s=t(11286),i=t(96499),l=t(72069),c=t(17361),v=t(95486),h=t(6210).c2i,p=/[^\d+/a-z]/i,y=/[\t\n\f\r ]+/g,x=/[=]{1,2}$/,S=o("atob"),O=String.fromCharCode,E=s("".charAt),A=s("".replace),M=s(p.exec),P=!!S&&!l(function(){return S("aGk=")!=="hi"}),C=P&&l(function(){return S(" ")!==""}),F=P&&!l(function(){S("a")}),R=P&&!l(function(){S()}),N=P&&S.length!==1,D=!P||C||F||R||N;n({global:!0,bind:!0,enumerable:!0,forced:D},{atob:function(U){if(v(arguments.length,1),P&&!C&&!F)return i(S,e,U);var B=A(c(U),y,""),H="",z=0,w=0,G,V,J;if(B.length%4===0&&(B=A(B,x,"")),G=B.length,G%4===1||M(p,B))throw new(o("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;z<G;)V=E(B,z++),J=w%4?J*64+h[V]:h[V],w++%4&&(H+=O(255&J>>(-2*w&6)));return H}})},60869:function(u,g,t){var n=t(14304),e=t(66009),o=t(38941),s=t(11286),i=t(96499),l=t(72069),c=t(17361),v=t(95486),h=t(6210).i2c,p=o("btoa"),y=s("".charAt),x=s("".charCodeAt),S=!!p&&!l(function(){return p("hi")!=="aGk="}),O=S&&!l(function(){p()}),E=S&&l(function(){return p(null)!=="bnVsbA=="}),A=S&&p.length!==1;n({global:!0,bind:!0,enumerable:!0,forced:!S||O||E||A},{btoa:function(P){if(v(arguments.length,1),S)return i(p,e,c(P));for(var C=c(P),F="",R=0,N=h,D,j;y(C,R)||(N="=",R%1);){if(j=x(C,R+=.75),j>255)throw new(o("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");D=D<<8|j,F+=y(N,63&D>>8-R%1*8)}return F}})},66722:function(u,g,t){var n=t(14304),e=t(66009),o=t(23115).clear;n({global:!0,bind:!0,enumerable:!0,forced:e.clearImmediate!==o},{clearImmediate:o})},50338:function(u,g,t){var n=t(66009),e=t(93014),o=t(39882),s=t(13349),i=t(90809),l=function(v){if(v&&v.forEach!==s)try{i(v,"forEach",s)}catch(h){v.forEach=s}};for(var c in e)e[c]&&l(n[c]&&n[c].prototype);l(o)},53059:function(u,g,t){var n=t(66009),e=t(93014),o=t(39882),s=t(35054),i=t(90809),l=t(78401),c=t(18565),v=c("iterator"),h=s.values,p=function(x,S){if(x){if(x[v]!==h)try{i(x,v,h)}catch(E){x[v]=h}if(l(x,S,!0),e[S]){for(var O in s)if(x[O]!==s[O])try{i(x,O,s[O])}catch(E){x[O]=s[O]}}}};for(var y in e)p(n[y]&&n[y].prototype,y);p(o,"DOMTokenList")},5805:function(u,g,t){var n=t(14304),e=t(18096),o=t(38941),s=t(72069),i=t(5406),l=t(18526),c=t(7831).f,v=t(16142),h=t(85500),p=t(94879),y=t(12833),x=t(25001),S=t(58434),O=t(15453),E=t(74408),A=t(40851),M=t(82367),P=t(92986),C=t(70457),F="DOMException",R="DATA_CLONE_ERR",N=o("Error"),D=o(F)||function(){try{var vt=o("MessageChannel")||e("worker_threads").MessageChannel;new vt().port1.postMessage(new WeakMap)}catch(St){if(St.name===R&&St.code===25)return St.constructor}}(),j=D&&D.prototype,U=N.prototype,B=M.set,H=M.getterFor(F),z="stack"in new N(F),w=function(vt){return p(E,vt)&&E[vt].m?E[vt].c:0},G=function(){y(this,V);var St=arguments.length,bt=O(St<1?void 0:arguments[0]),Lt=O(St<2?void 0:arguments[1],"Error"),Ft=w(Lt);if(B(this,{type:F,name:Lt,message:bt,code:Ft}),P||(this.name=Lt,this.message=bt,this.code=Ft),z){var jt=new N(bt);jt.name=F,c(this,"stack",l(1,A(jt.stack,1)))}},V=G.prototype=i(U),J=function(vt){return{enumerable:!0,configurable:!0,get:vt}},rt=function(vt){return J(function(){return H(this)[vt]})};P&&(h(V,"code",rt("code")),h(V,"message",rt("message")),h(V,"name",rt("name"))),c(V,"constructor",l(1,G));var k=s(function(){return!(new D instanceof N)}),ot=k||s(function(){return U.toString!==S||String(new D(1,2))!=="2: 1"}),_=k||s(function(){return new D(1,"DataCloneError").code!==25}),mt=k||D[R]!==25||j[R]!==25,ct=C?ot||_||mt:k;n({global:!0,constructor:!0,forced:ct},{DOMException:ct?G:D});var xt=o(F),It=xt.prototype;ot&&(C||D===xt)&&v(It,"toString",S),_&&P&&D===xt&&h(It,"code",J(function(){return w(x(this).name)}));for(var Ct in E)if(p(E,Ct)){var Yt=E[Ct],Wt=Yt.s,Bt=l(6,Yt.c);p(xt,Wt)||c(xt,Wt,Bt),p(It,Wt)||c(It,Wt,Bt)}},50685:function(u,g,t){var n=t(14304),e=t(66009),o=t(38941),s=t(18526),i=t(7831).f,l=t(94879),c=t(12833),v=t(32345),h=t(15453),p=t(74408),y=t(40851),x=t(92986),S=t(70457),O="DOMException",E=o("Error"),A=o(O),M=function(){c(this,P);var G=arguments.length,V=h(G<1?void 0:arguments[0]),J=h(G<2?void 0:arguments[1],"Error"),rt=new A(V,J),k=new E(V);return k.name=O,i(rt,"stack",s(1,y(k.stack,1))),v(rt,this,M),rt},P=M.prototype=A.prototype,C="stack"in new E(O),F="stack"in new A(1,2),R=A&&x&&Object.getOwnPropertyDescriptor(e,O),N=!!R&&!(R.writable&&R.configurable),D=C&&!N&&!F;n({global:!0,constructor:!0,forced:S||D},{DOMException:D?M:A});var j=o(O),U=j.prototype;if(U.constructor!==j){S||i(U,"constructor",s(1,j));for(var B in p)if(l(p,B)){var H=p[B],z=H.s;l(j,z)||i(j,z,s(6,H.c))}}},70649:function(u,g,t){var n=t(38941),e=t(78401),o="DOMException";e(n(o),o)},39842:function(u,g,t){t(66722),t(8235)},82872:function(u,g,t){var n=t(14304),e=t(66009),o=t(9709),s=t(85156),i=t(95486),l=t(72069),c=t(92986),v=l(function(){return c&&Object.getOwnPropertyDescriptor(e,"queueMicrotask").value.length!==1});n({global:!0,enumerable:!0,dontCallGetSet:!0,forced:v},{queueMicrotask:function(p){i(arguments.length,1),o(s(p))}})},91401:function(u,g,t){var n=t(14304),e=t(66009),o=t(85500),s=t(92986),i=TypeError,l=Object.defineProperty,c=e.self!==e;try{if(s){var v=Object.getOwnPropertyDescriptor(e,"self");(c||!v||!v.get||!v.enumerable)&&o(e,"self",{get:function(){return e},set:function(p){if(this!==e)throw new i("Illegal invocation");l(e,"self",{value:p,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else n({global:!0,simple:!0,forced:c},{self:e})}catch(h){}},8235:function(u,g,t){var n=t(14304),e=t(66009),o=t(23115).set,s=t(9934),i=e.setImmediate?s(o,!1):o;n({global:!0,bind:!0,enumerable:!0,forced:e.setImmediate!==i},{setImmediate:i})},63981:function(u,g,t){var n=t(14304),e=t(66009),o=t(9934),s=o(e.setInterval,!0);n({global:!0,bind:!0,forced:e.setInterval!==s},{setInterval:s})},23913:function(u,g,t){var n=t(14304),e=t(66009),o=t(9934),s=o(e.setTimeout,!0);n({global:!0,bind:!0,forced:e.setTimeout!==s},{setTimeout:s})},92904:function(u,g,t){var n=t(70457),e=t(14304),o=t(66009),s=t(38941),i=t(11286),l=t(72069),c=t(36374),v=t(23583),h=t(11051),p=t(5683),y=t(37540),x=t(491),S=t(55902),O=t(25001),E=t(9205),A=t(94879),M=t(84082),P=t(90809),C=t(82628),F=t(95486),R=t(54932),N=t(1774),D=t(172),j=t(35051),U=t(63741),B=t(16929),H=t(99050),z=o.Object,w=o.Array,G=o.Date,V=o.Error,J=o.TypeError,rt=o.PerformanceMark,k=s("DOMException"),ot=N.Map,_=N.has,mt=N.get,ct=N.set,xt=D.Set,It=D.add,Ct=D.has,Yt=s("Object","keys"),Wt=i([].push),Bt=i((!0).valueOf),vt=i(1 .valueOf),St=i("".valueOf),bt=i(G.prototype.getTime),Lt=c("structuredClone"),Ft="DataCloneError",jt="Transferring",tr=function(q){return!l(function(){var it=new o.Set([7]),lt=q(it),X=q(z(7));return lt===it||!lt.has(7)||!y(X)||+X!=7})&&q},rr=function(q,it){return!l(function(){var lt=new it,X=q({a:lt,b:lt});return!(X&&X.a===X.b&&X.a instanceof it&&X.a.stack===lt.stack)})},Jt=function(q){return!l(function(){var it=q(new o.AggregateError([1],Lt,{cause:3}));return it.name!=="AggregateError"||it.errors[0]!==1||it.message!==Lt||it.cause!==3})},wt=o.structuredClone,_t=n||!rr(wt,V)||!rr(wt,k)||!Jt(wt),Kt=!wt&&tr(function(q){return new rt(Lt,{detail:q}).detail}),Gt=tr(wt)||Kt,ft=function(q){throw new k("Uncloneable type: "+q,Ft)},dt=function(q,it){throw new k((it||"Cloning")+" of "+q+" cannot be properly polyfilled in this engine",Ft)},at=function(q,it){return Gt||dt(it),Gt(q)},At=function(){var q;try{q=new o.DataTransfer}catch(it){try{q=new o.ClipboardEvent("").clipboardData}catch(lt){}}return q&&q.items&&q.files?q:null},Pt=function(q,it,lt){if(_(it,q))return mt(it,q);var X=lt||E(q),nt,Q,yt,Nt,$t,Xt;if(X==="SharedArrayBuffer")Gt?nt=Gt(q):nt=q;else{var Qt=o.DataView;!Qt&&!v(q.slice)&&dt("ArrayBuffer");try{if(v(q.slice)&&!q.resizable)nt=q.slice(0);else for(Q=q.byteLength,yt=("maxByteLength"in q)?{maxByteLength:q.maxByteLength}:void 0,nt=new ArrayBuffer(Q,yt),Nt=new Qt(q),$t=new Qt(nt),Xt=0;Xt<Q;Xt++)$t.setUint8(Xt,Nt.getUint8(Xt))}catch(Zt){throw new k("ArrayBuffer is detached",Ft)}}return ct(it,q,nt),nt},Ot=function(q,it,lt,X,nt){var Q=o[it];return y(Q)||dt(it),new Q(Pt(q.buffer,nt),lt,X)},Et=function(q,it){if(x(q)&&ft("Symbol"),!y(q))return q;if(it){if(_(it,q))return mt(it,q)}else it=new ot;var lt=E(q),X,nt,Q,yt,Nt,$t,Xt,Qt;switch(lt){case"Array":Q=w(C(q));break;case"Object":Q={};break;case"Map":Q=new ot;break;case"Set":Q=new xt;break;case"RegExp":Q=new RegExp(q.source,R(q));break;case"Error":switch(nt=q.name,nt){case"AggregateError":Q=new(s(nt))([]);break;case"EvalError":case"RangeError":case"ReferenceError":case"SuppressedError":case"SyntaxError":case"TypeError":case"URIError":Q=new(s(nt));break;case"CompileError":case"LinkError":case"RuntimeError":Q=new(s("WebAssembly",nt));break;default:Q=new V}break;case"DOMException":Q=new k(q.message,q.name);break;case"ArrayBuffer":case"SharedArrayBuffer":Q=Pt(q,it,lt);break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float16Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":$t=lt==="DataView"?q.byteLength:q.length,Q=Ot(q,lt,q.byteOffset,$t,it);break;case"DOMQuad":try{Q=new DOMQuad(Et(q.p1,it),Et(q.p2,it),Et(q.p3,it),Et(q.p4,it))}catch(Zt){Q=at(q,lt)}break;case"File":if(Gt)try{Q=Gt(q),E(Q)!==lt&&(Q=void 0)}catch(Zt){}if(!Q)try{Q=new File([q],q.name,q)}catch(Zt){}Q||dt(lt);break;case"FileList":if(yt=At(),yt){for(Nt=0,$t=C(q);Nt<$t;Nt++)yt.items.add(Et(q[Nt],it));Q=yt.files}else Q=at(q,lt);break;case"ImageData":try{Q=new ImageData(Et(q.data,it),q.width,q.height,{colorSpace:q.colorSpace})}catch(Zt){Q=at(q,lt)}break;default:if(Gt)Q=Gt(q);else switch(lt){case"BigInt":Q=z(q.valueOf());break;case"Boolean":Q=z(Bt(q));break;case"Number":Q=z(vt(q));break;case"String":Q=z(St(q));break;case"Date":Q=new G(bt(q));break;case"Blob":try{Q=q.slice(0,q.size,q.type)}catch(Zt){dt(lt)}break;case"DOMPoint":case"DOMPointReadOnly":X=o[lt];try{Q=X.fromPoint?X.fromPoint(q):new X(q.x,q.y,q.z,q.w)}catch(Zt){dt(lt)}break;case"DOMRect":case"DOMRectReadOnly":X=o[lt];try{Q=X.fromRect?X.fromRect(q):new X(q.x,q.y,q.width,q.height)}catch(Zt){dt(lt)}break;case"DOMMatrix":case"DOMMatrixReadOnly":X=o[lt];try{Q=X.fromMatrix?X.fromMatrix(q):new X(q)}catch(Zt){dt(lt)}break;case"AudioData":case"VideoFrame":v(q.clone)||dt(lt);try{Q=q.clone()}catch(Zt){ft(lt)}break;case"CropTarget":case"CryptoKey":case"FileSystemDirectoryHandle":case"FileSystemFileHandle":case"FileSystemHandle":case"GPUCompilationInfo":case"GPUCompilationMessage":case"ImageBitmap":case"RTCCertificate":case"WebAssembly.Module":dt(lt);default:ft(lt)}}switch(ct(it,q,Q),lt){case"Array":case"Object":for(Xt=Yt(q),Nt=0,$t=C(Xt);Nt<$t;Nt++)Qt=Xt[Nt],M(Q,Qt,Et(q[Qt],it));break;case"Map":q.forEach(function(Zt,mr){ct(Q,Et(mr,it),Et(Zt,it))});break;case"Set":q.forEach(function(Zt){It(Q,Et(Zt,it))});break;case"Error":P(Q,"message",Et(q.message,it)),A(q,"cause")&&P(Q,"cause",Et(q.cause,it)),nt==="AggregateError"?Q.errors=Et(q.errors,it):nt==="SuppressedError"&&(Q.error=Et(q.error,it),Q.suppressed=Et(q.suppressed,it));case"DOMException":B&&P(Q,"stack",Et(q.stack,it))}return Q},ar=function(q,it){if(!y(q))throw new J("Transfer option cannot be converted to a sequence");var lt=[];S(q,function(mr){Wt(lt,O(mr))});for(var X=0,nt=C(lt),Q=new xt,yt,Nt,$t,Xt,Qt,Zt;X<nt;){if(yt=lt[X++],Nt=E(yt),Nt==="ArrayBuffer"?Ct(Q,yt):_(it,yt))throw new k("Duplicate transferable",Ft);if(Nt==="ArrayBuffer"){It(Q,yt);continue}if(H)Xt=wt(yt,{transfer:[yt]});else switch(Nt){case"ImageBitmap":$t=o.OffscreenCanvas,h($t)||dt(Nt,jt);try{Qt=new $t(yt.width,yt.height),Zt=Qt.getContext("bitmaprenderer"),Zt.transferFromImageBitmap(yt),Xt=Qt.transferToImageBitmap()}catch(mr){}break;case"AudioData":case"VideoFrame":(!v(yt.clone)||!v(yt.close))&&dt(Nt,jt);try{Xt=yt.clone(),yt.close()}catch(mr){}break;case"MediaSourceHandle":case"MessagePort":case"OffscreenCanvas":case"ReadableStream":case"TransformStream":case"WritableStream":dt(Nt,jt)}if(Xt===void 0)throw new k("This object cannot be transferred: "+Nt,Ft);ct(it,yt,Xt)}return Q},lr=function(q){j(q,function(it){H?Gt(it,{transfer:[it]}):v(it.transfer)?it.transfer():U?U(it):dt("ArrayBuffer",jt)})};e({global:!0,enumerable:!0,sham:!H,forced:_t},{structuredClone:function(it){var lt=F(arguments.length,1)>1&&!p(arguments[1])?O(arguments[1]):void 0,X=lt?lt.transfer:void 0,nt,Q;X!==void 0&&(nt=new ot,Q=ar(X,nt));var yt=Et(it,nt);return Q&&lr(Q),yt}})},28381:function(u,g,t){t(63981),t(23913)},98812:function(u,g,t){t(35054);var n=t(14304),e=t(66009),o=t(28167),s=t(96499),i=t(11286),l=t(92986),c=t(91918),v=t(16142),h=t(85500),p=t(2725),y=t(78401),x=t(26820),S=t(82367),O=t(12833),E=t(23583),A=t(94879),M=t(45526),P=t(9205),C=t(25001),F=t(37540),R=t(17361),N=t(5406),D=t(18526),j=t(90619),U=t(81077),B=t(10659),H=t(95486),z=t(18565),w=t(13270),G=z("iterator"),V="URLSearchParams",J=V+"Iterator",rt=S.set,k=S.getterFor(V),ot=S.getterFor(J),_=o("fetch"),mt=o("Request"),ct=o("Headers"),xt=mt&&mt.prototype,It=ct&&ct.prototype,Ct=e.RegExp,Yt=e.TypeError,Wt=e.decodeURIComponent,Bt=e.encodeURIComponent,vt=i("".charAt),St=i([].join),bt=i([].push),Lt=i("".replace),Ft=i([].shift),jt=i([].splice),tr=i("".split),rr=i("".slice),Jt=/\+/g,wt=Array(4),_t=function(X){return wt[X-1]||(wt[X-1]=Ct("((?:%[\\da-f]{2}){"+X+"})","gi"))},Kt=function(X){try{return Wt(X)}catch(nt){return X}},Gt=function(X){var nt=Lt(X,Jt," "),Q=4;try{return Wt(nt)}catch(yt){for(;Q;)nt=Lt(nt,_t(Q--),Kt);return nt}},ft=/[!'()~]|%20/g,dt={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},at=function(X){return dt[X]},At=function(X){return Lt(Bt(X),ft,at)},Pt=x(function(nt,Q){rt(this,{type:J,target:k(nt).entries,index:0,kind:Q})},V,function(){var nt=ot(this),Q=nt.target,yt=nt.index++;if(!Q||yt>=Q.length)return nt.target=void 0,B(void 0,!0);var Nt=Q[yt];switch(nt.kind){case"keys":return B(Nt.key,!1);case"values":return B(Nt.value,!1)}return B([Nt.key,Nt.value],!1)},!0),Ot=function(X){this.entries=[],this.url=null,X!==void 0&&(F(X)?this.parseObject(X):this.parseQuery(typeof X=="string"?vt(X,0)==="?"?rr(X,1):X:R(X)))};Ot.prototype={type:V,bindURL:function(X){this.url=X,this.update()},parseObject:function(X){var nt=this.entries,Q=U(X),yt,Nt,$t,Xt,Qt,Zt,mr;if(Q)for(yt=j(X,Q),Nt=yt.next;!($t=s(Nt,yt)).done;){if(Xt=j(C($t.value)),Qt=Xt.next,(Zt=s(Qt,Xt)).done||(mr=s(Qt,Xt)).done||!s(Qt,Xt).done)throw new Yt("Expected sequence with length 2");bt(nt,{key:R(Zt.value),value:R(mr.value)})}else for(var Jr in X)A(X,Jr)&&bt(nt,{key:Jr,value:R(X[Jr])})},parseQuery:function(X){if(X)for(var nt=this.entries,Q=tr(X,"&"),yt=0,Nt,$t;yt<Q.length;)Nt=Q[yt++],Nt.length&&($t=tr(Nt,"="),bt(nt,{key:Gt(Ft($t)),value:Gt(St($t,"="))}))},serialize:function(){for(var X=this.entries,nt=[],Q=0,yt;Q<X.length;)yt=X[Q++],bt(nt,At(yt.key)+"="+At(yt.value));return St(nt,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var Et=function(){O(this,ar);var nt=arguments.length>0?arguments[0]:void 0,Q=rt(this,new Ot(nt));l||(this.size=Q.entries.length)},ar=Et.prototype;if(p(ar,{append:function(nt,Q){var yt=k(this);H(arguments.length,2),bt(yt.entries,{key:R(nt),value:R(Q)}),l||this.length++,yt.updateURL()},delete:function(X){for(var nt=k(this),Q=H(arguments.length,1),yt=nt.entries,Nt=R(X),$t=Q<2?void 0:arguments[1],Xt=$t===void 0?$t:R($t),Qt=0;Qt<yt.length;){var Zt=yt[Qt];if(Zt.key===Nt&&(Xt===void 0||Zt.value===Xt)){if(jt(yt,Qt,1),Xt!==void 0)break}else Qt++}l||(this.size=yt.length),nt.updateURL()},get:function(nt){var Q=k(this).entries;H(arguments.length,1);for(var yt=R(nt),Nt=0;Nt<Q.length;Nt++)if(Q[Nt].key===yt)return Q[Nt].value;return null},getAll:function(nt){var Q=k(this).entries;H(arguments.length,1);for(var yt=R(nt),Nt=[],$t=0;$t<Q.length;$t++)Q[$t].key===yt&&bt(Nt,Q[$t].value);return Nt},has:function(nt){for(var Q=k(this).entries,yt=H(arguments.length,1),Nt=R(nt),$t=yt<2?void 0:arguments[1],Xt=$t===void 0?$t:R($t),Qt=0;Qt<Q.length;){var Zt=Q[Qt++];if(Zt.key===Nt&&(Xt===void 0||Zt.value===Xt))return!0}return!1},set:function(nt,Q){var yt=k(this);H(arguments.length,1);for(var Nt=yt.entries,$t=!1,Xt=R(nt),Qt=R(Q),Zt=0,mr;Zt<Nt.length;Zt++)mr=Nt[Zt],mr.key===Xt&&($t?jt(Nt,Zt--,1):($t=!0,mr.value=Qt));$t||bt(Nt,{key:Xt,value:Qt}),l||(this.size=Nt.length),yt.updateURL()},sort:function(){var nt=k(this);w(nt.entries,function(Q,yt){return Q.key>yt.key?1:-1}),nt.updateURL()},forEach:function(nt){for(var Q=k(this).entries,yt=M(nt,arguments.length>1?arguments[1]:void 0),Nt=0,$t;Nt<Q.length;)$t=Q[Nt++],yt($t.value,$t.key,this)},keys:function(){return new Pt(this,"keys")},values:function(){return new Pt(this,"values")},entries:function(){return new Pt(this,"entries")}},{enumerable:!0}),v(ar,G,ar.entries,{name:"entries"}),v(ar,"toString",function(){return k(this).serialize()},{enumerable:!0}),l&&h(ar,"size",{get:function(){return k(this).entries.length},configurable:!0,enumerable:!0}),y(Et,V),n({global:!0,constructor:!0,forced:!c},{URLSearchParams:Et}),!c&&E(ct)){var lr=i(It.has),q=i(It.set),it=function(X){if(F(X)){var nt=X.body,Q;if(P(nt)===V)return Q=X.headers?new ct(X.headers):new ct,lr(Q,"content-type")||q(Q,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),N(X,{body:D(0,R(nt)),headers:D(0,Q)})}return X};if(E(_)&&n({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(nt){return _(nt,arguments.length>1?it(arguments[1]):{})}}),E(mt)){var lt=function(nt){return O(this,xt),new mt(nt,arguments.length>1?it(arguments[1]):{})};xt.constructor=lt,lt.prototype=xt,n({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:lt})}}u.exports={URLSearchParams:Et,getState:k}},10901:function(u,g,t){var n=t(16142),e=t(11286),o=t(17361),s=t(95486),i=URLSearchParams,l=i.prototype,c=e(l.append),v=e(l.delete),h=e(l.forEach),p=e([].push),y=new i("a=1&a=2&b=3");y.delete("a",1),y.delete("b",void 0),y+""!="a=2"&&n(l,"delete",function(x){var S=arguments.length,O=S<2?void 0:arguments[1];if(S&&O===void 0)return v(this,x);var E=[];h(this,function(D,j){p(E,{key:j,value:D})}),s(S,1);for(var A=o(x),M=o(O),P=0,C=0,F=!1,R=E.length,N;P<R;)N=E[P++],F||N.key===A?(F=!0,v(this,N.key)):C++;for(;C<R;)N=E[C++],N.key===A&&N.value===M||c(this,N.key,N.value)},{enumerable:!0,unsafe:!0})},93944:function(u,g,t){var n=t(16142),e=t(11286),o=t(17361),s=t(95486),i=URLSearchParams,l=i.prototype,c=e(l.getAll),v=e(l.has),h=new i("a=1");(h.has("a",2)||!h.has("a",void 0))&&n(l,"has",function(y){var x=arguments.length,S=x<2?void 0:arguments[1];if(x&&S===void 0)return v(this,y);var O=c(this,y);s(x,1);for(var E=o(S),A=0;A<O.length;)if(O[A++]===E)return!0;return!1},{enumerable:!0,unsafe:!0})},86650:function(u,g,t){t(98812)},79043:function(u,g,t){var n=t(92986),e=t(11286),o=t(85500),s=URLSearchParams.prototype,i=e(s.forEach);n&&!("size"in s)&&o(s,"size",{get:function(){var c=0;return i(this,function(){c++}),c},configurable:!0,enumerable:!0})},20760:function(u,g,t){var n=t(14304),e=t(38941),o=t(72069),s=t(95486),i=t(17361),l=t(91918),c=e("URL"),v=l&&o(function(){c.canParse()}),h=o(function(){return c.canParse.length!==1});n({target:"URL",stat:!0,forced:!v||h},{canParse:function(y){var x=s(arguments.length,1),S=i(y),O=x<2||arguments[1]===void 0?void 0:i(arguments[1]);try{return!!new c(S,O)}catch(E){return!1}}})},81888:function(u,g,t){t(59158);var n=t(14304),e=t(92986),o=t(91918),s=t(66009),i=t(45526),l=t(11286),c=t(16142),v=t(85500),h=t(12833),p=t(94879),y=t(16667),x=t(48258),S=t(22806),O=t(22149).codeAt,E=t(38679),A=t(17361),M=t(78401),P=t(95486),C=t(98812),F=t(82367),R=F.set,N=F.getterFor("URL"),D=C.URLSearchParams,j=C.getState,U=s.URL,B=s.TypeError,H=s.parseInt,z=Math.floor,w=Math.pow,G=l("".charAt),V=l(/./.exec),J=l([].join),rt=l(1 .toString),k=l([].pop),ot=l([].push),_=l("".replace),mt=l([].shift),ct=l("".split),xt=l("".slice),It=l("".toLowerCase),Ct=l([].unshift),Yt="Invalid authority",Wt="Invalid scheme",Bt="Invalid host",vt="Invalid port",St=/[a-z]/i,bt=/[\d+-.a-z]/i,Lt=/\d/,Ft=/^0x/i,jt=/^[0-7]+$/,tr=/^\d+$/,rr=/^[\da-f]+$/i,Jt=/[\0\t\n\r #%/:<>?@[\\\]^|]/,wt=/[\0\t\n\r #/:<>?@[\\\]^|]/,_t=/^[\u0000-\u0020]+/,Kt=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,Gt=/[\t\n\r]/g,ft,dt=function(Z){var gt=ct(Z,"."),tt,Y,ut,zt,Tt,dr,yr;if(gt.length&>[gt.length-1]===""&>.length--,tt=gt.length,tt>4)return Z;for(Y=[],ut=0;ut<tt;ut++){if(zt=gt[ut],zt==="")return Z;if(Tt=10,zt.length>1&&G(zt,0)==="0"&&(Tt=V(Ft,zt)?16:8,zt=xt(zt,Tt===8?1:2)),zt==="")dr=0;else{if(!V(Tt===10?tr:Tt===8?jt:rr,zt))return Z;dr=H(zt,Tt)}ot(Y,dr)}for(ut=0;ut<tt;ut++)if(dr=Y[ut],ut===tt-1){if(dr>=w(256,5-tt))return null}else if(dr>255)return null;for(yr=k(Y),ut=0;ut<Y.length;ut++)yr+=Y[ut]*w(256,3-ut);return yr},at=function(Z){var gt=[0,0,0,0,0,0,0,0],tt=0,Y=null,ut=0,zt,Tt,dr,yr,Sr,Nr,ht,xr=function(){return G(Z,ut)};if(xr()===":"){if(G(Z,1)!==":")return;ut+=2,tt++,Y=tt}for(;xr();){if(tt===8)return;if(xr()===":"){if(Y!==null)return;ut++,tt++,Y=tt;continue}for(zt=Tt=0;Tt<4&&V(rr,xr());)zt=zt*16+H(xr(),16),ut++,Tt++;if(xr()==="."){if(Tt===0||(ut-=Tt,tt>6))return;for(dr=0;xr();){if(yr=null,dr>0)if(xr()==="."&&dr<4)ut++;else return;if(!V(Lt,xr()))return;for(;V(Lt,xr());){if(Sr=H(xr(),10),yr===null)yr=Sr;else{if(yr===0)return;yr=yr*10+Sr}if(yr>255)return;ut++}gt[tt]=gt[tt]*256+yr,dr++,(dr===2||dr===4)&&tt++}if(dr!==4)return;break}else if(xr()===":"){if(ut++,!xr())return}else if(xr())return;gt[tt++]=zt}if(Y!==null)for(Nr=tt-Y,tt=7;tt!==0&&Nr>0;)ht=gt[tt],gt[tt--]=gt[Y+Nr-1],gt[Y+--Nr]=ht;else if(tt!==8)return;return gt},At=function(Z){for(var gt=null,tt=1,Y=null,ut=0,zt=0;zt<8;zt++)Z[zt]!==0?(ut>tt&&(gt=Y,tt=ut),Y=null,ut=0):(Y===null&&(Y=zt),++ut);return ut>tt&&(gt=Y,tt=ut),gt},Pt=function(Z){var gt,tt,Y,ut;if(typeof Z=="number"){for(gt=[],tt=0;tt<4;tt++)Ct(gt,Z%256),Z=z(Z/256);return J(gt,".")}else if(typeof Z=="object"){for(gt="",Y=At(Z),tt=0;tt<8;tt++)ut&&Z[tt]===0||(ut&&(ut=!1),Y===tt?(gt+=tt?":":"::",ut=!0):(gt+=rt(Z[tt],16),tt<7&&(gt+=":")));return"["+gt+"]"}return Z},Ot={},Et=y({},Ot,{" ":1,'"':1,"<":1,">":1,"`":1}),ar=y({},Et,{"#":1,"?":1,"{":1,"}":1}),lr=y({},ar,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),q=function(Z,gt){var tt=O(Z,0);return tt>32&&tt<127&&!p(gt,Z)?Z:encodeURIComponent(Z)},it={ftp:21,file:null,http:80,https:443,ws:80,wss:443},lt=function(Z,gt){var tt;return Z.length===2&&V(St,G(Z,0))&&((tt=G(Z,1))===":"||!gt&&tt==="|")},X=function(Z){var gt;return Z.length>1&<(xt(Z,0,2))&&(Z.length===2||(gt=G(Z,2))==="/"||gt==="\\"||gt==="?"||gt==="#")},nt=function(Z){return Z==="."||It(Z)==="%2e"},Q=function(Z){return Z=It(Z),Z===".."||Z==="%2e."||Z===".%2e"||Z==="%2e%2e"},yt={},Nt={},$t={},Xt={},Qt={},Zt={},mr={},Jr={},rn={},nn={},en={},$r={},qr={},dn={},Mn={},hn={},Qr={},Fr={},ee={},Wr={},Ur={},gn=function(Z,gt,tt){var Y=A(Z),ut,zt,Tt;if(gt){if(zt=this.parse(Y),zt)throw new B(zt);this.searchParams=null}else{if(tt!==void 0&&(ut=new gn(tt,!0)),zt=this.parse(Y,null,ut),zt)throw new B(zt);Tt=j(new D),Tt.bindURL(this),this.searchParams=Tt}};gn.prototype={type:"URL",parse:function(Z,gt,tt){var Y=this,ut=gt||yt,zt=0,Tt="",dr=!1,yr=!1,Sr=!1,Nr,ht,xr,Br;for(Z=A(Z),gt||(Y.scheme="",Y.username="",Y.password="",Y.host=null,Y.port=null,Y.path=[],Y.query=null,Y.fragment=null,Y.cannotBeABaseURL=!1,Z=_(Z,_t,""),Z=_(Z,Kt,"$1")),Z=_(Z,Gt,""),Nr=x(Z);zt<=Nr.length;){switch(ht=Nr[zt],ut){case yt:if(ht&&V(St,ht))Tt+=It(ht),ut=Nt;else{if(gt)return Wt;ut=$t;continue}break;case Nt:if(ht&&(V(bt,ht)||ht==="+"||ht==="-"||ht==="."))Tt+=It(ht);else if(ht===":"){if(gt&&(Y.isSpecial()!==p(it,Tt)||Tt==="file"&&(Y.includesCredentials()||Y.port!==null)||Y.scheme==="file"&&!Y.host))return;if(Y.scheme=Tt,gt){Y.isSpecial()&&it[Y.scheme]===Y.port&&(Y.port=null);return}Tt="",Y.scheme==="file"?ut=dn:Y.isSpecial()&&tt&&tt.scheme===Y.scheme?ut=Xt:Y.isSpecial()?ut=Jr:Nr[zt+1]==="/"?(ut=Qt,zt++):(Y.cannotBeABaseURL=!0,ot(Y.path,""),ut=ee)}else{if(gt)return Wt;Tt="",ut=$t,zt=0;continue}break;case $t:if(!tt||tt.cannotBeABaseURL&&ht!=="#")return Wt;if(tt.cannotBeABaseURL&&ht==="#"){Y.scheme=tt.scheme,Y.path=S(tt.path),Y.query=tt.query,Y.fragment="",Y.cannotBeABaseURL=!0,ut=Ur;break}ut=tt.scheme==="file"?dn:Zt;continue;case Xt:if(ht==="/"&&Nr[zt+1]==="/")ut=rn,zt++;else{ut=Zt;continue}break;case Qt:if(ht==="/"){ut=nn;break}else{ut=Fr;continue}case Zt:if(Y.scheme=tt.scheme,ht===ft)Y.username=tt.username,Y.password=tt.password,Y.host=tt.host,Y.port=tt.port,Y.path=S(tt.path),Y.query=tt.query;else if(ht==="/"||ht==="\\"&&Y.isSpecial())ut=mr;else if(ht==="?")Y.username=tt.username,Y.password=tt.password,Y.host=tt.host,Y.port=tt.port,Y.path=S(tt.path),Y.query="",ut=Wr;else if(ht==="#")Y.username=tt.username,Y.password=tt.password,Y.host=tt.host,Y.port=tt.port,Y.path=S(tt.path),Y.query=tt.query,Y.fragment="",ut=Ur;else{Y.username=tt.username,Y.password=tt.password,Y.host=tt.host,Y.port=tt.port,Y.path=S(tt.path),Y.path.length--,ut=Fr;continue}break;case mr:if(Y.isSpecial()&&(ht==="/"||ht==="\\"))ut=rn;else if(ht==="/")ut=nn;else{Y.username=tt.username,Y.password=tt.password,Y.host=tt.host,Y.port=tt.port,ut=Fr;continue}break;case Jr:if(ut=rn,ht!=="/"||G(Tt,zt+1)!=="/")continue;zt++;break;case rn:if(ht!=="/"&&ht!=="\\"){ut=nn;continue}break;case nn:if(ht==="@"){dr&&(Tt="%40"+Tt),dr=!0,xr=x(Tt);for(var sn=0;sn<xr.length;sn++){var pn=xr[sn];if(pn===":"&&!Sr){Sr=!0;continue}var yn=q(pn,lr);Sr?Y.password+=yn:Y.username+=yn}Tt=""}else if(ht===ft||ht==="/"||ht==="?"||ht==="#"||ht==="\\"&&Y.isSpecial()){if(dr&&Tt==="")return Yt;zt-=x(Tt).length+1,Tt="",ut=en}else Tt+=ht;break;case en:case $r:if(gt&&Y.scheme==="file"){ut=hn;continue}else if(ht===":"&&!yr){if(Tt==="")return Bt;if(Br=Y.parseHost(Tt),Br)return Br;if(Tt="",ut=qr,gt===$r)return}else if(ht===ft||ht==="/"||ht==="?"||ht==="#"||ht==="\\"&&Y.isSpecial()){if(Y.isSpecial()&&Tt==="")return Bt;if(gt&&Tt===""&&(Y.includesCredentials()||Y.port!==null))return;if(Br=Y.parseHost(Tt),Br)return Br;if(Tt="",ut=Qr,gt)return;continue}else ht==="["?yr=!0:ht==="]"&&(yr=!1),Tt+=ht;break;case qr:if(V(Lt,ht))Tt+=ht;else if(ht===ft||ht==="/"||ht==="?"||ht==="#"||ht==="\\"&&Y.isSpecial()||gt){if(Tt!==""){var un=H(Tt,10);if(un>65535)return vt;Y.port=Y.isSpecial()&&un===it[Y.scheme]?null:un,Tt=""}if(gt)return;ut=Qr;continue}else return vt;break;case dn:if(Y.scheme="file",ht==="/"||ht==="\\")ut=Mn;else if(tt&&tt.scheme==="file")switch(ht){case ft:Y.host=tt.host,Y.path=S(tt.path),Y.query=tt.query;break;case"?":Y.host=tt.host,Y.path=S(tt.path),Y.query="",ut=Wr;break;case"#":Y.host=tt.host,Y.path=S(tt.path),Y.query=tt.query,Y.fragment="",ut=Ur;break;default:X(J(S(Nr,zt),""))||(Y.host=tt.host,Y.path=S(tt.path),Y.shortenPath()),ut=Fr;continue}else{ut=Fr;continue}break;case Mn:if(ht==="/"||ht==="\\"){ut=hn;break}tt&&tt.scheme==="file"&&!X(J(S(Nr,zt),""))&&(lt(tt.path[0],!0)?ot(Y.path,tt.path[0]):Y.host=tt.host),ut=Fr;continue;case hn:if(ht===ft||ht==="/"||ht==="\\"||ht==="?"||ht==="#"){if(!gt&<(Tt))ut=Fr;else if(Tt===""){if(Y.host="",gt)return;ut=Qr}else{if(Br=Y.parseHost(Tt),Br)return Br;if(Y.host==="localhost"&&(Y.host=""),gt)return;Tt="",ut=Qr}continue}else Tt+=ht;break;case Qr:if(Y.isSpecial()){if(ut=Fr,ht!=="/"&&ht!=="\\")continue}else if(!gt&&ht==="?")Y.query="",ut=Wr;else if(!gt&&ht==="#")Y.fragment="",ut=Ur;else if(ht!==ft&&(ut=Fr,ht!=="/"))continue;break;case Fr:if(ht===ft||ht==="/"||ht==="\\"&&Y.isSpecial()||!gt&&(ht==="?"||ht==="#")){if(Q(Tt)?(Y.shortenPath(),ht!=="/"&&!(ht==="\\"&&Y.isSpecial())&&ot(Y.path,"")):nt(Tt)?ht!=="/"&&!(ht==="\\"&&Y.isSpecial())&&ot(Y.path,""):(Y.scheme==="file"&&!Y.path.length&<(Tt)&&(Y.host&&(Y.host=""),Tt=G(Tt,0)+":"),ot(Y.path,Tt)),Tt="",Y.scheme==="file"&&(ht===ft||ht==="?"||ht==="#"))for(;Y.path.length>1&&Y.path[0]==="";)mt(Y.path);ht==="?"?(Y.query="",ut=Wr):ht==="#"&&(Y.fragment="",ut=Ur)}else Tt+=q(ht,ar);break;case ee:ht==="?"?(Y.query="",ut=Wr):ht==="#"?(Y.fragment="",ut=Ur):ht!==ft&&(Y.path[0]+=q(ht,Ot));break;case Wr:!gt&&ht==="#"?(Y.fragment="",ut=Ur):ht!==ft&&(ht==="'"&&Y.isSpecial()?Y.query+="%27":ht==="#"?Y.query+="%23":Y.query+=q(ht,Ot));break;case Ur:ht!==ft&&(Y.fragment+=q(ht,Et));break}zt++}},parseHost:function(Z){var gt,tt,Y;if(G(Z,0)==="["){if(G(Z,Z.length-1)!=="]"||(gt=at(xt(Z,1,-1)),!gt))return Bt;this.host=gt}else if(this.isSpecial()){if(Z=E(Z),V(Jt,Z)||(gt=dt(Z),gt===null))return Bt;this.host=gt}else{if(V(wt,Z))return Bt;for(gt="",tt=x(Z),Y=0;Y<tt.length;Y++)gt+=q(tt[Y],Ot);this.host=gt}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme==="file"},includesCredentials:function(){return this.username!==""||this.password!==""},isSpecial:function(){return p(it,this.scheme)},shortenPath:function(){var Z=this.path,gt=Z.length;gt&&(this.scheme!=="file"||gt!==1||!lt(Z[0],!0))&&Z.length--},serialize:function(){var Z=this,gt=Z.scheme,tt=Z.username,Y=Z.password,ut=Z.host,zt=Z.port,Tt=Z.path,dr=Z.query,yr=Z.fragment,Sr=gt+":";return ut!==null?(Sr+="//",Z.includesCredentials()&&(Sr+=tt+(Y?":"+Y:"")+"@"),Sr+=Pt(ut),zt!==null&&(Sr+=":"+zt)):gt==="file"&&(Sr+="//"),Sr+=Z.cannotBeABaseURL?Tt[0]:Tt.length?"/"+J(Tt,"/"):"",dr!==null&&(Sr+="?"+dr),yr!==null&&(Sr+="#"+yr),Sr},setHref:function(Z){var gt=this.parse(Z);if(gt)throw new B(gt);this.searchParams.update()},getOrigin:function(){var Z=this.scheme,gt=this.port;if(Z==="blob")try{return new Zr(Z.path[0]).origin}catch(tt){return"null"}return Z==="file"||!this.isSpecial()?"null":Z+"://"+Pt(this.host)+(gt!==null?":"+gt:"")},getProtocol:function(){return this.scheme+":"},setProtocol:function(Z){this.parse(A(Z)+":",yt)},getUsername:function(){return this.username},setUsername:function(Z){var gt=x(A(Z));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var tt=0;tt<gt.length;tt++)this.username+=q(gt[tt],lr)}},getPassword:function(){return this.password},setPassword:function(Z){var gt=x(A(Z));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var tt=0;tt<gt.length;tt++)this.password+=q(gt[tt],lr)}},getHost:function(){var Z=this.host,gt=this.port;return Z===null?"":gt===null?Pt(Z):Pt(Z)+":"+gt},setHost:function(Z){this.cannotBeABaseURL||this.parse(Z,en)},getHostname:function(){var Z=this.host;return Z===null?"":Pt(Z)},setHostname:function(Z){this.cannotBeABaseURL||this.parse(Z,$r)},getPort:function(){var Z=this.port;return Z===null?"":A(Z)},setPort:function(Z){this.cannotHaveUsernamePasswordPort()||(Z=A(Z),Z===""?this.port=null:this.parse(Z,qr))},getPathname:function(){var Z=this.path;return this.cannotBeABaseURL?Z[0]:Z.length?"/"+J(Z,"/"):""},setPathname:function(Z){this.cannotBeABaseURL||(this.path=[],this.parse(Z,Qr))},getSearch:function(){var Z=this.query;return Z?"?"+Z:""},setSearch:function(Z){Z=A(Z),Z===""?this.query=null:(G(Z,0)==="?"&&(Z=xt(Z,1)),this.query="",this.parse(Z,Wr)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var Z=this.fragment;return Z?"#"+Z:""},setHash:function(Z){if(Z=A(Z),Z===""){this.fragment=null;return}G(Z,0)==="#"&&(Z=xt(Z,1)),this.fragment="",this.parse(Z,Ur)},update:function(){this.query=this.searchParams.serialize()||null}};var Zr=function(gt){var tt=h(this,Tr),Y=P(arguments.length,1)>1?arguments[1]:void 0,ut=R(tt,new gn(gt,!1,Y));e||(tt.href=ut.serialize(),tt.origin=ut.getOrigin(),tt.protocol=ut.getProtocol(),tt.username=ut.getUsername(),tt.password=ut.getPassword(),tt.host=ut.getHost(),tt.hostname=ut.getHostname(),tt.port=ut.getPort(),tt.pathname=ut.getPathname(),tt.search=ut.getSearch(),tt.searchParams=ut.getSearchParams(),tt.hash=ut.getHash())},Tr=Zr.prototype,Rr=function(Z,gt){return{get:function(){return N(this)[Z]()},set:gt&&function(tt){return N(this)[gt](tt)},configurable:!0,enumerable:!0}};if(e&&(v(Tr,"href",Rr("serialize","setHref")),v(Tr,"origin",Rr("getOrigin")),v(Tr,"protocol",Rr("getProtocol","setProtocol")),v(Tr,"username",Rr("getUsername","setUsername")),v(Tr,"password",Rr("getPassword","setPassword")),v(Tr,"host",Rr("getHost","setHost")),v(Tr,"hostname",Rr("getHostname","setHostname")),v(Tr,"port",Rr("getPort","setPort")),v(Tr,"pathname",Rr("getPathname","setPathname")),v(Tr,"search",Rr("getSearch","setSearch")),v(Tr,"searchParams",Rr("getSearchParams")),v(Tr,"hash",Rr("getHash","setHash"))),c(Tr,"toJSON",function(){return N(this).serialize()},{enumerable:!0}),c(Tr,"toString",function(){return N(this).serialize()},{enumerable:!0}),U){var an=U.createObjectURL,on=U.revokeObjectURL;an&&c(Zr,"createObjectURL",i(an,U)),on&&c(Zr,"revokeObjectURL",i(on,U))}M(Zr,"URL"),n({global:!0,constructor:!0,forced:!o,sham:!e},{URL:Zr})},51862:function(u,g,t){t(81888)},24119:function(u,g,t){var n=t(14304),e=t(38941),o=t(95486),s=t(17361),i=t(91918),l=e("URL");n({target:"URL",stat:!0,forced:!i},{parse:function(v){var h=o(arguments.length,1),p=s(v),y=h<2||arguments[1]===void 0?void 0:s(arguments[1]);try{return new l(p,y)}catch(x){return null}}})},97526:function(u,g,t){var n=t(14304),e=t(96499);n({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return e(URL.prototype.toString,this)}})},61969:function(u,g,t){t(40949),t(43657),t(43606),t(15855),t(42026),t(33257),t(59414),t(88344),t(92579),t(94655),t(8565),t(60843),t(65842),t(51595),t(54908),t(81742),t(8720),t(42861),t(27796),t(1341),t(98700),t(65481),t(46509),t(41585),t(84554),t(36619),t(33818),t(64096),t(2209),t(91591),t(74092),t(54703),t(82936),t(48493),t(64730),t(95024),t(35054),t(25460),t(60703),t(90468),t(69581),t(720),t(11042),t(17289),t(24608),t(51644),t(88088),t(46828),t(90088),t(35148),t(86184),t(53983),t(42560),t(88444),t(27839),t(73051),t(9372),t(35473),t(4983),t(6875),t(68575),t(35495),t(32790),t(58594),t(30801),t(90911),t(90429),t(33685),t(60086),t(96049),t(14038),t(55518),t(8894),t(60628),t(56347),t(16864),t(93819),t(71332),t(47269),t(25627),t(22090),t(9839),t(15656),t(22091),t(2886),t(25895),t(24228),t(79488),t(75987),t(81555),t(87854),t(35074),t(50946),t(29417),t(80628),t(74375),t(29708),t(93449),t(9111),t(83514),t(15096),t(59590),t(99663),t(89988),t(54427),t(67895),t(57909),t(83938),t(55461),t(97339),t(3670),t(15224),t(45891),t(99910),t(92445),t(21875),t(4383),t(11361),t(13728),t(14885),t(30343),t(22045),t(75e3),t(64658),t(16017),t(84681),t(73421),t(93446),t(31046),t(94645),t(62935),t(62518),t(45130),t(51542),t(43781),t(25738),t(93247),t(41533),t(60225),t(69920),t(89205),t(78546),t(63616),t(16893),t(3676),t(58361),t(23958),t(9798),t(2371),t(76185),t(76553),t(93518),t(25227),t(91723),t(57882),t(37796),t(11563),t(26159),t(20962),t(77487),t(6130),t(1354),t(47119),t(31145),t(96773),t(14371),t(18180),t(83147),t(75765),t(86548),t(15282),t(51275),t(91890),t(15089),t(78134),t(56456),t(40735),t(8510),t(70159),t(93087),t(26021),t(93029),t(59158),t(15599),t(18509),t(21579),t(8854),t(57676),t(14527),t(96834),t(52684),t(74980),t(390),t(42794),t(21293),t(18184),t(75012),t(19680),t(4193),t(70641),t(53892),t(95976),t(399),t(72032),t(49442),t(16012),t(9943),t(33128),t(95625),t(90614),t(60120),t(75826),t(25560),t(22571),t(40704),t(36849),t(49191),t(81083),t(27428),t(44884),t(48658),t(71998),t(6116),t(33032),t(80962),t(49381),t(38344),t(65961),t(94153),t(16028),t(20656),t(17063),t(21774),t(51761),t(12317),t(19711),t(41034),t(13313),t(44698),t(7369),t(66178),t(67961),t(8695),t(69997),t(9711),t(3923),t(59728),t(85227),t(56933),t(91490),t(61766),t(85143),t(47005),t(10042),t(37888),t(19431),t(60869),t(50338),t(53059),t(5805),t(50685),t(70649),t(39842),t(82872),t(91401),t(92904),t(28381),t(51862),t(20760),t(24119),t(97526),t(86650),t(10901),t(93944),t(79043),t(75081)}},Xr={};function Lr(u){var g=Xr[u];if(g!==void 0)return g.exports;var t=Xr[u]={exports:{}};return Me[u].call(t.exports,t,t.exports,Lr),t.exports}(function(){Lr.d=function(u,g){for(var t in g)Lr.o(g,t)&&!Lr.o(u,t)&&Object.defineProperty(u,t,{enumerable:!0,get:g[t]})}})(),function(){Lr.o=function(u,g){return Object.prototype.hasOwnProperty.call(u,g)}}(),Lr(61969);var ne=Lr(33539);return ne=ne.default,ne}()}); diff --git a/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-tableview.pkgd.js b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-tableview.pkgd.js new file mode 100644 index 000000000..535cf8a19 --- /dev/null +++ b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-tableview.pkgd.js @@ -0,0 +1,23275 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("bb", [], factory); + else if(typeof exports === 'object') + exports["bb"] = factory(); + else + root["bb"] = root["bb"] || {}, root["bb"]["plugin"] = root["bb"]["plugin"] || {}, root["bb"]["plugin"]["tableview.pkgd"] = factory(); +})(this, function() { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +__webpack_require__(1); +__webpack_require__(97); +__webpack_require__(98); +__webpack_require__(99); +__webpack_require__(100); +__webpack_require__(101); +__webpack_require__(102); +__webpack_require__(103); +__webpack_require__(104); +__webpack_require__(105); +__webpack_require__(106); +__webpack_require__(107); +__webpack_require__(108); +__webpack_require__(109); +__webpack_require__(110); +__webpack_require__(111); +__webpack_require__(124); +__webpack_require__(126); +__webpack_require__(136); +__webpack_require__(137); +__webpack_require__(139); +__webpack_require__(143); +__webpack_require__(146); +__webpack_require__(148); +__webpack_require__(150); +__webpack_require__(151); +__webpack_require__(152); +__webpack_require__(153); +__webpack_require__(155); +__webpack_require__(156); +__webpack_require__(158); +__webpack_require__(159); +__webpack_require__(161); +__webpack_require__(165); +__webpack_require__(166); +__webpack_require__(167); +__webpack_require__(168); +__webpack_require__(173); +__webpack_require__(174); +__webpack_require__(176); +__webpack_require__(177); +__webpack_require__(178); +__webpack_require__(180); +__webpack_require__(183); +__webpack_require__(184); +__webpack_require__(185); +__webpack_require__(186); +__webpack_require__(187); +__webpack_require__(192); +__webpack_require__(194); +__webpack_require__(195); +__webpack_require__(197); +__webpack_require__(200); +__webpack_require__(201); +__webpack_require__(202); +__webpack_require__(203); +__webpack_require__(204); +__webpack_require__(206); +__webpack_require__(216); +__webpack_require__(218); +__webpack_require__(221); +__webpack_require__(223); +__webpack_require__(226); +__webpack_require__(233); +__webpack_require__(234); +__webpack_require__(235); +__webpack_require__(236); +__webpack_require__(237); +__webpack_require__(238); +__webpack_require__(242); +__webpack_require__(243); +__webpack_require__(245); +__webpack_require__(246); +__webpack_require__(247); +__webpack_require__(249); +__webpack_require__(250); +__webpack_require__(251); +__webpack_require__(93); +__webpack_require__(252); +__webpack_require__(253); +__webpack_require__(261); +__webpack_require__(263); +__webpack_require__(265); +__webpack_require__(266); +__webpack_require__(267); +__webpack_require__(268); +__webpack_require__(269); +__webpack_require__(271); +__webpack_require__(272); +__webpack_require__(273); +__webpack_require__(274); +__webpack_require__(275); +__webpack_require__(277); +__webpack_require__(278); +__webpack_require__(279); +__webpack_require__(280); +__webpack_require__(281); +__webpack_require__(282); +__webpack_require__(283); +__webpack_require__(284); +__webpack_require__(288); +__webpack_require__(289); +__webpack_require__(291); +__webpack_require__(293); +__webpack_require__(294); +__webpack_require__(295); +__webpack_require__(296); +__webpack_require__(297); +__webpack_require__(299); +__webpack_require__(301); +__webpack_require__(302); +__webpack_require__(303); +__webpack_require__(304); +__webpack_require__(306); +__webpack_require__(307); +__webpack_require__(309); +__webpack_require__(310); +__webpack_require__(311); +__webpack_require__(312); +__webpack_require__(314); +__webpack_require__(315); +__webpack_require__(316); +__webpack_require__(317); +__webpack_require__(318); +__webpack_require__(319); +__webpack_require__(320); +__webpack_require__(321); +__webpack_require__(322); +__webpack_require__(324); +__webpack_require__(325); +__webpack_require__(326); +__webpack_require__(327); +__webpack_require__(328); +__webpack_require__(329); +__webpack_require__(330); +__webpack_require__(331); +__webpack_require__(332); +__webpack_require__(333); +__webpack_require__(334); +__webpack_require__(336); +__webpack_require__(337); +__webpack_require__(338); +__webpack_require__(339); +__webpack_require__(361); +__webpack_require__(362); +__webpack_require__(363); +__webpack_require__(364); +__webpack_require__(365); +__webpack_require__(366); +__webpack_require__(367); +__webpack_require__(368); +__webpack_require__(369); +__webpack_require__(371); +__webpack_require__(372); +__webpack_require__(373); +__webpack_require__(374); +__webpack_require__(375); +__webpack_require__(376); +__webpack_require__(377); +__webpack_require__(378); +__webpack_require__(379); +__webpack_require__(380); +__webpack_require__(387); +__webpack_require__(388); +__webpack_require__(390); +__webpack_require__(391); +__webpack_require__(392); +__webpack_require__(393); +__webpack_require__(394); +__webpack_require__(396); +__webpack_require__(407); +__webpack_require__(409); +__webpack_require__(411); +__webpack_require__(413); +__webpack_require__(415); +__webpack_require__(417); +__webpack_require__(419); +__webpack_require__(420); +__webpack_require__(422); +__webpack_require__(425); +__webpack_require__(426); +__webpack_require__(427); +__webpack_require__(428); +__webpack_require__(429); +__webpack_require__(433); +__webpack_require__(434); +__webpack_require__(436); +__webpack_require__(437); +__webpack_require__(438); +__webpack_require__(439); +__webpack_require__(441); +__webpack_require__(442); +__webpack_require__(443); +__webpack_require__(444); +__webpack_require__(445); +__webpack_require__(446); +__webpack_require__(447); +__webpack_require__(449); +__webpack_require__(452); +__webpack_require__(455); +__webpack_require__(458); +__webpack_require__(459); +__webpack_require__(460); +__webpack_require__(461); +__webpack_require__(462); +__webpack_require__(463); +__webpack_require__(464); +__webpack_require__(465); +__webpack_require__(466); +__webpack_require__(467); +__webpack_require__(468); +__webpack_require__(469); +__webpack_require__(470); +__webpack_require__(479); +__webpack_require__(480); +__webpack_require__(481); +__webpack_require__(482); +__webpack_require__(483); +__webpack_require__(484); +__webpack_require__(485); +__webpack_require__(486); +__webpack_require__(487); +__webpack_require__(488); +__webpack_require__(489); +__webpack_require__(490); +__webpack_require__(491); +__webpack_require__(494); +__webpack_require__(495); +__webpack_require__(496); +__webpack_require__(497); +__webpack_require__(498); +__webpack_require__(499); +__webpack_require__(500); +__webpack_require__(501); +__webpack_require__(502); +__webpack_require__(503); +__webpack_require__(504); +__webpack_require__(505); +__webpack_require__(506); +__webpack_require__(507); +__webpack_require__(508); +__webpack_require__(509); +__webpack_require__(510); +__webpack_require__(511); +__webpack_require__(512); +__webpack_require__(513); +__webpack_require__(514); +__webpack_require__(515); +__webpack_require__(516); +__webpack_require__(517); +__webpack_require__(518); +__webpack_require__(519); +__webpack_require__(520); +__webpack_require__(521); +__webpack_require__(524); +__webpack_require__(526); +__webpack_require__(528); +__webpack_require__(529); +__webpack_require__(532); +__webpack_require__(533); +__webpack_require__(535); +__webpack_require__(536); +__webpack_require__(537); +__webpack_require__(542); +__webpack_require__(543); +__webpack_require__(544); +__webpack_require__(545); +__webpack_require__(548); +__webpack_require__(553); +__webpack_require__(554); +__webpack_require__(555); +__webpack_require__(556); +__webpack_require__(557); +__webpack_require__(558); +__webpack_require__(559); + +/* unused reexport */ __webpack_require__(80); + + +/***/ }), +/* 1 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(2); +__webpack_require__(90); +__webpack_require__(92); +__webpack_require__(93); +__webpack_require__(96); + + +/***/ }), +/* 2 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var $toString = __webpack_require__(68); +var createPropertyDescriptor = __webpack_require__(11); +var nativeObjectCreate = __webpack_require__(71); +var objectKeys = __webpack_require__(73); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternal = __webpack_require__(75); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); +var definePropertiesModule = __webpack_require__(72); +var propertyIsEnumerableModule = __webpack_require__(10); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var shared = __webpack_require__(34); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); +var uid = __webpack_require__(40); +var wellKnownSymbol = __webpack_require__(33); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); +var $forEach = (__webpack_require__(83).forEach); + +var HIDDEN = sharedKey('hidden'); +var SYMBOL = 'Symbol'; +var PROTOTYPE = 'prototype'; + +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(SYMBOL); + +var ObjectPrototype = Object[PROTOTYPE]; +var $Symbol = global.Symbol; +var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; +var RangeError = global.RangeError; +var TypeError = global.TypeError; +var QObject = global.QObject; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; +var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; +var push = uncurryThis([].push); + +var AllSymbols = shared('symbols'); +var ObjectPrototypeSymbols = shared('op-symbols'); +var WellKnownSymbolsStore = shared('wks'); + +// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 +var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var fallbackDefineProperty = function (O, P, Attributes) { + var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); + if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; + nativeDefineProperty(O, P, Attributes); + if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { + nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); + } +}; + +var setSymbolDescriptor = DESCRIPTORS && fails(function () { + return nativeObjectCreate(nativeDefineProperty({}, 'a', { + get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } + })).a !== 7; +}) ? fallbackDefineProperty : nativeDefineProperty; + +var wrap = function (tag, description) { + var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype); + setInternalState(symbol, { + type: SYMBOL, + tag: tag, + description: description + }); + if (!DESCRIPTORS) symbol.description = description; + return symbol; +}; + +var $defineProperty = function defineProperty(O, P, Attributes) { + if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); + anObject(O); + var key = toPropertyKey(P); + anObject(Attributes); + if (hasOwn(AllSymbols, key)) { + if (!Attributes.enumerable) { + if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null))); + O[HIDDEN][key] = true; + } else { + if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; + Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); + } return setSymbolDescriptor(O, key, Attributes); + } return nativeDefineProperty(O, key, Attributes); +}; + +var $defineProperties = function defineProperties(O, Properties) { + anObject(O); + var properties = toIndexedObject(Properties); + var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); + $forEach(keys, function (key) { + if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); + }); + return O; +}; + +var $create = function create(O, Properties) { + return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); +}; + +var $propertyIsEnumerable = function propertyIsEnumerable(V) { + var P = toPropertyKey(V); + var enumerable = call(nativePropertyIsEnumerable, this, P); + if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false; + return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P] + ? enumerable : true; +}; + +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { + var it = toIndexedObject(O); + var key = toPropertyKey(P); + if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return; + var descriptor = nativeGetOwnPropertyDescriptor(it, key); + if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) { + descriptor.enumerable = true; + } + return descriptor; +}; + +var $getOwnPropertyNames = function getOwnPropertyNames(O) { + var names = nativeGetOwnPropertyNames(toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key); + }); + return result; +}; + +var $getOwnPropertySymbols = function (O) { + var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; + var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) { + push(result, AllSymbols[key]); + } + }); + return result; +}; + +// `Symbol` constructor +// https://tc39.es/ecma262/#sec-symbol-constructor +if (!NATIVE_SYMBOL) { + $Symbol = function Symbol() { + if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor'); + var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]); + var tag = uid(description); + var setter = function (value) { + var $this = this === undefined ? global : this; + if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value); + if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false; + var descriptor = createPropertyDescriptor(1, value); + try { + setSymbolDescriptor($this, tag, descriptor); + } catch (error) { + if (!(error instanceof RangeError)) throw error; + fallbackDefineProperty($this, tag, descriptor); + } + }; + if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); + return wrap(tag, description); + }; + + SymbolPrototype = $Symbol[PROTOTYPE]; + + defineBuiltIn(SymbolPrototype, 'toString', function toString() { + return getInternalState(this).tag; + }); + + defineBuiltIn($Symbol, 'withoutSetter', function (description) { + return wrap(uid(description), description); + }); + + propertyIsEnumerableModule.f = $propertyIsEnumerable; + definePropertyModule.f = $defineProperty; + definePropertiesModule.f = $defineProperties; + getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; + getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; + getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; + + wrappedWellKnownSymbolModule.f = function (name) { + return wrap(wellKnownSymbol(name), name); + }; + + if (DESCRIPTORS) { + // https://github.com/tc39/proposal-Symbol-description + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + return getInternalState(this).description; + } + }); + if (!IS_PURE) { + defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { + Symbol: $Symbol +}); + +$forEach(objectKeys(WellKnownSymbolsStore), function (name) { + defineWellKnownSymbol(name); +}); + +$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { + useSetter: function () { USE_SETTER = true; }, + useSimple: function () { USE_SETTER = false; } +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, { + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + create: $create, + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + defineProperty: $defineProperty, + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + defineProperties: $defineProperties, + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors + getOwnPropertyDescriptor: $getOwnPropertyDescriptor +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + getOwnPropertyNames: $getOwnPropertyNames +}); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag($Symbol, SYMBOL); + +hiddenKeys[HIDDEN] = true; + + +/***/ }), +/* 3 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineGlobalProperty = __webpack_require__(37); +var copyConstructorProperties = __webpack_require__(55); +var isForced = __webpack_require__(67); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global[TARGET] && global[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn(target, key, sourceProperty, options); + } +}; + + +/***/ }), +/* 4 */ +/***/ (function(module) { + + +var check = function (it) { + return it && it.Math === Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + check(typeof this == 'object' && this) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + +/***/ }), +/* 5 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var call = __webpack_require__(8); +var propertyIsEnumerableModule = __webpack_require__(10); +var createPropertyDescriptor = __webpack_require__(11); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var IE8_DOM_DEFINE = __webpack_require__(41); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); +}; + + +/***/ }), +/* 6 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; +}); + + +/***/ }), +/* 7 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var call = Function.prototype.call; + +module.exports = NATIVE_BIND ? call.bind(call) : function () { + return call.apply(call, arguments); +}; + + +/***/ }), +/* 9 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + + +/***/ }), +/* 10 */ +/***/ (function(__unused_webpack_module, exports) { + + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + + +/***/ }), +/* 11 */ +/***/ (function(module) { + + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), +/* 12 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = __webpack_require__(13); +var requireObjectCoercible = __webpack_require__(16); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + + +/***/ }), +/* 13 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var classof = __webpack_require__(15); + +var $Object = Object; +var split = uncurryThis(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) === 'String' ? split(it, '') : $Object(it); +} : $Object; + + +/***/ }), +/* 14 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var call = FunctionPrototype.call; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); + +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + + +/***/ }), +/* 15 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var toString = uncurryThis({}.toString); +var stringSlice = uncurryThis(''.slice); + +module.exports = function (it) { + return stringSlice(toString(it), 8, -1); +}; + + +/***/ }), +/* 16 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isNullOrUndefined = __webpack_require__(17); + +var $TypeError = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), +/* 17 */ +/***/ (function(module) { + + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +module.exports = function (it) { + return it === null || it === undefined; +}; + + +/***/ }), +/* 18 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); +var isSymbol = __webpack_require__(22); + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +module.exports = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + + +/***/ }), +/* 19 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var getMethod = __webpack_require__(29); +var ordinaryToPrimitive = __webpack_require__(32); +var wellKnownSymbol = __webpack_require__(33); + +var $TypeError = TypeError; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +module.exports = function (input, pref) { + if (!isObject(input) || isSymbol(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) return result; + throw new $TypeError("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + + +/***/ }), +/* 20 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); + +module.exports = function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); +}; + + +/***/ }), +/* 21 */ +/***/ (function(module) { + + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +var documentAll = typeof document == 'object' && document.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; +} : function (argument) { + return typeof argument == 'function'; +}; + + +/***/ }), +/* 22 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var $Object = Object; + +module.exports = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); +}; + + +/***/ }), +/* 23 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; +}; + + +/***/ }), +/* 24 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis({}.isPrototypeOf); + + +/***/ }), +/* 25 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var NATIVE_SYMBOL = __webpack_require__(26); + +module.exports = NATIVE_SYMBOL + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + +/***/ }), +/* 26 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var V8_VERSION = __webpack_require__(27); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +var $String = global.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); + + +/***/ }), +/* 27 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var userAgent = __webpack_require__(28); + +var process = global.process; +var Deno = global.Deno; +var versions = process && process.versions || Deno && Deno.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +module.exports = version; + + +/***/ }), +/* 28 */ +/***/ (function(module) { + + +module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + +/***/ }), +/* 29 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var isNullOrUndefined = __webpack_require__(17); + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +module.exports = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable(func); +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsCallable(argument) is true` +module.exports = function (argument) { + if (isCallable(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a function'); +}; + + +/***/ }), +/* 31 */ +/***/ (function(module) { + + +var $String = String; + +module.exports = function (argument) { + try { + return $String(argument); + } catch (error) { + return 'Object'; + } +}; + + +/***/ }), +/* 32 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); + +var $TypeError = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +module.exports = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + throw new $TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), +/* 33 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var shared = __webpack_require__(34); +var hasOwn = __webpack_require__(38); +var uid = __webpack_require__(40); +var NATIVE_SYMBOL = __webpack_require__(26); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var Symbol = global.Symbol; +var WellKnownSymbolsStore = shared('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!hasOwn(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) + ? Symbol[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + + +/***/ }), +/* 34 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var store = __webpack_require__(35); + +module.exports = function (key, value) { + return store[key] || (store[key] = value || {}); +}; + + +/***/ }), +/* 35 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var globalThis = __webpack_require__(4); +var defineGlobalProperty = __webpack_require__(37); + +var SHARED = '__core-js_shared__'; +var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {}); + +(store.versions || (store.versions = [])).push({ + version: '3.37.1', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + + +/***/ }), +/* 36 */ +/***/ (function(module) { + + +module.exports = false; + + +/***/ }), +/* 37 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(global, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global[key] = value; + } return value; +}; + + +/***/ }), +/* 38 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var hasOwnProperty = uncurryThis({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +module.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); +}; + + +/***/ }), +/* 39 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var requireObjectCoercible = __webpack_require__(16); + +var $Object = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return $Object(requireObjectCoercible(argument)); +}; + + +/***/ }), +/* 40 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var id = 0; +var postfix = Math.random(); +var toString = uncurryThis(1.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + + +/***/ }), +/* 41 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var createElement = __webpack_require__(42); + +// Thanks to IE8 for its funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; +}); + + +/***/ }), +/* 42 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); + +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + + +/***/ }), +/* 43 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), +/* 44 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var IE8_DOM_DEFINE = __webpack_require__(41); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), +/* 45 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +module.exports = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; +}); + + +/***/ }), +/* 46 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var $String = String; +var $TypeError = TypeError; + +// `Assert: Type(argument) is Object` +module.exports = function (argument) { + if (isObject(argument)) return argument; + throw new $TypeError($String(argument) + ' is not an object'); +}; + + +/***/ }), +/* 47 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var definePropertyModule = __webpack_require__(44); +var makeBuiltIn = __webpack_require__(48); +var defineGlobalProperty = __webpack_require__(37); + +module.exports = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + + +/***/ }), +/* 48 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var DESCRIPTORS = __webpack_require__(6); +var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(49).CONFIGURABLE); +var inspectSource = __webpack_require__(50); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var $String = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var stringSlice = uncurryThis(''.slice); +var replace = uncurryThis(''.replace); +var join = uncurryThis([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { + return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn = module.exports = function (value, name, options) { + if (stringSlice($String(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { + defineProperty(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn(options, 'constructor') && options.constructor) { + if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn(function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); +}, 'toString'); + + +/***/ }), +/* 49 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var hasOwn = __webpack_require__(38); + +var FunctionPrototype = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn(FunctionPrototype, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); + +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + + +/***/ }), +/* 50 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isCallable = __webpack_require__(21); +var store = __webpack_require__(35); + +var functionToString = uncurryThis(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; +} + +module.exports = store.inspectSource; + + +/***/ }), +/* 51 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_WEAK_MAP = __webpack_require__(52); +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); +var hasOwn = __webpack_require__(38); +var shared = __webpack_require__(35); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError = global.TypeError; +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw new TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), +/* 52 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var WeakMap = global.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); + + +/***/ }), +/* 53 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var shared = __webpack_require__(34); +var uid = __webpack_require__(40); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + + +/***/ }), +/* 54 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 55 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var ownKeys = __webpack_require__(56); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); + +module.exports = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + + +/***/ }), +/* 56 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var anObject = __webpack_require__(46); + +var concat = uncurryThis([].concat); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), +/* 57 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), +/* 58 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var toIndexedObject = __webpack_require__(12); +var indexOf = (__webpack_require__(59).indexOf); +var hiddenKeys = __webpack_require__(54); + +var push = uncurryThis([].push); + +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + + +/***/ }), +/* 59 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), +/* 60 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), +/* 61 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var trunc = __webpack_require__(62); + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +module.exports = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + + +/***/ }), +/* 62 */ +/***/ (function(module) { + + +var ceil = Math.ceil; +var floor = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +module.exports = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + + +/***/ }), +/* 63 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toLength = __webpack_require__(64); + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +module.exports = function (obj) { + return toLength(obj.length); +}; + + +/***/ }), +/* 64 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), +/* 65 */ +/***/ (function(module) { + + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), +/* 66 */ +/***/ (function(__unused_webpack_module, exports) { + + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 67 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable(detection) ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + + +/***/ }), +/* 68 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +var $String = String; + +module.exports = function (argument) { + if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + + +/***/ }), +/* 69 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var isCallable = __webpack_require__(21); +var classofRaw = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Object = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result; +}; + + +/***/ }), +/* 70 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + + +/***/ }), +/* 71 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* global ActiveXObject -- old IE, WSH */ +var anObject = __webpack_require__(46); +var definePropertiesModule = __webpack_require__(72); +var enumBugKeys = __webpack_require__(65); +var hiddenKeys = __webpack_require__(54); +var html = __webpack_require__(74); +var documentCreateElement = __webpack_require__(42); +var sharedKey = __webpack_require__(53); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + + +/***/ }), +/* 72 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var definePropertyModule = __webpack_require__(44); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var objectKeys = __webpack_require__(73); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var props = toIndexedObject(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + + +/***/ }), +/* 73 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + + +/***/ }), +/* 74 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), +/* 75 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-object-getownpropertynames -- safe */ +var classof = __webpack_require__(15); +var toIndexedObject = __webpack_require__(12); +var $getOwnPropertyNames = (__webpack_require__(57).f); +var arraySlice = __webpack_require__(76); + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && classof(it) === 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); +}; + + +/***/ }), +/* 76 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis([].slice); + + +/***/ }), +/* 77 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var makeBuiltIn = __webpack_require__(48); +var defineProperty = __webpack_require__(44); + +module.exports = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty.f(target, name, descriptor); +}; + + +/***/ }), +/* 78 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +exports.f = wellKnownSymbol; + + +/***/ }), +/* 79 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var path = __webpack_require__(80); +var hasOwn = __webpack_require__(38); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (NAME) { + var Symbol = path.Symbol || (path.Symbol = {}); + if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, { + value: wrappedWellKnownSymbolModule.f(NAME) + }); +}; + + +/***/ }), +/* 80 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global; + + +/***/ }), +/* 81 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var getBuiltIn = __webpack_require__(23); +var wellKnownSymbol = __webpack_require__(33); +var defineBuiltIn = __webpack_require__(47); + +module.exports = function () { + var Symbol = getBuiltIn('Symbol'); + var SymbolPrototype = Symbol && Symbol.prototype; + var valueOf = SymbolPrototype && SymbolPrototype.valueOf; + var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + + if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) { + // `Symbol.prototype[@@toPrimitive]` method + // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive + // eslint-disable-next-line no-unused-vars -- required for .length + defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) { + return call(valueOf, this); + }, { arity: 1 }); + } +}; + + +/***/ }), +/* 82 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +module.exports = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } +}; + + +/***/ }), +/* 83 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +var push = uncurryThis([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +module.exports = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) +}; + + +/***/ }), +/* 84 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(85); +var aCallable = __webpack_require__(30); +var NATIVE_BIND = __webpack_require__(9); + +var bind = uncurryThis(uncurryThis.bind); + +// optional / simple context binding +module.exports = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), +/* 85 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classofRaw = __webpack_require__(15); +var uncurryThis = __webpack_require__(14); + +module.exports = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis(fn); +}; + + +/***/ }), +/* 86 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySpeciesConstructor = __webpack_require__(87); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + + +/***/ }), +/* 87 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; +}; + + +/***/ }), +/* 88 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(15); + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +module.exports = Array.isArray || function isArray(argument) { + return classof(argument) === 'Array'; +}; + + +/***/ }), +/* 89 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(69); +var getBuiltIn = __webpack_require__(23); +var inspectSource = __webpack_require__(50); + +var noop = function () { /* empty */ }; +var construct = getBuiltIn('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) return false; + switch (classof(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +module.exports = !construct || fails(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + + +/***/ }), +/* 90 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var toString = __webpack_require__(68); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var StringToSymbolRegistry = shared('string-to-symbol-registry'); +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.for` method +// https://tc39.es/ecma262/#sec-symbol.for +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + 'for': function (key) { + var string = toString(key); + if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; + var symbol = getBuiltIn('Symbol')(string); + StringToSymbolRegistry[string] = symbol; + SymbolToStringRegistry[symbol] = string; + return symbol; + } +}); + + +/***/ }), +/* 91 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_SYMBOL = __webpack_require__(26); + +/* eslint-disable es/no-symbol -- safe */ +module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor; + + +/***/ }), +/* 92 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); +var isSymbol = __webpack_require__(22); +var tryToString = __webpack_require__(31); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.keyFor` method +// https://tc39.es/ecma262/#sec-symbol.keyfor +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol'); + if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; + } +}); + + +/***/ }), +/* 93 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isSymbol = __webpack_require__(22); +var arraySlice = __webpack_require__(76); +var getReplacerFunction = __webpack_require__(95); +var NATIVE_SYMBOL = __webpack_require__(26); + +var $String = String; +var $stringify = getBuiltIn('JSON', 'stringify'); +var exec = uncurryThis(/./.exec); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var replace = uncurryThis(''.replace); +var numberToString = uncurryThis(1.0.toString); + +var tester = /[\uD800-\uDFFF]/g; +var low = /^[\uD800-\uDBFF]$/; +var hi = /^[\uDC00-\uDFFF]$/; + +var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () { + var symbol = getBuiltIn('Symbol')('stringify detection'); + // MS Edge converts symbol values to JSON as {} + return $stringify([symbol]) !== '[null]' + // WebKit converts symbol values to JSON as null + || $stringify({ a: symbol }) !== '{}' + // V8 throws on boxed symbols + || $stringify(Object(symbol)) !== '{}'; +}); + +// https://github.com/tc39/proposal-well-formed-stringify +var ILL_FORMED_UNICODE = fails(function () { + return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' + || $stringify('\uDEAD') !== '"\\udead"'; +}); + +var stringifyWithSymbolsFix = function (it, replacer) { + var args = arraySlice(arguments); + var $replacer = getReplacerFunction(replacer); + if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined + args[1] = function (key, value) { + // some old implementations (like WebKit) could pass numbers as keys + if (isCallable($replacer)) value = call($replacer, this, $String(key), value); + if (!isSymbol(value)) return value; + }; + return apply($stringify, null, args); +}; + +var fixIllFormed = function (match, offset, string) { + var prev = charAt(string, offset - 1); + var next = charAt(string, offset + 1); + if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) { + return '\\u' + numberToString(charCodeAt(match, 0), 16); + } return match; +}; + +if ($stringify) { + // `JSON.stringify` method + // https://tc39.es/ecma262/#sec-json.stringify + $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + stringify: function stringify(it, replacer, space) { + var args = arraySlice(arguments); + var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args); + return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result; + } + }); +} + + +/***/ }), +/* 94 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var apply = FunctionPrototype.apply; +var call = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () { + return call.apply(apply, arguments); +}); + + +/***/ }), +/* 95 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var toString = __webpack_require__(68); + +var push = uncurryThis([].push); + +module.exports = function (replacer) { + if (isCallable(replacer)) return replacer; + if (!isArray(replacer)) return; + var rawLength = replacer.length; + var keys = []; + for (var i = 0; i < rawLength; i++) { + var element = replacer[i]; + if (typeof element == 'string') push(keys, element); + else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element)); + } + var keysLength = keys.length; + var root = true; + return function (key, value) { + if (root) { + root = false; + return value; + } + if (isArray(this)) return value; + for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value; + }; +}; + + +/***/ }), +/* 96 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var toObject = __webpack_require__(39); + +// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives +// https://bugs.chromium.org/p/v8/issues/detail?id=3443 +var FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); }); + +// `Object.getOwnPropertySymbols` method +// https://tc39.es/ecma262/#sec-object.getownpropertysymbols +$({ target: 'Object', stat: true, forced: FORCED }, { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : []; + } +}); + + +/***/ }), +/* 97 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +// `Symbol.prototype.description` getter +// https://tc39.es/ecma262/#sec-symbol.prototype.description + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var toString = __webpack_require__(68); +var defineBuiltInAccessor = __webpack_require__(77); +var copyConstructorProperties = __webpack_require__(55); + +var NativeSymbol = global.Symbol; +var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; + +if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || + // Safari 12 bug + NativeSymbol().description !== undefined +)) { + var EmptyStringDescriptionStore = {}; + // wrap Symbol constructor for correct work with undefined description + var SymbolWrapper = function Symbol() { + var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]); + var result = isPrototypeOf(SymbolPrototype, this) + ? new NativeSymbol(description) + // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' + : description === undefined ? NativeSymbol() : NativeSymbol(description); + if (description === '') EmptyStringDescriptionStore[result] = true; + return result; + }; + + copyConstructorProperties(SymbolWrapper, NativeSymbol); + SymbolWrapper.prototype = SymbolPrototype; + SymbolPrototype.constructor = SymbolWrapper; + + var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)'; + var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf); + var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString); + var regexp = /^Symbol\((.*)\)[^)]+$/; + var replace = uncurryThis(''.replace); + var stringSlice = uncurryThis(''.slice); + + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + var symbol = thisSymbolValue(this); + if (hasOwn(EmptyStringDescriptionStore, symbol)) return ''; + var string = symbolDescriptiveString(symbol); + var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1'); + return desc === '' ? undefined : desc; + } + }); + + $({ global: true, constructor: true, forced: true }, { + Symbol: SymbolWrapper + }); +} + + +/***/ }), +/* 98 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.asyncIterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.asynciterator +defineWellKnownSymbol('asyncIterator'); + + +/***/ }), +/* 99 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.hasInstance` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.hasinstance +defineWellKnownSymbol('hasInstance'); + + +/***/ }), +/* 100 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.isConcatSpreadable` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable +defineWellKnownSymbol('isConcatSpreadable'); + + +/***/ }), +/* 101 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.iterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.iterator +defineWellKnownSymbol('iterator'); + + +/***/ }), +/* 102 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.match` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.match +defineWellKnownSymbol('match'); + + +/***/ }), +/* 103 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.matchAll` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.matchall +defineWellKnownSymbol('matchAll'); + + +/***/ }), +/* 104 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.replace` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.replace +defineWellKnownSymbol('replace'); + + +/***/ }), +/* 105 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.search` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.search +defineWellKnownSymbol('search'); + + +/***/ }), +/* 106 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.species` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.species +defineWellKnownSymbol('species'); + + +/***/ }), +/* 107 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.split` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.split +defineWellKnownSymbol('split'); + + +/***/ }), +/* 108 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); + +// `Symbol.toPrimitive` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.toprimitive +defineWellKnownSymbol('toPrimitive'); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + + +/***/ }), +/* 109 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineWellKnownSymbol = __webpack_require__(79); +var setToStringTag = __webpack_require__(82); + +// `Symbol.toStringTag` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.tostringtag +defineWellKnownSymbol('toStringTag'); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag(getBuiltIn('Symbol'), 'Symbol'); + + +/***/ }), +/* 110 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.unscopables` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.unscopables +defineWellKnownSymbol('unscopables'); + + +/***/ }), +/* 111 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-unused-vars -- required for functions `.length` */ +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var WEB_ASSEMBLY = 'WebAssembly'; +var WebAssembly = global[WEB_ASSEMBLY]; + +// eslint-disable-next-line es/no-error-cause -- feature detection +var FORCED = new Error('e', { cause: 7 }).cause !== 7; + +var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED); + $({ global: true, constructor: true, arity: 1, forced: FORCED }, O); +}; + +var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) { + if (WebAssembly && WebAssembly[ERROR_NAME]) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED); + $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O); + } +}; + +// https://tc39.es/ecma262/#sec-nativeerror +exportGlobalErrorCauseWrapper('Error', function (init) { + return function Error(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('EvalError', function (init) { + return function EvalError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('RangeError', function (init) { + return function RangeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('ReferenceError', function (init) { + return function ReferenceError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('SyntaxError', function (init) { + return function SyntaxError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('TypeError', function (init) { + return function TypeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('URIError', function (init) { + return function URIError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('CompileError', function (init) { + return function CompileError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('LinkError', function (init) { + return function LinkError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) { + return function RuntimeError(message) { return apply(init, this, arguments); }; +}); + + +/***/ }), +/* 112 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var createNonEnumerableProperty = __webpack_require__(43); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var proxyAccessor = __webpack_require__(117); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +module.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) { + var STACK_TRACE_LIMIT = 'stackTraceLimit'; + var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1; + var path = FULL_NAME.split('.'); + var ERROR_NAME = path[path.length - 1]; + var OriginalError = getBuiltIn.apply(null, path); + + if (!OriginalError) return; + + var OriginalErrorPrototype = OriginalError.prototype; + + // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006 + if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause; + + if (!FORCED) return OriginalError; + + var BaseError = getBuiltIn('Error'); + + var WrappedError = wrapper(function (a, b) { + var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined); + var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError(); + if (message !== undefined) createNonEnumerableProperty(result, 'message', message); + installErrorStack(result, WrappedError, result.stack, 2); + if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError); + if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]); + return result; + }); + + WrappedError.prototype = OriginalErrorPrototype; + + if (ERROR_NAME !== 'Error') { + if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError); + else copyConstructorProperties(WrappedError, BaseError, { name: true }); + } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) { + proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT); + proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace'); + } + + copyConstructorProperties(WrappedError, OriginalError); + + if (!IS_PURE) try { + // Safari 13- bug: WebAssembly errors does not have a proper `.name` + if (OriginalErrorPrototype.name !== ERROR_NAME) { + createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME); + } + OriginalErrorPrototype.constructor = WrappedError; + } catch (error) { /* empty */ } + + return WrappedError; +}; + + +/***/ }), +/* 113 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-proto -- safe */ +var uncurryThisAccessor = __webpack_require__(114); +var isObject = __webpack_require__(20); +var requireObjectCoercible = __webpack_require__(16); +var aPossiblePrototype = __webpack_require__(115); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + requireObjectCoercible(O); + aPossiblePrototype(proto); + if (!isObject(O)) return O; + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + + +/***/ }), +/* 114 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); + +module.exports = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 115 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPossiblePrototype = __webpack_require__(116); + +var $String = String; +var $TypeError = TypeError; + +module.exports = function (argument) { + if (isPossiblePrototype(argument)) return argument; + throw new $TypeError("Can't set " + $String(argument) + ' as a prototype'); +}; + + +/***/ }), +/* 116 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +module.exports = function (argument) { + return isObject(argument) || argument === null; +}; + + +/***/ }), +/* 117 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (Target, Source, key) { + key in Target || defineProperty(Target, key, { + configurable: true, + get: function () { return Source[key]; }, + set: function (it) { Source[key] = it; } + }); +}; + + +/***/ }), +/* 118 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var setPrototypeOf = __webpack_require__(113); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), +/* 119 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toString = __webpack_require__(68); + +module.exports = function (argument, $default) { + return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument); +}; + + +/***/ }), +/* 120 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); + +// `InstallErrorCause` abstract operation +// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause +module.exports = function (O, options) { + if (isObject(options) && 'cause' in options) { + createNonEnumerableProperty(O, 'cause', options.cause); + } +}; + + +/***/ }), +/* 121 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var createNonEnumerableProperty = __webpack_require__(43); +var clearErrorStack = __webpack_require__(122); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); + +// non-standard V8 +var captureStackTrace = Error.captureStackTrace; + +module.exports = function (error, C, stack, dropEntries) { + if (ERROR_STACK_INSTALLABLE) { + if (captureStackTrace) captureStackTrace(error, C); + else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries)); + } +}; + + +/***/ }), +/* 122 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var $Error = Error; +var replace = uncurryThis(''.replace); + +var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd'); +// eslint-disable-next-line redos/no-vulnerable -- safe +var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; +var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); + +module.exports = function (stack, dropEntries) { + if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) { + while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); + } return stack; +}; + + +/***/ }), +/* 123 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = !fails(function () { + var error = new Error('a'); + if (!('stack' in error)) return true; + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); + return error.stack !== 7; +}); + + +/***/ }), +/* 124 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var errorToString = __webpack_require__(125); + +var ErrorPrototype = Error.prototype; + +// `Error.prototype.toString` method fix +// https://tc39.es/ecma262/#sec-error.prototype.tostring +if (ErrorPrototype.toString !== errorToString) { + defineBuiltIn(ErrorPrototype, 'toString', errorToString); +} + + +/***/ }), +/* 125 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var normalizeStringArgument = __webpack_require__(119); + +var nativeErrorToString = Error.prototype.toString; + +var INCORRECT_TO_STRING = fails(function () { + if (DESCRIPTORS) { + // Chrome 32- incorrectly call accessor + // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe + var object = Object.create(Object.defineProperty({}, 'name', { get: function () { + return this === object; + } })); + if (nativeErrorToString.call(object) !== 'true') return true; + } + // FF10- does not properly handle non-strings + return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1' + // IE8 does not properly handle defaults + || nativeErrorToString.call({}) !== 'Error'; +}); + +module.exports = INCORRECT_TO_STRING ? function toString() { + var O = anObject(this); + var name = normalizeStringArgument(O.name, 'Error'); + var message = normalizeStringArgument(O.message); + return !name ? message : !message ? name : name + ': ' + message; +} : nativeErrorToString; + + +/***/ }), +/* 126 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(127); + + +/***/ }), +/* 127 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var create = __webpack_require__(71); +var createNonEnumerableProperty = __webpack_require__(43); +var createPropertyDescriptor = __webpack_require__(11); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var iterate = __webpack_require__(130); +var normalizeStringArgument = __webpack_require__(119); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Error = Error; +var push = [].push; + +var $AggregateError = function AggregateError(errors, message /* , options */) { + var isInstance = isPrototypeOf(AggregateErrorPrototype, this); + var that; + if (setPrototypeOf) { + that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype); + } else { + that = isInstance ? this : create(AggregateErrorPrototype); + createNonEnumerableProperty(that, TO_STRING_TAG, 'Error'); + } + if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message)); + installErrorStack(that, $AggregateError, that.stack, 1); + if (arguments.length > 2) installErrorCause(that, arguments[2]); + var errorsArray = []; + iterate(errors, push, { that: errorsArray }); + createNonEnumerableProperty(that, 'errors', errorsArray); + return that; +}; + +if (setPrototypeOf) setPrototypeOf($AggregateError, $Error); +else copyConstructorProperties($AggregateError, $Error, { name: true }); + +var AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, { + constructor: createPropertyDescriptor(1, $AggregateError), + message: createPropertyDescriptor(1, ''), + name: createPropertyDescriptor(1, 'AggregateError') +}); + +// `AggregateError` constructor +// https://tc39.es/ecma262/#sec-aggregate-error-constructor +$({ global: true, constructor: true, arity: 2 }, { + AggregateError: $AggregateError +}); + + +/***/ }), +/* 128 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var toObject = __webpack_require__(39); +var sharedKey = __webpack_require__(53); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + + +/***/ }), +/* 129 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + + +/***/ }), +/* 130 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var isArrayIteratorMethod = __webpack_require__(131); +var lengthOfArrayLike = __webpack_require__(63); +var isPrototypeOf = __webpack_require__(24); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var iteratorClose = __webpack_require__(135); + +var $TypeError = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +module.exports = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + + +/***/ }), +/* 131 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; + + +/***/ }), +/* 132 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 133 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var getIteratorMethod = __webpack_require__(134); + +var $TypeError = TypeError; + +module.exports = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); + throw new $TypeError(tryToString(argument) + ' is not iterable'); +}; + + +/***/ }), +/* 134 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); +var getMethod = __webpack_require__(29); +var isNullOrUndefined = __webpack_require__(17); +var Iterators = __webpack_require__(132); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = function (it) { + if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) + || getMethod(it, '@@iterator') + || Iterators[classof(it)]; +}; + + +/***/ }), +/* 135 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var getMethod = __webpack_require__(29); + +module.exports = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject(innerResult); + return value; +}; + + +/***/ }), +/* 136 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var fails = __webpack_require__(7); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var AGGREGATE_ERROR = 'AggregateError'; +var $AggregateError = getBuiltIn(AGGREGATE_ERROR); + +var FORCED = !fails(function () { + return $AggregateError([1]).errors[0] !== 1; +}) && fails(function () { + return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7; +}); + +// https://tc39.es/ecma262/#sec-aggregate-error +$({ global: true, constructor: true, arity: 2, forced: FORCED }, { + AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) { + // eslint-disable-next-line no-unused-vars -- required for functions `.length` + return function AggregateError(errors, message) { return apply(init, this, arguments); }; + }, FORCED, true) +}); + + +/***/ }), +/* 137 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.at` method +// https://tc39.es/ecma262/#sec-array.prototype.at +$({ target: 'Array', proto: true }, { + at: function at(index) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; + } +}); + +addToUnscopables('at'); + + +/***/ }), +/* 138 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var create = __webpack_require__(71); +var defineProperty = (__webpack_require__(44).f); + +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + + +/***/ }), +/* 139 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isArray = __webpack_require__(88); +var isObject = __webpack_require__(20); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var createProperty = __webpack_require__(141); +var arraySpeciesCreate = __webpack_require__(86); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); + +// We can't use this feature detection in V8 since it causes +// deoptimization and serious performance degradation +// https://github.com/zloirock/core-js/issues/679 +var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; +}); + +var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); +}; + +var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + +// `Array.prototype.concat` method +// https://tc39.es/ecma262/#sec-array.prototype.concat +// with adding support of @@isConcatSpreadable and @@species +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } +}); + + +/***/ }), +/* 140 */ +/***/ (function(module) { + + +var $TypeError = TypeError; +var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + +module.exports = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded'); + return it; +}; + + +/***/ }), +/* 141 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = function (object, key, value) { + if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; +}; + + +/***/ }), +/* 142 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + + +/***/ }), +/* 143 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var copyWithin = __webpack_require__(144); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +$({ target: 'Array', proto: true }, { + copyWithin: copyWithin +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('copyWithin'); + + +/***/ }), +/* 144 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); + +var min = Math.min; + +// `Array.prototype.copyWithin` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +// eslint-disable-next-line es/no-array-prototype-copywithin -- safe +module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + while (count-- > 0) { + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + to += inc; + from += inc; + } return O; +}; + + +/***/ }), +/* 145 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +module.exports = function (O, P) { + if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O)); +}; + + +/***/ }), +/* 146 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $every = (__webpack_require__(83).every); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('every'); + +// `Array.prototype.every` method +// https://tc39.es/ecma262/#sec-array.prototype.every +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + every: function every(callbackfn /* , thisArg */) { + return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 147 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); +}; + + +/***/ }), +/* 148 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fill = __webpack_require__(149); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.fill` method +// https://tc39.es/ecma262/#sec-array.prototype.fill +$({ target: 'Array', proto: true }, { + fill: fill +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('fill'); + + +/***/ }), +/* 149 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.fill` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.fill +module.exports = function fill(value /* , start = 0, end = @length */) { + var O = toObject(this); + var length = lengthOfArrayLike(O); + var argumentsLength = arguments.length; + var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); + var end = argumentsLength > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + while (endPos > index) O[index++] = value; + return O; +}; + + +/***/ }), +/* 150 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $filter = (__webpack_require__(83).filter); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + +// `Array.prototype.filter` method +// https://tc39.es/ecma262/#sec-array.prototype.filter +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 151 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $find = (__webpack_require__(83).find); +var addToUnscopables = __webpack_require__(138); + +var FIND = 'find'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-find -- testing +if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.find` method +// https://tc39.es/ecma262/#sec-array.prototype.find +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND); + + +/***/ }), +/* 152 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findIndex = (__webpack_require__(83).findIndex); +var addToUnscopables = __webpack_require__(138); + +var FIND_INDEX = 'findIndex'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-findindex -- testing +if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findindex +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + findIndex: function findIndex(callbackfn /* , that = undefined */) { + return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND_INDEX); + + +/***/ }), +/* 153 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLast = (__webpack_require__(154).findLast); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLast` method +// https://tc39.es/ecma262/#sec-array.prototype.findlast +$({ target: 'Array', proto: true }, { + findLast: function findLast(callbackfn /* , that = undefined */) { + return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLast'); + + +/***/ }), +/* 154 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ findLast, findLastIndex }` methods implementation +var createMethod = function (TYPE) { + var IS_FIND_LAST_INDEX = TYPE === 1; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IndexedObject(O); + var index = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var value, result; + while (index-- > 0) { + value = self[index]; + result = boundFunction(value, index, O); + if (result) switch (TYPE) { + case 0: return value; // findLast + case 1: return index; // findLastIndex + } + } + return IS_FIND_LAST_INDEX ? -1 : undefined; + }; +}; + +module.exports = { + // `Array.prototype.findLast` method + // https://github.com/tc39/proposal-array-find-from-last + findLast: createMethod(0), + // `Array.prototype.findLastIndex` method + // https://github.com/tc39/proposal-array-find-from-last + findLastIndex: createMethod(1) +}; + + +/***/ }), +/* 155 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLastIndex = (__webpack_require__(154).findLastIndex); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findlastindex +$({ target: 'Array', proto: true }, { + findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) { + return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLastIndex'); + + +/***/ }), +/* 156 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flat` method +// https://tc39.es/ecma262/#sec-array.prototype.flat +$({ target: 'Array', proto: true }, { + flat: function flat(/* depthArg = 1 */) { + var depthArg = arguments.length ? arguments[0] : undefined; + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg)); + return A; + } +}); + + +/***/ }), +/* 157 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var bind = __webpack_require__(84); + +// `FlattenIntoArray` abstract operation +// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray +var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? bind(mapper, thisArg) : false; + var element, elementLen; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + if (depth > 0 && isArray(element)) { + elementLen = lengthOfArrayLike(element); + targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1; + } else { + doesNotExceedSafeInteger(targetIndex + 1); + target[targetIndex] = element; + } + + targetIndex++; + } + sourceIndex++; + } + return targetIndex; +}; + +module.exports = flattenIntoArray; + + +/***/ }), +/* 158 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flatMap` method +// https://tc39.es/ecma262/#sec-array.prototype.flatmap +$({ target: 'Array', proto: true }, { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A; + aCallable(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return A; + } +}); + + +/***/ }), +/* 159 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var forEach = __webpack_require__(160); + +// `Array.prototype.forEach` method +// https://tc39.es/ecma262/#sec-array.prototype.foreach +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, { + forEach: forEach +}); + + +/***/ }), +/* 160 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $forEach = (__webpack_require__(83).forEach); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('forEach'); + +// `Array.prototype.forEach` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.foreach +module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +} : [].forEach; + + +/***/ }), +/* 161 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var from = __webpack_require__(162); +var checkCorrectnessOfIteration = __webpack_require__(164); + +var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); +}); + +// `Array.from` method +// https://tc39.es/ecma262/#sec-array.from +$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from +}); + + +/***/ }), +/* 162 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var toObject = __webpack_require__(39); +var callWithSafeIterationClosing = __webpack_require__(163); +var isArrayIteratorMethod = __webpack_require__(131); +var isConstructor = __webpack_require__(89); +var lengthOfArrayLike = __webpack_require__(63); +var createProperty = __webpack_require__(141); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); + +var $Array = Array; + +// `Array.from` method implementation +// https://tc39.es/ecma262/#sec-array.from +module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + result = IS_CONSTRUCTOR ? new this() : []; + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + for (;!(step = call(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; +}; + + +/***/ }), +/* 163 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var iteratorClose = __webpack_require__(135); + +// call something on iterator step with safe closing on error +module.exports = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } +}; + + +/***/ }), +/* 164 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +module.exports = function (exec, SKIP_CLOSING) { + try { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + } catch (error) { return false; } // workaround of old WebKit + `eval` bug + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + + +/***/ }), +/* 165 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $includes = (__webpack_require__(59).includes); +var fails = __webpack_require__(7); +var addToUnscopables = __webpack_require__(138); + +// FF99+ bug +var BROKEN_ON_SPARSE = fails(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); +}); + +// `Array.prototype.includes` method +// https://tc39.es/ecma262/#sec-array.prototype.includes +$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('includes'); + + +/***/ }), +/* 166 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-indexof -- required for testing */ +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var $indexOf = (__webpack_require__(59).indexOf); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeIndexOf = uncurryThis([].indexOf); + +var NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0; +var FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf'); + +// `Array.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.indexof +$({ target: 'Array', proto: true, forced: FORCED }, { + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + var fromIndex = arguments.length > 1 ? arguments[1] : undefined; + return NEGATIVE_ZERO + // convert -0 to +0 + ? nativeIndexOf(this, searchElement, fromIndex) || 0 + : $indexOf(this, searchElement, fromIndex); + } +}); + + +/***/ }), +/* 167 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); + +// `Array.isArray` method +// https://tc39.es/ecma262/#sec-array.isarray +$({ target: 'Array', stat: true }, { + isArray: isArray +}); + + +/***/ }), +/* 168 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); +var Iterators = __webpack_require__(132); +var InternalStateModule = __webpack_require__(51); +var defineProperty = (__webpack_require__(44).f); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +module.exports = defineIterator(Array, 'Array', function (iterated, kind) { + setInternalState(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + switch (state.kind) { + case 'keys': return createIterResultObject(index, false); + case 'values': return createIterResultObject(target[index], false); + } return createIterResultObject([index, target[index]], false); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +// V8 ~ Chrome 45- bug +if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try { + defineProperty(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 169 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var IS_PURE = __webpack_require__(36); +var FunctionName = __webpack_require__(49); +var isCallable = __webpack_require__(21); +var createIteratorConstructor = __webpack_require__(170); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); +var IteratorsCore = __webpack_require__(171); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR = wellKnownSymbol('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND]; + + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } + + return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { + defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn(IterablePrototype, KEY, methods[KEY]); + } + } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); + } + Iterators[NAME] = defaultIterator; + + return methods; +}; + + +/***/ }), +/* 170 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IteratorPrototype = (__webpack_require__(171).IteratorPrototype); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var setToStringTag = __webpack_require__(82); +var Iterators = __webpack_require__(132); + +var returnThis = function () { return this; }; + +module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; +}; + + +/***/ }), +/* 171 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var getPrototypeOf = __webpack_require__(128); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype[ITERATOR].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; +else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable(IteratorPrototype[ITERATOR])) { + defineBuiltIn(IteratorPrototype, ITERATOR, function () { + return this; + }); +} + +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + + +/***/ }), +/* 172 */ +/***/ (function(module) { + + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +module.exports = function (value, done) { + return { value: value, done: done }; +}; + + +/***/ }), +/* 173 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toIndexedObject = __webpack_require__(12); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeJoin = uncurryThis([].join); + +var ES3_STRINGS = IndexedObject !== Object; +var FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ','); + +// `Array.prototype.join` method +// https://tc39.es/ecma262/#sec-array.prototype.join +$({ target: 'Array', proto: true, forced: FORCED }, { + join: function join(separator) { + return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator); + } +}); + + +/***/ }), +/* 174 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var lastIndexOf = __webpack_require__(175); + +// `Array.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing +$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, { + lastIndexOf: lastIndexOf +}); + + +/***/ }), +/* 175 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-lastindexof -- safe */ +var apply = __webpack_require__(94); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var arrayMethodIsStrict = __webpack_require__(147); + +var min = Math.min; +var $lastIndexOf = [].lastIndexOf; +var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; +var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); +var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; + +// `Array.prototype.lastIndexOf` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0; + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + if (length === 0) return -1; + var index = length - 1; + if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1])); + if (index < 0) index = length + index; + for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; + return -1; +} : $lastIndexOf; + + +/***/ }), +/* 176 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $map = (__webpack_require__(83).map); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); + +// `Array.prototype.map` method +// https://tc39.es/ecma262/#sec-array.prototype.map +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 177 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isConstructor = __webpack_require__(89); +var createProperty = __webpack_require__(141); + +var $Array = Array; + +var ISNT_GENERIC = fails(function () { + function F() { /* empty */ } + // eslint-disable-next-line es/no-array-of -- safe + return !($Array.of.call(F) instanceof F); +}); + +// `Array.of` method +// https://tc39.es/ecma262/#sec-array.of +// WebKit Array.of isn't generic +$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { + of: function of(/* ...args */) { + var index = 0; + var argumentsLength = arguments.length; + var result = new (isConstructor(this) ? this : $Array)(argumentsLength); + while (argumentsLength > index) createProperty(result, index, arguments[index++]); + result.length = argumentsLength; + return result; + } +}); + + +/***/ }), +/* 178 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var fails = __webpack_require__(7); + +var INCORRECT_TO_LENGTH = fails(function () { + return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; +}); + +// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError +// https://bugs.chromium.org/p/v8/issues/detail?id=12681 +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).push(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); + +// `Array.prototype.push` method +// https://tc39.es/ecma262/#sec-array.prototype.push +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + push: function push(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + doesNotExceedSafeInteger(len + argCount); + for (var i = 0; i < argCount; i++) { + O[len] = arguments[i]; + len++; + } + setArrayLength(O, len); + return len; + } +}); + + +/***/ }), +/* 179 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var isArray = __webpack_require__(88); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Safari < 13 does not throw an error in this case +var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () { + // makes no sense without proper strict mode support + if (this !== undefined) return true; + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).length = 1; + } catch (error) { + return error instanceof TypeError; + } +}(); + +module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) { + if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) { + throw new $TypeError('Cannot set read only .length'); + } return O.length = length; +} : function (O, length) { + return O.length = length; +}; + + +/***/ }), +/* 180 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduce = (__webpack_require__(181).left); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce'); + +// `Array.prototype.reduce` method +// https://tc39.es/ecma262/#sec-array.prototype.reduce +$({ target: 'Array', proto: true, forced: FORCED }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 181 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); +var lengthOfArrayLike = __webpack_require__(63); + +var $TypeError = TypeError; + +var REDUCE_EMPTY = 'Reduce of empty array with no initial value'; + +// `Array.prototype.{ reduce, reduceRight }` methods implementation +var createMethod = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + var O = toObject(that); + var self = IndexedObject(O); + var length = lengthOfArrayLike(O); + aCallable(callbackfn); + if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw new $TypeError(REDUCE_EMPTY); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; +}; + +module.exports = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod(true) +}; + + +/***/ }), +/* 182 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var classof = __webpack_require__(15); + +module.exports = classof(global.process) === 'process'; + + +/***/ }), +/* 183 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduceRight = (__webpack_require__(181).right); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight'); + +// `Array.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-array.prototype.reduceright +$({ target: 'Array', proto: true, forced: FORCED }, { + reduceRight: function reduceRight(callbackfn /* , initialValue */) { + return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 184 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); + +var nativeReverse = uncurryThis([].reverse); +var test = [1, 2]; + +// `Array.prototype.reverse` method +// https://tc39.es/ecma262/#sec-array.prototype.reverse +// fix for Safari 12.0 bug +// https://bugs.webkit.org/show_bug.cgi?id=188794 +$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, { + reverse: function reverse() { + // eslint-disable-next-line no-self-assign -- dirty hack + if (isArray(this)) this.length = this.length; + return nativeReverse(this); + } +}); + + +/***/ }), +/* 185 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var toIndexedObject = __webpack_require__(12); +var createProperty = __webpack_require__(141); +var wellKnownSymbol = __webpack_require__(33); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var nativeSlice = __webpack_require__(76); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; +var max = Math.max; + +// `Array.prototype.slice` method +// https://tc39.es/ecma262/#sec-array.prototype.slice +// fallback for not array-like ES3 strings and DOM objects +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + slice: function slice(start, end) { + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject(Constructor)) { + Constructor = Constructor[SPECIES]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); + result.length = n; + return result; + } +}); + + +/***/ }), +/* 186 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $some = (__webpack_require__(83).some); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('some'); + +// `Array.prototype.some` method +// https://tc39.es/ecma262/#sec-array.prototype.some +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + some: function some(callbackfn /* , thisArg */) { + return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 187 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var internalSort = __webpack_require__(188); +var arrayMethodIsStrict = __webpack_require__(147); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var test = []; +var nativeSort = uncurryThis(test.sort); +var push = uncurryThis(test.push); + +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var STABLE_SORT = !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; +}); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString(x) > toString(y) ? 1 : -1; + }; +}; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + + var array = toObject(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = lengthOfArrayLike(items); + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) deletePropertyOrThrow(array, index++); + + return array; + } +}); + + +/***/ }), +/* 188 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySlice = __webpack_require__(76); + +var floor = Math.floor; + +var sort = function (array, comparefn) { + var length = array.length; + + if (length < 8) { + // insertion sort + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } + } else { + // merge sort + var middle = floor(length / 2); + var left = sort(arraySlice(array, 0, middle), comparefn); + var right = sort(arraySlice(array, middle), comparefn); + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } + } + + return array; +}; + +module.exports = sort; + + +/***/ }), +/* 189 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var firefox = userAgent.match(/firefox\/(\d+)/i); + +module.exports = !!firefox && +firefox[1]; + + +/***/ }), +/* 190 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var UA = __webpack_require__(28); + +module.exports = /MSIE|Trident/.test(UA); + + +/***/ }), +/* 191 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + +module.exports = !!webkit && +webkit[1]; + + +/***/ }), +/* 192 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setSpecies = __webpack_require__(193); + +// `Array[@@species]` getter +// https://tc39.es/ecma262/#sec-get-array-@@species +setSpecies('Array'); + + +/***/ }), +/* 193 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineBuiltInAccessor = __webpack_require__(77); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + + if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + defineBuiltInAccessor(Constructor, SPECIES, { + configurable: true, + get: function () { return this; } + }); + } +}; + + +/***/ }), +/* 194 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var arraySpeciesCreate = __webpack_require__(86); +var createProperty = __webpack_require__(141); +var deletePropertyOrThrow = __webpack_require__(145); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); + +var max = Math.max; +var min = Math.min; + +// `Array.prototype.splice` method +// https://tc39.es/ecma262/#sec-array.prototype.splice +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + splice: function splice(start, deleteCount /* , ...items */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var insertCount, actualDeleteCount, A, k, from, to; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = arraySpeciesCreate(O, actualDeleteCount); + for (k = 0; k < actualDeleteCount; k++) { + from = actualStart + k; + if (from in O) createProperty(A, k, O[from]); + } + A.length = actualDeleteCount; + if (insertCount < actualDeleteCount) { + for (k = actualStart; k < len - actualDeleteCount; k++) { + from = k + actualDeleteCount; + to = k + insertCount; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1); + } else if (insertCount > actualDeleteCount) { + for (k = len - actualDeleteCount; k > actualStart; k--) { + from = k + actualDeleteCount - 1; + to = k + insertCount - 1; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + } + for (k = 0; k < insertCount; k++) { + O[k + actualStart] = arguments[k + 2]; + } + setArrayLength(O, len - actualDeleteCount + insertCount); + return A; + } +}); + + +/***/ }), +/* 195 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayToReversed = __webpack_require__(196); +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; + +// `Array.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-array.prototype.toreversed +$({ target: 'Array', proto: true }, { + toReversed: function toReversed() { + return arrayToReversed(toIndexedObject(this), $Array); + } +}); + +addToUnscopables('toReversed'); + + +/***/ }), +/* 196 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed +module.exports = function (O, C) { + var len = lengthOfArrayLike(O); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = O[len - k - 1]; + return A; +}; + + +/***/ }), +/* 197 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toIndexedObject = __webpack_require__(12); +var arrayFromConstructorAndList = __webpack_require__(198); +var getBuiltInPrototypeMethod = __webpack_require__(199); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; +var sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort')); + +// `Array.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-array.prototype.tosorted +$({ target: 'Array', proto: true }, { + toSorted: function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = toIndexedObject(this); + var A = arrayFromConstructorAndList($Array, O); + return sort(A, compareFn); + } +}); + +addToUnscopables('toSorted'); + + +/***/ }), +/* 198 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +module.exports = function (Constructor, list, $length) { + var index = 0; + var length = arguments.length > 2 ? $length : lengthOfArrayLike(list); + var result = new Constructor(length); + while (length > index) result[index] = list[index++]; + return result; +}; + + +/***/ }), +/* 199 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = function (CONSTRUCTOR, METHOD) { + var Constructor = global[CONSTRUCTOR]; + var Prototype = Constructor && Constructor.prototype; + return Prototype && Prototype[METHOD]; +}; + + +/***/ }), +/* 200 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var addToUnscopables = __webpack_require__(138); +var doesNotExceedSafeInteger = __webpack_require__(140); +var lengthOfArrayLike = __webpack_require__(63); +var toAbsoluteIndex = __webpack_require__(60); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); + +var $Array = Array; +var max = Math.max; +var min = Math.min; + +// `Array.prototype.toSpliced` method +// https://tc39.es/ecma262/#sec-array.prototype.tospliced +$({ target: 'Array', proto: true }, { + toSpliced: function toSpliced(start, deleteCount /* , ...items */) { + var O = toIndexedObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var k = 0; + var insertCount, actualDeleteCount, newLen, A; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = $Array(newLen); + + for (; k < actualStart; k++) A[k] = O[k]; + for (; k < actualStart + insertCount; k++) A[k] = arguments[k - actualStart + 2]; + for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount]; + + return A; + } +}); + +addToUnscopables('toSpliced'); + + +/***/ }), +/* 201 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flat'); + + +/***/ }), +/* 202 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flatMap'); + + +/***/ }), +/* 203 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var deletePropertyOrThrow = __webpack_require__(145); +var doesNotExceedSafeInteger = __webpack_require__(140); + +// IE8- +var INCORRECT_RESULT = [].unshift(0) !== 1; + +// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).unshift(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength(); + +// `Array.prototype.unshift` method +// https://tc39.es/ecma262/#sec-array.prototype.unshift +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + unshift: function unshift(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + if (argCount) { + doesNotExceedSafeInteger(len + argCount); + var k = len; + while (k--) { + var to = k + argCount; + if (k in O) O[to] = O[k]; + else deletePropertyOrThrow(O, to); + } + for (var j = 0; j < argCount; j++) { + O[j] = arguments[j]; + } + } return setArrayLength(O, len + argCount); + } +}); + + +/***/ }), +/* 204 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayWith = __webpack_require__(205); +var toIndexedObject = __webpack_require__(12); + +var $Array = Array; + +// `Array.prototype.with` method +// https://tc39.es/ecma262/#sec-array.prototype.with +$({ target: 'Array', proto: true }, { + 'with': function (index, value) { + return arrayWith(toIndexedObject(this), $Array, index, value); + } +}); + + +/***/ }), +/* 205 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with +module.exports = function (O, C, index, value) { + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; + if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index'); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = k === actualIndex ? value : O[k]; + return A; +}; + + +/***/ }), +/* 206 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var arrayBufferModule = __webpack_require__(207); +var setSpecies = __webpack_require__(193); + +var ARRAY_BUFFER = 'ArrayBuffer'; +var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER]; +var NativeArrayBuffer = global[ARRAY_BUFFER]; + +// `ArrayBuffer` constructor +// https://tc39.es/ecma262/#sec-arraybuffer-constructor +$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, { + ArrayBuffer: ArrayBuffer +}); + +setSpecies(ARRAY_BUFFER); + + +/***/ }), +/* 207 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var FunctionName = __webpack_require__(49); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var fails = __webpack_require__(7); +var anInstance = __webpack_require__(210); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var fround = __webpack_require__(212); +var IEEE754 = __webpack_require__(215); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var arrayFill = __webpack_require__(149); +var arraySlice = __webpack_require__(76); +var inheritIfRequired = __webpack_require__(118); +var copyConstructorProperties = __webpack_require__(55); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var ARRAY_BUFFER = 'ArrayBuffer'; +var DATA_VIEW = 'DataView'; +var PROTOTYPE = 'prototype'; +var WRONG_LENGTH = 'Wrong length'; +var WRONG_INDEX = 'Wrong index'; +var getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER); +var getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW); +var setInternalState = InternalStateModule.set; +var NativeArrayBuffer = global[ARRAY_BUFFER]; +var $ArrayBuffer = NativeArrayBuffer; +var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE]; +var $DataView = global[DATA_VIEW]; +var DataViewPrototype = $DataView && $DataView[PROTOTYPE]; +var ObjectPrototype = Object.prototype; +var Array = global.Array; +var RangeError = global.RangeError; +var fill = uncurryThis(arrayFill); +var reverse = uncurryThis([].reverse); + +var packIEEE754 = IEEE754.pack; +var unpackIEEE754 = IEEE754.unpack; + +var packInt8 = function (number) { + return [number & 0xFF]; +}; + +var packInt16 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF]; +}; + +var packInt32 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF]; +}; + +var unpackInt32 = function (buffer) { + return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0]; +}; + +var packFloat32 = function (number) { + return packIEEE754(fround(number), 23, 4); +}; + +var packFloat64 = function (number) { + return packIEEE754(number, 52, 8); +}; + +var addGetter = function (Constructor, key, getInternalState) { + defineBuiltInAccessor(Constructor[PROTOTYPE], key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var get = function (view, count, index, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + var pack = arraySlice(bytes, start, start + count); + return boolIsLittleEndian ? pack : reverse(pack); +}; + +var set = function (view, count, index, conversion, value, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var pack = conversion(+value); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1]; +}; + +if (!NATIVE_ARRAY_BUFFER) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + var byteLength = toIndex(length); + setInternalState(this, { + type: ARRAY_BUFFER, + bytes: fill(Array(byteLength), 0), + byteLength: byteLength + }); + if (!DESCRIPTORS) { + this.byteLength = byteLength; + this.detached = false; + } + }; + + ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE]; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, DataViewPrototype); + anInstance(buffer, ArrayBufferPrototype); + var bufferState = getInternalArrayBufferState(buffer); + var bufferLength = bufferState.byteLength; + var offset = toIntegerOrInfinity(byteOffset); + if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH); + setInternalState(this, { + type: DATA_VIEW, + buffer: buffer, + byteLength: byteLength, + byteOffset: offset, + bytes: bufferState.bytes + }); + if (!DESCRIPTORS) { + this.buffer = buffer; + this.byteLength = byteLength; + this.byteOffset = offset; + } + }; + + DataViewPrototype = $DataView[PROTOTYPE]; + + if (DESCRIPTORS) { + addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState); + addGetter($DataView, 'buffer', getInternalDataViewState); + addGetter($DataView, 'byteLength', getInternalDataViewState); + addGetter($DataView, 'byteOffset', getInternalDataViewState); + } + + defineBuiltIns(DataViewPrototype, { + getInt8: function getInt8(byteOffset) { + return get(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)); + }, + getUint32: function getUint32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0; + }, + getFloat32: function getFloat32(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23); + }, + getFloat64: function getFloat64(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52); + }, + setInt8: function setInt8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setInt16: function setInt16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint16: function setUint16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setInt32: function setInt32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint32: function setUint32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { + set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false); + } + }); +} else { + var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER; + /* eslint-disable no-new -- required for testing */ + if (!fails(function () { + NativeArrayBuffer(1); + }) || !fails(function () { + new NativeArrayBuffer(-1); + }) || fails(function () { + new NativeArrayBuffer(); + new NativeArrayBuffer(1.5); + new NativeArrayBuffer(NaN); + return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME; + })) { + /* eslint-enable no-new -- required for testing */ + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer); + }; + + $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype; + + ArrayBufferPrototype.constructor = $ArrayBuffer; + + copyConstructorProperties($ArrayBuffer, NativeArrayBuffer); + } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER); + } + + // WebKit bug - the same parent prototype for typed arrays and data view + if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) { + setPrototypeOf(DataViewPrototype, ObjectPrototype); + } + + // iOS Safari 7.x bug + var testView = new $DataView(new $ArrayBuffer(2)); + var $setInt8 = uncurryThis(DataViewPrototype.setInt8); + testView.setInt8(0, 2147483648); + testView.setInt8(1, 2147483649); + if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, { + setInt8: function setInt8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + } + }, { unsafe: true }); +} + +setToStringTag($ArrayBuffer, ARRAY_BUFFER); +setToStringTag($DataView, DATA_VIEW); + +module.exports = { + ArrayBuffer: $ArrayBuffer, + DataView: $DataView +}; + + +/***/ }), +/* 208 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-typed-arrays -- safe +module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; + + +/***/ }), +/* 209 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); + +module.exports = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; +}; + + +/***/ }), +/* 210 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPrototypeOf = __webpack_require__(24); + +var $TypeError = TypeError; + +module.exports = function (it, Prototype) { + if (isPrototypeOf(Prototype, it)) return it; + throw new $TypeError('Incorrect invocation'); +}; + + +/***/ }), +/* 211 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); + +var $RangeError = RangeError; + +// `ToIndex` abstract operation +// https://tc39.es/ecma262/#sec-toindex +module.exports = function (it) { + if (it === undefined) return 0; + var number = toIntegerOrInfinity(it); + var length = toLength(number); + if (number !== length) throw new $RangeError('Wrong length or index'); + return length; +}; + + +/***/ }), +/* 212 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var floatRound = __webpack_require__(213); + +var FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23; +var FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104 +var FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126; + +// `Math.fround` method implementation +// https://tc39.es/ecma262/#sec-math.fround +// eslint-disable-next-line es/no-math-fround -- safe +module.exports = Math.fround || function fround(x) { + return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE); +}; + + +/***/ }), +/* 213 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var sign = __webpack_require__(214); + +var abs = Math.abs; + +var EPSILON = 2.220446049250313e-16; // Number.EPSILON +var INVERSE_EPSILON = 1 / EPSILON; + +var roundTiesToEven = function (n) { + return n + INVERSE_EPSILON - INVERSE_EPSILON; +}; + +module.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) { + var n = +x; + var absolute = abs(n); + var s = sign(n); + if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON; + var a = (1 + FLOAT_EPSILON / EPSILON) * absolute; + var result = a - (a - absolute); + // eslint-disable-next-line no-self-compare -- NaN check + if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity; + return s * result; +}; + + +/***/ }), +/* 214 */ +/***/ (function(module) { + + +// `Math.sign` method implementation +// https://tc39.es/ecma262/#sec-math.sign +// eslint-disable-next-line es/no-math-sign -- safe +module.exports = Math.sign || function sign(x) { + var n = +x; + // eslint-disable-next-line no-self-compare -- NaN check + return n === 0 || n !== n ? n : n < 0 ? -1 : 1; +}; + + +/***/ }), +/* 215 */ +/***/ (function(module) { + + +// IEEE754 conversions based on https://github.com/feross/ieee754 +var $Array = Array; +var abs = Math.abs; +var pow = Math.pow; +var floor = Math.floor; +var log = Math.log; +var LN2 = Math.LN2; + +var pack = function (number, mantissaLength, bytes) { + var buffer = $Array(bytes); + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0; + var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; + var index = 0; + var exponent, mantissa, c; + number = abs(number); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number || number === Infinity) { + // eslint-disable-next-line no-self-compare -- NaN check + mantissa = number !== number ? 1 : 0; + exponent = eMax; + } else { + exponent = floor(log(number) / LN2); + c = pow(2, -exponent); + if (number * c < 1) { + exponent--; + c *= 2; + } + if (exponent + eBias >= 1) { + number += rt / c; + } else { + number += rt * pow(2, 1 - eBias); + } + if (number * c >= 2) { + exponent++; + c /= 2; + } + if (exponent + eBias >= eMax) { + mantissa = 0; + exponent = eMax; + } else if (exponent + eBias >= 1) { + mantissa = (number * c - 1) * pow(2, mantissaLength); + exponent += eBias; + } else { + mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength); + exponent = 0; + } + } + while (mantissaLength >= 8) { + buffer[index++] = mantissa & 255; + mantissa /= 256; + mantissaLength -= 8; + } + exponent = exponent << mantissaLength | mantissa; + exponentLength += mantissaLength; + while (exponentLength > 0) { + buffer[index++] = exponent & 255; + exponent /= 256; + exponentLength -= 8; + } + buffer[--index] |= sign * 128; + return buffer; +}; + +var unpack = function (buffer, mantissaLength) { + var bytes = buffer.length; + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var nBits = exponentLength - 7; + var index = bytes - 1; + var sign = buffer[index--]; + var exponent = sign & 127; + var mantissa; + sign >>= 7; + while (nBits > 0) { + exponent = exponent * 256 + buffer[index--]; + nBits -= 8; + } + mantissa = exponent & (1 << -nBits) - 1; + exponent >>= -nBits; + nBits += mantissaLength; + while (nBits > 0) { + mantissa = mantissa * 256 + buffer[index--]; + nBits -= 8; + } + if (exponent === 0) { + exponent = 1 - eBias; + } else if (exponent === eMax) { + return mantissa ? NaN : sign ? -Infinity : Infinity; + } else { + mantissa += pow(2, mantissaLength); + exponent -= eBias; + } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength); +}; + +module.exports = { + pack: pack, + unpack: unpack +}; + + +/***/ }), +/* 216 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferViewCore = __webpack_require__(217); + +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; + +// `ArrayBuffer.isView` method +// https://tc39.es/ecma262/#sec-arraybuffer.isview +$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + isView: ArrayBufferViewCore.isView +}); + + +/***/ }), +/* 217 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var tryToString = __webpack_require__(31); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var wellKnownSymbol = __webpack_require__(33); +var uid = __webpack_require__(40); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = global.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; +var TypeError = global.TypeError; + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); +var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; +// Fixing native typed arrays in Opera Presto crashes the browser, see #595 +var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera'; +var TYPED_ARRAY_TAG_REQUIRED = false; +var NAME, Constructor, Prototype; + +var TypedArrayConstructorsList = { + Int8Array: 1, + Uint8Array: 1, + Uint8ClampedArray: 1, + Int16Array: 2, + Uint16Array: 2, + Int32Array: 4, + Uint32Array: 4, + Float32Array: 4, + Float64Array: 8 +}; + +var BigIntArrayConstructorsList = { + BigInt64Array: 8, + BigUint64Array: 8 +}; + +var isView = function isView(it) { + if (!isObject(it)) return false; + var klass = classof(it); + return klass === 'DataView' + || hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var getTypedArrayConstructor = function (it) { + var proto = getPrototypeOf(it); + if (!isObject(proto)) return; + var state = getInternalState(proto); + return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto); +}; + +var isTypedArray = function (it) { + if (!isObject(it)) return false; + var klass = classof(it); + return hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var aTypedArray = function (it) { + if (isTypedArray(it)) return it; + throw new TypeError('Target is not a typed array'); +}; + +var aTypedArrayConstructor = function (C) { + if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C; + throw new TypeError(tryToString(C) + ' is not a typed array constructor'); +}; + +var exportTypedArrayMethod = function (KEY, property, forced, options) { + if (!DESCRIPTORS) return; + if (forced) for (var ARRAY in TypedArrayConstructorsList) { + var TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try { + delete TypedArrayConstructor.prototype[KEY]; + } catch (error) { + // old WebKit bug - some methods are non-configurable + try { + TypedArrayConstructor.prototype[KEY] = property; + } catch (error2) { /* empty */ } + } + } + if (!TypedArrayPrototype[KEY] || forced) { + defineBuiltIn(TypedArrayPrototype, KEY, forced ? property + : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options); + } +}; + +var exportTypedArrayStaticMethod = function (KEY, property, forced) { + var ARRAY, TypedArrayConstructor; + if (!DESCRIPTORS) return; + if (setPrototypeOf) { + if (forced) for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try { + delete TypedArrayConstructor[KEY]; + } catch (error) { /* empty */ } + } + if (!TypedArray[KEY] || forced) { + // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable + try { + return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property); + } catch (error) { /* empty */ } + } else return; + } + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); + } + } +}; + +for (NAME in TypedArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else NATIVE_ARRAY_BUFFER_VIEWS = false; +} + +for (NAME in BigIntArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; +} + +// WebKit bug - typed arrays constructors prototype is Object.prototype +if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) { + // eslint-disable-next-line no-shadow -- safe + TypedArray = function TypedArray() { + throw new TypeError('Incorrect invocation'); + }; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME], TypedArray); + } +} + +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype); + } +} + +// WebKit bug - one more object in Uint8ClampedArray prototype chain +if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { + setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); +} + +if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { + TYPED_ARRAY_TAG_REQUIRED = true; + defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, { + configurable: true, + get: function () { + return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; + } + }); + for (NAME in TypedArrayConstructorsList) if (global[NAME]) { + createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME); + } +} + +module.exports = { + NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, + TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG, + aTypedArray: aTypedArray, + aTypedArrayConstructor: aTypedArrayConstructor, + exportTypedArrayMethod: exportTypedArrayMethod, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, + getTypedArrayConstructor: getTypedArrayConstructor, + isView: isView, + isTypedArray: isTypedArray, + TypedArray: TypedArray, + TypedArrayPrototype: TypedArrayPrototype +}; + + +/***/ }), +/* 218 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var ArrayBufferModule = __webpack_require__(207); +var anObject = __webpack_require__(46); +var toAbsoluteIndex = __webpack_require__(60); +var toLength = __webpack_require__(64); +var speciesConstructor = __webpack_require__(219); + +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var DataView = ArrayBufferModule.DataView; +var DataViewPrototype = DataView.prototype; +var nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice); +var getUint8 = uncurryThis(DataViewPrototype.getUint8); +var setUint8 = uncurryThis(DataViewPrototype.setUint8); + +var INCORRECT_SLICE = fails(function () { + return !new ArrayBuffer(2).slice(1, undefined).byteLength; +}); + +// `ArrayBuffer.prototype.slice` method +// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice +$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, { + slice: function slice(start, end) { + if (nativeArrayBufferSlice && end === undefined) { + return nativeArrayBufferSlice(anObject(this), start); // FF fix + } + var length = anObject(this).byteLength; + var first = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first)); + var viewSource = new DataView(this); + var viewTarget = new DataView(result); + var index = 0; + while (first < fin) { + setUint8(viewTarget, index++, getUint8(viewSource, first++)); + } return result; + } +}); + + +/***/ }), +/* 219 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var aConstructor = __webpack_require__(220); +var isNullOrUndefined = __webpack_require__(17); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +module.exports = function (O, defaultConstructor) { + var C = anObject(O).constructor; + var S; + return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S); +}; + + +/***/ }), +/* 220 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isConstructor = __webpack_require__(89); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsConstructor(argument) is true` +module.exports = function (argument) { + if (isConstructor(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a constructor'); +}; + + +/***/ }), +/* 221 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(222); + + +/***/ }), +/* 222 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferModule = __webpack_require__(207); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); + +// `DataView` constructor +// https://tc39.es/ecma262/#sec-dataview-constructor +$({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, { + DataView: ArrayBufferModule.DataView +}); + + +/***/ }), +/* 223 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isDetached = __webpack_require__(224); + +var ArrayBufferPrototype = ArrayBuffer.prototype; + +if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) { + defineBuiltInAccessor(ArrayBufferPrototype, 'detached', { + configurable: true, + get: function detached() { + return isDetached(this); + } + }); +} + + +/***/ }), +/* 224 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var arrayBufferByteLength = __webpack_require__(225); + +var slice = uncurryThis(ArrayBuffer.prototype.slice); + +module.exports = function (O) { + if (arrayBufferByteLength(O) !== 0) return false; + try { + slice(O, 0, 0); + return false; + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 225 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var classof = __webpack_require__(15); + +var $TypeError = TypeError; + +// Includes +// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). +// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. +module.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) { + if (classof(O) !== 'ArrayBuffer') throw new $TypeError('ArrayBuffer expected'); + return O.byteLength; +}; + + +/***/ }), +/* 226 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transfer` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transfer: function transfer() { + return $transfer(this, arguments.length ? arguments[0] : undefined, true); + } +}); + + +/***/ }), +/* 227 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var uncurryThisAccessor = __webpack_require__(114); +var toIndex = __webpack_require__(211); +var isDetached = __webpack_require__(224); +var arrayBufferByteLength = __webpack_require__(225); +var detachTransferable = __webpack_require__(228); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var ArrayBuffer = global.ArrayBuffer; +var DataView = global.DataView; +var TypeError = global.TypeError; +var min = Math.min; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataViewPrototype = DataView.prototype; +var slice = uncurryThis(ArrayBufferPrototype.slice); +var isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get'); +var maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get'); +var getInt8 = uncurryThis(DataViewPrototype.getInt8); +var setInt8 = uncurryThis(DataViewPrototype.setInt8); + +module.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) { + var byteLength = arrayBufferByteLength(arrayBuffer); + var newByteLength = newLength === undefined ? byteLength : toIndex(newLength); + var fixedLength = !isResizable || !isResizable(arrayBuffer); + var newBuffer; + if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached'); + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] }); + if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer; + } + if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) { + newBuffer = slice(arrayBuffer, 0, newByteLength); + } else { + var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined; + newBuffer = new ArrayBuffer(newByteLength, options); + var a = new DataView(arrayBuffer); + var b = new DataView(newBuffer); + var copyLength = min(newByteLength, byteLength); + for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i)); + } + if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer); + return newBuffer; +}; + + +/***/ }), +/* 228 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var tryNodeRequire = __webpack_require__(229); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var $ArrayBuffer = global.ArrayBuffer; +var $MessageChannel = global.MessageChannel; +var detach = false; +var WorkerThreads, channel, buffer, $detach; + +if (PROPER_STRUCTURED_CLONE_TRANSFER) { + detach = function (transferable) { + structuredClone(transferable, { transfer: [transferable] }); + }; +} else if ($ArrayBuffer) try { + if (!$MessageChannel) { + WorkerThreads = tryNodeRequire('worker_threads'); + if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel; + } + + if ($MessageChannel) { + channel = new $MessageChannel(); + buffer = new $ArrayBuffer(2); + + $detach = function (transferable) { + channel.port1.postMessage(null, [transferable]); + }; + + if (buffer.byteLength === 2) { + $detach(buffer); + if (buffer.byteLength === 0) detach = $detach; + } + } +} catch (error) { /* empty */ } + +module.exports = detach; + + +/***/ }), +/* 229 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_NODE = __webpack_require__(182); + +module.exports = function (name) { + try { + // eslint-disable-next-line no-new-func -- safe + if (IS_NODE) return Function('return require("' + name + '")')(); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 230 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var V8 = __webpack_require__(27); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +var structuredClone = global.structuredClone; + +module.exports = !!structuredClone && !fails(function () { + // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false; + var buffer = new ArrayBuffer(8); + var clone = structuredClone(buffer, { transfer: [buffer] }); + return buffer.byteLength !== 0 || clone.byteLength !== 8; +}); + + +/***/ }), +/* 231 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +module.exports = !IS_DENO && !IS_NODE + && typeof window == 'object' + && typeof document == 'object'; + + +/***/ }), +/* 232 */ +/***/ (function(module) { + + +/* global Deno -- Deno case */ +module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + +/***/ }), +/* 233 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transferToFixedLength` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transferToFixedLength: function transferToFixedLength() { + return $transfer(this, arguments.length ? arguments[0] : undefined, false); + } +}); + + +/***/ }), +/* 234 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +// IE8- non-standard case +var FORCED = fails(function () { + // eslint-disable-next-line es/no-date-prototype-getyear-setyear -- detection + return new Date(16e11).getYear() !== 120; +}); + +var getFullYear = uncurryThis(Date.prototype.getFullYear); + +// `Date.prototype.getYear` method +// https://tc39.es/ecma262/#sec-date.prototype.getyear +$({ target: 'Date', proto: true, forced: FORCED }, { + getYear: function getYear() { + return getFullYear(this) - 1900; + } +}); + + +/***/ }), +/* 235 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); + +var $Date = Date; +var thisTimeValue = uncurryThis($Date.prototype.getTime); + +// `Date.now` method +// https://tc39.es/ecma262/#sec-date.now +$({ target: 'Date', stat: true }, { + now: function now() { + return thisTimeValue(new $Date()); + } +}); + + +/***/ }), +/* 236 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); + +var DatePrototype = Date.prototype; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var setFullYear = uncurryThis(DatePrototype.setFullYear); + +// `Date.prototype.setYear` method +// https://tc39.es/ecma262/#sec-date.prototype.setyear +$({ target: 'Date', proto: true }, { + setYear: function setYear(year) { + // validate + thisTimeValue(this); + var yi = toIntegerOrInfinity(year); + var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi; + return setFullYear(this, yyyy); + } +}); + + +/***/ }), +/* 237 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Date.prototype.toGMTString` method +// https://tc39.es/ecma262/#sec-date.prototype.togmtstring +$({ target: 'Date', proto: true }, { + toGMTString: Date.prototype.toUTCString +}); + + +/***/ }), +/* 238 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toISOString = __webpack_require__(239); + +// `Date.prototype.toISOString` method +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit has a broken implementations +$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, { + toISOString: toISOString +}); + + +/***/ }), +/* 239 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var padStart = (__webpack_require__(240).start); + +var $RangeError = RangeError; +var $isFinite = isFinite; +var abs = Math.abs; +var DatePrototype = Date.prototype; +var nativeDateToISOString = DatePrototype.toISOString; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var getUTCDate = uncurryThis(DatePrototype.getUTCDate); +var getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear); +var getUTCHours = uncurryThis(DatePrototype.getUTCHours); +var getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds); +var getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes); +var getUTCMonth = uncurryThis(DatePrototype.getUTCMonth); +var getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds); + +// `Date.prototype.toISOString` method implementation +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit fails here: +module.exports = (fails(function () { + return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z'; +}) || !fails(function () { + nativeDateToISOString.call(new Date(NaN)); +})) ? function toISOString() { + if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value'); + var date = this; + var year = getUTCFullYear(date); + var milliseconds = getUTCMilliseconds(date); + var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; + return sign + padStart(abs(year), sign ? 6 : 4, 0) + + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + + '-' + padStart(getUTCDate(date), 2, 0) + + 'T' + padStart(getUTCHours(date), 2, 0) + + ':' + padStart(getUTCMinutes(date), 2, 0) + + ':' + padStart(getUTCSeconds(date), 2, 0) + + '.' + padStart(milliseconds, 3, 0) + + 'Z'; +} : nativeDateToISOString; + + +/***/ }), +/* 240 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/tc39/proposal-string-pad-start-end +var uncurryThis = __webpack_require__(14); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var $repeat = __webpack_require__(241); +var requireObjectCoercible = __webpack_require__(16); + +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var ceil = Math.ceil; + +// `String.prototype.{ padStart, padEnd }` methods implementation +var createMethod = function (IS_END) { + return function ($this, maxLength, fillString) { + var S = toString(requireObjectCoercible($this)); + var intMaxLength = toLength(maxLength); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : toString(fillString); + var fillLen, stringFiller; + if (intMaxLength <= stringLength || fillStr === '') return S; + fillLen = intMaxLength - stringLength; + stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen); + return IS_END ? S + stringFiller : stringFiller + S; + }; +}; + +module.exports = { + // `String.prototype.padStart` method + // https://tc39.es/ecma262/#sec-string.prototype.padstart + start: createMethod(false), + // `String.prototype.padEnd` method + // https://tc39.es/ecma262/#sec-string.prototype.padend + end: createMethod(true) +}; + + +/***/ }), +/* 241 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var $RangeError = RangeError; + +// `String.prototype.repeat` method implementation +// https://tc39.es/ecma262/#sec-string.prototype.repeat +module.exports = function repeat(count) { + var str = toString(requireObjectCoercible(this)); + var result = ''; + var n = toIntegerOrInfinity(count); + if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions'); + for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; + return result; +}; + + +/***/ }), +/* 242 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var toPrimitive = __webpack_require__(19); + +var FORCED = fails(function () { + return new Date(NaN).toJSON() !== null + || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; +}); + +// `Date.prototype.toJSON` method +// https://tc39.es/ecma262/#sec-date.prototype.tojson +$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O, 'number'); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } +}); + + +/***/ }), +/* 243 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var defineBuiltIn = __webpack_require__(47); +var dateToPrimitive = __webpack_require__(244); +var wellKnownSymbol = __webpack_require__(33); + +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); +var DatePrototype = Date.prototype; + +// `Date.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +if (!hasOwn(DatePrototype, TO_PRIMITIVE)) { + defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive); +} + + +/***/ }), +/* 244 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var ordinaryToPrimitive = __webpack_require__(32); + +var $TypeError = TypeError; + +// `Date.prototype[@@toPrimitive](hint)` method implementation +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +module.exports = function (hint) { + anObject(this); + if (hint === 'string' || hint === 'default') hint = 'string'; + else if (hint !== 'number') throw new $TypeError('Incorrect hint'); + return ordinaryToPrimitive(this, hint); +}; + + +/***/ }), +/* 245 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); + +var DatePrototype = Date.prototype; +var INVALID_DATE = 'Invalid Date'; +var TO_STRING = 'toString'; +var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]); +var thisTimeValue = uncurryThis(DatePrototype.getTime); + +// `Date.prototype.toString` method +// https://tc39.es/ecma262/#sec-date.prototype.tostring +if (String(new Date(NaN)) !== INVALID_DATE) { + defineBuiltIn(DatePrototype, TO_STRING, function toString() { + var value = thisTimeValue(this); + // eslint-disable-next-line no-self-compare -- NaN check + return value === value ? nativeDateToString(this) : INVALID_DATE; + }); +} + + +/***/ }), +/* 246 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var exec = uncurryThis(/./.exec); +var numberToString = uncurryThis(1.0.toString); +var toUpperCase = uncurryThis(''.toUpperCase); + +var raw = /[\w*+\-./@]/; + +var hex = function (code, length) { + var result = numberToString(code, 16); + while (result.length < length) result = '0' + result; + return result; +}; + +// `escape` method +// https://tc39.es/ecma262/#sec-escape-string +$({ global: true }, { + escape: function escape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, code; + while (index < length) { + chr = charAt(str, index++); + if (exec(raw, chr)) { + result += chr; + } else { + code = charCodeAt(chr, 0); + if (code < 256) { + result += '%' + hex(code, 2); + } else { + result += '%u' + toUpperCase(hex(code, 4)); + } + } + } return result; + } +}); + + +/***/ }), +/* 247 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var bind = __webpack_require__(248); + +// `Function.prototype.bind` method +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +$({ target: 'Function', proto: true, forced: Function.bind !== bind }, { + bind: bind +}); + + +/***/ }), +/* 248 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var arraySlice = __webpack_require__(76); +var NATIVE_BIND = __webpack_require__(9); + +var $Function = Function; +var concat = uncurryThis([].concat); +var join = uncurryThis([].join); +var factories = {}; + +var construct = function (C, argsLength, args) { + if (!hasOwn(factories, argsLength)) { + var list = []; + var i = 0; + for (; i < argsLength; i++) list[i] = 'a[' + i + ']'; + factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')'); + } return factories[argsLength](C, args); +}; + +// `Function.prototype.bind` method implementation +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +module.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) { + var F = aCallable(this); + var Prototype = F.prototype; + var partArgs = arraySlice(arguments, 1); + var boundFunction = function bound(/* args... */) { + var args = concat(partArgs, arraySlice(arguments)); + return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args); + }; + if (isObject(Prototype)) boundFunction.prototype = Prototype; + return boundFunction; +}; + + +/***/ }), +/* 249 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var definePropertyModule = __webpack_require__(44); +var isPrototypeOf = __webpack_require__(24); +var wellKnownSymbol = __webpack_require__(33); +var makeBuiltIn = __webpack_require__(48); + +var HAS_INSTANCE = wellKnownSymbol('hasInstance'); +var FunctionPrototype = Function.prototype; + +// `Function.prototype[@@hasInstance]` method +// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance +if (!(HAS_INSTANCE in FunctionPrototype)) { + definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) { + if (!isCallable(this) || !isObject(O)) return false; + var P = this.prototype; + return isObject(P) ? isPrototypeOf(P, O) : O instanceof this; + }, HAS_INSTANCE) }); +} + + +/***/ }), +/* 250 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var FUNCTION_NAME_EXISTS = (__webpack_require__(49).EXISTS); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var FunctionPrototype = Function.prototype; +var functionToString = uncurryThis(FunctionPrototype.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor(FunctionPrototype, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + + +/***/ }), +/* 251 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); + +// `globalThis` object +// https://tc39.es/ecma262/#sec-globalthis +$({ global: true, forced: global.globalThis !== global }, { + globalThis: global +}); + + +/***/ }), +/* 252 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +// JSON[@@toStringTag] property +// https://tc39.es/ecma262/#sec-json-@@tostringtag +setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), +/* 253 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(254); + + +/***/ }), +/* 254 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Map` constructor +// https://tc39.es/ecma262/#sec-map-objects +collection('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 255 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var defineBuiltIn = __webpack_require__(47); +var InternalMetadataModule = __webpack_require__(256); +var iterate = __webpack_require__(130); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var setToStringTag = __webpack_require__(82); +var inheritIfRequired = __webpack_require__(118); + +module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); + defineBuiltIn(NativePrototype, KEY, + KEY === 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY === 'delete' ? function (key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'get' ? function get(key) { + return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'has' ? function has(key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + + +/***/ }), +/* 256 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var hiddenKeys = __webpack_require__(54); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var defineProperty = (__webpack_require__(44).f); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternalModule = __webpack_require__(75); +var isExtensible = __webpack_require__(257); +var uid = __webpack_require__(40); +var FREEZING = __webpack_require__(259); + +var REQUIRED = false; +var METADATA = uid('meta'); +var id = 0; + +var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id++, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData = function (it, create) { + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it); + return it; +}; + +var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } +}; + +var meta = module.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + + +/***/ }), +/* 257 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isextensible -- safe +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); }); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +module.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + + +/***/ }), +/* 258 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it +var fails = __webpack_require__(7); + +module.exports = fails(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + + +/***/ }), +/* 259 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); +}); + + +/***/ }), +/* 260 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var create = __webpack_require__(71); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var bind = __webpack_require__(84); +var anInstance = __webpack_require__(210); +var isNullOrUndefined = __webpack_require__(17); +var iterate = __webpack_require__(130); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var setSpecies = __webpack_require__(193); +var DESCRIPTORS = __webpack_require__(6); +var fastKey = (__webpack_require__(256).fastKey); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS) that.size = 0; + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key === key) return entry; + } + }; + + defineBuiltIns(Prototype, { + // `{ Map, Set }.prototype.clear()` methods + // https://tc39.es/ecma262/#sec-map.prototype.clear + // https://tc39.es/ecma262/#sec-set.prototype.clear + clear: function clear() { + var that = this; + var state = getInternalState(that); + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + entry = entry.next; + } + state.first = state.last = undefined; + state.index = create(null); + if (DESCRIPTORS) state.size = 0; + else that.size = 0; + }, + // `{ Map, Set }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.delete + // https://tc39.es/ecma262/#sec-set.prototype.delete + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first === entry) state.first = next; + if (state.last === entry) state.last = prev; + if (DESCRIPTORS) state.size--; + else that.size--; + } return !!entry; + }, + // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods + // https://tc39.es/ecma262/#sec-map.prototype.foreach + // https://tc39.es/ecma262/#sec-set.prototype.foreach + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // `{ Map, Set}.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.has + // https://tc39.es/ecma262/#sec-set.prototype.has + has: function has(key) { + return !!getEntry(this, key); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `Map.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-map.prototype.get + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // `Map.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-map.prototype.set + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // `Set.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-set.prototype.add + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', { + configurable: true, + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods + // https://tc39.es/ecma262/#sec-map.prototype.entries + // https://tc39.es/ecma262/#sec-map.prototype.keys + // https://tc39.es/ecma262/#sec-map.prototype.values + // https://tc39.es/ecma262/#sec-map.prototype-@@iterator + // https://tc39.es/ecma262/#sec-set.prototype.entries + // https://tc39.es/ecma262/#sec-set.prototype.keys + // https://tc39.es/ecma262/#sec-set.prototype.values + // https://tc39.es/ecma262/#sec-set.prototype-@@iterator + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return createIterResultObject(undefined, true); + } + // return step by kind + if (kind === 'keys') return createIterResultObject(entry.key, false); + if (kind === 'values') return createIterResultObject(entry.value, false); + return createIterResultObject([entry.key, entry.value], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // `{ Map, Set }.prototype[@@species]` accessors + // https://tc39.es/ecma262/#sec-get-map-@@species + // https://tc39.es/ecma262/#sec-get-set-@@species + setSpecies(CONSTRUCTOR_NAME); + } +}; + + +/***/ }), +/* 261 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var iterate = __webpack_require__(130); +var MapHelpers = __webpack_require__(262); +var IS_PURE = __webpack_require__(36); +var fails = __webpack_require__(7); + +var Map = MapHelpers.Map; +var has = MapHelpers.has; +var get = MapHelpers.get; +var set = MapHelpers.set; +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () { + return Map.groupBy('ab', function (it) { + return it; + }).get('a').length !== 1; +}); + +// `Map.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var map = new Map(); + var k = 0; + iterate(items, function (value) { + var key = callbackfn(value, k++); + if (!has(map, key)) set(map, key, [value]); + else push(get(map, key), value); + }); + return map; + } +}); + + +/***/ }), +/* 262 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-map -- safe +var MapPrototype = Map.prototype; + +module.exports = { + // eslint-disable-next-line es/no-map -- safe + Map: Map, + set: uncurryThis(MapPrototype.set), + get: uncurryThis(MapPrototype.get), + has: uncurryThis(MapPrototype.has), + remove: uncurryThis(MapPrototype['delete']), + proto: MapPrototype +}; + + +/***/ }), +/* 263 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// eslint-disable-next-line es/no-math-acosh -- required for testing +var $acosh = Math.acosh; +var log = Math.log; +var sqrt = Math.sqrt; +var LN2 = Math.LN2; + +var FORCED = !$acosh + // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 + || Math.floor($acosh(Number.MAX_VALUE)) !== 710 + // Tor Browser bug: Math.acosh(Infinity) -> NaN + || $acosh(Infinity) !== Infinity; + +// `Math.acosh` method +// https://tc39.es/ecma262/#sec-math.acosh +$({ target: 'Math', stat: true, forced: FORCED }, { + acosh: function acosh(x) { + var n = +x; + return n < 1 ? NaN : n > 94906265.62425156 + ? log(n) + LN2 + : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1)); + } +}); + + +/***/ }), +/* 264 */ +/***/ (function(module) { + + +var log = Math.log; + +// `Math.log1p` method implementation +// https://tc39.es/ecma262/#sec-math.log1p +// eslint-disable-next-line es/no-math-log1p -- safe +module.exports = Math.log1p || function log1p(x) { + var n = +x; + return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n); +}; + + +/***/ }), +/* 265 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-asinh -- required for testing +var $asinh = Math.asinh; +var log = Math.log; +var sqrt = Math.sqrt; + +function asinh(x) { + var n = +x; + return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1)); +} + +var FORCED = !($asinh && 1 / $asinh(0) > 0); + +// `Math.asinh` method +// https://tc39.es/ecma262/#sec-math.asinh +// Tor Browser bug: Math.asinh(0) -> -0 +$({ target: 'Math', stat: true, forced: FORCED }, { + asinh: asinh +}); + + +/***/ }), +/* 266 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-atanh -- required for testing +var $atanh = Math.atanh; +var log = Math.log; + +var FORCED = !($atanh && 1 / $atanh(-0) < 0); + +// `Math.atanh` method +// https://tc39.es/ecma262/#sec-math.atanh +// Tor Browser bug: Math.atanh(-0) -> 0 +$({ target: 'Math', stat: true, forced: FORCED }, { + atanh: function atanh(x) { + var n = +x; + return n === 0 ? n : log((1 + n) / (1 - n)) / 2; + } +}); + + +/***/ }), +/* 267 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +var abs = Math.abs; +var pow = Math.pow; + +// `Math.cbrt` method +// https://tc39.es/ecma262/#sec-math.cbrt +$({ target: 'Math', stat: true }, { + cbrt: function cbrt(x) { + var n = +x; + return sign(n) * pow(abs(n), 1 / 3); + } +}); + + +/***/ }), +/* 268 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var floor = Math.floor; +var log = Math.log; +var LOG2E = Math.LOG2E; + +// `Math.clz32` method +// https://tc39.es/ecma262/#sec-math.clz32 +$({ target: 'Math', stat: true }, { + clz32: function clz32(x) { + var n = x >>> 0; + return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32; + } +}); + + +/***/ }), +/* 269 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// eslint-disable-next-line es/no-math-cosh -- required for testing +var $cosh = Math.cosh; +var abs = Math.abs; +var E = Math.E; + +var FORCED = !$cosh || $cosh(710) === Infinity; + +// `Math.cosh` method +// https://tc39.es/ecma262/#sec-math.cosh +$({ target: 'Math', stat: true, forced: FORCED }, { + cosh: function cosh(x) { + var t = expm1(abs(x) - 1) + 1; + return (t + 1 / (t * E * E)) * (E / 2); + } +}); + + +/***/ }), +/* 270 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-math-expm1 -- safe +var $expm1 = Math.expm1; +var exp = Math.exp; + +// `Math.expm1` method implementation +// https://tc39.es/ecma262/#sec-math.expm1 +module.exports = (!$expm1 + // Old FF bug + // eslint-disable-next-line no-loss-of-precision -- required for old engines + || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 + // Tor Browser bug + || $expm1(-2e-17) !== -2e-17 +) ? function expm1(x) { + var n = +x; + return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1; +} : $expm1; + + +/***/ }), +/* 271 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// `Math.expm1` method +// https://tc39.es/ecma262/#sec-math.expm1 +// eslint-disable-next-line es/no-math-expm1 -- required for testing +$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 }); + + +/***/ }), +/* 272 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fround = __webpack_require__(212); + +// `Math.fround` method +// https://tc39.es/ecma262/#sec-math.fround +$({ target: 'Math', stat: true }, { fround: fround }); + + +/***/ }), +/* 273 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-hypot -- required for testing +var $hypot = Math.hypot; +var abs = Math.abs; +var sqrt = Math.sqrt; + +// Chrome 77 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=9546 +var FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity; + +// `Math.hypot` method +// https://tc39.es/ecma262/#sec-math.hypot +$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + hypot: function hypot(value1, value2) { + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + while (i < aLen) { + arg = abs(arguments[i++]); + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + return larg === Infinity ? Infinity : larg * sqrt(sum); + } +}); + + +/***/ }), +/* 274 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-math-imul -- required for testing +var $imul = Math.imul; + +var FORCED = fails(function () { + return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2; +}); + +// `Math.imul` method +// https://tc39.es/ecma262/#sec-math.imul +// some WebKit versions fails with big numbers, some has wrong arity +$({ target: 'Math', stat: true, forced: FORCED }, { + imul: function imul(x, y) { + var UINT16 = 0xFFFF; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } +}); + + +/***/ }), +/* 275 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log10 = __webpack_require__(276); + +// `Math.log10` method +// https://tc39.es/ecma262/#sec-math.log10 +$({ target: 'Math', stat: true }, { + log10: log10 +}); + + +/***/ }), +/* 276 */ +/***/ (function(module) { + + +var log = Math.log; +var LOG10E = Math.LOG10E; + +// eslint-disable-next-line es/no-math-log10 -- safe +module.exports = Math.log10 || function log10(x) { + return log(x) * LOG10E; +}; + + +/***/ }), +/* 277 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// `Math.log1p` method +// https://tc39.es/ecma262/#sec-math.log1p +$({ target: 'Math', stat: true }, { log1p: log1p }); + + +/***/ }), +/* 278 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var log = Math.log; +var LN2 = Math.LN2; + +// `Math.log2` method +// https://tc39.es/ecma262/#sec-math.log2 +$({ target: 'Math', stat: true }, { + log2: function log2(x) { + return log(x) / LN2; + } +}); + + +/***/ }), +/* 279 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +// `Math.sign` method +// https://tc39.es/ecma262/#sec-math.sign +$({ target: 'Math', stat: true }, { + sign: sign +}); + + +/***/ }), +/* 280 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var expm1 = __webpack_require__(270); + +var abs = Math.abs; +var exp = Math.exp; +var E = Math.E; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-math-sinh -- required for testing + return Math.sinh(-2e-17) !== -2e-17; +}); + +// `Math.sinh` method +// https://tc39.es/ecma262/#sec-math.sinh +// V8 near Chromium 38 has a problem with very small numbers +$({ target: 'Math', stat: true, forced: FORCED }, { + sinh: function sinh(x) { + var n = +x; + return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2); + } +}); + + +/***/ }), +/* 281 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +var exp = Math.exp; + +// `Math.tanh` method +// https://tc39.es/ecma262/#sec-math.tanh +$({ target: 'Math', stat: true }, { + tanh: function tanh(x) { + var n = +x; + var a = expm1(n); + var b = expm1(-n); + return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n)); + } +}); + + +/***/ }), +/* 282 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setToStringTag = __webpack_require__(82); + +// Math[@@toStringTag] property +// https://tc39.es/ecma262/#sec-math-@@tostringtag +setToStringTag(Math, 'Math', true); + + +/***/ }), +/* 283 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trunc = __webpack_require__(62); + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +$({ target: 'Math', stat: true }, { + trunc: trunc +}); + + +/***/ }), +/* 284 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var path = __webpack_require__(80); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var hasOwn = __webpack_require__(38); +var inheritIfRequired = __webpack_require__(118); +var isPrototypeOf = __webpack_require__(24); +var isSymbol = __webpack_require__(22); +var toPrimitive = __webpack_require__(19); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(57).f); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var defineProperty = (__webpack_require__(44).f); +var thisNumberValue = __webpack_require__(285); +var trim = (__webpack_require__(286).trim); + +var NUMBER = 'Number'; +var NativeNumber = global[NUMBER]; +var PureNumberNamespace = path[NUMBER]; +var NumberPrototype = NativeNumber.prototype; +var TypeError = global.TypeError; +var stringSlice = uncurryThis(''.slice); +var charCodeAt = uncurryThis(''.charCodeAt); + +// `ToNumeric` abstract operation +// https://tc39.es/ecma262/#sec-tonumeric +var toNumeric = function (value) { + var primValue = toPrimitive(value, 'number'); + return typeof primValue == 'bigint' ? primValue : toNumber(primValue); +}; + +// `ToNumber` abstract operation +// https://tc39.es/ecma262/#sec-tonumber +var toNumber = function (argument) { + var it = toPrimitive(argument, 'number'); + var first, third, radix, maxCode, digits, length, index, code; + if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number'); + if (typeof it == 'string' && it.length > 2) { + it = trim(it); + first = charCodeAt(it, 0); + if (first === 43 || first === 45) { + third = charCodeAt(it, 2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (charCodeAt(it, 1)) { + // fast equal of /^0b[01]+$/i + case 66: + case 98: + radix = 2; + maxCode = 49; + break; + // fast equal of /^0o[0-7]+$/i + case 79: + case 111: + radix = 8; + maxCode = 55; + break; + default: + return +it; + } + digits = stringSlice(it, 2); + length = digits.length; + for (index = 0; index < length; index++) { + code = charCodeAt(digits, index); + // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + if (code < 48 || code > maxCode) return NaN; + } return parseInt(digits, radix); + } + } return +it; +}; + +var FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1')); + +var calledWithNew = function (dummy) { + // includes check on 1..constructor(foo) case + return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); }); +}; + +// `Number` constructor +// https://tc39.es/ecma262/#sec-number-constructor +var NumberWrapper = function Number(value) { + var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value)); + return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n; +}; + +NumberWrapper.prototype = NumberPrototype; +if (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper; + +$({ global: true, constructor: true, wrap: true, forced: FORCED }, { + Number: NumberWrapper +}); + +// Use `internal/copy-constructor-properties` helper in `core-js@4` +var copyConstructorProperties = function (target, source) { + for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : ( + // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + + // ES2015 (in case, if modules with ES2015 Number statics required before): + 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' + + // ESNext + 'fromString,range' + ).split(','), j = 0, key; keys.length > j; j++) { + if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +if (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace); +if (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber); + + +/***/ }), +/* 285 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// `thisNumberValue` abstract operation +// https://tc39.es/ecma262/#sec-thisnumbervalue +module.exports = uncurryThis(1.0.valueOf); + + +/***/ }), +/* 286 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var whitespaces = __webpack_require__(287); + +var replace = uncurryThis(''.replace); +var ltrim = RegExp('^[' + whitespaces + ']+'); +var rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod = function (TYPE) { + return function ($this) { + var string = toString(requireObjectCoercible($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, '$1'); + return string; + }; +}; + +module.exports = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) +}; + + +/***/ }), +/* 287 */ +/***/ (function(module) { + + +// a string of all valid unicode whitespaces +module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), +/* 288 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.EPSILON` constant +// https://tc39.es/ecma262/#sec-number.epsilon +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + EPSILON: Math.pow(2, -52) +}); + + +/***/ }), +/* 289 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var numberIsFinite = __webpack_require__(290); + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +$({ target: 'Number', stat: true }, { isFinite: numberIsFinite }); + + +/***/ }), +/* 290 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +var globalIsFinite = global.isFinite; + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +// eslint-disable-next-line es/no-number-isfinite -- safe +module.exports = Number.isFinite || function isFinite(it) { + return typeof it == 'number' && globalIsFinite(it); +}; + + +/***/ }), +/* 291 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +// `Number.isInteger` method +// https://tc39.es/ecma262/#sec-number.isinteger +$({ target: 'Number', stat: true }, { + isInteger: isIntegralNumber +}); + + +/***/ }), +/* 292 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var floor = Math.floor; + +// `IsIntegralNumber` abstract operation +// https://tc39.es/ecma262/#sec-isintegralnumber +// eslint-disable-next-line es/no-number-isinteger -- safe +module.exports = Number.isInteger || function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + + +/***/ }), +/* 293 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.isNaN` method +// https://tc39.es/ecma262/#sec-number.isnan +$({ target: 'Number', stat: true }, { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number; + } +}); + + +/***/ }), +/* 294 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +var abs = Math.abs; + +// `Number.isSafeInteger` method +// https://tc39.es/ecma262/#sec-number.issafeinteger +$({ target: 'Number', stat: true }, { + isSafeInteger: function isSafeInteger(number) { + return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF; + } +}); + + +/***/ }), +/* 295 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MAX_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.max_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 296 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MIN_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.min_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 297 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseFloat = __webpack_require__(298); + +// `Number.parseFloat` method +// https://tc39.es/ecma262/#sec-number.parseFloat +// eslint-disable-next-line es/no-number-parsefloat -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, { + parseFloat: parseFloat +}); + + +/***/ }), +/* 298 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var charAt = uncurryThis(''.charAt); +var $parseFloat = global.parseFloat; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); })); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +module.exports = FORCED ? function parseFloat(string) { + var trimmedString = trim(toString(string)); + var result = $parseFloat(trimmedString); + return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result; +} : $parseFloat; + + +/***/ }), +/* 299 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseInt = __webpack_require__(300); + +// `Number.parseInt` method +// https://tc39.es/ecma262/#sec-number.parseint +// eslint-disable-next-line es/no-number-parseint -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, { + parseInt: parseInt +}); + + +/***/ }), +/* 300 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var $parseInt = global.parseInt; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var hex = /^[+-]?0x/i; +var exec = uncurryThis(hex.exec); +var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); })); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +module.exports = FORCED ? function parseInt(string, radix) { + var S = trim(toString(string)); + return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); +} : $parseInt; + + +/***/ }), +/* 301 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var log10 = __webpack_require__(276); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var $isFinite = isFinite; +var abs = Math.abs; +var floor = Math.floor; +var pow = Math.pow; +var round = Math.round; +var nativeToExponential = uncurryThis(1.0.toExponential); +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); + +// Edge 17- +var ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11' + // IE11- && Edge 14- + && nativeToExponential(1.255, 2) === '1.25e+0' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(12345, 3) === '1.235e+4' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(25, 0) === '3e+1'; + +// IE8- +var throwsOnInfinityFraction = function () { + return fails(function () { + nativeToExponential(1, Infinity); + }) && fails(function () { + nativeToExponential(1, -Infinity); + }); +}; + +// Safari <11 && FF <50 +var properNonFiniteThisCheck = function () { + return !fails(function () { + nativeToExponential(Infinity, Infinity); + nativeToExponential(NaN, Infinity); + }); +}; + +var FORCED = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFiniteThisCheck(); + +// `Number.prototype.toExponential` method +// https://tc39.es/ecma262/#sec-number.prototype.toexponential +$({ target: 'Number', proto: true, forced: FORCED }, { + toExponential: function toExponential(fractionDigits) { + var x = thisNumberValue(this); + if (fractionDigits === undefined) return nativeToExponential(x); + var f = toIntegerOrInfinity(fractionDigits); + if (!$isFinite(x)) return String(x); + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits'); + if (ROUNDS_PROPERLY) return nativeToExponential(x, f); + var s = ''; + var m = ''; + var e = 0; + var c = ''; + var d = ''; + if (x < 0) { + s = '-'; + x = -x; + } + if (x === 0) { + e = 0; + m = repeat('0', f + 1); + } else { + // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08 + // TODO: improve accuracy with big fraction digits + var l = log10(x); + e = floor(l); + var n = 0; + var w = pow(10, e - f); + n = round(x / w); + if (2 * x >= (2 * n + 1) * w) { + n += 1; + } + if (n >= pow(10, f + 1)) { + n /= 10; + e += 1; + } + m = $String(n); + } + if (f !== 0) { + m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1); + } + if (e === 0) { + c = '+'; + d = '0'; + } else { + c = e > 0 ? '+' : '-'; + d = $String(abs(e)); + } + m += 'e' + c + d; + return s + m; + } +}); + + +/***/ }), +/* 302 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var floor = Math.floor; +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var nativeToFixed = uncurryThis(1.0.toFixed); + +var pow = function (x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); +}; + +var log = function (x) { + var n = 0; + var x2 = x; + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + while (x2 >= 2) { + n += 1; + x2 /= 2; + } return n; +}; + +var multiply = function (data, n, c) { + var index = -1; + var c2 = c; + while (++index < 6) { + c2 += n * data[index]; + data[index] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } +}; + +var divide = function (data, n) { + var index = 6; + var c = 0; + while (--index >= 0) { + c += data[index]; + data[index] = floor(c / n); + c = (c % n) * 1e7; + } +}; + +var dataToString = function (data) { + var index = 6; + var s = ''; + while (--index >= 0) { + if (s !== '' || index === 0 || data[index] !== 0) { + var t = $String(data[index]); + s = s === '' ? t : s + repeat('0', 7 - t.length) + t; + } + } return s; +}; + +var FORCED = fails(function () { + return nativeToFixed(0.00008, 3) !== '0.000' || + nativeToFixed(0.9, 0) !== '1' || + nativeToFixed(1.255, 2) !== '1.25' || + nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToFixed({}); +}); + +// `Number.prototype.toFixed` method +// https://tc39.es/ecma262/#sec-number.prototype.tofixed +$({ target: 'Number', proto: true, forced: FORCED }, { + toFixed: function toFixed(fractionDigits) { + var number = thisNumberValue(this); + var fractDigits = toIntegerOrInfinity(fractionDigits); + var data = [0, 0, 0, 0, 0, 0]; + var sign = ''; + var result = '0'; + var e, z, j, k; + + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits'); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number) return 'NaN'; + if (number <= -1e21 || number >= 1e21) return $String(number); + if (number < 0) { + sign = '-'; + number = -number; + } + if (number > 1e-21) { + e = log(number * pow(2, 69, 1)) - 69; + z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + if (e > 0) { + multiply(data, 0, z); + j = fractDigits; + while (j >= 7) { + multiply(data, 1e7, 0); + j -= 7; + } + multiply(data, pow(10, j, 1), 0); + j = e - 1; + while (j >= 23) { + divide(data, 1 << 23); + j -= 23; + } + divide(data, 1 << j); + multiply(data, 1, 1); + divide(data, 2); + result = dataToString(data); + } else { + multiply(data, 0, z); + multiply(data, 1 << -e, 0); + result = dataToString(data) + repeat('0', fractDigits); + } + } + if (fractDigits > 0) { + k = result.length; + result = sign + (k <= fractDigits + ? '0.' + repeat('0', fractDigits - k) + result + : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits)); + } else { + result = sign + result; + } return result; + } +}); + + +/***/ }), +/* 303 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var thisNumberValue = __webpack_require__(285); + +var nativeToPrecision = uncurryThis(1.0.toPrecision); + +var FORCED = fails(function () { + // IE7- + return nativeToPrecision(1, undefined) !== '1'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToPrecision({}); +}); + +// `Number.prototype.toPrecision` method +// https://tc39.es/ecma262/#sec-number.prototype.toprecision +$({ target: 'Number', proto: true, forced: FORCED }, { + toPrecision: function toPrecision(precision) { + return precision === undefined + ? nativeToPrecision(thisNumberValue(this)) + : nativeToPrecision(thisNumberValue(this), precision); + } +}); + + +/***/ }), +/* 304 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var assign = __webpack_require__(305); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + + +/***/ }), +/* 305 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var objectKeys = __webpack_require__(73); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var propertyIsEnumerableModule = __webpack_require__(10); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty = Object.defineProperty; +var concat = uncurryThis([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +module.exports = !$assign || fails(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + + +/***/ }), +/* 306 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var create = __webpack_require__(71); + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + create: create +}); + + +/***/ }), +/* 307 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineGetter__: function __defineGetter__(P, getter) { + definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 308 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var WEBKIT = __webpack_require__(191); + +// Forced replacement object prototype accessors methods +module.exports = IS_PURE || !fails(function () { + // This feature detection crashes old WebKit + // https://github.com/zloirock/core-js/issues/232 + if (WEBKIT && WEBKIT < 535) return; + var key = Math.random(); + // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call, es/no-legacy-object-prototype-accessor-methods -- required for testing + __defineSetter__.call(null, key, function () { /* empty */ }); + delete global[key]; +}); + + +/***/ }), +/* 309 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperties = (__webpack_require__(72).f); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, { + defineProperties: defineProperties +}); + + +/***/ }), +/* 310 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperty = (__webpack_require__(44).f); + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +// eslint-disable-next-line es/no-object-defineproperty -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, { + defineProperty: defineProperty +}); + + +/***/ }), +/* 311 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineSetter__: function __defineSetter__(P, setter) { + definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 312 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $entries = (__webpack_require__(313).entries); + +// `Object.entries` method +// https://tc39.es/ecma262/#sec-object.entries +$({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } +}); + + +/***/ }), +/* 313 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var objectGetPrototypeOf = __webpack_require__(128); +var objectKeys = __webpack_require__(73); +var toIndexedObject = __webpack_require__(12); +var $propertyIsEnumerable = (__webpack_require__(10).f); + +var propertyIsEnumerable = uncurryThis($propertyIsEnumerable); +var push = uncurryThis([].push); + +// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys +// of `null` prototype objects +var IE_BUG = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-create -- safe + var O = Object.create(null); + O[2] = 2; + return !propertyIsEnumerable(O, 2); +}); + +// `Object.{ entries, values }` methods implementation +var createMethod = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + push(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; +}; + +module.exports = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod(false) +}; + + +/***/ }), +/* 314 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); + +// eslint-disable-next-line es/no-object-freeze -- safe +var $freeze = Object.freeze; +var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); }); + +// `Object.freeze` method +// https://tc39.es/ecma262/#sec-object.freeze +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + freeze: function freeze(it) { + return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 315 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var iterate = __webpack_require__(130); +var createProperty = __webpack_require__(141); + +// `Object.fromEntries` method +// https://github.com/tc39/proposal-object-from-entries +$({ target: 'Object', stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function (k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } +}); + + +/***/ }), +/* 316 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toIndexedObject = __webpack_require__(12); +var nativeGetOwnPropertyDescriptor = (__webpack_require__(5).f); +var DESCRIPTORS = __webpack_require__(6); + +var FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); }); + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { + return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key); + } +}); + + +/***/ }), +/* 317 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var ownKeys = __webpack_require__(56); +var toIndexedObject = __webpack_require__(12); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var createProperty = __webpack_require__(141); + +// `Object.getOwnPropertyDescriptors` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIndexedObject(object); + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + var keys = ownKeys(O); + var result = {}; + var index = 0; + var key, descriptor; + while (keys.length > index) { + descriptor = getOwnPropertyDescriptor(O, key = keys[index++]); + if (descriptor !== undefined) createProperty(result, key, descriptor); + } + return result; + } +}); + + +/***/ }), +/* 318 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(75).f); + +// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing +var FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); }); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + getOwnPropertyNames: getOwnPropertyNames +}); + + +/***/ }), +/* 319 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var nativeGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); }); + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(it) { + return nativeGetPrototypeOf(toObject(it)); + } +}); + + + +/***/ }), +/* 320 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var toPropertyKey = __webpack_require__(18); +var iterate = __webpack_require__(130); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-map-groupby -- testing +var nativeGroupBy = Object.groupBy; +var create = getBuiltIn('Object', 'create'); +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () { + return nativeGroupBy('ab', function (it) { + return it; + }).a.length !== 1; +}); + +// `Object.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var obj = create(null); + var k = 0; + iterate(items, function (value) { + var key = toPropertyKey(callbackfn(value, k++)); + // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys + // but since it's a `null` prototype object, we can safely use `in` + if (key in obj) push(obj[key], value); + else obj[key] = [value]; + }); + return obj; + } +}); + + +/***/ }), +/* 321 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); + +// `Object.hasOwn` method +// https://tc39.es/ecma262/#sec-object.hasown +$({ target: 'Object', stat: true }, { + hasOwn: hasOwn +}); + + +/***/ }), +/* 322 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var is = __webpack_require__(323); + +// `Object.is` method +// https://tc39.es/ecma262/#sec-object.is +$({ target: 'Object', stat: true }, { + is: is +}); + + +/***/ }), +/* 323 */ +/***/ (function(module) { + + +// `SameValue` abstract operation +// https://tc39.es/ecma262/#sec-samevalue +// eslint-disable-next-line es/no-object-is -- safe +module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; +}; + + +/***/ }), +/* 324 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $isExtensible = __webpack_require__(257); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +// eslint-disable-next-line es/no-object-isextensible -- safe +$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, { + isExtensible: $isExtensible +}); + + +/***/ }), +/* 325 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isfrozen -- safe +var $isFrozen = Object.isFrozen; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); }); + +// `Object.isFrozen` method +// https://tc39.es/ecma262/#sec-object.isfrozen +$({ target: 'Object', stat: true, forced: FORCED }, { + isFrozen: function isFrozen(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isFrozen ? $isFrozen(it) : false; + } +}); + + +/***/ }), +/* 326 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-issealed -- safe +var $isSealed = Object.isSealed; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); }); + +// `Object.isSealed` method +// https://tc39.es/ecma262/#sec-object.issealed +$({ target: 'Object', stat: true, forced: FORCED }, { + isSealed: function isSealed(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isSealed ? $isSealed(it) : false; + } +}); + + +/***/ }), +/* 327 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var nativeKeys = __webpack_require__(73); +var fails = __webpack_require__(7); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject(it)); + } +}); + + +/***/ }), +/* 328 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.get; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 329 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.set; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 330 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-preventextensions -- safe +var $preventExtensions = Object.preventExtensions; +var FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); }); + +// `Object.preventExtensions` method +// https://tc39.es/ecma262/#sec-object.preventextensions +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + preventExtensions: function preventExtensions(it) { + return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 331 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isObject = __webpack_require__(20); +var isPossiblePrototype = __webpack_require__(116); +var toObject = __webpack_require__(39); +var requireObjectCoercible = __webpack_require__(16); + +// eslint-disable-next-line es/no-object-getprototypeof -- safe +var getPrototypeOf = Object.getPrototypeOf; +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var setPrototypeOf = Object.setPrototypeOf; +var ObjectPrototype = Object.prototype; +var PROTO = '__proto__'; + +// `Object.prototype.__proto__` accessor +// https://tc39.es/ecma262/#sec-object.prototype.__proto__ +if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { + defineBuiltInAccessor(ObjectPrototype, PROTO, { + configurable: true, + get: function __proto__() { + return getPrototypeOf(toObject(this)); + }, + set: function __proto__(proto) { + var O = requireObjectCoercible(this); + if (isPossiblePrototype(proto) && isObject(O)) { + setPrototypeOf(O, proto); + } + } + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 332 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-seal -- safe +var $seal = Object.seal; +var FAILS_ON_PRIMITIVES = fails(function () { $seal(1); }); + +// `Object.seal` method +// https://tc39.es/ecma262/#sec-object.seal +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + seal: function seal(it) { + return $seal && isObject(it) ? $seal(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 333 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var setPrototypeOf = __webpack_require__(113); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +$({ target: 'Object', stat: true }, { + setPrototypeOf: setPrototypeOf +}); + + +/***/ }), +/* 334 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var defineBuiltIn = __webpack_require__(47); +var toString = __webpack_require__(335); + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true }); +} + + +/***/ }), +/* 335 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var classof = __webpack_require__(69); + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; +}; + + +/***/ }), +/* 336 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $values = (__webpack_require__(313).values); + +// `Object.values` method +// https://tc39.es/ecma262/#sec-object.values +$({ target: 'Object', stat: true }, { + values: function values(O) { + return $values(O); + } +}); + + +/***/ }), +/* 337 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseFloat = __webpack_require__(298); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +$({ global: true, forced: parseFloat !== $parseFloat }, { + parseFloat: $parseFloat +}); + + +/***/ }), +/* 338 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseInt = __webpack_require__(300); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +$({ global: true, forced: parseInt !== $parseInt }, { + parseInt: $parseInt +}); + + +/***/ }), +/* 339 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(340); +__webpack_require__(354); +__webpack_require__(356); +__webpack_require__(357); +__webpack_require__(358); +__webpack_require__(359); + + +/***/ }), +/* 340 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var IS_NODE = __webpack_require__(182); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var setSpecies = __webpack_require__(193); +var aCallable = __webpack_require__(30); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var anInstance = __webpack_require__(210); +var speciesConstructor = __webpack_require__(219); +var task = (__webpack_require__(341).set); +var microtask = __webpack_require__(344); +var hostReportErrors = __webpack_require__(349); +var perform = __webpack_require__(350); +var Queue = __webpack_require__(346); +var InternalStateModule = __webpack_require__(51); +var NativePromiseConstructor = __webpack_require__(351); +var PromiseConstructorDetection = __webpack_require__(352); +var newPromiseCapabilityModule = __webpack_require__(353); + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); +var setInternalState = InternalStateModule.set; +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var PromiseConstructor = NativePromiseConstructor; +var PromisePrototype = NativePromisePrototype; +var TypeError = global.TypeError; +var document = global.document; +var process = global.process; +var newPromiseCapability = newPromiseCapabilityModule.f; +var newGenericPromiseCapability = newPromiseCapability; + +var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject(it) && isCallable(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state === FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(new TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform(function () { + if (IS_NODE) { + process.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + if (IS_NODE) { + process.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw new TypeError("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call(then, value, + bind(internalResolve, wrapper, state), + bind(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromisePrototype); + aCallable(executor); + call(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind(internalResolve, state), bind(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable(onRejected) && onRejected; + reaction.domain = IS_NODE ? process.domain : undefined; + if (state.state === PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind(internalResolve, state); + this.reject = bind(internalReject, state); + }; + + newPromiseCapabilityModule.f = newPromiseCapability = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) { + nativeThen = NativePromisePrototype.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf) { + setPrototypeOf(NativePromisePrototype, PromisePrototype); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + Promise: PromiseConstructor +}); + +setToStringTag(PromiseConstructor, PROMISE, false, true); +setSpecies(PROMISE); + + +/***/ }), +/* 341 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var bind = __webpack_require__(84); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var fails = __webpack_require__(7); +var html = __webpack_require__(74); +var arraySlice = __webpack_require__(76); +var createElement = __webpack_require__(42); +var validateArgumentsLength = __webpack_require__(342); +var IS_IOS = __webpack_require__(343); +var IS_NODE = __webpack_require__(182); + +var set = global.setImmediate; +var clear = global.clearImmediate; +var process = global.process; +var Dispatch = global.Dispatch; +var Function = global.Function; +var MessageChannel = global.MessageChannel; +var String = global.String; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global.location; +}); + +var run = function (id) { + if (hasOwn(queue, id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global.postMessage(String(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable(handler) ? handler : Function(handler); + var args = arraySlice(arguments, 1); + queue[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue[id]; + }; + // Node.js 0.8- + if (IS_NODE) { + defer = function (id) { + process.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global.addEventListener && + isCallable(global.postMessage) && + !global.importScripts && + $location && $location.protocol !== 'file:' && + !fails(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +module.exports = { + set: set, + clear: clear +}; + + +/***/ }), +/* 342 */ +/***/ (function(module) { + + +var $TypeError = TypeError; + +module.exports = function (passed, required) { + if (passed < required) throw new $TypeError('Not enough arguments'); + return passed; +}; + + +/***/ }), +/* 343 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +// eslint-disable-next-line redos/no-vulnerable -- safe +module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent); + + +/***/ }), +/* 344 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var bind = __webpack_require__(84); +var macrotask = (__webpack_require__(341).set); +var Queue = __webpack_require__(346); +var IS_IOS = __webpack_require__(343); +var IS_IOS_PEBBLE = __webpack_require__(347); +var IS_WEBOS_WEBKIT = __webpack_require__(348); +var IS_NODE = __webpack_require__(182); + +var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; +var document = global.document; +var process = global.process; +var Promise = global.Promise; +var microtask = safeGetBuiltIn('queueMicrotask'); +var notify, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask) { + var queue = new Queue(); + + var flush = function () { + var parent, fn; + if (IS_NODE && (parent = process.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { + toggle = true; + node = document.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise; + then = bind(promise.then, promise); + notify = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE) { + notify = function () { + process.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind(macrotask, global); + notify = function () { + macrotask(flush); + }; + } + + microtask = function (fn) { + if (!queue.head) notify(); + queue.add(fn); + }; +} + +module.exports = microtask; + + +/***/ }), +/* 345 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Avoid NodeJS experimental warning +module.exports = function (name) { + if (!DESCRIPTORS) return global[name]; + var descriptor = getOwnPropertyDescriptor(global, name); + return descriptor && descriptor.value; +}; + + +/***/ }), +/* 346 */ +/***/ (function(module) { + + +var Queue = function () { + this.head = null; + this.tail = null; +}; + +Queue.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +module.exports = Queue; + + +/***/ }), +/* 347 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined'; + + +/***/ }), +/* 348 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /web0s(?!.*chrome)/i.test(userAgent); + + +/***/ }), +/* 349 */ +/***/ (function(module) { + + +module.exports = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length === 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 350 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + + +/***/ }), +/* 351 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global.Promise; + + +/***/ }), +/* 352 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var NativePromiseConstructor = __webpack_require__(351); +var isCallable = __webpack_require__(21); +var isForced = __webpack_require__(67); +var inspectSource = __webpack_require__(50); +var wellKnownSymbol = __webpack_require__(33); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_PURE = __webpack_require__(36); +var V8_VERSION = __webpack_require__(27); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var SPECIES = wellKnownSymbol('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution + if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT; +}); + +module.exports = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT, + SUBCLASSING: SUBCLASSING +}; + + +/***/ }), +/* 353 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); + +var $TypeError = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable(resolve); + this.reject = aCallable(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + + +/***/ }), +/* 354 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 355 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NativePromiseConstructor = __webpack_require__(351); +var checkCorrectnessOfIteration = __webpack_require__(164); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +module.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) { + NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ }); +}); + + +/***/ }), +/* 356 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var NativePromiseConstructor = __webpack_require__(351); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + + +/***/ }), +/* 357 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate(iterable, function (promise) { + call($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 358 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + var capabilityReject = capability.reject; + capabilityReject(r); + return capability.promise; + } +}); + + +/***/ }), +/* 359 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var promiseResolve = __webpack_require__(360); + +var PromiseConstructorWrapper = getBuiltIn('Promise'); +var CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x); + } +}); + + +/***/ }), +/* 360 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var newPromiseCapability = __webpack_require__(353); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + + +/***/ }), +/* 361 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.allSettled` method +// https://tc39.es/ecma262/#sec-promise.allsettled +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 362 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var getBuiltIn = __webpack_require__(23); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +var PROMISE_ANY_ERROR = 'No one promise resolved'; + +// `Promise.any` method +// https://tc39.es/ecma262/#sec-promise.any +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + any: function any(iterable) { + var C = this; + var AggregateError = getBuiltIn('AggregateError'); + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var errors = []; + var counter = 0; + var remaining = 1; + var alreadyResolved = false; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyRejected = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyRejected || alreadyResolved) return; + alreadyResolved = true; + resolve(value); + }, function (error) { + if (alreadyRejected || alreadyResolved) return; + alreadyRejected = true; + errors[index] = error; + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + }); + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 363 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var fails = __webpack_require__(7); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var speciesConstructor = __webpack_require__(219); +var promiseResolve = __webpack_require__(360); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 +var NON_GENERIC = !!NativePromiseConstructor && fails(function () { + // eslint-disable-next-line unicorn/no-thenable -- required for testing + NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); +}); + +// `Promise.prototype.finally` method +// https://tc39.es/ecma262/#sec-promise.prototype.finally +$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { + 'finally': function (onFinally) { + var C = speciesConstructor(this, getBuiltIn('Promise')); + var isFunction = isCallable(onFinally); + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); + } +}); + +// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['finally']; + if (NativePromisePrototype['finally'] !== method) { + defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true }); + } +} + + +/***/ }), +/* 364 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); + +// `Promise.withResolvers` method +// https://github.com/tc39/proposal-promise-with-resolvers +$({ target: 'Promise', stat: true }, { + withResolvers: function withResolvers() { + var promiseCapability = newPromiseCapabilityModule.f(this); + return { + promise: promiseCapability.promise, + resolve: promiseCapability.resolve, + reject: promiseCapability.reject + }; + } +}); + + +/***/ }), +/* 365 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var functionApply = __webpack_require__(94); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var fails = __webpack_require__(7); + +// MS Edge argumentsList argument is optional +var OPTIONAL_ARGUMENTS_LIST = !fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.apply(function () { /* empty */ }); +}); + +// `Reflect.apply` method +// https://tc39.es/ecma262/#sec-reflect.apply +$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, { + apply: function apply(target, thisArgument, argumentsList) { + return functionApply(aCallable(target), thisArgument, anObject(argumentsList)); + } +}); + + +/***/ }), +/* 366 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var bind = __webpack_require__(248); +var aConstructor = __webpack_require__(220); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var fails = __webpack_require__(7); + +var nativeConstruct = getBuiltIn('Reflect', 'construct'); +var ObjectPrototype = Object.prototype; +var push = [].push; + +// `Reflect.construct` method +// https://tc39.es/ecma262/#sec-reflect.construct +// MS Edge supports only 2 arguments and argumentsList argument is optional +// FF Nightly sets third argument as `new.target`, but does not create `this` from it +var NEW_TARGET_BUG = fails(function () { + function F() { /* empty */ } + return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F); +}); + +var ARGS_BUG = !fails(function () { + nativeConstruct(function () { /* empty */ }); +}); + +var FORCED = NEW_TARGET_BUG || ARGS_BUG; + +$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, { + construct: function construct(Target, args /* , newTarget */) { + aConstructor(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget); + if (Target === newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: return new Target(); + case 1: return new Target(args[0]); + case 2: return new Target(args[0], args[1]); + case 3: return new Target(args[0], args[1], args[2]); + case 4: return new Target(args[0], args[1], args[2], args[3]); + } + // w/o altered newTarget, lot of arguments case + var $args = [null]; + apply(push, $args, args); + return new (apply(bind, Target, $args))(); + } + // with altered newTarget, not support built-in constructors + var proto = newTarget.prototype; + var instance = create(isObject(proto) ? proto : ObjectPrototype); + var result = apply(Target, instance, args); + return isObject(result) ? result : instance; + } +}); + + +/***/ }), +/* 367 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); +var definePropertyModule = __webpack_require__(44); +var fails = __webpack_require__(7); + +// MS Edge has broken Reflect.defineProperty - throwing instead of returning false +var ERROR_INSTEAD_OF_FALSE = fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 }); +}); + +// `Reflect.defineProperty` method +// https://tc39.es/ecma262/#sec-reflect.defineproperty +$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + var key = toPropertyKey(propertyKey); + anObject(attributes); + try { + definePropertyModule.f(target, key, attributes); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 368 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Reflect.deleteProperty` method +// https://tc39.es/ecma262/#sec-reflect.deleteproperty +$({ target: 'Reflect', stat: true }, { + deleteProperty: function deleteProperty(target, propertyKey) { + var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey); + return descriptor && !descriptor.configurable ? false : delete target[propertyKey]; + } +}); + + +/***/ }), +/* 369 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var anObject = __webpack_require__(46); +var isDataDescriptor = __webpack_require__(370); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); + +// `Reflect.get` method +// https://tc39.es/ecma262/#sec-reflect.get +function get(target, propertyKey /* , receiver */) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var descriptor, prototype; + if (anObject(target) === receiver) return target[propertyKey]; + descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey); + if (descriptor) return isDataDescriptor(descriptor) + ? descriptor.value + : descriptor.get === undefined ? undefined : call(descriptor.get, receiver); + if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver); +} + +$({ target: 'Reflect', stat: true }, { + get: get +}); + + +/***/ }), +/* 370 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); + +module.exports = function (descriptor) { + return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable')); +}; + + +/***/ }), +/* 371 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptorModule = __webpack_require__(5); + +// `Reflect.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor +$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + } +}); + + +/***/ }), +/* 372 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var objectGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +// `Reflect.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.getprototypeof +$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(target) { + return objectGetPrototypeOf(anObject(target)); + } +}); + + +/***/ }), +/* 373 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Reflect.has` method +// https://tc39.es/ecma262/#sec-reflect.has +$({ target: 'Reflect', stat: true }, { + has: function has(target, propertyKey) { + return propertyKey in target; + } +}); + + +/***/ }), +/* 374 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var $isExtensible = __webpack_require__(257); + +// `Reflect.isExtensible` method +// https://tc39.es/ecma262/#sec-reflect.isextensible +$({ target: 'Reflect', stat: true }, { + isExtensible: function isExtensible(target) { + anObject(target); + return $isExtensible(target); + } +}); + + +/***/ }), +/* 375 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ownKeys = __webpack_require__(56); + +// `Reflect.ownKeys` method +// https://tc39.es/ecma262/#sec-reflect.ownkeys +$({ target: 'Reflect', stat: true }, { + ownKeys: ownKeys +}); + + +/***/ }), +/* 376 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var anObject = __webpack_require__(46); +var FREEZING = __webpack_require__(259); + +// `Reflect.preventExtensions` method +// https://tc39.es/ecma262/#sec-reflect.preventextensions +$({ target: 'Reflect', stat: true, sham: !FREEZING }, { + preventExtensions: function preventExtensions(target) { + anObject(target); + try { + var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions'); + if (objectPreventExtensions) objectPreventExtensions(target); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 377 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var isDataDescriptor = __webpack_require__(370); +var fails = __webpack_require__(7); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); +var createPropertyDescriptor = __webpack_require__(11); + +// `Reflect.set` method +// https://tc39.es/ecma262/#sec-reflect.set +function set(target, propertyKey, V /* , receiver */) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + var existingDescriptor, prototype, setter; + if (!ownDescriptor) { + if (isObject(prototype = getPrototypeOf(target))) { + return set(prototype, propertyKey, V, receiver); + } + ownDescriptor = createPropertyDescriptor(0); + } + if (isDataDescriptor(ownDescriptor)) { + if (ownDescriptor.writable === false || !isObject(receiver)) return false; + if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + definePropertyModule.f(receiver, propertyKey, existingDescriptor); + } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V)); + } else { + setter = ownDescriptor.set; + if (setter === undefined) return false; + call(setter, receiver, V); + } return true; +} + +// MS Edge 17-18 Reflect.set allows setting the property to object +// with non-writable property on the prototype +var MS_EDGE_BUG = fails(function () { + var Constructor = function () { /* empty */ }; + var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true }); + // eslint-disable-next-line es/no-reflect -- required for testing + return Reflect.set(Constructor.prototype, 'a', 1, object) !== false; +}); + +$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, { + set: set +}); + + +/***/ }), +/* 378 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var aPossiblePrototype = __webpack_require__(115); +var objectSetPrototypeOf = __webpack_require__(113); + +// `Reflect.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.setprototypeof +if (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, { + setPrototypeOf: function setPrototypeOf(target, proto) { + anObject(target); + aPossiblePrototype(proto); + try { + objectSetPrototypeOf(target, proto); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 379 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +$({ global: true }, { Reflect: {} }); + +// Reflect[@@toStringTag] property +// https://tc39.es/ecma262/#sec-reflect-@@tostringtag +setToStringTag(global.Reflect, 'Reflect', true); + + +/***/ }), +/* 380 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var inheritIfRequired = __webpack_require__(118); +var createNonEnumerableProperty = __webpack_require__(43); +var create = __webpack_require__(71); +var getOwnPropertyNames = (__webpack_require__(57).f); +var isPrototypeOf = __webpack_require__(24); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getRegExpFlags = __webpack_require__(382); +var stickyHelpers = __webpack_require__(384); +var proxyAccessor = __webpack_require__(117); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var enforceInternalState = (__webpack_require__(51).enforce); +var setSpecies = __webpack_require__(193); +var wellKnownSymbol = __webpack_require__(33); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var MATCH = wellKnownSymbol('match'); +var NativeRegExp = global.RegExp; +var RegExpPrototype = NativeRegExp.prototype; +var SyntaxError = global.SyntaxError; +var exec = uncurryThis(RegExpPrototype.exec); +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); +// TODO: Use only proper RegExpIdentifierName +var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/; +var re1 = /a/g; +var re2 = /a/g; + +// "new" should create a new object, old webkit bug +var CORRECT_NEW = new NativeRegExp(re1) !== re1; + +var MISSED_STICKY = stickyHelpers.MISSED_STICKY; +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; + +var BASE_FORCED = DESCRIPTORS && + (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () { + re2[MATCH] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i'; + })); + +var handleDotAll = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var brackets = false; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + result += chr + charAt(string, ++index); + continue; + } + if (!brackets && chr === '.') { + result += '[\\s\\S]'; + } else { + if (chr === '[') { + brackets = true; + } else if (chr === ']') { + brackets = false; + } result += chr; + } + } return result; +}; + +var handleNCG = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var named = []; + var names = create(null); + var brackets = false; + var ncg = false; + var groupid = 0; + var groupname = ''; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + chr += charAt(string, ++index); + } else if (chr === ']') { + brackets = false; + } else if (!brackets) switch (true) { + case chr === '[': + brackets = true; + break; + case chr === '(': + if (exec(IS_NCG, stringSlice(string, index + 1))) { + index += 2; + ncg = true; + } + result += chr; + groupid++; + continue; + case chr === '>' && ncg: + if (groupname === '' || hasOwn(names, groupname)) { + throw new SyntaxError('Invalid capture group name'); + } + names[groupname] = true; + named[named.length] = [groupname, groupid]; + ncg = false; + groupname = ''; + continue; + } + if (ncg) groupname += chr; + else result += chr; + } return [result, named]; +}; + +// `RegExp` constructor +// https://tc39.es/ecma262/#sec-regexp-constructor +if (isForced('RegExp', BASE_FORCED)) { + var RegExpWrapper = function RegExp(pattern, flags) { + var thisIsRegExp = isPrototypeOf(RegExpPrototype, this); + var patternIsRegExp = isRegExp(pattern); + var flagsAreUndefined = flags === undefined; + var groups = []; + var rawPattern = pattern; + var rawFlags, dotAll, sticky, handled, result, state; + + if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) { + return pattern; + } + + if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) { + pattern = pattern.source; + if (flagsAreUndefined) flags = getRegExpFlags(rawPattern); + } + + pattern = pattern === undefined ? '' : toString(pattern); + flags = flags === undefined ? '' : toString(flags); + rawPattern = pattern; + + if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) { + dotAll = !!flags && stringIndexOf(flags, 's') > -1; + if (dotAll) flags = replace(flags, /s/g, ''); + } + + rawFlags = flags; + + if (MISSED_STICKY && 'sticky' in re1) { + sticky = !!flags && stringIndexOf(flags, 'y') > -1; + if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, ''); + } + + if (UNSUPPORTED_NCG) { + handled = handleNCG(pattern); + pattern = handled[0]; + groups = handled[1]; + } + + result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper); + + if (dotAll || sticky || groups.length) { + state = enforceInternalState(result); + if (dotAll) { + state.dotAll = true; + state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags); + } + if (sticky) state.sticky = true; + if (groups.length) state.groups = groups; + } + + if (pattern !== rawPattern) try { + // fails in old engines, but we have no alternatives for unsupported regex syntax + createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern); + } catch (error) { /* empty */ } + + return result; + }; + + for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) { + proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]); + } + + RegExpPrototype.constructor = RegExpWrapper; + RegExpWrapper.prototype = RegExpPrototype; + defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true }); +} + +// https://tc39.es/ecma262/#sec-get-regexp-@@species +setSpecies('RegExp'); + + +/***/ }), +/* 381 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +// `IsRegExp` abstract operation +// https://tc39.es/ecma262/#sec-isregexp +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp'); +}; + + +/***/ }), +/* 382 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var regExpFlags = __webpack_require__(383); + +var RegExpPrototype = RegExp.prototype; + +module.exports = function (R) { + var flags = R.flags; + return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) + ? call(regExpFlags, R) : flags; +}; + + +/***/ }), +/* 383 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); + +// `RegExp.prototype.flags` getter implementation +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; +}; + + +/***/ }), +/* 384 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError +var $RegExp = global.RegExp; + +var UNSUPPORTED_Y = fails(function () { + var re = $RegExp('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') !== null; +}); + +// UC Browser bug +// https://github.com/zloirock/core-js/issues/1008 +var MISSED_STICKY = UNSUPPORTED_Y || fails(function () { + return !$RegExp('a', 'y').sticky; +}); + +var BROKEN_CARET = UNSUPPORTED_Y || fails(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') !== null; +}); + +module.exports = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y +}; + + +/***/ }), +/* 385 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('.', 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); +}); + + +/***/ }), +/* 386 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('(?<a>b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$<a>c') !== 'bc'; +}); + + +/***/ }), +/* 387 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.dotAll` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall +if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) { + defineBuiltInAccessor(RegExpPrototype, 'dotAll', { + configurable: true, + get: function dotAll() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).dotAll; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 388 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var exec = __webpack_require__(389); + +// `RegExp.prototype.exec` method +// https://tc39.es/ecma262/#sec-regexp.prototype.exec +$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec +}); + + +/***/ }), +/* 389 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ +/* eslint-disable regexp/no-useless-quantifier -- testing */ +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var regexpFlags = __webpack_require__(383); +var stickyHelpers = __webpack_require__(384); +var shared = __webpack_require__(34); +var create = __webpack_require__(71); +var getInternalState = (__webpack_require__(51).get); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var nativeReplace = shared('native-string-replace', String.prototype.replace); +var nativeExec = RegExp.prototype.exec; +var patchedExec = nativeExec; +var charAt = uncurryThis(''.charAt); +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); + +var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call(nativeExec, re1, 'a'); + call(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; +})(); + +var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + +// nonparticipating capturing group, copied from es5-shim's String#split patch. +var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + +if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice(match.input, charsAdded); + match[0] = stringSlice(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; +} + +module.exports = patchedExec; + + +/***/ }), +/* 390 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var regExpFlags = __webpack_require__(383); +var fails = __webpack_require__(7); + +// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError +var RegExp = global.RegExp; +var RegExpPrototype = RegExp.prototype; + +var FORCED = DESCRIPTORS && fails(function () { + var INDICES_SUPPORT = true; + try { + RegExp('.', 'd'); + } catch (error) { + INDICES_SUPPORT = false; + } + + var O = {}; + // modern V8 bug + var calls = ''; + var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; + + var addGetter = function (key, chr) { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(O, key, { get: function () { + calls += chr; + return true; + } }); + }; + + var pairs = { + dotAll: 's', + global: 'g', + ignoreCase: 'i', + multiline: 'm', + sticky: 'y' + }; + + if (INDICES_SUPPORT) pairs.hasIndices = 'd'; + + for (var key in pairs) addGetter(key, pairs[key]); + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O); + + return result !== expected || calls !== expected; +}); + +// `RegExp.prototype.flags` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', { + configurable: true, + get: regExpFlags +}); + + +/***/ }), +/* 391 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var MISSED_STICKY = (__webpack_require__(384).MISSED_STICKY); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.sticky` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky +if (DESCRIPTORS && MISSED_STICKY) { + defineBuiltInAccessor(RegExpPrototype, 'sticky', { + configurable: true, + get: function sticky() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).sticky; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 392 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var anObject = __webpack_require__(46); +var toString = __webpack_require__(68); + +var DELEGATES_TO_EXEC = function () { + var execCalled = false; + var re = /[ac]/; + re.exec = function () { + execCalled = true; + return /./.exec.apply(this, arguments); + }; + return re.test('abc') === true && execCalled; +}(); + +var nativeTest = /./.test; + +// `RegExp.prototype.test` method +// https://tc39.es/ecma262/#sec-regexp.prototype.test +$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { + test: function (S) { + var R = anObject(this); + var string = toString(S); + var exec = R.exec; + if (!isCallable(exec)) return call(nativeTest, R, string); + var result = call(exec, R, string); + if (result === null) return false; + anObject(result); + return true; + } +}); + + +/***/ }), +/* 393 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var defineBuiltIn = __webpack_require__(47); +var anObject = __webpack_require__(46); +var $toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var getRegExpFlags = __webpack_require__(382); + +var TO_STRING = 'toString'; +var RegExpPrototype = RegExp.prototype; +var nativeToString = RegExpPrototype[TO_STRING]; + +var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; }); +// FF44- RegExp#toString has a wrong name +var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING; + +// `RegExp.prototype.toString` method +// https://tc39.es/ecma262/#sec-regexp.prototype.tostring +if (NOT_GENERIC || INCORRECT_NAME) { + defineBuiltIn(RegExpPrototype, TO_STRING, function toString() { + var R = anObject(this); + var pattern = $toString(R.source); + var flags = $toString(getRegExpFlags(R)); + return '/' + pattern + '/' + flags; + }, { unsafe: true }); +} + + +/***/ }), +/* 394 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(395); + + +/***/ }), +/* 395 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Set` constructor +// https://tc39.es/ecma262/#sec-set-objects +collection('Set', function (init) { + return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 396 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var difference = __webpack_require__(397); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, { + difference: difference +}); + + +/***/ }), +/* 397 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function difference(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = clone(O); + if (size(O) <= otherRec.size) iterateSet(O, function (e) { + if (otherRec.includes(e)) remove(result, e); + }); + else iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) remove(result, e); + }); + return result; +}; + + +/***/ }), +/* 398 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var has = (__webpack_require__(399).has); + +// Perform ? RequireInternalSlot(M, [[SetData]]) +module.exports = function (it) { + has(it); + return it; +}; + + +/***/ }), +/* 399 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-set -- safe +var SetPrototype = Set.prototype; + +module.exports = { + // eslint-disable-next-line es/no-set -- safe + Set: Set, + add: uncurryThis(SetPrototype.add), + has: uncurryThis(SetPrototype.has), + remove: uncurryThis(SetPrototype['delete']), + proto: SetPrototype +}; + + +/***/ }), +/* 400 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var SetHelpers = __webpack_require__(399); +var iterate = __webpack_require__(401); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; + +module.exports = function (set) { + var result = new Set(); + iterate(set, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 401 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var iterateSimple = __webpack_require__(402); +var SetHelpers = __webpack_require__(399); + +var Set = SetHelpers.Set; +var SetPrototype = SetHelpers.proto; +var forEach = uncurryThis(SetPrototype.forEach); +var keys = uncurryThis(SetPrototype.keys); +var next = keys(new Set()).next; + +module.exports = function (set, fn, interruptible) { + return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn); +}; + + +/***/ }), +/* 402 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); + +module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) { + var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator; + var next = record.next; + var step, result; + while (!(step = call(next, iterator)).done) { + result = fn(step.value); + if (result !== undefined) return result; + } +}; + + +/***/ }), +/* 403 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var SetHelpers = __webpack_require__(399); + +module.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) { + return set.size; +}; + + +/***/ }), +/* 404 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var call = __webpack_require__(8); +var toIntegerOrInfinity = __webpack_require__(61); +var getIteratorDirect = __webpack_require__(405); + +var INVALID_SIZE = 'Invalid size'; +var $RangeError = RangeError; +var $TypeError = TypeError; +var max = Math.max; + +var SetRecord = function (set, intSize) { + this.set = set; + this.size = max(intSize, 0); + this.has = aCallable(set.has); + this.keys = aCallable(set.keys); +}; + +SetRecord.prototype = { + getIterator: function () { + return getIteratorDirect(anObject(call(this.keys, this.set))); + }, + includes: function (it) { + return call(this.has, this.set, it); + } +}; + +// `GetSetRecord` abstract operation +// https://tc39.es/proposal-set-methods/#sec-getsetrecord +module.exports = function (obj) { + anObject(obj); + var numSize = +obj.size; + // NOTE: If size is undefined, then numSize will be NaN + // eslint-disable-next-line no-self-compare -- NaN check + if (numSize !== numSize) throw new $TypeError(INVALID_SIZE); + var intSize = toIntegerOrInfinity(numSize); + if (intSize < 0) throw new $RangeError(INVALID_SIZE); + return new SetRecord(obj, intSize); +}; + + +/***/ }), +/* 405 */ +/***/ (function(module) { + + +// `GetIteratorDirect(obj)` abstract operation +// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect +module.exports = function (obj) { + return { + iterator: obj, + next: obj.next, + done: false + }; +}; + + +/***/ }), +/* 406 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +var createSetLike = function (size) { + return { + size: size, + has: function () { + return false; + }, + keys: function () { + return { + next: function () { + return { done: true }; + } + }; + } + }; +}; + +module.exports = function (name) { + var Set = getBuiltIn('Set'); + try { + new Set()[name](createSetLike(0)); + try { + // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it + // https://github.com/tc39/proposal-set-methods/pull/88 + new Set()[name](createSetLike(-1)); + return false; + } catch (error2) { + return true; + } + } catch (error) { + return false; + } +}; + + +/***/ }), +/* 407 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var intersection = __webpack_require__(408); +var setMethodAcceptSetLike = __webpack_require__(406); + +var INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () { + // eslint-disable-next-line es/no-array-from, es/no-set -- testing + return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2'; +}); + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { + intersection: intersection +}); + + +/***/ }), +/* 408 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; +var has = SetHelpers.has; + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +module.exports = function intersection(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = new Set(); + + if (size(O) > otherRec.size) { + iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) add(result, e); + }); + } else { + iterateSet(O, function (e) { + if (otherRec.includes(e)) add(result, e); + }); + } + + return result; +}; + + +/***/ }), +/* 409 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isDisjointFrom = __webpack_require__(410); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isDisjointFrom` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, { + isDisjointFrom: isDisjointFrom +}); + + +/***/ }), +/* 410 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isDisjointFrom` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom +module.exports = function isDisjointFrom(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) <= otherRec.size) return iterateSet(O, function (e) { + if (otherRec.includes(e)) return false; + }, true) !== false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 411 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSubsetOf = __webpack_require__(412); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSubsetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, { + isSubsetOf: isSubsetOf +}); + + +/***/ }), +/* 412 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var size = __webpack_require__(403); +var iterate = __webpack_require__(401); +var getSetRecord = __webpack_require__(404); + +// `Set.prototype.isSubsetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf +module.exports = function isSubsetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) > otherRec.size) return false; + return iterate(O, function (e) { + if (!otherRec.includes(e)) return false; + }, true) !== false; +}; + + +/***/ }), +/* 413 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSupersetOf = __webpack_require__(414); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSupersetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, { + isSupersetOf: isSupersetOf +}); + + +/***/ }), +/* 414 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isSupersetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf +module.exports = function isSupersetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) < otherRec.size) return false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (!has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 415 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var symmetricDifference = __webpack_require__(416); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, { + symmetricDifference: symmetricDifference +}); + + +/***/ }), +/* 416 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +var add = SetHelpers.add; +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function symmetricDifference(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (e) { + if (has(O, e)) remove(result, e); + else add(result, e); + }); + return result; +}; + + +/***/ }), +/* 417 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var union = __webpack_require__(418); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, { + union: union +}); + + +/***/ }), +/* 418 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var add = (__webpack_require__(399).add); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +module.exports = function union(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 419 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var charAt = uncurryThis(''.charAt); + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-array-string-prototype-at -- safe + return '𠮷'.at(-2) !== '\uD842'; +}); + +// `String.prototype.at` method +// https://tc39.es/ecma262/#sec-string.prototype.at +$({ target: 'String', proto: true, forced: FORCED }, { + at: function at(index) { + var S = toString(requireObjectCoercible(this)); + var len = S.length; + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : charAt(S, k); + } +}); + + +/***/ }), +/* 420 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var codeAt = (__webpack_require__(421).codeAt); + +// `String.prototype.codePointAt` method +// https://tc39.es/ecma262/#sec-string.prototype.codepointat +$({ target: 'String', proto: true }, { + codePointAt: function codePointAt(pos) { + return codeAt(this, pos); + } +}); + + +/***/ }), +/* 421 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var stringSlice = uncurryThis(''.slice); + +var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +module.exports = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) +}; + + +/***/ }), +/* 422 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var slice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.endsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.endswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = that.length; + var end = endPosition === undefined ? len : min(toLength(endPosition), len); + var search = toString(searchString); + return slice(that, end - search.length, end) === search; + } +}); + + +/***/ }), +/* 423 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isRegExp = __webpack_require__(381); + +var $TypeError = TypeError; + +module.exports = function (it) { + if (isRegExp(it)) { + throw new $TypeError("The method doesn't accept regular expressions"); + } return it; +}; + + +/***/ }), +/* 424 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +module.exports = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; +}; + + +/***/ }), +/* 425 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toAbsoluteIndex = __webpack_require__(60); + +var $RangeError = RangeError; +var fromCharCode = String.fromCharCode; +// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing +var $fromCodePoint = String.fromCodePoint; +var join = uncurryThis([].join); + +// length should be 1, old FF problem +var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1; + +// `String.fromCodePoint` method +// https://tc39.es/ecma262/#sec-string.fromcodepoint +$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + fromCodePoint: function fromCodePoint(x) { + var elements = []; + var length = arguments.length; + var i = 0; + var code; + while (length > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point'); + elements[i] = code < 0x10000 + ? fromCharCode(code) + : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00); + } return join(elements, ''); + } +}); + + +/***/ }), +/* 426 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var correctIsRegExpLogic = __webpack_require__(424); + +var stringIndexOf = uncurryThis(''.indexOf); + +// `String.prototype.includes` method +// https://tc39.es/ecma262/#sec-string.prototype.includes +$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString(requireObjectCoercible(this)), + toString(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } +}); + + +/***/ }), +/* 427 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var charCodeAt = uncurryThis(''.charCodeAt); + +// `String.prototype.isWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true }, { + isWellFormed: function isWellFormed() { + var S = toString(requireObjectCoercible(this)); + var length = S.length; + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) continue; + // unpaired surrogate + if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false; + } return true; + } +}); + + +/***/ }), +/* 428 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); +var toString = __webpack_require__(68); +var InternalStateModule = __webpack_require__(51); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator(String, 'String', function (iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject(point, false); +}); + + +/***/ }), +/* 429 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var getMethod = __webpack_require__(29); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); + +// @@match logic +fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) { + return [ + // `String.prototype.match` method + // https://tc39.es/ecma262/#sec-string.prototype.match + function match(regexp) { + var O = requireObjectCoercible(this); + var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH); + return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O)); + }, + // `RegExp.prototype[@@match]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@match + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeMatch, rx, S); + + if (res.done) return res.value; + + if (!rx.global) return regExpExec(rx, S); + + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + var A = []; + var n = 0; + var result; + while ((result = regExpExec(rx, S)) !== null) { + var matchStr = toString(result[0]); + A[n] = matchStr; + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + n++; + } + return n === 0 ? null : A; + } + ]; +}); + + +/***/ }), +/* 430 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var regexpExec = __webpack_require__(389); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var createNonEnumerableProperty = __webpack_require__(43); + +var SPECIES = wellKnownSymbol('species'); +var RegExpPrototype = RegExp.prototype; + +module.exports = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol(KEY); + + var DELEGATES_TO_SYMBOL = !fails(function () { + // String methods call symbol-named RegExp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) !== 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var $exec = regexp.exec; + if ($exec === regexpExec || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) }; + } + return { done: true, value: call(nativeMethod, str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); +}; + + +/***/ }), +/* 431 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); + +// `AdvanceStringIndex` abstract operation +// https://tc39.es/ecma262/#sec-advancestringindex +module.exports = function (S, index, unicode) { + return index + (unicode ? charAt(S, index).length : 1); +}; + + +/***/ }), +/* 432 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var regexpExec = __webpack_require__(389); + +var $TypeError = TypeError; + +// `RegExpExec` abstract operation +// https://tc39.es/ecma262/#sec-regexpexec +module.exports = function (R, S) { + var exec = R.exec; + if (isCallable(exec)) { + var result = call(exec, R, S); + if (result !== null) anObject(result); + return result; + } + if (classof(R) === 'RegExp') return call(regexpExec, R, S); + throw new $TypeError('RegExp#exec called on incompatible receiver'); +}; + + +/***/ }), +/* 433 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-string-prototype-matchall -- safe */ +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(85); +var createIteratorConstructor = __webpack_require__(170); +var createIterResultObject = __webpack_require__(172); +var requireObjectCoercible = __webpack_require__(16); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var classof = __webpack_require__(15); +var isRegExp = __webpack_require__(381); +var getRegExpFlags = __webpack_require__(382); +var getMethod = __webpack_require__(29); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); +var InternalStateModule = __webpack_require__(51); +var IS_PURE = __webpack_require__(36); + +var MATCH_ALL = wellKnownSymbol('matchAll'); +var REGEXP_STRING = 'RegExp String'; +var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR); +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; +var stringIndexOf = uncurryThis(''.indexOf); +var nativeMatchAll = uncurryThis(''.matchAll); + +var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () { + nativeMatchAll('a', /./); +}); + +var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) { + setInternalState(this, { + type: REGEXP_STRING_ITERATOR, + regexp: regexp, + string: string, + global: $global, + unicode: fullUnicode, + done: false + }); +}, REGEXP_STRING, function next() { + var state = getInternalState(this); + if (state.done) return createIterResultObject(undefined, true); + var R = state.regexp; + var S = state.string; + var match = regExpExec(R, S); + if (match === null) { + state.done = true; + return createIterResultObject(undefined, true); + } + if (state.global) { + if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode); + return createIterResultObject(match, false); + } + state.done = true; + return createIterResultObject(match, false); +}); + +var $matchAll = function (string) { + var R = anObject(this); + var S = toString(string); + var C = speciesConstructor(R, RegExp); + var flags = toString(getRegExpFlags(R)); + var matcher, $global, fullUnicode; + matcher = new C(C === RegExp ? R.source : R, flags); + $global = !!~stringIndexOf(flags, 'g'); + fullUnicode = !!~stringIndexOf(flags, 'u'); + matcher.lastIndex = toLength(R.lastIndex); + return new $RegExpStringIterator(matcher, S, $global, fullUnicode); +}; + +// `String.prototype.matchAll` method +// https://tc39.es/ecma262/#sec-string.prototype.matchall +$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, { + matchAll: function matchAll(regexp) { + var O = requireObjectCoercible(this); + var flags, S, matcher, rx; + if (!isNullOrUndefined(regexp)) { + if (isRegExp(regexp)) { + flags = toString(requireObjectCoercible(getRegExpFlags(regexp))); + if (!~stringIndexOf(flags, 'g')) throw new $TypeError('`.matchAll` does not allow non-global regexes'); + } + if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + matcher = getMethod(regexp, MATCH_ALL); + if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll; + if (matcher) return call(matcher, regexp, O); + } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + S = toString(O); + rx = new RegExp(regexp, 'g'); + return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S); + } +}); + +IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll); + + +/***/ }), +/* 434 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padEnd = (__webpack_require__(240).end); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.padend +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padEnd: function padEnd(maxLength /* , fillString = ' ' */) { + return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 435 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/zloirock/core-js/issues/280 +var userAgent = __webpack_require__(28); + +module.exports = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent); + + +/***/ }), +/* 436 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padStart = (__webpack_require__(240).start); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padStart` method +// https://tc39.es/ecma262/#sec-string.prototype.padstart +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padStart: function padStart(maxLength /* , fillString = ' ' */) { + return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 437 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIndexedObject = __webpack_require__(12); +var toObject = __webpack_require__(39); +var toString = __webpack_require__(68); +var lengthOfArrayLike = __webpack_require__(63); + +var push = uncurryThis([].push); +var join = uncurryThis([].join); + +// `String.raw` method +// https://tc39.es/ecma262/#sec-string.raw +$({ target: 'String', stat: true }, { + raw: function raw(template) { + var rawTemplate = toIndexedObject(toObject(template).raw); + var literalSegments = lengthOfArrayLike(rawTemplate); + if (!literalSegments) return ''; + var argumentsLength = arguments.length; + var elements = []; + var i = 0; + while (true) { + push(elements, toString(rawTemplate[i++])); + if (i === literalSegments) return join(elements, ''); + if (i < argumentsLength) push(elements, toString(arguments[i])); + } + } +}); + + +/***/ }), +/* 438 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var repeat = __webpack_require__(241); + +// `String.prototype.repeat` method +// https://tc39.es/ecma262/#sec-string.prototype.repeat +$({ target: 'String', proto: true }, { + repeat: repeat +}); + + +/***/ }), +/* 439 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var advanceStringIndex = __webpack_require__(431); +var getMethod = __webpack_require__(29); +var getSubstitution = __webpack_require__(440); +var regExpExec = __webpack_require__(432); +var wellKnownSymbol = __webpack_require__(33); + +var REPLACE = wellKnownSymbol('replace'); +var max = Math.max; +var min = Math.min; +var concat = uncurryThis([].concat); +var push = uncurryThis([].push); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); + +var maybeToString = function (it) { + return it === undefined ? it : String(it); +}; + +// IE <= 11 replaces $0 with the whole match, as if it was $& +// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 +var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; +})(); + +// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string +var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + return false; +})(); + +var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$<a>') !== '7'; +}); + +// @@replace logic +fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + + return [ + // `String.prototype.replace` method + // https://tc39.es/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE); + return replacer + ? call(replacer, searchValue, O, replaceValue) + : call(nativeReplace, toString(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace + function (string, replaceValue) { + var rx = anObject(this); + var S = toString(string); + + if ( + typeof replaceValue == 'string' && + stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf(replaceValue, '$<') === -1 + ) { + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); + if (res.done) return res.value; + } + + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + + var global = rx.global; + var fullUnicode; + if (global) { + fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + + var results = []; + var result; + while (true) { + result = regExpExec(rx, S); + if (result === null) break; + + push(results, result); + if (!global) break; + + var matchStr = toString(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + + var matched = toString(result[0]); + var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); + var captures = []; + var replacement; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = concat([matched], captures, position, S); + if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); + replacement = toString(apply(replaceValue, undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + + return accumulatedResult + stringSlice(S, nextSourcePosition); + } + ]; +}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); + + +/***/ }), +/* 440 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var floor = Math.floor; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +// eslint-disable-next-line redos/no-vulnerable -- safe +var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; +var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + +// `GetSubstitution` abstract operation +// https://tc39.es/ecma262/#sec-getsubstitution +module.exports = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace(replacement, symbols, function (match, ch) { + var capture; + switch (charAt(ch, 0)) { + case '$': return '$'; + case '&': return matched; + case '`': return stringSlice(str, 0, position); + case "'": return stringSlice(str, tailPos); + case '<': + capture = namedCaptures[stringSlice(ch, 1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); +}; + + +/***/ }), +/* 441 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var getRegExpFlags = __webpack_require__(382); +var getSubstitution = __webpack_require__(440); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var REPLACE = wellKnownSymbol('replace'); +var $TypeError = TypeError; +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +var max = Math.max; + +// `String.prototype.replaceAll` method +// https://tc39.es/ecma262/#sec-string.prototype.replaceall +$({ target: 'String', proto: true }, { + replaceAll: function replaceAll(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement; + var position = 0; + var endOfLastMatch = 0; + var result = ''; + if (!isNullOrUndefined(searchValue)) { + IS_REG_EXP = isRegExp(searchValue); + if (IS_REG_EXP) { + flags = toString(requireObjectCoercible(getRegExpFlags(searchValue))); + if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes'); + } + replacer = getMethod(searchValue, REPLACE); + if (replacer) { + return call(replacer, searchValue, O, replaceValue); + } else if (IS_PURE && IS_REG_EXP) { + return replace(toString(O), searchValue, replaceValue); + } + } + string = toString(O); + searchString = toString(searchValue); + functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + searchLength = searchString.length; + advanceBy = max(1, searchLength); + position = indexOf(string, searchString); + while (position !== -1) { + replacement = functionalReplace + ? toString(replaceValue(searchString, position, string)) + : getSubstitution(searchString, string, position, [], undefined, replaceValue); + result += stringSlice(string, endOfLastMatch, position) + replacement; + endOfLastMatch = position + searchLength; + position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy); + } + if (endOfLastMatch < string.length) { + result += stringSlice(string, endOfLastMatch); + } + return result; + } +}); + + +/***/ }), +/* 442 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var sameValue = __webpack_require__(323); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); + +// @@search logic +fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH); + return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeSearch, rx, S); + + if (res.done) return res.value; + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; +}); + + +/***/ }), +/* 443 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); +var stickyHelpers = __webpack_require__(384); +var fails = __webpack_require__(7); + +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; +var MAX_UINT32 = 0xFFFFFFFF; +var min = Math.min; +var push = uncurryThis([].push); +var stringSlice = uncurryThis(''.slice); + +// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec +// Weex JS has frozen built-in prototypes, so use try / catch wrapper +var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { + // eslint-disable-next-line regexp/no-empty-group -- required for testing + var re = /(?:)/; + var originalExec = re.exec; + re.exec = function () { return originalExec.apply(this, arguments); }; + var result = 'ab'.split(re); + return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; +}); + +var BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' || + // eslint-disable-next-line regexp/no-empty-group -- required for testing + 'test'.split(/(?:)/, -1).length !== 4 || + 'ab'.split(/(?:ab)*/).length !== 2 || + '.'.split(/(.?)(.?)/).length !== 4 || + // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing + '.'.split(/()()/).length > 1 || + ''.split(/.?/).length; + +// @@split logic +fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) { + var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) { + return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit); + } : nativeSplit; + + return [ + // `String.prototype.split` method + // https://tc39.es/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = requireObjectCoercible(this); + var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT); + return splitter + ? call(splitter, separator, O, limit) + : call(internalSplit, toString(O), separator, limit); + }, + // `RegExp.prototype[@@split]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (string, limit) { + var rx = anObject(this); + var S = toString(string); + + if (!BUGGY) { + var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit); + if (res.done) return res.value; + } + + var C = speciesConstructor(rx, RegExp); + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + + (rx.multiline ? 'm' : '') + + (rx.unicode ? 'u' : '') + + (UNSUPPORTED_Y ? 'g' : 'y'); + // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + while (q < S.length) { + splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; + var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S); + var e; + if ( + z === null || + (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p + ) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + push(A, stringSlice(S, p, q)); + if (A.length === lim) return A; + for (var i = 1; i <= z.length - 1; i++) { + push(A, z[i]); + if (A.length === lim) return A; + } + q = p = e; + } + } + push(A, stringSlice(S, p)); + return A; + } + ]; +}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); + + +/***/ }), +/* 444 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var stringSlice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.startsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.startswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString(searchString); + return stringSlice(that, index, index + search.length) === search; + } +}); + + +/***/ }), +/* 445 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); + +var stringSlice = uncurryThis(''.slice); +var max = Math.max; +var min = Math.min; + +// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing +var FORCED = !''.substr || 'ab'.substr(-1) !== 'b'; + +// `String.prototype.substr` method +// https://tc39.es/ecma262/#sec-string.prototype.substr +$({ target: 'String', proto: true, forced: FORCED }, { + substr: function substr(start, length) { + var that = toString(requireObjectCoercible(this)); + var size = that.length; + var intStart = toIntegerOrInfinity(start); + var intLength, intEnd; + if (intStart === Infinity) intStart = 0; + if (intStart < 0) intStart = max(size + intStart, 0); + intLength = length === undefined ? size : toIntegerOrInfinity(length); + if (intLength <= 0 || intLength === Infinity) return ''; + intEnd = min(intStart + intLength, size); + return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd); + } +}); + + +/***/ }), +/* 446 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var $Array = Array; +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +// eslint-disable-next-line es/no-string-prototype-iswellformed-towellformed -- safe +var $toWellFormed = ''.toWellFormed; +var REPLACEMENT_CHARACTER = '\uFFFD'; + +// Safari bug +var TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () { + return call($toWellFormed, 1) !== '1'; +}); + +// `String.prototype.toWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, { + toWellFormed: function toWellFormed() { + var S = toString(requireObjectCoercible(this)); + if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S); + var length = S.length; + var result = $Array(length); + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i); + // unpaired surrogate + else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER; + // surrogate pair + else { + result[i] = charAt(S, i); + result[++i] = charAt(S, i); + } + } return join(result, ''); + } +}); + + +/***/ }), +/* 447 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $trim = (__webpack_require__(286).trim); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.trim` method +// https://tc39.es/ecma262/#sec-string.prototype.trim +$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } +}); + + +/***/ }), +/* 448 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var fails = __webpack_require__(7); +var whitespaces = __webpack_require__(287); + +var non = '\u200B\u0085\u180E'; + +// check that a method works with the correct list +// of whitespaces and has a correct name +module.exports = function (METHOD_NAME) { + return fails(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); +}; + + +/***/ }), +/* 449 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(450); +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, { + trimEnd: trimEnd +}); + + +/***/ }), +/* 450 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimRight` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, { + trimRight: trimEnd +}); + + +/***/ }), +/* 451 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimEnd = (__webpack_require__(286).end); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimEnd, trimRight }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// https://tc39.es/ecma262/#String.prototype.trimright +module.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() { + return $trimEnd(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimEnd; + + +/***/ }), +/* 452 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(453); +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimStart` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, { + trimStart: trimStart +}); + + +/***/ }), +/* 453 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimLeft` method +// https://tc39.es/ecma262/#sec-string.prototype.trimleft +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, { + trimLeft: trimStart +}); + + +/***/ }), +/* 454 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimStart = (__webpack_require__(286).start); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimStart, trimLeft }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// https://tc39.es/ecma262/#String.prototype.trimleft +module.exports = forcedStringTrimMethod('trimStart') ? function trimStart() { + return $trimStart(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimStart; + + +/***/ }), +/* 455 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.anchor` method +// https://tc39.es/ecma262/#sec-string.prototype.anchor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, { + anchor: function anchor(name) { + return createHTML(this, 'a', 'name', name); + } +}); + + +/***/ }), +/* 456 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var quot = /"/g; +var replace = uncurryThis(''.replace); + +// `CreateHTML` abstract operation +// https://tc39.es/ecma262/#sec-createhtml +module.exports = function (string, tag, attribute, value) { + var S = toString(requireObjectCoercible(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + replace(toString(value), quot, '"') + '"'; + return p1 + '>' + S + '</' + tag + '>'; +}; + + +/***/ }), +/* 457 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// check the existence of a method, lowercase +// of a tag and escaping quotes in arguments +module.exports = function (METHOD_NAME) { + return fails(function () { + var test = ''[METHOD_NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }); +}; + + +/***/ }), +/* 458 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.big` method +// https://tc39.es/ecma262/#sec-string.prototype.big +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, { + big: function big() { + return createHTML(this, 'big', '', ''); + } +}); + + +/***/ }), +/* 459 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.blink` method +// https://tc39.es/ecma262/#sec-string.prototype.blink +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, { + blink: function blink() { + return createHTML(this, 'blink', '', ''); + } +}); + + +/***/ }), +/* 460 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.bold` method +// https://tc39.es/ecma262/#sec-string.prototype.bold +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, { + bold: function bold() { + return createHTML(this, 'b', '', ''); + } +}); + + +/***/ }), +/* 461 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fixed` method +// https://tc39.es/ecma262/#sec-string.prototype.fixed +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, { + fixed: function fixed() { + return createHTML(this, 'tt', '', ''); + } +}); + + +/***/ }), +/* 462 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontcolor` method +// https://tc39.es/ecma262/#sec-string.prototype.fontcolor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, { + fontcolor: function fontcolor(color) { + return createHTML(this, 'font', 'color', color); + } +}); + + +/***/ }), +/* 463 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontsize` method +// https://tc39.es/ecma262/#sec-string.prototype.fontsize +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, { + fontsize: function fontsize(size) { + return createHTML(this, 'font', 'size', size); + } +}); + + +/***/ }), +/* 464 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.italics` method +// https://tc39.es/ecma262/#sec-string.prototype.italics +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, { + italics: function italics() { + return createHTML(this, 'i', '', ''); + } +}); + + +/***/ }), +/* 465 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.link` method +// https://tc39.es/ecma262/#sec-string.prototype.link +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, { + link: function link(url) { + return createHTML(this, 'a', 'href', url); + } +}); + + +/***/ }), +/* 466 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.small` method +// https://tc39.es/ecma262/#sec-string.prototype.small +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, { + small: function small() { + return createHTML(this, 'small', '', ''); + } +}); + + +/***/ }), +/* 467 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.strike` method +// https://tc39.es/ecma262/#sec-string.prototype.strike +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, { + strike: function strike() { + return createHTML(this, 'strike', '', ''); + } +}); + + +/***/ }), +/* 468 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sub` method +// https://tc39.es/ecma262/#sec-string.prototype.sub +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, { + sub: function sub() { + return createHTML(this, 'sub', '', ''); + } +}); + + +/***/ }), +/* 469 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sup` method +// https://tc39.es/ecma262/#sec-string.prototype.sup +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, { + sup: function sup() { + return createHTML(this, 'sup', '', ''); + } +}); + + +/***/ }), +/* 470 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float32', function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 471 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var DESCRIPTORS = __webpack_require__(6); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayBufferModule = __webpack_require__(207); +var anInstance = __webpack_require__(210); +var createPropertyDescriptor = __webpack_require__(11); +var createNonEnumerableProperty = __webpack_require__(43); +var isIntegralNumber = __webpack_require__(292); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var toOffset = __webpack_require__(473); +var toUint8Clamped = __webpack_require__(475); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var create = __webpack_require__(71); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var getOwnPropertyNames = (__webpack_require__(57).f); +var typedArrayFrom = __webpack_require__(476); +var forEach = (__webpack_require__(83).forEach); +var setSpecies = __webpack_require__(193); +var defineBuiltInAccessor = __webpack_require__(77); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var arrayFromConstructorAndList = __webpack_require__(198); +var InternalStateModule = __webpack_require__(51); +var inheritIfRequired = __webpack_require__(118); + +var getInternalState = InternalStateModule.get; +var setInternalState = InternalStateModule.set; +var enforceInternalState = InternalStateModule.enforce; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var RangeError = global.RangeError; +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataView = ArrayBufferModule.DataView; +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; +var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG; +var TypedArray = ArrayBufferViewCore.TypedArray; +var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype; +var isTypedArray = ArrayBufferViewCore.isTypedArray; +var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; +var WRONG_LENGTH = 'Wrong length'; + +var addGetter = function (it, key) { + defineBuiltInAccessor(it, key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var isArrayBuffer = function (it) { + var klass; + return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer'; +}; + +var isTypedArrayIndex = function (target, key) { + return isTypedArray(target) + && !isSymbol(key) + && key in target + && isIntegralNumber(+key) + && key >= 0; +}; + +var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { + key = toPropertyKey(key); + return isTypedArrayIndex(target, key) + ? createPropertyDescriptor(2, target[key]) + : nativeGetOwnPropertyDescriptor(target, key); +}; + +var wrappedDefineProperty = function defineProperty(target, key, descriptor) { + key = toPropertyKey(key); + if (isTypedArrayIndex(target, key) + && isObject(descriptor) + && hasOwn(descriptor, 'value') + && !hasOwn(descriptor, 'get') + && !hasOwn(descriptor, 'set') + // TODO: add validation descriptor w/o calling accessors + && !descriptor.configurable + && (!hasOwn(descriptor, 'writable') || descriptor.writable) + && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable) + ) { + target[key] = descriptor.value; + return target; + } return nativeDefineProperty(target, key, descriptor); +}; + +if (DESCRIPTORS) { + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor; + definePropertyModule.f = wrappedDefineProperty; + addGetter(TypedArrayPrototype, 'buffer'); + addGetter(TypedArrayPrototype, 'byteOffset'); + addGetter(TypedArrayPrototype, 'byteLength'); + addGetter(TypedArrayPrototype, 'length'); + } + + $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, + defineProperty: wrappedDefineProperty + }); + + module.exports = function (TYPE, wrapper, CLAMPED) { + var BYTES = TYPE.match(/\d+/)[0] / 8; + var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + TYPE; + var SETTER = 'set' + TYPE; + var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME]; + var TypedArrayConstructor = NativeTypedArrayConstructor; + var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; + var exported = {}; + + var getter = function (that, index) { + var data = getInternalState(that); + return data.view[GETTER](index * BYTES + data.byteOffset, true); + }; + + var setter = function (that, index, value) { + var data = getInternalState(that); + data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true); + }; + + var addElement = function (that, index) { + nativeDefineProperty(that, index, { + get: function () { + return getter(this, index); + }, + set: function (value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + TypedArrayConstructor = wrapper(function (that, data, offset, $length) { + anInstance(that, TypedArrayConstructorPrototype); + var index = 0; + var byteOffset = 0; + var buffer, byteLength, length; + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new ArrayBuffer(byteLength); + } else if (isArrayBuffer(data)) { + buffer = data; + byteOffset = toOffset(offset, BYTES); + var $len = data.byteLength; + if ($length === undefined) { + if ($len % BYTES) throw new RangeError(WRONG_LENGTH); + byteLength = $len - byteOffset; + if (byteLength < 0) throw new RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH); + } + length = byteLength / BYTES; + } else if (isTypedArray(data)) { + return arrayFromConstructorAndList(TypedArrayConstructor, data); + } else { + return call(typedArrayFrom, TypedArrayConstructor, data); + } + setInternalState(that, { + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength, + length: length, + view: new DataView(buffer) + }); + while (index < length) addElement(that, index++); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype); + } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) { + TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { + anInstance(dummy, TypedArrayConstructorPrototype); + return inheritIfRequired(function () { + if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); + if (isArrayBuffer(data)) return $length !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) + : typedArrayOffset !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) + : new NativeTypedArrayConstructor(data); + if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data); + return call(typedArrayFrom, TypedArrayConstructor, data); + }(), dummy, TypedArrayConstructor); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { + if (!(key in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); + } + }); + TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; + } + + if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); + } + + enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor; + + if (TYPED_ARRAY_TAG) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); + } + + var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor; + + exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; + + $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported); + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); + } + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); + } + + setSpecies(CONSTRUCTOR_NAME); + }; +} else module.exports = function () { /* empty */ }; + + +/***/ }), +/* 472 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-new -- required for testing */ +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var NATIVE_ARRAY_BUFFER_VIEWS = (__webpack_require__(217).NATIVE_ARRAY_BUFFER_VIEWS); + +var ArrayBuffer = global.ArrayBuffer; +var Int8Array = global.Int8Array; + +module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () { + Int8Array(1); +}) || !fails(function () { + new Int8Array(-1); +}) || !checkCorrectnessOfIteration(function (iterable) { + new Int8Array(); + new Int8Array(null); + new Int8Array(1.5); + new Int8Array(iterable); +}, true) || fails(function () { + // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill + return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1; +}); + + +/***/ }), +/* 473 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPositiveInteger = __webpack_require__(474); + +var $RangeError = RangeError; + +module.exports = function (it, BYTES) { + var offset = toPositiveInteger(it); + if (offset % BYTES) throw new $RangeError('Wrong offset'); + return offset; +}; + + +/***/ }), +/* 474 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +module.exports = function (it) { + var result = toIntegerOrInfinity(it); + if (result < 0) throw new $RangeError("The argument can't be less than 0"); + return result; +}; + + +/***/ }), +/* 475 */ +/***/ (function(module) { + + +var round = Math.round; + +module.exports = function (it) { + var value = round(it); + return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF; +}; + + +/***/ }), +/* 476 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var aConstructor = __webpack_require__(220); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var isArrayIteratorMethod = __webpack_require__(131); +var isBigIntArray = __webpack_require__(477); +var aTypedArrayConstructor = (__webpack_require__(217).aTypedArrayConstructor); +var toBigInt = __webpack_require__(478); + +module.exports = function from(source /* , mapfn, thisArg */) { + var C = aConstructor(this); + var O = toObject(source); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iteratorMethod = getIteratorMethod(O); + var i, length, result, thisIsBigIntArray, value, step, iterator, next; + if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + O = []; + while (!(step = call(next, iterator)).done) { + O.push(step.value); + } + } + if (mapping && argumentsLength > 2) { + mapfn = bind(mapfn, arguments[2]); + } + length = lengthOfArrayLike(O); + result = new (aTypedArrayConstructor(C))(length); + thisIsBigIntArray = isBigIntArray(result); + for (i = 0; length > i; i++) { + value = mapping ? mapfn(O[i], i) : O[i]; + // FF30- typed arrays doesn't properly convert objects to typed array values + result[i] = thisIsBigIntArray ? toBigInt(value) : +value; + } + return result; +}; + + +/***/ }), +/* 477 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +module.exports = function (it) { + var klass = classof(it); + return klass === 'BigInt64Array' || klass === 'BigUint64Array'; +}; + + +/***/ }), +/* 478 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); + +var $TypeError = TypeError; + +// `ToBigInt` abstract operation +// https://tc39.es/ecma262/#sec-tobigint +module.exports = function (argument) { + var prim = toPrimitive(argument, 'number'); + if (typeof prim == 'number') throw new $TypeError("Can't convert number to bigint"); + // eslint-disable-next-line es/no-bigint -- safe + return BigInt(prim); +}; + + +/***/ }), +/* 479 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float64Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float64', function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 480 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int8', function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 481 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int16', function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 482 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int32', function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 483 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 484 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8ClampedArray` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}, true); + + +/***/ }), +/* 485 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint16', function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 486 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint32', function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 487 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.at` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at +exportTypedArrayMethod('at', function at(index) { + var O = aTypedArray(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; +}); + + +/***/ }), +/* 488 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var $ArrayCopyWithin = __webpack_require__(144); + +var u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin +exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) { + return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined); +}); + + +/***/ }), +/* 489 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $every = (__webpack_require__(83).every); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.every` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every +exportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) { + return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 490 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $fill = __webpack_require__(149); +var toBigInt = __webpack_require__(478); +var classof = __webpack_require__(69); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var slice = uncurryThis(''.slice); + +// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18 +var CONVERSION_BUG = fails(function () { + var count = 0; + // eslint-disable-next-line es/no-typed-arrays -- safe + new Int8Array(2).fill({ valueOf: function () { return count++; } }); + return count !== 1; +}); + +// `%TypedArray%.prototype.fill` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill +exportTypedArrayMethod('fill', function fill(value /* , start, end */) { + var length = arguments.length; + aTypedArray(this); + var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value; + return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined); +}, CONVERSION_BUG); + + +/***/ }), +/* 491 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $filter = (__webpack_require__(83).filter); +var fromSpeciesAndList = __webpack_require__(492); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.filter` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter +exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) { + var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return fromSpeciesAndList(this, list); +}); + + +/***/ }), +/* 492 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arrayFromConstructorAndList = __webpack_require__(198); +var typedArraySpeciesConstructor = __webpack_require__(493); + +module.exports = function (instance, list) { + return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list); +}; + + +/***/ }), +/* 493 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var speciesConstructor = __webpack_require__(219); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// a part of `TypedArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#typedarray-species-create +module.exports = function (originalArray) { + return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray))); +}; + + +/***/ }), +/* 494 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $find = (__webpack_require__(83).find); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.find` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find +exportTypedArrayMethod('find', function find(predicate /* , thisArg */) { + return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 495 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findIndex = (__webpack_require__(83).findIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex +exportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) { + return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 496 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLast = (__webpack_require__(154).findLast); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLast` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast +exportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) { + return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 497 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLastIndex = (__webpack_require__(154).findLastIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex +exportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) { + return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 498 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $forEach = (__webpack_require__(83).forEach); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.forEach` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach +exportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) { + $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 499 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var exportTypedArrayStaticMethod = (__webpack_require__(217).exportTypedArrayStaticMethod); +var typedArrayFrom = __webpack_require__(476); + +// `%TypedArray%.from` method +// https://tc39.es/ecma262/#sec-%typedarray%.from +exportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 500 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $includes = (__webpack_require__(59).includes); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.includes` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes +exportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) { + return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 501 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $indexOf = (__webpack_require__(59).indexOf); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof +exportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) { + return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 502 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayIterators = __webpack_require__(168); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var Uint8Array = global.Uint8Array; +var arrayValues = uncurryThis(ArrayIterators.values); +var arrayKeys = uncurryThis(ArrayIterators.keys); +var arrayEntries = uncurryThis(ArrayIterators.entries); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var TypedArrayPrototype = Uint8Array && Uint8Array.prototype; + +var GENERIC = !fails(function () { + TypedArrayPrototype[ITERATOR].call([1]); +}); + +var ITERATOR_IS_VALUES = !!TypedArrayPrototype + && TypedArrayPrototype.values + && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values + && TypedArrayPrototype.values.name === 'values'; + +var typedArrayValues = function values() { + return arrayValues(aTypedArray(this)); +}; + +// `%TypedArray%.prototype.entries` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries +exportTypedArrayMethod('entries', function entries() { + return arrayEntries(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.keys` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys +exportTypedArrayMethod('keys', function keys() { + return arrayKeys(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.values` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values +exportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); +// `%TypedArray%.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator +exportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); + + +/***/ }), +/* 503 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $join = uncurryThis([].join); + +// `%TypedArray%.prototype.join` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join +exportTypedArrayMethod('join', function join(separator) { + return $join(aTypedArray(this), separator); +}); + + +/***/ }), +/* 504 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var apply = __webpack_require__(94); +var $lastIndexOf = __webpack_require__(175); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof +exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { + var length = arguments.length; + return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]); +}); + + +/***/ }), +/* 505 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $map = (__webpack_require__(83).map); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.map` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map +exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) { + return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { + return new (typedArraySpeciesConstructor(O))(length); + }); +}); + + +/***/ }), +/* 506 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod; + +// `%TypedArray%.of` method +// https://tc39.es/ecma262/#sec-%typedarray%.of +exportTypedArrayStaticMethod('of', function of(/* ...items */) { + var index = 0; + var length = arguments.length; + var result = new (aTypedArrayConstructor(this))(length); + while (length > index) result[index] = arguments[index++]; + return result; +}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 507 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduce = (__webpack_require__(181).left); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduce` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce +exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 508 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduceRight = (__webpack_require__(181).right); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright +exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 509 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var floor = Math.floor; + +// `%TypedArray%.prototype.reverse` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse +exportTypedArrayMethod('reverse', function reverse() { + var that = this; + var length = aTypedArray(that).length; + var middle = floor(length / 2); + var index = 0; + var value; + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } return that; +}); + + +/***/ }), +/* 510 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toOffset = __webpack_require__(473); +var toIndexedObject = __webpack_require__(39); +var fails = __webpack_require__(7); + +var RangeError = global.RangeError; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var $set = Int8ArrayPrototype && Int8ArrayPrototype.set; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + var array = new Uint8ClampedArray(2); + call($set, array, { length: 1, 0: 3 }, 1); + return array[1] !== 3; +}); + +// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other +var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () { + var array = new Int8Array(2); + array.set(1); + array.set('2', 1); + return array[0] !== 0 || array[1] !== 2; +}); + +// `%TypedArray%.prototype.set` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set +exportTypedArrayMethod('set', function set(arrayLike /* , offset */) { + aTypedArray(this); + var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); + var src = toIndexedObject(arrayLike); + if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset); + var length = this.length; + var len = lengthOfArrayLike(src); + var index = 0; + if (len + offset > length) throw new RangeError('Wrong length'); + while (index < len) this[offset + index] = src[index++]; +}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG); + + +/***/ }), +/* 511 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var typedArraySpeciesConstructor = __webpack_require__(493); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + new Int8Array(1).slice(); +}); + +// `%TypedArray%.prototype.slice` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice +exportTypedArrayMethod('slice', function slice(start, end) { + var list = arraySlice(aTypedArray(this), start, end); + var C = typedArraySpeciesConstructor(this); + var index = 0; + var length = list.length; + var result = new C(length); + while (length > index) result[index] = list[index++]; + return result; +}, FORCED); + + +/***/ }), +/* 512 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $some = (__webpack_require__(83).some); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.some` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some +exportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) { + return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 513 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var aCallable = __webpack_require__(30); +var internalSort = __webpack_require__(188); +var ArrayBufferViewCore = __webpack_require__(217); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var Uint16Array = global.Uint16Array; +var nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort); + +// WebKit +var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () { + nativeSort(new Uint16Array(2), null); +}) && fails(function () { + nativeSort(new Uint16Array(2), {}); +})); + +var STABLE_SORT = !!nativeSort && !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 74; + if (FF) return FF < 67; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 602; + + var array = new Uint16Array(516); + var expected = Array(516); + var index, mod; + + for (index = 0; index < 516; index++) { + mod = index % 4; + array[index] = 515 - index; + expected[index] = index - 2 * mod + 3; + } + + nativeSort(array, function (a, b) { + return (a / 4 | 0) - (b / 4 | 0); + }); + + for (index = 0; index < 516; index++) { + if (array[index] !== expected[index]) return true; + } +}); + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (comparefn !== undefined) return +comparefn(x, y) || 0; + // eslint-disable-next-line no-self-compare -- NaN check + if (y !== y) return -1; + // eslint-disable-next-line no-self-compare -- NaN check + if (x !== x) return 1; + if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1; + return x > y; + }; +}; + +// `%TypedArray%.prototype.sort` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort +exportTypedArrayMethod('sort', function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + if (STABLE_SORT) return nativeSort(this, comparefn); + + return internalSort(aTypedArray(this), getSortCompare(comparefn)); +}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS); + + +/***/ }), +/* 514 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var toLength = __webpack_require__(64); +var toAbsoluteIndex = __webpack_require__(60); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.subarray` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray +exportTypedArrayMethod('subarray', function subarray(begin, end) { + var O = aTypedArray(this); + var length = O.length; + var beginIndex = toAbsoluteIndex(begin, length); + var C = typedArraySpeciesConstructor(O); + return new C( + O.buffer, + O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, + toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex) + ); +}); + + +/***/ }), +/* 515 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var ArrayBufferViewCore = __webpack_require__(217); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var Int8Array = global.Int8Array; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $toLocaleString = [].toLocaleString; + +// iOS Safari 6.x fails here +var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () { + $toLocaleString.call(new Int8Array(1)); +}); + +var FORCED = fails(function () { + return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString(); +}) || !fails(function () { + Int8Array.prototype.toLocaleString.call([1, 2]); +}); + +// `%TypedArray%.prototype.toLocaleString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring +exportTypedArrayMethod('toLocaleString', function toLocaleString() { + return apply( + $toLocaleString, + TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this), + arraySlice(arguments) + ); +}, FORCED); + + +/***/ }), +/* 516 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayToReversed = __webpack_require__(196); +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// `%TypedArray%.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed +exportTypedArrayMethod('toReversed', function toReversed() { + return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this)); +}); + + +/***/ }), +/* 517 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var arrayFromConstructorAndList = __webpack_require__(198); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort); + +// `%TypedArray%.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted +exportTypedArrayMethod('toSorted', function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = aTypedArray(this); + var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O); + return sort(A, compareFn); +}); + + +/***/ }), +/* 518 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var exportTypedArrayMethod = (__webpack_require__(217).exportTypedArrayMethod); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); + +var Uint8Array = global.Uint8Array; +var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {}; +var arrayToString = [].toString; +var join = uncurryThis([].join); + +if (fails(function () { arrayToString.call({}); })) { + arrayToString = function toString() { + return join(this); + }; +} + +var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString; + +// `%TypedArray%.prototype.toString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring +exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD); + + +/***/ }), +/* 519 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayWith = __webpack_require__(205); +var ArrayBufferViewCore = __webpack_require__(217); +var isBigIntArray = __webpack_require__(477); +var toIntegerOrInfinity = __webpack_require__(61); +var toBigInt = __webpack_require__(478); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var PROPER_ORDER = !!function () { + try { + // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing + new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } }); + } catch (error) { + // some early implementations, like WebKit, does not follow the final semantic + // https://github.com/tc39/proposal-change-array-by-copy/pull/86 + return error === 8; + } +}(); + +// `%TypedArray%.prototype.with` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with +exportTypedArrayMethod('with', { 'with': function (index, value) { + var O = aTypedArray(this); + var relativeIndex = toIntegerOrInfinity(index); + var actualValue = isBigIntArray(O) ? toBigInt(value) : +value; + return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue); +} }['with'], !PROPER_ORDER); + + +/***/ }), +/* 520 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var stringSlice = uncurryThis(''.slice); + +var hex2 = /^[\da-f]{2}$/i; +var hex4 = /^[\da-f]{4}$/i; + +// `unescape` method +// https://tc39.es/ecma262/#sec-unescape-string +$({ global: true }, { + unescape: function unescape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, part; + while (index < length) { + chr = charAt(str, index++); + if (chr === '%') { + if (charAt(str, index) === 'u') { + part = stringSlice(str, index + 1, index + 5); + if (exec(hex4, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 5; + continue; + } + } else { + part = stringSlice(str, index, index + 2); + if (exec(hex2, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 2; + continue; + } + } + } + result += chr; + } return result; + } +}); + + +/***/ }), +/* 521 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(522); + + +/***/ }), +/* 522 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var FREEZING = __webpack_require__(259); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var InternalMetadataModule = __webpack_require__(256); +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); +var isObject = __webpack_require__(20); +var enforceInternalState = (__webpack_require__(51).enforce); +var fails = __webpack_require__(7); +var NATIVE_WEAK_MAP = __webpack_require__(52); + +var $Object = Object; +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray = Array.isArray; +// eslint-disable-next-line es/no-object-isextensible -- safe +var isExtensible = $Object.isExtensible; +// eslint-disable-next-line es/no-object-isfrozen -- safe +var isFrozen = $Object.isFrozen; +// eslint-disable-next-line es/no-object-issealed -- safe +var isSealed = $Object.isSealed; +// eslint-disable-next-line es/no-object-freeze -- safe +var freeze = $Object.freeze; +// eslint-disable-next-line es/no-object-seal -- safe +var seal = $Object.seal; + +var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; +var InternalWeakMap; + +var wrapper = function (init) { + return function WeakMap() { + return init(this, arguments.length ? arguments[0] : undefined); + }; +}; + +// `WeakMap` constructor +// https://tc39.es/ecma262/#sec-weakmap-constructor +var $WeakMap = collection('WeakMap', wrapper, collectionWeak); +var WeakMapPrototype = $WeakMap.prototype; +var nativeSet = uncurryThis(WeakMapPrototype.set); + +// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them +var hasMSEdgeFreezingBug = function () { + return FREEZING && fails(function () { + var frozenArray = freeze([]); + nativeSet(new $WeakMap(), frozenArray, 1); + return !isFrozen(frozenArray); + }); +}; + +// IE11 WeakMap frozen keys fix +// We can't use feature detection because it crash some old IE builds +// https://github.com/zloirock/core-js/issues/485 +if (NATIVE_WEAK_MAP) if (IS_IE11) { + InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); + InternalMetadataModule.enable(); + var nativeDelete = uncurryThis(WeakMapPrototype['delete']); + var nativeHas = uncurryThis(WeakMapPrototype.has); + var nativeGet = uncurryThis(WeakMapPrototype.get); + defineBuiltIns(WeakMapPrototype, { + 'delete': function (key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeDelete(this, key) || state.frozen['delete'](key); + } return nativeDelete(this, key); + }, + has: function has(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) || state.frozen.has(key); + } return nativeHas(this, key); + }, + get: function get(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key); + } return nativeGet(this, key); + }, + set: function set(key, value) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value); + } else nativeSet(this, key, value); + return this; + } + }); +// Chakra Edge frozen keys fix +} else if (hasMSEdgeFreezingBug()) { + defineBuiltIns(WeakMapPrototype, { + set: function set(key, value) { + var arrayIntegrityLevel; + if (isArray(key)) { + if (isFrozen(key)) arrayIntegrityLevel = freeze; + else if (isSealed(key)) arrayIntegrityLevel = seal; + } + nativeSet(this, key, value); + if (arrayIntegrityLevel) arrayIntegrityLevel(key); + return this; + } + }); +} + + +/***/ }), +/* 523 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var getWeakData = (__webpack_require__(256).getWeakData); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var iterate = __webpack_require__(130); +var ArrayIterationModule = __webpack_require__(83); +var hasOwn = __webpack_require__(38); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var splice = uncurryThis([].splice); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } +}; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } +}; + + +/***/ }), +/* 524 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(525); + + +/***/ }), +/* 525 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); + +// `WeakSet` constructor +// https://tc39.es/ecma262/#sec-weakset-constructor +collection('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionWeak); + + +/***/ }), +/* 526 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var c2i = (__webpack_require__(527).c2i); + +var disallowed = /[^\d+/a-z]/i; +var whitespaces = /[\t\n\f\r ]+/g; +var finalEq = /[=]{1,2}$/; + +var $atob = getBuiltIn('atob'); +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var exec = uncurryThis(disallowed.exec); + +var BASIC = !!$atob && !fails(function () { + return $atob('aGk=') !== 'hi'; +}); + +var NO_SPACES_IGNORE = BASIC && fails(function () { + return $atob(' ') !== ''; +}); + +var NO_ENCODING_CHECK = BASIC && !fails(function () { + $atob('a'); +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $atob(); +}); + +var WRONG_ARITY = BASIC && $atob.length !== 1; + +var FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY; + +// `atob` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob +$({ global: true, bind: true, enumerable: true, forced: FORCED }, { + atob: function atob(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, global, data); + var string = replace(toString(data), whitespaces, ''); + var output = ''; + var position = 0; + var bc = 0; + var length, chr, bs; + if (string.length % 4 === 0) { + string = replace(string, finalEq, ''); + } + length = string.length; + if (length % 4 === 1 || exec(disallowed, string)) { + throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError'); + } + while (position < length) { + chr = charAt(string, position++); + bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr]; + if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6)); + } return output; + } +}); + + +/***/ }), +/* 527 */ +/***/ (function(module) { + + +var commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; +var base64Alphabet = commonAlphabet + '+/'; +var base64UrlAlphabet = commonAlphabet + '-_'; + +var inverse = function (characters) { + // TODO: use `Object.create(null)` in `core-js@4` + var result = {}; + var index = 0; + for (; index < 64; index++) result[characters.charAt(index)] = index; + return result; +}; + +module.exports = { + i2c: base64Alphabet, + c2i: inverse(base64Alphabet), + i2cUrl: base64UrlAlphabet, + c2iUrl: inverse(base64UrlAlphabet) +}; + + +/***/ }), +/* 528 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var i2c = (__webpack_require__(527).i2c); + +var $btoa = getBuiltIn('btoa'); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); + +var BASIC = !!$btoa && !fails(function () { + return $btoa('hi') !== 'aGk='; +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $btoa(); +}); + +var WRONG_ARG_CONVERSION = BASIC && fails(function () { + return $btoa(null) !== 'bnVsbA=='; +}); + +var WRONG_ARITY = BASIC && $btoa.length !== 1; + +// `btoa` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa +$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, { + btoa: function btoa(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC) return call($btoa, global, toString(data)); + var string = toString(data); + var output = ''; + var position = 0; + var map = i2c; + var block, charCode; + while (charAt(string, position) || (map = '=', position % 1)) { + charCode = charCodeAt(string, position += 3 / 4); + if (charCode > 0xFF) { + throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError'); + } + block = block << 8 | charCode; + output += charAt(map, 63 & block >> 8 - position % 1 * 8); + } return output; + } +}); + + +/***/ }), +/* 529 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var forEach = __webpack_require__(160); +var createNonEnumerableProperty = __webpack_require__(43); + +var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype); + } +} + +handlePrototype(DOMTokenListPrototype); + + +/***/ }), +/* 530 */ +/***/ (function(module) { + + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +module.exports = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + + +/***/ }), +/* 531 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` +var documentCreateElement = __webpack_require__(42); + +var classList = documentCreateElement('span').classList; +var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype; + +module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype; + + +/***/ }), +/* 532 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var ArrayIteratorMethods = __webpack_require__(168); +var createNonEnumerableProperty = __webpack_require__(43); +var setToStringTag = __webpack_require__(82); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayValues = ArrayIteratorMethods.values; + +var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + setToStringTag(CollectionPrototype, COLLECTION_NAME, true); + if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME); +} + +handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); + + +/***/ }), +/* 533 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var tryNodeRequire = __webpack_require__(229); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var errorToString = __webpack_require__(125); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var InternalStateModule = __webpack_require__(51); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var DATA_CLONE_ERR = 'DATA_CLONE_ERR'; +var Error = getBuiltIn('Error'); +// NodeJS < 17.0 does not expose `DOMException` to global +var NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () { + try { + // NodeJS < 15.0 does not expose `MessageChannel` to global + var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel; + // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe + new MessageChannel().port1.postMessage(new WeakMap()); + } catch (error) { + if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor; + } +})(); +var NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype; +var ErrorPrototype = Error.prototype; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION); +var HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); + +var codeFor = function (name) { + return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0; +}; + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var code = codeFor(name); + setInternalState(this, { + type: DOM_EXCEPTION, + name: name, + message: message, + code: code + }); + if (!DESCRIPTORS) { + this.name = name; + this.message = message; + this.code = code; + } + if (HAS_STACK) { + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + } +}; + +var DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype); + +var createGetterDescriptor = function (get) { + return { enumerable: true, configurable: true, get: get }; +}; + +var getterFor = function (key) { + return createGetterDescriptor(function () { + return getInternalState(this)[key]; + }); +}; + +if (DESCRIPTORS) { + // `DOMException.prototype.code` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code')); + // `DOMException.prototype.message` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message')); + // `DOMException.prototype.name` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name')); +} + +defineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException)); + +// FF36- DOMException is a function, but can't be constructed +var INCORRECT_CONSTRUCTOR = fails(function () { + return !(new NativeDOMException() instanceof Error); +}); + +// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs +var INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () { + return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1'; +}); + +// Deno 1.6.3- DOMException.prototype.code just missed +var INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () { + return new NativeDOMException(1, 'DataCloneError').code !== 25; +}); + +// Deno 1.6.3- DOMException constants just missed +var MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR + || NativeDOMException[DATA_CLONE_ERR] !== 25 + || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25; + +var FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR; + +// `DOMException` constructor +// https://webidl.spec.whatwg.org/#idl-DOMException +$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, { + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) { + defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString); +} + +if (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) { + defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () { + return codeFor(anObject(this).name); + })); +} + +// `DOMException` constants +for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + var descriptor = createPropertyDescriptor(6, constant.c); + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, descriptor); + } + if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) { + defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor); + } +} + + +/***/ }), +/* 534 */ +/***/ (function(module) { + + +module.exports = { + IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 }, + DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 }, + HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 }, + WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 }, + InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 }, + NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 }, + NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 }, + NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 }, + NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 }, + InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 }, + InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 }, + SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 }, + InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 }, + NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 }, + InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 }, + ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 }, + TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 }, + SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 }, + NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 }, + AbortError: { s: 'ABORT_ERR', c: 20, m: 1 }, + URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 }, + QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 }, + TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 }, + InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 }, + DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 } +}; + + +/***/ }), +/* 535 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var Error = getBuiltIn('Error'); +var NativeDOMException = getBuiltIn(DOM_EXCEPTION); + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var that = new NativeDOMException(message, name); + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + inheritIfRequired(that, this, $DOMException); + return that; +}; + +var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype; + +var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); +var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION); + +// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it +// https://github.com/Jarred-Sumner/bun/issues/399 +var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable); + +var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK; + +// `DOMException` constructor patch for `.stack` where it's required +// https://webidl.spec.whatwg.org/#es-DOMException-specialness +$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) { + if (!IS_PURE) { + defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException)); + } + + for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c)); + } + } +} + + +/***/ }), +/* 536 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var setToStringTag = __webpack_require__(82); + +var DOM_EXCEPTION = 'DOMException'; + +// `DOMException.prototype[@@toStringTag]` property +setToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION); + + +/***/ }), +/* 537 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(538); +__webpack_require__(539); + + +/***/ }), +/* 538 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var clearImmediate = (__webpack_require__(341).clear); + +// `clearImmediate` method +// http://w3c.github.io/setImmediate/#si-clearImmediate +$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, { + clearImmediate: clearImmediate +}); + + +/***/ }), +/* 539 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setTask = (__webpack_require__(341).set); +var schedulersFix = __webpack_require__(540); + +// https://github.com/oven-sh/bun/issues/1633 +var setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask; + +// `setImmediate` method +// http://w3c.github.io/setImmediate/#si-setImmediate +$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, { + setImmediate: setImmediate +}); + + +/***/ }), +/* 540 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var isCallable = __webpack_require__(21); +var ENGINE_IS_BUN = __webpack_require__(541); +var USER_AGENT = __webpack_require__(28); +var arraySlice = __webpack_require__(76); +var validateArgumentsLength = __webpack_require__(342); + +var Function = global.Function; +// dirty IE9- and Bun 0.3.0- checks +var WRAP = /MSIE .\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () { + var version = global.Bun.version.split('.'); + return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0'); +})(); + +// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers +// https://github.com/oven-sh/bun/issues/1633 +module.exports = function (scheduler, hasTimeArg) { + var firstParamIndex = hasTimeArg ? 2 : 1; + return WRAP ? function (handler, timeout /* , ...arguments */) { + var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex; + var fn = isCallable(handler) ? handler : Function(handler); + var params = boundArgs ? arraySlice(arguments, firstParamIndex) : []; + var callback = boundArgs ? function () { + apply(fn, this, params); + } : fn; + return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback); + } : scheduler; +}; + + +/***/ }), +/* 541 */ +/***/ (function(module) { + + +/* global Bun -- Bun case */ +module.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string'; + + +/***/ }), +/* 542 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var globalThis = __webpack_require__(4); +var microtask = __webpack_require__(344); +var aCallable = __webpack_require__(30); +var validateArgumentsLength = __webpack_require__(342); +var fails = __webpack_require__(7); +var DESCRIPTORS = __webpack_require__(6); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9249 +var WRONG_ARITY = fails(function () { + // getOwnPropertyDescriptor for prevent experimental warning in Node 11 + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1; +}); + +// `queueMicrotask` method +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask +$({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, { + queueMicrotask: function queueMicrotask(fn) { + validateArgumentsLength(arguments.length, 1); + microtask(aCallable(fn)); + } +}); + + +/***/ }), +/* 543 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var defineBuiltInAccessor = __webpack_require__(77); +var DESCRIPTORS = __webpack_require__(6); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var INCORRECT_VALUE = global.self !== global; + +// `self` getter +// https://html.spec.whatwg.org/multipage/window-object.html#dom-self +try { + if (DESCRIPTORS) { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var descriptor = Object.getOwnPropertyDescriptor(global, 'self'); + // some engines have `self`, but with incorrect descriptor + // https://github.com/denoland/deno/issues/15765 + if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) { + defineBuiltInAccessor(global, 'self', { + get: function self() { + return global; + }, + set: function self(value) { + if (this !== global) throw new $TypeError('Illegal invocation'); + defineProperty(global, 'self', { + value: value, + writable: true, + configurable: true, + enumerable: true + }); + }, + configurable: true, + enumerable: true + }); + } + } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, { + self: global + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 544 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var uid = __webpack_require__(40); +var isCallable = __webpack_require__(21); +var isConstructor = __webpack_require__(89); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var iterate = __webpack_require__(130); +var anObject = __webpack_require__(46); +var classof = __webpack_require__(69); +var hasOwn = __webpack_require__(38); +var createProperty = __webpack_require__(141); +var createNonEnumerableProperty = __webpack_require__(43); +var lengthOfArrayLike = __webpack_require__(63); +var validateArgumentsLength = __webpack_require__(342); +var getRegExpFlags = __webpack_require__(382); +var MapHelpers = __webpack_require__(262); +var SetHelpers = __webpack_require__(399); +var setIterate = __webpack_require__(401); +var detachTransferable = __webpack_require__(228); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var Object = global.Object; +var Array = global.Array; +var Date = global.Date; +var Error = global.Error; +var TypeError = global.TypeError; +var PerformanceMark = global.PerformanceMark; +var DOMException = getBuiltIn('DOMException'); +var Map = MapHelpers.Map; +var mapHas = MapHelpers.has; +var mapGet = MapHelpers.get; +var mapSet = MapHelpers.set; +var Set = SetHelpers.Set; +var setAdd = SetHelpers.add; +var setHas = SetHelpers.has; +var objectKeys = getBuiltIn('Object', 'keys'); +var push = uncurryThis([].push); +var thisBooleanValue = uncurryThis(true.valueOf); +var thisNumberValue = uncurryThis(1.0.valueOf); +var thisStringValue = uncurryThis(''.valueOf); +var thisTimeValue = uncurryThis(Date.prototype.getTime); +var PERFORMANCE_MARK = uid('structuredClone'); +var DATA_CLONE_ERROR = 'DataCloneError'; +var TRANSFERRING = 'Transferring'; + +var checkBasicSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var set1 = new global.Set([7]); + var set2 = structuredCloneImplementation(set1); + var number = structuredCloneImplementation(Object(7)); + return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7; + }) && structuredCloneImplementation; +}; + +var checkErrorsCloning = function (structuredCloneImplementation, $Error) { + return !fails(function () { + var error = new $Error(); + var test = structuredCloneImplementation({ a: error, b: error }); + return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack); + }); +}; + +// https://github.com/whatwg/html/pull/5749 +var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 })); + return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3; + }); +}; + +// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+ +// FF<103 and Safari implementations can't clone errors +// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604 +// FF103 can clone errors, but `.stack` of clone is an empty string +// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762 +// FF104+ fixed it on usual errors, but not on DOMExceptions +// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321 +// Chrome <102 returns `null` if cloned object contains multiple references to one error +// https://bugs.chromium.org/p/v8/issues/detail?id=12542 +// NodeJS implementation can't clone DOMExceptions +// https://github.com/nodejs/node/issues/41038 +// only FF103+ supports new (html/5749) error cloning semantic +var nativeStructuredClone = global.structuredClone; + +var FORCED_REPLACEMENT = IS_PURE + || !checkErrorsCloning(nativeStructuredClone, Error) + || !checkErrorsCloning(nativeStructuredClone, DOMException) + || !checkNewErrorsCloningSemantic(nativeStructuredClone); + +// Chrome 82+, Safari 14.1+, Deno 1.11+ +// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException` +// Chrome returns `null` if cloned object contains multiple references to one error +// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround +// Safari implementation can't clone errors +// Deno 1.2-1.10 implementations too naive +// NodeJS 16.0+ does not have `PerformanceMark` constructor +// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive +// and can't clone, for example, `RegExp` or some boxed primitives +// https://github.com/nodejs/node/issues/40840 +// no one of those implementations supports new (html/5749) error cloning semantic +var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) { + return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail; +}); + +var nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark; + +var throwUncloneable = function (type) { + throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR); +}; + +var throwUnpolyfillable = function (type, action) { + throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR); +}; + +var tryNativeRestrictedStructuredClone = function (value, type) { + if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type); + return nativeRestrictedStructuredClone(value); +}; + +var createDataTransfer = function () { + var dataTransfer; + try { + dataTransfer = new global.DataTransfer(); + } catch (error) { + try { + dataTransfer = new global.ClipboardEvent('').clipboardData; + } catch (error2) { /* empty */ } + } + return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null; +}; + +var cloneBuffer = function (value, map, $type) { + if (mapHas(map, value)) return mapGet(map, value); + + var type = $type || classof(value); + var clone, length, options, source, target, i; + + if (type === 'SharedArrayBuffer') { + if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value); + // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original + else clone = value; + } else { + var DataView = global.DataView; + + // `ArrayBuffer#slice` is not available in IE10 + // `ArrayBuffer#slice` and `DataView` are not available in old FF + if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer'); + // detached buffers throws in `DataView` and `.slice` + try { + if (isCallable(value.slice) && !value.resizable) { + clone = value.slice(0); + } else { + length = value.byteLength; + options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined; + // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe + clone = new ArrayBuffer(length, options); + source = new DataView(value); + target = new DataView(clone); + for (i = 0; i < length; i++) { + target.setUint8(i, source.getUint8(i)); + } + } + } catch (error) { + throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR); + } + } + + mapSet(map, value, clone); + + return clone; +}; + +var cloneView = function (value, type, offset, length, map) { + var C = global[type]; + // in some old engines like Safari 9, typeof C is 'object' + // on Uint8ClampedArray or some other constructors + if (!isObject(C)) throwUnpolyfillable(type); + return new C(cloneBuffer(value.buffer, map), offset, length); +}; + +var structuredCloneInternal = function (value, map) { + if (isSymbol(value)) throwUncloneable('Symbol'); + if (!isObject(value)) return value; + // effectively preserves circular references + if (map) { + if (mapHas(map, value)) return mapGet(map, value); + } else map = new Map(); + + var type = classof(value); + var C, name, cloned, dataTransfer, i, length, keys, key; + + switch (type) { + case 'Array': + cloned = Array(lengthOfArrayLike(value)); + break; + case 'Object': + cloned = {}; + break; + case 'Map': + cloned = new Map(); + break; + case 'Set': + cloned = new Set(); + break; + case 'RegExp': + // in this block because of a Safari 14.1 bug + // old FF does not clone regexes passed to the constructor, so get the source and flags directly + cloned = new RegExp(value.source, getRegExpFlags(value)); + break; + case 'Error': + name = value.name; + switch (name) { + case 'AggregateError': + cloned = new (getBuiltIn(name))([]); + break; + case 'EvalError': + case 'RangeError': + case 'ReferenceError': + case 'SuppressedError': + case 'SyntaxError': + case 'TypeError': + case 'URIError': + cloned = new (getBuiltIn(name))(); + break; + case 'CompileError': + case 'LinkError': + case 'RuntimeError': + cloned = new (getBuiltIn('WebAssembly', name))(); + break; + default: + cloned = new Error(); + } + break; + case 'DOMException': + cloned = new DOMException(value.message, value.name); + break; + case 'ArrayBuffer': + case 'SharedArrayBuffer': + cloned = cloneBuffer(value, map, type); + break; + case 'DataView': + case 'Int8Array': + case 'Uint8Array': + case 'Uint8ClampedArray': + case 'Int16Array': + case 'Uint16Array': + case 'Int32Array': + case 'Uint32Array': + case 'Float16Array': + case 'Float32Array': + case 'Float64Array': + case 'BigInt64Array': + case 'BigUint64Array': + length = type === 'DataView' ? value.byteLength : value.length; + cloned = cloneView(value, type, value.byteOffset, length, map); + break; + case 'DOMQuad': + try { + cloned = new DOMQuad( + structuredCloneInternal(value.p1, map), + structuredCloneInternal(value.p2, map), + structuredCloneInternal(value.p3, map), + structuredCloneInternal(value.p4, map) + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } + break; + case 'File': + if (nativeRestrictedStructuredClone) try { + cloned = nativeRestrictedStructuredClone(value); + // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612 + if (classof(cloned) !== type) cloned = undefined; + } catch (error) { /* empty */ } + if (!cloned) try { + cloned = new File([value], value.name, value); + } catch (error) { /* empty */ } + if (!cloned) throwUnpolyfillable(type); + break; + case 'FileList': + dataTransfer = createDataTransfer(); + if (dataTransfer) { + for (i = 0, length = lengthOfArrayLike(value); i < length; i++) { + dataTransfer.items.add(structuredCloneInternal(value[i], map)); + } + cloned = dataTransfer.files; + } else cloned = tryNativeRestrictedStructuredClone(value, type); + break; + case 'ImageData': + // Safari 9 ImageData is a constructor, but typeof ImageData is 'object' + try { + cloned = new ImageData( + structuredCloneInternal(value.data, map), + value.width, + value.height, + { colorSpace: value.colorSpace } + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } break; + default: + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else switch (type) { + case 'BigInt': + // can be a 3rd party polyfill + cloned = Object(value.valueOf()); + break; + case 'Boolean': + cloned = Object(thisBooleanValue(value)); + break; + case 'Number': + cloned = Object(thisNumberValue(value)); + break; + case 'String': + cloned = Object(thisStringValue(value)); + break; + case 'Date': + cloned = new Date(thisTimeValue(value)); + break; + case 'Blob': + try { + cloned = value.slice(0, value.size, value.type); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMPoint': + case 'DOMPointReadOnly': + C = global[type]; + try { + cloned = C.fromPoint + ? C.fromPoint(value) + : new C(value.x, value.y, value.z, value.w); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMRect': + case 'DOMRectReadOnly': + C = global[type]; + try { + cloned = C.fromRect + ? C.fromRect(value) + : new C(value.x, value.y, value.width, value.height); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMMatrix': + case 'DOMMatrixReadOnly': + C = global[type]; + try { + cloned = C.fromMatrix + ? C.fromMatrix(value) + : new C(value); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone)) throwUnpolyfillable(type); + try { + cloned = value.clone(); + } catch (error) { + throwUncloneable(type); + } break; + case 'CropTarget': + case 'CryptoKey': + case 'FileSystemDirectoryHandle': + case 'FileSystemFileHandle': + case 'FileSystemHandle': + case 'GPUCompilationInfo': + case 'GPUCompilationMessage': + case 'ImageBitmap': + case 'RTCCertificate': + case 'WebAssembly.Module': + throwUnpolyfillable(type); + // break omitted + default: + throwUncloneable(type); + } + } + + mapSet(map, value, cloned); + + switch (type) { + case 'Array': + case 'Object': + keys = objectKeys(value); + for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) { + key = keys[i]; + createProperty(cloned, key, structuredCloneInternal(value[key], map)); + } break; + case 'Map': + value.forEach(function (v, k) { + mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map)); + }); + break; + case 'Set': + value.forEach(function (v) { + setAdd(cloned, structuredCloneInternal(v, map)); + }); + break; + case 'Error': + createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map)); + if (hasOwn(value, 'cause')) { + createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map)); + } + if (name === 'AggregateError') { + cloned.errors = structuredCloneInternal(value.errors, map); + } else if (name === 'SuppressedError') { + cloned.error = structuredCloneInternal(value.error, map); + cloned.suppressed = structuredCloneInternal(value.suppressed, map); + } // break omitted + case 'DOMException': + if (ERROR_STACK_INSTALLABLE) { + createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map)); + } + } + + return cloned; +}; + +var tryToTransfer = function (rawTransfer, map) { + if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence'); + + var transfer = []; + + iterate(rawTransfer, function (value) { + push(transfer, anObject(value)); + }); + + var i = 0; + var length = lengthOfArrayLike(transfer); + var buffers = new Set(); + var value, type, C, transferred, canvas, context; + + while (i < length) { + value = transfer[i++]; + + type = classof(value); + + if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) { + throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); + } + + if (type === 'ArrayBuffer') { + setAdd(buffers, value); + continue; + } + + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + transferred = nativeStructuredClone(value, { transfer: [value] }); + } else switch (type) { + case 'ImageBitmap': + C = global.OffscreenCanvas; + if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING); + try { + canvas = new C(value.width, value.height); + context = canvas.getContext('bitmaprenderer'); + context.transferFromImageBitmap(value); + transferred = canvas.transferToImageBitmap(); + } catch (error) { /* empty */ } + break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING); + try { + transferred = value.clone(); + value.close(); + } catch (error) { /* empty */ } + break; + case 'MediaSourceHandle': + case 'MessagePort': + case 'OffscreenCanvas': + case 'ReadableStream': + case 'TransformStream': + case 'WritableStream': + throwUnpolyfillable(type, TRANSFERRING); + } + + if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR); + + mapSet(map, value, transferred); + } + + return buffers; +}; + +var detachBuffers = function (buffers) { + setIterate(buffers, function (buffer) { + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + nativeRestrictedStructuredClone(buffer, { transfer: [buffer] }); + } else if (isCallable(buffer.transfer)) { + buffer.transfer(); + } else if (detachTransferable) { + detachTransferable(buffer); + } else { + throwUnpolyfillable('ArrayBuffer', TRANSFERRING); + } + }); +}; + +// `structuredClone` method +// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone +$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, { + structuredClone: function structuredClone(value /* , { transfer } */) { + var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined; + var transfer = options ? options.transfer : undefined; + var map, buffers; + + if (transfer !== undefined) { + map = new Map(); + buffers = tryToTransfer(transfer, map); + } + + var clone = structuredCloneInternal(value, map); + + // since of an issue with cloning views of transferred buffers, we a forced to detach them later + // https://github.com/zloirock/core-js/issues/1265 + if (buffers) detachBuffers(buffers); + + return clone; + } +}); + + +/***/ }), +/* 545 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(546); +__webpack_require__(547); + + +/***/ }), +/* 546 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setInterval = schedulersFix(global.setInterval, true); + +// Bun / IE9- setInterval additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval +$({ global: true, bind: true, forced: global.setInterval !== setInterval }, { + setInterval: setInterval +}); + + +/***/ }), +/* 547 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setTimeout = schedulersFix(global.setTimeout, true); + +// Bun / IE9- setTimeout additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout +$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, { + setTimeout: setTimeout +}); + + +/***/ }), +/* 548 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(549); + + +/***/ }), +/* 549 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(428); +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var global = __webpack_require__(4); +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var anInstance = __webpack_require__(210); +var hasOwn = __webpack_require__(38); +var assign = __webpack_require__(305); +var arrayFrom = __webpack_require__(162); +var arraySlice = __webpack_require__(76); +var codeAt = (__webpack_require__(421).codeAt); +var toASCII = __webpack_require__(551); +var $toString = __webpack_require__(68); +var setToStringTag = __webpack_require__(82); +var validateArgumentsLength = __webpack_require__(342); +var URLSearchParamsModule = __webpack_require__(552); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var getInternalURLState = InternalStateModule.getterFor('URL'); +var URLSearchParams = URLSearchParamsModule.URLSearchParams; +var getInternalSearchParamsState = URLSearchParamsModule.getState; + +var NativeURL = global.URL; +var TypeError = global.TypeError; +var parseInt = global.parseInt; +var floor = Math.floor; +var pow = Math.pow; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var join = uncurryThis([].join); +var numberToString = uncurryThis(1.0.toString); +var pop = uncurryThis([].pop); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); +var toLowerCase = uncurryThis(''.toLowerCase); +var unshift = uncurryThis([].unshift); + +var INVALID_AUTHORITY = 'Invalid authority'; +var INVALID_SCHEME = 'Invalid scheme'; +var INVALID_HOST = 'Invalid host'; +var INVALID_PORT = 'Invalid port'; + +var ALPHA = /[a-z]/i; +// eslint-disable-next-line regexp/no-obscure-range -- safe +var ALPHANUMERIC = /[\d+-.a-z]/i; +var DIGIT = /\d/; +var HEX_START = /^0x/i; +var OCT = /^[0-7]+$/; +var DEC = /^\d+$/; +var HEX = /^[\da-f]+$/i; +/* eslint-disable regexp/no-control-character -- safe */ +var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/; +var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/; +var LEADING_C0_CONTROL_OR_SPACE = /^[\u0000-\u0020]+/; +var TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\u0000-\u0020])[\u0000-\u0020]+$/; +var TAB_AND_NEW_LINE = /[\t\n\r]/g; +/* eslint-enable regexp/no-control-character -- safe */ +var EOF; + +// https://url.spec.whatwg.org/#ipv4-number-parser +var parseIPv4 = function (input) { + var parts = split(input, '.'); + var partsLength, numbers, index, part, radix, number, ipv4; + if (parts.length && parts[parts.length - 1] === '') { + parts.length--; + } + partsLength = parts.length; + if (partsLength > 4) return input; + numbers = []; + for (index = 0; index < partsLength; index++) { + part = parts[index]; + if (part === '') return input; + radix = 10; + if (part.length > 1 && charAt(part, 0) === '0') { + radix = exec(HEX_START, part) ? 16 : 8; + part = stringSlice(part, radix === 8 ? 1 : 2); + } + if (part === '') { + number = 0; + } else { + if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input; + number = parseInt(part, radix); + } + push(numbers, number); + } + for (index = 0; index < partsLength; index++) { + number = numbers[index]; + if (index === partsLength - 1) { + if (number >= pow(256, 5 - partsLength)) return null; + } else if (number > 255) return null; + } + ipv4 = pop(numbers); + for (index = 0; index < numbers.length; index++) { + ipv4 += numbers[index] * pow(256, 3 - index); + } + return ipv4; +}; + +// https://url.spec.whatwg.org/#concept-ipv6-parser +// eslint-disable-next-line max-statements -- TODO +var parseIPv6 = function (input) { + var address = [0, 0, 0, 0, 0, 0, 0, 0]; + var pieceIndex = 0; + var compress = null; + var pointer = 0; + var value, length, numbersSeen, ipv4Piece, number, swaps, swap; + + var chr = function () { + return charAt(input, pointer); + }; + + if (chr() === ':') { + if (charAt(input, 1) !== ':') return; + pointer += 2; + pieceIndex++; + compress = pieceIndex; + } + while (chr()) { + if (pieceIndex === 8) return; + if (chr() === ':') { + if (compress !== null) return; + pointer++; + pieceIndex++; + compress = pieceIndex; + continue; + } + value = length = 0; + while (length < 4 && exec(HEX, chr())) { + value = value * 16 + parseInt(chr(), 16); + pointer++; + length++; + } + if (chr() === '.') { + if (length === 0) return; + pointer -= length; + if (pieceIndex > 6) return; + numbersSeen = 0; + while (chr()) { + ipv4Piece = null; + if (numbersSeen > 0) { + if (chr() === '.' && numbersSeen < 4) pointer++; + else return; + } + if (!exec(DIGIT, chr())) return; + while (exec(DIGIT, chr())) { + number = parseInt(chr(), 10); + if (ipv4Piece === null) ipv4Piece = number; + else if (ipv4Piece === 0) return; + else ipv4Piece = ipv4Piece * 10 + number; + if (ipv4Piece > 255) return; + pointer++; + } + address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; + numbersSeen++; + if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++; + } + if (numbersSeen !== 4) return; + break; + } else if (chr() === ':') { + pointer++; + if (!chr()) return; + } else if (chr()) return; + address[pieceIndex++] = value; + } + if (compress !== null) { + swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + swap = address[pieceIndex]; + address[pieceIndex--] = address[compress + swaps - 1]; + address[compress + --swaps] = swap; + } + } else if (pieceIndex !== 8) return; + return address; +}; + +var findLongestZeroSequence = function (ipv6) { + var maxIndex = null; + var maxLength = 1; + var currStart = null; + var currLength = 0; + var index = 0; + for (; index < 8; index++) { + if (ipv6[index] !== 0) { + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + currStart = null; + currLength = 0; + } else { + if (currStart === null) currStart = index; + ++currLength; + } + } + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + return maxIndex; +}; + +// https://url.spec.whatwg.org/#host-serializing +var serializeHost = function (host) { + var result, index, compress, ignore0; + // ipv4 + if (typeof host == 'number') { + result = []; + for (index = 0; index < 4; index++) { + unshift(result, host % 256); + host = floor(host / 256); + } return join(result, '.'); + // ipv6 + } else if (typeof host == 'object') { + result = ''; + compress = findLongestZeroSequence(host); + for (index = 0; index < 8; index++) { + if (ignore0 && host[index] === 0) continue; + if (ignore0) ignore0 = false; + if (compress === index) { + result += index ? ':' : '::'; + ignore0 = true; + } else { + result += numberToString(host[index], 16); + if (index < 7) result += ':'; + } + } + return '[' + result + ']'; + } return host; +}; + +var C0ControlPercentEncodeSet = {}; +var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { + ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 +}); +var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { + '#': 1, '?': 1, '{': 1, '}': 1 +}); +var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { + '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 +}); + +var percentEncode = function (chr, set) { + var code = codeAt(chr, 0); + return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr); +}; + +// https://url.spec.whatwg.org/#special-scheme +var specialSchemes = { + ftp: 21, + file: null, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +// https://url.spec.whatwg.org/#windows-drive-letter +var isWindowsDriveLetter = function (string, normalized) { + var second; + return string.length === 2 && exec(ALPHA, charAt(string, 0)) + && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|')); +}; + +// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter +var startsWithWindowsDriveLetter = function (string) { + var third; + return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && ( + string.length === 2 || + ((third = charAt(string, 2)) === '/' || third === '\\' || third === '?' || third === '#') + ); +}; + +// https://url.spec.whatwg.org/#single-dot-path-segment +var isSingleDot = function (segment) { + return segment === '.' || toLowerCase(segment) === '%2e'; +}; + +// https://url.spec.whatwg.org/#double-dot-path-segment +var isDoubleDot = function (segment) { + segment = toLowerCase(segment); + return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; +}; + +// States: +var SCHEME_START = {}; +var SCHEME = {}; +var NO_SCHEME = {}; +var SPECIAL_RELATIVE_OR_AUTHORITY = {}; +var PATH_OR_AUTHORITY = {}; +var RELATIVE = {}; +var RELATIVE_SLASH = {}; +var SPECIAL_AUTHORITY_SLASHES = {}; +var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; +var AUTHORITY = {}; +var HOST = {}; +var HOSTNAME = {}; +var PORT = {}; +var FILE = {}; +var FILE_SLASH = {}; +var FILE_HOST = {}; +var PATH_START = {}; +var PATH = {}; +var CANNOT_BE_A_BASE_URL_PATH = {}; +var QUERY = {}; +var FRAGMENT = {}; + +var URLState = function (url, isBase, base) { + var urlString = $toString(url); + var baseState, failure, searchParams; + if (isBase) { + failure = this.parse(urlString); + if (failure) throw new TypeError(failure); + this.searchParams = null; + } else { + if (base !== undefined) baseState = new URLState(base, true); + failure = this.parse(urlString, null, baseState); + if (failure) throw new TypeError(failure); + searchParams = getInternalSearchParamsState(new URLSearchParams()); + searchParams.bindURL(this); + this.searchParams = searchParams; + } +}; + +URLState.prototype = { + type: 'URL', + // https://url.spec.whatwg.org/#url-parsing + // eslint-disable-next-line max-statements -- TODO + parse: function (input, stateOverride, base) { + var url = this; + var state = stateOverride || SCHEME_START; + var pointer = 0; + var buffer = ''; + var seenAt = false; + var seenBracket = false; + var seenPasswordToken = false; + var codePoints, chr, bufferCodePoints, failure; + + input = $toString(input); + + if (!stateOverride) { + url.scheme = ''; + url.username = ''; + url.password = ''; + url.host = null; + url.port = null; + url.path = []; + url.query = null; + url.fragment = null; + url.cannotBeABaseURL = false; + input = replace(input, LEADING_C0_CONTROL_OR_SPACE, ''); + input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1'); + } + + input = replace(input, TAB_AND_NEW_LINE, ''); + + codePoints = arrayFrom(input); + + while (pointer <= codePoints.length) { + chr = codePoints[pointer]; + switch (state) { + case SCHEME_START: + if (chr && exec(ALPHA, chr)) { + buffer += toLowerCase(chr); + state = SCHEME; + } else if (!stateOverride) { + state = NO_SCHEME; + continue; + } else return INVALID_SCHEME; + break; + + case SCHEME: + if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) { + buffer += toLowerCase(chr); + } else if (chr === ':') { + if (stateOverride && ( + (url.isSpecial() !== hasOwn(specialSchemes, buffer)) || + (buffer === 'file' && (url.includesCredentials() || url.port !== null)) || + (url.scheme === 'file' && !url.host) + )) return; + url.scheme = buffer; + if (stateOverride) { + if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null; + return; + } + buffer = ''; + if (url.scheme === 'file') { + state = FILE; + } else if (url.isSpecial() && base && base.scheme === url.scheme) { + state = SPECIAL_RELATIVE_OR_AUTHORITY; + } else if (url.isSpecial()) { + state = SPECIAL_AUTHORITY_SLASHES; + } else if (codePoints[pointer + 1] === '/') { + state = PATH_OR_AUTHORITY; + pointer++; + } else { + url.cannotBeABaseURL = true; + push(url.path, ''); + state = CANNOT_BE_A_BASE_URL_PATH; + } + } else if (!stateOverride) { + buffer = ''; + state = NO_SCHEME; + pointer = 0; + continue; + } else return INVALID_SCHEME; + break; + + case NO_SCHEME: + if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME; + if (base.cannotBeABaseURL && chr === '#') { + url.scheme = base.scheme; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + url.cannotBeABaseURL = true; + state = FRAGMENT; + break; + } + state = base.scheme === 'file' ? FILE : RELATIVE; + continue; + + case SPECIAL_RELATIVE_OR_AUTHORITY: + if (chr === '/' && codePoints[pointer + 1] === '/') { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + pointer++; + } else { + state = RELATIVE; + continue; + } break; + + case PATH_OR_AUTHORITY: + if (chr === '/') { + state = AUTHORITY; + break; + } else { + state = PATH; + continue; + } + + case RELATIVE: + url.scheme = base.scheme; + if (chr === EOF) { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + } else if (chr === '/' || (chr === '\\' && url.isSpecial())) { + state = RELATIVE_SLASH; + } else if (chr === '?') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.path.length--; + state = PATH; + continue; + } break; + + case RELATIVE_SLASH: + if (url.isSpecial() && (chr === '/' || chr === '\\')) { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + } else if (chr === '/') { + state = AUTHORITY; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + state = PATH; + continue; + } break; + + case SPECIAL_AUTHORITY_SLASHES: + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue; + pointer++; + break; + + case SPECIAL_AUTHORITY_IGNORE_SLASHES: + if (chr !== '/' && chr !== '\\') { + state = AUTHORITY; + continue; + } break; + + case AUTHORITY: + if (chr === '@') { + if (seenAt) buffer = '%40' + buffer; + seenAt = true; + bufferCodePoints = arrayFrom(buffer); + for (var i = 0; i < bufferCodePoints.length; i++) { + var codePoint = bufferCodePoints[i]; + if (codePoint === ':' && !seenPasswordToken) { + seenPasswordToken = true; + continue; + } + var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); + if (seenPasswordToken) url.password += encodedCodePoints; + else url.username += encodedCodePoints; + } + buffer = ''; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (seenAt && buffer === '') return INVALID_AUTHORITY; + pointer -= arrayFrom(buffer).length + 1; + buffer = ''; + state = HOST; + } else buffer += chr; + break; + + case HOST: + case HOSTNAME: + if (stateOverride && url.scheme === 'file') { + state = FILE_HOST; + continue; + } else if (chr === ':' && !seenBracket) { + if (buffer === '') return INVALID_HOST; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PORT; + if (stateOverride === HOSTNAME) return; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (url.isSpecial() && buffer === '') return INVALID_HOST; + if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PATH_START; + if (stateOverride) return; + continue; + } else { + if (chr === '[') seenBracket = true; + else if (chr === ']') seenBracket = false; + buffer += chr; + } break; + + case PORT: + if (exec(DIGIT, chr)) { + buffer += chr; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) || + stateOverride + ) { + if (buffer !== '') { + var port = parseInt(buffer, 10); + if (port > 0xFFFF) return INVALID_PORT; + url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port; + buffer = ''; + } + if (stateOverride) return; + state = PATH_START; + continue; + } else return INVALID_PORT; + break; + + case FILE: + url.scheme = 'file'; + if (chr === '/' || chr === '\\') state = FILE_SLASH; + else if (base && base.scheme === 'file') { + switch (chr) { + case EOF: + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + break; + case '?': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + break; + case '#': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + break; + default: + if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + url.host = base.host; + url.path = arraySlice(base.path); + url.shortenPath(); + } + state = PATH; + continue; + } + } else { + state = PATH; + continue; + } break; + + case FILE_SLASH: + if (chr === '/' || chr === '\\') { + state = FILE_HOST; + break; + } + if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]); + else url.host = base.host; + } + state = PATH; + continue; + + case FILE_HOST: + if (chr === EOF || chr === '/' || chr === '\\' || chr === '?' || chr === '#') { + if (!stateOverride && isWindowsDriveLetter(buffer)) { + state = PATH; + } else if (buffer === '') { + url.host = ''; + if (stateOverride) return; + state = PATH_START; + } else { + failure = url.parseHost(buffer); + if (failure) return failure; + if (url.host === 'localhost') url.host = ''; + if (stateOverride) return; + buffer = ''; + state = PATH_START; + } continue; + } else buffer += chr; + break; + + case PATH_START: + if (url.isSpecial()) { + state = PATH; + if (chr !== '/' && chr !== '\\') continue; + } else if (!stateOverride && chr === '?') { + url.query = ''; + state = QUERY; + } else if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + state = PATH; + if (chr !== '/') continue; + } break; + + case PATH: + if ( + chr === EOF || chr === '/' || + (chr === '\\' && url.isSpecial()) || + (!stateOverride && (chr === '?' || chr === '#')) + ) { + if (isDoubleDot(buffer)) { + url.shortenPath(); + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else if (isSingleDot(buffer)) { + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else { + if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { + if (url.host) url.host = ''; + buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter + } + push(url.path, buffer); + } + buffer = ''; + if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) { + while (url.path.length > 1 && url.path[0] === '') { + shift(url.path); + } + } + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } + } else { + buffer += percentEncode(chr, pathPercentEncodeSet); + } break; + + case CANNOT_BE_A_BASE_URL_PATH: + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case QUERY: + if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + if (chr === "'" && url.isSpecial()) url.query += '%27'; + else if (chr === '#') url.query += '%23'; + else url.query += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case FRAGMENT: + if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet); + break; + } + + pointer++; + } + }, + // https://url.spec.whatwg.org/#host-parsing + parseHost: function (input) { + var result, codePoints, index; + if (charAt(input, 0) === '[') { + if (charAt(input, input.length - 1) !== ']') return INVALID_HOST; + result = parseIPv6(stringSlice(input, 1, -1)); + if (!result) return INVALID_HOST; + this.host = result; + // opaque host + } else if (!this.isSpecial()) { + if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST; + result = ''; + codePoints = arrayFrom(input); + for (index = 0; index < codePoints.length; index++) { + result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); + } + this.host = result; + } else { + input = toASCII(input); + if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST; + result = parseIPv4(input); + if (result === null) return INVALID_HOST; + this.host = result; + } + }, + // https://url.spec.whatwg.org/#cannot-have-a-username-password-port + cannotHaveUsernamePasswordPort: function () { + return !this.host || this.cannotBeABaseURL || this.scheme === 'file'; + }, + // https://url.spec.whatwg.org/#include-credentials + includesCredentials: function () { + return this.username !== '' || this.password !== ''; + }, + // https://url.spec.whatwg.org/#is-special + isSpecial: function () { + return hasOwn(specialSchemes, this.scheme); + }, + // https://url.spec.whatwg.org/#shorten-a-urls-path + shortenPath: function () { + var path = this.path; + var pathSize = path.length; + if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) { + path.length--; + } + }, + // https://url.spec.whatwg.org/#concept-url-serializer + serialize: function () { + var url = this; + var scheme = url.scheme; + var username = url.username; + var password = url.password; + var host = url.host; + var port = url.port; + var path = url.path; + var query = url.query; + var fragment = url.fragment; + var output = scheme + ':'; + if (host !== null) { + output += '//'; + if (url.includesCredentials()) { + output += username + (password ? ':' + password : '') + '@'; + } + output += serializeHost(host); + if (port !== null) output += ':' + port; + } else if (scheme === 'file') output += '//'; + output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + if (query !== null) output += '?' + query; + if (fragment !== null) output += '#' + fragment; + return output; + }, + // https://url.spec.whatwg.org/#dom-url-href + setHref: function (href) { + var failure = this.parse(href); + if (failure) throw new TypeError(failure); + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-origin + getOrigin: function () { + var scheme = this.scheme; + var port = this.port; + if (scheme === 'blob') try { + return new URLConstructor(scheme.path[0]).origin; + } catch (error) { + return 'null'; + } + if (scheme === 'file' || !this.isSpecial()) return 'null'; + return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : ''); + }, + // https://url.spec.whatwg.org/#dom-url-protocol + getProtocol: function () { + return this.scheme + ':'; + }, + setProtocol: function (protocol) { + this.parse($toString(protocol) + ':', SCHEME_START); + }, + // https://url.spec.whatwg.org/#dom-url-username + getUsername: function () { + return this.username; + }, + setUsername: function (username) { + var codePoints = arrayFrom($toString(username)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.username = ''; + for (var i = 0; i < codePoints.length; i++) { + this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-password + getPassword: function () { + return this.password; + }, + setPassword: function (password) { + var codePoints = arrayFrom($toString(password)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.password = ''; + for (var i = 0; i < codePoints.length; i++) { + this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-host + getHost: function () { + var host = this.host; + var port = this.port; + return host === null ? '' + : port === null ? serializeHost(host) + : serializeHost(host) + ':' + port; + }, + setHost: function (host) { + if (this.cannotBeABaseURL) return; + this.parse(host, HOST); + }, + // https://url.spec.whatwg.org/#dom-url-hostname + getHostname: function () { + var host = this.host; + return host === null ? '' : serializeHost(host); + }, + setHostname: function (hostname) { + if (this.cannotBeABaseURL) return; + this.parse(hostname, HOSTNAME); + }, + // https://url.spec.whatwg.org/#dom-url-port + getPort: function () { + var port = this.port; + return port === null ? '' : $toString(port); + }, + setPort: function (port) { + if (this.cannotHaveUsernamePasswordPort()) return; + port = $toString(port); + if (port === '') this.port = null; + else this.parse(port, PORT); + }, + // https://url.spec.whatwg.org/#dom-url-pathname + getPathname: function () { + var path = this.path; + return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + }, + setPathname: function (pathname) { + if (this.cannotBeABaseURL) return; + this.path = []; + this.parse(pathname, PATH_START); + }, + // https://url.spec.whatwg.org/#dom-url-search + getSearch: function () { + var query = this.query; + return query ? '?' + query : ''; + }, + setSearch: function (search) { + search = $toString(search); + if (search === '') { + this.query = null; + } else { + if (charAt(search, 0) === '?') search = stringSlice(search, 1); + this.query = ''; + this.parse(search, QUERY); + } + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-searchparams + getSearchParams: function () { + return this.searchParams.facade; + }, + // https://url.spec.whatwg.org/#dom-url-hash + getHash: function () { + var fragment = this.fragment; + return fragment ? '#' + fragment : ''; + }, + setHash: function (hash) { + hash = $toString(hash); + if (hash === '') { + this.fragment = null; + return; + } + if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1); + this.fragment = ''; + this.parse(hash, FRAGMENT); + }, + update: function () { + this.query = this.searchParams.serialize() || null; + } +}; + +// `URL` constructor +// https://url.spec.whatwg.org/#url-class +var URLConstructor = function URL(url /* , base */) { + var that = anInstance(this, URLPrototype); + var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined; + var state = setInternalState(that, new URLState(url, false, base)); + if (!DESCRIPTORS) { + that.href = state.serialize(); + that.origin = state.getOrigin(); + that.protocol = state.getProtocol(); + that.username = state.getUsername(); + that.password = state.getPassword(); + that.host = state.getHost(); + that.hostname = state.getHostname(); + that.port = state.getPort(); + that.pathname = state.getPathname(); + that.search = state.getSearch(); + that.searchParams = state.getSearchParams(); + that.hash = state.getHash(); + } +}; + +var URLPrototype = URLConstructor.prototype; + +var accessorDescriptor = function (getter, setter) { + return { + get: function () { + return getInternalURLState(this)[getter](); + }, + set: setter && function (value) { + return getInternalURLState(this)[setter](value); + }, + configurable: true, + enumerable: true + }; +}; + +if (DESCRIPTORS) { + // `URL.prototype.href` accessors pair + // https://url.spec.whatwg.org/#dom-url-href + defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref')); + // `URL.prototype.origin` getter + // https://url.spec.whatwg.org/#dom-url-origin + defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin')); + // `URL.prototype.protocol` accessors pair + // https://url.spec.whatwg.org/#dom-url-protocol + defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol')); + // `URL.prototype.username` accessors pair + // https://url.spec.whatwg.org/#dom-url-username + defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername')); + // `URL.prototype.password` accessors pair + // https://url.spec.whatwg.org/#dom-url-password + defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword')); + // `URL.prototype.host` accessors pair + // https://url.spec.whatwg.org/#dom-url-host + defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost')); + // `URL.prototype.hostname` accessors pair + // https://url.spec.whatwg.org/#dom-url-hostname + defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname')); + // `URL.prototype.port` accessors pair + // https://url.spec.whatwg.org/#dom-url-port + defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort')); + // `URL.prototype.pathname` accessors pair + // https://url.spec.whatwg.org/#dom-url-pathname + defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname')); + // `URL.prototype.search` accessors pair + // https://url.spec.whatwg.org/#dom-url-search + defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch')); + // `URL.prototype.searchParams` getter + // https://url.spec.whatwg.org/#dom-url-searchparams + defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams')); + // `URL.prototype.hash` accessors pair + // https://url.spec.whatwg.org/#dom-url-hash + defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash')); +} + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +defineBuiltIn(URLPrototype, 'toJSON', function toJSON() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +// `URL.prototype.toString` method +// https://url.spec.whatwg.org/#URL-stringification-behavior +defineBuiltIn(URLPrototype, 'toString', function toString() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +if (NativeURL) { + var nativeCreateObjectURL = NativeURL.createObjectURL; + var nativeRevokeObjectURL = NativeURL.revokeObjectURL; + // `URL.createObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL + if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL)); + // `URL.revokeObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL + if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL)); +} + +setToStringTag(URLConstructor, 'URL'); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { + URL: URLConstructor +}); + + +/***/ }), +/* 550 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = !fails(function () { + // eslint-disable-next-line unicorn/relative-url-style -- required for testing + var url = new URL('b?a=1&b=2&c=3', 'http://a'); + var params = url.searchParams; + var params2 = new URLSearchParams('a=1&a=2&b=3'); + var result = ''; + url.pathname = 'c%20d'; + params.forEach(function (value, key) { + params['delete']('b'); + result += key + value; + }); + params2['delete']('a', 2); + // `undefined` case is a Chromium 117 bug + // https://bugs.chromium.org/p/v8/issues/detail?id=14222 + params2['delete']('b', undefined); + return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b'))) + || (!params.size && (IS_PURE || !DESCRIPTORS)) + || !params.sort + || url.href !== 'http://a/c%20d?a=1&c=3' + || params.get('c') !== '3' + || String(new URLSearchParams('?a=1')) !== 'a=1' + || !params[ITERATOR] + // throws in Edge + || new URL('https://a@b').username !== 'a' + || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' + // not punycoded in Edge + || new URL('http://тест').host !== 'xn--e1aybc' + // not escaped in Chrome 62- + || new URL('http://a#б').hash !== '#%D0%B1' + // fails in Chrome 66- + || result !== 'a1c3' + // throws in Safari + || new URL('http://x', undefined).host !== 'x'; +}); + + +/***/ }), +/* 551 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js +var uncurryThis = __webpack_require__(14); + +var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 +var base = 36; +var tMin = 1; +var tMax = 26; +var skew = 38; +var damp = 700; +var initialBias = 72; +var initialN = 128; // 0x80 +var delimiter = '-'; // '\x2D' +var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars +var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators +var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; +var baseMinusTMin = base - tMin; + +var $RangeError = RangeError; +var exec = uncurryThis(regexSeparators.exec); +var floor = Math.floor; +var fromCharCode = String.fromCharCode; +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var split = uncurryThis(''.split); +var toLowerCase = uncurryThis(''.toLowerCase); + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + */ +var ucs2decode = function (string) { + var output = []; + var counter = 0; + var length = string.length; + while (counter < length) { + var value = charCodeAt(string, counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + var extra = charCodeAt(string, counter++); + if ((extra & 0xFC00) === 0xDC00) { // Low surrogate. + push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + push(output, value); + counter--; + } + } else { + push(output, value); + } + } + return output; +}; + +/** + * Converts a digit/integer into a basic code point. + */ +var digitToBasic = function (digit) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + */ +var adapt = function (delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + while (delta > baseMinusTMin * tMax >> 1) { + delta = floor(delta / baseMinusTMin); + k += base; + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + */ +var encode = function (input) { + var output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + var inputLength = input.length; + + // Initialize the state. + var n = initialN; + var delta = 0; + var bias = initialBias; + var i, currentValue; + + // Handle the basic code points. + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < 0x80) { + push(output, fromCharCode(currentValue)); + } + } + + var basicLength = output.length; // number of basic code points. + var handledCPCount = basicLength; // number of code points that have been handled; + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + push(output, delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + // All non-basic code points < n have been handled already. Find the next larger one: + var m = maxInt; + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow. + var handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + throw new $RangeError(OVERFLOW_ERROR); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < n && ++delta > maxInt) { + throw new $RangeError(OVERFLOW_ERROR); + } + if (currentValue === n) { + // Represent delta as a generalized variable-length integer. + var q = delta; + var k = base; + while (true) { + var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (q < t) break; + var qMinusT = q - t; + var baseMinusT = base - t; + push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT))); + q = floor(qMinusT / baseMinusT); + k += base; + } + + push(output, fromCharCode(digitToBasic(q))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength); + delta = 0; + handledCPCount++; + } + } + + delta++; + n++; + } + return join(output, ''); +}; + +module.exports = function (input) { + var encoded = []; + var labels = split(replace(toLowerCase(input), regexSeparators, '\u002E'), '.'); + var i, label; + for (i = 0; i < labels.length; i++) { + label = labels[i]; + push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label); + } + return join(encoded, '.'); +}; + + +/***/ }), +/* 552 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(168); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var setToStringTag = __webpack_require__(82); +var createIteratorConstructor = __webpack_require__(170); +var InternalStateModule = __webpack_require__(51); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var bind = __webpack_require__(84); +var classof = __webpack_require__(69); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var $toString = __webpack_require__(68); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var createIterResultObject = __webpack_require__(172); +var validateArgumentsLength = __webpack_require__(342); +var wellKnownSymbol = __webpack_require__(33); +var arraySort = __webpack_require__(188); + +var ITERATOR = wellKnownSymbol('iterator'); +var URL_SEARCH_PARAMS = 'URLSearchParams'; +var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); +var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); + +var nativeFetch = safeGetBuiltIn('fetch'); +var NativeRequest = safeGetBuiltIn('Request'); +var Headers = safeGetBuiltIn('Headers'); +var RequestPrototype = NativeRequest && NativeRequest.prototype; +var HeadersPrototype = Headers && Headers.prototype; +var RegExp = global.RegExp; +var TypeError = global.TypeError; +var decodeURIComponent = global.decodeURIComponent; +var encodeURIComponent = global.encodeURIComponent; +var charAt = uncurryThis(''.charAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var splice = uncurryThis([].splice); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); + +var plus = /\+/g; +var sequences = Array(4); + +var percentSequence = function (bytes) { + return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); +}; + +var percentDecode = function (sequence) { + try { + return decodeURIComponent(sequence); + } catch (error) { + return sequence; + } +}; + +var deserialize = function (it) { + var result = replace(it, plus, ' '); + var bytes = 4; + try { + return decodeURIComponent(result); + } catch (error) { + while (bytes) { + result = replace(result, percentSequence(bytes--), percentDecode); + } + return result; + } +}; + +var find = /[!'()~]|%20/g; + +var replacements = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+' +}; + +var replacer = function (match) { + return replacements[match]; +}; + +var serialize = function (it) { + return replace(encodeURIComponent(it), find, replacer); +}; + +var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { + setInternalState(this, { + type: URL_SEARCH_PARAMS_ITERATOR, + target: getInternalParamsState(params).entries, + index: 0, + kind: kind + }); +}, URL_SEARCH_PARAMS, function next() { + var state = getInternalIteratorState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + var entry = target[index]; + switch (state.kind) { + case 'keys': return createIterResultObject(entry.key, false); + case 'values': return createIterResultObject(entry.value, false); + } return createIterResultObject([entry.key, entry.value], false); +}, true); + +var URLSearchParamsState = function (init) { + this.entries = []; + this.url = null; + + if (init !== undefined) { + if (isObject(init)) this.parseObject(init); + else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init)); + } +}; + +URLSearchParamsState.prototype = { + type: URL_SEARCH_PARAMS, + bindURL: function (url) { + this.url = url; + this.update(); + }, + parseObject: function (object) { + var entries = this.entries; + var iteratorMethod = getIteratorMethod(object); + var iterator, next, step, entryIterator, entryNext, first, second; + + if (iteratorMethod) { + iterator = getIterator(object, iteratorMethod); + next = iterator.next; + while (!(step = call(next, iterator)).done) { + entryIterator = getIterator(anObject(step.value)); + entryNext = entryIterator.next; + if ( + (first = call(entryNext, entryIterator)).done || + (second = call(entryNext, entryIterator)).done || + !call(entryNext, entryIterator).done + ) throw new TypeError('Expected sequence with length 2'); + push(entries, { key: $toString(first.value), value: $toString(second.value) }); + } + } else for (var key in object) if (hasOwn(object, key)) { + push(entries, { key: key, value: $toString(object[key]) }); + } + }, + parseQuery: function (query) { + if (query) { + var entries = this.entries; + var attributes = split(query, '&'); + var index = 0; + var attribute, entry; + while (index < attributes.length) { + attribute = attributes[index++]; + if (attribute.length) { + entry = split(attribute, '='); + push(entries, { + key: deserialize(shift(entry)), + value: deserialize(join(entry, '=')) + }); + } + } + } + }, + serialize: function () { + var entries = this.entries; + var result = []; + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + push(result, serialize(entry.key) + '=' + serialize(entry.value)); + } return join(result, '&'); + }, + update: function () { + this.entries.length = 0; + this.parseQuery(this.url.query); + }, + updateURL: function () { + if (this.url) this.url.update(); + } +}; + +// `URLSearchParams` constructor +// https://url.spec.whatwg.org/#interface-urlsearchparams +var URLSearchParamsConstructor = function URLSearchParams(/* init */) { + anInstance(this, URLSearchParamsPrototype); + var init = arguments.length > 0 ? arguments[0] : undefined; + var state = setInternalState(this, new URLSearchParamsState(init)); + if (!DESCRIPTORS) this.size = state.entries.length; +}; + +var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; + +defineBuiltIns(URLSearchParamsPrototype, { + // `URLSearchParams.prototype.append` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-append + append: function append(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 2); + push(state.entries, { key: $toString(name), value: $toString(value) }); + if (!DESCRIPTORS) this.length++; + state.updateURL(); + }, + // `URLSearchParams.prototype.delete` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-delete + 'delete': function (name /* , value */) { + var state = getInternalParamsState(this); + var length = validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index]; + if (entry.key === key && (value === undefined || entry.value === value)) { + splice(entries, index, 1); + if (value !== undefined) break; + } else index++; + } + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.get` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-get + get: function get(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) return entries[index].value; + } + return null; + }, + // `URLSearchParams.prototype.getAll` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-getall + getAll: function getAll(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var result = []; + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) push(result, entries[index].value); + } + return result; + }, + // `URLSearchParams.prototype.has` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-has + has: function has(name /* , value */) { + var entries = getInternalParamsState(this).entries; + var length = validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index++]; + if (entry.key === key && (value === undefined || entry.value === value)) return true; + } + return false; + }, + // `URLSearchParams.prototype.set` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-set + set: function set(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var found = false; + var key = $toString(name); + var val = $toString(value); + var index = 0; + var entry; + for (; index < entries.length; index++) { + entry = entries[index]; + if (entry.key === key) { + if (found) splice(entries, index--, 1); + else { + found = true; + entry.value = val; + } + } + } + if (!found) push(entries, { key: key, value: val }); + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.sort` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-sort + sort: function sort() { + var state = getInternalParamsState(this); + arraySort(state.entries, function (a, b) { + return a.key > b.key ? 1 : -1; + }); + state.updateURL(); + }, + // `URLSearchParams.prototype.forEach` method + forEach: function forEach(callback /* , thisArg */) { + var entries = getInternalParamsState(this).entries; + var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined); + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + boundFunction(entry.value, entry.key, this); + } + }, + // `URLSearchParams.prototype.keys` method + keys: function keys() { + return new URLSearchParamsIterator(this, 'keys'); + }, + // `URLSearchParams.prototype.values` method + values: function values() { + return new URLSearchParamsIterator(this, 'values'); + }, + // `URLSearchParams.prototype.entries` method + entries: function entries() { + return new URLSearchParamsIterator(this, 'entries'); + } +}, { enumerable: true }); + +// `URLSearchParams.prototype[@@iterator]` method +defineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' }); + +// `URLSearchParams.prototype.toString` method +// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior +defineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() { + return getInternalParamsState(this).serialize(); +}, { enumerable: true }); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + return getInternalParamsState(this).entries.length; + }, + configurable: true, + enumerable: true +}); + +setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, { + URLSearchParams: URLSearchParamsConstructor +}); + +// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams` +if (!USE_NATIVE_URL && isCallable(Headers)) { + var headersHas = uncurryThis(HeadersPrototype.has); + var headersSet = uncurryThis(HeadersPrototype.set); + + var wrapRequestOptions = function (init) { + if (isObject(init)) { + var body = init.body; + var headers; + if (classof(body) === URL_SEARCH_PARAMS) { + headers = init.headers ? new Headers(init.headers) : new Headers(); + if (!headersHas(headers, 'content-type')) { + headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); + } + return create(init, { + body: createPropertyDescriptor(0, $toString(body)), + headers: createPropertyDescriptor(0, headers) + }); + } + } return init; + }; + + if (isCallable(nativeFetch)) { + $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, { + fetch: function fetch(input /* , init */) { + return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + } + }); + } + + if (isCallable(NativeRequest)) { + var RequestConstructor = function Request(input /* , init */) { + anInstance(this, RequestPrototype); + return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + }; + + RequestPrototype.constructor = RequestConstructor; + RequestConstructor.prototype = RequestPrototype; + + $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, { + Request: RequestConstructor + }); + } +} + +module.exports = { + URLSearchParams: URLSearchParamsConstructor, + getState: getInternalParamsState +}; + + +/***/ }), +/* 553 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// https://github.com/nodejs/node/issues/47505 +// https://github.com/denoland/deno/issues/18893 +var THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () { + URL.canParse(); +}); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9250 +var WRONG_ARITY = fails(function () { + return URL.canParse.length !== 1; +}); + +// `URL.canParse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, { + canParse: function canParse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return !!new URL(urlString, base); + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 554 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// `URL.parse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, { + parse: function parse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return new URL(urlString, base); + } catch (error) { + return null; + } + } +}); + + +/***/ }), +/* 555 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +$({ target: 'URL', proto: true, enumerable: true }, { + toJSON: function toJSON() { + return call(URL.prototype.toString, this); + } +}); + + +/***/ }), +/* 556 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(552); + + +/***/ }), +/* 557 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var append = uncurryThis(URLSearchParamsPrototype.append); +var $delete = uncurryThis(URLSearchParamsPrototype['delete']); +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); +var push = uncurryThis([].push); +var params = new $URLSearchParams('a=1&a=2&b=3'); + +params['delete']('a', 1); +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +params['delete']('b', undefined); + +if (params + '' !== 'a=2') { + defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $delete(this, name); + var entries = []; + forEach(this, function (v, k) { // also validates `this` + push(entries, { key: k, value: v }); + }); + validateArgumentsLength(length, 1); + var key = toString(name); + var value = toString($value); + var index = 0; + var dindex = 0; + var found = false; + var entriesLength = entries.length; + var entry; + while (index < entriesLength) { + entry = entries[index++]; + if (found || entry.key === key) { + found = true; + $delete(this, entry.key); + } else dindex++; + } + while (dindex < entriesLength) { + entry = entries[dindex++]; + if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value); + } + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 558 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var getAll = uncurryThis(URLSearchParamsPrototype.getAll); +var $has = uncurryThis(URLSearchParamsPrototype.has); +var params = new $URLSearchParams('a=1'); + +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +if (params.has('a', 2) || !params.has('a', undefined)) { + defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $has(this, name); + var values = getAll(this, name); // also validates `this` + validateArgumentsLength(length, 1); + var value = toString($value); + var index = 0; + while (index < values.length) { + if (values[index++] === value) return true; + } return false; + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 559 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var URLSearchParamsPrototype = URLSearchParams.prototype; +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) { + defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + var count = 0; + forEach(this, function () { count++; }); + return count; + }, + configurable: true, + enumerable: true + }); +} + + +/***/ }), +/* 560 */, +/* 561 */, +/* 562 */, +/* 563 */ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ TableView; } +}); + +;// CONCATENATED MODULE: ./node_modules/d3-dispatch/src/dispatch.js +var noop = { value: () => { +} }; +function dispatch() { + for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t)) + throw new Error("illegal type: " + t); + _[t] = []; + } + return new Dispatch(_); +} +function Dispatch(_) { + this._ = _; +} +function parseTypenames(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + return { type: t, name }; + }); +} +Dispatch.prototype = dispatch.prototype = { + constructor: Dispatch, + on: function(typename, callback) { + var _ = this._, T = parseTypenames(typename + "", _), t, i = -1, n = T.length; + if (arguments.length < 2) { + while (++i < n) + if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) + return t; + return; + } + if (callback != null && typeof callback !== "function") + throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) + _[t] = set(_[t], typename.name, callback); + else if (callback == null) + for (t in _) + _[t] = set(_[t], typename.name, null); + } + return this; + }, + copy: function() { + var copy = {}, _ = this._; + for (var t in _) + copy[t] = _[t].slice(); + return new Dispatch(copy); + }, + call: function(type, that) { + if ((n = arguments.length - 2) > 0) + for (var args = new Array(n), i = 0, n, t; i < n; ++i) + args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type)) + throw new Error("unknown type: " + type); + for (t = this._[type], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + }, + apply: function(type, that, args) { + if (!this._.hasOwnProperty(type)) + throw new Error("unknown type: " + type); + for (var t = this._[type], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + } +}; +function get(type, name) { + for (var i = 0, n = type.length, c; i < n; ++i) { + if ((c = type[i]).name === name) { + return c.value; + } + } +} +function set(type, name, callback) { + for (var i = 0, n = type.length; i < n; ++i) { + if (type[i].name === name) { + type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1)); + break; + } + } + if (callback != null) + type.push({ name, value: callback }); + return type; +} +/* harmony default export */ var src_dispatch = (dispatch); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selector.js +function none() { +} +/* harmony default export */ function selector(selector) { + return selector == null ? none : function() { + return this.querySelector(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/select.js + + +/* harmony default export */ function selection_select(select) { + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/array.js +function array(x) { + return x == null ? [] : Array.isArray(x) ? x : Array.from(x); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selectorAll.js +function empty() { + return []; +} +/* harmony default export */ function selectorAll(selector) { + return selector == null ? empty : function() { + return this.querySelectorAll(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectAll.js + + + +function arrayAll(select) { + return function() { + return array(select.apply(this, arguments)); + }; +} +/* harmony default export */ function selectAll(select) { + if (typeof select === "function") + select = arrayAll(select); + else + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + subgroups.push(select.call(node, node.__data__, i, group)); + parents.push(node); + } + } + } + return new Selection(subgroups, parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/matcher.js +/* harmony default export */ function matcher(selector) { + return function() { + return this.matches(selector); + }; +} +function childMatcher(selector) { + return function(node) { + return node.matches(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChild.js + +var find = Array.prototype.find; +function childFind(match) { + return function() { + return find.call(this.children, match); + }; +} +function childFirst() { + return this.firstElementChild; +} +/* harmony default export */ function selectChild(match) { + return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChildren.js + +var filter = Array.prototype.filter; +function children() { + return Array.from(this.children); +} +function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; +} +/* harmony default export */ function selectChildren(match) { + return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/filter.js + + +/* harmony default export */ function selection_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sparse.js +/* harmony default export */ function sparse(update) { + return new Array(update.length); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/enter.js + + +/* harmony default export */ function enter() { + return new Selection(this._enter || this._groups.map(sparse), this._parents); +} +function EnterNode(parent, datum) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum; +} +EnterNode.prototype = { + constructor: EnterNode, + appendChild: function(child) { + return this._parent.insertBefore(child, this._next); + }, + insertBefore: function(child, next) { + return this._parent.insertBefore(child, next); + }, + querySelector: function(selector) { + return this._parent.querySelector(selector); + }, + querySelectorAll: function(selector) { + return this._parent.querySelectorAll(selector); + } +}; + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/constant.js +/* harmony default export */ function constant(x) { + return function() { + return x; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/data.js + + + +function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, node, groupLength = group.length, dataLength = data.length; + for (; i < dataLength; ++i) { + if (node = group[i]) { + node.__data__ = data[i]; + update[i] = node; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (; i < groupLength; ++i) { + if (node = group[i]) { + exit[i] = node; + } + } +} +function bindKey(parent, group, enter, update, exit, data, key) { + var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue; + for (i = 0; i < groupLength; ++i) { + if (node = group[i]) { + keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + } + } + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node = nodeByKeyValue.get(keyValue)) { + update[i] = node; + node.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (i = 0; i < groupLength; ++i) { + if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) { + exit[i] = node; + } + } +} +function datum(node) { + return node.__data__; +} +/* harmony default export */ function data(value, key) { + if (!arguments.length) + return Array.from(this, datum); + var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups; + if (typeof value !== "function") + value = constant(value); + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength); + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) + i1 = i0 + 1; + while (!(next = updateGroup[i1]) && ++i1 < dataLength) + ; + previous._next = next || null; + } + } + } + update = new Selection(update, parents); + update._enter = enter; + update._exit = exit; + return update; +} +function arraylike(data) { + return typeof data === "object" && "length" in data ? data : Array.from(data); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/exit.js + + +/* harmony default export */ function exit() { + return new Selection(this._exit || this._groups.map(sparse), this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/join.js +/* harmony default export */ function join(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + if (typeof onenter === "function") { + enter = onenter(enter); + if (enter) + enter = enter.selection(); + } else { + enter = enter.append(onenter + ""); + } + if (onupdate != null) { + update = onupdate(update); + if (update) + update = update.selection(); + } + if (onexit == null) + exit.remove(); + else + onexit(exit); + return enter && update ? enter.merge(update).order() : update; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/merge.js + +/* harmony default export */ function merge(context) { + var selection = context.selection ? context.selection() : context; + for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Selection(merges, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/order.js +/* harmony default export */ function order() { + for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) { + for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && node.compareDocumentPosition(next) ^ 4) + next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sort.js + +/* harmony default export */ function sort(compare) { + if (!compare) + compare = ascending; + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group[i]) { + sortgroup[i] = node; + } + } + sortgroup.sort(compareNode); + } + return new Selection(sortgroups, this._parents).order(); +} +function ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/call.js +/* harmony default export */ function call() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/nodes.js +/* harmony default export */ function nodes() { + return Array.from(this); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/node.js +/* harmony default export */ function node() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node = group[i]; + if (node) + return node; + } + } + return null; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/size.js +/* harmony default export */ function size() { + let size = 0; + for (const node of this) + ++size; + return size; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/empty.js +/* harmony default export */ function selection_empty() { + return !this.node(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/each.js +/* harmony default export */ function each(callback) { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + callback.call(node, node.__data__, i, group); + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespaces.js +var xhtml = "http://www.w3.org/1999/xhtml"; +/* harmony default export */ var namespaces = ({ + svg: "http://www.w3.org/2000/svg", + xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespace.js + +/* harmony default export */ function namespace(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") + name = name.slice(i + 1); + return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name } : name; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/attr.js + +function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attrConstant(name, value) { + return function() { + this.setAttribute(name, value); + }; +} +function attrConstantNS(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; +} +function attrFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttribute(name); + else + this.setAttribute(name, v); + }; +} +function attrFunctionNS(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttributeNS(fullname.space, fullname.local); + else + this.setAttributeNS(fullname.space, fullname.local, v); + }; +} +/* harmony default export */ function attr(name, value) { + var fullname = namespace(name); + if (arguments.length < 2) { + var node = this.node(); + return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname); + } + return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === "function" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/window.js +/* harmony default export */ function src_window(node) { + return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/style.js + +function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function styleConstant(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; +} +function styleFunction(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.style.removeProperty(name); + else + this.style.setProperty(name, v, priority); + }; +} +/* harmony default export */ function style(name, value, priority) { + return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name); +} +function styleValue(node, name) { + return node.style.getPropertyValue(name) || src_window(node).getComputedStyle(node, null).getPropertyValue(name); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/property.js +function propertyRemove(name) { + return function() { + delete this[name]; + }; +} +function propertyConstant(name, value) { + return function() { + this[name] = value; + }; +} +function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + delete this[name]; + else + this[name] = v; + }; +} +/* harmony default export */ function property(name, value) { + return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/classed.js +function classArray(string) { + return string.trim().split(/^|\s+/); +} +function classList(node) { + return node.classList || new ClassList(node); +} +function ClassList(node) { + this._node = node; + this._names = classArray(node.getAttribute("class") || ""); +} +ClassList.prototype = { + add: function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + remove: function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + contains: function(name) { + return this._names.indexOf(name) >= 0; + } +}; +function classedAdd(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.add(names[i]); +} +function classedRemove(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.remove(names[i]); +} +function classedTrue(names) { + return function() { + classedAdd(this, names); + }; +} +function classedFalse(names) { + return function() { + classedRemove(this, names); + }; +} +function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; +} +/* harmony default export */ function classed(name, value) { + var names = classArray(name + ""); + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) + if (!list.contains(names[i])) + return false; + return true; + } + return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/text.js +function textRemove() { + this.textContent = ""; +} +function textConstant(value) { + return function() { + this.textContent = value; + }; +} +function textFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; +} +/* harmony default export */ function selection_text(value) { + return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction : textConstant)(value)) : this.node().textContent; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/html.js +function htmlRemove() { + this.innerHTML = ""; +} +function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; +} +function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; +} +/* harmony default export */ function html(value) { + return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/raise.js +function raise() { + if (this.nextSibling) + this.parentNode.appendChild(this); +} +/* harmony default export */ function selection_raise() { + return this.each(raise); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/lower.js +function lower() { + if (this.previousSibling) + this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +/* harmony default export */ function selection_lower() { + return this.each(lower); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/creator.js + + +function creatorInherit(name) { + return function() { + var document = this.ownerDocument, uri = this.namespaceURI; + return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name); + }; +} +function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; +} +/* harmony default export */ function creator(name) { + var fullname = namespace(name); + return (fullname.local ? creatorFixed : creatorInherit)(fullname); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/append.js + +/* harmony default export */ function append(name) { + var create = typeof name === "function" ? name : creator(name); + return this.select(function() { + return this.appendChild(create.apply(this, arguments)); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/insert.js + + +function constantNull() { + return null; +} +/* harmony default export */ function insert(name, before) { + var create = typeof name === "function" ? name : creator(name), select = before == null ? constantNull : typeof before === "function" ? before : selector(before); + return this.select(function() { + return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/remove.js +function remove() { + var parent = this.parentNode; + if (parent) + parent.removeChild(this); +} +/* harmony default export */ function selection_remove() { + return this.each(remove); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/clone.js +function selection_cloneShallow() { + var clone = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +function selection_cloneDeep() { + var clone = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +/* harmony default export */ function clone(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/datum.js +/* harmony default export */ function selection_datum(value) { + return arguments.length ? this.property("__data__", value) : this.node().__data__; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/on.js +function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; +} +function on_parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + return { type: t, name }; + }); +} +function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) + return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) + on.length = i; + else + delete this.__on; + }; +} +function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) + for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = { type: typename.type, name: typename.name, value, listener, options }; + if (!on) + this.__on = [o]; + else + on.push(o); + }; +} +/* harmony default export */ function on(typename, value, options) { + var typenames = on_parseTypenames(typename + ""), i, n = typenames.length, t; + if (arguments.length < 2) { + var on = this.node().__on; + if (on) + for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) + this.each(on(typenames[i], value, options)); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/dispatch.js + +function dispatchEvent(node, type, params) { + var window = src_window(node), event = window.CustomEvent; + if (typeof event === "function") { + event = new event(type, params); + } else { + event = window.document.createEvent("Event"); + if (params) + event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; + else + event.initEvent(type, false, false); + } + node.dispatchEvent(event); +} +function dispatchConstant(type, params) { + return function() { + return dispatchEvent(this, type, params); + }; +} +function dispatchFunction(type, params) { + return function() { + return dispatchEvent(this, type, params.apply(this, arguments)); + }; +} +/* harmony default export */ function selection_dispatch(type, params) { + return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type, params)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/iterator.js +/* harmony default export */ function* iterator() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + yield node; + } + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/index.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var root = [null]; +function Selection(groups, parents) { + this._groups = groups; + this._parents = parents; +} +function selection() { + return new Selection([[document.documentElement]], root); +} +function selection_selection() { + return this; +} +Selection.prototype = selection.prototype = { + constructor: Selection, + select: selection_select, + selectAll: selectAll, + selectChild: selectChild, + selectChildren: selectChildren, + filter: selection_filter, + data: data, + enter: enter, + exit: exit, + join: join, + merge: merge, + selection: selection_selection, + order: order, + sort: sort, + call: call, + nodes: nodes, + node: node, + size: size, + empty: selection_empty, + each: each, + attr: attr, + style: style, + property: property, + classed: classed, + text: selection_text, + html: html, + raise: selection_raise, + lower: selection_lower, + append: append, + insert: insert, + remove: selection_remove, + clone: clone, + datum: selection_datum, + on: on, + dispatch: selection_dispatch, + [Symbol.iterator]: iterator +}; +/* harmony default export */ var src_selection = (selection); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/select.js + +/* harmony default export */ function src_select(selector) { + return typeof selector === "string" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root); +} + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/noevent.js +const nonpassive = { passive: false }; +const nonpassivecapture = { capture: true, passive: false }; +function nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/nodrag.js + + +/* harmony default export */ function nodrag(view) { + var root = view.document.documentElement, selection = src_select(view).on("dragstart.drag", noevent, nonpassivecapture); + if ("onselectstart" in root) { + selection.on("selectstart.drag", noevent, nonpassivecapture); + } else { + root.__noselect = root.style.MozUserSelect; + root.style.MozUserSelect = "none"; + } +} +function yesdrag(view, noclick) { + var root = view.document.documentElement, selection = src_select(view).on("dragstart.drag", null); + if (noclick) { + selection.on("click.drag", noevent, nonpassivecapture); + setTimeout(function() { + selection.on("click.drag", null); + }, 0); + } + if ("onselectstart" in root) { + selection.on("selectstart.drag", null); + } else { + root.style.MozUserSelect = root.__noselect; + delete root.__noselect; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-color/src/define.js +/* harmony default export */ function src_define(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; +} +function extend(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) + prototype[key] = definition[key]; + return prototype; +} + +;// CONCATENATED MODULE: ./node_modules/d3-color/src/color.js + +function Color() { +} +var darker = 0.7; +var brighter = 1 / darker; +var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); +var named = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 +}; +src_define(Color, color, { + copy(channels) { + return Object.assign(new this.constructor(), this, channels); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: color_formatHex, + // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHex8: color_formatHex8, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb +}); +function color_formatHex() { + return this.rgb().formatHex(); +} +function color_formatHex8() { + return this.rgb().formatHex8(); +} +function color_formatHsl() { + return hslConvert(this).formatHsl(); +} +function color_formatRgb() { + return this.rgb().formatRgb(); +} +function color(format) { + var m, l; + format = (format + "").trim().toLowerCase(); + return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null; +} +function rgbn(n) { + return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1); +} +function rgba(r, g, b, a) { + if (a <= 0) + r = g = b = NaN; + return new Rgb(r, g, b, a); +} +function rgbConvert(o) { + if (!(o instanceof Color)) + o = color(o); + if (!o) + return new Rgb(); + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); +} +function color_rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); +} +function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; +} +src_define(Rgb, color_rgb, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity)); + }, + displayable() { + return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1); + }, + hex: rgb_formatHex, + // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb +})); +function rgb_formatHex() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; +} +function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} +function rgb_formatRgb() { + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; +} +function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); +} +function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); +} +function hex(value) { + value = clampi(value); + return (value < 16 ? "0" : "") + value.toString(16); +} +function hsla(h, s, l, a) { + if (a <= 0) + h = s = l = NaN; + else if (l <= 0 || l >= 1) + h = s = NaN; + else if (s <= 0) + h = NaN; + return new Hsl(h, s, l, a); +} +function hslConvert(o) { + if (o instanceof Hsl) + return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color)) + o = color(o); + if (!o) + return new Hsl(); + if (o instanceof Hsl) + return o; + o = o.rgb(); + var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2; + if (s) { + if (r === max) + h = (g - b) / s + (g < b) * 6; + else if (g === max) + h = (b - r) / s + 2; + else + h = (r - g) / s + 4; + s /= l < 0.5 ? max + min : 2 - max - min; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; + } + return new Hsl(h, s, l, o.opacity); +} +function hsl(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); +} +function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} +src_define(Hsl, hsl, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb() { + var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + this.opacity + ); + }, + clamp() { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity)); + }, + displayable() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1); + }, + formatHsl() { + const a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; + } +})); +function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; +} +function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); +} +function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basis.js +function basis(t1, v0, v1, v2, v3) { + var t2 = t1 * t1, t3 = t2 * t1; + return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6; +} +/* harmony default export */ function src_basis(values) { + var n = values.length - 1; + return function(t) { + var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basisClosed.js + +/* harmony default export */ function basisClosed(values) { + var n = values.length; + return function(t) { + var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n]; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/constant.js +/* harmony default export */ var src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/color.js + +function linear(a, d) { + return function(t) { + return a + t * d; + }; +} +function exponential(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; +} +function hue(a, b) { + var d = b - a; + return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : src_constant(isNaN(a) ? b : a); +} +function gamma(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential(a, b, y) : src_constant(isNaN(a) ? b : a); + }; +} +function nogamma(a, b) { + var d = b - a; + return d ? linear(a, d) : src_constant(isNaN(a) ? b : a); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/rgb.js + + + + +/* harmony default export */ var rgb = ((function rgbGamma(y) { + var color = gamma(y); + function rgb(start, end) { + var r = color((start = color_rgb(start)).r, (end = color_rgb(end)).r), g = color(start.g, end.g), b = color(start.b, end.b), opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.r = r(t); + start.g = g(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; + } + rgb.gamma = rgbGamma; + return rgb; +})(1)); +function rgbSpline(spline) { + return function(colors) { + var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color; + for (i = 0; i < n; ++i) { + color = color_rgb(colors[i]); + r[i] = color.r || 0; + g[i] = color.g || 0; + b[i] = color.b || 0; + } + r = spline(r); + g = spline(g); + b = spline(b); + color.opacity = 1; + return function(t) { + color.r = r(t); + color.g = g(t); + color.b = b(t); + return color + ""; + }; + }; +} +var rgbBasis = rgbSpline(src_basis); +var rgbBasisClosed = rgbSpline(basisClosed); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/numberArray.js +/* harmony default export */ function numberArray(a, b) { + if (!b) + b = []; + var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i; + return function(t) { + for (i = 0; i < n; ++i) + c[i] = a[i] * (1 - t) + b[i] * t; + return c; + }; +} +function isNumberArray(x) { + return ArrayBuffer.isView(x) && !(x instanceof DataView); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/array.js + + +/* harmony default export */ function src_array(a, b) { + return (isNumberArray(b) ? numberArray : genericArray)(a, b); +} +function genericArray(a, b) { + var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i; + for (i = 0; i < na; ++i) + x[i] = value(a[i], b[i]); + for (; i < nb; ++i) + c[i] = b[i]; + return function(t) { + for (i = 0; i < na; ++i) + c[i] = x[i](t); + return c; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/date.js +/* harmony default export */ function date(a, b) { + var d = /* @__PURE__ */ new Date(); + return a = +a, b = +b, function(t) { + return d.setTime(a * (1 - t) + b * t), d; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/number.js +/* harmony default export */ function number(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/object.js + +/* harmony default export */ function object(a, b) { + var i = {}, c = {}, k; + if (a === null || typeof a !== "object") + a = {}; + if (b === null || typeof b !== "object") + b = {}; + for (k in b) { + if (k in a) { + i[k] = value(a[k], b[k]); + } else { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) + c[k] = i[k](t); + return c; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/string.js + +var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g"); +function zero(b) { + return function() { + return b; + }; +} +function one(b) { + return function(t) { + return b(t) + ""; + }; +} +/* harmony default export */ function string(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = reA.exec(a)) && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.slice(bi, bs); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) + s[i] += bm; + else + s[++i] = bm; + } else { + s[++i] = null; + q.push({ i, x: number(am, bm) }); + } + bi = reB.lastIndex; + } + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) { + for (var i2 = 0, o; i2 < b; ++i2) + s[(o = q[i2]).i] = o.x(t); + return s.join(""); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/value.js + + + + + + + + + +/* harmony default export */ function value(a, b) { + var t = typeof b, c; + return b == null || t === "boolean" ? src_constant(b) : (t === "number" ? number : t === "string" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : number)(a, b); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/sourceEvent.js +/* harmony default export */ function sourceEvent(event) { + let sourceEvent; + while (sourceEvent = event.sourceEvent) + event = sourceEvent; + return event; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/pointer.js + +/* harmony default export */ function src_pointer(event, node) { + event = sourceEvent(event); + if (node === void 0) + node = event.currentTarget; + if (node) { + var svg = node.ownerSVGElement || node; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + point.x = event.clientX, point.y = event.clientY; + point = point.matrixTransform(node.getScreenCTM().inverse()); + return [point.x, point.y]; + } + if (node.getBoundingClientRect) { + var rect = node.getBoundingClientRect(); + return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; + } + } + return [event.pageX, event.pageY]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timer.js +var timer_frame = 0, timeout = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { + setTimeout(f, 17); +}; +function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); +} +function clearNow() { + clockNow = 0; +} +function Timer() { + this._call = this._time = this._next = null; +} +Timer.prototype = timer.prototype = { + constructor: Timer, + restart: function(callback, delay, time) { + if (typeof callback !== "function") + throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) + taskTail._next = this; + else + taskHead = this; + taskTail = this; + } + this._call = callback; + this._time = time; + sleep(); + }, + stop: function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); + } + } +}; +function timer(callback, delay, time) { + var t = new Timer(); + t.restart(callback, delay, time); + return t; +} +function timerFlush() { + now(); + ++timer_frame; + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) + t._call.call(void 0, e); + t = t._next; + } + --timer_frame; +} +function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + timer_frame = timeout = 0; + try { + timerFlush(); + } finally { + timer_frame = 0; + nap(); + clockNow = 0; + } +} +function poke() { + var now2 = clock.now(), delay = now2 - clockLast; + if (delay > pokeDelay) + clockSkew -= delay, clockLast = now2; +} +function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) + time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } + } + taskTail = t0; + sleep(time); +} +function sleep(time) { + if (timer_frame) + return; + if (timeout) + timeout = clearTimeout(timeout); + var delay = time - clockNow; + if (delay > 24) { + if (time < Infinity) + timeout = setTimeout(wake, time - clock.now() - clockSkew); + if (interval) + interval = clearInterval(interval); + } else { + if (!interval) + clockLast = clock.now(), interval = setInterval(poke, pokeDelay); + timer_frame = 1, setFrame(wake); + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timeout.js + +/* harmony default export */ function src_timeout(callback, delay, time) { + var t = new Timer(); + delay = delay == null ? 0 : +delay; + t.restart((elapsed) => { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/schedule.js + + +var emptyOn = src_dispatch("start", "end", "cancel", "interrupt"); +var emptyTween = []; +var CREATED = 0; +var SCHEDULED = 1; +var STARTING = 2; +var STARTED = 3; +var RUNNING = 4; +var ENDING = 5; +var ENDED = 6; +/* harmony default export */ function schedule(node, name, id, index, group, timing) { + var schedules = node.__transition; + if (!schedules) + node.__transition = {}; + else if (id in schedules) + return; + create(node, id, { + name, + index, + // For context during callback. + group, + // For context during callback. + on: emptyOn, + tween: emptyTween, + time: timing.time, + delay: timing.delay, + duration: timing.duration, + ease: timing.ease, + timer: null, + state: CREATED + }); +} +function init(node, id) { + var schedule = schedule_get(node, id); + if (schedule.state > CREATED) + throw new Error("too late; already scheduled"); + return schedule; +} +function schedule_set(node, id) { + var schedule = schedule_get(node, id); + if (schedule.state > STARTED) + throw new Error("too late; already running"); + return schedule; +} +function schedule_get(node, id) { + var schedule = node.__transition; + if (!schedule || !(schedule = schedule[id])) + throw new Error("transition not found"); + return schedule; +} +function create(node, id, self) { + var schedules = node.__transition, tween; + schedules[id] = self; + self.timer = timer(schedule, 0, self.time); + function schedule(elapsed) { + self.state = SCHEDULED; + self.timer.restart(start, self.delay, self.time); + if (self.delay <= elapsed) + start(elapsed - self.delay); + } + function start(elapsed) { + var i, j, n, o; + if (self.state !== SCHEDULED) + return stop(); + for (i in schedules) { + o = schedules[i]; + if (o.name !== self.name) + continue; + if (o.state === STARTED) + return src_timeout(start); + if (o.state === RUNNING) { + o.state = ENDED; + o.timer.stop(); + o.on.call("interrupt", node, node.__data__, o.index, o.group); + delete schedules[i]; + } else if (+i < id) { + o.state = ENDED; + o.timer.stop(); + o.on.call("cancel", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + } + src_timeout(function() { + if (self.state === STARTED) { + self.state = RUNNING; + self.timer.restart(tick, self.delay, self.time); + tick(elapsed); + } + }); + self.state = STARTING; + self.on.call("start", node, node.__data__, self.index, self.group); + if (self.state !== STARTING) + return; + self.state = STARTED; + tween = new Array(n = self.tween.length); + for (i = 0, j = -1; i < n; ++i) { + if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { + tween[++j] = o; + } + } + tween.length = j + 1; + } + function tick(elapsed) { + var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length; + while (++i < n) { + tween[i].call(node, t); + } + if (self.state === ENDING) { + self.on.call("end", node, node.__data__, self.index, self.group); + stop(); + } + } + function stop() { + self.state = ENDED; + self.timer.stop(); + delete schedules[id]; + for (var i in schedules) + return; + delete node.__transition; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/interrupt.js + +/* harmony default export */ function interrupt(node, name) { + var schedules = node.__transition, schedule, active, empty = true, i; + if (!schedules) + return; + name = name == null ? null : name + ""; + for (i in schedules) { + if ((schedule = schedules[i]).name !== name) { + empty = false; + continue; + } + active = schedule.state > STARTING && schedule.state < ENDING; + schedule.state = ENDED; + schedule.timer.stop(); + schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); + delete schedules[i]; + } + if (empty) + delete node.__transition; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/interrupt.js + +/* harmony default export */ function selection_interrupt(name) { + return this.each(function() { + interrupt(this, name); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/decompose.js +var degrees = 180 / Math.PI; +var identity = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; +/* harmony default export */ function decompose(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) + a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) + c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) + c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) + a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees, + skewX: Math.atan(skewX) * degrees, + scaleX, + scaleY + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/parse.js + +var svgNode; +function parseCss(value) { + const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); + return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f); +} +function parseSvg(value) { + if (value == null) + return identity; + if (!svgNode) + svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) + return identity; + value = value.matrix; + return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/index.js + + +function interpolateTransform(parse, pxComma, pxParen, degParen) { + function pop(s) { + return s.length ? s.pop() + " " : ""; + } + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({ i: i - 4, x: number(xa, xb) }, { i: i - 2, x: number(ya, yb) }); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } + } + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) + b += 360; + else if (b - a > 180) + a += 360; + q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b) }); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); + } + } + function skewX(a, b, s, q) { + if (a !== b) { + q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b) }); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } + } + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({ i: i - 4, x: number(xa, xb) }, { i: i - 2, x: number(ya, yb) }); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + } + } + return function(a, b) { + var s = [], q = []; + a = parse(a), b = parse(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) + s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + }; +} +var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); +var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/tween.js + +function tweenRemove(id, name) { + var tween0, tween1; + return function() { + var schedule = schedule_set(this, id), tween = schedule.tween; + if (tween !== tween0) { + tween1 = tween0 = tween; + for (var i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1 = tween1.slice(); + tween1.splice(i, 1); + break; + } + } + } + schedule.tween = tween1; + }; +} +function tweenFunction(id, name, value) { + var tween0, tween1; + if (typeof value !== "function") + throw new Error(); + return function() { + var schedule = schedule_set(this, id), tween = schedule.tween; + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; + break; + } + } + if (i === n) + tween1.push(t); + } + schedule.tween = tween1; + }; +} +/* harmony default export */ function tween(name, value) { + var id = this._id; + name += ""; + if (arguments.length < 2) { + var tween = schedule_get(this.node(), id).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { + return t.value; + } + } + return null; + } + return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); +} +function tweenValue(transition, name, value) { + var id = transition._id; + transition.each(function() { + var schedule = schedule_set(this, id); + (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); + }); + return function(node) { + return schedule_get(node, id).value[name]; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/interpolate.js + + +/* harmony default export */ function interpolate(a, b) { + var c; + return (typeof b === "number" ? number : b instanceof color ? rgb : (c = color(b)) ? (b = c, rgb) : string)(a, b); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attr.js + + + + +function attr_attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attr_attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attr_attrConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttribute(name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attr_attrConstantNS(fullname, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttributeNS(fullname.space, fullname.local); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attr_attrFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttribute(name); + string0 = this.getAttribute(name); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function attr_attrFunctionNS(fullname, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttributeNS(fullname.space, fullname.local); + string0 = this.getAttributeNS(fullname.space, fullname.local); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +/* harmony default export */ function transition_attr(name, value) { + var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate; + return this.attrTween(name, typeof value === "function" ? (fullname.local ? attr_attrFunctionNS : attr_attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) : value == null ? (fullname.local ? attr_attrRemoveNS : attr_attrRemove)(fullname) : (fullname.local ? attr_attrConstantNS : attr_attrConstant)(fullname, i, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attrTween.js + +function attrInterpolate(name, i) { + return function(t) { + this.setAttribute(name, i.call(this, t)); + }; +} +function attrInterpolateNS(fullname, i) { + return function(t) { + this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); + }; +} +function attrTweenNS(fullname, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolateNS(fullname, i); + return t0; + } + tween._value = value; + return tween; +} +function attrTween(name, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolate(name, i); + return t0; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_attrTween(name, value) { + var key = "attr." + name; + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + var fullname = namespace(name); + return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/delay.js + +function delayFunction(id, value) { + return function() { + init(this, id).delay = +value.apply(this, arguments); + }; +} +function delayConstant(id, value) { + return value = +value, function() { + init(this, id).delay = value; + }; +} +/* harmony default export */ function delay(value) { + var id = this._id; + return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id, value)) : schedule_get(this.node(), id).delay; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/duration.js + +function durationFunction(id, value) { + return function() { + schedule_set(this, id).duration = +value.apply(this, arguments); + }; +} +function durationConstant(id, value) { + return value = +value, function() { + schedule_set(this, id).duration = value; + }; +} +/* harmony default export */ function duration(value) { + var id = this._id; + return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id, value)) : schedule_get(this.node(), id).duration; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/ease.js + +function easeConstant(id, value) { + if (typeof value !== "function") + throw new Error(); + return function() { + schedule_set(this, id).ease = value; + }; +} +/* harmony default export */ function ease(value) { + var id = this._id; + return arguments.length ? this.each(easeConstant(id, value)) : schedule_get(this.node(), id).ease; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/easeVarying.js + +function easeVarying(id, value) { + return function() { + var v = value.apply(this, arguments); + if (typeof v !== "function") + throw new Error(); + schedule_set(this, id).ease = v; + }; +} +/* harmony default export */ function transition_easeVarying(value) { + if (typeof value !== "function") + throw new Error(); + return this.each(easeVarying(this._id, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/filter.js + + +/* harmony default export */ function transition_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Transition(subgroups, this._parents, this._name, this._id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/merge.js + +/* harmony default export */ function transition_merge(transition) { + if (transition._id !== this._id) + throw new Error(); + for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Transition(merges, this._parents, this._name, this._id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/on.js + +function start(name) { + return (name + "").trim().split(/^|\s+/).every(function(t) { + var i = t.indexOf("."); + if (i >= 0) + t = t.slice(0, i); + return !t || t === "start"; + }); +} +function onFunction(id, name, listener) { + var on0, on1, sit = start(name) ? init : schedule_set; + return function() { + var schedule = sit(this, id), on = schedule.on; + if (on !== on0) + (on1 = (on0 = on).copy()).on(name, listener); + schedule.on = on1; + }; +} +/* harmony default export */ function transition_on(name, listener) { + var id = this._id; + return arguments.length < 2 ? schedule_get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/remove.js +function removeFunction(id) { + return function() { + var parent = this.parentNode; + for (var i in this.__transition) + if (+i !== id) + return; + if (parent) + parent.removeChild(this); + }; +} +/* harmony default export */ function transition_remove() { + return this.on("end.remove", removeFunction(this._id)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/select.js + + + +/* harmony default export */ function transition_select(select) { + var name = this._name, id = this._id; + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + schedule(subgroup[i], name, id, i, subgroup, schedule_get(node, id)); + } + } + } + return new Transition(subgroups, this._parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selectAll.js + + + +/* harmony default export */ function transition_selectAll(select) { + var name = this._name, id = this._id; + if (typeof select !== "function") + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + for (var children = select.call(node, node.__data__, i, group), child, inherit = schedule_get(node, id), k = 0, l = children.length; k < l; ++k) { + if (child = children[k]) { + schedule(child, name, id, k, children, inherit); + } + } + subgroups.push(children); + parents.push(node); + } + } + } + return new Transition(subgroups, parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selection.js + +var selection_Selection = src_selection.prototype.constructor; +/* harmony default export */ function transition_selection() { + return new selection_Selection(this._groups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/style.js + + + + + +function styleNull(name, interpolate2) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1); + }; +} +function style_styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function style_styleConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = styleValue(this, name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function style_styleFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + ""; + if (value1 == null) + string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function styleMaybeRemove(id, name) { + var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; + return function() { + var schedule = schedule_set(this, id), on = schedule.on, listener = schedule.value[key] == null ? remove || (remove = style_styleRemove(name)) : void 0; + if (on !== on0 || listener0 !== listener) + (on1 = (on0 = on).copy()).on(event, listener0 = listener); + schedule.on = on1; + }; +} +/* harmony default export */ function transition_style(name, value, priority) { + var i = (name += "") === "transform" ? interpolateTransformCss : interpolate; + return value == null ? this.styleTween(name, styleNull(name, i)).on("end.style." + name, style_styleRemove(name)) : typeof value === "function" ? this.styleTween(name, style_styleFunction(name, i, tweenValue(this, "style." + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, style_styleConstant(name, i, value), priority).on("end.style." + name, null); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/styleTween.js +function styleInterpolate(name, i, priority) { + return function(t) { + this.style.setProperty(name, i.call(this, t), priority); + }; +} +function styleTween(name, value, priority) { + var t, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t = (i0 = i) && styleInterpolate(name, i, priority); + return t; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_styleTween(name, value, priority) { + var key = "style." + (name += ""); + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/text.js + +function text_textConstant(value) { + return function() { + this.textContent = value; + }; +} +function text_textFunction(value) { + return function() { + var value1 = value(this); + this.textContent = value1 == null ? "" : value1; + }; +} +/* harmony default export */ function transition_text(value) { + return this.tween("text", typeof value === "function" ? text_textFunction(tweenValue(this, "text", value)) : text_textConstant(value == null ? "" : value + "")); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/textTween.js +function textInterpolate(i) { + return function(t) { + this.textContent = i.call(this, t); + }; +} +function textTween(value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && textInterpolate(i); + return t0; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_textTween(value) { + var key = "text"; + if (arguments.length < 1) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, textTween(value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/transition.js + + +/* harmony default export */ function transition() { + var name = this._name, id0 = this._id, id1 = newId(); + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + var inherit = schedule_get(node, id0); + schedule(node, name, id1, i, group, { + time: inherit.time + inherit.delay + inherit.duration, + delay: 0, + duration: inherit.duration, + ease: inherit.ease + }); + } + } + } + return new Transition(groups, this._parents, name, id1); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/end.js + +/* harmony default export */ function end() { + var on0, on1, that = this, id = that._id, size = that.size(); + return new Promise(function(resolve, reject) { + var cancel = { value: reject }, end = { value: function() { + if (--size === 0) + resolve(); + } }; + that.each(function() { + var schedule = schedule_set(this, id), on = schedule.on; + if (on !== on0) { + on1 = (on0 = on).copy(); + on1._.cancel.push(cancel); + on1._.interrupt.push(cancel); + on1._.end.push(end); + } + schedule.on = on1; + }); + if (size === 0) + resolve(); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/index.js + + + + + + + + + + + + + + + + + + + + + +var id = 0; +function Transition(groups, parents, name, id2) { + this._groups = groups; + this._parents = parents; + this._name = name; + this._id = id2; +} +function transition_transition(name) { + return src_selection().transition(name); +} +function newId() { + return ++id; +} +var selection_prototype = src_selection.prototype; +Transition.prototype = transition_transition.prototype = { + constructor: Transition, + select: transition_select, + selectAll: transition_selectAll, + selectChild: selection_prototype.selectChild, + selectChildren: selection_prototype.selectChildren, + filter: transition_filter, + merge: transition_merge, + selection: transition_selection, + transition: transition, + call: selection_prototype.call, + nodes: selection_prototype.nodes, + node: selection_prototype.node, + size: selection_prototype.size, + empty: selection_prototype.empty, + each: selection_prototype.each, + on: transition_on, + attr: transition_attr, + attrTween: transition_attrTween, + style: transition_style, + styleTween: transition_styleTween, + text: transition_text, + textTween: transition_textTween, + remove: transition_remove, + tween: tween, + delay: delay, + duration: duration, + ease: ease, + easeVarying: transition_easeVarying, + end: end, + [Symbol.iterator]: selection_prototype[Symbol.iterator] +}; + +;// CONCATENATED MODULE: ./node_modules/d3-ease/src/cubic.js +function cubicIn(t) { + return t * t * t; +} +function cubicOut(t) { + return --t * t * t + 1; +} +function cubicInOut(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/transition.js + + + + +var defaultTiming = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: cubicInOut +}; +function inherit(node, id) { + var timing; + while (!(timing = node.__transition) || !(timing = timing[id])) { + if (!(node = node.parentNode)) { + throw new Error(`transition ${id} not found`); + } + } + return timing; +} +/* harmony default export */ function selection_transition(name) { + var id, timing; + if (name instanceof Transition) { + id = name._id, name = name._name; + } else { + id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; + } + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + schedule(node, name, id, i, group, timing || inherit(node, id)); + } + } + } + return new Transition(groups, this._parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/index.js + + + +src_selection.prototype.interrupt = selection_interrupt; +src_selection.prototype.transition = selection_transition; + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/index.js + + + + + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/constant.js +/* harmony default export */ var d3_brush_src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/event.js +function BrushEvent(type, { + sourceEvent, + target, + selection, + mode, + dispatch +}) { + Object.defineProperties(this, { + type: { value: type, enumerable: true, configurable: true }, + sourceEvent: { value: sourceEvent, enumerable: true, configurable: true }, + target: { value: target, enumerable: true, configurable: true }, + selection: { value: selection, enumerable: true, configurable: true }, + mode: { value: mode, enumerable: true, configurable: true }, + _: { value: dispatch } + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/noevent.js +function noevent_nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function src_noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/brush.js + + + + + + + + +var MODE_DRAG = { name: "drag" }, MODE_SPACE = { name: "space" }, MODE_HANDLE = { name: "handle" }, MODE_CENTER = { name: "center" }; +const { abs, max, min } = Math; +function number1(e) { + return [+e[0], +e[1]]; +} +function number2(e) { + return [number1(e[0]), number1(e[1])]; +} +var X = { + name: "x", + handles: ["w", "e"].map(type), + input: function(x, e) { + return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; + }, + output: function(xy) { + return xy && [xy[0][0], xy[1][0]]; + } +}; +var Y = { + name: "y", + handles: ["n", "s"].map(type), + input: function(y, e) { + return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; + }, + output: function(xy) { + return xy && [xy[0][1], xy[1][1]]; + } +}; +var XY = { + name: "xy", + handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type), + input: function(xy) { + return xy == null ? null : number2(xy); + }, + output: function(xy) { + return xy; + } +}; +var cursors = { + overlay: "crosshair", + selection: "move", + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" +}; +var flipX = { + e: "w", + w: "e", + nw: "ne", + ne: "nw", + se: "sw", + sw: "se" +}; +var flipY = { + n: "s", + s: "n", + nw: "sw", + ne: "se", + se: "ne", + sw: "nw" +}; +var signsX = { + overlay: 1, + selection: 1, + n: null, + e: 1, + s: null, + w: -1, + nw: -1, + ne: 1, + se: 1, + sw: -1 +}; +var signsY = { + overlay: 1, + selection: 1, + n: -1, + e: null, + s: 1, + w: null, + nw: -1, + ne: -1, + se: 1, + sw: 1 +}; +function type(t) { + return { type: t }; +} +function defaultFilter(event) { + return !event.ctrlKey && !event.button; +} +function defaultExtent() { + var svg = this.ownerSVGElement || this; + if (svg.hasAttribute("viewBox")) { + svg = svg.viewBox.baseVal; + return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]]; + } + return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; +} +function defaultTouchable() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +function local(node) { + while (!node.__brush) + if (!(node = node.parentNode)) + return; + return node.__brush; +} +function brush_empty(extent) { + return extent[0][0] === extent[1][0] || extent[0][1] === extent[1][1]; +} +function brushSelection(node) { + var state = node.__brush; + return state ? state.dim.output(state.selection) : null; +} +function brushX() { + return brush_brush(X); +} +function brushY() { + return brush_brush(Y); +} +/* harmony default export */ function brush() { + return brush_brush(XY); +} +function brush_brush(dim) { + var extent = defaultExtent, filter = defaultFilter, touchable = defaultTouchable, keys = true, listeners = src_dispatch("start", "brush", "end"), handleSize = 6, touchending; + function brush2(group) { + var overlay = group.property("__brush", initialize).selectAll(".overlay").data([type("overlay")]); + overlay.enter().append("rect").attr("class", "overlay").attr("pointer-events", "all").attr("cursor", cursors.overlay).merge(overlay).each(function() { + var extent2 = local(this).extent; + src_select(this).attr("x", extent2[0][0]).attr("y", extent2[0][1]).attr("width", extent2[1][0] - extent2[0][0]).attr("height", extent2[1][1] - extent2[0][1]); + }); + group.selectAll(".selection").data([type("selection")]).enter().append("rect").attr("class", "selection").attr("cursor", cursors.selection).attr("fill", "#777").attr("fill-opacity", 0.3).attr("stroke", "#fff").attr("shape-rendering", "crispEdges"); + var handle = group.selectAll(".handle").data(dim.handles, function(d) { + return d.type; + }); + handle.exit().remove(); + handle.enter().append("rect").attr("class", function(d) { + return "handle handle--" + d.type; + }).attr("cursor", function(d) { + return cursors[d.type]; + }); + group.each(redraw).attr("fill", "none").attr("pointer-events", "all").on("mousedown.brush", started).filter(touchable).on("touchstart.brush", started).on("touchmove.brush", touchmoved).on("touchend.brush touchcancel.brush", touchended).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + brush2.move = function(group, selection, event) { + if (group.tween) { + group.on("start.brush", function(event2) { + emitter(this, arguments).beforestart().start(event2); + }).on("interrupt.brush end.brush", function(event2) { + emitter(this, arguments).end(event2); + }).tween("brush", function() { + var that = this, state = that.__brush, emit = emitter(that, arguments), selection0 = state.selection, selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), i = value(selection0, selection1); + function tween(t) { + state.selection = t === 1 && selection1 === null ? null : i(t); + redraw.call(that); + emit.brush(); + } + return selection0 !== null && selection1 !== null ? tween : tween(1); + }); + } else { + group.each(function() { + var that = this, args = arguments, state = that.__brush, selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), emit = emitter(that, args).beforestart(); + interrupt(that); + state.selection = selection1 === null ? null : selection1; + redraw.call(that); + emit.start(event).brush(event).end(event); + }); + } + }; + brush2.clear = function(group, event) { + brush2.move(group, null, event); + }; + function redraw() { + var group = src_select(this), selection = local(this).selection; + if (selection) { + group.selectAll(".selection").style("display", null).attr("x", selection[0][0]).attr("y", selection[0][1]).attr("width", selection[1][0] - selection[0][0]).attr("height", selection[1][1] - selection[0][1]); + group.selectAll(".handle").style("display", null).attr("x", function(d) { + return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; + }).attr("y", function(d) { + return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; + }).attr("width", function(d) { + return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; + }).attr("height", function(d) { + return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; + }); + } else { + group.selectAll(".selection,.handle").style("display", "none").attr("x", null).attr("y", null).attr("width", null).attr("height", null); + } + } + function emitter(that, args, clean) { + var emit = that.__brush.emitter; + return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean); + } + function Emitter(that, args, clean) { + this.that = that; + this.args = args; + this.state = that.__brush; + this.active = 0; + this.clean = clean; + } + Emitter.prototype = { + beforestart: function() { + if (++this.active === 1) + this.state.emitter = this, this.starting = true; + return this; + }, + start: function(event, mode) { + if (this.starting) + this.starting = false, this.emit("start", event, mode); + else + this.emit("brush", event); + return this; + }, + brush: function(event, mode) { + this.emit("brush", event, mode); + return this; + }, + end: function(event, mode) { + if (--this.active === 0) + delete this.state.emitter, this.emit("end", event, mode); + return this; + }, + emit: function(type2, event, mode) { + var d = src_select(this.that).datum(); + listeners.call( + type2, + this.that, + new BrushEvent(type2, { + sourceEvent: event, + target: brush2, + selection: dim.output(this.state.selection), + mode, + dispatch: listeners + }), + d + ); + } + }; + function started(event) { + if (touchending && !event.touches) + return; + if (!filter.apply(this, arguments)) + return; + var that = this, type2 = event.target.__data__.type, mode = (keys && event.metaKey ? type2 = "overlay" : type2) === "selection" ? MODE_DRAG : keys && event.altKey ? MODE_CENTER : MODE_HANDLE, signX = dim === Y ? null : signsX[type2], signY = dim === X ? null : signsY[type2], state = local(that), extent2 = state.extent, selection = state.selection, W = extent2[0][0], w0, w1, N = extent2[0][1], n0, n1, E = extent2[1][0], e0, e1, S = extent2[1][1], s0, s1, dx = 0, dy = 0, moving, shifting = signX && signY && keys && event.shiftKey, lockX, lockY, points = Array.from(event.touches || [event], (t) => { + const i = t.identifier; + t = src_pointer(t, that); + t.point0 = t.slice(); + t.identifier = i; + return t; + }); + interrupt(that); + var emit = emitter(that, arguments, true).beforestart(); + if (type2 === "overlay") { + if (selection) + moving = true; + const pts = [points[0], points[1] || points[0]]; + state.selection = selection = [[ + w0 = dim === Y ? W : min(pts[0][0], pts[1][0]), + n0 = dim === X ? N : min(pts[0][1], pts[1][1]) + ], [ + e0 = dim === Y ? E : max(pts[0][0], pts[1][0]), + s0 = dim === X ? S : max(pts[0][1], pts[1][1]) + ]]; + if (points.length > 1) + move(event); + } else { + w0 = selection[0][0]; + n0 = selection[0][1]; + e0 = selection[1][0]; + s0 = selection[1][1]; + } + w1 = w0; + n1 = n0; + e1 = e0; + s1 = s0; + var group = src_select(that).attr("pointer-events", "none"); + var overlay = group.selectAll(".overlay").attr("cursor", cursors[type2]); + if (event.touches) { + emit.moved = moved; + emit.ended = ended; + } else { + var view = src_select(event.view).on("mousemove.brush", moved, true).on("mouseup.brush", ended, true); + if (keys) + view.on("keydown.brush", keydowned, true).on("keyup.brush", keyupped, true); + nodrag(event.view); + } + redraw.call(that); + emit.start(event, mode.name); + function moved(event2) { + for (const p of event2.changedTouches || [event2]) { + for (const d of points) + if (d.identifier === p.identifier) + d.cur = src_pointer(p, that); + } + if (shifting && !lockX && !lockY && points.length === 1) { + const point = points[0]; + if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1])) + lockY = true; + else + lockX = true; + } + for (const point of points) + if (point.cur) + point[0] = point.cur[0], point[1] = point.cur[1]; + moving = true; + src_noevent(event2); + move(event2); + } + function move(event2) { + const point = points[0], point0 = point.point0; + var t; + dx = point[0] - point0[0]; + dy = point[1] - point0[1]; + switch (mode) { + case MODE_SPACE: + case MODE_DRAG: { + if (signX) + dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; + if (signY) + dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; + break; + } + case MODE_HANDLE: { + if (points[1]) { + if (signX) + w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1; + if (signY) + n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1; + } else { + if (signX < 0) + dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0; + else if (signX > 0) + dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx; + if (signY < 0) + dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0; + else if (signY > 0) + dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy; + } + break; + } + case MODE_CENTER: { + if (signX) + w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX)); + if (signY) + n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY)); + break; + } + } + if (e1 < w1) { + signX *= -1; + t = w0, w0 = e0, e0 = t; + t = w1, w1 = e1, e1 = t; + if (type2 in flipX) + overlay.attr("cursor", cursors[type2 = flipX[type2]]); + } + if (s1 < n1) { + signY *= -1; + t = n0, n0 = s0, s0 = t; + t = n1, n1 = s1, s1 = t; + if (type2 in flipY) + overlay.attr("cursor", cursors[type2 = flipY[type2]]); + } + if (state.selection) + selection = state.selection; + if (lockX) + w1 = selection[0][0], e1 = selection[1][0]; + if (lockY) + n1 = selection[0][1], s1 = selection[1][1]; + if (selection[0][0] !== w1 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) { + state.selection = [[w1, n1], [e1, s1]]; + redraw.call(that); + emit.brush(event2, mode.name); + } + } + function ended(event2) { + noevent_nopropagation(event2); + if (event2.touches) { + if (event2.touches.length) + return; + if (touchending) + clearTimeout(touchending); + touchending = setTimeout(function() { + touchending = null; + }, 500); + } else { + yesdrag(event2.view, moving); + view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); + } + group.attr("pointer-events", "all"); + overlay.attr("cursor", cursors.overlay); + if (state.selection) + selection = state.selection; + if (brush_empty(selection)) + state.selection = null, redraw.call(that); + emit.end(event2, mode.name); + } + function keydowned(event2) { + switch (event2.keyCode) { + case 16: { + shifting = signX && signY; + break; + } + case 18: { + if (mode === MODE_HANDLE) { + if (signX) + e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) + s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + move(event2); + } + break; + } + case 32: { + if (mode === MODE_HANDLE || mode === MODE_CENTER) { + if (signX < 0) + e0 = e1 - dx; + else if (signX > 0) + w0 = w1 - dx; + if (signY < 0) + s0 = s1 - dy; + else if (signY > 0) + n0 = n1 - dy; + mode = MODE_SPACE; + overlay.attr("cursor", cursors.selection); + move(event2); + } + break; + } + default: + return; + } + src_noevent(event2); + } + function keyupped(event2) { + switch (event2.keyCode) { + case 16: { + if (shifting) { + lockX = lockY = shifting = false; + move(event2); + } + break; + } + case 18: { + if (mode === MODE_CENTER) { + if (signX < 0) + e0 = e1; + else if (signX > 0) + w0 = w1; + if (signY < 0) + s0 = s1; + else if (signY > 0) + n0 = n1; + mode = MODE_HANDLE; + move(event2); + } + break; + } + case 32: { + if (mode === MODE_SPACE) { + if (event2.altKey) { + if (signX) + e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) + s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + } else { + if (signX < 0) + e0 = e1; + else if (signX > 0) + w0 = w1; + if (signY < 0) + s0 = s1; + else if (signY > 0) + n0 = n1; + mode = MODE_HANDLE; + } + overlay.attr("cursor", cursors[type2]); + move(event2); + } + break; + } + default: + return; + } + src_noevent(event2); + } + } + function touchmoved(event) { + emitter(this, arguments).moved(event); + } + function touchended(event) { + emitter(this, arguments).ended(event); + } + function initialize() { + var state = this.__brush || { selection: null }; + state.extent = number2(extent.apply(this, arguments)); + state.dim = dim; + return state; + } + brush2.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : d3_brush_src_constant(number2(_)), brush2) : extent; + }; + brush2.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush2) : filter; + }; + brush2.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush2) : touchable; + }; + brush2.handleSize = function(_) { + return arguments.length ? (handleSize = +_, brush2) : handleSize; + }; + brush2.keyModifiers = function(_) { + return arguments.length ? (keys = !!_, brush2) : keys; + }; + brush2.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? brush2 : value; + }; + return brush2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/index.js + + +;// CONCATENATED MODULE: ./src/module/browser.ts +function getGlobal() { + return typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && globalThis || typeof global === "object" && global !== null && global.Object === Object && global || typeof self === "object" && self !== null && self.Object === Object && self || Function("return this")(); +} +function getFallback(w) { + const hasRAF = typeof (w == null ? void 0 : w.requestAnimationFrame) === "function" && typeof (w == null ? void 0 : w.cancelAnimationFrame) === "function"; + const hasRIC = typeof (w == null ? void 0 : w.requestIdleCallback) === "function" && typeof (w == null ? void 0 : w.cancelIdleCallback) === "function"; + const request = (cb) => setTimeout(cb, 1); + const cancel = (id) => clearTimeout(id); + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +const win = getGlobal(); +const doc = win == null ? void 0 : win.document; +const [ + requestAnimationFrame, + cancelAnimationFrame, + requestIdleCallback, + cancelIdleCallback +] = getFallback(win); + + +;// CONCATENATED MODULE: ./src/module/util.ts +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + + +const isValue = (v) => v || v === 0; +const isFunction = (v) => typeof v === "function"; +const isString = (v) => typeof v === "string"; +const isNumber = (v) => typeof v === "number"; +const isUndefined = (v) => typeof v === "undefined"; +const isDefined = (v) => typeof v !== "undefined"; +const isBoolean = (v) => typeof v === "boolean"; +const ceil10 = (v) => Math.ceil(v / 10) * 10; +const asHalfPixel = (n) => Math.ceil(n) + 0.5; +const diffDomain = (d) => d[1] - d[0]; +const isObjectType = (v) => typeof v === "object"; +const isEmpty = (o) => isUndefined(o) || o === null || isString(o) && o.length === 0 || isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0 || isNumber(o) && isNaN(o); +const notEmpty = (o) => !isEmpty(o); +const isArray = (arr) => Array.isArray(arr); +const isObject = (obj) => obj && !(obj == null ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +function hasValue(dict, value) { + let found = false; + Object.keys(dict).forEach((key) => dict[key] === value && (found = true)); + return found; +} +function callFn(fn, thisArg, ...args) { + const isFn = isFunction(fn); + isFn && fn.call(thisArg, ...args); + return isFn; +} +function endall(transition, cb) { + let n = 0; + const end = function(...args) { + !--n && cb.apply(this, ...args); + }; + if ("duration" in transition) { + transition.each(() => ++n).on("end", end); + } else { + ++n; + transition.call(end); + } +} +function sanitize(str) { + return isString(str) ? str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : str; +} +function setTextValue(node, text, dy = [-1, 1], toMiddle = false) { + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } else { + const diff = [node.text(), text].map((v) => v.replace(/[\s\n]/g, "")); + if (diff[0] !== diff[1]) { + const multiline = text.split("\n"); + const len = toMiddle ? multiline.length - 1 : 1; + node.html(""); + multiline.forEach((v, i) => { + node.append("tspan").attr("x", 0).attr("dy", `${i === 0 ? dy[0] * len : dy[1]}em`).text(v); + }); + } + } +} +function getRectSegList(path) { + const { x, y, width, height } = path.getBBox(); + return [ + { x, y: y + height }, + // seg0 + { x, y }, + // seg1 + { x: x + width, y }, + // seg2 + { x: x + width, y: y + height } + // seg3 + ]; +} +function getPathBox(path) { + const { width, height } = path.getBoundingClientRect(); + const items = getRectSegList(path); + const x = items[0].x; + const y = Math.min(items[0].y, items[1].y); + return { + x, + y, + width, + height + }; +} +function getPointer(event, element) { + var _a; + const touches = event && ((_a = event.touches || event.sourceEvent && event.sourceEvent.touches) == null ? void 0 : _a[0]); + let pointer = [0, 0]; + try { + pointer = src_pointer(touches || event, element); + } catch (e) { + } + return pointer.map((v) => isNaN(v) ? 0 : v); +} +function getBrushSelection(ctx) { + const { event, $el } = ctx; + const main = $el.subchart.main || $el.main; + let selection; + if (event && event.type === "brush") { + selection = event.selection; + } else if (main && (selection = main.select(".bb-brush").node())) { + selection = brushSelection(selection); + } + return selection; +} +function getBoundingRect(node) { + const needEvaluate = !("rect" in node) || "rect" in node && node.hasAttribute("width") && node.rect.width !== +node.getAttribute("width"); + return needEvaluate ? node.rect = node.getBoundingClientRect() : node.rect; +} +function getRandom(asStr = true, min = 0, max = 1e4) { + const crpt = win.crypto || win.msCrypto; + const rand = crpt ? min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + const mid = Math.floor((start + end) / 2); + let { x, w = 0 } = arr[mid]; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? findIndex(arr, v, start, mid - 1, isRotated) : findIndex(arr, v, mid + 1, end, isRotated); +} +function brushEmpty(ctx) { + const selection = getBrushSelection(ctx); + if (selection) { + return selection[0] === selection[1]; + } + return true; +} +function deepClone(...objectN) { + const clone = (v) => { + if (isObject(v) && v.constructor) { + const r = new v.constructor(); + for (const k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map((v) => clone(v)).reduce((a, c) => __spreadValues(__spreadValues({}, a), c)); +} +function util_extend(target = {}, source) { + if (isArray(source)) { + source.forEach((v) => util_extend(target, v)); + } + for (const p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); +function camelize(str, separator = "-") { + return str.split(separator).map((v, i) => i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()).join(""); +} +const toArray = (v) => [].slice.call(v); +function addCssRules(style, selector, prop) { + const { rootSelector = "", sheet } = style; + const getSelector = (s) => s.replace(/\s?(bb-)/g, ".$1").replace(/\.+/g, "."); + const rule = `${rootSelector} ${getSelector(selector)} {${prop.join(";")}}`; + return sheet[sheet.insertRule ? "insertRule" : "addRule"]( + rule, + sheet.cssRules.length + ); +} +function getCssRules(styleSheets) { + let rules = []; + styleSheets.forEach((sheet) => { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } catch (e) { + (_a = win.console) == null ? void 0 : _a.warn(`Error while reading rules from ${sheet.href}: ${e.toString()}`); + } + }); + return rules; +} +function getScrollPosition(node) { + var _a, _b, _c, _d; + return { + x: ((_b = (_a = win.pageXOffset) != null ? _a : win.scrollX) != null ? _b : 0) + node.scrollLeft, + y: ((_d = (_c = win.pageYOffset) != null ? _c : win.scrollY) != null ? _d : 0) + node.scrollTop + }; +} +function getTranslation(node) { + const transform = node ? node.transform : null; + const baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? baseVal.getItem(0).matrix : { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +function getUnique(data) { + const isDate = data[0] instanceof Date; + const d = (isDate ? data.map(Number) : data).filter((v, i, self) => self.indexOf(v) === i); + return isDate ? d.map((v) => new Date(v)) : d; +} +function mergeArray(arr) { + return arr && arr.length ? arr.reduce((p, c) => p.concat(c)) : []; +} +function mergeObj(target, ...objectN) { + if (!objectN.length || objectN.length === 1 && !objectN[0]) { + return target; + } + const source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach((key) => { + const value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj(target, ...objectN); +} +function sortValue(data, isAsc = true) { + let fn; + if (data[0] instanceof Date) { + fn = isAsc ? (a, b) => a - b : (a, b) => b - a; + } else { + if (isAsc && !data.every(isNaN)) { + fn = (a, b) => a - b; + } else if (!isAsc) { + fn = (a, b) => a > b && -1 || a < b && 1 || a === b && 0; + } + } + return data.concat().sort(fn); +} +function getMinMax(type, data) { + let res = data.filter((v) => notEmpty(v)); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type](...res); + } else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } else { + res = void 0; + } + return res; +} +const getRange = (start, end, step = 1) => { + const res = []; + const n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (let i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +const emulateEvent = { + mouse: (() => { + const getParams = () => ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); + try { + new MouseEvent("t"); + return (el, eventType, params = getParams()) => { + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } catch (e) { + return (el, eventType, params = getParams()) => { + const mouseEvent = doc.createEvent("MouseEvent"); + mouseEvent.initMouseEvent( + eventType, + params.bubbles, + params.cancelable, + win, + 0, + // the event's mouse click count + params.screenX, + params.screenY, + params.clientX, + params.clientY, + false, + false, + false, + false, + 0, + null + ); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: (el, eventType, params) => { + const touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +function tplProcess(tpl, data) { + let res = tpl; + for (const x in data) { + res = res.replace(new RegExp(`{=${x}}`, "g"), data[x]); + } + return res; +} +function parseDate(date) { + var _a; + let parsedDate; + if (date instanceof Date) { + parsedDate = date; + } else if (isString(date)) { + const { config, format } = this; + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) != null ? _a : new Date(date); + } else if (isNumber(date) && !isNaN(date)) { + parsedDate = /* @__PURE__ */ new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && console.error(`Failed to parse x '${date}' to Date object`); + } + return parsedDate; +} +function isTabVisible() { + var _a, _b; + return ((_a = doc) == null ? void 0 : _a.hidden) === false || ((_b = doc) == null ? void 0 : _b.visibilityState) === "visible"; +} +function convertInputType(mouse, touch) { + const { DocumentTouch, matchMedia, navigator } = win; + let hasTouch = false; + if (touch) { + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + } else if ("ontouchmove" in win || DocumentTouch && doc instanceof DocumentTouch) { + hasTouch = true; + } else { + if (matchMedia == null ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } else { + const UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + const hasMouse = mouse && ((matchMedia == null ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia == null ? void 0 : matchMedia("any-pointer:fine").matches)); + return hasMouse && "mouse" || hasTouch && "touch" || "mouse"; +} +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(() => runUntil(fn, conditionFn)); + } else { + fn(); + } +} + +;// CONCATENATED MODULE: ./src/config/config.ts + +function loadConfig(config) { + const thisConfig = this.config; + let target; + let keys; + let read; + const find = () => { + const key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } else if (!key) { + return target; + } + return void 0; + }; + Object.keys(thisConfig).forEach((key) => { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + if (this.api) { + this.state.orgConfig = config; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/Plugin.ts +var Plugin_defProp = Object.defineProperty; +var Plugin_defNormalProp = (obj, key, value) => key in obj ? Plugin_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + Plugin_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class Plugin { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + constructor(options = {}) { + __publicField(this, "$$"); + __publicField(this, "options"); + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + $beforeInit() { + } + /** + * Lifecycle hook for 'init' phase. + * @private + */ + $init() { + } + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + $afterInit() { + } + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + $redraw() { + } + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + $willDestroy() { + Object.keys(this).forEach((key) => { + this[key] = null; + delete this[key]; + }); + } +} +__publicField(Plugin, "version", "3.12.4"); + +;// CONCATENATED MODULE: ./src/Plugin/tableview/const.ts + +const defaultStyle = { + id: "__tableview-style__", + class: "bb-tableview", + rule: `.bb-tableview { + border-collapse:collapse; + border-spacing:0; + background:#fff; + min-width:100%; + margin-top:10px; + font-family:sans-serif; + font-size:.9em; + } + .bb-tableview tr:hover { + background:#eef7ff; + } + .bb-tableview thead tr { + background:#f8f8f8; + } + .bb-tableview caption,.bb-tableview td,.bb-tableview th { + text-align: center; + border:1px solid silver; + padding:.5em; + } + .bb-tableview caption { + font-size:1.1em; + font-weight:700; + margin-bottom: -1px; + }` +}; +const tpl = { + body: `<caption>{=title}</caption> + <thead><tr>{=thead}</tr></thead> + <tbody>{=tbody}</tbody>`, + thead: `<th scope="col">{=title}</th>`, + tbodyHeader: `<th scope="row">{=value}</th>`, + tbody: `<td>{=value}</td>` +}; + +;// CONCATENATED MODULE: ./src/Plugin/tableview/Options.ts +class Options { + constructor() { + return { + /** + * Set tableview holder selector. + * - **NOTE:** If not set, will append new holder element dynamically right after chart element. + * @name selector + * @memberof plugin-tableview + * @type {string} + * @default undefined + * @example + * selector: "#table-holder" + */ + selector: void 0, + /** + * Set category title text + * @name categoryTitle + * @memberof plugin-tableview + * @type {string} + * @default "Category" + * @example + * categoryTitle: "#table-holder" + */ + categoryTitle: "Category", + /** + * Set category text format function. + * @name categoryFormat + * @memberof plugin-tableview + * @type {Function} + * @returns {string} + * @default function(v) { // will return formatted value according x Axis type }} + * @example + * categoryFormat: "#table-holder" + */ + categoryFormat: function(v) { + let category = v; + if (this.$$.axis.isCategorized()) { + category = this.$$.categoryName(v); + } else if (this.$$.axis.isTimeSeries()) { + category = v.toLocaleDateString(); + } + return category; + }, + /** + * Set tableview holder class name. + * @name class + * @memberof plugin-tableview + * @type {string} + * @default undefined + * @example + * class: "table-class-name" + */ + class: void 0, + /** + * Set to apply default style(`.bb-tableview`) to tableview element. + * @name style + * @memberof plugin-tableview + * @type {boolean} + * @default true + * @example + * style: false + */ + style: true, + /** + * Set tableview title text. + * - **NOTE:** If set [title.text](https://naver.github.io/billboard.js/release/latest/doc/Options.html#.title), will be used when this option value is empty. + * @name title + * @memberof plugin-tableview + * @type {string} + * @default undefined + * @example + * title: "Table Title Text" + */ + title: void 0, + /** + * Update tableview from data visibility update(ex. legend toggle). + * @name updateOnToggle + * @memberof plugin-tableview + * @type {boolean} + * @default true + * @example + * legendToggleUpdate: false + */ + updateOnToggle: true, + /** + * Set how null value to be shown. + * @name nullString + * @memberof plugin-tableview + * @type {string} + * @default "-" + * @example + * nullString: "N/A" + */ + nullString: "-" + }; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/tableview/index.ts +var tableview_defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var tableview_getOwnPropSymbols = Object.getOwnPropertySymbols; +var tableview_hasOwnProp = Object.prototype.hasOwnProperty; +var tableview_propIsEnum = Object.prototype.propertyIsEnumerable; +var tableview_defNormalProp = (obj, key, value) => key in obj ? tableview_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var tableview_spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (tableview_hasOwnProp.call(b, prop)) + tableview_defNormalProp(a, prop, b[prop]); + if (tableview_getOwnPropSymbols) + for (var prop of tableview_getOwnPropSymbols(b)) { + if (tableview_propIsEnum.call(b, prop)) + tableview_defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var tableview_publicField = (obj, key, value) => { + tableview_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + +class TableView extends Plugin { + constructor(options) { + super(options); + tableview_publicField(this, "config"); + tableview_publicField(this, "element"); + this.config = new Options(); + return this; + } + $beforeInit() { + loadConfig.call(this, this.options); + } + $init() { + const { class: className, selector, style } = this.config; + let element = document.querySelector( + selector || `.${className || defaultStyle.class}` + ); + if (!element) { + const chart = this.$$.$el.chart.node(); + element = document.createElement("table"); + chart.parentNode.insertBefore(element, chart.nextSibling); + } + if (element.tagName !== "TABLE") { + const table = document.createElement("table"); + element.appendChild(table); + element = table; + } + if (style && !document.getElementById(defaultStyle.id)) { + const s = document.createElement("style"); + s.id = defaultStyle.id; + s.innerHTML = defaultStyle.rule; + (document.head || document.getElementsByTagName("head")[0]).appendChild(s); + } + element.classList.add(...[style && defaultStyle.class, className].filter(Boolean)); + this.element = element; + } + /** + * Generate table + * @private + */ + generateTable() { + const { $$, config, element } = this; + const dataToShow = $$.filterTargetsToShow($$.data.targets); + let thead = tplProcess(tpl.thead, { + title: dataToShow.length ? this.config.categoryTitle : "" + }); + let tbody = ""; + const rows = []; + dataToShow.forEach((v) => { + thead += tplProcess(tpl.thead, { title: v.id }); + v.values.forEach((d, i) => { + if (!rows[i]) { + rows[i] = [d.x]; + } + rows[i].push(d.value); + }); + }); + rows.forEach((v) => { + tbody += `<tr>${v.map( + (d, i) => tplProcess(i ? tpl.tbody : tpl.tbodyHeader, { + value: i === 0 ? config.categoryFormat.bind(this)(d) : isNumber(d) ? d.toLocaleString() : config.nullString + }) + ).join("")}</tr>`; + }); + const rx = /(<\/?(script|img)[^>]*>|<[^>]+><\/[^>]+>)/ig; + const r = tplProcess(tpl.body, __spreadProps(tableview_spreadValues({}, config), { + title: config.title || $$.config.title_text || "", + thead, + tbody + })).replace(rx, ""); + element.innerHTML = r; + } + $redraw() { + const { state } = this.$$; + const doNotUpdate = state.resizing || !this.config.updateOnToggle && state.toggling; + !doNotUpdate && this.generateTable(); + } + $willDestroy() { + var _a, _b; + (_a = this.element.parentNode) == null ? void 0 : _a.removeChild(this.element); + if (this.$$.charts.length === 1) { + const s = document.getElementById(defaultStyle.id); + (_b = s == null ? void 0 : s.parentNode) == null ? void 0 : _b.removeChild(s); + } + } +} + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module used 'module' so it can't be inlined +/******/ __webpack_require__(0); +/******/ var __webpack_exports__ = __webpack_require__(563); +/******/ __webpack_exports__ = __webpack_exports__["default"]; +/******/ +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-tableview.pkgd.min.js b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-tableview.pkgd.min.js new file mode 100644 index 000000000..a194659cf --- /dev/null +++ b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-tableview.pkgd.min.js @@ -0,0 +1,42 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */(function(Kr,Nr){typeof exports=="object"&&typeof module=="object"?module.exports=Nr():typeof define=="function"&&define.amd?define("bb",[],Nr):typeof exports=="object"?exports.bb=Nr():(Kr.bb=Kr.bb||{},Kr.bb.plugin=Kr.bb.plugin||{},Kr.bb.plugin["tableview.pkgd"]=Nr())})(this,function(){return function(){"use strict";var Re={72611:function(i,d,t){t.d(d,{default:function(){return Bs}});function r(){}function n(e){return e==null?r:function(){return this.querySelector(e)}}function a(e){typeof e!="function"&&(e=n(e));for(var f=this._groups,h=f.length,E=new Array(h),O=0;O<h;++O)for(var M=f[O],$=M.length,G=E[O]=new Array($),Y,rt,nt=0;nt<$;++nt)(Y=M[nt])&&(rt=e.call(Y,Y.__data__,nt,M))&&("__data__"in Y&&(rt.__data__=Y.__data__),G[nt]=rt);return new Mt(E,this._parents)}function o(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function s(){return[]}function u(e){return e==null?s:function(){return this.querySelectorAll(e)}}function l(e){return function(){return o(e.apply(this,arguments))}}function v(e){typeof e=="function"?e=l(e):e=u(e);for(var f=this._groups,h=f.length,E=[],O=[],M=0;M<h;++M)for(var $=f[M],G=$.length,Y,rt=0;rt<G;++rt)(Y=$[rt])&&(E.push(e.call(Y,Y.__data__,rt,$)),O.push(Y));return new Mt(E,O)}function c(e){return function(){return this.matches(e)}}function g(e){return function(f){return f.matches(e)}}var y=Array.prototype.find;function p(e){return function(){return y.call(this.children,e)}}function m(){return this.firstElementChild}function S(e){return this.select(e==null?m:p(typeof e=="function"?e:g(e)))}var x=Array.prototype.filter;function I(){return Array.from(this.children)}function P(e){return function(){return x.call(this.children,e)}}function A(e){return this.selectAll(e==null?I:P(typeof e=="function"?e:g(e)))}function R(e){typeof e!="function"&&(e=c(e));for(var f=this._groups,h=f.length,E=new Array(h),O=0;O<h;++O)for(var M=f[O],$=M.length,G=E[O]=[],Y,rt=0;rt<$;++rt)(Y=M[rt])&&e.call(Y,Y.__data__,rt,M)&&G.push(Y);return new Mt(E,this._parents)}function N(e){return new Array(e.length)}function T(){return new Mt(this._enter||this._groups.map(N),this._parents)}function C(e,f){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=f}C.prototype={constructor:C,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,f){return this._parent.insertBefore(e,f)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function D(e){return function(){return e}}function L(e,f,h,E,O,M){for(var $=0,G,Y=f.length,rt=M.length;$<rt;++$)(G=f[$])?(G.__data__=M[$],E[$]=G):h[$]=new C(e,M[$]);for(;$<Y;++$)(G=f[$])&&(O[$]=G)}function F(e,f,h,E,O,M,$){var G,Y,rt=new Map,nt=f.length,Et=M.length,Ct=new Array(nt),Gt;for(G=0;G<nt;++G)(Y=f[G])&&(Ct[G]=Gt=$.call(Y,Y.__data__,G,f)+"",rt.has(Gt)?O[G]=Y:rt.set(Gt,Y));for(G=0;G<Et;++G)Gt=$.call(e,M[G],G,M)+"",(Y=rt.get(Gt))?(E[G]=Y,Y.__data__=M[G],rt.delete(Gt)):h[G]=new C(e,M[G]);for(G=0;G<nt;++G)(Y=f[G])&&rt.get(Ct[G])===Y&&(O[G]=Y)}function b(e){return e.__data__}function w(e,f){if(!arguments.length)return Array.from(this,b);var h=f?F:L,E=this._parents,O=this._groups;typeof e!="function"&&(e=D(e));for(var M=O.length,$=new Array(M),G=new Array(M),Y=new Array(M),rt=0;rt<M;++rt){var nt=E[rt],Et=O[rt],Ct=Et.length,Gt=V(e.call(nt,nt&&nt.__data__,rt,E)),or=Gt.length,hr=G[rt]=new Array(or),mt=$[rt]=new Array(or),wt=Y[rt]=new Array(Ct);h(nt,Et,hr,mt,wt,Gt,f);for(var Wt=0,Bt=0,qt,tr;Wt<or;++Wt)if(qt=hr[Wt]){for(Wt>=Bt&&(Bt=Wt+1);!(tr=mt[Bt])&&++Bt<or;);qt._next=tr||null}}return $=new Mt($,E),$._enter=G,$._exit=Y,$}function V(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function U(){return new Mt(this._exit||this._groups.map(N),this._parents)}function B(e,f,h){var E=this.enter(),O=this,M=this.exit();return typeof e=="function"?(E=e(E),E&&(E=E.selection())):E=E.append(e+""),f!=null&&(O=f(O),O&&(O=O.selection())),h==null?M.remove():h(M),E&&O?E.merge(O).order():O}function j(e){for(var f=e.selection?e.selection():e,h=this._groups,E=f._groups,O=h.length,M=E.length,$=Math.min(O,M),G=new Array(O),Y=0;Y<$;++Y)for(var rt=h[Y],nt=E[Y],Et=rt.length,Ct=G[Y]=new Array(Et),Gt,or=0;or<Et;++or)(Gt=rt[or]||nt[or])&&(Ct[or]=Gt);for(;Y<O;++Y)G[Y]=h[Y];return new Mt(G,this._parents)}function z(){for(var e=this._groups,f=-1,h=e.length;++f<h;)for(var E=e[f],O=E.length-1,M=E[O],$;--O>=0;)($=E[O])&&(M&&$.compareDocumentPosition(M)^4&&M.parentNode.insertBefore($,M),M=$);return this}function k(e){e||(e=J);function f(Et,Ct){return Et&&Ct?e(Et.__data__,Ct.__data__):!Et-!Ct}for(var h=this._groups,E=h.length,O=new Array(E),M=0;M<E;++M){for(var $=h[M],G=$.length,Y=O[M]=new Array(G),rt,nt=0;nt<G;++nt)(rt=$[nt])&&(Y[nt]=rt);Y.sort(f)}return new Mt(O,this._parents).order()}function J(e,f){return e<f?-1:e>f?1:e>=f?0:NaN}function et(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function _(){return Array.from(this)}function dt(){for(var e=this._groups,f=0,h=e.length;f<h;++f)for(var E=e[f],O=0,M=E.length;O<M;++O){var $=E[O];if($)return $}return null}function lt(){let e=0;for(const f of this)++e;return e}function pt(){return!this.node()}function St(e){for(var f=this._groups,h=0,E=f.length;h<E;++h)for(var O=f[h],M=0,$=O.length,G;M<$;++M)(G=O[M])&&e.call(G,G.__data__,M,O);return this}var Ot="http://www.w3.org/1999/xhtml",Ht={svg:"http://www.w3.org/2000/svg",xhtml:Ot,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function $t(e){var f=e+="",h=f.indexOf(":");return h>=0&&(f=e.slice(0,h))!=="xmlns"&&(e=e.slice(h+1)),Ht.hasOwnProperty(f)?{space:Ht[f],local:e}:e}function bt(e){return function(){this.removeAttribute(e)}}function vt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function gt(e,f){return function(){this.setAttribute(e,f)}}function Pt(e,f){return function(){this.setAttributeNS(e.space,e.local,f)}}function Dt(e,f){return function(){var h=f.apply(this,arguments);h==null?this.removeAttribute(e):this.setAttribute(e,h)}}function Nt(e,f){return function(){var h=f.apply(this,arguments);h==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,h)}}function Ut(e,f){var h=$t(e);if(arguments.length<2){var E=this.node();return h.local?E.getAttributeNS(h.space,h.local):E.getAttribute(h)}return this.each((f==null?h.local?vt:bt:typeof f=="function"?h.local?Nt:Dt:h.local?Pt:gt)(h,f))}function Zt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function kt(e){return function(){this.style.removeProperty(e)}}function Jt(e,f,h){return function(){this.style.setProperty(e,f,h)}}function Lt(e,f,h){return function(){var E=f.apply(this,arguments);E==null?this.style.removeProperty(e):this.style.setProperty(e,E,h)}}function Qt(e,f,h){return arguments.length>1?this.each((f==null?kt:typeof f=="function"?Lt:Jt)(e,f,h==null?"":h)):Vt(this.node(),e)}function Vt(e,f){return e.style.getPropertyValue(f)||Zt(e).getComputedStyle(e,null).getPropertyValue(f)}function jt(e){return function(){delete this[e]}}function st(e,f){return function(){this[e]=f}}function ht(e,f){return function(){var h=f.apply(this,arguments);h==null?delete this[e]:this[e]=h}}function tt(e,f){return arguments.length>1?this.each((f==null?jt:typeof f=="function"?ht:st)(e,f)):this.node()[e]}function It(e){return e.trim().split(/^|\s+/)}function Tt(e){return e.classList||new xt(e)}function xt(e){this._node=e,this._names=It(e.getAttribute("class")||"")}xt.prototype={add:function(e){var f=this._names.indexOf(e);f<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var f=this._names.indexOf(e);f>=0&&(this._names.splice(f,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function yt(e,f){for(var h=Tt(e),E=-1,O=f.length;++E<O;)h.add(f[E])}function _t(e,f){for(var h=Tt(e),E=-1,O=f.length;++E<O;)h.remove(f[E])}function nr(e){return function(){yt(this,e)}}function Q(e){return function(){_t(this,e)}}function ot(e,f){return function(){(f.apply(this,arguments)?yt:_t)(this,e)}}function ut(e,f){var h=It(e+"");if(arguments.length<2){for(var E=Tt(this.node()),O=-1,M=h.length;++O<M;)if(!E.contains(h[O]))return!1;return!0}return this.each((typeof f=="function"?ot:f?nr:Q)(h,f))}function W(){this.textContent=""}function Z(e){return function(){this.textContent=e}}function K(e){return function(){var f=e.apply(this,arguments);this.textContent=f==null?"":f}}function ct(e){return arguments.length?this.each(e==null?W:(typeof e=="function"?K:Z)(e)):this.node().textContent}function Rt(){this.innerHTML=""}function Ft(e){return function(){this.innerHTML=e}}function Kt(e){return function(){var f=e.apply(this,arguments);this.innerHTML=f==null?"":f}}function Yt(e){return arguments.length?this.each(e==null?Rt:(typeof e=="function"?Kt:Ft)(e)):this.node().innerHTML}function zt(){this.nextSibling&&this.parentNode.appendChild(this)}function ar(){return this.each(zt)}function Yr(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function an(){return this.each(Yr)}function on(e){return function(){var f=this.ownerDocument,h=this.namespaceURI;return h===Ot&&f.documentElement.namespaceURI===Ot?f.createElement(e):f.createElementNS(h,e)}}function dn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function sn(e){var f=$t(e);return(f.local?dn:on)(f)}function hn(e){var f=typeof e=="function"?e:sn(e);return this.select(function(){return this.appendChild(f.apply(this,arguments))})}function gn(){return null}function Dn(e,f){var h=typeof e=="function"?e:sn(e),E=f==null?gn:typeof f=="function"?f:n(f);return this.select(function(){return this.insertBefore(h.apply(this,arguments),E.apply(this,arguments)||null)})}function yn(){var e=this.parentNode;e&&e.removeChild(this)}function Xr(){return this.each(yn)}function Mr(){var e=this.cloneNode(!1),f=this.parentNode;return f?f.insertBefore(e,this.nextSibling):e}function Fn(){var e=this.cloneNode(!0),f=this.parentNode;return f?f.insertBefore(e,this.nextSibling):e}function wr(e){return this.select(e?Fn:Mr)}function Dr(e){return arguments.length?this.property("__data__",e):this.node().__data__}function pn(e){return function(f){e.call(this,f,this.__data__)}}function Jr(e){return e.trim().split(/^|\s+/).map(function(f){var h="",E=f.indexOf(".");return E>=0&&(h=f.slice(E+1),f=f.slice(0,E)),{type:f,name:h}})}function dr(e){return function(){var f=this.__on;if(f){for(var h=0,E=-1,O=f.length,M;h<O;++h)M=f[h],(!e.type||M.type===e.type)&&M.name===e.name?this.removeEventListener(M.type,M.listener,M.options):f[++E]=M;++E?f.length=E:delete this.__on}}}function Rr(e,f,h){return function(){var E=this.__on,O,M=pn(f);if(E){for(var $=0,G=E.length;$<G;++$)if((O=E[$]).type===e.type&&O.name===e.name){this.removeEventListener(O.type,O.listener,O.options),this.addEventListener(O.type,O.listener=M,O.options=h),O.value=f;return}}this.addEventListener(e.type,M,h),O={type:e.type,name:e.name,value:f,listener:M,options:h},E?E.push(O):this.__on=[O]}}function Ln(e,f,h){var E=Jr(e+""),O,M=E.length,$;if(arguments.length<2){var G=this.node().__on;if(G){for(var Y=0,rt=G.length,nt;Y<rt;++Y)for(O=0,nt=G[Y];O<M;++O)if(($=E[O]).type===nt.type&&$.name===nt.name)return nt.value}return}for(G=f?Rr:dr,O=0;O<M;++O)this.each(G(E[O],f,h));return this}function mn(e,f,h){var E=Zt(e),O=E.CustomEvent;typeof O=="function"?O=new O(f,h):(O=E.document.createEvent("Event"),h?(O.initEvent(f,h.bubbles,h.cancelable),O.detail=h.detail):O.initEvent(f,!1,!1)),e.dispatchEvent(O)}function X(e,f){return function(){return mn(this,e,f)}}function ft(e,f){return function(){return mn(this,e,f.apply(this,arguments))}}function q(e,f){return this.each((typeof f=="function"?ft:X)(e,f))}function*H(){for(var e=this._groups,f=0,h=e.length;f<h;++f)for(var E=e[f],O=0,M=E.length,$;O<M;++O)($=E[O])&&(yield $)}var at=[null];function Mt(e,f){this._groups=e,this._parents=f}function At(){return new Mt([[document.documentElement]],at)}function er(){return this}Mt.prototype=At.prototype={constructor:Mt,select:a,selectAll:v,selectChild:S,selectChildren:A,filter:R,data:w,enter:T,exit:U,join:B,merge:j,selection:er,order:z,sort:k,call:et,nodes:_,node:dt,size:lt,empty:pt,each:St,attr:Ut,style:Qt,property:tt,classed:ut,text:ct,html:Yt,raise:ar,lower:an,append:hn,insert:Dn,remove:Xr,clone:wr,datum:Dr,on:Ln,dispatch:q,[Symbol.iterator]:H};var rr=At,ur={value:()=>{}};function Tr(){for(var e=0,f=arguments.length,h={},E;e<f;++e){if(!(E=arguments[e]+"")||E in h||/[\s.]/.test(E))throw new Error("illegal type: "+E);h[E]=[]}return new it(h)}function it(e){this._=e}function sr(e,f){return e.trim().split(/^|\s+/).map(function(h){var E="",O=h.indexOf(".");if(O>=0&&(E=h.slice(O+1),h=h.slice(0,O)),h&&!f.hasOwnProperty(h))throw new Error("unknown type: "+h);return{type:h,name:E}})}it.prototype=Tr.prototype={constructor:it,on:function(e,f){var h=this._,E=sr(e+"",h),O,M=-1,$=E.length;if(arguments.length<2){for(;++M<$;)if((O=(e=E[M]).type)&&(O=Fr(h[O],e.name)))return O;return}if(f!=null&&typeof f!="function")throw new Error("invalid callback: "+f);for(;++M<$;)if(O=(e=E[M]).type)h[O]=un(h[O],e.name,f);else if(f==null)for(O in h)h[O]=un(h[O],e.name,null);return this},copy:function(){var e={},f=this._;for(var h in f)e[h]=f[h].slice();return new it(e)},call:function(e,f){if((O=arguments.length-2)>0)for(var h=new Array(O),E=0,O,M;E<O;++E)h[E]=arguments[E+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(M=this._[e],E=0,O=M.length;E<O;++E)M[E].value.apply(f,h)},apply:function(e,f,h){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var E=this._[e],O=0,M=E.length;O<M;++O)E[O].value.apply(f,h)}};function Fr(e,f){for(var h=0,E=e.length,O;h<E;++h)if((O=e[h]).name===f)return O.value}function un(e,f,h){for(var E=0,O=e.length;E<O;++E)if(e[E].name===f){e[E]=ur,e=e.slice(0,E).concat(e.slice(E+1));break}return h!=null&&e.push({name:f,value:h}),e}var $n=Tr,Gr=0,Vr=0,xn=0,Pe=1e3,bn,Sn,Un=0,tn=0,Bn=0,En=typeof performance=="object"&&performance.now?performance:Date,Ce=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function oe(){return tn||(Ce(Sa),tn=En.now()+Bn)}function Sa(){tn=0}function jn(){this._call=this._time=this._next=null}jn.prototype=Ne.prototype={constructor:jn,restart:function(e,f,h){if(typeof e!="function")throw new TypeError("callback is not a function");h=(h==null?oe():+h)+(f==null?0:+f),!this._next&&Sn!==this&&(Sn?Sn._next=this:bn=this,Sn=this),this._call=e,this._time=h,se()},stop:function(){this._call&&(this._call=null,this._time=1/0,se())}};function Ne(e,f,h){var E=new jn;return E.restart(e,f,h),E}function Ea(){oe(),++Gr;for(var e=bn,f;e;)(f=tn-e._time)>=0&&e._call.call(void 0,f),e=e._next;--Gr}function Me(){tn=(Un=En.now())+Bn,Gr=Vr=0;try{Ea()}finally{Gr=0,Ia(),tn=0}}function Oa(){var e=En.now(),f=e-Un;f>Pe&&(Bn-=f,Un=e)}function Ia(){for(var e,f=bn,h,E=1/0;f;)f._call?(E>f._time&&(E=f._time),e=f,f=f._next):(h=f._next,f._next=null,f=e?e._next=h:bn=h);Sn=e,se(E)}function se(e){if(!Gr){Vr&&(Vr=clearTimeout(Vr));var f=e-tn;f>24?(e<1/0&&(Vr=setTimeout(Me,e-En.now()-Bn)),xn&&(xn=clearInterval(xn))):(xn||(Un=En.now(),xn=setInterval(Oa,Pe)),Gr=1,Ce(Me))}}function De(e,f,h){var E=new jn;return f=f==null?0:+f,E.restart(O=>{E.stop(),e(O+f)},f,h),E}var Ta=$n("start","end","cancel","interrupt"),Aa=[],Fe=0,Le=1,ie=2,wn=3,$e=4,ue=5,Gn=6;function Vn(e,f,h,E,O,M){var $=e.__transition;if(!$)e.__transition={};else if(h in $)return;Ra(e,h,{name:f,index:E,group:O,on:Ta,tween:Aa,time:M.time,delay:M.delay,duration:M.duration,ease:M.ease,timer:null,state:Fe})}function fe(e,f){var h=Lr(e,f);if(h.state>Fe)throw new Error("too late; already scheduled");return h}function Ur(e,f){var h=Lr(e,f);if(h.state>wn)throw new Error("too late; already running");return h}function Lr(e,f){var h=e.__transition;if(!h||!(h=h[f]))throw new Error("transition not found");return h}function Ra(e,f,h){var E=e.__transition,O;E[f]=h,h.timer=Ne(M,0,h.time);function M(rt){h.state=Le,h.timer.restart($,h.delay,h.time),h.delay<=rt&&$(rt-h.delay)}function $(rt){var nt,Et,Ct,Gt;if(h.state!==Le)return Y();for(nt in E)if(Gt=E[nt],Gt.name===h.name){if(Gt.state===wn)return De($);Gt.state===$e?(Gt.state=Gn,Gt.timer.stop(),Gt.on.call("interrupt",e,e.__data__,Gt.index,Gt.group),delete E[nt]):+nt<f&&(Gt.state=Gn,Gt.timer.stop(),Gt.on.call("cancel",e,e.__data__,Gt.index,Gt.group),delete E[nt])}if(De(function(){h.state===wn&&(h.state=$e,h.timer.restart(G,h.delay,h.time),G(rt))}),h.state=ie,h.on.call("start",e,e.__data__,h.index,h.group),h.state===ie){for(h.state=wn,O=new Array(Ct=h.tween.length),nt=0,Et=-1;nt<Ct;++nt)(Gt=h.tween[nt].value.call(e,e.__data__,h.index,h.group))&&(O[++Et]=Gt);O.length=Et+1}}function G(rt){for(var nt=rt<h.duration?h.ease.call(null,rt/h.duration):(h.timer.restart(Y),h.state=ue,1),Et=-1,Ct=O.length;++Et<Ct;)O[Et].call(e,nt);h.state===ue&&(h.on.call("end",e,e.__data__,h.index,h.group),Y())}function Y(){h.state=Gn,h.timer.stop(),delete E[f];for(var rt in E)return;delete e.__transition}}function Pa(e,f){var h=e.__transition,E,O,M=!0,$;if(h){f=f==null?null:f+"";for($ in h){if((E=h[$]).name!==f){M=!1;continue}O=E.state>ie&&E.state<ue,E.state=Gn,E.timer.stop(),E.on.call(O?"interrupt":"cancel",e,e.__data__,E.index,E.group),delete h[$]}M&&delete e.__transition}}function Ca(e){return this.each(function(){Pa(this,e)})}function Qr(e,f){return e=+e,f=+f,function(h){return e*(1-h)+f*h}}var be=180/Math.PI,le={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ue(e,f,h,E,O,M){var $,G,Y;return($=Math.sqrt(e*e+f*f))&&(e/=$,f/=$),(Y=e*h+f*E)&&(h-=e*Y,E-=f*Y),(G=Math.sqrt(h*h+E*E))&&(h/=G,E/=G,Y/=G),e*E<f*h&&(e=-e,f=-f,Y=-Y,$=-$),{translateX:O,translateY:M,rotate:Math.atan2(f,e)*be,skewX:Math.atan(Y)*be,scaleX:$,scaleY:G}}var Hn;function Na(e){const f=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return f.isIdentity?le:Ue(f.a,f.b,f.c,f.d,f.e,f.f)}function Ma(e){return e==null||(Hn||(Hn=document.createElementNS("http://www.w3.org/2000/svg","g")),Hn.setAttribute("transform",e),!(e=Hn.transform.baseVal.consolidate()))?le:(e=e.matrix,Ue(e.a,e.b,e.c,e.d,e.e,e.f))}function Be(e,f,h,E){function O(rt){return rt.length?rt.pop()+" ":""}function M(rt,nt,Et,Ct,Gt,or){if(rt!==Et||nt!==Ct){var hr=Gt.push("translate(",null,f,null,h);or.push({i:hr-4,x:Qr(rt,Et)},{i:hr-2,x:Qr(nt,Ct)})}else(Et||Ct)&&Gt.push("translate("+Et+f+Ct+h)}function $(rt,nt,Et,Ct){rt!==nt?(rt-nt>180?nt+=360:nt-rt>180&&(rt+=360),Ct.push({i:Et.push(O(Et)+"rotate(",null,E)-2,x:Qr(rt,nt)})):nt&&Et.push(O(Et)+"rotate("+nt+E)}function G(rt,nt,Et,Ct){rt!==nt?Ct.push({i:Et.push(O(Et)+"skewX(",null,E)-2,x:Qr(rt,nt)}):nt&&Et.push(O(Et)+"skewX("+nt+E)}function Y(rt,nt,Et,Ct,Gt,or){if(rt!==Et||nt!==Ct){var hr=Gt.push(O(Gt)+"scale(",null,",",null,")");or.push({i:hr-4,x:Qr(rt,Et)},{i:hr-2,x:Qr(nt,Ct)})}else(Et!==1||Ct!==1)&&Gt.push(O(Gt)+"scale("+Et+","+Ct+")")}return function(rt,nt){var Et=[],Ct=[];return rt=e(rt),nt=e(nt),M(rt.translateX,rt.translateY,nt.translateX,nt.translateY,Et,Ct),$(rt.rotate,nt.rotate,Et,Ct),G(rt.skewX,nt.skewX,Et,Ct),Y(rt.scaleX,rt.scaleY,nt.scaleX,nt.scaleY,Et,Ct),rt=nt=null,function(Gt){for(var or=-1,hr=Ct.length,mt;++or<hr;)Et[(mt=Ct[or]).i]=mt.x(Gt);return Et.join("")}}}var Da=Be(Na,"px, ","px)","deg)"),Fa=Be(Ma,", ",")",")");function La(e,f){var h,E;return function(){var O=Ur(this,e),M=O.tween;if(M!==h){E=h=M;for(var $=0,G=E.length;$<G;++$)if(E[$].name===f){E=E.slice(),E.splice($,1);break}}O.tween=E}}function $a(e,f,h){var E,O;if(typeof h!="function")throw new Error;return function(){var M=Ur(this,e),$=M.tween;if($!==E){O=(E=$).slice();for(var G={name:f,value:h},Y=0,rt=O.length;Y<rt;++Y)if(O[Y].name===f){O[Y]=G;break}Y===rt&&O.push(G)}M.tween=O}}function ba(e,f){var h=this._id;if(e+="",arguments.length<2){for(var E=Lr(this.node(),h).tween,O=0,M=E.length,$;O<M;++O)if(($=E[O]).name===e)return $.value;return null}return this.each((f==null?La:$a)(h,e,f))}function ve(e,f,h){var E=e._id;return e.each(function(){var O=Ur(this,E);(O.value||(O.value={}))[f]=h.apply(this,arguments)}),function(O){return Lr(O,E).value[f]}}function ce(e,f,h){e.prototype=f.prototype=h,h.constructor=e}function je(e,f){var h=Object.create(e.prototype);for(var E in f)h[E]=f[E];return h}function On(){}var In=.7,Wn=1/In,fn="\\s*([+-]?\\d+)\\s*",Tn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Br="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ua=/^#([0-9a-f]{3,8})$/,Ba=new RegExp(`^rgb\\(${fn},${fn},${fn}\\)$`),ja=new RegExp(`^rgb\\(${Br},${Br},${Br}\\)$`),wa=new RegExp(`^rgba\\(${fn},${fn},${fn},${Tn}\\)$`),Ga=new RegExp(`^rgba\\(${Br},${Br},${Br},${Tn}\\)$`),Va=new RegExp(`^hsl\\(${Tn},${Br},${Br}\\)$`),Ha=new RegExp(`^hsla\\(${Tn},${Br},${Br},${Tn}\\)$`),we={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};ce(On,An,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Ge,formatHex:Ge,formatHex8:Wa,formatHsl:za,formatRgb:Ve,toString:Ve});function Ge(){return this.rgb().formatHex()}function Wa(){return this.rgb().formatHex8()}function za(){return Ye(this).formatHsl()}function Ve(){return this.rgb().formatRgb()}function An(e){var f,h;return e=(e+"").trim().toLowerCase(),(f=Ua.exec(e))?(h=f[1].length,f=parseInt(f[1],16),h===6?He(f):h===3?new Pr(f>>8&15|f>>4&240,f>>4&15|f&240,(f&15)<<4|f&15,1):h===8?zn(f>>24&255,f>>16&255,f>>8&255,(f&255)/255):h===4?zn(f>>12&15|f>>8&240,f>>8&15|f>>4&240,f>>4&15|f&240,((f&15)<<4|f&15)/255):null):(f=Ba.exec(e))?new Pr(f[1],f[2],f[3],1):(f=ja.exec(e))?new Pr(f[1]*255/100,f[2]*255/100,f[3]*255/100,1):(f=wa.exec(e))?zn(f[1],f[2],f[3],f[4]):(f=Ga.exec(e))?zn(f[1]*255/100,f[2]*255/100,f[3]*255/100,f[4]):(f=Va.exec(e))?Ke(f[1],f[2]/100,f[3]/100,1):(f=Ha.exec(e))?Ke(f[1],f[2]/100,f[3]/100,f[4]):we.hasOwnProperty(e)?He(we[e]):e==="transparent"?new Pr(NaN,NaN,NaN,0):null}function He(e){return new Pr(e>>16&255,e>>8&255,e&255,1)}function zn(e,f,h,E){return E<=0&&(e=f=h=NaN),new Pr(e,f,h,E)}function Ka(e){return e instanceof On||(e=An(e)),e?(e=e.rgb(),new Pr(e.r,e.g,e.b,e.opacity)):new Pr}function Kn(e,f,h,E){return arguments.length===1?Ka(e):new Pr(e,f,h,E==null?1:E)}function Pr(e,f,h,E){this.r=+e,this.g=+f,this.b=+h,this.opacity=+E}ce(Pr,Kn,je(On,{brighter(e){return e=e==null?Wn:Math.pow(Wn,e),new Pr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?In:Math.pow(In,e),new Pr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Pr(rn(this.r),rn(this.g),rn(this.b),Yn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:We,formatHex:We,formatHex8:Ya,formatRgb:ze,toString:ze}));function We(){return`#${nn(this.r)}${nn(this.g)}${nn(this.b)}`}function Ya(){return`#${nn(this.r)}${nn(this.g)}${nn(this.b)}${nn((isNaN(this.opacity)?1:this.opacity)*255)}`}function ze(){const e=Yn(this.opacity);return`${e===1?"rgb(":"rgba("}${rn(this.r)}, ${rn(this.g)}, ${rn(this.b)}${e===1?")":`, ${e})`}`}function Yn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function rn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function nn(e){return e=rn(e),(e<16?"0":"")+e.toString(16)}function Ke(e,f,h,E){return E<=0?e=f=h=NaN:h<=0||h>=1?e=f=NaN:f<=0&&(e=NaN),new $r(e,f,h,E)}function Ye(e){if(e instanceof $r)return new $r(e.h,e.s,e.l,e.opacity);if(e instanceof On||(e=An(e)),!e)return new $r;if(e instanceof $r)return e;e=e.rgb();var f=e.r/255,h=e.g/255,E=e.b/255,O=Math.min(f,h,E),M=Math.max(f,h,E),$=NaN,G=M-O,Y=(M+O)/2;return G?(f===M?$=(h-E)/G+(h<E)*6:h===M?$=(E-f)/G+2:$=(f-h)/G+4,G/=Y<.5?M+O:2-M-O,$*=60):G=Y>0&&Y<1?0:$,new $r($,G,Y,e.opacity)}function Xa(e,f,h,E){return arguments.length===1?Ye(e):new $r(e,f,h,E==null?1:E)}function $r(e,f,h,E){this.h=+e,this.s=+f,this.l=+h,this.opacity=+E}ce($r,Xa,je(On,{brighter(e){return e=e==null?Wn:Math.pow(Wn,e),new $r(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?In:Math.pow(In,e),new $r(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,f=isNaN(e)||isNaN(this.s)?0:this.s,h=this.l,E=h+(h<.5?h:1-h)*f,O=2*h-E;return new Pr(de(e>=240?e-240:e+120,O,E),de(e,O,E),de(e<120?e+240:e-120,O,E),this.opacity)},clamp(){return new $r(Xe(this.h),Xn(this.s),Xn(this.l),Yn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Yn(this.opacity);return`${e===1?"hsl(":"hsla("}${Xe(this.h)}, ${Xn(this.s)*100}%, ${Xn(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Xe(e){return e=(e||0)%360,e<0?e+360:e}function Xn(e){return Math.max(0,Math.min(1,e||0))}function de(e,f,h){return(e<60?f+(h-f)*e/60:e<180?h:e<240?f+(h-f)*(240-e)/60:f)*255}function Je(e,f,h,E,O){var M=e*e,$=M*e;return((1-3*e+3*M-$)*f+(4-6*M+3*$)*h+(1+3*e+3*M-3*$)*E+$*O)/6}function Ja(e){var f=e.length-1;return function(h){var E=h<=0?h=0:h>=1?(h=1,f-1):Math.floor(h*f),O=e[E],M=e[E+1],$=E>0?e[E-1]:2*O-M,G=E<f-1?e[E+2]:2*M-O;return Je((h-E/f)*f,$,O,M,G)}}function Qa(e){var f=e.length;return function(h){var E=Math.floor(((h%=1)<0?++h:h)*f),O=e[(E+f-1)%f],M=e[E%f],$=e[(E+1)%f],G=e[(E+2)%f];return Je((h-E/f)*f,O,M,$,G)}}var Qe=e=>()=>e;function Ze(e,f){return function(h){return e+h*f}}function Za(e,f,h){return e=Math.pow(e,h),f=Math.pow(f,h)-e,h=1/h,function(E){return Math.pow(e+E*f,h)}}function Gs(e,f){var h=f-e;return h?Ze(e,h>180||h<-180?h-360*Math.round(h/360):h):constant(isNaN(e)?f:e)}function ka(e){return(e=+e)==1?ke:function(f,h){return h-f?Za(f,h,e):Qe(isNaN(f)?h:f)}}function ke(e,f){var h=f-e;return h?Ze(e,h):Qe(isNaN(e)?f:e)}var qe=function e(f){var h=ka(f);function E(O,M){var $=h((O=Kn(O)).r,(M=Kn(M)).r),G=h(O.g,M.g),Y=h(O.b,M.b),rt=ke(O.opacity,M.opacity);return function(nt){return O.r=$(nt),O.g=G(nt),O.b=Y(nt),O.opacity=rt(nt),O+""}}return E.gamma=e,E}(1);function _e(e){return function(f){var h=f.length,E=new Array(h),O=new Array(h),M=new Array(h),$,G;for($=0;$<h;++$)G=Kn(f[$]),E[$]=G.r||0,O[$]=G.g||0,M[$]=G.b||0;return E=e(E),O=e(O),M=e(M),G.opacity=1,function(Y){return G.r=E(Y),G.g=O(Y),G.b=M(Y),G+""}}}var Vs=_e(Ja),Hs=_e(Qa),he=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ge=new RegExp(he.source,"g");function qa(e){return function(){return e}}function _a(e){return function(f){return e(f)+""}}function to(e,f){var h=he.lastIndex=ge.lastIndex=0,E,O,M,$=-1,G=[],Y=[];for(e=e+"",f=f+"";(E=he.exec(e))&&(O=ge.exec(f));)(M=O.index)>h&&(M=f.slice(h,M),G[$]?G[$]+=M:G[++$]=M),(E=E[0])===(O=O[0])?G[$]?G[$]+=O:G[++$]=O:(G[++$]=null,Y.push({i:$,x:Qr(E,O)})),h=ge.lastIndex;return h<f.length&&(M=f.slice(h),G[$]?G[$]+=M:G[++$]=M),G.length<2?Y[0]?_a(Y[0].x):qa(f):(f=Y.length,function(rt){for(var nt=0,Et;nt<f;++nt)G[(Et=Y[nt]).i]=Et.x(rt);return G.join("")})}function ta(e,f){var h;return(typeof f=="number"?Qr:f instanceof An?qe:(h=An(f))?(f=h,qe):to)(e,f)}function ro(e){return function(){this.removeAttribute(e)}}function no(e){return function(){this.removeAttributeNS(e.space,e.local)}}function eo(e,f,h){var E,O=h+"",M;return function(){var $=this.getAttribute(e);return $===O?null:$===E?M:M=f(E=$,h)}}function ao(e,f,h){var E,O=h+"",M;return function(){var $=this.getAttributeNS(e.space,e.local);return $===O?null:$===E?M:M=f(E=$,h)}}function oo(e,f,h){var E,O,M;return function(){var $,G=h(this),Y;return G==null?void this.removeAttribute(e):($=this.getAttribute(e),Y=G+"",$===Y?null:$===E&&Y===O?M:(O=Y,M=f(E=$,G)))}}function so(e,f,h){var E,O,M;return function(){var $,G=h(this),Y;return G==null?void this.removeAttributeNS(e.space,e.local):($=this.getAttributeNS(e.space,e.local),Y=G+"",$===Y?null:$===E&&Y===O?M:(O=Y,M=f(E=$,G)))}}function io(e,f){var h=$t(e),E=h==="transform"?Fa:ta;return this.attrTween(e,typeof f=="function"?(h.local?so:oo)(h,E,ve(this,"attr."+e,f)):f==null?(h.local?no:ro)(h):(h.local?ao:eo)(h,E,f))}function uo(e,f){return function(h){this.setAttribute(e,f.call(this,h))}}function fo(e,f){return function(h){this.setAttributeNS(e.space,e.local,f.call(this,h))}}function lo(e,f){var h,E;function O(){var M=f.apply(this,arguments);return M!==E&&(h=(E=M)&&fo(e,M)),h}return O._value=f,O}function vo(e,f){var h,E;function O(){var M=f.apply(this,arguments);return M!==E&&(h=(E=M)&&uo(e,M)),h}return O._value=f,O}function co(e,f){var h="attr."+e;if(arguments.length<2)return(h=this.tween(h))&&h._value;if(f==null)return this.tween(h,null);if(typeof f!="function")throw new Error;var E=$t(e);return this.tween(h,(E.local?lo:vo)(E,f))}function ho(e,f){return function(){fe(this,e).delay=+f.apply(this,arguments)}}function go(e,f){return f=+f,function(){fe(this,e).delay=f}}function yo(e){var f=this._id;return arguments.length?this.each((typeof e=="function"?ho:go)(f,e)):Lr(this.node(),f).delay}function po(e,f){return function(){Ur(this,e).duration=+f.apply(this,arguments)}}function mo(e,f){return f=+f,function(){Ur(this,e).duration=f}}function xo(e){var f=this._id;return arguments.length?this.each((typeof e=="function"?po:mo)(f,e)):Lr(this.node(),f).duration}function So(e,f){if(typeof f!="function")throw new Error;return function(){Ur(this,e).ease=f}}function Eo(e){var f=this._id;return arguments.length?this.each(So(f,e)):Lr(this.node(),f).ease}function Oo(e,f){return function(){var h=f.apply(this,arguments);if(typeof h!="function")throw new Error;Ur(this,e).ease=h}}function Io(e){if(typeof e!="function")throw new Error;return this.each(Oo(this._id,e))}function To(e){typeof e!="function"&&(e=c(e));for(var f=this._groups,h=f.length,E=new Array(h),O=0;O<h;++O)for(var M=f[O],$=M.length,G=E[O]=[],Y,rt=0;rt<$;++rt)(Y=M[rt])&&e.call(Y,Y.__data__,rt,M)&&G.push(Y);return new Hr(E,this._parents,this._name,this._id)}function Ao(e){if(e._id!==this._id)throw new Error;for(var f=this._groups,h=e._groups,E=f.length,O=h.length,M=Math.min(E,O),$=new Array(E),G=0;G<M;++G)for(var Y=f[G],rt=h[G],nt=Y.length,Et=$[G]=new Array(nt),Ct,Gt=0;Gt<nt;++Gt)(Ct=Y[Gt]||rt[Gt])&&(Et[Gt]=Ct);for(;G<E;++G)$[G]=f[G];return new Hr($,this._parents,this._name,this._id)}function Ro(e){return(e+"").trim().split(/^|\s+/).every(function(f){var h=f.indexOf(".");return h>=0&&(f=f.slice(0,h)),!f||f==="start"})}function Po(e,f,h){var E,O,M=Ro(f)?fe:Ur;return function(){var $=M(this,e),G=$.on;G!==E&&(O=(E=G).copy()).on(f,h),$.on=O}}function Co(e,f){var h=this._id;return arguments.length<2?Lr(this.node(),h).on.on(e):this.each(Po(h,e,f))}function No(e){return function(){var f=this.parentNode;for(var h in this.__transition)if(+h!==e)return;f&&f.removeChild(this)}}function Mo(){return this.on("end.remove",No(this._id))}function Do(e){var f=this._name,h=this._id;typeof e!="function"&&(e=n(e));for(var E=this._groups,O=E.length,M=new Array(O),$=0;$<O;++$)for(var G=E[$],Y=G.length,rt=M[$]=new Array(Y),nt,Et,Ct=0;Ct<Y;++Ct)(nt=G[Ct])&&(Et=e.call(nt,nt.__data__,Ct,G))&&("__data__"in nt&&(Et.__data__=nt.__data__),rt[Ct]=Et,Vn(rt[Ct],f,h,Ct,rt,Lr(nt,h)));return new Hr(M,this._parents,f,h)}function Fo(e){var f=this._name,h=this._id;typeof e!="function"&&(e=u(e));for(var E=this._groups,O=E.length,M=[],$=[],G=0;G<O;++G)for(var Y=E[G],rt=Y.length,nt,Et=0;Et<rt;++Et)if(nt=Y[Et]){for(var Ct=e.call(nt,nt.__data__,Et,Y),Gt,or=Lr(nt,h),hr=0,mt=Ct.length;hr<mt;++hr)(Gt=Ct[hr])&&Vn(Gt,f,h,hr,Ct,or);M.push(Ct),$.push(nt)}return new Hr(M,$,f,h)}var Lo=rr.prototype.constructor;function $o(){return new Lo(this._groups,this._parents)}function bo(e,f){var h,E,O;return function(){var M=Vt(this,e),$=(this.style.removeProperty(e),Vt(this,e));return M===$?null:M===h&&$===E?O:O=f(h=M,E=$)}}function ra(e){return function(){this.style.removeProperty(e)}}function Uo(e,f,h){var E,O=h+"",M;return function(){var $=Vt(this,e);return $===O?null:$===E?M:M=f(E=$,h)}}function Bo(e,f,h){var E,O,M;return function(){var $=Vt(this,e),G=h(this),Y=G+"";return G==null&&(Y=G=(this.style.removeProperty(e),Vt(this,e))),$===Y?null:$===E&&Y===O?M:(O=Y,M=f(E=$,G))}}function jo(e,f){var h,E,O,M="style."+f,$="end."+M,G;return function(){var Y=Ur(this,e),rt=Y.on,nt=Y.value[M]==null?G||(G=ra(f)):void 0;(rt!==h||O!==nt)&&(E=(h=rt).copy()).on($,O=nt),Y.on=E}}function wo(e,f,h){var E=(e+="")=="transform"?Da:ta;return f==null?this.styleTween(e,bo(e,E)).on("end.style."+e,ra(e)):typeof f=="function"?this.styleTween(e,Bo(e,E,ve(this,"style."+e,f))).each(jo(this._id,e)):this.styleTween(e,Uo(e,E,f),h).on("end.style."+e,null)}function Go(e,f,h){return function(E){this.style.setProperty(e,f.call(this,E),h)}}function Vo(e,f,h){var E,O;function M(){var $=f.apply(this,arguments);return $!==O&&(E=(O=$)&&Go(e,$,h)),E}return M._value=f,M}function Ho(e,f,h){var E="style."+(e+="");if(arguments.length<2)return(E=this.tween(E))&&E._value;if(f==null)return this.tween(E,null);if(typeof f!="function")throw new Error;return this.tween(E,Vo(e,f,h==null?"":h))}function Wo(e){return function(){this.textContent=e}}function zo(e){return function(){var f=e(this);this.textContent=f==null?"":f}}function Ko(e){return this.tween("text",typeof e=="function"?zo(ve(this,"text",e)):Wo(e==null?"":e+""))}function Yo(e){return function(f){this.textContent=e.call(this,f)}}function Xo(e){var f,h;function E(){var O=e.apply(this,arguments);return O!==h&&(f=(h=O)&&Yo(O)),f}return E._value=e,E}function Jo(e){var f="text";if(arguments.length<1)return(f=this.tween(f))&&f._value;if(e==null)return this.tween(f,null);if(typeof e!="function")throw new Error;return this.tween(f,Xo(e))}function Qo(){for(var e=this._name,f=this._id,h=na(),E=this._groups,O=E.length,M=0;M<O;++M)for(var $=E[M],G=$.length,Y,rt=0;rt<G;++rt)if(Y=$[rt]){var nt=Lr(Y,f);Vn(Y,e,h,rt,$,{time:nt.time+nt.delay+nt.duration,delay:0,duration:nt.duration,ease:nt.ease})}return new Hr(E,this._parents,e,h)}function Zo(){var e,f,h=this,E=h._id,O=h.size();return new Promise(function(M,$){var G={value:$},Y={value:function(){--O===0&&M()}};h.each(function(){var rt=Ur(this,E),nt=rt.on;nt!==e&&(f=(e=nt).copy(),f._.cancel.push(G),f._.interrupt.push(G),f._.end.push(Y)),rt.on=f}),O===0&&M()})}var ko=0;function Hr(e,f,h,E){this._groups=e,this._parents=f,this._name=h,this._id=E}function qo(e){return rr().transition(e)}function na(){return++ko}var Wr=rr.prototype;Hr.prototype=qo.prototype={constructor:Hr,select:Do,selectAll:Fo,selectChild:Wr.selectChild,selectChildren:Wr.selectChildren,filter:To,merge:Ao,selection:$o,transition:Qo,call:Wr.call,nodes:Wr.nodes,node:Wr.node,size:Wr.size,empty:Wr.empty,each:Wr.each,on:Co,attr:io,attrTween:co,style:wo,styleTween:Ho,text:Ko,textTween:Jo,remove:Mo,tween:ba,delay:yo,duration:xo,ease:Eo,easeVarying:Io,end:Zo,[Symbol.iterator]:Wr[Symbol.iterator]};function Ws(e){return e*e*e}function zs(e){return--e*e*e+1}function _o(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var ts={time:null,delay:0,duration:250,ease:_o};function rs(e,f){for(var h;!(h=e.__transition)||!(h=h[f]);)if(!(e=e.parentNode))throw new Error(`transition ${f} not found`);return h}function ns(e){var f,h;e instanceof Hr?(f=e._id,e=e._name):(f=na(),(h=ts).time=oe(),e=e==null?null:e+"");for(var E=this._groups,O=E.length,M=0;M<O;++M)for(var $=E[M],G=$.length,Y,rt=0;rt<G;++rt)(Y=$[rt])&&Vn(Y,e,f,rt,$,h||rs(Y,f));return new Hr(E,this._parents,e,f)}rr.prototype.interrupt=Ca,rr.prototype.transition=ns;var ea={name:"drag"},ye={name:"space"},ln={name:"handle"},vn={name:"center"};const{abs:aa,max:Or,min:Ir}=Math;function oa(e){return[+e[0],+e[1]]}function pe(e){return[oa(e[0]),oa(e[1])]}var Jn={name:"x",handles:["w","e"].map(Rn),input:function(e,f){return e==null?null:[[+e[0],f[0][1]],[+e[1],f[1][1]]]},output:function(e){return e&&[e[0][0],e[1][0]]}},Qn={name:"y",handles:["n","s"].map(Rn),input:function(e,f){return e==null?null:[[f[0][0],+e[0]],[f[1][0],+e[1]]]},output:function(e){return e&&[e[0][1],e[1][1]]}},es={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Rn),input:function(e){return e==null?null:pe(e)},output:function(e){return e}},zr={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},sa={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},ia={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},as={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},os={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Rn(e){return{type:e}}function ss(e){return!e.ctrlKey&&!e.button}function is(){var e=this.ownerSVGElement||this;return e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]}function us(){return navigator.maxTouchPoints||"ontouchstart"in this}function me(e){for(;!e.__brush;)if(!(e=e.parentNode))return;return e.__brush}function fs(e){return e[0][0]===e[1][0]||e[0][1]===e[1][1]}function Ks(e){var f=e.__brush;return f?f.dim.output(f.selection):null}function Ys(){return xe(Jn)}function Xs(){return xe(Qn)}function Js(){return xe(es)}function xe(e){var f=is,h=ss,E=us,O=!0,M=dispatch("start","brush","end"),$=6,G;function Y(mt){var wt=mt.property("__brush",hr).selectAll(".overlay").data([Rn("overlay")]);wt.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",zr.overlay).merge(wt).each(function(){var Bt=me(this).extent;select(this).attr("x",Bt[0][0]).attr("y",Bt[0][1]).attr("width",Bt[1][0]-Bt[0][0]).attr("height",Bt[1][1]-Bt[0][1])}),mt.selectAll(".selection").data([Rn("selection")]).enter().append("rect").attr("class","selection").attr("cursor",zr.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var Wt=mt.selectAll(".handle").data(e.handles,function(Bt){return Bt.type});Wt.exit().remove(),Wt.enter().append("rect").attr("class",function(Bt){return"handle handle--"+Bt.type}).attr("cursor",function(Bt){return zr[Bt.type]}),mt.each(rt).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",Ct).filter(E).on("touchstart.brush",Ct).on("touchmove.brush",Gt).on("touchend.brush touchcancel.brush",or).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}Y.move=function(mt,wt,Wt){mt.tween?mt.on("start.brush",function(Bt){nt(this,arguments).beforestart().start(Bt)}).on("interrupt.brush end.brush",function(Bt){nt(this,arguments).end(Bt)}).tween("brush",function(){var Bt=this,qt=Bt.__brush,tr=nt(Bt,arguments),Ar=qt.selection,jr=e.input(typeof wt=="function"?wt.apply(this,arguments):wt,qt.extent),fr=interpolate(Ar,jr);function br(ir){qt.selection=ir===1&&jr===null?null:fr(ir),rt.call(Bt),tr.brush()}return Ar!==null&&jr!==null?br:br(1)}):mt.each(function(){var Bt=this,qt=arguments,tr=Bt.__brush,Ar=e.input(typeof wt=="function"?wt.apply(Bt,qt):wt,tr.extent),jr=nt(Bt,qt).beforestart();interrupt(Bt),tr.selection=Ar===null?null:Ar,rt.call(Bt),jr.start(Wt).brush(Wt).end(Wt)})},Y.clear=function(mt,wt){Y.move(mt,null,wt)};function rt(){var mt=select(this),wt=me(this).selection;wt?(mt.selectAll(".selection").style("display",null).attr("x",wt[0][0]).attr("y",wt[0][1]).attr("width",wt[1][0]-wt[0][0]).attr("height",wt[1][1]-wt[0][1]),mt.selectAll(".handle").style("display",null).attr("x",function(Wt){return Wt.type[Wt.type.length-1]==="e"?wt[1][0]-$/2:wt[0][0]-$/2}).attr("y",function(Wt){return Wt.type[0]==="s"?wt[1][1]-$/2:wt[0][1]-$/2}).attr("width",function(Wt){return Wt.type==="n"||Wt.type==="s"?wt[1][0]-wt[0][0]+$:$}).attr("height",function(Wt){return Wt.type==="e"||Wt.type==="w"?wt[1][1]-wt[0][1]+$:$})):mt.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function nt(mt,wt,Wt){var Bt=mt.__brush.emitter;return Bt&&(!Wt||!Bt.clean)?Bt:new Et(mt,wt,Wt)}function Et(mt,wt,Wt){this.that=mt,this.args=wt,this.state=mt.__brush,this.active=0,this.clean=Wt}Et.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(mt,wt){return this.starting?(this.starting=!1,this.emit("start",mt,wt)):this.emit("brush",mt),this},brush:function(mt,wt){return this.emit("brush",mt,wt),this},end:function(mt,wt){return--this.active===0&&(delete this.state.emitter,this.emit("end",mt,wt)),this},emit:function(mt,wt,Wt){var Bt=select(this.that).datum();M.call(mt,this.that,new BrushEvent(mt,{sourceEvent:wt,target:Y,selection:e.output(this.state.selection),mode:Wt,dispatch:M}),Bt)}};function Ct(mt){if(G&&!mt.touches||!h.apply(this,arguments))return;var wt=this,Wt=mt.target.__data__.type,Bt=(O&&mt.metaKey?Wt="overlay":Wt)==="selection"?ea:O&&mt.altKey?vn:ln,qt=e===Qn?null:as[Wt],tr=e===Jn?null:os[Wt],Ar=me(wt),jr=Ar.extent,fr=Ar.selection,br=jr[0][0],ir,gr,Zr=jr[0][1],yr,pr,kr=jr[1][0],mr,xr,qr=jr[1][1],Sr,Er,lr=0,vr=0,Ae,re=qt&&tr&&O&&mt.shiftKey,ne,ee,Cr=Array.from(mt.touches||[mt],Xt=>{const cr=Xt.identifier;return Xt=pointer(Xt,wt),Xt.point0=Xt.slice(),Xt.identifier=cr,Xt});interrupt(wt);var Cn=nt(wt,arguments,!0).beforestart();if(Wt==="overlay"){fr&&(Ae=!0);const Xt=[Cr[0],Cr[1]||Cr[0]];Ar.selection=fr=[[ir=e===Qn?br:Ir(Xt[0][0],Xt[1][0]),yr=e===Jn?Zr:Ir(Xt[0][1],Xt[1][1])],[mr=e===Qn?kr:Or(Xt[0][0],Xt[1][0]),Sr=e===Jn?qr:Or(Xt[0][1],Xt[1][1])]],Cr.length>1&&en(mt)}else ir=fr[0][0],yr=fr[0][1],mr=fr[1][0],Sr=fr[1][1];gr=ir,pr=yr,xr=mr,Er=Sr;var ya=select(wt).attr("pointer-events","none"),Nn=ya.selectAll(".overlay").attr("cursor",zr[Wt]);if(mt.touches)Cn.moved=ma,Cn.ended=xa;else{var pa=select(mt.view).on("mousemove.brush",ma,!0).on("mouseup.brush",xa,!0);O&&pa.on("keydown.brush",js,!0).on("keyup.brush",ws,!0),dragDisable(mt.view)}rt.call(wt),Cn.start(mt,Bt.name);function ma(Xt){for(const cr of Xt.changedTouches||[Xt])for(const Mn of Cr)Mn.identifier===cr.identifier&&(Mn.cur=pointer(cr,wt));if(re&&!ne&&!ee&&Cr.length===1){const cr=Cr[0];aa(cr.cur[0]-cr[0])>aa(cr.cur[1]-cr[1])?ee=!0:ne=!0}for(const cr of Cr)cr.cur&&(cr[0]=cr.cur[0],cr[1]=cr.cur[1]);Ae=!0,noevent(Xt),en(Xt)}function en(Xt){const cr=Cr[0],Mn=cr.point0;var _r;switch(lr=cr[0]-Mn[0],vr=cr[1]-Mn[1],Bt){case ye:case ea:{qt&&(lr=Or(br-ir,Ir(kr-mr,lr)),gr=ir+lr,xr=mr+lr),tr&&(vr=Or(Zr-yr,Ir(qr-Sr,vr)),pr=yr+vr,Er=Sr+vr);break}case ln:{Cr[1]?(qt&&(gr=Or(br,Ir(kr,Cr[0][0])),xr=Or(br,Ir(kr,Cr[1][0])),qt=1),tr&&(pr=Or(Zr,Ir(qr,Cr[0][1])),Er=Or(Zr,Ir(qr,Cr[1][1])),tr=1)):(qt<0?(lr=Or(br-ir,Ir(kr-ir,lr)),gr=ir+lr,xr=mr):qt>0&&(lr=Or(br-mr,Ir(kr-mr,lr)),gr=ir,xr=mr+lr),tr<0?(vr=Or(Zr-yr,Ir(qr-yr,vr)),pr=yr+vr,Er=Sr):tr>0&&(vr=Or(Zr-Sr,Ir(qr-Sr,vr)),pr=yr,Er=Sr+vr));break}case vn:{qt&&(gr=Or(br,Ir(kr,ir-lr*qt)),xr=Or(br,Ir(kr,mr+lr*qt))),tr&&(pr=Or(Zr,Ir(qr,yr-vr*tr)),Er=Or(Zr,Ir(qr,Sr+vr*tr)));break}}xr<gr&&(qt*=-1,_r=ir,ir=mr,mr=_r,_r=gr,gr=xr,xr=_r,Wt in sa&&Nn.attr("cursor",zr[Wt=sa[Wt]])),Er<pr&&(tr*=-1,_r=yr,yr=Sr,Sr=_r,_r=pr,pr=Er,Er=_r,Wt in ia&&Nn.attr("cursor",zr[Wt=ia[Wt]])),Ar.selection&&(fr=Ar.selection),ne&&(gr=fr[0][0],xr=fr[1][0]),ee&&(pr=fr[0][1],Er=fr[1][1]),(fr[0][0]!==gr||fr[0][1]!==pr||fr[1][0]!==xr||fr[1][1]!==Er)&&(Ar.selection=[[gr,pr],[xr,Er]],rt.call(wt),Cn.brush(Xt,Bt.name))}function xa(Xt){if(nopropagation(Xt),Xt.touches){if(Xt.touches.length)return;G&&clearTimeout(G),G=setTimeout(function(){G=null},500)}else dragEnable(Xt.view,Ae),pa.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);ya.attr("pointer-events","all"),Nn.attr("cursor",zr.overlay),Ar.selection&&(fr=Ar.selection),fs(fr)&&(Ar.selection=null,rt.call(wt)),Cn.end(Xt,Bt.name)}function js(Xt){switch(Xt.keyCode){case 16:{re=qt&&tr;break}case 18:{Bt===ln&&(qt&&(mr=xr-lr*qt,ir=gr+lr*qt),tr&&(Sr=Er-vr*tr,yr=pr+vr*tr),Bt=vn,en(Xt));break}case 32:{(Bt===ln||Bt===vn)&&(qt<0?mr=xr-lr:qt>0&&(ir=gr-lr),tr<0?Sr=Er-vr:tr>0&&(yr=pr-vr),Bt=ye,Nn.attr("cursor",zr.selection),en(Xt));break}default:return}noevent(Xt)}function ws(Xt){switch(Xt.keyCode){case 16:{re&&(ne=ee=re=!1,en(Xt));break}case 18:{Bt===vn&&(qt<0?mr=xr:qt>0&&(ir=gr),tr<0?Sr=Er:tr>0&&(yr=pr),Bt=ln,en(Xt));break}case 32:{Bt===ye&&(Xt.altKey?(qt&&(mr=xr-lr*qt,ir=gr+lr*qt),tr&&(Sr=Er-vr*tr,yr=pr+vr*tr),Bt=vn):(qt<0?mr=xr:qt>0&&(ir=gr),tr<0?Sr=Er:tr>0&&(yr=pr),Bt=ln),Nn.attr("cursor",zr[Wt]),en(Xt));break}default:return}noevent(Xt)}}function Gt(mt){nt(this,arguments).moved(mt)}function or(mt){nt(this,arguments).ended(mt)}function hr(){var mt=this.__brush||{selection:null};return mt.extent=pe(f.apply(this,arguments)),mt.dim=e,mt}return Y.extent=function(mt){return arguments.length?(f=typeof mt=="function"?mt:constant(pe(mt)),Y):f},Y.filter=function(mt){return arguments.length?(h=typeof mt=="function"?mt:constant(!!mt),Y):h},Y.touchable=function(mt){return arguments.length?(E=typeof mt=="function"?mt:constant(!!mt),Y):E},Y.handleSize=function(mt){return arguments.length?($=+mt,Y):$},Y.keyModifiers=function(mt){return arguments.length?(O=!!mt,Y):O},Y.on=function(){var mt=M.on.apply(M,arguments);return mt===M?Y:mt},Y}function ls(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function vs(e){const f=typeof(e==null?void 0:e.requestAnimationFrame)=="function"&&typeof(e==null?void 0:e.cancelAnimationFrame)=="function",h=typeof(e==null?void 0:e.requestIdleCallback)=="function"&&typeof(e==null?void 0:e.cancelIdleCallback)=="function",E=M=>setTimeout(M,1),O=M=>clearTimeout(M);return[f?e.requestAnimationFrame:E,f?e.cancelAnimationFrame:O,h?e.requestIdleCallback:E,h?e.cancelIdleCallback:O]}const Zn=ls(),cs=Zn==null?void 0:Zn.document,[Qs,Zs,ks,qs]=vs(Zn);var ds=Object.defineProperty,ua=Object.getOwnPropertySymbols,hs=Object.prototype.hasOwnProperty,gs=Object.prototype.propertyIsEnumerable,fa=(e,f,h)=>f in e?ds(e,f,{enumerable:!0,configurable:!0,writable:!0,value:h}):e[f]=h,la=(e,f)=>{for(var h in f||(f={}))hs.call(f,h)&&fa(e,h,f[h]);if(ua)for(var h of ua(f))gs.call(f,h)&&fa(e,h,f[h]);return e};const _s=e=>e||e===0,ys=e=>typeof e=="function",kn=e=>typeof e=="string",qn=e=>typeof e=="number",ps=e=>typeof e=="undefined",va=e=>typeof e!="undefined",ti=e=>typeof e=="boolean",ri=e=>Math.ceil(e/10)*10,ni=e=>Math.ceil(e)+.5,ei=e=>e[1]-e[0],Se=e=>typeof e=="object",ms=e=>ps(e)||e===null||kn(e)&&e.length===0||Se(e)&&!(e instanceof Date)&&Object.keys(e).length===0||qn(e)&&isNaN(e),xs=e=>!ms(e),Ee=e=>Array.isArray(e),_n=e=>e&&!(e!=null&&e.nodeType)&&Se(e)&&!Ee(e);function ai(e,f,h){return va(e[f])?e[f]:h}function oi(e,f){let h=!1;return Object.keys(e).forEach(E=>e[E]===f&&(h=!0)),h}function si(e,f,...h){const E=ys(e);return E&&e.call(f,...h),E}function ii(e,f){let h=0;const E=function(...O){!--h&&f.apply(this,...O)};"duration"in e?e.each(()=>++h).on("end",E):(++h,e.call(E))}function ui(e){return kn(e)?e.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):e}function fi(e,f,h=[-1,1],E=!1){if(!(!e||!kn(f)))if(f.indexOf(` +`)===-1)e.text(f);else{const O=[e.text(),f].map(M=>M.replace(/[\s\n]/g,""));if(O[0]!==O[1]){const M=f.split(` +`),$=E?M.length-1:1;e.html(""),M.forEach((G,Y)=>{e.append("tspan").attr("x",0).attr("dy",`${Y===0?h[0]*$:h[1]}em`).text(G)})}}}function Ss(e){const{x:f,y:h,width:E,height:O}=e.getBBox();return[{x:f,y:h+O},{x:f,y:h},{x:f+E,y:h},{x:f+E,y:h+O}]}function li(e){const{width:f,height:h}=e.getBoundingClientRect(),E=Ss(e),O=E[0].x,M=Math.min(E[0].y,E[1].y);return{x:O,y:M,width:f,height:h}}function vi(e,f){var h;const E=e&&((h=e.touches||e.sourceEvent&&e.sourceEvent.touches)==null?void 0:h[0]);let O=[0,0];try{O=d3Pointer(E||e,f)}catch(M){}return O.map(M=>isNaN(M)?0:M)}function Es(e){const{event:f,$el:h}=e,E=h.subchart.main||h.main;let O;return f&&f.type==="brush"?O=f.selection:E&&(O=E.select(".bb-brush").node())&&(O=d3BrushSelection(O)),O}function ci(e){return!("rect"in e)||"rect"in e&&e.hasAttribute("width")&&e.rect.width!==+e.getAttribute("width")?e.rect=e.getBoundingClientRect():e.rect}function di(e=!0,f=0,h=1e4){const E=window.crypto||window.msCrypto,O=E?f+E.getRandomValues(new Uint32Array(1))[0]%(h-f+1):Math.floor(Math.random()*(h-f)+f);return e?String(O):O}function ca(e,f,h,E,O){if(h>E)return-1;const M=Math.floor((h+E)/2);let{x:$,w:G=0}=e[M];return O&&($=e[M].y,G=e[M].h),f>=$&&f<=$+G?M:f<$?ca(e,f,h,M-1,O):ca(e,f,M+1,E,O)}function hi(e){const f=Es(e);return f?f[0]===f[1]:!0}function gi(...e){const f=h=>{if(_n(h)&&h.constructor){const E=new h.constructor;for(const O in h)E[O]=f(h[O]);return E}return h};return e.map(h=>f(h)).reduce((h,E)=>la(la({},h),E))}function Os(e={},f){Ee(f)&&f.forEach(h=>Os(e,h));for(const h in f)/^\d+$/.test(h)||h in e||(e[h]=f[h]);return e}const yi=e=>e.charAt(0).toUpperCase()+e.slice(1);function pi(e,f="-"){return e.split(f).map((h,E)=>E?h.charAt(0).toUpperCase()+h.slice(1).toLowerCase():h.toLowerCase()).join("")}const Is=e=>[].slice.call(e);function mi(e,f,h){const{rootSelector:E="",sheet:O}=e,$=`${E} ${(G=>G.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(f)} {${h.join(";")}}`;return O[O.insertRule?"insertRule":"addRule"]($,O.cssRules.length)}function xi(e){let f=[];return e.forEach(h=>{var E;try{h.cssRules&&h.cssRules.length&&(f=f.concat(Is(h.cssRules)))}catch(O){(E=window.console)==null||E.warn(`Error while reading rules from ${h.href}: ${O.toString()}`)}}),f}function Si(e){var f,h,E,O;return{x:((h=(f=window.pageXOffset)!=null?f:window.scrollX)!=null?h:0)+e.scrollLeft,y:((O=(E=window.pageYOffset)!=null?E:window.scrollY)!=null?O:0)+e.scrollTop}}function Ei(e){const f=e?e.transform:null,h=f&&f.baseVal;return h&&h.numberOfItems?h.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function Oi(e){const f=e[0]instanceof Date,h=(f?e.map(Number):e).filter((E,O,M)=>M.indexOf(E)===O);return f?h.map(E=>new Date(E)):h}function Ii(e){return e&&e.length?e.reduce((f,h)=>f.concat(h)):[]}function Oe(e,...f){if(!f.length||f.length===1&&!f[0])return e;const h=f.shift();return _n(e)&&_n(h)&&Object.keys(h).forEach(E=>{const O=h[E];_n(O)?(!e[E]&&(e[E]={}),e[E]=Oe(e[E],O)):e[E]=Ee(O)?O.concat():O}),Oe(e,...f)}function Ts(e,f=!0){let h;return e[0]instanceof Date?h=f?(E,O)=>E-O:(E,O)=>O-E:f&&!e.every(isNaN)?h=(E,O)=>E-O:f||(h=(E,O)=>E>O&&-1||E<O&&1||E===O&&0),e.concat().sort(h)}function Ti(e,f){let h=f.filter(E=>xs(E));return h.length?qn(h[0])?h=Math[e](...h):h[0]instanceof Date&&(h=Ts(h,e==="min")[0]):h=void 0,h}const Ai=(e,f,h=1)=>{const E=[],O=Math.max(0,Math.ceil((f-e)/h))|0;for(let M=e;M<O;M++)E.push(e+M*h);return E},Ri={mouse:(()=>{const e=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(f,h,E=e())=>{f.dispatchEvent(new MouseEvent(h,E))}}catch(f){return(h,E,O=e())=>{const M=cs.createEvent("MouseEvent");M.initMouseEvent(E,O.bubbles,O.cancelable,Zn,0,O.screenX,O.screenY,O.clientX,O.clientY,!1,!1,!1,!1,0,null),h.dispatchEvent(M)}}})(),touch:(e,f,h)=>{const E=new Touch(Oe({identifier:Date.now(),target:e,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},h));e.dispatchEvent(new TouchEvent(f,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[E],targetTouches:[],changedTouches:[E]}))}};function te(e,f){let h=e;for(const E in f)h=h.replace(new RegExp(`{=${E}}`,"g"),f[E]);return h}function Pi(e){var f;let h;if(e instanceof Date)h=e;else if(kn(e)){const{config:E,format:O}=this;h=(f=O.dataTime(E.data_xFormat)(e))!=null?f:new Date(e)}else qn(e)&&!isNaN(e)&&(h=new Date(+e));return(!h||isNaN(+h))&&console&&console.error&&console.error(`Failed to parse x '${e}' to Date object`),h}function Ci(){var e,f;return((e=document)==null?void 0:e.hidden)===!1||((f=document)==null?void 0:f.visibilityState)==="visible"}function Ni(e,f){const{DocumentTouch:h,matchMedia:E,navigator:O}=window;let M=!1;if(f)if(O&&"maxTouchPoints"in O)M=O.maxTouchPoints>0;else if("ontouchmove"in window||h&&document instanceof h)M=!0;else if(E!=null&&E("(pointer:coarse)").matches)M=!0;else{const G=O.userAgent;M=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(G)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(G)}return e&&((E==null?void 0:E("any-hover:hover").matches)||(E==null?void 0:E("any-pointer:fine").matches))&&"mouse"||M&&"touch"||"mouse"}function As(e,f){f()===!1?requestAnimationFrame(()=>As(e,f)):e()}function Rs(e){const f=this.config;let h,E,O;const M=()=>{const $=E.shift();if($&&h&&Se(h)&&$ in h)return h=h[$],M();if(!$)return h};Object.keys(f).forEach($=>{h=e,E=$.split("_"),O=M(),va(O)&&(f[$]=O)}),this.api&&(this.state.orgConfig=e)}var Ps=Object.defineProperty,Cs=(e,f,h)=>f in e?Ps(e,f,{enumerable:!0,configurable:!0,writable:!0,value:h}):e[f]=h,Ie=(e,f,h)=>(Cs(e,typeof f!="symbol"?f+"":f,h),h);class da{constructor(f={}){Ie(this,"$$"),Ie(this,"options"),this.options=f}$beforeInit(){}$init(){}$afterInit(){}$redraw(){}$willDestroy(){Object.keys(this).forEach(f=>{this[f]=null,delete this[f]})}}Ie(da,"version","3.12.4");const cn={id:"__tableview-style__",class:"bb-tableview",rule:`.bb-tableview { + border-collapse:collapse; + border-spacing:0; + background:#fff; + min-width:100%; + margin-top:10px; + font-family:sans-serif; + font-size:.9em; + } + .bb-tableview tr:hover { + background:#eef7ff; + } + .bb-tableview thead tr { + background:#f8f8f8; + } + .bb-tableview caption,.bb-tableview td,.bb-tableview th { + text-align: center; + border:1px solid silver; + padding:.5em; + } + .bb-tableview caption { + font-size:1.1em; + font-weight:700; + margin-bottom: -1px; + }`},Pn={body:`<caption>{=title}</caption> + <thead><tr>{=thead}</tr></thead> + <tbody>{=tbody}</tbody>`,thead:'<th scope="col">{=title}</th>',tbodyHeader:'<th scope="row">{=value}</th>',tbody:"<td>{=value}</td>"};class Ns{constructor(){return{selector:void 0,categoryTitle:"Category",categoryFormat:function(f){let h=f;return this.$$.axis.isCategorized()?h=this.$$.categoryName(f):this.$$.axis.isTimeSeries()&&(h=f.toLocaleDateString()),h},class:void 0,style:!0,title:void 0,updateOnToggle:!0,nullString:"-"}}}var Ms=Object.defineProperty,Ds=Object.defineProperties,Fs=Object.getOwnPropertyDescriptors,ha=Object.getOwnPropertySymbols,Ls=Object.prototype.hasOwnProperty,$s=Object.prototype.propertyIsEnumerable,Te=(e,f,h)=>f in e?Ms(e,f,{enumerable:!0,configurable:!0,writable:!0,value:h}):e[f]=h,bs=(e,f)=>{for(var h in f||(f={}))Ls.call(f,h)&&Te(e,h,f[h]);if(ha)for(var h of ha(f))$s.call(f,h)&&Te(e,h,f[h]);return e},Us=(e,f)=>Ds(e,Fs(f)),ga=(e,f,h)=>(Te(e,typeof f!="symbol"?f+"":f,h),h);class Bs extends da{constructor(f){return super(f),ga(this,"config"),ga(this,"element"),this.config=new Ns,this}$beforeInit(){Rs.call(this,this.options)}$init(){const{class:f,selector:h,style:E}=this.config;let O=document.querySelector(h||`.${f||cn.class}`);if(!O){const M=this.$$.$el.chart.node();O=document.createElement("table"),M.parentNode.insertBefore(O,M.nextSibling)}if(O.tagName!=="TABLE"){const M=document.createElement("table");O.appendChild(M),O=M}if(E&&!document.getElementById(cn.id)){const M=document.createElement("style");M.id=cn.id,M.innerHTML=cn.rule,(document.head||document.getElementsByTagName("head")[0]).appendChild(M)}O.classList.add(...[E&&cn.class,f].filter(Boolean)),this.element=O}generateTable(){const{$$:f,config:h,element:E}=this,O=f.filterTargetsToShow(f.data.targets);let M=te(Pn.thead,{title:O.length?this.config.categoryTitle:""}),$="";const G=[];O.forEach(nt=>{M+=te(Pn.thead,{title:nt.id}),nt.values.forEach((Et,Ct)=>{G[Ct]||(G[Ct]=[Et.x]),G[Ct].push(Et.value)})}),G.forEach(nt=>{$+=`<tr>${nt.map((Et,Ct)=>te(Ct?Pn.tbody:Pn.tbodyHeader,{value:Ct===0?h.categoryFormat.bind(this)(Et):qn(Et)?Et.toLocaleString():h.nullString})).join("")}</tr>`});const Y=/(<\/?(script|img)[^>]*>|<[^>]+><\/[^>]+>)/ig,rt=te(Pn.body,Us(bs({},h),{title:h.title||f.config.title_text||"",thead:M,tbody:$})).replace(Y,"");E.innerHTML=rt}$redraw(){const{state:f}=this.$$;!(f.resizing||!this.config.updateOnToggle&&f.toggling)&&this.generateTable()}$willDestroy(){var f,h;if((f=this.element.parentNode)==null||f.removeChild(this.element),this.$$.charts.length===1){const E=document.getElementById(cn.id);(h=E==null?void 0:E.parentNode)==null||h.removeChild(E)}}}},85156:function(i,d,t){var r=t(23583),n=t(82453),a=TypeError;i.exports=function(o){if(r(o))return o;throw new a(n(o)+" is not a function")}},80042:function(i,d,t){var r=t(11051),n=t(82453),a=TypeError;i.exports=function(o){if(r(o))return o;throw new a(n(o)+" is not a constructor")}},53408:function(i,d,t){var r=t(52427),n=String,a=TypeError;i.exports=function(o){if(r(o))return o;throw new a("Can't set "+n(o)+" as a prototype")}},76602:function(i,d,t){var r=t(172).has;i.exports=function(n){return r(n),n}},23811:function(i,d,t){var r=t(18565),n=t(5406),a=t(7831).f,o=r("unscopables"),s=Array.prototype;s[o]===void 0&&a(s,o,{configurable:!0,value:n(null)}),i.exports=function(u){s[o][u]=!0}},24487:function(i,d,t){var r=t(22149).charAt;i.exports=function(n,a,o){return a+(o?r(n,a).length:1)}},12833:function(i,d,t){var r=t(95307),n=TypeError;i.exports=function(a,o){if(r(o,a))return a;throw new n("Incorrect invocation")}},25001:function(i,d,t){var r=t(37540),n=String,a=TypeError;i.exports=function(o){if(r(o))return o;throw new a(n(o)+" is not an object")}},3237:function(i){i.exports=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"},58360:function(i,d,t){var r=t(84756),n=t(14274),a=TypeError;i.exports=r(ArrayBuffer.prototype,"byteLength","get")||function(o){if(n(o)!=="ArrayBuffer")throw new a("ArrayBuffer expected");return o.byteLength}},30736:function(i,d,t){var r=t(11286),n=t(58360),a=r(ArrayBuffer.prototype.slice);i.exports=function(o){if(n(o)!==0)return!1;try{return a(o,0,0),!1}catch(s){return!0}}},72058:function(i,d,t){var r=t(72069);i.exports=r(function(){if(typeof ArrayBuffer=="function"){var n=new ArrayBuffer(8);Object.isExtensible(n)&&Object.defineProperty(n,"a",{value:8})}})},65006:function(i,d,t){var r=t(66009),n=t(11286),a=t(84756),o=t(9450),s=t(30736),u=t(58360),l=t(63741),v=t(99050),c=r.structuredClone,g=r.ArrayBuffer,y=r.DataView,p=r.TypeError,m=Math.min,S=g.prototype,x=y.prototype,I=n(S.slice),P=a(S,"resizable","get"),A=a(S,"maxByteLength","get"),R=n(x.getInt8),N=n(x.setInt8);i.exports=(v||l)&&function(T,C,D){var L=u(T),F=C===void 0?L:o(C),b=!P||!P(T),w;if(s(T))throw new p("ArrayBuffer is detached");if(v&&(T=c(T,{transfer:[T]}),L===F&&(D||b)))return T;if(L>=F&&(!D||b))w=I(T,0,F);else{var V=D&&!b&&A?{maxByteLength:A(T)}:void 0;w=new g(F,V);for(var U=new y(T),B=new y(w),j=m(F,L),z=0;z<j;z++)N(B,z,R(U,z))}return v||l(T),w}},88037:function(i,d,t){var r=t(3237),n=t(92986),a=t(66009),o=t(23583),s=t(37540),u=t(94879),l=t(9205),v=t(82453),c=t(90809),g=t(16142),y=t(85500),p=t(95307),m=t(26313),S=t(15861),x=t(18565),I=t(36374),P=t(82367),A=P.enforce,R=P.get,N=a.Int8Array,T=N&&N.prototype,C=a.Uint8ClampedArray,D=C&&C.prototype,L=N&&m(N),F=T&&m(T),b=Object.prototype,w=a.TypeError,V=x("toStringTag"),U=I("TYPED_ARRAY_TAG"),B="TypedArrayConstructor",j=r&&!!S&&l(a.opera)!=="Opera",z=!1,k,J,et,_={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},dt={BigInt64Array:8,BigUint64Array:8},lt=function(gt){if(!s(gt))return!1;var Pt=l(gt);return Pt==="DataView"||u(_,Pt)||u(dt,Pt)},pt=function(vt){var gt=m(vt);if(s(gt)){var Pt=R(gt);return Pt&&u(Pt,B)?Pt[B]:pt(gt)}},St=function(vt){if(!s(vt))return!1;var gt=l(vt);return u(_,gt)||u(dt,gt)},Ot=function(vt){if(St(vt))return vt;throw new w("Target is not a typed array")},Ht=function(vt){if(o(vt)&&(!S||p(L,vt)))return vt;throw new w(v(vt)+" is not a typed array constructor")},$t=function(vt,gt,Pt,Dt){if(n){if(Pt)for(var Nt in _){var Ut=a[Nt];if(Ut&&u(Ut.prototype,vt))try{delete Ut.prototype[vt]}catch(Zt){try{Ut.prototype[vt]=gt}catch(kt){}}}(!F[vt]||Pt)&&g(F,vt,Pt?gt:j&&T[vt]||gt,Dt)}},bt=function(vt,gt,Pt){var Dt,Nt;if(n){if(S){if(Pt){for(Dt in _)if(Nt=a[Dt],Nt&&u(Nt,vt))try{delete Nt[vt]}catch(Ut){}}if(!L[vt]||Pt)try{return g(L,vt,Pt?gt:j&&L[vt]||gt)}catch(Ut){}else return}for(Dt in _)Nt=a[Dt],Nt&&(!Nt[vt]||Pt)&&g(Nt,vt,gt)}};for(k in _)J=a[k],et=J&&J.prototype,et?A(et)[B]=J:j=!1;for(k in dt)J=a[k],et=J&&J.prototype,et&&(A(et)[B]=J);if((!j||!o(L)||L===Function.prototype)&&(L=function(){throw new w("Incorrect invocation")},j))for(k in _)a[k]&&S(a[k],L);if((!j||!F||F===b)&&(F=L.prototype,j))for(k in _)a[k]&&S(a[k].prototype,F);if(j&&m(D)!==F&&S(D,F),n&&!u(F,V)){z=!0,y(F,V,{configurable:!0,get:function(){return s(this)?this[U]:void 0}});for(k in _)a[k]&&c(a[k],U,k)}i.exports={NATIVE_ARRAY_BUFFER_VIEWS:j,TYPED_ARRAY_TAG:z&&U,aTypedArray:Ot,aTypedArrayConstructor:Ht,exportTypedArrayMethod:$t,exportTypedArrayStaticMethod:bt,getTypedArrayConstructor:pt,isView:lt,isTypedArray:St,TypedArray:L,TypedArrayPrototype:F}},17468:function(i,d,t){var r=t(66009),n=t(11286),a=t(92986),o=t(3237),s=t(86588),u=t(90809),l=t(85500),v=t(2725),c=t(72069),g=t(12833),y=t(12105),p=t(45344),m=t(9450),S=t(93279),x=t(25212),I=t(26313),P=t(15861),A=t(43011),R=t(22806),N=t(32345),T=t(93706),C=t(78401),D=t(82367),L=s.PROPER,F=s.CONFIGURABLE,b="ArrayBuffer",w="DataView",V="prototype",U="Wrong length",B="Wrong index",j=D.getterFor(b),z=D.getterFor(w),k=D.set,J=r[b],et=J,_=et&&et[V],dt=r[w],lt=dt&&dt[V],pt=Object.prototype,St=r.Array,Ot=r.RangeError,Ht=n(A),$t=n([].reverse),bt=x.pack,vt=x.unpack,gt=function(st){return[st&255]},Pt=function(st){return[st&255,st>>8&255]},Dt=function(st){return[st&255,st>>8&255,st>>16&255,st>>24&255]},Nt=function(st){return st[3]<<24|st[2]<<16|st[1]<<8|st[0]},Ut=function(st){return bt(S(st),23,4)},Zt=function(st){return bt(st,52,8)},kt=function(st,ht,tt){l(st[V],ht,{configurable:!0,get:function(){return tt(this)[ht]}})},Jt=function(st,ht,tt,It){var Tt=z(st),xt=m(tt),yt=!!It;if(xt+ht>Tt.byteLength)throw new Ot(B);var _t=Tt.bytes,nr=xt+Tt.byteOffset,Q=R(_t,nr,nr+ht);return yt?Q:$t(Q)},Lt=function(st,ht,tt,It,Tt,xt){var yt=z(st),_t=m(tt),nr=It(+Tt),Q=!!xt;if(_t+ht>yt.byteLength)throw new Ot(B);for(var ot=yt.bytes,ut=_t+yt.byteOffset,W=0;W<ht;W++)ot[ut+W]=nr[Q?W:ht-W-1]};if(!o)et=function(ht){g(this,_);var tt=m(ht);k(this,{type:b,bytes:Ht(St(tt),0),byteLength:tt}),a||(this.byteLength=tt,this.detached=!1)},_=et[V],dt=function(ht,tt,It){g(this,lt),g(ht,_);var Tt=j(ht),xt=Tt.byteLength,yt=y(tt);if(yt<0||yt>xt)throw new Ot("Wrong offset");if(It=It===void 0?xt-yt:p(It),yt+It>xt)throw new Ot(U);k(this,{type:w,buffer:ht,byteLength:It,byteOffset:yt,bytes:Tt.bytes}),a||(this.buffer=ht,this.byteLength=It,this.byteOffset=yt)},lt=dt[V],a&&(kt(et,"byteLength",j),kt(dt,"buffer",z),kt(dt,"byteLength",z),kt(dt,"byteOffset",z)),v(lt,{getInt8:function(ht){return Jt(this,1,ht)[0]<<24>>24},getUint8:function(ht){return Jt(this,1,ht)[0]},getInt16:function(ht){var tt=Jt(this,2,ht,arguments.length>1?arguments[1]:!1);return(tt[1]<<8|tt[0])<<16>>16},getUint16:function(ht){var tt=Jt(this,2,ht,arguments.length>1?arguments[1]:!1);return tt[1]<<8|tt[0]},getInt32:function(ht){return Nt(Jt(this,4,ht,arguments.length>1?arguments[1]:!1))},getUint32:function(ht){return Nt(Jt(this,4,ht,arguments.length>1?arguments[1]:!1))>>>0},getFloat32:function(ht){return vt(Jt(this,4,ht,arguments.length>1?arguments[1]:!1),23)},getFloat64:function(ht){return vt(Jt(this,8,ht,arguments.length>1?arguments[1]:!1),52)},setInt8:function(ht,tt){Lt(this,1,ht,gt,tt)},setUint8:function(ht,tt){Lt(this,1,ht,gt,tt)},setInt16:function(ht,tt){Lt(this,2,ht,Pt,tt,arguments.length>2?arguments[2]:!1)},setUint16:function(ht,tt){Lt(this,2,ht,Pt,tt,arguments.length>2?arguments[2]:!1)},setInt32:function(ht,tt){Lt(this,4,ht,Dt,tt,arguments.length>2?arguments[2]:!1)},setUint32:function(ht,tt){Lt(this,4,ht,Dt,tt,arguments.length>2?arguments[2]:!1)},setFloat32:function(ht,tt){Lt(this,4,ht,Ut,tt,arguments.length>2?arguments[2]:!1)},setFloat64:function(ht,tt){Lt(this,8,ht,Zt,tt,arguments.length>2?arguments[2]:!1)}});else{var Qt=L&&J.name!==b;!c(function(){J(1)})||!c(function(){new J(-1)})||c(function(){return new J,new J(1.5),new J(NaN),J.length!==1||Qt&&!F})?(et=function(ht){return g(this,_),N(new J(m(ht)),this,et)},et[V]=_,_.constructor=et,T(et,J)):Qt&&F&&u(J,"name",b),P&&I(lt)!==pt&&P(lt,pt);var Vt=new dt(new et(2)),jt=n(lt.setInt8);Vt.setInt8(0,2147483648),Vt.setInt8(1,2147483649),(Vt.getInt8(0)||!Vt.getInt8(1))&&v(lt,{setInt8:function(ht,tt){jt(this,ht,tt<<24>>24)},setUint8:function(ht,tt){jt(this,ht,tt<<24>>24)}},{unsafe:!0})}C(et,b),C(dt,w),i.exports={ArrayBuffer:et,DataView:dt}},81499:function(i,d,t){var r=t(49671),n=t(4652),a=t(82628),o=t(12384),s=Math.min;i.exports=[].copyWithin||function(l,v){var c=r(this),g=a(c),y=n(l,g),p=n(v,g),m=arguments.length>2?arguments[2]:void 0,S=s((m===void 0?g:n(m,g))-p,g-y),x=1;for(p<y&&y<p+S&&(x=-1,p+=S-1,y+=S-1);S-- >0;)p in c?c[y]=c[p]:o(c,y),y+=x,p+=x;return c}},43011:function(i,d,t){var r=t(49671),n=t(4652),a=t(82628);i.exports=function(s){for(var u=r(this),l=a(u),v=arguments.length,c=n(v>1?arguments[1]:void 0,l),g=v>2?arguments[2]:void 0,y=g===void 0?l:n(g,l);y>c;)u[c++]=s;return u}},13349:function(i,d,t){var r=t(66655).forEach,n=t(6148),a=n("forEach");i.exports=a?[].forEach:function(s){return r(this,s,arguments.length>1?arguments[1]:void 0)}},5220:function(i,d,t){var r=t(82628);i.exports=function(n,a,o){for(var s=0,u=arguments.length>2?o:r(a),l=new n(u);u>s;)l[s]=a[s++];return l}},48258:function(i,d,t){var r=t(45526),n=t(96499),a=t(49671),o=t(39969),s=t(48199),u=t(11051),l=t(82628),v=t(84082),c=t(90619),g=t(81077),y=Array;i.exports=function(m){var S=a(m),x=u(this),I=arguments.length,P=I>1?arguments[1]:void 0,A=P!==void 0;A&&(P=r(P,I>2?arguments[2]:void 0));var R=g(S),N=0,T,C,D,L,F,b;if(R&&!(this===y&&s(R)))for(C=x?new this:[],L=c(S,R),F=L.next;!(D=n(F,L)).done;N++)b=A?o(L,P,[D.value,N],!0):D.value,v(C,N,b);else for(T=l(S),C=x?new this(T):y(T);T>N;N++)b=A?P(S[N],N):S[N],v(C,N,b);return C.length=N,C}},94319:function(i,d,t){var r=t(36859),n=t(4652),a=t(82628),o=function(s){return function(u,l,v){var c=r(u),g=a(c);if(g===0)return!s&&-1;var y=n(v,g),p;if(s&&l!==l){for(;g>y;)if(p=c[y++],p!==p)return!0}else for(;g>y;y++)if((s||y in c)&&c[y]===l)return s||y||0;return!s&&-1}};i.exports={includes:o(!0),indexOf:o(!1)}},73849:function(i,d,t){var r=t(45526),n=t(72181),a=t(49671),o=t(82628),s=function(u){var l=u===1;return function(v,c,g){for(var y=a(v),p=n(y),m=o(p),S=r(c,g),x,I;m-- >0;)if(x=p[m],I=S(x,m,y),I)switch(u){case 0:return x;case 1:return m}return l?-1:void 0}};i.exports={findLast:s(0),findLastIndex:s(1)}},66655:function(i,d,t){var r=t(45526),n=t(11286),a=t(72181),o=t(49671),s=t(82628),u=t(62083),l=n([].push),v=function(c){var g=c===1,y=c===2,p=c===3,m=c===4,S=c===6,x=c===7,I=c===5||S;return function(P,A,R,N){for(var T=o(P),C=a(T),D=s(C),L=r(A,R),F=0,b=N||u,w=g?b(P,D):y||x?b(P,0):void 0,V,U;D>F;F++)if((I||F in C)&&(V=C[F],U=L(V,F,T),c))if(g)w[F]=U;else if(U)switch(c){case 3:return!0;case 5:return V;case 6:return F;case 2:l(w,V)}else switch(c){case 4:return!1;case 7:l(w,V)}return S?-1:p||m?m:w}};i.exports={forEach:v(0),map:v(1),filter:v(2),some:v(3),every:v(4),find:v(5),findIndex:v(6),filterReject:v(7)}},58465:function(i,d,t){var r=t(66543),n=t(36859),a=t(12105),o=t(82628),s=t(6148),u=Math.min,l=[].lastIndexOf,v=!!l&&1/[1].lastIndexOf(1,-0)<0,c=s("lastIndexOf"),g=v||!c;i.exports=g?function(p){if(v)return r(l,this,arguments)||0;var m=n(this),S=o(m);if(S===0)return-1;var x=S-1;for(arguments.length>1&&(x=u(x,a(arguments[1]))),x<0&&(x=S+x);x>=0;x--)if(x in m&&m[x]===p)return x||0;return-1}:l},52183:function(i,d,t){var r=t(72069),n=t(18565),a=t(73126),o=n("species");i.exports=function(s){return a>=51||!r(function(){var u=[],l=u.constructor={};return l[o]=function(){return{foo:1}},u[s](Boolean).foo!==1})}},6148:function(i,d,t){var r=t(72069);i.exports=function(n,a){var o=[][n];return!!o&&r(function(){o.call(null,a||function(){return 1},1)})}},97264:function(i,d,t){var r=t(85156),n=t(49671),a=t(72181),o=t(82628),s=TypeError,u="Reduce of empty array with no initial value",l=function(v){return function(c,g,y,p){var m=n(c),S=a(m),x=o(m);if(r(g),x===0&&y<2)throw new s(u);var I=v?x-1:0,P=v?-1:1;if(y<2)for(;;){if(I in S){p=S[I],I+=P;break}if(I+=P,v?I<0:x<=I)throw new s(u)}for(;v?I>=0:x>I;I+=P)I in S&&(p=g(p,S[I],I,m));return p}};i.exports={left:l(!1),right:l(!0)}},2213:function(i,d,t){var r=t(92986),n=t(3438),a=TypeError,o=Object.getOwnPropertyDescriptor,s=r&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(u){return u instanceof TypeError}}();i.exports=s?function(u,l){if(n(u)&&!o(u,"length").writable)throw new a("Cannot set read only .length");return u.length=l}:function(u,l){return u.length=l}},22806:function(i,d,t){var r=t(11286);i.exports=r([].slice)},13270:function(i,d,t){var r=t(22806),n=Math.floor,a=function(o,s){var u=o.length;if(u<8)for(var l=1,v,c;l<u;){for(c=l,v=o[l];c&&s(o[c-1],v)>0;)o[c]=o[--c];c!==l++&&(o[c]=v)}else for(var g=n(u/2),y=a(r(o,0,g),s),p=a(r(o,g),s),m=y.length,S=p.length,x=0,I=0;x<m||I<S;)o[x+I]=x<m&&I<S?s(y[x],p[I])<=0?y[x++]:p[I++]:x<m?y[x++]:p[I++];return o};i.exports=a},37555:function(i,d,t){var r=t(3438),n=t(11051),a=t(37540),o=t(18565),s=o("species"),u=Array;i.exports=function(l){var v;return r(l)&&(v=l.constructor,n(v)&&(v===u||r(v.prototype))?v=void 0:a(v)&&(v=v[s],v===null&&(v=void 0))),v===void 0?u:v}},62083:function(i,d,t){var r=t(37555);i.exports=function(n,a){return new(r(n))(a===0?0:a)}},61638:function(i,d,t){var r=t(82628);i.exports=function(n,a){for(var o=r(n),s=new a(o),u=0;u<o;u++)s[u]=n[o-u-1];return s}},72302:function(i,d,t){var r=t(82628),n=t(12105),a=RangeError;i.exports=function(o,s,u,l){var v=r(o),c=n(u),g=c<0?v+c:c;if(g>=v||g<0)throw new a("Incorrect index");for(var y=new s(v),p=0;p<v;p++)y[p]=p===g?l:o[p];return y}},6210:function(i){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t=d+"+/",r=d+"-_",n=function(a){for(var o={},s=0;s<64;s++)o[a.charAt(s)]=s;return o};i.exports={i2c:t,c2i:n(t),i2cUrl:r,c2iUrl:n(r)}},39969:function(i,d,t){var r=t(25001),n=t(99797);i.exports=function(a,o,s,u){try{return u?o(r(s)[0],s[1]):o(s)}catch(l){n(a,"throw",l)}}},97494:function(i,d,t){var r=t(18565),n=r("iterator"),a=!1;try{var o=0,s={next:function(){return{done:!!o++}},return:function(){a=!0}};s[n]=function(){return this},Array.from(s,function(){throw 2})}catch(u){}i.exports=function(u,l){try{if(!l&&!a)return!1}catch(g){return!1}var v=!1;try{var c={};c[n]=function(){return{next:function(){return{done:v=!0}}}},u(c)}catch(g){}return v}},14274:function(i,d,t){var r=t(11286),n=r({}.toString),a=r("".slice);i.exports=function(o){return a(n(o),8,-1)}},9205:function(i,d,t){var r=t(67878),n=t(23583),a=t(14274),o=t(18565),s=o("toStringTag"),u=Object,l=a(function(){return arguments}())==="Arguments",v=function(c,g){try{return c[g]}catch(y){}};i.exports=r?a:function(c){var g,y,p;return c===void 0?"Undefined":c===null?"Null":typeof(y=v(g=u(c),s))=="string"?y:l?a(g):(p=a(g))==="Object"&&n(g.callee)?"Arguments":p}},34440:function(i,d,t){var r=t(5406),n=t(85500),a=t(2725),o=t(45526),s=t(12833),u=t(5683),l=t(55902),v=t(10218),c=t(10659),g=t(36167),y=t(92986),p=t(31853).fastKey,m=t(82367),S=m.set,x=m.getterFor;i.exports={getConstructor:function(I,P,A,R){var N=I(function(F,b){s(F,T),S(F,{type:P,index:r(null),first:void 0,last:void 0,size:0}),y||(F.size=0),u(b)||l(b,F[R],{that:F,AS_ENTRIES:A})}),T=N.prototype,C=x(P),D=function(F,b,w){var V=C(F),U=L(F,b),B,j;return U?U.value=w:(V.last=U={index:j=p(b,!0),key:b,value:w,previous:B=V.last,next:void 0,removed:!1},V.first||(V.first=U),B&&(B.next=U),y?V.size++:F.size++,j!=="F"&&(V.index[j]=U)),F},L=function(F,b){var w=C(F),V=p(b),U;if(V!=="F")return w.index[V];for(U=w.first;U;U=U.next)if(U.key===b)return U};return a(T,{clear:function(){for(var b=this,w=C(b),V=w.first;V;)V.removed=!0,V.previous&&(V.previous=V.previous.next=void 0),V=V.next;w.first=w.last=void 0,w.index=r(null),y?w.size=0:b.size=0},delete:function(F){var b=this,w=C(b),V=L(b,F);if(V){var U=V.next,B=V.previous;delete w.index[V.index],V.removed=!0,B&&(B.next=U),U&&(U.previous=B),w.first===V&&(w.first=U),w.last===V&&(w.last=B),y?w.size--:b.size--}return!!V},forEach:function(b){for(var w=C(this),V=o(b,arguments.length>1?arguments[1]:void 0),U;U=U?U.next:w.first;)for(V(U.value,U.key,this);U&&U.removed;)U=U.previous},has:function(b){return!!L(this,b)}}),a(T,A?{get:function(b){var w=L(this,b);return w&&w.value},set:function(b,w){return D(this,b===0?0:b,w)}}:{add:function(b){return D(this,b=b===0?0:b,b)}}),y&&n(T,"size",{configurable:!0,get:function(){return C(this).size}}),N},setStrong:function(I,P,A){var R=P+" Iterator",N=x(P),T=x(R);v(I,P,function(C,D){S(this,{type:R,target:C,state:N(C),kind:D,last:void 0})},function(){for(var C=T(this),D=C.kind,L=C.last;L&&L.removed;)L=L.previous;return!C.target||!(C.last=L=L?L.next:C.state.first)?(C.target=void 0,c(void 0,!0)):c(D==="keys"?L.key:D==="values"?L.value:[L.key,L.value],!1)},A?"entries":"values",!A,!0),g(P)}}},94667:function(i,d,t){var r=t(11286),n=t(2725),a=t(31853).getWeakData,o=t(12833),s=t(25001),u=t(5683),l=t(37540),v=t(55902),c=t(66655),g=t(94879),y=t(82367),p=y.set,m=y.getterFor,S=c.find,x=c.findIndex,I=r([].splice),P=0,A=function(T){return T.frozen||(T.frozen=new R)},R=function(){this.entries=[]},N=function(T,C){return S(T.entries,function(D){return D[0]===C})};R.prototype={get:function(T){var C=N(this,T);if(C)return C[1]},has:function(T){return!!N(this,T)},set:function(T,C){var D=N(this,T);D?D[1]=C:this.entries.push([T,C])},delete:function(T){var C=x(this.entries,function(D){return D[0]===T});return~C&&I(this.entries,C,1),!!~C}},i.exports={getConstructor:function(T,C,D,L){var F=T(function(U,B){o(U,b),p(U,{type:C,id:P++,frozen:void 0}),u(B)||v(B,U[L],{that:U,AS_ENTRIES:D})}),b=F.prototype,w=m(C),V=function(U,B,j){var z=w(U),k=a(s(B),!0);return k===!0?A(z).set(B,j):k[z.id]=j,U};return n(b,{delete:function(U){var B=w(this);if(!l(U))return!1;var j=a(U);return j===!0?A(B).delete(U):j&&g(j,B.id)&&delete j[B.id]},has:function(B){var j=w(this);if(!l(B))return!1;var z=a(B);return z===!0?A(j).has(B):z&&g(z,j.id)}}),n(b,D?{get:function(B){var j=w(this);if(l(B)){var z=a(B);return z===!0?A(j).get(B):z?z[j.id]:void 0}},set:function(B,j){return V(this,B,j)}}:{add:function(B){return V(this,B,!0)}}),F}}},89378:function(i,d,t){var r=t(14304),n=t(66009),a=t(11286),o=t(13278),s=t(16142),u=t(31853),l=t(55902),v=t(12833),c=t(23583),g=t(5683),y=t(37540),p=t(72069),m=t(97494),S=t(78401),x=t(32345);i.exports=function(I,P,A){var R=I.indexOf("Map")!==-1,N=I.indexOf("Weak")!==-1,T=R?"set":"add",C=n[I],D=C&&C.prototype,L=C,F={},b=function(k){var J=a(D[k]);s(D,k,k==="add"?function(_){return J(this,_===0?0:_),this}:k==="delete"?function(et){return N&&!y(et)?!1:J(this,et===0?0:et)}:k==="get"?function(_){return N&&!y(_)?void 0:J(this,_===0?0:_)}:k==="has"?function(_){return N&&!y(_)?!1:J(this,_===0?0:_)}:function(_,dt){return J(this,_===0?0:_,dt),this})},w=o(I,!c(C)||!(N||D.forEach&&!p(function(){new C().entries().next()})));if(w)L=A.getConstructor(P,I,R,T),u.enable();else if(o(I,!0)){var V=new L,U=V[T](N?{}:-0,1)!==V,B=p(function(){V.has(1)}),j=m(function(k){new C(k)}),z=!N&&p(function(){for(var k=new C,J=5;J--;)k[T](J,J);return!k.has(-0)});j||(L=P(function(k,J){v(k,D);var et=x(new C,k,L);return g(J)||l(J,et[T],{that:et,AS_ENTRIES:R}),et}),L.prototype=D,D.constructor=L),(B||z)&&(b("delete"),b("has"),R&&b("get")),(z||U)&&b(T),N&&D.clear&&delete D.clear}return F[I]=L,r({global:!0,constructor:!0,forced:L!==C},F),S(L,I),N||A.setStrong(L,I,R),L}},93706:function(i,d,t){var r=t(94879),n=t(16885),a=t(71349),o=t(7831);i.exports=function(s,u,l){for(var v=n(u),c=o.f,g=a.f,y=0;y<v.length;y++){var p=v[y];!r(s,p)&&!(l&&r(l,p))&&c(s,p,g(u,p))}}},8790:function(i,d,t){var r=t(18565),n=r("match");i.exports=function(a){var o=/./;try{"/./"[a](o)}catch(s){try{return o[n]=!1,"/./"[a](o)}catch(u){}}return!1}},87501:function(i,d,t){var r=t(72069);i.exports=!r(function(){function n(){}return n.prototype.constructor=null,Object.getPrototypeOf(new n)!==n.prototype})},68422:function(i,d,t){var r=t(11286),n=t(2068),a=t(17361),o=/"/g,s=r("".replace);i.exports=function(u,l,v,c){var g=a(n(u)),y="<"+l;return v!==""&&(y+=" "+v+'="'+s(a(c),o,""")+'"'),y+">"+g+"</"+l+">"}},10659:function(i){i.exports=function(d,t){return{value:d,done:t}}},90809:function(i,d,t){var r=t(92986),n=t(7831),a=t(18526);i.exports=r?function(o,s,u){return n.f(o,s,a(1,u))}:function(o,s,u){return o[s]=u,o}},18526:function(i){i.exports=function(d,t){return{enumerable:!(d&1),configurable:!(d&2),writable:!(d&4),value:t}}},84082:function(i,d,t){var r=t(92986),n=t(7831),a=t(18526);i.exports=function(o,s,u){r?n.f(o,s,a(0,u)):o[s]=u}},11890:function(i,d,t){var r=t(11286),n=t(72069),a=t(61607).start,o=RangeError,s=isFinite,u=Math.abs,l=Date.prototype,v=l.toISOString,c=r(l.getTime),g=r(l.getUTCDate),y=r(l.getUTCFullYear),p=r(l.getUTCHours),m=r(l.getUTCMilliseconds),S=r(l.getUTCMinutes),x=r(l.getUTCMonth),I=r(l.getUTCSeconds);i.exports=n(function(){return v.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!n(function(){v.call(new Date(NaN))})?function(){if(!s(c(this)))throw new o("Invalid time value");var A=this,R=y(A),N=m(A),T=R<0?"-":R>9999?"+":"";return T+a(u(R),T?6:4,0)+"-"+a(x(A)+1,2,0)+"-"+a(g(A),2,0)+"T"+a(p(A),2,0)+":"+a(S(A),2,0)+":"+a(I(A),2,0)+"."+a(N,3,0)+"Z"}:v},84306:function(i,d,t){var r=t(25001),n=t(2064),a=TypeError;i.exports=function(o){if(r(this),o==="string"||o==="default")o="string";else if(o!=="number")throw new a("Incorrect hint");return n(this,o)}},85500:function(i,d,t){var r=t(13749),n=t(7831);i.exports=function(a,o,s){return s.get&&r(s.get,o,{getter:!0}),s.set&&r(s.set,o,{setter:!0}),n.f(a,o,s)}},16142:function(i,d,t){var r=t(23583),n=t(7831),a=t(13749),o=t(36003);i.exports=function(s,u,l,v){v||(v={});var c=v.enumerable,g=v.name!==void 0?v.name:u;if(r(l)&&a(l,g,v),v.global)c?s[u]=l:o(u,l);else{try{v.unsafe?s[u]&&(c=!0):delete s[u]}catch(y){}c?s[u]=l:n.f(s,u,{value:l,enumerable:!1,configurable:!v.nonConfigurable,writable:!v.nonWritable})}return s}},2725:function(i,d,t){var r=t(16142);i.exports=function(n,a,o){for(var s in a)r(n,s,a[s],o);return n}},36003:function(i,d,t){var r=t(66009),n=Object.defineProperty;i.exports=function(a,o){try{n(r,a,{value:o,configurable:!0,writable:!0})}catch(s){r[a]=o}return o}},12384:function(i,d,t){var r=t(82453),n=TypeError;i.exports=function(a,o){if(!delete a[o])throw new n("Cannot delete property "+r(o)+" of "+r(a))}},92986:function(i,d,t){var r=t(72069);i.exports=!r(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})},63741:function(i,d,t){var r=t(66009),n=t(18096),a=t(99050),o=r.structuredClone,s=r.ArrayBuffer,u=r.MessageChannel,l=!1,v,c,g,y;if(a)l=function(p){o(p,{transfer:[p]})};else if(s)try{u||(v=n("worker_threads"),v&&(u=v.MessageChannel)),u&&(c=new u,g=new s(2),y=function(p){c.port1.postMessage(null,[p])},g.byteLength===2&&(y(g),g.byteLength===0&&(l=y)))}catch(p){}i.exports=l},85501:function(i,d,t){var r=t(66009),n=t(37540),a=r.document,o=n(a)&&n(a.createElement);i.exports=function(s){return o?a.createElement(s):{}}},20095:function(i){var d=TypeError,t=9007199254740991;i.exports=function(r){if(r>t)throw d("Maximum allowed index exceeded");return r}},74408:function(i){i.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},93014:function(i){i.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},39882:function(i,d,t){var r=t(85501),n=r("span").classList,a=n&&n.constructor&&n.constructor.prototype;i.exports=a===Object.prototype?void 0:a},54040:function(i,d,t){var r=t(89042),n=r.match(/firefox\/(\d+)/i);i.exports=!!n&&+n[1]},63144:function(i,d,t){var r=t(56422),n=t(42954);i.exports=!r&&!n&&typeof window=="object"&&typeof document=="object"},5017:function(i){i.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"},56422:function(i){i.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},87216:function(i,d,t){var r=t(89042);i.exports=/MSIE|Trident/.test(r)},92150:function(i,d,t){var r=t(89042);i.exports=/ipad|iphone|ipod/i.test(r)&&typeof Pebble!="undefined"},51149:function(i,d,t){var r=t(89042);i.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},42954:function(i,d,t){var r=t(66009),n=t(14274);i.exports=n(r.process)==="process"},81539:function(i,d,t){var r=t(89042);i.exports=/web0s(?!.*chrome)/i.test(r)},89042:function(i){i.exports=typeof navigator!="undefined"&&String(navigator.userAgent)||""},73126:function(i,d,t){var r=t(66009),n=t(89042),a=r.process,o=r.Deno,s=a&&a.versions||o&&o.version,u=s&&s.v8,l,v;u&&(l=u.split("."),v=l[0]>0&&l[0]<4?1:+(l[0]+l[1])),!v&&n&&(l=n.match(/Edge\/(\d+)/),(!l||l[1]>=74)&&(l=n.match(/Chrome\/(\d+)/),l&&(v=+l[1]))),i.exports=v},68674:function(i,d,t){var r=t(89042),n=r.match(/AppleWebKit\/(\d+)\./);i.exports=!!n&&+n[1]},75785:function(i){i.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},40851:function(i,d,t){var r=t(11286),n=Error,a=r("".replace),o=function(l){return String(new n(l).stack)}("zxcasd"),s=/\n\s*at [^:]*:[^\n]*/,u=s.test(o);i.exports=function(l,v){if(u&&typeof l=="string"&&!n.prepareStackTrace)for(;v--;)l=a(l,s,"");return l}},97077:function(i,d,t){var r=t(90809),n=t(40851),a=t(16929),o=Error.captureStackTrace;i.exports=function(s,u,l,v){a&&(o?o(s,u):r(s,"stack",n(l,v)))}},16929:function(i,d,t){var r=t(72069),n=t(18526);i.exports=!r(function(){var a=new Error("a");return"stack"in a?(Object.defineProperty(a,"stack",n(1,7)),a.stack!==7):!0})},58434:function(i,d,t){var r=t(92986),n=t(72069),a=t(25001),o=t(15453),s=Error.prototype.toString,u=n(function(){if(r){var l=Object.create(Object.defineProperty({},"name",{get:function(){return this===l}}));if(s.call(l)!=="true")return!0}return s.call({message:1,name:2})!=="2: 1"||s.call({})!=="Error"});i.exports=u?function(){var v=a(this),c=o(v.name,"Error"),g=o(v.message);return c?g?c+": "+g:c:g}:s},14304:function(i,d,t){var r=t(66009),n=t(71349).f,a=t(90809),o=t(16142),s=t(36003),u=t(93706),l=t(13278);i.exports=function(v,c){var g=v.target,y=v.global,p=v.stat,m,S,x,I,P,A;if(y?S=r:p?S=r[g]||s(g,{}):S=r[g]&&r[g].prototype,S)for(x in c){if(P=c[x],v.dontCallGetSet?(A=n(S,x),I=A&&A.value):I=S[x],m=l(y?x:g+(p?".":"#")+x,v.forced),!m&&I!==void 0){if(typeof P==typeof I)continue;u(P,I)}(v.sham||I&&I.sham)&&a(P,"sham",!0),o(S,x,P,v)}}},72069:function(i){i.exports=function(d){try{return!!d()}catch(t){return!0}}},63194:function(i,d,t){t(31145);var r=t(96499),n=t(16142),a=t(44381),o=t(72069),s=t(18565),u=t(90809),l=s("species"),v=RegExp.prototype;i.exports=function(c,g,y,p){var m=s(c),S=!o(function(){var A={};return A[m]=function(){return 7},""[c](A)!==7}),x=S&&!o(function(){var A=!1,R=/a/;return c==="split"&&(R={},R.constructor={},R.constructor[l]=function(){return R},R.flags="",R[m]=/./[m]),R.exec=function(){return A=!0,null},R[m](""),!A});if(!S||!x||y){var I=/./[m],P=g(m,""[c],function(A,R,N,T,C){var D=R.exec;return D===a||D===v.exec?S&&!C?{done:!0,value:r(I,R,N,T)}:{done:!0,value:r(A,N,R,T)}:{done:!1}});n(String.prototype,c,P[0]),n(v,m,P[1])}p&&u(v[m],"sham",!0)}},53149:function(i,d,t){var r=t(3438),n=t(82628),a=t(20095),o=t(45526),s=function(u,l,v,c,g,y,p,m){for(var S=g,x=0,I=p?o(p,m):!1,P,A;x<c;)x in v&&(P=I?I(v[x],x,l):v[x],y>0&&r(P)?(A=n(P),S=s(u,l,P,A,S,y-1)-1):(a(S+1),u[S]=P),S++),x++;return S};i.exports=s},27534:function(i,d,t){var r=t(72069);i.exports=!r(function(){return Object.isExtensible(Object.preventExtensions({}))})},66543:function(i,d,t){var r=t(87878),n=Function.prototype,a=n.apply,o=n.call;i.exports=typeof Reflect=="object"&&Reflect.apply||(r?o.bind(a):function(){return o.apply(a,arguments)})},45526:function(i,d,t){var r=t(77422),n=t(85156),a=t(87878),o=r(r.bind);i.exports=function(s,u){return n(s),u===void 0?s:a?o(s,u):function(){return s.apply(u,arguments)}}},87878:function(i,d,t){var r=t(72069);i.exports=!r(function(){var n=function(){}.bind();return typeof n!="function"||n.hasOwnProperty("prototype")})},91384:function(i,d,t){var r=t(11286),n=t(85156),a=t(37540),o=t(94879),s=t(22806),u=t(87878),l=Function,v=r([].concat),c=r([].join),g={},y=function(p,m,S){if(!o(g,m)){for(var x=[],I=0;I<m;I++)x[I]="a["+I+"]";g[m]=l("C,a","return new C("+c(x,",")+")")}return g[m](p,S)};i.exports=u?l.bind:function(m){var S=n(this),x=S.prototype,I=s(arguments,1),P=function(){var R=v(I,s(arguments));return this instanceof P?y(S,R.length,R):S.apply(m,R)};return a(x)&&(P.prototype=x),P}},96499:function(i,d,t){var r=t(87878),n=Function.prototype.call;i.exports=r?n.bind(n):function(){return n.apply(n,arguments)}},86588:function(i,d,t){var r=t(92986),n=t(94879),a=Function.prototype,o=r&&Object.getOwnPropertyDescriptor,s=n(a,"name"),u=s&&function(){}.name==="something",l=s&&(!r||r&&o(a,"name").configurable);i.exports={EXISTS:s,PROPER:u,CONFIGURABLE:l}},84756:function(i,d,t){var r=t(11286),n=t(85156);i.exports=function(a,o,s){try{return r(n(Object.getOwnPropertyDescriptor(a,o)[s]))}catch(u){}}},77422:function(i,d,t){var r=t(14274),n=t(11286);i.exports=function(a){if(r(a)==="Function")return n(a)}},11286:function(i,d,t){var r=t(87878),n=Function.prototype,a=n.call,o=r&&n.bind.bind(a,a);i.exports=r?o:function(s){return function(){return a.apply(s,arguments)}}},65470:function(i,d,t){var r=t(66009);i.exports=function(n,a){var o=r[n],s=o&&o.prototype;return s&&s[a]}},38941:function(i,d,t){var r=t(66009),n=t(23583),a=function(o){return n(o)?o:void 0};i.exports=function(o,s){return arguments.length<2?a(r[o]):r[o]&&r[o][s]}},10613:function(i){i.exports=function(d){return{iterator:d,next:d.next,done:!1}}},81077:function(i,d,t){var r=t(9205),n=t(10512),a=t(5683),o=t(29107),s=t(18565),u=s("iterator");i.exports=function(l){if(!a(l))return n(l,u)||n(l,"@@iterator")||o[r(l)]}},90619:function(i,d,t){var r=t(96499),n=t(85156),a=t(25001),o=t(82453),s=t(81077),u=TypeError;i.exports=function(l,v){var c=arguments.length<2?s(l):v;if(n(c))return a(r(c,l));throw new u(o(l)+" is not iterable")}},10443:function(i,d,t){var r=t(11286),n=t(3438),a=t(23583),o=t(14274),s=t(17361),u=r([].push);i.exports=function(l){if(a(l))return l;if(n(l)){for(var v=l.length,c=[],g=0;g<v;g++){var y=l[g];typeof y=="string"?u(c,y):(typeof y=="number"||o(y)==="Number"||o(y)==="String")&&u(c,s(y))}var p=c.length,m=!0;return function(S,x){if(m)return m=!1,x;if(n(this))return x;for(var I=0;I<p;I++)if(c[I]===S)return x}}}},10512:function(i,d,t){var r=t(85156),n=t(5683);i.exports=function(a,o){var s=a[o];return n(s)?void 0:r(s)}},65263:function(i,d,t){var r=t(85156),n=t(25001),a=t(96499),o=t(12105),s=t(10613),u="Invalid size",l=RangeError,v=TypeError,c=Math.max,g=function(y,p){this.set=y,this.size=c(p,0),this.has=r(y.has),this.keys=r(y.keys)};g.prototype={getIterator:function(){return s(n(a(this.keys,this.set)))},includes:function(y){return a(this.has,this.set,y)}},i.exports=function(y){n(y);var p=+y.size;if(p!==p)throw new v(u);var m=o(p);if(m<0)throw new l(u);return new g(y,m)}},38368:function(i,d,t){var r=t(11286),n=t(49671),a=Math.floor,o=r("".charAt),s=r("".replace),u=r("".slice),l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,v=/\$([$&'`]|\d{1,2})/g;i.exports=function(c,g,y,p,m,S){var x=y+c.length,I=p.length,P=v;return m!==void 0&&(m=n(m),P=l),s(S,P,function(A,R){var N;switch(o(R,0)){case"$":return"$";case"&":return c;case"`":return u(g,0,y);case"'":return u(g,x);case"<":N=m[u(R,1,-1)];break;default:var T=+R;if(T===0)return A;if(T>I){var C=a(T/10);return C===0?A:C<=I?p[C-1]===void 0?o(R,1):p[C-1]+o(R,1):A}N=p[T-1]}return N===void 0?"":N})}},66009:function(i){var d=function(t){return t&&t.Math===Math&&t};i.exports=d(typeof globalThis=="object"&&globalThis)||d(typeof window=="object"&&window)||d(typeof self=="object"&&self)||d(typeof global=="object"&&global)||d(typeof this=="object"&&this)||function(){return this}()||Function("return this")()},94879:function(i,d,t){var r=t(11286),n=t(49671),a=r({}.hasOwnProperty);i.exports=Object.hasOwn||function(s,u){return a(n(s),u)}},19423:function(i){i.exports={}},99095:function(i){i.exports=function(d,t){try{arguments.length===1?console.error(d):console.error(d,t)}catch(r){}}},96439:function(i,d,t){var r=t(38941);i.exports=r("document","documentElement")},52515:function(i,d,t){var r=t(92986),n=t(72069),a=t(85501);i.exports=!r&&!n(function(){return Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a!==7})},25212:function(i){var d=Array,t=Math.abs,r=Math.pow,n=Math.floor,a=Math.log,o=Math.LN2,s=function(l,v,c){var g=d(c),y=c*8-v-1,p=(1<<y)-1,m=p>>1,S=v===23?r(2,-24)-r(2,-77):0,x=l<0||l===0&&1/l<0?1:0,I=0,P,A,R;for(l=t(l),l!==l||l===1/0?(A=l!==l?1:0,P=p):(P=n(a(l)/o),R=r(2,-P),l*R<1&&(P--,R*=2),P+m>=1?l+=S/R:l+=S*r(2,1-m),l*R>=2&&(P++,R/=2),P+m>=p?(A=0,P=p):P+m>=1?(A=(l*R-1)*r(2,v),P+=m):(A=l*r(2,m-1)*r(2,v),P=0));v>=8;)g[I++]=A&255,A/=256,v-=8;for(P=P<<v|A,y+=v;y>0;)g[I++]=P&255,P/=256,y-=8;return g[--I]|=x*128,g},u=function(l,v){var c=l.length,g=c*8-v-1,y=(1<<g)-1,p=y>>1,m=g-7,S=c-1,x=l[S--],I=x&127,P;for(x>>=7;m>0;)I=I*256+l[S--],m-=8;for(P=I&(1<<-m)-1,I>>=-m,m+=v;m>0;)P=P*256+l[S--],m-=8;if(I===0)I=1-p;else{if(I===y)return P?NaN:x?-1/0:1/0;P+=r(2,v),I-=p}return(x?-1:1)*P*r(2,I-v)};i.exports={pack:s,unpack:u}},72181:function(i,d,t){var r=t(11286),n=t(72069),a=t(14274),o=Object,s=r("".split);i.exports=n(function(){return!o("z").propertyIsEnumerable(0)})?function(u){return a(u)==="String"?s(u,""):o(u)}:o},32345:function(i,d,t){var r=t(23583),n=t(37540),a=t(15861);i.exports=function(o,s,u){var l,v;return a&&r(l=s.constructor)&&l!==u&&n(v=l.prototype)&&v!==u.prototype&&a(o,v),o}},84352:function(i,d,t){var r=t(11286),n=t(23583),a=t(70443),o=r(Function.toString);n(a.inspectSource)||(a.inspectSource=function(s){return o(s)}),i.exports=a.inspectSource},31486:function(i,d,t){var r=t(37540),n=t(90809);i.exports=function(a,o){r(o)&&"cause"in o&&n(a,"cause",o.cause)}},31853:function(i,d,t){var r=t(14304),n=t(11286),a=t(19423),o=t(37540),s=t(94879),u=t(7831).f,l=t(83258),v=t(92880),c=t(28174),g=t(36374),y=t(27534),p=!1,m=g("meta"),S=0,x=function(T){u(T,m,{value:{objectID:"O"+S++,weakData:{}}})},I=function(T,C){if(!o(T))return typeof T=="symbol"?T:(typeof T=="string"?"S":"P")+T;if(!s(T,m)){if(!c(T))return"F";if(!C)return"E";x(T)}return T[m].objectID},P=function(T,C){if(!s(T,m)){if(!c(T))return!0;if(!C)return!1;x(T)}return T[m].weakData},A=function(T){return y&&p&&c(T)&&!s(T,m)&&x(T),T},R=function(){N.enable=function(){},p=!0;var T=l.f,C=n([].splice),D={};D[m]=1,T(D).length&&(l.f=function(L){for(var F=T(L),b=0,w=F.length;b<w;b++)if(F[b]===m){C(F,b,1);break}return F},r({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:v.f}))},N=i.exports={enable:R,fastKey:I,getWeakData:P,onFreeze:A};a[m]=!0},82367:function(i,d,t){var r=t(42960),n=t(66009),a=t(37540),o=t(90809),s=t(94879),u=t(70443),l=t(44869),v=t(19423),c="Object already initialized",g=n.TypeError,y=n.WeakMap,p,m,S,x=function(R){return S(R)?m(R):p(R,{})},I=function(R){return function(N){var T;if(!a(N)||(T=m(N)).type!==R)throw new g("Incompatible receiver, "+R+" required");return T}};if(r||u.state){var P=u.state||(u.state=new y);P.get=P.get,P.has=P.has,P.set=P.set,p=function(R,N){if(P.has(R))throw new g(c);return N.facade=R,P.set(R,N),N},m=function(R){return P.get(R)||{}},S=function(R){return P.has(R)}}else{var A=l("state");v[A]=!0,p=function(R,N){if(s(R,A))throw new g(c);return N.facade=R,o(R,A,N),N},m=function(R){return s(R,A)?R[A]:{}},S=function(R){return s(R,A)}}i.exports={set:p,get:m,has:S,enforce:x,getterFor:I}},48199:function(i,d,t){var r=t(18565),n=t(29107),a=r("iterator"),o=Array.prototype;i.exports=function(s){return s!==void 0&&(n.Array===s||o[a]===s)}},3438:function(i,d,t){var r=t(14274);i.exports=Array.isArray||function(a){return r(a)==="Array"}},77129:function(i,d,t){var r=t(9205);i.exports=function(n){var a=r(n);return a==="BigInt64Array"||a==="BigUint64Array"}},23583:function(i){var d=typeof document=="object"&&document.all;i.exports=typeof d=="undefined"&&d!==void 0?function(t){return typeof t=="function"||t===d}:function(t){return typeof t=="function"}},11051:function(i,d,t){var r=t(11286),n=t(72069),a=t(23583),o=t(9205),s=t(38941),u=t(84352),l=function(){},v=s("Reflect","construct"),c=/^\s*(?:class|function)\b/,g=r(c.exec),y=!c.test(l),p=function(x){if(!a(x))return!1;try{return v(l,[],x),!0}catch(I){return!1}},m=function(x){if(!a(x))return!1;switch(o(x)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return y||!!g(c,u(x))}catch(I){return!0}};m.sham=!0,i.exports=!v||n(function(){var S;return p(p.call)||!p(Object)||!p(function(){S=!0})||S})?m:p},69745:function(i,d,t){var r=t(94879);i.exports=function(n){return n!==void 0&&(r(n,"value")||r(n,"writable"))}},13278:function(i,d,t){var r=t(72069),n=t(23583),a=/#|\.prototype\./,o=function(c,g){var y=u[s(c)];return y===v?!0:y===l?!1:n(g)?r(g):!!g},s=o.normalize=function(c){return String(c).replace(a,".").toLowerCase()},u=o.data={},l=o.NATIVE="N",v=o.POLYFILL="P";i.exports=o},613:function(i,d,t){var r=t(37540),n=Math.floor;i.exports=Number.isInteger||function(o){return!r(o)&&isFinite(o)&&n(o)===o}},5683:function(i){i.exports=function(d){return d==null}},37540:function(i,d,t){var r=t(23583);i.exports=function(n){return typeof n=="object"?n!==null:r(n)}},52427:function(i,d,t){var r=t(37540);i.exports=function(n){return r(n)||n===null}},70457:function(i){i.exports=!1},11566:function(i,d,t){var r=t(37540),n=t(14274),a=t(18565),o=a("match");i.exports=function(s){var u;return r(s)&&((u=s[o])!==void 0?!!u:n(s)==="RegExp")}},491:function(i,d,t){var r=t(38941),n=t(23583),a=t(95307),o=t(50234),s=Object;i.exports=o?function(u){return typeof u=="symbol"}:function(u){var l=r("Symbol");return n(l)&&a(l.prototype,s(u))}},9573:function(i,d,t){var r=t(96499);i.exports=function(n,a,o){for(var s=o?n:n.iterator,u=n.next,l,v;!(l=r(u,s)).done;)if(v=a(l.value),v!==void 0)return v}},55902:function(i,d,t){var r=t(45526),n=t(96499),a=t(25001),o=t(82453),s=t(48199),u=t(82628),l=t(95307),v=t(90619),c=t(81077),g=t(99797),y=TypeError,p=function(S,x){this.stopped=S,this.result=x},m=p.prototype;i.exports=function(S,x,I){var P=I&&I.that,A=!!(I&&I.AS_ENTRIES),R=!!(I&&I.IS_RECORD),N=!!(I&&I.IS_ITERATOR),T=!!(I&&I.INTERRUPTED),C=r(x,P),D,L,F,b,w,V,U,B=function(z){return D&&g(D,"normal",z),new p(!0,z)},j=function(z){return A?(a(z),T?C(z[0],z[1],B):C(z[0],z[1])):T?C(z,B):C(z)};if(R)D=S.iterator;else if(N)D=S;else{if(L=c(S),!L)throw new y(o(S)+" is not iterable");if(s(L)){for(F=0,b=u(S);b>F;F++)if(w=j(S[F]),w&&l(m,w))return w;return new p(!1)}D=v(S,L)}for(V=R?S.next:D.next;!(U=n(V,D)).done;){try{w=j(U.value)}catch(z){g(D,"throw",z)}if(typeof w=="object"&&w&&l(m,w))return w}return new p(!1)}},99797:function(i,d,t){var r=t(96499),n=t(25001),a=t(10512);i.exports=function(o,s,u){var l,v;n(o);try{if(l=a(o,"return"),!l){if(s==="throw")throw u;return u}l=r(l,o)}catch(c){v=!0,l=c}if(s==="throw")throw u;if(v)throw l;return n(l),u}},26820:function(i,d,t){var r=t(24519).IteratorPrototype,n=t(5406),a=t(18526),o=t(78401),s=t(29107),u=function(){return this};i.exports=function(l,v,c,g){var y=v+" Iterator";return l.prototype=n(r,{next:a(+!g,c)}),o(l,y,!1,!0),s[y]=u,l}},10218:function(i,d,t){var r=t(14304),n=t(96499),a=t(70457),o=t(86588),s=t(23583),u=t(26820),l=t(26313),v=t(15861),c=t(78401),g=t(90809),y=t(16142),p=t(18565),m=t(29107),S=t(24519),x=o.PROPER,I=o.CONFIGURABLE,P=S.IteratorPrototype,A=S.BUGGY_SAFARI_ITERATORS,R=p("iterator"),N="keys",T="values",C="entries",D=function(){return this};i.exports=function(L,F,b,w,V,U,B){u(b,F,w);var j=function(Ot){if(Ot===V&&_)return _;if(!A&&Ot&&Ot in J)return J[Ot];switch(Ot){case N:return function(){return new b(this,Ot)};case T:return function(){return new b(this,Ot)};case C:return function(){return new b(this,Ot)}}return function(){return new b(this)}},z=F+" Iterator",k=!1,J=L.prototype,et=J[R]||J["@@iterator"]||V&&J[V],_=!A&&et||j(V),dt=F==="Array"&&J.entries||et,lt,pt,St;if(dt&&(lt=l(dt.call(new L)),lt!==Object.prototype&<.next&&(!a&&l(lt)!==P&&(v?v(lt,P):s(lt[R])||y(lt,R,D)),c(lt,z,!0,!0),a&&(m[z]=D))),x&&V===T&&et&&et.name!==T&&(!a&&I?g(J,"name",T):(k=!0,_=function(){return n(et,this)})),V)if(pt={values:j(T),keys:U?_:j(N),entries:j(C)},B)for(St in pt)(A||k||!(St in J))&&y(J,St,pt[St]);else r({target:F,proto:!0,forced:A||k},pt);return(!a||B)&&J[R]!==_&&y(J,R,_,{name:V}),m[F]=_,pt}},24519:function(i,d,t){var r=t(72069),n=t(23583),a=t(37540),o=t(5406),s=t(26313),u=t(16142),l=t(18565),v=t(70457),c=l("iterator"),g=!1,y,p,m;[].keys&&(m=[].keys(),"next"in m?(p=s(s(m)),p!==Object.prototype&&(y=p)):g=!0);var S=!a(y)||r(function(){var x={};return y[c].call(x)!==x});S?y={}:v&&(y=o(y)),n(y[c])||u(y,c,function(){return this}),i.exports={IteratorPrototype:y,BUGGY_SAFARI_ITERATORS:g}},29107:function(i){i.exports={}},82628:function(i,d,t){var r=t(45344);i.exports=function(n){return r(n.length)}},13749:function(i,d,t){var r=t(11286),n=t(72069),a=t(23583),o=t(94879),s=t(92986),u=t(86588).CONFIGURABLE,l=t(84352),v=t(82367),c=v.enforce,g=v.get,y=String,p=Object.defineProperty,m=r("".slice),S=r("".replace),x=r([].join),I=s&&!n(function(){return p(function(){},"length",{value:8}).length!==8}),P=String(String).split("String"),A=i.exports=function(R,N,T){m(y(N),0,7)==="Symbol("&&(N="["+S(y(N),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),T&&T.getter&&(N="get "+N),T&&T.setter&&(N="set "+N),(!o(R,"name")||u&&R.name!==N)&&(s?p(R,"name",{value:N,configurable:!0}):R.name=N),I&&T&&o(T,"arity")&&R.length!==T.arity&&p(R,"length",{value:T.arity});try{T&&o(T,"constructor")&&T.constructor?s&&p(R,"prototype",{writable:!1}):R.prototype&&(R.prototype=void 0)}catch(D){}var C=c(R);return o(C,"source")||(C.source=x(P,typeof N=="string"?N:"")),R};Function.prototype.toString=A(function(){return a(this)&&g(this).source||l(this)},"toString")},1774:function(i,d,t){var r=t(11286),n=Map.prototype;i.exports={Map,set:r(n.set),get:r(n.get),has:r(n.has),remove:r(n.delete),proto:n}},98940:function(i){var d=Math.expm1,t=Math.exp;i.exports=!d||d(10)>22025.465794806718||d(10)<22025.465794806718||d(-2e-17)!==-2e-17?function(n){var a=+n;return a===0?a:a>-1e-6&&a<1e-6?a+a*a/2:t(a)-1}:d},10418:function(i,d,t){var r=t(93976),n=Math.abs,a=2220446049250313e-31,o=1/a,s=function(u){return u+o-o};i.exports=function(u,l,v,c){var g=+u,y=n(g),p=r(g);if(y<c)return p*s(y/c/l)*c*l;var m=(1+l/a)*y,S=m-(m-y);return S>v||S!==S?p*(1/0):p*S}},93279:function(i,d,t){var r=t(10418),n=11920928955078125e-23,a=34028234663852886e22,o=11754943508222875e-54;i.exports=Math.fround||function(u){return r(u,n,a,o)}},41942:function(i){var d=Math.log,t=Math.LOG10E;i.exports=Math.log10||function(n){return d(n)*t}},49366:function(i){var d=Math.log;i.exports=Math.log1p||function(r){var n=+r;return n>-1e-8&&n<1e-8?n-n*n/2:d(1+n)}},93976:function(i){i.exports=Math.sign||function(t){var r=+t;return r===0||r!==r?r:r<0?-1:1}},22459:function(i){var d=Math.ceil,t=Math.floor;i.exports=Math.trunc||function(n){var a=+n;return(a>0?t:d)(a)}},9709:function(i,d,t){var r=t(66009),n=t(28167),a=t(45526),o=t(23115).set,s=t(76895),u=t(51149),l=t(92150),v=t(81539),c=t(42954),g=r.MutationObserver||r.WebKitMutationObserver,y=r.document,p=r.process,m=r.Promise,S=n("queueMicrotask"),x,I,P,A,R;if(!S){var N=new s,T=function(){var C,D;for(c&&(C=p.domain)&&C.exit();D=N.get();)try{D()}catch(L){throw N.head&&x(),L}C&&C.enter()};!u&&!c&&!v&&g&&y?(I=!0,P=y.createTextNode(""),new g(T).observe(P,{characterData:!0}),x=function(){P.data=I=!I}):!l&&m&&m.resolve?(A=m.resolve(void 0),A.constructor=m,R=a(A.then,A),x=function(){R(T)}):c?x=function(){p.nextTick(T)}:(o=a(o,r),x=function(){o(T)}),S=function(C){N.head||x(),N.add(C)}}i.exports=S},24649:function(i,d,t){var r=t(85156),n=TypeError,a=function(o){var s,u;this.promise=new o(function(l,v){if(s!==void 0||u!==void 0)throw new n("Bad Promise constructor");s=l,u=v}),this.resolve=r(s),this.reject=r(u)};i.exports.f=function(o){return new a(o)}},15453:function(i,d,t){var r=t(17361);i.exports=function(n,a){return n===void 0?arguments.length<2?"":a:r(n)}},92337:function(i,d,t){var r=t(11566),n=TypeError;i.exports=function(a){if(r(a))throw new n("The method doesn't accept regular expressions");return a}},98074:function(i,d,t){var r=t(66009),n=r.isFinite;i.exports=Number.isFinite||function(o){return typeof o=="number"&&n(o)}},25838:function(i,d,t){var r=t(66009),n=t(72069),a=t(11286),o=t(17361),s=t(85900).trim,u=t(77082),l=a("".charAt),v=r.parseFloat,c=r.Symbol,g=c&&c.iterator,y=1/v(u+"-0")!==-1/0||g&&!n(function(){v(Object(g))});i.exports=y?function(m){var S=s(o(m)),x=v(S);return x===0&&l(S,0)==="-"?-0:x}:v},23009:function(i,d,t){var r=t(66009),n=t(72069),a=t(11286),o=t(17361),s=t(85900).trim,u=t(77082),l=r.parseInt,v=r.Symbol,c=v&&v.iterator,g=/^[+-]?0x/i,y=a(g.exec),p=l(u+"08")!==8||l(u+"0x16")!==22||c&&!n(function(){l(Object(c))});i.exports=p?function(S,x){var I=s(o(S));return l(I,x>>>0||(y(g,I)?16:10))}:l},16667:function(i,d,t){var r=t(92986),n=t(11286),a=t(96499),o=t(72069),s=t(18350),u=t(24943),l=t(79591),v=t(49671),c=t(72181),g=Object.assign,y=Object.defineProperty,p=n([].concat);i.exports=!g||o(function(){if(r&&g({b:1},g(y({},"a",{enumerable:!0,get:function(){y(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var m={},S={},x=Symbol("assign detection"),I="abcdefghijklmnopqrst";return m[x]=7,I.split("").forEach(function(P){S[P]=P}),g({},m)[x]!==7||s(g({},S)).join("")!==I})?function(S,x){for(var I=v(S),P=arguments.length,A=1,R=u.f,N=l.f;P>A;)for(var T=c(arguments[A++]),C=R?p(s(T),R(T)):s(T),D=C.length,L=0,F;D>L;)F=C[L++],(!r||a(N,T,F))&&(I[F]=T[F]);return I}:g},5406:function(i,d,t){var r=t(25001),n=t(61963),a=t(75785),o=t(19423),s=t(96439),u=t(85501),l=t(44869),v=">",c="<",g="prototype",y="script",p=l("IE_PROTO"),m=function(){},S=function(R){return c+y+v+R+c+"/"+y+v},x=function(R){R.write(S("")),R.close();var N=R.parentWindow.Object;return R=null,N},I=function(){var R=u("iframe"),N="java"+y+":",T;return R.style.display="none",s.appendChild(R),R.src=String(N),T=R.contentWindow.document,T.open(),T.write(S("document.F=Object")),T.close(),T.F},P,A=function(){try{P=new ActiveXObject("htmlfile")}catch(N){}A=typeof document!="undefined"?document.domain&&P?x(P):I():x(P);for(var R=a.length;R--;)delete A[g][a[R]];return A()};o[p]=!0,i.exports=Object.create||function(N,T){var C;return N!==null?(m[g]=r(N),C=new m,m[g]=null,C[p]=N):C=A(),T===void 0?C:n.f(C,T)}},61963:function(i,d,t){var r=t(92986),n=t(356),a=t(7831),o=t(25001),s=t(36859),u=t(18350);d.f=r&&!n?Object.defineProperties:function(v,c){o(v);for(var g=s(c),y=u(c),p=y.length,m=0,S;p>m;)a.f(v,S=y[m++],g[S]);return v}},7831:function(i,d,t){var r=t(92986),n=t(52515),a=t(356),o=t(25001),s=t(50035),u=TypeError,l=Object.defineProperty,v=Object.getOwnPropertyDescriptor,c="enumerable",g="configurable",y="writable";d.f=r?a?function(m,S,x){if(o(m),S=s(S),o(x),typeof m=="function"&&S==="prototype"&&"value"in x&&y in x&&!x[y]){var I=v(m,S);I&&I[y]&&(m[S]=x.value,x={configurable:g in x?x[g]:I[g],enumerable:c in x?x[c]:I[c],writable:!1})}return l(m,S,x)}:l:function(m,S,x){if(o(m),S=s(S),o(x),n)try{return l(m,S,x)}catch(I){}if("get"in x||"set"in x)throw new u("Accessors not supported");return"value"in x&&(m[S]=x.value),m}},71349:function(i,d,t){var r=t(92986),n=t(96499),a=t(79591),o=t(18526),s=t(36859),u=t(50035),l=t(94879),v=t(52515),c=Object.getOwnPropertyDescriptor;d.f=r?c:function(y,p){if(y=s(y),p=u(p),v)try{return c(y,p)}catch(m){}if(l(y,p))return o(!n(a.f,y,p),y[p])}},92880:function(i,d,t){var r=t(14274),n=t(36859),a=t(83258).f,o=t(22806),s=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(l){try{return a(l)}catch(v){return o(s)}};i.exports.f=function(v){return s&&r(v)==="Window"?u(v):a(n(v))}},83258:function(i,d,t){var r=t(6242),n=t(75785),a=n.concat("length","prototype");d.f=Object.getOwnPropertyNames||function(s){return r(s,a)}},24943:function(i,d){d.f=Object.getOwnPropertySymbols},26313:function(i,d,t){var r=t(94879),n=t(23583),a=t(49671),o=t(44869),s=t(87501),u=o("IE_PROTO"),l=Object,v=l.prototype;i.exports=s?l.getPrototypeOf:function(c){var g=a(c);if(r(g,u))return g[u];var y=g.constructor;return n(y)&&g instanceof y?y.prototype:g instanceof l?v:null}},28174:function(i,d,t){var r=t(72069),n=t(37540),a=t(14274),o=t(72058),s=Object.isExtensible,u=r(function(){s(1)});i.exports=u||o?function(v){return!n(v)||o&&a(v)==="ArrayBuffer"?!1:s?s(v):!0}:s},95307:function(i,d,t){var r=t(11286);i.exports=r({}.isPrototypeOf)},6242:function(i,d,t){var r=t(11286),n=t(94879),a=t(36859),o=t(94319).indexOf,s=t(19423),u=r([].push);i.exports=function(l,v){var c=a(l),g=0,y=[],p;for(p in c)!n(s,p)&&n(c,p)&&u(y,p);for(;v.length>g;)n(c,p=v[g++])&&(~o(y,p)||u(y,p));return y}},18350:function(i,d,t){var r=t(6242),n=t(75785);i.exports=Object.keys||function(o){return r(o,n)}},79591:function(i,d){var t={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,n=r&&!t.call({1:2},1);d.f=n?function(o){var s=r(this,o);return!!s&&s.enumerable}:t},57629:function(i,d,t){var r=t(70457),n=t(66009),a=t(72069),o=t(68674);i.exports=r||!a(function(){if(!(o&&o<535)){var s=Math.random();__defineSetter__.call(null,s,function(){}),delete n[s]}})},15861:function(i,d,t){var r=t(84756),n=t(37540),a=t(2068),o=t(53408);i.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var s=!1,u={},l;try{l=r(Object.prototype,"__proto__","set"),l(u,[]),s=u instanceof Array}catch(v){}return function(c,g){return a(c),o(g),n(c)&&(s?l(c,g):c.__proto__=g),c}}():void 0)},8511:function(i,d,t){var r=t(92986),n=t(72069),a=t(11286),o=t(26313),s=t(18350),u=t(36859),l=t(79591).f,v=a(l),c=a([].push),g=r&&n(function(){var p=Object.create(null);return p[2]=2,!v(p,2)}),y=function(p){return function(m){for(var S=u(m),x=s(S),I=g&&o(S)===null,P=x.length,A=0,R=[],N;P>A;)N=x[A++],(!r||(I?N in S:v(S,N)))&&c(R,p?[N,S[N]]:S[N]);return R}};i.exports={entries:y(!0),values:y(!1)}},60105:function(i,d,t){var r=t(67878),n=t(9205);i.exports=r?{}.toString:function(){return"[object "+n(this)+"]"}},2064:function(i,d,t){var r=t(96499),n=t(23583),a=t(37540),o=TypeError;i.exports=function(s,u){var l,v;if(u==="string"&&n(l=s.toString)&&!a(v=r(l,s))||n(l=s.valueOf)&&!a(v=r(l,s))||u!=="string"&&n(l=s.toString)&&!a(v=r(l,s)))return v;throw new o("Can't convert object to primitive value")}},16885:function(i,d,t){var r=t(38941),n=t(11286),a=t(83258),o=t(24943),s=t(25001),u=n([].concat);i.exports=r("Reflect","ownKeys")||function(v){var c=a.f(s(v)),g=o.f;return g?u(c,g(v)):c}},75081:function(i,d,t){var r=t(66009);i.exports=r},67805:function(i){i.exports=function(d){try{return{error:!1,value:d()}}catch(t){return{error:!0,value:t}}}},37130:function(i,d,t){var r=t(66009),n=t(98844),a=t(23583),o=t(13278),s=t(84352),u=t(18565),l=t(63144),v=t(56422),c=t(70457),g=t(73126),y=n&&n.prototype,p=u("species"),m=!1,S=a(r.PromiseRejectionEvent),x=o("Promise",function(){var I=s(n),P=I!==String(n);if(!P&&g===66||c&&!(y.catch&&y.finally))return!0;if(!g||g<51||!/native code/.test(I)){var A=new n(function(T){T(1)}),R=function(T){T(function(){},function(){})},N=A.constructor={};if(N[p]=R,m=A.then(function(){})instanceof R,!m)return!0}return!P&&(l||v)&&!S});i.exports={CONSTRUCTOR:x,REJECTION_EVENT:S,SUBCLASSING:m}},98844:function(i,d,t){var r=t(66009);i.exports=r.Promise},87408:function(i,d,t){var r=t(25001),n=t(37540),a=t(24649);i.exports=function(o,s){if(r(o),n(s)&&s.constructor===o)return s;var u=a.f(o),l=u.resolve;return l(s),u.promise}},26035:function(i,d,t){var r=t(98844),n=t(97494),a=t(37130).CONSTRUCTOR;i.exports=a||!n(function(o){r.all(o).then(void 0,function(){})})},2594:function(i,d,t){var r=t(7831).f;i.exports=function(n,a,o){o in n||r(n,o,{configurable:!0,get:function(){return a[o]},set:function(s){a[o]=s}})}},76895:function(i){var d=function(){this.head=null,this.tail=null};d.prototype={add:function(t){var r={item:t,next:null},n=this.tail;n?n.next=r:this.head=r,this.tail=r},get:function(){var t=this.head;if(t){var r=this.head=t.next;return r===null&&(this.tail=null),t.item}}},i.exports=d},33064:function(i,d,t){var r=t(96499),n=t(25001),a=t(23583),o=t(14274),s=t(44381),u=TypeError;i.exports=function(l,v){var c=l.exec;if(a(c)){var g=r(c,l,v);return g!==null&&n(g),g}if(o(l)==="RegExp")return r(s,l,v);throw new u("RegExp#exec called on incompatible receiver")}},44381:function(i,d,t){var r=t(96499),n=t(11286),a=t(17361),o=t(29833),s=t(39807),u=t(96731),l=t(5406),v=t(82367).get,c=t(76769),g=t(85220),y=u("native-string-replace",String.prototype.replace),p=RegExp.prototype.exec,m=p,S=n("".charAt),x=n("".indexOf),I=n("".replace),P=n("".slice),A=function(){var C=/a/,D=/b*/g;return r(p,C,"a"),r(p,D,"a"),C.lastIndex!==0||D.lastIndex!==0}(),R=s.BROKEN_CARET,N=/()??/.exec("")[1]!==void 0,T=A||N||R||c||g;T&&(m=function(D){var L=this,F=v(L),b=a(D),w=F.raw,V,U,B,j,z,k,J;if(w)return w.lastIndex=L.lastIndex,V=r(m,w,b),L.lastIndex=w.lastIndex,V;var et=F.groups,_=R&&L.sticky,dt=r(o,L),lt=L.source,pt=0,St=b;if(_&&(dt=I(dt,"y",""),x(dt,"g")===-1&&(dt+="g"),St=P(b,L.lastIndex),L.lastIndex>0&&(!L.multiline||L.multiline&&S(b,L.lastIndex-1)!==` +`)&&(lt="(?: "+lt+")",St=" "+St,pt++),U=new RegExp("^(?:"+lt+")",dt)),N&&(U=new RegExp("^"+lt+"$(?!\\s)",dt)),A&&(B=L.lastIndex),j=r(p,_?U:L,St),_?j?(j.input=P(j.input,pt),j[0]=P(j[0],pt),j.index=L.lastIndex,L.lastIndex+=j[0].length):L.lastIndex=0:A&&j&&(L.lastIndex=L.global?j.index+j[0].length:B),N&&j&&j.length>1&&r(y,j[0],U,function(){for(z=1;z<arguments.length-2;z++)arguments[z]===void 0&&(j[z]=void 0)}),j&&et)for(j.groups=k=l(null),z=0;z<et.length;z++)J=et[z],k[J[0]]=j[J[1]];return j}),i.exports=m},29833:function(i,d,t){var r=t(25001);i.exports=function(){var n=r(this),a="";return n.hasIndices&&(a+="d"),n.global&&(a+="g"),n.ignoreCase&&(a+="i"),n.multiline&&(a+="m"),n.dotAll&&(a+="s"),n.unicode&&(a+="u"),n.unicodeSets&&(a+="v"),n.sticky&&(a+="y"),a}},54932:function(i,d,t){var r=t(96499),n=t(94879),a=t(95307),o=t(29833),s=RegExp.prototype;i.exports=function(u){var l=u.flags;return l===void 0&&!("flags"in s)&&!n(u,"flags")&&a(s,u)?r(o,u):l}},39807:function(i,d,t){var r=t(72069),n=t(66009),a=n.RegExp,o=r(function(){var l=a("a","y");return l.lastIndex=2,l.exec("abcd")!==null}),s=o||r(function(){return!a("a","y").sticky}),u=o||r(function(){var l=a("^r","gy");return l.lastIndex=2,l.exec("str")!==null});i.exports={BROKEN_CARET:u,MISSED_STICKY:s,UNSUPPORTED_Y:o}},76769:function(i,d,t){var r=t(72069),n=t(66009),a=n.RegExp;i.exports=r(function(){var o=a(".","s");return!(o.dotAll&&o.test(` +`)&&o.flags==="s")})},85220:function(i,d,t){var r=t(72069),n=t(66009),a=n.RegExp;i.exports=r(function(){var o=a("(?<a>b)","g");return o.exec("b").groups.a!=="b"||"b".replace(o,"$<a>c")!=="bc"})},2068:function(i,d,t){var r=t(5683),n=TypeError;i.exports=function(a){if(r(a))throw new n("Can't call method on "+a);return a}},28167:function(i,d,t){var r=t(66009),n=t(92986),a=Object.getOwnPropertyDescriptor;i.exports=function(o){if(!n)return r[o];var s=a(r,o);return s&&s.value}},13944:function(i){i.exports=Object.is||function(t,r){return t===r?t!==0||1/t===1/r:t!==t&&r!==r}},9934:function(i,d,t){var r=t(66009),n=t(66543),a=t(23583),o=t(5017),s=t(89042),u=t(22806),l=t(95486),v=r.Function,c=/MSIE .\./.test(s)||o&&function(){var g=r.Bun.version.split(".");return g.length<3||g[0]==="0"&&(g[1]<3||g[1]==="3"&&g[2]==="0")}();i.exports=function(g,y){var p=y?2:1;return c?function(m,S){var x=l(arguments.length,1)>p,I=a(m)?m:v(m),P=x?u(arguments,p):[],A=x?function(){n(I,this,P)}:I;return y?g(A,S):g(A)}:g}},48348:function(i,d,t){var r=t(172),n=t(35051),a=r.Set,o=r.add;i.exports=function(s){var u=new a;return n(s,function(l){o(u,l)}),u}},41754:function(i,d,t){var r=t(76602),n=t(172),a=t(48348),o=t(17768),s=t(65263),u=t(35051),l=t(9573),v=n.has,c=n.remove;i.exports=function(y){var p=r(this),m=s(y),S=a(p);return o(p)<=m.size?u(p,function(x){m.includes(x)&&c(S,x)}):l(m.getIterator(),function(x){v(p,x)&&c(S,x)}),S}},172:function(i,d,t){var r=t(11286),n=Set.prototype;i.exports={Set,add:r(n.add),has:r(n.has),remove:r(n.delete),proto:n}},92292:function(i,d,t){var r=t(76602),n=t(172),a=t(17768),o=t(65263),s=t(35051),u=t(9573),l=n.Set,v=n.add,c=n.has;i.exports=function(y){var p=r(this),m=o(y),S=new l;return a(p)>m.size?u(m.getIterator(),function(x){c(p,x)&&v(S,x)}):s(p,function(x){m.includes(x)&&v(S,x)}),S}},47391:function(i,d,t){var r=t(76602),n=t(172).has,a=t(17768),o=t(65263),s=t(35051),u=t(9573),l=t(99797);i.exports=function(c){var g=r(this),y=o(c);if(a(g)<=y.size)return s(g,function(m){if(y.includes(m))return!1},!0)!==!1;var p=y.getIterator();return u(p,function(m){if(n(g,m))return l(p,"normal",!1)})!==!1}},75492:function(i,d,t){var r=t(76602),n=t(17768),a=t(35051),o=t(65263);i.exports=function(u){var l=r(this),v=o(u);return n(l)>v.size?!1:a(l,function(c){if(!v.includes(c))return!1},!0)!==!1}},1333:function(i,d,t){var r=t(76602),n=t(172).has,a=t(17768),o=t(65263),s=t(9573),u=t(99797);i.exports=function(v){var c=r(this),g=o(v);if(a(c)<g.size)return!1;var y=g.getIterator();return s(y,function(p){if(!n(c,p))return u(y,"normal",!1)})!==!1}},35051:function(i,d,t){var r=t(11286),n=t(9573),a=t(172),o=a.Set,s=a.proto,u=r(s.forEach),l=r(s.keys),v=l(new o).next;i.exports=function(c,g,y){return y?n({iterator:l(c),next:v},g):u(c,g)}},94118:function(i,d,t){var r=t(38941),n=function(a){return{size:a,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}};i.exports=function(a){var o=r("Set");try{new o()[a](n(0));try{return new o()[a](n(-1)),!1}catch(s){return!0}}catch(s){return!1}}},17768:function(i,d,t){var r=t(84756),n=t(172);i.exports=r(n.proto,"size","get")||function(a){return a.size}},36167:function(i,d,t){var r=t(38941),n=t(85500),a=t(18565),o=t(92986),s=a("species");i.exports=function(u){var l=r(u);o&&l&&!l[s]&&n(l,s,{configurable:!0,get:function(){return this}})}},64680:function(i,d,t){var r=t(76602),n=t(172),a=t(48348),o=t(65263),s=t(9573),u=n.add,l=n.has,v=n.remove;i.exports=function(g){var y=r(this),p=o(g).getIterator(),m=a(y);return s(p,function(S){l(y,S)?v(m,S):u(m,S)}),m}},78401:function(i,d,t){var r=t(7831).f,n=t(94879),a=t(18565),o=a("toStringTag");i.exports=function(s,u,l){s&&!l&&(s=s.prototype),s&&!n(s,o)&&r(s,o,{configurable:!0,value:u})}},70402:function(i,d,t){var r=t(76602),n=t(172).add,a=t(48348),o=t(65263),s=t(9573);i.exports=function(l){var v=r(this),c=o(l).getIterator(),g=a(v);return s(c,function(y){n(g,y)}),g}},44869:function(i,d,t){var r=t(96731),n=t(36374),a=r("keys");i.exports=function(o){return a[o]||(a[o]=n(o))}},70443:function(i,d,t){var r=t(70457),n=t(66009),a=t(36003),o="__core-js_shared__",s=i.exports=n[o]||a(o,{});(s.versions||(s.versions=[])).push({version:"3.37.1",mode:r?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE",source:"https://github.com/zloirock/core-js"})},96731:function(i,d,t){var r=t(70443);i.exports=function(n,a){return r[n]||(r[n]=a||{})}},16887:function(i,d,t){var r=t(25001),n=t(80042),a=t(5683),o=t(18565),s=o("species");i.exports=function(u,l){var v=r(u).constructor,c;return v===void 0||a(c=r(v)[s])?l:n(c)}},5287:function(i,d,t){var r=t(72069);i.exports=function(n){return r(function(){var a=""[n]('"');return a!==a.toLowerCase()||a.split('"').length>3})}},22149:function(i,d,t){var r=t(11286),n=t(12105),a=t(17361),o=t(2068),s=r("".charAt),u=r("".charCodeAt),l=r("".slice),v=function(c){return function(g,y){var p=a(o(g)),m=n(y),S=p.length,x,I;return m<0||m>=S?c?"":void 0:(x=u(p,m),x<55296||x>56319||m+1===S||(I=u(p,m+1))<56320||I>57343?c?s(p,m):x:c?l(p,m,m+2):(x-55296<<10)+(I-56320)+65536)}};i.exports={codeAt:v(!1),charAt:v(!0)}},36945:function(i,d,t){var r=t(89042);i.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(r)},61607:function(i,d,t){var r=t(11286),n=t(45344),a=t(17361),o=t(79719),s=t(2068),u=r(o),l=r("".slice),v=Math.ceil,c=function(g){return function(y,p,m){var S=a(s(y)),x=n(p),I=S.length,P=m===void 0?" ":a(m),A,R;return x<=I||P===""?S:(A=x-I,R=u(P,v(A/P.length)),R.length>A&&(R=l(R,0,A)),g?S+R:R+S)}};i.exports={start:c(!1),end:c(!0)}},38679:function(i,d,t){var r=t(11286),n=2147483647,a=36,o=1,s=26,u=38,l=700,v=72,c=128,g="-",y=/[^\0-\u007E]/,p=/[.\u3002\uFF0E\uFF61]/g,m="Overflow: input needs wider integers to process",S=a-o,x=RangeError,I=r(p.exec),P=Math.floor,A=String.fromCharCode,R=r("".charCodeAt),N=r([].join),T=r([].push),C=r("".replace),D=r("".split),L=r("".toLowerCase),F=function(U){for(var B=[],j=0,z=U.length;j<z;){var k=R(U,j++);if(k>=55296&&k<=56319&&j<z){var J=R(U,j++);(J&64512)===56320?T(B,((k&1023)<<10)+(J&1023)+65536):(T(B,k),j--)}else T(B,k)}return B},b=function(U){return U+22+75*(U<26)},w=function(U,B,j){var z=0;for(U=j?P(U/l):U>>1,U+=P(U/B);U>S*s>>1;)U=P(U/S),z+=a;return P(z+(S+1)*U/(U+u))},V=function(U){var B=[];U=F(U);var j=U.length,z=c,k=0,J=v,et,_;for(et=0;et<U.length;et++)_=U[et],_<128&&T(B,A(_));var dt=B.length,lt=dt;for(dt&&T(B,g);lt<j;){var pt=n;for(et=0;et<U.length;et++)_=U[et],_>=z&&_<pt&&(pt=_);var St=lt+1;if(pt-z>P((n-k)/St))throw new x(m);for(k+=(pt-z)*St,z=pt,et=0;et<U.length;et++){if(_=U[et],_<z&&++k>n)throw new x(m);if(_===z){for(var Ot=k,Ht=a;;){var $t=Ht<=J?o:Ht>=J+s?s:Ht-J;if(Ot<$t)break;var bt=Ot-$t,vt=a-$t;T(B,A(b($t+bt%vt))),Ot=P(bt/vt),Ht+=a}T(B,A(b(Ot))),J=w(k,St,lt===dt),k=0,lt++}}k++,z++}return N(B,"")};i.exports=function(U){var B=[],j=D(C(L(U),p,"."),"."),z,k;for(z=0;z<j.length;z++)k=j[z],T(B,I(y,k)?"xn--"+V(k):k);return N(B,".")}},79719:function(i,d,t){var r=t(12105),n=t(17361),a=t(2068),o=RangeError;i.exports=function(u){var l=n(a(this)),v="",c=r(u);if(c<0||c===1/0)throw new o("Wrong number of repetitions");for(;c>0;(c>>>=1)&&(l+=l))c&1&&(v+=l);return v}},75176:function(i,d,t){var r=t(85900).end,n=t(33328);i.exports=n("trimEnd")?function(){return r(this)}:"".trimEnd},33328:function(i,d,t){var r=t(86588).PROPER,n=t(72069),a=t(77082),o="\u200B\x85\u180E";i.exports=function(s){return n(function(){return!!a[s]()||o[s]()!==o||r&&a[s].name!==s})}},83481:function(i,d,t){var r=t(85900).start,n=t(33328);i.exports=n("trimStart")?function(){return r(this)}:"".trimStart},85900:function(i,d,t){var r=t(11286),n=t(2068),a=t(17361),o=t(77082),s=r("".replace),u=RegExp("^["+o+"]+"),l=RegExp("(^|[^"+o+"])["+o+"]+$"),v=function(c){return function(g){var y=a(n(g));return c&1&&(y=s(y,u,"")),c&2&&(y=s(y,l,"$1")),y}};i.exports={start:v(1),end:v(2),trim:v(3)}},99050:function(i,d,t){var r=t(66009),n=t(72069),a=t(73126),o=t(63144),s=t(56422),u=t(42954),l=r.structuredClone;i.exports=!!l&&!n(function(){if(s&&a>92||u&&a>94||o&&a>97)return!1;var v=new ArrayBuffer(8),c=l(v,{transfer:[v]});return v.byteLength!==0||c.byteLength!==8})},39729:function(i,d,t){var r=t(73126),n=t(72069),a=t(66009),o=a.String;i.exports=!!Object.getOwnPropertySymbols&&!n(function(){var s=Symbol("symbol detection");return!o(s)||!(Object(s)instanceof Symbol)||!Symbol.sham&&r&&r<41})},60796:function(i,d,t){var r=t(96499),n=t(38941),a=t(18565),o=t(16142);i.exports=function(){var s=n("Symbol"),u=s&&s.prototype,l=u&&u.valueOf,v=a("toPrimitive");u&&!u[v]&&o(u,v,function(c){return r(l,this)},{arity:1})}},61190:function(i,d,t){var r=t(39729);i.exports=r&&!!Symbol.for&&!!Symbol.keyFor},23115:function(i,d,t){var r=t(66009),n=t(66543),a=t(45526),o=t(23583),s=t(94879),u=t(72069),l=t(96439),v=t(22806),c=t(85501),g=t(95486),y=t(51149),p=t(42954),m=r.setImmediate,S=r.clearImmediate,x=r.process,I=r.Dispatch,P=r.Function,A=r.MessageChannel,R=r.String,N=0,T={},C="onreadystatechange",D,L,F,b;u(function(){D=r.location});var w=function(j){if(s(T,j)){var z=T[j];delete T[j],z()}},V=function(j){return function(){w(j)}},U=function(j){w(j.data)},B=function(j){r.postMessage(R(j),D.protocol+"//"+D.host)};(!m||!S)&&(m=function(z){g(arguments.length,1);var k=o(z)?z:P(z),J=v(arguments,1);return T[++N]=function(){n(k,void 0,J)},L(N),N},S=function(z){delete T[z]},p?L=function(j){x.nextTick(V(j))}:I&&I.now?L=function(j){I.now(V(j))}:A&&!y?(F=new A,b=F.port2,F.port1.onmessage=U,L=a(b.postMessage,b)):r.addEventListener&&o(r.postMessage)&&!r.importScripts&&D&&D.protocol!=="file:"&&!u(B)?(L=B,r.addEventListener("message",U,!1)):C in c("script")?L=function(j){l.appendChild(c("script"))[C]=function(){l.removeChild(this),w(j)}}:L=function(j){setTimeout(V(j),0)}),i.exports={set:m,clear:S}},34338:function(i,d,t){var r=t(11286);i.exports=r(1 .valueOf)},4652:function(i,d,t){var r=t(12105),n=Math.max,a=Math.min;i.exports=function(o,s){var u=r(o);return u<0?n(u+s,0):a(u,s)}},11344:function(i,d,t){var r=t(89935),n=TypeError;i.exports=function(a){var o=r(a,"number");if(typeof o=="number")throw new n("Can't convert number to bigint");return BigInt(o)}},9450:function(i,d,t){var r=t(12105),n=t(45344),a=RangeError;i.exports=function(o){if(o===void 0)return 0;var s=r(o),u=n(s);if(s!==u)throw new a("Wrong length or index");return u}},36859:function(i,d,t){var r=t(72181),n=t(2068);i.exports=function(a){return r(n(a))}},12105:function(i,d,t){var r=t(22459);i.exports=function(n){var a=+n;return a!==a||a===0?0:r(a)}},45344:function(i,d,t){var r=t(12105),n=Math.min;i.exports=function(a){var o=r(a);return o>0?n(o,9007199254740991):0}},49671:function(i,d,t){var r=t(2068),n=Object;i.exports=function(a){return n(r(a))}},58143:function(i,d,t){var r=t(98072),n=RangeError;i.exports=function(a,o){var s=r(a);if(s%o)throw new n("Wrong offset");return s}},98072:function(i,d,t){var r=t(12105),n=RangeError;i.exports=function(a){var o=r(a);if(o<0)throw new n("The argument can't be less than 0");return o}},89935:function(i,d,t){var r=t(96499),n=t(37540),a=t(491),o=t(10512),s=t(2064),u=t(18565),l=TypeError,v=u("toPrimitive");i.exports=function(c,g){if(!n(c)||a(c))return c;var y=o(c,v),p;if(y){if(g===void 0&&(g="default"),p=r(y,c,g),!n(p)||a(p))return p;throw new l("Can't convert object to primitive value")}return g===void 0&&(g="number"),s(c,g)}},50035:function(i,d,t){var r=t(89935),n=t(491);i.exports=function(a){var o=r(a,"string");return n(o)?o:o+""}},67878:function(i,d,t){var r=t(18565),n=r("toStringTag"),a={};a[n]="z",i.exports=String(a)==="[object z]"},17361:function(i,d,t){var r=t(9205),n=String;i.exports=function(a){if(r(a)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return n(a)}},76517:function(i){var d=Math.round;i.exports=function(t){var r=d(t);return r<0?0:r>255?255:r&255}},18096:function(i,d,t){var r=t(42954);i.exports=function(n){try{if(r)return Function('return require("'+n+'")')()}catch(a){}}},82453:function(i){var d=String;i.exports=function(t){try{return d(t)}catch(r){return"Object"}}},80357:function(i,d,t){var r=t(14304),n=t(66009),a=t(96499),o=t(92986),s=t(46868),u=t(88037),l=t(17468),v=t(12833),c=t(18526),g=t(90809),y=t(613),p=t(45344),m=t(9450),S=t(58143),x=t(76517),I=t(50035),P=t(94879),A=t(9205),R=t(37540),N=t(491),T=t(5406),C=t(95307),D=t(15861),L=t(83258).f,F=t(66169),b=t(66655).forEach,w=t(36167),V=t(85500),U=t(7831),B=t(71349),j=t(5220),z=t(82367),k=t(32345),J=z.get,et=z.set,_=z.enforce,dt=U.f,lt=B.f,pt=n.RangeError,St=l.ArrayBuffer,Ot=St.prototype,Ht=l.DataView,$t=u.NATIVE_ARRAY_BUFFER_VIEWS,bt=u.TYPED_ARRAY_TAG,vt=u.TypedArray,gt=u.TypedArrayPrototype,Pt=u.isTypedArray,Dt="BYTES_PER_ELEMENT",Nt="Wrong length",Ut=function(Qt,Vt){V(Qt,Vt,{configurable:!0,get:function(){return J(this)[Vt]}})},Zt=function(Qt){var Vt;return C(Ot,Qt)||(Vt=A(Qt))==="ArrayBuffer"||Vt==="SharedArrayBuffer"},kt=function(Qt,Vt){return Pt(Qt)&&!N(Vt)&&Vt in Qt&&y(+Vt)&&Vt>=0},Jt=function(Vt,jt){return jt=I(jt),kt(Vt,jt)?c(2,Vt[jt]):lt(Vt,jt)},Lt=function(Vt,jt,st){return jt=I(jt),kt(Vt,jt)&&R(st)&&P(st,"value")&&!P(st,"get")&&!P(st,"set")&&!st.configurable&&(!P(st,"writable")||st.writable)&&(!P(st,"enumerable")||st.enumerable)?(Vt[jt]=st.value,Vt):dt(Vt,jt,st)};o?($t||(B.f=Jt,U.f=Lt,Ut(gt,"buffer"),Ut(gt,"byteOffset"),Ut(gt,"byteLength"),Ut(gt,"length")),r({target:"Object",stat:!0,forced:!$t},{getOwnPropertyDescriptor:Jt,defineProperty:Lt}),i.exports=function(Qt,Vt,jt){var st=Qt.match(/\d+/)[0]/8,ht=Qt+(jt?"Clamped":"")+"Array",tt="get"+Qt,It="set"+Qt,Tt=n[ht],xt=Tt,yt=xt&&xt.prototype,_t={},nr=function(W,Z){var K=J(W);return K.view[tt](Z*st+K.byteOffset,!0)},Q=function(W,Z,K){var ct=J(W);ct.view[It](Z*st+ct.byteOffset,jt?x(K):K,!0)},ot=function(W,Z){dt(W,Z,{get:function(){return nr(this,Z)},set:function(K){return Q(this,Z,K)},enumerable:!0})};$t?s&&(xt=Vt(function(W,Z,K,ct){return v(W,yt),k(function(){return R(Z)?Zt(Z)?ct!==void 0?new Tt(Z,S(K,st),ct):K!==void 0?new Tt(Z,S(K,st)):new Tt(Z):Pt(Z)?j(xt,Z):a(F,xt,Z):new Tt(m(Z))}(),W,xt)}),D&&D(xt,vt),b(L(Tt),function(W){W in xt||g(xt,W,Tt[W])}),xt.prototype=yt):(xt=Vt(function(W,Z,K,ct){v(W,yt);var Rt=0,Ft=0,Kt,Yt,zt;if(!R(Z))zt=m(Z),Yt=zt*st,Kt=new St(Yt);else if(Zt(Z)){Kt=Z,Ft=S(K,st);var ar=Z.byteLength;if(ct===void 0){if(ar%st)throw new pt(Nt);if(Yt=ar-Ft,Yt<0)throw new pt(Nt)}else if(Yt=p(ct)*st,Yt+Ft>ar)throw new pt(Nt);zt=Yt/st}else return Pt(Z)?j(xt,Z):a(F,xt,Z);for(et(W,{buffer:Kt,byteOffset:Ft,byteLength:Yt,length:zt,view:new Ht(Kt)});Rt<zt;)ot(W,Rt++)}),D&&D(xt,vt),yt=xt.prototype=T(gt)),yt.constructor!==xt&&g(yt,"constructor",xt),_(yt).TypedArrayConstructor=xt,bt&&g(yt,bt,ht);var ut=xt!==Tt;_t[ht]=xt,r({global:!0,constructor:!0,forced:ut,sham:!$t},_t),Dt in xt||g(xt,Dt,st),Dt in yt||g(yt,Dt,st),w(ht)}):i.exports=function(){}},46868:function(i,d,t){var r=t(66009),n=t(72069),a=t(97494),o=t(88037).NATIVE_ARRAY_BUFFER_VIEWS,s=r.ArrayBuffer,u=r.Int8Array;i.exports=!o||!n(function(){u(1)})||!n(function(){new u(-1)})||!a(function(l){new u,new u(null),new u(1.5),new u(l)},!0)||n(function(){return new u(new s(2),1,void 0).length!==1})},3795:function(i,d,t){var r=t(5220),n=t(21822);i.exports=function(a,o){return r(n(a),o)}},66169:function(i,d,t){var r=t(45526),n=t(96499),a=t(80042),o=t(49671),s=t(82628),u=t(90619),l=t(81077),v=t(48199),c=t(77129),g=t(88037).aTypedArrayConstructor,y=t(11344);i.exports=function(m){var S=a(this),x=o(m),I=arguments.length,P=I>1?arguments[1]:void 0,A=P!==void 0,R=l(x),N,T,C,D,L,F,b,w;if(R&&!v(R))for(b=u(x,R),w=b.next,x=[];!(F=n(w,b)).done;)x.push(F.value);for(A&&I>2&&(P=r(P,arguments[2])),T=s(x),C=new(g(S))(T),D=c(C),N=0;T>N;N++)L=A?P(x[N],N):x[N],C[N]=D?y(L):+L;return C}},21822:function(i,d,t){var r=t(88037),n=t(16887),a=r.aTypedArrayConstructor,o=r.getTypedArrayConstructor;i.exports=function(s){return a(n(s,o(s)))}},36374:function(i,d,t){var r=t(11286),n=0,a=Math.random(),o=r(1 .toString);i.exports=function(s){return"Symbol("+(s===void 0?"":s)+")_"+o(++n+a,36)}},91918:function(i,d,t){var r=t(72069),n=t(18565),a=t(92986),o=t(70457),s=n("iterator");i.exports=!r(function(){var u=new URL("b?a=1&b=2&c=3","http://a"),l=u.searchParams,v=new URLSearchParams("a=1&a=2&b=3"),c="";return u.pathname="c%20d",l.forEach(function(g,y){l.delete("b"),c+=y+g}),v.delete("a",2),v.delete("b",void 0),o&&(!u.toJSON||!v.has("a",1)||v.has("a",2)||!v.has("a",void 0)||v.has("b"))||!l.size&&(o||!a)||!l.sort||u.href!=="http://a/c%20d?a=1&c=3"||l.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!l[s]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("http://a#\u0431").hash!=="#%D0%B1"||c!=="a1c3"||new URL("http://x",void 0).host!=="x"})},50234:function(i,d,t){var r=t(39729);i.exports=r&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},356:function(i,d,t){var r=t(92986),n=t(72069);i.exports=r&&n(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})},95486:function(i){var d=TypeError;i.exports=function(t,r){if(t<r)throw new d("Not enough arguments");return t}},42960:function(i,d,t){var r=t(66009),n=t(23583),a=r.WeakMap;i.exports=n(a)&&/native code/.test(String(a))},83749:function(i,d,t){var r=t(75081),n=t(94879),a=t(56529),o=t(7831).f;i.exports=function(s){var u=r.Symbol||(r.Symbol={});n(u,s)||o(u,s,{value:a.f(s)})}},56529:function(i,d,t){var r=t(18565);d.f=r},18565:function(i,d,t){var r=t(66009),n=t(96731),a=t(94879),o=t(36374),s=t(39729),u=t(50234),l=r.Symbol,v=n("wks"),c=u?l.for||l:l&&l.withoutSetter||o;i.exports=function(g){return a(v,g)||(v[g]=s&&a(l,g)?l[g]:c("Symbol."+g)),v[g]}},77082:function(i){i.exports=` +\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},70003:function(i,d,t){var r=t(38941),n=t(94879),a=t(90809),o=t(95307),s=t(15861),u=t(93706),l=t(2594),v=t(32345),c=t(15453),g=t(31486),y=t(97077),p=t(92986),m=t(70457);i.exports=function(S,x,I,P){var A="stackTraceLimit",R=P?2:1,N=S.split("."),T=N[N.length-1],C=r.apply(null,N);if(C){var D=C.prototype;if(!m&&n(D,"cause")&&delete D.cause,!I)return C;var L=r("Error"),F=x(function(b,w){var V=c(P?w:b,void 0),U=P?new C(b):new C;return V!==void 0&&a(U,"message",V),y(U,F,U.stack,2),this&&o(D,this)&&v(U,this,F),arguments.length>R&&g(U,arguments[R]),U});if(F.prototype=D,T!=="Error"?s?s(F,L):u(F,L,{name:!0}):p&&A in C&&(l(F,C,A),l(F,C,"prepareStackTrace")),u(F,C),!m)try{D.name!==T&&a(D,"name",T),D.constructor=F}catch(b){}return F}}},27796:function(i,d,t){var r=t(14304),n=t(38941),a=t(66543),o=t(72069),s=t(70003),u="AggregateError",l=n(u),v=!o(function(){return l([1]).errors[0]!==1})&&o(function(){return l([1],u,{cause:7}).cause!==7});r({global:!0,constructor:!0,arity:2,forced:v},{AggregateError:s(u,function(c){return function(y,p){return a(c,this,arguments)}},v,!0)})},85647:function(i,d,t){var r=t(14304),n=t(95307),a=t(26313),o=t(15861),s=t(93706),u=t(5406),l=t(90809),v=t(18526),c=t(31486),g=t(97077),y=t(55902),p=t(15453),m=t(18565),S=m("toStringTag"),x=Error,I=[].push,P=function(N,T){var C=n(A,this),D;o?D=o(new x,C?a(this):A):(D=C?this:u(A),l(D,S,"Error")),T!==void 0&&l(D,"message",p(T)),g(D,P,D.stack,1),arguments.length>2&&c(D,arguments[2]);var L=[];return y(N,I,{that:L}),l(D,"errors",L),D};o?o(P,x):s(P,x,{name:!0});var A=P.prototype=u(x.prototype,{constructor:v(1,P),message:v(1,""),name:v(1,"AggregateError")});r({global:!0,constructor:!0,arity:2},{AggregateError:P})},42861:function(i,d,t){t(85647)},35473:function(i,d,t){var r=t(14304),n=t(66009),a=t(17468),o=t(36167),s="ArrayBuffer",u=a[s],l=n[s];r({global:!0,constructor:!0,forced:l!==u},{ArrayBuffer:u}),o(s)},35495:function(i,d,t){var r=t(92986),n=t(85500),a=t(30736),o=ArrayBuffer.prototype;r&&!("detached"in o)&&n(o,"detached",{configurable:!0,get:function(){return a(this)}})},4983:function(i,d,t){var r=t(14304),n=t(88037),a=n.NATIVE_ARRAY_BUFFER_VIEWS;r({target:"ArrayBuffer",stat:!0,forced:!a},{isView:n.isView})},6875:function(i,d,t){var r=t(14304),n=t(77422),a=t(72069),o=t(17468),s=t(25001),u=t(4652),l=t(45344),v=t(16887),c=o.ArrayBuffer,g=o.DataView,y=g.prototype,p=n(c.prototype.slice),m=n(y.getUint8),S=n(y.setUint8),x=a(function(){return!new c(2).slice(1,void 0).byteLength});r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:x},{slice:function(P,A){if(p&&A===void 0)return p(s(this),P);for(var R=s(this).byteLength,N=u(P,R),T=u(A===void 0?R:A,R),C=new(v(this,c))(l(T-N)),D=new g(this),L=new g(C),F=0;N<T;)S(L,F++,m(D,N++));return C}})},58594:function(i,d,t){var r=t(14304),n=t(65006);n&&r({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return n(this,arguments.length?arguments[0]:void 0,!1)}})},32790:function(i,d,t){var r=t(14304),n=t(65006);n&&r({target:"ArrayBuffer",proto:!0},{transfer:function(){return n(this,arguments.length?arguments[0]:void 0,!0)}})},1341:function(i,d,t){var r=t(14304),n=t(49671),a=t(82628),o=t(12105),s=t(23811);r({target:"Array",proto:!0},{at:function(l){var v=n(this),c=a(v),g=o(l),y=g>=0?g:c+g;return y<0||y>=c?void 0:v[y]}}),s("at")},98700:function(i,d,t){var r=t(14304),n=t(72069),a=t(3438),o=t(37540),s=t(49671),u=t(82628),l=t(20095),v=t(84082),c=t(62083),g=t(52183),y=t(18565),p=t(73126),m=y("isConcatSpreadable"),S=p>=51||!n(function(){var P=[];return P[m]=!1,P.concat()[0]!==P}),x=function(P){if(!o(P))return!1;var A=P[m];return A!==void 0?!!A:a(P)},I=!S||!g("concat");r({target:"Array",proto:!0,arity:1,forced:I},{concat:function(A){var R=s(this),N=c(R,0),T=0,C,D,L,F,b;for(C=-1,L=arguments.length;C<L;C++)if(b=C===-1?R:arguments[C],x(b))for(F=u(b),l(T+F),D=0;D<F;D++,T++)D in b&&v(N,T,b[D]);else l(T+1),v(N,T++,b);return N.length=T,N}})},65481:function(i,d,t){var r=t(14304),n=t(81499),a=t(23811);r({target:"Array",proto:!0},{copyWithin:n}),a("copyWithin")},46509:function(i,d,t){var r=t(14304),n=t(66655).every,a=t(6148),o=a("every");r({target:"Array",proto:!0,forced:!o},{every:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},41585:function(i,d,t){var r=t(14304),n=t(43011),a=t(23811);r({target:"Array",proto:!0},{fill:n}),a("fill")},84554:function(i,d,t){var r=t(14304),n=t(66655).filter,a=t(52183),o=a("filter");r({target:"Array",proto:!0,forced:!o},{filter:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},33818:function(i,d,t){var r=t(14304),n=t(66655).findIndex,a=t(23811),o="findIndex",s=!0;o in[]&&Array(1)[o](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{findIndex:function(l){return n(this,l,arguments.length>1?arguments[1]:void 0)}}),a(o)},2209:function(i,d,t){var r=t(14304),n=t(73849).findLastIndex,a=t(23811);r({target:"Array",proto:!0},{findLastIndex:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}}),a("findLastIndex")},64096:function(i,d,t){var r=t(14304),n=t(73849).findLast,a=t(23811);r({target:"Array",proto:!0},{findLast:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}}),a("findLast")},36619:function(i,d,t){var r=t(14304),n=t(66655).find,a=t(23811),o="find",s=!0;o in[]&&Array(1)[o](function(){s=!1}),r({target:"Array",proto:!0,forced:s},{find:function(l){return n(this,l,arguments.length>1?arguments[1]:void 0)}}),a(o)},74092:function(i,d,t){var r=t(14304),n=t(53149),a=t(85156),o=t(49671),s=t(82628),u=t(62083);r({target:"Array",proto:!0},{flatMap:function(v){var c=o(this),g=s(c),y;return a(v),y=u(c,0),y.length=n(y,c,c,g,0,1,v,arguments.length>1?arguments[1]:void 0),y}})},91591:function(i,d,t){var r=t(14304),n=t(53149),a=t(49671),o=t(82628),s=t(12105),u=t(62083);r({target:"Array",proto:!0},{flat:function(){var v=arguments.length?arguments[0]:void 0,c=a(this),g=o(c),y=u(c,0);return y.length=n(y,c,c,g,0,v===void 0?1:s(v)),y}})},54703:function(i,d,t){var r=t(14304),n=t(13349);r({target:"Array",proto:!0,forced:[].forEach!==n},{forEach:n})},82936:function(i,d,t){var r=t(14304),n=t(48258),a=t(97494),o=!a(function(s){Array.from(s)});r({target:"Array",stat:!0,forced:o},{from:n})},48493:function(i,d,t){var r=t(14304),n=t(94319).includes,a=t(72069),o=t(23811),s=a(function(){return!Array(1).includes()});r({target:"Array",proto:!0,forced:s},{includes:function(l){return n(this,l,arguments.length>1?arguments[1]:void 0)}}),o("includes")},64730:function(i,d,t){var r=t(14304),n=t(77422),a=t(94319).indexOf,o=t(6148),s=n([].indexOf),u=!!s&&1/s([1],1,-0)<0,l=u||!o("indexOf");r({target:"Array",proto:!0,forced:l},{indexOf:function(c){var g=arguments.length>1?arguments[1]:void 0;return u?s(this,c,g)||0:a(this,c,g)}})},95024:function(i,d,t){var r=t(14304),n=t(3438);r({target:"Array",stat:!0},{isArray:n})},35054:function(i,d,t){var r=t(36859),n=t(23811),a=t(29107),o=t(82367),s=t(7831).f,u=t(10218),l=t(10659),v=t(70457),c=t(92986),g="Array Iterator",y=o.set,p=o.getterFor(g);i.exports=u(Array,"Array",function(S,x){y(this,{type:g,target:r(S),index:0,kind:x})},function(){var S=p(this),x=S.target,I=S.index++;if(!x||I>=x.length)return S.target=void 0,l(void 0,!0);switch(S.kind){case"keys":return l(I,!1);case"values":return l(x[I],!1)}return l([I,x[I]],!1)},"values");var m=a.Arguments=a.Array;if(n("keys"),n("values"),n("entries"),!v&&c&&m.name!=="values")try{s(m,"name",{value:"values"})}catch(S){}},25460:function(i,d,t){var r=t(14304),n=t(11286),a=t(72181),o=t(36859),s=t(6148),u=n([].join),l=a!==Object,v=l||!s("join",",");r({target:"Array",proto:!0,forced:v},{join:function(g){return u(o(this),g===void 0?",":g)}})},60703:function(i,d,t){var r=t(14304),n=t(58465);r({target:"Array",proto:!0,forced:n!==[].lastIndexOf},{lastIndexOf:n})},90468:function(i,d,t){var r=t(14304),n=t(66655).map,a=t(52183),o=a("map");r({target:"Array",proto:!0,forced:!o},{map:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},69581:function(i,d,t){var r=t(14304),n=t(72069),a=t(11051),o=t(84082),s=Array,u=n(function(){function l(){}return!(s.of.call(l)instanceof l)});r({target:"Array",stat:!0,forced:u},{of:function(){for(var v=0,c=arguments.length,g=new(a(this)?this:s)(c);c>v;)o(g,v,arguments[v++]);return g.length=c,g}})},720:function(i,d,t){var r=t(14304),n=t(49671),a=t(82628),o=t(2213),s=t(20095),u=t(72069),l=u(function(){return[].push.call({length:4294967296},1)!==4294967297}),v=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(g){return g instanceof TypeError}},c=l||!v();r({target:"Array",proto:!0,arity:1,forced:c},{push:function(y){var p=n(this),m=a(p),S=arguments.length;s(m+S);for(var x=0;x<S;x++)p[m]=arguments[x],m++;return o(p,m),m}})},17289:function(i,d,t){var r=t(14304),n=t(97264).right,a=t(6148),o=t(73126),s=t(42954),u=!s&&o>79&&o<83,l=u||!a("reduceRight");r({target:"Array",proto:!0,forced:l},{reduceRight:function(c){return n(this,c,arguments.length,arguments.length>1?arguments[1]:void 0)}})},11042:function(i,d,t){var r=t(14304),n=t(97264).left,a=t(6148),o=t(73126),s=t(42954),u=!s&&o>79&&o<83,l=u||!a("reduce");r({target:"Array",proto:!0,forced:l},{reduce:function(c){var g=arguments.length;return n(this,c,g,g>1?arguments[1]:void 0)}})},24608:function(i,d,t){var r=t(14304),n=t(11286),a=t(3438),o=n([].reverse),s=[1,2];r({target:"Array",proto:!0,forced:String(s)===String(s.reverse())},{reverse:function(){return a(this)&&(this.length=this.length),o(this)}})},51644:function(i,d,t){var r=t(14304),n=t(3438),a=t(11051),o=t(37540),s=t(4652),u=t(82628),l=t(36859),v=t(84082),c=t(18565),g=t(52183),y=t(22806),p=g("slice"),m=c("species"),S=Array,x=Math.max;r({target:"Array",proto:!0,forced:!p},{slice:function(P,A){var R=l(this),N=u(R),T=s(P,N),C=s(A===void 0?N:A,N),D,L,F;if(n(R)&&(D=R.constructor,a(D)&&(D===S||n(D.prototype))?D=void 0:o(D)&&(D=D[m],D===null&&(D=void 0)),D===S||D===void 0))return y(R,T,C);for(L=new(D===void 0?S:D)(x(C-T,0)),F=0;T<C;T++,F++)T in R&&v(L,F,R[T]);return L.length=F,L}})},88088:function(i,d,t){var r=t(14304),n=t(66655).some,a=t(6148),o=a("some");r({target:"Array",proto:!0,forced:!o},{some:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}})},46828:function(i,d,t){var r=t(14304),n=t(11286),a=t(85156),o=t(49671),s=t(82628),u=t(12384),l=t(17361),v=t(72069),c=t(13270),g=t(6148),y=t(54040),p=t(87216),m=t(73126),S=t(68674),x=[],I=n(x.sort),P=n(x.push),A=v(function(){x.sort(void 0)}),R=v(function(){x.sort(null)}),N=g("sort"),T=!v(function(){if(m)return m<70;if(!(y&&y>3)){if(p)return!0;if(S)return S<603;var L="",F,b,w,V;for(F=65;F<76;F++){switch(b=String.fromCharCode(F),F){case 66:case 69:case 70:case 72:w=3;break;case 68:case 71:w=4;break;default:w=2}for(V=0;V<47;V++)x.push({k:b+V,v:w})}for(x.sort(function(U,B){return B.v-U.v}),V=0;V<x.length;V++)b=x[V].k.charAt(0),L.charAt(L.length-1)!==b&&(L+=b);return L!=="DGBEFHACIJK"}}),C=A||!R||!N||!T,D=function(L){return function(F,b){return b===void 0?-1:F===void 0?1:L!==void 0?+L(F,b)||0:l(F)>l(b)?1:-1}};r({target:"Array",proto:!0,forced:C},{sort:function(F){F!==void 0&&a(F);var b=o(this);if(T)return F===void 0?I(b):I(b,F);var w=[],V=s(b),U,B;for(B=0;B<V;B++)B in b&&P(w,b[B]);for(c(w,D(F)),U=s(w),B=0;B<U;)b[B]=w[B++];for(;B<V;)u(b,B++);return b}})},90088:function(i,d,t){var r=t(36167);r("Array")},35148:function(i,d,t){var r=t(14304),n=t(49671),a=t(4652),o=t(12105),s=t(82628),u=t(2213),l=t(20095),v=t(62083),c=t(84082),g=t(12384),y=t(52183),p=y("splice"),m=Math.max,S=Math.min;r({target:"Array",proto:!0,forced:!p},{splice:function(I,P){var A=n(this),R=s(A),N=a(I,R),T=arguments.length,C,D,L,F,b,w;for(T===0?C=D=0:T===1?(C=0,D=R-N):(C=T-2,D=S(m(o(P),0),R-N)),l(R+C-D),L=v(A,D),F=0;F<D;F++)b=N+F,b in A&&c(L,F,A[b]);if(L.length=D,C<D){for(F=N;F<R-D;F++)b=F+D,w=F+C,b in A?A[w]=A[b]:g(A,w);for(F=R;F>R-D+C;F--)g(A,F-1)}else if(C>D)for(F=R-D;F>N;F--)b=F+D-1,w=F+C-1,b in A?A[w]=A[b]:g(A,w);for(F=0;F<C;F++)A[F+N]=arguments[F+2];return u(A,R-D+C),L}})},86184:function(i,d,t){var r=t(14304),n=t(61638),a=t(36859),o=t(23811),s=Array;r({target:"Array",proto:!0},{toReversed:function(){return n(a(this),s)}}),o("toReversed")},53983:function(i,d,t){var r=t(14304),n=t(11286),a=t(85156),o=t(36859),s=t(5220),u=t(65470),l=t(23811),v=Array,c=n(u("Array","sort"));r({target:"Array",proto:!0},{toSorted:function(y){y!==void 0&&a(y);var p=o(this),m=s(v,p);return c(m,y)}}),l("toSorted")},42560:function(i,d,t){var r=t(14304),n=t(23811),a=t(20095),o=t(82628),s=t(4652),u=t(36859),l=t(12105),v=Array,c=Math.max,g=Math.min;r({target:"Array",proto:!0},{toSpliced:function(p,m){var S=u(this),x=o(S),I=s(p,x),P=arguments.length,A=0,R,N,T,C;for(P===0?R=N=0:P===1?(R=0,N=x-I):(R=P-2,N=g(c(l(m),0),x-I)),T=a(x+R-N),C=v(T);A<I;A++)C[A]=S[A];for(;A<I+R;A++)C[A]=arguments[A-I+2];for(;A<T;A++)C[A]=S[A+N-R];return C}}),n("toSpliced")},27839:function(i,d,t){var r=t(23811);r("flatMap")},88444:function(i,d,t){var r=t(23811);r("flat")},73051:function(i,d,t){var r=t(14304),n=t(49671),a=t(82628),o=t(2213),s=t(12384),u=t(20095),l=[].unshift(0)!==1,v=function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(g){return g instanceof TypeError}},c=l||!v();r({target:"Array",proto:!0,arity:1,forced:c},{unshift:function(y){var p=n(this),m=a(p),S=arguments.length;if(S){u(m+S);for(var x=m;x--;){var I=x+S;x in p?p[I]=p[x]:s(p,I)}for(var P=0;P<S;P++)p[P]=arguments[P]}return o(p,m+S)}})},9372:function(i,d,t){var r=t(14304),n=t(72302),a=t(36859),o=Array;r({target:"Array",proto:!0},{with:function(s,u){return n(a(this),o,s,u)}})},77885:function(i,d,t){var r=t(14304),n=t(17468),a=t(3237);r({global:!0,constructor:!0,forced:!a},{DataView:n.DataView})},68575:function(i,d,t){t(77885)},30801:function(i,d,t){var r=t(14304),n=t(11286),a=t(72069),o=a(function(){return new Date(16e11).getYear()!==120}),s=n(Date.prototype.getFullYear);r({target:"Date",proto:!0,forced:o},{getYear:function(){return s(this)-1900}})},90911:function(i,d,t){var r=t(14304),n=t(11286),a=Date,o=n(a.prototype.getTime);r({target:"Date",stat:!0},{now:function(){return o(new a)}})},90429:function(i,d,t){var r=t(14304),n=t(11286),a=t(12105),o=Date.prototype,s=n(o.getTime),u=n(o.setFullYear);r({target:"Date",proto:!0},{setYear:function(v){s(this);var c=a(v),g=c>=0&&c<=99?c+1900:c;return u(this,g)}})},33685:function(i,d,t){var r=t(14304);r({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},60086:function(i,d,t){var r=t(14304),n=t(11890);r({target:"Date",proto:!0,forced:Date.prototype.toISOString!==n},{toISOString:n})},96049:function(i,d,t){var r=t(14304),n=t(72069),a=t(49671),o=t(89935),s=n(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1});r({target:"Date",proto:!0,arity:1,forced:s},{toJSON:function(l){var v=a(this),c=o(v,"number");return typeof c=="number"&&!isFinite(c)?null:v.toISOString()}})},14038:function(i,d,t){var r=t(94879),n=t(16142),a=t(84306),o=t(18565),s=o("toPrimitive"),u=Date.prototype;r(u,s)||n(u,s,a)},55518:function(i,d,t){var r=t(11286),n=t(16142),a=Date.prototype,o="Invalid Date",s="toString",u=r(a[s]),l=r(a.getTime);String(new Date(NaN))!==o&&n(a,s,function(){var c=l(this);return c===c?u(this):o})},81742:function(i,d,t){var r=t(14304),n=t(66009),a=t(66543),o=t(70003),s="WebAssembly",u=n[s],l=new Error("e",{cause:7}).cause!==7,v=function(g,y){var p={};p[g]=o(g,y,l),r({global:!0,constructor:!0,arity:1,forced:l},p)},c=function(g,y){if(u&&u[g]){var p={};p[g]=o(s+"."+g,y,l),r({target:s,stat:!0,constructor:!0,arity:1,forced:l},p)}};v("Error",function(g){return function(p){return a(g,this,arguments)}}),v("EvalError",function(g){return function(p){return a(g,this,arguments)}}),v("RangeError",function(g){return function(p){return a(g,this,arguments)}}),v("ReferenceError",function(g){return function(p){return a(g,this,arguments)}}),v("SyntaxError",function(g){return function(p){return a(g,this,arguments)}}),v("TypeError",function(g){return function(p){return a(g,this,arguments)}}),v("URIError",function(g){return function(p){return a(g,this,arguments)}}),c("CompileError",function(g){return function(p){return a(g,this,arguments)}}),c("LinkError",function(g){return function(p){return a(g,this,arguments)}}),c("RuntimeError",function(g){return function(p){return a(g,this,arguments)}})},8720:function(i,d,t){var r=t(16142),n=t(58434),a=Error.prototype;a.toString!==n&&r(a,"toString",n)},8894:function(i,d,t){var r=t(14304),n=t(11286),a=t(17361),o=n("".charAt),s=n("".charCodeAt),u=n(/./.exec),l=n(1 .toString),v=n("".toUpperCase),c=/[\w*+\-./@]/,g=function(y,p){for(var m=l(y,16);m.length<p;)m="0"+m;return m};r({global:!0},{escape:function(p){for(var m=a(p),S="",x=m.length,I=0,P,A;I<x;)P=o(m,I++),u(c,P)?S+=P:(A=s(P,0),A<256?S+="%"+g(A,2):S+="%u"+v(g(A,4)));return S}})},60628:function(i,d,t){var r=t(14304),n=t(91384);r({target:"Function",proto:!0,forced:Function.bind!==n},{bind:n})},56347:function(i,d,t){var r=t(23583),n=t(37540),a=t(7831),o=t(95307),s=t(18565),u=t(13749),l=s("hasInstance"),v=Function.prototype;l in v||a.f(v,l,{value:u(function(c){if(!r(this)||!n(c))return!1;var g=this.prototype;return n(g)?o(g,c):c instanceof this},l)})},16864:function(i,d,t){var r=t(92986),n=t(86588).EXISTS,a=t(11286),o=t(85500),s=Function.prototype,u=a(s.toString),l=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,v=a(l.exec),c="name";r&&!n&&o(s,c,{configurable:!0,get:function(){try{return v(l,u(this))[1]}catch(g){return""}}})},93819:function(i,d,t){var r=t(14304),n=t(66009);r({global:!0,forced:n.globalThis!==n},{globalThis:n})},71332:function(i,d,t){var r=t(14304),n=t(38941),a=t(66543),o=t(96499),s=t(11286),u=t(72069),l=t(23583),v=t(491),c=t(22806),g=t(10443),y=t(39729),p=String,m=n("JSON","stringify"),S=s(/./.exec),x=s("".charAt),I=s("".charCodeAt),P=s("".replace),A=s(1 .toString),R=/[\uD800-\uDFFF]/g,N=/^[\uD800-\uDBFF]$/,T=/^[\uDC00-\uDFFF]$/,C=!y||u(function(){var b=n("Symbol")("stringify detection");return m([b])!=="[null]"||m({a:b})!=="{}"||m(Object(b))!=="{}"}),D=u(function(){return m("\uDF06\uD834")!=='"\\udf06\\ud834"'||m("\uDEAD")!=='"\\udead"'}),L=function(b,w){var V=c(arguments),U=g(w);if(!(!l(U)&&(b===void 0||v(b))))return V[1]=function(B,j){if(l(U)&&(j=o(U,this,p(B),j)),!v(j))return j},a(m,null,V)},F=function(b,w,V){var U=x(V,w-1),B=x(V,w+1);return S(N,b)&&!S(T,B)||S(T,b)&&!S(N,U)?"\\u"+A(I(b,0),16):b};m&&r({target:"JSON",stat:!0,arity:3,forced:C||D},{stringify:function(w,V,U){var B=c(arguments),j=a(C?L:m,null,B);return D&&typeof j=="string"?P(j,R,F):j}})},47269:function(i,d,t){var r=t(66009),n=t(78401);n(r.JSON,"JSON",!0)},87777:function(i,d,t){var r=t(89378),n=t(34440);r("Map",function(a){return function(){return a(this,arguments.length?arguments[0]:void 0)}},n)},22090:function(i,d,t){var r=t(14304),n=t(11286),a=t(85156),o=t(2068),s=t(55902),u=t(1774),l=t(70457),v=t(72069),c=u.Map,g=u.has,y=u.get,p=u.set,m=n([].push),S=l||v(function(){return c.groupBy("ab",function(x){return x}).get("a").length!==1});r({target:"Map",stat:!0,forced:l||S},{groupBy:function(I,P){o(I),a(P);var A=new c,R=0;return s(I,function(N){var T=P(N,R++);g(A,T)?m(y(A,T),N):p(A,T,[N])}),A}})},25627:function(i,d,t){t(87777)},9839:function(i,d,t){var r=t(14304),n=t(49366),a=Math.acosh,o=Math.log,s=Math.sqrt,u=Math.LN2,l=!a||Math.floor(a(Number.MAX_VALUE))!==710||a(1/0)!==1/0;r({target:"Math",stat:!0,forced:l},{acosh:function(c){var g=+c;return g<1?NaN:g>9490626562425156e-8?o(g)+u:n(g-1+s(g-1)*s(g+1))}})},15656:function(i,d,t){var r=t(14304),n=Math.asinh,a=Math.log,o=Math.sqrt;function s(l){var v=+l;return!isFinite(v)||v===0?v:v<0?-s(-v):a(v+o(v*v+1))}var u=!(n&&1/n(0)>0);r({target:"Math",stat:!0,forced:u},{asinh:s})},22091:function(i,d,t){var r=t(14304),n=Math.atanh,a=Math.log,o=!(n&&1/n(-0)<0);r({target:"Math",stat:!0,forced:o},{atanh:function(u){var l=+u;return l===0?l:a((1+l)/(1-l))/2}})},2886:function(i,d,t){var r=t(14304),n=t(93976),a=Math.abs,o=Math.pow;r({target:"Math",stat:!0},{cbrt:function(u){var l=+u;return n(l)*o(a(l),.3333333333333333)}})},25895:function(i,d,t){var r=t(14304),n=Math.floor,a=Math.log,o=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(u){var l=u>>>0;return l?31-n(a(l+.5)*o):32}})},24228:function(i,d,t){var r=t(14304),n=t(98940),a=Math.cosh,o=Math.abs,s=Math.E,u=!a||a(710)===1/0;r({target:"Math",stat:!0,forced:u},{cosh:function(v){var c=n(o(v)-1)+1;return(c+1/(c*s*s))*(s/2)}})},79488:function(i,d,t){var r=t(14304),n=t(98940);r({target:"Math",stat:!0,forced:n!==Math.expm1},{expm1:n})},75987:function(i,d,t){var r=t(14304),n=t(93279);r({target:"Math",stat:!0},{fround:n})},81555:function(i,d,t){var r=t(14304),n=Math.hypot,a=Math.abs,o=Math.sqrt,s=!!n&&n(1/0,NaN)!==1/0;r({target:"Math",stat:!0,arity:2,forced:s},{hypot:function(l,v){for(var c=0,g=0,y=arguments.length,p=0,m,S;g<y;)m=a(arguments[g++]),p<m?(S=p/m,c=c*S*S+1,p=m):m>0?(S=m/p,c+=S*S):c+=m;return p===1/0?1/0:p*o(c)}})},87854:function(i,d,t){var r=t(14304),n=t(72069),a=Math.imul,o=n(function(){return a(4294967295,5)!==-5||a.length!==2});r({target:"Math",stat:!0,forced:o},{imul:function(u,l){var v=65535,c=+u,g=+l,y=v&c,p=v&g;return 0|y*p+((v&c>>>16)*p+y*(v&g>>>16)<<16>>>0)}})},35074:function(i,d,t){var r=t(14304),n=t(41942);r({target:"Math",stat:!0},{log10:n})},50946:function(i,d,t){var r=t(14304),n=t(49366);r({target:"Math",stat:!0},{log1p:n})},29417:function(i,d,t){var r=t(14304),n=Math.log,a=Math.LN2;r({target:"Math",stat:!0},{log2:function(s){return n(s)/a}})},80628:function(i,d,t){var r=t(14304),n=t(93976);r({target:"Math",stat:!0},{sign:n})},74375:function(i,d,t){var r=t(14304),n=t(72069),a=t(98940),o=Math.abs,s=Math.exp,u=Math.E,l=n(function(){return Math.sinh(-2e-17)!==-2e-17});r({target:"Math",stat:!0,forced:l},{sinh:function(c){var g=+c;return o(g)<1?(a(g)-a(-g))/2:(s(g-1)-s(-g-1))*(u/2)}})},29708:function(i,d,t){var r=t(14304),n=t(98940),a=Math.exp;r({target:"Math",stat:!0},{tanh:function(s){var u=+s,l=n(u),v=n(-u);return l===1/0?1:v===1/0?-1:(l-v)/(a(u)+a(-u))}})},93449:function(i,d,t){var r=t(78401);r(Math,"Math",!0)},9111:function(i,d,t){var r=t(14304),n=t(22459);r({target:"Math",stat:!0},{trunc:n})},83514:function(i,d,t){var r=t(14304),n=t(70457),a=t(92986),o=t(66009),s=t(75081),u=t(11286),l=t(13278),v=t(94879),c=t(32345),g=t(95307),y=t(491),p=t(89935),m=t(72069),S=t(83258).f,x=t(71349).f,I=t(7831).f,P=t(34338),A=t(85900).trim,R="Number",N=o[R],T=s[R],C=N.prototype,D=o.TypeError,L=u("".slice),F=u("".charCodeAt),b=function(z){var k=p(z,"number");return typeof k=="bigint"?k:w(k)},w=function(z){var k=p(z,"number"),J,et,_,dt,lt,pt,St,Ot;if(y(k))throw new D("Cannot convert a Symbol value to a number");if(typeof k=="string"&&k.length>2){if(k=A(k),J=F(k,0),J===43||J===45){if(et=F(k,2),et===88||et===120)return NaN}else if(J===48){switch(F(k,1)){case 66:case 98:_=2,dt=49;break;case 79:case 111:_=8,dt=55;break;default:return+k}for(lt=L(k,2),pt=lt.length,St=0;St<pt;St++)if(Ot=F(lt,St),Ot<48||Ot>dt)return NaN;return parseInt(lt,_)}}return+k},V=l(R,!N(" 0o1")||!N("0b1")||N("+0x1")),U=function(z){return g(C,z)&&m(function(){P(z)})},B=function(k){var J=arguments.length<1?0:N(b(k));return U(this)?c(Object(J),this,B):J};B.prototype=C,V&&!n&&(C.constructor=B),r({global:!0,constructor:!0,wrap:!0,forced:V},{Number:B});var j=function(z,k){for(var J=a?S(k):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),et=0,_;J.length>et;et++)v(k,_=J[et])&&!v(z,_)&&I(z,_,x(k,_))};n&&T&&j(s[R],T),(V||n)&&j(s[R],N)},15096:function(i,d,t){var r=t(14304);r({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},59590:function(i,d,t){var r=t(14304),n=t(98074);r({target:"Number",stat:!0},{isFinite:n})},99663:function(i,d,t){var r=t(14304),n=t(613);r({target:"Number",stat:!0},{isInteger:n})},89988:function(i,d,t){var r=t(14304);r({target:"Number",stat:!0},{isNaN:function(a){return a!==a}})},54427:function(i,d,t){var r=t(14304),n=t(613),a=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(s){return n(s)&&a(s)<=9007199254740991}})},67895:function(i,d,t){var r=t(14304);r({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},57909:function(i,d,t){var r=t(14304);r({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},83938:function(i,d,t){var r=t(14304),n=t(25838);r({target:"Number",stat:!0,forced:Number.parseFloat!==n},{parseFloat:n})},55461:function(i,d,t){var r=t(14304),n=t(23009);r({target:"Number",stat:!0,forced:Number.parseInt!==n},{parseInt:n})},97339:function(i,d,t){var r=t(14304),n=t(11286),a=t(12105),o=t(34338),s=t(79719),u=t(41942),l=t(72069),v=RangeError,c=String,g=isFinite,y=Math.abs,p=Math.floor,m=Math.pow,S=Math.round,x=n(1 .toExponential),I=n(s),P=n("".slice),A=x(-69e-12,4)==="-6.9000e-11"&&x(1.255,2)==="1.25e+0"&&x(12345,3)==="1.235e+4"&&x(25,0)==="3e+1",R=function(){return l(function(){x(1,1/0)})&&l(function(){x(1,-1/0)})},N=function(){return!l(function(){x(1/0,1/0),x(NaN,1/0)})},T=!A||!R()||!N();r({target:"Number",proto:!0,forced:T},{toExponential:function(D){var L=o(this);if(D===void 0)return x(L);var F=a(D);if(!g(L))return String(L);if(F<0||F>20)throw new v("Incorrect fraction digits");if(A)return x(L,F);var b="",w="",V=0,U="",B="";if(L<0&&(b="-",L=-L),L===0)V=0,w=I("0",F+1);else{var j=u(L);V=p(j);var z=0,k=m(10,V-F);z=S(L/k),2*L>=(2*z+1)*k&&(z+=1),z>=m(10,F+1)&&(z/=10,V+=1),w=c(z)}return F!==0&&(w=P(w,0,1)+"."+P(w,1)),V===0?(U="+",B="0"):(U=V>0?"+":"-",B=c(y(V))),w+="e"+U+B,b+w}})},3670:function(i,d,t){var r=t(14304),n=t(11286),a=t(12105),o=t(34338),s=t(79719),u=t(72069),l=RangeError,v=String,c=Math.floor,g=n(s),y=n("".slice),p=n(1 .toFixed),m=function(R,N,T){return N===0?T:N%2===1?m(R,N-1,T*R):m(R*R,N/2,T)},S=function(R){for(var N=0,T=R;T>=4096;)N+=12,T/=4096;for(;T>=2;)N+=1,T/=2;return N},x=function(R,N,T){for(var C=-1,D=T;++C<6;)D+=N*R[C],R[C]=D%1e7,D=c(D/1e7)},I=function(R,N){for(var T=6,C=0;--T>=0;)C+=R[T],R[T]=c(C/N),C=C%N*1e7},P=function(R){for(var N=6,T="";--N>=0;)if(T!==""||N===0||R[N]!==0){var C=v(R[N]);T=T===""?C:T+g("0",7-C.length)+C}return T},A=u(function(){return p(8e-5,3)!=="0.000"||p(.9,0)!=="1"||p(1.255,2)!=="1.25"||p(0xde0b6b3a7640080,0)!=="1000000000000000128"})||!u(function(){p({})});r({target:"Number",proto:!0,forced:A},{toFixed:function(N){var T=o(this),C=a(N),D=[0,0,0,0,0,0],L="",F="0",b,w,V,U;if(C<0||C>20)throw new l("Incorrect fraction digits");if(T!==T)return"NaN";if(T<=-1e21||T>=1e21)return v(T);if(T<0&&(L="-",T=-T),T>1e-21)if(b=S(T*m(2,69,1))-69,w=b<0?T*m(2,-b,1):T/m(2,b,1),w*=4503599627370496,b=52-b,b>0){for(x(D,0,w),V=C;V>=7;)x(D,1e7,0),V-=7;for(x(D,m(10,V,1),0),V=b-1;V>=23;)I(D,8388608),V-=23;I(D,1<<V),x(D,1,1),I(D,2),F=P(D)}else x(D,0,w),x(D,1<<-b,0),F=P(D)+g("0",C);return C>0?(U=F.length,F=L+(U<=C?"0."+g("0",C-U)+F:y(F,0,U-C)+"."+y(F,U-C))):F=L+F,F}})},15224:function(i,d,t){var r=t(14304),n=t(11286),a=t(72069),o=t(34338),s=n(1 .toPrecision),u=a(function(){return s(1,void 0)!=="1"})||!a(function(){s({})});r({target:"Number",proto:!0,forced:u},{toPrecision:function(v){return v===void 0?s(o(this)):s(o(this),v)}})},45891:function(i,d,t){var r=t(14304),n=t(16667);r({target:"Object",stat:!0,arity:2,forced:Object.assign!==n},{assign:n})},99910:function(i,d,t){var r=t(14304),n=t(92986),a=t(5406);r({target:"Object",stat:!0,sham:!n},{create:a})},92445:function(i,d,t){var r=t(14304),n=t(92986),a=t(57629),o=t(85156),s=t(49671),u=t(7831);n&&r({target:"Object",proto:!0,forced:a},{__defineGetter__:function(v,c){u.f(s(this),v,{get:o(c),enumerable:!0,configurable:!0})}})},21875:function(i,d,t){var r=t(14304),n=t(92986),a=t(61963).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==a,sham:!n},{defineProperties:a})},4383:function(i,d,t){var r=t(14304),n=t(92986),a=t(7831).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==a,sham:!n},{defineProperty:a})},11361:function(i,d,t){var r=t(14304),n=t(92986),a=t(57629),o=t(85156),s=t(49671),u=t(7831);n&&r({target:"Object",proto:!0,forced:a},{__defineSetter__:function(v,c){u.f(s(this),v,{set:o(c),enumerable:!0,configurable:!0})}})},13728:function(i,d,t){var r=t(14304),n=t(8511).entries;r({target:"Object",stat:!0},{entries:function(o){return n(o)}})},14885:function(i,d,t){var r=t(14304),n=t(27534),a=t(72069),o=t(37540),s=t(31853).onFreeze,u=Object.freeze,l=a(function(){u(1)});r({target:"Object",stat:!0,forced:l,sham:!n},{freeze:function(c){return u&&o(c)?u(s(c)):c}})},30343:function(i,d,t){var r=t(14304),n=t(55902),a=t(84082);r({target:"Object",stat:!0},{fromEntries:function(s){var u={};return n(s,function(l,v){a(u,l,v)},{AS_ENTRIES:!0}),u}})},22045:function(i,d,t){var r=t(14304),n=t(72069),a=t(36859),o=t(71349).f,s=t(92986),u=!s||n(function(){o(1)});r({target:"Object",stat:!0,forced:u,sham:!s},{getOwnPropertyDescriptor:function(v,c){return o(a(v),c)}})},75e3:function(i,d,t){var r=t(14304),n=t(92986),a=t(16885),o=t(36859),s=t(71349),u=t(84082);r({target:"Object",stat:!0,sham:!n},{getOwnPropertyDescriptors:function(v){for(var c=o(v),g=s.f,y=a(c),p={},m=0,S,x;y.length>m;)x=g(c,S=y[m++]),x!==void 0&&u(p,S,x);return p}})},64658:function(i,d,t){var r=t(14304),n=t(72069),a=t(92880).f,o=n(function(){return!Object.getOwnPropertyNames(1)});r({target:"Object",stat:!0,forced:o},{getOwnPropertyNames:a})},45223:function(i,d,t){var r=t(14304),n=t(39729),a=t(72069),o=t(24943),s=t(49671),u=!n||a(function(){o.f(1)});r({target:"Object",stat:!0,forced:u},{getOwnPropertySymbols:function(v){var c=o.f;return c?c(s(v)):[]}})},16017:function(i,d,t){var r=t(14304),n=t(72069),a=t(49671),o=t(26313),s=t(87501),u=n(function(){o(1)});r({target:"Object",stat:!0,forced:u,sham:!s},{getPrototypeOf:function(v){return o(a(v))}})},84681:function(i,d,t){var r=t(14304),n=t(38941),a=t(11286),o=t(85156),s=t(2068),u=t(50035),l=t(55902),v=t(72069),c=Object.groupBy,g=n("Object","create"),y=a([].push),p=!c||v(function(){return c("ab",function(m){return m}).a.length!==1});r({target:"Object",stat:!0,forced:p},{groupBy:function(S,x){s(S),o(x);var I=g(null),P=0;return l(S,function(A){var R=u(x(A,P++));R in I?y(I[R],A):I[R]=[A]}),I}})},73421:function(i,d,t){var r=t(14304),n=t(94879);r({target:"Object",stat:!0},{hasOwn:n})},31046:function(i,d,t){var r=t(14304),n=t(28174);r({target:"Object",stat:!0,forced:Object.isExtensible!==n},{isExtensible:n})},94645:function(i,d,t){var r=t(14304),n=t(72069),a=t(37540),o=t(14274),s=t(72058),u=Object.isFrozen,l=s||n(function(){u(1)});r({target:"Object",stat:!0,forced:l},{isFrozen:function(c){return!a(c)||s&&o(c)==="ArrayBuffer"?!0:u?u(c):!1}})},62935:function(i,d,t){var r=t(14304),n=t(72069),a=t(37540),o=t(14274),s=t(72058),u=Object.isSealed,l=s||n(function(){u(1)});r({target:"Object",stat:!0,forced:l},{isSealed:function(c){return!a(c)||s&&o(c)==="ArrayBuffer"?!0:u?u(c):!1}})},93446:function(i,d,t){var r=t(14304),n=t(13944);r({target:"Object",stat:!0},{is:n})},62518:function(i,d,t){var r=t(14304),n=t(49671),a=t(18350),o=t(72069),s=o(function(){a(1)});r({target:"Object",stat:!0,forced:s},{keys:function(l){return a(n(l))}})},45130:function(i,d,t){var r=t(14304),n=t(92986),a=t(57629),o=t(49671),s=t(50035),u=t(26313),l=t(71349).f;n&&r({target:"Object",proto:!0,forced:a},{__lookupGetter__:function(c){var g=o(this),y=s(c),p;do if(p=l(g,y))return p.get;while(g=u(g))}})},51542:function(i,d,t){var r=t(14304),n=t(92986),a=t(57629),o=t(49671),s=t(50035),u=t(26313),l=t(71349).f;n&&r({target:"Object",proto:!0,forced:a},{__lookupSetter__:function(c){var g=o(this),y=s(c),p;do if(p=l(g,y))return p.set;while(g=u(g))}})},43781:function(i,d,t){var r=t(14304),n=t(37540),a=t(31853).onFreeze,o=t(27534),s=t(72069),u=Object.preventExtensions,l=s(function(){u(1)});r({target:"Object",stat:!0,forced:l,sham:!o},{preventExtensions:function(c){return u&&n(c)?u(a(c)):c}})},25738:function(i,d,t){var r=t(92986),n=t(85500),a=t(37540),o=t(52427),s=t(49671),u=t(2068),l=Object.getPrototypeOf,v=Object.setPrototypeOf,c=Object.prototype,g="__proto__";if(r&&l&&v&&!(g in c))try{n(c,g,{configurable:!0,get:function(){return l(s(this))},set:function(p){var m=u(this);o(p)&&a(m)&&v(m,p)}})}catch(y){}},93247:function(i,d,t){var r=t(14304),n=t(37540),a=t(31853).onFreeze,o=t(27534),s=t(72069),u=Object.seal,l=s(function(){u(1)});r({target:"Object",stat:!0,forced:l,sham:!o},{seal:function(c){return u&&n(c)?u(a(c)):c}})},41533:function(i,d,t){var r=t(14304),n=t(15861);r({target:"Object",stat:!0},{setPrototypeOf:n})},60225:function(i,d,t){var r=t(67878),n=t(16142),a=t(60105);r||n(Object.prototype,"toString",a,{unsafe:!0})},69920:function(i,d,t){var r=t(14304),n=t(8511).values;r({target:"Object",stat:!0},{values:function(o){return n(o)}})},89205:function(i,d,t){var r=t(14304),n=t(25838);r({global:!0,forced:parseFloat!==n},{parseFloat:n})},78546:function(i,d,t){var r=t(14304),n=t(23009);r({global:!0,forced:parseInt!==n},{parseInt:n})},16893:function(i,d,t){var r=t(14304),n=t(96499),a=t(85156),o=t(24649),s=t(67805),u=t(55902),l=t(26035);r({target:"Promise",stat:!0,forced:l},{allSettled:function(c){var g=this,y=o.f(g),p=y.resolve,m=y.reject,S=s(function(){var x=a(g.resolve),I=[],P=0,A=1;u(c,function(R){var N=P++,T=!1;A++,n(x,g,R).then(function(C){T||(T=!0,I[N]={status:"fulfilled",value:C},--A||p(I))},function(C){T||(T=!0,I[N]={status:"rejected",reason:C},--A||p(I))})}),--A||p(I)});return S.error&&m(S.value),y.promise}})},11733:function(i,d,t){var r=t(14304),n=t(96499),a=t(85156),o=t(24649),s=t(67805),u=t(55902),l=t(26035);r({target:"Promise",stat:!0,forced:l},{all:function(c){var g=this,y=o.f(g),p=y.resolve,m=y.reject,S=s(function(){var x=a(g.resolve),I=[],P=0,A=1;u(c,function(R){var N=P++,T=!1;A++,n(x,g,R).then(function(C){T||(T=!0,I[N]=C,--A||p(I))},m)}),--A||p(I)});return S.error&&m(S.value),y.promise}})},3676:function(i,d,t){var r=t(14304),n=t(96499),a=t(85156),o=t(38941),s=t(24649),u=t(67805),l=t(55902),v=t(26035),c="No one promise resolved";r({target:"Promise",stat:!0,forced:v},{any:function(y){var p=this,m=o("AggregateError"),S=s.f(p),x=S.resolve,I=S.reject,P=u(function(){var A=a(p.resolve),R=[],N=0,T=1,C=!1;l(y,function(D){var L=N++,F=!1;T++,n(A,p,D).then(function(b){F||C||(C=!0,x(b))},function(b){F||C||(F=!0,R[L]=b,--T||I(new m(R,c)))})}),--T||I(new m(R,c))});return P.error&&I(P.value),S.promise}})},14013:function(i,d,t){var r=t(14304),n=t(70457),a=t(37130).CONSTRUCTOR,o=t(98844),s=t(38941),u=t(23583),l=t(16142),v=o&&o.prototype;if(r({target:"Promise",proto:!0,forced:a,real:!0},{catch:function(g){return this.then(void 0,g)}}),!n&&u(o)){var c=s("Promise").prototype.catch;v.catch!==c&&l(v,"catch",c,{unsafe:!0})}},20238:function(i,d,t){var r=t(14304),n=t(70457),a=t(42954),o=t(66009),s=t(96499),u=t(16142),l=t(15861),v=t(78401),c=t(36167),g=t(85156),y=t(23583),p=t(37540),m=t(12833),S=t(16887),x=t(23115).set,I=t(9709),P=t(99095),A=t(67805),R=t(76895),N=t(82367),T=t(98844),C=t(37130),D=t(24649),L="Promise",F=C.CONSTRUCTOR,b=C.REJECTION_EVENT,w=C.SUBCLASSING,V=N.getterFor(L),U=N.set,B=T&&T.prototype,j=T,z=B,k=o.TypeError,J=o.document,et=o.process,_=D.f,dt=_,lt=!!(J&&J.createEvent&&o.dispatchEvent),pt="unhandledrejection",St="rejectionhandled",Ot=0,Ht=1,$t=2,bt=1,vt=2,gt,Pt,Dt,Nt,Ut=function(tt){var It;return p(tt)&&y(It=tt.then)?It:!1},Zt=function(tt,It){var Tt=It.value,xt=It.state===Ht,yt=xt?tt.ok:tt.fail,_t=tt.resolve,nr=tt.reject,Q=tt.domain,ot,ut,W;try{yt?(xt||(It.rejection===vt&&Vt(It),It.rejection=bt),yt===!0?ot=Tt:(Q&&Q.enter(),ot=yt(Tt),Q&&(Q.exit(),W=!0)),ot===tt.promise?nr(new k("Promise-chain cycle")):(ut=Ut(ot))?s(ut,ot,_t,nr):_t(ot)):nr(Tt)}catch(Z){Q&&!W&&Q.exit(),nr(Z)}},kt=function(tt,It){tt.notified||(tt.notified=!0,I(function(){for(var Tt=tt.reactions,xt;xt=Tt.get();)Zt(xt,tt);tt.notified=!1,It&&!tt.rejection&&Lt(tt)}))},Jt=function(tt,It,Tt){var xt,yt;lt?(xt=J.createEvent("Event"),xt.promise=It,xt.reason=Tt,xt.initEvent(tt,!1,!0),o.dispatchEvent(xt)):xt={promise:It,reason:Tt},!b&&(yt=o["on"+tt])?yt(xt):tt===pt&&P("Unhandled promise rejection",Tt)},Lt=function(tt){s(x,o,function(){var It=tt.facade,Tt=tt.value,xt=Qt(tt),yt;if(xt&&(yt=A(function(){a?et.emit("unhandledRejection",Tt,It):Jt(pt,It,Tt)}),tt.rejection=a||Qt(tt)?vt:bt,yt.error))throw yt.value})},Qt=function(tt){return tt.rejection!==bt&&!tt.parent},Vt=function(tt){s(x,o,function(){var It=tt.facade;a?et.emit("rejectionHandled",It):Jt(St,It,tt.value)})},jt=function(tt,It,Tt){return function(xt){tt(It,xt,Tt)}},st=function(tt,It,Tt){tt.done||(tt.done=!0,Tt&&(tt=Tt),tt.value=It,tt.state=$t,kt(tt,!0))},ht=function(tt,It,Tt){if(!tt.done){tt.done=!0,Tt&&(tt=Tt);try{if(tt.facade===It)throw new k("Promise can't be resolved itself");var xt=Ut(It);xt?I(function(){var yt={done:!1};try{s(xt,It,jt(ht,yt,tt),jt(st,yt,tt))}catch(_t){st(yt,_t,tt)}}):(tt.value=It,tt.state=Ht,kt(tt,!1))}catch(yt){st({done:!1},yt,tt)}}};if(F&&(j=function(It){m(this,z),g(It),s(gt,this);var Tt=V(this);try{It(jt(ht,Tt),jt(st,Tt))}catch(xt){st(Tt,xt)}},z=j.prototype,gt=function(It){U(this,{type:L,done:!1,notified:!1,parent:!1,reactions:new R,rejection:!1,state:Ot,value:void 0})},gt.prototype=u(z,"then",function(It,Tt){var xt=V(this),yt=_(S(this,j));return xt.parent=!0,yt.ok=y(It)?It:!0,yt.fail=y(Tt)&&Tt,yt.domain=a?et.domain:void 0,xt.state===Ot?xt.reactions.add(yt):I(function(){Zt(yt,xt)}),yt.promise}),Pt=function(){var tt=new gt,It=V(tt);this.promise=tt,this.resolve=jt(ht,It),this.reject=jt(st,It)},D.f=_=function(tt){return tt===j||tt===Dt?new Pt(tt):dt(tt)},!n&&y(T)&&B!==Object.prototype)){Nt=B.then,w||u(B,"then",function(It,Tt){var xt=this;return new j(function(yt,_t){s(Nt,xt,yt,_t)}).then(It,Tt)},{unsafe:!0});try{delete B.constructor}catch(tt){}l&&l(B,z)}r({global:!0,constructor:!0,wrap:!0,forced:F},{Promise:j}),v(j,L,!1,!0),c(L)},58361:function(i,d,t){var r=t(14304),n=t(70457),a=t(98844),o=t(72069),s=t(38941),u=t(23583),l=t(16887),v=t(87408),c=t(16142),g=a&&a.prototype,y=!!a&&o(function(){g.finally.call({then:function(){}},function(){})});if(r({target:"Promise",proto:!0,real:!0,forced:y},{finally:function(m){var S=l(this,s("Promise")),x=u(m);return this.then(x?function(I){return v(S,m()).then(function(){return I})}:m,x?function(I){return v(S,m()).then(function(){throw I})}:m)}}),!n&&u(a)){var p=s("Promise").prototype.finally;g.finally!==p&&c(g,"finally",p,{unsafe:!0})}},63616:function(i,d,t){t(20238),t(11733),t(14013),t(3037),t(36027),t(97282)},3037:function(i,d,t){var r=t(14304),n=t(96499),a=t(85156),o=t(24649),s=t(67805),u=t(55902),l=t(26035);r({target:"Promise",stat:!0,forced:l},{race:function(c){var g=this,y=o.f(g),p=y.reject,m=s(function(){var S=a(g.resolve);u(c,function(x){n(S,g,x).then(y.resolve,p)})});return m.error&&p(m.value),y.promise}})},36027:function(i,d,t){var r=t(14304),n=t(24649),a=t(37130).CONSTRUCTOR;r({target:"Promise",stat:!0,forced:a},{reject:function(s){var u=n.f(this),l=u.reject;return l(s),u.promise}})},97282:function(i,d,t){var r=t(14304),n=t(38941),a=t(70457),o=t(98844),s=t(37130).CONSTRUCTOR,u=t(87408),l=n("Promise"),v=a&&!s;r({target:"Promise",stat:!0,forced:a||s},{resolve:function(g){return u(v&&this===l?o:this,g)}})},23958:function(i,d,t){var r=t(14304),n=t(24649);r({target:"Promise",stat:!0},{withResolvers:function(){var o=n.f(this);return{promise:o.promise,resolve:o.resolve,reject:o.reject}}})},9798:function(i,d,t){var r=t(14304),n=t(66543),a=t(85156),o=t(25001),s=t(72069),u=!s(function(){Reflect.apply(function(){})});r({target:"Reflect",stat:!0,forced:u},{apply:function(v,c,g){return n(a(v),c,o(g))}})},2371:function(i,d,t){var r=t(14304),n=t(38941),a=t(66543),o=t(91384),s=t(80042),u=t(25001),l=t(37540),v=t(5406),c=t(72069),g=n("Reflect","construct"),y=Object.prototype,p=[].push,m=c(function(){function I(){}return!(g(function(){},[],I)instanceof I)}),S=!c(function(){g(function(){})}),x=m||S;r({target:"Reflect",stat:!0,forced:x,sham:x},{construct:function(P,A){s(P),u(A);var R=arguments.length<3?P:s(arguments[2]);if(S&&!m)return g(P,A,R);if(P===R){switch(A.length){case 0:return new P;case 1:return new P(A[0]);case 2:return new P(A[0],A[1]);case 3:return new P(A[0],A[1],A[2]);case 4:return new P(A[0],A[1],A[2],A[3])}var N=[null];return a(p,N,A),new(a(o,P,N))}var T=R.prototype,C=v(l(T)?T:y),D=a(P,C,A);return l(D)?D:C}})},76185:function(i,d,t){var r=t(14304),n=t(92986),a=t(25001),o=t(50035),s=t(7831),u=t(72069),l=u(function(){Reflect.defineProperty(s.f({},1,{value:1}),1,{value:2})});r({target:"Reflect",stat:!0,forced:l,sham:!n},{defineProperty:function(c,g,y){a(c);var p=o(g);a(y);try{return s.f(c,p,y),!0}catch(m){return!1}}})},76553:function(i,d,t){var r=t(14304),n=t(25001),a=t(71349).f;r({target:"Reflect",stat:!0},{deleteProperty:function(s,u){var l=a(n(s),u);return l&&!l.configurable?!1:delete s[u]}})},25227:function(i,d,t){var r=t(14304),n=t(92986),a=t(25001),o=t(71349);r({target:"Reflect",stat:!0,sham:!n},{getOwnPropertyDescriptor:function(u,l){return o.f(a(u),l)}})},91723:function(i,d,t){var r=t(14304),n=t(25001),a=t(26313),o=t(87501);r({target:"Reflect",stat:!0,sham:!o},{getPrototypeOf:function(u){return a(n(u))}})},93518:function(i,d,t){var r=t(14304),n=t(96499),a=t(37540),o=t(25001),s=t(69745),u=t(71349),l=t(26313);function v(c,g){var y=arguments.length<3?c:arguments[2],p,m;if(o(c)===y)return c[g];if(p=u.f(c,g),p)return s(p)?p.value:p.get===void 0?void 0:n(p.get,y);if(a(m=l(c)))return v(m,g,y)}r({target:"Reflect",stat:!0},{get:v})},57882:function(i,d,t){var r=t(14304);r({target:"Reflect",stat:!0},{has:function(a,o){return o in a}})},37796:function(i,d,t){var r=t(14304),n=t(25001),a=t(28174);r({target:"Reflect",stat:!0},{isExtensible:function(s){return n(s),a(s)}})},11563:function(i,d,t){var r=t(14304),n=t(16885);r({target:"Reflect",stat:!0},{ownKeys:n})},26159:function(i,d,t){var r=t(14304),n=t(38941),a=t(25001),o=t(27534);r({target:"Reflect",stat:!0,sham:!o},{preventExtensions:function(u){a(u);try{var l=n("Object","preventExtensions");return l&&l(u),!0}catch(v){return!1}}})},77487:function(i,d,t){var r=t(14304),n=t(25001),a=t(53408),o=t(15861);o&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(u,l){n(u),a(l);try{return o(u,l),!0}catch(v){return!1}}})},20962:function(i,d,t){var r=t(14304),n=t(96499),a=t(25001),o=t(37540),s=t(69745),u=t(72069),l=t(7831),v=t(71349),c=t(26313),g=t(18526);function y(m,S,x){var I=arguments.length<4?m:arguments[3],P=v.f(a(m),S),A,R,N;if(!P){if(o(R=c(m)))return y(R,S,x,I);P=g(0)}if(s(P)){if(P.writable===!1||!o(I))return!1;if(A=v.f(I,S)){if(A.get||A.set||A.writable===!1)return!1;A.value=x,l.f(I,S,A)}else l.f(I,S,g(0,x))}else{if(N=P.set,N===void 0)return!1;n(N,I,x)}return!0}var p=u(function(){var m=function(){},S=l.f(new m,"a",{configurable:!0});return Reflect.set(m.prototype,"a",1,S)!==!1});r({target:"Reflect",stat:!0,forced:p},{set:y})},6130:function(i,d,t){var r=t(14304),n=t(66009),a=t(78401);r({global:!0},{Reflect:{}}),a(n.Reflect,"Reflect",!0)},1354:function(i,d,t){var r=t(92986),n=t(66009),a=t(11286),o=t(13278),s=t(32345),u=t(90809),l=t(5406),v=t(83258).f,c=t(95307),g=t(11566),y=t(17361),p=t(54932),m=t(39807),S=t(2594),x=t(16142),I=t(72069),P=t(94879),A=t(82367).enforce,R=t(36167),N=t(18565),T=t(76769),C=t(85220),D=N("match"),L=n.RegExp,F=L.prototype,b=n.SyntaxError,w=a(F.exec),V=a("".charAt),U=a("".replace),B=a("".indexOf),j=a("".slice),z=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,k=/a/g,J=/a/g,et=new L(k)!==k,_=m.MISSED_STICKY,dt=m.UNSUPPORTED_Y,lt=r&&(!et||_||T||C||I(function(){return J[D]=!1,L(k)!==k||L(J)===J||String(L(k,"i"))!=="/a/i"})),pt=function(bt){for(var vt=bt.length,gt=0,Pt="",Dt=!1,Nt;gt<=vt;gt++){if(Nt=V(bt,gt),Nt==="\\"){Pt+=Nt+V(bt,++gt);continue}!Dt&&Nt==="."?Pt+="[\\s\\S]":(Nt==="["?Dt=!0:Nt==="]"&&(Dt=!1),Pt+=Nt)}return Pt},St=function(bt){for(var vt=bt.length,gt=0,Pt="",Dt=[],Nt=l(null),Ut=!1,Zt=!1,kt=0,Jt="",Lt;gt<=vt;gt++){if(Lt=V(bt,gt),Lt==="\\")Lt+=V(bt,++gt);else if(Lt==="]")Ut=!1;else if(!Ut)switch(!0){case Lt==="[":Ut=!0;break;case Lt==="(":w(z,j(bt,gt+1))&&(gt+=2,Zt=!0),Pt+=Lt,kt++;continue;case(Lt===">"&&Zt):if(Jt===""||P(Nt,Jt))throw new b("Invalid capture group name");Nt[Jt]=!0,Dt[Dt.length]=[Jt,kt],Zt=!1,Jt="";continue}Zt?Jt+=Lt:Pt+=Lt}return[Pt,Dt]};if(o("RegExp",lt)){for(var Ot=function(vt,gt){var Pt=c(F,this),Dt=g(vt),Nt=gt===void 0,Ut=[],Zt=vt,kt,Jt,Lt,Qt,Vt,jt;if(!Pt&&Dt&&Nt&&vt.constructor===Ot)return vt;if((Dt||c(F,vt))&&(vt=vt.source,Nt&&(gt=p(Zt))),vt=vt===void 0?"":y(vt),gt=gt===void 0?"":y(gt),Zt=vt,T&&"dotAll"in k&&(Jt=!!gt&&B(gt,"s")>-1,Jt&&(gt=U(gt,/s/g,""))),kt=gt,_&&"sticky"in k&&(Lt=!!gt&&B(gt,"y")>-1,Lt&&dt&&(gt=U(gt,/y/g,""))),C&&(Qt=St(vt),vt=Qt[0],Ut=Qt[1]),Vt=s(L(vt,gt),Pt?this:F,Ot),(Jt||Lt||Ut.length)&&(jt=A(Vt),Jt&&(jt.dotAll=!0,jt.raw=Ot(pt(vt),kt)),Lt&&(jt.sticky=!0),Ut.length&&(jt.groups=Ut)),vt!==Zt)try{u(Vt,"source",Zt===""?"(?:)":Zt)}catch(st){}return Vt},Ht=v(L),$t=0;Ht.length>$t;)S(Ot,L,Ht[$t++]);F.constructor=Ot,Ot.prototype=F,x(n,"RegExp",Ot,{constructor:!0})}R("RegExp")},47119:function(i,d,t){var r=t(92986),n=t(76769),a=t(14274),o=t(85500),s=t(82367).get,u=RegExp.prototype,l=TypeError;r&&n&&o(u,"dotAll",{configurable:!0,get:function(){if(this!==u){if(a(this)==="RegExp")return!!s(this).dotAll;throw new l("Incompatible receiver, RegExp required")}}})},31145:function(i,d,t){var r=t(14304),n=t(44381);r({target:"RegExp",proto:!0,forced:/./.exec!==n},{exec:n})},96773:function(i,d,t){var r=t(66009),n=t(92986),a=t(85500),o=t(29833),s=t(72069),u=r.RegExp,l=u.prototype,v=n&&s(function(){var c=!0;try{u(".","d")}catch(P){c=!1}var g={},y="",p=c?"dgimsy":"gimsy",m=function(P,A){Object.defineProperty(g,P,{get:function(){return y+=A,!0}})},S={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};c&&(S.hasIndices="d");for(var x in S)m(x,S[x]);var I=Object.getOwnPropertyDescriptor(l,"flags").get.call(g);return I!==p||y!==p});v&&a(l,"flags",{configurable:!0,get:o})},14371:function(i,d,t){var r=t(92986),n=t(39807).MISSED_STICKY,a=t(14274),o=t(85500),s=t(82367).get,u=RegExp.prototype,l=TypeError;r&&n&&o(u,"sticky",{configurable:!0,get:function(){if(this!==u){if(a(this)==="RegExp")return!!s(this).sticky;throw new l("Incompatible receiver, RegExp required")}}})},18180:function(i,d,t){t(31145);var r=t(14304),n=t(96499),a=t(23583),o=t(25001),s=t(17361),u=function(){var v=!1,c=/[ac]/;return c.exec=function(){return v=!0,/./.exec.apply(this,arguments)},c.test("abc")===!0&&v}(),l=/./.test;r({target:"RegExp",proto:!0,forced:!u},{test:function(v){var c=o(this),g=s(v),y=c.exec;if(!a(y))return n(l,c,g);var p=n(y,c,g);return p===null?!1:(o(p),!0)}})},83147:function(i,d,t){var r=t(86588).PROPER,n=t(16142),a=t(25001),o=t(17361),s=t(72069),u=t(54932),l="toString",v=RegExp.prototype,c=v[l],g=s(function(){return c.call({source:"a",flags:"b"})!=="/a/b"}),y=r&&c.name!==l;(g||y)&&n(v,l,function(){var m=a(this),S=o(m.source),x=o(u(m));return"/"+S+"/"+x},{unsafe:!0})},6583:function(i,d,t){var r=t(89378),n=t(34440);r("Set",function(a){return function(){return a(this,arguments.length?arguments[0]:void 0)}},n)},86548:function(i,d,t){var r=t(14304),n=t(41754),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("difference")},{difference:n})},15282:function(i,d,t){var r=t(14304),n=t(72069),a=t(92292),o=t(94118),s=!o("intersection")||n(function(){return String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))!=="3,2"});r({target:"Set",proto:!0,real:!0,forced:s},{intersection:a})},51275:function(i,d,t){var r=t(14304),n=t(47391),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("isDisjointFrom")},{isDisjointFrom:n})},91890:function(i,d,t){var r=t(14304),n=t(75492),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("isSubsetOf")},{isSubsetOf:n})},15089:function(i,d,t){var r=t(14304),n=t(1333),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("isSupersetOf")},{isSupersetOf:n})},75765:function(i,d,t){t(6583)},78134:function(i,d,t){var r=t(14304),n=t(64680),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("symmetricDifference")},{symmetricDifference:n})},56456:function(i,d,t){var r=t(14304),n=t(70402),a=t(94118);r({target:"Set",proto:!0,real:!0,forced:!a("union")},{union:n})},70641:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("anchor")},{anchor:function(s){return n(this,"a","name",s)}})},40735:function(i,d,t){var r=t(14304),n=t(11286),a=t(2068),o=t(12105),s=t(17361),u=t(72069),l=n("".charAt),v=u(function(){return"\u{20BB7}".at(-2)!=="\uD842"});r({target:"String",proto:!0,forced:v},{at:function(g){var y=s(a(this)),p=y.length,m=o(g),S=m>=0?m:p+m;return S<0||S>=p?void 0:l(y,S)}})},53892:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("big")},{big:function(){return n(this,"big","","")}})},95976:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("blink")},{blink:function(){return n(this,"blink","","")}})},399:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("bold")},{bold:function(){return n(this,"b","","")}})},8510:function(i,d,t){var r=t(14304),n=t(22149).codeAt;r({target:"String",proto:!0},{codePointAt:function(o){return n(this,o)}})},70159:function(i,d,t){var r=t(14304),n=t(77422),a=t(71349).f,o=t(45344),s=t(17361),u=t(92337),l=t(2068),v=t(8790),c=t(70457),g=n("".slice),y=Math.min,p=v("endsWith"),m=!c&&!p&&!!function(){var S=a(String.prototype,"endsWith");return S&&!S.writable}();r({target:"String",proto:!0,forced:!m&&!p},{endsWith:function(x){var I=s(l(this));u(x);var P=arguments.length>1?arguments[1]:void 0,A=I.length,R=P===void 0?A:y(o(P),A),N=s(x);return g(I,R-N.length,R)===N}})},72032:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("fixed")},{fixed:function(){return n(this,"tt","","")}})},49442:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("fontcolor")},{fontcolor:function(s){return n(this,"font","color",s)}})},16012:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("fontsize")},{fontsize:function(s){return n(this,"font","size",s)}})},93087:function(i,d,t){var r=t(14304),n=t(11286),a=t(4652),o=RangeError,s=String.fromCharCode,u=String.fromCodePoint,l=n([].join),v=!!u&&u.length!==1;r({target:"String",stat:!0,arity:1,forced:v},{fromCodePoint:function(g){for(var y=[],p=arguments.length,m=0,S;p>m;){if(S=+arguments[m++],a(S,1114111)!==S)throw new o(S+" is not a valid code point");y[m]=S<65536?s(S):s(((S-=65536)>>10)+55296,S%1024+56320)}return l(y,"")}})},26021:function(i,d,t){var r=t(14304),n=t(11286),a=t(92337),o=t(2068),s=t(17361),u=t(8790),l=n("".indexOf);r({target:"String",proto:!0,forced:!u("includes")},{includes:function(c){return!!~l(s(o(this)),s(a(c)),arguments.length>1?arguments[1]:void 0)}})},93029:function(i,d,t){var r=t(14304),n=t(11286),a=t(2068),o=t(17361),s=n("".charCodeAt);r({target:"String",proto:!0},{isWellFormed:function(){for(var l=o(a(this)),v=l.length,c=0;c<v;c++){var g=s(l,c);if((g&63488)===55296&&(g>=56320||++c>=v||(s(l,c)&64512)!==56320))return!1}return!0}})},9943:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("italics")},{italics:function(){return n(this,"i","","")}})},59158:function(i,d,t){var r=t(22149).charAt,n=t(17361),a=t(82367),o=t(10218),s=t(10659),u="String Iterator",l=a.set,v=a.getterFor(u);o(String,"String",function(c){l(this,{type:u,string:n(c),index:0})},function(){var g=v(this),y=g.string,p=g.index,m;return p>=y.length?s(void 0,!0):(m=r(y,p),g.index+=m.length,s(m,!1))})},33128:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("link")},{link:function(s){return n(this,"a","href",s)}})},18509:function(i,d,t){var r=t(14304),n=t(96499),a=t(77422),o=t(26820),s=t(10659),u=t(2068),l=t(45344),v=t(17361),c=t(25001),g=t(5683),y=t(14274),p=t(11566),m=t(54932),S=t(10512),x=t(16142),I=t(72069),P=t(18565),A=t(16887),R=t(24487),N=t(33064),T=t(82367),C=t(70457),D=P("matchAll"),L="RegExp String",F=L+" Iterator",b=T.set,w=T.getterFor(F),V=RegExp.prototype,U=TypeError,B=a("".indexOf),j=a("".matchAll),z=!!j&&!I(function(){j("a",/./)}),k=o(function(_,dt,lt,pt){b(this,{type:F,regexp:_,string:dt,global:lt,unicode:pt,done:!1})},L,function(){var _=w(this);if(_.done)return s(void 0,!0);var dt=_.regexp,lt=_.string,pt=N(dt,lt);return pt===null?(_.done=!0,s(void 0,!0)):_.global?(v(pt[0])===""&&(dt.lastIndex=R(lt,l(dt.lastIndex),_.unicode)),s(pt,!1)):(_.done=!0,s(pt,!1))}),J=function(et){var _=c(this),dt=v(et),lt=A(_,RegExp),pt=v(m(_)),St,Ot,Ht;return St=new lt(lt===RegExp?_.source:_,pt),Ot=!!~B(pt,"g"),Ht=!!~B(pt,"u"),St.lastIndex=l(_.lastIndex),new k(St,dt,Ot,Ht)};r({target:"String",proto:!0,forced:z},{matchAll:function(_){var dt=u(this),lt,pt,St,Ot;if(g(_)){if(z)return j(dt,_)}else{if(p(_)&&(lt=v(u(m(_))),!~B(lt,"g")))throw new U("`.matchAll` does not allow non-global regexes");if(z)return j(dt,_);if(St=S(_,D),St===void 0&&C&&y(_)==="RegExp"&&(St=J),St)return n(St,_,dt)}return pt=v(dt),Ot=new RegExp(_,"g"),C?n(J,Ot,pt):Ot[D](pt)}}),C||D in V||x(V,D,J)},15599:function(i,d,t){var r=t(96499),n=t(63194),a=t(25001),o=t(5683),s=t(45344),u=t(17361),l=t(2068),v=t(10512),c=t(24487),g=t(33064);n("match",function(y,p,m){return[function(x){var I=l(this),P=o(x)?void 0:v(x,y);return P?r(P,x,I):new RegExp(x)[y](u(I))},function(S){var x=a(this),I=u(S),P=m(p,x,I);if(P.done)return P.value;if(!x.global)return g(x,I);var A=x.unicode;x.lastIndex=0;for(var R=[],N=0,T;(T=g(x,I))!==null;){var C=u(T[0]);R[N]=C,C===""&&(x.lastIndex=c(I,s(x.lastIndex),A)),N++}return N===0?null:R}]})},21579:function(i,d,t){var r=t(14304),n=t(61607).end,a=t(36945);r({target:"String",proto:!0,forced:a},{padEnd:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}})},8854:function(i,d,t){var r=t(14304),n=t(61607).start,a=t(36945);r({target:"String",proto:!0,forced:a},{padStart:function(s){return n(this,s,arguments.length>1?arguments[1]:void 0)}})},57676:function(i,d,t){var r=t(14304),n=t(11286),a=t(36859),o=t(49671),s=t(17361),u=t(82628),l=n([].push),v=n([].join);r({target:"String",stat:!0},{raw:function(g){var y=a(o(g).raw),p=u(y);if(!p)return"";for(var m=arguments.length,S=[],x=0;;){if(l(S,s(y[x++])),x===p)return v(S,"");x<m&&l(S,s(arguments[x]))}}})},14527:function(i,d,t){var r=t(14304),n=t(79719);r({target:"String",proto:!0},{repeat:n})},52684:function(i,d,t){var r=t(14304),n=t(96499),a=t(11286),o=t(2068),s=t(23583),u=t(5683),l=t(11566),v=t(17361),c=t(10512),g=t(54932),y=t(38368),p=t(18565),m=t(70457),S=p("replace"),x=TypeError,I=a("".indexOf),P=a("".replace),A=a("".slice),R=Math.max;r({target:"String",proto:!0},{replaceAll:function(T,C){var D=o(this),L,F,b,w,V,U,B,j,z,k=0,J=0,et="";if(!u(T)){if(L=l(T),L&&(F=v(o(g(T))),!~I(F,"g")))throw new x("`.replaceAll` does not allow non-global regexes");if(b=c(T,S),b)return n(b,T,D,C);if(m&&L)return P(v(D),T,C)}for(w=v(D),V=v(T),U=s(C),U||(C=v(C)),B=V.length,j=R(1,B),k=I(w,V);k!==-1;)z=U?v(C(V,k,w)):y(V,w,k,[],void 0,C),et+=A(w,J,k)+z,J=k+B,k=k+j>w.length?-1:I(w,V,k+j);return J<w.length&&(et+=A(w,J)),et}})},96834:function(i,d,t){var r=t(66543),n=t(96499),a=t(11286),o=t(63194),s=t(72069),u=t(25001),l=t(23583),v=t(5683),c=t(12105),g=t(45344),y=t(17361),p=t(2068),m=t(24487),S=t(10512),x=t(38368),I=t(33064),P=t(18565),A=P("replace"),R=Math.max,N=Math.min,T=a([].concat),C=a([].push),D=a("".indexOf),L=a("".slice),F=function(U){return U===void 0?U:String(U)},b=function(){return"a".replace(/./,"$0")==="$0"}(),w=function(){return/./[A]?/./[A]("a","$0")==="":!1}(),V=!s(function(){var U=/./;return U.exec=function(){var B=[];return B.groups={a:"7"},B},"".replace(U,"$<a>")!=="7"});o("replace",function(U,B,j){var z=w?"$":"$0";return[function(J,et){var _=p(this),dt=v(J)?void 0:S(J,A);return dt?n(dt,J,_,et):n(B,y(_),J,et)},function(k,J){var et=u(this),_=y(k);if(typeof J=="string"&&D(J,z)===-1&&D(J,"$<")===-1){var dt=j(B,et,_,J);if(dt.done)return dt.value}var lt=l(J);lt||(J=y(J));var pt=et.global,St;pt&&(St=et.unicode,et.lastIndex=0);for(var Ot=[],Ht;Ht=I(et,_),!(Ht===null||(C(Ot,Ht),!pt));){var $t=y(Ht[0]);$t===""&&(et.lastIndex=m(_,g(et.lastIndex),St))}for(var bt="",vt=0,gt=0;gt<Ot.length;gt++){Ht=Ot[gt];for(var Pt=y(Ht[0]),Dt=R(N(c(Ht.index),_.length),0),Nt=[],Ut,Zt=1;Zt<Ht.length;Zt++)C(Nt,F(Ht[Zt]));var kt=Ht.groups;if(lt){var Jt=T([Pt],Nt,Dt,_);kt!==void 0&&C(Jt,kt),Ut=y(r(J,void 0,Jt))}else Ut=x(Pt,_,Dt,Nt,kt,J);Dt>=vt&&(bt+=L(_,vt,Dt)+Ut,vt=Dt+Pt.length)}return bt+L(_,vt)}]},!V||!b||w)},74980:function(i,d,t){var r=t(96499),n=t(63194),a=t(25001),o=t(5683),s=t(2068),u=t(13944),l=t(17361),v=t(10512),c=t(33064);n("search",function(g,y,p){return[function(S){var x=s(this),I=o(S)?void 0:v(S,g);return I?r(I,S,x):new RegExp(S)[g](l(x))},function(m){var S=a(this),x=l(m),I=p(y,S,x);if(I.done)return I.value;var P=S.lastIndex;u(P,0)||(S.lastIndex=0);var A=c(S,x);return u(S.lastIndex,P)||(S.lastIndex=P),A===null?-1:A.index}]})},95625:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("small")},{small:function(){return n(this,"small","","")}})},390:function(i,d,t){var r=t(96499),n=t(11286),a=t(63194),o=t(25001),s=t(5683),u=t(2068),l=t(16887),v=t(24487),c=t(45344),g=t(17361),y=t(10512),p=t(33064),m=t(39807),S=t(72069),x=m.UNSUPPORTED_Y,I=4294967295,P=Math.min,A=n([].push),R=n("".slice),N=!S(function(){var C=/(?:)/,D=C.exec;C.exec=function(){return D.apply(this,arguments)};var L="ab".split(C);return L.length!==2||L[0]!=="a"||L[1]!=="b"}),T="abbc".split(/(b)*/)[1]==="c"||"test".split(/(?:)/,-1).length!==4||"ab".split(/(?:ab)*/).length!==2||".".split(/(.?)(.?)/).length!==4||".".split(/()()/).length>1||"".split(/.?/).length;a("split",function(C,D,L){var F="0".split(void 0,0).length?function(b,w){return b===void 0&&w===0?[]:r(D,this,b,w)}:D;return[function(w,V){var U=u(this),B=s(w)?void 0:y(w,C);return B?r(B,w,U,V):r(F,g(U),w,V)},function(b,w){var V=o(this),U=g(b);if(!T){var B=L(F,V,U,w,F!==D);if(B.done)return B.value}var j=l(V,RegExp),z=V.unicode,k=(V.ignoreCase?"i":"")+(V.multiline?"m":"")+(V.unicode?"u":"")+(x?"g":"y"),J=new j(x?"^(?:"+V.source+")":V,k),et=w===void 0?I:w>>>0;if(et===0)return[];if(U.length===0)return p(J,U)===null?[U]:[];for(var _=0,dt=0,lt=[];dt<U.length;){J.lastIndex=x?0:dt;var pt=p(J,x?R(U,dt):U),St;if(pt===null||(St=P(c(J.lastIndex+(x?dt:0)),U.length))===_)dt=v(U,dt,z);else{if(A(lt,R(U,_,dt)),lt.length===et)return lt;for(var Ot=1;Ot<=pt.length-1;Ot++)if(A(lt,pt[Ot]),lt.length===et)return lt;dt=_=St}}return A(lt,R(U,_)),lt}]},T||!N,x)},42794:function(i,d,t){var r=t(14304),n=t(77422),a=t(71349).f,o=t(45344),s=t(17361),u=t(92337),l=t(2068),v=t(8790),c=t(70457),g=n("".slice),y=Math.min,p=v("startsWith"),m=!c&&!p&&!!function(){var S=a(String.prototype,"startsWith");return S&&!S.writable}();r({target:"String",proto:!0,forced:!m&&!p},{startsWith:function(x){var I=s(l(this));u(x);var P=o(y(arguments.length>1?arguments[1]:void 0,I.length)),A=s(x);return g(I,P,P+A.length)===A}})},90614:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("strike")},{strike:function(){return n(this,"strike","","")}})},60120:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("sub")},{sub:function(){return n(this,"sub","","")}})},21293:function(i,d,t){var r=t(14304),n=t(11286),a=t(2068),o=t(12105),s=t(17361),u=n("".slice),l=Math.max,v=Math.min,c=!"".substr||"ab".substr(-1)!=="b";r({target:"String",proto:!0,forced:c},{substr:function(y,p){var m=s(a(this)),S=m.length,x=o(y),I,P;return x===1/0&&(x=0),x<0&&(x=l(S+x,0)),I=p===void 0?S:o(p),I<=0||I===1/0?"":(P=v(x+I,S),x>=P?"":u(m,x,P))}})},75826:function(i,d,t){var r=t(14304),n=t(68422),a=t(5287);r({target:"String",proto:!0,forced:a("sup")},{sup:function(){return n(this,"sup","","")}})},18184:function(i,d,t){var r=t(14304),n=t(96499),a=t(11286),o=t(2068),s=t(17361),u=t(72069),l=Array,v=a("".charAt),c=a("".charCodeAt),g=a([].join),y="".toWellFormed,p="\uFFFD",m=y&&u(function(){return n(y,1)!=="1"});r({target:"String",proto:!0,forced:m},{toWellFormed:function(){var x=s(o(this));if(m)return n(y,x);for(var I=x.length,P=l(I),A=0;A<I;A++){var R=c(x,A);(R&63488)!==55296?P[A]=v(x,A):R>=56320||A+1>=I||(c(x,A+1)&64512)!==56320?P[A]=p:(P[A]=v(x,A),P[++A]=v(x,A))}return g(P,"")}})},19680:function(i,d,t){t(23283);var r=t(14304),n=t(75176);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==n},{trimEnd:n})},12272:function(i,d,t){var r=t(14304),n=t(83481);r({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==n},{trimLeft:n})},23283:function(i,d,t){var r=t(14304),n=t(75176);r({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==n},{trimRight:n})},4193:function(i,d,t){t(12272);var r=t(14304),n=t(83481);r({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==n},{trimStart:n})},75012:function(i,d,t){var r=t(14304),n=t(85900).trim,a=t(33328);r({target:"String",proto:!0,forced:a("trim")},{trim:function(){return n(this)}})},43606:function(i,d,t){var r=t(83749);r("asyncIterator")},51767:function(i,d,t){var r=t(14304),n=t(66009),a=t(96499),o=t(11286),s=t(70457),u=t(92986),l=t(39729),v=t(72069),c=t(94879),g=t(95307),y=t(25001),p=t(36859),m=t(50035),S=t(17361),x=t(18526),I=t(5406),P=t(18350),A=t(83258),R=t(92880),N=t(24943),T=t(71349),C=t(7831),D=t(61963),L=t(79591),F=t(16142),b=t(85500),w=t(96731),V=t(44869),U=t(19423),B=t(36374),j=t(18565),z=t(56529),k=t(83749),J=t(60796),et=t(78401),_=t(82367),dt=t(66655).forEach,lt=V("hidden"),pt="Symbol",St="prototype",Ot=_.set,Ht=_.getterFor(pt),$t=Object[St],bt=n.Symbol,vt=bt&&bt[St],gt=n.RangeError,Pt=n.TypeError,Dt=n.QObject,Nt=T.f,Ut=C.f,Zt=R.f,kt=L.f,Jt=o([].push),Lt=w("symbols"),Qt=w("op-symbols"),Vt=w("wks"),jt=!Dt||!Dt[St]||!Dt[St].findChild,st=function(ot,ut,W){var Z=Nt($t,ut);Z&&delete $t[ut],Ut(ot,ut,W),Z&&ot!==$t&&Ut($t,ut,Z)},ht=u&&v(function(){return I(Ut({},"a",{get:function(){return Ut(this,"a",{value:7}).a}})).a!==7})?st:Ut,tt=function(ot,ut){var W=Lt[ot]=I(vt);return Ot(W,{type:pt,tag:ot,description:ut}),u||(W.description=ut),W},It=function(ut,W,Z){ut===$t&&It(Qt,W,Z),y(ut);var K=m(W);return y(Z),c(Lt,K)?(Z.enumerable?(c(ut,lt)&&ut[lt][K]&&(ut[lt][K]=!1),Z=I(Z,{enumerable:x(0,!1)})):(c(ut,lt)||Ut(ut,lt,x(1,I(null))),ut[lt][K]=!0),ht(ut,K,Z)):Ut(ut,K,Z)},Tt=function(ut,W){y(ut);var Z=p(W),K=P(Z).concat(Q(Z));return dt(K,function(ct){(!u||a(yt,Z,ct))&&It(ut,ct,Z[ct])}),ut},xt=function(ut,W){return W===void 0?I(ut):Tt(I(ut),W)},yt=function(ut){var W=m(ut),Z=a(kt,this,W);return this===$t&&c(Lt,W)&&!c(Qt,W)?!1:Z||!c(this,W)||!c(Lt,W)||c(this,lt)&&this[lt][W]?Z:!0},_t=function(ut,W){var Z=p(ut),K=m(W);if(!(Z===$t&&c(Lt,K)&&!c(Qt,K))){var ct=Nt(Z,K);return ct&&c(Lt,K)&&!(c(Z,lt)&&Z[lt][K])&&(ct.enumerable=!0),ct}},nr=function(ut){var W=Zt(p(ut)),Z=[];return dt(W,function(K){!c(Lt,K)&&!c(U,K)&&Jt(Z,K)}),Z},Q=function(ot){var ut=ot===$t,W=Zt(ut?Qt:p(ot)),Z=[];return dt(W,function(K){c(Lt,K)&&(!ut||c($t,K))&&Jt(Z,Lt[K])}),Z};l||(bt=function(){if(g(vt,this))throw new Pt("Symbol is not a constructor");var ut=!arguments.length||arguments[0]===void 0?void 0:S(arguments[0]),W=B(ut),Z=function(K){var ct=this===void 0?n:this;ct===$t&&a(Z,Qt,K),c(ct,lt)&&c(ct[lt],W)&&(ct[lt][W]=!1);var Rt=x(1,K);try{ht(ct,W,Rt)}catch(Ft){if(!(Ft instanceof gt))throw Ft;st(ct,W,Rt)}};return u&&jt&&ht($t,W,{configurable:!0,set:Z}),tt(W,ut)},vt=bt[St],F(vt,"toString",function(){return Ht(this).tag}),F(bt,"withoutSetter",function(ot){return tt(B(ot),ot)}),L.f=yt,C.f=It,D.f=Tt,T.f=_t,A.f=R.f=nr,N.f=Q,z.f=function(ot){return tt(j(ot),ot)},u&&(b(vt,"description",{configurable:!0,get:function(){return Ht(this).description}}),s||F($t,"propertyIsEnumerable",yt,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!l,sham:!l},{Symbol:bt}),dt(P(Vt),function(ot){k(ot)}),r({target:pt,stat:!0,forced:!l},{useSetter:function(){jt=!0},useSimple:function(){jt=!1}}),r({target:"Object",stat:!0,forced:!l,sham:!u},{create:xt,defineProperty:It,defineProperties:Tt,getOwnPropertyDescriptor:_t}),r({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:nr}),J(),et(bt,pt),U[lt]=!0},43657:function(i,d,t){var r=t(14304),n=t(92986),a=t(66009),o=t(11286),s=t(94879),u=t(23583),l=t(95307),v=t(17361),c=t(85500),g=t(93706),y=a.Symbol,p=y&&y.prototype;if(n&&u(y)&&(!("description"in p)||y().description!==void 0)){var m={},S=function(){var C=arguments.length<1||arguments[0]===void 0?void 0:v(arguments[0]),D=l(p,this)?new y(C):C===void 0?y():y(C);return C===""&&(m[D]=!0),D};g(S,y),S.prototype=p,p.constructor=S;var x=String(y("description detection"))==="Symbol(description detection)",I=o(p.valueOf),P=o(p.toString),A=/^Symbol\((.*)\)[^)]+$/,R=o("".replace),N=o("".slice);c(p,"description",{configurable:!0,get:function(){var C=I(this);if(s(m,C))return"";var D=P(C),L=x?N(D,7,-1):R(D,A,"$1");return L===""?void 0:L}}),r({global:!0,constructor:!0,forced:!0},{Symbol:S})}},20872:function(i,d,t){var r=t(14304),n=t(38941),a=t(94879),o=t(17361),s=t(96731),u=t(61190),l=s("string-to-symbol-registry"),v=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!u},{for:function(c){var g=o(c);if(a(l,g))return l[g];var y=n("Symbol")(g);return l[g]=y,v[y]=g,y}})},15855:function(i,d,t){var r=t(83749);r("hasInstance")},42026:function(i,d,t){var r=t(83749);r("isConcatSpreadable")},33257:function(i,d,t){var r=t(83749);r("iterator")},40949:function(i,d,t){t(51767),t(20872),t(94762),t(71332),t(45223)},94762:function(i,d,t){var r=t(14304),n=t(94879),a=t(491),o=t(82453),s=t(96731),u=t(61190),l=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!u},{keyFor:function(c){if(!a(c))throw new TypeError(o(c)+" is not a symbol");if(n(l,c))return l[c]}})},88344:function(i,d,t){var r=t(83749);r("matchAll")},59414:function(i,d,t){var r=t(83749);r("match")},92579:function(i,d,t){var r=t(83749);r("replace")},94655:function(i,d,t){var r=t(83749);r("search")},8565:function(i,d,t){var r=t(83749);r("species")},60843:function(i,d,t){var r=t(83749);r("split")},65842:function(i,d,t){var r=t(83749),n=t(60796);r("toPrimitive"),n()},51595:function(i,d,t){var r=t(38941),n=t(83749),a=t(78401);n("toStringTag"),a(r("Symbol"),"Symbol")},54908:function(i,d,t){var r=t(83749);r("unscopables")},71998:function(i,d,t){var r=t(88037),n=t(82628),a=t(12105),o=r.aTypedArray,s=r.exportTypedArrayMethod;s("at",function(l){var v=o(this),c=n(v),g=a(l),y=g>=0?g:c+g;return y<0||y>=c?void 0:v[y]})},6116:function(i,d,t){var r=t(11286),n=t(88037),a=t(81499),o=r(a),s=n.aTypedArray,u=n.exportTypedArrayMethod;u("copyWithin",function(v,c){return o(s(this),v,c,arguments.length>2?arguments[2]:void 0)})},33032:function(i,d,t){var r=t(88037),n=t(66655).every,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("every",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},80962:function(i,d,t){var r=t(88037),n=t(43011),a=t(11344),o=t(9205),s=t(96499),u=t(11286),l=t(72069),v=r.aTypedArray,c=r.exportTypedArrayMethod,g=u("".slice),y=l(function(){var p=0;return new Int8Array(2).fill({valueOf:function(){return p++}}),p!==1});c("fill",function(m){var S=arguments.length;v(this);var x=g(o(this),0,3)==="Big"?a(m):+m;return s(n,this,x,S>1?arguments[1]:void 0,S>2?arguments[2]:void 0)},y)},49381:function(i,d,t){var r=t(88037),n=t(66655).filter,a=t(3795),o=r.aTypedArray,s=r.exportTypedArrayMethod;s("filter",function(l){var v=n(o(this),l,arguments.length>1?arguments[1]:void 0);return a(this,v)})},65961:function(i,d,t){var r=t(88037),n=t(66655).findIndex,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("findIndex",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},16028:function(i,d,t){var r=t(88037),n=t(73849).findLastIndex,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("findLastIndex",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},94153:function(i,d,t){var r=t(88037),n=t(73849).findLast,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("findLast",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},38344:function(i,d,t){var r=t(88037),n=t(66655).find,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("find",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},25560:function(i,d,t){var r=t(80357);r("Float32",function(n){return function(o,s,u){return n(this,o,s,u)}})},22571:function(i,d,t){var r=t(80357);r("Float64",function(n){return function(o,s,u){return n(this,o,s,u)}})},20656:function(i,d,t){var r=t(88037),n=t(66655).forEach,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("forEach",function(u){n(a(this),u,arguments.length>1?arguments[1]:void 0)})},17063:function(i,d,t){var r=t(46868),n=t(88037).exportTypedArrayStaticMethod,a=t(66169);n("from",a,r)},21774:function(i,d,t){var r=t(88037),n=t(94319).includes,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("includes",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},51761:function(i,d,t){var r=t(88037),n=t(94319).indexOf,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("indexOf",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},36849:function(i,d,t){var r=t(80357);r("Int16",function(n){return function(o,s,u){return n(this,o,s,u)}})},49191:function(i,d,t){var r=t(80357);r("Int32",function(n){return function(o,s,u){return n(this,o,s,u)}})},40704:function(i,d,t){var r=t(80357);r("Int8",function(n){return function(o,s,u){return n(this,o,s,u)}})},12317:function(i,d,t){var r=t(66009),n=t(72069),a=t(11286),o=t(88037),s=t(35054),u=t(18565),l=u("iterator"),v=r.Uint8Array,c=a(s.values),g=a(s.keys),y=a(s.entries),p=o.aTypedArray,m=o.exportTypedArrayMethod,S=v&&v.prototype,x=!n(function(){S[l].call([1])}),I=!!S&&S.values&&S[l]===S.values&&S.values.name==="values",P=function(){return c(p(this))};m("entries",function(){return y(p(this))},x),m("keys",function(){return g(p(this))},x),m("values",P,x||!I,{name:"values"}),m(l,P,x||!I,{name:"values"})},19711:function(i,d,t){var r=t(88037),n=t(11286),a=r.aTypedArray,o=r.exportTypedArrayMethod,s=n([].join);o("join",function(l){return s(a(this),l)})},41034:function(i,d,t){var r=t(88037),n=t(66543),a=t(58465),o=r.aTypedArray,s=r.exportTypedArrayMethod;s("lastIndexOf",function(l){var v=arguments.length;return n(a,o(this),v>1?[l,arguments[1]]:[l])})},13313:function(i,d,t){var r=t(88037),n=t(66655).map,a=t(21822),o=r.aTypedArray,s=r.exportTypedArrayMethod;s("map",function(l){return n(o(this),l,arguments.length>1?arguments[1]:void 0,function(v,c){return new(a(v))(c)})})},44698:function(i,d,t){var r=t(88037),n=t(46868),a=r.aTypedArrayConstructor,o=r.exportTypedArrayStaticMethod;o("of",function(){for(var u=0,l=arguments.length,v=new(a(this))(l);l>u;)v[u]=arguments[u++];return v},n)},66178:function(i,d,t){var r=t(88037),n=t(97264).right,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("reduceRight",function(u){var l=arguments.length;return n(a(this),u,l,l>1?arguments[1]:void 0)})},7369:function(i,d,t){var r=t(88037),n=t(97264).left,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("reduce",function(u){var l=arguments.length;return n(a(this),u,l,l>1?arguments[1]:void 0)})},67961:function(i,d,t){var r=t(88037),n=r.aTypedArray,a=r.exportTypedArrayMethod,o=Math.floor;a("reverse",function(){for(var u=this,l=n(u).length,v=o(l/2),c=0,g;c<v;)g=u[c],u[c++]=u[--l],u[l]=g;return u})},8695:function(i,d,t){var r=t(66009),n=t(96499),a=t(88037),o=t(82628),s=t(58143),u=t(49671),l=t(72069),v=r.RangeError,c=r.Int8Array,g=c&&c.prototype,y=g&&g.set,p=a.aTypedArray,m=a.exportTypedArrayMethod,S=!l(function(){var I=new Uint8ClampedArray(2);return n(y,I,{length:1,0:3},1),I[1]!==3}),x=S&&a.NATIVE_ARRAY_BUFFER_VIEWS&&l(function(){var I=new c(2);return I.set(1),I.set("2",1),I[0]!==0||I[1]!==2});m("set",function(P){p(this);var A=s(arguments.length>1?arguments[1]:void 0,1),R=u(P);if(S)return n(y,this,R,A);var N=this.length,T=o(R),C=0;if(T+A>N)throw new v("Wrong length");for(;C<T;)this[A+C]=R[C++]},!S||x)},69997:function(i,d,t){var r=t(88037),n=t(21822),a=t(72069),o=t(22806),s=r.aTypedArray,u=r.exportTypedArrayMethod,l=a(function(){new Int8Array(1).slice()});u("slice",function(c,g){for(var y=o(s(this),c,g),p=n(this),m=0,S=y.length,x=new p(S);S>m;)x[m]=y[m++];return x},l)},9711:function(i,d,t){var r=t(88037),n=t(66655).some,a=r.aTypedArray,o=r.exportTypedArrayMethod;o("some",function(u){return n(a(this),u,arguments.length>1?arguments[1]:void 0)})},3923:function(i,d,t){var r=t(66009),n=t(77422),a=t(72069),o=t(85156),s=t(13270),u=t(88037),l=t(54040),v=t(87216),c=t(73126),g=t(68674),y=u.aTypedArray,p=u.exportTypedArrayMethod,m=r.Uint16Array,S=m&&n(m.prototype.sort),x=!!S&&!(a(function(){S(new m(2),null)})&&a(function(){S(new m(2),{})})),I=!!S&&!a(function(){if(c)return c<74;if(l)return l<67;if(v)return!0;if(g)return g<602;var A=new m(516),R=Array(516),N,T;for(N=0;N<516;N++)T=N%4,A[N]=515-N,R[N]=N-2*T+3;for(S(A,function(C,D){return(C/4|0)-(D/4|0)}),N=0;N<516;N++)if(A[N]!==R[N])return!0}),P=function(A){return function(R,N){return A!==void 0?+A(R,N)||0:N!==N?-1:R!==R?1:R===0&&N===0?1/R>0&&1/N<0?1:-1:R>N}};p("sort",function(R){return R!==void 0&&o(R),I?S(this,R):s(y(this),P(R))},!I||x)},59728:function(i,d,t){var r=t(88037),n=t(45344),a=t(4652),o=t(21822),s=r.aTypedArray,u=r.exportTypedArrayMethod;u("subarray",function(v,c){var g=s(this),y=g.length,p=a(v,y),m=o(g);return new m(g.buffer,g.byteOffset+p*g.BYTES_PER_ELEMENT,n((c===void 0?y:a(c,y))-p))})},85227:function(i,d,t){var r=t(66009),n=t(66543),a=t(88037),o=t(72069),s=t(22806),u=r.Int8Array,l=a.aTypedArray,v=a.exportTypedArrayMethod,c=[].toLocaleString,g=!!u&&o(function(){c.call(new u(1))}),y=o(function(){return[1,2].toLocaleString()!==new u([1,2]).toLocaleString()})||!o(function(){u.prototype.toLocaleString.call([1,2])});v("toLocaleString",function(){return n(c,g?s(l(this)):l(this),s(arguments))},y)},56933:function(i,d,t){var r=t(61638),n=t(88037),a=n.aTypedArray,o=n.exportTypedArrayMethod,s=n.getTypedArrayConstructor;o("toReversed",function(){return r(a(this),s(this))})},91490:function(i,d,t){var r=t(88037),n=t(11286),a=t(85156),o=t(5220),s=r.aTypedArray,u=r.getTypedArrayConstructor,l=r.exportTypedArrayMethod,v=n(r.TypedArrayPrototype.sort);l("toSorted",function(g){g!==void 0&&a(g);var y=s(this),p=o(u(y),y);return v(p,g)})},61766:function(i,d,t){var r=t(88037).exportTypedArrayMethod,n=t(72069),a=t(66009),o=t(11286),s=a.Uint8Array,u=s&&s.prototype||{},l=[].toString,v=o([].join);n(function(){l.call({})})&&(l=function(){return v(this)});var c=u.toString!==l;r("toString",l,c)},44884:function(i,d,t){var r=t(80357);r("Uint16",function(n){return function(o,s,u){return n(this,o,s,u)}})},48658:function(i,d,t){var r=t(80357);r("Uint32",function(n){return function(o,s,u){return n(this,o,s,u)}})},81083:function(i,d,t){var r=t(80357);r("Uint8",function(n){return function(o,s,u){return n(this,o,s,u)}})},27428:function(i,d,t){var r=t(80357);r("Uint8",function(n){return function(o,s,u){return n(this,o,s,u)}},!0)},85143:function(i,d,t){var r=t(72302),n=t(88037),a=t(77129),o=t(12105),s=t(11344),u=n.aTypedArray,l=n.getTypedArrayConstructor,v=n.exportTypedArrayMethod,c=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(g){return g===8}}();v("with",function(g,y){var p=u(this),m=o(g),S=a(p)?s(y):+y;return r(p,l(p),m,S)},!c)},47005:function(i,d,t){var r=t(14304),n=t(11286),a=t(17361),o=String.fromCharCode,s=n("".charAt),u=n(/./.exec),l=n("".slice),v=/^[\da-f]{2}$/i,c=/^[\da-f]{4}$/i;r({global:!0},{unescape:function(y){for(var p=a(y),m="",S=p.length,x=0,I,P;x<S;){if(I=s(p,x++),I==="%"){if(s(p,x)==="u"){if(P=l(p,x+1,x+5),u(c,P)){m+=o(parseInt(P,16)),x+=5;continue}}else if(P=l(p,x,x+2),u(v,P)){m+=o(parseInt(P,16)),x+=2;continue}}m+=I}return m}})},21084:function(i,d,t){var r=t(27534),n=t(66009),a=t(11286),o=t(2725),s=t(31853),u=t(89378),l=t(94667),v=t(37540),c=t(82367).enforce,g=t(72069),y=t(42960),p=Object,m=Array.isArray,S=p.isExtensible,x=p.isFrozen,I=p.isSealed,P=p.freeze,A=p.seal,R=!n.ActiveXObject&&"ActiveXObject"in n,N,T=function(U){return function(){return U(this,arguments.length?arguments[0]:void 0)}},C=u("WeakMap",T,l),D=C.prototype,L=a(D.set),F=function(){return r&&g(function(){var U=P([]);return L(new C,U,1),!x(U)})};if(y)if(R){N=l.getConstructor(T,"WeakMap",!0),s.enable();var b=a(D.delete),w=a(D.has),V=a(D.get);o(D,{delete:function(U){if(v(U)&&!S(U)){var B=c(this);return B.frozen||(B.frozen=new N),b(this,U)||B.frozen.delete(U)}return b(this,U)},has:function(B){if(v(B)&&!S(B)){var j=c(this);return j.frozen||(j.frozen=new N),w(this,B)||j.frozen.has(B)}return w(this,B)},get:function(B){if(v(B)&&!S(B)){var j=c(this);return j.frozen||(j.frozen=new N),w(this,B)?V(this,B):j.frozen.get(B)}return V(this,B)},set:function(B,j){if(v(B)&&!S(B)){var z=c(this);z.frozen||(z.frozen=new N),w(this,B)?L(this,B,j):z.frozen.set(B,j)}else L(this,B,j);return this}})}else F()&&o(D,{set:function(B,j){var z;return m(B)&&(x(B)?z=P:I(B)&&(z=A)),L(this,B,j),z&&z(B),this}})},10042:function(i,d,t){t(21084)},58990:function(i,d,t){var r=t(89378),n=t(94667);r("WeakSet",function(a){return function(){return a(this,arguments.length?arguments[0]:void 0)}},n)},37888:function(i,d,t){t(58990)},19431:function(i,d,t){var r=t(14304),n=t(66009),a=t(38941),o=t(11286),s=t(96499),u=t(72069),l=t(17361),v=t(95486),c=t(6210).c2i,g=/[^\d+/a-z]/i,y=/[\t\n\f\r ]+/g,p=/[=]{1,2}$/,m=a("atob"),S=String.fromCharCode,x=o("".charAt),I=o("".replace),P=o(g.exec),A=!!m&&!u(function(){return m("aGk=")!=="hi"}),R=A&&u(function(){return m(" ")!==""}),N=A&&!u(function(){m("a")}),T=A&&!u(function(){m()}),C=A&&m.length!==1,D=!A||R||N||T||C;r({global:!0,bind:!0,enumerable:!0,forced:D},{atob:function(F){if(v(arguments.length,1),A&&!R&&!N)return s(m,n,F);var b=I(l(F),y,""),w="",V=0,U=0,B,j,z;if(b.length%4===0&&(b=I(b,p,"")),B=b.length,B%4===1||P(g,b))throw new(a("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;V<B;)j=x(b,V++),z=U%4?z*64+c[j]:c[j],U++%4&&(w+=S(255&z>>(-2*U&6)));return w}})},60869:function(i,d,t){var r=t(14304),n=t(66009),a=t(38941),o=t(11286),s=t(96499),u=t(72069),l=t(17361),v=t(95486),c=t(6210).i2c,g=a("btoa"),y=o("".charAt),p=o("".charCodeAt),m=!!g&&!u(function(){return g("hi")!=="aGk="}),S=m&&!u(function(){g()}),x=m&&u(function(){return g(null)!=="bnVsbA=="}),I=m&&g.length!==1;r({global:!0,bind:!0,enumerable:!0,forced:!m||S||x||I},{btoa:function(A){if(v(arguments.length,1),m)return s(g,n,l(A));for(var R=l(A),N="",T=0,C=c,D,L;y(R,T)||(C="=",T%1);){if(L=p(R,T+=.75),L>255)throw new(a("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");D=D<<8|L,N+=y(C,63&D>>8-T%1*8)}return N}})},66722:function(i,d,t){var r=t(14304),n=t(66009),a=t(23115).clear;r({global:!0,bind:!0,enumerable:!0,forced:n.clearImmediate!==a},{clearImmediate:a})},50338:function(i,d,t){var r=t(66009),n=t(93014),a=t(39882),o=t(13349),s=t(90809),u=function(v){if(v&&v.forEach!==o)try{s(v,"forEach",o)}catch(c){v.forEach=o}};for(var l in n)n[l]&&u(r[l]&&r[l].prototype);u(a)},53059:function(i,d,t){var r=t(66009),n=t(93014),a=t(39882),o=t(35054),s=t(90809),u=t(78401),l=t(18565),v=l("iterator"),c=o.values,g=function(p,m){if(p){if(p[v]!==c)try{s(p,v,c)}catch(x){p[v]=c}if(u(p,m,!0),n[m]){for(var S in o)if(p[S]!==o[S])try{s(p,S,o[S])}catch(x){p[S]=o[S]}}}};for(var y in n)g(r[y]&&r[y].prototype,y);g(a,"DOMTokenList")},5805:function(i,d,t){var r=t(14304),n=t(18096),a=t(38941),o=t(72069),s=t(5406),u=t(18526),l=t(7831).f,v=t(16142),c=t(85500),g=t(94879),y=t(12833),p=t(25001),m=t(58434),S=t(15453),x=t(74408),I=t(40851),P=t(82367),A=t(92986),R=t(70457),N="DOMException",T="DATA_CLONE_ERR",C=a("Error"),D=a(N)||function(){try{var vt=a("MessageChannel")||n("worker_threads").MessageChannel;new vt().port1.postMessage(new WeakMap)}catch(gt){if(gt.name===T&>.code===25)return gt.constructor}}(),L=D&&D.prototype,F=C.prototype,b=P.set,w=P.getterFor(N),V="stack"in new C(N),U=function(vt){return g(x,vt)&&x[vt].m?x[vt].c:0},B=function(){y(this,j);var gt=arguments.length,Pt=S(gt<1?void 0:arguments[0]),Dt=S(gt<2?void 0:arguments[1],"Error"),Nt=U(Dt);if(b(this,{type:N,name:Dt,message:Pt,code:Nt}),A||(this.name=Dt,this.message=Pt,this.code=Nt),V){var Ut=new C(Pt);Ut.name=N,l(this,"stack",u(1,I(Ut.stack,1)))}},j=B.prototype=s(F),z=function(vt){return{enumerable:!0,configurable:!0,get:vt}},k=function(vt){return z(function(){return w(this)[vt]})};A&&(c(j,"code",k("code")),c(j,"message",k("message")),c(j,"name",k("name"))),l(j,"constructor",u(1,B));var J=o(function(){return!(new D instanceof C)}),et=J||o(function(){return F.toString!==m||String(new D(1,2))!=="2: 1"}),_=J||o(function(){return new D(1,"DataCloneError").code!==25}),dt=J||D[T]!==25||L[T]!==25,lt=R?et||_||dt:J;r({global:!0,constructor:!0,forced:lt},{DOMException:lt?B:D});var pt=a(N),St=pt.prototype;et&&(R||D===pt)&&v(St,"toString",m),_&&A&&D===pt&&c(St,"code",z(function(){return U(p(this).name)}));for(var Ot in x)if(g(x,Ot)){var Ht=x[Ot],$t=Ht.s,bt=u(6,Ht.c);g(pt,$t)||l(pt,$t,bt),g(St,$t)||l(St,$t,bt)}},50685:function(i,d,t){var r=t(14304),n=t(66009),a=t(38941),o=t(18526),s=t(7831).f,u=t(94879),l=t(12833),v=t(32345),c=t(15453),g=t(74408),y=t(40851),p=t(92986),m=t(70457),S="DOMException",x=a("Error"),I=a(S),P=function(){l(this,A);var B=arguments.length,j=c(B<1?void 0:arguments[0]),z=c(B<2?void 0:arguments[1],"Error"),k=new I(j,z),J=new x(j);return J.name=S,s(k,"stack",o(1,y(J.stack,1))),v(k,this,P),k},A=P.prototype=I.prototype,R="stack"in new x(S),N="stack"in new I(1,2),T=I&&p&&Object.getOwnPropertyDescriptor(n,S),C=!!T&&!(T.writable&&T.configurable),D=R&&!C&&!N;r({global:!0,constructor:!0,forced:m||D},{DOMException:D?P:I});var L=a(S),F=L.prototype;if(F.constructor!==L){m||s(F,"constructor",o(1,L));for(var b in g)if(u(g,b)){var w=g[b],V=w.s;u(L,V)||s(L,V,o(6,w.c))}}},70649:function(i,d,t){var r=t(38941),n=t(78401),a="DOMException";n(r(a),a)},39842:function(i,d,t){t(66722),t(8235)},82872:function(i,d,t){var r=t(14304),n=t(66009),a=t(9709),o=t(85156),s=t(95486),u=t(72069),l=t(92986),v=u(function(){return l&&Object.getOwnPropertyDescriptor(n,"queueMicrotask").value.length!==1});r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:v},{queueMicrotask:function(g){s(arguments.length,1),a(o(g))}})},91401:function(i,d,t){var r=t(14304),n=t(66009),a=t(85500),o=t(92986),s=TypeError,u=Object.defineProperty,l=n.self!==n;try{if(o){var v=Object.getOwnPropertyDescriptor(n,"self");(l||!v||!v.get||!v.enumerable)&&a(n,"self",{get:function(){return n},set:function(g){if(this!==n)throw new s("Illegal invocation");u(n,"self",{value:g,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else r({global:!0,simple:!0,forced:l},{self:n})}catch(c){}},8235:function(i,d,t){var r=t(14304),n=t(66009),a=t(23115).set,o=t(9934),s=n.setImmediate?o(a,!1):a;r({global:!0,bind:!0,enumerable:!0,forced:n.setImmediate!==s},{setImmediate:s})},63981:function(i,d,t){var r=t(14304),n=t(66009),a=t(9934),o=a(n.setInterval,!0);r({global:!0,bind:!0,forced:n.setInterval!==o},{setInterval:o})},23913:function(i,d,t){var r=t(14304),n=t(66009),a=t(9934),o=a(n.setTimeout,!0);r({global:!0,bind:!0,forced:n.setTimeout!==o},{setTimeout:o})},92904:function(i,d,t){var r=t(70457),n=t(14304),a=t(66009),o=t(38941),s=t(11286),u=t(72069),l=t(36374),v=t(23583),c=t(11051),g=t(5683),y=t(37540),p=t(491),m=t(55902),S=t(25001),x=t(9205),I=t(94879),P=t(84082),A=t(90809),R=t(82628),N=t(95486),T=t(54932),C=t(1774),D=t(172),L=t(35051),F=t(63741),b=t(16929),w=t(99050),V=a.Object,U=a.Array,B=a.Date,j=a.Error,z=a.TypeError,k=a.PerformanceMark,J=o("DOMException"),et=C.Map,_=C.has,dt=C.get,lt=C.set,pt=D.Set,St=D.add,Ot=D.has,Ht=o("Object","keys"),$t=s([].push),bt=s((!0).valueOf),vt=s(1 .valueOf),gt=s("".valueOf),Pt=s(B.prototype.getTime),Dt=l("structuredClone"),Nt="DataCloneError",Ut="Transferring",Zt=function(Q){return!u(function(){var ot=new a.Set([7]),ut=Q(ot),W=Q(V(7));return ut===ot||!ut.has(7)||!y(W)||+W!=7})&&Q},kt=function(Q,ot){return!u(function(){var ut=new ot,W=Q({a:ut,b:ut});return!(W&&W.a===W.b&&W.a instanceof ot&&W.a.stack===ut.stack)})},Jt=function(Q){return!u(function(){var ot=Q(new a.AggregateError([1],Dt,{cause:3}));return ot.name!=="AggregateError"||ot.errors[0]!==1||ot.message!==Dt||ot.cause!==3})},Lt=a.structuredClone,Qt=r||!kt(Lt,j)||!kt(Lt,J)||!Jt(Lt),Vt=!Lt&&Zt(function(Q){return new k(Dt,{detail:Q}).detail}),jt=Zt(Lt)||Vt,st=function(Q){throw new J("Uncloneable type: "+Q,Nt)},ht=function(Q,ot){throw new J((ot||"Cloning")+" of "+Q+" cannot be properly polyfilled in this engine",Nt)},tt=function(Q,ot){return jt||ht(ot),jt(Q)},It=function(){var Q;try{Q=new a.DataTransfer}catch(ot){try{Q=new a.ClipboardEvent("").clipboardData}catch(ut){}}return Q&&Q.items&&Q.files?Q:null},Tt=function(Q,ot,ut){if(_(ot,Q))return dt(ot,Q);var W=ut||x(Q),Z,K,ct,Rt,Ft,Kt;if(W==="SharedArrayBuffer")jt?Z=jt(Q):Z=Q;else{var Yt=a.DataView;!Yt&&!v(Q.slice)&&ht("ArrayBuffer");try{if(v(Q.slice)&&!Q.resizable)Z=Q.slice(0);else for(K=Q.byteLength,ct=("maxByteLength"in Q)?{maxByteLength:Q.maxByteLength}:void 0,Z=new ArrayBuffer(K,ct),Rt=new Yt(Q),Ft=new Yt(Z),Kt=0;Kt<K;Kt++)Ft.setUint8(Kt,Rt.getUint8(Kt))}catch(zt){throw new J("ArrayBuffer is detached",Nt)}}return lt(ot,Q,Z),Z},xt=function(Q,ot,ut,W,Z){var K=a[ot];return y(K)||ht(ot),new K(Tt(Q.buffer,Z),ut,W)},yt=function(Q,ot){if(p(Q)&&st("Symbol"),!y(Q))return Q;if(ot){if(_(ot,Q))return dt(ot,Q)}else ot=new et;var ut=x(Q),W,Z,K,ct,Rt,Ft,Kt,Yt;switch(ut){case"Array":K=U(R(Q));break;case"Object":K={};break;case"Map":K=new et;break;case"Set":K=new pt;break;case"RegExp":K=new RegExp(Q.source,T(Q));break;case"Error":switch(Z=Q.name,Z){case"AggregateError":K=new(o(Z))([]);break;case"EvalError":case"RangeError":case"ReferenceError":case"SuppressedError":case"SyntaxError":case"TypeError":case"URIError":K=new(o(Z));break;case"CompileError":case"LinkError":case"RuntimeError":K=new(o("WebAssembly",Z));break;default:K=new j}break;case"DOMException":K=new J(Q.message,Q.name);break;case"ArrayBuffer":case"SharedArrayBuffer":K=Tt(Q,ot,ut);break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float16Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":Ft=ut==="DataView"?Q.byteLength:Q.length,K=xt(Q,ut,Q.byteOffset,Ft,ot);break;case"DOMQuad":try{K=new DOMQuad(yt(Q.p1,ot),yt(Q.p2,ot),yt(Q.p3,ot),yt(Q.p4,ot))}catch(zt){K=tt(Q,ut)}break;case"File":if(jt)try{K=jt(Q),x(K)!==ut&&(K=void 0)}catch(zt){}if(!K)try{K=new File([Q],Q.name,Q)}catch(zt){}K||ht(ut);break;case"FileList":if(ct=It(),ct){for(Rt=0,Ft=R(Q);Rt<Ft;Rt++)ct.items.add(yt(Q[Rt],ot));K=ct.files}else K=tt(Q,ut);break;case"ImageData":try{K=new ImageData(yt(Q.data,ot),Q.width,Q.height,{colorSpace:Q.colorSpace})}catch(zt){K=tt(Q,ut)}break;default:if(jt)K=jt(Q);else switch(ut){case"BigInt":K=V(Q.valueOf());break;case"Boolean":K=V(bt(Q));break;case"Number":K=V(vt(Q));break;case"String":K=V(gt(Q));break;case"Date":K=new B(Pt(Q));break;case"Blob":try{K=Q.slice(0,Q.size,Q.type)}catch(zt){ht(ut)}break;case"DOMPoint":case"DOMPointReadOnly":W=a[ut];try{K=W.fromPoint?W.fromPoint(Q):new W(Q.x,Q.y,Q.z,Q.w)}catch(zt){ht(ut)}break;case"DOMRect":case"DOMRectReadOnly":W=a[ut];try{K=W.fromRect?W.fromRect(Q):new W(Q.x,Q.y,Q.width,Q.height)}catch(zt){ht(ut)}break;case"DOMMatrix":case"DOMMatrixReadOnly":W=a[ut];try{K=W.fromMatrix?W.fromMatrix(Q):new W(Q)}catch(zt){ht(ut)}break;case"AudioData":case"VideoFrame":v(Q.clone)||ht(ut);try{K=Q.clone()}catch(zt){st(ut)}break;case"CropTarget":case"CryptoKey":case"FileSystemDirectoryHandle":case"FileSystemFileHandle":case"FileSystemHandle":case"GPUCompilationInfo":case"GPUCompilationMessage":case"ImageBitmap":case"RTCCertificate":case"WebAssembly.Module":ht(ut);default:st(ut)}}switch(lt(ot,Q,K),ut){case"Array":case"Object":for(Kt=Ht(Q),Rt=0,Ft=R(Kt);Rt<Ft;Rt++)Yt=Kt[Rt],P(K,Yt,yt(Q[Yt],ot));break;case"Map":Q.forEach(function(zt,ar){lt(K,yt(ar,ot),yt(zt,ot))});break;case"Set":Q.forEach(function(zt){St(K,yt(zt,ot))});break;case"Error":A(K,"message",yt(Q.message,ot)),I(Q,"cause")&&A(K,"cause",yt(Q.cause,ot)),Z==="AggregateError"?K.errors=yt(Q.errors,ot):Z==="SuppressedError"&&(K.error=yt(Q.error,ot),K.suppressed=yt(Q.suppressed,ot));case"DOMException":b&&A(K,"stack",yt(Q.stack,ot))}return K},_t=function(Q,ot){if(!y(Q))throw new z("Transfer option cannot be converted to a sequence");var ut=[];m(Q,function(ar){$t(ut,S(ar))});for(var W=0,Z=R(ut),K=new pt,ct,Rt,Ft,Kt,Yt,zt;W<Z;){if(ct=ut[W++],Rt=x(ct),Rt==="ArrayBuffer"?Ot(K,ct):_(ot,ct))throw new J("Duplicate transferable",Nt);if(Rt==="ArrayBuffer"){St(K,ct);continue}if(w)Kt=Lt(ct,{transfer:[ct]});else switch(Rt){case"ImageBitmap":Ft=a.OffscreenCanvas,c(Ft)||ht(Rt,Ut);try{Yt=new Ft(ct.width,ct.height),zt=Yt.getContext("bitmaprenderer"),zt.transferFromImageBitmap(ct),Kt=Yt.transferToImageBitmap()}catch(ar){}break;case"AudioData":case"VideoFrame":(!v(ct.clone)||!v(ct.close))&&ht(Rt,Ut);try{Kt=ct.clone(),ct.close()}catch(ar){}break;case"MediaSourceHandle":case"MessagePort":case"OffscreenCanvas":case"ReadableStream":case"TransformStream":case"WritableStream":ht(Rt,Ut)}if(Kt===void 0)throw new J("This object cannot be transferred: "+Rt,Nt);lt(ot,ct,Kt)}return K},nr=function(Q){L(Q,function(ot){w?jt(ot,{transfer:[ot]}):v(ot.transfer)?ot.transfer():F?F(ot):ht("ArrayBuffer",Ut)})};n({global:!0,enumerable:!0,sham:!w,forced:Qt},{structuredClone:function(ot){var ut=N(arguments.length,1)>1&&!g(arguments[1])?S(arguments[1]):void 0,W=ut?ut.transfer:void 0,Z,K;W!==void 0&&(Z=new et,K=_t(W,Z));var ct=yt(ot,Z);return K&&nr(K),ct}})},28381:function(i,d,t){t(63981),t(23913)},98812:function(i,d,t){t(35054);var r=t(14304),n=t(66009),a=t(28167),o=t(96499),s=t(11286),u=t(92986),l=t(91918),v=t(16142),c=t(85500),g=t(2725),y=t(78401),p=t(26820),m=t(82367),S=t(12833),x=t(23583),I=t(94879),P=t(45526),A=t(9205),R=t(25001),N=t(37540),T=t(17361),C=t(5406),D=t(18526),L=t(90619),F=t(81077),b=t(10659),w=t(95486),V=t(18565),U=t(13270),B=V("iterator"),j="URLSearchParams",z=j+"Iterator",k=m.set,J=m.getterFor(j),et=m.getterFor(z),_=a("fetch"),dt=a("Request"),lt=a("Headers"),pt=dt&&dt.prototype,St=lt&<.prototype,Ot=n.RegExp,Ht=n.TypeError,$t=n.decodeURIComponent,bt=n.encodeURIComponent,vt=s("".charAt),gt=s([].join),Pt=s([].push),Dt=s("".replace),Nt=s([].shift),Ut=s([].splice),Zt=s("".split),kt=s("".slice),Jt=/\+/g,Lt=Array(4),Qt=function(W){return Lt[W-1]||(Lt[W-1]=Ot("((?:%[\\da-f]{2}){"+W+"})","gi"))},Vt=function(W){try{return $t(W)}catch(Z){return W}},jt=function(W){var Z=Dt(W,Jt," "),K=4;try{return $t(Z)}catch(ct){for(;K;)Z=Dt(Z,Qt(K--),Vt);return Z}},st=/[!'()~]|%20/g,ht={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},tt=function(W){return ht[W]},It=function(W){return Dt(bt(W),st,tt)},Tt=p(function(Z,K){k(this,{type:z,target:J(Z).entries,index:0,kind:K})},j,function(){var Z=et(this),K=Z.target,ct=Z.index++;if(!K||ct>=K.length)return Z.target=void 0,b(void 0,!0);var Rt=K[ct];switch(Z.kind){case"keys":return b(Rt.key,!1);case"values":return b(Rt.value,!1)}return b([Rt.key,Rt.value],!1)},!0),xt=function(W){this.entries=[],this.url=null,W!==void 0&&(N(W)?this.parseObject(W):this.parseQuery(typeof W=="string"?vt(W,0)==="?"?kt(W,1):W:T(W)))};xt.prototype={type:j,bindURL:function(W){this.url=W,this.update()},parseObject:function(W){var Z=this.entries,K=F(W),ct,Rt,Ft,Kt,Yt,zt,ar;if(K)for(ct=L(W,K),Rt=ct.next;!(Ft=o(Rt,ct)).done;){if(Kt=L(R(Ft.value)),Yt=Kt.next,(zt=o(Yt,Kt)).done||(ar=o(Yt,Kt)).done||!o(Yt,Kt).done)throw new Ht("Expected sequence with length 2");Pt(Z,{key:T(zt.value),value:T(ar.value)})}else for(var Yr in W)I(W,Yr)&&Pt(Z,{key:Yr,value:T(W[Yr])})},parseQuery:function(W){if(W)for(var Z=this.entries,K=Zt(W,"&"),ct=0,Rt,Ft;ct<K.length;)Rt=K[ct++],Rt.length&&(Ft=Zt(Rt,"="),Pt(Z,{key:jt(Nt(Ft)),value:jt(gt(Ft,"="))}))},serialize:function(){for(var W=this.entries,Z=[],K=0,ct;K<W.length;)ct=W[K++],Pt(Z,It(ct.key)+"="+It(ct.value));return gt(Z,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var yt=function(){S(this,_t);var Z=arguments.length>0?arguments[0]:void 0,K=k(this,new xt(Z));u||(this.size=K.entries.length)},_t=yt.prototype;if(g(_t,{append:function(Z,K){var ct=J(this);w(arguments.length,2),Pt(ct.entries,{key:T(Z),value:T(K)}),u||this.length++,ct.updateURL()},delete:function(W){for(var Z=J(this),K=w(arguments.length,1),ct=Z.entries,Rt=T(W),Ft=K<2?void 0:arguments[1],Kt=Ft===void 0?Ft:T(Ft),Yt=0;Yt<ct.length;){var zt=ct[Yt];if(zt.key===Rt&&(Kt===void 0||zt.value===Kt)){if(Ut(ct,Yt,1),Kt!==void 0)break}else Yt++}u||(this.size=ct.length),Z.updateURL()},get:function(Z){var K=J(this).entries;w(arguments.length,1);for(var ct=T(Z),Rt=0;Rt<K.length;Rt++)if(K[Rt].key===ct)return K[Rt].value;return null},getAll:function(Z){var K=J(this).entries;w(arguments.length,1);for(var ct=T(Z),Rt=[],Ft=0;Ft<K.length;Ft++)K[Ft].key===ct&&Pt(Rt,K[Ft].value);return Rt},has:function(Z){for(var K=J(this).entries,ct=w(arguments.length,1),Rt=T(Z),Ft=ct<2?void 0:arguments[1],Kt=Ft===void 0?Ft:T(Ft),Yt=0;Yt<K.length;){var zt=K[Yt++];if(zt.key===Rt&&(Kt===void 0||zt.value===Kt))return!0}return!1},set:function(Z,K){var ct=J(this);w(arguments.length,1);for(var Rt=ct.entries,Ft=!1,Kt=T(Z),Yt=T(K),zt=0,ar;zt<Rt.length;zt++)ar=Rt[zt],ar.key===Kt&&(Ft?Ut(Rt,zt--,1):(Ft=!0,ar.value=Yt));Ft||Pt(Rt,{key:Kt,value:Yt}),u||(this.size=Rt.length),ct.updateURL()},sort:function(){var Z=J(this);U(Z.entries,function(K,ct){return K.key>ct.key?1:-1}),Z.updateURL()},forEach:function(Z){for(var K=J(this).entries,ct=P(Z,arguments.length>1?arguments[1]:void 0),Rt=0,Ft;Rt<K.length;)Ft=K[Rt++],ct(Ft.value,Ft.key,this)},keys:function(){return new Tt(this,"keys")},values:function(){return new Tt(this,"values")},entries:function(){return new Tt(this,"entries")}},{enumerable:!0}),v(_t,B,_t.entries,{name:"entries"}),v(_t,"toString",function(){return J(this).serialize()},{enumerable:!0}),u&&c(_t,"size",{get:function(){return J(this).entries.length},configurable:!0,enumerable:!0}),y(yt,j),r({global:!0,constructor:!0,forced:!l},{URLSearchParams:yt}),!l&&x(lt)){var nr=s(St.has),Q=s(St.set),ot=function(W){if(N(W)){var Z=W.body,K;if(A(Z)===j)return K=W.headers?new lt(W.headers):new lt,nr(K,"content-type")||Q(K,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),C(W,{body:D(0,T(Z)),headers:D(0,K)})}return W};if(x(_)&&r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(Z){return _(Z,arguments.length>1?ot(arguments[1]):{})}}),x(dt)){var ut=function(Z){return S(this,pt),new dt(Z,arguments.length>1?ot(arguments[1]):{})};pt.constructor=ut,ut.prototype=pt,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:ut})}}i.exports={URLSearchParams:yt,getState:J}},10901:function(i,d,t){var r=t(16142),n=t(11286),a=t(17361),o=t(95486),s=URLSearchParams,u=s.prototype,l=n(u.append),v=n(u.delete),c=n(u.forEach),g=n([].push),y=new s("a=1&a=2&b=3");y.delete("a",1),y.delete("b",void 0),y+""!="a=2"&&r(u,"delete",function(p){var m=arguments.length,S=m<2?void 0:arguments[1];if(m&&S===void 0)return v(this,p);var x=[];c(this,function(D,L){g(x,{key:L,value:D})}),o(m,1);for(var I=a(p),P=a(S),A=0,R=0,N=!1,T=x.length,C;A<T;)C=x[A++],N||C.key===I?(N=!0,v(this,C.key)):R++;for(;R<T;)C=x[R++],C.key===I&&C.value===P||l(this,C.key,C.value)},{enumerable:!0,unsafe:!0})},93944:function(i,d,t){var r=t(16142),n=t(11286),a=t(17361),o=t(95486),s=URLSearchParams,u=s.prototype,l=n(u.getAll),v=n(u.has),c=new s("a=1");(c.has("a",2)||!c.has("a",void 0))&&r(u,"has",function(y){var p=arguments.length,m=p<2?void 0:arguments[1];if(p&&m===void 0)return v(this,y);var S=l(this,y);o(p,1);for(var x=a(m),I=0;I<S.length;)if(S[I++]===x)return!0;return!1},{enumerable:!0,unsafe:!0})},86650:function(i,d,t){t(98812)},79043:function(i,d,t){var r=t(92986),n=t(11286),a=t(85500),o=URLSearchParams.prototype,s=n(o.forEach);r&&!("size"in o)&&a(o,"size",{get:function(){var l=0;return s(this,function(){l++}),l},configurable:!0,enumerable:!0})},20760:function(i,d,t){var r=t(14304),n=t(38941),a=t(72069),o=t(95486),s=t(17361),u=t(91918),l=n("URL"),v=u&&a(function(){l.canParse()}),c=a(function(){return l.canParse.length!==1});r({target:"URL",stat:!0,forced:!v||c},{canParse:function(y){var p=o(arguments.length,1),m=s(y),S=p<2||arguments[1]===void 0?void 0:s(arguments[1]);try{return!!new l(m,S)}catch(x){return!1}}})},81888:function(i,d,t){t(59158);var r=t(14304),n=t(92986),a=t(91918),o=t(66009),s=t(45526),u=t(11286),l=t(16142),v=t(85500),c=t(12833),g=t(94879),y=t(16667),p=t(48258),m=t(22806),S=t(22149).codeAt,x=t(38679),I=t(17361),P=t(78401),A=t(95486),R=t(98812),N=t(82367),T=N.set,C=N.getterFor("URL"),D=R.URLSearchParams,L=R.getState,F=o.URL,b=o.TypeError,w=o.parseInt,V=Math.floor,U=Math.pow,B=u("".charAt),j=u(/./.exec),z=u([].join),k=u(1 .toString),J=u([].pop),et=u([].push),_=u("".replace),dt=u([].shift),lt=u("".split),pt=u("".slice),St=u("".toLowerCase),Ot=u([].unshift),Ht="Invalid authority",$t="Invalid scheme",bt="Invalid host",vt="Invalid port",gt=/[a-z]/i,Pt=/[\d+-.a-z]/i,Dt=/\d/,Nt=/^0x/i,Ut=/^[0-7]+$/,Zt=/^\d+$/,kt=/^[\da-f]+$/i,Jt=/[\0\t\n\r #%/:<>?@[\\\]^|]/,Lt=/[\0\t\n\r #/:<>?@[\\\]^|]/,Qt=/^[\u0000-\u0020]+/,Vt=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,jt=/[\t\n\r]/g,st,ht=function(X){var ft=lt(X,"."),q,H,at,Mt,At,er,rr;if(ft.length&&ft[ft.length-1]===""&&ft.length--,q=ft.length,q>4)return X;for(H=[],at=0;at<q;at++){if(Mt=ft[at],Mt==="")return X;if(At=10,Mt.length>1&&B(Mt,0)==="0"&&(At=j(Nt,Mt)?16:8,Mt=pt(Mt,At===8?1:2)),Mt==="")er=0;else{if(!j(At===10?Zt:At===8?Ut:kt,Mt))return X;er=w(Mt,At)}et(H,er)}for(at=0;at<q;at++)if(er=H[at],at===q-1){if(er>=U(256,5-q))return null}else if(er>255)return null;for(rr=J(H),at=0;at<H.length;at++)rr+=H[at]*U(256,3-at);return rr},tt=function(X){var ft=[0,0,0,0,0,0,0,0],q=0,H=null,at=0,Mt,At,er,rr,ur,Tr,it,sr=function(){return B(X,at)};if(sr()===":"){if(B(X,1)!==":")return;at+=2,q++,H=q}for(;sr();){if(q===8)return;if(sr()===":"){if(H!==null)return;at++,q++,H=q;continue}for(Mt=At=0;At<4&&j(kt,sr());)Mt=Mt*16+w(sr(),16),at++,At++;if(sr()==="."){if(At===0||(at-=At,q>6))return;for(er=0;sr();){if(rr=null,er>0)if(sr()==="."&&er<4)at++;else return;if(!j(Dt,sr()))return;for(;j(Dt,sr());){if(ur=w(sr(),10),rr===null)rr=ur;else{if(rr===0)return;rr=rr*10+ur}if(rr>255)return;at++}ft[q]=ft[q]*256+rr,er++,(er===2||er===4)&&q++}if(er!==4)return;break}else if(sr()===":"){if(at++,!sr())return}else if(sr())return;ft[q++]=Mt}if(H!==null)for(Tr=q-H,q=7;q!==0&&Tr>0;)it=ft[q],ft[q--]=ft[H+Tr-1],ft[H+--Tr]=it;else if(q!==8)return;return ft},It=function(X){for(var ft=null,q=1,H=null,at=0,Mt=0;Mt<8;Mt++)X[Mt]!==0?(at>q&&(ft=H,q=at),H=null,at=0):(H===null&&(H=Mt),++at);return at>q&&(ft=H,q=at),ft},Tt=function(X){var ft,q,H,at;if(typeof X=="number"){for(ft=[],q=0;q<4;q++)Ot(ft,X%256),X=V(X/256);return z(ft,".")}else if(typeof X=="object"){for(ft="",H=It(X),q=0;q<8;q++)at&&X[q]===0||(at&&(at=!1),H===q?(ft+=q?":":"::",at=!0):(ft+=k(X[q],16),q<7&&(ft+=":")));return"["+ft+"]"}return X},xt={},yt=y({},xt,{" ":1,'"':1,"<":1,">":1,"`":1}),_t=y({},yt,{"#":1,"?":1,"{":1,"}":1}),nr=y({},_t,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Q=function(X,ft){var q=S(X,0);return q>32&&q<127&&!g(ft,X)?X:encodeURIComponent(X)},ot={ftp:21,file:null,http:80,https:443,ws:80,wss:443},ut=function(X,ft){var q;return X.length===2&&j(gt,B(X,0))&&((q=B(X,1))===":"||!ft&&q==="|")},W=function(X){var ft;return X.length>1&&ut(pt(X,0,2))&&(X.length===2||(ft=B(X,2))==="/"||ft==="\\"||ft==="?"||ft==="#")},Z=function(X){return X==="."||St(X)==="%2e"},K=function(X){return X=St(X),X===".."||X==="%2e."||X===".%2e"||X==="%2e%2e"},ct={},Rt={},Ft={},Kt={},Yt={},zt={},ar={},Yr={},an={},on={},dn={},sn={},hn={},gn={},Dn={},yn={},Xr={},Mr={},Fn={},wr={},Dr={},pn=function(X,ft,q){var H=I(X),at,Mt,At;if(ft){if(Mt=this.parse(H),Mt)throw new b(Mt);this.searchParams=null}else{if(q!==void 0&&(at=new pn(q,!0)),Mt=this.parse(H,null,at),Mt)throw new b(Mt);At=L(new D),At.bindURL(this),this.searchParams=At}};pn.prototype={type:"URL",parse:function(X,ft,q){var H=this,at=ft||ct,Mt=0,At="",er=!1,rr=!1,ur=!1,Tr,it,sr,Fr;for(X=I(X),ft||(H.scheme="",H.username="",H.password="",H.host=null,H.port=null,H.path=[],H.query=null,H.fragment=null,H.cannotBeABaseURL=!1,X=_(X,Qt,""),X=_(X,Vt,"$1")),X=_(X,jt,""),Tr=p(X);Mt<=Tr.length;){switch(it=Tr[Mt],at){case ct:if(it&&j(gt,it))At+=St(it),at=Rt;else{if(ft)return $t;at=Ft;continue}break;case Rt:if(it&&(j(Pt,it)||it==="+"||it==="-"||it==="."))At+=St(it);else if(it===":"){if(ft&&(H.isSpecial()!==g(ot,At)||At==="file"&&(H.includesCredentials()||H.port!==null)||H.scheme==="file"&&!H.host))return;if(H.scheme=At,ft){H.isSpecial()&&ot[H.scheme]===H.port&&(H.port=null);return}At="",H.scheme==="file"?at=gn:H.isSpecial()&&q&&q.scheme===H.scheme?at=Kt:H.isSpecial()?at=Yr:Tr[Mt+1]==="/"?(at=Yt,Mt++):(H.cannotBeABaseURL=!0,et(H.path,""),at=Fn)}else{if(ft)return $t;At="",at=Ft,Mt=0;continue}break;case Ft:if(!q||q.cannotBeABaseURL&&it!=="#")return $t;if(q.cannotBeABaseURL&&it==="#"){H.scheme=q.scheme,H.path=m(q.path),H.query=q.query,H.fragment="",H.cannotBeABaseURL=!0,at=Dr;break}at=q.scheme==="file"?gn:zt;continue;case Kt:if(it==="/"&&Tr[Mt+1]==="/")at=an,Mt++;else{at=zt;continue}break;case Yt:if(it==="/"){at=on;break}else{at=Mr;continue}case zt:if(H.scheme=q.scheme,it===st)H.username=q.username,H.password=q.password,H.host=q.host,H.port=q.port,H.path=m(q.path),H.query=q.query;else if(it==="/"||it==="\\"&&H.isSpecial())at=ar;else if(it==="?")H.username=q.username,H.password=q.password,H.host=q.host,H.port=q.port,H.path=m(q.path),H.query="",at=wr;else if(it==="#")H.username=q.username,H.password=q.password,H.host=q.host,H.port=q.port,H.path=m(q.path),H.query=q.query,H.fragment="",at=Dr;else{H.username=q.username,H.password=q.password,H.host=q.host,H.port=q.port,H.path=m(q.path),H.path.length--,at=Mr;continue}break;case ar:if(H.isSpecial()&&(it==="/"||it==="\\"))at=an;else if(it==="/")at=on;else{H.username=q.username,H.password=q.password,H.host=q.host,H.port=q.port,at=Mr;continue}break;case Yr:if(at=an,it!=="/"||B(At,Mt+1)!=="/")continue;Mt++;break;case an:if(it!=="/"&&it!=="\\"){at=on;continue}break;case on:if(it==="@"){er&&(At="%40"+At),er=!0,sr=p(At);for(var un=0;un<sr.length;un++){var $n=sr[un];if($n===":"&&!ur){ur=!0;continue}var Gr=Q($n,nr);ur?H.password+=Gr:H.username+=Gr}At=""}else if(it===st||it==="/"||it==="?"||it==="#"||it==="\\"&&H.isSpecial()){if(er&&At==="")return Ht;Mt-=p(At).length+1,At="",at=dn}else At+=it;break;case dn:case sn:if(ft&&H.scheme==="file"){at=yn;continue}else if(it===":"&&!rr){if(At==="")return bt;if(Fr=H.parseHost(At),Fr)return Fr;if(At="",at=hn,ft===sn)return}else if(it===st||it==="/"||it==="?"||it==="#"||it==="\\"&&H.isSpecial()){if(H.isSpecial()&&At==="")return bt;if(ft&&At===""&&(H.includesCredentials()||H.port!==null))return;if(Fr=H.parseHost(At),Fr)return Fr;if(At="",at=Xr,ft)return;continue}else it==="["?rr=!0:it==="]"&&(rr=!1),At+=it;break;case hn:if(j(Dt,it))At+=it;else if(it===st||it==="/"||it==="?"||it==="#"||it==="\\"&&H.isSpecial()||ft){if(At!==""){var Vr=w(At,10);if(Vr>65535)return vt;H.port=H.isSpecial()&&Vr===ot[H.scheme]?null:Vr,At=""}if(ft)return;at=Xr;continue}else return vt;break;case gn:if(H.scheme="file",it==="/"||it==="\\")at=Dn;else if(q&&q.scheme==="file")switch(it){case st:H.host=q.host,H.path=m(q.path),H.query=q.query;break;case"?":H.host=q.host,H.path=m(q.path),H.query="",at=wr;break;case"#":H.host=q.host,H.path=m(q.path),H.query=q.query,H.fragment="",at=Dr;break;default:W(z(m(Tr,Mt),""))||(H.host=q.host,H.path=m(q.path),H.shortenPath()),at=Mr;continue}else{at=Mr;continue}break;case Dn:if(it==="/"||it==="\\"){at=yn;break}q&&q.scheme==="file"&&!W(z(m(Tr,Mt),""))&&(ut(q.path[0],!0)?et(H.path,q.path[0]):H.host=q.host),at=Mr;continue;case yn:if(it===st||it==="/"||it==="\\"||it==="?"||it==="#"){if(!ft&&ut(At))at=Mr;else if(At===""){if(H.host="",ft)return;at=Xr}else{if(Fr=H.parseHost(At),Fr)return Fr;if(H.host==="localhost"&&(H.host=""),ft)return;At="",at=Xr}continue}else At+=it;break;case Xr:if(H.isSpecial()){if(at=Mr,it!=="/"&&it!=="\\")continue}else if(!ft&&it==="?")H.query="",at=wr;else if(!ft&&it==="#")H.fragment="",at=Dr;else if(it!==st&&(at=Mr,it!=="/"))continue;break;case Mr:if(it===st||it==="/"||it==="\\"&&H.isSpecial()||!ft&&(it==="?"||it==="#")){if(K(At)?(H.shortenPath(),it!=="/"&&!(it==="\\"&&H.isSpecial())&&et(H.path,"")):Z(At)?it!=="/"&&!(it==="\\"&&H.isSpecial())&&et(H.path,""):(H.scheme==="file"&&!H.path.length&&ut(At)&&(H.host&&(H.host=""),At=B(At,0)+":"),et(H.path,At)),At="",H.scheme==="file"&&(it===st||it==="?"||it==="#"))for(;H.path.length>1&&H.path[0]==="";)dt(H.path);it==="?"?(H.query="",at=wr):it==="#"&&(H.fragment="",at=Dr)}else At+=Q(it,_t);break;case Fn:it==="?"?(H.query="",at=wr):it==="#"?(H.fragment="",at=Dr):it!==st&&(H.path[0]+=Q(it,xt));break;case wr:!ft&&it==="#"?(H.fragment="",at=Dr):it!==st&&(it==="'"&&H.isSpecial()?H.query+="%27":it==="#"?H.query+="%23":H.query+=Q(it,xt));break;case Dr:it!==st&&(H.fragment+=Q(it,yt));break}Mt++}},parseHost:function(X){var ft,q,H;if(B(X,0)==="["){if(B(X,X.length-1)!=="]"||(ft=tt(pt(X,1,-1)),!ft))return bt;this.host=ft}else if(this.isSpecial()){if(X=x(X),j(Jt,X)||(ft=ht(X),ft===null))return bt;this.host=ft}else{if(j(Lt,X))return bt;for(ft="",q=p(X),H=0;H<q.length;H++)ft+=Q(q[H],xt);this.host=ft}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme==="file"},includesCredentials:function(){return this.username!==""||this.password!==""},isSpecial:function(){return g(ot,this.scheme)},shortenPath:function(){var X=this.path,ft=X.length;ft&&(this.scheme!=="file"||ft!==1||!ut(X[0],!0))&&X.length--},serialize:function(){var X=this,ft=X.scheme,q=X.username,H=X.password,at=X.host,Mt=X.port,At=X.path,er=X.query,rr=X.fragment,ur=ft+":";return at!==null?(ur+="//",X.includesCredentials()&&(ur+=q+(H?":"+H:"")+"@"),ur+=Tt(at),Mt!==null&&(ur+=":"+Mt)):ft==="file"&&(ur+="//"),ur+=X.cannotBeABaseURL?At[0]:At.length?"/"+z(At,"/"):"",er!==null&&(ur+="?"+er),rr!==null&&(ur+="#"+rr),ur},setHref:function(X){var ft=this.parse(X);if(ft)throw new b(ft);this.searchParams.update()},getOrigin:function(){var X=this.scheme,ft=this.port;if(X==="blob")try{return new Jr(X.path[0]).origin}catch(q){return"null"}return X==="file"||!this.isSpecial()?"null":X+"://"+Tt(this.host)+(ft!==null?":"+ft:"")},getProtocol:function(){return this.scheme+":"},setProtocol:function(X){this.parse(I(X)+":",ct)},getUsername:function(){return this.username},setUsername:function(X){var ft=p(I(X));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var q=0;q<ft.length;q++)this.username+=Q(ft[q],nr)}},getPassword:function(){return this.password},setPassword:function(X){var ft=p(I(X));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var q=0;q<ft.length;q++)this.password+=Q(ft[q],nr)}},getHost:function(){var X=this.host,ft=this.port;return X===null?"":ft===null?Tt(X):Tt(X)+":"+ft},setHost:function(X){this.cannotBeABaseURL||this.parse(X,dn)},getHostname:function(){var X=this.host;return X===null?"":Tt(X)},setHostname:function(X){this.cannotBeABaseURL||this.parse(X,sn)},getPort:function(){var X=this.port;return X===null?"":I(X)},setPort:function(X){this.cannotHaveUsernamePasswordPort()||(X=I(X),X===""?this.port=null:this.parse(X,hn))},getPathname:function(){var X=this.path;return this.cannotBeABaseURL?X[0]:X.length?"/"+z(X,"/"):""},setPathname:function(X){this.cannotBeABaseURL||(this.path=[],this.parse(X,Xr))},getSearch:function(){var X=this.query;return X?"?"+X:""},setSearch:function(X){X=I(X),X===""?this.query=null:(B(X,0)==="?"&&(X=pt(X,1)),this.query="",this.parse(X,wr)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var X=this.fragment;return X?"#"+X:""},setHash:function(X){if(X=I(X),X===""){this.fragment=null;return}B(X,0)==="#"&&(X=pt(X,1)),this.fragment="",this.parse(X,Dr)},update:function(){this.query=this.searchParams.serialize()||null}};var Jr=function(ft){var q=c(this,dr),H=A(arguments.length,1)>1?arguments[1]:void 0,at=T(q,new pn(ft,!1,H));n||(q.href=at.serialize(),q.origin=at.getOrigin(),q.protocol=at.getProtocol(),q.username=at.getUsername(),q.password=at.getPassword(),q.host=at.getHost(),q.hostname=at.getHostname(),q.port=at.getPort(),q.pathname=at.getPathname(),q.search=at.getSearch(),q.searchParams=at.getSearchParams(),q.hash=at.getHash())},dr=Jr.prototype,Rr=function(X,ft){return{get:function(){return C(this)[X]()},set:ft&&function(q){return C(this)[ft](q)},configurable:!0,enumerable:!0}};if(n&&(v(dr,"href",Rr("serialize","setHref")),v(dr,"origin",Rr("getOrigin")),v(dr,"protocol",Rr("getProtocol","setProtocol")),v(dr,"username",Rr("getUsername","setUsername")),v(dr,"password",Rr("getPassword","setPassword")),v(dr,"host",Rr("getHost","setHost")),v(dr,"hostname",Rr("getHostname","setHostname")),v(dr,"port",Rr("getPort","setPort")),v(dr,"pathname",Rr("getPathname","setPathname")),v(dr,"search",Rr("getSearch","setSearch")),v(dr,"searchParams",Rr("getSearchParams")),v(dr,"hash",Rr("getHash","setHash"))),l(dr,"toJSON",function(){return C(this).serialize()},{enumerable:!0}),l(dr,"toString",function(){return C(this).serialize()},{enumerable:!0}),F){var Ln=F.createObjectURL,mn=F.revokeObjectURL;Ln&&l(Jr,"createObjectURL",s(Ln,F)),mn&&l(Jr,"revokeObjectURL",s(mn,F))}P(Jr,"URL"),r({global:!0,constructor:!0,forced:!a,sham:!n},{URL:Jr})},51862:function(i,d,t){t(81888)},24119:function(i,d,t){var r=t(14304),n=t(38941),a=t(95486),o=t(17361),s=t(91918),u=n("URL");r({target:"URL",stat:!0,forced:!s},{parse:function(v){var c=a(arguments.length,1),g=o(v),y=c<2||arguments[1]===void 0?void 0:o(arguments[1]);try{return new u(g,y)}catch(p){return null}}})},97526:function(i,d,t){var r=t(14304),n=t(96499);r({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return n(URL.prototype.toString,this)}})},61969:function(i,d,t){t(40949),t(43657),t(43606),t(15855),t(42026),t(33257),t(59414),t(88344),t(92579),t(94655),t(8565),t(60843),t(65842),t(51595),t(54908),t(81742),t(8720),t(42861),t(27796),t(1341),t(98700),t(65481),t(46509),t(41585),t(84554),t(36619),t(33818),t(64096),t(2209),t(91591),t(74092),t(54703),t(82936),t(48493),t(64730),t(95024),t(35054),t(25460),t(60703),t(90468),t(69581),t(720),t(11042),t(17289),t(24608),t(51644),t(88088),t(46828),t(90088),t(35148),t(86184),t(53983),t(42560),t(88444),t(27839),t(73051),t(9372),t(35473),t(4983),t(6875),t(68575),t(35495),t(32790),t(58594),t(30801),t(90911),t(90429),t(33685),t(60086),t(96049),t(14038),t(55518),t(8894),t(60628),t(56347),t(16864),t(93819),t(71332),t(47269),t(25627),t(22090),t(9839),t(15656),t(22091),t(2886),t(25895),t(24228),t(79488),t(75987),t(81555),t(87854),t(35074),t(50946),t(29417),t(80628),t(74375),t(29708),t(93449),t(9111),t(83514),t(15096),t(59590),t(99663),t(89988),t(54427),t(67895),t(57909),t(83938),t(55461),t(97339),t(3670),t(15224),t(45891),t(99910),t(92445),t(21875),t(4383),t(11361),t(13728),t(14885),t(30343),t(22045),t(75e3),t(64658),t(16017),t(84681),t(73421),t(93446),t(31046),t(94645),t(62935),t(62518),t(45130),t(51542),t(43781),t(25738),t(93247),t(41533),t(60225),t(69920),t(89205),t(78546),t(63616),t(16893),t(3676),t(58361),t(23958),t(9798),t(2371),t(76185),t(76553),t(93518),t(25227),t(91723),t(57882),t(37796),t(11563),t(26159),t(20962),t(77487),t(6130),t(1354),t(47119),t(31145),t(96773),t(14371),t(18180),t(83147),t(75765),t(86548),t(15282),t(51275),t(91890),t(15089),t(78134),t(56456),t(40735),t(8510),t(70159),t(93087),t(26021),t(93029),t(59158),t(15599),t(18509),t(21579),t(8854),t(57676),t(14527),t(96834),t(52684),t(74980),t(390),t(42794),t(21293),t(18184),t(75012),t(19680),t(4193),t(70641),t(53892),t(95976),t(399),t(72032),t(49442),t(16012),t(9943),t(33128),t(95625),t(90614),t(60120),t(75826),t(25560),t(22571),t(40704),t(36849),t(49191),t(81083),t(27428),t(44884),t(48658),t(71998),t(6116),t(33032),t(80962),t(49381),t(38344),t(65961),t(94153),t(16028),t(20656),t(17063),t(21774),t(51761),t(12317),t(19711),t(41034),t(13313),t(44698),t(7369),t(66178),t(67961),t(8695),t(69997),t(9711),t(3923),t(59728),t(85227),t(56933),t(91490),t(61766),t(85143),t(47005),t(10042),t(37888),t(19431),t(60869),t(50338),t(53059),t(5805),t(50685),t(70649),t(39842),t(82872),t(91401),t(92904),t(28381),t(51862),t(20760),t(24119),t(97526),t(86650),t(10901),t(93944),t(79043),t(75081)}},Kr={};function Nr(i){var d=Kr[i];if(d!==void 0)return d.exports;var t=Kr[i]={exports:{}};return Re[i].call(t.exports,t,t.exports,Nr),t.exports}(function(){Nr.d=function(i,d){for(var t in d)Nr.o(d,t)&&!Nr.o(i,t)&&Object.defineProperty(i,t,{enumerable:!0,get:d[t]})}})(),function(){Nr.o=function(i,d){return Object.prototype.hasOwnProperty.call(i,d)}}(),Nr(61969);var ae=Nr(72611);return ae=ae.default,ae}()}); diff --git a/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-textoverlap.pkgd.js b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-textoverlap.pkgd.js new file mode 100644 index 000000000..ac20eb0c5 --- /dev/null +++ b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-textoverlap.pkgd.js @@ -0,0 +1,26640 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("bb", [], factory); + else if(typeof exports === 'object') + exports["bb"] = factory(); + else + root["bb"] = root["bb"] || {}, root["bb"]["plugin"] = root["bb"]["plugin"] || {}, root["bb"]["plugin"]["textoverlap.pkgd"] = factory(); +})(this, function() { +return /******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +__webpack_require__(1); +__webpack_require__(97); +__webpack_require__(98); +__webpack_require__(99); +__webpack_require__(100); +__webpack_require__(101); +__webpack_require__(102); +__webpack_require__(103); +__webpack_require__(104); +__webpack_require__(105); +__webpack_require__(106); +__webpack_require__(107); +__webpack_require__(108); +__webpack_require__(109); +__webpack_require__(110); +__webpack_require__(111); +__webpack_require__(124); +__webpack_require__(126); +__webpack_require__(136); +__webpack_require__(137); +__webpack_require__(139); +__webpack_require__(143); +__webpack_require__(146); +__webpack_require__(148); +__webpack_require__(150); +__webpack_require__(151); +__webpack_require__(152); +__webpack_require__(153); +__webpack_require__(155); +__webpack_require__(156); +__webpack_require__(158); +__webpack_require__(159); +__webpack_require__(161); +__webpack_require__(165); +__webpack_require__(166); +__webpack_require__(167); +__webpack_require__(168); +__webpack_require__(173); +__webpack_require__(174); +__webpack_require__(176); +__webpack_require__(177); +__webpack_require__(178); +__webpack_require__(180); +__webpack_require__(183); +__webpack_require__(184); +__webpack_require__(185); +__webpack_require__(186); +__webpack_require__(187); +__webpack_require__(192); +__webpack_require__(194); +__webpack_require__(195); +__webpack_require__(197); +__webpack_require__(200); +__webpack_require__(201); +__webpack_require__(202); +__webpack_require__(203); +__webpack_require__(204); +__webpack_require__(206); +__webpack_require__(216); +__webpack_require__(218); +__webpack_require__(221); +__webpack_require__(223); +__webpack_require__(226); +__webpack_require__(233); +__webpack_require__(234); +__webpack_require__(235); +__webpack_require__(236); +__webpack_require__(237); +__webpack_require__(238); +__webpack_require__(242); +__webpack_require__(243); +__webpack_require__(245); +__webpack_require__(246); +__webpack_require__(247); +__webpack_require__(249); +__webpack_require__(250); +__webpack_require__(251); +__webpack_require__(93); +__webpack_require__(252); +__webpack_require__(253); +__webpack_require__(261); +__webpack_require__(263); +__webpack_require__(265); +__webpack_require__(266); +__webpack_require__(267); +__webpack_require__(268); +__webpack_require__(269); +__webpack_require__(271); +__webpack_require__(272); +__webpack_require__(273); +__webpack_require__(274); +__webpack_require__(275); +__webpack_require__(277); +__webpack_require__(278); +__webpack_require__(279); +__webpack_require__(280); +__webpack_require__(281); +__webpack_require__(282); +__webpack_require__(283); +__webpack_require__(284); +__webpack_require__(288); +__webpack_require__(289); +__webpack_require__(291); +__webpack_require__(293); +__webpack_require__(294); +__webpack_require__(295); +__webpack_require__(296); +__webpack_require__(297); +__webpack_require__(299); +__webpack_require__(301); +__webpack_require__(302); +__webpack_require__(303); +__webpack_require__(304); +__webpack_require__(306); +__webpack_require__(307); +__webpack_require__(309); +__webpack_require__(310); +__webpack_require__(311); +__webpack_require__(312); +__webpack_require__(314); +__webpack_require__(315); +__webpack_require__(316); +__webpack_require__(317); +__webpack_require__(318); +__webpack_require__(319); +__webpack_require__(320); +__webpack_require__(321); +__webpack_require__(322); +__webpack_require__(324); +__webpack_require__(325); +__webpack_require__(326); +__webpack_require__(327); +__webpack_require__(328); +__webpack_require__(329); +__webpack_require__(330); +__webpack_require__(331); +__webpack_require__(332); +__webpack_require__(333); +__webpack_require__(334); +__webpack_require__(336); +__webpack_require__(337); +__webpack_require__(338); +__webpack_require__(339); +__webpack_require__(361); +__webpack_require__(362); +__webpack_require__(363); +__webpack_require__(364); +__webpack_require__(365); +__webpack_require__(366); +__webpack_require__(367); +__webpack_require__(368); +__webpack_require__(369); +__webpack_require__(371); +__webpack_require__(372); +__webpack_require__(373); +__webpack_require__(374); +__webpack_require__(375); +__webpack_require__(376); +__webpack_require__(377); +__webpack_require__(378); +__webpack_require__(379); +__webpack_require__(380); +__webpack_require__(387); +__webpack_require__(388); +__webpack_require__(390); +__webpack_require__(391); +__webpack_require__(392); +__webpack_require__(393); +__webpack_require__(394); +__webpack_require__(396); +__webpack_require__(407); +__webpack_require__(409); +__webpack_require__(411); +__webpack_require__(413); +__webpack_require__(415); +__webpack_require__(417); +__webpack_require__(419); +__webpack_require__(420); +__webpack_require__(422); +__webpack_require__(425); +__webpack_require__(426); +__webpack_require__(427); +__webpack_require__(428); +__webpack_require__(429); +__webpack_require__(433); +__webpack_require__(434); +__webpack_require__(436); +__webpack_require__(437); +__webpack_require__(438); +__webpack_require__(439); +__webpack_require__(441); +__webpack_require__(442); +__webpack_require__(443); +__webpack_require__(444); +__webpack_require__(445); +__webpack_require__(446); +__webpack_require__(447); +__webpack_require__(449); +__webpack_require__(452); +__webpack_require__(455); +__webpack_require__(458); +__webpack_require__(459); +__webpack_require__(460); +__webpack_require__(461); +__webpack_require__(462); +__webpack_require__(463); +__webpack_require__(464); +__webpack_require__(465); +__webpack_require__(466); +__webpack_require__(467); +__webpack_require__(468); +__webpack_require__(469); +__webpack_require__(470); +__webpack_require__(479); +__webpack_require__(480); +__webpack_require__(481); +__webpack_require__(482); +__webpack_require__(483); +__webpack_require__(484); +__webpack_require__(485); +__webpack_require__(486); +__webpack_require__(487); +__webpack_require__(488); +__webpack_require__(489); +__webpack_require__(490); +__webpack_require__(491); +__webpack_require__(494); +__webpack_require__(495); +__webpack_require__(496); +__webpack_require__(497); +__webpack_require__(498); +__webpack_require__(499); +__webpack_require__(500); +__webpack_require__(501); +__webpack_require__(502); +__webpack_require__(503); +__webpack_require__(504); +__webpack_require__(505); +__webpack_require__(506); +__webpack_require__(507); +__webpack_require__(508); +__webpack_require__(509); +__webpack_require__(510); +__webpack_require__(511); +__webpack_require__(512); +__webpack_require__(513); +__webpack_require__(514); +__webpack_require__(515); +__webpack_require__(516); +__webpack_require__(517); +__webpack_require__(518); +__webpack_require__(519); +__webpack_require__(520); +__webpack_require__(521); +__webpack_require__(524); +__webpack_require__(526); +__webpack_require__(528); +__webpack_require__(529); +__webpack_require__(532); +__webpack_require__(533); +__webpack_require__(535); +__webpack_require__(536); +__webpack_require__(537); +__webpack_require__(542); +__webpack_require__(543); +__webpack_require__(544); +__webpack_require__(545); +__webpack_require__(548); +__webpack_require__(553); +__webpack_require__(554); +__webpack_require__(555); +__webpack_require__(556); +__webpack_require__(557); +__webpack_require__(558); +__webpack_require__(559); + +/* unused reexport */ __webpack_require__(80); + + +/***/ }), +/* 1 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(2); +__webpack_require__(90); +__webpack_require__(92); +__webpack_require__(93); +__webpack_require__(96); + + +/***/ }), +/* 2 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var $toString = __webpack_require__(68); +var createPropertyDescriptor = __webpack_require__(11); +var nativeObjectCreate = __webpack_require__(71); +var objectKeys = __webpack_require__(73); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternal = __webpack_require__(75); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); +var definePropertiesModule = __webpack_require__(72); +var propertyIsEnumerableModule = __webpack_require__(10); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var shared = __webpack_require__(34); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); +var uid = __webpack_require__(40); +var wellKnownSymbol = __webpack_require__(33); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); +var $forEach = (__webpack_require__(83).forEach); + +var HIDDEN = sharedKey('hidden'); +var SYMBOL = 'Symbol'; +var PROTOTYPE = 'prototype'; + +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(SYMBOL); + +var ObjectPrototype = Object[PROTOTYPE]; +var $Symbol = global.Symbol; +var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; +var RangeError = global.RangeError; +var TypeError = global.TypeError; +var QObject = global.QObject; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; +var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; +var push = uncurryThis([].push); + +var AllSymbols = shared('symbols'); +var ObjectPrototypeSymbols = shared('op-symbols'); +var WellKnownSymbolsStore = shared('wks'); + +// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 +var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var fallbackDefineProperty = function (O, P, Attributes) { + var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); + if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; + nativeDefineProperty(O, P, Attributes); + if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { + nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); + } +}; + +var setSymbolDescriptor = DESCRIPTORS && fails(function () { + return nativeObjectCreate(nativeDefineProperty({}, 'a', { + get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } + })).a !== 7; +}) ? fallbackDefineProperty : nativeDefineProperty; + +var wrap = function (tag, description) { + var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype); + setInternalState(symbol, { + type: SYMBOL, + tag: tag, + description: description + }); + if (!DESCRIPTORS) symbol.description = description; + return symbol; +}; + +var $defineProperty = function defineProperty(O, P, Attributes) { + if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); + anObject(O); + var key = toPropertyKey(P); + anObject(Attributes); + if (hasOwn(AllSymbols, key)) { + if (!Attributes.enumerable) { + if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null))); + O[HIDDEN][key] = true; + } else { + if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; + Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); + } return setSymbolDescriptor(O, key, Attributes); + } return nativeDefineProperty(O, key, Attributes); +}; + +var $defineProperties = function defineProperties(O, Properties) { + anObject(O); + var properties = toIndexedObject(Properties); + var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); + $forEach(keys, function (key) { + if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); + }); + return O; +}; + +var $create = function create(O, Properties) { + return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); +}; + +var $propertyIsEnumerable = function propertyIsEnumerable(V) { + var P = toPropertyKey(V); + var enumerable = call(nativePropertyIsEnumerable, this, P); + if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false; + return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P] + ? enumerable : true; +}; + +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { + var it = toIndexedObject(O); + var key = toPropertyKey(P); + if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return; + var descriptor = nativeGetOwnPropertyDescriptor(it, key); + if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) { + descriptor.enumerable = true; + } + return descriptor; +}; + +var $getOwnPropertyNames = function getOwnPropertyNames(O) { + var names = nativeGetOwnPropertyNames(toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key); + }); + return result; +}; + +var $getOwnPropertySymbols = function (O) { + var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; + var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) { + push(result, AllSymbols[key]); + } + }); + return result; +}; + +// `Symbol` constructor +// https://tc39.es/ecma262/#sec-symbol-constructor +if (!NATIVE_SYMBOL) { + $Symbol = function Symbol() { + if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor'); + var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]); + var tag = uid(description); + var setter = function (value) { + var $this = this === undefined ? global : this; + if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value); + if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false; + var descriptor = createPropertyDescriptor(1, value); + try { + setSymbolDescriptor($this, tag, descriptor); + } catch (error) { + if (!(error instanceof RangeError)) throw error; + fallbackDefineProperty($this, tag, descriptor); + } + }; + if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); + return wrap(tag, description); + }; + + SymbolPrototype = $Symbol[PROTOTYPE]; + + defineBuiltIn(SymbolPrototype, 'toString', function toString() { + return getInternalState(this).tag; + }); + + defineBuiltIn($Symbol, 'withoutSetter', function (description) { + return wrap(uid(description), description); + }); + + propertyIsEnumerableModule.f = $propertyIsEnumerable; + definePropertyModule.f = $defineProperty; + definePropertiesModule.f = $defineProperties; + getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; + getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; + getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; + + wrappedWellKnownSymbolModule.f = function (name) { + return wrap(wellKnownSymbol(name), name); + }; + + if (DESCRIPTORS) { + // https://github.com/tc39/proposal-Symbol-description + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + return getInternalState(this).description; + } + }); + if (!IS_PURE) { + defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { + Symbol: $Symbol +}); + +$forEach(objectKeys(WellKnownSymbolsStore), function (name) { + defineWellKnownSymbol(name); +}); + +$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { + useSetter: function () { USE_SETTER = true; }, + useSimple: function () { USE_SETTER = false; } +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, { + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + create: $create, + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + defineProperty: $defineProperty, + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + defineProperties: $defineProperties, + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors + getOwnPropertyDescriptor: $getOwnPropertyDescriptor +}); + +$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + getOwnPropertyNames: $getOwnPropertyNames +}); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag($Symbol, SYMBOL); + +hiddenKeys[HIDDEN] = true; + + +/***/ }), +/* 3 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineGlobalProperty = __webpack_require__(37); +var copyConstructorProperties = __webpack_require__(55); +var isForced = __webpack_require__(67); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global[TARGET] && global[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn(target, key, sourceProperty, options); + } +}; + + +/***/ }), +/* 4 */ +/***/ (function(module) { + + +var check = function (it) { + return it && it.Math === Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + check(typeof this == 'object' && this) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + +/***/ }), +/* 5 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var call = __webpack_require__(8); +var propertyIsEnumerableModule = __webpack_require__(10); +var createPropertyDescriptor = __webpack_require__(11); +var toIndexedObject = __webpack_require__(12); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var IE8_DOM_DEFINE = __webpack_require__(41); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); +}; + + +/***/ }), +/* 6 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; +}); + + +/***/ }), +/* 7 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var call = Function.prototype.call; + +module.exports = NATIVE_BIND ? call.bind(call) : function () { + return call.apply(call, arguments); +}; + + +/***/ }), +/* 9 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + + +/***/ }), +/* 10 */ +/***/ (function(__unused_webpack_module, exports) { + + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + + +/***/ }), +/* 11 */ +/***/ (function(module) { + + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), +/* 12 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = __webpack_require__(13); +var requireObjectCoercible = __webpack_require__(16); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + + +/***/ }), +/* 13 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var classof = __webpack_require__(15); + +var $Object = Object; +var split = uncurryThis(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) === 'String' ? split(it, '') : $Object(it); +} : $Object; + + +/***/ }), +/* 14 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var call = FunctionPrototype.call; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); + +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + + +/***/ }), +/* 15 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var toString = uncurryThis({}.toString); +var stringSlice = uncurryThis(''.slice); + +module.exports = function (it) { + return stringSlice(toString(it), 8, -1); +}; + + +/***/ }), +/* 16 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isNullOrUndefined = __webpack_require__(17); + +var $TypeError = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), +/* 17 */ +/***/ (function(module) { + + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +module.exports = function (it) { + return it === null || it === undefined; +}; + + +/***/ }), +/* 18 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); +var isSymbol = __webpack_require__(22); + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +module.exports = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + + +/***/ }), +/* 19 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var getMethod = __webpack_require__(29); +var ordinaryToPrimitive = __webpack_require__(32); +var wellKnownSymbol = __webpack_require__(33); + +var $TypeError = TypeError; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +module.exports = function (input, pref) { + if (!isObject(input) || isSymbol(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) return result; + throw new $TypeError("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + + +/***/ }), +/* 20 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); + +module.exports = function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); +}; + + +/***/ }), +/* 21 */ +/***/ (function(module) { + + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +var documentAll = typeof document == 'object' && document.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; +} : function (argument) { + return typeof argument == 'function'; +}; + + +/***/ }), +/* 22 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var $Object = Object; + +module.exports = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); +}; + + +/***/ }), +/* 23 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; +}; + + +/***/ }), +/* 24 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis({}.isPrototypeOf); + + +/***/ }), +/* 25 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var NATIVE_SYMBOL = __webpack_require__(26); + +module.exports = NATIVE_SYMBOL + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + +/***/ }), +/* 26 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-symbol -- required for testing */ +var V8_VERSION = __webpack_require__(27); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +var $String = global.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); + + +/***/ }), +/* 27 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var userAgent = __webpack_require__(28); + +var process = global.process; +var Deno = global.Deno; +var versions = process && process.versions || Deno && Deno.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +module.exports = version; + + +/***/ }), +/* 28 */ +/***/ (function(module) { + + +module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + +/***/ }), +/* 29 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var isNullOrUndefined = __webpack_require__(17); + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +module.exports = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable(func); +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsCallable(argument) is true` +module.exports = function (argument) { + if (isCallable(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a function'); +}; + + +/***/ }), +/* 31 */ +/***/ (function(module) { + + +var $String = String; + +module.exports = function (argument) { + try { + return $String(argument); + } catch (error) { + return 'Object'; + } +}; + + +/***/ }), +/* 32 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); + +var $TypeError = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +module.exports = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + throw new $TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), +/* 33 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var shared = __webpack_require__(34); +var hasOwn = __webpack_require__(38); +var uid = __webpack_require__(40); +var NATIVE_SYMBOL = __webpack_require__(26); +var USE_SYMBOL_AS_UID = __webpack_require__(25); + +var Symbol = global.Symbol; +var WellKnownSymbolsStore = shared('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!hasOwn(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) + ? Symbol[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + + +/***/ }), +/* 34 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var store = __webpack_require__(35); + +module.exports = function (key, value) { + return store[key] || (store[key] = value || {}); +}; + + +/***/ }), +/* 35 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var globalThis = __webpack_require__(4); +var defineGlobalProperty = __webpack_require__(37); + +var SHARED = '__core-js_shared__'; +var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {}); + +(store.versions || (store.versions = [])).push({ + version: '3.37.1', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + + +/***/ }), +/* 36 */ +/***/ (function(module) { + + +module.exports = false; + + +/***/ }), +/* 37 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(global, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global[key] = value; + } return value; +}; + + +/***/ }), +/* 38 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var hasOwnProperty = uncurryThis({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +module.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); +}; + + +/***/ }), +/* 39 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var requireObjectCoercible = __webpack_require__(16); + +var $Object = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return $Object(requireObjectCoercible(argument)); +}; + + +/***/ }), +/* 40 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var id = 0; +var postfix = Math.random(); +var toString = uncurryThis(1.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + + +/***/ }), +/* 41 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var createElement = __webpack_require__(42); + +// Thanks to IE8 for its funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; +}); + + +/***/ }), +/* 42 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); + +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + + +/***/ }), +/* 43 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), +/* 44 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var IE8_DOM_DEFINE = __webpack_require__(41); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), +/* 45 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +module.exports = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; +}); + + +/***/ }), +/* 46 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var $String = String; +var $TypeError = TypeError; + +// `Assert: Type(argument) is Object` +module.exports = function (argument) { + if (isObject(argument)) return argument; + throw new $TypeError($String(argument) + ' is not an object'); +}; + + +/***/ }), +/* 47 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var definePropertyModule = __webpack_require__(44); +var makeBuiltIn = __webpack_require__(48); +var defineGlobalProperty = __webpack_require__(37); + +module.exports = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + + +/***/ }), +/* 48 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var DESCRIPTORS = __webpack_require__(6); +var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(49).CONFIGURABLE); +var inspectSource = __webpack_require__(50); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var $String = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var stringSlice = uncurryThis(''.slice); +var replace = uncurryThis(''.replace); +var join = uncurryThis([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { + return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn = module.exports = function (value, name, options) { + if (stringSlice($String(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { + defineProperty(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn(options, 'constructor') && options.constructor) { + if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn(function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); +}, 'toString'); + + +/***/ }), +/* 49 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var hasOwn = __webpack_require__(38); + +var FunctionPrototype = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn(FunctionPrototype, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); + +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + + +/***/ }), +/* 50 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isCallable = __webpack_require__(21); +var store = __webpack_require__(35); + +var functionToString = uncurryThis(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; +} + +module.exports = store.inspectSource; + + +/***/ }), +/* 51 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_WEAK_MAP = __webpack_require__(52); +var global = __webpack_require__(4); +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); +var hasOwn = __webpack_require__(38); +var shared = __webpack_require__(35); +var sharedKey = __webpack_require__(53); +var hiddenKeys = __webpack_require__(54); + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError = global.TypeError; +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw new TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), +/* 52 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); + +var WeakMap = global.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); + + +/***/ }), +/* 53 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var shared = __webpack_require__(34); +var uid = __webpack_require__(40); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + + +/***/ }), +/* 54 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 55 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var ownKeys = __webpack_require__(56); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var definePropertyModule = __webpack_require__(44); + +module.exports = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + + +/***/ }), +/* 56 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var anObject = __webpack_require__(46); + +var concat = uncurryThis([].concat); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), +/* 57 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), +/* 58 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var toIndexedObject = __webpack_require__(12); +var indexOf = (__webpack_require__(59).indexOf); +var hiddenKeys = __webpack_require__(54); + +var push = uncurryThis([].push); + +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + + +/***/ }), +/* 59 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), +/* 60 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), +/* 61 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var trunc = __webpack_require__(62); + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +module.exports = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + + +/***/ }), +/* 62 */ +/***/ (function(module) { + + +var ceil = Math.ceil; +var floor = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +module.exports = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + + +/***/ }), +/* 63 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toLength = __webpack_require__(64); + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +module.exports = function (obj) { + return toLength(obj.length); +}; + + +/***/ }), +/* 64 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), +/* 65 */ +/***/ (function(module) { + + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), +/* 66 */ +/***/ (function(__unused_webpack_module, exports) { + + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 67 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable(detection) ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + + +/***/ }), +/* 68 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +var $String = String; + +module.exports = function (argument) { + if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + + +/***/ }), +/* 69 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var isCallable = __webpack_require__(21); +var classofRaw = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Object = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result; +}; + + +/***/ }), +/* 70 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + + +/***/ }), +/* 71 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* global ActiveXObject -- old IE, WSH */ +var anObject = __webpack_require__(46); +var definePropertiesModule = __webpack_require__(72); +var enumBugKeys = __webpack_require__(65); +var hiddenKeys = __webpack_require__(54); +var html = __webpack_require__(74); +var documentCreateElement = __webpack_require__(42); +var sharedKey = __webpack_require__(53); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + + +/***/ }), +/* 72 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(45); +var definePropertyModule = __webpack_require__(44); +var anObject = __webpack_require__(46); +var toIndexedObject = __webpack_require__(12); +var objectKeys = __webpack_require__(73); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var props = toIndexedObject(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + + +/***/ }), +/* 73 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var internalObjectKeys = __webpack_require__(58); +var enumBugKeys = __webpack_require__(65); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + + +/***/ }), +/* 74 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), +/* 75 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-object-getownpropertynames -- safe */ +var classof = __webpack_require__(15); +var toIndexedObject = __webpack_require__(12); +var $getOwnPropertyNames = (__webpack_require__(57).f); +var arraySlice = __webpack_require__(76); + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } +}; + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && classof(it) === 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames(toIndexedObject(it)); +}; + + +/***/ }), +/* 76 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +module.exports = uncurryThis([].slice); + + +/***/ }), +/* 77 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var makeBuiltIn = __webpack_require__(48); +var defineProperty = __webpack_require__(44); + +module.exports = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty.f(target, name, descriptor); +}; + + +/***/ }), +/* 78 */ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +exports.f = wellKnownSymbol; + + +/***/ }), +/* 79 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var path = __webpack_require__(80); +var hasOwn = __webpack_require__(38); +var wrappedWellKnownSymbolModule = __webpack_require__(78); +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (NAME) { + var Symbol = path.Symbol || (path.Symbol = {}); + if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, { + value: wrappedWellKnownSymbolModule.f(NAME) + }); +}; + + +/***/ }), +/* 80 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global; + + +/***/ }), +/* 81 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var getBuiltIn = __webpack_require__(23); +var wellKnownSymbol = __webpack_require__(33); +var defineBuiltIn = __webpack_require__(47); + +module.exports = function () { + var Symbol = getBuiltIn('Symbol'); + var SymbolPrototype = Symbol && Symbol.prototype; + var valueOf = SymbolPrototype && SymbolPrototype.valueOf; + var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + + if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) { + // `Symbol.prototype[@@toPrimitive]` method + // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive + // eslint-disable-next-line no-unused-vars -- required for .length + defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) { + return call(valueOf, this); + }, { arity: 1 }); + } +}; + + +/***/ }), +/* 82 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +module.exports = function (target, TAG, STATIC) { + if (target && !STATIC) target = target.prototype; + if (target && !hasOwn(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } +}; + + +/***/ }), +/* 83 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +var push = uncurryThis([].push); + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var length = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push(target, value); // filterReject + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; +}; + +module.exports = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod(7) +}; + + +/***/ }), +/* 84 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(85); +var aCallable = __webpack_require__(30); +var NATIVE_BIND = __webpack_require__(9); + +var bind = uncurryThis(uncurryThis.bind); + +// optional / simple context binding +module.exports = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), +/* 85 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classofRaw = __webpack_require__(15); +var uncurryThis = __webpack_require__(14); + +module.exports = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis(fn); +}; + + +/***/ }), +/* 86 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySpeciesConstructor = __webpack_require__(87); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); +}; + + +/***/ }), +/* 87 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; + +// a part of `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array : C; +}; + + +/***/ }), +/* 88 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(15); + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +module.exports = Array.isArray || function isArray(argument) { + return classof(argument) === 'Array'; +}; + + +/***/ }), +/* 89 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(69); +var getBuiltIn = __webpack_require__(23); +var inspectSource = __webpack_require__(50); + +var noop = function () { /* empty */ }; +var construct = getBuiltIn('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.test(noop); + +var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } +}; + +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) return false; + switch (classof(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } +}; + +isConstructorLegacy.sham = true; + +// `IsConstructor` abstract operation +// https://tc39.es/ecma262/#sec-isconstructor +module.exports = !construct || fails(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; +}) ? isConstructorLegacy : isConstructorModern; + + +/***/ }), +/* 90 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var toString = __webpack_require__(68); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var StringToSymbolRegistry = shared('string-to-symbol-registry'); +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.for` method +// https://tc39.es/ecma262/#sec-symbol.for +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + 'for': function (key) { + var string = toString(key); + if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; + var symbol = getBuiltIn('Symbol')(string); + StringToSymbolRegistry[string] = symbol; + SymbolToStringRegistry[symbol] = string; + return symbol; + } +}); + + +/***/ }), +/* 91 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_SYMBOL = __webpack_require__(26); + +/* eslint-disable es/no-symbol -- safe */ +module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor; + + +/***/ }), +/* 92 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); +var isSymbol = __webpack_require__(22); +var tryToString = __webpack_require__(31); +var shared = __webpack_require__(34); +var NATIVE_SYMBOL_REGISTRY = __webpack_require__(91); + +var SymbolToStringRegistry = shared('symbol-to-string-registry'); + +// `Symbol.keyFor` method +// https://tc39.es/ecma262/#sec-symbol.keyfor +$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol'); + if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; + } +}); + + +/***/ }), +/* 93 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isSymbol = __webpack_require__(22); +var arraySlice = __webpack_require__(76); +var getReplacerFunction = __webpack_require__(95); +var NATIVE_SYMBOL = __webpack_require__(26); + +var $String = String; +var $stringify = getBuiltIn('JSON', 'stringify'); +var exec = uncurryThis(/./.exec); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var replace = uncurryThis(''.replace); +var numberToString = uncurryThis(1.0.toString); + +var tester = /[\uD800-\uDFFF]/g; +var low = /^[\uD800-\uDBFF]$/; +var hi = /^[\uDC00-\uDFFF]$/; + +var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () { + var symbol = getBuiltIn('Symbol')('stringify detection'); + // MS Edge converts symbol values to JSON as {} + return $stringify([symbol]) !== '[null]' + // WebKit converts symbol values to JSON as null + || $stringify({ a: symbol }) !== '{}' + // V8 throws on boxed symbols + || $stringify(Object(symbol)) !== '{}'; +}); + +// https://github.com/tc39/proposal-well-formed-stringify +var ILL_FORMED_UNICODE = fails(function () { + return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' + || $stringify('\uDEAD') !== '"\\udead"'; +}); + +var stringifyWithSymbolsFix = function (it, replacer) { + var args = arraySlice(arguments); + var $replacer = getReplacerFunction(replacer); + if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined + args[1] = function (key, value) { + // some old implementations (like WebKit) could pass numbers as keys + if (isCallable($replacer)) value = call($replacer, this, $String(key), value); + if (!isSymbol(value)) return value; + }; + return apply($stringify, null, args); +}; + +var fixIllFormed = function (match, offset, string) { + var prev = charAt(string, offset - 1); + var next = charAt(string, offset + 1); + if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) { + return '\\u' + numberToString(charCodeAt(match, 0), 16); + } return match; +}; + +if ($stringify) { + // `JSON.stringify` method + // https://tc39.es/ecma262/#sec-json.stringify + $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + stringify: function stringify(it, replacer, space) { + var args = arraySlice(arguments); + var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args); + return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result; + } + }); +} + + +/***/ }), +/* 94 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_BIND = __webpack_require__(9); + +var FunctionPrototype = Function.prototype; +var apply = FunctionPrototype.apply; +var call = FunctionPrototype.call; + +// eslint-disable-next-line es/no-reflect -- safe +module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () { + return call.apply(apply, arguments); +}); + + +/***/ }), +/* 95 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var toString = __webpack_require__(68); + +var push = uncurryThis([].push); + +module.exports = function (replacer) { + if (isCallable(replacer)) return replacer; + if (!isArray(replacer)) return; + var rawLength = replacer.length; + var keys = []; + for (var i = 0; i < rawLength; i++) { + var element = replacer[i]; + if (typeof element == 'string') push(keys, element); + else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element)); + } + var keysLength = keys.length; + var root = true; + return function (key, value) { + if (root) { + root = false; + return value; + } + if (isArray(this)) return value; + for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value; + }; +}; + + +/***/ }), +/* 96 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var NATIVE_SYMBOL = __webpack_require__(26); +var fails = __webpack_require__(7); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var toObject = __webpack_require__(39); + +// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives +// https://bugs.chromium.org/p/v8/issues/detail?id=3443 +var FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); }); + +// `Object.getOwnPropertySymbols` method +// https://tc39.es/ecma262/#sec-object.getownpropertysymbols +$({ target: 'Object', stat: true, forced: FORCED }, { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : []; + } +}); + + +/***/ }), +/* 97 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +// `Symbol.prototype.description` getter +// https://tc39.es/ecma262/#sec-symbol.prototype.description + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var isPrototypeOf = __webpack_require__(24); +var toString = __webpack_require__(68); +var defineBuiltInAccessor = __webpack_require__(77); +var copyConstructorProperties = __webpack_require__(55); + +var NativeSymbol = global.Symbol; +var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; + +if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || + // Safari 12 bug + NativeSymbol().description !== undefined +)) { + var EmptyStringDescriptionStore = {}; + // wrap Symbol constructor for correct work with undefined description + var SymbolWrapper = function Symbol() { + var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]); + var result = isPrototypeOf(SymbolPrototype, this) + ? new NativeSymbol(description) + // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' + : description === undefined ? NativeSymbol() : NativeSymbol(description); + if (description === '') EmptyStringDescriptionStore[result] = true; + return result; + }; + + copyConstructorProperties(SymbolWrapper, NativeSymbol); + SymbolWrapper.prototype = SymbolPrototype; + SymbolPrototype.constructor = SymbolWrapper; + + var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)'; + var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf); + var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString); + var regexp = /^Symbol\((.*)\)[^)]+$/; + var replace = uncurryThis(''.replace); + var stringSlice = uncurryThis(''.slice); + + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + var symbol = thisSymbolValue(this); + if (hasOwn(EmptyStringDescriptionStore, symbol)) return ''; + var string = symbolDescriptiveString(symbol); + var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1'); + return desc === '' ? undefined : desc; + } + }); + + $({ global: true, constructor: true, forced: true }, { + Symbol: SymbolWrapper + }); +} + + +/***/ }), +/* 98 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.asyncIterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.asynciterator +defineWellKnownSymbol('asyncIterator'); + + +/***/ }), +/* 99 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.hasInstance` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.hasinstance +defineWellKnownSymbol('hasInstance'); + + +/***/ }), +/* 100 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.isConcatSpreadable` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable +defineWellKnownSymbol('isConcatSpreadable'); + + +/***/ }), +/* 101 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.iterator` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.iterator +defineWellKnownSymbol('iterator'); + + +/***/ }), +/* 102 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.match` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.match +defineWellKnownSymbol('match'); + + +/***/ }), +/* 103 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.matchAll` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.matchall +defineWellKnownSymbol('matchAll'); + + +/***/ }), +/* 104 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.replace` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.replace +defineWellKnownSymbol('replace'); + + +/***/ }), +/* 105 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.search` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.search +defineWellKnownSymbol('search'); + + +/***/ }), +/* 106 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.species` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.species +defineWellKnownSymbol('species'); + + +/***/ }), +/* 107 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.split` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.split +defineWellKnownSymbol('split'); + + +/***/ }), +/* 108 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); +var defineSymbolToPrimitive = __webpack_require__(81); + +// `Symbol.toPrimitive` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.toprimitive +defineWellKnownSymbol('toPrimitive'); + +// `Symbol.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive +defineSymbolToPrimitive(); + + +/***/ }), +/* 109 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineWellKnownSymbol = __webpack_require__(79); +var setToStringTag = __webpack_require__(82); + +// `Symbol.toStringTag` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.tostringtag +defineWellKnownSymbol('toStringTag'); + +// `Symbol.prototype[@@toStringTag]` property +// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag +setToStringTag(getBuiltIn('Symbol'), 'Symbol'); + + +/***/ }), +/* 110 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineWellKnownSymbol = __webpack_require__(79); + +// `Symbol.unscopables` well-known symbol +// https://tc39.es/ecma262/#sec-symbol.unscopables +defineWellKnownSymbol('unscopables'); + + +/***/ }), +/* 111 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-unused-vars -- required for functions `.length` */ +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var WEB_ASSEMBLY = 'WebAssembly'; +var WebAssembly = global[WEB_ASSEMBLY]; + +// eslint-disable-next-line es/no-error-cause -- feature detection +var FORCED = new Error('e', { cause: 7 }).cause !== 7; + +var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED); + $({ global: true, constructor: true, arity: 1, forced: FORCED }, O); +}; + +var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) { + if (WebAssembly && WebAssembly[ERROR_NAME]) { + var O = {}; + O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED); + $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O); + } +}; + +// https://tc39.es/ecma262/#sec-nativeerror +exportGlobalErrorCauseWrapper('Error', function (init) { + return function Error(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('EvalError', function (init) { + return function EvalError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('RangeError', function (init) { + return function RangeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('ReferenceError', function (init) { + return function ReferenceError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('SyntaxError', function (init) { + return function SyntaxError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('TypeError', function (init) { + return function TypeError(message) { return apply(init, this, arguments); }; +}); +exportGlobalErrorCauseWrapper('URIError', function (init) { + return function URIError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('CompileError', function (init) { + return function CompileError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('LinkError', function (init) { + return function LinkError(message) { return apply(init, this, arguments); }; +}); +exportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) { + return function RuntimeError(message) { return apply(init, this, arguments); }; +}); + + +/***/ }), +/* 112 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var hasOwn = __webpack_require__(38); +var createNonEnumerableProperty = __webpack_require__(43); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var proxyAccessor = __webpack_require__(117); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +module.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) { + var STACK_TRACE_LIMIT = 'stackTraceLimit'; + var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1; + var path = FULL_NAME.split('.'); + var ERROR_NAME = path[path.length - 1]; + var OriginalError = getBuiltIn.apply(null, path); + + if (!OriginalError) return; + + var OriginalErrorPrototype = OriginalError.prototype; + + // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006 + if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause; + + if (!FORCED) return OriginalError; + + var BaseError = getBuiltIn('Error'); + + var WrappedError = wrapper(function (a, b) { + var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined); + var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError(); + if (message !== undefined) createNonEnumerableProperty(result, 'message', message); + installErrorStack(result, WrappedError, result.stack, 2); + if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError); + if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]); + return result; + }); + + WrappedError.prototype = OriginalErrorPrototype; + + if (ERROR_NAME !== 'Error') { + if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError); + else copyConstructorProperties(WrappedError, BaseError, { name: true }); + } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) { + proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT); + proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace'); + } + + copyConstructorProperties(WrappedError, OriginalError); + + if (!IS_PURE) try { + // Safari 13- bug: WebAssembly errors does not have a proper `.name` + if (OriginalErrorPrototype.name !== ERROR_NAME) { + createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME); + } + OriginalErrorPrototype.constructor = WrappedError; + } catch (error) { /* empty */ } + + return WrappedError; +}; + + +/***/ }), +/* 113 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-proto -- safe */ +var uncurryThisAccessor = __webpack_require__(114); +var isObject = __webpack_require__(20); +var requireObjectCoercible = __webpack_require__(16); +var aPossiblePrototype = __webpack_require__(115); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + requireObjectCoercible(O); + aPossiblePrototype(proto); + if (!isObject(O)) return O; + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + + +/***/ }), +/* 114 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); + +module.exports = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 115 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPossiblePrototype = __webpack_require__(116); + +var $String = String; +var $TypeError = TypeError; + +module.exports = function (argument) { + if (isPossiblePrototype(argument)) return argument; + throw new $TypeError("Can't set " + $String(argument) + ' as a prototype'); +}; + + +/***/ }), +/* 116 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +module.exports = function (argument) { + return isObject(argument) || argument === null; +}; + + +/***/ }), +/* 117 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineProperty = (__webpack_require__(44).f); + +module.exports = function (Target, Source, key) { + key in Target || defineProperty(Target, key, { + configurable: true, + get: function () { return Source[key]; }, + set: function (it) { Source[key] = it; } + }); +}; + + +/***/ }), +/* 118 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var setPrototypeOf = __webpack_require__(113); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), +/* 119 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toString = __webpack_require__(68); + +module.exports = function (argument, $default) { + return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument); +}; + + +/***/ }), +/* 120 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var createNonEnumerableProperty = __webpack_require__(43); + +// `InstallErrorCause` abstract operation +// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause +module.exports = function (O, options) { + if (isObject(options) && 'cause' in options) { + createNonEnumerableProperty(O, 'cause', options.cause); + } +}; + + +/***/ }), +/* 121 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var createNonEnumerableProperty = __webpack_require__(43); +var clearErrorStack = __webpack_require__(122); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); + +// non-standard V8 +var captureStackTrace = Error.captureStackTrace; + +module.exports = function (error, C, stack, dropEntries) { + if (ERROR_STACK_INSTALLABLE) { + if (captureStackTrace) captureStackTrace(error, C); + else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries)); + } +}; + + +/***/ }), +/* 122 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +var $Error = Error; +var replace = uncurryThis(''.replace); + +var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd'); +// eslint-disable-next-line redos/no-vulnerable -- safe +var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; +var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); + +module.exports = function (stack, dropEntries) { + if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) { + while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); + } return stack; +}; + + +/***/ }), +/* 123 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = !fails(function () { + var error = new Error('a'); + if (!('stack' in error)) return true; + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); + return error.stack !== 7; +}); + + +/***/ }), +/* 124 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var errorToString = __webpack_require__(125); + +var ErrorPrototype = Error.prototype; + +// `Error.prototype.toString` method fix +// https://tc39.es/ecma262/#sec-error.prototype.tostring +if (ErrorPrototype.toString !== errorToString) { + defineBuiltIn(ErrorPrototype, 'toString', errorToString); +} + + +/***/ }), +/* 125 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var normalizeStringArgument = __webpack_require__(119); + +var nativeErrorToString = Error.prototype.toString; + +var INCORRECT_TO_STRING = fails(function () { + if (DESCRIPTORS) { + // Chrome 32- incorrectly call accessor + // eslint-disable-next-line es/no-object-create, es/no-object-defineproperty -- safe + var object = Object.create(Object.defineProperty({}, 'name', { get: function () { + return this === object; + } })); + if (nativeErrorToString.call(object) !== 'true') return true; + } + // FF10- does not properly handle non-strings + return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1' + // IE8 does not properly handle defaults + || nativeErrorToString.call({}) !== 'Error'; +}); + +module.exports = INCORRECT_TO_STRING ? function toString() { + var O = anObject(this); + var name = normalizeStringArgument(O.name, 'Error'); + var message = normalizeStringArgument(O.message); + return !name ? message : !message ? name : name + ': ' + message; +} : nativeErrorToString; + + +/***/ }), +/* 126 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(127); + + +/***/ }), +/* 127 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var copyConstructorProperties = __webpack_require__(55); +var create = __webpack_require__(71); +var createNonEnumerableProperty = __webpack_require__(43); +var createPropertyDescriptor = __webpack_require__(11); +var installErrorCause = __webpack_require__(120); +var installErrorStack = __webpack_require__(121); +var iterate = __webpack_require__(130); +var normalizeStringArgument = __webpack_require__(119); +var wellKnownSymbol = __webpack_require__(33); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Error = Error; +var push = [].push; + +var $AggregateError = function AggregateError(errors, message /* , options */) { + var isInstance = isPrototypeOf(AggregateErrorPrototype, this); + var that; + if (setPrototypeOf) { + that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype); + } else { + that = isInstance ? this : create(AggregateErrorPrototype); + createNonEnumerableProperty(that, TO_STRING_TAG, 'Error'); + } + if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message)); + installErrorStack(that, $AggregateError, that.stack, 1); + if (arguments.length > 2) installErrorCause(that, arguments[2]); + var errorsArray = []; + iterate(errors, push, { that: errorsArray }); + createNonEnumerableProperty(that, 'errors', errorsArray); + return that; +}; + +if (setPrototypeOf) setPrototypeOf($AggregateError, $Error); +else copyConstructorProperties($AggregateError, $Error, { name: true }); + +var AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, { + constructor: createPropertyDescriptor(1, $AggregateError), + message: createPropertyDescriptor(1, ''), + name: createPropertyDescriptor(1, 'AggregateError') +}); + +// `AggregateError` constructor +// https://tc39.es/ecma262/#sec-aggregate-error-constructor +$({ global: true, constructor: true, arity: 2 }, { + AggregateError: $AggregateError +}); + + +/***/ }), +/* 128 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var isCallable = __webpack_require__(21); +var toObject = __webpack_require__(39); +var sharedKey = __webpack_require__(53); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + + +/***/ }), +/* 129 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + + +/***/ }), +/* 130 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var isArrayIteratorMethod = __webpack_require__(131); +var lengthOfArrayLike = __webpack_require__(63); +var isPrototypeOf = __webpack_require__(24); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var iteratorClose = __webpack_require__(135); + +var $TypeError = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +module.exports = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + + +/***/ }), +/* 131 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; + + +/***/ }), +/* 132 */ +/***/ (function(module) { + + +module.exports = {}; + + +/***/ }), +/* 133 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var tryToString = __webpack_require__(31); +var getIteratorMethod = __webpack_require__(134); + +var $TypeError = TypeError; + +module.exports = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); + throw new $TypeError(tryToString(argument) + ' is not iterable'); +}; + + +/***/ }), +/* 134 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); +var getMethod = __webpack_require__(29); +var isNullOrUndefined = __webpack_require__(17); +var Iterators = __webpack_require__(132); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = function (it) { + if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) + || getMethod(it, '@@iterator') + || Iterators[classof(it)]; +}; + + +/***/ }), +/* 135 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var getMethod = __webpack_require__(29); + +module.exports = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject(innerResult); + return value; +}; + + +/***/ }), +/* 136 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var fails = __webpack_require__(7); +var wrapErrorConstructorWithCause = __webpack_require__(112); + +var AGGREGATE_ERROR = 'AggregateError'; +var $AggregateError = getBuiltIn(AGGREGATE_ERROR); + +var FORCED = !fails(function () { + return $AggregateError([1]).errors[0] !== 1; +}) && fails(function () { + return $AggregateError([1], AGGREGATE_ERROR, { cause: 7 }).cause !== 7; +}); + +// https://tc39.es/ecma262/#sec-aggregate-error +$({ global: true, constructor: true, arity: 2, forced: FORCED }, { + AggregateError: wrapErrorConstructorWithCause(AGGREGATE_ERROR, function (init) { + // eslint-disable-next-line no-unused-vars -- required for functions `.length` + return function AggregateError(errors, message) { return apply(init, this, arguments); }; + }, FORCED, true) +}); + + +/***/ }), +/* 137 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.at` method +// https://tc39.es/ecma262/#sec-array.prototype.at +$({ target: 'Array', proto: true }, { + at: function at(index) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; + } +}); + +addToUnscopables('at'); + + +/***/ }), +/* 138 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); +var create = __webpack_require__(71); +var defineProperty = (__webpack_require__(44).f); + +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] === undefined) { + defineProperty(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + + +/***/ }), +/* 139 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isArray = __webpack_require__(88); +var isObject = __webpack_require__(20); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var createProperty = __webpack_require__(141); +var arraySpeciesCreate = __webpack_require__(86); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); + +// We can't use this feature detection in V8 since it causes +// deoptimization and serious performance degradation +// https://github.com/zloirock/core-js/issues/679 +var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; +}); + +var isConcatSpreadable = function (O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); +}; + +var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat'); + +// `Array.prototype.concat` method +// https://tc39.es/ecma262/#sec-array.prototype.concat +// with adding support of @@isConcatSpreadable and @@species +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike(E); + doesNotExceedSafeInteger(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); + } else { + doesNotExceedSafeInteger(n + 1); + createProperty(A, n++, E); + } + } + A.length = n; + return A; + } +}); + + +/***/ }), +/* 140 */ +/***/ (function(module) { + + +var $TypeError = TypeError; +var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + +module.exports = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded'); + return it; +}; + + +/***/ }), +/* 141 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var definePropertyModule = __webpack_require__(44); +var createPropertyDescriptor = __webpack_require__(11); + +module.exports = function (object, key, value) { + if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; +}; + + +/***/ }), +/* 142 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var V8_VERSION = __webpack_require__(27); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + + +/***/ }), +/* 143 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var copyWithin = __webpack_require__(144); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +$({ target: 'Array', proto: true }, { + copyWithin: copyWithin +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('copyWithin'); + + +/***/ }), +/* 144 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); + +var min = Math.min; + +// `Array.prototype.copyWithin` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.copywithin +// eslint-disable-next-line es/no-array-prototype-copywithin -- safe +module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + while (count-- > 0) { + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + to += inc; + from += inc; + } return O; +}; + + +/***/ }), +/* 145 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +module.exports = function (O, P) { + if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O)); +}; + + +/***/ }), +/* 146 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $every = (__webpack_require__(83).every); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('every'); + +// `Array.prototype.every` method +// https://tc39.es/ecma262/#sec-array.prototype.every +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + every: function every(callbackfn /* , thisArg */) { + return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 147 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); +}; + + +/***/ }), +/* 148 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fill = __webpack_require__(149); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.fill` method +// https://tc39.es/ecma262/#sec-array.prototype.fill +$({ target: 'Array', proto: true }, { + fill: fill +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('fill'); + + +/***/ }), +/* 149 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.fill` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.fill +module.exports = function fill(value /* , start = 0, end = @length */) { + var O = toObject(this); + var length = lengthOfArrayLike(O); + var argumentsLength = arguments.length; + var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); + var end = argumentsLength > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + while (endPos > index) O[index++] = value; + return O; +}; + + +/***/ }), +/* 150 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $filter = (__webpack_require__(83).filter); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + +// `Array.prototype.filter` method +// https://tc39.es/ecma262/#sec-array.prototype.filter +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 151 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $find = (__webpack_require__(83).find); +var addToUnscopables = __webpack_require__(138); + +var FIND = 'find'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-find -- testing +if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.find` method +// https://tc39.es/ecma262/#sec-array.prototype.find +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND); + + +/***/ }), +/* 152 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findIndex = (__webpack_require__(83).findIndex); +var addToUnscopables = __webpack_require__(138); + +var FIND_INDEX = 'findIndex'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +// eslint-disable-next-line es/no-array-prototype-findindex -- testing +if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findindex +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + findIndex: function findIndex(callbackfn /* , that = undefined */) { + return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND_INDEX); + + +/***/ }), +/* 153 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLast = (__webpack_require__(154).findLast); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLast` method +// https://tc39.es/ecma262/#sec-array.prototype.findlast +$({ target: 'Array', proto: true }, { + findLast: function findLast(callbackfn /* , that = undefined */) { + return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLast'); + + +/***/ }), +/* 154 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var IndexedObject = __webpack_require__(13); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); + +// `Array.prototype.{ findLast, findLastIndex }` methods implementation +var createMethod = function (TYPE) { + var IS_FIND_LAST_INDEX = TYPE === 1; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IndexedObject(O); + var index = lengthOfArrayLike(self); + var boundFunction = bind(callbackfn, that); + var value, result; + while (index-- > 0) { + value = self[index]; + result = boundFunction(value, index, O); + if (result) switch (TYPE) { + case 0: return value; // findLast + case 1: return index; // findLastIndex + } + } + return IS_FIND_LAST_INDEX ? -1 : undefined; + }; +}; + +module.exports = { + // `Array.prototype.findLast` method + // https://github.com/tc39/proposal-array-find-from-last + findLast: createMethod(0), + // `Array.prototype.findLastIndex` method + // https://github.com/tc39/proposal-array-find-from-last + findLastIndex: createMethod(1) +}; + + +/***/ }), +/* 155 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $findLastIndex = (__webpack_require__(154).findLastIndex); +var addToUnscopables = __webpack_require__(138); + +// `Array.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-array.prototype.findlastindex +$({ target: 'Array', proto: true }, { + findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) { + return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +addToUnscopables('findLastIndex'); + + +/***/ }), +/* 156 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flat` method +// https://tc39.es/ecma262/#sec-array.prototype.flat +$({ target: 'Array', proto: true }, { + flat: function flat(/* depthArg = 1 */) { + var depthArg = arguments.length ? arguments[0] : undefined; + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg)); + return A; + } +}); + + +/***/ }), +/* 157 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isArray = __webpack_require__(88); +var lengthOfArrayLike = __webpack_require__(63); +var doesNotExceedSafeInteger = __webpack_require__(140); +var bind = __webpack_require__(84); + +// `FlattenIntoArray` abstract operation +// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray +var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? bind(mapper, thisArg) : false; + var element, elementLen; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + if (depth > 0 && isArray(element)) { + elementLen = lengthOfArrayLike(element); + targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1; + } else { + doesNotExceedSafeInteger(targetIndex + 1); + target[targetIndex] = element; + } + + targetIndex++; + } + sourceIndex++; + } + return targetIndex; +}; + +module.exports = flattenIntoArray; + + +/***/ }), +/* 158 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(157); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var arraySpeciesCreate = __webpack_require__(86); + +// `Array.prototype.flatMap` method +// https://tc39.es/ecma262/#sec-array.prototype.flatmap +$({ target: 'Array', proto: true }, { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen = lengthOfArrayLike(O); + var A; + aCallable(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return A; + } +}); + + +/***/ }), +/* 159 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var forEach = __webpack_require__(160); + +// `Array.prototype.forEach` method +// https://tc39.es/ecma262/#sec-array.prototype.foreach +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, { + forEach: forEach +}); + + +/***/ }), +/* 160 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $forEach = (__webpack_require__(83).forEach); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('forEach'); + +// `Array.prototype.forEach` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.foreach +module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); +// eslint-disable-next-line es/no-array-prototype-foreach -- safe +} : [].forEach; + + +/***/ }), +/* 161 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var from = __webpack_require__(162); +var checkCorrectnessOfIteration = __webpack_require__(164); + +var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); +}); + +// `Array.from` method +// https://tc39.es/ecma262/#sec-array.from +$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from +}); + + +/***/ }), +/* 162 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var toObject = __webpack_require__(39); +var callWithSafeIterationClosing = __webpack_require__(163); +var isArrayIteratorMethod = __webpack_require__(131); +var isConstructor = __webpack_require__(89); +var lengthOfArrayLike = __webpack_require__(63); +var createProperty = __webpack_require__(141); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); + +var $Array = Array; + +// `Array.from` method implementation +// https://tc39.es/ecma262/#sec-array.from +module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + result = IS_CONSTRUCTOR ? new this() : []; + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + for (;!(step = call(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + result.length = index; + return result; +}; + + +/***/ }), +/* 163 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var iteratorClose = __webpack_require__(135); + +// call something on iterator step with safe closing on error +module.exports = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } +}; + + +/***/ }), +/* 164 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; + +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +module.exports = function (exec, SKIP_CLOSING) { + try { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + } catch (error) { return false; } // workaround of old WebKit + `eval` bug + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; +}; + + +/***/ }), +/* 165 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $includes = (__webpack_require__(59).includes); +var fails = __webpack_require__(7); +var addToUnscopables = __webpack_require__(138); + +// FF99+ bug +var BROKEN_ON_SPARSE = fails(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); +}); + +// `Array.prototype.includes` method +// https://tc39.es/ecma262/#sec-array.prototype.includes +$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('includes'); + + +/***/ }), +/* 166 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-indexof -- required for testing */ +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var $indexOf = (__webpack_require__(59).indexOf); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeIndexOf = uncurryThis([].indexOf); + +var NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0; +var FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf'); + +// `Array.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.indexof +$({ target: 'Array', proto: true, forced: FORCED }, { + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + var fromIndex = arguments.length > 1 ? arguments[1] : undefined; + return NEGATIVE_ZERO + // convert -0 to +0 + ? nativeIndexOf(this, searchElement, fromIndex) || 0 + : $indexOf(this, searchElement, fromIndex); + } +}); + + +/***/ }), +/* 167 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); + +// `Array.isArray` method +// https://tc39.es/ecma262/#sec-array.isarray +$({ target: 'Array', stat: true }, { + isArray: isArray +}); + + +/***/ }), +/* 168 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); +var Iterators = __webpack_require__(132); +var InternalStateModule = __webpack_require__(51); +var defineProperty = (__webpack_require__(44).f); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +module.exports = defineIterator(Array, 'Array', function (iterated, kind) { + setInternalState(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + switch (state.kind) { + case 'keys': return createIterResultObject(index, false); + case 'values': return createIterResultObject(target[index], false); + } return createIterResultObject([index, target[index]], false); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +var values = Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +// V8 ~ Chrome 45- bug +if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try { + defineProperty(values, 'name', { value: 'values' }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 169 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var IS_PURE = __webpack_require__(36); +var FunctionName = __webpack_require__(49); +var isCallable = __webpack_require__(21); +var createIteratorConstructor = __webpack_require__(170); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var Iterators = __webpack_require__(132); +var IteratorsCore = __webpack_require__(171); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR = wellKnownSymbol('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND]; + + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } + + return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { + defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; + } + } + + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call(nativeIterator, this); }; + } + } + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn(IterablePrototype, KEY, methods[KEY]); + } + } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + // define iterator + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); + } + Iterators[NAME] = defaultIterator; + + return methods; +}; + + +/***/ }), +/* 170 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IteratorPrototype = (__webpack_require__(171).IteratorPrototype); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var setToStringTag = __webpack_require__(82); +var Iterators = __webpack_require__(132); + +var returnThis = function () { return this; }; + +module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; +}; + + +/***/ }), +/* 171 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var getPrototypeOf = __webpack_require__(128); +var defineBuiltIn = __webpack_require__(47); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype[ITERATOR].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; +else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable(IteratorPrototype[ITERATOR])) { + defineBuiltIn(IteratorPrototype, ITERATOR, function () { + return this; + }); +} + +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + + +/***/ }), +/* 172 */ +/***/ (function(module) { + + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +module.exports = function (value, done) { + return { value: value, done: done }; +}; + + +/***/ }), +/* 173 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var IndexedObject = __webpack_require__(13); +var toIndexedObject = __webpack_require__(12); +var arrayMethodIsStrict = __webpack_require__(147); + +var nativeJoin = uncurryThis([].join); + +var ES3_STRINGS = IndexedObject !== Object; +var FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ','); + +// `Array.prototype.join` method +// https://tc39.es/ecma262/#sec-array.prototype.join +$({ target: 'Array', proto: true, forced: FORCED }, { + join: function join(separator) { + return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator); + } +}); + + +/***/ }), +/* 174 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var lastIndexOf = __webpack_require__(175); + +// `Array.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing +$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, { + lastIndexOf: lastIndexOf +}); + + +/***/ }), +/* 175 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-array-prototype-lastindexof -- safe */ +var apply = __webpack_require__(94); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var arrayMethodIsStrict = __webpack_require__(147); + +var min = Math.min; +var $lastIndexOf = [].lastIndexOf; +var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; +var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); +var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; + +// `Array.prototype.lastIndexOf` method implementation +// https://tc39.es/ecma262/#sec-array.prototype.lastindexof +module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0; + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + if (length === 0) return -1; + var index = length - 1; + if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1])); + if (index < 0) index = length + index; + for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; + return -1; +} : $lastIndexOf; + + +/***/ }), +/* 176 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $map = (__webpack_require__(83).map); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); + +// `Array.prototype.map` method +// https://tc39.es/ecma262/#sec-array.prototype.map +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 177 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isConstructor = __webpack_require__(89); +var createProperty = __webpack_require__(141); + +var $Array = Array; + +var ISNT_GENERIC = fails(function () { + function F() { /* empty */ } + // eslint-disable-next-line es/no-array-of -- safe + return !($Array.of.call(F) instanceof F); +}); + +// `Array.of` method +// https://tc39.es/ecma262/#sec-array.of +// WebKit Array.of isn't generic +$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { + of: function of(/* ...args */) { + var index = 0; + var argumentsLength = arguments.length; + var result = new (isConstructor(this) ? this : $Array)(argumentsLength); + while (argumentsLength > index) createProperty(result, index, arguments[index++]); + result.length = argumentsLength; + return result; + } +}); + + +/***/ }), +/* 178 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var fails = __webpack_require__(7); + +var INCORRECT_TO_LENGTH = fails(function () { + return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; +}); + +// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError +// https://bugs.chromium.org/p/v8/issues/detail?id=12681 +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).push(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); + +// `Array.prototype.push` method +// https://tc39.es/ecma262/#sec-array.prototype.push +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + push: function push(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + doesNotExceedSafeInteger(len + argCount); + for (var i = 0; i < argCount; i++) { + O[len] = arguments[i]; + len++; + } + setArrayLength(O, len); + return len; + } +}); + + +/***/ }), +/* 179 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var isArray = __webpack_require__(88); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Safari < 13 does not throw an error in this case +var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () { + // makes no sense without proper strict mode support + if (this !== undefined) return true; + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).length = 1; + } catch (error) { + return error instanceof TypeError; + } +}(); + +module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) { + if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) { + throw new $TypeError('Cannot set read only .length'); + } return O.length = length; +} : function (O, length) { + return O.length = length; +}; + + +/***/ }), +/* 180 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduce = (__webpack_require__(181).left); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce'); + +// `Array.prototype.reduce` method +// https://tc39.es/ecma262/#sec-array.prototype.reduce +$({ target: 'Array', proto: true, forced: FORCED }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 181 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); +var lengthOfArrayLike = __webpack_require__(63); + +var $TypeError = TypeError; + +var REDUCE_EMPTY = 'Reduce of empty array with no initial value'; + +// `Array.prototype.{ reduce, reduceRight }` methods implementation +var createMethod = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + var O = toObject(that); + var self = IndexedObject(O); + var length = lengthOfArrayLike(O); + aCallable(callbackfn); + if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw new $TypeError(REDUCE_EMPTY); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; +}; + +module.exports = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod(true) +}; + + +/***/ }), +/* 182 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var classof = __webpack_require__(15); + +module.exports = classof(global.process) === 'process'; + + +/***/ }), +/* 183 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $reduceRight = (__webpack_require__(181).right); +var arrayMethodIsStrict = __webpack_require__(147); +var CHROME_VERSION = __webpack_require__(27); +var IS_NODE = __webpack_require__(182); + +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; +var FORCED = CHROME_BUG || !arrayMethodIsStrict('reduceRight'); + +// `Array.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-array.prototype.reduceright +$({ target: 'Array', proto: true, forced: FORCED }, { + reduceRight: function reduceRight(callbackfn /* , initialValue */) { + return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 184 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var isArray = __webpack_require__(88); + +var nativeReverse = uncurryThis([].reverse); +var test = [1, 2]; + +// `Array.prototype.reverse` method +// https://tc39.es/ecma262/#sec-array.prototype.reverse +// fix for Safari 12.0 bug +// https://bugs.webkit.org/show_bug.cgi?id=188794 +$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, { + reverse: function reverse() { + // eslint-disable-next-line no-self-assign -- dirty hack + if (isArray(this)) this.length = this.length; + return nativeReverse(this); + } +}); + + +/***/ }), +/* 185 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isArray = __webpack_require__(88); +var isConstructor = __webpack_require__(89); +var isObject = __webpack_require__(20); +var toAbsoluteIndex = __webpack_require__(60); +var lengthOfArrayLike = __webpack_require__(63); +var toIndexedObject = __webpack_require__(12); +var createProperty = __webpack_require__(141); +var wellKnownSymbol = __webpack_require__(33); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); +var nativeSlice = __webpack_require__(76); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); + +var SPECIES = wellKnownSymbol('species'); +var $Array = Array; +var max = Math.max; + +// `Array.prototype.slice` method +// https://tc39.es/ecma262/#sec-array.prototype.slice +// fallback for not array-like ES3 strings and DOM objects +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + slice: function slice(start, end) { + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject(Constructor)) { + Constructor = Constructor[SPECIES]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); + result.length = n; + return result; + } +}); + + +/***/ }), +/* 186 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $some = (__webpack_require__(83).some); +var arrayMethodIsStrict = __webpack_require__(147); + +var STRICT_METHOD = arrayMethodIsStrict('some'); + +// `Array.prototype.some` method +// https://tc39.es/ecma262/#sec-array.prototype.some +$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { + some: function some(callbackfn /* , thisArg */) { + return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 187 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var deletePropertyOrThrow = __webpack_require__(145); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var internalSort = __webpack_require__(188); +var arrayMethodIsStrict = __webpack_require__(147); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var test = []; +var nativeSort = uncurryThis(test.sort); +var push = uncurryThis(test.push); + +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var STABLE_SORT = !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 70; + if (FF && FF > 3) return; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test.push({ k: chr + index, v: value }); + } + } + + test.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test.length; index++) { + chr = test[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; +}); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return toString(x) > toString(y) ? 1 : -1; + }; +}; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + + var array = toObject(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn); + + var items = []; + var arrayLength = lengthOfArrayLike(array); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) push(items, array[index]); + } + + internalSort(items, getSortCompare(comparefn)); + + itemsLength = lengthOfArrayLike(items); + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) deletePropertyOrThrow(array, index++); + + return array; + } +}); + + +/***/ }), +/* 188 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arraySlice = __webpack_require__(76); + +var floor = Math.floor; + +var sort = function (array, comparefn) { + var length = array.length; + + if (length < 8) { + // insertion sort + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } + } else { + // merge sort + var middle = floor(length / 2); + var left = sort(arraySlice(array, 0, middle), comparefn); + var right = sort(arraySlice(array, middle), comparefn); + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + + while (lindex < llength || rindex < rlength) { + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } + } + + return array; +}; + +module.exports = sort; + + +/***/ }), +/* 189 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var firefox = userAgent.match(/firefox\/(\d+)/i); + +module.exports = !!firefox && +firefox[1]; + + +/***/ }), +/* 190 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var UA = __webpack_require__(28); + +module.exports = /MSIE|Trident/.test(UA); + + +/***/ }), +/* 191 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); + +module.exports = !!webkit && +webkit[1]; + + +/***/ }), +/* 192 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setSpecies = __webpack_require__(193); + +// `Array[@@species]` getter +// https://tc39.es/ecma262/#sec-get-array-@@species +setSpecies('Array'); + + +/***/ }), +/* 193 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var defineBuiltInAccessor = __webpack_require__(77); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + + if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + defineBuiltInAccessor(Constructor, SPECIES, { + configurable: true, + get: function () { return this; } + }); + } +}; + + +/***/ }), +/* 194 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(60); +var toIntegerOrInfinity = __webpack_require__(61); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var doesNotExceedSafeInteger = __webpack_require__(140); +var arraySpeciesCreate = __webpack_require__(86); +var createProperty = __webpack_require__(141); +var deletePropertyOrThrow = __webpack_require__(145); +var arrayMethodHasSpeciesSupport = __webpack_require__(142); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); + +var max = Math.max; +var min = Math.min; + +// `Array.prototype.splice` method +// https://tc39.es/ecma262/#sec-array.prototype.splice +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + splice: function splice(start, deleteCount /* , ...items */) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var insertCount, actualDeleteCount, A, k, from, to; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = arraySpeciesCreate(O, actualDeleteCount); + for (k = 0; k < actualDeleteCount; k++) { + from = actualStart + k; + if (from in O) createProperty(A, k, O[from]); + } + A.length = actualDeleteCount; + if (insertCount < actualDeleteCount) { + for (k = actualStart; k < len - actualDeleteCount; k++) { + from = k + actualDeleteCount; + to = k + insertCount; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1); + } else if (insertCount > actualDeleteCount) { + for (k = len - actualDeleteCount; k > actualStart; k--) { + from = k + actualDeleteCount - 1; + to = k + insertCount - 1; + if (from in O) O[to] = O[from]; + else deletePropertyOrThrow(O, to); + } + } + for (k = 0; k < insertCount; k++) { + O[k + actualStart] = arguments[k + 2]; + } + setArrayLength(O, len - actualDeleteCount + insertCount); + return A; + } +}); + + +/***/ }), +/* 195 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayToReversed = __webpack_require__(196); +var toIndexedObject = __webpack_require__(12); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; + +// `Array.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-array.prototype.toreversed +$({ target: 'Array', proto: true }, { + toReversed: function toReversed() { + return arrayToReversed(toIndexedObject(this), $Array); + } +}); + +addToUnscopables('toReversed'); + + +/***/ }), +/* 196 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed +module.exports = function (O, C) { + var len = lengthOfArrayLike(O); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = O[len - k - 1]; + return A; +}; + + +/***/ }), +/* 197 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var toIndexedObject = __webpack_require__(12); +var arrayFromConstructorAndList = __webpack_require__(198); +var getBuiltInPrototypeMethod = __webpack_require__(199); +var addToUnscopables = __webpack_require__(138); + +var $Array = Array; +var sort = uncurryThis(getBuiltInPrototypeMethod('Array', 'sort')); + +// `Array.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-array.prototype.tosorted +$({ target: 'Array', proto: true }, { + toSorted: function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = toIndexedObject(this); + var A = arrayFromConstructorAndList($Array, O); + return sort(A, compareFn); + } +}); + +addToUnscopables('toSorted'); + + +/***/ }), +/* 198 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); + +module.exports = function (Constructor, list, $length) { + var index = 0; + var length = arguments.length > 2 ? $length : lengthOfArrayLike(list); + var result = new Constructor(length); + while (length > index) result[index] = list[index++]; + return result; +}; + + +/***/ }), +/* 199 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = function (CONSTRUCTOR, METHOD) { + var Constructor = global[CONSTRUCTOR]; + var Prototype = Constructor && Constructor.prototype; + return Prototype && Prototype[METHOD]; +}; + + +/***/ }), +/* 200 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var addToUnscopables = __webpack_require__(138); +var doesNotExceedSafeInteger = __webpack_require__(140); +var lengthOfArrayLike = __webpack_require__(63); +var toAbsoluteIndex = __webpack_require__(60); +var toIndexedObject = __webpack_require__(12); +var toIntegerOrInfinity = __webpack_require__(61); + +var $Array = Array; +var max = Math.max; +var min = Math.min; + +// `Array.prototype.toSpliced` method +// https://tc39.es/ecma262/#sec-array.prototype.tospliced +$({ target: 'Array', proto: true }, { + toSpliced: function toSpliced(start, deleteCount /* , ...items */) { + var O = toIndexedObject(this); + var len = lengthOfArrayLike(O); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var k = 0; + var insertCount, actualDeleteCount, newLen, A; + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); + } + newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount); + A = $Array(newLen); + + for (; k < actualStart; k++) A[k] = O[k]; + for (; k < actualStart + insertCount; k++) A[k] = arguments[k - actualStart + 2]; + for (; k < newLen; k++) A[k] = O[k + actualDeleteCount - insertCount]; + + return A; + } +}); + +addToUnscopables('toSpliced'); + + +/***/ }), +/* 201 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flat'); + + +/***/ }), +/* 202 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// this method was added to unscopables after implementation +// in popular engines, so it's moved to a separate module +var addToUnscopables = __webpack_require__(138); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('flatMap'); + + +/***/ }), +/* 203 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var setArrayLength = __webpack_require__(179); +var deletePropertyOrThrow = __webpack_require__(145); +var doesNotExceedSafeInteger = __webpack_require__(140); + +// IE8- +var INCORRECT_RESULT = [].unshift(0) !== 1; + +// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).unshift(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength(); + +// `Array.prototype.unshift` method +// https://tc39.es/ecma262/#sec-array.prototype.unshift +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + unshift: function unshift(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + if (argCount) { + doesNotExceedSafeInteger(len + argCount); + var k = len; + while (k--) { + var to = k + argCount; + if (k in O) O[to] = O[k]; + else deletePropertyOrThrow(O, to); + } + for (var j = 0; j < argCount; j++) { + O[j] = arguments[j]; + } + } return setArrayLength(O, len + argCount); + } +}); + + +/***/ }), +/* 204 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var arrayWith = __webpack_require__(205); +var toIndexedObject = __webpack_require__(12); + +var $Array = Array; + +// `Array.prototype.with` method +// https://tc39.es/ecma262/#sec-array.prototype.with +$({ target: 'Array', proto: true }, { + 'with': function (index, value) { + return arrayWith(toIndexedObject(this), $Array, index, value); + } +}); + + +/***/ }), +/* 205 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with +module.exports = function (O, C, index, value) { + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; + if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index'); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = k === actualIndex ? value : O[k]; + return A; +}; + + +/***/ }), +/* 206 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var arrayBufferModule = __webpack_require__(207); +var setSpecies = __webpack_require__(193); + +var ARRAY_BUFFER = 'ArrayBuffer'; +var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER]; +var NativeArrayBuffer = global[ARRAY_BUFFER]; + +// `ArrayBuffer` constructor +// https://tc39.es/ecma262/#sec-arraybuffer-constructor +$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, { + ArrayBuffer: ArrayBuffer +}); + +setSpecies(ARRAY_BUFFER); + + +/***/ }), +/* 207 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var FunctionName = __webpack_require__(49); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var fails = __webpack_require__(7); +var anInstance = __webpack_require__(210); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var fround = __webpack_require__(212); +var IEEE754 = __webpack_require__(215); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var arrayFill = __webpack_require__(149); +var arraySlice = __webpack_require__(76); +var inheritIfRequired = __webpack_require__(118); +var copyConstructorProperties = __webpack_require__(55); +var setToStringTag = __webpack_require__(82); +var InternalStateModule = __webpack_require__(51); + +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var ARRAY_BUFFER = 'ArrayBuffer'; +var DATA_VIEW = 'DataView'; +var PROTOTYPE = 'prototype'; +var WRONG_LENGTH = 'Wrong length'; +var WRONG_INDEX = 'Wrong index'; +var getInternalArrayBufferState = InternalStateModule.getterFor(ARRAY_BUFFER); +var getInternalDataViewState = InternalStateModule.getterFor(DATA_VIEW); +var setInternalState = InternalStateModule.set; +var NativeArrayBuffer = global[ARRAY_BUFFER]; +var $ArrayBuffer = NativeArrayBuffer; +var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE]; +var $DataView = global[DATA_VIEW]; +var DataViewPrototype = $DataView && $DataView[PROTOTYPE]; +var ObjectPrototype = Object.prototype; +var Array = global.Array; +var RangeError = global.RangeError; +var fill = uncurryThis(arrayFill); +var reverse = uncurryThis([].reverse); + +var packIEEE754 = IEEE754.pack; +var unpackIEEE754 = IEEE754.unpack; + +var packInt8 = function (number) { + return [number & 0xFF]; +}; + +var packInt16 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF]; +}; + +var packInt32 = function (number) { + return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF]; +}; + +var unpackInt32 = function (buffer) { + return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0]; +}; + +var packFloat32 = function (number) { + return packIEEE754(fround(number), 23, 4); +}; + +var packFloat64 = function (number) { + return packIEEE754(number, 52, 8); +}; + +var addGetter = function (Constructor, key, getInternalState) { + defineBuiltInAccessor(Constructor[PROTOTYPE], key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var get = function (view, count, index, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + var pack = arraySlice(bytes, start, start + count); + return boolIsLittleEndian ? pack : reverse(pack); +}; + +var set = function (view, count, index, conversion, value, isLittleEndian) { + var store = getInternalDataViewState(view); + var intIndex = toIndex(index); + var pack = conversion(+value); + var boolIsLittleEndian = !!isLittleEndian; + if (intIndex + count > store.byteLength) throw new RangeError(WRONG_INDEX); + var bytes = store.bytes; + var start = intIndex + store.byteOffset; + for (var i = 0; i < count; i++) bytes[start + i] = pack[boolIsLittleEndian ? i : count - i - 1]; +}; + +if (!NATIVE_ARRAY_BUFFER) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + var byteLength = toIndex(length); + setInternalState(this, { + type: ARRAY_BUFFER, + bytes: fill(Array(byteLength), 0), + byteLength: byteLength + }); + if (!DESCRIPTORS) { + this.byteLength = byteLength; + this.detached = false; + } + }; + + ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE]; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, DataViewPrototype); + anInstance(buffer, ArrayBufferPrototype); + var bufferState = getInternalArrayBufferState(buffer); + var bufferLength = bufferState.byteLength; + var offset = toIntegerOrInfinity(byteOffset); + if (offset < 0 || offset > bufferLength) throw new RangeError('Wrong offset'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw new RangeError(WRONG_LENGTH); + setInternalState(this, { + type: DATA_VIEW, + buffer: buffer, + byteLength: byteLength, + byteOffset: offset, + bytes: bufferState.bytes + }); + if (!DESCRIPTORS) { + this.buffer = buffer; + this.byteLength = byteLength; + this.byteOffset = offset; + } + }; + + DataViewPrototype = $DataView[PROTOTYPE]; + + if (DESCRIPTORS) { + addGetter($ArrayBuffer, 'byteLength', getInternalArrayBufferState); + addGetter($DataView, 'buffer', getInternalDataViewState); + addGetter($DataView, 'byteLength', getInternalDataViewState); + addGetter($DataView, 'byteOffset', getInternalDataViewState); + } + + defineBuiltIns(DataViewPrototype, { + getInt8: function getInt8(byteOffset) { + return get(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : false); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)); + }, + getUint32: function getUint32(byteOffset /* , littleEndian */) { + return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false)) >>> 0; + }, + getFloat32: function getFloat32(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : false), 23); + }, + getFloat64: function getFloat64(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : false), 52); + }, + setInt8: function setInt8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set(this, 1, byteOffset, packInt8, value); + }, + setInt16: function setInt16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint16: function setUint16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : false); + }, + setInt32: function setInt32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setUint32: function setUint32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : false); + }, + setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { + set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : false); + } + }); +} else { + var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER; + /* eslint-disable no-new -- required for testing */ + if (!fails(function () { + NativeArrayBuffer(1); + }) || !fails(function () { + new NativeArrayBuffer(-1); + }) || fails(function () { + new NativeArrayBuffer(); + new NativeArrayBuffer(1.5); + new NativeArrayBuffer(NaN); + return NativeArrayBuffer.length !== 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME; + })) { + /* eslint-enable no-new -- required for testing */ + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, ArrayBufferPrototype); + return inheritIfRequired(new NativeArrayBuffer(toIndex(length)), this, $ArrayBuffer); + }; + + $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype; + + ArrayBufferPrototype.constructor = $ArrayBuffer; + + copyConstructorProperties($ArrayBuffer, NativeArrayBuffer); + } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER); + } + + // WebKit bug - the same parent prototype for typed arrays and data view + if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) { + setPrototypeOf(DataViewPrototype, ObjectPrototype); + } + + // iOS Safari 7.x bug + var testView = new $DataView(new $ArrayBuffer(2)); + var $setInt8 = uncurryThis(DataViewPrototype.setInt8); + testView.setInt8(0, 2147483648); + testView.setInt8(1, 2147483649); + if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, { + setInt8: function setInt8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + $setInt8(this, byteOffset, value << 24 >> 24); + } + }, { unsafe: true }); +} + +setToStringTag($ArrayBuffer, ARRAY_BUFFER); +setToStringTag($DataView, DATA_VIEW); + +module.exports = { + ArrayBuffer: $ArrayBuffer, + DataView: $DataView +}; + + +/***/ }), +/* 208 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-typed-arrays -- safe +module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; + + +/***/ }), +/* 209 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); + +module.exports = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; +}; + + +/***/ }), +/* 210 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isPrototypeOf = __webpack_require__(24); + +var $TypeError = TypeError; + +module.exports = function (it, Prototype) { + if (isPrototypeOf(Prototype, it)) return it; + throw new $TypeError('Incorrect invocation'); +}; + + +/***/ }), +/* 211 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); + +var $RangeError = RangeError; + +// `ToIndex` abstract operation +// https://tc39.es/ecma262/#sec-toindex +module.exports = function (it) { + if (it === undefined) return 0; + var number = toIntegerOrInfinity(it); + var length = toLength(number); + if (number !== length) throw new $RangeError('Wrong length or index'); + return length; +}; + + +/***/ }), +/* 212 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var floatRound = __webpack_require__(213); + +var FLOAT32_EPSILON = 1.1920928955078125e-7; // 2 ** -23; +var FLOAT32_MAX_VALUE = 3.4028234663852886e+38; // 2 ** 128 - 2 ** 104 +var FLOAT32_MIN_VALUE = 1.1754943508222875e-38; // 2 ** -126; + +// `Math.fround` method implementation +// https://tc39.es/ecma262/#sec-math.fround +// eslint-disable-next-line es/no-math-fround -- safe +module.exports = Math.fround || function fround(x) { + return floatRound(x, FLOAT32_EPSILON, FLOAT32_MAX_VALUE, FLOAT32_MIN_VALUE); +}; + + +/***/ }), +/* 213 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var sign = __webpack_require__(214); + +var abs = Math.abs; + +var EPSILON = 2.220446049250313e-16; // Number.EPSILON +var INVERSE_EPSILON = 1 / EPSILON; + +var roundTiesToEven = function (n) { + return n + INVERSE_EPSILON - INVERSE_EPSILON; +}; + +module.exports = function (x, FLOAT_EPSILON, FLOAT_MAX_VALUE, FLOAT_MIN_VALUE) { + var n = +x; + var absolute = abs(n); + var s = sign(n); + if (absolute < FLOAT_MIN_VALUE) return s * roundTiesToEven(absolute / FLOAT_MIN_VALUE / FLOAT_EPSILON) * FLOAT_MIN_VALUE * FLOAT_EPSILON; + var a = (1 + FLOAT_EPSILON / EPSILON) * absolute; + var result = a - (a - absolute); + // eslint-disable-next-line no-self-compare -- NaN check + if (result > FLOAT_MAX_VALUE || result !== result) return s * Infinity; + return s * result; +}; + + +/***/ }), +/* 214 */ +/***/ (function(module) { + + +// `Math.sign` method implementation +// https://tc39.es/ecma262/#sec-math.sign +// eslint-disable-next-line es/no-math-sign -- safe +module.exports = Math.sign || function sign(x) { + var n = +x; + // eslint-disable-next-line no-self-compare -- NaN check + return n === 0 || n !== n ? n : n < 0 ? -1 : 1; +}; + + +/***/ }), +/* 215 */ +/***/ (function(module) { + + +// IEEE754 conversions based on https://github.com/feross/ieee754 +var $Array = Array; +var abs = Math.abs; +var pow = Math.pow; +var floor = Math.floor; +var log = Math.log; +var LN2 = Math.LN2; + +var pack = function (number, mantissaLength, bytes) { + var buffer = $Array(bytes); + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0; + var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; + var index = 0; + var exponent, mantissa, c; + number = abs(number); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number || number === Infinity) { + // eslint-disable-next-line no-self-compare -- NaN check + mantissa = number !== number ? 1 : 0; + exponent = eMax; + } else { + exponent = floor(log(number) / LN2); + c = pow(2, -exponent); + if (number * c < 1) { + exponent--; + c *= 2; + } + if (exponent + eBias >= 1) { + number += rt / c; + } else { + number += rt * pow(2, 1 - eBias); + } + if (number * c >= 2) { + exponent++; + c /= 2; + } + if (exponent + eBias >= eMax) { + mantissa = 0; + exponent = eMax; + } else if (exponent + eBias >= 1) { + mantissa = (number * c - 1) * pow(2, mantissaLength); + exponent += eBias; + } else { + mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength); + exponent = 0; + } + } + while (mantissaLength >= 8) { + buffer[index++] = mantissa & 255; + mantissa /= 256; + mantissaLength -= 8; + } + exponent = exponent << mantissaLength | mantissa; + exponentLength += mantissaLength; + while (exponentLength > 0) { + buffer[index++] = exponent & 255; + exponent /= 256; + exponentLength -= 8; + } + buffer[--index] |= sign * 128; + return buffer; +}; + +var unpack = function (buffer, mantissaLength) { + var bytes = buffer.length; + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var nBits = exponentLength - 7; + var index = bytes - 1; + var sign = buffer[index--]; + var exponent = sign & 127; + var mantissa; + sign >>= 7; + while (nBits > 0) { + exponent = exponent * 256 + buffer[index--]; + nBits -= 8; + } + mantissa = exponent & (1 << -nBits) - 1; + exponent >>= -nBits; + nBits += mantissaLength; + while (nBits > 0) { + mantissa = mantissa * 256 + buffer[index--]; + nBits -= 8; + } + if (exponent === 0) { + exponent = 1 - eBias; + } else if (exponent === eMax) { + return mantissa ? NaN : sign ? -Infinity : Infinity; + } else { + mantissa += pow(2, mantissaLength); + exponent -= eBias; + } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength); +}; + +module.exports = { + pack: pack, + unpack: unpack +}; + + +/***/ }), +/* 216 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferViewCore = __webpack_require__(217); + +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; + +// `ArrayBuffer.isView` method +// https://tc39.es/ecma262/#sec-arraybuffer.isview +$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + isView: ArrayBufferViewCore.isView +}); + + +/***/ }), +/* 217 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var tryToString = __webpack_require__(31); +var createNonEnumerableProperty = __webpack_require__(43); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var isPrototypeOf = __webpack_require__(24); +var getPrototypeOf = __webpack_require__(128); +var setPrototypeOf = __webpack_require__(113); +var wellKnownSymbol = __webpack_require__(33); +var uid = __webpack_require__(40); +var InternalStateModule = __webpack_require__(51); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = global.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; +var TypeError = global.TypeError; + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); +var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; +// Fixing native typed arrays in Opera Presto crashes the browser, see #595 +var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera'; +var TYPED_ARRAY_TAG_REQUIRED = false; +var NAME, Constructor, Prototype; + +var TypedArrayConstructorsList = { + Int8Array: 1, + Uint8Array: 1, + Uint8ClampedArray: 1, + Int16Array: 2, + Uint16Array: 2, + Int32Array: 4, + Uint32Array: 4, + Float32Array: 4, + Float64Array: 8 +}; + +var BigIntArrayConstructorsList = { + BigInt64Array: 8, + BigUint64Array: 8 +}; + +var isView = function isView(it) { + if (!isObject(it)) return false; + var klass = classof(it); + return klass === 'DataView' + || hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var getTypedArrayConstructor = function (it) { + var proto = getPrototypeOf(it); + if (!isObject(proto)) return; + var state = getInternalState(proto); + return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto); +}; + +var isTypedArray = function (it) { + if (!isObject(it)) return false; + var klass = classof(it); + return hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var aTypedArray = function (it) { + if (isTypedArray(it)) return it; + throw new TypeError('Target is not a typed array'); +}; + +var aTypedArrayConstructor = function (C) { + if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C; + throw new TypeError(tryToString(C) + ' is not a typed array constructor'); +}; + +var exportTypedArrayMethod = function (KEY, property, forced, options) { + if (!DESCRIPTORS) return; + if (forced) for (var ARRAY in TypedArrayConstructorsList) { + var TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try { + delete TypedArrayConstructor.prototype[KEY]; + } catch (error) { + // old WebKit bug - some methods are non-configurable + try { + TypedArrayConstructor.prototype[KEY] = property; + } catch (error2) { /* empty */ } + } + } + if (!TypedArrayPrototype[KEY] || forced) { + defineBuiltIn(TypedArrayPrototype, KEY, forced ? property + : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options); + } +}; + +var exportTypedArrayStaticMethod = function (KEY, property, forced) { + var ARRAY, TypedArrayConstructor; + if (!DESCRIPTORS) return; + if (setPrototypeOf) { + if (forced) for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try { + delete TypedArrayConstructor[KEY]; + } catch (error) { /* empty */ } + } + if (!TypedArray[KEY] || forced) { + // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable + try { + return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property); + } catch (error) { /* empty */ } + } else return; + } + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); + } + } +}; + +for (NAME in TypedArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else NATIVE_ARRAY_BUFFER_VIEWS = false; +} + +for (NAME in BigIntArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; +} + +// WebKit bug - typed arrays constructors prototype is Object.prototype +if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) { + // eslint-disable-next-line no-shadow -- safe + TypedArray = function TypedArray() { + throw new TypeError('Incorrect invocation'); + }; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME], TypedArray); + } +} + +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype); + } +} + +// WebKit bug - one more object in Uint8ClampedArray prototype chain +if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { + setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); +} + +if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { + TYPED_ARRAY_TAG_REQUIRED = true; + defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, { + configurable: true, + get: function () { + return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; + } + }); + for (NAME in TypedArrayConstructorsList) if (global[NAME]) { + createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME); + } +} + +module.exports = { + NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, + TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG, + aTypedArray: aTypedArray, + aTypedArrayConstructor: aTypedArrayConstructor, + exportTypedArrayMethod: exportTypedArrayMethod, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, + getTypedArrayConstructor: getTypedArrayConstructor, + isView: isView, + isTypedArray: isTypedArray, + TypedArray: TypedArray, + TypedArrayPrototype: TypedArrayPrototype +}; + + +/***/ }), +/* 218 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var ArrayBufferModule = __webpack_require__(207); +var anObject = __webpack_require__(46); +var toAbsoluteIndex = __webpack_require__(60); +var toLength = __webpack_require__(64); +var speciesConstructor = __webpack_require__(219); + +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var DataView = ArrayBufferModule.DataView; +var DataViewPrototype = DataView.prototype; +var nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice); +var getUint8 = uncurryThis(DataViewPrototype.getUint8); +var setUint8 = uncurryThis(DataViewPrototype.setUint8); + +var INCORRECT_SLICE = fails(function () { + return !new ArrayBuffer(2).slice(1, undefined).byteLength; +}); + +// `ArrayBuffer.prototype.slice` method +// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice +$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, { + slice: function slice(start, end) { + if (nativeArrayBufferSlice && end === undefined) { + return nativeArrayBufferSlice(anObject(this), start); // FF fix + } + var length = anObject(this).byteLength; + var first = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first)); + var viewSource = new DataView(this); + var viewTarget = new DataView(result); + var index = 0; + while (first < fin) { + setUint8(viewTarget, index++, getUint8(viewSource, first++)); + } return result; + } +}); + + +/***/ }), +/* 219 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var aConstructor = __webpack_require__(220); +var isNullOrUndefined = __webpack_require__(17); +var wellKnownSymbol = __webpack_require__(33); + +var SPECIES = wellKnownSymbol('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +module.exports = function (O, defaultConstructor) { + var C = anObject(O).constructor; + var S; + return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S); +}; + + +/***/ }), +/* 220 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isConstructor = __webpack_require__(89); +var tryToString = __webpack_require__(31); + +var $TypeError = TypeError; + +// `Assert: IsConstructor(argument) is true` +module.exports = function (argument) { + if (isConstructor(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a constructor'); +}; + + +/***/ }), +/* 221 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(222); + + +/***/ }), +/* 222 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ArrayBufferModule = __webpack_require__(207); +var NATIVE_ARRAY_BUFFER = __webpack_require__(208); + +// `DataView` constructor +// https://tc39.es/ecma262/#sec-dataview-constructor +$({ global: true, constructor: true, forced: !NATIVE_ARRAY_BUFFER }, { + DataView: ArrayBufferModule.DataView +}); + + +/***/ }), +/* 223 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isDetached = __webpack_require__(224); + +var ArrayBufferPrototype = ArrayBuffer.prototype; + +if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) { + defineBuiltInAccessor(ArrayBufferPrototype, 'detached', { + configurable: true, + get: function detached() { + return isDetached(this); + } + }); +} + + +/***/ }), +/* 224 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var arrayBufferByteLength = __webpack_require__(225); + +var slice = uncurryThis(ArrayBuffer.prototype.slice); + +module.exports = function (O) { + if (arrayBufferByteLength(O) !== 0) return false; + try { + slice(O, 0, 0); + return false; + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 225 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var classof = __webpack_require__(15); + +var $TypeError = TypeError; + +// Includes +// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). +// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. +module.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) { + if (classof(O) !== 'ArrayBuffer') throw new $TypeError('ArrayBuffer expected'); + return O.byteLength; +}; + + +/***/ }), +/* 226 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transfer` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transfer: function transfer() { + return $transfer(this, arguments.length ? arguments[0] : undefined, true); + } +}); + + +/***/ }), +/* 227 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var uncurryThisAccessor = __webpack_require__(114); +var toIndex = __webpack_require__(211); +var isDetached = __webpack_require__(224); +var arrayBufferByteLength = __webpack_require__(225); +var detachTransferable = __webpack_require__(228); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var ArrayBuffer = global.ArrayBuffer; +var DataView = global.DataView; +var TypeError = global.TypeError; +var min = Math.min; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataViewPrototype = DataView.prototype; +var slice = uncurryThis(ArrayBufferPrototype.slice); +var isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get'); +var maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get'); +var getInt8 = uncurryThis(DataViewPrototype.getInt8); +var setInt8 = uncurryThis(DataViewPrototype.setInt8); + +module.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) { + var byteLength = arrayBufferByteLength(arrayBuffer); + var newByteLength = newLength === undefined ? byteLength : toIndex(newLength); + var fixedLength = !isResizable || !isResizable(arrayBuffer); + var newBuffer; + if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached'); + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] }); + if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer; + } + if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) { + newBuffer = slice(arrayBuffer, 0, newByteLength); + } else { + var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined; + newBuffer = new ArrayBuffer(newByteLength, options); + var a = new DataView(arrayBuffer); + var b = new DataView(newBuffer); + var copyLength = min(newByteLength, byteLength); + for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i)); + } + if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer); + return newBuffer; +}; + + +/***/ }), +/* 228 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var tryNodeRequire = __webpack_require__(229); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var structuredClone = global.structuredClone; +var $ArrayBuffer = global.ArrayBuffer; +var $MessageChannel = global.MessageChannel; +var detach = false; +var WorkerThreads, channel, buffer, $detach; + +if (PROPER_STRUCTURED_CLONE_TRANSFER) { + detach = function (transferable) { + structuredClone(transferable, { transfer: [transferable] }); + }; +} else if ($ArrayBuffer) try { + if (!$MessageChannel) { + WorkerThreads = tryNodeRequire('worker_threads'); + if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel; + } + + if ($MessageChannel) { + channel = new $MessageChannel(); + buffer = new $ArrayBuffer(2); + + $detach = function (transferable) { + channel.port1.postMessage(null, [transferable]); + }; + + if (buffer.byteLength === 2) { + $detach(buffer); + if (buffer.byteLength === 0) detach = $detach; + } + } +} catch (error) { /* empty */ } + +module.exports = detach; + + +/***/ }), +/* 229 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_NODE = __webpack_require__(182); + +module.exports = function (name) { + try { + // eslint-disable-next-line no-new-func -- safe + if (IS_NODE) return Function('return require("' + name + '")')(); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 230 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var V8 = __webpack_require__(27); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +var structuredClone = global.structuredClone; + +module.exports = !!structuredClone && !fails(function () { + // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false; + var buffer = new ArrayBuffer(8); + var clone = structuredClone(buffer, { transfer: [buffer] }); + return buffer.byteLength !== 0 || clone.byteLength !== 8; +}); + + +/***/ }), +/* 231 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_DENO = __webpack_require__(232); +var IS_NODE = __webpack_require__(182); + +module.exports = !IS_DENO && !IS_NODE + && typeof window == 'object' + && typeof document == 'object'; + + +/***/ }), +/* 232 */ +/***/ (function(module) { + + +/* global Deno -- Deno case */ +module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + +/***/ }), +/* 233 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $transfer = __webpack_require__(227); + +// `ArrayBuffer.prototype.transferToFixedLength` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transferToFixedLength: function transferToFixedLength() { + return $transfer(this, arguments.length ? arguments[0] : undefined, false); + } +}); + + +/***/ }), +/* 234 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +// IE8- non-standard case +var FORCED = fails(function () { + // eslint-disable-next-line es/no-date-prototype-getyear-setyear -- detection + return new Date(16e11).getYear() !== 120; +}); + +var getFullYear = uncurryThis(Date.prototype.getFullYear); + +// `Date.prototype.getYear` method +// https://tc39.es/ecma262/#sec-date.prototype.getyear +$({ target: 'Date', proto: true, forced: FORCED }, { + getYear: function getYear() { + return getFullYear(this) - 1900; + } +}); + + +/***/ }), +/* 235 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); + +var $Date = Date; +var thisTimeValue = uncurryThis($Date.prototype.getTime); + +// `Date.now` method +// https://tc39.es/ecma262/#sec-date.now +$({ target: 'Date', stat: true }, { + now: function now() { + return thisTimeValue(new $Date()); + } +}); + + +/***/ }), +/* 236 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); + +var DatePrototype = Date.prototype; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var setFullYear = uncurryThis(DatePrototype.setFullYear); + +// `Date.prototype.setYear` method +// https://tc39.es/ecma262/#sec-date.prototype.setyear +$({ target: 'Date', proto: true }, { + setYear: function setYear(year) { + // validate + thisTimeValue(this); + var yi = toIntegerOrInfinity(year); + var yyyy = yi >= 0 && yi <= 99 ? yi + 1900 : yi; + return setFullYear(this, yyyy); + } +}); + + +/***/ }), +/* 237 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Date.prototype.toGMTString` method +// https://tc39.es/ecma262/#sec-date.prototype.togmtstring +$({ target: 'Date', proto: true }, { + toGMTString: Date.prototype.toUTCString +}); + + +/***/ }), +/* 238 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toISOString = __webpack_require__(239); + +// `Date.prototype.toISOString` method +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit has a broken implementations +$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, { + toISOString: toISOString +}); + + +/***/ }), +/* 239 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var padStart = (__webpack_require__(240).start); + +var $RangeError = RangeError; +var $isFinite = isFinite; +var abs = Math.abs; +var DatePrototype = Date.prototype; +var nativeDateToISOString = DatePrototype.toISOString; +var thisTimeValue = uncurryThis(DatePrototype.getTime); +var getUTCDate = uncurryThis(DatePrototype.getUTCDate); +var getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear); +var getUTCHours = uncurryThis(DatePrototype.getUTCHours); +var getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds); +var getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes); +var getUTCMonth = uncurryThis(DatePrototype.getUTCMonth); +var getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds); + +// `Date.prototype.toISOString` method implementation +// https://tc39.es/ecma262/#sec-date.prototype.toisostring +// PhantomJS / old WebKit fails here: +module.exports = (fails(function () { + return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z'; +}) || !fails(function () { + nativeDateToISOString.call(new Date(NaN)); +})) ? function toISOString() { + if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value'); + var date = this; + var year = getUTCFullYear(date); + var milliseconds = getUTCMilliseconds(date); + var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; + return sign + padStart(abs(year), sign ? 6 : 4, 0) + + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + + '-' + padStart(getUTCDate(date), 2, 0) + + 'T' + padStart(getUTCHours(date), 2, 0) + + ':' + padStart(getUTCMinutes(date), 2, 0) + + ':' + padStart(getUTCSeconds(date), 2, 0) + + '.' + padStart(milliseconds, 3, 0) + + 'Z'; +} : nativeDateToISOString; + + +/***/ }), +/* 240 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/tc39/proposal-string-pad-start-end +var uncurryThis = __webpack_require__(14); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var $repeat = __webpack_require__(241); +var requireObjectCoercible = __webpack_require__(16); + +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var ceil = Math.ceil; + +// `String.prototype.{ padStart, padEnd }` methods implementation +var createMethod = function (IS_END) { + return function ($this, maxLength, fillString) { + var S = toString(requireObjectCoercible($this)); + var intMaxLength = toLength(maxLength); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : toString(fillString); + var fillLen, stringFiller; + if (intMaxLength <= stringLength || fillStr === '') return S; + fillLen = intMaxLength - stringLength; + stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen); + return IS_END ? S + stringFiller : stringFiller + S; + }; +}; + +module.exports = { + // `String.prototype.padStart` method + // https://tc39.es/ecma262/#sec-string.prototype.padstart + start: createMethod(false), + // `String.prototype.padEnd` method + // https://tc39.es/ecma262/#sec-string.prototype.padend + end: createMethod(true) +}; + + +/***/ }), +/* 241 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var $RangeError = RangeError; + +// `String.prototype.repeat` method implementation +// https://tc39.es/ecma262/#sec-string.prototype.repeat +module.exports = function repeat(count) { + var str = toString(requireObjectCoercible(this)); + var result = ''; + var n = toIntegerOrInfinity(count); + if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions'); + for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; + return result; +}; + + +/***/ }), +/* 242 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var toPrimitive = __webpack_require__(19); + +var FORCED = fails(function () { + return new Date(NaN).toJSON() !== null + || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; +}); + +// `Date.prototype.toJSON` method +// https://tc39.es/ecma262/#sec-date.prototype.tojson +$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O, 'number'); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } +}); + + +/***/ }), +/* 243 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); +var defineBuiltIn = __webpack_require__(47); +var dateToPrimitive = __webpack_require__(244); +var wellKnownSymbol = __webpack_require__(33); + +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); +var DatePrototype = Date.prototype; + +// `Date.prototype[@@toPrimitive]` method +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +if (!hasOwn(DatePrototype, TO_PRIMITIVE)) { + defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive); +} + + +/***/ }), +/* 244 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var ordinaryToPrimitive = __webpack_require__(32); + +var $TypeError = TypeError; + +// `Date.prototype[@@toPrimitive](hint)` method implementation +// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive +module.exports = function (hint) { + anObject(this); + if (hint === 'string' || hint === 'default') hint = 'string'; + else if (hint !== 'number') throw new $TypeError('Incorrect hint'); + return ordinaryToPrimitive(this, hint); +}; + + +/***/ }), +/* 245 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); + +var DatePrototype = Date.prototype; +var INVALID_DATE = 'Invalid Date'; +var TO_STRING = 'toString'; +var nativeDateToString = uncurryThis(DatePrototype[TO_STRING]); +var thisTimeValue = uncurryThis(DatePrototype.getTime); + +// `Date.prototype.toString` method +// https://tc39.es/ecma262/#sec-date.prototype.tostring +if (String(new Date(NaN)) !== INVALID_DATE) { + defineBuiltIn(DatePrototype, TO_STRING, function toString() { + var value = thisTimeValue(this); + // eslint-disable-next-line no-self-compare -- NaN check + return value === value ? nativeDateToString(this) : INVALID_DATE; + }); +} + + +/***/ }), +/* 246 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var exec = uncurryThis(/./.exec); +var numberToString = uncurryThis(1.0.toString); +var toUpperCase = uncurryThis(''.toUpperCase); + +var raw = /[\w*+\-./@]/; + +var hex = function (code, length) { + var result = numberToString(code, 16); + while (result.length < length) result = '0' + result; + return result; +}; + +// `escape` method +// https://tc39.es/ecma262/#sec-escape-string +$({ global: true }, { + escape: function escape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, code; + while (index < length) { + chr = charAt(str, index++); + if (exec(raw, chr)) { + result += chr; + } else { + code = charCodeAt(chr, 0); + if (code < 256) { + result += '%' + hex(code, 2); + } else { + result += '%u' + toUpperCase(hex(code, 4)); + } + } + } return result; + } +}); + + +/***/ }), +/* 247 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var bind = __webpack_require__(248); + +// `Function.prototype.bind` method +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +$({ target: 'Function', proto: true, forced: Function.bind !== bind }, { + bind: bind +}); + + +/***/ }), +/* 248 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var arraySlice = __webpack_require__(76); +var NATIVE_BIND = __webpack_require__(9); + +var $Function = Function; +var concat = uncurryThis([].concat); +var join = uncurryThis([].join); +var factories = {}; + +var construct = function (C, argsLength, args) { + if (!hasOwn(factories, argsLength)) { + var list = []; + var i = 0; + for (; i < argsLength; i++) list[i] = 'a[' + i + ']'; + factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')'); + } return factories[argsLength](C, args); +}; + +// `Function.prototype.bind` method implementation +// https://tc39.es/ecma262/#sec-function.prototype.bind +// eslint-disable-next-line es/no-function-prototype-bind -- detection +module.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) { + var F = aCallable(this); + var Prototype = F.prototype; + var partArgs = arraySlice(arguments, 1); + var boundFunction = function bound(/* args... */) { + var args = concat(partArgs, arraySlice(arguments)); + return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args); + }; + if (isObject(Prototype)) boundFunction.prototype = Prototype; + return boundFunction; +}; + + +/***/ }), +/* 249 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var definePropertyModule = __webpack_require__(44); +var isPrototypeOf = __webpack_require__(24); +var wellKnownSymbol = __webpack_require__(33); +var makeBuiltIn = __webpack_require__(48); + +var HAS_INSTANCE = wellKnownSymbol('hasInstance'); +var FunctionPrototype = Function.prototype; + +// `Function.prototype[@@hasInstance]` method +// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance +if (!(HAS_INSTANCE in FunctionPrototype)) { + definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: makeBuiltIn(function (O) { + if (!isCallable(this) || !isObject(O)) return false; + var P = this.prototype; + return isObject(P) ? isPrototypeOf(P, O) : O instanceof this; + }, HAS_INSTANCE) }); +} + + +/***/ }), +/* 250 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var FUNCTION_NAME_EXISTS = (__webpack_require__(49).EXISTS); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var FunctionPrototype = Function.prototype; +var functionToString = uncurryThis(FunctionPrototype.toString); +var nameRE = /function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/; +var regExpExec = uncurryThis(nameRE.exec); +var NAME = 'name'; + +// Function instances `.name` property +// https://tc39.es/ecma262/#sec-function-instances-name +if (DESCRIPTORS && !FUNCTION_NAME_EXISTS) { + defineBuiltInAccessor(FunctionPrototype, NAME, { + configurable: true, + get: function () { + try { + return regExpExec(nameRE, functionToString(this))[1]; + } catch (error) { + return ''; + } + } + }); +} + + +/***/ }), +/* 251 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); + +// `globalThis` object +// https://tc39.es/ecma262/#sec-globalthis +$({ global: true, forced: global.globalThis !== global }, { + globalThis: global +}); + + +/***/ }), +/* 252 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +// JSON[@@toStringTag] property +// https://tc39.es/ecma262/#sec-json-@@tostringtag +setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), +/* 253 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(254); + + +/***/ }), +/* 254 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Map` constructor +// https://tc39.es/ecma262/#sec-map-objects +collection('Map', function (init) { + return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 255 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var defineBuiltIn = __webpack_require__(47); +var InternalMetadataModule = __webpack_require__(256); +var iterate = __webpack_require__(130); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var setToStringTag = __webpack_require__(82); +var inheritIfRequired = __webpack_require__(118); + +module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); + defineBuiltIn(NativePrototype, KEY, + KEY === 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY === 'delete' ? function (key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'get' ? function get(key) { + return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY === 'has' ? function has(key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + } + ); + }; + + var REPLACE = isForced( + CONSTRUCTOR_NAME, + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + })) + ); + + if (REPLACE) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new -- required for testing + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + + // weak collections should not contains .clear method + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported); + + setToStringTag(Constructor, CONSTRUCTOR_NAME); + + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + + return Constructor; +}; + + +/***/ }), +/* 256 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var hiddenKeys = __webpack_require__(54); +var isObject = __webpack_require__(20); +var hasOwn = __webpack_require__(38); +var defineProperty = (__webpack_require__(44).f); +var getOwnPropertyNamesModule = __webpack_require__(57); +var getOwnPropertyNamesExternalModule = __webpack_require__(75); +var isExtensible = __webpack_require__(257); +var uid = __webpack_require__(40); +var FREEZING = __webpack_require__(259); + +var REQUIRED = false; +var METADATA = uid('meta'); +var id = 0; + +var setMetadata = function (it) { + defineProperty(it, METADATA, { value: { + objectID: 'O' + id++, // object ID + weakData: {} // weak collections IDs + } }); +}; + +var fastKey = function (it, create) { + // return a primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMetadata(it); + // return object ID + } return it[METADATA].objectID; +}; + +var getWeakData = function (it, create) { + if (!hasOwn(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMetadata(it); + // return the store of weak collections IDs + } return it[METADATA].weakData; +}; + +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it); + return it; +}; + +var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + $({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: getOwnPropertyNamesExternalModule.f + }); + } +}; + +var meta = module.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData, + onFreeze: onFreeze +}; + +hiddenKeys[METADATA] = true; + + +/***/ }), +/* 257 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isextensible -- safe +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); }); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +module.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) { + if (!isObject(it)) return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + + +/***/ }), +/* 258 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it +var fails = __webpack_require__(7); + +module.exports = fails(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe + if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + + +/***/ }), +/* 259 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing + return Object.isExtensible(Object.preventExtensions({})); +}); + + +/***/ }), +/* 260 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var create = __webpack_require__(71); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var bind = __webpack_require__(84); +var anInstance = __webpack_require__(210); +var isNullOrUndefined = __webpack_require__(17); +var iterate = __webpack_require__(130); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); +var setSpecies = __webpack_require__(193); +var DESCRIPTORS = __webpack_require__(6); +var fastKey = (__webpack_require__(256).fastKey); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS) that.size = 0; + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + // change existing entry + if (entry) { + entry.value = value; + // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (DESCRIPTORS) state.size++; + else that.size++; + // add to index + if (index !== 'F') state.index[index] = entry; + } return that; + }; + + var getEntry = function (that, key) { + var state = getInternalState(that); + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; + // frozen object case + for (entry = state.first; entry; entry = entry.next) { + if (entry.key === key) return entry; + } + }; + + defineBuiltIns(Prototype, { + // `{ Map, Set }.prototype.clear()` methods + // https://tc39.es/ecma262/#sec-map.prototype.clear + // https://tc39.es/ecma262/#sec-set.prototype.clear + clear: function clear() { + var that = this; + var state = getInternalState(that); + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + entry = entry.next; + } + state.first = state.last = undefined; + state.index = create(null); + if (DESCRIPTORS) state.size = 0; + else that.size = 0; + }, + // `{ Map, Set }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.delete + // https://tc39.es/ecma262/#sec-set.prototype.delete + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first === entry) state.first = next; + if (state.last === entry) state.last = prev; + if (DESCRIPTORS) state.size--; + else that.size--; + } return !!entry; + }, + // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods + // https://tc39.es/ecma262/#sec-map.prototype.foreach + // https://tc39.es/ecma262/#sec-set.prototype.foreach + forEach: function forEach(callbackfn /* , that = undefined */) { + var state = getInternalState(this); + var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + } + }, + // `{ Map, Set}.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-map.prototype.has + // https://tc39.es/ecma262/#sec-set.prototype.has + has: function has(key) { + return !!getEntry(this, key); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `Map.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-map.prototype.get + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // `Map.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-map.prototype.set + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // `Set.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-set.prototype.add + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', { + configurable: true, + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods + // https://tc39.es/ecma262/#sec-map.prototype.entries + // https://tc39.es/ecma262/#sec-map.prototype.keys + // https://tc39.es/ecma262/#sec-map.prototype.values + // https://tc39.es/ecma262/#sec-map.prototype-@@iterator + // https://tc39.es/ecma262/#sec-set.prototype.entries + // https://tc39.es/ecma262/#sec-set.prototype.keys + // https://tc39.es/ecma262/#sec-set.prototype.values + // https://tc39.es/ecma262/#sec-set.prototype-@@iterator + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + // revert to the last existing entry + while (entry && entry.removed) entry = entry.previous; + // get next entry + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return createIterResultObject(undefined, true); + } + // return step by kind + if (kind === 'keys') return createIterResultObject(entry.key, false); + if (kind === 'values') return createIterResultObject(entry.value, false); + return createIterResultObject([entry.key, entry.value], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // `{ Map, Set }.prototype[@@species]` accessors + // https://tc39.es/ecma262/#sec-get-map-@@species + // https://tc39.es/ecma262/#sec-get-set-@@species + setSpecies(CONSTRUCTOR_NAME); + } +}; + + +/***/ }), +/* 261 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var iterate = __webpack_require__(130); +var MapHelpers = __webpack_require__(262); +var IS_PURE = __webpack_require__(36); +var fails = __webpack_require__(7); + +var Map = MapHelpers.Map; +var has = MapHelpers.has; +var get = MapHelpers.get; +var set = MapHelpers.set; +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = IS_PURE || fails(function () { + return Map.groupBy('ab', function (it) { + return it; + }).get('a').length !== 1; +}); + +// `Map.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Map', stat: true, forced: IS_PURE || DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var map = new Map(); + var k = 0; + iterate(items, function (value) { + var key = callbackfn(value, k++); + if (!has(map, key)) set(map, key, [value]); + else push(get(map, key), value); + }); + return map; + } +}); + + +/***/ }), +/* 262 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-map -- safe +var MapPrototype = Map.prototype; + +module.exports = { + // eslint-disable-next-line es/no-map -- safe + Map: Map, + set: uncurryThis(MapPrototype.set), + get: uncurryThis(MapPrototype.get), + has: uncurryThis(MapPrototype.has), + remove: uncurryThis(MapPrototype['delete']), + proto: MapPrototype +}; + + +/***/ }), +/* 263 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// eslint-disable-next-line es/no-math-acosh -- required for testing +var $acosh = Math.acosh; +var log = Math.log; +var sqrt = Math.sqrt; +var LN2 = Math.LN2; + +var FORCED = !$acosh + // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 + || Math.floor($acosh(Number.MAX_VALUE)) !== 710 + // Tor Browser bug: Math.acosh(Infinity) -> NaN + || $acosh(Infinity) !== Infinity; + +// `Math.acosh` method +// https://tc39.es/ecma262/#sec-math.acosh +$({ target: 'Math', stat: true, forced: FORCED }, { + acosh: function acosh(x) { + var n = +x; + return n < 1 ? NaN : n > 94906265.62425156 + ? log(n) + LN2 + : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1)); + } +}); + + +/***/ }), +/* 264 */ +/***/ (function(module) { + + +var log = Math.log; + +// `Math.log1p` method implementation +// https://tc39.es/ecma262/#sec-math.log1p +// eslint-disable-next-line es/no-math-log1p -- safe +module.exports = Math.log1p || function log1p(x) { + var n = +x; + return n > -1e-8 && n < 1e-8 ? n - n * n / 2 : log(1 + n); +}; + + +/***/ }), +/* 265 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-asinh -- required for testing +var $asinh = Math.asinh; +var log = Math.log; +var sqrt = Math.sqrt; + +function asinh(x) { + var n = +x; + return !isFinite(n) || n === 0 ? n : n < 0 ? -asinh(-n) : log(n + sqrt(n * n + 1)); +} + +var FORCED = !($asinh && 1 / $asinh(0) > 0); + +// `Math.asinh` method +// https://tc39.es/ecma262/#sec-math.asinh +// Tor Browser bug: Math.asinh(0) -> -0 +$({ target: 'Math', stat: true, forced: FORCED }, { + asinh: asinh +}); + + +/***/ }), +/* 266 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-atanh -- required for testing +var $atanh = Math.atanh; +var log = Math.log; + +var FORCED = !($atanh && 1 / $atanh(-0) < 0); + +// `Math.atanh` method +// https://tc39.es/ecma262/#sec-math.atanh +// Tor Browser bug: Math.atanh(-0) -> 0 +$({ target: 'Math', stat: true, forced: FORCED }, { + atanh: function atanh(x) { + var n = +x; + return n === 0 ? n : log((1 + n) / (1 - n)) / 2; + } +}); + + +/***/ }), +/* 267 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +var abs = Math.abs; +var pow = Math.pow; + +// `Math.cbrt` method +// https://tc39.es/ecma262/#sec-math.cbrt +$({ target: 'Math', stat: true }, { + cbrt: function cbrt(x) { + var n = +x; + return sign(n) * pow(abs(n), 1 / 3); + } +}); + + +/***/ }), +/* 268 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var floor = Math.floor; +var log = Math.log; +var LOG2E = Math.LOG2E; + +// `Math.clz32` method +// https://tc39.es/ecma262/#sec-math.clz32 +$({ target: 'Math', stat: true }, { + clz32: function clz32(x) { + var n = x >>> 0; + return n ? 31 - floor(log(n + 0.5) * LOG2E) : 32; + } +}); + + +/***/ }), +/* 269 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// eslint-disable-next-line es/no-math-cosh -- required for testing +var $cosh = Math.cosh; +var abs = Math.abs; +var E = Math.E; + +var FORCED = !$cosh || $cosh(710) === Infinity; + +// `Math.cosh` method +// https://tc39.es/ecma262/#sec-math.cosh +$({ target: 'Math', stat: true, forced: FORCED }, { + cosh: function cosh(x) { + var t = expm1(abs(x) - 1) + 1; + return (t + 1 / (t * E * E)) * (E / 2); + } +}); + + +/***/ }), +/* 270 */ +/***/ (function(module) { + + +// eslint-disable-next-line es/no-math-expm1 -- safe +var $expm1 = Math.expm1; +var exp = Math.exp; + +// `Math.expm1` method implementation +// https://tc39.es/ecma262/#sec-math.expm1 +module.exports = (!$expm1 + // Old FF bug + // eslint-disable-next-line no-loss-of-precision -- required for old engines + || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 + // Tor Browser bug + || $expm1(-2e-17) !== -2e-17 +) ? function expm1(x) { + var n = +x; + return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1; +} : $expm1; + + +/***/ }), +/* 271 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +// `Math.expm1` method +// https://tc39.es/ecma262/#sec-math.expm1 +// eslint-disable-next-line es/no-math-expm1 -- required for testing +$({ target: 'Math', stat: true, forced: expm1 !== Math.expm1 }, { expm1: expm1 }); + + +/***/ }), +/* 272 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fround = __webpack_require__(212); + +// `Math.fround` method +// https://tc39.es/ecma262/#sec-math.fround +$({ target: 'Math', stat: true }, { fround: fround }); + + +/***/ }), +/* 273 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// eslint-disable-next-line es/no-math-hypot -- required for testing +var $hypot = Math.hypot; +var abs = Math.abs; +var sqrt = Math.sqrt; + +// Chrome 77 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=9546 +var FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity; + +// `Math.hypot` method +// https://tc39.es/ecma262/#sec-math.hypot +$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + hypot: function hypot(value1, value2) { + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + while (i < aLen) { + arg = abs(arguments[i++]); + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + return larg === Infinity ? Infinity : larg * sqrt(sum); + } +}); + + +/***/ }), +/* 274 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-math-imul -- required for testing +var $imul = Math.imul; + +var FORCED = fails(function () { + return $imul(0xFFFFFFFF, 5) !== -5 || $imul.length !== 2; +}); + +// `Math.imul` method +// https://tc39.es/ecma262/#sec-math.imul +// some WebKit versions fails with big numbers, some has wrong arity +$({ target: 'Math', stat: true, forced: FORCED }, { + imul: function imul(x, y) { + var UINT16 = 0xFFFF; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } +}); + + +/***/ }), +/* 275 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log10 = __webpack_require__(276); + +// `Math.log10` method +// https://tc39.es/ecma262/#sec-math.log10 +$({ target: 'Math', stat: true }, { + log10: log10 +}); + + +/***/ }), +/* 276 */ +/***/ (function(module) { + + +var log = Math.log; +var LOG10E = Math.LOG10E; + +// eslint-disable-next-line es/no-math-log10 -- safe +module.exports = Math.log10 || function log10(x) { + return log(x) * LOG10E; +}; + + +/***/ }), +/* 277 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var log1p = __webpack_require__(264); + +// `Math.log1p` method +// https://tc39.es/ecma262/#sec-math.log1p +$({ target: 'Math', stat: true }, { log1p: log1p }); + + +/***/ }), +/* 278 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +var log = Math.log; +var LN2 = Math.LN2; + +// `Math.log2` method +// https://tc39.es/ecma262/#sec-math.log2 +$({ target: 'Math', stat: true }, { + log2: function log2(x) { + return log(x) / LN2; + } +}); + + +/***/ }), +/* 279 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var sign = __webpack_require__(214); + +// `Math.sign` method +// https://tc39.es/ecma262/#sec-math.sign +$({ target: 'Math', stat: true }, { + sign: sign +}); + + +/***/ }), +/* 280 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var expm1 = __webpack_require__(270); + +var abs = Math.abs; +var exp = Math.exp; +var E = Math.E; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-math-sinh -- required for testing + return Math.sinh(-2e-17) !== -2e-17; +}); + +// `Math.sinh` method +// https://tc39.es/ecma262/#sec-math.sinh +// V8 near Chromium 38 has a problem with very small numbers +$({ target: 'Math', stat: true, forced: FORCED }, { + sinh: function sinh(x) { + var n = +x; + return abs(n) < 1 ? (expm1(n) - expm1(-n)) / 2 : (exp(n - 1) - exp(-n - 1)) * (E / 2); + } +}); + + +/***/ }), +/* 281 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var expm1 = __webpack_require__(270); + +var exp = Math.exp; + +// `Math.tanh` method +// https://tc39.es/ecma262/#sec-math.tanh +$({ target: 'Math', stat: true }, { + tanh: function tanh(x) { + var n = +x; + var a = expm1(n); + var b = expm1(-n); + return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (exp(n) + exp(-n)); + } +}); + + +/***/ }), +/* 282 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var setToStringTag = __webpack_require__(82); + +// Math[@@toStringTag] property +// https://tc39.es/ecma262/#sec-math-@@tostringtag +setToStringTag(Math, 'Math', true); + + +/***/ }), +/* 283 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trunc = __webpack_require__(62); + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +$({ target: 'Math', stat: true }, { + trunc: trunc +}); + + +/***/ }), +/* 284 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var path = __webpack_require__(80); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var hasOwn = __webpack_require__(38); +var inheritIfRequired = __webpack_require__(118); +var isPrototypeOf = __webpack_require__(24); +var isSymbol = __webpack_require__(22); +var toPrimitive = __webpack_require__(19); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(57).f); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var defineProperty = (__webpack_require__(44).f); +var thisNumberValue = __webpack_require__(285); +var trim = (__webpack_require__(286).trim); + +var NUMBER = 'Number'; +var NativeNumber = global[NUMBER]; +var PureNumberNamespace = path[NUMBER]; +var NumberPrototype = NativeNumber.prototype; +var TypeError = global.TypeError; +var stringSlice = uncurryThis(''.slice); +var charCodeAt = uncurryThis(''.charCodeAt); + +// `ToNumeric` abstract operation +// https://tc39.es/ecma262/#sec-tonumeric +var toNumeric = function (value) { + var primValue = toPrimitive(value, 'number'); + return typeof primValue == 'bigint' ? primValue : toNumber(primValue); +}; + +// `ToNumber` abstract operation +// https://tc39.es/ecma262/#sec-tonumber +var toNumber = function (argument) { + var it = toPrimitive(argument, 'number'); + var first, third, radix, maxCode, digits, length, index, code; + if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number'); + if (typeof it == 'string' && it.length > 2) { + it = trim(it); + first = charCodeAt(it, 0); + if (first === 43 || first === 45) { + third = charCodeAt(it, 2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (charCodeAt(it, 1)) { + // fast equal of /^0b[01]+$/i + case 66: + case 98: + radix = 2; + maxCode = 49; + break; + // fast equal of /^0o[0-7]+$/i + case 79: + case 111: + radix = 8; + maxCode = 55; + break; + default: + return +it; + } + digits = stringSlice(it, 2); + length = digits.length; + for (index = 0; index < length; index++) { + code = charCodeAt(digits, index); + // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + if (code < 48 || code > maxCode) return NaN; + } return parseInt(digits, radix); + } + } return +it; +}; + +var FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1')); + +var calledWithNew = function (dummy) { + // includes check on 1..constructor(foo) case + return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); }); +}; + +// `Number` constructor +// https://tc39.es/ecma262/#sec-number-constructor +var NumberWrapper = function Number(value) { + var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value)); + return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n; +}; + +NumberWrapper.prototype = NumberPrototype; +if (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper; + +$({ global: true, constructor: true, wrap: true, forced: FORCED }, { + Number: NumberWrapper +}); + +// Use `internal/copy-constructor-properties` helper in `core-js@4` +var copyConstructorProperties = function (target, source) { + for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : ( + // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + + // ES2015 (in case, if modules with ES2015 Number statics required before): + 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' + + // ESNext + 'fromString,range' + ).split(','), j = 0, key; keys.length > j; j++) { + if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +if (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace); +if (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber); + + +/***/ }), +/* 285 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// `thisNumberValue` abstract operation +// https://tc39.es/ecma262/#sec-thisnumbervalue +module.exports = uncurryThis(1.0.valueOf); + + +/***/ }), +/* 286 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var whitespaces = __webpack_require__(287); + +var replace = uncurryThis(''.replace); +var ltrim = RegExp('^[' + whitespaces + ']+'); +var rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod = function (TYPE) { + return function ($this) { + var string = toString(requireObjectCoercible($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, '$1'); + return string; + }; +}; + +module.exports = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) +}; + + +/***/ }), +/* 287 */ +/***/ (function(module) { + + +// a string of all valid unicode whitespaces +module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), +/* 288 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.EPSILON` constant +// https://tc39.es/ecma262/#sec-number.epsilon +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + EPSILON: Math.pow(2, -52) +}); + + +/***/ }), +/* 289 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var numberIsFinite = __webpack_require__(290); + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +$({ target: 'Number', stat: true }, { isFinite: numberIsFinite }); + + +/***/ }), +/* 290 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +var globalIsFinite = global.isFinite; + +// `Number.isFinite` method +// https://tc39.es/ecma262/#sec-number.isfinite +// eslint-disable-next-line es/no-number-isfinite -- safe +module.exports = Number.isFinite || function isFinite(it) { + return typeof it == 'number' && globalIsFinite(it); +}; + + +/***/ }), +/* 291 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +// `Number.isInteger` method +// https://tc39.es/ecma262/#sec-number.isinteger +$({ target: 'Number', stat: true }, { + isInteger: isIntegralNumber +}); + + +/***/ }), +/* 292 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); + +var floor = Math.floor; + +// `IsIntegralNumber` abstract operation +// https://tc39.es/ecma262/#sec-isintegralnumber +// eslint-disable-next-line es/no-number-isinteger -- safe +module.exports = Number.isInteger || function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + + +/***/ }), +/* 293 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.isNaN` method +// https://tc39.es/ecma262/#sec-number.isnan +$({ target: 'Number', stat: true }, { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number; + } +}); + + +/***/ }), +/* 294 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isIntegralNumber = __webpack_require__(292); + +var abs = Math.abs; + +// `Number.isSafeInteger` method +// https://tc39.es/ecma262/#sec-number.issafeinteger +$({ target: 'Number', stat: true }, { + isSafeInteger: function isSafeInteger(number) { + return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF; + } +}); + + +/***/ }), +/* 295 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MAX_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.max_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 296 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Number.MIN_SAFE_INTEGER` constant +// https://tc39.es/ecma262/#sec-number.min_safe_integer +$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, { + MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF +}); + + +/***/ }), +/* 297 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseFloat = __webpack_require__(298); + +// `Number.parseFloat` method +// https://tc39.es/ecma262/#sec-number.parseFloat +// eslint-disable-next-line es/no-number-parsefloat -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseFloat !== parseFloat }, { + parseFloat: parseFloat +}); + + +/***/ }), +/* 298 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var charAt = uncurryThis(''.charAt); +var $parseFloat = global.parseFloat; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); })); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +module.exports = FORCED ? function parseFloat(string) { + var trimmedString = trim(toString(string)); + var result = $parseFloat(trimmedString); + return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result; +} : $parseFloat; + + +/***/ }), +/* 299 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var parseInt = __webpack_require__(300); + +// `Number.parseInt` method +// https://tc39.es/ecma262/#sec-number.parseint +// eslint-disable-next-line es/no-number-parseint -- required for testing +$({ target: 'Number', stat: true, forced: Number.parseInt !== parseInt }, { + parseInt: parseInt +}); + + +/***/ }), +/* 300 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var trim = (__webpack_require__(286).trim); +var whitespaces = __webpack_require__(287); + +var $parseInt = global.parseInt; +var Symbol = global.Symbol; +var ITERATOR = Symbol && Symbol.iterator; +var hex = /^[+-]?0x/i; +var exec = uncurryThis(hex.exec); +var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); })); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +module.exports = FORCED ? function parseInt(string, radix) { + var S = trim(toString(string)); + return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); +} : $parseInt; + + +/***/ }), +/* 301 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var log10 = __webpack_require__(276); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var $isFinite = isFinite; +var abs = Math.abs; +var floor = Math.floor; +var pow = Math.pow; +var round = Math.round; +var nativeToExponential = uncurryThis(1.0.toExponential); +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); + +// Edge 17- +var ROUNDS_PROPERLY = nativeToExponential(-6.9e-11, 4) === '-6.9000e-11' + // IE11- && Edge 14- + && nativeToExponential(1.255, 2) === '1.25e+0' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(12345, 3) === '1.235e+4' + // FF86-, V8 ~ Chrome 49-50 + && nativeToExponential(25, 0) === '3e+1'; + +// IE8- +var throwsOnInfinityFraction = function () { + return fails(function () { + nativeToExponential(1, Infinity); + }) && fails(function () { + nativeToExponential(1, -Infinity); + }); +}; + +// Safari <11 && FF <50 +var properNonFiniteThisCheck = function () { + return !fails(function () { + nativeToExponential(Infinity, Infinity); + nativeToExponential(NaN, Infinity); + }); +}; + +var FORCED = !ROUNDS_PROPERLY || !throwsOnInfinityFraction() || !properNonFiniteThisCheck(); + +// `Number.prototype.toExponential` method +// https://tc39.es/ecma262/#sec-number.prototype.toexponential +$({ target: 'Number', proto: true, forced: FORCED }, { + toExponential: function toExponential(fractionDigits) { + var x = thisNumberValue(this); + if (fractionDigits === undefined) return nativeToExponential(x); + var f = toIntegerOrInfinity(fractionDigits); + if (!$isFinite(x)) return String(x); + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (f < 0 || f > 20) throw new $RangeError('Incorrect fraction digits'); + if (ROUNDS_PROPERLY) return nativeToExponential(x, f); + var s = ''; + var m = ''; + var e = 0; + var c = ''; + var d = ''; + if (x < 0) { + s = '-'; + x = -x; + } + if (x === 0) { + e = 0; + m = repeat('0', f + 1); + } else { + // this block is based on https://gist.github.com/SheetJSDev/1100ad56b9f856c95299ed0e068eea08 + // TODO: improve accuracy with big fraction digits + var l = log10(x); + e = floor(l); + var n = 0; + var w = pow(10, e - f); + n = round(x / w); + if (2 * x >= (2 * n + 1) * w) { + n += 1; + } + if (n >= pow(10, f + 1)) { + n /= 10; + e += 1; + } + m = $String(n); + } + if (f !== 0) { + m = stringSlice(m, 0, 1) + '.' + stringSlice(m, 1); + } + if (e === 0) { + c = '+'; + d = '0'; + } else { + c = e > 0 ? '+' : '-'; + d = $String(abs(e)); + } + m += 'e' + c + d; + return s + m; + } +}); + + +/***/ }), +/* 302 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var thisNumberValue = __webpack_require__(285); +var $repeat = __webpack_require__(241); +var fails = __webpack_require__(7); + +var $RangeError = RangeError; +var $String = String; +var floor = Math.floor; +var repeat = uncurryThis($repeat); +var stringSlice = uncurryThis(''.slice); +var nativeToFixed = uncurryThis(1.0.toFixed); + +var pow = function (x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); +}; + +var log = function (x) { + var n = 0; + var x2 = x; + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + while (x2 >= 2) { + n += 1; + x2 /= 2; + } return n; +}; + +var multiply = function (data, n, c) { + var index = -1; + var c2 = c; + while (++index < 6) { + c2 += n * data[index]; + data[index] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } +}; + +var divide = function (data, n) { + var index = 6; + var c = 0; + while (--index >= 0) { + c += data[index]; + data[index] = floor(c / n); + c = (c % n) * 1e7; + } +}; + +var dataToString = function (data) { + var index = 6; + var s = ''; + while (--index >= 0) { + if (s !== '' || index === 0 || data[index] !== 0) { + var t = $String(data[index]); + s = s === '' ? t : s + repeat('0', 7 - t.length) + t; + } + } return s; +}; + +var FORCED = fails(function () { + return nativeToFixed(0.00008, 3) !== '0.000' || + nativeToFixed(0.9, 0) !== '1' || + nativeToFixed(1.255, 2) !== '1.25' || + nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToFixed({}); +}); + +// `Number.prototype.toFixed` method +// https://tc39.es/ecma262/#sec-number.prototype.tofixed +$({ target: 'Number', proto: true, forced: FORCED }, { + toFixed: function toFixed(fractionDigits) { + var number = thisNumberValue(this); + var fractDigits = toIntegerOrInfinity(fractionDigits); + var data = [0, 0, 0, 0, 0, 0]; + var sign = ''; + var result = '0'; + var e, z, j, k; + + // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation + if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits'); + // eslint-disable-next-line no-self-compare -- NaN check + if (number !== number) return 'NaN'; + if (number <= -1e21 || number >= 1e21) return $String(number); + if (number < 0) { + sign = '-'; + number = -number; + } + if (number > 1e-21) { + e = log(number * pow(2, 69, 1)) - 69; + z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + if (e > 0) { + multiply(data, 0, z); + j = fractDigits; + while (j >= 7) { + multiply(data, 1e7, 0); + j -= 7; + } + multiply(data, pow(10, j, 1), 0); + j = e - 1; + while (j >= 23) { + divide(data, 1 << 23); + j -= 23; + } + divide(data, 1 << j); + multiply(data, 1, 1); + divide(data, 2); + result = dataToString(data); + } else { + multiply(data, 0, z); + multiply(data, 1 << -e, 0); + result = dataToString(data) + repeat('0', fractDigits); + } + } + if (fractDigits > 0) { + k = result.length; + result = sign + (k <= fractDigits + ? '0.' + repeat('0', fractDigits - k) + result + : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits)); + } else { + result = sign + result; + } return result; + } +}); + + +/***/ }), +/* 303 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var thisNumberValue = __webpack_require__(285); + +var nativeToPrecision = uncurryThis(1.0.toPrecision); + +var FORCED = fails(function () { + // IE7- + return nativeToPrecision(1, undefined) !== '1'; +}) || !fails(function () { + // V8 ~ Android 4.3- + nativeToPrecision({}); +}); + +// `Number.prototype.toPrecision` method +// https://tc39.es/ecma262/#sec-number.prototype.toprecision +$({ target: 'Number', proto: true, forced: FORCED }, { + toPrecision: function toPrecision(precision) { + return precision === undefined + ? nativeToPrecision(thisNumberValue(this)) + : nativeToPrecision(thisNumberValue(this), precision); + } +}); + + +/***/ }), +/* 304 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var assign = __webpack_require__(305); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +// eslint-disable-next-line es/no-object-assign -- required for testing +$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, { + assign: assign +}); + + +/***/ }), +/* 305 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var objectKeys = __webpack_require__(73); +var getOwnPropertySymbolsModule = __webpack_require__(66); +var propertyIsEnumerableModule = __webpack_require__(10); +var toObject = __webpack_require__(39); +var IndexedObject = __webpack_require__(13); + +// eslint-disable-next-line es/no-object-assign -- safe +var $assign = Object.assign; +// eslint-disable-next-line es/no-object-defineproperty -- required for testing +var defineProperty = Object.defineProperty; +var concat = uncurryThis([].concat); + +// `Object.assign` method +// https://tc39.es/ecma262/#sec-object.assign +module.exports = !$assign || fails(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + + +/***/ }), +/* 306 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var create = __webpack_require__(71); + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + create: create +}); + + +/***/ }), +/* 307 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineGetter__: function __defineGetter__(P, getter) { + definePropertyModule.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 308 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var WEBKIT = __webpack_require__(191); + +// Forced replacement object prototype accessors methods +module.exports = IS_PURE || !fails(function () { + // This feature detection crashes old WebKit + // https://github.com/zloirock/core-js/issues/232 + if (WEBKIT && WEBKIT < 535) return; + var key = Math.random(); + // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call, es/no-legacy-object-prototype-accessor-methods -- required for testing + __defineSetter__.call(null, key, function () { /* empty */ }); + delete global[key]; +}); + + +/***/ }), +/* 309 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperties = (__webpack_require__(72).f); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, { + defineProperties: defineProperties +}); + + +/***/ }), +/* 310 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var defineProperty = (__webpack_require__(44).f); + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +// eslint-disable-next-line es/no-object-defineproperty -- safe +$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, { + defineProperty: defineProperty +}); + + +/***/ }), +/* 311 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var aCallable = __webpack_require__(30); +var toObject = __webpack_require__(39); +var definePropertyModule = __webpack_require__(44); + +// `Object.prototype.__defineSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __defineSetter__: function __defineSetter__(P, setter) { + definePropertyModule.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true }); + } + }); +} + + +/***/ }), +/* 312 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $entries = (__webpack_require__(313).entries); + +// `Object.entries` method +// https://tc39.es/ecma262/#sec-object.entries +$({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } +}); + + +/***/ }), +/* 313 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var objectGetPrototypeOf = __webpack_require__(128); +var objectKeys = __webpack_require__(73); +var toIndexedObject = __webpack_require__(12); +var $propertyIsEnumerable = (__webpack_require__(10).f); + +var propertyIsEnumerable = uncurryThis($propertyIsEnumerable); +var push = uncurryThis([].push); + +// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys +// of `null` prototype objects +var IE_BUG = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-create -- safe + var O = Object.create(null); + O[2] = 2; + return !propertyIsEnumerable(O, 2); +}); + +// `Object.{ entries, values }` methods implementation +var createMethod = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + push(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; +}; + +module.exports = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod(false) +}; + + +/***/ }), +/* 314 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); + +// eslint-disable-next-line es/no-object-freeze -- safe +var $freeze = Object.freeze; +var FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); }); + +// `Object.freeze` method +// https://tc39.es/ecma262/#sec-object.freeze +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + freeze: function freeze(it) { + return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 315 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var iterate = __webpack_require__(130); +var createProperty = __webpack_require__(141); + +// `Object.fromEntries` method +// https://github.com/tc39/proposal-object-from-entries +$({ target: 'Object', stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function (k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } +}); + + +/***/ }), +/* 316 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toIndexedObject = __webpack_require__(12); +var nativeGetOwnPropertyDescriptor = (__webpack_require__(5).f); +var DESCRIPTORS = __webpack_require__(6); + +var FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); }); + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { + return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key); + } +}); + + +/***/ }), +/* 317 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var ownKeys = __webpack_require__(56); +var toIndexedObject = __webpack_require__(12); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var createProperty = __webpack_require__(141); + +// `Object.getOwnPropertyDescriptors` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors +$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIndexedObject(object); + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + var keys = ownKeys(O); + var result = {}; + var index = 0; + var key, descriptor; + while (keys.length > index) { + descriptor = getOwnPropertyDescriptor(O, key = keys[index++]); + if (descriptor !== undefined) createProperty(result, key, descriptor); + } + return result; + } +}); + + +/***/ }), +/* 318 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var getOwnPropertyNames = (__webpack_require__(75).f); + +// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing +var FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); }); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + getOwnPropertyNames: getOwnPropertyNames +}); + + +/***/ }), +/* 319 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var toObject = __webpack_require__(39); +var nativeGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); }); + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(it) { + return nativeGetPrototypeOf(toObject(it)); + } +}); + + + +/***/ }), +/* 320 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var requireObjectCoercible = __webpack_require__(16); +var toPropertyKey = __webpack_require__(18); +var iterate = __webpack_require__(130); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-map-groupby -- testing +var nativeGroupBy = Object.groupBy; +var create = getBuiltIn('Object', 'create'); +var push = uncurryThis([].push); + +var DOES_NOT_WORK_WITH_PRIMITIVES = !nativeGroupBy || fails(function () { + return nativeGroupBy('ab', function (it) { + return it; + }).a.length !== 1; +}); + +// `Object.groupBy` method +// https://github.com/tc39/proposal-array-grouping +$({ target: 'Object', stat: true, forced: DOES_NOT_WORK_WITH_PRIMITIVES }, { + groupBy: function groupBy(items, callbackfn) { + requireObjectCoercible(items); + aCallable(callbackfn); + var obj = create(null); + var k = 0; + iterate(items, function (value) { + var key = toPropertyKey(callbackfn(value, k++)); + // in some IE versions, `hasOwnProperty` returns incorrect result on integer keys + // but since it's a `null` prototype object, we can safely use `in` + if (key in obj) push(obj[key], value); + else obj[key] = [value]; + }); + return obj; + } +}); + + +/***/ }), +/* 321 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var hasOwn = __webpack_require__(38); + +// `Object.hasOwn` method +// https://tc39.es/ecma262/#sec-object.hasown +$({ target: 'Object', stat: true }, { + hasOwn: hasOwn +}); + + +/***/ }), +/* 322 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var is = __webpack_require__(323); + +// `Object.is` method +// https://tc39.es/ecma262/#sec-object.is +$({ target: 'Object', stat: true }, { + is: is +}); + + +/***/ }), +/* 323 */ +/***/ (function(module) { + + +// `SameValue` abstract operation +// https://tc39.es/ecma262/#sec-samevalue +// eslint-disable-next-line es/no-object-is -- safe +module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x !== x && y !== y; +}; + + +/***/ }), +/* 324 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $isExtensible = __webpack_require__(257); + +// `Object.isExtensible` method +// https://tc39.es/ecma262/#sec-object.isextensible +// eslint-disable-next-line es/no-object-isextensible -- safe +$({ target: 'Object', stat: true, forced: Object.isExtensible !== $isExtensible }, { + isExtensible: $isExtensible +}); + + +/***/ }), +/* 325 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-isfrozen -- safe +var $isFrozen = Object.isFrozen; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isFrozen(1); }); + +// `Object.isFrozen` method +// https://tc39.es/ecma262/#sec-object.isfrozen +$({ target: 'Object', stat: true, forced: FORCED }, { + isFrozen: function isFrozen(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isFrozen ? $isFrozen(it) : false; + } +}); + + +/***/ }), +/* 326 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var ARRAY_BUFFER_NON_EXTENSIBLE = __webpack_require__(258); + +// eslint-disable-next-line es/no-object-issealed -- safe +var $isSealed = Object.isSealed; + +var FORCED = ARRAY_BUFFER_NON_EXTENSIBLE || fails(function () { $isSealed(1); }); + +// `Object.isSealed` method +// https://tc39.es/ecma262/#sec-object.issealed +$({ target: 'Object', stat: true, forced: FORCED }, { + isSealed: function isSealed(it) { + if (!isObject(it)) return true; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return true; + return $isSealed ? $isSealed(it) : false; + } +}); + + +/***/ }), +/* 327 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var toObject = __webpack_require__(39); +var nativeKeys = __webpack_require__(73); +var fails = __webpack_require__(7); + +var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); }); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, { + keys: function keys(it) { + return nativeKeys(toObject(it)); + } +}); + + +/***/ }), +/* 328 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupGetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.get; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 329 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var FORCED = __webpack_require__(308); +var toObject = __webpack_require__(39); +var toPropertyKey = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(128); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Object.prototype.__lookupSetter__` method +// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__ +if (DESCRIPTORS) { + $({ target: 'Object', proto: true, forced: FORCED }, { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var key = toPropertyKey(P); + var desc; + do { + if (desc = getOwnPropertyDescriptor(O, key)) return desc.set; + } while (O = getPrototypeOf(O)); + } + }); +} + + +/***/ }), +/* 330 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-preventextensions -- safe +var $preventExtensions = Object.preventExtensions; +var FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); }); + +// `Object.preventExtensions` method +// https://tc39.es/ecma262/#sec-object.preventextensions +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + preventExtensions: function preventExtensions(it) { + return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 331 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var isObject = __webpack_require__(20); +var isPossiblePrototype = __webpack_require__(116); +var toObject = __webpack_require__(39); +var requireObjectCoercible = __webpack_require__(16); + +// eslint-disable-next-line es/no-object-getprototypeof -- safe +var getPrototypeOf = Object.getPrototypeOf; +// eslint-disable-next-line es/no-object-setprototypeof -- safe +var setPrototypeOf = Object.setPrototypeOf; +var ObjectPrototype = Object.prototype; +var PROTO = '__proto__'; + +// `Object.prototype.__proto__` accessor +// https://tc39.es/ecma262/#sec-object.prototype.__proto__ +if (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try { + defineBuiltInAccessor(ObjectPrototype, PROTO, { + configurable: true, + get: function __proto__() { + return getPrototypeOf(toObject(this)); + }, + set: function __proto__(proto) { + var O = requireObjectCoercible(this); + if (isPossiblePrototype(proto) && isObject(O)) { + setPrototypeOf(O, proto); + } + } + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 332 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isObject = __webpack_require__(20); +var onFreeze = (__webpack_require__(256).onFreeze); +var FREEZING = __webpack_require__(259); +var fails = __webpack_require__(7); + +// eslint-disable-next-line es/no-object-seal -- safe +var $seal = Object.seal; +var FAILS_ON_PRIMITIVES = fails(function () { $seal(1); }); + +// `Object.seal` method +// https://tc39.es/ecma262/#sec-object.seal +$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, { + seal: function seal(it) { + return $seal && isObject(it) ? $seal(onFreeze(it)) : it; + } +}); + + +/***/ }), +/* 333 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var setPrototypeOf = __webpack_require__(113); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +$({ target: 'Object', stat: true }, { + setPrototypeOf: setPrototypeOf +}); + + +/***/ }), +/* 334 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var defineBuiltIn = __webpack_require__(47); +var toString = __webpack_require__(335); + +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true }); +} + + +/***/ }), +/* 335 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(70); +var classof = __webpack_require__(69); + +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; +}; + + +/***/ }), +/* 336 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $values = (__webpack_require__(313).values); + +// `Object.values` method +// https://tc39.es/ecma262/#sec-object.values +$({ target: 'Object', stat: true }, { + values: function values(O) { + return $values(O); + } +}); + + +/***/ }), +/* 337 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseFloat = __webpack_require__(298); + +// `parseFloat` method +// https://tc39.es/ecma262/#sec-parsefloat-string +$({ global: true, forced: parseFloat !== $parseFloat }, { + parseFloat: $parseFloat +}); + + +/***/ }), +/* 338 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $parseInt = __webpack_require__(300); + +// `parseInt` method +// https://tc39.es/ecma262/#sec-parseint-string-radix +$({ global: true, forced: parseInt !== $parseInt }, { + parseInt: $parseInt +}); + + +/***/ }), +/* 339 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(340); +__webpack_require__(354); +__webpack_require__(356); +__webpack_require__(357); +__webpack_require__(358); +__webpack_require__(359); + + +/***/ }), +/* 340 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var IS_NODE = __webpack_require__(182); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var setPrototypeOf = __webpack_require__(113); +var setToStringTag = __webpack_require__(82); +var setSpecies = __webpack_require__(193); +var aCallable = __webpack_require__(30); +var isCallable = __webpack_require__(21); +var isObject = __webpack_require__(20); +var anInstance = __webpack_require__(210); +var speciesConstructor = __webpack_require__(219); +var task = (__webpack_require__(341).set); +var microtask = __webpack_require__(344); +var hostReportErrors = __webpack_require__(349); +var perform = __webpack_require__(350); +var Queue = __webpack_require__(346); +var InternalStateModule = __webpack_require__(51); +var NativePromiseConstructor = __webpack_require__(351); +var PromiseConstructorDetection = __webpack_require__(352); +var newPromiseCapabilityModule = __webpack_require__(353); + +var PROMISE = 'Promise'; +var FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR; +var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; +var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; +var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); +var setInternalState = InternalStateModule.set; +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var PromiseConstructor = NativePromiseConstructor; +var PromisePrototype = NativePromisePrototype; +var TypeError = global.TypeError; +var document = global.document; +var process = global.process; +var newPromiseCapability = newPromiseCapabilityModule.f; +var newGenericPromiseCapability = newPromiseCapability; + +var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; + +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +// helpers +var isThenable = function (it) { + var then; + return isObject(it) && isCallable(then = it.then) ? then : false; +}; + +var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state === FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(new TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform(function () { + if (IS_NODE) { + process.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + call(task, global, function () { + var promise = state.facade; + if (IS_NODE) { + process.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw new TypeError("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call(then, value, + bind(internalResolve, wrapper, state), + bind(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED_PROMISE_CONSTRUCTOR) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromisePrototype); + aCallable(executor); + call(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind(internalResolve, state), bind(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; + + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable(onRejected) && onRejected; + reaction.domain = IS_NODE ? process.domain : undefined; + if (state.state === PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); + + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind(internalResolve, state); + this.reject = bind(internalReject, state); + }; + + newPromiseCapabilityModule.f = newPromiseCapability = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) { + nativeThen = NativePromisePrototype.then; + + if (!NATIVE_PROMISE_SUBCLASSING) { + // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs + defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + call(nativeThen, that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + } + + // make `.constructor === Promise` work for native promise-based APIs + try { + delete NativePromisePrototype.constructor; + } catch (error) { /* empty */ } + + // make `instanceof Promise` work for native promise-based APIs + if (setPrototypeOf) { + setPrototypeOf(NativePromisePrototype, PromisePrototype); + } + } +} + +$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + Promise: PromiseConstructor +}); + +setToStringTag(PromiseConstructor, PROMISE, false, true); +setSpecies(PROMISE); + + +/***/ }), +/* 341 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var bind = __webpack_require__(84); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var fails = __webpack_require__(7); +var html = __webpack_require__(74); +var arraySlice = __webpack_require__(76); +var createElement = __webpack_require__(42); +var validateArgumentsLength = __webpack_require__(342); +var IS_IOS = __webpack_require__(343); +var IS_NODE = __webpack_require__(182); + +var set = global.setImmediate; +var clear = global.clearImmediate; +var process = global.process; +var Dispatch = global.Dispatch; +var Function = global.Function; +var MessageChannel = global.MessageChannel; +var String = global.String; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var $location, defer, channel, port; + +fails(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global.location; +}); + +var run = function (id) { + if (hasOwn(queue, id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var eventListener = function (event) { + run(event.data); +}; + +var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global.postMessage(String(id), $location.protocol + '//' + $location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable(handler) ? handler : Function(handler); + var args = arraySlice(arguments, 1); + queue[++counter] = function () { + apply(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue[id]; + }; + // Node.js 0.8- + if (IS_NODE) { + defer = function (id) { + process.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global.addEventListener && + isCallable(global.postMessage) && + !global.importScripts && + $location && $location.protocol !== 'file:' && + !fails(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +module.exports = { + set: set, + clear: clear +}; + + +/***/ }), +/* 342 */ +/***/ (function(module) { + + +var $TypeError = TypeError; + +module.exports = function (passed, required) { + if (passed < required) throw new $TypeError('Not enough arguments'); + return passed; +}; + + +/***/ }), +/* 343 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +// eslint-disable-next-line redos/no-vulnerable -- safe +module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent); + + +/***/ }), +/* 344 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var bind = __webpack_require__(84); +var macrotask = (__webpack_require__(341).set); +var Queue = __webpack_require__(346); +var IS_IOS = __webpack_require__(343); +var IS_IOS_PEBBLE = __webpack_require__(347); +var IS_WEBOS_WEBKIT = __webpack_require__(348); +var IS_NODE = __webpack_require__(182); + +var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; +var document = global.document; +var process = global.process; +var Promise = global.Promise; +var microtask = safeGetBuiltIn('queueMicrotask'); +var notify, toggle, node, promise, then; + +// modern engines have queueMicrotask method +if (!microtask) { + var queue = new Queue(); + + var flush = function () { + var parent, fn; + if (IS_NODE && (parent = process.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify(); + throw error; + } + if (parent) parent.enter(); + }; + + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { + toggle = true; + node = document.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise.constructor = Promise; + then = bind(promise.then, promise); + notify = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE) { + notify = function () { + process.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind(macrotask, global); + notify = function () { + macrotask(flush); + }; + } + + microtask = function (fn) { + if (!queue.head) notify(); + queue.add(fn); + }; +} + +module.exports = microtask; + + +/***/ }), +/* 345 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Avoid NodeJS experimental warning +module.exports = function (name) { + if (!DESCRIPTORS) return global[name]; + var descriptor = getOwnPropertyDescriptor(global, name); + return descriptor && descriptor.value; +}; + + +/***/ }), +/* 346 */ +/***/ (function(module) { + + +var Queue = function () { + this.head = null; + this.tail = null; +}; + +Queue.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } +}; + +module.exports = Queue; + + +/***/ }), +/* 347 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined'; + + +/***/ }), +/* 348 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var userAgent = __webpack_require__(28); + +module.exports = /web0s(?!.*chrome)/i.test(userAgent); + + +/***/ }), +/* 349 */ +/***/ (function(module) { + + +module.exports = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length === 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } +}; + + +/***/ }), +/* 350 */ +/***/ (function(module) { + + +module.exports = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } +}; + + +/***/ }), +/* 351 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); + +module.exports = global.Promise; + + +/***/ }), +/* 352 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var NativePromiseConstructor = __webpack_require__(351); +var isCallable = __webpack_require__(21); +var isForced = __webpack_require__(67); +var inspectSource = __webpack_require__(50); +var wellKnownSymbol = __webpack_require__(33); +var IS_BROWSER = __webpack_require__(231); +var IS_DENO = __webpack_require__(232); +var IS_PURE = __webpack_require__(36); +var V8_VERSION = __webpack_require__(27); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; +var SPECIES = wellKnownSymbol('species'); +var SUBCLASSING = false; +var NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent); + +var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; + // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution + if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT; +}); + +module.exports = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT, + SUBCLASSING: SUBCLASSING +}; + + +/***/ }), +/* 353 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); + +var $TypeError = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable(resolve); + this.reject = aCallable(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + + +/***/ }), +/* 354 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.all` method +// https://tc39.es/ecma262/#sec-promise.all +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 355 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var NativePromiseConstructor = __webpack_require__(351); +var checkCorrectnessOfIteration = __webpack_require__(164); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +module.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) { + NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ }); +}); + + +/***/ }), +/* 356 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var NativePromiseConstructor = __webpack_require__(351); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// `Promise.prototype.catch` method +// https://tc39.es/ecma262/#sec-promise.prototype.catch +$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } +}); + +// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['catch']; + if (NativePromisePrototype['catch'] !== method) { + defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true }); + } +} + + +/***/ }), +/* 357 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.race` method +// https://tc39.es/ecma262/#sec-promise.race +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aCallable(C.resolve); + iterate(iterable, function (promise) { + call($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 358 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); + +// `Promise.reject` method +// https://tc39.es/ecma262/#sec-promise.reject +$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule.f(this); + var capabilityReject = capability.reject; + capabilityReject(r); + return capability.promise; + } +}); + + +/***/ }), +/* 359 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var FORCED_PROMISE_CONSTRUCTOR = (__webpack_require__(352).CONSTRUCTOR); +var promiseResolve = __webpack_require__(360); + +var PromiseConstructorWrapper = getBuiltIn('Promise'); +var CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; + +// `Promise.resolve` method +// https://tc39.es/ecma262/#sec-promise.resolve +$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, { + resolve: function resolve(x) { + return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x); + } +}); + + +/***/ }), +/* 360 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var newPromiseCapability = __webpack_require__(353); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + + +/***/ }), +/* 361 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +// `Promise.allSettled` method +// https://tc39.es/ecma262/#sec-promise.allsettled +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 362 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var aCallable = __webpack_require__(30); +var getBuiltIn = __webpack_require__(23); +var newPromiseCapabilityModule = __webpack_require__(353); +var perform = __webpack_require__(350); +var iterate = __webpack_require__(130); +var PROMISE_STATICS_INCORRECT_ITERATION = __webpack_require__(355); + +var PROMISE_ANY_ERROR = 'No one promise resolved'; + +// `Promise.any` method +// https://tc39.es/ecma262/#sec-promise.any +$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + any: function any(iterable) { + var C = this; + var AggregateError = getBuiltIn('AggregateError'); + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aCallable(C.resolve); + var errors = []; + var counter = 0; + var remaining = 1; + var alreadyResolved = false; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyRejected = false; + remaining++; + call(promiseResolve, C, promise).then(function (value) { + if (alreadyRejected || alreadyResolved) return; + alreadyResolved = true; + resolve(value); + }, function (error) { + if (alreadyRejected || alreadyResolved) return; + alreadyRejected = true; + errors[index] = error; + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + }); + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); + + +/***/ }), +/* 363 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var IS_PURE = __webpack_require__(36); +var NativePromiseConstructor = __webpack_require__(351); +var fails = __webpack_require__(7); +var getBuiltIn = __webpack_require__(23); +var isCallable = __webpack_require__(21); +var speciesConstructor = __webpack_require__(219); +var promiseResolve = __webpack_require__(360); +var defineBuiltIn = __webpack_require__(47); + +var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + +// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 +var NON_GENERIC = !!NativePromiseConstructor && fails(function () { + // eslint-disable-next-line unicorn/no-thenable -- required for testing + NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); +}); + +// `Promise.prototype.finally` method +// https://tc39.es/ecma262/#sec-promise.prototype.finally +$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { + 'finally': function (onFinally) { + var C = speciesConstructor(this, getBuiltIn('Promise')); + var isFunction = isCallable(onFinally); + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); + } +}); + +// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` +if (!IS_PURE && isCallable(NativePromiseConstructor)) { + var method = getBuiltIn('Promise').prototype['finally']; + if (NativePromisePrototype['finally'] !== method) { + defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true }); + } +} + + +/***/ }), +/* 364 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var newPromiseCapabilityModule = __webpack_require__(353); + +// `Promise.withResolvers` method +// https://github.com/tc39/proposal-promise-with-resolvers +$({ target: 'Promise', stat: true }, { + withResolvers: function withResolvers() { + var promiseCapability = newPromiseCapabilityModule.f(this); + return { + promise: promiseCapability.promise, + resolve: promiseCapability.resolve, + reject: promiseCapability.reject + }; + } +}); + + +/***/ }), +/* 365 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var functionApply = __webpack_require__(94); +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var fails = __webpack_require__(7); + +// MS Edge argumentsList argument is optional +var OPTIONAL_ARGUMENTS_LIST = !fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.apply(function () { /* empty */ }); +}); + +// `Reflect.apply` method +// https://tc39.es/ecma262/#sec-reflect.apply +$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, { + apply: function apply(target, thisArgument, argumentsList) { + return functionApply(aCallable(target), thisArgument, anObject(argumentsList)); + } +}); + + +/***/ }), +/* 366 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var apply = __webpack_require__(94); +var bind = __webpack_require__(248); +var aConstructor = __webpack_require__(220); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var create = __webpack_require__(71); +var fails = __webpack_require__(7); + +var nativeConstruct = getBuiltIn('Reflect', 'construct'); +var ObjectPrototype = Object.prototype; +var push = [].push; + +// `Reflect.construct` method +// https://tc39.es/ecma262/#sec-reflect.construct +// MS Edge supports only 2 arguments and argumentsList argument is optional +// FF Nightly sets third argument as `new.target`, but does not create `this` from it +var NEW_TARGET_BUG = fails(function () { + function F() { /* empty */ } + return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F); +}); + +var ARGS_BUG = !fails(function () { + nativeConstruct(function () { /* empty */ }); +}); + +var FORCED = NEW_TARGET_BUG || ARGS_BUG; + +$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, { + construct: function construct(Target, args /* , newTarget */) { + aConstructor(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget); + if (Target === newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: return new Target(); + case 1: return new Target(args[0]); + case 2: return new Target(args[0], args[1]); + case 3: return new Target(args[0], args[1], args[2]); + case 4: return new Target(args[0], args[1], args[2], args[3]); + } + // w/o altered newTarget, lot of arguments case + var $args = [null]; + apply(push, $args, args); + return new (apply(bind, Target, $args))(); + } + // with altered newTarget, not support built-in constructors + var proto = newTarget.prototype; + var instance = create(isObject(proto) ? proto : ObjectPrototype); + var result = apply(Target, instance, args); + return isObject(result) ? result : instance; + } +}); + + +/***/ }), +/* 367 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var toPropertyKey = __webpack_require__(18); +var definePropertyModule = __webpack_require__(44); +var fails = __webpack_require__(7); + +// MS Edge has broken Reflect.defineProperty - throwing instead of returning false +var ERROR_INSTEAD_OF_FALSE = fails(function () { + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 }); +}); + +// `Reflect.defineProperty` method +// https://tc39.es/ecma262/#sec-reflect.defineproperty +$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + var key = toPropertyKey(propertyKey); + anObject(attributes); + try { + definePropertyModule.f(target, key, attributes); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 368 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); + +// `Reflect.deleteProperty` method +// https://tc39.es/ecma262/#sec-reflect.deleteproperty +$({ target: 'Reflect', stat: true }, { + deleteProperty: function deleteProperty(target, propertyKey) { + var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey); + return descriptor && !descriptor.configurable ? false : delete target[propertyKey]; + } +}); + + +/***/ }), +/* 369 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isObject = __webpack_require__(20); +var anObject = __webpack_require__(46); +var isDataDescriptor = __webpack_require__(370); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); + +// `Reflect.get` method +// https://tc39.es/ecma262/#sec-reflect.get +function get(target, propertyKey /* , receiver */) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var descriptor, prototype; + if (anObject(target) === receiver) return target[propertyKey]; + descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey); + if (descriptor) return isDataDescriptor(descriptor) + ? descriptor.value + : descriptor.get === undefined ? undefined : call(descriptor.get, receiver); + if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver); +} + +$({ target: 'Reflect', stat: true }, { + get: get +}); + + +/***/ }), +/* 370 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var hasOwn = __webpack_require__(38); + +module.exports = function (descriptor) { + return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable')); +}; + + +/***/ }), +/* 371 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var anObject = __webpack_require__(46); +var getOwnPropertyDescriptorModule = __webpack_require__(5); + +// `Reflect.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor +$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + } +}); + + +/***/ }), +/* 372 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var objectGetPrototypeOf = __webpack_require__(128); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(129); + +// `Reflect.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.getprototypeof +$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(target) { + return objectGetPrototypeOf(anObject(target)); + } +}); + + +/***/ }), +/* 373 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); + +// `Reflect.has` method +// https://tc39.es/ecma262/#sec-reflect.has +$({ target: 'Reflect', stat: true }, { + has: function has(target, propertyKey) { + return propertyKey in target; + } +}); + + +/***/ }), +/* 374 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var $isExtensible = __webpack_require__(257); + +// `Reflect.isExtensible` method +// https://tc39.es/ecma262/#sec-reflect.isextensible +$({ target: 'Reflect', stat: true }, { + isExtensible: function isExtensible(target) { + anObject(target); + return $isExtensible(target); + } +}); + + +/***/ }), +/* 375 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var ownKeys = __webpack_require__(56); + +// `Reflect.ownKeys` method +// https://tc39.es/ecma262/#sec-reflect.ownkeys +$({ target: 'Reflect', stat: true }, { + ownKeys: ownKeys +}); + + +/***/ }), +/* 376 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var anObject = __webpack_require__(46); +var FREEZING = __webpack_require__(259); + +// `Reflect.preventExtensions` method +// https://tc39.es/ecma262/#sec-reflect.preventextensions +$({ target: 'Reflect', stat: true, sham: !FREEZING }, { + preventExtensions: function preventExtensions(target) { + anObject(target); + try { + var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions'); + if (objectPreventExtensions) objectPreventExtensions(target); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 377 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var isDataDescriptor = __webpack_require__(370); +var fails = __webpack_require__(7); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var getPrototypeOf = __webpack_require__(128); +var createPropertyDescriptor = __webpack_require__(11); + +// `Reflect.set` method +// https://tc39.es/ecma262/#sec-reflect.set +function set(target, propertyKey, V /* , receiver */) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey); + var existingDescriptor, prototype, setter; + if (!ownDescriptor) { + if (isObject(prototype = getPrototypeOf(target))) { + return set(prototype, propertyKey, V, receiver); + } + ownDescriptor = createPropertyDescriptor(0); + } + if (isDataDescriptor(ownDescriptor)) { + if (ownDescriptor.writable === false || !isObject(receiver)) return false; + if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + definePropertyModule.f(receiver, propertyKey, existingDescriptor); + } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V)); + } else { + setter = ownDescriptor.set; + if (setter === undefined) return false; + call(setter, receiver, V); + } return true; +} + +// MS Edge 17-18 Reflect.set allows setting the property to object +// with non-writable property on the prototype +var MS_EDGE_BUG = fails(function () { + var Constructor = function () { /* empty */ }; + var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true }); + // eslint-disable-next-line es/no-reflect -- required for testing + return Reflect.set(Constructor.prototype, 'a', 1, object) !== false; +}); + +$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, { + set: set +}); + + +/***/ }), +/* 378 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var anObject = __webpack_require__(46); +var aPossiblePrototype = __webpack_require__(115); +var objectSetPrototypeOf = __webpack_require__(113); + +// `Reflect.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-reflect.setprototypeof +if (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, { + setPrototypeOf: function setPrototypeOf(target, proto) { + anObject(target); + aPossiblePrototype(proto); + try { + objectSetPrototypeOf(target, proto); + return true; + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 379 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setToStringTag = __webpack_require__(82); + +$({ global: true }, { Reflect: {} }); + +// Reflect[@@toStringTag] property +// https://tc39.es/ecma262/#sec-reflect-@@tostringtag +setToStringTag(global.Reflect, 'Reflect', true); + + +/***/ }), +/* 380 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var isForced = __webpack_require__(67); +var inheritIfRequired = __webpack_require__(118); +var createNonEnumerableProperty = __webpack_require__(43); +var create = __webpack_require__(71); +var getOwnPropertyNames = (__webpack_require__(57).f); +var isPrototypeOf = __webpack_require__(24); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getRegExpFlags = __webpack_require__(382); +var stickyHelpers = __webpack_require__(384); +var proxyAccessor = __webpack_require__(117); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var hasOwn = __webpack_require__(38); +var enforceInternalState = (__webpack_require__(51).enforce); +var setSpecies = __webpack_require__(193); +var wellKnownSymbol = __webpack_require__(33); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var MATCH = wellKnownSymbol('match'); +var NativeRegExp = global.RegExp; +var RegExpPrototype = NativeRegExp.prototype; +var SyntaxError = global.SyntaxError; +var exec = uncurryThis(RegExpPrototype.exec); +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); +// TODO: Use only proper RegExpIdentifierName +var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/; +var re1 = /a/g; +var re2 = /a/g; + +// "new" should create a new object, old webkit bug +var CORRECT_NEW = new NativeRegExp(re1) !== re1; + +var MISSED_STICKY = stickyHelpers.MISSED_STICKY; +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; + +var BASE_FORCED = DESCRIPTORS && + (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () { + re2[MATCH] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i'; + })); + +var handleDotAll = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var brackets = false; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + result += chr + charAt(string, ++index); + continue; + } + if (!brackets && chr === '.') { + result += '[\\s\\S]'; + } else { + if (chr === '[') { + brackets = true; + } else if (chr === ']') { + brackets = false; + } result += chr; + } + } return result; +}; + +var handleNCG = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var named = []; + var names = create(null); + var brackets = false; + var ncg = false; + var groupid = 0; + var groupname = ''; + var chr; + for (; index <= length; index++) { + chr = charAt(string, index); + if (chr === '\\') { + chr += charAt(string, ++index); + } else if (chr === ']') { + brackets = false; + } else if (!brackets) switch (true) { + case chr === '[': + brackets = true; + break; + case chr === '(': + if (exec(IS_NCG, stringSlice(string, index + 1))) { + index += 2; + ncg = true; + } + result += chr; + groupid++; + continue; + case chr === '>' && ncg: + if (groupname === '' || hasOwn(names, groupname)) { + throw new SyntaxError('Invalid capture group name'); + } + names[groupname] = true; + named[named.length] = [groupname, groupid]; + ncg = false; + groupname = ''; + continue; + } + if (ncg) groupname += chr; + else result += chr; + } return [result, named]; +}; + +// `RegExp` constructor +// https://tc39.es/ecma262/#sec-regexp-constructor +if (isForced('RegExp', BASE_FORCED)) { + var RegExpWrapper = function RegExp(pattern, flags) { + var thisIsRegExp = isPrototypeOf(RegExpPrototype, this); + var patternIsRegExp = isRegExp(pattern); + var flagsAreUndefined = flags === undefined; + var groups = []; + var rawPattern = pattern; + var rawFlags, dotAll, sticky, handled, result, state; + + if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) { + return pattern; + } + + if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) { + pattern = pattern.source; + if (flagsAreUndefined) flags = getRegExpFlags(rawPattern); + } + + pattern = pattern === undefined ? '' : toString(pattern); + flags = flags === undefined ? '' : toString(flags); + rawPattern = pattern; + + if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) { + dotAll = !!flags && stringIndexOf(flags, 's') > -1; + if (dotAll) flags = replace(flags, /s/g, ''); + } + + rawFlags = flags; + + if (MISSED_STICKY && 'sticky' in re1) { + sticky = !!flags && stringIndexOf(flags, 'y') > -1; + if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, ''); + } + + if (UNSUPPORTED_NCG) { + handled = handleNCG(pattern); + pattern = handled[0]; + groups = handled[1]; + } + + result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper); + + if (dotAll || sticky || groups.length) { + state = enforceInternalState(result); + if (dotAll) { + state.dotAll = true; + state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags); + } + if (sticky) state.sticky = true; + if (groups.length) state.groups = groups; + } + + if (pattern !== rawPattern) try { + // fails in old engines, but we have no alternatives for unsupported regex syntax + createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern); + } catch (error) { /* empty */ } + + return result; + }; + + for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) { + proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]); + } + + RegExpPrototype.constructor = RegExpWrapper; + RegExpWrapper.prototype = RegExpPrototype; + defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true }); +} + +// https://tc39.es/ecma262/#sec-get-regexp-@@species +setSpecies('RegExp'); + + +/***/ }), +/* 381 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isObject = __webpack_require__(20); +var classof = __webpack_require__(15); +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +// `IsRegExp` abstract operation +// https://tc39.es/ecma262/#sec-isregexp +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp'); +}; + + +/***/ }), +/* 382 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var hasOwn = __webpack_require__(38); +var isPrototypeOf = __webpack_require__(24); +var regExpFlags = __webpack_require__(383); + +var RegExpPrototype = RegExp.prototype; + +module.exports = function (R) { + var flags = R.flags; + return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) + ? call(regExpFlags, R) : flags; +}; + + +/***/ }), +/* 383 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var anObject = __webpack_require__(46); + +// `RegExp.prototype.flags` getter implementation +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; +}; + + +/***/ }), +/* 384 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError +var $RegExp = global.RegExp; + +var UNSUPPORTED_Y = fails(function () { + var re = $RegExp('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') !== null; +}); + +// UC Browser bug +// https://github.com/zloirock/core-js/issues/1008 +var MISSED_STICKY = UNSUPPORTED_Y || fails(function () { + return !$RegExp('a', 'y').sticky; +}); + +var BROKEN_CARET = UNSUPPORTED_Y || fails(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = $RegExp('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') !== null; +}); + +module.exports = { + BROKEN_CARET: BROKEN_CARET, + MISSED_STICKY: MISSED_STICKY, + UNSUPPORTED_Y: UNSUPPORTED_Y +}; + + +/***/ }), +/* 385 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('.', 's'); + return !(re.dotAll && re.test('\n') && re.flags === 's'); +}); + + +/***/ }), +/* 386 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var global = __webpack_require__(4); + +// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError +var $RegExp = global.RegExp; + +module.exports = fails(function () { + var re = $RegExp('(?<a>b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$<a>c') !== 'bc'; +}); + + +/***/ }), +/* 387 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.dotAll` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall +if (DESCRIPTORS && UNSUPPORTED_DOT_ALL) { + defineBuiltInAccessor(RegExpPrototype, 'dotAll', { + configurable: true, + get: function dotAll() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).dotAll; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 388 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var exec = __webpack_require__(389); + +// `RegExp.prototype.exec` method +// https://tc39.es/ecma262/#sec-regexp.prototype.exec +$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { + exec: exec +}); + + +/***/ }), +/* 389 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ +/* eslint-disable regexp/no-useless-quantifier -- testing */ +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var regexpFlags = __webpack_require__(383); +var stickyHelpers = __webpack_require__(384); +var shared = __webpack_require__(34); +var create = __webpack_require__(71); +var getInternalState = (__webpack_require__(51).get); +var UNSUPPORTED_DOT_ALL = __webpack_require__(385); +var UNSUPPORTED_NCG = __webpack_require__(386); + +var nativeReplace = shared('native-string-replace', String.prototype.replace); +var nativeExec = RegExp.prototype.exec; +var patchedExec = nativeExec; +var charAt = uncurryThis(''.charAt); +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); + +var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + call(nativeExec, re1, 'a'); + call(nativeExec, re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; +})(); + +var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET; + +// nonparticipating capturing group, copied from es5-shim's String#split patch. +var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG; + +if (PATCH) { + patchedExec = function exec(string) { + var re = this; + var state = getInternalState(re); + var str = toString(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = call(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = call(regexpFlags, re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = replace(flags, 'y', ''); + if (indexOf(flags, 'g') === -1) { + flags += 'g'; + } + + strCopy = stringSlice(str, re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = call(nativeExec, sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = stringSlice(match.input, charsAdded); + match[0] = stringSlice(match[0], charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/ + call(nativeReplace, match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + if (match && groups) { + match.groups = object = create(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + + return match; + }; +} + +module.exports = patchedExec; + + +/***/ }), +/* 390 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DESCRIPTORS = __webpack_require__(6); +var defineBuiltInAccessor = __webpack_require__(77); +var regExpFlags = __webpack_require__(383); +var fails = __webpack_require__(7); + +// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError +var RegExp = global.RegExp; +var RegExpPrototype = RegExp.prototype; + +var FORCED = DESCRIPTORS && fails(function () { + var INDICES_SUPPORT = true; + try { + RegExp('.', 'd'); + } catch (error) { + INDICES_SUPPORT = false; + } + + var O = {}; + // modern V8 bug + var calls = ''; + var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; + + var addGetter = function (key, chr) { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(O, key, { get: function () { + calls += chr; + return true; + } }); + }; + + var pairs = { + dotAll: 's', + global: 'g', + ignoreCase: 'i', + multiline: 'm', + sticky: 'y' + }; + + if (INDICES_SUPPORT) pairs.hasIndices = 'd'; + + for (var key in pairs) addGetter(key, pairs[key]); + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O); + + return result !== expected || calls !== expected; +}); + +// `RegExp.prototype.flags` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', { + configurable: true, + get: regExpFlags +}); + + +/***/ }), +/* 391 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var MISSED_STICKY = (__webpack_require__(384).MISSED_STICKY); +var classof = __webpack_require__(15); +var defineBuiltInAccessor = __webpack_require__(77); +var getInternalState = (__webpack_require__(51).get); + +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; + +// `RegExp.prototype.sticky` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky +if (DESCRIPTORS && MISSED_STICKY) { + defineBuiltInAccessor(RegExpPrototype, 'sticky', { + configurable: true, + get: function sticky() { + if (this === RegExpPrototype) return; + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classof(this) === 'RegExp') { + return !!getInternalState(this).sticky; + } + throw new $TypeError('Incompatible receiver, RegExp required'); + } + }); +} + + +/***/ }), +/* 392 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var isCallable = __webpack_require__(21); +var anObject = __webpack_require__(46); +var toString = __webpack_require__(68); + +var DELEGATES_TO_EXEC = function () { + var execCalled = false; + var re = /[ac]/; + re.exec = function () { + execCalled = true; + return /./.exec.apply(this, arguments); + }; + return re.test('abc') === true && execCalled; +}(); + +var nativeTest = /./.test; + +// `RegExp.prototype.test` method +// https://tc39.es/ecma262/#sec-regexp.prototype.test +$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { + test: function (S) { + var R = anObject(this); + var string = toString(S); + var exec = R.exec; + if (!isCallable(exec)) return call(nativeTest, R, string); + var result = call(exec, R, string); + if (result === null) return false; + anObject(result); + return true; + } +}); + + +/***/ }), +/* 393 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var defineBuiltIn = __webpack_require__(47); +var anObject = __webpack_require__(46); +var $toString = __webpack_require__(68); +var fails = __webpack_require__(7); +var getRegExpFlags = __webpack_require__(382); + +var TO_STRING = 'toString'; +var RegExpPrototype = RegExp.prototype; +var nativeToString = RegExpPrototype[TO_STRING]; + +var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; }); +// FF44- RegExp#toString has a wrong name +var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING; + +// `RegExp.prototype.toString` method +// https://tc39.es/ecma262/#sec-regexp.prototype.tostring +if (NOT_GENERIC || INCORRECT_NAME) { + defineBuiltIn(RegExpPrototype, TO_STRING, function toString() { + var R = anObject(this); + var pattern = $toString(R.source); + var flags = $toString(getRegExpFlags(R)); + return '/' + pattern + '/' + flags; + }, { unsafe: true }); +} + + +/***/ }), +/* 394 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(395); + + +/***/ }), +/* 395 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionStrong = __webpack_require__(260); + +// `Set` constructor +// https://tc39.es/ecma262/#sec-set-objects +collection('Set', function (init) { + return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionStrong); + + +/***/ }), +/* 396 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var difference = __webpack_require__(397); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, { + difference: difference +}); + + +/***/ }), +/* 397 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function difference(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = clone(O); + if (size(O) <= otherRec.size) iterateSet(O, function (e) { + if (otherRec.includes(e)) remove(result, e); + }); + else iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) remove(result, e); + }); + return result; +}; + + +/***/ }), +/* 398 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var has = (__webpack_require__(399).has); + +// Perform ? RequireInternalSlot(M, [[SetData]]) +module.exports = function (it) { + has(it); + return it; +}; + + +/***/ }), +/* 399 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); + +// eslint-disable-next-line es/no-set -- safe +var SetPrototype = Set.prototype; + +module.exports = { + // eslint-disable-next-line es/no-set -- safe + Set: Set, + add: uncurryThis(SetPrototype.add), + has: uncurryThis(SetPrototype.has), + remove: uncurryThis(SetPrototype['delete']), + proto: SetPrototype +}; + + +/***/ }), +/* 400 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var SetHelpers = __webpack_require__(399); +var iterate = __webpack_require__(401); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; + +module.exports = function (set) { + var result = new Set(); + iterate(set, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 401 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var iterateSimple = __webpack_require__(402); +var SetHelpers = __webpack_require__(399); + +var Set = SetHelpers.Set; +var SetPrototype = SetHelpers.proto; +var forEach = uncurryThis(SetPrototype.forEach); +var keys = uncurryThis(SetPrototype.keys); +var next = keys(new Set()).next; + +module.exports = function (set, fn, interruptible) { + return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn); +}; + + +/***/ }), +/* 402 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); + +module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) { + var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator; + var next = record.next; + var step, result; + while (!(step = call(next, iterator)).done) { + result = fn(step.value); + if (result !== undefined) return result; + } +}; + + +/***/ }), +/* 403 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThisAccessor = __webpack_require__(114); +var SetHelpers = __webpack_require__(399); + +module.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) { + return set.size; +}; + + +/***/ }), +/* 404 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aCallable = __webpack_require__(30); +var anObject = __webpack_require__(46); +var call = __webpack_require__(8); +var toIntegerOrInfinity = __webpack_require__(61); +var getIteratorDirect = __webpack_require__(405); + +var INVALID_SIZE = 'Invalid size'; +var $RangeError = RangeError; +var $TypeError = TypeError; +var max = Math.max; + +var SetRecord = function (set, intSize) { + this.set = set; + this.size = max(intSize, 0); + this.has = aCallable(set.has); + this.keys = aCallable(set.keys); +}; + +SetRecord.prototype = { + getIterator: function () { + return getIteratorDirect(anObject(call(this.keys, this.set))); + }, + includes: function (it) { + return call(this.has, this.set, it); + } +}; + +// `GetSetRecord` abstract operation +// https://tc39.es/proposal-set-methods/#sec-getsetrecord +module.exports = function (obj) { + anObject(obj); + var numSize = +obj.size; + // NOTE: If size is undefined, then numSize will be NaN + // eslint-disable-next-line no-self-compare -- NaN check + if (numSize !== numSize) throw new $TypeError(INVALID_SIZE); + var intSize = toIntegerOrInfinity(numSize); + if (intSize < 0) throw new $RangeError(INVALID_SIZE); + return new SetRecord(obj, intSize); +}; + + +/***/ }), +/* 405 */ +/***/ (function(module) { + + +// `GetIteratorDirect(obj)` abstract operation +// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect +module.exports = function (obj) { + return { + iterator: obj, + next: obj.next, + done: false + }; +}; + + +/***/ }), +/* 406 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); + +var createSetLike = function (size) { + return { + size: size, + has: function () { + return false; + }, + keys: function () { + return { + next: function () { + return { done: true }; + } + }; + } + }; +}; + +module.exports = function (name) { + var Set = getBuiltIn('Set'); + try { + new Set()[name](createSetLike(0)); + try { + // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it + // https://github.com/tc39/proposal-set-methods/pull/88 + new Set()[name](createSetLike(-1)); + return false; + } catch (error2) { + return true; + } + } catch (error) { + return false; + } +}; + + +/***/ }), +/* 407 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var fails = __webpack_require__(7); +var intersection = __webpack_require__(408); +var setMethodAcceptSetLike = __webpack_require__(406); + +var INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () { + // eslint-disable-next-line es/no-array-from, es/no-set -- testing + return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2'; +}); + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { + intersection: intersection +}); + + +/***/ }), +/* 408 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; +var has = SetHelpers.has; + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +module.exports = function intersection(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = new Set(); + + if (size(O) > otherRec.size) { + iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) add(result, e); + }); + } else { + iterateSet(O, function (e) { + if (otherRec.includes(e)) add(result, e); + }); + } + + return result; +}; + + +/***/ }), +/* 409 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isDisjointFrom = __webpack_require__(410); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isDisjointFrom` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, { + isDisjointFrom: isDisjointFrom +}); + + +/***/ }), +/* 410 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSet = __webpack_require__(401); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isDisjointFrom` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom +module.exports = function isDisjointFrom(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) <= otherRec.size) return iterateSet(O, function (e) { + if (otherRec.includes(e)) return false; + }, true) !== false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 411 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSubsetOf = __webpack_require__(412); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSubsetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, { + isSubsetOf: isSubsetOf +}); + + +/***/ }), +/* 412 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var size = __webpack_require__(403); +var iterate = __webpack_require__(401); +var getSetRecord = __webpack_require__(404); + +// `Set.prototype.isSubsetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf +module.exports = function isSubsetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) > otherRec.size) return false; + return iterate(O, function (e) { + if (!otherRec.includes(e)) return false; + }, true) !== false; +}; + + +/***/ }), +/* 413 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var isSupersetOf = __webpack_require__(414); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.isSupersetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, { + isSupersetOf: isSupersetOf +}); + + +/***/ }), +/* 414 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var has = (__webpack_require__(399).has); +var size = __webpack_require__(403); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); +var iteratorClose = __webpack_require__(135); + +// `Set.prototype.isSupersetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf +module.exports = function isSupersetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) < otherRec.size) return false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (!has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), +/* 415 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var symmetricDifference = __webpack_require__(416); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, { + symmetricDifference: symmetricDifference +}); + + +/***/ }), +/* 416 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var SetHelpers = __webpack_require__(399); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +var add = SetHelpers.add; +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function symmetricDifference(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (e) { + if (has(O, e)) remove(result, e); + else add(result, e); + }); + return result; +}; + + +/***/ }), +/* 417 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var union = __webpack_require__(418); +var setMethodAcceptSetLike = __webpack_require__(406); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, { + union: union +}); + + +/***/ }), +/* 418 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var aSet = __webpack_require__(398); +var add = (__webpack_require__(399).add); +var clone = __webpack_require__(400); +var getSetRecord = __webpack_require__(404); +var iterateSimple = __webpack_require__(402); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +module.exports = function union(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), +/* 419 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var charAt = uncurryThis(''.charAt); + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-array-string-prototype-at -- safe + return '𠮷'.at(-2) !== '\uD842'; +}); + +// `String.prototype.at` method +// https://tc39.es/ecma262/#sec-string.prototype.at +$({ target: 'String', proto: true, forced: FORCED }, { + at: function at(index) { + var S = toString(requireObjectCoercible(this)); + var len = S.length; + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : charAt(S, k); + } +}); + + +/***/ }), +/* 420 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var codeAt = (__webpack_require__(421).codeAt); + +// `String.prototype.codePointAt` method +// https://tc39.es/ecma262/#sec-string.prototype.codepointat +$({ target: 'String', proto: true }, { + codePointAt: function codePointAt(pos) { + return codeAt(this, pos); + } +}); + + +/***/ }), +/* 421 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); + +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var stringSlice = uncurryThis(''.slice); + +var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +module.exports = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) +}; + + +/***/ }), +/* 422 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var slice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.endsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.endswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = that.length; + var end = endPosition === undefined ? len : min(toLength(endPosition), len); + var search = toString(searchString); + return slice(that, end - search.length, end) === search; + } +}); + + +/***/ }), +/* 423 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var isRegExp = __webpack_require__(381); + +var $TypeError = TypeError; + +module.exports = function (it) { + if (isRegExp(it)) { + throw new $TypeError("The method doesn't accept regular expressions"); + } return it; +}; + + +/***/ }), +/* 424 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var wellKnownSymbol = __webpack_require__(33); + +var MATCH = wellKnownSymbol('match'); + +module.exports = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; +}; + + +/***/ }), +/* 425 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toAbsoluteIndex = __webpack_require__(60); + +var $RangeError = RangeError; +var fromCharCode = String.fromCharCode; +// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing +var $fromCodePoint = String.fromCodePoint; +var join = uncurryThis([].join); + +// length should be 1, old FF problem +var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length !== 1; + +// `String.fromCodePoint` method +// https://tc39.es/ecma262/#sec-string.fromcodepoint +$({ target: 'String', stat: true, arity: 1, forced: INCORRECT_LENGTH }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + fromCodePoint: function fromCodePoint(x) { + var elements = []; + var length = arguments.length; + var i = 0; + var code; + while (length > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw new $RangeError(code + ' is not a valid code point'); + elements[i] = code < 0x10000 + ? fromCharCode(code) + : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00); + } return join(elements, ''); + } +}); + + +/***/ }), +/* 426 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var correctIsRegExpLogic = __webpack_require__(424); + +var stringIndexOf = uncurryThis(''.indexOf); + +// `String.prototype.includes` method +// https://tc39.es/ecma262/#sec-string.prototype.includes +$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString(requireObjectCoercible(this)), + toString(notARegExp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); + } +}); + + +/***/ }), +/* 427 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var charCodeAt = uncurryThis(''.charCodeAt); + +// `String.prototype.isWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true }, { + isWellFormed: function isWellFormed() { + var S = toString(requireObjectCoercible(this)); + var length = S.length; + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) continue; + // unpaired surrogate + if (charCode >= 0xDC00 || ++i >= length || (charCodeAt(S, i) & 0xFC00) !== 0xDC00) return false; + } return true; + } +}); + + +/***/ }), +/* 428 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); +var toString = __webpack_require__(68); +var InternalStateModule = __webpack_require__(51); +var defineIterator = __webpack_require__(169); +var createIterResultObject = __webpack_require__(172); + +var STRING_ITERATOR = 'String Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator(String, 'String', function (iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: toString(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt(string, index); + state.index += point.length; + return createIterResultObject(point, false); +}); + + +/***/ }), +/* 429 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var getMethod = __webpack_require__(29); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); + +// @@match logic +fixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) { + return [ + // `String.prototype.match` method + // https://tc39.es/ecma262/#sec-string.prototype.match + function match(regexp) { + var O = requireObjectCoercible(this); + var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH); + return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O)); + }, + // `RegExp.prototype[@@match]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@match + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeMatch, rx, S); + + if (res.done) return res.value; + + if (!rx.global) return regExpExec(rx, S); + + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + var A = []; + var n = 0; + var result; + while ((result = regExpExec(rx, S)) !== null) { + var matchStr = toString(result[0]); + A[n] = matchStr; + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + n++; + } + return n === 0 ? null : A; + } + ]; +}); + + +/***/ }), +/* 430 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove from `core-js@4` since it's moved to entry points +__webpack_require__(388); +var call = __webpack_require__(8); +var defineBuiltIn = __webpack_require__(47); +var regexpExec = __webpack_require__(389); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var createNonEnumerableProperty = __webpack_require__(43); + +var SPECIES = wellKnownSymbol('species'); +var RegExpPrototype = RegExp.prototype; + +module.exports = function (KEY, exec, FORCED, SHAM) { + var SYMBOL = wellKnownSymbol(KEY); + + var DELEGATES_TO_SYMBOL = !fails(function () { + // String methods call symbol-named RegExp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) !== 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + FORCED + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var $exec = regexp.exec; + if ($exec === regexpExec || $exec === RegExpPrototype.exec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) }; + } + return { done: true, value: call(nativeMethod, str, regexp, arg2) }; + } + return { done: false }; + }); + + defineBuiltIn(String.prototype, KEY, methods[0]); + defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]); + } + + if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true); +}; + + +/***/ }), +/* 431 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var charAt = (__webpack_require__(421).charAt); + +// `AdvanceStringIndex` abstract operation +// https://tc39.es/ecma262/#sec-advancestringindex +module.exports = function (S, index, unicode) { + return index + (unicode ? charAt(S, index).length : 1); +}; + + +/***/ }), +/* 432 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var classof = __webpack_require__(15); +var regexpExec = __webpack_require__(389); + +var $TypeError = TypeError; + +// `RegExpExec` abstract operation +// https://tc39.es/ecma262/#sec-regexpexec +module.exports = function (R, S) { + var exec = R.exec; + if (isCallable(exec)) { + var result = call(exec, R, S); + if (result !== null) anObject(result); + return result; + } + if (classof(R) === 'RegExp') return call(regexpExec, R, S); + throw new $TypeError('RegExp#exec called on incompatible receiver'); +}; + + +/***/ }), +/* 433 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable es/no-string-prototype-matchall -- safe */ +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(85); +var createIteratorConstructor = __webpack_require__(170); +var createIterResultObject = __webpack_require__(172); +var requireObjectCoercible = __webpack_require__(16); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var classof = __webpack_require__(15); +var isRegExp = __webpack_require__(381); +var getRegExpFlags = __webpack_require__(382); +var getMethod = __webpack_require__(29); +var defineBuiltIn = __webpack_require__(47); +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var regExpExec = __webpack_require__(432); +var InternalStateModule = __webpack_require__(51); +var IS_PURE = __webpack_require__(36); + +var MATCH_ALL = wellKnownSymbol('matchAll'); +var REGEXP_STRING = 'RegExp String'; +var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR); +var RegExpPrototype = RegExp.prototype; +var $TypeError = TypeError; +var stringIndexOf = uncurryThis(''.indexOf); +var nativeMatchAll = uncurryThis(''.matchAll); + +var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () { + nativeMatchAll('a', /./); +}); + +var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) { + setInternalState(this, { + type: REGEXP_STRING_ITERATOR, + regexp: regexp, + string: string, + global: $global, + unicode: fullUnicode, + done: false + }); +}, REGEXP_STRING, function next() { + var state = getInternalState(this); + if (state.done) return createIterResultObject(undefined, true); + var R = state.regexp; + var S = state.string; + var match = regExpExec(R, S); + if (match === null) { + state.done = true; + return createIterResultObject(undefined, true); + } + if (state.global) { + if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode); + return createIterResultObject(match, false); + } + state.done = true; + return createIterResultObject(match, false); +}); + +var $matchAll = function (string) { + var R = anObject(this); + var S = toString(string); + var C = speciesConstructor(R, RegExp); + var flags = toString(getRegExpFlags(R)); + var matcher, $global, fullUnicode; + matcher = new C(C === RegExp ? R.source : R, flags); + $global = !!~stringIndexOf(flags, 'g'); + fullUnicode = !!~stringIndexOf(flags, 'u'); + matcher.lastIndex = toLength(R.lastIndex); + return new $RegExpStringIterator(matcher, S, $global, fullUnicode); +}; + +// `String.prototype.matchAll` method +// https://tc39.es/ecma262/#sec-string.prototype.matchall +$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, { + matchAll: function matchAll(regexp) { + var O = requireObjectCoercible(this); + var flags, S, matcher, rx; + if (!isNullOrUndefined(regexp)) { + if (isRegExp(regexp)) { + flags = toString(requireObjectCoercible(getRegExpFlags(regexp))); + if (!~stringIndexOf(flags, 'g')) throw new $TypeError('`.matchAll` does not allow non-global regexes'); + } + if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + matcher = getMethod(regexp, MATCH_ALL); + if (matcher === undefined && IS_PURE && classof(regexp) === 'RegExp') matcher = $matchAll; + if (matcher) return call(matcher, regexp, O); + } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll(O, regexp); + S = toString(O); + rx = new RegExp(regexp, 'g'); + return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S); + } +}); + +IS_PURE || MATCH_ALL in RegExpPrototype || defineBuiltIn(RegExpPrototype, MATCH_ALL, $matchAll); + + +/***/ }), +/* 434 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padEnd = (__webpack_require__(240).end); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.padend +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padEnd: function padEnd(maxLength /* , fillString = ' ' */) { + return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 435 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// https://github.com/zloirock/core-js/issues/280 +var userAgent = __webpack_require__(28); + +module.exports = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(userAgent); + + +/***/ }), +/* 436 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $padStart = (__webpack_require__(240).start); +var WEBKIT_BUG = __webpack_require__(435); + +// `String.prototype.padStart` method +// https://tc39.es/ecma262/#sec-string.prototype.padstart +$({ target: 'String', proto: true, forced: WEBKIT_BUG }, { + padStart: function padStart(maxLength /* , fillString = ' ' */) { + return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 437 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toIndexedObject = __webpack_require__(12); +var toObject = __webpack_require__(39); +var toString = __webpack_require__(68); +var lengthOfArrayLike = __webpack_require__(63); + +var push = uncurryThis([].push); +var join = uncurryThis([].join); + +// `String.raw` method +// https://tc39.es/ecma262/#sec-string.raw +$({ target: 'String', stat: true }, { + raw: function raw(template) { + var rawTemplate = toIndexedObject(toObject(template).raw); + var literalSegments = lengthOfArrayLike(rawTemplate); + if (!literalSegments) return ''; + var argumentsLength = arguments.length; + var elements = []; + var i = 0; + while (true) { + push(elements, toString(rawTemplate[i++])); + if (i === literalSegments) return join(elements, ''); + if (i < argumentsLength) push(elements, toString(arguments[i])); + } + } +}); + + +/***/ }), +/* 438 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var repeat = __webpack_require__(241); + +// `String.prototype.repeat` method +// https://tc39.es/ecma262/#sec-string.prototype.repeat +$({ target: 'String', proto: true }, { + repeat: repeat +}); + + +/***/ }), +/* 439 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var apply = __webpack_require__(94); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var fails = __webpack_require__(7); +var anObject = __webpack_require__(46); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var toIntegerOrInfinity = __webpack_require__(61); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var requireObjectCoercible = __webpack_require__(16); +var advanceStringIndex = __webpack_require__(431); +var getMethod = __webpack_require__(29); +var getSubstitution = __webpack_require__(440); +var regExpExec = __webpack_require__(432); +var wellKnownSymbol = __webpack_require__(33); + +var REPLACE = wellKnownSymbol('replace'); +var max = Math.max; +var min = Math.min; +var concat = uncurryThis([].concat); +var push = uncurryThis([].push); +var stringIndexOf = uncurryThis(''.indexOf); +var stringSlice = uncurryThis(''.slice); + +var maybeToString = function (it) { + return it === undefined ? it : String(it); +}; + +// IE <= 11 replaces $0 with the whole match, as if it was $& +// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 +var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; +})(); + +// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string +var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + return false; +})(); + +var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$<a>') !== '7'; +}); + +// @@replace logic +fixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + + return [ + // `String.prototype.replace` method + // https://tc39.es/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE); + return replacer + ? call(replacer, searchValue, O, replaceValue) + : call(nativeReplace, toString(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace + function (string, replaceValue) { + var rx = anObject(this); + var S = toString(string); + + if ( + typeof replaceValue == 'string' && + stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf(replaceValue, '$<') === -1 + ) { + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); + if (res.done) return res.value; + } + + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + + var global = rx.global; + var fullUnicode; + if (global) { + fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + + var results = []; + var result; + while (true) { + result = regExpExec(rx, S); + if (result === null) break; + + push(results, result); + if (!global) break; + + var matchStr = toString(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + + var matched = toString(result[0]); + var position = max(min(toIntegerOrInfinity(result.index), S.length), 0); + var captures = []; + var replacement; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = concat([matched], captures, position, S); + if (namedCaptures !== undefined) push(replacerArgs, namedCaptures); + replacement = toString(apply(replaceValue, undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + + return accumulatedResult + stringSlice(S, nextSourcePosition); + } + ]; +}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); + + +/***/ }), +/* 440 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var toObject = __webpack_require__(39); + +var floor = Math.floor; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +// eslint-disable-next-line redos/no-vulnerable -- safe +var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; +var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + +// `GetSubstitution` abstract operation +// https://tc39.es/ecma262/#sec-getsubstitution +module.exports = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace(replacement, symbols, function (match, ch) { + var capture; + switch (charAt(ch, 0)) { + case '$': return '$'; + case '&': return matched; + case '`': return stringSlice(str, 0, position); + case "'": return stringSlice(str, tailPos); + case '<': + capture = namedCaptures[stringSlice(ch, 1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); +}; + + +/***/ }), +/* 441 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var isCallable = __webpack_require__(21); +var isNullOrUndefined = __webpack_require__(17); +var isRegExp = __webpack_require__(381); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var getRegExpFlags = __webpack_require__(382); +var getSubstitution = __webpack_require__(440); +var wellKnownSymbol = __webpack_require__(33); +var IS_PURE = __webpack_require__(36); + +var REPLACE = wellKnownSymbol('replace'); +var $TypeError = TypeError; +var indexOf = uncurryThis(''.indexOf); +var replace = uncurryThis(''.replace); +var stringSlice = uncurryThis(''.slice); +var max = Math.max; + +// `String.prototype.replaceAll` method +// https://tc39.es/ecma262/#sec-string.prototype.replaceall +$({ target: 'String', proto: true }, { + replaceAll: function replaceAll(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement; + var position = 0; + var endOfLastMatch = 0; + var result = ''; + if (!isNullOrUndefined(searchValue)) { + IS_REG_EXP = isRegExp(searchValue); + if (IS_REG_EXP) { + flags = toString(requireObjectCoercible(getRegExpFlags(searchValue))); + if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes'); + } + replacer = getMethod(searchValue, REPLACE); + if (replacer) { + return call(replacer, searchValue, O, replaceValue); + } else if (IS_PURE && IS_REG_EXP) { + return replace(toString(O), searchValue, replaceValue); + } + } + string = toString(O); + searchString = toString(searchValue); + functionalReplace = isCallable(replaceValue); + if (!functionalReplace) replaceValue = toString(replaceValue); + searchLength = searchString.length; + advanceBy = max(1, searchLength); + position = indexOf(string, searchString); + while (position !== -1) { + replacement = functionalReplace + ? toString(replaceValue(searchString, position, string)) + : getSubstitution(searchString, string, position, [], undefined, replaceValue); + result += stringSlice(string, endOfLastMatch, position) + replacement; + endOfLastMatch = position + searchLength; + position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy); + } + if (endOfLastMatch < string.length) { + result += stringSlice(string, endOfLastMatch); + } + return result; + } +}); + + +/***/ }), +/* 442 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var sameValue = __webpack_require__(323); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); + +// @@search logic +fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH); + return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (string) { + var rx = anObject(this); + var S = toString(string); + var res = maybeCallNative(nativeSearch, rx, S); + + if (res.done) return res.value; + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; +}); + + +/***/ }), +/* 443 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(430); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var requireObjectCoercible = __webpack_require__(16); +var speciesConstructor = __webpack_require__(219); +var advanceStringIndex = __webpack_require__(431); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var getMethod = __webpack_require__(29); +var regExpExec = __webpack_require__(432); +var stickyHelpers = __webpack_require__(384); +var fails = __webpack_require__(7); + +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; +var MAX_UINT32 = 0xFFFFFFFF; +var min = Math.min; +var push = uncurryThis([].push); +var stringSlice = uncurryThis(''.slice); + +// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec +// Weex JS has frozen built-in prototypes, so use try / catch wrapper +var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { + // eslint-disable-next-line regexp/no-empty-group -- required for testing + var re = /(?:)/; + var originalExec = re.exec; + re.exec = function () { return originalExec.apply(this, arguments); }; + var result = 'ab'.split(re); + return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; +}); + +var BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' || + // eslint-disable-next-line regexp/no-empty-group -- required for testing + 'test'.split(/(?:)/, -1).length !== 4 || + 'ab'.split(/(?:ab)*/).length !== 2 || + '.'.split(/(.?)(.?)/).length !== 4 || + // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing + '.'.split(/()()/).length > 1 || + ''.split(/.?/).length; + +// @@split logic +fixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) { + var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) { + return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit); + } : nativeSplit; + + return [ + // `String.prototype.split` method + // https://tc39.es/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = requireObjectCoercible(this); + var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT); + return splitter + ? call(splitter, separator, O, limit) + : call(internalSplit, toString(O), separator, limit); + }, + // `RegExp.prototype[@@split]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (string, limit) { + var rx = anObject(this); + var S = toString(string); + + if (!BUGGY) { + var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit); + if (res.done) return res.value; + } + + var C = speciesConstructor(rx, RegExp); + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + + (rx.multiline ? 'm' : '') + + (rx.unicode ? 'u' : '') + + (UNSUPPORTED_Y ? 'g' : 'y'); + // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + while (q < S.length) { + splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; + var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S); + var e; + if ( + z === null || + (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p + ) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + push(A, stringSlice(S, p, q)); + if (A.length === lim) return A; + for (var i = 1; i <= z.length - 1; i++) { + push(A, z[i]); + if (A.length === lim) return A; + } + q = p = e; + } + } + push(A, stringSlice(S, p)); + return A; + } + ]; +}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); + + +/***/ }), +/* 444 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(85); +var getOwnPropertyDescriptor = (__webpack_require__(5).f); +var toLength = __webpack_require__(64); +var toString = __webpack_require__(68); +var notARegExp = __webpack_require__(423); +var requireObjectCoercible = __webpack_require__(16); +var correctIsRegExpLogic = __webpack_require__(424); +var IS_PURE = __webpack_require__(36); + +var stringSlice = uncurryThis(''.slice); +var min = Math.min; + +var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); +// https://github.com/zloirock/core-js/pull/702 +var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; +}(); + +// `String.prototype.startsWith` method +// https://tc39.es/ecma262/#sec-string.prototype.startswith +$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString(searchString); + return stringSlice(that, index, index + search.length) === search; + } +}); + + +/***/ }), +/* 445 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toIntegerOrInfinity = __webpack_require__(61); +var toString = __webpack_require__(68); + +var stringSlice = uncurryThis(''.slice); +var max = Math.max; +var min = Math.min; + +// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing +var FORCED = !''.substr || 'ab'.substr(-1) !== 'b'; + +// `String.prototype.substr` method +// https://tc39.es/ecma262/#sec-string.prototype.substr +$({ target: 'String', proto: true, forced: FORCED }, { + substr: function substr(start, length) { + var that = toString(requireObjectCoercible(this)); + var size = that.length; + var intStart = toIntegerOrInfinity(start); + var intLength, intEnd; + if (intStart === Infinity) intStart = 0; + if (intStart < 0) intStart = max(size + intStart, 0); + intLength = length === undefined ? size : toIntegerOrInfinity(length); + if (intLength <= 0 || intLength === Infinity) return ''; + intEnd = min(intStart + intLength, size); + return intStart >= intEnd ? '' : stringSlice(that, intStart, intEnd); + } +}); + + +/***/ }), +/* 446 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); +var fails = __webpack_require__(7); + +var $Array = Array; +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +// eslint-disable-next-line es/no-string-prototype-iswellformed-towellformed -- safe +var $toWellFormed = ''.toWellFormed; +var REPLACEMENT_CHARACTER = '\uFFFD'; + +// Safari bug +var TO_STRING_CONVERSION_BUG = $toWellFormed && fails(function () { + return call($toWellFormed, 1) !== '1'; +}); + +// `String.prototype.toWellFormed` method +// https://github.com/tc39/proposal-is-usv-string +$({ target: 'String', proto: true, forced: TO_STRING_CONVERSION_BUG }, { + toWellFormed: function toWellFormed() { + var S = toString(requireObjectCoercible(this)); + if (TO_STRING_CONVERSION_BUG) return call($toWellFormed, S); + var length = S.length; + var result = $Array(length); + for (var i = 0; i < length; i++) { + var charCode = charCodeAt(S, i); + // single UTF-16 code unit + if ((charCode & 0xF800) !== 0xD800) result[i] = charAt(S, i); + // unpaired surrogate + else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = REPLACEMENT_CHARACTER; + // surrogate pair + else { + result[i] = charAt(S, i); + result[++i] = charAt(S, i); + } + } return join(result, ''); + } +}); + + +/***/ }), +/* 447 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var $trim = (__webpack_require__(286).trim); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.trim` method +// https://tc39.es/ecma262/#sec-string.prototype.trim +$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } +}); + + +/***/ }), +/* 448 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var PROPER_FUNCTION_NAME = (__webpack_require__(49).PROPER); +var fails = __webpack_require__(7); +var whitespaces = __webpack_require__(287); + +var non = '\u200B\u0085\u180E'; + +// check that a method works with the correct list +// of whitespaces and has a correct name +module.exports = function (METHOD_NAME) { + return fails(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); +}; + + +/***/ }), +/* 449 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(450); +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimEnd` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, { + trimEnd: trimEnd +}); + + +/***/ }), +/* 450 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimEnd = __webpack_require__(451); + +// `String.prototype.trimRight` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, { + trimRight: trimEnd +}); + + +/***/ }), +/* 451 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimEnd = (__webpack_require__(286).end); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimEnd, trimRight }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimend +// https://tc39.es/ecma262/#String.prototype.trimright +module.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() { + return $trimEnd(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimEnd; + + +/***/ }), +/* 452 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this line from `core-js@4` +__webpack_require__(453); +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimStart` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, { + trimStart: trimStart +}); + + +/***/ }), +/* 453 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var trimStart = __webpack_require__(454); + +// `String.prototype.trimLeft` method +// https://tc39.es/ecma262/#sec-string.prototype.trimleft +// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe +$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, { + trimLeft: trimStart +}); + + +/***/ }), +/* 454 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $trimStart = (__webpack_require__(286).start); +var forcedStringTrimMethod = __webpack_require__(448); + +// `String.prototype.{ trimStart, trimLeft }` method +// https://tc39.es/ecma262/#sec-string.prototype.trimstart +// https://tc39.es/ecma262/#String.prototype.trimleft +module.exports = forcedStringTrimMethod('trimStart') ? function trimStart() { + return $trimStart(this); +// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe +} : ''.trimStart; + + +/***/ }), +/* 455 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.anchor` method +// https://tc39.es/ecma262/#sec-string.prototype.anchor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, { + anchor: function anchor(name) { + return createHTML(this, 'a', 'name', name); + } +}); + + +/***/ }), +/* 456 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var requireObjectCoercible = __webpack_require__(16); +var toString = __webpack_require__(68); + +var quot = /"/g; +var replace = uncurryThis(''.replace); + +// `CreateHTML` abstract operation +// https://tc39.es/ecma262/#sec-createhtml +module.exports = function (string, tag, attribute, value) { + var S = toString(requireObjectCoercible(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + replace(toString(value), quot, '"') + '"'; + return p1 + '>' + S + '</' + tag + '>'; +}; + + +/***/ }), +/* 457 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); + +// check the existence of a method, lowercase +// of a tag and escaping quotes in arguments +module.exports = function (METHOD_NAME) { + return fails(function () { + var test = ''[METHOD_NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }); +}; + + +/***/ }), +/* 458 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.big` method +// https://tc39.es/ecma262/#sec-string.prototype.big +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, { + big: function big() { + return createHTML(this, 'big', '', ''); + } +}); + + +/***/ }), +/* 459 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.blink` method +// https://tc39.es/ecma262/#sec-string.prototype.blink +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, { + blink: function blink() { + return createHTML(this, 'blink', '', ''); + } +}); + + +/***/ }), +/* 460 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.bold` method +// https://tc39.es/ecma262/#sec-string.prototype.bold +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, { + bold: function bold() { + return createHTML(this, 'b', '', ''); + } +}); + + +/***/ }), +/* 461 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fixed` method +// https://tc39.es/ecma262/#sec-string.prototype.fixed +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, { + fixed: function fixed() { + return createHTML(this, 'tt', '', ''); + } +}); + + +/***/ }), +/* 462 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontcolor` method +// https://tc39.es/ecma262/#sec-string.prototype.fontcolor +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, { + fontcolor: function fontcolor(color) { + return createHTML(this, 'font', 'color', color); + } +}); + + +/***/ }), +/* 463 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.fontsize` method +// https://tc39.es/ecma262/#sec-string.prototype.fontsize +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, { + fontsize: function fontsize(size) { + return createHTML(this, 'font', 'size', size); + } +}); + + +/***/ }), +/* 464 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.italics` method +// https://tc39.es/ecma262/#sec-string.prototype.italics +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, { + italics: function italics() { + return createHTML(this, 'i', '', ''); + } +}); + + +/***/ }), +/* 465 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.link` method +// https://tc39.es/ecma262/#sec-string.prototype.link +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, { + link: function link(url) { + return createHTML(this, 'a', 'href', url); + } +}); + + +/***/ }), +/* 466 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.small` method +// https://tc39.es/ecma262/#sec-string.prototype.small +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, { + small: function small() { + return createHTML(this, 'small', '', ''); + } +}); + + +/***/ }), +/* 467 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.strike` method +// https://tc39.es/ecma262/#sec-string.prototype.strike +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, { + strike: function strike() { + return createHTML(this, 'strike', '', ''); + } +}); + + +/***/ }), +/* 468 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sub` method +// https://tc39.es/ecma262/#sec-string.prototype.sub +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, { + sub: function sub() { + return createHTML(this, 'sub', '', ''); + } +}); + + +/***/ }), +/* 469 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var createHTML = __webpack_require__(456); +var forcedStringHTMLMethod = __webpack_require__(457); + +// `String.prototype.sup` method +// https://tc39.es/ecma262/#sec-string.prototype.sup +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, { + sup: function sup() { + return createHTML(this, 'sup', '', ''); + } +}); + + +/***/ }), +/* 470 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float32', function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 471 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var DESCRIPTORS = __webpack_require__(6); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayBufferModule = __webpack_require__(207); +var anInstance = __webpack_require__(210); +var createPropertyDescriptor = __webpack_require__(11); +var createNonEnumerableProperty = __webpack_require__(43); +var isIntegralNumber = __webpack_require__(292); +var toLength = __webpack_require__(64); +var toIndex = __webpack_require__(211); +var toOffset = __webpack_require__(473); +var toUint8Clamped = __webpack_require__(475); +var toPropertyKey = __webpack_require__(18); +var hasOwn = __webpack_require__(38); +var classof = __webpack_require__(69); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var create = __webpack_require__(71); +var isPrototypeOf = __webpack_require__(24); +var setPrototypeOf = __webpack_require__(113); +var getOwnPropertyNames = (__webpack_require__(57).f); +var typedArrayFrom = __webpack_require__(476); +var forEach = (__webpack_require__(83).forEach); +var setSpecies = __webpack_require__(193); +var defineBuiltInAccessor = __webpack_require__(77); +var definePropertyModule = __webpack_require__(44); +var getOwnPropertyDescriptorModule = __webpack_require__(5); +var arrayFromConstructorAndList = __webpack_require__(198); +var InternalStateModule = __webpack_require__(51); +var inheritIfRequired = __webpack_require__(118); + +var getInternalState = InternalStateModule.get; +var setInternalState = InternalStateModule.set; +var enforceInternalState = InternalStateModule.enforce; +var nativeDefineProperty = definePropertyModule.f; +var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; +var RangeError = global.RangeError; +var ArrayBuffer = ArrayBufferModule.ArrayBuffer; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataView = ArrayBufferModule.DataView; +var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; +var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG; +var TypedArray = ArrayBufferViewCore.TypedArray; +var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype; +var isTypedArray = ArrayBufferViewCore.isTypedArray; +var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; +var WRONG_LENGTH = 'Wrong length'; + +var addGetter = function (it, key) { + defineBuiltInAccessor(it, key, { + configurable: true, + get: function () { + return getInternalState(this)[key]; + } + }); +}; + +var isArrayBuffer = function (it) { + var klass; + return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) === 'ArrayBuffer' || klass === 'SharedArrayBuffer'; +}; + +var isTypedArrayIndex = function (target, key) { + return isTypedArray(target) + && !isSymbol(key) + && key in target + && isIntegralNumber(+key) + && key >= 0; +}; + +var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { + key = toPropertyKey(key); + return isTypedArrayIndex(target, key) + ? createPropertyDescriptor(2, target[key]) + : nativeGetOwnPropertyDescriptor(target, key); +}; + +var wrappedDefineProperty = function defineProperty(target, key, descriptor) { + key = toPropertyKey(key); + if (isTypedArrayIndex(target, key) + && isObject(descriptor) + && hasOwn(descriptor, 'value') + && !hasOwn(descriptor, 'get') + && !hasOwn(descriptor, 'set') + // TODO: add validation descriptor w/o calling accessors + && !descriptor.configurable + && (!hasOwn(descriptor, 'writable') || descriptor.writable) + && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable) + ) { + target[key] = descriptor.value; + return target; + } return nativeDefineProperty(target, key, descriptor); +}; + +if (DESCRIPTORS) { + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor; + definePropertyModule.f = wrappedDefineProperty; + addGetter(TypedArrayPrototype, 'buffer'); + addGetter(TypedArrayPrototype, 'byteOffset'); + addGetter(TypedArrayPrototype, 'byteLength'); + addGetter(TypedArrayPrototype, 'length'); + } + + $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { + getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, + defineProperty: wrappedDefineProperty + }); + + module.exports = function (TYPE, wrapper, CLAMPED) { + var BYTES = TYPE.match(/\d+/)[0] / 8; + var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + TYPE; + var SETTER = 'set' + TYPE; + var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME]; + var TypedArrayConstructor = NativeTypedArrayConstructor; + var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; + var exported = {}; + + var getter = function (that, index) { + var data = getInternalState(that); + return data.view[GETTER](index * BYTES + data.byteOffset, true); + }; + + var setter = function (that, index, value) { + var data = getInternalState(that); + data.view[SETTER](index * BYTES + data.byteOffset, CLAMPED ? toUint8Clamped(value) : value, true); + }; + + var addElement = function (that, index) { + nativeDefineProperty(that, index, { + get: function () { + return getter(this, index); + }, + set: function (value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + TypedArrayConstructor = wrapper(function (that, data, offset, $length) { + anInstance(that, TypedArrayConstructorPrototype); + var index = 0; + var byteOffset = 0; + var buffer, byteLength, length; + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new ArrayBuffer(byteLength); + } else if (isArrayBuffer(data)) { + buffer = data; + byteOffset = toOffset(offset, BYTES); + var $len = data.byteLength; + if ($length === undefined) { + if ($len % BYTES) throw new RangeError(WRONG_LENGTH); + byteLength = $len - byteOffset; + if (byteLength < 0) throw new RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + byteOffset > $len) throw new RangeError(WRONG_LENGTH); + } + length = byteLength / BYTES; + } else if (isTypedArray(data)) { + return arrayFromConstructorAndList(TypedArrayConstructor, data); + } else { + return call(typedArrayFrom, TypedArrayConstructor, data); + } + setInternalState(that, { + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength, + length: length, + view: new DataView(buffer) + }); + while (index < length) addElement(that, index++); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype); + } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) { + TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { + anInstance(dummy, TypedArrayConstructorPrototype); + return inheritIfRequired(function () { + if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); + if (isArrayBuffer(data)) return $length !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) + : typedArrayOffset !== undefined + ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) + : new NativeTypedArrayConstructor(data); + if (isTypedArray(data)) return arrayFromConstructorAndList(TypedArrayConstructor, data); + return call(typedArrayFrom, TypedArrayConstructor, data); + }(), dummy, TypedArrayConstructor); + }); + + if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray); + forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { + if (!(key in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); + } + }); + TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; + } + + if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); + } + + enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor; + + if (TYPED_ARRAY_TAG) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); + } + + var FORCED = TypedArrayConstructor !== NativeTypedArrayConstructor; + + exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; + + $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported); + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); + } + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); + } + + setSpecies(CONSTRUCTOR_NAME); + }; +} else module.exports = function () { /* empty */ }; + + +/***/ }), +/* 472 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +/* eslint-disable no-new -- required for testing */ +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var checkCorrectnessOfIteration = __webpack_require__(164); +var NATIVE_ARRAY_BUFFER_VIEWS = (__webpack_require__(217).NATIVE_ARRAY_BUFFER_VIEWS); + +var ArrayBuffer = global.ArrayBuffer; +var Int8Array = global.Int8Array; + +module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () { + Int8Array(1); +}) || !fails(function () { + new Int8Array(-1); +}) || !checkCorrectnessOfIteration(function (iterable) { + new Int8Array(); + new Int8Array(null); + new Int8Array(1.5); + new Int8Array(iterable); +}, true) || fails(function () { + // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill + return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1; +}); + + +/***/ }), +/* 473 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPositiveInteger = __webpack_require__(474); + +var $RangeError = RangeError; + +module.exports = function (it, BYTES) { + var offset = toPositiveInteger(it); + if (offset % BYTES) throw new $RangeError('Wrong offset'); + return offset; +}; + + +/***/ }), +/* 474 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toIntegerOrInfinity = __webpack_require__(61); + +var $RangeError = RangeError; + +module.exports = function (it) { + var result = toIntegerOrInfinity(it); + if (result < 0) throw new $RangeError("The argument can't be less than 0"); + return result; +}; + + +/***/ }), +/* 475 */ +/***/ (function(module) { + + +var round = Math.round; + +module.exports = function (it) { + var value = round(it); + return value < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF; +}; + + +/***/ }), +/* 476 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var bind = __webpack_require__(84); +var call = __webpack_require__(8); +var aConstructor = __webpack_require__(220); +var toObject = __webpack_require__(39); +var lengthOfArrayLike = __webpack_require__(63); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var isArrayIteratorMethod = __webpack_require__(131); +var isBigIntArray = __webpack_require__(477); +var aTypedArrayConstructor = (__webpack_require__(217).aTypedArrayConstructor); +var toBigInt = __webpack_require__(478); + +module.exports = function from(source /* , mapfn, thisArg */) { + var C = aConstructor(this); + var O = toObject(source); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iteratorMethod = getIteratorMethod(O); + var i, length, result, thisIsBigIntArray, value, step, iterator, next; + if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) { + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + O = []; + while (!(step = call(next, iterator)).done) { + O.push(step.value); + } + } + if (mapping && argumentsLength > 2) { + mapfn = bind(mapfn, arguments[2]); + } + length = lengthOfArrayLike(O); + result = new (aTypedArrayConstructor(C))(length); + thisIsBigIntArray = isBigIntArray(result); + for (i = 0; length > i; i++) { + value = mapping ? mapfn(O[i], i) : O[i]; + // FF30- typed arrays doesn't properly convert objects to typed array values + result[i] = thisIsBigIntArray ? toBigInt(value) : +value; + } + return result; +}; + + +/***/ }), +/* 477 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var classof = __webpack_require__(69); + +module.exports = function (it) { + var klass = classof(it); + return klass === 'BigInt64Array' || klass === 'BigUint64Array'; +}; + + +/***/ }), +/* 478 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var toPrimitive = __webpack_require__(19); + +var $TypeError = TypeError; + +// `ToBigInt` abstract operation +// https://tc39.es/ecma262/#sec-tobigint +module.exports = function (argument) { + var prim = toPrimitive(argument, 'number'); + if (typeof prim == 'number') throw new $TypeError("Can't convert number to bigint"); + // eslint-disable-next-line es/no-bigint -- safe + return BigInt(prim); +}; + + +/***/ }), +/* 479 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Float64Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Float64', function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 480 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int8', function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 481 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int16', function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 482 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Int32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Int32', function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 483 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 484 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint8ClampedArray` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint8', function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}, true); + + +/***/ }), +/* 485 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint16Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint16', function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 486 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var createTypedArrayConstructor = __webpack_require__(471); + +// `Uint32Array` constructor +// https://tc39.es/ecma262/#sec-typedarray-objects +createTypedArrayConstructor('Uint32', function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 487 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toIntegerOrInfinity = __webpack_require__(61); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.at` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at +exportTypedArrayMethod('at', function at(index) { + var O = aTypedArray(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; +}); + + +/***/ }), +/* 488 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var $ArrayCopyWithin = __webpack_require__(144); + +var u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.copyWithin` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin +exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) { + return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined); +}); + + +/***/ }), +/* 489 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $every = (__webpack_require__(83).every); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.every` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every +exportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) { + return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 490 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $fill = __webpack_require__(149); +var toBigInt = __webpack_require__(478); +var classof = __webpack_require__(69); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var slice = uncurryThis(''.slice); + +// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18 +var CONVERSION_BUG = fails(function () { + var count = 0; + // eslint-disable-next-line es/no-typed-arrays -- safe + new Int8Array(2).fill({ valueOf: function () { return count++; } }); + return count !== 1; +}); + +// `%TypedArray%.prototype.fill` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill +exportTypedArrayMethod('fill', function fill(value /* , start, end */) { + var length = arguments.length; + aTypedArray(this); + var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value; + return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined); +}, CONVERSION_BUG); + + +/***/ }), +/* 491 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $filter = (__webpack_require__(83).filter); +var fromSpeciesAndList = __webpack_require__(492); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.filter` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter +exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) { + var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return fromSpeciesAndList(this, list); +}); + + +/***/ }), +/* 492 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var arrayFromConstructorAndList = __webpack_require__(198); +var typedArraySpeciesConstructor = __webpack_require__(493); + +module.exports = function (instance, list) { + return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list); +}; + + +/***/ }), +/* 493 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var speciesConstructor = __webpack_require__(219); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// a part of `TypedArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#typedarray-species-create +module.exports = function (originalArray) { + return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray))); +}; + + +/***/ }), +/* 494 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $find = (__webpack_require__(83).find); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.find` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find +exportTypedArrayMethod('find', function find(predicate /* , thisArg */) { + return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 495 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findIndex = (__webpack_require__(83).findIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex +exportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) { + return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 496 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLast = (__webpack_require__(154).findLast); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLast` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast +exportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) { + return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 497 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $findLastIndex = (__webpack_require__(154).findLastIndex); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.findLastIndex` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex +exportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) { + return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 498 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $forEach = (__webpack_require__(83).forEach); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.forEach` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach +exportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) { + $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 499 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); +var exportTypedArrayStaticMethod = (__webpack_require__(217).exportTypedArrayStaticMethod); +var typedArrayFrom = __webpack_require__(476); + +// `%TypedArray%.from` method +// https://tc39.es/ecma262/#sec-%typedarray%.from +exportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 500 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $includes = (__webpack_require__(59).includes); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.includes` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes +exportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) { + return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 501 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $indexOf = (__webpack_require__(59).indexOf); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.indexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof +exportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) { + return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 502 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var fails = __webpack_require__(7); +var uncurryThis = __webpack_require__(14); +var ArrayBufferViewCore = __webpack_require__(217); +var ArrayIterators = __webpack_require__(168); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var Uint8Array = global.Uint8Array; +var arrayValues = uncurryThis(ArrayIterators.values); +var arrayKeys = uncurryThis(ArrayIterators.keys); +var arrayEntries = uncurryThis(ArrayIterators.entries); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var TypedArrayPrototype = Uint8Array && Uint8Array.prototype; + +var GENERIC = !fails(function () { + TypedArrayPrototype[ITERATOR].call([1]); +}); + +var ITERATOR_IS_VALUES = !!TypedArrayPrototype + && TypedArrayPrototype.values + && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values + && TypedArrayPrototype.values.name === 'values'; + +var typedArrayValues = function values() { + return arrayValues(aTypedArray(this)); +}; + +// `%TypedArray%.prototype.entries` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries +exportTypedArrayMethod('entries', function entries() { + return arrayEntries(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.keys` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys +exportTypedArrayMethod('keys', function keys() { + return arrayKeys(aTypedArray(this)); +}, GENERIC); +// `%TypedArray%.prototype.values` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values +exportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); +// `%TypedArray%.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator +exportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' }); + + +/***/ }), +/* 503 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $join = uncurryThis([].join); + +// `%TypedArray%.prototype.join` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join +exportTypedArrayMethod('join', function join(separator) { + return $join(aTypedArray(this), separator); +}); + + +/***/ }), +/* 504 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var apply = __webpack_require__(94); +var $lastIndexOf = __webpack_require__(175); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.lastIndexOf` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof +exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { + var length = arguments.length; + return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]); +}); + + +/***/ }), +/* 505 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $map = (__webpack_require__(83).map); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.map` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map +exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) { + return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { + return new (typedArraySpeciesConstructor(O))(length); + }); +}); + + +/***/ }), +/* 506 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(472); + +var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor; +var exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod; + +// `%TypedArray%.of` method +// https://tc39.es/ecma262/#sec-%typedarray%.of +exportTypedArrayStaticMethod('of', function of(/* ...items */) { + var index = 0; + var length = arguments.length; + var result = new (aTypedArrayConstructor(this))(length); + while (length > index) result[index] = arguments[index++]; + return result; +}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS); + + +/***/ }), +/* 507 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduce = (__webpack_require__(181).left); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduce` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce +exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 508 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $reduceRight = (__webpack_require__(181).right); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.reduceRight` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright +exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 509 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var floor = Math.floor; + +// `%TypedArray%.prototype.reverse` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse +exportTypedArrayMethod('reverse', function reverse() { + var that = this; + var length = aTypedArray(that).length; + var middle = floor(length / 2); + var index = 0; + var value; + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } return that; +}); + + +/***/ }), +/* 510 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var call = __webpack_require__(8); +var ArrayBufferViewCore = __webpack_require__(217); +var lengthOfArrayLike = __webpack_require__(63); +var toOffset = __webpack_require__(473); +var toIndexedObject = __webpack_require__(39); +var fails = __webpack_require__(7); + +var RangeError = global.RangeError; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var $set = Int8ArrayPrototype && Int8ArrayPrototype.set; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + var array = new Uint8ClampedArray(2); + call($set, array, { length: 1, 0: 3 }, 1); + return array[1] !== 3; +}); + +// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other +var TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () { + var array = new Int8Array(2); + array.set(1); + array.set('2', 1); + return array[0] !== 0 || array[1] !== 2; +}); + +// `%TypedArray%.prototype.set` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set +exportTypedArrayMethod('set', function set(arrayLike /* , offset */) { + aTypedArray(this); + var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); + var src = toIndexedObject(arrayLike); + if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset); + var length = this.length; + var len = lengthOfArrayLike(src); + var index = 0; + if (len + offset > length) throw new RangeError('Wrong length'); + while (index < len) this[offset + index] = src[index++]; +}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG); + + +/***/ }), +/* 511 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var typedArraySpeciesConstructor = __webpack_require__(493); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var FORCED = fails(function () { + // eslint-disable-next-line es/no-typed-arrays -- required for testing + new Int8Array(1).slice(); +}); + +// `%TypedArray%.prototype.slice` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice +exportTypedArrayMethod('slice', function slice(start, end) { + var list = arraySlice(aTypedArray(this), start, end); + var C = typedArraySpeciesConstructor(this); + var index = 0; + var length = list.length; + var result = new C(length); + while (length > index) result[index] = list[index++]; + return result; +}, FORCED); + + +/***/ }), +/* 512 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var $some = (__webpack_require__(83).some); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.some` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some +exportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) { + return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); +}); + + +/***/ }), +/* 513 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(85); +var fails = __webpack_require__(7); +var aCallable = __webpack_require__(30); +var internalSort = __webpack_require__(188); +var ArrayBufferViewCore = __webpack_require__(217); +var FF = __webpack_require__(189); +var IE_OR_EDGE = __webpack_require__(190); +var V8 = __webpack_require__(27); +var WEBKIT = __webpack_require__(191); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var Uint16Array = global.Uint16Array; +var nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort); + +// WebKit +var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () { + nativeSort(new Uint16Array(2), null); +}) && fails(function () { + nativeSort(new Uint16Array(2), {}); +})); + +var STABLE_SORT = !!nativeSort && !fails(function () { + // feature detection can be too slow, so check engines versions + if (V8) return V8 < 74; + if (FF) return FF < 67; + if (IE_OR_EDGE) return true; + if (WEBKIT) return WEBKIT < 602; + + var array = new Uint16Array(516); + var expected = Array(516); + var index, mod; + + for (index = 0; index < 516; index++) { + mod = index % 4; + array[index] = 515 - index; + expected[index] = index - 2 * mod + 3; + } + + nativeSort(array, function (a, b) { + return (a / 4 | 0) - (b / 4 | 0); + }); + + for (index = 0; index < 516; index++) { + if (array[index] !== expected[index]) return true; + } +}); + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (comparefn !== undefined) return +comparefn(x, y) || 0; + // eslint-disable-next-line no-self-compare -- NaN check + if (y !== y) return -1; + // eslint-disable-next-line no-self-compare -- NaN check + if (x !== x) return 1; + if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1; + return x > y; + }; +}; + +// `%TypedArray%.prototype.sort` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort +exportTypedArrayMethod('sort', function sort(comparefn) { + if (comparefn !== undefined) aCallable(comparefn); + if (STABLE_SORT) return nativeSort(this, comparefn); + + return internalSort(aTypedArray(this), getSortCompare(comparefn)); +}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS); + + +/***/ }), +/* 514 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var toLength = __webpack_require__(64); +var toAbsoluteIndex = __webpack_require__(60); +var typedArraySpeciesConstructor = __webpack_require__(493); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +// `%TypedArray%.prototype.subarray` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray +exportTypedArrayMethod('subarray', function subarray(begin, end) { + var O = aTypedArray(this); + var length = O.length; + var beginIndex = toAbsoluteIndex(begin, length); + var C = typedArraySpeciesConstructor(O); + return new C( + O.buffer, + O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, + toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex) + ); +}); + + +/***/ }), +/* 515 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var ArrayBufferViewCore = __webpack_require__(217); +var fails = __webpack_require__(7); +var arraySlice = __webpack_require__(76); + +var Int8Array = global.Int8Array; +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var $toLocaleString = [].toLocaleString; + +// iOS Safari 6.x fails here +var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () { + $toLocaleString.call(new Int8Array(1)); +}); + +var FORCED = fails(function () { + return [1, 2].toLocaleString() !== new Int8Array([1, 2]).toLocaleString(); +}) || !fails(function () { + Int8Array.prototype.toLocaleString.call([1, 2]); +}); + +// `%TypedArray%.prototype.toLocaleString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring +exportTypedArrayMethod('toLocaleString', function toLocaleString() { + return apply( + $toLocaleString, + TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this), + arraySlice(arguments) + ); +}, FORCED); + + +/***/ }), +/* 516 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayToReversed = __webpack_require__(196); +var ArrayBufferViewCore = __webpack_require__(217); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// `%TypedArray%.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed +exportTypedArrayMethod('toReversed', function toReversed() { + return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this)); +}); + + +/***/ }), +/* 517 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var ArrayBufferViewCore = __webpack_require__(217); +var uncurryThis = __webpack_require__(14); +var aCallable = __webpack_require__(30); +var arrayFromConstructorAndList = __webpack_require__(198); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort); + +// `%TypedArray%.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted +exportTypedArrayMethod('toSorted', function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = aTypedArray(this); + var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O); + return sort(A, compareFn); +}); + + +/***/ }), +/* 518 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var exportTypedArrayMethod = (__webpack_require__(217).exportTypedArrayMethod); +var fails = __webpack_require__(7); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); + +var Uint8Array = global.Uint8Array; +var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {}; +var arrayToString = [].toString; +var join = uncurryThis([].join); + +if (fails(function () { arrayToString.call({}); })) { + arrayToString = function toString() { + return join(this); + }; +} + +var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString !== arrayToString; + +// `%TypedArray%.prototype.toString` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring +exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD); + + +/***/ }), +/* 519 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var arrayWith = __webpack_require__(205); +var ArrayBufferViewCore = __webpack_require__(217); +var isBigIntArray = __webpack_require__(477); +var toIntegerOrInfinity = __webpack_require__(61); +var toBigInt = __webpack_require__(478); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var PROPER_ORDER = !!function () { + try { + // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing + new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } }); + } catch (error) { + // some early implementations, like WebKit, does not follow the final semantic + // https://github.com/tc39/proposal-change-array-by-copy/pull/86 + return error === 8; + } +}(); + +// `%TypedArray%.prototype.with` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with +exportTypedArrayMethod('with', { 'with': function (index, value) { + var O = aTypedArray(this); + var relativeIndex = toIntegerOrInfinity(index); + var actualValue = isBigIntArray(O) ? toBigInt(value) : +value; + return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue); +} }['with'], !PROPER_ORDER); + + +/***/ }), +/* 520 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); + +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var stringSlice = uncurryThis(''.slice); + +var hex2 = /^[\da-f]{2}$/i; +var hex4 = /^[\da-f]{4}$/i; + +// `unescape` method +// https://tc39.es/ecma262/#sec-unescape-string +$({ global: true }, { + unescape: function unescape(string) { + var str = toString(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, part; + while (index < length) { + chr = charAt(str, index++); + if (chr === '%') { + if (charAt(str, index) === 'u') { + part = stringSlice(str, index + 1, index + 5); + if (exec(hex4, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 5; + continue; + } + } else { + part = stringSlice(str, index, index + 2); + if (exec(hex2, part)) { + result += fromCharCode(parseInt(part, 16)); + index += 2; + continue; + } + } + } + result += chr; + } return result; + } +}); + + +/***/ }), +/* 521 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(522); + + +/***/ }), +/* 522 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var FREEZING = __webpack_require__(259); +var global = __webpack_require__(4); +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var InternalMetadataModule = __webpack_require__(256); +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); +var isObject = __webpack_require__(20); +var enforceInternalState = (__webpack_require__(51).enforce); +var fails = __webpack_require__(7); +var NATIVE_WEAK_MAP = __webpack_require__(52); + +var $Object = Object; +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray = Array.isArray; +// eslint-disable-next-line es/no-object-isextensible -- safe +var isExtensible = $Object.isExtensible; +// eslint-disable-next-line es/no-object-isfrozen -- safe +var isFrozen = $Object.isFrozen; +// eslint-disable-next-line es/no-object-issealed -- safe +var isSealed = $Object.isSealed; +// eslint-disable-next-line es/no-object-freeze -- safe +var freeze = $Object.freeze; +// eslint-disable-next-line es/no-object-seal -- safe +var seal = $Object.seal; + +var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; +var InternalWeakMap; + +var wrapper = function (init) { + return function WeakMap() { + return init(this, arguments.length ? arguments[0] : undefined); + }; +}; + +// `WeakMap` constructor +// https://tc39.es/ecma262/#sec-weakmap-constructor +var $WeakMap = collection('WeakMap', wrapper, collectionWeak); +var WeakMapPrototype = $WeakMap.prototype; +var nativeSet = uncurryThis(WeakMapPrototype.set); + +// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them +var hasMSEdgeFreezingBug = function () { + return FREEZING && fails(function () { + var frozenArray = freeze([]); + nativeSet(new $WeakMap(), frozenArray, 1); + return !isFrozen(frozenArray); + }); +}; + +// IE11 WeakMap frozen keys fix +// We can't use feature detection because it crash some old IE builds +// https://github.com/zloirock/core-js/issues/485 +if (NATIVE_WEAK_MAP) if (IS_IE11) { + InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); + InternalMetadataModule.enable(); + var nativeDelete = uncurryThis(WeakMapPrototype['delete']); + var nativeHas = uncurryThis(WeakMapPrototype.has); + var nativeGet = uncurryThis(WeakMapPrototype.get); + defineBuiltIns(WeakMapPrototype, { + 'delete': function (key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeDelete(this, key) || state.frozen['delete'](key); + } return nativeDelete(this, key); + }, + has: function has(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) || state.frozen.has(key); + } return nativeHas(this, key); + }, + get: function get(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key); + } return nativeGet(this, key); + }, + set: function set(key, value) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceInternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value); + } else nativeSet(this, key, value); + return this; + } + }); +// Chakra Edge frozen keys fix +} else if (hasMSEdgeFreezingBug()) { + defineBuiltIns(WeakMapPrototype, { + set: function set(key, value) { + var arrayIntegrityLevel; + if (isArray(key)) { + if (isFrozen(key)) arrayIntegrityLevel = freeze; + else if (isSealed(key)) arrayIntegrityLevel = seal; + } + nativeSet(this, key, value); + if (arrayIntegrityLevel) arrayIntegrityLevel(key); + return this; + } + }); +} + + +/***/ }), +/* 523 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var uncurryThis = __webpack_require__(14); +var defineBuiltIns = __webpack_require__(209); +var getWeakData = (__webpack_require__(256).getWeakData); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var iterate = __webpack_require__(130); +var ArrayIterationModule = __webpack_require__(83); +var hasOwn = __webpack_require__(38); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +var find = ArrayIterationModule.find; +var findIndex = ArrayIterationModule.findIndex; +var splice = uncurryThis([].splice); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (state) { + return state.frozen || (state.frozen = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function () { + this.entries = []; +}; + +var findUncaughtFrozen = function (store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.entries.push([key, value]); + }, + 'delete': function (key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) splice(this.entries, index, 1); + return !!~index; + } +}; + +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + id: id++, + frozen: undefined + }); + if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); + }); + + var Prototype = Constructor.prototype; + + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function (that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value); + else data[state.id] = value; + return that; + }; + + defineBuiltIns(Prototype, { + // `{ WeakMap, WeakSet }.prototype.delete(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.delete + // https://tc39.es/ecma262/#sec-weakset.prototype.delete + 'delete': function (key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && hasOwn(data, state.id) && delete data[state.id]; + }, + // `{ WeakMap, WeakSet }.prototype.has(key)` methods + // https://tc39.es/ecma262/#sec-weakmap.prototype.has + // https://tc39.es/ecma262/#sec-weakset.prototype.has + has: function has(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && hasOwn(data, state.id); + } + }); + + defineBuiltIns(Prototype, IS_MAP ? { + // `WeakMap.prototype.get(key)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.get + get: function get(key) { + var state = getInternalState(this); + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // `WeakMap.prototype.set(key, value)` method + // https://tc39.es/ecma262/#sec-weakmap.prototype.set + set: function set(key, value) { + return define(this, key, value); + } + } : { + // `WeakSet.prototype.add(value)` method + // https://tc39.es/ecma262/#sec-weakset.prototype.add + add: function add(value) { + return define(this, value, true); + } + }); + + return Constructor; + } +}; + + +/***/ }), +/* 524 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(525); + + +/***/ }), +/* 525 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var collection = __webpack_require__(255); +var collectionWeak = __webpack_require__(523); + +// `WeakSet` constructor +// https://tc39.es/ecma262/#sec-weakset-constructor +collection('WeakSet', function (init) { + return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; +}, collectionWeak); + + +/***/ }), +/* 526 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var c2i = (__webpack_require__(527).c2i); + +var disallowed = /[^\d+/a-z]/i; +var whitespaces = /[\t\n\f\r ]+/g; +var finalEq = /[=]{1,2}$/; + +var $atob = getBuiltIn('atob'); +var fromCharCode = String.fromCharCode; +var charAt = uncurryThis(''.charAt); +var replace = uncurryThis(''.replace); +var exec = uncurryThis(disallowed.exec); + +var BASIC = !!$atob && !fails(function () { + return $atob('aGk=') !== 'hi'; +}); + +var NO_SPACES_IGNORE = BASIC && fails(function () { + return $atob(' ') !== ''; +}); + +var NO_ENCODING_CHECK = BASIC && !fails(function () { + $atob('a'); +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $atob(); +}); + +var WRONG_ARITY = BASIC && $atob.length !== 1; + +var FORCED = !BASIC || NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY; + +// `atob` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob +$({ global: true, bind: true, enumerable: true, forced: FORCED }, { + atob: function atob(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC && !NO_SPACES_IGNORE && !NO_ENCODING_CHECK) return call($atob, global, data); + var string = replace(toString(data), whitespaces, ''); + var output = ''; + var position = 0; + var bc = 0; + var length, chr, bs; + if (string.length % 4 === 0) { + string = replace(string, finalEq, ''); + } + length = string.length; + if (length % 4 === 1 || exec(disallowed, string)) { + throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError'); + } + while (position < length) { + chr = charAt(string, position++); + bs = bc % 4 ? bs * 64 + c2i[chr] : c2i[chr]; + if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6)); + } return output; + } +}); + + +/***/ }), +/* 527 */ +/***/ (function(module) { + + +var commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; +var base64Alphabet = commonAlphabet + '+/'; +var base64UrlAlphabet = commonAlphabet + '-_'; + +var inverse = function (characters) { + // TODO: use `Object.create(null)` in `core-js@4` + var result = {}; + var index = 0; + for (; index < 64; index++) result[characters.charAt(index)] = index; + return result; +}; + +module.exports = { + i2c: base64Alphabet, + c2i: inverse(base64Alphabet), + i2cUrl: base64UrlAlphabet, + c2iUrl: inverse(base64UrlAlphabet) +}; + + +/***/ }), +/* 528 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var call = __webpack_require__(8); +var fails = __webpack_require__(7); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); +var i2c = (__webpack_require__(527).i2c); + +var $btoa = getBuiltIn('btoa'); +var charAt = uncurryThis(''.charAt); +var charCodeAt = uncurryThis(''.charCodeAt); + +var BASIC = !!$btoa && !fails(function () { + return $btoa('hi') !== 'aGk='; +}); + +var NO_ARG_RECEIVING_CHECK = BASIC && !fails(function () { + $btoa(); +}); + +var WRONG_ARG_CONVERSION = BASIC && fails(function () { + return $btoa(null) !== 'bnVsbA=='; +}); + +var WRONG_ARITY = BASIC && $btoa.length !== 1; + +// `btoa` method +// https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa +$({ global: true, bind: true, enumerable: true, forced: !BASIC || NO_ARG_RECEIVING_CHECK || WRONG_ARG_CONVERSION || WRONG_ARITY }, { + btoa: function btoa(data) { + validateArgumentsLength(arguments.length, 1); + // `webpack` dev server bug on IE global methods - use call(fn, global, ...) + if (BASIC) return call($btoa, global, toString(data)); + var string = toString(data); + var output = ''; + var position = 0; + var map = i2c; + var block, charCode; + while (charAt(string, position) || (map = '=', position % 1)) { + charCode = charCodeAt(string, position += 3 / 4); + if (charCode > 0xFF) { + throw new (getBuiltIn('DOMException'))('The string contains characters outside of the Latin1 range', 'InvalidCharacterError'); + } + block = block << 8 | charCode; + output += charAt(map, 63 & block >> 8 - position % 1 * 8); + } return output; + } +}); + + +/***/ }), +/* 529 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var forEach = __webpack_require__(160); +var createNonEnumerableProperty = __webpack_require__(43); + +var handlePrototype = function (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + if (DOMIterables[COLLECTION_NAME]) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype); + } +} + +handlePrototype(DOMTokenListPrototype); + + +/***/ }), +/* 530 */ +/***/ (function(module) { + + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +module.exports = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + + +/***/ }), +/* 531 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` +var documentCreateElement = __webpack_require__(42); + +var classList = documentCreateElement('span').classList; +var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype; + +module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype; + + +/***/ }), +/* 532 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var DOMIterables = __webpack_require__(530); +var DOMTokenListPrototype = __webpack_require__(531); +var ArrayIteratorMethods = __webpack_require__(168); +var createNonEnumerableProperty = __webpack_require__(43); +var setToStringTag = __webpack_require__(82); +var wellKnownSymbol = __webpack_require__(33); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayValues = ArrayIteratorMethods.values; + +var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + setToStringTag(CollectionPrototype, COLLECTION_NAME, true); + if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +}; + +for (var COLLECTION_NAME in DOMIterables) { + handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME); +} + +handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); + + +/***/ }), +/* 533 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var tryNodeRequire = __webpack_require__(229); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var anObject = __webpack_require__(46); +var errorToString = __webpack_require__(125); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var InternalStateModule = __webpack_require__(51); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var DATA_CLONE_ERR = 'DATA_CLONE_ERR'; +var Error = getBuiltIn('Error'); +// NodeJS < 17.0 does not expose `DOMException` to global +var NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () { + try { + // NodeJS < 15.0 does not expose `MessageChannel` to global + var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel; + // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe + new MessageChannel().port1.postMessage(new WeakMap()); + } catch (error) { + if (error.name === DATA_CLONE_ERR && error.code === 25) return error.constructor; + } +})(); +var NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype; +var ErrorPrototype = Error.prototype; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION); +var HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); + +var codeFor = function (name) { + return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0; +}; + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var code = codeFor(name); + setInternalState(this, { + type: DOM_EXCEPTION, + name: name, + message: message, + code: code + }); + if (!DESCRIPTORS) { + this.name = name; + this.message = message; + this.code = code; + } + if (HAS_STACK) { + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + } +}; + +var DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype); + +var createGetterDescriptor = function (get) { + return { enumerable: true, configurable: true, get: get }; +}; + +var getterFor = function (key) { + return createGetterDescriptor(function () { + return getInternalState(this)[key]; + }); +}; + +if (DESCRIPTORS) { + // `DOMException.prototype.code` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code')); + // `DOMException.prototype.message` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message')); + // `DOMException.prototype.name` getter + defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name')); +} + +defineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException)); + +// FF36- DOMException is a function, but can't be constructed +var INCORRECT_CONSTRUCTOR = fails(function () { + return !(new NativeDOMException() instanceof Error); +}); + +// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs +var INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () { + return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1'; +}); + +// Deno 1.6.3- DOMException.prototype.code just missed +var INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () { + return new NativeDOMException(1, 'DataCloneError').code !== 25; +}); + +// Deno 1.6.3- DOMException constants just missed +var MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR + || NativeDOMException[DATA_CLONE_ERR] !== 25 + || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25; + +var FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR; + +// `DOMException` constructor +// https://webidl.spec.whatwg.org/#idl-DOMException +$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, { + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) { + defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString); +} + +if (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) { + defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () { + return codeFor(anObject(this).name); + })); +} + +// `DOMException` constants +for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + var descriptor = createPropertyDescriptor(6, constant.c); + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, descriptor); + } + if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) { + defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor); + } +} + + +/***/ }), +/* 534 */ +/***/ (function(module) { + + +module.exports = { + IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 }, + DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 }, + HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 }, + WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 }, + InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 }, + NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 }, + NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 }, + NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 }, + NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 }, + InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 }, + InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 }, + SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 }, + InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 }, + NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 }, + InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 }, + ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 }, + TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 }, + SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 }, + NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 }, + AbortError: { s: 'ABORT_ERR', c: 20, m: 1 }, + URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 }, + QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 }, + TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 }, + InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 }, + DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 } +}; + + +/***/ }), +/* 535 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var createPropertyDescriptor = __webpack_require__(11); +var defineProperty = (__webpack_require__(44).f); +var hasOwn = __webpack_require__(38); +var anInstance = __webpack_require__(210); +var inheritIfRequired = __webpack_require__(118); +var normalizeStringArgument = __webpack_require__(119); +var DOMExceptionConstants = __webpack_require__(534); +var clearErrorStack = __webpack_require__(122); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var DOM_EXCEPTION = 'DOMException'; +var Error = getBuiltIn('Error'); +var NativeDOMException = getBuiltIn(DOM_EXCEPTION); + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var that = new NativeDOMException(message, name); + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + inheritIfRequired(that, this, $DOMException); + return that; +}; + +var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype; + +var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); +var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION); + +// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it +// https://github.com/Jarred-Sumner/bun/issues/399 +var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable); + +var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK; + +// `DOMException` constructor patch for `.stack` where it's required +// https://webidl.spec.whatwg.org/#es-DOMException-specialness +$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) { + if (!IS_PURE) { + defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException)); + } + + for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c)); + } + } +} + + +/***/ }), +/* 536 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var getBuiltIn = __webpack_require__(23); +var setToStringTag = __webpack_require__(82); + +var DOM_EXCEPTION = 'DOMException'; + +// `DOMException.prototype[@@toStringTag]` property +setToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION); + + +/***/ }), +/* 537 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(538); +__webpack_require__(539); + + +/***/ }), +/* 538 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var clearImmediate = (__webpack_require__(341).clear); + +// `clearImmediate` method +// http://w3c.github.io/setImmediate/#si-clearImmediate +$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, { + clearImmediate: clearImmediate +}); + + +/***/ }), +/* 539 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var setTask = (__webpack_require__(341).set); +var schedulersFix = __webpack_require__(540); + +// https://github.com/oven-sh/bun/issues/1633 +var setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask; + +// `setImmediate` method +// http://w3c.github.io/setImmediate/#si-setImmediate +$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, { + setImmediate: setImmediate +}); + + +/***/ }), +/* 540 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var global = __webpack_require__(4); +var apply = __webpack_require__(94); +var isCallable = __webpack_require__(21); +var ENGINE_IS_BUN = __webpack_require__(541); +var USER_AGENT = __webpack_require__(28); +var arraySlice = __webpack_require__(76); +var validateArgumentsLength = __webpack_require__(342); + +var Function = global.Function; +// dirty IE9- and Bun 0.3.0- checks +var WRAP = /MSIE .\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () { + var version = global.Bun.version.split('.'); + return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0'); +})(); + +// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers +// https://github.com/oven-sh/bun/issues/1633 +module.exports = function (scheduler, hasTimeArg) { + var firstParamIndex = hasTimeArg ? 2 : 1; + return WRAP ? function (handler, timeout /* , ...arguments */) { + var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex; + var fn = isCallable(handler) ? handler : Function(handler); + var params = boundArgs ? arraySlice(arguments, firstParamIndex) : []; + var callback = boundArgs ? function () { + apply(fn, this, params); + } : fn; + return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback); + } : scheduler; +}; + + +/***/ }), +/* 541 */ +/***/ (function(module) { + + +/* global Bun -- Bun case */ +module.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string'; + + +/***/ }), +/* 542 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var globalThis = __webpack_require__(4); +var microtask = __webpack_require__(344); +var aCallable = __webpack_require__(30); +var validateArgumentsLength = __webpack_require__(342); +var fails = __webpack_require__(7); +var DESCRIPTORS = __webpack_require__(6); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9249 +var WRONG_ARITY = fails(function () { + // getOwnPropertyDescriptor for prevent experimental warning in Node 11 + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, 'queueMicrotask').value.length !== 1; +}); + +// `queueMicrotask` method +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask +$({ global: true, enumerable: true, dontCallGetSet: true, forced: WRONG_ARITY }, { + queueMicrotask: function queueMicrotask(fn) { + validateArgumentsLength(arguments.length, 1); + microtask(aCallable(fn)); + } +}); + + +/***/ }), +/* 543 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var defineBuiltInAccessor = __webpack_require__(77); +var DESCRIPTORS = __webpack_require__(6); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var INCORRECT_VALUE = global.self !== global; + +// `self` getter +// https://html.spec.whatwg.org/multipage/window-object.html#dom-self +try { + if (DESCRIPTORS) { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var descriptor = Object.getOwnPropertyDescriptor(global, 'self'); + // some engines have `self`, but with incorrect descriptor + // https://github.com/denoland/deno/issues/15765 + if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) { + defineBuiltInAccessor(global, 'self', { + get: function self() { + return global; + }, + set: function self(value) { + if (this !== global) throw new $TypeError('Illegal invocation'); + defineProperty(global, 'self', { + value: value, + writable: true, + configurable: true, + enumerable: true + }); + }, + configurable: true, + enumerable: true + }); + } + } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, { + self: global + }); +} catch (error) { /* empty */ } + + +/***/ }), +/* 544 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var IS_PURE = __webpack_require__(36); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var getBuiltIn = __webpack_require__(23); +var uncurryThis = __webpack_require__(14); +var fails = __webpack_require__(7); +var uid = __webpack_require__(40); +var isCallable = __webpack_require__(21); +var isConstructor = __webpack_require__(89); +var isNullOrUndefined = __webpack_require__(17); +var isObject = __webpack_require__(20); +var isSymbol = __webpack_require__(22); +var iterate = __webpack_require__(130); +var anObject = __webpack_require__(46); +var classof = __webpack_require__(69); +var hasOwn = __webpack_require__(38); +var createProperty = __webpack_require__(141); +var createNonEnumerableProperty = __webpack_require__(43); +var lengthOfArrayLike = __webpack_require__(63); +var validateArgumentsLength = __webpack_require__(342); +var getRegExpFlags = __webpack_require__(382); +var MapHelpers = __webpack_require__(262); +var SetHelpers = __webpack_require__(399); +var setIterate = __webpack_require__(401); +var detachTransferable = __webpack_require__(228); +var ERROR_STACK_INSTALLABLE = __webpack_require__(123); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(230); + +var Object = global.Object; +var Array = global.Array; +var Date = global.Date; +var Error = global.Error; +var TypeError = global.TypeError; +var PerformanceMark = global.PerformanceMark; +var DOMException = getBuiltIn('DOMException'); +var Map = MapHelpers.Map; +var mapHas = MapHelpers.has; +var mapGet = MapHelpers.get; +var mapSet = MapHelpers.set; +var Set = SetHelpers.Set; +var setAdd = SetHelpers.add; +var setHas = SetHelpers.has; +var objectKeys = getBuiltIn('Object', 'keys'); +var push = uncurryThis([].push); +var thisBooleanValue = uncurryThis(true.valueOf); +var thisNumberValue = uncurryThis(1.0.valueOf); +var thisStringValue = uncurryThis(''.valueOf); +var thisTimeValue = uncurryThis(Date.prototype.getTime); +var PERFORMANCE_MARK = uid('structuredClone'); +var DATA_CLONE_ERROR = 'DataCloneError'; +var TRANSFERRING = 'Transferring'; + +var checkBasicSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var set1 = new global.Set([7]); + var set2 = structuredCloneImplementation(set1); + var number = structuredCloneImplementation(Object(7)); + return set2 === set1 || !set2.has(7) || !isObject(number) || +number !== 7; + }) && structuredCloneImplementation; +}; + +var checkErrorsCloning = function (structuredCloneImplementation, $Error) { + return !fails(function () { + var error = new $Error(); + var test = structuredCloneImplementation({ a: error, b: error }); + return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack); + }); +}; + +// https://github.com/whatwg/html/pull/5749 +var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 })); + return test.name !== 'AggregateError' || test.errors[0] !== 1 || test.message !== PERFORMANCE_MARK || test.cause !== 3; + }); +}; + +// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+ +// FF<103 and Safari implementations can't clone errors +// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604 +// FF103 can clone errors, but `.stack` of clone is an empty string +// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762 +// FF104+ fixed it on usual errors, but not on DOMExceptions +// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321 +// Chrome <102 returns `null` if cloned object contains multiple references to one error +// https://bugs.chromium.org/p/v8/issues/detail?id=12542 +// NodeJS implementation can't clone DOMExceptions +// https://github.com/nodejs/node/issues/41038 +// only FF103+ supports new (html/5749) error cloning semantic +var nativeStructuredClone = global.structuredClone; + +var FORCED_REPLACEMENT = IS_PURE + || !checkErrorsCloning(nativeStructuredClone, Error) + || !checkErrorsCloning(nativeStructuredClone, DOMException) + || !checkNewErrorsCloningSemantic(nativeStructuredClone); + +// Chrome 82+, Safari 14.1+, Deno 1.11+ +// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException` +// Chrome returns `null` if cloned object contains multiple references to one error +// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround +// Safari implementation can't clone errors +// Deno 1.2-1.10 implementations too naive +// NodeJS 16.0+ does not have `PerformanceMark` constructor +// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive +// and can't clone, for example, `RegExp` or some boxed primitives +// https://github.com/nodejs/node/issues/40840 +// no one of those implementations supports new (html/5749) error cloning semantic +var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) { + return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail; +}); + +var nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark; + +var throwUncloneable = function (type) { + throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR); +}; + +var throwUnpolyfillable = function (type, action) { + throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR); +}; + +var tryNativeRestrictedStructuredClone = function (value, type) { + if (!nativeRestrictedStructuredClone) throwUnpolyfillable(type); + return nativeRestrictedStructuredClone(value); +}; + +var createDataTransfer = function () { + var dataTransfer; + try { + dataTransfer = new global.DataTransfer(); + } catch (error) { + try { + dataTransfer = new global.ClipboardEvent('').clipboardData; + } catch (error2) { /* empty */ } + } + return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null; +}; + +var cloneBuffer = function (value, map, $type) { + if (mapHas(map, value)) return mapGet(map, value); + + var type = $type || classof(value); + var clone, length, options, source, target, i; + + if (type === 'SharedArrayBuffer') { + if (nativeRestrictedStructuredClone) clone = nativeRestrictedStructuredClone(value); + // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original + else clone = value; + } else { + var DataView = global.DataView; + + // `ArrayBuffer#slice` is not available in IE10 + // `ArrayBuffer#slice` and `DataView` are not available in old FF + if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer'); + // detached buffers throws in `DataView` and `.slice` + try { + if (isCallable(value.slice) && !value.resizable) { + clone = value.slice(0); + } else { + length = value.byteLength; + options = 'maxByteLength' in value ? { maxByteLength: value.maxByteLength } : undefined; + // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- safe + clone = new ArrayBuffer(length, options); + source = new DataView(value); + target = new DataView(clone); + for (i = 0; i < length; i++) { + target.setUint8(i, source.getUint8(i)); + } + } + } catch (error) { + throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR); + } + } + + mapSet(map, value, clone); + + return clone; +}; + +var cloneView = function (value, type, offset, length, map) { + var C = global[type]; + // in some old engines like Safari 9, typeof C is 'object' + // on Uint8ClampedArray or some other constructors + if (!isObject(C)) throwUnpolyfillable(type); + return new C(cloneBuffer(value.buffer, map), offset, length); +}; + +var structuredCloneInternal = function (value, map) { + if (isSymbol(value)) throwUncloneable('Symbol'); + if (!isObject(value)) return value; + // effectively preserves circular references + if (map) { + if (mapHas(map, value)) return mapGet(map, value); + } else map = new Map(); + + var type = classof(value); + var C, name, cloned, dataTransfer, i, length, keys, key; + + switch (type) { + case 'Array': + cloned = Array(lengthOfArrayLike(value)); + break; + case 'Object': + cloned = {}; + break; + case 'Map': + cloned = new Map(); + break; + case 'Set': + cloned = new Set(); + break; + case 'RegExp': + // in this block because of a Safari 14.1 bug + // old FF does not clone regexes passed to the constructor, so get the source and flags directly + cloned = new RegExp(value.source, getRegExpFlags(value)); + break; + case 'Error': + name = value.name; + switch (name) { + case 'AggregateError': + cloned = new (getBuiltIn(name))([]); + break; + case 'EvalError': + case 'RangeError': + case 'ReferenceError': + case 'SuppressedError': + case 'SyntaxError': + case 'TypeError': + case 'URIError': + cloned = new (getBuiltIn(name))(); + break; + case 'CompileError': + case 'LinkError': + case 'RuntimeError': + cloned = new (getBuiltIn('WebAssembly', name))(); + break; + default: + cloned = new Error(); + } + break; + case 'DOMException': + cloned = new DOMException(value.message, value.name); + break; + case 'ArrayBuffer': + case 'SharedArrayBuffer': + cloned = cloneBuffer(value, map, type); + break; + case 'DataView': + case 'Int8Array': + case 'Uint8Array': + case 'Uint8ClampedArray': + case 'Int16Array': + case 'Uint16Array': + case 'Int32Array': + case 'Uint32Array': + case 'Float16Array': + case 'Float32Array': + case 'Float64Array': + case 'BigInt64Array': + case 'BigUint64Array': + length = type === 'DataView' ? value.byteLength : value.length; + cloned = cloneView(value, type, value.byteOffset, length, map); + break; + case 'DOMQuad': + try { + cloned = new DOMQuad( + structuredCloneInternal(value.p1, map), + structuredCloneInternal(value.p2, map), + structuredCloneInternal(value.p3, map), + structuredCloneInternal(value.p4, map) + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } + break; + case 'File': + if (nativeRestrictedStructuredClone) try { + cloned = nativeRestrictedStructuredClone(value); + // NodeJS 20.0.0 bug, https://github.com/nodejs/node/issues/47612 + if (classof(cloned) !== type) cloned = undefined; + } catch (error) { /* empty */ } + if (!cloned) try { + cloned = new File([value], value.name, value); + } catch (error) { /* empty */ } + if (!cloned) throwUnpolyfillable(type); + break; + case 'FileList': + dataTransfer = createDataTransfer(); + if (dataTransfer) { + for (i = 0, length = lengthOfArrayLike(value); i < length; i++) { + dataTransfer.items.add(structuredCloneInternal(value[i], map)); + } + cloned = dataTransfer.files; + } else cloned = tryNativeRestrictedStructuredClone(value, type); + break; + case 'ImageData': + // Safari 9 ImageData is a constructor, but typeof ImageData is 'object' + try { + cloned = new ImageData( + structuredCloneInternal(value.data, map), + value.width, + value.height, + { colorSpace: value.colorSpace } + ); + } catch (error) { + cloned = tryNativeRestrictedStructuredClone(value, type); + } break; + default: + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else switch (type) { + case 'BigInt': + // can be a 3rd party polyfill + cloned = Object(value.valueOf()); + break; + case 'Boolean': + cloned = Object(thisBooleanValue(value)); + break; + case 'Number': + cloned = Object(thisNumberValue(value)); + break; + case 'String': + cloned = Object(thisStringValue(value)); + break; + case 'Date': + cloned = new Date(thisTimeValue(value)); + break; + case 'Blob': + try { + cloned = value.slice(0, value.size, value.type); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMPoint': + case 'DOMPointReadOnly': + C = global[type]; + try { + cloned = C.fromPoint + ? C.fromPoint(value) + : new C(value.x, value.y, value.z, value.w); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMRect': + case 'DOMRectReadOnly': + C = global[type]; + try { + cloned = C.fromRect + ? C.fromRect(value) + : new C(value.x, value.y, value.width, value.height); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'DOMMatrix': + case 'DOMMatrixReadOnly': + C = global[type]; + try { + cloned = C.fromMatrix + ? C.fromMatrix(value) + : new C(value); + } catch (error) { + throwUnpolyfillable(type); + } break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone)) throwUnpolyfillable(type); + try { + cloned = value.clone(); + } catch (error) { + throwUncloneable(type); + } break; + case 'CropTarget': + case 'CryptoKey': + case 'FileSystemDirectoryHandle': + case 'FileSystemFileHandle': + case 'FileSystemHandle': + case 'GPUCompilationInfo': + case 'GPUCompilationMessage': + case 'ImageBitmap': + case 'RTCCertificate': + case 'WebAssembly.Module': + throwUnpolyfillable(type); + // break omitted + default: + throwUncloneable(type); + } + } + + mapSet(map, value, cloned); + + switch (type) { + case 'Array': + case 'Object': + keys = objectKeys(value); + for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) { + key = keys[i]; + createProperty(cloned, key, structuredCloneInternal(value[key], map)); + } break; + case 'Map': + value.forEach(function (v, k) { + mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map)); + }); + break; + case 'Set': + value.forEach(function (v) { + setAdd(cloned, structuredCloneInternal(v, map)); + }); + break; + case 'Error': + createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map)); + if (hasOwn(value, 'cause')) { + createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map)); + } + if (name === 'AggregateError') { + cloned.errors = structuredCloneInternal(value.errors, map); + } else if (name === 'SuppressedError') { + cloned.error = structuredCloneInternal(value.error, map); + cloned.suppressed = structuredCloneInternal(value.suppressed, map); + } // break omitted + case 'DOMException': + if (ERROR_STACK_INSTALLABLE) { + createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map)); + } + } + + return cloned; +}; + +var tryToTransfer = function (rawTransfer, map) { + if (!isObject(rawTransfer)) throw new TypeError('Transfer option cannot be converted to a sequence'); + + var transfer = []; + + iterate(rawTransfer, function (value) { + push(transfer, anObject(value)); + }); + + var i = 0; + var length = lengthOfArrayLike(transfer); + var buffers = new Set(); + var value, type, C, transferred, canvas, context; + + while (i < length) { + value = transfer[i++]; + + type = classof(value); + + if (type === 'ArrayBuffer' ? setHas(buffers, value) : mapHas(map, value)) { + throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); + } + + if (type === 'ArrayBuffer') { + setAdd(buffers, value); + continue; + } + + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + transferred = nativeStructuredClone(value, { transfer: [value] }); + } else switch (type) { + case 'ImageBitmap': + C = global.OffscreenCanvas; + if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING); + try { + canvas = new C(value.width, value.height); + context = canvas.getContext('bitmaprenderer'); + context.transferFromImageBitmap(value); + transferred = canvas.transferToImageBitmap(); + } catch (error) { /* empty */ } + break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING); + try { + transferred = value.clone(); + value.close(); + } catch (error) { /* empty */ } + break; + case 'MediaSourceHandle': + case 'MessagePort': + case 'OffscreenCanvas': + case 'ReadableStream': + case 'TransformStream': + case 'WritableStream': + throwUnpolyfillable(type, TRANSFERRING); + } + + if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR); + + mapSet(map, value, transferred); + } + + return buffers; +}; + +var detachBuffers = function (buffers) { + setIterate(buffers, function (buffer) { + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + nativeRestrictedStructuredClone(buffer, { transfer: [buffer] }); + } else if (isCallable(buffer.transfer)) { + buffer.transfer(); + } else if (detachTransferable) { + detachTransferable(buffer); + } else { + throwUnpolyfillable('ArrayBuffer', TRANSFERRING); + } + }); +}; + +// `structuredClone` method +// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone +$({ global: true, enumerable: true, sham: !PROPER_STRUCTURED_CLONE_TRANSFER, forced: FORCED_REPLACEMENT }, { + structuredClone: function structuredClone(value /* , { transfer } */) { + var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined; + var transfer = options ? options.transfer : undefined; + var map, buffers; + + if (transfer !== undefined) { + map = new Map(); + buffers = tryToTransfer(transfer, map); + } + + var clone = structuredCloneInternal(value, map); + + // since of an issue with cloning views of transferred buffers, we a forced to detach them later + // https://github.com/zloirock/core-js/issues/1265 + if (buffers) detachBuffers(buffers); + + return clone; + } +}); + + +/***/ }), +/* 545 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's split to modules listed below +__webpack_require__(546); +__webpack_require__(547); + + +/***/ }), +/* 546 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setInterval = schedulersFix(global.setInterval, true); + +// Bun / IE9- setInterval additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval +$({ global: true, bind: true, forced: global.setInterval !== setInterval }, { + setInterval: setInterval +}); + + +/***/ }), +/* 547 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var schedulersFix = __webpack_require__(540); + +var setTimeout = schedulersFix(global.setTimeout, true); + +// Bun / IE9- setTimeout additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout +$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, { + setTimeout: setTimeout +}); + + +/***/ }), +/* 548 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(549); + + +/***/ }), +/* 549 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(428); +var $ = __webpack_require__(3); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var global = __webpack_require__(4); +var bind = __webpack_require__(84); +var uncurryThis = __webpack_require__(14); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var anInstance = __webpack_require__(210); +var hasOwn = __webpack_require__(38); +var assign = __webpack_require__(305); +var arrayFrom = __webpack_require__(162); +var arraySlice = __webpack_require__(76); +var codeAt = (__webpack_require__(421).codeAt); +var toASCII = __webpack_require__(551); +var $toString = __webpack_require__(68); +var setToStringTag = __webpack_require__(82); +var validateArgumentsLength = __webpack_require__(342); +var URLSearchParamsModule = __webpack_require__(552); +var InternalStateModule = __webpack_require__(51); + +var setInternalState = InternalStateModule.set; +var getInternalURLState = InternalStateModule.getterFor('URL'); +var URLSearchParams = URLSearchParamsModule.URLSearchParams; +var getInternalSearchParamsState = URLSearchParamsModule.getState; + +var NativeURL = global.URL; +var TypeError = global.TypeError; +var parseInt = global.parseInt; +var floor = Math.floor; +var pow = Math.pow; +var charAt = uncurryThis(''.charAt); +var exec = uncurryThis(/./.exec); +var join = uncurryThis([].join); +var numberToString = uncurryThis(1.0.toString); +var pop = uncurryThis([].pop); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); +var toLowerCase = uncurryThis(''.toLowerCase); +var unshift = uncurryThis([].unshift); + +var INVALID_AUTHORITY = 'Invalid authority'; +var INVALID_SCHEME = 'Invalid scheme'; +var INVALID_HOST = 'Invalid host'; +var INVALID_PORT = 'Invalid port'; + +var ALPHA = /[a-z]/i; +// eslint-disable-next-line regexp/no-obscure-range -- safe +var ALPHANUMERIC = /[\d+-.a-z]/i; +var DIGIT = /\d/; +var HEX_START = /^0x/i; +var OCT = /^[0-7]+$/; +var DEC = /^\d+$/; +var HEX = /^[\da-f]+$/i; +/* eslint-disable regexp/no-control-character -- safe */ +var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/; +var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/; +var LEADING_C0_CONTROL_OR_SPACE = /^[\u0000-\u0020]+/; +var TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\u0000-\u0020])[\u0000-\u0020]+$/; +var TAB_AND_NEW_LINE = /[\t\n\r]/g; +/* eslint-enable regexp/no-control-character -- safe */ +var EOF; + +// https://url.spec.whatwg.org/#ipv4-number-parser +var parseIPv4 = function (input) { + var parts = split(input, '.'); + var partsLength, numbers, index, part, radix, number, ipv4; + if (parts.length && parts[parts.length - 1] === '') { + parts.length--; + } + partsLength = parts.length; + if (partsLength > 4) return input; + numbers = []; + for (index = 0; index < partsLength; index++) { + part = parts[index]; + if (part === '') return input; + radix = 10; + if (part.length > 1 && charAt(part, 0) === '0') { + radix = exec(HEX_START, part) ? 16 : 8; + part = stringSlice(part, radix === 8 ? 1 : 2); + } + if (part === '') { + number = 0; + } else { + if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input; + number = parseInt(part, radix); + } + push(numbers, number); + } + for (index = 0; index < partsLength; index++) { + number = numbers[index]; + if (index === partsLength - 1) { + if (number >= pow(256, 5 - partsLength)) return null; + } else if (number > 255) return null; + } + ipv4 = pop(numbers); + for (index = 0; index < numbers.length; index++) { + ipv4 += numbers[index] * pow(256, 3 - index); + } + return ipv4; +}; + +// https://url.spec.whatwg.org/#concept-ipv6-parser +// eslint-disable-next-line max-statements -- TODO +var parseIPv6 = function (input) { + var address = [0, 0, 0, 0, 0, 0, 0, 0]; + var pieceIndex = 0; + var compress = null; + var pointer = 0; + var value, length, numbersSeen, ipv4Piece, number, swaps, swap; + + var chr = function () { + return charAt(input, pointer); + }; + + if (chr() === ':') { + if (charAt(input, 1) !== ':') return; + pointer += 2; + pieceIndex++; + compress = pieceIndex; + } + while (chr()) { + if (pieceIndex === 8) return; + if (chr() === ':') { + if (compress !== null) return; + pointer++; + pieceIndex++; + compress = pieceIndex; + continue; + } + value = length = 0; + while (length < 4 && exec(HEX, chr())) { + value = value * 16 + parseInt(chr(), 16); + pointer++; + length++; + } + if (chr() === '.') { + if (length === 0) return; + pointer -= length; + if (pieceIndex > 6) return; + numbersSeen = 0; + while (chr()) { + ipv4Piece = null; + if (numbersSeen > 0) { + if (chr() === '.' && numbersSeen < 4) pointer++; + else return; + } + if (!exec(DIGIT, chr())) return; + while (exec(DIGIT, chr())) { + number = parseInt(chr(), 10); + if (ipv4Piece === null) ipv4Piece = number; + else if (ipv4Piece === 0) return; + else ipv4Piece = ipv4Piece * 10 + number; + if (ipv4Piece > 255) return; + pointer++; + } + address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; + numbersSeen++; + if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++; + } + if (numbersSeen !== 4) return; + break; + } else if (chr() === ':') { + pointer++; + if (!chr()) return; + } else if (chr()) return; + address[pieceIndex++] = value; + } + if (compress !== null) { + swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + swap = address[pieceIndex]; + address[pieceIndex--] = address[compress + swaps - 1]; + address[compress + --swaps] = swap; + } + } else if (pieceIndex !== 8) return; + return address; +}; + +var findLongestZeroSequence = function (ipv6) { + var maxIndex = null; + var maxLength = 1; + var currStart = null; + var currLength = 0; + var index = 0; + for (; index < 8; index++) { + if (ipv6[index] !== 0) { + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + currStart = null; + currLength = 0; + } else { + if (currStart === null) currStart = index; + ++currLength; + } + } + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + return maxIndex; +}; + +// https://url.spec.whatwg.org/#host-serializing +var serializeHost = function (host) { + var result, index, compress, ignore0; + // ipv4 + if (typeof host == 'number') { + result = []; + for (index = 0; index < 4; index++) { + unshift(result, host % 256); + host = floor(host / 256); + } return join(result, '.'); + // ipv6 + } else if (typeof host == 'object') { + result = ''; + compress = findLongestZeroSequence(host); + for (index = 0; index < 8; index++) { + if (ignore0 && host[index] === 0) continue; + if (ignore0) ignore0 = false; + if (compress === index) { + result += index ? ':' : '::'; + ignore0 = true; + } else { + result += numberToString(host[index], 16); + if (index < 7) result += ':'; + } + } + return '[' + result + ']'; + } return host; +}; + +var C0ControlPercentEncodeSet = {}; +var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { + ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 +}); +var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { + '#': 1, '?': 1, '{': 1, '}': 1 +}); +var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { + '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 +}); + +var percentEncode = function (chr, set) { + var code = codeAt(chr, 0); + return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr); +}; + +// https://url.spec.whatwg.org/#special-scheme +var specialSchemes = { + ftp: 21, + file: null, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +// https://url.spec.whatwg.org/#windows-drive-letter +var isWindowsDriveLetter = function (string, normalized) { + var second; + return string.length === 2 && exec(ALPHA, charAt(string, 0)) + && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|')); +}; + +// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter +var startsWithWindowsDriveLetter = function (string) { + var third; + return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && ( + string.length === 2 || + ((third = charAt(string, 2)) === '/' || third === '\\' || third === '?' || third === '#') + ); +}; + +// https://url.spec.whatwg.org/#single-dot-path-segment +var isSingleDot = function (segment) { + return segment === '.' || toLowerCase(segment) === '%2e'; +}; + +// https://url.spec.whatwg.org/#double-dot-path-segment +var isDoubleDot = function (segment) { + segment = toLowerCase(segment); + return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; +}; + +// States: +var SCHEME_START = {}; +var SCHEME = {}; +var NO_SCHEME = {}; +var SPECIAL_RELATIVE_OR_AUTHORITY = {}; +var PATH_OR_AUTHORITY = {}; +var RELATIVE = {}; +var RELATIVE_SLASH = {}; +var SPECIAL_AUTHORITY_SLASHES = {}; +var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; +var AUTHORITY = {}; +var HOST = {}; +var HOSTNAME = {}; +var PORT = {}; +var FILE = {}; +var FILE_SLASH = {}; +var FILE_HOST = {}; +var PATH_START = {}; +var PATH = {}; +var CANNOT_BE_A_BASE_URL_PATH = {}; +var QUERY = {}; +var FRAGMENT = {}; + +var URLState = function (url, isBase, base) { + var urlString = $toString(url); + var baseState, failure, searchParams; + if (isBase) { + failure = this.parse(urlString); + if (failure) throw new TypeError(failure); + this.searchParams = null; + } else { + if (base !== undefined) baseState = new URLState(base, true); + failure = this.parse(urlString, null, baseState); + if (failure) throw new TypeError(failure); + searchParams = getInternalSearchParamsState(new URLSearchParams()); + searchParams.bindURL(this); + this.searchParams = searchParams; + } +}; + +URLState.prototype = { + type: 'URL', + // https://url.spec.whatwg.org/#url-parsing + // eslint-disable-next-line max-statements -- TODO + parse: function (input, stateOverride, base) { + var url = this; + var state = stateOverride || SCHEME_START; + var pointer = 0; + var buffer = ''; + var seenAt = false; + var seenBracket = false; + var seenPasswordToken = false; + var codePoints, chr, bufferCodePoints, failure; + + input = $toString(input); + + if (!stateOverride) { + url.scheme = ''; + url.username = ''; + url.password = ''; + url.host = null; + url.port = null; + url.path = []; + url.query = null; + url.fragment = null; + url.cannotBeABaseURL = false; + input = replace(input, LEADING_C0_CONTROL_OR_SPACE, ''); + input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1'); + } + + input = replace(input, TAB_AND_NEW_LINE, ''); + + codePoints = arrayFrom(input); + + while (pointer <= codePoints.length) { + chr = codePoints[pointer]; + switch (state) { + case SCHEME_START: + if (chr && exec(ALPHA, chr)) { + buffer += toLowerCase(chr); + state = SCHEME; + } else if (!stateOverride) { + state = NO_SCHEME; + continue; + } else return INVALID_SCHEME; + break; + + case SCHEME: + if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) { + buffer += toLowerCase(chr); + } else if (chr === ':') { + if (stateOverride && ( + (url.isSpecial() !== hasOwn(specialSchemes, buffer)) || + (buffer === 'file' && (url.includesCredentials() || url.port !== null)) || + (url.scheme === 'file' && !url.host) + )) return; + url.scheme = buffer; + if (stateOverride) { + if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null; + return; + } + buffer = ''; + if (url.scheme === 'file') { + state = FILE; + } else if (url.isSpecial() && base && base.scheme === url.scheme) { + state = SPECIAL_RELATIVE_OR_AUTHORITY; + } else if (url.isSpecial()) { + state = SPECIAL_AUTHORITY_SLASHES; + } else if (codePoints[pointer + 1] === '/') { + state = PATH_OR_AUTHORITY; + pointer++; + } else { + url.cannotBeABaseURL = true; + push(url.path, ''); + state = CANNOT_BE_A_BASE_URL_PATH; + } + } else if (!stateOverride) { + buffer = ''; + state = NO_SCHEME; + pointer = 0; + continue; + } else return INVALID_SCHEME; + break; + + case NO_SCHEME: + if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME; + if (base.cannotBeABaseURL && chr === '#') { + url.scheme = base.scheme; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + url.cannotBeABaseURL = true; + state = FRAGMENT; + break; + } + state = base.scheme === 'file' ? FILE : RELATIVE; + continue; + + case SPECIAL_RELATIVE_OR_AUTHORITY: + if (chr === '/' && codePoints[pointer + 1] === '/') { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + pointer++; + } else { + state = RELATIVE; + continue; + } break; + + case PATH_OR_AUTHORITY: + if (chr === '/') { + state = AUTHORITY; + break; + } else { + state = PATH; + continue; + } + + case RELATIVE: + url.scheme = base.scheme; + if (chr === EOF) { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + } else if (chr === '/' || (chr === '\\' && url.isSpecial())) { + state = RELATIVE_SLASH; + } else if (chr === '?') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = arraySlice(base.path); + url.path.length--; + state = PATH; + continue; + } break; + + case RELATIVE_SLASH: + if (url.isSpecial() && (chr === '/' || chr === '\\')) { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + } else if (chr === '/') { + state = AUTHORITY; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + state = PATH; + continue; + } break; + + case SPECIAL_AUTHORITY_SLASHES: + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue; + pointer++; + break; + + case SPECIAL_AUTHORITY_IGNORE_SLASHES: + if (chr !== '/' && chr !== '\\') { + state = AUTHORITY; + continue; + } break; + + case AUTHORITY: + if (chr === '@') { + if (seenAt) buffer = '%40' + buffer; + seenAt = true; + bufferCodePoints = arrayFrom(buffer); + for (var i = 0; i < bufferCodePoints.length; i++) { + var codePoint = bufferCodePoints[i]; + if (codePoint === ':' && !seenPasswordToken) { + seenPasswordToken = true; + continue; + } + var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); + if (seenPasswordToken) url.password += encodedCodePoints; + else url.username += encodedCodePoints; + } + buffer = ''; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (seenAt && buffer === '') return INVALID_AUTHORITY; + pointer -= arrayFrom(buffer).length + 1; + buffer = ''; + state = HOST; + } else buffer += chr; + break; + + case HOST: + case HOSTNAME: + if (stateOverride && url.scheme === 'file') { + state = FILE_HOST; + continue; + } else if (chr === ':' && !seenBracket) { + if (buffer === '') return INVALID_HOST; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PORT; + if (stateOverride === HOSTNAME) return; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) + ) { + if (url.isSpecial() && buffer === '') return INVALID_HOST; + if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return; + failure = url.parseHost(buffer); + if (failure) return failure; + buffer = ''; + state = PATH_START; + if (stateOverride) return; + continue; + } else { + if (chr === '[') seenBracket = true; + else if (chr === ']') seenBracket = false; + buffer += chr; + } break; + + case PORT: + if (exec(DIGIT, chr)) { + buffer += chr; + } else if ( + chr === EOF || chr === '/' || chr === '?' || chr === '#' || + (chr === '\\' && url.isSpecial()) || + stateOverride + ) { + if (buffer !== '') { + var port = parseInt(buffer, 10); + if (port > 0xFFFF) return INVALID_PORT; + url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port; + buffer = ''; + } + if (stateOverride) return; + state = PATH_START; + continue; + } else return INVALID_PORT; + break; + + case FILE: + url.scheme = 'file'; + if (chr === '/' || chr === '\\') state = FILE_SLASH; + else if (base && base.scheme === 'file') { + switch (chr) { + case EOF: + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + break; + case '?': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = ''; + state = QUERY; + break; + case '#': + url.host = base.host; + url.path = arraySlice(base.path); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + break; + default: + if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + url.host = base.host; + url.path = arraySlice(base.path); + url.shortenPath(); + } + state = PATH; + continue; + } + } else { + state = PATH; + continue; + } break; + + case FILE_SLASH: + if (chr === '/' || chr === '\\') { + state = FILE_HOST; + break; + } + if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) { + if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]); + else url.host = base.host; + } + state = PATH; + continue; + + case FILE_HOST: + if (chr === EOF || chr === '/' || chr === '\\' || chr === '?' || chr === '#') { + if (!stateOverride && isWindowsDriveLetter(buffer)) { + state = PATH; + } else if (buffer === '') { + url.host = ''; + if (stateOverride) return; + state = PATH_START; + } else { + failure = url.parseHost(buffer); + if (failure) return failure; + if (url.host === 'localhost') url.host = ''; + if (stateOverride) return; + buffer = ''; + state = PATH_START; + } continue; + } else buffer += chr; + break; + + case PATH_START: + if (url.isSpecial()) { + state = PATH; + if (chr !== '/' && chr !== '\\') continue; + } else if (!stateOverride && chr === '?') { + url.query = ''; + state = QUERY; + } else if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + state = PATH; + if (chr !== '/') continue; + } break; + + case PATH: + if ( + chr === EOF || chr === '/' || + (chr === '\\' && url.isSpecial()) || + (!stateOverride && (chr === '?' || chr === '#')) + ) { + if (isDoubleDot(buffer)) { + url.shortenPath(); + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else if (isSingleDot(buffer)) { + if (chr !== '/' && !(chr === '\\' && url.isSpecial())) { + push(url.path, ''); + } + } else { + if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { + if (url.host) url.host = ''; + buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter + } + push(url.path, buffer); + } + buffer = ''; + if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) { + while (url.path.length > 1 && url.path[0] === '') { + shift(url.path); + } + } + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } + } else { + buffer += percentEncode(chr, pathPercentEncodeSet); + } break; + + case CANNOT_BE_A_BASE_URL_PATH: + if (chr === '?') { + url.query = ''; + state = QUERY; + } else if (chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case QUERY: + if (!stateOverride && chr === '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (chr !== EOF) { + if (chr === "'" && url.isSpecial()) url.query += '%27'; + else if (chr === '#') url.query += '%23'; + else url.query += percentEncode(chr, C0ControlPercentEncodeSet); + } break; + + case FRAGMENT: + if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet); + break; + } + + pointer++; + } + }, + // https://url.spec.whatwg.org/#host-parsing + parseHost: function (input) { + var result, codePoints, index; + if (charAt(input, 0) === '[') { + if (charAt(input, input.length - 1) !== ']') return INVALID_HOST; + result = parseIPv6(stringSlice(input, 1, -1)); + if (!result) return INVALID_HOST; + this.host = result; + // opaque host + } else if (!this.isSpecial()) { + if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST; + result = ''; + codePoints = arrayFrom(input); + for (index = 0; index < codePoints.length; index++) { + result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); + } + this.host = result; + } else { + input = toASCII(input); + if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST; + result = parseIPv4(input); + if (result === null) return INVALID_HOST; + this.host = result; + } + }, + // https://url.spec.whatwg.org/#cannot-have-a-username-password-port + cannotHaveUsernamePasswordPort: function () { + return !this.host || this.cannotBeABaseURL || this.scheme === 'file'; + }, + // https://url.spec.whatwg.org/#include-credentials + includesCredentials: function () { + return this.username !== '' || this.password !== ''; + }, + // https://url.spec.whatwg.org/#is-special + isSpecial: function () { + return hasOwn(specialSchemes, this.scheme); + }, + // https://url.spec.whatwg.org/#shorten-a-urls-path + shortenPath: function () { + var path = this.path; + var pathSize = path.length; + if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) { + path.length--; + } + }, + // https://url.spec.whatwg.org/#concept-url-serializer + serialize: function () { + var url = this; + var scheme = url.scheme; + var username = url.username; + var password = url.password; + var host = url.host; + var port = url.port; + var path = url.path; + var query = url.query; + var fragment = url.fragment; + var output = scheme + ':'; + if (host !== null) { + output += '//'; + if (url.includesCredentials()) { + output += username + (password ? ':' + password : '') + '@'; + } + output += serializeHost(host); + if (port !== null) output += ':' + port; + } else if (scheme === 'file') output += '//'; + output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + if (query !== null) output += '?' + query; + if (fragment !== null) output += '#' + fragment; + return output; + }, + // https://url.spec.whatwg.org/#dom-url-href + setHref: function (href) { + var failure = this.parse(href); + if (failure) throw new TypeError(failure); + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-origin + getOrigin: function () { + var scheme = this.scheme; + var port = this.port; + if (scheme === 'blob') try { + return new URLConstructor(scheme.path[0]).origin; + } catch (error) { + return 'null'; + } + if (scheme === 'file' || !this.isSpecial()) return 'null'; + return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : ''); + }, + // https://url.spec.whatwg.org/#dom-url-protocol + getProtocol: function () { + return this.scheme + ':'; + }, + setProtocol: function (protocol) { + this.parse($toString(protocol) + ':', SCHEME_START); + }, + // https://url.spec.whatwg.org/#dom-url-username + getUsername: function () { + return this.username; + }, + setUsername: function (username) { + var codePoints = arrayFrom($toString(username)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.username = ''; + for (var i = 0; i < codePoints.length; i++) { + this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-password + getPassword: function () { + return this.password; + }, + setPassword: function (password) { + var codePoints = arrayFrom($toString(password)); + if (this.cannotHaveUsernamePasswordPort()) return; + this.password = ''; + for (var i = 0; i < codePoints.length; i++) { + this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }, + // https://url.spec.whatwg.org/#dom-url-host + getHost: function () { + var host = this.host; + var port = this.port; + return host === null ? '' + : port === null ? serializeHost(host) + : serializeHost(host) + ':' + port; + }, + setHost: function (host) { + if (this.cannotBeABaseURL) return; + this.parse(host, HOST); + }, + // https://url.spec.whatwg.org/#dom-url-hostname + getHostname: function () { + var host = this.host; + return host === null ? '' : serializeHost(host); + }, + setHostname: function (hostname) { + if (this.cannotBeABaseURL) return; + this.parse(hostname, HOSTNAME); + }, + // https://url.spec.whatwg.org/#dom-url-port + getPort: function () { + var port = this.port; + return port === null ? '' : $toString(port); + }, + setPort: function (port) { + if (this.cannotHaveUsernamePasswordPort()) return; + port = $toString(port); + if (port === '') this.port = null; + else this.parse(port, PORT); + }, + // https://url.spec.whatwg.org/#dom-url-pathname + getPathname: function () { + var path = this.path; + return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; + }, + setPathname: function (pathname) { + if (this.cannotBeABaseURL) return; + this.path = []; + this.parse(pathname, PATH_START); + }, + // https://url.spec.whatwg.org/#dom-url-search + getSearch: function () { + var query = this.query; + return query ? '?' + query : ''; + }, + setSearch: function (search) { + search = $toString(search); + if (search === '') { + this.query = null; + } else { + if (charAt(search, 0) === '?') search = stringSlice(search, 1); + this.query = ''; + this.parse(search, QUERY); + } + this.searchParams.update(); + }, + // https://url.spec.whatwg.org/#dom-url-searchparams + getSearchParams: function () { + return this.searchParams.facade; + }, + // https://url.spec.whatwg.org/#dom-url-hash + getHash: function () { + var fragment = this.fragment; + return fragment ? '#' + fragment : ''; + }, + setHash: function (hash) { + hash = $toString(hash); + if (hash === '') { + this.fragment = null; + return; + } + if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1); + this.fragment = ''; + this.parse(hash, FRAGMENT); + }, + update: function () { + this.query = this.searchParams.serialize() || null; + } +}; + +// `URL` constructor +// https://url.spec.whatwg.org/#url-class +var URLConstructor = function URL(url /* , base */) { + var that = anInstance(this, URLPrototype); + var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined; + var state = setInternalState(that, new URLState(url, false, base)); + if (!DESCRIPTORS) { + that.href = state.serialize(); + that.origin = state.getOrigin(); + that.protocol = state.getProtocol(); + that.username = state.getUsername(); + that.password = state.getPassword(); + that.host = state.getHost(); + that.hostname = state.getHostname(); + that.port = state.getPort(); + that.pathname = state.getPathname(); + that.search = state.getSearch(); + that.searchParams = state.getSearchParams(); + that.hash = state.getHash(); + } +}; + +var URLPrototype = URLConstructor.prototype; + +var accessorDescriptor = function (getter, setter) { + return { + get: function () { + return getInternalURLState(this)[getter](); + }, + set: setter && function (value) { + return getInternalURLState(this)[setter](value); + }, + configurable: true, + enumerable: true + }; +}; + +if (DESCRIPTORS) { + // `URL.prototype.href` accessors pair + // https://url.spec.whatwg.org/#dom-url-href + defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref')); + // `URL.prototype.origin` getter + // https://url.spec.whatwg.org/#dom-url-origin + defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin')); + // `URL.prototype.protocol` accessors pair + // https://url.spec.whatwg.org/#dom-url-protocol + defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol')); + // `URL.prototype.username` accessors pair + // https://url.spec.whatwg.org/#dom-url-username + defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername')); + // `URL.prototype.password` accessors pair + // https://url.spec.whatwg.org/#dom-url-password + defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword')); + // `URL.prototype.host` accessors pair + // https://url.spec.whatwg.org/#dom-url-host + defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost')); + // `URL.prototype.hostname` accessors pair + // https://url.spec.whatwg.org/#dom-url-hostname + defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname')); + // `URL.prototype.port` accessors pair + // https://url.spec.whatwg.org/#dom-url-port + defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort')); + // `URL.prototype.pathname` accessors pair + // https://url.spec.whatwg.org/#dom-url-pathname + defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname')); + // `URL.prototype.search` accessors pair + // https://url.spec.whatwg.org/#dom-url-search + defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch')); + // `URL.prototype.searchParams` getter + // https://url.spec.whatwg.org/#dom-url-searchparams + defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams')); + // `URL.prototype.hash` accessors pair + // https://url.spec.whatwg.org/#dom-url-hash + defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash')); +} + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +defineBuiltIn(URLPrototype, 'toJSON', function toJSON() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +// `URL.prototype.toString` method +// https://url.spec.whatwg.org/#URL-stringification-behavior +defineBuiltIn(URLPrototype, 'toString', function toString() { + return getInternalURLState(this).serialize(); +}, { enumerable: true }); + +if (NativeURL) { + var nativeCreateObjectURL = NativeURL.createObjectURL; + var nativeRevokeObjectURL = NativeURL.revokeObjectURL; + // `URL.createObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL + if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL)); + // `URL.revokeObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL + if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL)); +} + +setToStringTag(URLConstructor, 'URL'); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { + URL: URLConstructor +}); + + +/***/ }), +/* 550 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +var fails = __webpack_require__(7); +var wellKnownSymbol = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(6); +var IS_PURE = __webpack_require__(36); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = !fails(function () { + // eslint-disable-next-line unicorn/relative-url-style -- required for testing + var url = new URL('b?a=1&b=2&c=3', 'http://a'); + var params = url.searchParams; + var params2 = new URLSearchParams('a=1&a=2&b=3'); + var result = ''; + url.pathname = 'c%20d'; + params.forEach(function (value, key) { + params['delete']('b'); + result += key + value; + }); + params2['delete']('a', 2); + // `undefined` case is a Chromium 117 bug + // https://bugs.chromium.org/p/v8/issues/detail?id=14222 + params2['delete']('b', undefined); + return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b'))) + || (!params.size && (IS_PURE || !DESCRIPTORS)) + || !params.sort + || url.href !== 'http://a/c%20d?a=1&c=3' + || params.get('c') !== '3' + || String(new URLSearchParams('?a=1')) !== 'a=1' + || !params[ITERATOR] + // throws in Edge + || new URL('https://a@b').username !== 'a' + || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' + // not punycoded in Edge + || new URL('http://тест').host !== 'xn--e1aybc' + // not escaped in Chrome 62- + || new URL('http://a#б').hash !== '#%D0%B1' + // fails in Chrome 66- + || result !== 'a1c3' + // throws in Safari + || new URL('http://x', undefined).host !== 'x'; +}); + + +/***/ }), +/* 551 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js +var uncurryThis = __webpack_require__(14); + +var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 +var base = 36; +var tMin = 1; +var tMax = 26; +var skew = 38; +var damp = 700; +var initialBias = 72; +var initialN = 128; // 0x80 +var delimiter = '-'; // '\x2D' +var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars +var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators +var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; +var baseMinusTMin = base - tMin; + +var $RangeError = RangeError; +var exec = uncurryThis(regexSeparators.exec); +var floor = Math.floor; +var fromCharCode = String.fromCharCode; +var charCodeAt = uncurryThis(''.charCodeAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var split = uncurryThis(''.split); +var toLowerCase = uncurryThis(''.toLowerCase); + +/** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + */ +var ucs2decode = function (string) { + var output = []; + var counter = 0; + var length = string.length; + while (counter < length) { + var value = charCodeAt(string, counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + var extra = charCodeAt(string, counter++); + if ((extra & 0xFC00) === 0xDC00) { // Low surrogate. + push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + push(output, value); + counter--; + } + } else { + push(output, value); + } + } + return output; +}; + +/** + * Converts a digit/integer into a basic code point. + */ +var digitToBasic = function (digit) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26); +}; + +/** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + */ +var adapt = function (delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + while (delta > baseMinusTMin * tMax >> 1) { + delta = floor(delta / baseMinusTMin); + k += base; + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); +}; + +/** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + */ +var encode = function (input) { + var output = []; + + // Convert the input in UCS-2 to an array of Unicode code points. + input = ucs2decode(input); + + // Cache the length. + var inputLength = input.length; + + // Initialize the state. + var n = initialN; + var delta = 0; + var bias = initialBias; + var i, currentValue; + + // Handle the basic code points. + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < 0x80) { + push(output, fromCharCode(currentValue)); + } + } + + var basicLength = output.length; // number of basic code points. + var handledCPCount = basicLength; // number of code points that have been handled; + + // Finish the basic string with a delimiter unless it's empty. + if (basicLength) { + push(output, delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + // All non-basic code points < n have been handled already. Find the next larger one: + var m = maxInt; + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow. + var handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + throw new $RangeError(OVERFLOW_ERROR); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + if (currentValue < n && ++delta > maxInt) { + throw new $RangeError(OVERFLOW_ERROR); + } + if (currentValue === n) { + // Represent delta as a generalized variable-length integer. + var q = delta; + var k = base; + while (true) { + var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (q < t) break; + var qMinusT = q - t; + var baseMinusT = base - t; + push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT))); + q = floor(qMinusT / baseMinusT); + k += base; + } + + push(output, fromCharCode(digitToBasic(q))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength); + delta = 0; + handledCPCount++; + } + } + + delta++; + n++; + } + return join(output, ''); +}; + +module.exports = function (input) { + var encoded = []; + var labels = split(replace(toLowerCase(input), regexSeparators, '\u002E'), '.'); + var i, label; + for (i = 0; i < labels.length; i++) { + label = labels[i]; + push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label); + } + return join(encoded, '.'); +}; + + +/***/ }), +/* 552 */ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` +__webpack_require__(168); +var $ = __webpack_require__(3); +var global = __webpack_require__(4); +var safeGetBuiltIn = __webpack_require__(345); +var call = __webpack_require__(8); +var uncurryThis = __webpack_require__(14); +var DESCRIPTORS = __webpack_require__(6); +var USE_NATIVE_URL = __webpack_require__(550); +var defineBuiltIn = __webpack_require__(47); +var defineBuiltInAccessor = __webpack_require__(77); +var defineBuiltIns = __webpack_require__(209); +var setToStringTag = __webpack_require__(82); +var createIteratorConstructor = __webpack_require__(170); +var InternalStateModule = __webpack_require__(51); +var anInstance = __webpack_require__(210); +var isCallable = __webpack_require__(21); +var hasOwn = __webpack_require__(38); +var bind = __webpack_require__(84); +var classof = __webpack_require__(69); +var anObject = __webpack_require__(46); +var isObject = __webpack_require__(20); +var $toString = __webpack_require__(68); +var create = __webpack_require__(71); +var createPropertyDescriptor = __webpack_require__(11); +var getIterator = __webpack_require__(133); +var getIteratorMethod = __webpack_require__(134); +var createIterResultObject = __webpack_require__(172); +var validateArgumentsLength = __webpack_require__(342); +var wellKnownSymbol = __webpack_require__(33); +var arraySort = __webpack_require__(188); + +var ITERATOR = wellKnownSymbol('iterator'); +var URL_SEARCH_PARAMS = 'URLSearchParams'; +var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); +var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); + +var nativeFetch = safeGetBuiltIn('fetch'); +var NativeRequest = safeGetBuiltIn('Request'); +var Headers = safeGetBuiltIn('Headers'); +var RequestPrototype = NativeRequest && NativeRequest.prototype; +var HeadersPrototype = Headers && Headers.prototype; +var RegExp = global.RegExp; +var TypeError = global.TypeError; +var decodeURIComponent = global.decodeURIComponent; +var encodeURIComponent = global.encodeURIComponent; +var charAt = uncurryThis(''.charAt); +var join = uncurryThis([].join); +var push = uncurryThis([].push); +var replace = uncurryThis(''.replace); +var shift = uncurryThis([].shift); +var splice = uncurryThis([].splice); +var split = uncurryThis(''.split); +var stringSlice = uncurryThis(''.slice); + +var plus = /\+/g; +var sequences = Array(4); + +var percentSequence = function (bytes) { + return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); +}; + +var percentDecode = function (sequence) { + try { + return decodeURIComponent(sequence); + } catch (error) { + return sequence; + } +}; + +var deserialize = function (it) { + var result = replace(it, plus, ' '); + var bytes = 4; + try { + return decodeURIComponent(result); + } catch (error) { + while (bytes) { + result = replace(result, percentSequence(bytes--), percentDecode); + } + return result; + } +}; + +var find = /[!'()~]|%20/g; + +var replacements = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+' +}; + +var replacer = function (match) { + return replacements[match]; +}; + +var serialize = function (it) { + return replace(encodeURIComponent(it), find, replacer); +}; + +var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { + setInternalState(this, { + type: URL_SEARCH_PARAMS_ITERATOR, + target: getInternalParamsState(params).entries, + index: 0, + kind: kind + }); +}, URL_SEARCH_PARAMS, function next() { + var state = getInternalIteratorState(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + var entry = target[index]; + switch (state.kind) { + case 'keys': return createIterResultObject(entry.key, false); + case 'values': return createIterResultObject(entry.value, false); + } return createIterResultObject([entry.key, entry.value], false); +}, true); + +var URLSearchParamsState = function (init) { + this.entries = []; + this.url = null; + + if (init !== undefined) { + if (isObject(init)) this.parseObject(init); + else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init)); + } +}; + +URLSearchParamsState.prototype = { + type: URL_SEARCH_PARAMS, + bindURL: function (url) { + this.url = url; + this.update(); + }, + parseObject: function (object) { + var entries = this.entries; + var iteratorMethod = getIteratorMethod(object); + var iterator, next, step, entryIterator, entryNext, first, second; + + if (iteratorMethod) { + iterator = getIterator(object, iteratorMethod); + next = iterator.next; + while (!(step = call(next, iterator)).done) { + entryIterator = getIterator(anObject(step.value)); + entryNext = entryIterator.next; + if ( + (first = call(entryNext, entryIterator)).done || + (second = call(entryNext, entryIterator)).done || + !call(entryNext, entryIterator).done + ) throw new TypeError('Expected sequence with length 2'); + push(entries, { key: $toString(first.value), value: $toString(second.value) }); + } + } else for (var key in object) if (hasOwn(object, key)) { + push(entries, { key: key, value: $toString(object[key]) }); + } + }, + parseQuery: function (query) { + if (query) { + var entries = this.entries; + var attributes = split(query, '&'); + var index = 0; + var attribute, entry; + while (index < attributes.length) { + attribute = attributes[index++]; + if (attribute.length) { + entry = split(attribute, '='); + push(entries, { + key: deserialize(shift(entry)), + value: deserialize(join(entry, '=')) + }); + } + } + } + }, + serialize: function () { + var entries = this.entries; + var result = []; + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + push(result, serialize(entry.key) + '=' + serialize(entry.value)); + } return join(result, '&'); + }, + update: function () { + this.entries.length = 0; + this.parseQuery(this.url.query); + }, + updateURL: function () { + if (this.url) this.url.update(); + } +}; + +// `URLSearchParams` constructor +// https://url.spec.whatwg.org/#interface-urlsearchparams +var URLSearchParamsConstructor = function URLSearchParams(/* init */) { + anInstance(this, URLSearchParamsPrototype); + var init = arguments.length > 0 ? arguments[0] : undefined; + var state = setInternalState(this, new URLSearchParamsState(init)); + if (!DESCRIPTORS) this.size = state.entries.length; +}; + +var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; + +defineBuiltIns(URLSearchParamsPrototype, { + // `URLSearchParams.prototype.append` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-append + append: function append(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 2); + push(state.entries, { key: $toString(name), value: $toString(value) }); + if (!DESCRIPTORS) this.length++; + state.updateURL(); + }, + // `URLSearchParams.prototype.delete` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-delete + 'delete': function (name /* , value */) { + var state = getInternalParamsState(this); + var length = validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index]; + if (entry.key === key && (value === undefined || entry.value === value)) { + splice(entries, index, 1); + if (value !== undefined) break; + } else index++; + } + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.get` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-get + get: function get(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) return entries[index].value; + } + return null; + }, + // `URLSearchParams.prototype.getAll` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-getall + getAll: function getAll(name) { + var entries = getInternalParamsState(this).entries; + validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var result = []; + var index = 0; + for (; index < entries.length; index++) { + if (entries[index].key === key) push(result, entries[index].value); + } + return result; + }, + // `URLSearchParams.prototype.has` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-has + has: function has(name /* , value */) { + var entries = getInternalParamsState(this).entries; + var length = validateArgumentsLength(arguments.length, 1); + var key = $toString(name); + var $value = length < 2 ? undefined : arguments[1]; + var value = $value === undefined ? $value : $toString($value); + var index = 0; + while (index < entries.length) { + var entry = entries[index++]; + if (entry.key === key && (value === undefined || entry.value === value)) return true; + } + return false; + }, + // `URLSearchParams.prototype.set` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-set + set: function set(name, value) { + var state = getInternalParamsState(this); + validateArgumentsLength(arguments.length, 1); + var entries = state.entries; + var found = false; + var key = $toString(name); + var val = $toString(value); + var index = 0; + var entry; + for (; index < entries.length; index++) { + entry = entries[index]; + if (entry.key === key) { + if (found) splice(entries, index--, 1); + else { + found = true; + entry.value = val; + } + } + } + if (!found) push(entries, { key: key, value: val }); + if (!DESCRIPTORS) this.size = entries.length; + state.updateURL(); + }, + // `URLSearchParams.prototype.sort` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-sort + sort: function sort() { + var state = getInternalParamsState(this); + arraySort(state.entries, function (a, b) { + return a.key > b.key ? 1 : -1; + }); + state.updateURL(); + }, + // `URLSearchParams.prototype.forEach` method + forEach: function forEach(callback /* , thisArg */) { + var entries = getInternalParamsState(this).entries; + var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined); + var index = 0; + var entry; + while (index < entries.length) { + entry = entries[index++]; + boundFunction(entry.value, entry.key, this); + } + }, + // `URLSearchParams.prototype.keys` method + keys: function keys() { + return new URLSearchParamsIterator(this, 'keys'); + }, + // `URLSearchParams.prototype.values` method + values: function values() { + return new URLSearchParamsIterator(this, 'values'); + }, + // `URLSearchParams.prototype.entries` method + entries: function entries() { + return new URLSearchParamsIterator(this, 'entries'); + } +}, { enumerable: true }); + +// `URLSearchParams.prototype[@@iterator]` method +defineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' }); + +// `URLSearchParams.prototype.toString` method +// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior +defineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() { + return getInternalParamsState(this).serialize(); +}, { enumerable: true }); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + return getInternalParamsState(this).entries.length; + }, + configurable: true, + enumerable: true +}); + +setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); + +$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, { + URLSearchParams: URLSearchParamsConstructor +}); + +// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams` +if (!USE_NATIVE_URL && isCallable(Headers)) { + var headersHas = uncurryThis(HeadersPrototype.has); + var headersSet = uncurryThis(HeadersPrototype.set); + + var wrapRequestOptions = function (init) { + if (isObject(init)) { + var body = init.body; + var headers; + if (classof(body) === URL_SEARCH_PARAMS) { + headers = init.headers ? new Headers(init.headers) : new Headers(); + if (!headersHas(headers, 'content-type')) { + headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); + } + return create(init, { + body: createPropertyDescriptor(0, $toString(body)), + headers: createPropertyDescriptor(0, headers) + }); + } + } return init; + }; + + if (isCallable(nativeFetch)) { + $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, { + fetch: function fetch(input /* , init */) { + return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + } + }); + } + + if (isCallable(NativeRequest)) { + var RequestConstructor = function Request(input /* , init */) { + anInstance(this, RequestPrototype); + return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + }; + + RequestPrototype.constructor = RequestConstructor; + RequestConstructor.prototype = RequestPrototype; + + $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, { + Request: RequestConstructor + }); + } +} + +module.exports = { + URLSearchParams: URLSearchParamsConstructor, + getState: getInternalParamsState +}; + + +/***/ }), +/* 553 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var fails = __webpack_require__(7); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// https://github.com/nodejs/node/issues/47505 +// https://github.com/denoland/deno/issues/18893 +var THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () { + URL.canParse(); +}); + +// Bun ~ 1.0.30 bug +// https://github.com/oven-sh/bun/issues/9250 +var WRONG_ARITY = fails(function () { + return URL.canParse.length !== 1; +}); + +// `URL.canParse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, { + canParse: function canParse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return !!new URL(urlString, base); + } catch (error) { + return false; + } + } +}); + + +/***/ }), +/* 554 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var getBuiltIn = __webpack_require__(23); +var validateArgumentsLength = __webpack_require__(342); +var toString = __webpack_require__(68); +var USE_NATIVE_URL = __webpack_require__(550); + +var URL = getBuiltIn('URL'); + +// `URL.parse` method +// https://url.spec.whatwg.org/#dom-url-canparse +$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, { + parse: function parse(url) { + var length = validateArgumentsLength(arguments.length, 1); + var urlString = toString(url); + var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]); + try { + return new URL(urlString, base); + } catch (error) { + return null; + } + } +}); + + +/***/ }), +/* 555 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var $ = __webpack_require__(3); +var call = __webpack_require__(8); + +// `URL.prototype.toJSON` method +// https://url.spec.whatwg.org/#dom-url-tojson +$({ target: 'URL', proto: true, enumerable: true }, { + toJSON: function toJSON() { + return call(URL.prototype.toString, this); + } +}); + + +/***/ }), +/* 556 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +// TODO: Remove this module from `core-js@4` since it's replaced to module below +__webpack_require__(552); + + +/***/ }), +/* 557 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var append = uncurryThis(URLSearchParamsPrototype.append); +var $delete = uncurryThis(URLSearchParamsPrototype['delete']); +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); +var push = uncurryThis([].push); +var params = new $URLSearchParams('a=1&a=2&b=3'); + +params['delete']('a', 1); +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +params['delete']('b', undefined); + +if (params + '' !== 'a=2') { + defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $delete(this, name); + var entries = []; + forEach(this, function (v, k) { // also validates `this` + push(entries, { key: k, value: v }); + }); + validateArgumentsLength(length, 1); + var key = toString(name); + var value = toString($value); + var index = 0; + var dindex = 0; + var found = false; + var entriesLength = entries.length; + var entry; + while (index < entriesLength) { + entry = entries[index++]; + if (found || entry.key === key) { + found = true; + $delete(this, entry.key); + } else dindex++; + } + while (dindex < entriesLength) { + entry = entries[dindex++]; + if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value); + } + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 558 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var defineBuiltIn = __webpack_require__(47); +var uncurryThis = __webpack_require__(14); +var toString = __webpack_require__(68); +var validateArgumentsLength = __webpack_require__(342); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var getAll = uncurryThis(URLSearchParamsPrototype.getAll); +var $has = uncurryThis(URLSearchParamsPrototype.has); +var params = new $URLSearchParams('a=1'); + +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +if (params.has('a', 2) || !params.has('a', undefined)) { + defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $has(this, name); + var values = getAll(this, name); // also validates `this` + validateArgumentsLength(length, 1); + var value = toString($value); + var index = 0; + while (index < values.length) { + if (values[index++] === value) return true; + } return false; + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), +/* 559 */ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + + +var DESCRIPTORS = __webpack_require__(6); +var uncurryThis = __webpack_require__(14); +var defineBuiltInAccessor = __webpack_require__(77); + +var URLSearchParamsPrototype = URLSearchParams.prototype; +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) { + defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + var count = 0; + forEach(this, function () { count++; }); + return count; + }, + configurable: true, + enumerable: true + }); +} + + +/***/ }), +/* 560 */, +/* 561 */, +/* 562 */, +/* 563 */, +/* 564 */ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "default": function() { return /* binding */ TextOverlap; } +}); + +;// CONCATENATED MODULE: ./node_modules/robust-predicates/esm/util.js +const epsilon = 1.1102230246251565e-16; +const splitter = 134217729; +const resulterrbound = (3 + 8 * epsilon) * epsilon; + +// fast_expansion_sum_zeroelim routine from oritinal code +function sum(elen, e, flen, f, h) { + let Q, Qnew, hh, bvirt; + let enow = e[0]; + let fnow = f[0]; + let eindex = 0; + let findex = 0; + if ((fnow > enow) === (fnow > -enow)) { + Q = enow; + enow = e[++eindex]; + } else { + Q = fnow; + fnow = f[++findex]; + } + let hindex = 0; + if (eindex < elen && findex < flen) { + if ((fnow > enow) === (fnow > -enow)) { + Qnew = enow + Q; + hh = Q - (Qnew - enow); + enow = e[++eindex]; + } else { + Qnew = fnow + Q; + hh = Q - (Qnew - fnow); + fnow = f[++findex]; + } + Q = Qnew; + if (hh !== 0) { + h[hindex++] = hh; + } + while (eindex < elen && findex < flen) { + if ((fnow > enow) === (fnow > -enow)) { + Qnew = Q + enow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (enow - bvirt); + enow = e[++eindex]; + } else { + Qnew = Q + fnow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (fnow - bvirt); + fnow = f[++findex]; + } + Q = Qnew; + if (hh !== 0) { + h[hindex++] = hh; + } + } + } + while (eindex < elen) { + Qnew = Q + enow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (enow - bvirt); + enow = e[++eindex]; + Q = Qnew; + if (hh !== 0) { + h[hindex++] = hh; + } + } + while (findex < flen) { + Qnew = Q + fnow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (fnow - bvirt); + fnow = f[++findex]; + Q = Qnew; + if (hh !== 0) { + h[hindex++] = hh; + } + } + if (Q !== 0 || hindex === 0) { + h[hindex++] = Q; + } + return hindex; +} + +function sum_three(alen, a, blen, b, clen, c, tmp, out) { + return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out); +} + +// scale_expansion_zeroelim routine from oritinal code +function scale(elen, e, b, h) { + let Q, sum, hh, product1, product0; + let bvirt, c, ahi, alo, bhi, blo; + + c = splitter * b; + bhi = c - (c - b); + blo = b - bhi; + let enow = e[0]; + Q = enow * b; + c = splitter * enow; + ahi = c - (c - enow); + alo = enow - ahi; + hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo); + let hindex = 0; + if (hh !== 0) { + h[hindex++] = hh; + } + for (let i = 1; i < elen; i++) { + enow = e[i]; + product1 = enow * b; + c = splitter * enow; + ahi = c - (c - enow); + alo = enow - ahi; + product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo); + sum = Q + product0; + bvirt = sum - Q; + hh = Q - (sum - bvirt) + (product0 - bvirt); + if (hh !== 0) { + h[hindex++] = hh; + } + Q = product1 + sum; + hh = sum - (Q - product1); + if (hh !== 0) { + h[hindex++] = hh; + } + } + if (Q !== 0 || hindex === 0) { + h[hindex++] = Q; + } + return hindex; +} + +function negate(elen, e) { + for (let i = 0; i < elen; i++) e[i] = -e[i]; + return elen; +} + +function estimate(elen, e) { + let Q = e[0]; + for (let i = 1; i < elen; i++) Q += e[i]; + return Q; +} + +function vec(n) { + return new Float64Array(n); +} + +;// CONCATENATED MODULE: ./node_modules/robust-predicates/esm/orient2d.js + + +const ccwerrboundA = (3 + 16 * epsilon) * epsilon; +const ccwerrboundB = (2 + 12 * epsilon) * epsilon; +const ccwerrboundC = (9 + 64 * epsilon) * epsilon * epsilon; + +const B = vec(4); +const C1 = vec(8); +const C2 = vec(12); +const D = vec(16); +const u = vec(4); + +function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) { + let acxtail, acytail, bcxtail, bcytail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + + const acx = ax - cx; + const bcx = bx - cx; + const acy = ay - cy; + const bcy = by - cy; + + s1 = acx * bcy; + c = splitter * acx; + ahi = c - (c - acx); + alo = acx - ahi; + c = splitter * bcy; + bhi = c - (c - bcy); + blo = bcy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acy * bcx; + c = splitter * acy; + ahi = c - (c - acy); + alo = acy - ahi; + c = splitter * bcx; + bhi = c - (c - bcx); + blo = bcx - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + B[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + B[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + B[2] = _j - (u3 - bvirt) + (_i - bvirt); + B[3] = u3; + + let det = estimate(4, B); + let errbound = ccwerrboundB * detsum; + if (det >= errbound || -det >= errbound) { + return det; + } + + bvirt = ax - acx; + acxtail = ax - (acx + bvirt) + (bvirt - cx); + bvirt = bx - bcx; + bcxtail = bx - (bcx + bvirt) + (bvirt - cx); + bvirt = ay - acy; + acytail = ay - (acy + bvirt) + (bvirt - cy); + bvirt = by - bcy; + bcytail = by - (bcy + bvirt) + (bvirt - cy); + + if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) { + return det; + } + + errbound = ccwerrboundC * detsum + resulterrbound * Math.abs(det); + det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail); + if (det >= errbound || -det >= errbound) return det; + + s1 = acxtail * bcy; + c = splitter * acxtail; + ahi = c - (c - acxtail); + alo = acxtail - ahi; + c = splitter * bcy; + bhi = c - (c - bcy); + blo = bcy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acytail * bcx; + c = splitter * acytail; + ahi = c - (c - acytail); + alo = acytail - ahi; + c = splitter * bcx; + bhi = c - (c - bcx); + blo = bcx - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const C1len = sum(4, B, 4, u, C1); + + s1 = acx * bcytail; + c = splitter * acx; + ahi = c - (c - acx); + alo = acx - ahi; + c = splitter * bcytail; + bhi = c - (c - bcytail); + blo = bcytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acy * bcxtail; + c = splitter * acy; + ahi = c - (c - acy); + alo = acy - ahi; + c = splitter * bcxtail; + bhi = c - (c - bcxtail); + blo = bcxtail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const C2len = sum(C1len, C1, 4, u, C2); + + s1 = acxtail * bcytail; + c = splitter * acxtail; + ahi = c - (c - acxtail); + alo = acxtail - ahi; + c = splitter * bcytail; + bhi = c - (c - bcytail); + blo = bcytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acytail * bcxtail; + c = splitter * acytail; + ahi = c - (c - acytail); + alo = acytail - ahi; + c = splitter * bcxtail; + bhi = c - (c - bcxtail); + blo = bcxtail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const Dlen = sum(C2len, C2, 4, u, D); + + return D[Dlen - 1]; +} + +function orient2d(ax, ay, bx, by, cx, cy) { + const detleft = (ay - cy) * (bx - cx); + const detright = (ax - cx) * (by - cy); + const det = detleft - detright; + + const detsum = Math.abs(detleft + detright); + if (Math.abs(det) >= ccwerrboundA * detsum) return det; + + return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum); +} + +function orient2dfast(ax, ay, bx, by, cx, cy) { + return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy); +} + +;// CONCATENATED MODULE: ./node_modules/robust-predicates/esm/orient3d.js + + +const o3derrboundA = (7 + 56 * epsilon) * epsilon; +const o3derrboundB = (3 + 28 * epsilon) * epsilon; +const o3derrboundC = (26 + 288 * epsilon) * epsilon * epsilon; + +const bc = vec(4); +const ca = vec(4); +const ab = vec(4); +const at_b = vec(4); +const at_c = vec(4); +const bt_c = vec(4); +const bt_a = vec(4); +const ct_a = vec(4); +const ct_b = vec(4); +const bct = vec(8); +const cat = vec(8); +const abt = vec(8); +const orient3d_u = vec(4); + +const _8 = vec(8); +const _8b = vec(8); +const _16 = vec(8); +const _12 = vec(12); + +let fin = vec(192); +let fin2 = vec(192); + +function finadd(finlen, alen, a) { + finlen = sum(finlen, fin, alen, a, fin2); + const tmp = fin; fin = fin2; fin2 = tmp; + return finlen; +} + +function tailinit(xtail, ytail, ax, ay, bx, by, a, b) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3, negate; + if (xtail === 0) { + if (ytail === 0) { + a[0] = 0; + b[0] = 0; + return 1; + } else { + negate = -ytail; + s1 = negate * ax; + c = splitter * negate; + ahi = c - (c - negate); + alo = negate - ahi; + c = splitter * ax; + bhi = c - (c - ax); + blo = ax - bhi; + a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + a[1] = s1; + s1 = ytail * bx; + c = splitter * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = splitter * bx; + bhi = c - (c - bx); + blo = bx - bhi; + b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + b[1] = s1; + return 2; + } + } else { + if (ytail === 0) { + s1 = xtail * ay; + c = splitter * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = splitter * ay; + bhi = c - (c - ay); + blo = ay - bhi; + a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + a[1] = s1; + negate = -xtail; + s1 = negate * by; + c = splitter * negate; + ahi = c - (c - negate); + alo = negate - ahi; + c = splitter * by; + bhi = c - (c - by); + blo = by - bhi; + b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + b[1] = s1; + return 2; + } else { + s1 = xtail * ay; + c = splitter * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = splitter * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ytail * ax; + c = splitter * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = splitter * ax; + bhi = c - (c - ax); + blo = ax - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + a[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + a[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + a[2] = _j - (u3 - bvirt) + (_i - bvirt); + a[3] = u3; + s1 = ytail * bx; + c = splitter * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = splitter * bx; + bhi = c - (c - bx); + blo = bx - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = xtail * by; + c = splitter * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = splitter * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + b[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + b[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + b[2] = _j - (u3 - bvirt) + (_i - bvirt); + b[3] = u3; + return 4; + } + } +} + +function tailadd(finlen, a, b, k, z) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, u3; + s1 = a * b; + c = splitter * a; + ahi = c - (c - a); + alo = a - ahi; + c = splitter * b; + bhi = c - (c - b); + blo = b - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + c = splitter * k; + bhi = c - (c - k); + blo = k - bhi; + _i = s0 * k; + c = splitter * s0; + ahi = c - (c - s0); + alo = s0 - ahi; + orient3d_u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo); + _j = s1 * k; + c = splitter * s1; + ahi = c - (c - s1); + alo = s1 - ahi; + _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo); + _k = _i + _0; + bvirt = _k - _i; + orient3d_u[1] = _i - (_k - bvirt) + (_0 - bvirt); + u3 = _j + _k; + orient3d_u[2] = _k - (u3 - _j); + orient3d_u[3] = u3; + finlen = finadd(finlen, 4, orient3d_u); + if (z !== 0) { + c = splitter * z; + bhi = c - (c - z); + blo = z - bhi; + _i = s0 * z; + c = splitter * s0; + ahi = c - (c - s0); + alo = s0 - ahi; + orient3d_u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo); + _j = s1 * z; + c = splitter * s1; + ahi = c - (c - s1); + alo = s1 - ahi; + _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo); + _k = _i + _0; + bvirt = _k - _i; + orient3d_u[1] = _i - (_k - bvirt) + (_0 - bvirt); + u3 = _j + _k; + orient3d_u[2] = _k - (u3 - _j); + orient3d_u[3] = u3; + finlen = finadd(finlen, 4, orient3d_u); + } + return finlen; +} + +function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent) { + let finlen; + let adxtail, bdxtail, cdxtail; + let adytail, bdytail, cdytail; + let adztail, bdztail, cdztail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3; + + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + + s1 = bdx * cdy; + c = splitter * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = splitter * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * bdy; + c = splitter * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = splitter * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + bc[3] = u3; + s1 = cdx * ady; + c = splitter * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = splitter * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * cdy; + c = splitter * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = splitter * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ca[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ca[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ca[2] = _j - (u3 - bvirt) + (_i - bvirt); + ca[3] = u3; + s1 = adx * bdy; + c = splitter * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = splitter * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * ady; + c = splitter * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = splitter * ady; + bhi = c - (c - ady); + blo = ady - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + ab[3] = u3; + + finlen = sum( + sum( + scale(4, bc, adz, _8), _8, + scale(4, ca, bdz, _8b), _8b, _16), _16, + scale(4, ab, cdz, _8), _8, fin); + + let det = estimate(finlen, fin); + let errbound = o3derrboundB * permanent; + if (det >= errbound || -det >= errbound) { + return det; + } + + bvirt = ax - adx; + adxtail = ax - (adx + bvirt) + (bvirt - dx); + bvirt = bx - bdx; + bdxtail = bx - (bdx + bvirt) + (bvirt - dx); + bvirt = cx - cdx; + cdxtail = cx - (cdx + bvirt) + (bvirt - dx); + bvirt = ay - ady; + adytail = ay - (ady + bvirt) + (bvirt - dy); + bvirt = by - bdy; + bdytail = by - (bdy + bvirt) + (bvirt - dy); + bvirt = cy - cdy; + cdytail = cy - (cdy + bvirt) + (bvirt - dy); + bvirt = az - adz; + adztail = az - (adz + bvirt) + (bvirt - dz); + bvirt = bz - bdz; + bdztail = bz - (bdz + bvirt) + (bvirt - dz); + bvirt = cz - cdz; + cdztail = cz - (cdz + bvirt) + (bvirt - dz); + + if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && + adytail === 0 && bdytail === 0 && cdytail === 0 && + adztail === 0 && bdztail === 0 && cdztail === 0) { + return det; + } + + errbound = o3derrboundC * permanent + resulterrbound * Math.abs(det); + det += + adz * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx) + + bdz * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx) + + cdz * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx); + if (det >= errbound || -det >= errbound) { + return det; + } + + const at_len = tailinit(adxtail, adytail, bdx, bdy, cdx, cdy, at_b, at_c); + const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a); + const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b); + + const bctlen = sum(bt_len, bt_c, ct_len, ct_b, bct); + finlen = finadd(finlen, scale(bctlen, bct, adz, _16), _16); + + const catlen = sum(ct_len, ct_a, at_len, at_c, cat); + finlen = finadd(finlen, scale(catlen, cat, bdz, _16), _16); + + const abtlen = sum(at_len, at_b, bt_len, bt_a, abt); + finlen = finadd(finlen, scale(abtlen, abt, cdz, _16), _16); + + if (adztail !== 0) { + finlen = finadd(finlen, scale(4, bc, adztail, _12), _12); + finlen = finadd(finlen, scale(bctlen, bct, adztail, _16), _16); + } + if (bdztail !== 0) { + finlen = finadd(finlen, scale(4, ca, bdztail, _12), _12); + finlen = finadd(finlen, scale(catlen, cat, bdztail, _16), _16); + } + if (cdztail !== 0) { + finlen = finadd(finlen, scale(4, ab, cdztail, _12), _12); + finlen = finadd(finlen, scale(abtlen, abt, cdztail, _16), _16); + } + + if (adxtail !== 0) { + if (bdytail !== 0) { + finlen = tailadd(finlen, adxtail, bdytail, cdz, cdztail); + } + if (cdytail !== 0) { + finlen = tailadd(finlen, -adxtail, cdytail, bdz, bdztail); + } + } + if (bdxtail !== 0) { + if (cdytail !== 0) { + finlen = tailadd(finlen, bdxtail, cdytail, adz, adztail); + } + if (adytail !== 0) { + finlen = tailadd(finlen, -bdxtail, adytail, cdz, cdztail); + } + } + if (cdxtail !== 0) { + if (adytail !== 0) { + finlen = tailadd(finlen, cdxtail, adytail, bdz, bdztail); + } + if (bdytail !== 0) { + finlen = tailadd(finlen, -cdxtail, bdytail, adz, adztail); + } + } + + return fin[finlen - 1]; +} + +function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + + const bdxcdy = bdx * cdy; + const cdxbdy = cdx * bdy; + + const cdxady = cdx * ady; + const adxcdy = adx * cdy; + + const adxbdy = adx * bdy; + const bdxady = bdx * ady; + + const det = + adz * (bdxcdy - cdxbdy) + + bdz * (cdxady - adxcdy) + + cdz * (adxbdy - bdxady); + + const permanent = + (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) + + (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) + + (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz); + + const errbound = o3derrboundA * permanent; + if (det > errbound || -det > errbound) { + return det; + } + + return orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent); +} + +function orient3dfast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + + return adx * (bdy * cdz - bdz * cdy) + + bdx * (cdy * adz - cdz * ady) + + cdx * (ady * bdz - adz * bdy); +} + +;// CONCATENATED MODULE: ./node_modules/robust-predicates/esm/incircle.js + + +const iccerrboundA = (10 + 96 * epsilon) * epsilon; +const iccerrboundB = (4 + 48 * epsilon) * epsilon; +const iccerrboundC = (44 + 576 * epsilon) * epsilon * epsilon; + +const incircle_bc = vec(4); +const incircle_ca = vec(4); +const incircle_ab = vec(4); +const aa = vec(4); +const bb = vec(4); +const cc = vec(4); +const incircle_u = vec(4); +const v = vec(4); +const axtbc = vec(8); +const aytbc = vec(8); +const bxtca = vec(8); +const bytca = vec(8); +const cxtab = vec(8); +const cytab = vec(8); +const incircle_abt = vec(8); +const incircle_bct = vec(8); +const incircle_cat = vec(8); +const abtt = vec(4); +const bctt = vec(4); +const catt = vec(4); + +const incircle_8 = vec(8); +const incircle_16 = vec(16); +const _16b = vec(16); +const _16c = vec(16); +const _32 = vec(32); +const _32b = vec(32); +const _48 = vec(48); +const _64 = vec(64); + +let incircle_fin = vec(1152); +let incircle_fin2 = vec(1152); + +function incircle_finadd(finlen, a, alen) { + finlen = sum(finlen, incircle_fin, a, alen, incircle_fin2); + const tmp = incircle_fin; incircle_fin = incircle_fin2; incircle_fin2 = tmp; + return finlen; +} + +function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) { + let finlen; + let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail; + let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen; + let abtlen, bctlen, catlen; + let abttlen, bcttlen, cattlen; + let n1, n0; + + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + + s1 = bdx * cdy; + c = splitter * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = splitter * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * bdy; + c = splitter * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = splitter * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + incircle_bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + incircle_bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + incircle_bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + incircle_bc[3] = u3; + s1 = cdx * ady; + c = splitter * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = splitter * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * cdy; + c = splitter * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = splitter * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + incircle_ca[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + incircle_ca[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + incircle_ca[2] = _j - (u3 - bvirt) + (_i - bvirt); + incircle_ca[3] = u3; + s1 = adx * bdy; + c = splitter * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = splitter * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * ady; + c = splitter * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = splitter * ady; + bhi = c - (c - ady); + blo = ady - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + incircle_ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + incircle_ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + incircle_ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + incircle_ab[3] = u3; + + finlen = sum( + sum( + sum( + scale(scale(4, incircle_bc, adx, incircle_8), incircle_8, adx, incircle_16), incircle_16, + scale(scale(4, incircle_bc, ady, incircle_8), incircle_8, ady, _16b), _16b, _32), _32, + sum( + scale(scale(4, incircle_ca, bdx, incircle_8), incircle_8, bdx, incircle_16), incircle_16, + scale(scale(4, incircle_ca, bdy, incircle_8), incircle_8, bdy, _16b), _16b, _32b), _32b, _64), _64, + sum( + scale(scale(4, incircle_ab, cdx, incircle_8), incircle_8, cdx, incircle_16), incircle_16, + scale(scale(4, incircle_ab, cdy, incircle_8), incircle_8, cdy, _16b), _16b, _32), _32, incircle_fin); + + let det = estimate(finlen, incircle_fin); + let errbound = iccerrboundB * permanent; + if (det >= errbound || -det >= errbound) { + return det; + } + + bvirt = ax - adx; + adxtail = ax - (adx + bvirt) + (bvirt - dx); + bvirt = ay - ady; + adytail = ay - (ady + bvirt) + (bvirt - dy); + bvirt = bx - bdx; + bdxtail = bx - (bdx + bvirt) + (bvirt - dx); + bvirt = by - bdy; + bdytail = by - (bdy + bvirt) + (bvirt - dy); + bvirt = cx - cdx; + cdxtail = cx - (cdx + bvirt) + (bvirt - dx); + bvirt = cy - cdy; + cdytail = cy - (cdy + bvirt) + (bvirt - dy); + if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) { + return det; + } + + errbound = iccerrboundC * permanent + resulterrbound * Math.abs(det); + det += ((adx * adx + ady * ady) * ((bdx * cdytail + cdy * bdxtail) - (bdy * cdxtail + cdx * bdytail)) + + 2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx)) + + ((bdx * bdx + bdy * bdy) * ((cdx * adytail + ady * cdxtail) - (cdy * adxtail + adx * cdytail)) + + 2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) + + ((cdx * cdx + cdy * cdy) * ((adx * bdytail + bdy * adxtail) - (ady * bdxtail + bdx * adytail)) + + 2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx)); + + if (det >= errbound || -det >= errbound) { + return det; + } + + if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) { + s1 = adx * adx; + c = splitter * adx; + ahi = c - (c - adx); + alo = adx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = ady * ady; + c = splitter * ady; + ahi = c - (c - ady); + alo = ady - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + aa[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + aa[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + aa[2] = _j - (u3 - bvirt) + (_i - bvirt); + aa[3] = u3; + } + if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) { + s1 = bdx * bdx; + c = splitter * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = bdy * bdy; + c = splitter * bdy; + ahi = c - (c - bdy); + alo = bdy - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + bb[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + bb[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + bb[2] = _j - (u3 - bvirt) + (_i - bvirt); + bb[3] = u3; + } + if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) { + s1 = cdx * cdx; + c = splitter * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = cdy * cdy; + c = splitter * cdy; + ahi = c - (c - cdy); + alo = cdy - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + cc[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + cc[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + cc[2] = _j - (u3 - bvirt) + (_i - bvirt); + cc[3] = u3; + } + + if (adxtail !== 0) { + axtbclen = scale(4, incircle_bc, adxtail, axtbc); + finlen = incircle_finadd(finlen, sum_three( + scale(axtbclen, axtbc, 2 * adx, incircle_16), incircle_16, + scale(scale(4, cc, adxtail, incircle_8), incircle_8, bdy, _16b), _16b, + scale(scale(4, bb, adxtail, incircle_8), incircle_8, -cdy, _16c), _16c, _32, _48), _48); + } + if (adytail !== 0) { + aytbclen = scale(4, incircle_bc, adytail, aytbc); + finlen = incircle_finadd(finlen, sum_three( + scale(aytbclen, aytbc, 2 * ady, incircle_16), incircle_16, + scale(scale(4, bb, adytail, incircle_8), incircle_8, cdx, _16b), _16b, + scale(scale(4, cc, adytail, incircle_8), incircle_8, -bdx, _16c), _16c, _32, _48), _48); + } + if (bdxtail !== 0) { + bxtcalen = scale(4, incircle_ca, bdxtail, bxtca); + finlen = incircle_finadd(finlen, sum_three( + scale(bxtcalen, bxtca, 2 * bdx, incircle_16), incircle_16, + scale(scale(4, aa, bdxtail, incircle_8), incircle_8, cdy, _16b), _16b, + scale(scale(4, cc, bdxtail, incircle_8), incircle_8, -ady, _16c), _16c, _32, _48), _48); + } + if (bdytail !== 0) { + bytcalen = scale(4, incircle_ca, bdytail, bytca); + finlen = incircle_finadd(finlen, sum_three( + scale(bytcalen, bytca, 2 * bdy, incircle_16), incircle_16, + scale(scale(4, cc, bdytail, incircle_8), incircle_8, adx, _16b), _16b, + scale(scale(4, aa, bdytail, incircle_8), incircle_8, -cdx, _16c), _16c, _32, _48), _48); + } + if (cdxtail !== 0) { + cxtablen = scale(4, incircle_ab, cdxtail, cxtab); + finlen = incircle_finadd(finlen, sum_three( + scale(cxtablen, cxtab, 2 * cdx, incircle_16), incircle_16, + scale(scale(4, bb, cdxtail, incircle_8), incircle_8, ady, _16b), _16b, + scale(scale(4, aa, cdxtail, incircle_8), incircle_8, -bdy, _16c), _16c, _32, _48), _48); + } + if (cdytail !== 0) { + cytablen = scale(4, incircle_ab, cdytail, cytab); + finlen = incircle_finadd(finlen, sum_three( + scale(cytablen, cytab, 2 * cdy, incircle_16), incircle_16, + scale(scale(4, aa, cdytail, incircle_8), incircle_8, bdx, _16b), _16b, + scale(scale(4, bb, cdytail, incircle_8), incircle_8, -adx, _16c), _16c, _32, _48), _48); + } + + if (adxtail !== 0 || adytail !== 0) { + if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) { + s1 = bdxtail * cdy; + c = splitter * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = splitter * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * cdytail; + c = splitter * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = splitter * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + incircle_u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + incircle_u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + incircle_u[2] = _j - (u3 - bvirt) + (_i - bvirt); + incircle_u[3] = u3; + s1 = cdxtail * -bdy; + c = splitter * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = splitter * -bdy; + bhi = c - (c - -bdy); + blo = -bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * -bdytail; + c = splitter * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = splitter * -bdytail; + bhi = c - (c - -bdytail); + blo = -bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + bctlen = sum(4, incircle_u, 4, v, incircle_bct); + s1 = bdxtail * cdytail; + c = splitter * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = splitter * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdxtail * bdytail; + c = splitter * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = splitter * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bctt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bctt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bctt[2] = _j - (u3 - bvirt) + (_i - bvirt); + bctt[3] = u3; + bcttlen = 4; + } else { + incircle_bct[0] = 0; + bctlen = 1; + bctt[0] = 0; + bcttlen = 1; + } + if (adxtail !== 0) { + const len = scale(bctlen, incircle_bct, adxtail, _16c); + finlen = incircle_finadd(finlen, sum( + scale(axtbclen, axtbc, adxtail, incircle_16), incircle_16, + scale(len, _16c, 2 * adx, _32), _32, _48), _48); + + const len2 = scale(bcttlen, bctt, adxtail, incircle_8); + finlen = incircle_finadd(finlen, sum_three( + scale(len2, incircle_8, 2 * adx, incircle_16), incircle_16, + scale(len2, incircle_8, adxtail, _16b), _16b, + scale(len, _16c, adxtail, _32), _32, _32b, _64), _64); + + if (bdytail !== 0) { + finlen = incircle_finadd(finlen, scale(scale(4, cc, adxtail, incircle_8), incircle_8, bdytail, incircle_16), incircle_16); + } + if (cdytail !== 0) { + finlen = incircle_finadd(finlen, scale(scale(4, bb, -adxtail, incircle_8), incircle_8, cdytail, incircle_16), incircle_16); + } + } + if (adytail !== 0) { + const len = scale(bctlen, incircle_bct, adytail, _16c); + finlen = incircle_finadd(finlen, sum( + scale(aytbclen, aytbc, adytail, incircle_16), incircle_16, + scale(len, _16c, 2 * ady, _32), _32, _48), _48); + + const len2 = scale(bcttlen, bctt, adytail, incircle_8); + finlen = incircle_finadd(finlen, sum_three( + scale(len2, incircle_8, 2 * ady, incircle_16), incircle_16, + scale(len2, incircle_8, adytail, _16b), _16b, + scale(len, _16c, adytail, _32), _32, _32b, _64), _64); + } + } + if (bdxtail !== 0 || bdytail !== 0) { + if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) { + s1 = cdxtail * ady; + c = splitter * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = splitter * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * adytail; + c = splitter * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = splitter * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + incircle_u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + incircle_u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + incircle_u[2] = _j - (u3 - bvirt) + (_i - bvirt); + incircle_u[3] = u3; + n1 = -cdy; + n0 = -cdytail; + s1 = adxtail * n1; + c = splitter * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = splitter * n1; + bhi = c - (c - n1); + blo = n1 - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * n0; + c = splitter * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = splitter * n0; + bhi = c - (c - n0); + blo = n0 - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + catlen = sum(4, incircle_u, 4, v, incircle_cat); + s1 = cdxtail * adytail; + c = splitter * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = splitter * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adxtail * cdytail; + c = splitter * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = splitter * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + catt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + catt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + catt[2] = _j - (u3 - bvirt) + (_i - bvirt); + catt[3] = u3; + cattlen = 4; + } else { + incircle_cat[0] = 0; + catlen = 1; + catt[0] = 0; + cattlen = 1; + } + if (bdxtail !== 0) { + const len = scale(catlen, incircle_cat, bdxtail, _16c); + finlen = incircle_finadd(finlen, sum( + scale(bxtcalen, bxtca, bdxtail, incircle_16), incircle_16, + scale(len, _16c, 2 * bdx, _32), _32, _48), _48); + + const len2 = scale(cattlen, catt, bdxtail, incircle_8); + finlen = incircle_finadd(finlen, sum_three( + scale(len2, incircle_8, 2 * bdx, incircle_16), incircle_16, + scale(len2, incircle_8, bdxtail, _16b), _16b, + scale(len, _16c, bdxtail, _32), _32, _32b, _64), _64); + + if (cdytail !== 0) { + finlen = incircle_finadd(finlen, scale(scale(4, aa, bdxtail, incircle_8), incircle_8, cdytail, incircle_16), incircle_16); + } + if (adytail !== 0) { + finlen = incircle_finadd(finlen, scale(scale(4, cc, -bdxtail, incircle_8), incircle_8, adytail, incircle_16), incircle_16); + } + } + if (bdytail !== 0) { + const len = scale(catlen, incircle_cat, bdytail, _16c); + finlen = incircle_finadd(finlen, sum( + scale(bytcalen, bytca, bdytail, incircle_16), incircle_16, + scale(len, _16c, 2 * bdy, _32), _32, _48), _48); + + const len2 = scale(cattlen, catt, bdytail, incircle_8); + finlen = incircle_finadd(finlen, sum_three( + scale(len2, incircle_8, 2 * bdy, incircle_16), incircle_16, + scale(len2, incircle_8, bdytail, _16b), _16b, + scale(len, _16c, bdytail, _32), _32, _32b, _64), _64); + } + } + if (cdxtail !== 0 || cdytail !== 0) { + if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) { + s1 = adxtail * bdy; + c = splitter * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = splitter * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * bdytail; + c = splitter * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = splitter * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + incircle_u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + incircle_u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + incircle_u[2] = _j - (u3 - bvirt) + (_i - bvirt); + incircle_u[3] = u3; + n1 = -ady; + n0 = -adytail; + s1 = bdxtail * n1; + c = splitter * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = splitter * n1; + bhi = c - (c - n1); + blo = n1 - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * n0; + c = splitter * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = splitter * n0; + bhi = c - (c - n0); + blo = n0 - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + abtlen = sum(4, incircle_u, 4, v, incircle_abt); + s1 = adxtail * bdytail; + c = splitter * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = splitter * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdxtail * adytail; + c = splitter * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = splitter * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + abtt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + abtt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + abtt[2] = _j - (u3 - bvirt) + (_i - bvirt); + abtt[3] = u3; + abttlen = 4; + } else { + incircle_abt[0] = 0; + abtlen = 1; + abtt[0] = 0; + abttlen = 1; + } + if (cdxtail !== 0) { + const len = scale(abtlen, incircle_abt, cdxtail, _16c); + finlen = incircle_finadd(finlen, sum( + scale(cxtablen, cxtab, cdxtail, incircle_16), incircle_16, + scale(len, _16c, 2 * cdx, _32), _32, _48), _48); + + const len2 = scale(abttlen, abtt, cdxtail, incircle_8); + finlen = incircle_finadd(finlen, sum_three( + scale(len2, incircle_8, 2 * cdx, incircle_16), incircle_16, + scale(len2, incircle_8, cdxtail, _16b), _16b, + scale(len, _16c, cdxtail, _32), _32, _32b, _64), _64); + + if (adytail !== 0) { + finlen = incircle_finadd(finlen, scale(scale(4, bb, cdxtail, incircle_8), incircle_8, adytail, incircle_16), incircle_16); + } + if (bdytail !== 0) { + finlen = incircle_finadd(finlen, scale(scale(4, aa, -cdxtail, incircle_8), incircle_8, bdytail, incircle_16), incircle_16); + } + } + if (cdytail !== 0) { + const len = scale(abtlen, incircle_abt, cdytail, _16c); + finlen = incircle_finadd(finlen, sum( + scale(cytablen, cytab, cdytail, incircle_16), incircle_16, + scale(len, _16c, 2 * cdy, _32), _32, _48), _48); + + const len2 = scale(abttlen, abtt, cdytail, incircle_8); + finlen = incircle_finadd(finlen, sum_three( + scale(len2, incircle_8, 2 * cdy, incircle_16), incircle_16, + scale(len2, incircle_8, cdytail, _16b), _16b, + scale(len, _16c, cdytail, _32), _32, _32b, _64), _64); + } + } + + return incircle_fin[finlen - 1]; +} + +function incircle(ax, ay, bx, by, cx, cy, dx, dy) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + + const bdxcdy = bdx * cdy; + const cdxbdy = cdx * bdy; + const alift = adx * adx + ady * ady; + + const cdxady = cdx * ady; + const adxcdy = adx * cdy; + const blift = bdx * bdx + bdy * bdy; + + const adxbdy = adx * bdy; + const bdxady = bdx * ady; + const clift = cdx * cdx + cdy * cdy; + + const det = + alift * (bdxcdy - cdxbdy) + + blift * (cdxady - adxcdy) + + clift * (adxbdy - bdxady); + + const permanent = + (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift + + (Math.abs(cdxady) + Math.abs(adxcdy)) * blift + + (Math.abs(adxbdy) + Math.abs(bdxady)) * clift; + + const errbound = iccerrboundA * permanent; + + if (det > errbound || -det > errbound) { + return det; + } + return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent); +} + +function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) { + const adx = ax - dx; + const ady = ay - dy; + const bdx = bx - dx; + const bdy = by - dy; + const cdx = cx - dx; + const cdy = cy - dy; + + const abdet = adx * bdy - bdx * ady; + const bcdet = bdx * cdy - cdx * bdy; + const cadet = cdx * ady - adx * cdy; + const alift = adx * adx + ady * ady; + const blift = bdx * bdx + bdy * bdy; + const clift = cdx * cdx + cdy * cdy; + + return alift * bcdet + blift * cadet + clift * abdet; +} + +;// CONCATENATED MODULE: ./node_modules/robust-predicates/esm/insphere.js + + +const isperrboundA = (16 + 224 * epsilon) * epsilon; +const isperrboundB = (5 + 72 * epsilon) * epsilon; +const isperrboundC = (71 + 1408 * epsilon) * epsilon * epsilon; + +const insphere_ab = vec(4); +const insphere_bc = vec(4); +const cd = vec(4); +const de = vec(4); +const ea = vec(4); +const ac = vec(4); +const bd = vec(4); +const ce = vec(4); +const da = vec(4); +const eb = vec(4); + +const abc = vec(24); +const bcd = vec(24); +const cde = vec(24); +const dea = vec(24); +const eab = vec(24); +const abd = vec(24); +const bce = vec(24); +const cda = vec(24); +const deb = vec(24); +const eac = vec(24); + +const adet = vec(1152); +const bdet = vec(1152); +const cdet = vec(1152); +const ddet = vec(1152); +const edet = vec(1152); +const abdet = vec(2304); +const cddet = vec(2304); +const cdedet = vec(3456); +const deter = vec(5760); + +const insphere_8 = vec(8); +const insphere_8b = vec(8); +const _8c = vec(8); +const insphere_16 = vec(16); +const _24 = vec(24); +const insphere_48 = vec(48); +const _48b = vec(48); +const _96 = vec(96); +const _192 = vec(192); +const _384x = vec(384); +const _384y = vec(384); +const _384z = vec(384); +const _768 = vec(768); + +function sum_three_scale(a, b, c, az, bz, cz, out) { + return sum_three( + scale(4, a, az, insphere_8), insphere_8, + scale(4, b, bz, insphere_8b), insphere_8b, + scale(4, c, cz, _8c), _8c, insphere_16, out); +} + +function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) { + const len = sum( + sum(alen, a, blen, b, insphere_48), insphere_48, + negate(sum(clen, c, dlen, d, _48b), _48b), _48b, _96); + + return sum_three( + scale(scale(len, _96, x, _192), _192, x, _384x), _384x, + scale(scale(len, _96, y, _192), _192, y, _384y), _384y, + scale(scale(len, _96, z, _192), _192, z, _384z), _384z, _768, out); +} + +function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + + s1 = ax * by; + c = splitter * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = splitter * by; + bhi = c - (c - by); + blo = by - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bx * ay; + c = splitter * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = splitter * ay; + bhi = c - (c - ay); + blo = ay - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + insphere_ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + insphere_ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + insphere_ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + insphere_ab[3] = u3; + s1 = bx * cy; + c = splitter * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = splitter * cy; + bhi = c - (c - cy); + blo = cy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cx * by; + c = splitter * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = splitter * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + insphere_bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + insphere_bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + insphere_bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + insphere_bc[3] = u3; + s1 = cx * dy; + c = splitter * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = splitter * dy; + bhi = c - (c - dy); + blo = dy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dx * cy; + c = splitter * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = splitter * cy; + bhi = c - (c - cy); + blo = cy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + cd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + cd[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + cd[2] = _j - (u3 - bvirt) + (_i - bvirt); + cd[3] = u3; + s1 = dx * ey; + c = splitter * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = splitter * ey; + bhi = c - (c - ey); + blo = ey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ex * dy; + c = splitter * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = splitter * dy; + bhi = c - (c - dy); + blo = dy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + de[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + de[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + de[2] = _j - (u3 - bvirt) + (_i - bvirt); + de[3] = u3; + s1 = ex * ay; + c = splitter * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = splitter * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ax * ey; + c = splitter * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = splitter * ey; + bhi = c - (c - ey); + blo = ey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ea[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ea[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ea[2] = _j - (u3 - bvirt) + (_i - bvirt); + ea[3] = u3; + s1 = ax * cy; + c = splitter * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = splitter * cy; + bhi = c - (c - cy); + blo = cy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cx * ay; + c = splitter * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = splitter * ay; + bhi = c - (c - ay); + blo = ay - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ac[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ac[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ac[2] = _j - (u3 - bvirt) + (_i - bvirt); + ac[3] = u3; + s1 = bx * dy; + c = splitter * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = splitter * dy; + bhi = c - (c - dy); + blo = dy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dx * by; + c = splitter * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = splitter * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bd[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bd[2] = _j - (u3 - bvirt) + (_i - bvirt); + bd[3] = u3; + s1 = cx * ey; + c = splitter * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = splitter * ey; + bhi = c - (c - ey); + blo = ey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ex * cy; + c = splitter * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = splitter * cy; + bhi = c - (c - cy); + blo = cy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ce[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ce[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ce[2] = _j - (u3 - bvirt) + (_i - bvirt); + ce[3] = u3; + s1 = dx * ay; + c = splitter * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = splitter * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ax * dy; + c = splitter * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = splitter * dy; + bhi = c - (c - dy); + blo = dy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + da[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + da[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + da[2] = _j - (u3 - bvirt) + (_i - bvirt); + da[3] = u3; + s1 = ex * by; + c = splitter * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = splitter * by; + bhi = c - (c - by); + blo = by - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bx * ey; + c = splitter * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = splitter * ey; + bhi = c - (c - ey); + blo = ey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + eb[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + eb[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + eb[2] = _j - (u3 - bvirt) + (_i - bvirt); + eb[3] = u3; + + const abclen = sum_three_scale(insphere_ab, insphere_bc, ac, cz, az, -bz, abc); + const bcdlen = sum_three_scale(insphere_bc, cd, bd, dz, bz, -cz, bcd); + const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde); + const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea); + const eablen = sum_three_scale(ea, insphere_ab, eb, bz, ez, -az, eab); + const abdlen = sum_three_scale(insphere_ab, bd, da, dz, az, bz, abd); + const bcelen = sum_three_scale(insphere_bc, ce, eb, ez, bz, cz, bce); + const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda); + const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb); + const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac); + + const deterlen = sum_three( + liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet, + liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet, + sum_three( + liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet, + liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet, + liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter); + + return deter[deterlen - 1]; +} + +const xdet = vec(96); +const ydet = vec(96); +const zdet = vec(96); +const insphere_fin = vec(1152); + +function liftadapt(a, b, c, az, bz, cz, x, y, z, out) { + const len = sum_three_scale(a, b, c, az, bz, cz, _24); + return sum_three( + scale(scale(len, _24, x, insphere_48), insphere_48, x, xdet), xdet, + scale(scale(len, _24, y, insphere_48), insphere_48, y, ydet), ydet, + scale(scale(len, _24, z, insphere_48), insphere_48, z, zdet), zdet, _192, out); +} + +function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) { + let ab3, bc3, cd3, da3, ac3, bd3; + + let aextail, bextail, cextail, dextail; + let aeytail, beytail, ceytail, deytail; + let aeztail, beztail, ceztail, deztail; + + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0; + + const aex = ax - ex; + const bex = bx - ex; + const cex = cx - ex; + const dex = dx - ex; + const aey = ay - ey; + const bey = by - ey; + const cey = cy - ey; + const dey = dy - ey; + const aez = az - ez; + const bez = bz - ez; + const cez = cz - ez; + const dez = dz - ez; + + s1 = aex * bey; + c = splitter * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = splitter * bey; + bhi = c - (c - bey); + blo = bey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bex * aey; + c = splitter * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = splitter * aey; + bhi = c - (c - aey); + blo = aey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + insphere_ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + insphere_ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + ab3 = _j + _i; + bvirt = ab3 - _j; + insphere_ab[2] = _j - (ab3 - bvirt) + (_i - bvirt); + insphere_ab[3] = ab3; + s1 = bex * cey; + c = splitter * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = splitter * cey; + bhi = c - (c - cey); + blo = cey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cex * bey; + c = splitter * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = splitter * bey; + bhi = c - (c - bey); + blo = bey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + insphere_bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + insphere_bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + bc3 = _j + _i; + bvirt = bc3 - _j; + insphere_bc[2] = _j - (bc3 - bvirt) + (_i - bvirt); + insphere_bc[3] = bc3; + s1 = cex * dey; + c = splitter * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = splitter * dey; + bhi = c - (c - dey); + blo = dey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dex * cey; + c = splitter * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = splitter * cey; + bhi = c - (c - cey); + blo = cey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + cd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + cd[1] = _0 - (_i + bvirt) + (bvirt - t1); + cd3 = _j + _i; + bvirt = cd3 - _j; + cd[2] = _j - (cd3 - bvirt) + (_i - bvirt); + cd[3] = cd3; + s1 = dex * aey; + c = splitter * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = splitter * aey; + bhi = c - (c - aey); + blo = aey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = aex * dey; + c = splitter * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = splitter * dey; + bhi = c - (c - dey); + blo = dey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + da[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + da[1] = _0 - (_i + bvirt) + (bvirt - t1); + da3 = _j + _i; + bvirt = da3 - _j; + da[2] = _j - (da3 - bvirt) + (_i - bvirt); + da[3] = da3; + s1 = aex * cey; + c = splitter * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = splitter * cey; + bhi = c - (c - cey); + blo = cey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cex * aey; + c = splitter * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = splitter * aey; + bhi = c - (c - aey); + blo = aey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ac[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ac[1] = _0 - (_i + bvirt) + (bvirt - t1); + ac3 = _j + _i; + bvirt = ac3 - _j; + ac[2] = _j - (ac3 - bvirt) + (_i - bvirt); + ac[3] = ac3; + s1 = bex * dey; + c = splitter * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = splitter * dey; + bhi = c - (c - dey); + blo = dey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dex * bey; + c = splitter * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = splitter * bey; + bhi = c - (c - bey); + blo = bey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bd[1] = _0 - (_i + bvirt) + (bvirt - t1); + bd3 = _j + _i; + bvirt = bd3 - _j; + bd[2] = _j - (bd3 - bvirt) + (_i - bvirt); + bd[3] = bd3; + + const finlen = sum( + sum( + negate(liftadapt(insphere_bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet, + liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet, + sum( + negate(liftadapt(da, insphere_ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet, + liftadapt(insphere_ab, insphere_bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, insphere_fin); + + let det = estimate(finlen, insphere_fin); + let errbound = isperrboundB * permanent; + if (det >= errbound || -det >= errbound) { + return det; + } + + bvirt = ax - aex; + aextail = ax - (aex + bvirt) + (bvirt - ex); + bvirt = ay - aey; + aeytail = ay - (aey + bvirt) + (bvirt - ey); + bvirt = az - aez; + aeztail = az - (aez + bvirt) + (bvirt - ez); + bvirt = bx - bex; + bextail = bx - (bex + bvirt) + (bvirt - ex); + bvirt = by - bey; + beytail = by - (bey + bvirt) + (bvirt - ey); + bvirt = bz - bez; + beztail = bz - (bez + bvirt) + (bvirt - ez); + bvirt = cx - cex; + cextail = cx - (cex + bvirt) + (bvirt - ex); + bvirt = cy - cey; + ceytail = cy - (cey + bvirt) + (bvirt - ey); + bvirt = cz - cez; + ceztail = cz - (cez + bvirt) + (bvirt - ez); + bvirt = dx - dex; + dextail = dx - (dex + bvirt) + (bvirt - ex); + bvirt = dy - dey; + deytail = dy - (dey + bvirt) + (bvirt - ey); + bvirt = dz - dez; + deztail = dz - (dez + bvirt) + (bvirt - ez); + if (aextail === 0 && aeytail === 0 && aeztail === 0 && + bextail === 0 && beytail === 0 && beztail === 0 && + cextail === 0 && ceytail === 0 && ceztail === 0 && + dextail === 0 && deytail === 0 && deztail === 0) { + return det; + } + + errbound = isperrboundC * permanent + resulterrbound * Math.abs(det); + + const abeps = (aex * beytail + bey * aextail) - (aey * bextail + bex * aeytail); + const bceps = (bex * ceytail + cey * bextail) - (bey * cextail + cex * beytail); + const cdeps = (cex * deytail + dey * cextail) - (cey * dextail + dex * ceytail); + const daeps = (dex * aeytail + aey * dextail) - (dey * aextail + aex * deytail); + const aceps = (aex * ceytail + cey * aextail) - (aey * cextail + cex * aeytail); + const bdeps = (bex * deytail + dey * bextail) - (bey * dextail + dex * beytail); + det += + (((bex * bex + bey * bey + bez * bez) * ((cez * daeps + dez * aceps + aez * cdeps) + + (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) * + ((aez * bceps - bez * aceps + cez * abeps) + (aeztail * bc3 - beztail * ac3 + ceztail * ab3))) - + ((aex * aex + aey * aey + aez * aez) * ((bez * cdeps - cez * bdeps + dez * bceps) + + (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) * + ((dez * abeps + aez * bdeps + bez * daeps) + (deztail * ab3 + aeztail * bd3 + beztail * da3)))) + + 2 * (((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) + + (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3)) - + ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) + + (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3))); + + if (det >= errbound || -det >= errbound) { + return det; + } + + return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez); +} + +function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) { + const aex = ax - ex; + const bex = bx - ex; + const cex = cx - ex; + const dex = dx - ex; + const aey = ay - ey; + const bey = by - ey; + const cey = cy - ey; + const dey = dy - ey; + const aez = az - ez; + const bez = bz - ez; + const cez = cz - ez; + const dez = dz - ez; + + const aexbey = aex * bey; + const bexaey = bex * aey; + const ab = aexbey - bexaey; + const bexcey = bex * cey; + const cexbey = cex * bey; + const bc = bexcey - cexbey; + const cexdey = cex * dey; + const dexcey = dex * cey; + const cd = cexdey - dexcey; + const dexaey = dex * aey; + const aexdey = aex * dey; + const da = dexaey - aexdey; + const aexcey = aex * cey; + const cexaey = cex * aey; + const ac = aexcey - cexaey; + const bexdey = bex * dey; + const dexbey = dex * bey; + const bd = bexdey - dexbey; + + const alift = aex * aex + aey * aey + aez * aez; + const blift = bex * bex + bey * bey + bez * bez; + const clift = cex * cex + cey * cey + cez * cez; + const dlift = dex * dex + dey * dey + dez * dez; + + const det = + (clift * (dez * ab + aez * bd + bez * da) - dlift * (aez * bc - bez * ac + cez * ab)) + + (alift * (bez * cd - cez * bd + dez * bc) - blift * (cez * da + dez * ac + aez * cd)); + + const aezplus = Math.abs(aez); + const bezplus = Math.abs(bez); + const cezplus = Math.abs(cez); + const dezplus = Math.abs(dez); + const aexbeyplus = Math.abs(aexbey) + Math.abs(bexaey); + const bexceyplus = Math.abs(bexcey) + Math.abs(cexbey); + const cexdeyplus = Math.abs(cexdey) + Math.abs(dexcey); + const dexaeyplus = Math.abs(dexaey) + Math.abs(aexdey); + const aexceyplus = Math.abs(aexcey) + Math.abs(cexaey); + const bexdeyplus = Math.abs(bexdey) + Math.abs(dexbey); + const permanent = + (cexdeyplus * bezplus + bexdeyplus * cezplus + bexceyplus * dezplus) * alift + + (dexaeyplus * cezplus + aexceyplus * dezplus + cexdeyplus * aezplus) * blift + + (aexbeyplus * dezplus + bexdeyplus * aezplus + dexaeyplus * bezplus) * clift + + (bexceyplus * aezplus + aexceyplus * bezplus + aexbeyplus * cezplus) * dlift; + + const errbound = isperrboundA * permanent; + if (det > errbound || -det > errbound) { + return det; + } + return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent); +} + +function inspherefast(pax, pay, paz, pbx, pby, pbz, pcx, pcy, pcz, pdx, pdy, pdz, pex, pey, pez) { + const aex = pax - pex; + const bex = pbx - pex; + const cex = pcx - pex; + const dex = pdx - pex; + const aey = pay - pey; + const bey = pby - pey; + const cey = pcy - pey; + const dey = pdy - pey; + const aez = paz - pez; + const bez = pbz - pez; + const cez = pcz - pez; + const dez = pdz - pez; + + const ab = aex * bey - bex * aey; + const bc = bex * cey - cex * bey; + const cd = cex * dey - dex * cey; + const da = dex * aey - aex * dey; + const ac = aex * cey - cex * aey; + const bd = bex * dey - dex * bey; + + const abc = aez * bc - bez * ac + cez * ab; + const bcd = bez * cd - cez * bd + dez * bc; + const cda = cez * da + dez * ac + aez * cd; + const dab = dez * ab + aez * bd + bez * da; + + const alift = aex * aex + aey * aey + aez * aez; + const blift = bex * bex + bey * bey + bez * bez; + const clift = cex * cex + cey * cey + cez * cez; + const dlift = dex * dex + dey * dey + dez * dez; + + return (clift * dab - dlift * abc) + (alift * bcd - blift * cda); +} + +;// CONCATENATED MODULE: ./node_modules/robust-predicates/index.js + + + + + + +;// CONCATENATED MODULE: ./node_modules/delaunator/index.js + +const EPSILON = Math.pow(2, -52); +const EDGE_STACK = new Uint32Array(512); + + + +class Delaunator { + + static from(points, getX = defaultGetX, getY = defaultGetY) { + const n = points.length; + const coords = new Float64Array(n * 2); + + for (let i = 0; i < n; i++) { + const p = points[i]; + coords[2 * i] = getX(p); + coords[2 * i + 1] = getY(p); + } + + return new Delaunator(coords); + } + + constructor(coords) { + const n = coords.length >> 1; + if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.'); + + this.coords = coords; + + // arrays that will store the triangulation graph + const maxTriangles = Math.max(2 * n - 5, 0); + this._triangles = new Uint32Array(maxTriangles * 3); + this._halfedges = new Int32Array(maxTriangles * 3); + + // temporary arrays for tracking the edges of the advancing convex hull + this._hashSize = Math.ceil(Math.sqrt(n)); + this._hullPrev = new Uint32Array(n); // edge to prev edge + this._hullNext = new Uint32Array(n); // edge to next edge + this._hullTri = new Uint32Array(n); // edge to adjacent triangle + this._hullHash = new Int32Array(this._hashSize); // angular edge hash + + // temporary arrays for sorting points + this._ids = new Uint32Array(n); + this._dists = new Float64Array(n); + + this.update(); + } + + update() { + const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this; + const n = coords.length >> 1; + + // populate an array of point indices; calculate input data bbox + let minX = Infinity; + let minY = Infinity; + let maxX = -Infinity; + let maxY = -Infinity; + + for (let i = 0; i < n; i++) { + const x = coords[2 * i]; + const y = coords[2 * i + 1]; + if (x < minX) minX = x; + if (y < minY) minY = y; + if (x > maxX) maxX = x; + if (y > maxY) maxY = y; + this._ids[i] = i; + } + const cx = (minX + maxX) / 2; + const cy = (minY + maxY) / 2; + + let i0, i1, i2; + + // pick a seed point close to the center + for (let i = 0, minDist = Infinity; i < n; i++) { + const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]); + if (d < minDist) { + i0 = i; + minDist = d; + } + } + const i0x = coords[2 * i0]; + const i0y = coords[2 * i0 + 1]; + + // find the point closest to the seed + for (let i = 0, minDist = Infinity; i < n; i++) { + if (i === i0) continue; + const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]); + if (d < minDist && d > 0) { + i1 = i; + minDist = d; + } + } + let i1x = coords[2 * i1]; + let i1y = coords[2 * i1 + 1]; + + let minRadius = Infinity; + + // find the third point which forms the smallest circumcircle with the first two + for (let i = 0; i < n; i++) { + if (i === i0 || i === i1) continue; + const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]); + if (r < minRadius) { + i2 = i; + minRadius = r; + } + } + let i2x = coords[2 * i2]; + let i2y = coords[2 * i2 + 1]; + + if (minRadius === Infinity) { + // order collinear points by dx (or dy if all x are identical) + // and return the list as a hull + for (let i = 0; i < n; i++) { + this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]); + } + quicksort(this._ids, this._dists, 0, n - 1); + const hull = new Uint32Array(n); + let j = 0; + for (let i = 0, d0 = -Infinity; i < n; i++) { + const id = this._ids[i]; + const d = this._dists[id]; + if (d > d0) { + hull[j++] = id; + d0 = d; + } + } + this.hull = hull.subarray(0, j); + this.triangles = new Uint32Array(0); + this.halfedges = new Uint32Array(0); + return; + } + + // swap the order of the seed points for counter-clockwise orientation + if (orient2d(i0x, i0y, i1x, i1y, i2x, i2y) < 0) { + const i = i1; + const x = i1x; + const y = i1y; + i1 = i2; + i1x = i2x; + i1y = i2y; + i2 = i; + i2x = x; + i2y = y; + } + + const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y); + this._cx = center.x; + this._cy = center.y; + + for (let i = 0; i < n; i++) { + this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y); + } + + // sort the points by distance from the seed triangle circumcenter + quicksort(this._ids, this._dists, 0, n - 1); + + // set up the seed triangle as the starting hull + this._hullStart = i0; + let hullSize = 3; + + hullNext[i0] = hullPrev[i2] = i1; + hullNext[i1] = hullPrev[i0] = i2; + hullNext[i2] = hullPrev[i1] = i0; + + hullTri[i0] = 0; + hullTri[i1] = 1; + hullTri[i2] = 2; + + hullHash.fill(-1); + hullHash[this._hashKey(i0x, i0y)] = i0; + hullHash[this._hashKey(i1x, i1y)] = i1; + hullHash[this._hashKey(i2x, i2y)] = i2; + + this.trianglesLen = 0; + this._addTriangle(i0, i1, i2, -1, -1, -1); + + for (let k = 0, xp, yp; k < this._ids.length; k++) { + const i = this._ids[k]; + const x = coords[2 * i]; + const y = coords[2 * i + 1]; + + // skip near-duplicate points + if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue; + xp = x; + yp = y; + + // skip seed triangle points + if (i === i0 || i === i1 || i === i2) continue; + + // find a visible edge on the convex hull using edge hash + let start = 0; + for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) { + start = hullHash[(key + j) % this._hashSize]; + if (start !== -1 && start !== hullNext[start]) break; + } + + start = hullPrev[start]; + let e = start, q; + while (q = hullNext[e], orient2d(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) { + e = q; + if (e === start) { + e = -1; + break; + } + } + if (e === -1) continue; // likely a near-duplicate point; skip it + + // add the first triangle from the point + let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]); + + // recursively flip triangles from the point until they satisfy the Delaunay condition + hullTri[i] = this._legalize(t + 2); + hullTri[e] = t; // keep track of boundary triangles on the hull + hullSize++; + + // walk forward through the hull, adding more triangles and flipping recursively + let n = hullNext[e]; + while (q = hullNext[n], orient2d(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) { + t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]); + hullTri[i] = this._legalize(t + 2); + hullNext[n] = n; // mark as removed + hullSize--; + n = q; + } + + // walk backward from the other side, adding more triangles and flipping + if (e === start) { + while (q = hullPrev[e], orient2d(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) { + t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]); + this._legalize(t + 2); + hullTri[q] = t; + hullNext[e] = e; // mark as removed + hullSize--; + e = q; + } + } + + // update the hull indices + this._hullStart = hullPrev[i] = e; + hullNext[e] = hullPrev[n] = i; + hullNext[i] = n; + + // save the two new edges in the hash table + hullHash[this._hashKey(x, y)] = i; + hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e; + } + + this.hull = new Uint32Array(hullSize); + for (let i = 0, e = this._hullStart; i < hullSize; i++) { + this.hull[i] = e; + e = hullNext[e]; + } + + // trim typed triangle mesh arrays + this.triangles = this._triangles.subarray(0, this.trianglesLen); + this.halfedges = this._halfedges.subarray(0, this.trianglesLen); + } + + _hashKey(x, y) { + return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize; + } + + _legalize(a) { + const {_triangles: triangles, _halfedges: halfedges, coords} = this; + + let i = 0; + let ar = 0; + + // recursion eliminated with a fixed-size stack + while (true) { + const b = halfedges[a]; + + /* if the pair of triangles doesn't satisfy the Delaunay condition + * (p1 is inside the circumcircle of [p0, pl, pr]), flip them, + * then do the same check/flip recursively for the new pair of triangles + * + * pl pl + * /||\ / \ + * al/ || \bl al/ \a + * / || \ / \ + * / a||b \ flip /___ar___\ + * p0\ || /p1 => p0\---bl---/p1 + * \ || / \ / + * ar\ || /br b\ /br + * \||/ \ / + * pr pr + */ + const a0 = a - a % 3; + ar = a0 + (a + 2) % 3; + + if (b === -1) { // convex hull edge + if (i === 0) break; + a = EDGE_STACK[--i]; + continue; + } + + const b0 = b - b % 3; + const al = a0 + (a + 1) % 3; + const bl = b0 + (b + 2) % 3; + + const p0 = triangles[ar]; + const pr = triangles[a]; + const pl = triangles[al]; + const p1 = triangles[bl]; + + const illegal = inCircle( + coords[2 * p0], coords[2 * p0 + 1], + coords[2 * pr], coords[2 * pr + 1], + coords[2 * pl], coords[2 * pl + 1], + coords[2 * p1], coords[2 * p1 + 1]); + + if (illegal) { + triangles[a] = p1; + triangles[b] = p0; + + const hbl = halfedges[bl]; + + // edge swapped on the other side of the hull (rare); fix the halfedge reference + if (hbl === -1) { + let e = this._hullStart; + do { + if (this._hullTri[e] === bl) { + this._hullTri[e] = a; + break; + } + e = this._hullPrev[e]; + } while (e !== this._hullStart); + } + this._link(a, hbl); + this._link(b, halfedges[ar]); + this._link(ar, bl); + + const br = b0 + (b + 1) % 3; + + // don't worry about hitting the cap: it can only happen on extremely degenerate input + if (i < EDGE_STACK.length) { + EDGE_STACK[i++] = br; + } + } else { + if (i === 0) break; + a = EDGE_STACK[--i]; + } + } + + return ar; + } + + _link(a, b) { + this._halfedges[a] = b; + if (b !== -1) this._halfedges[b] = a; + } + + // add a new triangle given vertex indices and adjacent half-edge ids + _addTriangle(i0, i1, i2, a, b, c) { + const t = this.trianglesLen; + + this._triangles[t] = i0; + this._triangles[t + 1] = i1; + this._triangles[t + 2] = i2; + + this._link(t, a); + this._link(t + 1, b); + this._link(t + 2, c); + + this.trianglesLen += 3; + + return t; + } +} + +// monotonically increases with real angle, but doesn't need expensive trigonometry +function pseudoAngle(dx, dy) { + const p = dx / (Math.abs(dx) + Math.abs(dy)); + return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1] +} + +function dist(ax, ay, bx, by) { + const dx = ax - bx; + const dy = ay - by; + return dx * dx + dy * dy; +} + +function inCircle(ax, ay, bx, by, cx, cy, px, py) { + const dx = ax - px; + const dy = ay - py; + const ex = bx - px; + const ey = by - py; + const fx = cx - px; + const fy = cy - py; + + const ap = dx * dx + dy * dy; + const bp = ex * ex + ey * ey; + const cp = fx * fx + fy * fy; + + return dx * (ey * cp - bp * fy) - + dy * (ex * cp - bp * fx) + + ap * (ex * fy - ey * fx) < 0; +} + +function circumradius(ax, ay, bx, by, cx, cy) { + const dx = bx - ax; + const dy = by - ay; + const ex = cx - ax; + const ey = cy - ay; + + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + const d = 0.5 / (dx * ey - dy * ex); + + const x = (ey * bl - dy * cl) * d; + const y = (dx * cl - ex * bl) * d; + + return x * x + y * y; +} + +function circumcenter(ax, ay, bx, by, cx, cy) { + const dx = bx - ax; + const dy = by - ay; + const ex = cx - ax; + const ey = cy - ay; + + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + const d = 0.5 / (dx * ey - dy * ex); + + const x = ax + (ey * bl - dy * cl) * d; + const y = ay + (dx * cl - ex * bl) * d; + + return {x, y}; +} + +function quicksort(ids, dists, left, right) { + if (right - left <= 20) { + for (let i = left + 1; i <= right; i++) { + const temp = ids[i]; + const tempDist = dists[temp]; + let j = i - 1; + while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--]; + ids[j + 1] = temp; + } + } else { + const median = (left + right) >> 1; + let i = left + 1; + let j = right; + swap(ids, median, i); + if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right); + if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right); + if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i); + + const temp = ids[i]; + const tempDist = dists[temp]; + while (true) { + do i++; while (dists[ids[i]] < tempDist); + do j--; while (dists[ids[j]] > tempDist); + if (j < i) break; + swap(ids, i, j); + } + ids[left + 1] = ids[j]; + ids[j] = temp; + + if (right - i + 1 >= j - left) { + quicksort(ids, dists, i, right); + quicksort(ids, dists, left, j - 1); + } else { + quicksort(ids, dists, left, j - 1); + quicksort(ids, dists, i, right); + } + } +} + +function swap(arr, i, j) { + const tmp = arr[i]; + arr[i] = arr[j]; + arr[j] = tmp; +} + +function defaultGetX(p) { + return p[0]; +} +function defaultGetY(p) { + return p[1]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-delaunay/src/path.js +const path_epsilon = 1e-6; +class Path { + constructor() { + this._x0 = this._y0 = // start of current subpath + this._x1 = this._y1 = null; + this._ = ""; + } + moveTo(x, y) { + this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`; + } + closePath() { + if (this._x1 !== null) { + this._x1 = this._x0, this._y1 = this._y0; + this._ += "Z"; + } + } + lineTo(x, y) { + this._ += `L${this._x1 = +x},${this._y1 = +y}`; + } + arc(x, y, r) { + x = +x, y = +y, r = +r; + const x0 = x + r; + const y0 = y; + if (r < 0) + throw new Error("negative radius"); + if (this._x1 === null) + this._ += `M${x0},${y0}`; + else if (Math.abs(this._x1 - x0) > path_epsilon || Math.abs(this._y1 - y0) > path_epsilon) + this._ += "L" + x0 + "," + y0; + if (!r) + return; + this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`; + } + rect(x, y, w, h) { + this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`; + } + value() { + return this._ || null; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-delaunay/src/polygon.js +class Polygon { + constructor() { + this._ = []; + } + moveTo(x, y) { + this._.push([x, y]); + } + closePath() { + this._.push(this._[0].slice()); + } + lineTo(x, y) { + this._.push([x, y]); + } + value() { + return this._.length ? this._ : null; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-delaunay/src/voronoi.js + + +class Voronoi { + constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) { + if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) + throw new Error("invalid bounds"); + this.delaunay = delaunay; + this._circumcenters = new Float64Array(delaunay.points.length * 2); + this.vectors = new Float64Array(delaunay.points.length * 2); + this.xmax = xmax, this.xmin = xmin; + this.ymax = ymax, this.ymin = ymin; + this._init(); + } + update() { + this.delaunay.update(); + this._init(); + return this; + } + _init() { + const { delaunay: { points, hull, triangles }, vectors } = this; + let bx, by; + const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2); + for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) { + const t1 = triangles[i] * 2; + const t2 = triangles[i + 1] * 2; + const t3 = triangles[i + 2] * 2; + const x12 = points[t1]; + const y12 = points[t1 + 1]; + const x2 = points[t2]; + const y2 = points[t2 + 1]; + const x3 = points[t3]; + const y3 = points[t3 + 1]; + const dx = x2 - x12; + const dy = y2 - y12; + const ex = x3 - x12; + const ey = y3 - y12; + const ab = (dx * ey - dy * ex) * 2; + if (Math.abs(ab) < 1e-9) { + if (bx === void 0) { + bx = by = 0; + for (const i2 of hull) + bx += points[i2 * 2], by += points[i2 * 2 + 1]; + bx /= hull.length, by /= hull.length; + } + const a = 1e9 * Math.sign((bx - x12) * ey - (by - y12) * ex); + x = (x12 + x3) / 2 - a * ey; + y = (y12 + y3) / 2 + a * ex; + } else { + const d = 1 / ab; + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; + x = x12 + (ey * bl - dy * cl) * d; + y = y12 + (dx * cl - ex * bl) * d; + } + circumcenters[j] = x; + circumcenters[j + 1] = y; + } + let h = hull[hull.length - 1]; + let p0, p1 = h * 4; + let x0, x1 = points[2 * h]; + let y0, y1 = points[2 * h + 1]; + vectors.fill(0); + for (let i = 0; i < hull.length; ++i) { + h = hull[i]; + p0 = p1, x0 = x1, y0 = y1; + p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1]; + vectors[p0 + 2] = vectors[p1] = y0 - y1; + vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0; + } + } + render(context) { + const buffer = context == null ? context = new Path() : void 0; + const { delaunay: { halfedges, inedges, hull }, circumcenters, vectors } = this; + if (hull.length <= 1) + return null; + for (let i = 0, n = halfedges.length; i < n; ++i) { + const j = halfedges[i]; + if (j < i) + continue; + const ti = Math.floor(i / 3) * 2; + const tj = Math.floor(j / 3) * 2; + const xi = circumcenters[ti]; + const yi = circumcenters[ti + 1]; + const xj = circumcenters[tj]; + const yj = circumcenters[tj + 1]; + this._renderSegment(xi, yi, xj, yj, context); + } + let h0, h1 = hull[hull.length - 1]; + for (let i = 0; i < hull.length; ++i) { + h0 = h1, h1 = hull[i]; + const t = Math.floor(inedges[h1] / 3) * 2; + const x = circumcenters[t]; + const y = circumcenters[t + 1]; + const v = h0 * 4; + const p = this._project(x, y, vectors[v + 2], vectors[v + 3]); + if (p) + this._renderSegment(x, y, p[0], p[1], context); + } + return buffer && buffer.value(); + } + renderBounds(context) { + const buffer = context == null ? context = new Path() : void 0; + context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin); + return buffer && buffer.value(); + } + renderCell(i, context) { + const buffer = context == null ? context = new Path() : void 0; + const points = this._clip(i); + if (points === null || !points.length) + return; + context.moveTo(points[0], points[1]); + let n = points.length; + while (points[0] === points[n - 2] && points[1] === points[n - 1] && n > 1) + n -= 2; + for (let i2 = 2; i2 < n; i2 += 2) { + if (points[i2] !== points[i2 - 2] || points[i2 + 1] !== points[i2 - 1]) + context.lineTo(points[i2], points[i2 + 1]); + } + context.closePath(); + return buffer && buffer.value(); + } + *cellPolygons() { + const { delaunay: { points } } = this; + for (let i = 0, n = points.length / 2; i < n; ++i) { + const cell = this.cellPolygon(i); + if (cell) + cell.index = i, yield cell; + } + } + cellPolygon(i) { + const polygon = new Polygon(); + this.renderCell(i, polygon); + return polygon.value(); + } + _renderSegment(x0, y0, x1, y1, context) { + let S; + const c0 = this._regioncode(x0, y0); + const c1 = this._regioncode(x1, y1); + if (c0 === 0 && c1 === 0) { + context.moveTo(x0, y0); + context.lineTo(x1, y1); + } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) { + context.moveTo(S[0], S[1]); + context.lineTo(S[2], S[3]); + } + } + contains(i, x, y) { + if ((x = +x, x !== x) || (y = +y, y !== y)) + return false; + return this.delaunay._step(i, x, y) === i; + } + *neighbors(i) { + const ci = this._clip(i); + if (ci) + for (const j of this.delaunay.neighbors(i)) { + const cj = this._clip(j); + if (cj) + loop: + for (let ai = 0, li = ci.length; ai < li; ai += 2) { + for (let aj = 0, lj = cj.length; aj < lj; aj += 2) { + if (ci[ai] === cj[aj] && ci[ai + 1] === cj[aj + 1] && ci[(ai + 2) % li] === cj[(aj + lj - 2) % lj] && ci[(ai + 3) % li] === cj[(aj + lj - 1) % lj]) { + yield j; + break loop; + } + } + } + } + } + _cell(i) { + const { circumcenters, delaunay: { inedges, halfedges, triangles } } = this; + const e0 = inedges[i]; + if (e0 === -1) + return null; + const points = []; + let e = e0; + do { + const t = Math.floor(e / 3); + points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]); + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) + break; + e = halfedges[e]; + } while (e !== e0 && e !== -1); + return points; + } + _clip(i) { + if (i === 0 && this.delaunay.hull.length === 1) { + return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; + } + const points = this._cell(i); + if (points === null) + return null; + const { vectors: V } = this; + const v = i * 4; + return this._simplify(V[v] || V[v + 1] ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3]) : this._clipFinite(i, points)); + } + _clipFinite(i, points) { + const n = points.length; + let P = null; + let x0, y0, x1 = points[n - 2], y1 = points[n - 1]; + let c0, c1 = this._regioncode(x1, y1); + let e0, e1 = 0; + for (let j = 0; j < n; j += 2) { + x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1]; + c0 = c1, c1 = this._regioncode(x1, y1); + if (c0 === 0 && c1 === 0) { + e0 = e1, e1 = 0; + if (P) + P.push(x1, y1); + else + P = [x1, y1]; + } else { + let S, sx0, sy0, sx1, sy1; + if (c0 === 0) { + if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) + continue; + [sx0, sy0, sx1, sy1] = S; + } else { + if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) + continue; + [sx1, sy1, sx0, sy0] = S; + e0 = e1, e1 = this._edgecode(sx0, sy0); + if (e0 && e1) + this._edge(i, e0, e1, P, P.length); + if (P) + P.push(sx0, sy0); + else + P = [sx0, sy0]; + } + e0 = e1, e1 = this._edgecode(sx1, sy1); + if (e0 && e1) + this._edge(i, e0, e1, P, P.length); + if (P) + P.push(sx1, sy1); + else + P = [sx1, sy1]; + } + } + if (P) { + e0 = e1, e1 = this._edgecode(P[0], P[1]); + if (e0 && e1) + this._edge(i, e0, e1, P, P.length); + } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { + return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin]; + } + return P; + } + _clipSegment(x0, y0, x1, y1, c0, c1) { + const flip = c0 < c1; + if (flip) + [x0, y0, x1, y1, c0, c1] = [x1, y1, x0, y0, c1, c0]; + while (true) { + if (c0 === 0 && c1 === 0) + return flip ? [x1, y1, x0, y0] : [x0, y0, x1, y1]; + if (c0 & c1) + return null; + let x, y, c = c0 || c1; + if (c & 8) + x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax; + else if (c & 4) + x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin; + else if (c & 2) + y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax; + else + y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin; + if (c0) + x0 = x, y0 = y, c0 = this._regioncode(x0, y0); + else + x1 = x, y1 = y, c1 = this._regioncode(x1, y1); + } + } + _clipInfinite(i, points, vx0, vy0, vxn, vyn) { + let P = Array.from(points), p; + if (p = this._project(P[0], P[1], vx0, vy0)) + P.unshift(p[0], p[1]); + if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) + P.push(p[0], p[1]); + if (P = this._clipFinite(i, P)) { + for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) { + c0 = c1, c1 = this._edgecode(P[j], P[j + 1]); + if (c0 && c1) + j = this._edge(i, c0, c1, P, j), n = P.length; + } + } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) { + P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax]; + } + return P; + } + _edge(i, e0, e1, P, j) { + while (e0 !== e1) { + let x, y; + switch (e0) { + case 5: + e0 = 4; + continue; + case 4: + e0 = 6, x = this.xmax, y = this.ymin; + break; + case 6: + e0 = 2; + continue; + case 2: + e0 = 10, x = this.xmax, y = this.ymax; + break; + case 10: + e0 = 8; + continue; + case 8: + e0 = 9, x = this.xmin, y = this.ymax; + break; + case 9: + e0 = 1; + continue; + case 1: + e0 = 5, x = this.xmin, y = this.ymin; + break; + } + if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) { + P.splice(j, 0, x, y), j += 2; + } + } + return j; + } + _project(x0, y0, vx, vy) { + let t = Infinity, c, x, y; + if (vy < 0) { + if (y0 <= this.ymin) + return null; + if ((c = (this.ymin - y0) / vy) < t) + y = this.ymin, x = x0 + (t = c) * vx; + } else if (vy > 0) { + if (y0 >= this.ymax) + return null; + if ((c = (this.ymax - y0) / vy) < t) + y = this.ymax, x = x0 + (t = c) * vx; + } + if (vx > 0) { + if (x0 >= this.xmax) + return null; + if ((c = (this.xmax - x0) / vx) < t) + x = this.xmax, y = y0 + (t = c) * vy; + } else if (vx < 0) { + if (x0 <= this.xmin) + return null; + if ((c = (this.xmin - x0) / vx) < t) + x = this.xmin, y = y0 + (t = c) * vy; + } + return [x, y]; + } + _edgecode(x, y) { + return (x === this.xmin ? 1 : x === this.xmax ? 2 : 0) | (y === this.ymin ? 4 : y === this.ymax ? 8 : 0); + } + _regioncode(x, y) { + return (x < this.xmin ? 1 : x > this.xmax ? 2 : 0) | (y < this.ymin ? 4 : y > this.ymax ? 8 : 0); + } + _simplify(P) { + if (P && P.length > 4) { + for (let i = 0; i < P.length; i += 2) { + const j = (i + 2) % P.length, k = (i + 4) % P.length; + if (P[i] === P[j] && P[j] === P[k] || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1]) { + P.splice(j, 2), i -= 2; + } + } + if (!P.length) + P = null; + } + return P; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-delaunay/src/delaunay.js + + + + +const tau = 2 * Math.PI, pow = Math.pow; +function pointX(p) { + return p[0]; +} +function pointY(p) { + return p[1]; +} +function collinear(d) { + const { triangles, coords } = d; + for (let i = 0; i < triangles.length; i += 3) { + const a = 2 * triangles[i], b = 2 * triangles[i + 1], c = 2 * triangles[i + 2], cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1]) - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]); + if (cross > 1e-10) + return false; + } + return true; +} +function jitter(x, y, r) { + return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r]; +} +class Delaunay { + static from(points, fx = pointX, fy = pointY, that) { + return new Delaunay("length" in points ? flatArray(points, fx, fy, that) : Float64Array.from(flatIterable(points, fx, fy, that))); + } + constructor(points) { + this._delaunator = new Delaunator(points); + this.inedges = new Int32Array(points.length / 2); + this._hullIndex = new Int32Array(points.length / 2); + this.points = this._delaunator.coords; + this._init(); + } + update() { + this._delaunator.update(); + this._init(); + return this; + } + _init() { + const d = this._delaunator, points = this.points; + if (d.hull && d.hull.length > 2 && collinear(d)) { + this.collinear = Int32Array.from({ length: points.length / 2 }, (_, i) => i).sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); + const e = this.collinear[0], f = this.collinear[this.collinear.length - 1], bounds = [points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1]], r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]); + for (let i = 0, n = points.length / 2; i < n; ++i) { + const p = jitter(points[2 * i], points[2 * i + 1], r); + points[2 * i] = p[0]; + points[2 * i + 1] = p[1]; + } + this._delaunator = new Delaunator(points); + } else { + delete this.collinear; + } + const halfedges = this.halfedges = this._delaunator.halfedges; + const hull = this.hull = this._delaunator.hull; + const triangles = this.triangles = this._delaunator.triangles; + const inedges = this.inedges.fill(-1); + const hullIndex = this._hullIndex.fill(-1); + for (let e = 0, n = halfedges.length; e < n; ++e) { + const p = triangles[e % 3 === 2 ? e - 2 : e + 1]; + if (halfedges[e] === -1 || inedges[p] === -1) + inedges[p] = e; + } + for (let i = 0, n = hull.length; i < n; ++i) { + hullIndex[hull[i]] = i; + } + if (hull.length <= 2 && hull.length > 0) { + this.triangles = new Int32Array(3).fill(-1); + this.halfedges = new Int32Array(3).fill(-1); + this.triangles[0] = hull[0]; + inedges[hull[0]] = 1; + if (hull.length === 2) { + inedges[hull[1]] = 0; + this.triangles[1] = hull[1]; + this.triangles[2] = hull[1]; + } + } + } + voronoi(bounds) { + return new Voronoi(this, bounds); + } + *neighbors(i) { + const { inedges, hull, _hullIndex, halfedges, triangles, collinear: collinear2 } = this; + if (collinear2) { + const l = collinear2.indexOf(i); + if (l > 0) + yield collinear2[l - 1]; + if (l < collinear2.length - 1) + yield collinear2[l + 1]; + return; + } + const e0 = inedges[i]; + if (e0 === -1) + return; + let e = e0, p0 = -1; + do { + yield p0 = triangles[e]; + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) + return; + e = halfedges[e]; + if (e === -1) { + const p = hull[(_hullIndex[i] + 1) % hull.length]; + if (p !== p0) + yield p; + return; + } + } while (e !== e0); + } + find(x, y, i = 0) { + if ((x = +x, x !== x) || (y = +y, y !== y)) + return -1; + const i0 = i; + let c; + while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) + i = c; + return c; + } + _step(i, x, y) { + const { inedges, hull, _hullIndex, halfedges, triangles, points } = this; + if (inedges[i] === -1 || !points.length) + return (i + 1) % (points.length >> 1); + let c = i; + let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2); + const e0 = inedges[i]; + let e = e0; + do { + let t = triangles[e]; + const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2); + if (dt < dc) + dc = dt, c = t; + e = e % 3 === 2 ? e - 2 : e + 1; + if (triangles[e] !== i) + break; + e = halfedges[e]; + if (e === -1) { + e = hull[(_hullIndex[i] + 1) % hull.length]; + if (e !== t) { + if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) + return e; + } + break; + } + } while (e !== e0); + return c; + } + render(context) { + const buffer = context == null ? context = new Path() : void 0; + const { points, halfedges, triangles } = this; + for (let i = 0, n = halfedges.length; i < n; ++i) { + const j = halfedges[i]; + if (j < i) + continue; + const ti = triangles[i] * 2; + const tj = triangles[j] * 2; + context.moveTo(points[ti], points[ti + 1]); + context.lineTo(points[tj], points[tj + 1]); + } + this.renderHull(context); + return buffer && buffer.value(); + } + renderPoints(context, r) { + if (r === void 0 && (!context || typeof context.moveTo !== "function")) + r = context, context = null; + r = r == void 0 ? 2 : +r; + const buffer = context == null ? context = new Path() : void 0; + const { points } = this; + for (let i = 0, n = points.length; i < n; i += 2) { + const x = points[i], y = points[i + 1]; + context.moveTo(x + r, y); + context.arc(x, y, r, 0, tau); + } + return buffer && buffer.value(); + } + renderHull(context) { + const buffer = context == null ? context = new Path() : void 0; + const { hull, points } = this; + const h = hull[0] * 2, n = hull.length; + context.moveTo(points[h], points[h + 1]); + for (let i = 1; i < n; ++i) { + const h2 = 2 * hull[i]; + context.lineTo(points[h2], points[h2 + 1]); + } + context.closePath(); + return buffer && buffer.value(); + } + hullPolygon() { + const polygon = new Polygon(); + this.renderHull(polygon); + return polygon.value(); + } + renderTriangle(i, context) { + const buffer = context == null ? context = new Path() : void 0; + const { points, triangles } = this; + const t0 = triangles[i *= 3] * 2; + const t1 = triangles[i + 1] * 2; + const t2 = triangles[i + 2] * 2; + context.moveTo(points[t0], points[t0 + 1]); + context.lineTo(points[t1], points[t1 + 1]); + context.lineTo(points[t2], points[t2 + 1]); + context.closePath(); + return buffer && buffer.value(); + } + *trianglePolygons() { + const { triangles } = this; + for (let i = 0, n = triangles.length / 3; i < n; ++i) { + yield this.trianglePolygon(i); + } + } + trianglePolygon(i) { + const polygon = new Polygon(); + this.renderTriangle(i, polygon); + return polygon.value(); + } +} +function flatArray(points, fx, fy, that) { + const n = points.length; + const array = new Float64Array(n * 2); + for (let i = 0; i < n; ++i) { + const p = points[i]; + array[i * 2] = fx.call(that, p, i, points); + array[i * 2 + 1] = fy.call(that, p, i, points); + } + return array; +} +function* flatIterable(points, fx, fy, that) { + let i = 0; + for (const p of points) { + yield fx.call(that, p, i, points); + yield fy.call(that, p, i, points); + ++i; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-polygon/src/centroid.js +/* harmony default export */ function centroid(polygon) { + var i = -1, n = polygon.length, x = 0, y = 0, a, b = polygon[n - 1], c, k = 0; + while (++i < n) { + a = b; + b = polygon[i]; + k += c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + return k *= 3, [x / k, y / k]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-polygon/src/area.js +/* harmony default export */ function src_area(polygon) { + var i = -1, n = polygon.length, a, b = polygon[n - 1], area = 0; + while (++i < n) { + a = b; + b = polygon[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + return area / 2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-dispatch/src/dispatch.js +var noop = { value: () => { +} }; +function dispatch() { + for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t)) + throw new Error("illegal type: " + t); + _[t] = []; + } + return new Dispatch(_); +} +function Dispatch(_) { + this._ = _; +} +function parseTypenames(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + return { type: t, name }; + }); +} +Dispatch.prototype = dispatch.prototype = { + constructor: Dispatch, + on: function(typename, callback) { + var _ = this._, T = parseTypenames(typename + "", _), t, i = -1, n = T.length; + if (arguments.length < 2) { + while (++i < n) + if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) + return t; + return; + } + if (callback != null && typeof callback !== "function") + throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) + _[t] = set(_[t], typename.name, callback); + else if (callback == null) + for (t in _) + _[t] = set(_[t], typename.name, null); + } + return this; + }, + copy: function() { + var copy = {}, _ = this._; + for (var t in _) + copy[t] = _[t].slice(); + return new Dispatch(copy); + }, + call: function(type, that) { + if ((n = arguments.length - 2) > 0) + for (var args = new Array(n), i = 0, n, t; i < n; ++i) + args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type)) + throw new Error("unknown type: " + type); + for (t = this._[type], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + }, + apply: function(type, that, args) { + if (!this._.hasOwnProperty(type)) + throw new Error("unknown type: " + type); + for (var t = this._[type], i = 0, n = t.length; i < n; ++i) + t[i].value.apply(that, args); + } +}; +function get(type, name) { + for (var i = 0, n = type.length, c; i < n; ++i) { + if ((c = type[i]).name === name) { + return c.value; + } + } +} +function set(type, name, callback) { + for (var i = 0, n = type.length; i < n; ++i) { + if (type[i].name === name) { + type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1)); + break; + } + } + if (callback != null) + type.push({ name, value: callback }); + return type; +} +/* harmony default export */ var src_dispatch = (dispatch); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selector.js +function none() { +} +/* harmony default export */ function selector(selector) { + return selector == null ? none : function() { + return this.querySelector(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/select.js + + +/* harmony default export */ function selection_select(select) { + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/array.js +function array(x) { + return x == null ? [] : Array.isArray(x) ? x : Array.from(x); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selectorAll.js +function empty() { + return []; +} +/* harmony default export */ function selectorAll(selector) { + return selector == null ? empty : function() { + return this.querySelectorAll(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectAll.js + + + +function arrayAll(select) { + return function() { + return array(select.apply(this, arguments)); + }; +} +/* harmony default export */ function selectAll(select) { + if (typeof select === "function") + select = arrayAll(select); + else + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + subgroups.push(select.call(node, node.__data__, i, group)); + parents.push(node); + } + } + } + return new Selection(subgroups, parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/matcher.js +/* harmony default export */ function matcher(selector) { + return function() { + return this.matches(selector); + }; +} +function childMatcher(selector) { + return function(node) { + return node.matches(selector); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChild.js + +var find = Array.prototype.find; +function childFind(match) { + return function() { + return find.call(this.children, match); + }; +} +function childFirst() { + return this.firstElementChild; +} +/* harmony default export */ function selectChild(match) { + return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/selectChildren.js + +var filter = Array.prototype.filter; +function children() { + return Array.from(this.children); +} +function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; +} +/* harmony default export */ function selectChildren(match) { + return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match))); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/filter.js + + +/* harmony default export */ function selection_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Selection(subgroups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sparse.js +/* harmony default export */ function sparse(update) { + return new Array(update.length); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/enter.js + + +/* harmony default export */ function enter() { + return new Selection(this._enter || this._groups.map(sparse), this._parents); +} +function EnterNode(parent, datum) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum; +} +EnterNode.prototype = { + constructor: EnterNode, + appendChild: function(child) { + return this._parent.insertBefore(child, this._next); + }, + insertBefore: function(child, next) { + return this._parent.insertBefore(child, next); + }, + querySelector: function(selector) { + return this._parent.querySelector(selector); + }, + querySelectorAll: function(selector) { + return this._parent.querySelectorAll(selector); + } +}; + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/constant.js +/* harmony default export */ function constant(x) { + return function() { + return x; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/data.js + + + +function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, node, groupLength = group.length, dataLength = data.length; + for (; i < dataLength; ++i) { + if (node = group[i]) { + node.__data__ = data[i]; + update[i] = node; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (; i < groupLength; ++i) { + if (node = group[i]) { + exit[i] = node; + } + } +} +function bindKey(parent, group, enter, update, exit, data, key) { + var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue; + for (i = 0; i < groupLength; ++i) { + if (node = group[i]) { + keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + } + } + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node = nodeByKeyValue.get(keyValue)) { + update[i] = node; + node.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (i = 0; i < groupLength; ++i) { + if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) { + exit[i] = node; + } + } +} +function datum(node) { + return node.__data__; +} +/* harmony default export */ function data(value, key) { + if (!arguments.length) + return Array.from(this, datum); + var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups; + if (typeof value !== "function") + value = constant(value); + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength); + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) + i1 = i0 + 1; + while (!(next = updateGroup[i1]) && ++i1 < dataLength) + ; + previous._next = next || null; + } + } + } + update = new Selection(update, parents); + update._enter = enter; + update._exit = exit; + return update; +} +function arraylike(data) { + return typeof data === "object" && "length" in data ? data : Array.from(data); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/exit.js + + +/* harmony default export */ function exit() { + return new Selection(this._exit || this._groups.map(sparse), this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/join.js +/* harmony default export */ function join(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + if (typeof onenter === "function") { + enter = onenter(enter); + if (enter) + enter = enter.selection(); + } else { + enter = enter.append(onenter + ""); + } + if (onupdate != null) { + update = onupdate(update); + if (update) + update = update.selection(); + } + if (onexit == null) + exit.remove(); + else + onexit(exit); + return enter && update ? enter.merge(update).order() : update; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/merge.js + +/* harmony default export */ function merge(context) { + var selection = context.selection ? context.selection() : context; + for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Selection(merges, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/order.js +/* harmony default export */ function order() { + for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) { + for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && node.compareDocumentPosition(next) ^ 4) + next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/sort.js + +/* harmony default export */ function sort(compare) { + if (!compare) + compare = ascending; + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group[i]) { + sortgroup[i] = node; + } + } + sortgroup.sort(compareNode); + } + return new Selection(sortgroups, this._parents).order(); +} +function ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/call.js +/* harmony default export */ function call() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/nodes.js +/* harmony default export */ function nodes() { + return Array.from(this); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/node.js +/* harmony default export */ function node() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node = group[i]; + if (node) + return node; + } + } + return null; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/size.js +/* harmony default export */ function size() { + let size = 0; + for (const node of this) + ++size; + return size; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/empty.js +/* harmony default export */ function selection_empty() { + return !this.node(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/each.js +/* harmony default export */ function each(callback) { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + callback.call(node, node.__data__, i, group); + } + } + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespaces.js +var xhtml = "http://www.w3.org/1999/xhtml"; +/* harmony default export */ var namespaces = ({ + svg: "http://www.w3.org/2000/svg", + xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/namespace.js + +/* harmony default export */ function namespace(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") + name = name.slice(i + 1); + return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name } : name; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/attr.js + +function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attrConstant(name, value) { + return function() { + this.setAttribute(name, value); + }; +} +function attrConstantNS(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; +} +function attrFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttribute(name); + else + this.setAttribute(name, v); + }; +} +function attrFunctionNS(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.removeAttributeNS(fullname.space, fullname.local); + else + this.setAttributeNS(fullname.space, fullname.local, v); + }; +} +/* harmony default export */ function attr(name, value) { + var fullname = namespace(name); + if (arguments.length < 2) { + var node = this.node(); + return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname); + } + return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === "function" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/window.js +/* harmony default export */ function src_window(node) { + return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/style.js + +function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function styleConstant(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; +} +function styleFunction(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + this.style.removeProperty(name); + else + this.style.setProperty(name, v, priority); + }; +} +/* harmony default export */ function style(name, value, priority) { + return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name); +} +function styleValue(node, name) { + return node.style.getPropertyValue(name) || src_window(node).getComputedStyle(node, null).getPropertyValue(name); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/property.js +function propertyRemove(name) { + return function() { + delete this[name]; + }; +} +function propertyConstant(name, value) { + return function() { + this[name] = value; + }; +} +function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) + delete this[name]; + else + this[name] = v; + }; +} +/* harmony default export */ function property(name, value) { + return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/classed.js +function classArray(string) { + return string.trim().split(/^|\s+/); +} +function classList(node) { + return node.classList || new ClassList(node); +} +function ClassList(node) { + this._node = node; + this._names = classArray(node.getAttribute("class") || ""); +} +ClassList.prototype = { + add: function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + remove: function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, + contains: function(name) { + return this._names.indexOf(name) >= 0; + } +}; +function classedAdd(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.add(names[i]); +} +function classedRemove(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) + list.remove(names[i]); +} +function classedTrue(names) { + return function() { + classedAdd(this, names); + }; +} +function classedFalse(names) { + return function() { + classedRemove(this, names); + }; +} +function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; +} +/* harmony default export */ function classed(name, value) { + var names = classArray(name + ""); + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) + if (!list.contains(names[i])) + return false; + return true; + } + return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/text.js +function textRemove() { + this.textContent = ""; +} +function textConstant(value) { + return function() { + this.textContent = value; + }; +} +function textFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; +} +/* harmony default export */ function selection_text(value) { + return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction : textConstant)(value)) : this.node().textContent; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/html.js +function htmlRemove() { + this.innerHTML = ""; +} +function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; +} +function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; +} +/* harmony default export */ function html(value) { + return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/raise.js +function raise() { + if (this.nextSibling) + this.parentNode.appendChild(this); +} +/* harmony default export */ function selection_raise() { + return this.each(raise); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/lower.js +function lower() { + if (this.previousSibling) + this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +/* harmony default export */ function selection_lower() { + return this.each(lower); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/creator.js + + +function creatorInherit(name) { + return function() { + var document = this.ownerDocument, uri = this.namespaceURI; + return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name); + }; +} +function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; +} +/* harmony default export */ function creator(name) { + var fullname = namespace(name); + return (fullname.local ? creatorFixed : creatorInherit)(fullname); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/append.js + +/* harmony default export */ function append(name) { + var create = typeof name === "function" ? name : creator(name); + return this.select(function() { + return this.appendChild(create.apply(this, arguments)); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/insert.js + + +function constantNull() { + return null; +} +/* harmony default export */ function insert(name, before) { + var create = typeof name === "function" ? name : creator(name), select = before == null ? constantNull : typeof before === "function" ? before : selector(before); + return this.select(function() { + return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/remove.js +function remove() { + var parent = this.parentNode; + if (parent) + parent.removeChild(this); +} +/* harmony default export */ function selection_remove() { + return this.each(remove); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/clone.js +function selection_cloneShallow() { + var clone = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +function selection_cloneDeep() { + var clone = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; +} +/* harmony default export */ function clone(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/datum.js +/* harmony default export */ function selection_datum(value) { + return arguments.length ? this.property("__data__", value) : this.node().__data__; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/on.js +function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; +} +function on_parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) + name = t.slice(i + 1), t = t.slice(0, i); + return { type: t, name }; + }); +} +function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) + return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) + on.length = i; + else + delete this.__on; + }; +} +function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) + for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = { type: typename.type, name: typename.name, value, listener, options }; + if (!on) + this.__on = [o]; + else + on.push(o); + }; +} +/* harmony default export */ function on(typename, value, options) { + var typenames = on_parseTypenames(typename + ""), i, n = typenames.length, t; + if (arguments.length < 2) { + var on = this.node().__on; + if (on) + for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) + this.each(on(typenames[i], value, options)); + return this; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/dispatch.js + +function dispatchEvent(node, type, params) { + var window = src_window(node), event = window.CustomEvent; + if (typeof event === "function") { + event = new event(type, params); + } else { + event = window.document.createEvent("Event"); + if (params) + event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; + else + event.initEvent(type, false, false); + } + node.dispatchEvent(event); +} +function dispatchConstant(type, params) { + return function() { + return dispatchEvent(this, type, params); + }; +} +function dispatchFunction(type, params) { + return function() { + return dispatchEvent(this, type, params.apply(this, arguments)); + }; +} +/* harmony default export */ function selection_dispatch(type, params) { + return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type, params)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/iterator.js +/* harmony default export */ function* iterator() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) + yield node; + } + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/selection/index.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var root = [null]; +function Selection(groups, parents) { + this._groups = groups; + this._parents = parents; +} +function selection() { + return new Selection([[document.documentElement]], root); +} +function selection_selection() { + return this; +} +Selection.prototype = selection.prototype = { + constructor: Selection, + select: selection_select, + selectAll: selectAll, + selectChild: selectChild, + selectChildren: selectChildren, + filter: selection_filter, + data: data, + enter: enter, + exit: exit, + join: join, + merge: merge, + selection: selection_selection, + order: order, + sort: sort, + call: call, + nodes: nodes, + node: node, + size: size, + empty: selection_empty, + each: each, + attr: attr, + style: style, + property: property, + classed: classed, + text: selection_text, + html: html, + raise: selection_raise, + lower: selection_lower, + append: append, + insert: insert, + remove: selection_remove, + clone: clone, + datum: selection_datum, + on: on, + dispatch: selection_dispatch, + [Symbol.iterator]: iterator +}; +/* harmony default export */ var src_selection = (selection); + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/select.js + +/* harmony default export */ function src_select(selector) { + return typeof selector === "string" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root); +} + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/noevent.js +const nonpassive = { passive: false }; +const nonpassivecapture = { capture: true, passive: false }; +function nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-drag/src/nodrag.js + + +/* harmony default export */ function nodrag(view) { + var root = view.document.documentElement, selection = src_select(view).on("dragstart.drag", noevent, nonpassivecapture); + if ("onselectstart" in root) { + selection.on("selectstart.drag", noevent, nonpassivecapture); + } else { + root.__noselect = root.style.MozUserSelect; + root.style.MozUserSelect = "none"; + } +} +function yesdrag(view, noclick) { + var root = view.document.documentElement, selection = src_select(view).on("dragstart.drag", null); + if (noclick) { + selection.on("click.drag", noevent, nonpassivecapture); + setTimeout(function() { + selection.on("click.drag", null); + }, 0); + } + if ("onselectstart" in root) { + selection.on("selectstart.drag", null); + } else { + root.style.MozUserSelect = root.__noselect; + delete root.__noselect; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-color/src/define.js +/* harmony default export */ function src_define(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; +} +function extend(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) + prototype[key] = definition[key]; + return prototype; +} + +;// CONCATENATED MODULE: ./node_modules/d3-color/src/color.js + +function Color() { +} +var darker = 0.7; +var brighter = 1 / darker; +var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); +var named = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074 +}; +src_define(Color, color, { + copy(channels) { + return Object.assign(new this.constructor(), this, channels); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: color_formatHex, + // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHex8: color_formatHex8, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb +}); +function color_formatHex() { + return this.rgb().formatHex(); +} +function color_formatHex8() { + return this.rgb().formatHex8(); +} +function color_formatHsl() { + return hslConvert(this).formatHsl(); +} +function color_formatRgb() { + return this.rgb().formatRgb(); +} +function color(format) { + var m, l; + format = (format + "").trim().toLowerCase(); + return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null; +} +function rgbn(n) { + return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1); +} +function rgba(r, g, b, a) { + if (a <= 0) + r = g = b = NaN; + return new Rgb(r, g, b, a); +} +function rgbConvert(o) { + if (!(o instanceof Color)) + o = color(o); + if (!o) + return new Rgb(); + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); +} +function color_rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); +} +function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; +} +src_define(Rgb, color_rgb, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity)); + }, + displayable() { + return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1); + }, + hex: rgb_formatHex, + // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb +})); +function rgb_formatHex() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; +} +function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} +function rgb_formatRgb() { + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; +} +function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); +} +function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); +} +function hex(value) { + value = clampi(value); + return (value < 16 ? "0" : "") + value.toString(16); +} +function hsla(h, s, l, a) { + if (a <= 0) + h = s = l = NaN; + else if (l <= 0 || l >= 1) + h = s = NaN; + else if (s <= 0) + h = NaN; + return new Hsl(h, s, l, a); +} +function hslConvert(o) { + if (o instanceof Hsl) + return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color)) + o = color(o); + if (!o) + return new Hsl(); + if (o instanceof Hsl) + return o; + o = o.rgb(); + var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2; + if (s) { + if (r === max) + h = (g - b) / s + (g < b) * 6; + else if (g === max) + h = (b - r) / s + 2; + else + h = (r - g) / s + 4; + s /= l < 0.5 ? max + min : 2 - max - min; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; + } + return new Hsl(h, s, l, o.opacity); +} +function hsl(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); +} +function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; +} +src_define(Hsl, hsl, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb() { + var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + this.opacity + ); + }, + clamp() { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity)); + }, + displayable() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1); + }, + formatHsl() { + const a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; + } +})); +function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; +} +function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); +} +function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basis.js +function basis(t1, v0, v1, v2, v3) { + var t2 = t1 * t1, t3 = t2 * t1; + return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6; +} +/* harmony default export */ function src_basis(values) { + var n = values.length - 1; + return function(t) { + var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/basisClosed.js + +/* harmony default export */ function basisClosed(values) { + var n = values.length; + return function(t) { + var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n]; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/constant.js +/* harmony default export */ var src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/color.js + +function linear(a, d) { + return function(t) { + return a + t * d; + }; +} +function exponential(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; +} +function hue(a, b) { + var d = b - a; + return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : src_constant(isNaN(a) ? b : a); +} +function gamma(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential(a, b, y) : src_constant(isNaN(a) ? b : a); + }; +} +function nogamma(a, b) { + var d = b - a; + return d ? linear(a, d) : src_constant(isNaN(a) ? b : a); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/rgb.js + + + + +/* harmony default export */ var rgb = ((function rgbGamma(y) { + var color = gamma(y); + function rgb(start, end) { + var r = color((start = color_rgb(start)).r, (end = color_rgb(end)).r), g = color(start.g, end.g), b = color(start.b, end.b), opacity = nogamma(start.opacity, end.opacity); + return function(t) { + start.r = r(t); + start.g = g(t); + start.b = b(t); + start.opacity = opacity(t); + return start + ""; + }; + } + rgb.gamma = rgbGamma; + return rgb; +})(1)); +function rgbSpline(spline) { + return function(colors) { + var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color; + for (i = 0; i < n; ++i) { + color = color_rgb(colors[i]); + r[i] = color.r || 0; + g[i] = color.g || 0; + b[i] = color.b || 0; + } + r = spline(r); + g = spline(g); + b = spline(b); + color.opacity = 1; + return function(t) { + color.r = r(t); + color.g = g(t); + color.b = b(t); + return color + ""; + }; + }; +} +var rgbBasis = rgbSpline(src_basis); +var rgbBasisClosed = rgbSpline(basisClosed); + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/numberArray.js +/* harmony default export */ function numberArray(a, b) { + if (!b) + b = []; + var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i; + return function(t) { + for (i = 0; i < n; ++i) + c[i] = a[i] * (1 - t) + b[i] * t; + return c; + }; +} +function isNumberArray(x) { + return ArrayBuffer.isView(x) && !(x instanceof DataView); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/array.js + + +/* harmony default export */ function src_array(a, b) { + return (isNumberArray(b) ? numberArray : genericArray)(a, b); +} +function genericArray(a, b) { + var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i; + for (i = 0; i < na; ++i) + x[i] = value(a[i], b[i]); + for (; i < nb; ++i) + c[i] = b[i]; + return function(t) { + for (i = 0; i < na; ++i) + c[i] = x[i](t); + return c; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/date.js +/* harmony default export */ function date(a, b) { + var d = /* @__PURE__ */ new Date(); + return a = +a, b = +b, function(t) { + return d.setTime(a * (1 - t) + b * t), d; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/number.js +/* harmony default export */ function number(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/object.js + +/* harmony default export */ function object(a, b) { + var i = {}, c = {}, k; + if (a === null || typeof a !== "object") + a = {}; + if (b === null || typeof b !== "object") + b = {}; + for (k in b) { + if (k in a) { + i[k] = value(a[k], b[k]); + } else { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) + c[k] = i[k](t); + return c; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/string.js + +var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g"); +function zero(b) { + return function() { + return b; + }; +} +function one(b) { + return function(t) { + return b(t) + ""; + }; +} +/* harmony default export */ function string(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = reA.exec(a)) && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.slice(bi, bs); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) + s[i] += bm; + else + s[++i] = bm; + } else { + s[++i] = null; + q.push({ i, x: number(am, bm) }); + } + bi = reB.lastIndex; + } + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) + s[i] += bs; + else + s[++i] = bs; + } + return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) { + for (var i2 = 0, o; i2 < b; ++i2) + s[(o = q[i2]).i] = o.x(t); + return s.join(""); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/value.js + + + + + + + + + +/* harmony default export */ function value(a, b) { + var t = typeof b, c; + return b == null || t === "boolean" ? src_constant(b) : (t === "number" ? number : t === "string" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : number)(a, b); +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/sourceEvent.js +/* harmony default export */ function sourceEvent(event) { + let sourceEvent; + while (sourceEvent = event.sourceEvent) + event = sourceEvent; + return event; +} + +;// CONCATENATED MODULE: ./node_modules/d3-selection/src/pointer.js + +/* harmony default export */ function src_pointer(event, node) { + event = sourceEvent(event); + if (node === void 0) + node = event.currentTarget; + if (node) { + var svg = node.ownerSVGElement || node; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + point.x = event.clientX, point.y = event.clientY; + point = point.matrixTransform(node.getScreenCTM().inverse()); + return [point.x, point.y]; + } + if (node.getBoundingClientRect) { + var rect = node.getBoundingClientRect(); + return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; + } + } + return [event.pageX, event.pageY]; +} + +;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timer.js +var timer_frame = 0, timeout = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { + setTimeout(f, 17); +}; +function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); +} +function clearNow() { + clockNow = 0; +} +function Timer() { + this._call = this._time = this._next = null; +} +Timer.prototype = timer.prototype = { + constructor: Timer, + restart: function(callback, delay, time) { + if (typeof callback !== "function") + throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) + taskTail._next = this; + else + taskHead = this; + taskTail = this; + } + this._call = callback; + this._time = time; + sleep(); + }, + stop: function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); + } + } +}; +function timer(callback, delay, time) { + var t = new Timer(); + t.restart(callback, delay, time); + return t; +} +function timerFlush() { + now(); + ++timer_frame; + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) + t._call.call(void 0, e); + t = t._next; + } + --timer_frame; +} +function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + timer_frame = timeout = 0; + try { + timerFlush(); + } finally { + timer_frame = 0; + nap(); + clockNow = 0; + } +} +function poke() { + var now2 = clock.now(), delay = now2 - clockLast; + if (delay > pokeDelay) + clockSkew -= delay, clockLast = now2; +} +function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) + time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } + } + taskTail = t0; + sleep(time); +} +function sleep(time) { + if (timer_frame) + return; + if (timeout) + timeout = clearTimeout(timeout); + var delay = time - clockNow; + if (delay > 24) { + if (time < Infinity) + timeout = setTimeout(wake, time - clock.now() - clockSkew); + if (interval) + interval = clearInterval(interval); + } else { + if (!interval) + clockLast = clock.now(), interval = setInterval(poke, pokeDelay); + timer_frame = 1, setFrame(wake); + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-timer/src/timeout.js + +/* harmony default export */ function src_timeout(callback, delay, time) { + var t = new Timer(); + delay = delay == null ? 0 : +delay; + t.restart((elapsed) => { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/schedule.js + + +var emptyOn = src_dispatch("start", "end", "cancel", "interrupt"); +var emptyTween = []; +var CREATED = 0; +var SCHEDULED = 1; +var STARTING = 2; +var STARTED = 3; +var RUNNING = 4; +var ENDING = 5; +var ENDED = 6; +/* harmony default export */ function schedule(node, name, id, index, group, timing) { + var schedules = node.__transition; + if (!schedules) + node.__transition = {}; + else if (id in schedules) + return; + create(node, id, { + name, + index, + // For context during callback. + group, + // For context during callback. + on: emptyOn, + tween: emptyTween, + time: timing.time, + delay: timing.delay, + duration: timing.duration, + ease: timing.ease, + timer: null, + state: CREATED + }); +} +function init(node, id) { + var schedule = schedule_get(node, id); + if (schedule.state > CREATED) + throw new Error("too late; already scheduled"); + return schedule; +} +function schedule_set(node, id) { + var schedule = schedule_get(node, id); + if (schedule.state > STARTED) + throw new Error("too late; already running"); + return schedule; +} +function schedule_get(node, id) { + var schedule = node.__transition; + if (!schedule || !(schedule = schedule[id])) + throw new Error("transition not found"); + return schedule; +} +function create(node, id, self) { + var schedules = node.__transition, tween; + schedules[id] = self; + self.timer = timer(schedule, 0, self.time); + function schedule(elapsed) { + self.state = SCHEDULED; + self.timer.restart(start, self.delay, self.time); + if (self.delay <= elapsed) + start(elapsed - self.delay); + } + function start(elapsed) { + var i, j, n, o; + if (self.state !== SCHEDULED) + return stop(); + for (i in schedules) { + o = schedules[i]; + if (o.name !== self.name) + continue; + if (o.state === STARTED) + return src_timeout(start); + if (o.state === RUNNING) { + o.state = ENDED; + o.timer.stop(); + o.on.call("interrupt", node, node.__data__, o.index, o.group); + delete schedules[i]; + } else if (+i < id) { + o.state = ENDED; + o.timer.stop(); + o.on.call("cancel", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + } + src_timeout(function() { + if (self.state === STARTED) { + self.state = RUNNING; + self.timer.restart(tick, self.delay, self.time); + tick(elapsed); + } + }); + self.state = STARTING; + self.on.call("start", node, node.__data__, self.index, self.group); + if (self.state !== STARTING) + return; + self.state = STARTED; + tween = new Array(n = self.tween.length); + for (i = 0, j = -1; i < n; ++i) { + if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { + tween[++j] = o; + } + } + tween.length = j + 1; + } + function tick(elapsed) { + var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length; + while (++i < n) { + tween[i].call(node, t); + } + if (self.state === ENDING) { + self.on.call("end", node, node.__data__, self.index, self.group); + stop(); + } + } + function stop() { + self.state = ENDED; + self.timer.stop(); + delete schedules[id]; + for (var i in schedules) + return; + delete node.__transition; + } +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/interrupt.js + +/* harmony default export */ function interrupt(node, name) { + var schedules = node.__transition, schedule, active, empty = true, i; + if (!schedules) + return; + name = name == null ? null : name + ""; + for (i in schedules) { + if ((schedule = schedules[i]).name !== name) { + empty = false; + continue; + } + active = schedule.state > STARTING && schedule.state < ENDING; + schedule.state = ENDED; + schedule.timer.stop(); + schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); + delete schedules[i]; + } + if (empty) + delete node.__transition; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/interrupt.js + +/* harmony default export */ function selection_interrupt(name) { + return this.each(function() { + interrupt(this, name); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/decompose.js +var degrees = 180 / Math.PI; +var identity = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; +/* harmony default export */ function decompose(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) + a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) + c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) + c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) + a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees, + skewX: Math.atan(skewX) * degrees, + scaleX, + scaleY + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/parse.js + +var svgNode; +function parseCss(value) { + const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); + return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f); +} +function parseSvg(value) { + if (value == null) + return identity; + if (!svgNode) + svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) + return identity; + value = value.matrix; + return decompose(value.a, value.b, value.c, value.d, value.e, value.f); +} + +;// CONCATENATED MODULE: ./node_modules/d3-interpolate/src/transform/index.js + + +function interpolateTransform(parse, pxComma, pxParen, degParen) { + function pop(s) { + return s.length ? s.pop() + " " : ""; + } + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({ i: i - 4, x: number(xa, xb) }, { i: i - 2, x: number(ya, yb) }); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } + } + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) + b += 360; + else if (b - a > 180) + a += 360; + q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b) }); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); + } + } + function skewX(a, b, s, q) { + if (a !== b) { + q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b) }); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } + } + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({ i: i - 4, x: number(xa, xb) }, { i: i - 2, x: number(ya, yb) }); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + } + } + return function(a, b) { + var s = [], q = []; + a = parse(a), b = parse(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) + s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + }; +} +var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); +var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/tween.js + +function tweenRemove(id, name) { + var tween0, tween1; + return function() { + var schedule = schedule_set(this, id), tween = schedule.tween; + if (tween !== tween0) { + tween1 = tween0 = tween; + for (var i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1 = tween1.slice(); + tween1.splice(i, 1); + break; + } + } + } + schedule.tween = tween1; + }; +} +function tweenFunction(id, name, value) { + var tween0, tween1; + if (typeof value !== "function") + throw new Error(); + return function() { + var schedule = schedule_set(this, id), tween = schedule.tween; + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; + break; + } + } + if (i === n) + tween1.push(t); + } + schedule.tween = tween1; + }; +} +/* harmony default export */ function tween(name, value) { + var id = this._id; + name += ""; + if (arguments.length < 2) { + var tween = schedule_get(this.node(), id).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { + return t.value; + } + } + return null; + } + return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); +} +function tweenValue(transition, name, value) { + var id = transition._id; + transition.each(function() { + var schedule = schedule_set(this, id); + (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); + }); + return function(node) { + return schedule_get(node, id).value[name]; + }; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/interpolate.js + + +/* harmony default export */ function interpolate(a, b) { + var c; + return (typeof b === "number" ? number : b instanceof color ? rgb : (c = color(b)) ? (b = c, rgb) : string)(a, b); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attr.js + + + + +function attr_attrRemove(name) { + return function() { + this.removeAttribute(name); + }; +} +function attr_attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; +} +function attr_attrConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttribute(name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attr_attrConstantNS(fullname, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttributeNS(fullname.space, fullname.local); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function attr_attrFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttribute(name); + string0 = this.getAttribute(name); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function attr_attrFunctionNS(fullname, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) + return void this.removeAttributeNS(fullname.space, fullname.local); + string0 = this.getAttributeNS(fullname.space, fullname.local); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +/* harmony default export */ function transition_attr(name, value) { + var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate; + return this.attrTween(name, typeof value === "function" ? (fullname.local ? attr_attrFunctionNS : attr_attrFunction)(fullname, i, tweenValue(this, "attr." + name, value)) : value == null ? (fullname.local ? attr_attrRemoveNS : attr_attrRemove)(fullname) : (fullname.local ? attr_attrConstantNS : attr_attrConstant)(fullname, i, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/attrTween.js + +function attrInterpolate(name, i) { + return function(t) { + this.setAttribute(name, i.call(this, t)); + }; +} +function attrInterpolateNS(fullname, i) { + return function(t) { + this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); + }; +} +function attrTweenNS(fullname, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolateNS(fullname, i); + return t0; + } + tween._value = value; + return tween; +} +function attrTween(name, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && attrInterpolate(name, i); + return t0; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_attrTween(name, value) { + var key = "attr." + name; + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + var fullname = namespace(name); + return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/delay.js + +function delayFunction(id, value) { + return function() { + init(this, id).delay = +value.apply(this, arguments); + }; +} +function delayConstant(id, value) { + return value = +value, function() { + init(this, id).delay = value; + }; +} +/* harmony default export */ function delay(value) { + var id = this._id; + return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id, value)) : schedule_get(this.node(), id).delay; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/duration.js + +function durationFunction(id, value) { + return function() { + schedule_set(this, id).duration = +value.apply(this, arguments); + }; +} +function durationConstant(id, value) { + return value = +value, function() { + schedule_set(this, id).duration = value; + }; +} +/* harmony default export */ function duration(value) { + var id = this._id; + return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id, value)) : schedule_get(this.node(), id).duration; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/ease.js + +function easeConstant(id, value) { + if (typeof value !== "function") + throw new Error(); + return function() { + schedule_set(this, id).ease = value; + }; +} +/* harmony default export */ function ease(value) { + var id = this._id; + return arguments.length ? this.each(easeConstant(id, value)) : schedule_get(this.node(), id).ease; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/easeVarying.js + +function easeVarying(id, value) { + return function() { + var v = value.apply(this, arguments); + if (typeof v !== "function") + throw new Error(); + schedule_set(this, id).ease = v; + }; +} +/* harmony default export */ function transition_easeVarying(value) { + if (typeof value !== "function") + throw new Error(); + return this.each(easeVarying(this._id, value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/filter.js + + +/* harmony default export */ function transition_filter(match) { + if (typeof match !== "function") + match = matcher(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Transition(subgroups, this._parents, this._name, this._id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/merge.js + +/* harmony default export */ function transition_merge(transition) { + if (transition._id !== this._id) + throw new Error(); + for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Transition(merges, this._parents, this._name, this._id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/on.js + +function start(name) { + return (name + "").trim().split(/^|\s+/).every(function(t) { + var i = t.indexOf("."); + if (i >= 0) + t = t.slice(0, i); + return !t || t === "start"; + }); +} +function onFunction(id, name, listener) { + var on0, on1, sit = start(name) ? init : schedule_set; + return function() { + var schedule = sit(this, id), on = schedule.on; + if (on !== on0) + (on1 = (on0 = on).copy()).on(name, listener); + schedule.on = on1; + }; +} +/* harmony default export */ function transition_on(name, listener) { + var id = this._id; + return arguments.length < 2 ? schedule_get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/remove.js +function removeFunction(id) { + return function() { + var parent = this.parentNode; + for (var i in this.__transition) + if (+i !== id) + return; + if (parent) + parent.removeChild(this); + }; +} +/* harmony default export */ function transition_remove() { + return this.on("end.remove", removeFunction(this._id)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/select.js + + + +/* harmony default export */ function transition_select(select) { + var name = this._name, id = this._id; + if (typeof select !== "function") + select = selector(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) + subnode.__data__ = node.__data__; + subgroup[i] = subnode; + schedule(subgroup[i], name, id, i, subgroup, schedule_get(node, id)); + } + } + } + return new Transition(subgroups, this._parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selectAll.js + + + +/* harmony default export */ function transition_selectAll(select) { + var name = this._name, id = this._id; + if (typeof select !== "function") + select = selectorAll(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + for (var children = select.call(node, node.__data__, i, group), child, inherit = schedule_get(node, id), k = 0, l = children.length; k < l; ++k) { + if (child = children[k]) { + schedule(child, name, id, k, children, inherit); + } + } + subgroups.push(children); + parents.push(node); + } + } + } + return new Transition(subgroups, parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/selection.js + +var selection_Selection = src_selection.prototype.constructor; +/* harmony default export */ function transition_selection() { + return new selection_Selection(this._groups, this._parents); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/style.js + + + + + +function styleNull(name, interpolate2) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1); + }; +} +function style_styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; +} +function style_styleConstant(name, interpolate2, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = styleValue(this, name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1); + }; +} +function style_styleFunction(name, interpolate2, value) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + ""; + if (value1 == null) + string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1)); + }; +} +function styleMaybeRemove(id, name) { + var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; + return function() { + var schedule = schedule_set(this, id), on = schedule.on, listener = schedule.value[key] == null ? remove || (remove = style_styleRemove(name)) : void 0; + if (on !== on0 || listener0 !== listener) + (on1 = (on0 = on).copy()).on(event, listener0 = listener); + schedule.on = on1; + }; +} +/* harmony default export */ function transition_style(name, value, priority) { + var i = (name += "") === "transform" ? interpolateTransformCss : interpolate; + return value == null ? this.styleTween(name, styleNull(name, i)).on("end.style." + name, style_styleRemove(name)) : typeof value === "function" ? this.styleTween(name, style_styleFunction(name, i, tweenValue(this, "style." + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, style_styleConstant(name, i, value), priority).on("end.style." + name, null); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/styleTween.js +function styleInterpolate(name, i, priority) { + return function(t) { + this.style.setProperty(name, i.call(this, t), priority); + }; +} +function styleTween(name, value, priority) { + var t, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t = (i0 = i) && styleInterpolate(name, i, priority); + return t; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_styleTween(name, value, priority) { + var key = "style." + (name += ""); + if (arguments.length < 2) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/text.js + +function text_textConstant(value) { + return function() { + this.textContent = value; + }; +} +function text_textFunction(value) { + return function() { + var value1 = value(this); + this.textContent = value1 == null ? "" : value1; + }; +} +/* harmony default export */ function transition_text(value) { + return this.tween("text", typeof value === "function" ? text_textFunction(tweenValue(this, "text", value)) : text_textConstant(value == null ? "" : value + "")); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/textTween.js +function textInterpolate(i) { + return function(t) { + this.textContent = i.call(this, t); + }; +} +function textTween(value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) + t0 = (i0 = i) && textInterpolate(i); + return t0; + } + tween._value = value; + return tween; +} +/* harmony default export */ function transition_textTween(value) { + var key = "text"; + if (arguments.length < 1) + return (key = this.tween(key)) && key._value; + if (value == null) + return this.tween(key, null); + if (typeof value !== "function") + throw new Error(); + return this.tween(key, textTween(value)); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/transition.js + + +/* harmony default export */ function transition() { + var name = this._name, id0 = this._id, id1 = newId(); + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + var inherit = schedule_get(node, id0); + schedule(node, name, id1, i, group, { + time: inherit.time + inherit.delay + inherit.duration, + delay: 0, + duration: inherit.duration, + ease: inherit.ease + }); + } + } + } + return new Transition(groups, this._parents, name, id1); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/end.js + +/* harmony default export */ function end() { + var on0, on1, that = this, id = that._id, size = that.size(); + return new Promise(function(resolve, reject) { + var cancel = { value: reject }, end = { value: function() { + if (--size === 0) + resolve(); + } }; + that.each(function() { + var schedule = schedule_set(this, id), on = schedule.on; + if (on !== on0) { + on1 = (on0 = on).copy(); + on1._.cancel.push(cancel); + on1._.interrupt.push(cancel); + on1._.end.push(end); + } + schedule.on = on1; + }); + if (size === 0) + resolve(); + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/transition/index.js + + + + + + + + + + + + + + + + + + + + + +var id = 0; +function Transition(groups, parents, name, id2) { + this._groups = groups; + this._parents = parents; + this._name = name; + this._id = id2; +} +function transition_transition(name) { + return src_selection().transition(name); +} +function newId() { + return ++id; +} +var selection_prototype = src_selection.prototype; +Transition.prototype = transition_transition.prototype = { + constructor: Transition, + select: transition_select, + selectAll: transition_selectAll, + selectChild: selection_prototype.selectChild, + selectChildren: selection_prototype.selectChildren, + filter: transition_filter, + merge: transition_merge, + selection: transition_selection, + transition: transition, + call: selection_prototype.call, + nodes: selection_prototype.nodes, + node: selection_prototype.node, + size: selection_prototype.size, + empty: selection_prototype.empty, + each: selection_prototype.each, + on: transition_on, + attr: transition_attr, + attrTween: transition_attrTween, + style: transition_style, + styleTween: transition_styleTween, + text: transition_text, + textTween: transition_textTween, + remove: transition_remove, + tween: tween, + delay: delay, + duration: duration, + ease: ease, + easeVarying: transition_easeVarying, + end: end, + [Symbol.iterator]: selection_prototype[Symbol.iterator] +}; + +;// CONCATENATED MODULE: ./node_modules/d3-ease/src/cubic.js +function cubicIn(t) { + return t * t * t; +} +function cubicOut(t) { + return --t * t * t + 1; +} +function cubicInOut(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/transition.js + + + + +var defaultTiming = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: cubicInOut +}; +function inherit(node, id) { + var timing; + while (!(timing = node.__transition) || !(timing = timing[id])) { + if (!(node = node.parentNode)) { + throw new Error(`transition ${id} not found`); + } + } + return timing; +} +/* harmony default export */ function selection_transition(name) { + var id, timing; + if (name instanceof Transition) { + id = name._id, name = name._name; + } else { + id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; + } + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + schedule(node, name, id, i, group, timing || inherit(node, id)); + } + } + } + return new Transition(groups, this._parents, name, id); +} + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/selection/index.js + + + +src_selection.prototype.interrupt = selection_interrupt; +src_selection.prototype.transition = selection_transition; + +;// CONCATENATED MODULE: ./node_modules/d3-transition/src/index.js + + + + + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/constant.js +/* harmony default export */ var d3_brush_src_constant = ((x) => () => x); + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/event.js +function BrushEvent(type, { + sourceEvent, + target, + selection, + mode, + dispatch +}) { + Object.defineProperties(this, { + type: { value: type, enumerable: true, configurable: true }, + sourceEvent: { value: sourceEvent, enumerable: true, configurable: true }, + target: { value: target, enumerable: true, configurable: true }, + selection: { value: selection, enumerable: true, configurable: true }, + mode: { value: mode, enumerable: true, configurable: true }, + _: { value: dispatch } + }); +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/noevent.js +function noevent_nopropagation(event) { + event.stopImmediatePropagation(); +} +/* harmony default export */ function src_noevent(event) { + event.preventDefault(); + event.stopImmediatePropagation(); +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/brush.js + + + + + + + + +var MODE_DRAG = { name: "drag" }, MODE_SPACE = { name: "space" }, MODE_HANDLE = { name: "handle" }, MODE_CENTER = { name: "center" }; +const { abs, max, min } = Math; +function number1(e) { + return [+e[0], +e[1]]; +} +function number2(e) { + return [number1(e[0]), number1(e[1])]; +} +var X = { + name: "x", + handles: ["w", "e"].map(type), + input: function(x, e) { + return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; + }, + output: function(xy) { + return xy && [xy[0][0], xy[1][0]]; + } +}; +var Y = { + name: "y", + handles: ["n", "s"].map(type), + input: function(y, e) { + return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; + }, + output: function(xy) { + return xy && [xy[0][1], xy[1][1]]; + } +}; +var XY = { + name: "xy", + handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type), + input: function(xy) { + return xy == null ? null : number2(xy); + }, + output: function(xy) { + return xy; + } +}; +var cursors = { + overlay: "crosshair", + selection: "move", + n: "ns-resize", + e: "ew-resize", + s: "ns-resize", + w: "ew-resize", + nw: "nwse-resize", + ne: "nesw-resize", + se: "nwse-resize", + sw: "nesw-resize" +}; +var flipX = { + e: "w", + w: "e", + nw: "ne", + ne: "nw", + se: "sw", + sw: "se" +}; +var flipY = { + n: "s", + s: "n", + nw: "sw", + ne: "se", + se: "ne", + sw: "nw" +}; +var signsX = { + overlay: 1, + selection: 1, + n: null, + e: 1, + s: null, + w: -1, + nw: -1, + ne: 1, + se: 1, + sw: -1 +}; +var signsY = { + overlay: 1, + selection: 1, + n: -1, + e: null, + s: 1, + w: null, + nw: -1, + ne: -1, + se: 1, + sw: 1 +}; +function type(t) { + return { type: t }; +} +function defaultFilter(event) { + return !event.ctrlKey && !event.button; +} +function defaultExtent() { + var svg = this.ownerSVGElement || this; + if (svg.hasAttribute("viewBox")) { + svg = svg.viewBox.baseVal; + return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]]; + } + return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]]; +} +function defaultTouchable() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +function local(node) { + while (!node.__brush) + if (!(node = node.parentNode)) + return; + return node.__brush; +} +function brush_empty(extent) { + return extent[0][0] === extent[1][0] || extent[0][1] === extent[1][1]; +} +function brushSelection(node) { + var state = node.__brush; + return state ? state.dim.output(state.selection) : null; +} +function brushX() { + return brush_brush(X); +} +function brushY() { + return brush_brush(Y); +} +/* harmony default export */ function brush() { + return brush_brush(XY); +} +function brush_brush(dim) { + var extent = defaultExtent, filter = defaultFilter, touchable = defaultTouchable, keys = true, listeners = src_dispatch("start", "brush", "end"), handleSize = 6, touchending; + function brush2(group) { + var overlay = group.property("__brush", initialize).selectAll(".overlay").data([type("overlay")]); + overlay.enter().append("rect").attr("class", "overlay").attr("pointer-events", "all").attr("cursor", cursors.overlay).merge(overlay).each(function() { + var extent2 = local(this).extent; + src_select(this).attr("x", extent2[0][0]).attr("y", extent2[0][1]).attr("width", extent2[1][0] - extent2[0][0]).attr("height", extent2[1][1] - extent2[0][1]); + }); + group.selectAll(".selection").data([type("selection")]).enter().append("rect").attr("class", "selection").attr("cursor", cursors.selection).attr("fill", "#777").attr("fill-opacity", 0.3).attr("stroke", "#fff").attr("shape-rendering", "crispEdges"); + var handle = group.selectAll(".handle").data(dim.handles, function(d) { + return d.type; + }); + handle.exit().remove(); + handle.enter().append("rect").attr("class", function(d) { + return "handle handle--" + d.type; + }).attr("cursor", function(d) { + return cursors[d.type]; + }); + group.each(redraw).attr("fill", "none").attr("pointer-events", "all").on("mousedown.brush", started).filter(touchable).on("touchstart.brush", started).on("touchmove.brush", touchmoved).on("touchend.brush touchcancel.brush", touchended).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + brush2.move = function(group, selection, event) { + if (group.tween) { + group.on("start.brush", function(event2) { + emitter(this, arguments).beforestart().start(event2); + }).on("interrupt.brush end.brush", function(event2) { + emitter(this, arguments).end(event2); + }).tween("brush", function() { + var that = this, state = that.__brush, emit = emitter(that, arguments), selection0 = state.selection, selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent), i = value(selection0, selection1); + function tween(t) { + state.selection = t === 1 && selection1 === null ? null : i(t); + redraw.call(that); + emit.brush(); + } + return selection0 !== null && selection1 !== null ? tween : tween(1); + }); + } else { + group.each(function() { + var that = this, args = arguments, state = that.__brush, selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent), emit = emitter(that, args).beforestart(); + interrupt(that); + state.selection = selection1 === null ? null : selection1; + redraw.call(that); + emit.start(event).brush(event).end(event); + }); + } + }; + brush2.clear = function(group, event) { + brush2.move(group, null, event); + }; + function redraw() { + var group = src_select(this), selection = local(this).selection; + if (selection) { + group.selectAll(".selection").style("display", null).attr("x", selection[0][0]).attr("y", selection[0][1]).attr("width", selection[1][0] - selection[0][0]).attr("height", selection[1][1] - selection[0][1]); + group.selectAll(".handle").style("display", null).attr("x", function(d) { + return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; + }).attr("y", function(d) { + return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; + }).attr("width", function(d) { + return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; + }).attr("height", function(d) { + return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; + }); + } else { + group.selectAll(".selection,.handle").style("display", "none").attr("x", null).attr("y", null).attr("width", null).attr("height", null); + } + } + function emitter(that, args, clean) { + var emit = that.__brush.emitter; + return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean); + } + function Emitter(that, args, clean) { + this.that = that; + this.args = args; + this.state = that.__brush; + this.active = 0; + this.clean = clean; + } + Emitter.prototype = { + beforestart: function() { + if (++this.active === 1) + this.state.emitter = this, this.starting = true; + return this; + }, + start: function(event, mode) { + if (this.starting) + this.starting = false, this.emit("start", event, mode); + else + this.emit("brush", event); + return this; + }, + brush: function(event, mode) { + this.emit("brush", event, mode); + return this; + }, + end: function(event, mode) { + if (--this.active === 0) + delete this.state.emitter, this.emit("end", event, mode); + return this; + }, + emit: function(type2, event, mode) { + var d = src_select(this.that).datum(); + listeners.call( + type2, + this.that, + new BrushEvent(type2, { + sourceEvent: event, + target: brush2, + selection: dim.output(this.state.selection), + mode, + dispatch: listeners + }), + d + ); + } + }; + function started(event) { + if (touchending && !event.touches) + return; + if (!filter.apply(this, arguments)) + return; + var that = this, type2 = event.target.__data__.type, mode = (keys && event.metaKey ? type2 = "overlay" : type2) === "selection" ? MODE_DRAG : keys && event.altKey ? MODE_CENTER : MODE_HANDLE, signX = dim === Y ? null : signsX[type2], signY = dim === X ? null : signsY[type2], state = local(that), extent2 = state.extent, selection = state.selection, W = extent2[0][0], w0, w1, N = extent2[0][1], n0, n1, E = extent2[1][0], e0, e1, S = extent2[1][1], s0, s1, dx = 0, dy = 0, moving, shifting = signX && signY && keys && event.shiftKey, lockX, lockY, points = Array.from(event.touches || [event], (t) => { + const i = t.identifier; + t = src_pointer(t, that); + t.point0 = t.slice(); + t.identifier = i; + return t; + }); + interrupt(that); + var emit = emitter(that, arguments, true).beforestart(); + if (type2 === "overlay") { + if (selection) + moving = true; + const pts = [points[0], points[1] || points[0]]; + state.selection = selection = [[ + w0 = dim === Y ? W : min(pts[0][0], pts[1][0]), + n0 = dim === X ? N : min(pts[0][1], pts[1][1]) + ], [ + e0 = dim === Y ? E : max(pts[0][0], pts[1][0]), + s0 = dim === X ? S : max(pts[0][1], pts[1][1]) + ]]; + if (points.length > 1) + move(event); + } else { + w0 = selection[0][0]; + n0 = selection[0][1]; + e0 = selection[1][0]; + s0 = selection[1][1]; + } + w1 = w0; + n1 = n0; + e1 = e0; + s1 = s0; + var group = src_select(that).attr("pointer-events", "none"); + var overlay = group.selectAll(".overlay").attr("cursor", cursors[type2]); + if (event.touches) { + emit.moved = moved; + emit.ended = ended; + } else { + var view = src_select(event.view).on("mousemove.brush", moved, true).on("mouseup.brush", ended, true); + if (keys) + view.on("keydown.brush", keydowned, true).on("keyup.brush", keyupped, true); + nodrag(event.view); + } + redraw.call(that); + emit.start(event, mode.name); + function moved(event2) { + for (const p of event2.changedTouches || [event2]) { + for (const d of points) + if (d.identifier === p.identifier) + d.cur = src_pointer(p, that); + } + if (shifting && !lockX && !lockY && points.length === 1) { + const point = points[0]; + if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1])) + lockY = true; + else + lockX = true; + } + for (const point of points) + if (point.cur) + point[0] = point.cur[0], point[1] = point.cur[1]; + moving = true; + src_noevent(event2); + move(event2); + } + function move(event2) { + const point = points[0], point0 = point.point0; + var t; + dx = point[0] - point0[0]; + dy = point[1] - point0[1]; + switch (mode) { + case MODE_SPACE: + case MODE_DRAG: { + if (signX) + dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx; + if (signY) + dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy; + break; + } + case MODE_HANDLE: { + if (points[1]) { + if (signX) + w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1; + if (signY) + n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1; + } else { + if (signX < 0) + dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0; + else if (signX > 0) + dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx; + if (signY < 0) + dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0; + else if (signY > 0) + dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy; + } + break; + } + case MODE_CENTER: { + if (signX) + w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX)); + if (signY) + n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY)); + break; + } + } + if (e1 < w1) { + signX *= -1; + t = w0, w0 = e0, e0 = t; + t = w1, w1 = e1, e1 = t; + if (type2 in flipX) + overlay.attr("cursor", cursors[type2 = flipX[type2]]); + } + if (s1 < n1) { + signY *= -1; + t = n0, n0 = s0, s0 = t; + t = n1, n1 = s1, s1 = t; + if (type2 in flipY) + overlay.attr("cursor", cursors[type2 = flipY[type2]]); + } + if (state.selection) + selection = state.selection; + if (lockX) + w1 = selection[0][0], e1 = selection[1][0]; + if (lockY) + n1 = selection[0][1], s1 = selection[1][1]; + if (selection[0][0] !== w1 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) { + state.selection = [[w1, n1], [e1, s1]]; + redraw.call(that); + emit.brush(event2, mode.name); + } + } + function ended(event2) { + noevent_nopropagation(event2); + if (event2.touches) { + if (event2.touches.length) + return; + if (touchending) + clearTimeout(touchending); + touchending = setTimeout(function() { + touchending = null; + }, 500); + } else { + yesdrag(event2.view, moving); + view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); + } + group.attr("pointer-events", "all"); + overlay.attr("cursor", cursors.overlay); + if (state.selection) + selection = state.selection; + if (brush_empty(selection)) + state.selection = null, redraw.call(that); + emit.end(event2, mode.name); + } + function keydowned(event2) { + switch (event2.keyCode) { + case 16: { + shifting = signX && signY; + break; + } + case 18: { + if (mode === MODE_HANDLE) { + if (signX) + e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) + s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + move(event2); + } + break; + } + case 32: { + if (mode === MODE_HANDLE || mode === MODE_CENTER) { + if (signX < 0) + e0 = e1 - dx; + else if (signX > 0) + w0 = w1 - dx; + if (signY < 0) + s0 = s1 - dy; + else if (signY > 0) + n0 = n1 - dy; + mode = MODE_SPACE; + overlay.attr("cursor", cursors.selection); + move(event2); + } + break; + } + default: + return; + } + src_noevent(event2); + } + function keyupped(event2) { + switch (event2.keyCode) { + case 16: { + if (shifting) { + lockX = lockY = shifting = false; + move(event2); + } + break; + } + case 18: { + if (mode === MODE_CENTER) { + if (signX < 0) + e0 = e1; + else if (signX > 0) + w0 = w1; + if (signY < 0) + s0 = s1; + else if (signY > 0) + n0 = n1; + mode = MODE_HANDLE; + move(event2); + } + break; + } + case 32: { + if (mode === MODE_SPACE) { + if (event2.altKey) { + if (signX) + e0 = e1 - dx * signX, w0 = w1 + dx * signX; + if (signY) + s0 = s1 - dy * signY, n0 = n1 + dy * signY; + mode = MODE_CENTER; + } else { + if (signX < 0) + e0 = e1; + else if (signX > 0) + w0 = w1; + if (signY < 0) + s0 = s1; + else if (signY > 0) + n0 = n1; + mode = MODE_HANDLE; + } + overlay.attr("cursor", cursors[type2]); + move(event2); + } + break; + } + default: + return; + } + src_noevent(event2); + } + } + function touchmoved(event) { + emitter(this, arguments).moved(event); + } + function touchended(event) { + emitter(this, arguments).ended(event); + } + function initialize() { + var state = this.__brush || { selection: null }; + state.extent = number2(extent.apply(this, arguments)); + state.dim = dim; + return state; + } + brush2.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : d3_brush_src_constant(number2(_)), brush2) : extent; + }; + brush2.filter = function(_) { + return arguments.length ? (filter = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush2) : filter; + }; + brush2.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : d3_brush_src_constant(!!_), brush2) : touchable; + }; + brush2.handleSize = function(_) { + return arguments.length ? (handleSize = +_, brush2) : handleSize; + }; + brush2.keyModifiers = function(_) { + return arguments.length ? (keys = !!_, brush2) : keys; + }; + brush2.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? brush2 : value; + }; + return brush2; +} + +;// CONCATENATED MODULE: ./node_modules/d3-brush/src/index.js + + +;// CONCATENATED MODULE: ./src/module/browser.ts +function getGlobal() { + return typeof globalThis === "object" && globalThis !== null && globalThis.Object === Object && globalThis || typeof global === "object" && global !== null && global.Object === Object && global || typeof self === "object" && self !== null && self.Object === Object && self || Function("return this")(); +} +function getFallback(w) { + const hasRAF = typeof (w == null ? void 0 : w.requestAnimationFrame) === "function" && typeof (w == null ? void 0 : w.cancelAnimationFrame) === "function"; + const hasRIC = typeof (w == null ? void 0 : w.requestIdleCallback) === "function" && typeof (w == null ? void 0 : w.cancelIdleCallback) === "function"; + const request = (cb) => setTimeout(cb, 1); + const cancel = (id) => clearTimeout(id); + return [ + hasRAF ? w.requestAnimationFrame : request, + hasRAF ? w.cancelAnimationFrame : cancel, + hasRIC ? w.requestIdleCallback : request, + hasRIC ? w.cancelIdleCallback : cancel + ]; +} +const win = getGlobal(); +const doc = win == null ? void 0 : win.document; +const [ + requestAnimationFrame, + cancelAnimationFrame, + requestIdleCallback, + cancelIdleCallback +] = getFallback(win); + + +;// CONCATENATED MODULE: ./src/module/util.ts +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; + + + + +const isValue = (v) => v || v === 0; +const isFunction = (v) => typeof v === "function"; +const isString = (v) => typeof v === "string"; +const isNumber = (v) => typeof v === "number"; +const isUndefined = (v) => typeof v === "undefined"; +const isDefined = (v) => typeof v !== "undefined"; +const isBoolean = (v) => typeof v === "boolean"; +const ceil10 = (v) => Math.ceil(v / 10) * 10; +const asHalfPixel = (n) => Math.ceil(n) + 0.5; +const diffDomain = (d) => d[1] - d[0]; +const isObjectType = (v) => typeof v === "object"; +const isEmpty = (o) => isUndefined(o) || o === null || isString(o) && o.length === 0 || isObjectType(o) && !(o instanceof Date) && Object.keys(o).length === 0 || isNumber(o) && isNaN(o); +const notEmpty = (o) => !isEmpty(o); +const isArray = (arr) => Array.isArray(arr); +const isObject = (obj) => obj && !(obj == null ? void 0 : obj.nodeType) && isObjectType(obj) && !isArray(obj); +function getOption(options, key, defaultValue) { + return isDefined(options[key]) ? options[key] : defaultValue; +} +function hasValue(dict, value) { + let found = false; + Object.keys(dict).forEach((key) => dict[key] === value && (found = true)); + return found; +} +function callFn(fn, thisArg, ...args) { + const isFn = isFunction(fn); + isFn && fn.call(thisArg, ...args); + return isFn; +} +function endall(transition, cb) { + let n = 0; + const end = function(...args) { + !--n && cb.apply(this, ...args); + }; + if ("duration" in transition) { + transition.each(() => ++n).on("end", end); + } else { + ++n; + transition.call(end); + } +} +function sanitize(str) { + return isString(str) ? str.replace(/<(script|img)?/ig, "<").replace(/(script)?>/ig, ">") : str; +} +function setTextValue(node, text, dy = [-1, 1], toMiddle = false) { + if (!node || !isString(text)) { + return; + } + if (text.indexOf("\n") === -1) { + node.text(text); + } else { + const diff = [node.text(), text].map((v) => v.replace(/[\s\n]/g, "")); + if (diff[0] !== diff[1]) { + const multiline = text.split("\n"); + const len = toMiddle ? multiline.length - 1 : 1; + node.html(""); + multiline.forEach((v, i) => { + node.append("tspan").attr("x", 0).attr("dy", `${i === 0 ? dy[0] * len : dy[1]}em`).text(v); + }); + } + } +} +function getRectSegList(path) { + const { x, y, width, height } = path.getBBox(); + return [ + { x, y: y + height }, + // seg0 + { x, y }, + // seg1 + { x: x + width, y }, + // seg2 + { x: x + width, y: y + height } + // seg3 + ]; +} +function getPathBox(path) { + const { width, height } = path.getBoundingClientRect(); + const items = getRectSegList(path); + const x = items[0].x; + const y = Math.min(items[0].y, items[1].y); + return { + x, + y, + width, + height + }; +} +function getPointer(event, element) { + var _a; + const touches = event && ((_a = event.touches || event.sourceEvent && event.sourceEvent.touches) == null ? void 0 : _a[0]); + let pointer = [0, 0]; + try { + pointer = src_pointer(touches || event, element); + } catch (e) { + } + return pointer.map((v) => isNaN(v) ? 0 : v); +} +function getBrushSelection(ctx) { + const { event, $el } = ctx; + const main = $el.subchart.main || $el.main; + let selection; + if (event && event.type === "brush") { + selection = event.selection; + } else if (main && (selection = main.select(".bb-brush").node())) { + selection = brushSelection(selection); + } + return selection; +} +function getBoundingRect(node) { + const needEvaluate = !("rect" in node) || "rect" in node && node.hasAttribute("width") && node.rect.width !== +node.getAttribute("width"); + return needEvaluate ? node.rect = node.getBoundingClientRect() : node.rect; +} +function getRandom(asStr = true, min = 0, max = 1e4) { + const crpt = win.crypto || win.msCrypto; + const rand = crpt ? min + crpt.getRandomValues(new Uint32Array(1))[0] % (max - min + 1) : Math.floor(Math.random() * (max - min) + min); + return asStr ? String(rand) : rand; +} +function findIndex(arr, v, start, end, isRotated) { + if (start > end) { + return -1; + } + const mid = Math.floor((start + end) / 2); + let { x, w = 0 } = arr[mid]; + if (isRotated) { + x = arr[mid].y; + w = arr[mid].h; + } + if (v >= x && v <= x + w) { + return mid; + } + return v < x ? findIndex(arr, v, start, mid - 1, isRotated) : findIndex(arr, v, mid + 1, end, isRotated); +} +function brushEmpty(ctx) { + const selection = getBrushSelection(ctx); + if (selection) { + return selection[0] === selection[1]; + } + return true; +} +function deepClone(...objectN) { + const clone = (v) => { + if (isObject(v) && v.constructor) { + const r = new v.constructor(); + for (const k in v) { + r[k] = clone(v[k]); + } + return r; + } + return v; + }; + return objectN.map((v) => clone(v)).reduce((a, c) => __spreadValues(__spreadValues({}, a), c)); +} +function util_extend(target = {}, source) { + if (isArray(source)) { + source.forEach((v) => util_extend(target, v)); + } + for (const p in source) { + if (/^\d+$/.test(p) || p in target) { + continue; + } + target[p] = source[p]; + } + return target; +} +const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); +function camelize(str, separator = "-") { + return str.split(separator).map((v, i) => i ? v.charAt(0).toUpperCase() + v.slice(1).toLowerCase() : v.toLowerCase()).join(""); +} +const toArray = (v) => [].slice.call(v); +function addCssRules(style, selector, prop) { + const { rootSelector = "", sheet } = style; + const getSelector = (s) => s.replace(/\s?(bb-)/g, ".$1").replace(/\.+/g, "."); + const rule = `${rootSelector} ${getSelector(selector)} {${prop.join(";")}}`; + return sheet[sheet.insertRule ? "insertRule" : "addRule"]( + rule, + sheet.cssRules.length + ); +} +function getCssRules(styleSheets) { + let rules = []; + styleSheets.forEach((sheet) => { + var _a; + try { + if (sheet.cssRules && sheet.cssRules.length) { + rules = rules.concat(toArray(sheet.cssRules)); + } + } catch (e) { + (_a = win.console) == null ? void 0 : _a.warn(`Error while reading rules from ${sheet.href}: ${e.toString()}`); + } + }); + return rules; +} +function getScrollPosition(node) { + var _a, _b, _c, _d; + return { + x: ((_b = (_a = win.pageXOffset) != null ? _a : win.scrollX) != null ? _b : 0) + node.scrollLeft, + y: ((_d = (_c = win.pageYOffset) != null ? _c : win.scrollY) != null ? _d : 0) + node.scrollTop + }; +} +function getTranslation(node) { + const transform = node ? node.transform : null; + const baseVal = transform && transform.baseVal; + return baseVal && baseVal.numberOfItems ? baseVal.getItem(0).matrix : { a: 0, b: 0, c: 0, d: 0, e: 0, f: 0 }; +} +function getUnique(data) { + const isDate = data[0] instanceof Date; + const d = (isDate ? data.map(Number) : data).filter((v, i, self) => self.indexOf(v) === i); + return isDate ? d.map((v) => new Date(v)) : d; +} +function mergeArray(arr) { + return arr && arr.length ? arr.reduce((p, c) => p.concat(c)) : []; +} +function mergeObj(target, ...objectN) { + if (!objectN.length || objectN.length === 1 && !objectN[0]) { + return target; + } + const source = objectN.shift(); + if (isObject(target) && isObject(source)) { + Object.keys(source).forEach((key) => { + const value = source[key]; + if (isObject(value)) { + !target[key] && (target[key] = {}); + target[key] = mergeObj(target[key], value); + } else { + target[key] = isArray(value) ? value.concat() : value; + } + }); + } + return mergeObj(target, ...objectN); +} +function sortValue(data, isAsc = true) { + let fn; + if (data[0] instanceof Date) { + fn = isAsc ? (a, b) => a - b : (a, b) => b - a; + } else { + if (isAsc && !data.every(isNaN)) { + fn = (a, b) => a - b; + } else if (!isAsc) { + fn = (a, b) => a > b && -1 || a < b && 1 || a === b && 0; + } + } + return data.concat().sort(fn); +} +function getMinMax(type, data) { + let res = data.filter((v) => notEmpty(v)); + if (res.length) { + if (isNumber(res[0])) { + res = Math[type](...res); + } else if (res[0] instanceof Date) { + res = sortValue(res, type === "min")[0]; + } + } else { + res = void 0; + } + return res; +} +const getRange = (start, end, step = 1) => { + const res = []; + const n = Math.max(0, Math.ceil((end - start) / step)) | 0; + for (let i = start; i < n; i++) { + res.push(start + i * step); + } + return res; +}; +const emulateEvent = { + mouse: (() => { + const getParams = () => ({ + bubbles: false, + cancelable: false, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0 + }); + try { + new MouseEvent("t"); + return (el, eventType, params = getParams()) => { + el.dispatchEvent(new MouseEvent(eventType, params)); + }; + } catch (e) { + return (el, eventType, params = getParams()) => { + const mouseEvent = doc.createEvent("MouseEvent"); + mouseEvent.initMouseEvent( + eventType, + params.bubbles, + params.cancelable, + win, + 0, + // the event's mouse click count + params.screenX, + params.screenY, + params.clientX, + params.clientY, + false, + false, + false, + false, + 0, + null + ); + el.dispatchEvent(mouseEvent); + }; + } + })(), + touch: (el, eventType, params) => { + const touchObj = new Touch(mergeObj({ + identifier: Date.now(), + target: el, + radiusX: 2.5, + radiusY: 2.5, + rotationAngle: 10, + force: 0.5 + }, params)); + el.dispatchEvent(new TouchEvent(eventType, { + cancelable: true, + bubbles: true, + shiftKey: true, + touches: [touchObj], + targetTouches: [], + changedTouches: [touchObj] + })); + } +}; +function tplProcess(tpl, data) { + let res = tpl; + for (const x in data) { + res = res.replace(new RegExp(`{=${x}}`, "g"), data[x]); + } + return res; +} +function parseDate(date) { + var _a; + let parsedDate; + if (date instanceof Date) { + parsedDate = date; + } else if (isString(date)) { + const { config, format } = this; + parsedDate = (_a = format.dataTime(config.data_xFormat)(date)) != null ? _a : new Date(date); + } else if (isNumber(date) && !isNaN(date)) { + parsedDate = /* @__PURE__ */ new Date(+date); + } + if (!parsedDate || isNaN(+parsedDate)) { + console && console.error && console.error(`Failed to parse x '${date}' to Date object`); + } + return parsedDate; +} +function isTabVisible() { + var _a, _b; + return ((_a = doc) == null ? void 0 : _a.hidden) === false || ((_b = doc) == null ? void 0 : _b.visibilityState) === "visible"; +} +function convertInputType(mouse, touch) { + const { DocumentTouch, matchMedia, navigator } = win; + let hasTouch = false; + if (touch) { + if (navigator && "maxTouchPoints" in navigator) { + hasTouch = navigator.maxTouchPoints > 0; + } else if ("ontouchmove" in win || DocumentTouch && doc instanceof DocumentTouch) { + hasTouch = true; + } else { + if (matchMedia == null ? void 0 : matchMedia("(pointer:coarse)").matches) { + hasTouch = true; + } else { + const UA = navigator.userAgent; + hasTouch = /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA); + } + } + } + const hasMouse = mouse && ((matchMedia == null ? void 0 : matchMedia("any-hover:hover").matches) || (matchMedia == null ? void 0 : matchMedia("any-pointer:fine").matches)); + return hasMouse && "mouse" || hasTouch && "touch" || "mouse"; +} +function runUntil(fn, conditionFn) { + if (conditionFn() === false) { + requestAnimationFrame(() => runUntil(fn, conditionFn)); + } else { + fn(); + } +} + +;// CONCATENATED MODULE: ./src/config/config.ts + +function loadConfig(config) { + const thisConfig = this.config; + let target; + let keys; + let read; + const find = () => { + const key = keys.shift(); + if (key && target && isObjectType(target) && key in target) { + target = target[key]; + return find(); + } else if (!key) { + return target; + } + return void 0; + }; + Object.keys(thisConfig).forEach((key) => { + target = config; + keys = key.split("_"); + read = find(); + if (isDefined(read)) { + thisConfig[key] = read; + } + }); + if (this.api) { + this.state.orgConfig = config; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/Plugin.ts +var Plugin_defProp = Object.defineProperty; +var Plugin_defNormalProp = (obj, key, value) => key in obj ? Plugin_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + Plugin_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class Plugin { + /** + * Constructor + * @param {Any} options config option object + * @private + */ + constructor(options = {}) { + __publicField(this, "$$"); + __publicField(this, "options"); + this.options = options; + } + /** + * Lifecycle hook for 'beforeInit' phase. + * @private + */ + $beforeInit() { + } + /** + * Lifecycle hook for 'init' phase. + * @private + */ + $init() { + } + /** + * Lifecycle hook for 'afterInit' phase. + * @private + */ + $afterInit() { + } + /** + * Lifecycle hook for 'redraw' phase. + * @private + */ + $redraw() { + } + /** + * Lifecycle hook for 'willDestroy' phase. + * @private + */ + $willDestroy() { + Object.keys(this).forEach((key) => { + this[key] = null; + delete this[key]; + }); + } +} +__publicField(Plugin, "version", "3.12.4"); + +;// CONCATENATED MODULE: ./src/Plugin/textoverlap/Options.ts +class Options { + constructor() { + return { + /** + * Selector string for target text nodes within chart element. + * - **NOTE:** If no value is given, defaults to data label text elements. + * @name selector + * @memberof plugin-textoverlap + * @type {string} + * @default undefined + * @example + * // selector for data label text nodes + * selector: ".bb-texts text" + */ + selector: void 0, + /** + * Extent of label overlap prevention. + * @name extent + * @memberof plugin-textoverlap + * @type {number} + * @default 1 + * @example + * extent: 1 + */ + extent: 1, + /** + * Minimum area needed to show a data label. + * @name area + * @memberof plugin-textoverlap + * @type {number} + * @default 0 + * @example + * area: 0 + */ + area: 0 + }; + } +} + +;// CONCATENATED MODULE: ./src/Plugin/textoverlap/index.ts +var textoverlap_defProp = Object.defineProperty; +var textoverlap_defNormalProp = (obj, key, value) => key in obj ? textoverlap_defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var textoverlap_publicField = (obj, key, value) => { + textoverlap_defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + + + + + +class TextOverlap extends Plugin { + constructor(options) { + super(options); + textoverlap_publicField(this, "config"); + this.config = new Options(); + return this; + } + $init() { + loadConfig.call(this, this.options); + } + $redraw() { + const { $$: { $el }, config: { selector } } = this; + const text = selector ? $el.main.selectAll(selector) : $el.text; + !text.empty() && this.preventLabelOverlap(text); + } + /** + * Generates the voronoi layout for data labels + * @param {Array} points Indices values + * @returns {object} Voronoi layout points and corresponding Data points + * @private + */ + generateVoronoi(points) { + const { $$ } = this; + const { scale } = $$; + const [min, max] = ["x", "y"].map((v) => scale[v].domain()); + [min[1], max[0]] = [max[0], min[1]]; + return Delaunay.from(points).voronoi([ + ...min, + ...max + ]); + } + /** + * Set text label's position to preventg overlap. + * @param {d3Selection} text target text selection + * @private + */ + preventLabelOverlap(text) { + const { extent, area } = this.config; + const points = text.data().map((v) => [v.index, v.value]); + const voronoi = this.generateVoronoi(points); + let i = 0; + text.each(function() { + const cell = voronoi.cellPolygon(i); + if (cell && this) { + const [x, y] = points[i]; + const [cx, cy] = centroid(cell); + const polygonArea = Math.abs(src_area(cell)); + const angle = Math.round(Math.atan2(cy - y, cx - x) / Math.PI * 2); + const xTranslate = extent * (angle === 0 ? 1 : -1); + const yTranslate = angle === -1 ? -extent : extent + 5; + const txtAnchor = Math.abs(angle) === 1 ? "middle" : angle === 0 ? "start" : "end"; + this.style.display = polygonArea < area ? "none" : ""; + this.setAttribute("text-anchor", txtAnchor); + this.setAttribute("dy", `0.${angle === 1 ? 71 : 35}em`); + this.setAttribute("transform", `translate(${xTranslate}, ${yTranslate})`); + } + i++; + }); + } +} + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module used 'module' so it can't be inlined +/******/ __webpack_require__(0); +/******/ var __webpack_exports__ = __webpack_require__(564); +/******/ __webpack_exports__ = __webpack_exports__["default"]; +/******/ +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-textoverlap.pkgd.min.js b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-textoverlap.pkgd.min.js new file mode 100644 index 000000000..bbac97262 --- /dev/null +++ b/release/3.12.4/dist/plugin/pkgd/billboardjs-plugin-textoverlap.pkgd.min.js @@ -0,0 +1,16 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + * @requires billboard.js + * @summary billboard.js plugin + */(function(Sn,sn){typeof exports=="object"&&typeof module=="object"?module.exports=sn():typeof define=="function"&&define.amd?define("bb",[],sn):typeof exports=="object"?exports.bb=sn():(Sn.bb=Sn.bb||{},Sn.bb.plugin=Sn.bb.plugin||{},Sn.bb.plugin["textoverlap.pkgd"]=sn())})(this,function(){return function(){"use strict";var ia={65908:function(l,p,t){t.d(p,{default:function(){return Kl}});const n=11102230246251565e-32,e=134217729,o=(3+8*n)*n;function i(r,a,s,d,h){let m,x,O,P,R=a[0],C=d[0],B=0,L=0;C>R==C>-R?(m=R,R=a[++B]):(m=C,C=d[++L]);let F=0;if(B<r&&L<s)for(C>R==C>-R?(x=R+m,O=m-(x-R),R=a[++B]):(x=C+m,O=m-(x-C),C=d[++L]),m=x,O!==0&&(h[F++]=O);B<r&&L<s;)C>R==C>-R?(x=m+R,P=x-m,O=m-(x-P)+(R-P),R=a[++B]):(x=m+C,P=x-m,O=m-(x-P)+(C-P),C=d[++L]),m=x,O!==0&&(h[F++]=O);for(;B<r;)x=m+R,P=x-m,O=m-(x-P)+(R-P),R=a[++B],m=x,O!==0&&(h[F++]=O);for(;L<s;)x=m+C,P=x-m,O=m-(x-P)+(C-P),C=d[++L],m=x,O!==0&&(h[F++]=O);return(m!==0||F===0)&&(h[F++]=m),F}function u(r,a,s,d,h,m,x,O){return i(i(r,a,s,d,x),x,h,m,O)}function f(r,a,s,d){let h,m,x,O,P,R,C,B,L,F,Z;C=e*s,F=C-(C-s),Z=s-F;let b=a[0];h=b*s,C=e*b,B=C-(C-b),L=b-B,x=L*Z-(h-B*F-L*F-B*Z);let j=0;x!==0&&(d[j++]=x);for(let H=1;H<r;H++)b=a[H],O=b*s,C=e*b,B=C-(C-b),L=b-B,P=L*Z-(O-B*F-L*F-B*Z),m=h+P,R=m-h,x=h-(m-R)+(P-R),x!==0&&(d[j++]=x),h=O+m,x=m-(h-O),x!==0&&(d[j++]=x);return(h!==0||j===0)&&(d[j++]=h),j}function c(r,a){for(let s=0;s<r;s++)a[s]=-a[s];return r}function g(r,a){let s=a[0];for(let d=1;d<r;d++)s+=a[d];return s}function v(r){return new Float64Array(r)}const y=(3+16*n)*n,S=(2+12*n)*n,E=(9+64*n)*n*n,I=v(4),A=v(8),T=v(12),M=v(16),D=v(4);function $(r,a,s,d,h,m,x){let O,P,R,C,B,L,F,Z,b,j,H,Q,J,lt,nt,xt,it,vt;const ft=r-h,It=s-h,Nt=a-m,Dt=d-m;lt=ft*Dt,L=e*ft,F=L-(L-ft),Z=ft-F,L=e*Dt,b=L-(L-Dt),j=Dt-b,nt=Z*j-(lt-F*b-Z*b-F*j),xt=Nt*It,L=e*Nt,F=L-(L-Nt),Z=Nt-F,L=e*It,b=L-(L-It),j=It-b,it=Z*j-(xt-F*b-Z*b-F*j),H=nt-it,B=nt-H,I[0]=nt-(H+B)+(B-it),Q=lt+H,B=Q-lt,J=lt-(Q-B)+(H-B),H=J-xt,B=J-H,I[1]=J-(H+B)+(B-xt),vt=Q+H,B=vt-Q,I[2]=Q-(vt-B)+(H-B),I[3]=vt;let Gt=g(4,I),V=S*x;if(Gt>=V||-Gt>=V||(B=r-ft,O=r-(ft+B)+(B-h),B=s-It,R=s-(It+B)+(B-h),B=a-Nt,P=a-(Nt+B)+(B-m),B=d-Dt,C=d-(Dt+B)+(B-m),O===0&&P===0&&R===0&&C===0)||(V=E*x+o*Math.abs(Gt),Gt+=ft*C+Dt*O-(Nt*R+It*P),Gt>=V||-Gt>=V))return Gt;lt=O*Dt,L=e*O,F=L-(L-O),Z=O-F,L=e*Dt,b=L-(L-Dt),j=Dt-b,nt=Z*j-(lt-F*b-Z*b-F*j),xt=P*It,L=e*P,F=L-(L-P),Z=P-F,L=e*It,b=L-(L-It),j=It-b,it=Z*j-(xt-F*b-Z*b-F*j),H=nt-it,B=nt-H,D[0]=nt-(H+B)+(B-it),Q=lt+H,B=Q-lt,J=lt-(Q-B)+(H-B),H=J-xt,B=J-H,D[1]=J-(H+B)+(B-xt),vt=Q+H,B=vt-Q,D[2]=Q-(vt-B)+(H-B),D[3]=vt;const tt=i(4,I,4,D,A);lt=ft*C,L=e*ft,F=L-(L-ft),Z=ft-F,L=e*C,b=L-(L-C),j=C-b,nt=Z*j-(lt-F*b-Z*b-F*j),xt=Nt*R,L=e*Nt,F=L-(L-Nt),Z=Nt-F,L=e*R,b=L-(L-R),j=R-b,it=Z*j-(xt-F*b-Z*b-F*j),H=nt-it,B=nt-H,D[0]=nt-(H+B)+(B-it),Q=lt+H,B=Q-lt,J=lt-(Q-B)+(H-B),H=J-xt,B=J-H,D[1]=J-(H+B)+(B-xt),vt=Q+H,B=vt-Q,D[2]=Q-(vt-B)+(H-B),D[3]=vt;const _=i(tt,A,4,D,T);lt=O*C,L=e*O,F=L-(L-O),Z=O-F,L=e*C,b=L-(L-C),j=C-b,nt=Z*j-(lt-F*b-Z*b-F*j),xt=P*R,L=e*P,F=L-(L-P),Z=P-F,L=e*R,b=L-(L-R),j=R-b,it=Z*j-(xt-F*b-Z*b-F*j),H=nt-it,B=nt-H,D[0]=nt-(H+B)+(B-it),Q=lt+H,B=Q-lt,J=lt-(Q-B)+(H-B),H=J-xt,B=J-H,D[1]=J-(H+B)+(B-xt),vt=Q+H,B=vt-Q,D[2]=Q-(vt-B)+(H-B),D[3]=vt;const dt=i(_,T,4,D,M);return M[dt-1]}function U(r,a,s,d,h,m){const x=(a-m)*(s-h),O=(r-h)*(d-m),P=x-O,R=Math.abs(x+O);return Math.abs(P)>=y*R?P:-$(r,a,s,d,h,m,R)}function G(r,a,s,d,h,m){return(a-m)*(s-h)-(r-h)*(d-m)}const N=(7+56*n)*n,w=(3+28*n)*n,W=(26+288*n)*n*n,X=v(4),Y=v(4),k=v(4),st=v(4),ut=v(4),rt=v(4),at=v(4),ot=v(4),pt=v(4),Ct=v(8),St=v(8),$t=v(8),Rt=v(4),Qt=v(8),Yt=v(8),Xt=v(8),er=v(12);let ir=v(192),Or=v(192);function yr(r,a,s){r=sum(r,ir,a,s,Or);const d=ir;return ir=Or,Or=d,r}function xr(r,a,s,d,h,m,x,O){let P,R,C,B,L,F,Z,b,j,H,Q,J,lt,nt,xt,it;return r===0?a===0?(x[0]=0,O[0]=0,1):(it=-a,Q=it*s,R=splitter*it,C=R-(R-it),B=it-C,R=splitter*s,L=R-(R-s),F=s-L,x[0]=B*F-(Q-C*L-B*L-C*F),x[1]=Q,Q=a*h,R=splitter*a,C=R-(R-a),B=a-C,R=splitter*h,L=R-(R-h),F=h-L,O[0]=B*F-(Q-C*L-B*L-C*F),O[1]=Q,2):a===0?(Q=r*d,R=splitter*r,C=R-(R-r),B=r-C,R=splitter*d,L=R-(R-d),F=d-L,x[0]=B*F-(Q-C*L-B*L-C*F),x[1]=Q,it=-r,Q=it*m,R=splitter*it,C=R-(R-it),B=it-C,R=splitter*m,L=R-(R-m),F=m-L,O[0]=B*F-(Q-C*L-B*L-C*F),O[1]=Q,2):(Q=r*d,R=splitter*r,C=R-(R-r),B=r-C,R=splitter*d,L=R-(R-d),F=d-L,J=B*F-(Q-C*L-B*L-C*F),lt=a*s,R=splitter*a,C=R-(R-a),B=a-C,R=splitter*s,L=R-(R-s),F=s-L,nt=B*F-(lt-C*L-B*L-C*F),Z=J-nt,P=J-Z,x[0]=J-(Z+P)+(P-nt),b=Q+Z,P=b-Q,H=Q-(b-P)+(Z-P),Z=H-lt,P=H-Z,x[1]=H-(Z+P)+(P-lt),xt=b+Z,P=xt-b,x[2]=b-(xt-P)+(Z-P),x[3]=xt,Q=a*h,R=splitter*a,C=R-(R-a),B=a-C,R=splitter*h,L=R-(R-h),F=h-L,J=B*F-(Q-C*L-B*L-C*F),lt=r*m,R=splitter*r,C=R-(R-r),B=r-C,R=splitter*m,L=R-(R-m),F=m-L,nt=B*F-(lt-C*L-B*L-C*F),Z=J-nt,P=J-Z,O[0]=J-(Z+P)+(P-nt),b=Q+Z,P=b-Q,H=Q-(b-P)+(Z-P),Z=H-lt,P=H-Z,O[1]=H-(Z+P)+(P-lt),xt=b+Z,P=xt-b,O[2]=b-(xt-P)+(Z-P),O[3]=xt,4)}function Kt(r,a,s,d,h){let m,x,O,P,R,C,B,L,F,Z,b,j,H;return b=a*s,x=splitter*a,O=x-(x-a),P=a-O,x=splitter*s,R=x-(x-s),C=s-R,j=P*C-(b-O*R-P*R-O*C),x=splitter*d,R=x-(x-d),C=d-R,B=j*d,x=splitter*j,O=x-(x-j),P=j-O,Rt[0]=P*C-(B-O*R-P*R-O*C),L=b*d,x=splitter*b,O=x-(x-b),P=b-O,Z=P*C-(L-O*R-P*R-O*C),F=B+Z,m=F-B,Rt[1]=B-(F-m)+(Z-m),H=L+F,Rt[2]=F-(H-L),Rt[3]=H,r=yr(r,4,Rt),h!==0&&(x=splitter*h,R=x-(x-h),C=h-R,B=j*h,x=splitter*j,O=x-(x-j),P=j-O,Rt[0]=P*C-(B-O*R-P*R-O*C),L=b*h,x=splitter*b,O=x-(x-b),P=b-O,Z=P*C-(L-O*R-P*R-O*C),F=B+Z,m=F-B,Rt[1]=B-(F-m)+(Z-m),H=L+F,Rt[2]=F-(H-L),Rt[3]=H,r=yr(r,4,Rt)),r}function _t(r,a,s,d,h,m,x,O,P,R,C,B,L){let F,Z,b,j,H,Q,J,lt,nt,xt,it,vt,ft,It,Nt,Dt,Gt,V,tt,_,dt,K,et,z,ct;const yt=r-R,Pt=d-R,Ot=x-R,Lt=a-C,zt=h-C,Ft=O-C,tr=s-B,nr=m-B,or=P-B;dt=Pt*Ft,vt=splitter*Pt,ft=vt-(vt-Pt),It=Pt-ft,vt=splitter*Ft,Nt=vt-(vt-Ft),Dt=Ft-Nt,K=It*Dt-(dt-ft*Nt-It*Nt-ft*Dt),et=Ot*zt,vt=splitter*Ot,ft=vt-(vt-Ot),It=Ot-ft,vt=splitter*zt,Nt=vt-(vt-zt),Dt=zt-Nt,z=It*Dt-(et-ft*Nt-It*Nt-ft*Dt),Gt=K-z,it=K-Gt,X[0]=K-(Gt+it)+(it-z),V=dt+Gt,it=V-dt,_=dt-(V-it)+(Gt-it),Gt=_-et,it=_-Gt,X[1]=_-(Gt+it)+(it-et),ct=V+Gt,it=ct-V,X[2]=V-(ct-it)+(Gt-it),X[3]=ct,dt=Ot*Lt,vt=splitter*Ot,ft=vt-(vt-Ot),It=Ot-ft,vt=splitter*Lt,Nt=vt-(vt-Lt),Dt=Lt-Nt,K=It*Dt-(dt-ft*Nt-It*Nt-ft*Dt),et=yt*Ft,vt=splitter*yt,ft=vt-(vt-yt),It=yt-ft,vt=splitter*Ft,Nt=vt-(vt-Ft),Dt=Ft-Nt,z=It*Dt-(et-ft*Nt-It*Nt-ft*Dt),Gt=K-z,it=K-Gt,Y[0]=K-(Gt+it)+(it-z),V=dt+Gt,it=V-dt,_=dt-(V-it)+(Gt-it),Gt=_-et,it=_-Gt,Y[1]=_-(Gt+it)+(it-et),ct=V+Gt,it=ct-V,Y[2]=V-(ct-it)+(Gt-it),Y[3]=ct,dt=yt*zt,vt=splitter*yt,ft=vt-(vt-yt),It=yt-ft,vt=splitter*zt,Nt=vt-(vt-zt),Dt=zt-Nt,K=It*Dt-(dt-ft*Nt-It*Nt-ft*Dt),et=Pt*Lt,vt=splitter*Pt,ft=vt-(vt-Pt),It=Pt-ft,vt=splitter*Lt,Nt=vt-(vt-Lt),Dt=Lt-Nt,z=It*Dt-(et-ft*Nt-It*Nt-ft*Dt),Gt=K-z,it=K-Gt,k[0]=K-(Gt+it)+(it-z),V=dt+Gt,it=V-dt,_=dt-(V-it)+(Gt-it),Gt=_-et,it=_-Gt,k[1]=_-(Gt+it)+(it-et),ct=V+Gt,it=ct-V,k[2]=V-(ct-it)+(Gt-it),k[3]=ct,F=sum(sum(scale(4,X,tr,Qt),Qt,scale(4,Y,nr,Yt),Yt,Xt),Xt,scale(4,k,or,Qt),Qt,ir);let sr=estimate(F,ir),ur=w*L;if(sr>=ur||-sr>=ur||(it=r-yt,Z=r-(yt+it)+(it-R),it=d-Pt,b=d-(Pt+it)+(it-R),it=x-Ot,j=x-(Ot+it)+(it-R),it=a-Lt,H=a-(Lt+it)+(it-C),it=h-zt,Q=h-(zt+it)+(it-C),it=O-Ft,J=O-(Ft+it)+(it-C),it=s-tr,lt=s-(tr+it)+(it-B),it=m-nr,nt=m-(nr+it)+(it-B),it=P-or,xt=P-(or+it)+(it-B),Z===0&&b===0&&j===0&&H===0&&Q===0&&J===0&<===0&&nt===0&&xt===0)||(ur=W*L+resulterrbound*Math.abs(sr),sr+=tr*(Pt*J+Ft*b-(zt*j+Ot*Q))+lt*(Pt*Ft-zt*Ot)+nr*(Ot*H+Lt*j-(Ft*Z+yt*J))+nt*(Ot*Lt-Ft*yt)+or*(yt*Q+zt*Z-(Lt*b+Pt*H))+xt*(yt*zt-Lt*Pt),sr>=ur||-sr>=ur))return sr;const lr=xr(Z,H,Pt,zt,Ot,Ft,st,ut),Nr=xr(b,Q,Ot,Ft,yt,Lt,rt,at),br=xr(j,J,yt,Lt,Pt,zt,ot,pt),Rr=sum(Nr,rt,br,pt,Ct);F=yr(F,scale(Rr,Ct,tr,Xt),Xt);const Zt=sum(br,ot,lr,ut,St);F=yr(F,scale(Zt,St,nr,Xt),Xt);const Mr=sum(lr,st,Nr,at,$t);return F=yr(F,scale(Mr,$t,or,Xt),Xt),lt!==0&&(F=yr(F,scale(4,X,lt,er),er),F=yr(F,scale(Rr,Ct,lt,Xt),Xt)),nt!==0&&(F=yr(F,scale(4,Y,nt,er),er),F=yr(F,scale(Zt,St,nt,Xt),Xt)),xt!==0&&(F=yr(F,scale(4,k,xt,er),er),F=yr(F,scale(Mr,$t,xt,Xt),Xt)),Z!==0&&(Q!==0&&(F=Kt(F,Z,Q,or,xt)),J!==0&&(F=Kt(F,-Z,J,nr,nt))),b!==0&&(J!==0&&(F=Kt(F,b,J,tr,lt)),H!==0&&(F=Kt(F,-b,H,or,xt))),j!==0&&(H!==0&&(F=Kt(F,j,H,nr,nt)),Q!==0&&(F=Kt(F,-j,Q,tr,lt))),ir[F-1]}function hr(r,a,s,d,h,m,x,O,P,R,C,B){const L=r-R,F=d-R,Z=x-R,b=a-C,j=h-C,H=O-C,Q=s-B,J=m-B,lt=P-B,nt=F*H,xt=Z*j,it=Z*b,vt=L*H,ft=L*j,It=F*b,Nt=Q*(nt-xt)+J*(it-vt)+lt*(ft-It),Dt=(Math.abs(nt)+Math.abs(xt))*Math.abs(Q)+(Math.abs(it)+Math.abs(vt))*Math.abs(J)+(Math.abs(ft)+Math.abs(It))*Math.abs(lt),Gt=N*Dt;return Nt>Gt||-Nt>Gt?Nt:_t(r,a,s,d,h,m,x,O,P,R,C,B,Dt)}function Sr(r,a,s,d,h,m,x,O,P,R,C,B){const L=r-R,F=d-R,Z=x-R,b=a-C,j=h-C,H=O-C,Q=s-B,J=m-B,lt=P-B;return L*(j*lt-J*H)+F*(H*Q-lt*b)+Z*(b*J-Q*j)}const mr=(10+96*n)*n,Ir=(4+48*n)*n,Fr=(44+576*n)*n*n,Dr=v(4),Pr=v(4),gr=v(4),Cr=v(4),Er=v(4),pr=v(4),Ut=v(4),Vt=v(4),bt=v(8),fr=v(8),cr=v(8),rr=v(8),qt=v(8),$r=v(8),Br=v(8),Et=v(8),Bt=v(8),wt=v(4),gt=v(4),Tt=v(4),q=v(8),At=v(16),Jt=v(16),kt=v(16),ar=v(32),Tr=v(32),dr=v(48),Lr=v(64);let on=v(1152),En=v(1152);function Ur(r,a,s){r=sum(r,on,a,s,En);const d=on;return on=En,En=d,r}function Vn(r,a,s,d,h,m,x,O,P){let R,C,B,L,F,Z,b,j,H,Q,J,lt,nt,xt,it,vt,ft,It,Nt,Dt,Gt,V,tt,_,dt,K,et,z,ct,yt,Pt,Ot,Lt,zt,Ft;const tr=r-x,nr=s-x,or=h-x,sr=a-O,ur=d-O,lr=m-O;Pt=nr*lr,tt=splitter*nr,_=tt-(tt-nr),dt=nr-_,tt=splitter*lr,K=tt-(tt-lr),et=lr-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=or*ur,tt=splitter*or,_=tt-(tt-or),dt=or-_,tt=splitter*ur,K=tt-(tt-ur),et=ur-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot-zt,V=Ot-z,Dr[0]=Ot-(z+V)+(V-zt),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt-Lt,V=yt-z,Dr[1]=yt-(z+V)+(V-Lt),Ft=ct+z,V=Ft-ct,Dr[2]=ct-(Ft-V)+(z-V),Dr[3]=Ft,Pt=or*sr,tt=splitter*or,_=tt-(tt-or),dt=or-_,tt=splitter*sr,K=tt-(tt-sr),et=sr-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=tr*lr,tt=splitter*tr,_=tt-(tt-tr),dt=tr-_,tt=splitter*lr,K=tt-(tt-lr),et=lr-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot-zt,V=Ot-z,Pr[0]=Ot-(z+V)+(V-zt),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt-Lt,V=yt-z,Pr[1]=yt-(z+V)+(V-Lt),Ft=ct+z,V=Ft-ct,Pr[2]=ct-(Ft-V)+(z-V),Pr[3]=Ft,Pt=tr*ur,tt=splitter*tr,_=tt-(tt-tr),dt=tr-_,tt=splitter*ur,K=tt-(tt-ur),et=ur-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=nr*sr,tt=splitter*nr,_=tt-(tt-nr),dt=nr-_,tt=splitter*sr,K=tt-(tt-sr),et=sr-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot-zt,V=Ot-z,gr[0]=Ot-(z+V)+(V-zt),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt-Lt,V=yt-z,gr[1]=yt-(z+V)+(V-Lt),Ft=ct+z,V=Ft-ct,gr[2]=ct-(Ft-V)+(z-V),gr[3]=Ft,R=sum(sum(sum(scale(scale(4,Dr,tr,q),q,tr,At),At,scale(scale(4,Dr,sr,q),q,sr,Jt),Jt,ar),ar,sum(scale(scale(4,Pr,nr,q),q,nr,At),At,scale(scale(4,Pr,ur,q),q,ur,Jt),Jt,Tr),Tr,Lr),Lr,sum(scale(scale(4,gr,or,q),q,or,At),At,scale(scale(4,gr,lr,q),q,lr,Jt),Jt,ar),ar,on);let Nr=estimate(R,on),br=Ir*P;if(Nr>=br||-Nr>=br||(V=r-tr,C=r-(tr+V)+(V-x),V=a-sr,F=a-(sr+V)+(V-O),V=s-nr,B=s-(nr+V)+(V-x),V=d-ur,Z=d-(ur+V)+(V-O),V=h-or,L=h-(or+V)+(V-x),V=m-lr,b=m-(lr+V)+(V-O),C===0&&B===0&&L===0&&F===0&&Z===0&&b===0)||(br=Fr*P+resulterrbound*Math.abs(Nr),Nr+=(tr*tr+sr*sr)*(nr*b+lr*B-(ur*L+or*Z))+2*(tr*C+sr*F)*(nr*lr-ur*or)+((nr*nr+ur*ur)*(or*F+sr*L-(lr*C+tr*b))+2*(nr*B+ur*Z)*(or*sr-lr*tr))+((or*or+lr*lr)*(tr*Z+ur*C-(sr*B+nr*F))+2*(or*L+lr*b)*(tr*ur-sr*nr)),Nr>=br||-Nr>=br))return Nr;if((B!==0||Z!==0||L!==0||b!==0)&&(Pt=tr*tr,tt=splitter*tr,_=tt-(tt-tr),dt=tr-_,Ot=dt*dt-(Pt-_*_-(_+_)*dt),Lt=sr*sr,tt=splitter*sr,_=tt-(tt-sr),dt=sr-_,zt=dt*dt-(Lt-_*_-(_+_)*dt),z=Ot+zt,V=z-Ot,Cr[0]=Ot-(z-V)+(zt-V),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt+Lt,V=z-yt,Cr[1]=yt-(z-V)+(Lt-V),Ft=ct+z,V=Ft-ct,Cr[2]=ct-(Ft-V)+(z-V),Cr[3]=Ft),(L!==0||b!==0||C!==0||F!==0)&&(Pt=nr*nr,tt=splitter*nr,_=tt-(tt-nr),dt=nr-_,Ot=dt*dt-(Pt-_*_-(_+_)*dt),Lt=ur*ur,tt=splitter*ur,_=tt-(tt-ur),dt=ur-_,zt=dt*dt-(Lt-_*_-(_+_)*dt),z=Ot+zt,V=z-Ot,Er[0]=Ot-(z-V)+(zt-V),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt+Lt,V=z-yt,Er[1]=yt-(z-V)+(Lt-V),Ft=ct+z,V=Ft-ct,Er[2]=ct-(Ft-V)+(z-V),Er[3]=Ft),(C!==0||F!==0||B!==0||Z!==0)&&(Pt=or*or,tt=splitter*or,_=tt-(tt-or),dt=or-_,Ot=dt*dt-(Pt-_*_-(_+_)*dt),Lt=lr*lr,tt=splitter*lr,_=tt-(tt-lr),dt=lr-_,zt=dt*dt-(Lt-_*_-(_+_)*dt),z=Ot+zt,V=z-Ot,pr[0]=Ot-(z-V)+(zt-V),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt+Lt,V=z-yt,pr[1]=yt-(z-V)+(Lt-V),Ft=ct+z,V=Ft-ct,pr[2]=ct-(Ft-V)+(z-V),pr[3]=Ft),C!==0&&(j=scale(4,Dr,C,bt),R=Ur(R,sum_three(scale(j,bt,2*tr,At),At,scale(scale(4,pr,C,q),q,ur,Jt),Jt,scale(scale(4,Er,C,q),q,-lr,kt),kt,ar,dr),dr)),F!==0&&(H=scale(4,Dr,F,fr),R=Ur(R,sum_three(scale(H,fr,2*sr,At),At,scale(scale(4,Er,F,q),q,or,Jt),Jt,scale(scale(4,pr,F,q),q,-nr,kt),kt,ar,dr),dr)),B!==0&&(Q=scale(4,Pr,B,cr),R=Ur(R,sum_three(scale(Q,cr,2*nr,At),At,scale(scale(4,Cr,B,q),q,lr,Jt),Jt,scale(scale(4,pr,B,q),q,-sr,kt),kt,ar,dr),dr)),Z!==0&&(J=scale(4,Pr,Z,rr),R=Ur(R,sum_three(scale(J,rr,2*ur,At),At,scale(scale(4,pr,Z,q),q,tr,Jt),Jt,scale(scale(4,Cr,Z,q),q,-or,kt),kt,ar,dr),dr)),L!==0&&(lt=scale(4,gr,L,qt),R=Ur(R,sum_three(scale(lt,qt,2*or,At),At,scale(scale(4,Er,L,q),q,sr,Jt),Jt,scale(scale(4,Cr,L,q),q,-ur,kt),kt,ar,dr),dr)),b!==0&&(nt=scale(4,gr,b,$r),R=Ur(R,sum_three(scale(nt,$r,2*lr,At),At,scale(scale(4,Cr,b,q),q,nr,Jt),Jt,scale(scale(4,Er,b,q),q,-tr,kt),kt,ar,dr),dr)),C!==0||F!==0){if(B!==0||Z!==0||L!==0||b!==0?(Pt=B*lr,tt=splitter*B,_=tt-(tt-B),dt=B-_,tt=splitter*lr,K=tt-(tt-lr),et=lr-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=nr*b,tt=splitter*nr,_=tt-(tt-nr),dt=nr-_,tt=splitter*b,K=tt-(tt-b),et=b-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot+zt,V=z-Ot,Ut[0]=Ot-(z-V)+(zt-V),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt+Lt,V=z-yt,Ut[1]=yt-(z-V)+(Lt-V),Ft=ct+z,V=Ft-ct,Ut[2]=ct-(Ft-V)+(z-V),Ut[3]=Ft,Pt=L*-ur,tt=splitter*L,_=tt-(tt-L),dt=L-_,tt=splitter*-ur,K=tt-(tt- -ur),et=-ur-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=or*-Z,tt=splitter*or,_=tt-(tt-or),dt=or-_,tt=splitter*-Z,K=tt-(tt- -Z),et=-Z-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot+zt,V=z-Ot,Vt[0]=Ot-(z-V)+(zt-V),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt+Lt,V=z-yt,Vt[1]=yt-(z-V)+(Lt-V),Ft=ct+z,V=Ft-ct,Vt[2]=ct-(Ft-V)+(z-V),Vt[3]=Ft,it=sum(4,Ut,4,Vt,Et),Pt=B*b,tt=splitter*B,_=tt-(tt-B),dt=B-_,tt=splitter*b,K=tt-(tt-b),et=b-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=L*Z,tt=splitter*L,_=tt-(tt-L),dt=L-_,tt=splitter*Z,K=tt-(tt-Z),et=Z-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot-zt,V=Ot-z,gt[0]=Ot-(z+V)+(V-zt),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt-Lt,V=yt-z,gt[1]=yt-(z+V)+(V-Lt),Ft=ct+z,V=Ft-ct,gt[2]=ct-(Ft-V)+(z-V),gt[3]=Ft,It=4):(Et[0]=0,it=1,gt[0]=0,It=1),C!==0){const Rr=scale(it,Et,C,kt);R=Ur(R,sum(scale(j,bt,C,At),At,scale(Rr,kt,2*tr,ar),ar,dr),dr);const Zt=scale(It,gt,C,q);R=Ur(R,sum_three(scale(Zt,q,2*tr,At),At,scale(Zt,q,C,Jt),Jt,scale(Rr,kt,C,ar),ar,Tr,Lr),Lr),Z!==0&&(R=Ur(R,scale(scale(4,pr,C,q),q,Z,At),At)),b!==0&&(R=Ur(R,scale(scale(4,Er,-C,q),q,b,At),At))}if(F!==0){const Rr=scale(it,Et,F,kt);R=Ur(R,sum(scale(H,fr,F,At),At,scale(Rr,kt,2*sr,ar),ar,dr),dr);const Zt=scale(It,gt,F,q);R=Ur(R,sum_three(scale(Zt,q,2*sr,At),At,scale(Zt,q,F,Jt),Jt,scale(Rr,kt,F,ar),ar,Tr,Lr),Lr)}}if(B!==0||Z!==0){if(L!==0||b!==0||C!==0||F!==0?(Pt=L*sr,tt=splitter*L,_=tt-(tt-L),dt=L-_,tt=splitter*sr,K=tt-(tt-sr),et=sr-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=or*F,tt=splitter*or,_=tt-(tt-or),dt=or-_,tt=splitter*F,K=tt-(tt-F),et=F-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot+zt,V=z-Ot,Ut[0]=Ot-(z-V)+(zt-V),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt+Lt,V=z-yt,Ut[1]=yt-(z-V)+(Lt-V),Ft=ct+z,V=Ft-ct,Ut[2]=ct-(Ft-V)+(z-V),Ut[3]=Ft,Dt=-lr,Gt=-b,Pt=C*Dt,tt=splitter*C,_=tt-(tt-C),dt=C-_,tt=splitter*Dt,K=tt-(tt-Dt),et=Dt-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=tr*Gt,tt=splitter*tr,_=tt-(tt-tr),dt=tr-_,tt=splitter*Gt,K=tt-(tt-Gt),et=Gt-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot+zt,V=z-Ot,Vt[0]=Ot-(z-V)+(zt-V),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt+Lt,V=z-yt,Vt[1]=yt-(z-V)+(Lt-V),Ft=ct+z,V=Ft-ct,Vt[2]=ct-(Ft-V)+(z-V),Vt[3]=Ft,vt=sum(4,Ut,4,Vt,Bt),Pt=L*F,tt=splitter*L,_=tt-(tt-L),dt=L-_,tt=splitter*F,K=tt-(tt-F),et=F-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=C*b,tt=splitter*C,_=tt-(tt-C),dt=C-_,tt=splitter*b,K=tt-(tt-b),et=b-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot-zt,V=Ot-z,Tt[0]=Ot-(z+V)+(V-zt),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt-Lt,V=yt-z,Tt[1]=yt-(z+V)+(V-Lt),Ft=ct+z,V=Ft-ct,Tt[2]=ct-(Ft-V)+(z-V),Tt[3]=Ft,Nt=4):(Bt[0]=0,vt=1,Tt[0]=0,Nt=1),B!==0){const Rr=scale(vt,Bt,B,kt);R=Ur(R,sum(scale(Q,cr,B,At),At,scale(Rr,kt,2*nr,ar),ar,dr),dr);const Zt=scale(Nt,Tt,B,q);R=Ur(R,sum_three(scale(Zt,q,2*nr,At),At,scale(Zt,q,B,Jt),Jt,scale(Rr,kt,B,ar),ar,Tr,Lr),Lr),b!==0&&(R=Ur(R,scale(scale(4,Cr,B,q),q,b,At),At)),F!==0&&(R=Ur(R,scale(scale(4,pr,-B,q),q,F,At),At))}if(Z!==0){const Rr=scale(vt,Bt,Z,kt);R=Ur(R,sum(scale(J,rr,Z,At),At,scale(Rr,kt,2*ur,ar),ar,dr),dr);const Zt=scale(Nt,Tt,Z,q);R=Ur(R,sum_three(scale(Zt,q,2*ur,At),At,scale(Zt,q,Z,Jt),Jt,scale(Rr,kt,Z,ar),ar,Tr,Lr),Lr)}}if(L!==0||b!==0){if(C!==0||F!==0||B!==0||Z!==0?(Pt=C*ur,tt=splitter*C,_=tt-(tt-C),dt=C-_,tt=splitter*ur,K=tt-(tt-ur),et=ur-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=tr*Z,tt=splitter*tr,_=tt-(tt-tr),dt=tr-_,tt=splitter*Z,K=tt-(tt-Z),et=Z-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot+zt,V=z-Ot,Ut[0]=Ot-(z-V)+(zt-V),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt+Lt,V=z-yt,Ut[1]=yt-(z-V)+(Lt-V),Ft=ct+z,V=Ft-ct,Ut[2]=ct-(Ft-V)+(z-V),Ut[3]=Ft,Dt=-sr,Gt=-F,Pt=B*Dt,tt=splitter*B,_=tt-(tt-B),dt=B-_,tt=splitter*Dt,K=tt-(tt-Dt),et=Dt-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=nr*Gt,tt=splitter*nr,_=tt-(tt-nr),dt=nr-_,tt=splitter*Gt,K=tt-(tt-Gt),et=Gt-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot+zt,V=z-Ot,Vt[0]=Ot-(z-V)+(zt-V),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt+Lt,V=z-yt,Vt[1]=yt-(z-V)+(Lt-V),Ft=ct+z,V=Ft-ct,Vt[2]=ct-(Ft-V)+(z-V),Vt[3]=Ft,xt=sum(4,Ut,4,Vt,Br),Pt=C*Z,tt=splitter*C,_=tt-(tt-C),dt=C-_,tt=splitter*Z,K=tt-(tt-Z),et=Z-K,Ot=dt*et-(Pt-_*K-dt*K-_*et),Lt=B*F,tt=splitter*B,_=tt-(tt-B),dt=B-_,tt=splitter*F,K=tt-(tt-F),et=F-K,zt=dt*et-(Lt-_*K-dt*K-_*et),z=Ot-zt,V=Ot-z,wt[0]=Ot-(z+V)+(V-zt),ct=Pt+z,V=ct-Pt,yt=Pt-(ct-V)+(z-V),z=yt-Lt,V=yt-z,wt[1]=yt-(z+V)+(V-Lt),Ft=ct+z,V=Ft-ct,wt[2]=ct-(Ft-V)+(z-V),wt[3]=Ft,ft=4):(Br[0]=0,xt=1,wt[0]=0,ft=1),L!==0){const Rr=scale(xt,Br,L,kt);R=Ur(R,sum(scale(lt,qt,L,At),At,scale(Rr,kt,2*or,ar),ar,dr),dr);const Zt=scale(ft,wt,L,q);R=Ur(R,sum_three(scale(Zt,q,2*or,At),At,scale(Zt,q,L,Jt),Jt,scale(Rr,kt,L,ar),ar,Tr,Lr),Lr),F!==0&&(R=Ur(R,scale(scale(4,Er,L,q),q,F,At),At)),Z!==0&&(R=Ur(R,scale(scale(4,Cr,-L,q),q,Z,At),At))}if(b!==0){const Rr=scale(xt,Br,b,kt);R=Ur(R,sum(scale(nt,$r,b,At),At,scale(Rr,kt,2*lr,ar),ar,dr),dr);const Zt=scale(ft,wt,b,q);R=Ur(R,sum_three(scale(Zt,q,2*lr,At),At,scale(Zt,q,b,Jt),Jt,scale(Rr,kt,b,ar),ar,Tr,Lr),Lr)}}return on[R-1]}function ee(r,a,s,d,h,m,x,O){const P=r-x,R=s-x,C=h-x,B=a-O,L=d-O,F=m-O,Z=R*F,b=C*L,j=P*P+B*B,H=C*B,Q=P*F,J=R*R+L*L,lt=P*L,nt=R*B,xt=C*C+F*F,it=j*(Z-b)+J*(H-Q)+xt*(lt-nt),vt=(Math.abs(Z)+Math.abs(b))*j+(Math.abs(H)+Math.abs(Q))*J+(Math.abs(lt)+Math.abs(nt))*xt,ft=mr*vt;return it>ft||-it>ft?it:Vn(r,a,s,d,h,m,x,O,vt)}function ae(r,a,s,d,h,m,x,O){const P=r-x,R=a-O,C=s-x,B=d-O,L=h-x,F=m-O,Z=P*B-C*R,b=C*F-L*B,j=L*R-P*F,H=P*P+R*R,Q=C*C+B*B,J=L*L+F*F;return H*b+Q*j+J*Z}const Hn=(16+224*n)*n,oe=(5+72*n)*n,Wn=(71+1408*n)*n*n,Xr=v(4),Vr=v(4),tn=v(4),en=v(4),kr=v(4),qr=v(4),Jr=v(4),Wr=v(4),wr=v(4),hn=v(4),Dn=v(24),mt=v(24),Wt=v(24),Mt=v(24),ht=v(24),jt=v(24),Ar=v(24),vr=v(24),Gr=v(24),Kr=v(24),Yr=v(1152),_r=v(1152),Ht=v(1152),zr=v(1152),un=v(1152),An=v(2304),Fn=v(2304),Kn=v(3456),bn=v(5760),ua=v(8),la=v(8),fa=v(8),Mo=v(16),se=v(24),In=v(48),Le=v(48),ie=v(96),Rn=v(192),ca=v(384),va=v(384),da=v(384),No=v(768);function fn(r,a,s,d,h,m,x){return sum_three(scale(4,r,d,ua),ua,scale(4,a,h,la),la,scale(4,s,m,fa),fa,Mo,x)}function Yn(r,a,s,d,h,m,x,O,P,R,C,B){const L=sum(sum(r,a,s,d,In),In,negate(sum(h,m,x,O,Le),Le),Le,ie);return sum_three(scale(scale(L,ie,P,Rn),Rn,P,ca),ca,scale(scale(L,ie,R,Rn),Rn,R,va),va,scale(scale(L,ie,C,Rn),Rn,C,da),da,No,B)}function Do(r,a,s,d,h,m,x,O,P,R,C,B,L,F,Z){let b,j,H,Q,J,lt,nt,xt,it,vt,ft,It,Nt,Dt;vt=r*h,j=splitter*r,H=j-(j-r),Q=r-H,j=splitter*h,J=j-(j-h),lt=h-J,ft=Q*lt-(vt-H*J-Q*J-H*lt),It=d*a,j=splitter*d,H=j-(j-d),Q=d-H,j=splitter*a,J=j-(j-a),lt=a-J,Nt=Q*lt-(It-H*J-Q*J-H*lt),nt=ft-Nt,b=ft-nt,Xr[0]=ft-(nt+b)+(b-Nt),xt=vt+nt,b=xt-vt,it=vt-(xt-b)+(nt-b),nt=it-It,b=it-nt,Xr[1]=it-(nt+b)+(b-It),Dt=xt+nt,b=Dt-xt,Xr[2]=xt-(Dt-b)+(nt-b),Xr[3]=Dt,vt=d*O,j=splitter*d,H=j-(j-d),Q=d-H,j=splitter*O,J=j-(j-O),lt=O-J,ft=Q*lt-(vt-H*J-Q*J-H*lt),It=x*h,j=splitter*x,H=j-(j-x),Q=x-H,j=splitter*h,J=j-(j-h),lt=h-J,Nt=Q*lt-(It-H*J-Q*J-H*lt),nt=ft-Nt,b=ft-nt,Vr[0]=ft-(nt+b)+(b-Nt),xt=vt+nt,b=xt-vt,it=vt-(xt-b)+(nt-b),nt=it-It,b=it-nt,Vr[1]=it-(nt+b)+(b-It),Dt=xt+nt,b=Dt-xt,Vr[2]=xt-(Dt-b)+(nt-b),Vr[3]=Dt,vt=x*C,j=splitter*x,H=j-(j-x),Q=x-H,j=splitter*C,J=j-(j-C),lt=C-J,ft=Q*lt-(vt-H*J-Q*J-H*lt),It=R*O,j=splitter*R,H=j-(j-R),Q=R-H,j=splitter*O,J=j-(j-O),lt=O-J,Nt=Q*lt-(It-H*J-Q*J-H*lt),nt=ft-Nt,b=ft-nt,tn[0]=ft-(nt+b)+(b-Nt),xt=vt+nt,b=xt-vt,it=vt-(xt-b)+(nt-b),nt=it-It,b=it-nt,tn[1]=it-(nt+b)+(b-It),Dt=xt+nt,b=Dt-xt,tn[2]=xt-(Dt-b)+(nt-b),tn[3]=Dt,vt=R*F,j=splitter*R,H=j-(j-R),Q=R-H,j=splitter*F,J=j-(j-F),lt=F-J,ft=Q*lt-(vt-H*J-Q*J-H*lt),It=L*C,j=splitter*L,H=j-(j-L),Q=L-H,j=splitter*C,J=j-(j-C),lt=C-J,Nt=Q*lt-(It-H*J-Q*J-H*lt),nt=ft-Nt,b=ft-nt,en[0]=ft-(nt+b)+(b-Nt),xt=vt+nt,b=xt-vt,it=vt-(xt-b)+(nt-b),nt=it-It,b=it-nt,en[1]=it-(nt+b)+(b-It),Dt=xt+nt,b=Dt-xt,en[2]=xt-(Dt-b)+(nt-b),en[3]=Dt,vt=L*a,j=splitter*L,H=j-(j-L),Q=L-H,j=splitter*a,J=j-(j-a),lt=a-J,ft=Q*lt-(vt-H*J-Q*J-H*lt),It=r*F,j=splitter*r,H=j-(j-r),Q=r-H,j=splitter*F,J=j-(j-F),lt=F-J,Nt=Q*lt-(It-H*J-Q*J-H*lt),nt=ft-Nt,b=ft-nt,kr[0]=ft-(nt+b)+(b-Nt),xt=vt+nt,b=xt-vt,it=vt-(xt-b)+(nt-b),nt=it-It,b=it-nt,kr[1]=it-(nt+b)+(b-It),Dt=xt+nt,b=Dt-xt,kr[2]=xt-(Dt-b)+(nt-b),kr[3]=Dt,vt=r*O,j=splitter*r,H=j-(j-r),Q=r-H,j=splitter*O,J=j-(j-O),lt=O-J,ft=Q*lt-(vt-H*J-Q*J-H*lt),It=x*a,j=splitter*x,H=j-(j-x),Q=x-H,j=splitter*a,J=j-(j-a),lt=a-J,Nt=Q*lt-(It-H*J-Q*J-H*lt),nt=ft-Nt,b=ft-nt,qr[0]=ft-(nt+b)+(b-Nt),xt=vt+nt,b=xt-vt,it=vt-(xt-b)+(nt-b),nt=it-It,b=it-nt,qr[1]=it-(nt+b)+(b-It),Dt=xt+nt,b=Dt-xt,qr[2]=xt-(Dt-b)+(nt-b),qr[3]=Dt,vt=d*C,j=splitter*d,H=j-(j-d),Q=d-H,j=splitter*C,J=j-(j-C),lt=C-J,ft=Q*lt-(vt-H*J-Q*J-H*lt),It=R*h,j=splitter*R,H=j-(j-R),Q=R-H,j=splitter*h,J=j-(j-h),lt=h-J,Nt=Q*lt-(It-H*J-Q*J-H*lt),nt=ft-Nt,b=ft-nt,Jr[0]=ft-(nt+b)+(b-Nt),xt=vt+nt,b=xt-vt,it=vt-(xt-b)+(nt-b),nt=it-It,b=it-nt,Jr[1]=it-(nt+b)+(b-It),Dt=xt+nt,b=Dt-xt,Jr[2]=xt-(Dt-b)+(nt-b),Jr[3]=Dt,vt=x*F,j=splitter*x,H=j-(j-x),Q=x-H,j=splitter*F,J=j-(j-F),lt=F-J,ft=Q*lt-(vt-H*J-Q*J-H*lt),It=L*O,j=splitter*L,H=j-(j-L),Q=L-H,j=splitter*O,J=j-(j-O),lt=O-J,Nt=Q*lt-(It-H*J-Q*J-H*lt),nt=ft-Nt,b=ft-nt,Wr[0]=ft-(nt+b)+(b-Nt),xt=vt+nt,b=xt-vt,it=vt-(xt-b)+(nt-b),nt=it-It,b=it-nt,Wr[1]=it-(nt+b)+(b-It),Dt=xt+nt,b=Dt-xt,Wr[2]=xt-(Dt-b)+(nt-b),Wr[3]=Dt,vt=R*a,j=splitter*R,H=j-(j-R),Q=R-H,j=splitter*a,J=j-(j-a),lt=a-J,ft=Q*lt-(vt-H*J-Q*J-H*lt),It=r*C,j=splitter*r,H=j-(j-r),Q=r-H,j=splitter*C,J=j-(j-C),lt=C-J,Nt=Q*lt-(It-H*J-Q*J-H*lt),nt=ft-Nt,b=ft-nt,wr[0]=ft-(nt+b)+(b-Nt),xt=vt+nt,b=xt-vt,it=vt-(xt-b)+(nt-b),nt=it-It,b=it-nt,wr[1]=it-(nt+b)+(b-It),Dt=xt+nt,b=Dt-xt,wr[2]=xt-(Dt-b)+(nt-b),wr[3]=Dt,vt=L*h,j=splitter*L,H=j-(j-L),Q=L-H,j=splitter*h,J=j-(j-h),lt=h-J,ft=Q*lt-(vt-H*J-Q*J-H*lt),It=d*F,j=splitter*d,H=j-(j-d),Q=d-H,j=splitter*F,J=j-(j-F),lt=F-J,Nt=Q*lt-(It-H*J-Q*J-H*lt),nt=ft-Nt,b=ft-nt,hn[0]=ft-(nt+b)+(b-Nt),xt=vt+nt,b=xt-vt,it=vt-(xt-b)+(nt-b),nt=it-It,b=it-nt,hn[1]=it-(nt+b)+(b-It),Dt=xt+nt,b=Dt-xt,hn[2]=xt-(Dt-b)+(nt-b),hn[3]=Dt;const Gt=fn(Xr,Vr,qr,P,s,-m,Dn),V=fn(Vr,tn,Jr,B,m,-P,mt),tt=fn(tn,en,Wr,Z,P,-B,Wt),_=fn(en,kr,wr,s,B,-Z,Mt),dt=fn(kr,Xr,hn,m,Z,-s,ht),K=fn(Xr,Jr,wr,B,s,m,jt),et=fn(Vr,Wr,hn,Z,m,P,Ar),z=fn(tn,wr,qr,s,P,B,vr),ct=fn(en,hn,Jr,m,B,Z,Gr),yt=fn(kr,qr,Wr,P,Z,s,Kr),Pt=sum_three(Yn(tt,Wt,et,Ar,ct,Gr,V,mt,r,a,s,Yr),Yr,Yn(_,Mt,z,vr,yt,Kr,tt,Wt,d,h,m,_r),_r,sum_three(Yn(dt,ht,ct,Gr,K,jt,_,Mt,x,O,P,Ht),Ht,Yn(Gt,Dn,yt,Kr,et,Ar,dt,ht,R,C,B,zr),zr,Yn(V,mt,K,jt,z,vr,Gt,Dn,L,F,Z,un),un,Fn,Kn),Kn,An,bn);return bn[Pt-1]}const ha=v(96),ga=v(96),pa=v(96),ya=v(1152);function ue(r,a,s,d,h,m,x,O,P,R){const C=fn(r,a,s,d,h,m,se);return sum_three(scale(scale(C,se,x,In),In,x,ha),ha,scale(scale(C,se,O,In),In,O,ga),ga,scale(scale(C,se,P,In),In,P,pa),pa,Rn,R)}function Fo(r,a,s,d,h,m,x,O,P,R,C,B,L,F,Z,b){let j,H,Q,J,lt,nt,xt,it,vt,ft,It,Nt,Dt,Gt,V,tt,_,dt,K,et,z,ct,yt,Pt,Ot,Lt,zt,Ft,tr,nr,or;const sr=r-L,ur=d-L,lr=x-L,Nr=R-L,br=a-F,Rr=h-F,Zt=O-F,Mr=C-F,Hr=s-Z,jr=m-Z,Qr=P-Z,Zr=B-Z;Ft=sr*Rr,et=splitter*sr,z=et-(et-sr),ct=sr-z,et=splitter*Rr,yt=et-(et-Rr),Pt=Rr-yt,tr=ct*Pt-(Ft-z*yt-ct*yt-z*Pt),nr=ur*br,et=splitter*ur,z=et-(et-ur),ct=ur-z,et=splitter*br,yt=et-(et-br),Pt=br-yt,or=ct*Pt-(nr-z*yt-ct*yt-z*Pt),Ot=tr-or,K=tr-Ot,Xr[0]=tr-(Ot+K)+(K-or),Lt=Ft+Ot,K=Lt-Ft,zt=Ft-(Lt-K)+(Ot-K),Ot=zt-nr,K=zt-Ot,Xr[1]=zt-(Ot+K)+(K-nr),j=Lt+Ot,K=j-Lt,Xr[2]=Lt-(j-K)+(Ot-K),Xr[3]=j,Ft=ur*Zt,et=splitter*ur,z=et-(et-ur),ct=ur-z,et=splitter*Zt,yt=et-(et-Zt),Pt=Zt-yt,tr=ct*Pt-(Ft-z*yt-ct*yt-z*Pt),nr=lr*Rr,et=splitter*lr,z=et-(et-lr),ct=lr-z,et=splitter*Rr,yt=et-(et-Rr),Pt=Rr-yt,or=ct*Pt-(nr-z*yt-ct*yt-z*Pt),Ot=tr-or,K=tr-Ot,Vr[0]=tr-(Ot+K)+(K-or),Lt=Ft+Ot,K=Lt-Ft,zt=Ft-(Lt-K)+(Ot-K),Ot=zt-nr,K=zt-Ot,Vr[1]=zt-(Ot+K)+(K-nr),H=Lt+Ot,K=H-Lt,Vr[2]=Lt-(H-K)+(Ot-K),Vr[3]=H,Ft=lr*Mr,et=splitter*lr,z=et-(et-lr),ct=lr-z,et=splitter*Mr,yt=et-(et-Mr),Pt=Mr-yt,tr=ct*Pt-(Ft-z*yt-ct*yt-z*Pt),nr=Nr*Zt,et=splitter*Nr,z=et-(et-Nr),ct=Nr-z,et=splitter*Zt,yt=et-(et-Zt),Pt=Zt-yt,or=ct*Pt-(nr-z*yt-ct*yt-z*Pt),Ot=tr-or,K=tr-Ot,tn[0]=tr-(Ot+K)+(K-or),Lt=Ft+Ot,K=Lt-Ft,zt=Ft-(Lt-K)+(Ot-K),Ot=zt-nr,K=zt-Ot,tn[1]=zt-(Ot+K)+(K-nr),Q=Lt+Ot,K=Q-Lt,tn[2]=Lt-(Q-K)+(Ot-K),tn[3]=Q,Ft=Nr*br,et=splitter*Nr,z=et-(et-Nr),ct=Nr-z,et=splitter*br,yt=et-(et-br),Pt=br-yt,tr=ct*Pt-(Ft-z*yt-ct*yt-z*Pt),nr=sr*Mr,et=splitter*sr,z=et-(et-sr),ct=sr-z,et=splitter*Mr,yt=et-(et-Mr),Pt=Mr-yt,or=ct*Pt-(nr-z*yt-ct*yt-z*Pt),Ot=tr-or,K=tr-Ot,wr[0]=tr-(Ot+K)+(K-or),Lt=Ft+Ot,K=Lt-Ft,zt=Ft-(Lt-K)+(Ot-K),Ot=zt-nr,K=zt-Ot,wr[1]=zt-(Ot+K)+(K-nr),J=Lt+Ot,K=J-Lt,wr[2]=Lt-(J-K)+(Ot-K),wr[3]=J,Ft=sr*Zt,et=splitter*sr,z=et-(et-sr),ct=sr-z,et=splitter*Zt,yt=et-(et-Zt),Pt=Zt-yt,tr=ct*Pt-(Ft-z*yt-ct*yt-z*Pt),nr=lr*br,et=splitter*lr,z=et-(et-lr),ct=lr-z,et=splitter*br,yt=et-(et-br),Pt=br-yt,or=ct*Pt-(nr-z*yt-ct*yt-z*Pt),Ot=tr-or,K=tr-Ot,qr[0]=tr-(Ot+K)+(K-or),Lt=Ft+Ot,K=Lt-Ft,zt=Ft-(Lt-K)+(Ot-K),Ot=zt-nr,K=zt-Ot,qr[1]=zt-(Ot+K)+(K-nr),lt=Lt+Ot,K=lt-Lt,qr[2]=Lt-(lt-K)+(Ot-K),qr[3]=lt,Ft=ur*Mr,et=splitter*ur,z=et-(et-ur),ct=ur-z,et=splitter*Mr,yt=et-(et-Mr),Pt=Mr-yt,tr=ct*Pt-(Ft-z*yt-ct*yt-z*Pt),nr=Nr*Rr,et=splitter*Nr,z=et-(et-Nr),ct=Nr-z,et=splitter*Rr,yt=et-(et-Rr),Pt=Rr-yt,or=ct*Pt-(nr-z*yt-ct*yt-z*Pt),Ot=tr-or,K=tr-Ot,Jr[0]=tr-(Ot+K)+(K-or),Lt=Ft+Ot,K=Lt-Ft,zt=Ft-(Lt-K)+(Ot-K),Ot=zt-nr,K=zt-Ot,Jr[1]=zt-(Ot+K)+(K-nr),nt=Lt+Ot,K=nt-Lt,Jr[2]=Lt-(nt-K)+(Ot-K),Jr[3]=nt;const Fe=sum(sum(negate(ue(Vr,tn,Jr,Zr,jr,-Qr,sr,br,Hr,Yr),Yr),Yr,ue(tn,wr,qr,Hr,Qr,Zr,ur,Rr,jr,_r),_r,An),An,sum(negate(ue(wr,Xr,Jr,jr,Zr,Hr,lr,Zt,Qr,Ht),Ht),Ht,ue(Xr,Vr,qr,Qr,Hr,-jr,Nr,Mr,Zr,zr),zr,Fn),Fn,ya);let ln=estimate(Fe,ya),Tn=oe*b;if(ln>=Tn||-ln>=Tn||(K=r-sr,xt=r-(sr+K)+(K-L),K=a-br,It=a-(br+K)+(K-F),K=s-Hr,V=s-(Hr+K)+(K-Z),K=d-ur,it=d-(ur+K)+(K-L),K=h-Rr,Nt=h-(Rr+K)+(K-F),K=m-jr,tt=m-(jr+K)+(K-Z),K=x-lr,vt=x-(lr+K)+(K-L),K=O-Zt,Dt=O-(Zt+K)+(K-F),K=P-Qr,_=P-(Qr+K)+(K-Z),K=R-Nr,ft=R-(Nr+K)+(K-L),K=C-Mr,Gt=C-(Mr+K)+(K-F),K=B-Zr,dt=B-(Zr+K)+(K-Z),xt===0&&It===0&&V===0&&it===0&&Nt===0&&tt===0&&vt===0&&Dt===0&&_===0&&ft===0&&Gt===0&&dt===0))return ln;Tn=Wn*b+resulterrbound*Math.abs(ln);const Oo=sr*Nt+Rr*xt-(br*it+ur*It),To=ur*Dt+Zt*it-(Rr*vt+lr*Nt),Ao=lr*Gt+Mr*vt-(Zt*ft+Nr*Dt),Ro=Nr*It+br*ft-(Mr*xt+sr*Gt),Po=sr*Dt+Zt*xt-(br*vt+lr*It),Co=ur*Gt+Mr*it-(Rr*ft+Nr*Nt);return ln+=(ur*ur+Rr*Rr+jr*jr)*(Qr*Ro+Zr*Po+Hr*Ao+(_*J+dt*lt+V*Q))+(Nr*Nr+Mr*Mr+Zr*Zr)*(Hr*To-jr*Po+Qr*Oo+(V*H-tt*lt+_*j))-((sr*sr+br*br+Hr*Hr)*(jr*Ao-Qr*Co+Zr*To+(tt*Q-_*nt+dt*H))+(lr*lr+Zt*Zt+Qr*Qr)*(Zr*Oo+Hr*Co+jr*Ro+(dt*j+V*nt+tt*J)))+2*((ur*it+Rr*Nt+jr*tt)*(Qr*J+Zr*lt+Hr*Q)+(Nr*ft+Mr*Gt+Zr*dt)*(Hr*H-jr*lt+Qr*j)-((sr*xt+br*It+Hr*V)*(jr*Q-Qr*nt+Zr*H)+(lr*vt+Zt*Dt+Qr*_)*(Zr*j+Hr*nt+jr*J))),ln>=Tn||-ln>=Tn?ln:Do(r,a,s,d,h,m,x,O,P,R,C,B,L,F,Z)}function Yl(r,a,s,d,h,m,x,O,P,R,C,B,L,F,Z){const b=r-L,j=d-L,H=x-L,Q=R-L,J=a-F,lt=h-F,nt=O-F,xt=C-F,it=s-Z,vt=m-Z,ft=P-Z,It=B-Z,Nt=b*lt,Dt=j*J,Gt=Nt-Dt,V=j*nt,tt=H*lt,_=V-tt,dt=H*xt,K=Q*nt,et=dt-K,z=Q*J,ct=b*xt,yt=z-ct,Pt=b*nt,Ot=H*J,Lt=Pt-Ot,zt=j*xt,Ft=Q*lt,tr=zt-Ft,nr=b*b+J*J+it*it,or=j*j+lt*lt+vt*vt,sr=H*H+nt*nt+ft*ft,ur=Q*Q+xt*xt+It*It,lr=sr*(It*Gt+it*tr+vt*yt)-ur*(it*_-vt*Lt+ft*Gt)+(nr*(vt*et-ft*tr+It*_)-or*(ft*yt+It*Lt+it*et)),Nr=Math.abs(it),br=Math.abs(vt),Rr=Math.abs(ft),Zt=Math.abs(It),Mr=Math.abs(Nt)+Math.abs(Dt),Hr=Math.abs(V)+Math.abs(tt),jr=Math.abs(dt)+Math.abs(K),Qr=Math.abs(z)+Math.abs(ct),Zr=Math.abs(Pt)+Math.abs(Ot),Fe=Math.abs(zt)+Math.abs(Ft),ln=(jr*br+Fe*Rr+Hr*Zt)*nr+(Qr*Rr+Zr*Zt+jr*Nr)*or+(Mr*Zt+Fe*Nr+Qr*br)*sr+(Hr*Nr+Zr*br+Mr*Rr)*ur,Tn=Hn*ln;return lr>Tn||-lr>Tn?lr:-Fo(r,a,s,d,h,m,x,O,P,R,C,B,L,F,Z,ln)}function zl(r,a,s,d,h,m,x,O,P,R,C,B,L,F,Z){const b=r-L,j=d-L,H=x-L,Q=R-L,J=a-F,lt=h-F,nt=O-F,xt=C-F,it=s-Z,vt=m-Z,ft=P-Z,It=B-Z,Nt=b*lt-j*J,Dt=j*nt-H*lt,Gt=H*xt-Q*nt,V=Q*J-b*xt,tt=b*nt-H*J,_=j*xt-Q*lt,dt=it*Dt-vt*tt+ft*Nt,K=vt*Gt-ft*_+It*Dt,et=ft*V+It*tt+it*Gt,z=It*Nt+it*_+vt*V,ct=b*b+J*J+it*it,yt=j*j+lt*lt+vt*vt,Pt=H*H+nt*nt+ft*ft,Ot=Q*Q+xt*xt+It*It;return Pt*z-Ot*dt+(ct*K-yt*et)}const ma=Math.pow(2,-52),le=new Uint32Array(512);class fe{static from(a,s=Bo,d=jo){const h=a.length,m=new Float64Array(h*2);for(let x=0;x<h;x++){const O=a[x];m[2*x]=s(O),m[2*x+1]=d(O)}return new fe(m)}constructor(a){const s=a.length>>1;if(s>0&&typeof a[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=a;const d=Math.max(2*s-5,0);this._triangles=new Uint32Array(d*3),this._halfedges=new Int32Array(d*3),this._hashSize=Math.ceil(Math.sqrt(s)),this._hullPrev=new Uint32Array(s),this._hullNext=new Uint32Array(s),this._hullTri=new Uint32Array(s),this._hullHash=new Int32Array(this._hashSize),this._ids=new Uint32Array(s),this._dists=new Float64Array(s),this.update()}update(){const{coords:a,_hullPrev:s,_hullNext:d,_hullTri:h,_hullHash:m}=this,x=a.length>>1;let O=1/0,P=1/0,R=-1/0,C=-1/0;for(let ft=0;ft<x;ft++){const It=a[2*ft],Nt=a[2*ft+1];It<O&&(O=It),Nt<P&&(P=Nt),It>R&&(R=It),Nt>C&&(C=Nt),this._ids[ft]=ft}const B=(O+R)/2,L=(P+C)/2;let F,Z,b;for(let ft=0,It=1/0;ft<x;ft++){const Nt=$e(B,L,a[2*ft],a[2*ft+1]);Nt<It&&(F=ft,It=Nt)}const j=a[2*F],H=a[2*F+1];for(let ft=0,It=1/0;ft<x;ft++){if(ft===F)continue;const Nt=$e(j,H,a[2*ft],a[2*ft+1]);Nt<It&&Nt>0&&(Z=ft,It=Nt)}let Q=a[2*Z],J=a[2*Z+1],lt=1/0;for(let ft=0;ft<x;ft++){if(ft===F||ft===Z)continue;const It=$o(j,H,Q,J,a[2*ft],a[2*ft+1]);It<lt&&(b=ft,lt=It)}let nt=a[2*b],xt=a[2*b+1];if(lt===1/0){for(let Nt=0;Nt<x;Nt++)this._dists[Nt]=a[2*Nt]-a[0]||a[2*Nt+1]-a[1];Ln(this._ids,this._dists,0,x-1);const ft=new Uint32Array(x);let It=0;for(let Nt=0,Dt=-1/0;Nt<x;Nt++){const Gt=this._ids[Nt],V=this._dists[Gt];V>Dt&&(ft[It++]=Gt,Dt=V)}this.hull=ft.subarray(0,It),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(U(j,H,Q,J,nt,xt)<0){const ft=Z,It=Q,Nt=J;Z=b,Q=nt,J=xt,b=ft,nt=It,xt=Nt}const it=Uo(j,H,Q,J,nt,xt);this._cx=it.x,this._cy=it.y;for(let ft=0;ft<x;ft++)this._dists[ft]=$e(a[2*ft],a[2*ft+1],it.x,it.y);Ln(this._ids,this._dists,0,x-1),this._hullStart=F;let vt=3;d[F]=s[b]=Z,d[Z]=s[F]=b,d[b]=s[Z]=F,h[F]=0,h[Z]=1,h[b]=2,m.fill(-1),m[this._hashKey(j,H)]=F,m[this._hashKey(Q,J)]=Z,m[this._hashKey(nt,xt)]=b,this.trianglesLen=0,this._addTriangle(F,Z,b,-1,-1,-1);for(let ft=0,It,Nt;ft<this._ids.length;ft++){const Dt=this._ids[ft],Gt=a[2*Dt],V=a[2*Dt+1];if(ft>0&&Math.abs(Gt-It)<=ma&&Math.abs(V-Nt)<=ma||(It=Gt,Nt=V,Dt===F||Dt===Z||Dt===b))continue;let tt=0;for(let z=0,ct=this._hashKey(Gt,V);z<this._hashSize&&(tt=m[(ct+z)%this._hashSize],!(tt!==-1&&tt!==d[tt]));z++);tt=s[tt];let _=tt,dt;for(;dt=d[_],U(Gt,V,a[2*_],a[2*_+1],a[2*dt],a[2*dt+1])>=0;)if(_=dt,_===tt){_=-1;break}if(_===-1)continue;let K=this._addTriangle(_,Dt,d[_],-1,-1,h[_]);h[Dt]=this._legalize(K+2),h[_]=K,vt++;let et=d[_];for(;dt=d[et],U(Gt,V,a[2*et],a[2*et+1],a[2*dt],a[2*dt+1])<0;)K=this._addTriangle(et,Dt,dt,h[Dt],-1,h[et]),h[Dt]=this._legalize(K+2),d[et]=et,vt--,et=dt;if(_===tt)for(;dt=s[_],U(Gt,V,a[2*dt],a[2*dt+1],a[2*_],a[2*_+1])<0;)K=this._addTriangle(dt,Dt,_,-1,h[_],h[dt]),this._legalize(K+2),h[dt]=K,d[_]=_,vt--,_=dt;this._hullStart=s[Dt]=_,d[_]=s[et]=Dt,d[Dt]=et,m[this._hashKey(Gt,V)]=Dt,m[this._hashKey(a[2*_],a[2*_+1])]=_}this.hull=new Uint32Array(vt);for(let ft=0,It=this._hullStart;ft<vt;ft++)this.hull[ft]=It,It=d[It];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(a,s){return Math.floor(bo(a-this._cx,s-this._cy)*this._hashSize)%this._hashSize}_legalize(a){const{_triangles:s,_halfedges:d,coords:h}=this;let m=0,x=0;for(;;){const O=d[a],P=a-a%3;if(x=P+(a+2)%3,O===-1){if(m===0)break;a=le[--m];continue}const R=O-O%3,C=P+(a+1)%3,B=R+(O+2)%3,L=s[x],F=s[a],Z=s[C],b=s[B];if(Lo(h[2*L],h[2*L+1],h[2*F],h[2*F+1],h[2*Z],h[2*Z+1],h[2*b],h[2*b+1])){s[a]=b,s[O]=L;const H=d[B];if(H===-1){let J=this._hullStart;do{if(this._hullTri[J]===B){this._hullTri[J]=a;break}J=this._hullPrev[J]}while(J!==this._hullStart)}this._link(a,H),this._link(O,d[x]),this._link(x,B);const Q=R+(O+1)%3;m<le.length&&(le[m++]=Q)}else{if(m===0)break;a=le[--m]}}return x}_link(a,s){this._halfedges[a]=s,s!==-1&&(this._halfedges[s]=a)}_addTriangle(a,s,d,h,m,x){const O=this.trianglesLen;return this._triangles[O]=a,this._triangles[O+1]=s,this._triangles[O+2]=d,this._link(O,h),this._link(O+1,m),this._link(O+2,x),this.trianglesLen+=3,O}}function bo(r,a){const s=r/(Math.abs(r)+Math.abs(a));return(a>0?3-s:1+s)/4}function $e(r,a,s,d){const h=r-s,m=a-d;return h*h+m*m}function Lo(r,a,s,d,h,m,x,O){const P=r-x,R=a-O,C=s-x,B=d-O,L=h-x,F=m-O,Z=P*P+R*R,b=C*C+B*B,j=L*L+F*F;return P*(B*j-b*F)-R*(C*j-b*L)+Z*(C*F-B*L)<0}function $o(r,a,s,d,h,m){const x=s-r,O=d-a,P=h-r,R=m-a,C=x*x+O*O,B=P*P+R*R,L=.5/(x*R-O*P),F=(R*C-O*B)*L,Z=(x*B-P*C)*L;return F*F+Z*Z}function Uo(r,a,s,d,h,m){const x=s-r,O=d-a,P=h-r,R=m-a,C=x*x+O*O,B=P*P+R*R,L=.5/(x*R-O*P),F=r+(R*C-O*B)*L,Z=a+(x*B-P*C)*L;return{x:F,y:Z}}function Ln(r,a,s,d){if(d-s<=20)for(let h=s+1;h<=d;h++){const m=r[h],x=a[m];let O=h-1;for(;O>=s&&a[r[O]]>x;)r[O+1]=r[O--];r[O+1]=m}else{const h=s+d>>1;let m=s+1,x=d;zn(r,h,m),a[r[s]]>a[r[d]]&&zn(r,s,d),a[r[m]]>a[r[d]]&&zn(r,m,d),a[r[s]]>a[r[m]]&&zn(r,s,m);const O=r[m],P=a[O];for(;;){do m++;while(a[r[m]]<P);do x--;while(a[r[x]]>P);if(x<m)break;zn(r,m,x)}r[s+1]=r[x],r[x]=O,d-m+1>=x-s?(Ln(r,a,m,d),Ln(r,a,s,x-1)):(Ln(r,a,s,x-1),Ln(r,a,m,d))}}function zn(r,a,s){const d=r[a];r[a]=r[s],r[s]=d}function Bo(r){return r[0]}function jo(r){return r[1]}const xa=1e-6;class Pn{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(a,s){this._+=`M${this._x0=this._x1=+a},${this._y0=this._y1=+s}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(a,s){this._+=`L${this._x1=+a},${this._y1=+s}`}arc(a,s,d){a=+a,s=+s,d=+d;const h=a+d,m=s;if(d<0)throw new Error("negative radius");this._x1===null?this._+=`M${h},${m}`:(Math.abs(this._x1-h)>xa||Math.abs(this._y1-m)>xa)&&(this._+="L"+h+","+m),d&&(this._+=`A${d},${d},0,1,1,${a-d},${s}A${d},${d},0,1,1,${this._x1=h},${this._y1=m}`)}rect(a,s,d,h){this._+=`M${this._x0=this._x1=+a},${this._y0=this._y1=+s}h${+d}v${+h}h${-d}Z`}value(){return this._||null}}class Ue{constructor(){this._=[]}moveTo(a,s){this._.push([a,s])}closePath(){this._.push(this._[0].slice())}lineTo(a,s){this._.push([a,s])}value(){return this._.length?this._:null}}class wo{constructor(a,[s,d,h,m]=[0,0,960,500]){if(!((h=+h)>=(s=+s))||!((m=+m)>=(d=+d)))throw new Error("invalid bounds");this.delaunay=a,this._circumcenters=new Float64Array(a.points.length*2),this.vectors=new Float64Array(a.points.length*2),this.xmax=h,this.xmin=s,this.ymax=m,this.ymin=d,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:a,hull:s,triangles:d},vectors:h}=this;let m,x;const O=this.circumcenters=this._circumcenters.subarray(0,d.length/3*2);for(let b=0,j=0,H=d.length,Q,J;b<H;b+=3,j+=2){const lt=d[b]*2,nt=d[b+1]*2,xt=d[b+2]*2,it=a[lt],vt=a[lt+1],ft=a[nt],It=a[nt+1],Nt=a[xt],Dt=a[xt+1],Gt=ft-it,V=It-vt,tt=Nt-it,_=Dt-vt,dt=(Gt*_-V*tt)*2;if(Math.abs(dt)<1e-9){if(m===void 0){m=x=0;for(const et of s)m+=a[et*2],x+=a[et*2+1];m/=s.length,x/=s.length}const K=1e9*Math.sign((m-it)*_-(x-vt)*tt);Q=(it+Nt)/2-K*_,J=(vt+Dt)/2+K*tt}else{const K=1/dt,et=Gt*Gt+V*V,z=tt*tt+_*_;Q=it+(_*et-V*z)*K,J=vt+(Gt*z-tt*et)*K}O[j]=Q,O[j+1]=J}let P=s[s.length-1],R,C=P*4,B,L=a[2*P],F,Z=a[2*P+1];h.fill(0);for(let b=0;b<s.length;++b)P=s[b],R=C,B=L,F=Z,C=P*4,L=a[2*P],Z=a[2*P+1],h[R+2]=h[C]=F-Z,h[R+3]=h[C+1]=L-B}render(a){const s=a==null?a=new Pn:void 0,{delaunay:{halfedges:d,inedges:h,hull:m},circumcenters:x,vectors:O}=this;if(m.length<=1)return null;for(let C=0,B=d.length;C<B;++C){const L=d[C];if(L<C)continue;const F=Math.floor(C/3)*2,Z=Math.floor(L/3)*2,b=x[F],j=x[F+1],H=x[Z],Q=x[Z+1];this._renderSegment(b,j,H,Q,a)}let P,R=m[m.length-1];for(let C=0;C<m.length;++C){P=R,R=m[C];const B=Math.floor(h[R]/3)*2,L=x[B],F=x[B+1],Z=P*4,b=this._project(L,F,O[Z+2],O[Z+3]);b&&this._renderSegment(L,F,b[0],b[1],a)}return s&&s.value()}renderBounds(a){const s=a==null?a=new Pn:void 0;return a.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),s&&s.value()}renderCell(a,s){const d=s==null?s=new Pn:void 0,h=this._clip(a);if(h===null||!h.length)return;s.moveTo(h[0],h[1]);let m=h.length;for(;h[0]===h[m-2]&&h[1]===h[m-1]&&m>1;)m-=2;for(let x=2;x<m;x+=2)(h[x]!==h[x-2]||h[x+1]!==h[x-1])&&s.lineTo(h[x],h[x+1]);return s.closePath(),d&&d.value()}*cellPolygons(){const{delaunay:{points:a}}=this;for(let s=0,d=a.length/2;s<d;++s){const h=this.cellPolygon(s);h&&(h.index=s,yield h)}}cellPolygon(a){const s=new Ue;return this.renderCell(a,s),s.value()}_renderSegment(a,s,d,h,m){let x;const O=this._regioncode(a,s),P=this._regioncode(d,h);O===0&&P===0?(m.moveTo(a,s),m.lineTo(d,h)):(x=this._clipSegment(a,s,d,h,O,P))&&(m.moveTo(x[0],x[1]),m.lineTo(x[2],x[3]))}contains(a,s,d){return s=+s,s!==s||(d=+d,d!==d)?!1:this.delaunay._step(a,s,d)===a}*neighbors(a){const s=this._clip(a);if(s)for(const d of this.delaunay.neighbors(a)){const h=this._clip(d);if(h){t:for(let m=0,x=s.length;m<x;m+=2)for(let O=0,P=h.length;O<P;O+=2)if(s[m]===h[O]&&s[m+1]===h[O+1]&&s[(m+2)%x]===h[(O+P-2)%P]&&s[(m+3)%x]===h[(O+P-1)%P]){yield d;break t}}}}_cell(a){const{circumcenters:s,delaunay:{inedges:d,halfedges:h,triangles:m}}=this,x=d[a];if(x===-1)return null;const O=[];let P=x;do{const R=Math.floor(P/3);if(O.push(s[R*2],s[R*2+1]),P=P%3===2?P-2:P+1,m[P]!==a)break;P=h[P]}while(P!==x&&P!==-1);return O}_clip(a){if(a===0&&this.delaunay.hull.length===1)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const s=this._cell(a);if(s===null)return null;const{vectors:d}=this,h=a*4;return this._simplify(d[h]||d[h+1]?this._clipInfinite(a,s,d[h],d[h+1],d[h+2],d[h+3]):this._clipFinite(a,s))}_clipFinite(a,s){const d=s.length;let h=null,m,x,O=s[d-2],P=s[d-1],R,C=this._regioncode(O,P),B,L=0;for(let F=0;F<d;F+=2)if(m=O,x=P,O=s[F],P=s[F+1],R=C,C=this._regioncode(O,P),R===0&&C===0)B=L,L=0,h?h.push(O,P):h=[O,P];else{let Z,b,j,H,Q;if(R===0){if((Z=this._clipSegment(m,x,O,P,R,C))===null)continue;[b,j,H,Q]=Z}else{if((Z=this._clipSegment(O,P,m,x,C,R))===null)continue;[H,Q,b,j]=Z,B=L,L=this._edgecode(b,j),B&&L&&this._edge(a,B,L,h,h.length),h?h.push(b,j):h=[b,j]}B=L,L=this._edgecode(H,Q),B&&L&&this._edge(a,B,L,h,h.length),h?h.push(H,Q):h=[H,Q]}if(h)B=L,L=this._edgecode(h[0],h[1]),B&&L&&this._edge(a,B,L,h,h.length);else if(this.contains(a,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return h}_clipSegment(a,s,d,h,m,x){const O=m<x;for(O&&([a,s,d,h,m,x]=[d,h,a,s,x,m]);;){if(m===0&&x===0)return O?[d,h,a,s]:[a,s,d,h];if(m&x)return null;let P,R,C=m||x;C&8?(P=a+(d-a)*(this.ymax-s)/(h-s),R=this.ymax):C&4?(P=a+(d-a)*(this.ymin-s)/(h-s),R=this.ymin):C&2?(R=s+(h-s)*(this.xmax-a)/(d-a),P=this.xmax):(R=s+(h-s)*(this.xmin-a)/(d-a),P=this.xmin),m?(a=P,s=R,m=this._regioncode(a,s)):(d=P,h=R,x=this._regioncode(d,h))}}_clipInfinite(a,s,d,h,m,x){let O=Array.from(s),P;if((P=this._project(O[0],O[1],d,h))&&O.unshift(P[0],P[1]),(P=this._project(O[O.length-2],O[O.length-1],m,x))&&O.push(P[0],P[1]),O=this._clipFinite(a,O))for(let R=0,C=O.length,B,L=this._edgecode(O[C-2],O[C-1]);R<C;R+=2)B=L,L=this._edgecode(O[R],O[R+1]),B&&L&&(R=this._edge(a,B,L,O,R),C=O.length);else this.contains(a,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(O=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return O}_edge(a,s,d,h,m){for(;s!==d;){let x,O;switch(s){case 5:s=4;continue;case 4:s=6,x=this.xmax,O=this.ymin;break;case 6:s=2;continue;case 2:s=10,x=this.xmax,O=this.ymax;break;case 10:s=8;continue;case 8:s=9,x=this.xmin,O=this.ymax;break;case 9:s=1;continue;case 1:s=5,x=this.xmin,O=this.ymin;break}(h[m]!==x||h[m+1]!==O)&&this.contains(a,x,O)&&(h.splice(m,0,x,O),m+=2)}return m}_project(a,s,d,h){let m=1/0,x,O,P;if(h<0){if(s<=this.ymin)return null;(x=(this.ymin-s)/h)<m&&(P=this.ymin,O=a+(m=x)*d)}else if(h>0){if(s>=this.ymax)return null;(x=(this.ymax-s)/h)<m&&(P=this.ymax,O=a+(m=x)*d)}if(d>0){if(a>=this.xmax)return null;(x=(this.xmax-a)/d)<m&&(O=this.xmax,P=s+(m=x)*h)}else if(d<0){if(a<=this.xmin)return null;(x=(this.xmin-a)/d)<m&&(O=this.xmin,P=s+(m=x)*h)}return[O,P]}_edgecode(a,s){return(a===this.xmin?1:a===this.xmax?2:0)|(s===this.ymin?4:s===this.ymax?8:0)}_regioncode(a,s){return(a<this.xmin?1:a>this.xmax?2:0)|(s<this.ymin?4:s>this.ymax?8:0)}_simplify(a){if(a&&a.length>4){for(let s=0;s<a.length;s+=2){const d=(s+2)%a.length,h=(s+4)%a.length;(a[s]===a[d]&&a[d]===a[h]||a[s+1]===a[d+1]&&a[d+1]===a[h+1])&&(a.splice(d,2),s-=2)}a.length||(a=null)}return a}}const Go=2*Math.PI,$n=Math.pow;function Vo(r){return r[0]}function Ho(r){return r[1]}function Wo(r){const{triangles:a,coords:s}=r;for(let d=0;d<a.length;d+=3){const h=2*a[d],m=2*a[d+1],x=2*a[d+2];if((s[x]-s[h])*(s[m+1]-s[h+1])-(s[m]-s[h])*(s[x+1]-s[h+1])>1e-10)return!1}return!0}function Ko(r,a,s){return[r+Math.sin(r+a)*s,a+Math.cos(r-a)*s]}class Be{static from(a,s=Vo,d=Ho,h){return new Be("length"in a?Yo(a,s,d,h):Float64Array.from(zo(a,s,d,h)))}constructor(a){this._delaunator=new fe(a),this.inedges=new Int32Array(a.length/2),this._hullIndex=new Int32Array(a.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const a=this._delaunator,s=this.points;if(a.hull&&a.hull.length>2&&Wo(a)){this.collinear=Int32Array.from({length:s.length/2},(L,F)=>F).sort((L,F)=>s[2*L]-s[2*F]||s[2*L+1]-s[2*F+1]);const P=this.collinear[0],R=this.collinear[this.collinear.length-1],C=[s[2*P],s[2*P+1],s[2*R],s[2*R+1]],B=1e-8*Math.hypot(C[3]-C[1],C[2]-C[0]);for(let L=0,F=s.length/2;L<F;++L){const Z=Ko(s[2*L],s[2*L+1],B);s[2*L]=Z[0],s[2*L+1]=Z[1]}this._delaunator=new fe(s)}else delete this.collinear;const d=this.halfedges=this._delaunator.halfedges,h=this.hull=this._delaunator.hull,m=this.triangles=this._delaunator.triangles,x=this.inedges.fill(-1),O=this._hullIndex.fill(-1);for(let P=0,R=d.length;P<R;++P){const C=m[P%3===2?P-2:P+1];(d[P]===-1||x[C]===-1)&&(x[C]=P)}for(let P=0,R=h.length;P<R;++P)O[h[P]]=P;h.length<=2&&h.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=h[0],x[h[0]]=1,h.length===2&&(x[h[1]]=0,this.triangles[1]=h[1],this.triangles[2]=h[1]))}voronoi(a){return new wo(this,a)}*neighbors(a){const{inedges:s,hull:d,_hullIndex:h,halfedges:m,triangles:x,collinear:O}=this;if(O){const B=O.indexOf(a);B>0&&(yield O[B-1]),B<O.length-1&&(yield O[B+1]);return}const P=s[a];if(P===-1)return;let R=P,C=-1;do{if(yield C=x[R],R=R%3===2?R-2:R+1,x[R]!==a)return;if(R=m[R],R===-1){const B=d[(h[a]+1)%d.length];B!==C&&(yield B);return}}while(R!==P)}find(a,s,d=0){if(a=+a,a!==a||(s=+s,s!==s))return-1;const h=d;let m;for(;(m=this._step(d,a,s))>=0&&m!==d&&m!==h;)d=m;return m}_step(a,s,d){const{inedges:h,hull:m,_hullIndex:x,halfedges:O,triangles:P,points:R}=this;if(h[a]===-1||!R.length)return(a+1)%(R.length>>1);let C=a,B=$n(s-R[a*2],2)+$n(d-R[a*2+1],2);const L=h[a];let F=L;do{let Z=P[F];const b=$n(s-R[Z*2],2)+$n(d-R[Z*2+1],2);if(b<B&&(B=b,C=Z),F=F%3===2?F-2:F+1,P[F]!==a)break;if(F=O[F],F===-1){if(F=m[(x[a]+1)%m.length],F!==Z&&$n(s-R[F*2],2)+$n(d-R[F*2+1],2)<B)return F;break}}while(F!==L);return C}render(a){const s=a==null?a=new Pn:void 0,{points:d,halfedges:h,triangles:m}=this;for(let x=0,O=h.length;x<O;++x){const P=h[x];if(P<x)continue;const R=m[x]*2,C=m[P]*2;a.moveTo(d[R],d[R+1]),a.lineTo(d[C],d[C+1])}return this.renderHull(a),s&&s.value()}renderPoints(a,s){s===void 0&&(!a||typeof a.moveTo!="function")&&(s=a,a=null),s=s==null?2:+s;const d=a==null?a=new Pn:void 0,{points:h}=this;for(let m=0,x=h.length;m<x;m+=2){const O=h[m],P=h[m+1];a.moveTo(O+s,P),a.arc(O,P,s,0,Go)}return d&&d.value()}renderHull(a){const s=a==null?a=new Pn:void 0,{hull:d,points:h}=this,m=d[0]*2,x=d.length;a.moveTo(h[m],h[m+1]);for(let O=1;O<x;++O){const P=2*d[O];a.lineTo(h[P],h[P+1])}return a.closePath(),s&&s.value()}hullPolygon(){const a=new Ue;return this.renderHull(a),a.value()}renderTriangle(a,s){const d=s==null?s=new Pn:void 0,{points:h,triangles:m}=this,x=m[a*=3]*2,O=m[a+1]*2,P=m[a+2]*2;return s.moveTo(h[x],h[x+1]),s.lineTo(h[O],h[O+1]),s.lineTo(h[P],h[P+1]),s.closePath(),d&&d.value()}*trianglePolygons(){const{triangles:a}=this;for(let s=0,d=a.length/3;s<d;++s)yield this.trianglePolygon(s)}trianglePolygon(a){const s=new Ue;return this.renderTriangle(a,s),s.value()}}function Yo(r,a,s,d){const h=r.length,m=new Float64Array(h*2);for(let x=0;x<h;++x){const O=r[x];m[x*2]=a.call(d,O,x,r),m[x*2+1]=s.call(d,O,x,r)}return m}function*zo(r,a,s,d){let h=0;for(const m of r)yield a.call(d,m,h,r),yield s.call(d,m,h,r),++h}function Xo(r){for(var a=-1,s=r.length,d=0,h=0,m,x=r[s-1],O,P=0;++a<s;)m=x,x=r[a],P+=O=m[0]*x[1]-x[0]*m[1],d+=(m[0]+x[0])*O,h+=(m[1]+x[1])*O;return P*=3,[d/P,h/P]}function Jo(r){for(var a=-1,s=r.length,d,h=r[s-1],m=0;++a<s;)d=h,h=r[a],m+=d[1]*h[0]-d[0]*h[1];return m/2}function Qo(){}function je(r){return r==null?Qo:function(){return this.querySelector(r)}}function Zo(r){typeof r!="function"&&(r=je(r));for(var a=this._groups,s=a.length,d=new Array(s),h=0;h<s;++h)for(var m=a[h],x=m.length,O=d[h]=new Array(x),P,R,C=0;C<x;++C)(P=m[C])&&(R=r.call(P,P.__data__,C,m))&&("__data__"in P&&(R.__data__=P.__data__),O[C]=R);return new cn(d,this._parents)}function ko(r){return r==null?[]:Array.isArray(r)?r:Array.from(r)}function qo(){return[]}function Sa(r){return r==null?qo:function(){return this.querySelectorAll(r)}}function _o(r){return function(){return ko(r.apply(this,arguments))}}function ts(r){typeof r=="function"?r=_o(r):r=Sa(r);for(var a=this._groups,s=a.length,d=[],h=[],m=0;m<s;++m)for(var x=a[m],O=x.length,P,R=0;R<O;++R)(P=x[R])&&(d.push(r.call(P,P.__data__,R,x)),h.push(P));return new cn(d,h)}function Ea(r){return function(){return this.matches(r)}}function Ia(r){return function(a){return a.matches(r)}}var rs=Array.prototype.find;function ns(r){return function(){return rs.call(this.children,r)}}function es(){return this.firstElementChild}function as(r){return this.select(r==null?es:ns(typeof r=="function"?r:Ia(r)))}var os=Array.prototype.filter;function ss(){return Array.from(this.children)}function is(r){return function(){return os.call(this.children,r)}}function us(r){return this.selectAll(r==null?ss:is(typeof r=="function"?r:Ia(r)))}function ls(r){typeof r!="function"&&(r=Ea(r));for(var a=this._groups,s=a.length,d=new Array(s),h=0;h<s;++h)for(var m=a[h],x=m.length,O=d[h]=[],P,R=0;R<x;++R)(P=m[R])&&r.call(P,P.__data__,R,m)&&O.push(P);return new cn(d,this._parents)}function Oa(r){return new Array(r.length)}function fs(){return new cn(this._enter||this._groups.map(Oa),this._parents)}function ce(r,a){this.ownerDocument=r.ownerDocument,this.namespaceURI=r.namespaceURI,this._next=null,this._parent=r,this.__data__=a}ce.prototype={constructor:ce,appendChild:function(r){return this._parent.insertBefore(r,this._next)},insertBefore:function(r,a){return this._parent.insertBefore(r,a)},querySelector:function(r){return this._parent.querySelector(r)},querySelectorAll:function(r){return this._parent.querySelectorAll(r)}};function cs(r){return function(){return r}}function vs(r,a,s,d,h,m){for(var x=0,O,P=a.length,R=m.length;x<R;++x)(O=a[x])?(O.__data__=m[x],d[x]=O):s[x]=new ce(r,m[x]);for(;x<P;++x)(O=a[x])&&(h[x]=O)}function ds(r,a,s,d,h,m,x){var O,P,R=new Map,C=a.length,B=m.length,L=new Array(C),F;for(O=0;O<C;++O)(P=a[O])&&(L[O]=F=x.call(P,P.__data__,O,a)+"",R.has(F)?h[O]=P:R.set(F,P));for(O=0;O<B;++O)F=x.call(r,m[O],O,m)+"",(P=R.get(F))?(d[O]=P,P.__data__=m[O],R.delete(F)):s[O]=new ce(r,m[O]);for(O=0;O<C;++O)(P=a[O])&&R.get(L[O])===P&&(h[O]=P)}function hs(r){return r.__data__}function gs(r,a){if(!arguments.length)return Array.from(this,hs);var s=a?ds:vs,d=this._parents,h=this._groups;typeof r!="function"&&(r=cs(r));for(var m=h.length,x=new Array(m),O=new Array(m),P=new Array(m),R=0;R<m;++R){var C=d[R],B=h[R],L=B.length,F=ps(r.call(C,C&&C.__data__,R,d)),Z=F.length,b=O[R]=new Array(Z),j=x[R]=new Array(Z),H=P[R]=new Array(L);s(C,B,b,j,H,F,a);for(var Q=0,J=0,lt,nt;Q<Z;++Q)if(lt=b[Q]){for(Q>=J&&(J=Q+1);!(nt=j[J])&&++J<Z;);lt._next=nt||null}}return x=new cn(x,d),x._enter=O,x._exit=P,x}function ps(r){return typeof r=="object"&&"length"in r?r:Array.from(r)}function ys(){return new cn(this._exit||this._groups.map(Oa),this._parents)}function ms(r,a,s){var d=this.enter(),h=this,m=this.exit();return typeof r=="function"?(d=r(d),d&&(d=d.selection())):d=d.append(r+""),a!=null&&(h=a(h),h&&(h=h.selection())),s==null?m.remove():s(m),d&&h?d.merge(h).order():h}function xs(r){for(var a=r.selection?r.selection():r,s=this._groups,d=a._groups,h=s.length,m=d.length,x=Math.min(h,m),O=new Array(h),P=0;P<x;++P)for(var R=s[P],C=d[P],B=R.length,L=O[P]=new Array(B),F,Z=0;Z<B;++Z)(F=R[Z]||C[Z])&&(L[Z]=F);for(;P<h;++P)O[P]=s[P];return new cn(O,this._parents)}function Ss(){for(var r=this._groups,a=-1,s=r.length;++a<s;)for(var d=r[a],h=d.length-1,m=d[h],x;--h>=0;)(x=d[h])&&(m&&x.compareDocumentPosition(m)^4&&m.parentNode.insertBefore(x,m),m=x);return this}function Es(r){r||(r=Is);function a(B,L){return B&&L?r(B.__data__,L.__data__):!B-!L}for(var s=this._groups,d=s.length,h=new Array(d),m=0;m<d;++m){for(var x=s[m],O=x.length,P=h[m]=new Array(O),R,C=0;C<O;++C)(R=x[C])&&(P[C]=R);P.sort(a)}return new cn(h,this._parents).order()}function Is(r,a){return r<a?-1:r>a?1:r>=a?0:NaN}function Os(){var r=arguments[0];return arguments[0]=this,r.apply(null,arguments),this}function Ts(){return Array.from(this)}function As(){for(var r=this._groups,a=0,s=r.length;a<s;++a)for(var d=r[a],h=0,m=d.length;h<m;++h){var x=d[h];if(x)return x}return null}function Rs(){let r=0;for(const a of this)++r;return r}function Ps(){return!this.node()}function Cs(r){for(var a=this._groups,s=0,d=a.length;s<d;++s)for(var h=a[s],m=0,x=h.length,O;m<x;++m)(O=h[m])&&r.call(O,O.__data__,m,h);return this}var we="http://www.w3.org/1999/xhtml",Ta={svg:"http://www.w3.org/2000/svg",xhtml:we,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ve(r){var a=r+="",s=a.indexOf(":");return s>=0&&(a=r.slice(0,s))!=="xmlns"&&(r=r.slice(s+1)),Ta.hasOwnProperty(a)?{space:Ta[a],local:r}:r}function Ms(r){return function(){this.removeAttribute(r)}}function Ns(r){return function(){this.removeAttributeNS(r.space,r.local)}}function Ds(r,a){return function(){this.setAttribute(r,a)}}function Fs(r,a){return function(){this.setAttributeNS(r.space,r.local,a)}}function bs(r,a){return function(){var s=a.apply(this,arguments);s==null?this.removeAttribute(r):this.setAttribute(r,s)}}function Ls(r,a){return function(){var s=a.apply(this,arguments);s==null?this.removeAttributeNS(r.space,r.local):this.setAttributeNS(r.space,r.local,s)}}function $s(r,a){var s=ve(r);if(arguments.length<2){var d=this.node();return s.local?d.getAttributeNS(s.space,s.local):d.getAttribute(s)}return this.each((a==null?s.local?Ns:Ms:typeof a=="function"?s.local?Ls:bs:s.local?Fs:Ds)(s,a))}function Aa(r){return r.ownerDocument&&r.ownerDocument.defaultView||r.document&&r||r.defaultView}function Us(r){return function(){this.style.removeProperty(r)}}function Bs(r,a,s){return function(){this.style.setProperty(r,a,s)}}function js(r,a,s){return function(){var d=a.apply(this,arguments);d==null?this.style.removeProperty(r):this.style.setProperty(r,d,s)}}function ws(r,a,s){return arguments.length>1?this.each((a==null?Us:typeof a=="function"?js:Bs)(r,a,s==null?"":s)):Un(this.node(),r)}function Un(r,a){return r.style.getPropertyValue(a)||Aa(r).getComputedStyle(r,null).getPropertyValue(a)}function Gs(r){return function(){delete this[r]}}function Vs(r,a){return function(){this[r]=a}}function Hs(r,a){return function(){var s=a.apply(this,arguments);s==null?delete this[r]:this[r]=s}}function Ws(r,a){return arguments.length>1?this.each((a==null?Gs:typeof a=="function"?Hs:Vs)(r,a)):this.node()[r]}function Ra(r){return r.trim().split(/^|\s+/)}function Ge(r){return r.classList||new Pa(r)}function Pa(r){this._node=r,this._names=Ra(r.getAttribute("class")||"")}Pa.prototype={add:function(r){var a=this._names.indexOf(r);a<0&&(this._names.push(r),this._node.setAttribute("class",this._names.join(" ")))},remove:function(r){var a=this._names.indexOf(r);a>=0&&(this._names.splice(a,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(r){return this._names.indexOf(r)>=0}};function Ca(r,a){for(var s=Ge(r),d=-1,h=a.length;++d<h;)s.add(a[d])}function Ma(r,a){for(var s=Ge(r),d=-1,h=a.length;++d<h;)s.remove(a[d])}function Ks(r){return function(){Ca(this,r)}}function Ys(r){return function(){Ma(this,r)}}function zs(r,a){return function(){(a.apply(this,arguments)?Ca:Ma)(this,r)}}function Xs(r,a){var s=Ra(r+"");if(arguments.length<2){for(var d=Ge(this.node()),h=-1,m=s.length;++h<m;)if(!d.contains(s[h]))return!1;return!0}return this.each((typeof a=="function"?zs:a?Ks:Ys)(s,a))}function Js(){this.textContent=""}function Qs(r){return function(){this.textContent=r}}function Zs(r){return function(){var a=r.apply(this,arguments);this.textContent=a==null?"":a}}function ks(r){return arguments.length?this.each(r==null?Js:(typeof r=="function"?Zs:Qs)(r)):this.node().textContent}function qs(){this.innerHTML=""}function _s(r){return function(){this.innerHTML=r}}function ti(r){return function(){var a=r.apply(this,arguments);this.innerHTML=a==null?"":a}}function ri(r){return arguments.length?this.each(r==null?qs:(typeof r=="function"?ti:_s)(r)):this.node().innerHTML}function ni(){this.nextSibling&&this.parentNode.appendChild(this)}function ei(){return this.each(ni)}function ai(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function oi(){return this.each(ai)}function si(r){return function(){var a=this.ownerDocument,s=this.namespaceURI;return s===we&&a.documentElement.namespaceURI===we?a.createElement(r):a.createElementNS(s,r)}}function ii(r){return function(){return this.ownerDocument.createElementNS(r.space,r.local)}}function Na(r){var a=ve(r);return(a.local?ii:si)(a)}function ui(r){var a=typeof r=="function"?r:Na(r);return this.select(function(){return this.appendChild(a.apply(this,arguments))})}function li(){return null}function fi(r,a){var s=typeof r=="function"?r:Na(r),d=a==null?li:typeof a=="function"?a:je(a);return this.select(function(){return this.insertBefore(s.apply(this,arguments),d.apply(this,arguments)||null)})}function ci(){var r=this.parentNode;r&&r.removeChild(this)}function vi(){return this.each(ci)}function di(){var r=this.cloneNode(!1),a=this.parentNode;return a?a.insertBefore(r,this.nextSibling):r}function hi(){var r=this.cloneNode(!0),a=this.parentNode;return a?a.insertBefore(r,this.nextSibling):r}function gi(r){return this.select(r?hi:di)}function pi(r){return arguments.length?this.property("__data__",r):this.node().__data__}function yi(r){return function(a){r.call(this,a,this.__data__)}}function mi(r){return r.trim().split(/^|\s+/).map(function(a){var s="",d=a.indexOf(".");return d>=0&&(s=a.slice(d+1),a=a.slice(0,d)),{type:a,name:s}})}function xi(r){return function(){var a=this.__on;if(a){for(var s=0,d=-1,h=a.length,m;s<h;++s)m=a[s],(!r.type||m.type===r.type)&&m.name===r.name?this.removeEventListener(m.type,m.listener,m.options):a[++d]=m;++d?a.length=d:delete this.__on}}}function Si(r,a,s){return function(){var d=this.__on,h,m=yi(a);if(d){for(var x=0,O=d.length;x<O;++x)if((h=d[x]).type===r.type&&h.name===r.name){this.removeEventListener(h.type,h.listener,h.options),this.addEventListener(h.type,h.listener=m,h.options=s),h.value=a;return}}this.addEventListener(r.type,m,s),h={type:r.type,name:r.name,value:a,listener:m,options:s},d?d.push(h):this.__on=[h]}}function Ei(r,a,s){var d=mi(r+""),h,m=d.length,x;if(arguments.length<2){var O=this.node().__on;if(O){for(var P=0,R=O.length,C;P<R;++P)for(h=0,C=O[P];h<m;++h)if((x=d[h]).type===C.type&&x.name===C.name)return C.value}return}for(O=a?Si:xi,h=0;h<m;++h)this.each(O(d[h],a,s));return this}function Da(r,a,s){var d=Aa(r),h=d.CustomEvent;typeof h=="function"?h=new h(a,s):(h=d.document.createEvent("Event"),s?(h.initEvent(a,s.bubbles,s.cancelable),h.detail=s.detail):h.initEvent(a,!1,!1)),r.dispatchEvent(h)}function Ii(r,a){return function(){return Da(this,r,a)}}function Oi(r,a){return function(){return Da(this,r,a.apply(this,arguments))}}function Ti(r,a){return this.each((typeof a=="function"?Oi:Ii)(r,a))}function*Ai(){for(var r=this._groups,a=0,s=r.length;a<s;++a)for(var d=r[a],h=0,m=d.length,x;h<m;++h)(x=d[h])&&(yield x)}var Ri=[null];function cn(r,a){this._groups=r,this._parents=a}function Fa(){return new cn([[document.documentElement]],Ri)}function Pi(){return this}cn.prototype=Fa.prototype={constructor:cn,select:Zo,selectAll:ts,selectChild:as,selectChildren:us,filter:ls,data:gs,enter:fs,exit:ys,join:ms,merge:xs,selection:Pi,order:Ss,sort:Es,call:Os,nodes:Ts,node:As,size:Rs,empty:Ps,each:Cs,attr:$s,style:ws,property:Ws,classed:Xs,text:ks,html:ri,raise:ei,lower:oi,append:ui,insert:fi,remove:vi,clone:gi,datum:pi,on:Ei,dispatch:Ti,[Symbol.iterator]:Ai};var Xn=Fa,Ci={value:()=>{}};function ba(){for(var r=0,a=arguments.length,s={},d;r<a;++r){if(!(d=arguments[r]+"")||d in s||/[\s.]/.test(d))throw new Error("illegal type: "+d);s[d]=[]}return new de(s)}function de(r){this._=r}function Mi(r,a){return r.trim().split(/^|\s+/).map(function(s){var d="",h=s.indexOf(".");if(h>=0&&(d=s.slice(h+1),s=s.slice(0,h)),s&&!a.hasOwnProperty(s))throw new Error("unknown type: "+s);return{type:s,name:d}})}de.prototype=ba.prototype={constructor:de,on:function(r,a){var s=this._,d=Mi(r+"",s),h,m=-1,x=d.length;if(arguments.length<2){for(;++m<x;)if((h=(r=d[m]).type)&&(h=Ni(s[h],r.name)))return h;return}if(a!=null&&typeof a!="function")throw new Error("invalid callback: "+a);for(;++m<x;)if(h=(r=d[m]).type)s[h]=La(s[h],r.name,a);else if(a==null)for(h in s)s[h]=La(s[h],r.name,null);return this},copy:function(){var r={},a=this._;for(var s in a)r[s]=a[s].slice();return new de(r)},call:function(r,a){if((h=arguments.length-2)>0)for(var s=new Array(h),d=0,h,m;d<h;++d)s[d]=arguments[d+2];if(!this._.hasOwnProperty(r))throw new Error("unknown type: "+r);for(m=this._[r],d=0,h=m.length;d<h;++d)m[d].value.apply(a,s)},apply:function(r,a,s){if(!this._.hasOwnProperty(r))throw new Error("unknown type: "+r);for(var d=this._[r],h=0,m=d.length;h<m;++h)d[h].value.apply(a,s)}};function Ni(r,a){for(var s=0,d=r.length,h;s<d;++s)if((h=r[s]).name===a)return h.value}function La(r,a,s){for(var d=0,h=r.length;d<h;++d)if(r[d].name===a){r[d]=Ci,r=r.slice(0,d).concat(r.slice(d+1));break}return s!=null&&r.push({name:a,value:s}),r}var Di=ba,Bn=0,Jn=0,Qn=0,$a=1e3,he,Zn,ge=0,Cn=0,pe=0,kn=typeof performance=="object"&&performance.now?performance:Date,Ua=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(r){setTimeout(r,17)};function Ve(){return Cn||(Ua(Fi),Cn=kn.now()+pe)}function Fi(){Cn=0}function ye(){this._call=this._time=this._next=null}ye.prototype=Ba.prototype={constructor:ye,restart:function(r,a,s){if(typeof r!="function")throw new TypeError("callback is not a function");s=(s==null?Ve():+s)+(a==null?0:+a),!this._next&&Zn!==this&&(Zn?Zn._next=this:he=this,Zn=this),this._call=r,this._time=s,He()},stop:function(){this._call&&(this._call=null,this._time=1/0,He())}};function Ba(r,a,s){var d=new ye;return d.restart(r,a,s),d}function bi(){Ve(),++Bn;for(var r=he,a;r;)(a=Cn-r._time)>=0&&r._call.call(void 0,a),r=r._next;--Bn}function ja(){Cn=(ge=kn.now())+pe,Bn=Jn=0;try{bi()}finally{Bn=0,$i(),Cn=0}}function Li(){var r=kn.now(),a=r-ge;a>$a&&(pe-=a,ge=r)}function $i(){for(var r,a=he,s,d=1/0;a;)a._call?(d>a._time&&(d=a._time),r=a,a=a._next):(s=a._next,a._next=null,a=r?r._next=s:he=s);Zn=r,He(d)}function He(r){if(!Bn){Jn&&(Jn=clearTimeout(Jn));var a=r-Cn;a>24?(r<1/0&&(Jn=setTimeout(ja,r-kn.now()-pe)),Qn&&(Qn=clearInterval(Qn))):(Qn||(ge=kn.now(),Qn=setInterval(Li,$a)),Bn=1,Ua(ja))}}function wa(r,a,s){var d=new ye;return a=a==null?0:+a,d.restart(h=>{d.stop(),r(h+a)},a,s),d}var Ui=Di("start","end","cancel","interrupt"),Bi=[],Ga=0,Va=1,We=2,me=3,Ha=4,Ke=5,xe=6;function Se(r,a,s,d,h,m){var x=r.__transition;if(!x)r.__transition={};else if(s in x)return;ji(r,s,{name:a,index:d,group:h,on:Ui,tween:Bi,time:m.time,delay:m.delay,duration:m.duration,ease:m.ease,timer:null,state:Ga})}function Ye(r,a){var s=vn(r,a);if(s.state>Ga)throw new Error("too late; already scheduled");return s}function gn(r,a){var s=vn(r,a);if(s.state>me)throw new Error("too late; already running");return s}function vn(r,a){var s=r.__transition;if(!s||!(s=s[a]))throw new Error("transition not found");return s}function ji(r,a,s){var d=r.__transition,h;d[a]=s,s.timer=Ba(m,0,s.time);function m(R){s.state=Va,s.timer.restart(x,s.delay,s.time),s.delay<=R&&x(R-s.delay)}function x(R){var C,B,L,F;if(s.state!==Va)return P();for(C in d)if(F=d[C],F.name===s.name){if(F.state===me)return wa(x);F.state===Ha?(F.state=xe,F.timer.stop(),F.on.call("interrupt",r,r.__data__,F.index,F.group),delete d[C]):+C<a&&(F.state=xe,F.timer.stop(),F.on.call("cancel",r,r.__data__,F.index,F.group),delete d[C])}if(wa(function(){s.state===me&&(s.state=Ha,s.timer.restart(O,s.delay,s.time),O(R))}),s.state=We,s.on.call("start",r,r.__data__,s.index,s.group),s.state===We){for(s.state=me,h=new Array(L=s.tween.length),C=0,B=-1;C<L;++C)(F=s.tween[C].value.call(r,r.__data__,s.index,s.group))&&(h[++B]=F);h.length=B+1}}function O(R){for(var C=R<s.duration?s.ease.call(null,R/s.duration):(s.timer.restart(P),s.state=Ke,1),B=-1,L=h.length;++B<L;)h[B].call(r,C);s.state===Ke&&(s.on.call("end",r,r.__data__,s.index,s.group),P())}function P(){s.state=xe,s.timer.stop(),delete d[a];for(var R in d)return;delete r.__transition}}function wi(r,a){var s=r.__transition,d,h,m=!0,x;if(s){a=a==null?null:a+"";for(x in s){if((d=s[x]).name!==a){m=!1;continue}h=d.state>We&&d.state<Ke,d.state=xe,d.timer.stop(),d.on.call(h?"interrupt":"cancel",r,r.__data__,d.index,d.group),delete s[x]}m&&delete r.__transition}}function Gi(r){return this.each(function(){wi(this,r)})}function On(r,a){return r=+r,a=+a,function(s){return r*(1-s)+a*s}}var Wa=180/Math.PI,ze={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ka(r,a,s,d,h,m){var x,O,P;return(x=Math.sqrt(r*r+a*a))&&(r/=x,a/=x),(P=r*s+a*d)&&(s-=r*P,d-=a*P),(O=Math.sqrt(s*s+d*d))&&(s/=O,d/=O,P/=O),r*d<a*s&&(r=-r,a=-a,P=-P,x=-x),{translateX:h,translateY:m,rotate:Math.atan2(a,r)*Wa,skewX:Math.atan(P)*Wa,scaleX:x,scaleY:O}}var Ee;function Vi(r){const a=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(r+"");return a.isIdentity?ze:Ka(a.a,a.b,a.c,a.d,a.e,a.f)}function Hi(r){return r==null||(Ee||(Ee=document.createElementNS("http://www.w3.org/2000/svg","g")),Ee.setAttribute("transform",r),!(r=Ee.transform.baseVal.consolidate()))?ze:(r=r.matrix,Ka(r.a,r.b,r.c,r.d,r.e,r.f))}function Ya(r,a,s,d){function h(R){return R.length?R.pop()+" ":""}function m(R,C,B,L,F,Z){if(R!==B||C!==L){var b=F.push("translate(",null,a,null,s);Z.push({i:b-4,x:On(R,B)},{i:b-2,x:On(C,L)})}else(B||L)&&F.push("translate("+B+a+L+s)}function x(R,C,B,L){R!==C?(R-C>180?C+=360:C-R>180&&(R+=360),L.push({i:B.push(h(B)+"rotate(",null,d)-2,x:On(R,C)})):C&&B.push(h(B)+"rotate("+C+d)}function O(R,C,B,L){R!==C?L.push({i:B.push(h(B)+"skewX(",null,d)-2,x:On(R,C)}):C&&B.push(h(B)+"skewX("+C+d)}function P(R,C,B,L,F,Z){if(R!==B||C!==L){var b=F.push(h(F)+"scale(",null,",",null,")");Z.push({i:b-4,x:On(R,B)},{i:b-2,x:On(C,L)})}else(B!==1||L!==1)&&F.push(h(F)+"scale("+B+","+L+")")}return function(R,C){var B=[],L=[];return R=r(R),C=r(C),m(R.translateX,R.translateY,C.translateX,C.translateY,B,L),x(R.rotate,C.rotate,B,L),O(R.skewX,C.skewX,B,L),P(R.scaleX,R.scaleY,C.scaleX,C.scaleY,B,L),R=C=null,function(F){for(var Z=-1,b=L.length,j;++Z<b;)B[(j=L[Z]).i]=j.x(F);return B.join("")}}}var Wi=Ya(Vi,"px, ","px)","deg)"),Ki=Ya(Hi,", ",")",")");function Yi(r,a){var s,d;return function(){var h=gn(this,r),m=h.tween;if(m!==s){d=s=m;for(var x=0,O=d.length;x<O;++x)if(d[x].name===a){d=d.slice(),d.splice(x,1);break}}h.tween=d}}function zi(r,a,s){var d,h;if(typeof s!="function")throw new Error;return function(){var m=gn(this,r),x=m.tween;if(x!==d){h=(d=x).slice();for(var O={name:a,value:s},P=0,R=h.length;P<R;++P)if(h[P].name===a){h[P]=O;break}P===R&&h.push(O)}m.tween=h}}function Xi(r,a){var s=this._id;if(r+="",arguments.length<2){for(var d=vn(this.node(),s).tween,h=0,m=d.length,x;h<m;++h)if((x=d[h]).name===r)return x.value;return null}return this.each((a==null?Yi:zi)(s,r,a))}function Xe(r,a,s){var d=r._id;return r.each(function(){var h=gn(this,d);(h.value||(h.value={}))[a]=s.apply(this,arguments)}),function(h){return vn(h,d).value[a]}}function Je(r,a,s){r.prototype=a.prototype=s,s.constructor=r}function za(r,a){var s=Object.create(r.prototype);for(var d in a)s[d]=a[d];return s}function qn(){}var _n=.7,Ie=1/_n,jn="\\s*([+-]?\\d+)\\s*",te="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",pn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ji=/^#([0-9a-f]{3,8})$/,Qi=new RegExp(`^rgb\\(${jn},${jn},${jn}\\)$`),Zi=new RegExp(`^rgb\\(${pn},${pn},${pn}\\)$`),ki=new RegExp(`^rgba\\(${jn},${jn},${jn},${te}\\)$`),qi=new RegExp(`^rgba\\(${pn},${pn},${pn},${te}\\)$`),_i=new RegExp(`^hsl\\(${te},${pn},${pn}\\)$`),tu=new RegExp(`^hsla\\(${te},${pn},${pn},${te}\\)$`),Xa={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Je(qn,re,{copy(r){return Object.assign(new this.constructor,this,r)},displayable(){return this.rgb().displayable()},hex:Ja,formatHex:Ja,formatHex8:ru,formatHsl:nu,formatRgb:Qa,toString:Qa});function Ja(){return this.rgb().formatHex()}function ru(){return this.rgb().formatHex8()}function nu(){return to(this).formatHsl()}function Qa(){return this.rgb().formatRgb()}function re(r){var a,s;return r=(r+"").trim().toLowerCase(),(a=Ji.exec(r))?(s=a[1].length,a=parseInt(a[1],16),s===6?Za(a):s===3?new an(a>>8&15|a>>4&240,a>>4&15|a&240,(a&15)<<4|a&15,1):s===8?Oe(a>>24&255,a>>16&255,a>>8&255,(a&255)/255):s===4?Oe(a>>12&15|a>>8&240,a>>8&15|a>>4&240,a>>4&15|a&240,((a&15)<<4|a&15)/255):null):(a=Qi.exec(r))?new an(a[1],a[2],a[3],1):(a=Zi.exec(r))?new an(a[1]*255/100,a[2]*255/100,a[3]*255/100,1):(a=ki.exec(r))?Oe(a[1],a[2],a[3],a[4]):(a=qi.exec(r))?Oe(a[1]*255/100,a[2]*255/100,a[3]*255/100,a[4]):(a=_i.exec(r))?_a(a[1],a[2]/100,a[3]/100,1):(a=tu.exec(r))?_a(a[1],a[2]/100,a[3]/100,a[4]):Xa.hasOwnProperty(r)?Za(Xa[r]):r==="transparent"?new an(NaN,NaN,NaN,0):null}function Za(r){return new an(r>>16&255,r>>8&255,r&255,1)}function Oe(r,a,s,d){return d<=0&&(r=a=s=NaN),new an(r,a,s,d)}function eu(r){return r instanceof qn||(r=re(r)),r?(r=r.rgb(),new an(r.r,r.g,r.b,r.opacity)):new an}function Te(r,a,s,d){return arguments.length===1?eu(r):new an(r,a,s,d==null?1:d)}function an(r,a,s,d){this.r=+r,this.g=+a,this.b=+s,this.opacity=+d}Je(an,Te,za(qn,{brighter(r){return r=r==null?Ie:Math.pow(Ie,r),new an(this.r*r,this.g*r,this.b*r,this.opacity)},darker(r){return r=r==null?_n:Math.pow(_n,r),new an(this.r*r,this.g*r,this.b*r,this.opacity)},rgb(){return this},clamp(){return new an(Mn(this.r),Mn(this.g),Mn(this.b),Ae(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ka,formatHex:ka,formatHex8:au,formatRgb:qa,toString:qa}));function ka(){return`#${Nn(this.r)}${Nn(this.g)}${Nn(this.b)}`}function au(){return`#${Nn(this.r)}${Nn(this.g)}${Nn(this.b)}${Nn((isNaN(this.opacity)?1:this.opacity)*255)}`}function qa(){const r=Ae(this.opacity);return`${r===1?"rgb(":"rgba("}${Mn(this.r)}, ${Mn(this.g)}, ${Mn(this.b)}${r===1?")":`, ${r})`}`}function Ae(r){return isNaN(r)?1:Math.max(0,Math.min(1,r))}function Mn(r){return Math.max(0,Math.min(255,Math.round(r)||0))}function Nn(r){return r=Mn(r),(r<16?"0":"")+r.toString(16)}function _a(r,a,s,d){return d<=0?r=a=s=NaN:s<=0||s>=1?r=a=NaN:a<=0&&(r=NaN),new dn(r,a,s,d)}function to(r){if(r instanceof dn)return new dn(r.h,r.s,r.l,r.opacity);if(r instanceof qn||(r=re(r)),!r)return new dn;if(r instanceof dn)return r;r=r.rgb();var a=r.r/255,s=r.g/255,d=r.b/255,h=Math.min(a,s,d),m=Math.max(a,s,d),x=NaN,O=m-h,P=(m+h)/2;return O?(a===m?x=(s-d)/O+(s<d)*6:s===m?x=(d-a)/O+2:x=(a-s)/O+4,O/=P<.5?m+h:2-m-h,x*=60):O=P>0&&P<1?0:x,new dn(x,O,P,r.opacity)}function ou(r,a,s,d){return arguments.length===1?to(r):new dn(r,a,s,d==null?1:d)}function dn(r,a,s,d){this.h=+r,this.s=+a,this.l=+s,this.opacity=+d}Je(dn,ou,za(qn,{brighter(r){return r=r==null?Ie:Math.pow(Ie,r),new dn(this.h,this.s,this.l*r,this.opacity)},darker(r){return r=r==null?_n:Math.pow(_n,r),new dn(this.h,this.s,this.l*r,this.opacity)},rgb(){var r=this.h%360+(this.h<0)*360,a=isNaN(r)||isNaN(this.s)?0:this.s,s=this.l,d=s+(s<.5?s:1-s)*a,h=2*s-d;return new an(Qe(r>=240?r-240:r+120,h,d),Qe(r,h,d),Qe(r<120?r+240:r-120,h,d),this.opacity)},clamp(){return new dn(ro(this.h),Re(this.s),Re(this.l),Ae(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const r=Ae(this.opacity);return`${r===1?"hsl(":"hsla("}${ro(this.h)}, ${Re(this.s)*100}%, ${Re(this.l)*100}%${r===1?")":`, ${r})`}`}}));function ro(r){return r=(r||0)%360,r<0?r+360:r}function Re(r){return Math.max(0,Math.min(1,r||0))}function Qe(r,a,s){return(r<60?a+(s-a)*r/60:r<180?s:r<240?a+(s-a)*(240-r)/60:a)*255}function no(r,a,s,d,h){var m=r*r,x=m*r;return((1-3*r+3*m-x)*a+(4-6*m+3*x)*s+(1+3*r+3*m-3*x)*d+x*h)/6}function su(r){var a=r.length-1;return function(s){var d=s<=0?s=0:s>=1?(s=1,a-1):Math.floor(s*a),h=r[d],m=r[d+1],x=d>0?r[d-1]:2*h-m,O=d<a-1?r[d+2]:2*m-h;return no((s-d/a)*a,x,h,m,O)}}function iu(r){var a=r.length;return function(s){var d=Math.floor(((s%=1)<0?++s:s)*a),h=r[(d+a-1)%a],m=r[d%a],x=r[(d+1)%a],O=r[(d+2)%a];return no((s-d/a)*a,h,m,x,O)}}var eo=r=>()=>r;function ao(r,a){return function(s){return r+s*a}}function uu(r,a,s){return r=Math.pow(r,s),a=Math.pow(a,s)-r,s=1/s,function(d){return Math.pow(r+d*a,s)}}function Xl(r,a){var s=a-r;return s?ao(r,s>180||s<-180?s-360*Math.round(s/360):s):constant(isNaN(r)?a:r)}function lu(r){return(r=+r)==1?oo:function(a,s){return s-a?uu(a,s,r):eo(isNaN(a)?s:a)}}function oo(r,a){var s=a-r;return s?ao(r,s):eo(isNaN(r)?a:r)}var so=function r(a){var s=lu(a);function d(h,m){var x=s((h=Te(h)).r,(m=Te(m)).r),O=s(h.g,m.g),P=s(h.b,m.b),R=oo(h.opacity,m.opacity);return function(C){return h.r=x(C),h.g=O(C),h.b=P(C),h.opacity=R(C),h+""}}return d.gamma=r,d}(1);function io(r){return function(a){var s=a.length,d=new Array(s),h=new Array(s),m=new Array(s),x,O;for(x=0;x<s;++x)O=Te(a[x]),d[x]=O.r||0,h[x]=O.g||0,m[x]=O.b||0;return d=r(d),h=r(h),m=r(m),O.opacity=1,function(P){return O.r=d(P),O.g=h(P),O.b=m(P),O+""}}}var Jl=io(su),Ql=io(iu),Ze=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ke=new RegExp(Ze.source,"g");function fu(r){return function(){return r}}function cu(r){return function(a){return r(a)+""}}function vu(r,a){var s=Ze.lastIndex=ke.lastIndex=0,d,h,m,x=-1,O=[],P=[];for(r=r+"",a=a+"";(d=Ze.exec(r))&&(h=ke.exec(a));)(m=h.index)>s&&(m=a.slice(s,m),O[x]?O[x]+=m:O[++x]=m),(d=d[0])===(h=h[0])?O[x]?O[x]+=h:O[++x]=h:(O[++x]=null,P.push({i:x,x:On(d,h)})),s=ke.lastIndex;return s<a.length&&(m=a.slice(s),O[x]?O[x]+=m:O[++x]=m),O.length<2?P[0]?cu(P[0].x):fu(a):(a=P.length,function(R){for(var C=0,B;C<a;++C)O[(B=P[C]).i]=B.x(R);return O.join("")})}function uo(r,a){var s;return(typeof a=="number"?On:a instanceof re?so:(s=re(a))?(a=s,so):vu)(r,a)}function du(r){return function(){this.removeAttribute(r)}}function hu(r){return function(){this.removeAttributeNS(r.space,r.local)}}function gu(r,a,s){var d,h=s+"",m;return function(){var x=this.getAttribute(r);return x===h?null:x===d?m:m=a(d=x,s)}}function pu(r,a,s){var d,h=s+"",m;return function(){var x=this.getAttributeNS(r.space,r.local);return x===h?null:x===d?m:m=a(d=x,s)}}function yu(r,a,s){var d,h,m;return function(){var x,O=s(this),P;return O==null?void this.removeAttribute(r):(x=this.getAttribute(r),P=O+"",x===P?null:x===d&&P===h?m:(h=P,m=a(d=x,O)))}}function mu(r,a,s){var d,h,m;return function(){var x,O=s(this),P;return O==null?void this.removeAttributeNS(r.space,r.local):(x=this.getAttributeNS(r.space,r.local),P=O+"",x===P?null:x===d&&P===h?m:(h=P,m=a(d=x,O)))}}function xu(r,a){var s=ve(r),d=s==="transform"?Ki:uo;return this.attrTween(r,typeof a=="function"?(s.local?mu:yu)(s,d,Xe(this,"attr."+r,a)):a==null?(s.local?hu:du)(s):(s.local?pu:gu)(s,d,a))}function Su(r,a){return function(s){this.setAttribute(r,a.call(this,s))}}function Eu(r,a){return function(s){this.setAttributeNS(r.space,r.local,a.call(this,s))}}function Iu(r,a){var s,d;function h(){var m=a.apply(this,arguments);return m!==d&&(s=(d=m)&&Eu(r,m)),s}return h._value=a,h}function Ou(r,a){var s,d;function h(){var m=a.apply(this,arguments);return m!==d&&(s=(d=m)&&Su(r,m)),s}return h._value=a,h}function Tu(r,a){var s="attr."+r;if(arguments.length<2)return(s=this.tween(s))&&s._value;if(a==null)return this.tween(s,null);if(typeof a!="function")throw new Error;var d=ve(r);return this.tween(s,(d.local?Iu:Ou)(d,a))}function Au(r,a){return function(){Ye(this,r).delay=+a.apply(this,arguments)}}function Ru(r,a){return a=+a,function(){Ye(this,r).delay=a}}function Pu(r){var a=this._id;return arguments.length?this.each((typeof r=="function"?Au:Ru)(a,r)):vn(this.node(),a).delay}function Cu(r,a){return function(){gn(this,r).duration=+a.apply(this,arguments)}}function Mu(r,a){return a=+a,function(){gn(this,r).duration=a}}function Nu(r){var a=this._id;return arguments.length?this.each((typeof r=="function"?Cu:Mu)(a,r)):vn(this.node(),a).duration}function Du(r,a){if(typeof a!="function")throw new Error;return function(){gn(this,r).ease=a}}function Fu(r){var a=this._id;return arguments.length?this.each(Du(a,r)):vn(this.node(),a).ease}function bu(r,a){return function(){var s=a.apply(this,arguments);if(typeof s!="function")throw new Error;gn(this,r).ease=s}}function Lu(r){if(typeof r!="function")throw new Error;return this.each(bu(this._id,r))}function $u(r){typeof r!="function"&&(r=Ea(r));for(var a=this._groups,s=a.length,d=new Array(s),h=0;h<s;++h)for(var m=a[h],x=m.length,O=d[h]=[],P,R=0;R<x;++R)(P=m[R])&&r.call(P,P.__data__,R,m)&&O.push(P);return new yn(d,this._parents,this._name,this._id)}function Uu(r){if(r._id!==this._id)throw new Error;for(var a=this._groups,s=r._groups,d=a.length,h=s.length,m=Math.min(d,h),x=new Array(d),O=0;O<m;++O)for(var P=a[O],R=s[O],C=P.length,B=x[O]=new Array(C),L,F=0;F<C;++F)(L=P[F]||R[F])&&(B[F]=L);for(;O<d;++O)x[O]=a[O];return new yn(x,this._parents,this._name,this._id)}function Bu(r){return(r+"").trim().split(/^|\s+/).every(function(a){var s=a.indexOf(".");return s>=0&&(a=a.slice(0,s)),!a||a==="start"})}function ju(r,a,s){var d,h,m=Bu(a)?Ye:gn;return function(){var x=m(this,r),O=x.on;O!==d&&(h=(d=O).copy()).on(a,s),x.on=h}}function wu(r,a){var s=this._id;return arguments.length<2?vn(this.node(),s).on.on(r):this.each(ju(s,r,a))}function Gu(r){return function(){var a=this.parentNode;for(var s in this.__transition)if(+s!==r)return;a&&a.removeChild(this)}}function Vu(){return this.on("end.remove",Gu(this._id))}function Hu(r){var a=this._name,s=this._id;typeof r!="function"&&(r=je(r));for(var d=this._groups,h=d.length,m=new Array(h),x=0;x<h;++x)for(var O=d[x],P=O.length,R=m[x]=new Array(P),C,B,L=0;L<P;++L)(C=O[L])&&(B=r.call(C,C.__data__,L,O))&&("__data__"in C&&(B.__data__=C.__data__),R[L]=B,Se(R[L],a,s,L,R,vn(C,s)));return new yn(m,this._parents,a,s)}function Wu(r){var a=this._name,s=this._id;typeof r!="function"&&(r=Sa(r));for(var d=this._groups,h=d.length,m=[],x=[],O=0;O<h;++O)for(var P=d[O],R=P.length,C,B=0;B<R;++B)if(C=P[B]){for(var L=r.call(C,C.__data__,B,P),F,Z=vn(C,s),b=0,j=L.length;b<j;++b)(F=L[b])&&Se(F,a,s,b,L,Z);m.push(L),x.push(C)}return new yn(m,x,a,s)}var Ku=Xn.prototype.constructor;function Yu(){return new Ku(this._groups,this._parents)}function zu(r,a){var s,d,h;return function(){var m=Un(this,r),x=(this.style.removeProperty(r),Un(this,r));return m===x?null:m===s&&x===d?h:h=a(s=m,d=x)}}function lo(r){return function(){this.style.removeProperty(r)}}function Xu(r,a,s){var d,h=s+"",m;return function(){var x=Un(this,r);return x===h?null:x===d?m:m=a(d=x,s)}}function Ju(r,a,s){var d,h,m;return function(){var x=Un(this,r),O=s(this),P=O+"";return O==null&&(P=O=(this.style.removeProperty(r),Un(this,r))),x===P?null:x===d&&P===h?m:(h=P,m=a(d=x,O))}}function Qu(r,a){var s,d,h,m="style."+a,x="end."+m,O;return function(){var P=gn(this,r),R=P.on,C=P.value[m]==null?O||(O=lo(a)):void 0;(R!==s||h!==C)&&(d=(s=R).copy()).on(x,h=C),P.on=d}}function Zu(r,a,s){var d=(r+="")=="transform"?Wi:uo;return a==null?this.styleTween(r,zu(r,d)).on("end.style."+r,lo(r)):typeof a=="function"?this.styleTween(r,Ju(r,d,Xe(this,"style."+r,a))).each(Qu(this._id,r)):this.styleTween(r,Xu(r,d,a),s).on("end.style."+r,null)}function ku(r,a,s){return function(d){this.style.setProperty(r,a.call(this,d),s)}}function qu(r,a,s){var d,h;function m(){var x=a.apply(this,arguments);return x!==h&&(d=(h=x)&&ku(r,x,s)),d}return m._value=a,m}function _u(r,a,s){var d="style."+(r+="");if(arguments.length<2)return(d=this.tween(d))&&d._value;if(a==null)return this.tween(d,null);if(typeof a!="function")throw new Error;return this.tween(d,qu(r,a,s==null?"":s))}function tl(r){return function(){this.textContent=r}}function rl(r){return function(){var a=r(this);this.textContent=a==null?"":a}}function nl(r){return this.tween("text",typeof r=="function"?rl(Xe(this,"text",r)):tl(r==null?"":r+""))}function el(r){return function(a){this.textContent=r.call(this,a)}}function al(r){var a,s;function d(){var h=r.apply(this,arguments);return h!==s&&(a=(s=h)&&el(h)),a}return d._value=r,d}function ol(r){var a="text";if(arguments.length<1)return(a=this.tween(a))&&a._value;if(r==null)return this.tween(a,null);if(typeof r!="function")throw new Error;return this.tween(a,al(r))}function sl(){for(var r=this._name,a=this._id,s=fo(),d=this._groups,h=d.length,m=0;m<h;++m)for(var x=d[m],O=x.length,P,R=0;R<O;++R)if(P=x[R]){var C=vn(P,a);Se(P,r,s,R,x,{time:C.time+C.delay+C.duration,delay:0,duration:C.duration,ease:C.ease})}return new yn(d,this._parents,r,s)}function il(){var r,a,s=this,d=s._id,h=s.size();return new Promise(function(m,x){var O={value:x},P={value:function(){--h===0&&m()}};s.each(function(){var R=gn(this,d),C=R.on;C!==r&&(a=(r=C).copy(),a._.cancel.push(O),a._.interrupt.push(O),a._.end.push(P)),R.on=a}),h===0&&m()})}var ul=0;function yn(r,a,s,d){this._groups=r,this._parents=a,this._name=s,this._id=d}function ll(r){return Xn().transition(r)}function fo(){return++ul}var mn=Xn.prototype;yn.prototype=ll.prototype={constructor:yn,select:Hu,selectAll:Wu,selectChild:mn.selectChild,selectChildren:mn.selectChildren,filter:$u,merge:Uu,selection:Yu,transition:sl,call:mn.call,nodes:mn.nodes,node:mn.node,size:mn.size,empty:mn.empty,each:mn.each,on:wu,attr:xu,attrTween:Tu,style:Zu,styleTween:_u,text:nl,textTween:ol,remove:Vu,tween:Xi,delay:Pu,duration:Nu,ease:Fu,easeVarying:Lu,end:il,[Symbol.iterator]:mn[Symbol.iterator]};function Zl(r){return r*r*r}function kl(r){return--r*r*r+1}function fl(r){return((r*=2)<=1?r*r*r:(r-=2)*r*r+2)/2}var cl={time:null,delay:0,duration:250,ease:fl};function vl(r,a){for(var s;!(s=r.__transition)||!(s=s[a]);)if(!(r=r.parentNode))throw new Error(`transition ${a} not found`);return s}function dl(r){var a,s;r instanceof yn?(a=r._id,r=r._name):(a=fo(),(s=cl).time=Ve(),r=r==null?null:r+"");for(var d=this._groups,h=d.length,m=0;m<h;++m)for(var x=d[m],O=x.length,P,R=0;R<O;++R)(P=x[R])&&Se(P,r,a,R,x,s||vl(P,a));return new yn(d,this._parents,r,a)}Xn.prototype.interrupt=Gi,Xn.prototype.transition=dl;var co={name:"drag"},qe={name:"space"},wn={name:"handle"},Gn={name:"center"};const{abs:vo,max:rn,min:nn}=Math;function ho(r){return[+r[0],+r[1]]}function _e(r){return[ho(r[0]),ho(r[1])]}var Pe={name:"x",handles:["w","e"].map(ne),input:function(r,a){return r==null?null:[[+r[0],a[0][1]],[+r[1],a[1][1]]]},output:function(r){return r&&[r[0][0],r[1][0]]}},Ce={name:"y",handles:["n","s"].map(ne),input:function(r,a){return r==null?null:[[a[0][0],+r[0]],[a[1][0],+r[1]]]},output:function(r){return r&&[r[0][1],r[1][1]]}},hl={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(ne),input:function(r){return r==null?null:_e(r)},output:function(r){return r}},xn={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},go={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},po={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},gl={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},pl={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function ne(r){return{type:r}}function yl(r){return!r.ctrlKey&&!r.button}function ml(){var r=this.ownerSVGElement||this;return r.hasAttribute("viewBox")?(r=r.viewBox.baseVal,[[r.x,r.y],[r.x+r.width,r.y+r.height]]):[[0,0],[r.width.baseVal.value,r.height.baseVal.value]]}function xl(){return navigator.maxTouchPoints||"ontouchstart"in this}function ta(r){for(;!r.__brush;)if(!(r=r.parentNode))return;return r.__brush}function Sl(r){return r[0][0]===r[1][0]||r[0][1]===r[1][1]}function ql(r){var a=r.__brush;return a?a.dim.output(a.selection):null}function _l(){return ra(Pe)}function tf(){return ra(Ce)}function rf(){return ra(hl)}function ra(r){var a=ml,s=yl,d=xl,h=!0,m=dispatch("start","brush","end"),x=6,O;function P(j){var H=j.property("__brush",b).selectAll(".overlay").data([ne("overlay")]);H.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",xn.overlay).merge(H).each(function(){var J=ta(this).extent;select(this).attr("x",J[0][0]).attr("y",J[0][1]).attr("width",J[1][0]-J[0][0]).attr("height",J[1][1]-J[0][1])}),j.selectAll(".selection").data([ne("selection")]).enter().append("rect").attr("class","selection").attr("cursor",xn.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var Q=j.selectAll(".handle").data(r.handles,function(J){return J.type});Q.exit().remove(),Q.enter().append("rect").attr("class",function(J){return"handle handle--"+J.type}).attr("cursor",function(J){return xn[J.type]}),j.each(R).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",L).filter(d).on("touchstart.brush",L).on("touchmove.brush",F).on("touchend.brush touchcancel.brush",Z).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}P.move=function(j,H,Q){j.tween?j.on("start.brush",function(J){C(this,arguments).beforestart().start(J)}).on("interrupt.brush end.brush",function(J){C(this,arguments).end(J)}).tween("brush",function(){var J=this,lt=J.__brush,nt=C(J,arguments),xt=lt.selection,it=r.input(typeof H=="function"?H.apply(this,arguments):H,lt.extent),vt=interpolate(xt,it);function ft(It){lt.selection=It===1&&it===null?null:vt(It),R.call(J),nt.brush()}return xt!==null&&it!==null?ft:ft(1)}):j.each(function(){var J=this,lt=arguments,nt=J.__brush,xt=r.input(typeof H=="function"?H.apply(J,lt):H,nt.extent),it=C(J,lt).beforestart();interrupt(J),nt.selection=xt===null?null:xt,R.call(J),it.start(Q).brush(Q).end(Q)})},P.clear=function(j,H){P.move(j,null,H)};function R(){var j=select(this),H=ta(this).selection;H?(j.selectAll(".selection").style("display",null).attr("x",H[0][0]).attr("y",H[0][1]).attr("width",H[1][0]-H[0][0]).attr("height",H[1][1]-H[0][1]),j.selectAll(".handle").style("display",null).attr("x",function(Q){return Q.type[Q.type.length-1]==="e"?H[1][0]-x/2:H[0][0]-x/2}).attr("y",function(Q){return Q.type[0]==="s"?H[1][1]-x/2:H[0][1]-x/2}).attr("width",function(Q){return Q.type==="n"||Q.type==="s"?H[1][0]-H[0][0]+x:x}).attr("height",function(Q){return Q.type==="e"||Q.type==="w"?H[1][1]-H[0][1]+x:x})):j.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function C(j,H,Q){var J=j.__brush.emitter;return J&&(!Q||!J.clean)?J:new B(j,H,Q)}function B(j,H,Q){this.that=j,this.args=H,this.state=j.__brush,this.active=0,this.clean=Q}B.prototype={beforestart:function(){return++this.active===1&&(this.state.emitter=this,this.starting=!0),this},start:function(j,H){return this.starting?(this.starting=!1,this.emit("start",j,H)):this.emit("brush",j),this},brush:function(j,H){return this.emit("brush",j,H),this},end:function(j,H){return--this.active===0&&(delete this.state.emitter,this.emit("end",j,H)),this},emit:function(j,H,Q){var J=select(this.that).datum();m.call(j,this.that,new BrushEvent(j,{sourceEvent:H,target:P,selection:r.output(this.state.selection),mode:Q,dispatch:m}),J)}};function L(j){if(O&&!j.touches||!s.apply(this,arguments))return;var H=this,Q=j.target.__data__.type,J=(h&&j.metaKey?Q="overlay":Q)==="selection"?co:h&&j.altKey?Gn:wn,lt=r===Ce?null:gl[Q],nt=r===Pe?null:pl[Q],xt=ta(H),it=xt.extent,vt=xt.selection,ft=it[0][0],It,Nt,Dt=it[0][1],Gt,V,tt=it[1][0],_,dt,K=it[1][1],et,z,ct=0,yt=0,Pt,Ot=lt&&nt&&h&&j.shiftKey,Lt,zt,Ft=Array.from(j.touches||[j],Zt=>{const Mr=Zt.identifier;return Zt=pointer(Zt,H),Zt.point0=Zt.slice(),Zt.identifier=Mr,Zt});interrupt(H);var tr=C(H,arguments,!0).beforestart();if(Q==="overlay"){vt&&(Pt=!0);const Zt=[Ft[0],Ft[1]||Ft[0]];xt.selection=vt=[[It=r===Ce?ft:nn(Zt[0][0],Zt[1][0]),Gt=r===Pe?Dt:nn(Zt[0][1],Zt[1][1])],[_=r===Ce?tt:rn(Zt[0][0],Zt[1][0]),et=r===Pe?K:rn(Zt[0][1],Zt[1][1])]],Ft.length>1&&lr(j)}else It=vt[0][0],Gt=vt[0][1],_=vt[1][0],et=vt[1][1];Nt=It,V=Gt,dt=_,z=et;var nr=select(H).attr("pointer-events","none"),or=nr.selectAll(".overlay").attr("cursor",xn[Q]);if(j.touches)tr.moved=ur,tr.ended=Nr;else{var sr=select(j.view).on("mousemove.brush",ur,!0).on("mouseup.brush",Nr,!0);h&&sr.on("keydown.brush",br,!0).on("keyup.brush",Rr,!0),dragDisable(j.view)}R.call(H),tr.start(j,J.name);function ur(Zt){for(const Mr of Zt.changedTouches||[Zt])for(const Hr of Ft)Hr.identifier===Mr.identifier&&(Hr.cur=pointer(Mr,H));if(Ot&&!Lt&&!zt&&Ft.length===1){const Mr=Ft[0];vo(Mr.cur[0]-Mr[0])>vo(Mr.cur[1]-Mr[1])?zt=!0:Lt=!0}for(const Mr of Ft)Mr.cur&&(Mr[0]=Mr.cur[0],Mr[1]=Mr.cur[1]);Pt=!0,noevent(Zt),lr(Zt)}function lr(Zt){const Mr=Ft[0],Hr=Mr.point0;var jr;switch(ct=Mr[0]-Hr[0],yt=Mr[1]-Hr[1],J){case qe:case co:{lt&&(ct=rn(ft-It,nn(tt-_,ct)),Nt=It+ct,dt=_+ct),nt&&(yt=rn(Dt-Gt,nn(K-et,yt)),V=Gt+yt,z=et+yt);break}case wn:{Ft[1]?(lt&&(Nt=rn(ft,nn(tt,Ft[0][0])),dt=rn(ft,nn(tt,Ft[1][0])),lt=1),nt&&(V=rn(Dt,nn(K,Ft[0][1])),z=rn(Dt,nn(K,Ft[1][1])),nt=1)):(lt<0?(ct=rn(ft-It,nn(tt-It,ct)),Nt=It+ct,dt=_):lt>0&&(ct=rn(ft-_,nn(tt-_,ct)),Nt=It,dt=_+ct),nt<0?(yt=rn(Dt-Gt,nn(K-Gt,yt)),V=Gt+yt,z=et):nt>0&&(yt=rn(Dt-et,nn(K-et,yt)),V=Gt,z=et+yt));break}case Gn:{lt&&(Nt=rn(ft,nn(tt,It-ct*lt)),dt=rn(ft,nn(tt,_+ct*lt))),nt&&(V=rn(Dt,nn(K,Gt-yt*nt)),z=rn(Dt,nn(K,et+yt*nt)));break}}dt<Nt&&(lt*=-1,jr=It,It=_,_=jr,jr=Nt,Nt=dt,dt=jr,Q in go&&or.attr("cursor",xn[Q=go[Q]])),z<V&&(nt*=-1,jr=Gt,Gt=et,et=jr,jr=V,V=z,z=jr,Q in po&&or.attr("cursor",xn[Q=po[Q]])),xt.selection&&(vt=xt.selection),Lt&&(Nt=vt[0][0],dt=vt[1][0]),zt&&(V=vt[0][1],z=vt[1][1]),(vt[0][0]!==Nt||vt[0][1]!==V||vt[1][0]!==dt||vt[1][1]!==z)&&(xt.selection=[[Nt,V],[dt,z]],R.call(H),tr.brush(Zt,J.name))}function Nr(Zt){if(nopropagation(Zt),Zt.touches){if(Zt.touches.length)return;O&&clearTimeout(O),O=setTimeout(function(){O=null},500)}else dragEnable(Zt.view,Pt),sr.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);nr.attr("pointer-events","all"),or.attr("cursor",xn.overlay),xt.selection&&(vt=xt.selection),Sl(vt)&&(xt.selection=null,R.call(H)),tr.end(Zt,J.name)}function br(Zt){switch(Zt.keyCode){case 16:{Ot=lt&&nt;break}case 18:{J===wn&&(lt&&(_=dt-ct*lt,It=Nt+ct*lt),nt&&(et=z-yt*nt,Gt=V+yt*nt),J=Gn,lr(Zt));break}case 32:{(J===wn||J===Gn)&&(lt<0?_=dt-ct:lt>0&&(It=Nt-ct),nt<0?et=z-yt:nt>0&&(Gt=V-yt),J=qe,or.attr("cursor",xn.selection),lr(Zt));break}default:return}noevent(Zt)}function Rr(Zt){switch(Zt.keyCode){case 16:{Ot&&(Lt=zt=Ot=!1,lr(Zt));break}case 18:{J===Gn&&(lt<0?_=dt:lt>0&&(It=Nt),nt<0?et=z:nt>0&&(Gt=V),J=wn,lr(Zt));break}case 32:{J===qe&&(Zt.altKey?(lt&&(_=dt-ct*lt,It=Nt+ct*lt),nt&&(et=z-yt*nt,Gt=V+yt*nt),J=Gn):(lt<0?_=dt:lt>0&&(It=Nt),nt<0?et=z:nt>0&&(Gt=V),J=wn),or.attr("cursor",xn[Q]),lr(Zt));break}default:return}noevent(Zt)}}function F(j){C(this,arguments).moved(j)}function Z(j){C(this,arguments).ended(j)}function b(){var j=this.__brush||{selection:null};return j.extent=_e(a.apply(this,arguments)),j.dim=r,j}return P.extent=function(j){return arguments.length?(a=typeof j=="function"?j:constant(_e(j)),P):a},P.filter=function(j){return arguments.length?(s=typeof j=="function"?j:constant(!!j),P):s},P.touchable=function(j){return arguments.length?(d=typeof j=="function"?j:constant(!!j),P):d},P.handleSize=function(j){return arguments.length?(x=+j,P):x},P.keyModifiers=function(j){return arguments.length?(h=!!j,P):h},P.on=function(){var j=m.on.apply(m,arguments);return j===m?P:j},P}function El(){return typeof globalThis=="object"&&globalThis!==null&&globalThis.Object===Object&&globalThis||typeof global=="object"&&global!==null&&global.Object===Object&&global||typeof self=="object"&&self!==null&&self.Object===Object&&self||Function("return this")()}function Il(r){const a=typeof(r==null?void 0:r.requestAnimationFrame)=="function"&&typeof(r==null?void 0:r.cancelAnimationFrame)=="function",s=typeof(r==null?void 0:r.requestIdleCallback)=="function"&&typeof(r==null?void 0:r.cancelIdleCallback)=="function",d=m=>setTimeout(m,1),h=m=>clearTimeout(m);return[a?r.requestAnimationFrame:d,a?r.cancelAnimationFrame:h,s?r.requestIdleCallback:d,s?r.cancelIdleCallback:h]}const Me=El(),Ol=Me==null?void 0:Me.document,[nf,ef,af,of]=Il(Me);var Tl=Object.defineProperty,yo=Object.getOwnPropertySymbols,Al=Object.prototype.hasOwnProperty,Rl=Object.prototype.propertyIsEnumerable,mo=(r,a,s)=>a in r?Tl(r,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[a]=s,xo=(r,a)=>{for(var s in a||(a={}))Al.call(a,s)&&mo(r,s,a[s]);if(yo)for(var s of yo(a))Rl.call(a,s)&&mo(r,s,a[s]);return r};const sf=r=>r||r===0,Pl=r=>typeof r=="function",Ne=r=>typeof r=="string",na=r=>typeof r=="number",Cl=r=>typeof r=="undefined",So=r=>typeof r!="undefined",uf=r=>typeof r=="boolean",lf=r=>Math.ceil(r/10)*10,ff=r=>Math.ceil(r)+.5,cf=r=>r[1]-r[0],ea=r=>typeof r=="object",Ml=r=>Cl(r)||r===null||Ne(r)&&r.length===0||ea(r)&&!(r instanceof Date)&&Object.keys(r).length===0||na(r)&&isNaN(r),Nl=r=>!Ml(r),aa=r=>Array.isArray(r),De=r=>r&&!(r!=null&&r.nodeType)&&ea(r)&&!aa(r);function vf(r,a,s){return So(r[a])?r[a]:s}function df(r,a){let s=!1;return Object.keys(r).forEach(d=>r[d]===a&&(s=!0)),s}function hf(r,a,...s){const d=Pl(r);return d&&r.call(a,...s),d}function gf(r,a){let s=0;const d=function(...h){!--s&&a.apply(this,...h)};"duration"in r?r.each(()=>++s).on("end",d):(++s,r.call(d))}function pf(r){return Ne(r)?r.replace(/<(script|img)?/ig,"<").replace(/(script)?>/ig,">"):r}function yf(r,a,s=[-1,1],d=!1){if(!(!r||!Ne(a)))if(a.indexOf(` +`)===-1)r.text(a);else{const h=[r.text(),a].map(m=>m.replace(/[\s\n]/g,""));if(h[0]!==h[1]){const m=a.split(` +`),x=d?m.length-1:1;r.html(""),m.forEach((O,P)=>{r.append("tspan").attr("x",0).attr("dy",`${P===0?s[0]*x:s[1]}em`).text(O)})}}}function Dl(r){const{x:a,y:s,width:d,height:h}=r.getBBox();return[{x:a,y:s+h},{x:a,y:s},{x:a+d,y:s},{x:a+d,y:s+h}]}function mf(r){const{width:a,height:s}=r.getBoundingClientRect(),d=Dl(r),h=d[0].x,m=Math.min(d[0].y,d[1].y);return{x:h,y:m,width:a,height:s}}function xf(r,a){var s;const d=r&&((s=r.touches||r.sourceEvent&&r.sourceEvent.touches)==null?void 0:s[0]);let h=[0,0];try{h=d3Pointer(d||r,a)}catch(m){}return h.map(m=>isNaN(m)?0:m)}function Fl(r){const{event:a,$el:s}=r,d=s.subchart.main||s.main;let h;return a&&a.type==="brush"?h=a.selection:d&&(h=d.select(".bb-brush").node())&&(h=d3BrushSelection(h)),h}function Sf(r){return!("rect"in r)||"rect"in r&&r.hasAttribute("width")&&r.rect.width!==+r.getAttribute("width")?r.rect=r.getBoundingClientRect():r.rect}function Ef(r=!0,a=0,s=1e4){const d=window.crypto||window.msCrypto,h=d?a+d.getRandomValues(new Uint32Array(1))[0]%(s-a+1):Math.floor(Math.random()*(s-a)+a);return r?String(h):h}function Eo(r,a,s,d,h){if(s>d)return-1;const m=Math.floor((s+d)/2);let{x,w:O=0}=r[m];return h&&(x=r[m].y,O=r[m].h),a>=x&&a<=x+O?m:a<x?Eo(r,a,s,m-1,h):Eo(r,a,m+1,d,h)}function If(r){const a=Fl(r);return a?a[0]===a[1]:!0}function Of(...r){const a=s=>{if(De(s)&&s.constructor){const d=new s.constructor;for(const h in s)d[h]=a(s[h]);return d}return s};return r.map(s=>a(s)).reduce((s,d)=>xo(xo({},s),d))}function bl(r={},a){aa(a)&&a.forEach(s=>bl(r,s));for(const s in a)/^\d+$/.test(s)||s in r||(r[s]=a[s]);return r}const Tf=r=>r.charAt(0).toUpperCase()+r.slice(1);function Af(r,a="-"){return r.split(a).map((s,d)=>d?s.charAt(0).toUpperCase()+s.slice(1).toLowerCase():s.toLowerCase()).join("")}const Ll=r=>[].slice.call(r);function Rf(r,a,s){const{rootSelector:d="",sheet:h}=r,x=`${d} ${(O=>O.replace(/\s?(bb-)/g,".$1").replace(/\.+/g,"."))(a)} {${s.join(";")}}`;return h[h.insertRule?"insertRule":"addRule"](x,h.cssRules.length)}function Pf(r){let a=[];return r.forEach(s=>{var d;try{s.cssRules&&s.cssRules.length&&(a=a.concat(Ll(s.cssRules)))}catch(h){(d=window.console)==null||d.warn(`Error while reading rules from ${s.href}: ${h.toString()}`)}}),a}function Cf(r){var a,s,d,h;return{x:((s=(a=window.pageXOffset)!=null?a:window.scrollX)!=null?s:0)+r.scrollLeft,y:((h=(d=window.pageYOffset)!=null?d:window.scrollY)!=null?h:0)+r.scrollTop}}function Mf(r){const a=r?r.transform:null,s=a&&a.baseVal;return s&&s.numberOfItems?s.getItem(0).matrix:{a:0,b:0,c:0,d:0,e:0,f:0}}function Nf(r){const a=r[0]instanceof Date,s=(a?r.map(Number):r).filter((d,h,m)=>m.indexOf(d)===h);return a?s.map(d=>new Date(d)):s}function Df(r){return r&&r.length?r.reduce((a,s)=>a.concat(s)):[]}function oa(r,...a){if(!a.length||a.length===1&&!a[0])return r;const s=a.shift();return De(r)&&De(s)&&Object.keys(s).forEach(d=>{const h=s[d];De(h)?(!r[d]&&(r[d]={}),r[d]=oa(r[d],h)):r[d]=aa(h)?h.concat():h}),oa(r,...a)}function $l(r,a=!0){let s;return r[0]instanceof Date?s=a?(d,h)=>d-h:(d,h)=>h-d:a&&!r.every(isNaN)?s=(d,h)=>d-h:a||(s=(d,h)=>d>h&&-1||d<h&&1||d===h&&0),r.concat().sort(s)}function Ff(r,a){let s=a.filter(d=>Nl(d));return s.length?na(s[0])?s=Math[r](...s):s[0]instanceof Date&&(s=$l(s,r==="min")[0]):s=void 0,s}const bf=(r,a,s=1)=>{const d=[],h=Math.max(0,Math.ceil((a-r)/s))|0;for(let m=r;m<h;m++)d.push(r+m*s);return d},Lf={mouse:(()=>{const r=()=>({bubbles:!1,cancelable:!1,screenX:0,screenY:0,clientX:0,clientY:0});try{return new MouseEvent("t"),(a,s,d=r())=>{a.dispatchEvent(new MouseEvent(s,d))}}catch(a){return(s,d,h=r())=>{const m=Ol.createEvent("MouseEvent");m.initMouseEvent(d,h.bubbles,h.cancelable,Me,0,h.screenX,h.screenY,h.clientX,h.clientY,!1,!1,!1,!1,0,null),s.dispatchEvent(m)}}})(),touch:(r,a,s)=>{const d=new Touch(oa({identifier:Date.now(),target:r,radiusX:2.5,radiusY:2.5,rotationAngle:10,force:.5},s));r.dispatchEvent(new TouchEvent(a,{cancelable:!0,bubbles:!0,shiftKey:!0,touches:[d],targetTouches:[],changedTouches:[d]}))}};function $f(r,a){let s=r;for(const d in a)s=s.replace(new RegExp(`{=${d}}`,"g"),a[d]);return s}function Uf(r){var a;let s;if(r instanceof Date)s=r;else if(Ne(r)){const{config:d,format:h}=this;s=(a=h.dataTime(d.data_xFormat)(r))!=null?a:new Date(r)}else na(r)&&!isNaN(r)&&(s=new Date(+r));return(!s||isNaN(+s))&&console&&console.error&&console.error(`Failed to parse x '${r}' to Date object`),s}function Bf(){var r,a;return((r=document)==null?void 0:r.hidden)===!1||((a=document)==null?void 0:a.visibilityState)==="visible"}function jf(r,a){const{DocumentTouch:s,matchMedia:d,navigator:h}=window;let m=!1;if(a)if(h&&"maxTouchPoints"in h)m=h.maxTouchPoints>0;else if("ontouchmove"in window||s&&document instanceof s)m=!0;else if(d!=null&&d("(pointer:coarse)").matches)m=!0;else{const O=h.userAgent;m=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(O)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(O)}return r&&((d==null?void 0:d("any-hover:hover").matches)||(d==null?void 0:d("any-pointer:fine").matches))&&"mouse"||m&&"touch"||"mouse"}function Ul(r,a){a()===!1?requestAnimationFrame(()=>Ul(r,a)):r()}function Bl(r){const a=this.config;let s,d,h;const m=()=>{const x=d.shift();if(x&&s&&ea(s)&&x in s)return s=s[x],m();if(!x)return s};Object.keys(a).forEach(x=>{s=r,d=x.split("_"),h=m(),So(h)&&(a[x]=h)}),this.api&&(this.state.orgConfig=r)}var jl=Object.defineProperty,wl=(r,a,s)=>a in r?jl(r,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[a]=s,sa=(r,a,s)=>(wl(r,typeof a!="symbol"?a+"":a,s),s);class Io{constructor(a={}){sa(this,"$$"),sa(this,"options"),this.options=a}$beforeInit(){}$init(){}$afterInit(){}$redraw(){}$willDestroy(){Object.keys(this).forEach(a=>{this[a]=null,delete this[a]})}}sa(Io,"version","3.12.4");class Gl{constructor(){return{selector:void 0,extent:1,area:0}}}var Vl=Object.defineProperty,Hl=(r,a,s)=>a in r?Vl(r,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[a]=s,Wl=(r,a,s)=>(Hl(r,typeof a!="symbol"?a+"":a,s),s);class Kl extends Io{constructor(a){return super(a),Wl(this,"config"),this.config=new Gl,this}$init(){Bl.call(this,this.options)}$redraw(){const{$$:{$el:a},config:{selector:s}}=this,d=s?a.main.selectAll(s):a.text;!d.empty()&&this.preventLabelOverlap(d)}generateVoronoi(a){const{$$:s}=this,{scale:d}=s,[h,m]=["x","y"].map(x=>d[x].domain());return[h[1],m[0]]=[m[0],h[1]],Be.from(a).voronoi([...h,...m])}preventLabelOverlap(a){const{extent:s,area:d}=this.config,h=a.data().map(O=>[O.index,O.value]),m=this.generateVoronoi(h);let x=0;a.each(function(){const O=m.cellPolygon(x);if(O&&this){const[P,R]=h[x],[C,B]=Xo(O),L=Math.abs(Jo(O)),F=Math.round(Math.atan2(B-R,C-P)/Math.PI*2),Z=s*(F===0?1:-1),b=F===-1?-s:s+5,j=Math.abs(F)===1?"middle":F===0?"start":"end";this.style.display=L<d?"none":"",this.setAttribute("text-anchor",j),this.setAttribute("dy",`0.${F===1?71:35}em`),this.setAttribute("transform",`translate(${Z}, ${b})`)}x++})}}},85156:function(l,p,t){var n=t(23583),e=t(82453),o=TypeError;l.exports=function(i){if(n(i))return i;throw new o(e(i)+" is not a function")}},80042:function(l,p,t){var n=t(11051),e=t(82453),o=TypeError;l.exports=function(i){if(n(i))return i;throw new o(e(i)+" is not a constructor")}},53408:function(l,p,t){var n=t(52427),e=String,o=TypeError;l.exports=function(i){if(n(i))return i;throw new o("Can't set "+e(i)+" as a prototype")}},76602:function(l,p,t){var n=t(172).has;l.exports=function(e){return n(e),e}},23811:function(l,p,t){var n=t(18565),e=t(5406),o=t(7831).f,i=n("unscopables"),u=Array.prototype;u[i]===void 0&&o(u,i,{configurable:!0,value:e(null)}),l.exports=function(f){u[i][f]=!0}},24487:function(l,p,t){var n=t(22149).charAt;l.exports=function(e,o,i){return o+(i?n(e,o).length:1)}},12833:function(l,p,t){var n=t(95307),e=TypeError;l.exports=function(o,i){if(n(i,o))return o;throw new e("Incorrect invocation")}},25001:function(l,p,t){var n=t(37540),e=String,o=TypeError;l.exports=function(i){if(n(i))return i;throw new o(e(i)+" is not an object")}},3237:function(l){l.exports=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"},58360:function(l,p,t){var n=t(84756),e=t(14274),o=TypeError;l.exports=n(ArrayBuffer.prototype,"byteLength","get")||function(i){if(e(i)!=="ArrayBuffer")throw new o("ArrayBuffer expected");return i.byteLength}},30736:function(l,p,t){var n=t(11286),e=t(58360),o=n(ArrayBuffer.prototype.slice);l.exports=function(i){if(e(i)!==0)return!1;try{return o(i,0,0),!1}catch(u){return!0}}},72058:function(l,p,t){var n=t(72069);l.exports=n(function(){if(typeof ArrayBuffer=="function"){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}})},65006:function(l,p,t){var n=t(66009),e=t(11286),o=t(84756),i=t(9450),u=t(30736),f=t(58360),c=t(63741),g=t(99050),v=n.structuredClone,y=n.ArrayBuffer,S=n.DataView,E=n.TypeError,I=Math.min,A=y.prototype,T=S.prototype,M=e(A.slice),D=o(A,"resizable","get"),$=o(A,"maxByteLength","get"),U=e(T.getInt8),G=e(T.setInt8);l.exports=(g||c)&&function(N,w,W){var X=f(N),Y=w===void 0?X:i(w),k=!D||!D(N),st;if(u(N))throw new E("ArrayBuffer is detached");if(g&&(N=v(N,{transfer:[N]}),X===Y&&(W||k)))return N;if(X>=Y&&(!W||k))st=M(N,0,Y);else{var ut=W&&!k&&$?{maxByteLength:$(N)}:void 0;st=new y(Y,ut);for(var rt=new S(N),at=new S(st),ot=I(Y,X),pt=0;pt<ot;pt++)G(at,pt,U(rt,pt))}return g||c(N),st}},88037:function(l,p,t){var n=t(3237),e=t(92986),o=t(66009),i=t(23583),u=t(37540),f=t(94879),c=t(9205),g=t(82453),v=t(90809),y=t(16142),S=t(85500),E=t(95307),I=t(26313),A=t(15861),T=t(18565),M=t(36374),D=t(82367),$=D.enforce,U=D.get,G=o.Int8Array,N=G&&G.prototype,w=o.Uint8ClampedArray,W=w&&w.prototype,X=G&&I(G),Y=N&&I(N),k=Object.prototype,st=o.TypeError,ut=T("toStringTag"),rt=M("TYPED_ARRAY_TAG"),at="TypedArrayConstructor",ot=n&&!!A&&c(o.opera)!=="Opera",pt=!1,Ct,St,$t,Rt={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Qt={BigInt64Array:8,BigUint64Array:8},Yt=function(_t){if(!u(_t))return!1;var hr=c(_t);return hr==="DataView"||f(Rt,hr)||f(Qt,hr)},Xt=function(Kt){var _t=I(Kt);if(u(_t)){var hr=U(_t);return hr&&f(hr,at)?hr[at]:Xt(_t)}},er=function(Kt){if(!u(Kt))return!1;var _t=c(Kt);return f(Rt,_t)||f(Qt,_t)},ir=function(Kt){if(er(Kt))return Kt;throw new st("Target is not a typed array")},Or=function(Kt){if(i(Kt)&&(!A||E(X,Kt)))return Kt;throw new st(g(Kt)+" is not a typed array constructor")},yr=function(Kt,_t,hr,Sr){if(e){if(hr)for(var mr in Rt){var Ir=o[mr];if(Ir&&f(Ir.prototype,Kt))try{delete Ir.prototype[Kt]}catch(Fr){try{Ir.prototype[Kt]=_t}catch(Dr){}}}(!Y[Kt]||hr)&&y(Y,Kt,hr?_t:ot&&N[Kt]||_t,Sr)}},xr=function(Kt,_t,hr){var Sr,mr;if(e){if(A){if(hr){for(Sr in Rt)if(mr=o[Sr],mr&&f(mr,Kt))try{delete mr[Kt]}catch(Ir){}}if(!X[Kt]||hr)try{return y(X,Kt,hr?_t:ot&&X[Kt]||_t)}catch(Ir){}else return}for(Sr in Rt)mr=o[Sr],mr&&(!mr[Kt]||hr)&&y(mr,Kt,_t)}};for(Ct in Rt)St=o[Ct],$t=St&&St.prototype,$t?$($t)[at]=St:ot=!1;for(Ct in Qt)St=o[Ct],$t=St&&St.prototype,$t&&($($t)[at]=St);if((!ot||!i(X)||X===Function.prototype)&&(X=function(){throw new st("Incorrect invocation")},ot))for(Ct in Rt)o[Ct]&&A(o[Ct],X);if((!ot||!Y||Y===k)&&(Y=X.prototype,ot))for(Ct in Rt)o[Ct]&&A(o[Ct].prototype,Y);if(ot&&I(W)!==Y&&A(W,Y),e&&!f(Y,ut)){pt=!0,S(Y,ut,{configurable:!0,get:function(){return u(this)?this[rt]:void 0}});for(Ct in Rt)o[Ct]&&v(o[Ct],rt,Ct)}l.exports={NATIVE_ARRAY_BUFFER_VIEWS:ot,TYPED_ARRAY_TAG:pt&&rt,aTypedArray:ir,aTypedArrayConstructor:Or,exportTypedArrayMethod:yr,exportTypedArrayStaticMethod:xr,getTypedArrayConstructor:Xt,isView:Yt,isTypedArray:er,TypedArray:X,TypedArrayPrototype:Y}},17468:function(l,p,t){var n=t(66009),e=t(11286),o=t(92986),i=t(3237),u=t(86588),f=t(90809),c=t(85500),g=t(2725),v=t(72069),y=t(12833),S=t(12105),E=t(45344),I=t(9450),A=t(93279),T=t(25212),M=t(26313),D=t(15861),$=t(43011),U=t(22806),G=t(32345),N=t(93706),w=t(78401),W=t(82367),X=u.PROPER,Y=u.CONFIGURABLE,k="ArrayBuffer",st="DataView",ut="prototype",rt="Wrong length",at="Wrong index",ot=W.getterFor(k),pt=W.getterFor(st),Ct=W.set,St=n[k],$t=St,Rt=$t&&$t[ut],Qt=n[st],Yt=Qt&&Qt[ut],Xt=Object.prototype,er=n.Array,ir=n.RangeError,Or=e($),yr=e([].reverse),xr=T.pack,Kt=T.unpack,_t=function(Ut){return[Ut&255]},hr=function(Ut){return[Ut&255,Ut>>8&255]},Sr=function(Ut){return[Ut&255,Ut>>8&255,Ut>>16&255,Ut>>24&255]},mr=function(Ut){return Ut[3]<<24|Ut[2]<<16|Ut[1]<<8|Ut[0]},Ir=function(Ut){return xr(A(Ut),23,4)},Fr=function(Ut){return xr(Ut,52,8)},Dr=function(Ut,Vt,bt){c(Ut[ut],Vt,{configurable:!0,get:function(){return bt(this)[Vt]}})},Pr=function(Ut,Vt,bt,fr){var cr=pt(Ut),rr=I(bt),qt=!!fr;if(rr+Vt>cr.byteLength)throw new ir(at);var $r=cr.bytes,Br=rr+cr.byteOffset,Et=U($r,Br,Br+Vt);return qt?Et:yr(Et)},gr=function(Ut,Vt,bt,fr,cr,rr){var qt=pt(Ut),$r=I(bt),Br=fr(+cr),Et=!!rr;if($r+Vt>qt.byteLength)throw new ir(at);for(var Bt=qt.bytes,wt=$r+qt.byteOffset,gt=0;gt<Vt;gt++)Bt[wt+gt]=Br[Et?gt:Vt-gt-1]};if(!i)$t=function(Vt){y(this,Rt);var bt=I(Vt);Ct(this,{type:k,bytes:Or(er(bt),0),byteLength:bt}),o||(this.byteLength=bt,this.detached=!1)},Rt=$t[ut],Qt=function(Vt,bt,fr){y(this,Yt),y(Vt,Rt);var cr=ot(Vt),rr=cr.byteLength,qt=S(bt);if(qt<0||qt>rr)throw new ir("Wrong offset");if(fr=fr===void 0?rr-qt:E(fr),qt+fr>rr)throw new ir(rt);Ct(this,{type:st,buffer:Vt,byteLength:fr,byteOffset:qt,bytes:cr.bytes}),o||(this.buffer=Vt,this.byteLength=fr,this.byteOffset=qt)},Yt=Qt[ut],o&&(Dr($t,"byteLength",ot),Dr(Qt,"buffer",pt),Dr(Qt,"byteLength",pt),Dr(Qt,"byteOffset",pt)),g(Yt,{getInt8:function(Vt){return Pr(this,1,Vt)[0]<<24>>24},getUint8:function(Vt){return Pr(this,1,Vt)[0]},getInt16:function(Vt){var bt=Pr(this,2,Vt,arguments.length>1?arguments[1]:!1);return(bt[1]<<8|bt[0])<<16>>16},getUint16:function(Vt){var bt=Pr(this,2,Vt,arguments.length>1?arguments[1]:!1);return bt[1]<<8|bt[0]},getInt32:function(Vt){return mr(Pr(this,4,Vt,arguments.length>1?arguments[1]:!1))},getUint32:function(Vt){return mr(Pr(this,4,Vt,arguments.length>1?arguments[1]:!1))>>>0},getFloat32:function(Vt){return Kt(Pr(this,4,Vt,arguments.length>1?arguments[1]:!1),23)},getFloat64:function(Vt){return Kt(Pr(this,8,Vt,arguments.length>1?arguments[1]:!1),52)},setInt8:function(Vt,bt){gr(this,1,Vt,_t,bt)},setUint8:function(Vt,bt){gr(this,1,Vt,_t,bt)},setInt16:function(Vt,bt){gr(this,2,Vt,hr,bt,arguments.length>2?arguments[2]:!1)},setUint16:function(Vt,bt){gr(this,2,Vt,hr,bt,arguments.length>2?arguments[2]:!1)},setInt32:function(Vt,bt){gr(this,4,Vt,Sr,bt,arguments.length>2?arguments[2]:!1)},setUint32:function(Vt,bt){gr(this,4,Vt,Sr,bt,arguments.length>2?arguments[2]:!1)},setFloat32:function(Vt,bt){gr(this,4,Vt,Ir,bt,arguments.length>2?arguments[2]:!1)},setFloat64:function(Vt,bt){gr(this,8,Vt,Fr,bt,arguments.length>2?arguments[2]:!1)}});else{var Cr=X&&St.name!==k;!v(function(){St(1)})||!v(function(){new St(-1)})||v(function(){return new St,new St(1.5),new St(NaN),St.length!==1||Cr&&!Y})?($t=function(Vt){return y(this,Rt),G(new St(I(Vt)),this,$t)},$t[ut]=Rt,Rt.constructor=$t,N($t,St)):Cr&&Y&&f(St,"name",k),D&&M(Yt)!==Xt&&D(Yt,Xt);var Er=new Qt(new $t(2)),pr=e(Yt.setInt8);Er.setInt8(0,2147483648),Er.setInt8(1,2147483649),(Er.getInt8(0)||!Er.getInt8(1))&&g(Yt,{setInt8:function(Vt,bt){pr(this,Vt,bt<<24>>24)},setUint8:function(Vt,bt){pr(this,Vt,bt<<24>>24)}},{unsafe:!0})}w($t,k),w(Qt,st),l.exports={ArrayBuffer:$t,DataView:Qt}},81499:function(l,p,t){var n=t(49671),e=t(4652),o=t(82628),i=t(12384),u=Math.min;l.exports=[].copyWithin||function(c,g){var v=n(this),y=o(v),S=e(c,y),E=e(g,y),I=arguments.length>2?arguments[2]:void 0,A=u((I===void 0?y:e(I,y))-E,y-S),T=1;for(E<S&&S<E+A&&(T=-1,E+=A-1,S+=A-1);A-- >0;)E in v?v[S]=v[E]:i(v,S),S+=T,E+=T;return v}},43011:function(l,p,t){var n=t(49671),e=t(4652),o=t(82628);l.exports=function(u){for(var f=n(this),c=o(f),g=arguments.length,v=e(g>1?arguments[1]:void 0,c),y=g>2?arguments[2]:void 0,S=y===void 0?c:e(y,c);S>v;)f[v++]=u;return f}},13349:function(l,p,t){var n=t(66655).forEach,e=t(6148),o=e("forEach");l.exports=o?[].forEach:function(u){return n(this,u,arguments.length>1?arguments[1]:void 0)}},5220:function(l,p,t){var n=t(82628);l.exports=function(e,o,i){for(var u=0,f=arguments.length>2?i:n(o),c=new e(f);f>u;)c[u]=o[u++];return c}},48258:function(l,p,t){var n=t(45526),e=t(96499),o=t(49671),i=t(39969),u=t(48199),f=t(11051),c=t(82628),g=t(84082),v=t(90619),y=t(81077),S=Array;l.exports=function(I){var A=o(I),T=f(this),M=arguments.length,D=M>1?arguments[1]:void 0,$=D!==void 0;$&&(D=n(D,M>2?arguments[2]:void 0));var U=y(A),G=0,N,w,W,X,Y,k;if(U&&!(this===S&&u(U)))for(w=T?new this:[],X=v(A,U),Y=X.next;!(W=e(Y,X)).done;G++)k=$?i(X,D,[W.value,G],!0):W.value,g(w,G,k);else for(N=c(A),w=T?new this(N):S(N);N>G;G++)k=$?D(A[G],G):A[G],g(w,G,k);return w.length=G,w}},94319:function(l,p,t){var n=t(36859),e=t(4652),o=t(82628),i=function(u){return function(f,c,g){var v=n(f),y=o(v);if(y===0)return!u&&-1;var S=e(g,y),E;if(u&&c!==c){for(;y>S;)if(E=v[S++],E!==E)return!0}else for(;y>S;S++)if((u||S in v)&&v[S]===c)return u||S||0;return!u&&-1}};l.exports={includes:i(!0),indexOf:i(!1)}},73849:function(l,p,t){var n=t(45526),e=t(72181),o=t(49671),i=t(82628),u=function(f){var c=f===1;return function(g,v,y){for(var S=o(g),E=e(S),I=i(E),A=n(v,y),T,M;I-- >0;)if(T=E[I],M=A(T,I,S),M)switch(f){case 0:return T;case 1:return I}return c?-1:void 0}};l.exports={findLast:u(0),findLastIndex:u(1)}},66655:function(l,p,t){var n=t(45526),e=t(11286),o=t(72181),i=t(49671),u=t(82628),f=t(62083),c=e([].push),g=function(v){var y=v===1,S=v===2,E=v===3,I=v===4,A=v===6,T=v===7,M=v===5||A;return function(D,$,U,G){for(var N=i(D),w=o(N),W=u(w),X=n($,U),Y=0,k=G||f,st=y?k(D,W):S||T?k(D,0):void 0,ut,rt;W>Y;Y++)if((M||Y in w)&&(ut=w[Y],rt=X(ut,Y,N),v))if(y)st[Y]=rt;else if(rt)switch(v){case 3:return!0;case 5:return ut;case 6:return Y;case 2:c(st,ut)}else switch(v){case 4:return!1;case 7:c(st,ut)}return A?-1:E||I?I:st}};l.exports={forEach:g(0),map:g(1),filter:g(2),some:g(3),every:g(4),find:g(5),findIndex:g(6),filterReject:g(7)}},58465:function(l,p,t){var n=t(66543),e=t(36859),o=t(12105),i=t(82628),u=t(6148),f=Math.min,c=[].lastIndexOf,g=!!c&&1/[1].lastIndexOf(1,-0)<0,v=u("lastIndexOf"),y=g||!v;l.exports=y?function(E){if(g)return n(c,this,arguments)||0;var I=e(this),A=i(I);if(A===0)return-1;var T=A-1;for(arguments.length>1&&(T=f(T,o(arguments[1]))),T<0&&(T=A+T);T>=0;T--)if(T in I&&I[T]===E)return T||0;return-1}:c},52183:function(l,p,t){var n=t(72069),e=t(18565),o=t(73126),i=e("species");l.exports=function(u){return o>=51||!n(function(){var f=[],c=f.constructor={};return c[i]=function(){return{foo:1}},f[u](Boolean).foo!==1})}},6148:function(l,p,t){var n=t(72069);l.exports=function(e,o){var i=[][e];return!!i&&n(function(){i.call(null,o||function(){return 1},1)})}},97264:function(l,p,t){var n=t(85156),e=t(49671),o=t(72181),i=t(82628),u=TypeError,f="Reduce of empty array with no initial value",c=function(g){return function(v,y,S,E){var I=e(v),A=o(I),T=i(I);if(n(y),T===0&&S<2)throw new u(f);var M=g?T-1:0,D=g?-1:1;if(S<2)for(;;){if(M in A){E=A[M],M+=D;break}if(M+=D,g?M<0:T<=M)throw new u(f)}for(;g?M>=0:T>M;M+=D)M in A&&(E=y(E,A[M],M,I));return E}};l.exports={left:c(!1),right:c(!0)}},2213:function(l,p,t){var n=t(92986),e=t(3438),o=TypeError,i=Object.getOwnPropertyDescriptor,u=n&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(f){return f instanceof TypeError}}();l.exports=u?function(f,c){if(e(f)&&!i(f,"length").writable)throw new o("Cannot set read only .length");return f.length=c}:function(f,c){return f.length=c}},22806:function(l,p,t){var n=t(11286);l.exports=n([].slice)},13270:function(l,p,t){var n=t(22806),e=Math.floor,o=function(i,u){var f=i.length;if(f<8)for(var c=1,g,v;c<f;){for(v=c,g=i[c];v&&u(i[v-1],g)>0;)i[v]=i[--v];v!==c++&&(i[v]=g)}else for(var y=e(f/2),S=o(n(i,0,y),u),E=o(n(i,y),u),I=S.length,A=E.length,T=0,M=0;T<I||M<A;)i[T+M]=T<I&&M<A?u(S[T],E[M])<=0?S[T++]:E[M++]:T<I?S[T++]:E[M++];return i};l.exports=o},37555:function(l,p,t){var n=t(3438),e=t(11051),o=t(37540),i=t(18565),u=i("species"),f=Array;l.exports=function(c){var g;return n(c)&&(g=c.constructor,e(g)&&(g===f||n(g.prototype))?g=void 0:o(g)&&(g=g[u],g===null&&(g=void 0))),g===void 0?f:g}},62083:function(l,p,t){var n=t(37555);l.exports=function(e,o){return new(n(e))(o===0?0:o)}},61638:function(l,p,t){var n=t(82628);l.exports=function(e,o){for(var i=n(e),u=new o(i),f=0;f<i;f++)u[f]=e[i-f-1];return u}},72302:function(l,p,t){var n=t(82628),e=t(12105),o=RangeError;l.exports=function(i,u,f,c){var g=n(i),v=e(f),y=v<0?g+v:v;if(y>=g||y<0)throw new o("Incorrect index");for(var S=new u(g),E=0;E<g;E++)S[E]=E===y?c:i[E];return S}},6210:function(l){var p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t=p+"+/",n=p+"-_",e=function(o){for(var i={},u=0;u<64;u++)i[o.charAt(u)]=u;return i};l.exports={i2c:t,c2i:e(t),i2cUrl:n,c2iUrl:e(n)}},39969:function(l,p,t){var n=t(25001),e=t(99797);l.exports=function(o,i,u,f){try{return f?i(n(u)[0],u[1]):i(u)}catch(c){e(o,"throw",c)}}},97494:function(l,p,t){var n=t(18565),e=n("iterator"),o=!1;try{var i=0,u={next:function(){return{done:!!i++}},return:function(){o=!0}};u[e]=function(){return this},Array.from(u,function(){throw 2})}catch(f){}l.exports=function(f,c){try{if(!c&&!o)return!1}catch(y){return!1}var g=!1;try{var v={};v[e]=function(){return{next:function(){return{done:g=!0}}}},f(v)}catch(y){}return g}},14274:function(l,p,t){var n=t(11286),e=n({}.toString),o=n("".slice);l.exports=function(i){return o(e(i),8,-1)}},9205:function(l,p,t){var n=t(67878),e=t(23583),o=t(14274),i=t(18565),u=i("toStringTag"),f=Object,c=o(function(){return arguments}())==="Arguments",g=function(v,y){try{return v[y]}catch(S){}};l.exports=n?o:function(v){var y,S,E;return v===void 0?"Undefined":v===null?"Null":typeof(S=g(y=f(v),u))=="string"?S:c?o(y):(E=o(y))==="Object"&&e(y.callee)?"Arguments":E}},34440:function(l,p,t){var n=t(5406),e=t(85500),o=t(2725),i=t(45526),u=t(12833),f=t(5683),c=t(55902),g=t(10218),v=t(10659),y=t(36167),S=t(92986),E=t(31853).fastKey,I=t(82367),A=I.set,T=I.getterFor;l.exports={getConstructor:function(M,D,$,U){var G=M(function(Y,k){u(Y,N),A(Y,{type:D,index:n(null),first:void 0,last:void 0,size:0}),S||(Y.size=0),f(k)||c(k,Y[U],{that:Y,AS_ENTRIES:$})}),N=G.prototype,w=T(D),W=function(Y,k,st){var ut=w(Y),rt=X(Y,k),at,ot;return rt?rt.value=st:(ut.last=rt={index:ot=E(k,!0),key:k,value:st,previous:at=ut.last,next:void 0,removed:!1},ut.first||(ut.first=rt),at&&(at.next=rt),S?ut.size++:Y.size++,ot!=="F"&&(ut.index[ot]=rt)),Y},X=function(Y,k){var st=w(Y),ut=E(k),rt;if(ut!=="F")return st.index[ut];for(rt=st.first;rt;rt=rt.next)if(rt.key===k)return rt};return o(N,{clear:function(){for(var k=this,st=w(k),ut=st.first;ut;)ut.removed=!0,ut.previous&&(ut.previous=ut.previous.next=void 0),ut=ut.next;st.first=st.last=void 0,st.index=n(null),S?st.size=0:k.size=0},delete:function(Y){var k=this,st=w(k),ut=X(k,Y);if(ut){var rt=ut.next,at=ut.previous;delete st.index[ut.index],ut.removed=!0,at&&(at.next=rt),rt&&(rt.previous=at),st.first===ut&&(st.first=rt),st.last===ut&&(st.last=at),S?st.size--:k.size--}return!!ut},forEach:function(k){for(var st=w(this),ut=i(k,arguments.length>1?arguments[1]:void 0),rt;rt=rt?rt.next:st.first;)for(ut(rt.value,rt.key,this);rt&&rt.removed;)rt=rt.previous},has:function(k){return!!X(this,k)}}),o(N,$?{get:function(k){var st=X(this,k);return st&&st.value},set:function(k,st){return W(this,k===0?0:k,st)}}:{add:function(k){return W(this,k=k===0?0:k,k)}}),S&&e(N,"size",{configurable:!0,get:function(){return w(this).size}}),G},setStrong:function(M,D,$){var U=D+" Iterator",G=T(D),N=T(U);g(M,D,function(w,W){A(this,{type:U,target:w,state:G(w),kind:W,last:void 0})},function(){for(var w=N(this),W=w.kind,X=w.last;X&&X.removed;)X=X.previous;return!w.target||!(w.last=X=X?X.next:w.state.first)?(w.target=void 0,v(void 0,!0)):v(W==="keys"?X.key:W==="values"?X.value:[X.key,X.value],!1)},$?"entries":"values",!$,!0),y(D)}}},94667:function(l,p,t){var n=t(11286),e=t(2725),o=t(31853).getWeakData,i=t(12833),u=t(25001),f=t(5683),c=t(37540),g=t(55902),v=t(66655),y=t(94879),S=t(82367),E=S.set,I=S.getterFor,A=v.find,T=v.findIndex,M=n([].splice),D=0,$=function(N){return N.frozen||(N.frozen=new U)},U=function(){this.entries=[]},G=function(N,w){return A(N.entries,function(W){return W[0]===w})};U.prototype={get:function(N){var w=G(this,N);if(w)return w[1]},has:function(N){return!!G(this,N)},set:function(N,w){var W=G(this,N);W?W[1]=w:this.entries.push([N,w])},delete:function(N){var w=T(this.entries,function(W){return W[0]===N});return~w&&M(this.entries,w,1),!!~w}},l.exports={getConstructor:function(N,w,W,X){var Y=N(function(rt,at){i(rt,k),E(rt,{type:w,id:D++,frozen:void 0}),f(at)||g(at,rt[X],{that:rt,AS_ENTRIES:W})}),k=Y.prototype,st=I(w),ut=function(rt,at,ot){var pt=st(rt),Ct=o(u(at),!0);return Ct===!0?$(pt).set(at,ot):Ct[pt.id]=ot,rt};return e(k,{delete:function(rt){var at=st(this);if(!c(rt))return!1;var ot=o(rt);return ot===!0?$(at).delete(rt):ot&&y(ot,at.id)&&delete ot[at.id]},has:function(at){var ot=st(this);if(!c(at))return!1;var pt=o(at);return pt===!0?$(ot).has(at):pt&&y(pt,ot.id)}}),e(k,W?{get:function(at){var ot=st(this);if(c(at)){var pt=o(at);return pt===!0?$(ot).get(at):pt?pt[ot.id]:void 0}},set:function(at,ot){return ut(this,at,ot)}}:{add:function(at){return ut(this,at,!0)}}),Y}}},89378:function(l,p,t){var n=t(14304),e=t(66009),o=t(11286),i=t(13278),u=t(16142),f=t(31853),c=t(55902),g=t(12833),v=t(23583),y=t(5683),S=t(37540),E=t(72069),I=t(97494),A=t(78401),T=t(32345);l.exports=function(M,D,$){var U=M.indexOf("Map")!==-1,G=M.indexOf("Weak")!==-1,N=U?"set":"add",w=e[M],W=w&&w.prototype,X=w,Y={},k=function(Ct){var St=o(W[Ct]);u(W,Ct,Ct==="add"?function(Rt){return St(this,Rt===0?0:Rt),this}:Ct==="delete"?function($t){return G&&!S($t)?!1:St(this,$t===0?0:$t)}:Ct==="get"?function(Rt){return G&&!S(Rt)?void 0:St(this,Rt===0?0:Rt)}:Ct==="has"?function(Rt){return G&&!S(Rt)?!1:St(this,Rt===0?0:Rt)}:function(Rt,Qt){return St(this,Rt===0?0:Rt,Qt),this})},st=i(M,!v(w)||!(G||W.forEach&&!E(function(){new w().entries().next()})));if(st)X=$.getConstructor(D,M,U,N),f.enable();else if(i(M,!0)){var ut=new X,rt=ut[N](G?{}:-0,1)!==ut,at=E(function(){ut.has(1)}),ot=I(function(Ct){new w(Ct)}),pt=!G&&E(function(){for(var Ct=new w,St=5;St--;)Ct[N](St,St);return!Ct.has(-0)});ot||(X=D(function(Ct,St){g(Ct,W);var $t=T(new w,Ct,X);return y(St)||c(St,$t[N],{that:$t,AS_ENTRIES:U}),$t}),X.prototype=W,W.constructor=X),(at||pt)&&(k("delete"),k("has"),U&&k("get")),(pt||rt)&&k(N),G&&W.clear&&delete W.clear}return Y[M]=X,n({global:!0,constructor:!0,forced:X!==w},Y),A(X,M),G||$.setStrong(X,M,U),X}},93706:function(l,p,t){var n=t(94879),e=t(16885),o=t(71349),i=t(7831);l.exports=function(u,f,c){for(var g=e(f),v=i.f,y=o.f,S=0;S<g.length;S++){var E=g[S];!n(u,E)&&!(c&&n(c,E))&&v(u,E,y(f,E))}}},8790:function(l,p,t){var n=t(18565),e=n("match");l.exports=function(o){var i=/./;try{"/./"[o](i)}catch(u){try{return i[e]=!1,"/./"[o](i)}catch(f){}}return!1}},87501:function(l,p,t){var n=t(72069);l.exports=!n(function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})},68422:function(l,p,t){var n=t(11286),e=t(2068),o=t(17361),i=/"/g,u=n("".replace);l.exports=function(f,c,g,v){var y=o(e(f)),S="<"+c;return g!==""&&(S+=" "+g+'="'+u(o(v),i,""")+'"'),S+">"+y+"</"+c+">"}},10659:function(l){l.exports=function(p,t){return{value:p,done:t}}},90809:function(l,p,t){var n=t(92986),e=t(7831),o=t(18526);l.exports=n?function(i,u,f){return e.f(i,u,o(1,f))}:function(i,u,f){return i[u]=f,i}},18526:function(l){l.exports=function(p,t){return{enumerable:!(p&1),configurable:!(p&2),writable:!(p&4),value:t}}},84082:function(l,p,t){var n=t(92986),e=t(7831),o=t(18526);l.exports=function(i,u,f){n?e.f(i,u,o(0,f)):i[u]=f}},11890:function(l,p,t){var n=t(11286),e=t(72069),o=t(61607).start,i=RangeError,u=isFinite,f=Math.abs,c=Date.prototype,g=c.toISOString,v=n(c.getTime),y=n(c.getUTCDate),S=n(c.getUTCFullYear),E=n(c.getUTCHours),I=n(c.getUTCMilliseconds),A=n(c.getUTCMinutes),T=n(c.getUTCMonth),M=n(c.getUTCSeconds);l.exports=e(function(){return g.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!e(function(){g.call(new Date(NaN))})?function(){if(!u(v(this)))throw new i("Invalid time value");var $=this,U=S($),G=I($),N=U<0?"-":U>9999?"+":"";return N+o(f(U),N?6:4,0)+"-"+o(T($)+1,2,0)+"-"+o(y($),2,0)+"T"+o(E($),2,0)+":"+o(A($),2,0)+":"+o(M($),2,0)+"."+o(G,3,0)+"Z"}:g},84306:function(l,p,t){var n=t(25001),e=t(2064),o=TypeError;l.exports=function(i){if(n(this),i==="string"||i==="default")i="string";else if(i!=="number")throw new o("Incorrect hint");return e(this,i)}},85500:function(l,p,t){var n=t(13749),e=t(7831);l.exports=function(o,i,u){return u.get&&n(u.get,i,{getter:!0}),u.set&&n(u.set,i,{setter:!0}),e.f(o,i,u)}},16142:function(l,p,t){var n=t(23583),e=t(7831),o=t(13749),i=t(36003);l.exports=function(u,f,c,g){g||(g={});var v=g.enumerable,y=g.name!==void 0?g.name:f;if(n(c)&&o(c,y,g),g.global)v?u[f]=c:i(f,c);else{try{g.unsafe?u[f]&&(v=!0):delete u[f]}catch(S){}v?u[f]=c:e.f(u,f,{value:c,enumerable:!1,configurable:!g.nonConfigurable,writable:!g.nonWritable})}return u}},2725:function(l,p,t){var n=t(16142);l.exports=function(e,o,i){for(var u in o)n(e,u,o[u],i);return e}},36003:function(l,p,t){var n=t(66009),e=Object.defineProperty;l.exports=function(o,i){try{e(n,o,{value:i,configurable:!0,writable:!0})}catch(u){n[o]=i}return i}},12384:function(l,p,t){var n=t(82453),e=TypeError;l.exports=function(o,i){if(!delete o[i])throw new e("Cannot delete property "+n(i)+" of "+n(o))}},92986:function(l,p,t){var n=t(72069);l.exports=!n(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})},63741:function(l,p,t){var n=t(66009),e=t(18096),o=t(99050),i=n.structuredClone,u=n.ArrayBuffer,f=n.MessageChannel,c=!1,g,v,y,S;if(o)c=function(E){i(E,{transfer:[E]})};else if(u)try{f||(g=e("worker_threads"),g&&(f=g.MessageChannel)),f&&(v=new f,y=new u(2),S=function(E){v.port1.postMessage(null,[E])},y.byteLength===2&&(S(y),y.byteLength===0&&(c=S)))}catch(E){}l.exports=c},85501:function(l,p,t){var n=t(66009),e=t(37540),o=n.document,i=e(o)&&e(o.createElement);l.exports=function(u){return i?o.createElement(u):{}}},20095:function(l){var p=TypeError,t=9007199254740991;l.exports=function(n){if(n>t)throw p("Maximum allowed index exceeded");return n}},74408:function(l){l.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},93014:function(l){l.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},39882:function(l,p,t){var n=t(85501),e=n("span").classList,o=e&&e.constructor&&e.constructor.prototype;l.exports=o===Object.prototype?void 0:o},54040:function(l,p,t){var n=t(89042),e=n.match(/firefox\/(\d+)/i);l.exports=!!e&&+e[1]},63144:function(l,p,t){var n=t(56422),e=t(42954);l.exports=!n&&!e&&typeof window=="object"&&typeof document=="object"},5017:function(l){l.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"},56422:function(l){l.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},87216:function(l,p,t){var n=t(89042);l.exports=/MSIE|Trident/.test(n)},92150:function(l,p,t){var n=t(89042);l.exports=/ipad|iphone|ipod/i.test(n)&&typeof Pebble!="undefined"},51149:function(l,p,t){var n=t(89042);l.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)},42954:function(l,p,t){var n=t(66009),e=t(14274);l.exports=e(n.process)==="process"},81539:function(l,p,t){var n=t(89042);l.exports=/web0s(?!.*chrome)/i.test(n)},89042:function(l){l.exports=typeof navigator!="undefined"&&String(navigator.userAgent)||""},73126:function(l,p,t){var n=t(66009),e=t(89042),o=n.process,i=n.Deno,u=o&&o.versions||i&&i.version,f=u&&u.v8,c,g;f&&(c=f.split("."),g=c[0]>0&&c[0]<4?1:+(c[0]+c[1])),!g&&e&&(c=e.match(/Edge\/(\d+)/),(!c||c[1]>=74)&&(c=e.match(/Chrome\/(\d+)/),c&&(g=+c[1]))),l.exports=g},68674:function(l,p,t){var n=t(89042),e=n.match(/AppleWebKit\/(\d+)\./);l.exports=!!e&&+e[1]},75785:function(l){l.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},40851:function(l,p,t){var n=t(11286),e=Error,o=n("".replace),i=function(c){return String(new e(c).stack)}("zxcasd"),u=/\n\s*at [^:]*:[^\n]*/,f=u.test(i);l.exports=function(c,g){if(f&&typeof c=="string"&&!e.prepareStackTrace)for(;g--;)c=o(c,u,"");return c}},97077:function(l,p,t){var n=t(90809),e=t(40851),o=t(16929),i=Error.captureStackTrace;l.exports=function(u,f,c,g){o&&(i?i(u,f):n(u,"stack",e(c,g)))}},16929:function(l,p,t){var n=t(72069),e=t(18526);l.exports=!n(function(){var o=new Error("a");return"stack"in o?(Object.defineProperty(o,"stack",e(1,7)),o.stack!==7):!0})},58434:function(l,p,t){var n=t(92986),e=t(72069),o=t(25001),i=t(15453),u=Error.prototype.toString,f=e(function(){if(n){var c=Object.create(Object.defineProperty({},"name",{get:function(){return this===c}}));if(u.call(c)!=="true")return!0}return u.call({message:1,name:2})!=="2: 1"||u.call({})!=="Error"});l.exports=f?function(){var g=o(this),v=i(g.name,"Error"),y=i(g.message);return v?y?v+": "+y:v:y}:u},14304:function(l,p,t){var n=t(66009),e=t(71349).f,o=t(90809),i=t(16142),u=t(36003),f=t(93706),c=t(13278);l.exports=function(g,v){var y=g.target,S=g.global,E=g.stat,I,A,T,M,D,$;if(S?A=n:E?A=n[y]||u(y,{}):A=n[y]&&n[y].prototype,A)for(T in v){if(D=v[T],g.dontCallGetSet?($=e(A,T),M=$&&$.value):M=A[T],I=c(S?T:y+(E?".":"#")+T,g.forced),!I&&M!==void 0){if(typeof D==typeof M)continue;f(D,M)}(g.sham||M&&M.sham)&&o(D,"sham",!0),i(A,T,D,g)}}},72069:function(l){l.exports=function(p){try{return!!p()}catch(t){return!0}}},63194:function(l,p,t){t(31145);var n=t(96499),e=t(16142),o=t(44381),i=t(72069),u=t(18565),f=t(90809),c=u("species"),g=RegExp.prototype;l.exports=function(v,y,S,E){var I=u(v),A=!i(function(){var $={};return $[I]=function(){return 7},""[v]($)!==7}),T=A&&!i(function(){var $=!1,U=/a/;return v==="split"&&(U={},U.constructor={},U.constructor[c]=function(){return U},U.flags="",U[I]=/./[I]),U.exec=function(){return $=!0,null},U[I](""),!$});if(!A||!T||S){var M=/./[I],D=y(I,""[v],function($,U,G,N,w){var W=U.exec;return W===o||W===g.exec?A&&!w?{done:!0,value:n(M,U,G,N)}:{done:!0,value:n($,G,U,N)}:{done:!1}});e(String.prototype,v,D[0]),e(g,I,D[1])}E&&f(g[I],"sham",!0)}},53149:function(l,p,t){var n=t(3438),e=t(82628),o=t(20095),i=t(45526),u=function(f,c,g,v,y,S,E,I){for(var A=y,T=0,M=E?i(E,I):!1,D,$;T<v;)T in g&&(D=M?M(g[T],T,c):g[T],S>0&&n(D)?($=e(D),A=u(f,c,D,$,A,S-1)-1):(o(A+1),f[A]=D),A++),T++;return A};l.exports=u},27534:function(l,p,t){var n=t(72069);l.exports=!n(function(){return Object.isExtensible(Object.preventExtensions({}))})},66543:function(l,p,t){var n=t(87878),e=Function.prototype,o=e.apply,i=e.call;l.exports=typeof Reflect=="object"&&Reflect.apply||(n?i.bind(o):function(){return i.apply(o,arguments)})},45526:function(l,p,t){var n=t(77422),e=t(85156),o=t(87878),i=n(n.bind);l.exports=function(u,f){return e(u),f===void 0?u:o?i(u,f):function(){return u.apply(f,arguments)}}},87878:function(l,p,t){var n=t(72069);l.exports=!n(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})},91384:function(l,p,t){var n=t(11286),e=t(85156),o=t(37540),i=t(94879),u=t(22806),f=t(87878),c=Function,g=n([].concat),v=n([].join),y={},S=function(E,I,A){if(!i(y,I)){for(var T=[],M=0;M<I;M++)T[M]="a["+M+"]";y[I]=c("C,a","return new C("+v(T,",")+")")}return y[I](E,A)};l.exports=f?c.bind:function(I){var A=e(this),T=A.prototype,M=u(arguments,1),D=function(){var U=g(M,u(arguments));return this instanceof D?S(A,U.length,U):A.apply(I,U)};return o(T)&&(D.prototype=T),D}},96499:function(l,p,t){var n=t(87878),e=Function.prototype.call;l.exports=n?e.bind(e):function(){return e.apply(e,arguments)}},86588:function(l,p,t){var n=t(92986),e=t(94879),o=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,u=e(o,"name"),f=u&&function(){}.name==="something",c=u&&(!n||n&&i(o,"name").configurable);l.exports={EXISTS:u,PROPER:f,CONFIGURABLE:c}},84756:function(l,p,t){var n=t(11286),e=t(85156);l.exports=function(o,i,u){try{return n(e(Object.getOwnPropertyDescriptor(o,i)[u]))}catch(f){}}},77422:function(l,p,t){var n=t(14274),e=t(11286);l.exports=function(o){if(n(o)==="Function")return e(o)}},11286:function(l,p,t){var n=t(87878),e=Function.prototype,o=e.call,i=n&&e.bind.bind(o,o);l.exports=n?i:function(u){return function(){return o.apply(u,arguments)}}},65470:function(l,p,t){var n=t(66009);l.exports=function(e,o){var i=n[e],u=i&&i.prototype;return u&&u[o]}},38941:function(l,p,t){var n=t(66009),e=t(23583),o=function(i){return e(i)?i:void 0};l.exports=function(i,u){return arguments.length<2?o(n[i]):n[i]&&n[i][u]}},10613:function(l){l.exports=function(p){return{iterator:p,next:p.next,done:!1}}},81077:function(l,p,t){var n=t(9205),e=t(10512),o=t(5683),i=t(29107),u=t(18565),f=u("iterator");l.exports=function(c){if(!o(c))return e(c,f)||e(c,"@@iterator")||i[n(c)]}},90619:function(l,p,t){var n=t(96499),e=t(85156),o=t(25001),i=t(82453),u=t(81077),f=TypeError;l.exports=function(c,g){var v=arguments.length<2?u(c):g;if(e(v))return o(n(v,c));throw new f(i(c)+" is not iterable")}},10443:function(l,p,t){var n=t(11286),e=t(3438),o=t(23583),i=t(14274),u=t(17361),f=n([].push);l.exports=function(c){if(o(c))return c;if(e(c)){for(var g=c.length,v=[],y=0;y<g;y++){var S=c[y];typeof S=="string"?f(v,S):(typeof S=="number"||i(S)==="Number"||i(S)==="String")&&f(v,u(S))}var E=v.length,I=!0;return function(A,T){if(I)return I=!1,T;if(e(this))return T;for(var M=0;M<E;M++)if(v[M]===A)return T}}}},10512:function(l,p,t){var n=t(85156),e=t(5683);l.exports=function(o,i){var u=o[i];return e(u)?void 0:n(u)}},65263:function(l,p,t){var n=t(85156),e=t(25001),o=t(96499),i=t(12105),u=t(10613),f="Invalid size",c=RangeError,g=TypeError,v=Math.max,y=function(S,E){this.set=S,this.size=v(E,0),this.has=n(S.has),this.keys=n(S.keys)};y.prototype={getIterator:function(){return u(e(o(this.keys,this.set)))},includes:function(S){return o(this.has,this.set,S)}},l.exports=function(S){e(S);var E=+S.size;if(E!==E)throw new g(f);var I=i(E);if(I<0)throw new c(f);return new y(S,I)}},38368:function(l,p,t){var n=t(11286),e=t(49671),o=Math.floor,i=n("".charAt),u=n("".replace),f=n("".slice),c=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,g=/\$([$&'`]|\d{1,2})/g;l.exports=function(v,y,S,E,I,A){var T=S+v.length,M=E.length,D=g;return I!==void 0&&(I=e(I),D=c),u(A,D,function($,U){var G;switch(i(U,0)){case"$":return"$";case"&":return v;case"`":return f(y,0,S);case"'":return f(y,T);case"<":G=I[f(U,1,-1)];break;default:var N=+U;if(N===0)return $;if(N>M){var w=o(N/10);return w===0?$:w<=M?E[w-1]===void 0?i(U,1):E[w-1]+i(U,1):$}G=E[N-1]}return G===void 0?"":G})}},66009:function(l){var p=function(t){return t&&t.Math===Math&&t};l.exports=p(typeof globalThis=="object"&&globalThis)||p(typeof window=="object"&&window)||p(typeof self=="object"&&self)||p(typeof global=="object"&&global)||p(typeof this=="object"&&this)||function(){return this}()||Function("return this")()},94879:function(l,p,t){var n=t(11286),e=t(49671),o=n({}.hasOwnProperty);l.exports=Object.hasOwn||function(u,f){return o(e(u),f)}},19423:function(l){l.exports={}},99095:function(l){l.exports=function(p,t){try{arguments.length===1?console.error(p):console.error(p,t)}catch(n){}}},96439:function(l,p,t){var n=t(38941);l.exports=n("document","documentElement")},52515:function(l,p,t){var n=t(92986),e=t(72069),o=t(85501);l.exports=!n&&!e(function(){return Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a!==7})},25212:function(l){var p=Array,t=Math.abs,n=Math.pow,e=Math.floor,o=Math.log,i=Math.LN2,u=function(c,g,v){var y=p(v),S=v*8-g-1,E=(1<<S)-1,I=E>>1,A=g===23?n(2,-24)-n(2,-77):0,T=c<0||c===0&&1/c<0?1:0,M=0,D,$,U;for(c=t(c),c!==c||c===1/0?($=c!==c?1:0,D=E):(D=e(o(c)/i),U=n(2,-D),c*U<1&&(D--,U*=2),D+I>=1?c+=A/U:c+=A*n(2,1-I),c*U>=2&&(D++,U/=2),D+I>=E?($=0,D=E):D+I>=1?($=(c*U-1)*n(2,g),D+=I):($=c*n(2,I-1)*n(2,g),D=0));g>=8;)y[M++]=$&255,$/=256,g-=8;for(D=D<<g|$,S+=g;S>0;)y[M++]=D&255,D/=256,S-=8;return y[--M]|=T*128,y},f=function(c,g){var v=c.length,y=v*8-g-1,S=(1<<y)-1,E=S>>1,I=y-7,A=v-1,T=c[A--],M=T&127,D;for(T>>=7;I>0;)M=M*256+c[A--],I-=8;for(D=M&(1<<-I)-1,M>>=-I,I+=g;I>0;)D=D*256+c[A--],I-=8;if(M===0)M=1-E;else{if(M===S)return D?NaN:T?-1/0:1/0;D+=n(2,g),M-=E}return(T?-1:1)*D*n(2,M-g)};l.exports={pack:u,unpack:f}},72181:function(l,p,t){var n=t(11286),e=t(72069),o=t(14274),i=Object,u=n("".split);l.exports=e(function(){return!i("z").propertyIsEnumerable(0)})?function(f){return o(f)==="String"?u(f,""):i(f)}:i},32345:function(l,p,t){var n=t(23583),e=t(37540),o=t(15861);l.exports=function(i,u,f){var c,g;return o&&n(c=u.constructor)&&c!==f&&e(g=c.prototype)&&g!==f.prototype&&o(i,g),i}},84352:function(l,p,t){var n=t(11286),e=t(23583),o=t(70443),i=n(Function.toString);e(o.inspectSource)||(o.inspectSource=function(u){return i(u)}),l.exports=o.inspectSource},31486:function(l,p,t){var n=t(37540),e=t(90809);l.exports=function(o,i){n(i)&&"cause"in i&&e(o,"cause",i.cause)}},31853:function(l,p,t){var n=t(14304),e=t(11286),o=t(19423),i=t(37540),u=t(94879),f=t(7831).f,c=t(83258),g=t(92880),v=t(28174),y=t(36374),S=t(27534),E=!1,I=y("meta"),A=0,T=function(N){f(N,I,{value:{objectID:"O"+A++,weakData:{}}})},M=function(N,w){if(!i(N))return typeof N=="symbol"?N:(typeof N=="string"?"S":"P")+N;if(!u(N,I)){if(!v(N))return"F";if(!w)return"E";T(N)}return N[I].objectID},D=function(N,w){if(!u(N,I)){if(!v(N))return!0;if(!w)return!1;T(N)}return N[I].weakData},$=function(N){return S&&E&&v(N)&&!u(N,I)&&T(N),N},U=function(){G.enable=function(){},E=!0;var N=c.f,w=e([].splice),W={};W[I]=1,N(W).length&&(c.f=function(X){for(var Y=N(X),k=0,st=Y.length;k<st;k++)if(Y[k]===I){w(Y,k,1);break}return Y},n({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:g.f}))},G=l.exports={enable:U,fastKey:M,getWeakData:D,onFreeze:$};o[I]=!0},82367:function(l,p,t){var n=t(42960),e=t(66009),o=t(37540),i=t(90809),u=t(94879),f=t(70443),c=t(44869),g=t(19423),v="Object already initialized",y=e.TypeError,S=e.WeakMap,E,I,A,T=function(U){return A(U)?I(U):E(U,{})},M=function(U){return function(G){var N;if(!o(G)||(N=I(G)).type!==U)throw new y("Incompatible receiver, "+U+" required");return N}};if(n||f.state){var D=f.state||(f.state=new S);D.get=D.get,D.has=D.has,D.set=D.set,E=function(U,G){if(D.has(U))throw new y(v);return G.facade=U,D.set(U,G),G},I=function(U){return D.get(U)||{}},A=function(U){return D.has(U)}}else{var $=c("state");g[$]=!0,E=function(U,G){if(u(U,$))throw new y(v);return G.facade=U,i(U,$,G),G},I=function(U){return u(U,$)?U[$]:{}},A=function(U){return u(U,$)}}l.exports={set:E,get:I,has:A,enforce:T,getterFor:M}},48199:function(l,p,t){var n=t(18565),e=t(29107),o=n("iterator"),i=Array.prototype;l.exports=function(u){return u!==void 0&&(e.Array===u||i[o]===u)}},3438:function(l,p,t){var n=t(14274);l.exports=Array.isArray||function(o){return n(o)==="Array"}},77129:function(l,p,t){var n=t(9205);l.exports=function(e){var o=n(e);return o==="BigInt64Array"||o==="BigUint64Array"}},23583:function(l){var p=typeof document=="object"&&document.all;l.exports=typeof p=="undefined"&&p!==void 0?function(t){return typeof t=="function"||t===p}:function(t){return typeof t=="function"}},11051:function(l,p,t){var n=t(11286),e=t(72069),o=t(23583),i=t(9205),u=t(38941),f=t(84352),c=function(){},g=u("Reflect","construct"),v=/^\s*(?:class|function)\b/,y=n(v.exec),S=!v.test(c),E=function(T){if(!o(T))return!1;try{return g(c,[],T),!0}catch(M){return!1}},I=function(T){if(!o(T))return!1;switch(i(T)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return S||!!y(v,f(T))}catch(M){return!0}};I.sham=!0,l.exports=!g||e(function(){var A;return E(E.call)||!E(Object)||!E(function(){A=!0})||A})?I:E},69745:function(l,p,t){var n=t(94879);l.exports=function(e){return e!==void 0&&(n(e,"value")||n(e,"writable"))}},13278:function(l,p,t){var n=t(72069),e=t(23583),o=/#|\.prototype\./,i=function(v,y){var S=f[u(v)];return S===g?!0:S===c?!1:e(y)?n(y):!!y},u=i.normalize=function(v){return String(v).replace(o,".").toLowerCase()},f=i.data={},c=i.NATIVE="N",g=i.POLYFILL="P";l.exports=i},613:function(l,p,t){var n=t(37540),e=Math.floor;l.exports=Number.isInteger||function(i){return!n(i)&&isFinite(i)&&e(i)===i}},5683:function(l){l.exports=function(p){return p==null}},37540:function(l,p,t){var n=t(23583);l.exports=function(e){return typeof e=="object"?e!==null:n(e)}},52427:function(l,p,t){var n=t(37540);l.exports=function(e){return n(e)||e===null}},70457:function(l){l.exports=!1},11566:function(l,p,t){var n=t(37540),e=t(14274),o=t(18565),i=o("match");l.exports=function(u){var f;return n(u)&&((f=u[i])!==void 0?!!f:e(u)==="RegExp")}},491:function(l,p,t){var n=t(38941),e=t(23583),o=t(95307),i=t(50234),u=Object;l.exports=i?function(f){return typeof f=="symbol"}:function(f){var c=n("Symbol");return e(c)&&o(c.prototype,u(f))}},9573:function(l,p,t){var n=t(96499);l.exports=function(e,o,i){for(var u=i?e:e.iterator,f=e.next,c,g;!(c=n(f,u)).done;)if(g=o(c.value),g!==void 0)return g}},55902:function(l,p,t){var n=t(45526),e=t(96499),o=t(25001),i=t(82453),u=t(48199),f=t(82628),c=t(95307),g=t(90619),v=t(81077),y=t(99797),S=TypeError,E=function(A,T){this.stopped=A,this.result=T},I=E.prototype;l.exports=function(A,T,M){var D=M&&M.that,$=!!(M&&M.AS_ENTRIES),U=!!(M&&M.IS_RECORD),G=!!(M&&M.IS_ITERATOR),N=!!(M&&M.INTERRUPTED),w=n(T,D),W,X,Y,k,st,ut,rt,at=function(pt){return W&&y(W,"normal",pt),new E(!0,pt)},ot=function(pt){return $?(o(pt),N?w(pt[0],pt[1],at):w(pt[0],pt[1])):N?w(pt,at):w(pt)};if(U)W=A.iterator;else if(G)W=A;else{if(X=v(A),!X)throw new S(i(A)+" is not iterable");if(u(X)){for(Y=0,k=f(A);k>Y;Y++)if(st=ot(A[Y]),st&&c(I,st))return st;return new E(!1)}W=g(A,X)}for(ut=U?A.next:W.next;!(rt=e(ut,W)).done;){try{st=ot(rt.value)}catch(pt){y(W,"throw",pt)}if(typeof st=="object"&&st&&c(I,st))return st}return new E(!1)}},99797:function(l,p,t){var n=t(96499),e=t(25001),o=t(10512);l.exports=function(i,u,f){var c,g;e(i);try{if(c=o(i,"return"),!c){if(u==="throw")throw f;return f}c=n(c,i)}catch(v){g=!0,c=v}if(u==="throw")throw f;if(g)throw c;return e(c),f}},26820:function(l,p,t){var n=t(24519).IteratorPrototype,e=t(5406),o=t(18526),i=t(78401),u=t(29107),f=function(){return this};l.exports=function(c,g,v,y){var S=g+" Iterator";return c.prototype=e(n,{next:o(+!y,v)}),i(c,S,!1,!0),u[S]=f,c}},10218:function(l,p,t){var n=t(14304),e=t(96499),o=t(70457),i=t(86588),u=t(23583),f=t(26820),c=t(26313),g=t(15861),v=t(78401),y=t(90809),S=t(16142),E=t(18565),I=t(29107),A=t(24519),T=i.PROPER,M=i.CONFIGURABLE,D=A.IteratorPrototype,$=A.BUGGY_SAFARI_ITERATORS,U=E("iterator"),G="keys",N="values",w="entries",W=function(){return this};l.exports=function(X,Y,k,st,ut,rt,at){f(k,Y,st);var ot=function(ir){if(ir===ut&&Rt)return Rt;if(!$&&ir&&ir in St)return St[ir];switch(ir){case G:return function(){return new k(this,ir)};case N:return function(){return new k(this,ir)};case w:return function(){return new k(this,ir)}}return function(){return new k(this)}},pt=Y+" Iterator",Ct=!1,St=X.prototype,$t=St[U]||St["@@iterator"]||ut&&St[ut],Rt=!$&&$t||ot(ut),Qt=Y==="Array"&&St.entries||$t,Yt,Xt,er;if(Qt&&(Yt=c(Qt.call(new X)),Yt!==Object.prototype&&Yt.next&&(!o&&c(Yt)!==D&&(g?g(Yt,D):u(Yt[U])||S(Yt,U,W)),v(Yt,pt,!0,!0),o&&(I[pt]=W))),T&&ut===N&&$t&&$t.name!==N&&(!o&&M?y(St,"name",N):(Ct=!0,Rt=function(){return e($t,this)})),ut)if(Xt={values:ot(N),keys:rt?Rt:ot(G),entries:ot(w)},at)for(er in Xt)($||Ct||!(er in St))&&S(St,er,Xt[er]);else n({target:Y,proto:!0,forced:$||Ct},Xt);return(!o||at)&&St[U]!==Rt&&S(St,U,Rt,{name:ut}),I[Y]=Rt,Xt}},24519:function(l,p,t){var n=t(72069),e=t(23583),o=t(37540),i=t(5406),u=t(26313),f=t(16142),c=t(18565),g=t(70457),v=c("iterator"),y=!1,S,E,I;[].keys&&(I=[].keys(),"next"in I?(E=u(u(I)),E!==Object.prototype&&(S=E)):y=!0);var A=!o(S)||n(function(){var T={};return S[v].call(T)!==T});A?S={}:g&&(S=i(S)),e(S[v])||f(S,v,function(){return this}),l.exports={IteratorPrototype:S,BUGGY_SAFARI_ITERATORS:y}},29107:function(l){l.exports={}},82628:function(l,p,t){var n=t(45344);l.exports=function(e){return n(e.length)}},13749:function(l,p,t){var n=t(11286),e=t(72069),o=t(23583),i=t(94879),u=t(92986),f=t(86588).CONFIGURABLE,c=t(84352),g=t(82367),v=g.enforce,y=g.get,S=String,E=Object.defineProperty,I=n("".slice),A=n("".replace),T=n([].join),M=u&&!e(function(){return E(function(){},"length",{value:8}).length!==8}),D=String(String).split("String"),$=l.exports=function(U,G,N){I(S(G),0,7)==="Symbol("&&(G="["+A(S(G),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),N&&N.getter&&(G="get "+G),N&&N.setter&&(G="set "+G),(!i(U,"name")||f&&U.name!==G)&&(u?E(U,"name",{value:G,configurable:!0}):U.name=G),M&&N&&i(N,"arity")&&U.length!==N.arity&&E(U,"length",{value:N.arity});try{N&&i(N,"constructor")&&N.constructor?u&&E(U,"prototype",{writable:!1}):U.prototype&&(U.prototype=void 0)}catch(W){}var w=v(U);return i(w,"source")||(w.source=T(D,typeof G=="string"?G:"")),U};Function.prototype.toString=$(function(){return o(this)&&y(this).source||c(this)},"toString")},1774:function(l,p,t){var n=t(11286),e=Map.prototype;l.exports={Map,set:n(e.set),get:n(e.get),has:n(e.has),remove:n(e.delete),proto:e}},98940:function(l){var p=Math.expm1,t=Math.exp;l.exports=!p||p(10)>22025.465794806718||p(10)<22025.465794806718||p(-2e-17)!==-2e-17?function(e){var o=+e;return o===0?o:o>-1e-6&&o<1e-6?o+o*o/2:t(o)-1}:p},10418:function(l,p,t){var n=t(93976),e=Math.abs,o=2220446049250313e-31,i=1/o,u=function(f){return f+i-i};l.exports=function(f,c,g,v){var y=+f,S=e(y),E=n(y);if(S<v)return E*u(S/v/c)*v*c;var I=(1+c/o)*S,A=I-(I-S);return A>g||A!==A?E*(1/0):E*A}},93279:function(l,p,t){var n=t(10418),e=11920928955078125e-23,o=34028234663852886e22,i=11754943508222875e-54;l.exports=Math.fround||function(f){return n(f,e,o,i)}},41942:function(l){var p=Math.log,t=Math.LOG10E;l.exports=Math.log10||function(e){return p(e)*t}},49366:function(l){var p=Math.log;l.exports=Math.log1p||function(n){var e=+n;return e>-1e-8&&e<1e-8?e-e*e/2:p(1+e)}},93976:function(l){l.exports=Math.sign||function(t){var n=+t;return n===0||n!==n?n:n<0?-1:1}},22459:function(l){var p=Math.ceil,t=Math.floor;l.exports=Math.trunc||function(e){var o=+e;return(o>0?t:p)(o)}},9709:function(l,p,t){var n=t(66009),e=t(28167),o=t(45526),i=t(23115).set,u=t(76895),f=t(51149),c=t(92150),g=t(81539),v=t(42954),y=n.MutationObserver||n.WebKitMutationObserver,S=n.document,E=n.process,I=n.Promise,A=e("queueMicrotask"),T,M,D,$,U;if(!A){var G=new u,N=function(){var w,W;for(v&&(w=E.domain)&&w.exit();W=G.get();)try{W()}catch(X){throw G.head&&T(),X}w&&w.enter()};!f&&!v&&!g&&y&&S?(M=!0,D=S.createTextNode(""),new y(N).observe(D,{characterData:!0}),T=function(){D.data=M=!M}):!c&&I&&I.resolve?($=I.resolve(void 0),$.constructor=I,U=o($.then,$),T=function(){U(N)}):v?T=function(){E.nextTick(N)}:(i=o(i,n),T=function(){i(N)}),A=function(w){G.head||T(),G.add(w)}}l.exports=A},24649:function(l,p,t){var n=t(85156),e=TypeError,o=function(i){var u,f;this.promise=new i(function(c,g){if(u!==void 0||f!==void 0)throw new e("Bad Promise constructor");u=c,f=g}),this.resolve=n(u),this.reject=n(f)};l.exports.f=function(i){return new o(i)}},15453:function(l,p,t){var n=t(17361);l.exports=function(e,o){return e===void 0?arguments.length<2?"":o:n(e)}},92337:function(l,p,t){var n=t(11566),e=TypeError;l.exports=function(o){if(n(o))throw new e("The method doesn't accept regular expressions");return o}},98074:function(l,p,t){var n=t(66009),e=n.isFinite;l.exports=Number.isFinite||function(i){return typeof i=="number"&&e(i)}},25838:function(l,p,t){var n=t(66009),e=t(72069),o=t(11286),i=t(17361),u=t(85900).trim,f=t(77082),c=o("".charAt),g=n.parseFloat,v=n.Symbol,y=v&&v.iterator,S=1/g(f+"-0")!==-1/0||y&&!e(function(){g(Object(y))});l.exports=S?function(I){var A=u(i(I)),T=g(A);return T===0&&c(A,0)==="-"?-0:T}:g},23009:function(l,p,t){var n=t(66009),e=t(72069),o=t(11286),i=t(17361),u=t(85900).trim,f=t(77082),c=n.parseInt,g=n.Symbol,v=g&&g.iterator,y=/^[+-]?0x/i,S=o(y.exec),E=c(f+"08")!==8||c(f+"0x16")!==22||v&&!e(function(){c(Object(v))});l.exports=E?function(A,T){var M=u(i(A));return c(M,T>>>0||(S(y,M)?16:10))}:c},16667:function(l,p,t){var n=t(92986),e=t(11286),o=t(96499),i=t(72069),u=t(18350),f=t(24943),c=t(79591),g=t(49671),v=t(72181),y=Object.assign,S=Object.defineProperty,E=e([].concat);l.exports=!y||i(function(){if(n&&y({b:1},y(S({},"a",{enumerable:!0,get:function(){S(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var I={},A={},T=Symbol("assign detection"),M="abcdefghijklmnopqrst";return I[T]=7,M.split("").forEach(function(D){A[D]=D}),y({},I)[T]!==7||u(y({},A)).join("")!==M})?function(A,T){for(var M=g(A),D=arguments.length,$=1,U=f.f,G=c.f;D>$;)for(var N=v(arguments[$++]),w=U?E(u(N),U(N)):u(N),W=w.length,X=0,Y;W>X;)Y=w[X++],(!n||o(G,N,Y))&&(M[Y]=N[Y]);return M}:y},5406:function(l,p,t){var n=t(25001),e=t(61963),o=t(75785),i=t(19423),u=t(96439),f=t(85501),c=t(44869),g=">",v="<",y="prototype",S="script",E=c("IE_PROTO"),I=function(){},A=function(U){return v+S+g+U+v+"/"+S+g},T=function(U){U.write(A("")),U.close();var G=U.parentWindow.Object;return U=null,G},M=function(){var U=f("iframe"),G="java"+S+":",N;return U.style.display="none",u.appendChild(U),U.src=String(G),N=U.contentWindow.document,N.open(),N.write(A("document.F=Object")),N.close(),N.F},D,$=function(){try{D=new ActiveXObject("htmlfile")}catch(G){}$=typeof document!="undefined"?document.domain&&D?T(D):M():T(D);for(var U=o.length;U--;)delete $[y][o[U]];return $()};i[E]=!0,l.exports=Object.create||function(G,N){var w;return G!==null?(I[y]=n(G),w=new I,I[y]=null,w[E]=G):w=$(),N===void 0?w:e.f(w,N)}},61963:function(l,p,t){var n=t(92986),e=t(356),o=t(7831),i=t(25001),u=t(36859),f=t(18350);p.f=n&&!e?Object.defineProperties:function(g,v){i(g);for(var y=u(v),S=f(v),E=S.length,I=0,A;E>I;)o.f(g,A=S[I++],y[A]);return g}},7831:function(l,p,t){var n=t(92986),e=t(52515),o=t(356),i=t(25001),u=t(50035),f=TypeError,c=Object.defineProperty,g=Object.getOwnPropertyDescriptor,v="enumerable",y="configurable",S="writable";p.f=n?o?function(I,A,T){if(i(I),A=u(A),i(T),typeof I=="function"&&A==="prototype"&&"value"in T&&S in T&&!T[S]){var M=g(I,A);M&&M[S]&&(I[A]=T.value,T={configurable:y in T?T[y]:M[y],enumerable:v in T?T[v]:M[v],writable:!1})}return c(I,A,T)}:c:function(I,A,T){if(i(I),A=u(A),i(T),e)try{return c(I,A,T)}catch(M){}if("get"in T||"set"in T)throw new f("Accessors not supported");return"value"in T&&(I[A]=T.value),I}},71349:function(l,p,t){var n=t(92986),e=t(96499),o=t(79591),i=t(18526),u=t(36859),f=t(50035),c=t(94879),g=t(52515),v=Object.getOwnPropertyDescriptor;p.f=n?v:function(S,E){if(S=u(S),E=f(E),g)try{return v(S,E)}catch(I){}if(c(S,E))return i(!e(o.f,S,E),S[E])}},92880:function(l,p,t){var n=t(14274),e=t(36859),o=t(83258).f,i=t(22806),u=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],f=function(c){try{return o(c)}catch(g){return i(u)}};l.exports.f=function(g){return u&&n(g)==="Window"?f(g):o(e(g))}},83258:function(l,p,t){var n=t(6242),e=t(75785),o=e.concat("length","prototype");p.f=Object.getOwnPropertyNames||function(u){return n(u,o)}},24943:function(l,p){p.f=Object.getOwnPropertySymbols},26313:function(l,p,t){var n=t(94879),e=t(23583),o=t(49671),i=t(44869),u=t(87501),f=i("IE_PROTO"),c=Object,g=c.prototype;l.exports=u?c.getPrototypeOf:function(v){var y=o(v);if(n(y,f))return y[f];var S=y.constructor;return e(S)&&y instanceof S?S.prototype:y instanceof c?g:null}},28174:function(l,p,t){var n=t(72069),e=t(37540),o=t(14274),i=t(72058),u=Object.isExtensible,f=n(function(){u(1)});l.exports=f||i?function(g){return!e(g)||i&&o(g)==="ArrayBuffer"?!1:u?u(g):!0}:u},95307:function(l,p,t){var n=t(11286);l.exports=n({}.isPrototypeOf)},6242:function(l,p,t){var n=t(11286),e=t(94879),o=t(36859),i=t(94319).indexOf,u=t(19423),f=n([].push);l.exports=function(c,g){var v=o(c),y=0,S=[],E;for(E in v)!e(u,E)&&e(v,E)&&f(S,E);for(;g.length>y;)e(v,E=g[y++])&&(~i(S,E)||f(S,E));return S}},18350:function(l,p,t){var n=t(6242),e=t(75785);l.exports=Object.keys||function(i){return n(i,e)}},79591:function(l,p){var t={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,e=n&&!t.call({1:2},1);p.f=e?function(i){var u=n(this,i);return!!u&&u.enumerable}:t},57629:function(l,p,t){var n=t(70457),e=t(66009),o=t(72069),i=t(68674);l.exports=n||!o(function(){if(!(i&&i<535)){var u=Math.random();__defineSetter__.call(null,u,function(){}),delete e[u]}})},15861:function(l,p,t){var n=t(84756),e=t(37540),o=t(2068),i=t(53408);l.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var u=!1,f={},c;try{c=n(Object.prototype,"__proto__","set"),c(f,[]),u=f instanceof Array}catch(g){}return function(v,y){return o(v),i(y),e(v)&&(u?c(v,y):v.__proto__=y),v}}():void 0)},8511:function(l,p,t){var n=t(92986),e=t(72069),o=t(11286),i=t(26313),u=t(18350),f=t(36859),c=t(79591).f,g=o(c),v=o([].push),y=n&&e(function(){var E=Object.create(null);return E[2]=2,!g(E,2)}),S=function(E){return function(I){for(var A=f(I),T=u(A),M=y&&i(A)===null,D=T.length,$=0,U=[],G;D>$;)G=T[$++],(!n||(M?G in A:g(A,G)))&&v(U,E?[G,A[G]]:A[G]);return U}};l.exports={entries:S(!0),values:S(!1)}},60105:function(l,p,t){var n=t(67878),e=t(9205);l.exports=n?{}.toString:function(){return"[object "+e(this)+"]"}},2064:function(l,p,t){var n=t(96499),e=t(23583),o=t(37540),i=TypeError;l.exports=function(u,f){var c,g;if(f==="string"&&e(c=u.toString)&&!o(g=n(c,u))||e(c=u.valueOf)&&!o(g=n(c,u))||f!=="string"&&e(c=u.toString)&&!o(g=n(c,u)))return g;throw new i("Can't convert object to primitive value")}},16885:function(l,p,t){var n=t(38941),e=t(11286),o=t(83258),i=t(24943),u=t(25001),f=e([].concat);l.exports=n("Reflect","ownKeys")||function(g){var v=o.f(u(g)),y=i.f;return y?f(v,y(g)):v}},75081:function(l,p,t){var n=t(66009);l.exports=n},67805:function(l){l.exports=function(p){try{return{error:!1,value:p()}}catch(t){return{error:!0,value:t}}}},37130:function(l,p,t){var n=t(66009),e=t(98844),o=t(23583),i=t(13278),u=t(84352),f=t(18565),c=t(63144),g=t(56422),v=t(70457),y=t(73126),S=e&&e.prototype,E=f("species"),I=!1,A=o(n.PromiseRejectionEvent),T=i("Promise",function(){var M=u(e),D=M!==String(e);if(!D&&y===66||v&&!(S.catch&&S.finally))return!0;if(!y||y<51||!/native code/.test(M)){var $=new e(function(N){N(1)}),U=function(N){N(function(){},function(){})},G=$.constructor={};if(G[E]=U,I=$.then(function(){})instanceof U,!I)return!0}return!D&&(c||g)&&!A});l.exports={CONSTRUCTOR:T,REJECTION_EVENT:A,SUBCLASSING:I}},98844:function(l,p,t){var n=t(66009);l.exports=n.Promise},87408:function(l,p,t){var n=t(25001),e=t(37540),o=t(24649);l.exports=function(i,u){if(n(i),e(u)&&u.constructor===i)return u;var f=o.f(i),c=f.resolve;return c(u),f.promise}},26035:function(l,p,t){var n=t(98844),e=t(97494),o=t(37130).CONSTRUCTOR;l.exports=o||!e(function(i){n.all(i).then(void 0,function(){})})},2594:function(l,p,t){var n=t(7831).f;l.exports=function(e,o,i){i in e||n(e,i,{configurable:!0,get:function(){return o[i]},set:function(u){o[i]=u}})}},76895:function(l){var p=function(){this.head=null,this.tail=null};p.prototype={add:function(t){var n={item:t,next:null},e=this.tail;e?e.next=n:this.head=n,this.tail=n},get:function(){var t=this.head;if(t){var n=this.head=t.next;return n===null&&(this.tail=null),t.item}}},l.exports=p},33064:function(l,p,t){var n=t(96499),e=t(25001),o=t(23583),i=t(14274),u=t(44381),f=TypeError;l.exports=function(c,g){var v=c.exec;if(o(v)){var y=n(v,c,g);return y!==null&&e(y),y}if(i(c)==="RegExp")return n(u,c,g);throw new f("RegExp#exec called on incompatible receiver")}},44381:function(l,p,t){var n=t(96499),e=t(11286),o=t(17361),i=t(29833),u=t(39807),f=t(96731),c=t(5406),g=t(82367).get,v=t(76769),y=t(85220),S=f("native-string-replace",String.prototype.replace),E=RegExp.prototype.exec,I=E,A=e("".charAt),T=e("".indexOf),M=e("".replace),D=e("".slice),$=function(){var w=/a/,W=/b*/g;return n(E,w,"a"),n(E,W,"a"),w.lastIndex!==0||W.lastIndex!==0}(),U=u.BROKEN_CARET,G=/()??/.exec("")[1]!==void 0,N=$||G||U||v||y;N&&(I=function(W){var X=this,Y=g(X),k=o(W),st=Y.raw,ut,rt,at,ot,pt,Ct,St;if(st)return st.lastIndex=X.lastIndex,ut=n(I,st,k),X.lastIndex=st.lastIndex,ut;var $t=Y.groups,Rt=U&&X.sticky,Qt=n(i,X),Yt=X.source,Xt=0,er=k;if(Rt&&(Qt=M(Qt,"y",""),T(Qt,"g")===-1&&(Qt+="g"),er=D(k,X.lastIndex),X.lastIndex>0&&(!X.multiline||X.multiline&&A(k,X.lastIndex-1)!==` +`)&&(Yt="(?: "+Yt+")",er=" "+er,Xt++),rt=new RegExp("^(?:"+Yt+")",Qt)),G&&(rt=new RegExp("^"+Yt+"$(?!\\s)",Qt)),$&&(at=X.lastIndex),ot=n(E,Rt?rt:X,er),Rt?ot?(ot.input=D(ot.input,Xt),ot[0]=D(ot[0],Xt),ot.index=X.lastIndex,X.lastIndex+=ot[0].length):X.lastIndex=0:$&&ot&&(X.lastIndex=X.global?ot.index+ot[0].length:at),G&&ot&&ot.length>1&&n(S,ot[0],rt,function(){for(pt=1;pt<arguments.length-2;pt++)arguments[pt]===void 0&&(ot[pt]=void 0)}),ot&&$t)for(ot.groups=Ct=c(null),pt=0;pt<$t.length;pt++)St=$t[pt],Ct[St[0]]=ot[St[1]];return ot}),l.exports=I},29833:function(l,p,t){var n=t(25001);l.exports=function(){var e=n(this),o="";return e.hasIndices&&(o+="d"),e.global&&(o+="g"),e.ignoreCase&&(o+="i"),e.multiline&&(o+="m"),e.dotAll&&(o+="s"),e.unicode&&(o+="u"),e.unicodeSets&&(o+="v"),e.sticky&&(o+="y"),o}},54932:function(l,p,t){var n=t(96499),e=t(94879),o=t(95307),i=t(29833),u=RegExp.prototype;l.exports=function(f){var c=f.flags;return c===void 0&&!("flags"in u)&&!e(f,"flags")&&o(u,f)?n(i,f):c}},39807:function(l,p,t){var n=t(72069),e=t(66009),o=e.RegExp,i=n(function(){var c=o("a","y");return c.lastIndex=2,c.exec("abcd")!==null}),u=i||n(function(){return!o("a","y").sticky}),f=i||n(function(){var c=o("^r","gy");return c.lastIndex=2,c.exec("str")!==null});l.exports={BROKEN_CARET:f,MISSED_STICKY:u,UNSUPPORTED_Y:i}},76769:function(l,p,t){var n=t(72069),e=t(66009),o=e.RegExp;l.exports=n(function(){var i=o(".","s");return!(i.dotAll&&i.test(` +`)&&i.flags==="s")})},85220:function(l,p,t){var n=t(72069),e=t(66009),o=e.RegExp;l.exports=n(function(){var i=o("(?<a>b)","g");return i.exec("b").groups.a!=="b"||"b".replace(i,"$<a>c")!=="bc"})},2068:function(l,p,t){var n=t(5683),e=TypeError;l.exports=function(o){if(n(o))throw new e("Can't call method on "+o);return o}},28167:function(l,p,t){var n=t(66009),e=t(92986),o=Object.getOwnPropertyDescriptor;l.exports=function(i){if(!e)return n[i];var u=o(n,i);return u&&u.value}},13944:function(l){l.exports=Object.is||function(t,n){return t===n?t!==0||1/t===1/n:t!==t&&n!==n}},9934:function(l,p,t){var n=t(66009),e=t(66543),o=t(23583),i=t(5017),u=t(89042),f=t(22806),c=t(95486),g=n.Function,v=/MSIE .\./.test(u)||i&&function(){var y=n.Bun.version.split(".");return y.length<3||y[0]==="0"&&(y[1]<3||y[1]==="3"&&y[2]==="0")}();l.exports=function(y,S){var E=S?2:1;return v?function(I,A){var T=c(arguments.length,1)>E,M=o(I)?I:g(I),D=T?f(arguments,E):[],$=T?function(){e(M,this,D)}:M;return S?y($,A):y($)}:y}},48348:function(l,p,t){var n=t(172),e=t(35051),o=n.Set,i=n.add;l.exports=function(u){var f=new o;return e(u,function(c){i(f,c)}),f}},41754:function(l,p,t){var n=t(76602),e=t(172),o=t(48348),i=t(17768),u=t(65263),f=t(35051),c=t(9573),g=e.has,v=e.remove;l.exports=function(S){var E=n(this),I=u(S),A=o(E);return i(E)<=I.size?f(E,function(T){I.includes(T)&&v(A,T)}):c(I.getIterator(),function(T){g(E,T)&&v(A,T)}),A}},172:function(l,p,t){var n=t(11286),e=Set.prototype;l.exports={Set,add:n(e.add),has:n(e.has),remove:n(e.delete),proto:e}},92292:function(l,p,t){var n=t(76602),e=t(172),o=t(17768),i=t(65263),u=t(35051),f=t(9573),c=e.Set,g=e.add,v=e.has;l.exports=function(S){var E=n(this),I=i(S),A=new c;return o(E)>I.size?f(I.getIterator(),function(T){v(E,T)&&g(A,T)}):u(E,function(T){I.includes(T)&&g(A,T)}),A}},47391:function(l,p,t){var n=t(76602),e=t(172).has,o=t(17768),i=t(65263),u=t(35051),f=t(9573),c=t(99797);l.exports=function(v){var y=n(this),S=i(v);if(o(y)<=S.size)return u(y,function(I){if(S.includes(I))return!1},!0)!==!1;var E=S.getIterator();return f(E,function(I){if(e(y,I))return c(E,"normal",!1)})!==!1}},75492:function(l,p,t){var n=t(76602),e=t(17768),o=t(35051),i=t(65263);l.exports=function(f){var c=n(this),g=i(f);return e(c)>g.size?!1:o(c,function(v){if(!g.includes(v))return!1},!0)!==!1}},1333:function(l,p,t){var n=t(76602),e=t(172).has,o=t(17768),i=t(65263),u=t(9573),f=t(99797);l.exports=function(g){var v=n(this),y=i(g);if(o(v)<y.size)return!1;var S=y.getIterator();return u(S,function(E){if(!e(v,E))return f(S,"normal",!1)})!==!1}},35051:function(l,p,t){var n=t(11286),e=t(9573),o=t(172),i=o.Set,u=o.proto,f=n(u.forEach),c=n(u.keys),g=c(new i).next;l.exports=function(v,y,S){return S?e({iterator:c(v),next:g},y):f(v,y)}},94118:function(l,p,t){var n=t(38941),e=function(o){return{size:o,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}};l.exports=function(o){var i=n("Set");try{new i()[o](e(0));try{return new i()[o](e(-1)),!1}catch(u){return!0}}catch(u){return!1}}},17768:function(l,p,t){var n=t(84756),e=t(172);l.exports=n(e.proto,"size","get")||function(o){return o.size}},36167:function(l,p,t){var n=t(38941),e=t(85500),o=t(18565),i=t(92986),u=o("species");l.exports=function(f){var c=n(f);i&&c&&!c[u]&&e(c,u,{configurable:!0,get:function(){return this}})}},64680:function(l,p,t){var n=t(76602),e=t(172),o=t(48348),i=t(65263),u=t(9573),f=e.add,c=e.has,g=e.remove;l.exports=function(y){var S=n(this),E=i(y).getIterator(),I=o(S);return u(E,function(A){c(S,A)?g(I,A):f(I,A)}),I}},78401:function(l,p,t){var n=t(7831).f,e=t(94879),o=t(18565),i=o("toStringTag");l.exports=function(u,f,c){u&&!c&&(u=u.prototype),u&&!e(u,i)&&n(u,i,{configurable:!0,value:f})}},70402:function(l,p,t){var n=t(76602),e=t(172).add,o=t(48348),i=t(65263),u=t(9573);l.exports=function(c){var g=n(this),v=i(c).getIterator(),y=o(g);return u(v,function(S){e(y,S)}),y}},44869:function(l,p,t){var n=t(96731),e=t(36374),o=n("keys");l.exports=function(i){return o[i]||(o[i]=e(i))}},70443:function(l,p,t){var n=t(70457),e=t(66009),o=t(36003),i="__core-js_shared__",u=l.exports=e[i]||o(i,{});(u.versions||(u.versions=[])).push({version:"3.37.1",mode:n?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE",source:"https://github.com/zloirock/core-js"})},96731:function(l,p,t){var n=t(70443);l.exports=function(e,o){return n[e]||(n[e]=o||{})}},16887:function(l,p,t){var n=t(25001),e=t(80042),o=t(5683),i=t(18565),u=i("species");l.exports=function(f,c){var g=n(f).constructor,v;return g===void 0||o(v=n(g)[u])?c:e(v)}},5287:function(l,p,t){var n=t(72069);l.exports=function(e){return n(function(){var o=""[e]('"');return o!==o.toLowerCase()||o.split('"').length>3})}},22149:function(l,p,t){var n=t(11286),e=t(12105),o=t(17361),i=t(2068),u=n("".charAt),f=n("".charCodeAt),c=n("".slice),g=function(v){return function(y,S){var E=o(i(y)),I=e(S),A=E.length,T,M;return I<0||I>=A?v?"":void 0:(T=f(E,I),T<55296||T>56319||I+1===A||(M=f(E,I+1))<56320||M>57343?v?u(E,I):T:v?c(E,I,I+2):(T-55296<<10)+(M-56320)+65536)}};l.exports={codeAt:g(!1),charAt:g(!0)}},36945:function(l,p,t){var n=t(89042);l.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(n)},61607:function(l,p,t){var n=t(11286),e=t(45344),o=t(17361),i=t(79719),u=t(2068),f=n(i),c=n("".slice),g=Math.ceil,v=function(y){return function(S,E,I){var A=o(u(S)),T=e(E),M=A.length,D=I===void 0?" ":o(I),$,U;return T<=M||D===""?A:($=T-M,U=f(D,g($/D.length)),U.length>$&&(U=c(U,0,$)),y?A+U:U+A)}};l.exports={start:v(!1),end:v(!0)}},38679:function(l,p,t){var n=t(11286),e=2147483647,o=36,i=1,u=26,f=38,c=700,g=72,v=128,y="-",S=/[^\0-\u007E]/,E=/[.\u3002\uFF0E\uFF61]/g,I="Overflow: input needs wider integers to process",A=o-i,T=RangeError,M=n(E.exec),D=Math.floor,$=String.fromCharCode,U=n("".charCodeAt),G=n([].join),N=n([].push),w=n("".replace),W=n("".split),X=n("".toLowerCase),Y=function(rt){for(var at=[],ot=0,pt=rt.length;ot<pt;){var Ct=U(rt,ot++);if(Ct>=55296&&Ct<=56319&&ot<pt){var St=U(rt,ot++);(St&64512)===56320?N(at,((Ct&1023)<<10)+(St&1023)+65536):(N(at,Ct),ot--)}else N(at,Ct)}return at},k=function(rt){return rt+22+75*(rt<26)},st=function(rt,at,ot){var pt=0;for(rt=ot?D(rt/c):rt>>1,rt+=D(rt/at);rt>A*u>>1;)rt=D(rt/A),pt+=o;return D(pt+(A+1)*rt/(rt+f))},ut=function(rt){var at=[];rt=Y(rt);var ot=rt.length,pt=v,Ct=0,St=g,$t,Rt;for($t=0;$t<rt.length;$t++)Rt=rt[$t],Rt<128&&N(at,$(Rt));var Qt=at.length,Yt=Qt;for(Qt&&N(at,y);Yt<ot;){var Xt=e;for($t=0;$t<rt.length;$t++)Rt=rt[$t],Rt>=pt&&Rt<Xt&&(Xt=Rt);var er=Yt+1;if(Xt-pt>D((e-Ct)/er))throw new T(I);for(Ct+=(Xt-pt)*er,pt=Xt,$t=0;$t<rt.length;$t++){if(Rt=rt[$t],Rt<pt&&++Ct>e)throw new T(I);if(Rt===pt){for(var ir=Ct,Or=o;;){var yr=Or<=St?i:Or>=St+u?u:Or-St;if(ir<yr)break;var xr=ir-yr,Kt=o-yr;N(at,$(k(yr+xr%Kt))),ir=D(xr/Kt),Or+=o}N(at,$(k(ir))),St=st(Ct,er,Yt===Qt),Ct=0,Yt++}}Ct++,pt++}return G(at,"")};l.exports=function(rt){var at=[],ot=W(w(X(rt),E,"."),"."),pt,Ct;for(pt=0;pt<ot.length;pt++)Ct=ot[pt],N(at,M(S,Ct)?"xn--"+ut(Ct):Ct);return G(at,".")}},79719:function(l,p,t){var n=t(12105),e=t(17361),o=t(2068),i=RangeError;l.exports=function(f){var c=e(o(this)),g="",v=n(f);if(v<0||v===1/0)throw new i("Wrong number of repetitions");for(;v>0;(v>>>=1)&&(c+=c))v&1&&(g+=c);return g}},75176:function(l,p,t){var n=t(85900).end,e=t(33328);l.exports=e("trimEnd")?function(){return n(this)}:"".trimEnd},33328:function(l,p,t){var n=t(86588).PROPER,e=t(72069),o=t(77082),i="\u200B\x85\u180E";l.exports=function(u){return e(function(){return!!o[u]()||i[u]()!==i||n&&o[u].name!==u})}},83481:function(l,p,t){var n=t(85900).start,e=t(33328);l.exports=e("trimStart")?function(){return n(this)}:"".trimStart},85900:function(l,p,t){var n=t(11286),e=t(2068),o=t(17361),i=t(77082),u=n("".replace),f=RegExp("^["+i+"]+"),c=RegExp("(^|[^"+i+"])["+i+"]+$"),g=function(v){return function(y){var S=o(e(y));return v&1&&(S=u(S,f,"")),v&2&&(S=u(S,c,"$1")),S}};l.exports={start:g(1),end:g(2),trim:g(3)}},99050:function(l,p,t){var n=t(66009),e=t(72069),o=t(73126),i=t(63144),u=t(56422),f=t(42954),c=n.structuredClone;l.exports=!!c&&!e(function(){if(u&&o>92||f&&o>94||i&&o>97)return!1;var g=new ArrayBuffer(8),v=c(g,{transfer:[g]});return g.byteLength!==0||v.byteLength!==8})},39729:function(l,p,t){var n=t(73126),e=t(72069),o=t(66009),i=o.String;l.exports=!!Object.getOwnPropertySymbols&&!e(function(){var u=Symbol("symbol detection");return!i(u)||!(Object(u)instanceof Symbol)||!Symbol.sham&&n&&n<41})},60796:function(l,p,t){var n=t(96499),e=t(38941),o=t(18565),i=t(16142);l.exports=function(){var u=e("Symbol"),f=u&&u.prototype,c=f&&f.valueOf,g=o("toPrimitive");f&&!f[g]&&i(f,g,function(v){return n(c,this)},{arity:1})}},61190:function(l,p,t){var n=t(39729);l.exports=n&&!!Symbol.for&&!!Symbol.keyFor},23115:function(l,p,t){var n=t(66009),e=t(66543),o=t(45526),i=t(23583),u=t(94879),f=t(72069),c=t(96439),g=t(22806),v=t(85501),y=t(95486),S=t(51149),E=t(42954),I=n.setImmediate,A=n.clearImmediate,T=n.process,M=n.Dispatch,D=n.Function,$=n.MessageChannel,U=n.String,G=0,N={},w="onreadystatechange",W,X,Y,k;f(function(){W=n.location});var st=function(ot){if(u(N,ot)){var pt=N[ot];delete N[ot],pt()}},ut=function(ot){return function(){st(ot)}},rt=function(ot){st(ot.data)},at=function(ot){n.postMessage(U(ot),W.protocol+"//"+W.host)};(!I||!A)&&(I=function(pt){y(arguments.length,1);var Ct=i(pt)?pt:D(pt),St=g(arguments,1);return N[++G]=function(){e(Ct,void 0,St)},X(G),G},A=function(pt){delete N[pt]},E?X=function(ot){T.nextTick(ut(ot))}:M&&M.now?X=function(ot){M.now(ut(ot))}:$&&!S?(Y=new $,k=Y.port2,Y.port1.onmessage=rt,X=o(k.postMessage,k)):n.addEventListener&&i(n.postMessage)&&!n.importScripts&&W&&W.protocol!=="file:"&&!f(at)?(X=at,n.addEventListener("message",rt,!1)):w in v("script")?X=function(ot){c.appendChild(v("script"))[w]=function(){c.removeChild(this),st(ot)}}:X=function(ot){setTimeout(ut(ot),0)}),l.exports={set:I,clear:A}},34338:function(l,p,t){var n=t(11286);l.exports=n(1 .valueOf)},4652:function(l,p,t){var n=t(12105),e=Math.max,o=Math.min;l.exports=function(i,u){var f=n(i);return f<0?e(f+u,0):o(f,u)}},11344:function(l,p,t){var n=t(89935),e=TypeError;l.exports=function(o){var i=n(o,"number");if(typeof i=="number")throw new e("Can't convert number to bigint");return BigInt(i)}},9450:function(l,p,t){var n=t(12105),e=t(45344),o=RangeError;l.exports=function(i){if(i===void 0)return 0;var u=n(i),f=e(u);if(u!==f)throw new o("Wrong length or index");return f}},36859:function(l,p,t){var n=t(72181),e=t(2068);l.exports=function(o){return n(e(o))}},12105:function(l,p,t){var n=t(22459);l.exports=function(e){var o=+e;return o!==o||o===0?0:n(o)}},45344:function(l,p,t){var n=t(12105),e=Math.min;l.exports=function(o){var i=n(o);return i>0?e(i,9007199254740991):0}},49671:function(l,p,t){var n=t(2068),e=Object;l.exports=function(o){return e(n(o))}},58143:function(l,p,t){var n=t(98072),e=RangeError;l.exports=function(o,i){var u=n(o);if(u%i)throw new e("Wrong offset");return u}},98072:function(l,p,t){var n=t(12105),e=RangeError;l.exports=function(o){var i=n(o);if(i<0)throw new e("The argument can't be less than 0");return i}},89935:function(l,p,t){var n=t(96499),e=t(37540),o=t(491),i=t(10512),u=t(2064),f=t(18565),c=TypeError,g=f("toPrimitive");l.exports=function(v,y){if(!e(v)||o(v))return v;var S=i(v,g),E;if(S){if(y===void 0&&(y="default"),E=n(S,v,y),!e(E)||o(E))return E;throw new c("Can't convert object to primitive value")}return y===void 0&&(y="number"),u(v,y)}},50035:function(l,p,t){var n=t(89935),e=t(491);l.exports=function(o){var i=n(o,"string");return e(i)?i:i+""}},67878:function(l,p,t){var n=t(18565),e=n("toStringTag"),o={};o[e]="z",l.exports=String(o)==="[object z]"},17361:function(l,p,t){var n=t(9205),e=String;l.exports=function(o){if(n(o)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return e(o)}},76517:function(l){var p=Math.round;l.exports=function(t){var n=p(t);return n<0?0:n>255?255:n&255}},18096:function(l,p,t){var n=t(42954);l.exports=function(e){try{if(n)return Function('return require("'+e+'")')()}catch(o){}}},82453:function(l){var p=String;l.exports=function(t){try{return p(t)}catch(n){return"Object"}}},80357:function(l,p,t){var n=t(14304),e=t(66009),o=t(96499),i=t(92986),u=t(46868),f=t(88037),c=t(17468),g=t(12833),v=t(18526),y=t(90809),S=t(613),E=t(45344),I=t(9450),A=t(58143),T=t(76517),M=t(50035),D=t(94879),$=t(9205),U=t(37540),G=t(491),N=t(5406),w=t(95307),W=t(15861),X=t(83258).f,Y=t(66169),k=t(66655).forEach,st=t(36167),ut=t(85500),rt=t(7831),at=t(71349),ot=t(5220),pt=t(82367),Ct=t(32345),St=pt.get,$t=pt.set,Rt=pt.enforce,Qt=rt.f,Yt=at.f,Xt=e.RangeError,er=c.ArrayBuffer,ir=er.prototype,Or=c.DataView,yr=f.NATIVE_ARRAY_BUFFER_VIEWS,xr=f.TYPED_ARRAY_TAG,Kt=f.TypedArray,_t=f.TypedArrayPrototype,hr=f.isTypedArray,Sr="BYTES_PER_ELEMENT",mr="Wrong length",Ir=function(Cr,Er){ut(Cr,Er,{configurable:!0,get:function(){return St(this)[Er]}})},Fr=function(Cr){var Er;return w(ir,Cr)||(Er=$(Cr))==="ArrayBuffer"||Er==="SharedArrayBuffer"},Dr=function(Cr,Er){return hr(Cr)&&!G(Er)&&Er in Cr&&S(+Er)&&Er>=0},Pr=function(Er,pr){return pr=M(pr),Dr(Er,pr)?v(2,Er[pr]):Yt(Er,pr)},gr=function(Er,pr,Ut){return pr=M(pr),Dr(Er,pr)&&U(Ut)&&D(Ut,"value")&&!D(Ut,"get")&&!D(Ut,"set")&&!Ut.configurable&&(!D(Ut,"writable")||Ut.writable)&&(!D(Ut,"enumerable")||Ut.enumerable)?(Er[pr]=Ut.value,Er):Qt(Er,pr,Ut)};i?(yr||(at.f=Pr,rt.f=gr,Ir(_t,"buffer"),Ir(_t,"byteOffset"),Ir(_t,"byteLength"),Ir(_t,"length")),n({target:"Object",stat:!0,forced:!yr},{getOwnPropertyDescriptor:Pr,defineProperty:gr}),l.exports=function(Cr,Er,pr){var Ut=Cr.match(/\d+/)[0]/8,Vt=Cr+(pr?"Clamped":"")+"Array",bt="get"+Cr,fr="set"+Cr,cr=e[Vt],rr=cr,qt=rr&&rr.prototype,$r={},Br=function(gt,Tt){var q=St(gt);return q.view[bt](Tt*Ut+q.byteOffset,!0)},Et=function(gt,Tt,q){var At=St(gt);At.view[fr](Tt*Ut+At.byteOffset,pr?T(q):q,!0)},Bt=function(gt,Tt){Qt(gt,Tt,{get:function(){return Br(this,Tt)},set:function(q){return Et(this,Tt,q)},enumerable:!0})};yr?u&&(rr=Er(function(gt,Tt,q,At){return g(gt,qt),Ct(function(){return U(Tt)?Fr(Tt)?At!==void 0?new cr(Tt,A(q,Ut),At):q!==void 0?new cr(Tt,A(q,Ut)):new cr(Tt):hr(Tt)?ot(rr,Tt):o(Y,rr,Tt):new cr(I(Tt))}(),gt,rr)}),W&&W(rr,Kt),k(X(cr),function(gt){gt in rr||y(rr,gt,cr[gt])}),rr.prototype=qt):(rr=Er(function(gt,Tt,q,At){g(gt,qt);var Jt=0,kt=0,ar,Tr,dr;if(!U(Tt))dr=I(Tt),Tr=dr*Ut,ar=new er(Tr);else if(Fr(Tt)){ar=Tt,kt=A(q,Ut);var Lr=Tt.byteLength;if(At===void 0){if(Lr%Ut)throw new Xt(mr);if(Tr=Lr-kt,Tr<0)throw new Xt(mr)}else if(Tr=E(At)*Ut,Tr+kt>Lr)throw new Xt(mr);dr=Tr/Ut}else return hr(Tt)?ot(rr,Tt):o(Y,rr,Tt);for($t(gt,{buffer:ar,byteOffset:kt,byteLength:Tr,length:dr,view:new Or(ar)});Jt<dr;)Bt(gt,Jt++)}),W&&W(rr,Kt),qt=rr.prototype=N(_t)),qt.constructor!==rr&&y(qt,"constructor",rr),Rt(qt).TypedArrayConstructor=rr,xr&&y(qt,xr,Vt);var wt=rr!==cr;$r[Vt]=rr,n({global:!0,constructor:!0,forced:wt,sham:!yr},$r),Sr in rr||y(rr,Sr,Ut),Sr in qt||y(qt,Sr,Ut),st(Vt)}):l.exports=function(){}},46868:function(l,p,t){var n=t(66009),e=t(72069),o=t(97494),i=t(88037).NATIVE_ARRAY_BUFFER_VIEWS,u=n.ArrayBuffer,f=n.Int8Array;l.exports=!i||!e(function(){f(1)})||!e(function(){new f(-1)})||!o(function(c){new f,new f(null),new f(1.5),new f(c)},!0)||e(function(){return new f(new u(2),1,void 0).length!==1})},3795:function(l,p,t){var n=t(5220),e=t(21822);l.exports=function(o,i){return n(e(o),i)}},66169:function(l,p,t){var n=t(45526),e=t(96499),o=t(80042),i=t(49671),u=t(82628),f=t(90619),c=t(81077),g=t(48199),v=t(77129),y=t(88037).aTypedArrayConstructor,S=t(11344);l.exports=function(I){var A=o(this),T=i(I),M=arguments.length,D=M>1?arguments[1]:void 0,$=D!==void 0,U=c(T),G,N,w,W,X,Y,k,st;if(U&&!g(U))for(k=f(T,U),st=k.next,T=[];!(Y=e(st,k)).done;)T.push(Y.value);for($&&M>2&&(D=n(D,arguments[2])),N=u(T),w=new(y(A))(N),W=v(w),G=0;N>G;G++)X=$?D(T[G],G):T[G],w[G]=W?S(X):+X;return w}},21822:function(l,p,t){var n=t(88037),e=t(16887),o=n.aTypedArrayConstructor,i=n.getTypedArrayConstructor;l.exports=function(u){return o(e(u,i(u)))}},36374:function(l,p,t){var n=t(11286),e=0,o=Math.random(),i=n(1 .toString);l.exports=function(u){return"Symbol("+(u===void 0?"":u)+")_"+i(++e+o,36)}},91918:function(l,p,t){var n=t(72069),e=t(18565),o=t(92986),i=t(70457),u=e("iterator");l.exports=!n(function(){var f=new URL("b?a=1&b=2&c=3","http://a"),c=f.searchParams,g=new URLSearchParams("a=1&a=2&b=3"),v="";return f.pathname="c%20d",c.forEach(function(y,S){c.delete("b"),v+=S+y}),g.delete("a",2),g.delete("b",void 0),i&&(!f.toJSON||!g.has("a",1)||g.has("a",2)||!g.has("a",void 0)||g.has("b"))||!c.size&&(i||!o)||!c.sort||f.href!=="http://a/c%20d?a=1&c=3"||c.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!c[u]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("http://a#\u0431").hash!=="#%D0%B1"||v!=="a1c3"||new URL("http://x",void 0).host!=="x"})},50234:function(l,p,t){var n=t(39729);l.exports=n&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},356:function(l,p,t){var n=t(92986),e=t(72069);l.exports=n&&e(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})},95486:function(l){var p=TypeError;l.exports=function(t,n){if(t<n)throw new p("Not enough arguments");return t}},42960:function(l,p,t){var n=t(66009),e=t(23583),o=n.WeakMap;l.exports=e(o)&&/native code/.test(String(o))},83749:function(l,p,t){var n=t(75081),e=t(94879),o=t(56529),i=t(7831).f;l.exports=function(u){var f=n.Symbol||(n.Symbol={});e(f,u)||i(f,u,{value:o.f(u)})}},56529:function(l,p,t){var n=t(18565);p.f=n},18565:function(l,p,t){var n=t(66009),e=t(96731),o=t(94879),i=t(36374),u=t(39729),f=t(50234),c=n.Symbol,g=e("wks"),v=f?c.for||c:c&&c.withoutSetter||i;l.exports=function(y){return o(g,y)||(g[y]=u&&o(c,y)?c[y]:v("Symbol."+y)),g[y]}},77082:function(l){l.exports=` +\v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},70003:function(l,p,t){var n=t(38941),e=t(94879),o=t(90809),i=t(95307),u=t(15861),f=t(93706),c=t(2594),g=t(32345),v=t(15453),y=t(31486),S=t(97077),E=t(92986),I=t(70457);l.exports=function(A,T,M,D){var $="stackTraceLimit",U=D?2:1,G=A.split("."),N=G[G.length-1],w=n.apply(null,G);if(w){var W=w.prototype;if(!I&&e(W,"cause")&&delete W.cause,!M)return w;var X=n("Error"),Y=T(function(k,st){var ut=v(D?st:k,void 0),rt=D?new w(k):new w;return ut!==void 0&&o(rt,"message",ut),S(rt,Y,rt.stack,2),this&&i(W,this)&&g(rt,this,Y),arguments.length>U&&y(rt,arguments[U]),rt});if(Y.prototype=W,N!=="Error"?u?u(Y,X):f(Y,X,{name:!0}):E&&$ in w&&(c(Y,w,$),c(Y,w,"prepareStackTrace")),f(Y,w),!I)try{W.name!==N&&o(W,"name",N),W.constructor=Y}catch(k){}return Y}}},27796:function(l,p,t){var n=t(14304),e=t(38941),o=t(66543),i=t(72069),u=t(70003),f="AggregateError",c=e(f),g=!i(function(){return c([1]).errors[0]!==1})&&i(function(){return c([1],f,{cause:7}).cause!==7});n({global:!0,constructor:!0,arity:2,forced:g},{AggregateError:u(f,function(v){return function(S,E){return o(v,this,arguments)}},g,!0)})},85647:function(l,p,t){var n=t(14304),e=t(95307),o=t(26313),i=t(15861),u=t(93706),f=t(5406),c=t(90809),g=t(18526),v=t(31486),y=t(97077),S=t(55902),E=t(15453),I=t(18565),A=I("toStringTag"),T=Error,M=[].push,D=function(G,N){var w=e($,this),W;i?W=i(new T,w?o(this):$):(W=w?this:f($),c(W,A,"Error")),N!==void 0&&c(W,"message",E(N)),y(W,D,W.stack,1),arguments.length>2&&v(W,arguments[2]);var X=[];return S(G,M,{that:X}),c(W,"errors",X),W};i?i(D,T):u(D,T,{name:!0});var $=D.prototype=f(T.prototype,{constructor:g(1,D),message:g(1,""),name:g(1,"AggregateError")});n({global:!0,constructor:!0,arity:2},{AggregateError:D})},42861:function(l,p,t){t(85647)},35473:function(l,p,t){var n=t(14304),e=t(66009),o=t(17468),i=t(36167),u="ArrayBuffer",f=o[u],c=e[u];n({global:!0,constructor:!0,forced:c!==f},{ArrayBuffer:f}),i(u)},35495:function(l,p,t){var n=t(92986),e=t(85500),o=t(30736),i=ArrayBuffer.prototype;n&&!("detached"in i)&&e(i,"detached",{configurable:!0,get:function(){return o(this)}})},4983:function(l,p,t){var n=t(14304),e=t(88037),o=e.NATIVE_ARRAY_BUFFER_VIEWS;n({target:"ArrayBuffer",stat:!0,forced:!o},{isView:e.isView})},6875:function(l,p,t){var n=t(14304),e=t(77422),o=t(72069),i=t(17468),u=t(25001),f=t(4652),c=t(45344),g=t(16887),v=i.ArrayBuffer,y=i.DataView,S=y.prototype,E=e(v.prototype.slice),I=e(S.getUint8),A=e(S.setUint8),T=o(function(){return!new v(2).slice(1,void 0).byteLength});n({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:T},{slice:function(D,$){if(E&&$===void 0)return E(u(this),D);for(var U=u(this).byteLength,G=f(D,U),N=f($===void 0?U:$,U),w=new(g(this,v))(c(N-G)),W=new y(this),X=new y(w),Y=0;G<N;)A(X,Y++,I(W,G++));return w}})},58594:function(l,p,t){var n=t(14304),e=t(65006);e&&n({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return e(this,arguments.length?arguments[0]:void 0,!1)}})},32790:function(l,p,t){var n=t(14304),e=t(65006);e&&n({target:"ArrayBuffer",proto:!0},{transfer:function(){return e(this,arguments.length?arguments[0]:void 0,!0)}})},1341:function(l,p,t){var n=t(14304),e=t(49671),o=t(82628),i=t(12105),u=t(23811);n({target:"Array",proto:!0},{at:function(c){var g=e(this),v=o(g),y=i(c),S=y>=0?y:v+y;return S<0||S>=v?void 0:g[S]}}),u("at")},98700:function(l,p,t){var n=t(14304),e=t(72069),o=t(3438),i=t(37540),u=t(49671),f=t(82628),c=t(20095),g=t(84082),v=t(62083),y=t(52183),S=t(18565),E=t(73126),I=S("isConcatSpreadable"),A=E>=51||!e(function(){var D=[];return D[I]=!1,D.concat()[0]!==D}),T=function(D){if(!i(D))return!1;var $=D[I];return $!==void 0?!!$:o(D)},M=!A||!y("concat");n({target:"Array",proto:!0,arity:1,forced:M},{concat:function($){var U=u(this),G=v(U,0),N=0,w,W,X,Y,k;for(w=-1,X=arguments.length;w<X;w++)if(k=w===-1?U:arguments[w],T(k))for(Y=f(k),c(N+Y),W=0;W<Y;W++,N++)W in k&&g(G,N,k[W]);else c(N+1),g(G,N++,k);return G.length=N,G}})},65481:function(l,p,t){var n=t(14304),e=t(81499),o=t(23811);n({target:"Array",proto:!0},{copyWithin:e}),o("copyWithin")},46509:function(l,p,t){var n=t(14304),e=t(66655).every,o=t(6148),i=o("every");n({target:"Array",proto:!0,forced:!i},{every:function(f){return e(this,f,arguments.length>1?arguments[1]:void 0)}})},41585:function(l,p,t){var n=t(14304),e=t(43011),o=t(23811);n({target:"Array",proto:!0},{fill:e}),o("fill")},84554:function(l,p,t){var n=t(14304),e=t(66655).filter,o=t(52183),i=o("filter");n({target:"Array",proto:!0,forced:!i},{filter:function(f){return e(this,f,arguments.length>1?arguments[1]:void 0)}})},33818:function(l,p,t){var n=t(14304),e=t(66655).findIndex,o=t(23811),i="findIndex",u=!0;i in[]&&Array(1)[i](function(){u=!1}),n({target:"Array",proto:!0,forced:u},{findIndex:function(c){return e(this,c,arguments.length>1?arguments[1]:void 0)}}),o(i)},2209:function(l,p,t){var n=t(14304),e=t(73849).findLastIndex,o=t(23811);n({target:"Array",proto:!0},{findLastIndex:function(u){return e(this,u,arguments.length>1?arguments[1]:void 0)}}),o("findLastIndex")},64096:function(l,p,t){var n=t(14304),e=t(73849).findLast,o=t(23811);n({target:"Array",proto:!0},{findLast:function(u){return e(this,u,arguments.length>1?arguments[1]:void 0)}}),o("findLast")},36619:function(l,p,t){var n=t(14304),e=t(66655).find,o=t(23811),i="find",u=!0;i in[]&&Array(1)[i](function(){u=!1}),n({target:"Array",proto:!0,forced:u},{find:function(c){return e(this,c,arguments.length>1?arguments[1]:void 0)}}),o(i)},74092:function(l,p,t){var n=t(14304),e=t(53149),o=t(85156),i=t(49671),u=t(82628),f=t(62083);n({target:"Array",proto:!0},{flatMap:function(g){var v=i(this),y=u(v),S;return o(g),S=f(v,0),S.length=e(S,v,v,y,0,1,g,arguments.length>1?arguments[1]:void 0),S}})},91591:function(l,p,t){var n=t(14304),e=t(53149),o=t(49671),i=t(82628),u=t(12105),f=t(62083);n({target:"Array",proto:!0},{flat:function(){var g=arguments.length?arguments[0]:void 0,v=o(this),y=i(v),S=f(v,0);return S.length=e(S,v,v,y,0,g===void 0?1:u(g)),S}})},54703:function(l,p,t){var n=t(14304),e=t(13349);n({target:"Array",proto:!0,forced:[].forEach!==e},{forEach:e})},82936:function(l,p,t){var n=t(14304),e=t(48258),o=t(97494),i=!o(function(u){Array.from(u)});n({target:"Array",stat:!0,forced:i},{from:e})},48493:function(l,p,t){var n=t(14304),e=t(94319).includes,o=t(72069),i=t(23811),u=o(function(){return!Array(1).includes()});n({target:"Array",proto:!0,forced:u},{includes:function(c){return e(this,c,arguments.length>1?arguments[1]:void 0)}}),i("includes")},64730:function(l,p,t){var n=t(14304),e=t(77422),o=t(94319).indexOf,i=t(6148),u=e([].indexOf),f=!!u&&1/u([1],1,-0)<0,c=f||!i("indexOf");n({target:"Array",proto:!0,forced:c},{indexOf:function(v){var y=arguments.length>1?arguments[1]:void 0;return f?u(this,v,y)||0:o(this,v,y)}})},95024:function(l,p,t){var n=t(14304),e=t(3438);n({target:"Array",stat:!0},{isArray:e})},35054:function(l,p,t){var n=t(36859),e=t(23811),o=t(29107),i=t(82367),u=t(7831).f,f=t(10218),c=t(10659),g=t(70457),v=t(92986),y="Array Iterator",S=i.set,E=i.getterFor(y);l.exports=f(Array,"Array",function(A,T){S(this,{type:y,target:n(A),index:0,kind:T})},function(){var A=E(this),T=A.target,M=A.index++;if(!T||M>=T.length)return A.target=void 0,c(void 0,!0);switch(A.kind){case"keys":return c(M,!1);case"values":return c(T[M],!1)}return c([M,T[M]],!1)},"values");var I=o.Arguments=o.Array;if(e("keys"),e("values"),e("entries"),!g&&v&&I.name!=="values")try{u(I,"name",{value:"values"})}catch(A){}},25460:function(l,p,t){var n=t(14304),e=t(11286),o=t(72181),i=t(36859),u=t(6148),f=e([].join),c=o!==Object,g=c||!u("join",",");n({target:"Array",proto:!0,forced:g},{join:function(y){return f(i(this),y===void 0?",":y)}})},60703:function(l,p,t){var n=t(14304),e=t(58465);n({target:"Array",proto:!0,forced:e!==[].lastIndexOf},{lastIndexOf:e})},90468:function(l,p,t){var n=t(14304),e=t(66655).map,o=t(52183),i=o("map");n({target:"Array",proto:!0,forced:!i},{map:function(f){return e(this,f,arguments.length>1?arguments[1]:void 0)}})},69581:function(l,p,t){var n=t(14304),e=t(72069),o=t(11051),i=t(84082),u=Array,f=e(function(){function c(){}return!(u.of.call(c)instanceof c)});n({target:"Array",stat:!0,forced:f},{of:function(){for(var g=0,v=arguments.length,y=new(o(this)?this:u)(v);v>g;)i(y,g,arguments[g++]);return y.length=v,y}})},720:function(l,p,t){var n=t(14304),e=t(49671),o=t(82628),i=t(2213),u=t(20095),f=t(72069),c=f(function(){return[].push.call({length:4294967296},1)!==4294967297}),g=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(y){return y instanceof TypeError}},v=c||!g();n({target:"Array",proto:!0,arity:1,forced:v},{push:function(S){var E=e(this),I=o(E),A=arguments.length;u(I+A);for(var T=0;T<A;T++)E[I]=arguments[T],I++;return i(E,I),I}})},17289:function(l,p,t){var n=t(14304),e=t(97264).right,o=t(6148),i=t(73126),u=t(42954),f=!u&&i>79&&i<83,c=f||!o("reduceRight");n({target:"Array",proto:!0,forced:c},{reduceRight:function(v){return e(this,v,arguments.length,arguments.length>1?arguments[1]:void 0)}})},11042:function(l,p,t){var n=t(14304),e=t(97264).left,o=t(6148),i=t(73126),u=t(42954),f=!u&&i>79&&i<83,c=f||!o("reduce");n({target:"Array",proto:!0,forced:c},{reduce:function(v){var y=arguments.length;return e(this,v,y,y>1?arguments[1]:void 0)}})},24608:function(l,p,t){var n=t(14304),e=t(11286),o=t(3438),i=e([].reverse),u=[1,2];n({target:"Array",proto:!0,forced:String(u)===String(u.reverse())},{reverse:function(){return o(this)&&(this.length=this.length),i(this)}})},51644:function(l,p,t){var n=t(14304),e=t(3438),o=t(11051),i=t(37540),u=t(4652),f=t(82628),c=t(36859),g=t(84082),v=t(18565),y=t(52183),S=t(22806),E=y("slice"),I=v("species"),A=Array,T=Math.max;n({target:"Array",proto:!0,forced:!E},{slice:function(D,$){var U=c(this),G=f(U),N=u(D,G),w=u($===void 0?G:$,G),W,X,Y;if(e(U)&&(W=U.constructor,o(W)&&(W===A||e(W.prototype))?W=void 0:i(W)&&(W=W[I],W===null&&(W=void 0)),W===A||W===void 0))return S(U,N,w);for(X=new(W===void 0?A:W)(T(w-N,0)),Y=0;N<w;N++,Y++)N in U&&g(X,Y,U[N]);return X.length=Y,X}})},88088:function(l,p,t){var n=t(14304),e=t(66655).some,o=t(6148),i=o("some");n({target:"Array",proto:!0,forced:!i},{some:function(f){return e(this,f,arguments.length>1?arguments[1]:void 0)}})},46828:function(l,p,t){var n=t(14304),e=t(11286),o=t(85156),i=t(49671),u=t(82628),f=t(12384),c=t(17361),g=t(72069),v=t(13270),y=t(6148),S=t(54040),E=t(87216),I=t(73126),A=t(68674),T=[],M=e(T.sort),D=e(T.push),$=g(function(){T.sort(void 0)}),U=g(function(){T.sort(null)}),G=y("sort"),N=!g(function(){if(I)return I<70;if(!(S&&S>3)){if(E)return!0;if(A)return A<603;var X="",Y,k,st,ut;for(Y=65;Y<76;Y++){switch(k=String.fromCharCode(Y),Y){case 66:case 69:case 70:case 72:st=3;break;case 68:case 71:st=4;break;default:st=2}for(ut=0;ut<47;ut++)T.push({k:k+ut,v:st})}for(T.sort(function(rt,at){return at.v-rt.v}),ut=0;ut<T.length;ut++)k=T[ut].k.charAt(0),X.charAt(X.length-1)!==k&&(X+=k);return X!=="DGBEFHACIJK"}}),w=$||!U||!G||!N,W=function(X){return function(Y,k){return k===void 0?-1:Y===void 0?1:X!==void 0?+X(Y,k)||0:c(Y)>c(k)?1:-1}};n({target:"Array",proto:!0,forced:w},{sort:function(Y){Y!==void 0&&o(Y);var k=i(this);if(N)return Y===void 0?M(k):M(k,Y);var st=[],ut=u(k),rt,at;for(at=0;at<ut;at++)at in k&&D(st,k[at]);for(v(st,W(Y)),rt=u(st),at=0;at<rt;)k[at]=st[at++];for(;at<ut;)f(k,at++);return k}})},90088:function(l,p,t){var n=t(36167);n("Array")},35148:function(l,p,t){var n=t(14304),e=t(49671),o=t(4652),i=t(12105),u=t(82628),f=t(2213),c=t(20095),g=t(62083),v=t(84082),y=t(12384),S=t(52183),E=S("splice"),I=Math.max,A=Math.min;n({target:"Array",proto:!0,forced:!E},{splice:function(M,D){var $=e(this),U=u($),G=o(M,U),N=arguments.length,w,W,X,Y,k,st;for(N===0?w=W=0:N===1?(w=0,W=U-G):(w=N-2,W=A(I(i(D),0),U-G)),c(U+w-W),X=g($,W),Y=0;Y<W;Y++)k=G+Y,k in $&&v(X,Y,$[k]);if(X.length=W,w<W){for(Y=G;Y<U-W;Y++)k=Y+W,st=Y+w,k in $?$[st]=$[k]:y($,st);for(Y=U;Y>U-W+w;Y--)y($,Y-1)}else if(w>W)for(Y=U-W;Y>G;Y--)k=Y+W-1,st=Y+w-1,k in $?$[st]=$[k]:y($,st);for(Y=0;Y<w;Y++)$[Y+G]=arguments[Y+2];return f($,U-W+w),X}})},86184:function(l,p,t){var n=t(14304),e=t(61638),o=t(36859),i=t(23811),u=Array;n({target:"Array",proto:!0},{toReversed:function(){return e(o(this),u)}}),i("toReversed")},53983:function(l,p,t){var n=t(14304),e=t(11286),o=t(85156),i=t(36859),u=t(5220),f=t(65470),c=t(23811),g=Array,v=e(f("Array","sort"));n({target:"Array",proto:!0},{toSorted:function(S){S!==void 0&&o(S);var E=i(this),I=u(g,E);return v(I,S)}}),c("toSorted")},42560:function(l,p,t){var n=t(14304),e=t(23811),o=t(20095),i=t(82628),u=t(4652),f=t(36859),c=t(12105),g=Array,v=Math.max,y=Math.min;n({target:"Array",proto:!0},{toSpliced:function(E,I){var A=f(this),T=i(A),M=u(E,T),D=arguments.length,$=0,U,G,N,w;for(D===0?U=G=0:D===1?(U=0,G=T-M):(U=D-2,G=y(v(c(I),0),T-M)),N=o(T+U-G),w=g(N);$<M;$++)w[$]=A[$];for(;$<M+U;$++)w[$]=arguments[$-M+2];for(;$<N;$++)w[$]=A[$+G-U];return w}}),e("toSpliced")},27839:function(l,p,t){var n=t(23811);n("flatMap")},88444:function(l,p,t){var n=t(23811);n("flat")},73051:function(l,p,t){var n=t(14304),e=t(49671),o=t(82628),i=t(2213),u=t(12384),f=t(20095),c=[].unshift(0)!==1,g=function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(y){return y instanceof TypeError}},v=c||!g();n({target:"Array",proto:!0,arity:1,forced:v},{unshift:function(S){var E=e(this),I=o(E),A=arguments.length;if(A){f(I+A);for(var T=I;T--;){var M=T+A;T in E?E[M]=E[T]:u(E,M)}for(var D=0;D<A;D++)E[D]=arguments[D]}return i(E,I+A)}})},9372:function(l,p,t){var n=t(14304),e=t(72302),o=t(36859),i=Array;n({target:"Array",proto:!0},{with:function(u,f){return e(o(this),i,u,f)}})},77885:function(l,p,t){var n=t(14304),e=t(17468),o=t(3237);n({global:!0,constructor:!0,forced:!o},{DataView:e.DataView})},68575:function(l,p,t){t(77885)},30801:function(l,p,t){var n=t(14304),e=t(11286),o=t(72069),i=o(function(){return new Date(16e11).getYear()!==120}),u=e(Date.prototype.getFullYear);n({target:"Date",proto:!0,forced:i},{getYear:function(){return u(this)-1900}})},90911:function(l,p,t){var n=t(14304),e=t(11286),o=Date,i=e(o.prototype.getTime);n({target:"Date",stat:!0},{now:function(){return i(new o)}})},90429:function(l,p,t){var n=t(14304),e=t(11286),o=t(12105),i=Date.prototype,u=e(i.getTime),f=e(i.setFullYear);n({target:"Date",proto:!0},{setYear:function(g){u(this);var v=o(g),y=v>=0&&v<=99?v+1900:v;return f(this,y)}})},33685:function(l,p,t){var n=t(14304);n({target:"Date",proto:!0},{toGMTString:Date.prototype.toUTCString})},60086:function(l,p,t){var n=t(14304),e=t(11890);n({target:"Date",proto:!0,forced:Date.prototype.toISOString!==e},{toISOString:e})},96049:function(l,p,t){var n=t(14304),e=t(72069),o=t(49671),i=t(89935),u=e(function(){return new Date(NaN).toJSON()!==null||Date.prototype.toJSON.call({toISOString:function(){return 1}})!==1});n({target:"Date",proto:!0,arity:1,forced:u},{toJSON:function(c){var g=o(this),v=i(g,"number");return typeof v=="number"&&!isFinite(v)?null:g.toISOString()}})},14038:function(l,p,t){var n=t(94879),e=t(16142),o=t(84306),i=t(18565),u=i("toPrimitive"),f=Date.prototype;n(f,u)||e(f,u,o)},55518:function(l,p,t){var n=t(11286),e=t(16142),o=Date.prototype,i="Invalid Date",u="toString",f=n(o[u]),c=n(o.getTime);String(new Date(NaN))!==i&&e(o,u,function(){var v=c(this);return v===v?f(this):i})},81742:function(l,p,t){var n=t(14304),e=t(66009),o=t(66543),i=t(70003),u="WebAssembly",f=e[u],c=new Error("e",{cause:7}).cause!==7,g=function(y,S){var E={};E[y]=i(y,S,c),n({global:!0,constructor:!0,arity:1,forced:c},E)},v=function(y,S){if(f&&f[y]){var E={};E[y]=i(u+"."+y,S,c),n({target:u,stat:!0,constructor:!0,arity:1,forced:c},E)}};g("Error",function(y){return function(E){return o(y,this,arguments)}}),g("EvalError",function(y){return function(E){return o(y,this,arguments)}}),g("RangeError",function(y){return function(E){return o(y,this,arguments)}}),g("ReferenceError",function(y){return function(E){return o(y,this,arguments)}}),g("SyntaxError",function(y){return function(E){return o(y,this,arguments)}}),g("TypeError",function(y){return function(E){return o(y,this,arguments)}}),g("URIError",function(y){return function(E){return o(y,this,arguments)}}),v("CompileError",function(y){return function(E){return o(y,this,arguments)}}),v("LinkError",function(y){return function(E){return o(y,this,arguments)}}),v("RuntimeError",function(y){return function(E){return o(y,this,arguments)}})},8720:function(l,p,t){var n=t(16142),e=t(58434),o=Error.prototype;o.toString!==e&&n(o,"toString",e)},8894:function(l,p,t){var n=t(14304),e=t(11286),o=t(17361),i=e("".charAt),u=e("".charCodeAt),f=e(/./.exec),c=e(1 .toString),g=e("".toUpperCase),v=/[\w*+\-./@]/,y=function(S,E){for(var I=c(S,16);I.length<E;)I="0"+I;return I};n({global:!0},{escape:function(E){for(var I=o(E),A="",T=I.length,M=0,D,$;M<T;)D=i(I,M++),f(v,D)?A+=D:($=u(D,0),$<256?A+="%"+y($,2):A+="%u"+g(y($,4)));return A}})},60628:function(l,p,t){var n=t(14304),e=t(91384);n({target:"Function",proto:!0,forced:Function.bind!==e},{bind:e})},56347:function(l,p,t){var n=t(23583),e=t(37540),o=t(7831),i=t(95307),u=t(18565),f=t(13749),c=u("hasInstance"),g=Function.prototype;c in g||o.f(g,c,{value:f(function(v){if(!n(this)||!e(v))return!1;var y=this.prototype;return e(y)?i(y,v):v instanceof this},c)})},16864:function(l,p,t){var n=t(92986),e=t(86588).EXISTS,o=t(11286),i=t(85500),u=Function.prototype,f=o(u.toString),c=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,g=o(c.exec),v="name";n&&!e&&i(u,v,{configurable:!0,get:function(){try{return g(c,f(this))[1]}catch(y){return""}}})},93819:function(l,p,t){var n=t(14304),e=t(66009);n({global:!0,forced:e.globalThis!==e},{globalThis:e})},71332:function(l,p,t){var n=t(14304),e=t(38941),o=t(66543),i=t(96499),u=t(11286),f=t(72069),c=t(23583),g=t(491),v=t(22806),y=t(10443),S=t(39729),E=String,I=e("JSON","stringify"),A=u(/./.exec),T=u("".charAt),M=u("".charCodeAt),D=u("".replace),$=u(1 .toString),U=/[\uD800-\uDFFF]/g,G=/^[\uD800-\uDBFF]$/,N=/^[\uDC00-\uDFFF]$/,w=!S||f(function(){var k=e("Symbol")("stringify detection");return I([k])!=="[null]"||I({a:k})!=="{}"||I(Object(k))!=="{}"}),W=f(function(){return I("\uDF06\uD834")!=='"\\udf06\\ud834"'||I("\uDEAD")!=='"\\udead"'}),X=function(k,st){var ut=v(arguments),rt=y(st);if(!(!c(rt)&&(k===void 0||g(k))))return ut[1]=function(at,ot){if(c(rt)&&(ot=i(rt,this,E(at),ot)),!g(ot))return ot},o(I,null,ut)},Y=function(k,st,ut){var rt=T(ut,st-1),at=T(ut,st+1);return A(G,k)&&!A(N,at)||A(N,k)&&!A(G,rt)?"\\u"+$(M(k,0),16):k};I&&n({target:"JSON",stat:!0,arity:3,forced:w||W},{stringify:function(st,ut,rt){var at=v(arguments),ot=o(w?X:I,null,at);return W&&typeof ot=="string"?D(ot,U,Y):ot}})},47269:function(l,p,t){var n=t(66009),e=t(78401);e(n.JSON,"JSON",!0)},87777:function(l,p,t){var n=t(89378),e=t(34440);n("Map",function(o){return function(){return o(this,arguments.length?arguments[0]:void 0)}},e)},22090:function(l,p,t){var n=t(14304),e=t(11286),o=t(85156),i=t(2068),u=t(55902),f=t(1774),c=t(70457),g=t(72069),v=f.Map,y=f.has,S=f.get,E=f.set,I=e([].push),A=c||g(function(){return v.groupBy("ab",function(T){return T}).get("a").length!==1});n({target:"Map",stat:!0,forced:c||A},{groupBy:function(M,D){i(M),o(D);var $=new v,U=0;return u(M,function(G){var N=D(G,U++);y($,N)?I(S($,N),G):E($,N,[G])}),$}})},25627:function(l,p,t){t(87777)},9839:function(l,p,t){var n=t(14304),e=t(49366),o=Math.acosh,i=Math.log,u=Math.sqrt,f=Math.LN2,c=!o||Math.floor(o(Number.MAX_VALUE))!==710||o(1/0)!==1/0;n({target:"Math",stat:!0,forced:c},{acosh:function(v){var y=+v;return y<1?NaN:y>9490626562425156e-8?i(y)+f:e(y-1+u(y-1)*u(y+1))}})},15656:function(l,p,t){var n=t(14304),e=Math.asinh,o=Math.log,i=Math.sqrt;function u(c){var g=+c;return!isFinite(g)||g===0?g:g<0?-u(-g):o(g+i(g*g+1))}var f=!(e&&1/e(0)>0);n({target:"Math",stat:!0,forced:f},{asinh:u})},22091:function(l,p,t){var n=t(14304),e=Math.atanh,o=Math.log,i=!(e&&1/e(-0)<0);n({target:"Math",stat:!0,forced:i},{atanh:function(f){var c=+f;return c===0?c:o((1+c)/(1-c))/2}})},2886:function(l,p,t){var n=t(14304),e=t(93976),o=Math.abs,i=Math.pow;n({target:"Math",stat:!0},{cbrt:function(f){var c=+f;return e(c)*i(o(c),.3333333333333333)}})},25895:function(l,p,t){var n=t(14304),e=Math.floor,o=Math.log,i=Math.LOG2E;n({target:"Math",stat:!0},{clz32:function(f){var c=f>>>0;return c?31-e(o(c+.5)*i):32}})},24228:function(l,p,t){var n=t(14304),e=t(98940),o=Math.cosh,i=Math.abs,u=Math.E,f=!o||o(710)===1/0;n({target:"Math",stat:!0,forced:f},{cosh:function(g){var v=e(i(g)-1)+1;return(v+1/(v*u*u))*(u/2)}})},79488:function(l,p,t){var n=t(14304),e=t(98940);n({target:"Math",stat:!0,forced:e!==Math.expm1},{expm1:e})},75987:function(l,p,t){var n=t(14304),e=t(93279);n({target:"Math",stat:!0},{fround:e})},81555:function(l,p,t){var n=t(14304),e=Math.hypot,o=Math.abs,i=Math.sqrt,u=!!e&&e(1/0,NaN)!==1/0;n({target:"Math",stat:!0,arity:2,forced:u},{hypot:function(c,g){for(var v=0,y=0,S=arguments.length,E=0,I,A;y<S;)I=o(arguments[y++]),E<I?(A=E/I,v=v*A*A+1,E=I):I>0?(A=I/E,v+=A*A):v+=I;return E===1/0?1/0:E*i(v)}})},87854:function(l,p,t){var n=t(14304),e=t(72069),o=Math.imul,i=e(function(){return o(4294967295,5)!==-5||o.length!==2});n({target:"Math",stat:!0,forced:i},{imul:function(f,c){var g=65535,v=+f,y=+c,S=g&v,E=g&y;return 0|S*E+((g&v>>>16)*E+S*(g&y>>>16)<<16>>>0)}})},35074:function(l,p,t){var n=t(14304),e=t(41942);n({target:"Math",stat:!0},{log10:e})},50946:function(l,p,t){var n=t(14304),e=t(49366);n({target:"Math",stat:!0},{log1p:e})},29417:function(l,p,t){var n=t(14304),e=Math.log,o=Math.LN2;n({target:"Math",stat:!0},{log2:function(u){return e(u)/o}})},80628:function(l,p,t){var n=t(14304),e=t(93976);n({target:"Math",stat:!0},{sign:e})},74375:function(l,p,t){var n=t(14304),e=t(72069),o=t(98940),i=Math.abs,u=Math.exp,f=Math.E,c=e(function(){return Math.sinh(-2e-17)!==-2e-17});n({target:"Math",stat:!0,forced:c},{sinh:function(v){var y=+v;return i(y)<1?(o(y)-o(-y))/2:(u(y-1)-u(-y-1))*(f/2)}})},29708:function(l,p,t){var n=t(14304),e=t(98940),o=Math.exp;n({target:"Math",stat:!0},{tanh:function(u){var f=+u,c=e(f),g=e(-f);return c===1/0?1:g===1/0?-1:(c-g)/(o(f)+o(-f))}})},93449:function(l,p,t){var n=t(78401);n(Math,"Math",!0)},9111:function(l,p,t){var n=t(14304),e=t(22459);n({target:"Math",stat:!0},{trunc:e})},83514:function(l,p,t){var n=t(14304),e=t(70457),o=t(92986),i=t(66009),u=t(75081),f=t(11286),c=t(13278),g=t(94879),v=t(32345),y=t(95307),S=t(491),E=t(89935),I=t(72069),A=t(83258).f,T=t(71349).f,M=t(7831).f,D=t(34338),$=t(85900).trim,U="Number",G=i[U],N=u[U],w=G.prototype,W=i.TypeError,X=f("".slice),Y=f("".charCodeAt),k=function(pt){var Ct=E(pt,"number");return typeof Ct=="bigint"?Ct:st(Ct)},st=function(pt){var Ct=E(pt,"number"),St,$t,Rt,Qt,Yt,Xt,er,ir;if(S(Ct))throw new W("Cannot convert a Symbol value to a number");if(typeof Ct=="string"&&Ct.length>2){if(Ct=$(Ct),St=Y(Ct,0),St===43||St===45){if($t=Y(Ct,2),$t===88||$t===120)return NaN}else if(St===48){switch(Y(Ct,1)){case 66:case 98:Rt=2,Qt=49;break;case 79:case 111:Rt=8,Qt=55;break;default:return+Ct}for(Yt=X(Ct,2),Xt=Yt.length,er=0;er<Xt;er++)if(ir=Y(Yt,er),ir<48||ir>Qt)return NaN;return parseInt(Yt,Rt)}}return+Ct},ut=c(U,!G(" 0o1")||!G("0b1")||G("+0x1")),rt=function(pt){return y(w,pt)&&I(function(){D(pt)})},at=function(Ct){var St=arguments.length<1?0:G(k(Ct));return rt(this)?v(Object(St),this,at):St};at.prototype=w,ut&&!e&&(w.constructor=at),n({global:!0,constructor:!0,wrap:!0,forced:ut},{Number:at});var ot=function(pt,Ct){for(var St=o?A(Ct):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),$t=0,Rt;St.length>$t;$t++)g(Ct,Rt=St[$t])&&!g(pt,Rt)&&M(pt,Rt,T(Ct,Rt))};e&&N&&ot(u[U],N),(ut||e)&&ot(u[U],G)},15096:function(l,p,t){var n=t(14304);n({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},59590:function(l,p,t){var n=t(14304),e=t(98074);n({target:"Number",stat:!0},{isFinite:e})},99663:function(l,p,t){var n=t(14304),e=t(613);n({target:"Number",stat:!0},{isInteger:e})},89988:function(l,p,t){var n=t(14304);n({target:"Number",stat:!0},{isNaN:function(o){return o!==o}})},54427:function(l,p,t){var n=t(14304),e=t(613),o=Math.abs;n({target:"Number",stat:!0},{isSafeInteger:function(u){return e(u)&&o(u)<=9007199254740991}})},67895:function(l,p,t){var n=t(14304);n({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},57909:function(l,p,t){var n=t(14304);n({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},83938:function(l,p,t){var n=t(14304),e=t(25838);n({target:"Number",stat:!0,forced:Number.parseFloat!==e},{parseFloat:e})},55461:function(l,p,t){var n=t(14304),e=t(23009);n({target:"Number",stat:!0,forced:Number.parseInt!==e},{parseInt:e})},97339:function(l,p,t){var n=t(14304),e=t(11286),o=t(12105),i=t(34338),u=t(79719),f=t(41942),c=t(72069),g=RangeError,v=String,y=isFinite,S=Math.abs,E=Math.floor,I=Math.pow,A=Math.round,T=e(1 .toExponential),M=e(u),D=e("".slice),$=T(-69e-12,4)==="-6.9000e-11"&&T(1.255,2)==="1.25e+0"&&T(12345,3)==="1.235e+4"&&T(25,0)==="3e+1",U=function(){return c(function(){T(1,1/0)})&&c(function(){T(1,-1/0)})},G=function(){return!c(function(){T(1/0,1/0),T(NaN,1/0)})},N=!$||!U()||!G();n({target:"Number",proto:!0,forced:N},{toExponential:function(W){var X=i(this);if(W===void 0)return T(X);var Y=o(W);if(!y(X))return String(X);if(Y<0||Y>20)throw new g("Incorrect fraction digits");if($)return T(X,Y);var k="",st="",ut=0,rt="",at="";if(X<0&&(k="-",X=-X),X===0)ut=0,st=M("0",Y+1);else{var ot=f(X);ut=E(ot);var pt=0,Ct=I(10,ut-Y);pt=A(X/Ct),2*X>=(2*pt+1)*Ct&&(pt+=1),pt>=I(10,Y+1)&&(pt/=10,ut+=1),st=v(pt)}return Y!==0&&(st=D(st,0,1)+"."+D(st,1)),ut===0?(rt="+",at="0"):(rt=ut>0?"+":"-",at=v(S(ut))),st+="e"+rt+at,k+st}})},3670:function(l,p,t){var n=t(14304),e=t(11286),o=t(12105),i=t(34338),u=t(79719),f=t(72069),c=RangeError,g=String,v=Math.floor,y=e(u),S=e("".slice),E=e(1 .toFixed),I=function(U,G,N){return G===0?N:G%2===1?I(U,G-1,N*U):I(U*U,G/2,N)},A=function(U){for(var G=0,N=U;N>=4096;)G+=12,N/=4096;for(;N>=2;)G+=1,N/=2;return G},T=function(U,G,N){for(var w=-1,W=N;++w<6;)W+=G*U[w],U[w]=W%1e7,W=v(W/1e7)},M=function(U,G){for(var N=6,w=0;--N>=0;)w+=U[N],U[N]=v(w/G),w=w%G*1e7},D=function(U){for(var G=6,N="";--G>=0;)if(N!==""||G===0||U[G]!==0){var w=g(U[G]);N=N===""?w:N+y("0",7-w.length)+w}return N},$=f(function(){return E(8e-5,3)!=="0.000"||E(.9,0)!=="1"||E(1.255,2)!=="1.25"||E(0xde0b6b3a7640080,0)!=="1000000000000000128"})||!f(function(){E({})});n({target:"Number",proto:!0,forced:$},{toFixed:function(G){var N=i(this),w=o(G),W=[0,0,0,0,0,0],X="",Y="0",k,st,ut,rt;if(w<0||w>20)throw new c("Incorrect fraction digits");if(N!==N)return"NaN";if(N<=-1e21||N>=1e21)return g(N);if(N<0&&(X="-",N=-N),N>1e-21)if(k=A(N*I(2,69,1))-69,st=k<0?N*I(2,-k,1):N/I(2,k,1),st*=4503599627370496,k=52-k,k>0){for(T(W,0,st),ut=w;ut>=7;)T(W,1e7,0),ut-=7;for(T(W,I(10,ut,1),0),ut=k-1;ut>=23;)M(W,8388608),ut-=23;M(W,1<<ut),T(W,1,1),M(W,2),Y=D(W)}else T(W,0,st),T(W,1<<-k,0),Y=D(W)+y("0",w);return w>0?(rt=Y.length,Y=X+(rt<=w?"0."+y("0",w-rt)+Y:S(Y,0,rt-w)+"."+S(Y,rt-w))):Y=X+Y,Y}})},15224:function(l,p,t){var n=t(14304),e=t(11286),o=t(72069),i=t(34338),u=e(1 .toPrecision),f=o(function(){return u(1,void 0)!=="1"})||!o(function(){u({})});n({target:"Number",proto:!0,forced:f},{toPrecision:function(g){return g===void 0?u(i(this)):u(i(this),g)}})},45891:function(l,p,t){var n=t(14304),e=t(16667);n({target:"Object",stat:!0,arity:2,forced:Object.assign!==e},{assign:e})},99910:function(l,p,t){var n=t(14304),e=t(92986),o=t(5406);n({target:"Object",stat:!0,sham:!e},{create:o})},92445:function(l,p,t){var n=t(14304),e=t(92986),o=t(57629),i=t(85156),u=t(49671),f=t(7831);e&&n({target:"Object",proto:!0,forced:o},{__defineGetter__:function(g,v){f.f(u(this),g,{get:i(v),enumerable:!0,configurable:!0})}})},21875:function(l,p,t){var n=t(14304),e=t(92986),o=t(61963).f;n({target:"Object",stat:!0,forced:Object.defineProperties!==o,sham:!e},{defineProperties:o})},4383:function(l,p,t){var n=t(14304),e=t(92986),o=t(7831).f;n({target:"Object",stat:!0,forced:Object.defineProperty!==o,sham:!e},{defineProperty:o})},11361:function(l,p,t){var n=t(14304),e=t(92986),o=t(57629),i=t(85156),u=t(49671),f=t(7831);e&&n({target:"Object",proto:!0,forced:o},{__defineSetter__:function(g,v){f.f(u(this),g,{set:i(v),enumerable:!0,configurable:!0})}})},13728:function(l,p,t){var n=t(14304),e=t(8511).entries;n({target:"Object",stat:!0},{entries:function(i){return e(i)}})},14885:function(l,p,t){var n=t(14304),e=t(27534),o=t(72069),i=t(37540),u=t(31853).onFreeze,f=Object.freeze,c=o(function(){f(1)});n({target:"Object",stat:!0,forced:c,sham:!e},{freeze:function(v){return f&&i(v)?f(u(v)):v}})},30343:function(l,p,t){var n=t(14304),e=t(55902),o=t(84082);n({target:"Object",stat:!0},{fromEntries:function(u){var f={};return e(u,function(c,g){o(f,c,g)},{AS_ENTRIES:!0}),f}})},22045:function(l,p,t){var n=t(14304),e=t(72069),o=t(36859),i=t(71349).f,u=t(92986),f=!u||e(function(){i(1)});n({target:"Object",stat:!0,forced:f,sham:!u},{getOwnPropertyDescriptor:function(g,v){return i(o(g),v)}})},75e3:function(l,p,t){var n=t(14304),e=t(92986),o=t(16885),i=t(36859),u=t(71349),f=t(84082);n({target:"Object",stat:!0,sham:!e},{getOwnPropertyDescriptors:function(g){for(var v=i(g),y=u.f,S=o(v),E={},I=0,A,T;S.length>I;)T=y(v,A=S[I++]),T!==void 0&&f(E,A,T);return E}})},64658:function(l,p,t){var n=t(14304),e=t(72069),o=t(92880).f,i=e(function(){return!Object.getOwnPropertyNames(1)});n({target:"Object",stat:!0,forced:i},{getOwnPropertyNames:o})},45223:function(l,p,t){var n=t(14304),e=t(39729),o=t(72069),i=t(24943),u=t(49671),f=!e||o(function(){i.f(1)});n({target:"Object",stat:!0,forced:f},{getOwnPropertySymbols:function(g){var v=i.f;return v?v(u(g)):[]}})},16017:function(l,p,t){var n=t(14304),e=t(72069),o=t(49671),i=t(26313),u=t(87501),f=e(function(){i(1)});n({target:"Object",stat:!0,forced:f,sham:!u},{getPrototypeOf:function(g){return i(o(g))}})},84681:function(l,p,t){var n=t(14304),e=t(38941),o=t(11286),i=t(85156),u=t(2068),f=t(50035),c=t(55902),g=t(72069),v=Object.groupBy,y=e("Object","create"),S=o([].push),E=!v||g(function(){return v("ab",function(I){return I}).a.length!==1});n({target:"Object",stat:!0,forced:E},{groupBy:function(A,T){u(A),i(T);var M=y(null),D=0;return c(A,function($){var U=f(T($,D++));U in M?S(M[U],$):M[U]=[$]}),M}})},73421:function(l,p,t){var n=t(14304),e=t(94879);n({target:"Object",stat:!0},{hasOwn:e})},31046:function(l,p,t){var n=t(14304),e=t(28174);n({target:"Object",stat:!0,forced:Object.isExtensible!==e},{isExtensible:e})},94645:function(l,p,t){var n=t(14304),e=t(72069),o=t(37540),i=t(14274),u=t(72058),f=Object.isFrozen,c=u||e(function(){f(1)});n({target:"Object",stat:!0,forced:c},{isFrozen:function(v){return!o(v)||u&&i(v)==="ArrayBuffer"?!0:f?f(v):!1}})},62935:function(l,p,t){var n=t(14304),e=t(72069),o=t(37540),i=t(14274),u=t(72058),f=Object.isSealed,c=u||e(function(){f(1)});n({target:"Object",stat:!0,forced:c},{isSealed:function(v){return!o(v)||u&&i(v)==="ArrayBuffer"?!0:f?f(v):!1}})},93446:function(l,p,t){var n=t(14304),e=t(13944);n({target:"Object",stat:!0},{is:e})},62518:function(l,p,t){var n=t(14304),e=t(49671),o=t(18350),i=t(72069),u=i(function(){o(1)});n({target:"Object",stat:!0,forced:u},{keys:function(c){return o(e(c))}})},45130:function(l,p,t){var n=t(14304),e=t(92986),o=t(57629),i=t(49671),u=t(50035),f=t(26313),c=t(71349).f;e&&n({target:"Object",proto:!0,forced:o},{__lookupGetter__:function(v){var y=i(this),S=u(v),E;do if(E=c(y,S))return E.get;while(y=f(y))}})},51542:function(l,p,t){var n=t(14304),e=t(92986),o=t(57629),i=t(49671),u=t(50035),f=t(26313),c=t(71349).f;e&&n({target:"Object",proto:!0,forced:o},{__lookupSetter__:function(v){var y=i(this),S=u(v),E;do if(E=c(y,S))return E.set;while(y=f(y))}})},43781:function(l,p,t){var n=t(14304),e=t(37540),o=t(31853).onFreeze,i=t(27534),u=t(72069),f=Object.preventExtensions,c=u(function(){f(1)});n({target:"Object",stat:!0,forced:c,sham:!i},{preventExtensions:function(v){return f&&e(v)?f(o(v)):v}})},25738:function(l,p,t){var n=t(92986),e=t(85500),o=t(37540),i=t(52427),u=t(49671),f=t(2068),c=Object.getPrototypeOf,g=Object.setPrototypeOf,v=Object.prototype,y="__proto__";if(n&&c&&g&&!(y in v))try{e(v,y,{configurable:!0,get:function(){return c(u(this))},set:function(E){var I=f(this);i(E)&&o(I)&&g(I,E)}})}catch(S){}},93247:function(l,p,t){var n=t(14304),e=t(37540),o=t(31853).onFreeze,i=t(27534),u=t(72069),f=Object.seal,c=u(function(){f(1)});n({target:"Object",stat:!0,forced:c,sham:!i},{seal:function(v){return f&&e(v)?f(o(v)):v}})},41533:function(l,p,t){var n=t(14304),e=t(15861);n({target:"Object",stat:!0},{setPrototypeOf:e})},60225:function(l,p,t){var n=t(67878),e=t(16142),o=t(60105);n||e(Object.prototype,"toString",o,{unsafe:!0})},69920:function(l,p,t){var n=t(14304),e=t(8511).values;n({target:"Object",stat:!0},{values:function(i){return e(i)}})},89205:function(l,p,t){var n=t(14304),e=t(25838);n({global:!0,forced:parseFloat!==e},{parseFloat:e})},78546:function(l,p,t){var n=t(14304),e=t(23009);n({global:!0,forced:parseInt!==e},{parseInt:e})},16893:function(l,p,t){var n=t(14304),e=t(96499),o=t(85156),i=t(24649),u=t(67805),f=t(55902),c=t(26035);n({target:"Promise",stat:!0,forced:c},{allSettled:function(v){var y=this,S=i.f(y),E=S.resolve,I=S.reject,A=u(function(){var T=o(y.resolve),M=[],D=0,$=1;f(v,function(U){var G=D++,N=!1;$++,e(T,y,U).then(function(w){N||(N=!0,M[G]={status:"fulfilled",value:w},--$||E(M))},function(w){N||(N=!0,M[G]={status:"rejected",reason:w},--$||E(M))})}),--$||E(M)});return A.error&&I(A.value),S.promise}})},11733:function(l,p,t){var n=t(14304),e=t(96499),o=t(85156),i=t(24649),u=t(67805),f=t(55902),c=t(26035);n({target:"Promise",stat:!0,forced:c},{all:function(v){var y=this,S=i.f(y),E=S.resolve,I=S.reject,A=u(function(){var T=o(y.resolve),M=[],D=0,$=1;f(v,function(U){var G=D++,N=!1;$++,e(T,y,U).then(function(w){N||(N=!0,M[G]=w,--$||E(M))},I)}),--$||E(M)});return A.error&&I(A.value),S.promise}})},3676:function(l,p,t){var n=t(14304),e=t(96499),o=t(85156),i=t(38941),u=t(24649),f=t(67805),c=t(55902),g=t(26035),v="No one promise resolved";n({target:"Promise",stat:!0,forced:g},{any:function(S){var E=this,I=i("AggregateError"),A=u.f(E),T=A.resolve,M=A.reject,D=f(function(){var $=o(E.resolve),U=[],G=0,N=1,w=!1;c(S,function(W){var X=G++,Y=!1;N++,e($,E,W).then(function(k){Y||w||(w=!0,T(k))},function(k){Y||w||(Y=!0,U[X]=k,--N||M(new I(U,v)))})}),--N||M(new I(U,v))});return D.error&&M(D.value),A.promise}})},14013:function(l,p,t){var n=t(14304),e=t(70457),o=t(37130).CONSTRUCTOR,i=t(98844),u=t(38941),f=t(23583),c=t(16142),g=i&&i.prototype;if(n({target:"Promise",proto:!0,forced:o,real:!0},{catch:function(y){return this.then(void 0,y)}}),!e&&f(i)){var v=u("Promise").prototype.catch;g.catch!==v&&c(g,"catch",v,{unsafe:!0})}},20238:function(l,p,t){var n=t(14304),e=t(70457),o=t(42954),i=t(66009),u=t(96499),f=t(16142),c=t(15861),g=t(78401),v=t(36167),y=t(85156),S=t(23583),E=t(37540),I=t(12833),A=t(16887),T=t(23115).set,M=t(9709),D=t(99095),$=t(67805),U=t(76895),G=t(82367),N=t(98844),w=t(37130),W=t(24649),X="Promise",Y=w.CONSTRUCTOR,k=w.REJECTION_EVENT,st=w.SUBCLASSING,ut=G.getterFor(X),rt=G.set,at=N&&N.prototype,ot=N,pt=at,Ct=i.TypeError,St=i.document,$t=i.process,Rt=W.f,Qt=Rt,Yt=!!(St&&St.createEvent&&i.dispatchEvent),Xt="unhandledrejection",er="rejectionhandled",ir=0,Or=1,yr=2,xr=1,Kt=2,_t,hr,Sr,mr,Ir=function(bt){var fr;return E(bt)&&S(fr=bt.then)?fr:!1},Fr=function(bt,fr){var cr=fr.value,rr=fr.state===Or,qt=rr?bt.ok:bt.fail,$r=bt.resolve,Br=bt.reject,Et=bt.domain,Bt,wt,gt;try{qt?(rr||(fr.rejection===Kt&&Er(fr),fr.rejection=xr),qt===!0?Bt=cr:(Et&&Et.enter(),Bt=qt(cr),Et&&(Et.exit(),gt=!0)),Bt===bt.promise?Br(new Ct("Promise-chain cycle")):(wt=Ir(Bt))?u(wt,Bt,$r,Br):$r(Bt)):Br(cr)}catch(Tt){Et&&!gt&&Et.exit(),Br(Tt)}},Dr=function(bt,fr){bt.notified||(bt.notified=!0,M(function(){for(var cr=bt.reactions,rr;rr=cr.get();)Fr(rr,bt);bt.notified=!1,fr&&!bt.rejection&&gr(bt)}))},Pr=function(bt,fr,cr){var rr,qt;Yt?(rr=St.createEvent("Event"),rr.promise=fr,rr.reason=cr,rr.initEvent(bt,!1,!0),i.dispatchEvent(rr)):rr={promise:fr,reason:cr},!k&&(qt=i["on"+bt])?qt(rr):bt===Xt&&D("Unhandled promise rejection",cr)},gr=function(bt){u(T,i,function(){var fr=bt.facade,cr=bt.value,rr=Cr(bt),qt;if(rr&&(qt=$(function(){o?$t.emit("unhandledRejection",cr,fr):Pr(Xt,fr,cr)}),bt.rejection=o||Cr(bt)?Kt:xr,qt.error))throw qt.value})},Cr=function(bt){return bt.rejection!==xr&&!bt.parent},Er=function(bt){u(T,i,function(){var fr=bt.facade;o?$t.emit("rejectionHandled",fr):Pr(er,fr,bt.value)})},pr=function(bt,fr,cr){return function(rr){bt(fr,rr,cr)}},Ut=function(bt,fr,cr){bt.done||(bt.done=!0,cr&&(bt=cr),bt.value=fr,bt.state=yr,Dr(bt,!0))},Vt=function(bt,fr,cr){if(!bt.done){bt.done=!0,cr&&(bt=cr);try{if(bt.facade===fr)throw new Ct("Promise can't be resolved itself");var rr=Ir(fr);rr?M(function(){var qt={done:!1};try{u(rr,fr,pr(Vt,qt,bt),pr(Ut,qt,bt))}catch($r){Ut(qt,$r,bt)}}):(bt.value=fr,bt.state=Or,Dr(bt,!1))}catch(qt){Ut({done:!1},qt,bt)}}};if(Y&&(ot=function(fr){I(this,pt),y(fr),u(_t,this);var cr=ut(this);try{fr(pr(Vt,cr),pr(Ut,cr))}catch(rr){Ut(cr,rr)}},pt=ot.prototype,_t=function(fr){rt(this,{type:X,done:!1,notified:!1,parent:!1,reactions:new U,rejection:!1,state:ir,value:void 0})},_t.prototype=f(pt,"then",function(fr,cr){var rr=ut(this),qt=Rt(A(this,ot));return rr.parent=!0,qt.ok=S(fr)?fr:!0,qt.fail=S(cr)&&cr,qt.domain=o?$t.domain:void 0,rr.state===ir?rr.reactions.add(qt):M(function(){Fr(qt,rr)}),qt.promise}),hr=function(){var bt=new _t,fr=ut(bt);this.promise=bt,this.resolve=pr(Vt,fr),this.reject=pr(Ut,fr)},W.f=Rt=function(bt){return bt===ot||bt===Sr?new hr(bt):Qt(bt)},!e&&S(N)&&at!==Object.prototype)){mr=at.then,st||f(at,"then",function(fr,cr){var rr=this;return new ot(function(qt,$r){u(mr,rr,qt,$r)}).then(fr,cr)},{unsafe:!0});try{delete at.constructor}catch(bt){}c&&c(at,pt)}n({global:!0,constructor:!0,wrap:!0,forced:Y},{Promise:ot}),g(ot,X,!1,!0),v(X)},58361:function(l,p,t){var n=t(14304),e=t(70457),o=t(98844),i=t(72069),u=t(38941),f=t(23583),c=t(16887),g=t(87408),v=t(16142),y=o&&o.prototype,S=!!o&&i(function(){y.finally.call({then:function(){}},function(){})});if(n({target:"Promise",proto:!0,real:!0,forced:S},{finally:function(I){var A=c(this,u("Promise")),T=f(I);return this.then(T?function(M){return g(A,I()).then(function(){return M})}:I,T?function(M){return g(A,I()).then(function(){throw M})}:I)}}),!e&&f(o)){var E=u("Promise").prototype.finally;y.finally!==E&&v(y,"finally",E,{unsafe:!0})}},63616:function(l,p,t){t(20238),t(11733),t(14013),t(3037),t(36027),t(97282)},3037:function(l,p,t){var n=t(14304),e=t(96499),o=t(85156),i=t(24649),u=t(67805),f=t(55902),c=t(26035);n({target:"Promise",stat:!0,forced:c},{race:function(v){var y=this,S=i.f(y),E=S.reject,I=u(function(){var A=o(y.resolve);f(v,function(T){e(A,y,T).then(S.resolve,E)})});return I.error&&E(I.value),S.promise}})},36027:function(l,p,t){var n=t(14304),e=t(24649),o=t(37130).CONSTRUCTOR;n({target:"Promise",stat:!0,forced:o},{reject:function(u){var f=e.f(this),c=f.reject;return c(u),f.promise}})},97282:function(l,p,t){var n=t(14304),e=t(38941),o=t(70457),i=t(98844),u=t(37130).CONSTRUCTOR,f=t(87408),c=e("Promise"),g=o&&!u;n({target:"Promise",stat:!0,forced:o||u},{resolve:function(y){return f(g&&this===c?i:this,y)}})},23958:function(l,p,t){var n=t(14304),e=t(24649);n({target:"Promise",stat:!0},{withResolvers:function(){var i=e.f(this);return{promise:i.promise,resolve:i.resolve,reject:i.reject}}})},9798:function(l,p,t){var n=t(14304),e=t(66543),o=t(85156),i=t(25001),u=t(72069),f=!u(function(){Reflect.apply(function(){})});n({target:"Reflect",stat:!0,forced:f},{apply:function(g,v,y){return e(o(g),v,i(y))}})},2371:function(l,p,t){var n=t(14304),e=t(38941),o=t(66543),i=t(91384),u=t(80042),f=t(25001),c=t(37540),g=t(5406),v=t(72069),y=e("Reflect","construct"),S=Object.prototype,E=[].push,I=v(function(){function M(){}return!(y(function(){},[],M)instanceof M)}),A=!v(function(){y(function(){})}),T=I||A;n({target:"Reflect",stat:!0,forced:T,sham:T},{construct:function(D,$){u(D),f($);var U=arguments.length<3?D:u(arguments[2]);if(A&&!I)return y(D,$,U);if(D===U){switch($.length){case 0:return new D;case 1:return new D($[0]);case 2:return new D($[0],$[1]);case 3:return new D($[0],$[1],$[2]);case 4:return new D($[0],$[1],$[2],$[3])}var G=[null];return o(E,G,$),new(o(i,D,G))}var N=U.prototype,w=g(c(N)?N:S),W=o(D,w,$);return c(W)?W:w}})},76185:function(l,p,t){var n=t(14304),e=t(92986),o=t(25001),i=t(50035),u=t(7831),f=t(72069),c=f(function(){Reflect.defineProperty(u.f({},1,{value:1}),1,{value:2})});n({target:"Reflect",stat:!0,forced:c,sham:!e},{defineProperty:function(v,y,S){o(v);var E=i(y);o(S);try{return u.f(v,E,S),!0}catch(I){return!1}}})},76553:function(l,p,t){var n=t(14304),e=t(25001),o=t(71349).f;n({target:"Reflect",stat:!0},{deleteProperty:function(u,f){var c=o(e(u),f);return c&&!c.configurable?!1:delete u[f]}})},25227:function(l,p,t){var n=t(14304),e=t(92986),o=t(25001),i=t(71349);n({target:"Reflect",stat:!0,sham:!e},{getOwnPropertyDescriptor:function(f,c){return i.f(o(f),c)}})},91723:function(l,p,t){var n=t(14304),e=t(25001),o=t(26313),i=t(87501);n({target:"Reflect",stat:!0,sham:!i},{getPrototypeOf:function(f){return o(e(f))}})},93518:function(l,p,t){var n=t(14304),e=t(96499),o=t(37540),i=t(25001),u=t(69745),f=t(71349),c=t(26313);function g(v,y){var S=arguments.length<3?v:arguments[2],E,I;if(i(v)===S)return v[y];if(E=f.f(v,y),E)return u(E)?E.value:E.get===void 0?void 0:e(E.get,S);if(o(I=c(v)))return g(I,y,S)}n({target:"Reflect",stat:!0},{get:g})},57882:function(l,p,t){var n=t(14304);n({target:"Reflect",stat:!0},{has:function(o,i){return i in o}})},37796:function(l,p,t){var n=t(14304),e=t(25001),o=t(28174);n({target:"Reflect",stat:!0},{isExtensible:function(u){return e(u),o(u)}})},11563:function(l,p,t){var n=t(14304),e=t(16885);n({target:"Reflect",stat:!0},{ownKeys:e})},26159:function(l,p,t){var n=t(14304),e=t(38941),o=t(25001),i=t(27534);n({target:"Reflect",stat:!0,sham:!i},{preventExtensions:function(f){o(f);try{var c=e("Object","preventExtensions");return c&&c(f),!0}catch(g){return!1}}})},77487:function(l,p,t){var n=t(14304),e=t(25001),o=t(53408),i=t(15861);i&&n({target:"Reflect",stat:!0},{setPrototypeOf:function(f,c){e(f),o(c);try{return i(f,c),!0}catch(g){return!1}}})},20962:function(l,p,t){var n=t(14304),e=t(96499),o=t(25001),i=t(37540),u=t(69745),f=t(72069),c=t(7831),g=t(71349),v=t(26313),y=t(18526);function S(I,A,T){var M=arguments.length<4?I:arguments[3],D=g.f(o(I),A),$,U,G;if(!D){if(i(U=v(I)))return S(U,A,T,M);D=y(0)}if(u(D)){if(D.writable===!1||!i(M))return!1;if($=g.f(M,A)){if($.get||$.set||$.writable===!1)return!1;$.value=T,c.f(M,A,$)}else c.f(M,A,y(0,T))}else{if(G=D.set,G===void 0)return!1;e(G,M,T)}return!0}var E=f(function(){var I=function(){},A=c.f(new I,"a",{configurable:!0});return Reflect.set(I.prototype,"a",1,A)!==!1});n({target:"Reflect",stat:!0,forced:E},{set:S})},6130:function(l,p,t){var n=t(14304),e=t(66009),o=t(78401);n({global:!0},{Reflect:{}}),o(e.Reflect,"Reflect",!0)},1354:function(l,p,t){var n=t(92986),e=t(66009),o=t(11286),i=t(13278),u=t(32345),f=t(90809),c=t(5406),g=t(83258).f,v=t(95307),y=t(11566),S=t(17361),E=t(54932),I=t(39807),A=t(2594),T=t(16142),M=t(72069),D=t(94879),$=t(82367).enforce,U=t(36167),G=t(18565),N=t(76769),w=t(85220),W=G("match"),X=e.RegExp,Y=X.prototype,k=e.SyntaxError,st=o(Y.exec),ut=o("".charAt),rt=o("".replace),at=o("".indexOf),ot=o("".slice),pt=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,Ct=/a/g,St=/a/g,$t=new X(Ct)!==Ct,Rt=I.MISSED_STICKY,Qt=I.UNSUPPORTED_Y,Yt=n&&(!$t||Rt||N||w||M(function(){return St[W]=!1,X(Ct)!==Ct||X(St)===St||String(X(Ct,"i"))!=="/a/i"})),Xt=function(xr){for(var Kt=xr.length,_t=0,hr="",Sr=!1,mr;_t<=Kt;_t++){if(mr=ut(xr,_t),mr==="\\"){hr+=mr+ut(xr,++_t);continue}!Sr&&mr==="."?hr+="[\\s\\S]":(mr==="["?Sr=!0:mr==="]"&&(Sr=!1),hr+=mr)}return hr},er=function(xr){for(var Kt=xr.length,_t=0,hr="",Sr=[],mr=c(null),Ir=!1,Fr=!1,Dr=0,Pr="",gr;_t<=Kt;_t++){if(gr=ut(xr,_t),gr==="\\")gr+=ut(xr,++_t);else if(gr==="]")Ir=!1;else if(!Ir)switch(!0){case gr==="[":Ir=!0;break;case gr==="(":st(pt,ot(xr,_t+1))&&(_t+=2,Fr=!0),hr+=gr,Dr++;continue;case(gr===">"&&Fr):if(Pr===""||D(mr,Pr))throw new k("Invalid capture group name");mr[Pr]=!0,Sr[Sr.length]=[Pr,Dr],Fr=!1,Pr="";continue}Fr?Pr+=gr:hr+=gr}return[hr,Sr]};if(i("RegExp",Yt)){for(var ir=function(Kt,_t){var hr=v(Y,this),Sr=y(Kt),mr=_t===void 0,Ir=[],Fr=Kt,Dr,Pr,gr,Cr,Er,pr;if(!hr&&Sr&&mr&&Kt.constructor===ir)return Kt;if((Sr||v(Y,Kt))&&(Kt=Kt.source,mr&&(_t=E(Fr))),Kt=Kt===void 0?"":S(Kt),_t=_t===void 0?"":S(_t),Fr=Kt,N&&"dotAll"in Ct&&(Pr=!!_t&&at(_t,"s")>-1,Pr&&(_t=rt(_t,/s/g,""))),Dr=_t,Rt&&"sticky"in Ct&&(gr=!!_t&&at(_t,"y")>-1,gr&&Qt&&(_t=rt(_t,/y/g,""))),w&&(Cr=er(Kt),Kt=Cr[0],Ir=Cr[1]),Er=u(X(Kt,_t),hr?this:Y,ir),(Pr||gr||Ir.length)&&(pr=$(Er),Pr&&(pr.dotAll=!0,pr.raw=ir(Xt(Kt),Dr)),gr&&(pr.sticky=!0),Ir.length&&(pr.groups=Ir)),Kt!==Fr)try{f(Er,"source",Fr===""?"(?:)":Fr)}catch(Ut){}return Er},Or=g(X),yr=0;Or.length>yr;)A(ir,X,Or[yr++]);Y.constructor=ir,ir.prototype=Y,T(e,"RegExp",ir,{constructor:!0})}U("RegExp")},47119:function(l,p,t){var n=t(92986),e=t(76769),o=t(14274),i=t(85500),u=t(82367).get,f=RegExp.prototype,c=TypeError;n&&e&&i(f,"dotAll",{configurable:!0,get:function(){if(this!==f){if(o(this)==="RegExp")return!!u(this).dotAll;throw new c("Incompatible receiver, RegExp required")}}})},31145:function(l,p,t){var n=t(14304),e=t(44381);n({target:"RegExp",proto:!0,forced:/./.exec!==e},{exec:e})},96773:function(l,p,t){var n=t(66009),e=t(92986),o=t(85500),i=t(29833),u=t(72069),f=n.RegExp,c=f.prototype,g=e&&u(function(){var v=!0;try{f(".","d")}catch(D){v=!1}var y={},S="",E=v?"dgimsy":"gimsy",I=function(D,$){Object.defineProperty(y,D,{get:function(){return S+=$,!0}})},A={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};v&&(A.hasIndices="d");for(var T in A)I(T,A[T]);var M=Object.getOwnPropertyDescriptor(c,"flags").get.call(y);return M!==E||S!==E});g&&o(c,"flags",{configurable:!0,get:i})},14371:function(l,p,t){var n=t(92986),e=t(39807).MISSED_STICKY,o=t(14274),i=t(85500),u=t(82367).get,f=RegExp.prototype,c=TypeError;n&&e&&i(f,"sticky",{configurable:!0,get:function(){if(this!==f){if(o(this)==="RegExp")return!!u(this).sticky;throw new c("Incompatible receiver, RegExp required")}}})},18180:function(l,p,t){t(31145);var n=t(14304),e=t(96499),o=t(23583),i=t(25001),u=t(17361),f=function(){var g=!1,v=/[ac]/;return v.exec=function(){return g=!0,/./.exec.apply(this,arguments)},v.test("abc")===!0&&g}(),c=/./.test;n({target:"RegExp",proto:!0,forced:!f},{test:function(g){var v=i(this),y=u(g),S=v.exec;if(!o(S))return e(c,v,y);var E=e(S,v,y);return E===null?!1:(i(E),!0)}})},83147:function(l,p,t){var n=t(86588).PROPER,e=t(16142),o=t(25001),i=t(17361),u=t(72069),f=t(54932),c="toString",g=RegExp.prototype,v=g[c],y=u(function(){return v.call({source:"a",flags:"b"})!=="/a/b"}),S=n&&v.name!==c;(y||S)&&e(g,c,function(){var I=o(this),A=i(I.source),T=i(f(I));return"/"+A+"/"+T},{unsafe:!0})},6583:function(l,p,t){var n=t(89378),e=t(34440);n("Set",function(o){return function(){return o(this,arguments.length?arguments[0]:void 0)}},e)},86548:function(l,p,t){var n=t(14304),e=t(41754),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("difference")},{difference:e})},15282:function(l,p,t){var n=t(14304),e=t(72069),o=t(92292),i=t(94118),u=!i("intersection")||e(function(){return String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))!=="3,2"});n({target:"Set",proto:!0,real:!0,forced:u},{intersection:o})},51275:function(l,p,t){var n=t(14304),e=t(47391),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("isDisjointFrom")},{isDisjointFrom:e})},91890:function(l,p,t){var n=t(14304),e=t(75492),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("isSubsetOf")},{isSubsetOf:e})},15089:function(l,p,t){var n=t(14304),e=t(1333),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("isSupersetOf")},{isSupersetOf:e})},75765:function(l,p,t){t(6583)},78134:function(l,p,t){var n=t(14304),e=t(64680),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("symmetricDifference")},{symmetricDifference:e})},56456:function(l,p,t){var n=t(14304),e=t(70402),o=t(94118);n({target:"Set",proto:!0,real:!0,forced:!o("union")},{union:e})},70641:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("anchor")},{anchor:function(u){return e(this,"a","name",u)}})},40735:function(l,p,t){var n=t(14304),e=t(11286),o=t(2068),i=t(12105),u=t(17361),f=t(72069),c=e("".charAt),g=f(function(){return"\u{20BB7}".at(-2)!=="\uD842"});n({target:"String",proto:!0,forced:g},{at:function(y){var S=u(o(this)),E=S.length,I=i(y),A=I>=0?I:E+I;return A<0||A>=E?void 0:c(S,A)}})},53892:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("big")},{big:function(){return e(this,"big","","")}})},95976:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("blink")},{blink:function(){return e(this,"blink","","")}})},399:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("bold")},{bold:function(){return e(this,"b","","")}})},8510:function(l,p,t){var n=t(14304),e=t(22149).codeAt;n({target:"String",proto:!0},{codePointAt:function(i){return e(this,i)}})},70159:function(l,p,t){var n=t(14304),e=t(77422),o=t(71349).f,i=t(45344),u=t(17361),f=t(92337),c=t(2068),g=t(8790),v=t(70457),y=e("".slice),S=Math.min,E=g("endsWith"),I=!v&&!E&&!!function(){var A=o(String.prototype,"endsWith");return A&&!A.writable}();n({target:"String",proto:!0,forced:!I&&!E},{endsWith:function(T){var M=u(c(this));f(T);var D=arguments.length>1?arguments[1]:void 0,$=M.length,U=D===void 0?$:S(i(D),$),G=u(T);return y(M,U-G.length,U)===G}})},72032:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("fixed")},{fixed:function(){return e(this,"tt","","")}})},49442:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("fontcolor")},{fontcolor:function(u){return e(this,"font","color",u)}})},16012:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("fontsize")},{fontsize:function(u){return e(this,"font","size",u)}})},93087:function(l,p,t){var n=t(14304),e=t(11286),o=t(4652),i=RangeError,u=String.fromCharCode,f=String.fromCodePoint,c=e([].join),g=!!f&&f.length!==1;n({target:"String",stat:!0,arity:1,forced:g},{fromCodePoint:function(y){for(var S=[],E=arguments.length,I=0,A;E>I;){if(A=+arguments[I++],o(A,1114111)!==A)throw new i(A+" is not a valid code point");S[I]=A<65536?u(A):u(((A-=65536)>>10)+55296,A%1024+56320)}return c(S,"")}})},26021:function(l,p,t){var n=t(14304),e=t(11286),o=t(92337),i=t(2068),u=t(17361),f=t(8790),c=e("".indexOf);n({target:"String",proto:!0,forced:!f("includes")},{includes:function(v){return!!~c(u(i(this)),u(o(v)),arguments.length>1?arguments[1]:void 0)}})},93029:function(l,p,t){var n=t(14304),e=t(11286),o=t(2068),i=t(17361),u=e("".charCodeAt);n({target:"String",proto:!0},{isWellFormed:function(){for(var c=i(o(this)),g=c.length,v=0;v<g;v++){var y=u(c,v);if((y&63488)===55296&&(y>=56320||++v>=g||(u(c,v)&64512)!==56320))return!1}return!0}})},9943:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("italics")},{italics:function(){return e(this,"i","","")}})},59158:function(l,p,t){var n=t(22149).charAt,e=t(17361),o=t(82367),i=t(10218),u=t(10659),f="String Iterator",c=o.set,g=o.getterFor(f);i(String,"String",function(v){c(this,{type:f,string:e(v),index:0})},function(){var y=g(this),S=y.string,E=y.index,I;return E>=S.length?u(void 0,!0):(I=n(S,E),y.index+=I.length,u(I,!1))})},33128:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("link")},{link:function(u){return e(this,"a","href",u)}})},18509:function(l,p,t){var n=t(14304),e=t(96499),o=t(77422),i=t(26820),u=t(10659),f=t(2068),c=t(45344),g=t(17361),v=t(25001),y=t(5683),S=t(14274),E=t(11566),I=t(54932),A=t(10512),T=t(16142),M=t(72069),D=t(18565),$=t(16887),U=t(24487),G=t(33064),N=t(82367),w=t(70457),W=D("matchAll"),X="RegExp String",Y=X+" Iterator",k=N.set,st=N.getterFor(Y),ut=RegExp.prototype,rt=TypeError,at=o("".indexOf),ot=o("".matchAll),pt=!!ot&&!M(function(){ot("a",/./)}),Ct=i(function(Rt,Qt,Yt,Xt){k(this,{type:Y,regexp:Rt,string:Qt,global:Yt,unicode:Xt,done:!1})},X,function(){var Rt=st(this);if(Rt.done)return u(void 0,!0);var Qt=Rt.regexp,Yt=Rt.string,Xt=G(Qt,Yt);return Xt===null?(Rt.done=!0,u(void 0,!0)):Rt.global?(g(Xt[0])===""&&(Qt.lastIndex=U(Yt,c(Qt.lastIndex),Rt.unicode)),u(Xt,!1)):(Rt.done=!0,u(Xt,!1))}),St=function($t){var Rt=v(this),Qt=g($t),Yt=$(Rt,RegExp),Xt=g(I(Rt)),er,ir,Or;return er=new Yt(Yt===RegExp?Rt.source:Rt,Xt),ir=!!~at(Xt,"g"),Or=!!~at(Xt,"u"),er.lastIndex=c(Rt.lastIndex),new Ct(er,Qt,ir,Or)};n({target:"String",proto:!0,forced:pt},{matchAll:function(Rt){var Qt=f(this),Yt,Xt,er,ir;if(y(Rt)){if(pt)return ot(Qt,Rt)}else{if(E(Rt)&&(Yt=g(f(I(Rt))),!~at(Yt,"g")))throw new rt("`.matchAll` does not allow non-global regexes");if(pt)return ot(Qt,Rt);if(er=A(Rt,W),er===void 0&&w&&S(Rt)==="RegExp"&&(er=St),er)return e(er,Rt,Qt)}return Xt=g(Qt),ir=new RegExp(Rt,"g"),w?e(St,ir,Xt):ir[W](Xt)}}),w||W in ut||T(ut,W,St)},15599:function(l,p,t){var n=t(96499),e=t(63194),o=t(25001),i=t(5683),u=t(45344),f=t(17361),c=t(2068),g=t(10512),v=t(24487),y=t(33064);e("match",function(S,E,I){return[function(T){var M=c(this),D=i(T)?void 0:g(T,S);return D?n(D,T,M):new RegExp(T)[S](f(M))},function(A){var T=o(this),M=f(A),D=I(E,T,M);if(D.done)return D.value;if(!T.global)return y(T,M);var $=T.unicode;T.lastIndex=0;for(var U=[],G=0,N;(N=y(T,M))!==null;){var w=f(N[0]);U[G]=w,w===""&&(T.lastIndex=v(M,u(T.lastIndex),$)),G++}return G===0?null:U}]})},21579:function(l,p,t){var n=t(14304),e=t(61607).end,o=t(36945);n({target:"String",proto:!0,forced:o},{padEnd:function(u){return e(this,u,arguments.length>1?arguments[1]:void 0)}})},8854:function(l,p,t){var n=t(14304),e=t(61607).start,o=t(36945);n({target:"String",proto:!0,forced:o},{padStart:function(u){return e(this,u,arguments.length>1?arguments[1]:void 0)}})},57676:function(l,p,t){var n=t(14304),e=t(11286),o=t(36859),i=t(49671),u=t(17361),f=t(82628),c=e([].push),g=e([].join);n({target:"String",stat:!0},{raw:function(y){var S=o(i(y).raw),E=f(S);if(!E)return"";for(var I=arguments.length,A=[],T=0;;){if(c(A,u(S[T++])),T===E)return g(A,"");T<I&&c(A,u(arguments[T]))}}})},14527:function(l,p,t){var n=t(14304),e=t(79719);n({target:"String",proto:!0},{repeat:e})},52684:function(l,p,t){var n=t(14304),e=t(96499),o=t(11286),i=t(2068),u=t(23583),f=t(5683),c=t(11566),g=t(17361),v=t(10512),y=t(54932),S=t(38368),E=t(18565),I=t(70457),A=E("replace"),T=TypeError,M=o("".indexOf),D=o("".replace),$=o("".slice),U=Math.max;n({target:"String",proto:!0},{replaceAll:function(N,w){var W=i(this),X,Y,k,st,ut,rt,at,ot,pt,Ct=0,St=0,$t="";if(!f(N)){if(X=c(N),X&&(Y=g(i(y(N))),!~M(Y,"g")))throw new T("`.replaceAll` does not allow non-global regexes");if(k=v(N,A),k)return e(k,N,W,w);if(I&&X)return D(g(W),N,w)}for(st=g(W),ut=g(N),rt=u(w),rt||(w=g(w)),at=ut.length,ot=U(1,at),Ct=M(st,ut);Ct!==-1;)pt=rt?g(w(ut,Ct,st)):S(ut,st,Ct,[],void 0,w),$t+=$(st,St,Ct)+pt,St=Ct+at,Ct=Ct+ot>st.length?-1:M(st,ut,Ct+ot);return St<st.length&&($t+=$(st,St)),$t}})},96834:function(l,p,t){var n=t(66543),e=t(96499),o=t(11286),i=t(63194),u=t(72069),f=t(25001),c=t(23583),g=t(5683),v=t(12105),y=t(45344),S=t(17361),E=t(2068),I=t(24487),A=t(10512),T=t(38368),M=t(33064),D=t(18565),$=D("replace"),U=Math.max,G=Math.min,N=o([].concat),w=o([].push),W=o("".indexOf),X=o("".slice),Y=function(rt){return rt===void 0?rt:String(rt)},k=function(){return"a".replace(/./,"$0")==="$0"}(),st=function(){return/./[$]?/./[$]("a","$0")==="":!1}(),ut=!u(function(){var rt=/./;return rt.exec=function(){var at=[];return at.groups={a:"7"},at},"".replace(rt,"$<a>")!=="7"});i("replace",function(rt,at,ot){var pt=st?"$":"$0";return[function(St,$t){var Rt=E(this),Qt=g(St)?void 0:A(St,$);return Qt?e(Qt,St,Rt,$t):e(at,S(Rt),St,$t)},function(Ct,St){var $t=f(this),Rt=S(Ct);if(typeof St=="string"&&W(St,pt)===-1&&W(St,"$<")===-1){var Qt=ot(at,$t,Rt,St);if(Qt.done)return Qt.value}var Yt=c(St);Yt||(St=S(St));var Xt=$t.global,er;Xt&&(er=$t.unicode,$t.lastIndex=0);for(var ir=[],Or;Or=M($t,Rt),!(Or===null||(w(ir,Or),!Xt));){var yr=S(Or[0]);yr===""&&($t.lastIndex=I(Rt,y($t.lastIndex),er))}for(var xr="",Kt=0,_t=0;_t<ir.length;_t++){Or=ir[_t];for(var hr=S(Or[0]),Sr=U(G(v(Or.index),Rt.length),0),mr=[],Ir,Fr=1;Fr<Or.length;Fr++)w(mr,Y(Or[Fr]));var Dr=Or.groups;if(Yt){var Pr=N([hr],mr,Sr,Rt);Dr!==void 0&&w(Pr,Dr),Ir=S(n(St,void 0,Pr))}else Ir=T(hr,Rt,Sr,mr,Dr,St);Sr>=Kt&&(xr+=X(Rt,Kt,Sr)+Ir,Kt=Sr+hr.length)}return xr+X(Rt,Kt)}]},!ut||!k||st)},74980:function(l,p,t){var n=t(96499),e=t(63194),o=t(25001),i=t(5683),u=t(2068),f=t(13944),c=t(17361),g=t(10512),v=t(33064);e("search",function(y,S,E){return[function(A){var T=u(this),M=i(A)?void 0:g(A,y);return M?n(M,A,T):new RegExp(A)[y](c(T))},function(I){var A=o(this),T=c(I),M=E(S,A,T);if(M.done)return M.value;var D=A.lastIndex;f(D,0)||(A.lastIndex=0);var $=v(A,T);return f(A.lastIndex,D)||(A.lastIndex=D),$===null?-1:$.index}]})},95625:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("small")},{small:function(){return e(this,"small","","")}})},390:function(l,p,t){var n=t(96499),e=t(11286),o=t(63194),i=t(25001),u=t(5683),f=t(2068),c=t(16887),g=t(24487),v=t(45344),y=t(17361),S=t(10512),E=t(33064),I=t(39807),A=t(72069),T=I.UNSUPPORTED_Y,M=4294967295,D=Math.min,$=e([].push),U=e("".slice),G=!A(function(){var w=/(?:)/,W=w.exec;w.exec=function(){return W.apply(this,arguments)};var X="ab".split(w);return X.length!==2||X[0]!=="a"||X[1]!=="b"}),N="abbc".split(/(b)*/)[1]==="c"||"test".split(/(?:)/,-1).length!==4||"ab".split(/(?:ab)*/).length!==2||".".split(/(.?)(.?)/).length!==4||".".split(/()()/).length>1||"".split(/.?/).length;o("split",function(w,W,X){var Y="0".split(void 0,0).length?function(k,st){return k===void 0&&st===0?[]:n(W,this,k,st)}:W;return[function(st,ut){var rt=f(this),at=u(st)?void 0:S(st,w);return at?n(at,st,rt,ut):n(Y,y(rt),st,ut)},function(k,st){var ut=i(this),rt=y(k);if(!N){var at=X(Y,ut,rt,st,Y!==W);if(at.done)return at.value}var ot=c(ut,RegExp),pt=ut.unicode,Ct=(ut.ignoreCase?"i":"")+(ut.multiline?"m":"")+(ut.unicode?"u":"")+(T?"g":"y"),St=new ot(T?"^(?:"+ut.source+")":ut,Ct),$t=st===void 0?M:st>>>0;if($t===0)return[];if(rt.length===0)return E(St,rt)===null?[rt]:[];for(var Rt=0,Qt=0,Yt=[];Qt<rt.length;){St.lastIndex=T?0:Qt;var Xt=E(St,T?U(rt,Qt):rt),er;if(Xt===null||(er=D(v(St.lastIndex+(T?Qt:0)),rt.length))===Rt)Qt=g(rt,Qt,pt);else{if($(Yt,U(rt,Rt,Qt)),Yt.length===$t)return Yt;for(var ir=1;ir<=Xt.length-1;ir++)if($(Yt,Xt[ir]),Yt.length===$t)return Yt;Qt=Rt=er}}return $(Yt,U(rt,Rt)),Yt}]},N||!G,T)},42794:function(l,p,t){var n=t(14304),e=t(77422),o=t(71349).f,i=t(45344),u=t(17361),f=t(92337),c=t(2068),g=t(8790),v=t(70457),y=e("".slice),S=Math.min,E=g("startsWith"),I=!v&&!E&&!!function(){var A=o(String.prototype,"startsWith");return A&&!A.writable}();n({target:"String",proto:!0,forced:!I&&!E},{startsWith:function(T){var M=u(c(this));f(T);var D=i(S(arguments.length>1?arguments[1]:void 0,M.length)),$=u(T);return y(M,D,D+$.length)===$}})},90614:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("strike")},{strike:function(){return e(this,"strike","","")}})},60120:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("sub")},{sub:function(){return e(this,"sub","","")}})},21293:function(l,p,t){var n=t(14304),e=t(11286),o=t(2068),i=t(12105),u=t(17361),f=e("".slice),c=Math.max,g=Math.min,v=!"".substr||"ab".substr(-1)!=="b";n({target:"String",proto:!0,forced:v},{substr:function(S,E){var I=u(o(this)),A=I.length,T=i(S),M,D;return T===1/0&&(T=0),T<0&&(T=c(A+T,0)),M=E===void 0?A:i(E),M<=0||M===1/0?"":(D=g(T+M,A),T>=D?"":f(I,T,D))}})},75826:function(l,p,t){var n=t(14304),e=t(68422),o=t(5287);n({target:"String",proto:!0,forced:o("sup")},{sup:function(){return e(this,"sup","","")}})},18184:function(l,p,t){var n=t(14304),e=t(96499),o=t(11286),i=t(2068),u=t(17361),f=t(72069),c=Array,g=o("".charAt),v=o("".charCodeAt),y=o([].join),S="".toWellFormed,E="\uFFFD",I=S&&f(function(){return e(S,1)!=="1"});n({target:"String",proto:!0,forced:I},{toWellFormed:function(){var T=u(i(this));if(I)return e(S,T);for(var M=T.length,D=c(M),$=0;$<M;$++){var U=v(T,$);(U&63488)!==55296?D[$]=g(T,$):U>=56320||$+1>=M||(v(T,$+1)&64512)!==56320?D[$]=E:(D[$]=g(T,$),D[++$]=g(T,$))}return y(D,"")}})},19680:function(l,p,t){t(23283);var n=t(14304),e=t(75176);n({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==e},{trimEnd:e})},12272:function(l,p,t){var n=t(14304),e=t(83481);n({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==e},{trimLeft:e})},23283:function(l,p,t){var n=t(14304),e=t(75176);n({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==e},{trimRight:e})},4193:function(l,p,t){t(12272);var n=t(14304),e=t(83481);n({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==e},{trimStart:e})},75012:function(l,p,t){var n=t(14304),e=t(85900).trim,o=t(33328);n({target:"String",proto:!0,forced:o("trim")},{trim:function(){return e(this)}})},43606:function(l,p,t){var n=t(83749);n("asyncIterator")},51767:function(l,p,t){var n=t(14304),e=t(66009),o=t(96499),i=t(11286),u=t(70457),f=t(92986),c=t(39729),g=t(72069),v=t(94879),y=t(95307),S=t(25001),E=t(36859),I=t(50035),A=t(17361),T=t(18526),M=t(5406),D=t(18350),$=t(83258),U=t(92880),G=t(24943),N=t(71349),w=t(7831),W=t(61963),X=t(79591),Y=t(16142),k=t(85500),st=t(96731),ut=t(44869),rt=t(19423),at=t(36374),ot=t(18565),pt=t(56529),Ct=t(83749),St=t(60796),$t=t(78401),Rt=t(82367),Qt=t(66655).forEach,Yt=ut("hidden"),Xt="Symbol",er="prototype",ir=Rt.set,Or=Rt.getterFor(Xt),yr=Object[er],xr=e.Symbol,Kt=xr&&xr[er],_t=e.RangeError,hr=e.TypeError,Sr=e.QObject,mr=N.f,Ir=w.f,Fr=U.f,Dr=X.f,Pr=i([].push),gr=st("symbols"),Cr=st("op-symbols"),Er=st("wks"),pr=!Sr||!Sr[er]||!Sr[er].findChild,Ut=function(Bt,wt,gt){var Tt=mr(yr,wt);Tt&&delete yr[wt],Ir(Bt,wt,gt),Tt&&Bt!==yr&&Ir(yr,wt,Tt)},Vt=f&&g(function(){return M(Ir({},"a",{get:function(){return Ir(this,"a",{value:7}).a}})).a!==7})?Ut:Ir,bt=function(Bt,wt){var gt=gr[Bt]=M(Kt);return ir(gt,{type:Xt,tag:Bt,description:wt}),f||(gt.description=wt),gt},fr=function(wt,gt,Tt){wt===yr&&fr(Cr,gt,Tt),S(wt);var q=I(gt);return S(Tt),v(gr,q)?(Tt.enumerable?(v(wt,Yt)&&wt[Yt][q]&&(wt[Yt][q]=!1),Tt=M(Tt,{enumerable:T(0,!1)})):(v(wt,Yt)||Ir(wt,Yt,T(1,M(null))),wt[Yt][q]=!0),Vt(wt,q,Tt)):Ir(wt,q,Tt)},cr=function(wt,gt){S(wt);var Tt=E(gt),q=D(Tt).concat(Et(Tt));return Qt(q,function(At){(!f||o(qt,Tt,At))&&fr(wt,At,Tt[At])}),wt},rr=function(wt,gt){return gt===void 0?M(wt):cr(M(wt),gt)},qt=function(wt){var gt=I(wt),Tt=o(Dr,this,gt);return this===yr&&v(gr,gt)&&!v(Cr,gt)?!1:Tt||!v(this,gt)||!v(gr,gt)||v(this,Yt)&&this[Yt][gt]?Tt:!0},$r=function(wt,gt){var Tt=E(wt),q=I(gt);if(!(Tt===yr&&v(gr,q)&&!v(Cr,q))){var At=mr(Tt,q);return At&&v(gr,q)&&!(v(Tt,Yt)&&Tt[Yt][q])&&(At.enumerable=!0),At}},Br=function(wt){var gt=Fr(E(wt)),Tt=[];return Qt(gt,function(q){!v(gr,q)&&!v(rt,q)&&Pr(Tt,q)}),Tt},Et=function(Bt){var wt=Bt===yr,gt=Fr(wt?Cr:E(Bt)),Tt=[];return Qt(gt,function(q){v(gr,q)&&(!wt||v(yr,q))&&Pr(Tt,gr[q])}),Tt};c||(xr=function(){if(y(Kt,this))throw new hr("Symbol is not a constructor");var wt=!arguments.length||arguments[0]===void 0?void 0:A(arguments[0]),gt=at(wt),Tt=function(q){var At=this===void 0?e:this;At===yr&&o(Tt,Cr,q),v(At,Yt)&&v(At[Yt],gt)&&(At[Yt][gt]=!1);var Jt=T(1,q);try{Vt(At,gt,Jt)}catch(kt){if(!(kt instanceof _t))throw kt;Ut(At,gt,Jt)}};return f&&pr&&Vt(yr,gt,{configurable:!0,set:Tt}),bt(gt,wt)},Kt=xr[er],Y(Kt,"toString",function(){return Or(this).tag}),Y(xr,"withoutSetter",function(Bt){return bt(at(Bt),Bt)}),X.f=qt,w.f=fr,W.f=cr,N.f=$r,$.f=U.f=Br,G.f=Et,pt.f=function(Bt){return bt(ot(Bt),Bt)},f&&(k(Kt,"description",{configurable:!0,get:function(){return Or(this).description}}),u||Y(yr,"propertyIsEnumerable",qt,{unsafe:!0}))),n({global:!0,constructor:!0,wrap:!0,forced:!c,sham:!c},{Symbol:xr}),Qt(D(Er),function(Bt){Ct(Bt)}),n({target:Xt,stat:!0,forced:!c},{useSetter:function(){pr=!0},useSimple:function(){pr=!1}}),n({target:"Object",stat:!0,forced:!c,sham:!f},{create:rr,defineProperty:fr,defineProperties:cr,getOwnPropertyDescriptor:$r}),n({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:Br}),St(),$t(xr,Xt),rt[Yt]=!0},43657:function(l,p,t){var n=t(14304),e=t(92986),o=t(66009),i=t(11286),u=t(94879),f=t(23583),c=t(95307),g=t(17361),v=t(85500),y=t(93706),S=o.Symbol,E=S&&S.prototype;if(e&&f(S)&&(!("description"in E)||S().description!==void 0)){var I={},A=function(){var w=arguments.length<1||arguments[0]===void 0?void 0:g(arguments[0]),W=c(E,this)?new S(w):w===void 0?S():S(w);return w===""&&(I[W]=!0),W};y(A,S),A.prototype=E,E.constructor=A;var T=String(S("description detection"))==="Symbol(description detection)",M=i(E.valueOf),D=i(E.toString),$=/^Symbol\((.*)\)[^)]+$/,U=i("".replace),G=i("".slice);v(E,"description",{configurable:!0,get:function(){var w=M(this);if(u(I,w))return"";var W=D(w),X=T?G(W,7,-1):U(W,$,"$1");return X===""?void 0:X}}),n({global:!0,constructor:!0,forced:!0},{Symbol:A})}},20872:function(l,p,t){var n=t(14304),e=t(38941),o=t(94879),i=t(17361),u=t(96731),f=t(61190),c=u("string-to-symbol-registry"),g=u("symbol-to-string-registry");n({target:"Symbol",stat:!0,forced:!f},{for:function(v){var y=i(v);if(o(c,y))return c[y];var S=e("Symbol")(y);return c[y]=S,g[S]=y,S}})},15855:function(l,p,t){var n=t(83749);n("hasInstance")},42026:function(l,p,t){var n=t(83749);n("isConcatSpreadable")},33257:function(l,p,t){var n=t(83749);n("iterator")},40949:function(l,p,t){t(51767),t(20872),t(94762),t(71332),t(45223)},94762:function(l,p,t){var n=t(14304),e=t(94879),o=t(491),i=t(82453),u=t(96731),f=t(61190),c=u("symbol-to-string-registry");n({target:"Symbol",stat:!0,forced:!f},{keyFor:function(v){if(!o(v))throw new TypeError(i(v)+" is not a symbol");if(e(c,v))return c[v]}})},88344:function(l,p,t){var n=t(83749);n("matchAll")},59414:function(l,p,t){var n=t(83749);n("match")},92579:function(l,p,t){var n=t(83749);n("replace")},94655:function(l,p,t){var n=t(83749);n("search")},8565:function(l,p,t){var n=t(83749);n("species")},60843:function(l,p,t){var n=t(83749);n("split")},65842:function(l,p,t){var n=t(83749),e=t(60796);n("toPrimitive"),e()},51595:function(l,p,t){var n=t(38941),e=t(83749),o=t(78401);e("toStringTag"),o(n("Symbol"),"Symbol")},54908:function(l,p,t){var n=t(83749);n("unscopables")},71998:function(l,p,t){var n=t(88037),e=t(82628),o=t(12105),i=n.aTypedArray,u=n.exportTypedArrayMethod;u("at",function(c){var g=i(this),v=e(g),y=o(c),S=y>=0?y:v+y;return S<0||S>=v?void 0:g[S]})},6116:function(l,p,t){var n=t(11286),e=t(88037),o=t(81499),i=n(o),u=e.aTypedArray,f=e.exportTypedArrayMethod;f("copyWithin",function(g,v){return i(u(this),g,v,arguments.length>2?arguments[2]:void 0)})},33032:function(l,p,t){var n=t(88037),e=t(66655).every,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("every",function(f){return e(o(this),f,arguments.length>1?arguments[1]:void 0)})},80962:function(l,p,t){var n=t(88037),e=t(43011),o=t(11344),i=t(9205),u=t(96499),f=t(11286),c=t(72069),g=n.aTypedArray,v=n.exportTypedArrayMethod,y=f("".slice),S=c(function(){var E=0;return new Int8Array(2).fill({valueOf:function(){return E++}}),E!==1});v("fill",function(I){var A=arguments.length;g(this);var T=y(i(this),0,3)==="Big"?o(I):+I;return u(e,this,T,A>1?arguments[1]:void 0,A>2?arguments[2]:void 0)},S)},49381:function(l,p,t){var n=t(88037),e=t(66655).filter,o=t(3795),i=n.aTypedArray,u=n.exportTypedArrayMethod;u("filter",function(c){var g=e(i(this),c,arguments.length>1?arguments[1]:void 0);return o(this,g)})},65961:function(l,p,t){var n=t(88037),e=t(66655).findIndex,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("findIndex",function(f){return e(o(this),f,arguments.length>1?arguments[1]:void 0)})},16028:function(l,p,t){var n=t(88037),e=t(73849).findLastIndex,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("findLastIndex",function(f){return e(o(this),f,arguments.length>1?arguments[1]:void 0)})},94153:function(l,p,t){var n=t(88037),e=t(73849).findLast,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("findLast",function(f){return e(o(this),f,arguments.length>1?arguments[1]:void 0)})},38344:function(l,p,t){var n=t(88037),e=t(66655).find,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("find",function(f){return e(o(this),f,arguments.length>1?arguments[1]:void 0)})},25560:function(l,p,t){var n=t(80357);n("Float32",function(e){return function(i,u,f){return e(this,i,u,f)}})},22571:function(l,p,t){var n=t(80357);n("Float64",function(e){return function(i,u,f){return e(this,i,u,f)}})},20656:function(l,p,t){var n=t(88037),e=t(66655).forEach,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("forEach",function(f){e(o(this),f,arguments.length>1?arguments[1]:void 0)})},17063:function(l,p,t){var n=t(46868),e=t(88037).exportTypedArrayStaticMethod,o=t(66169);e("from",o,n)},21774:function(l,p,t){var n=t(88037),e=t(94319).includes,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("includes",function(f){return e(o(this),f,arguments.length>1?arguments[1]:void 0)})},51761:function(l,p,t){var n=t(88037),e=t(94319).indexOf,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("indexOf",function(f){return e(o(this),f,arguments.length>1?arguments[1]:void 0)})},36849:function(l,p,t){var n=t(80357);n("Int16",function(e){return function(i,u,f){return e(this,i,u,f)}})},49191:function(l,p,t){var n=t(80357);n("Int32",function(e){return function(i,u,f){return e(this,i,u,f)}})},40704:function(l,p,t){var n=t(80357);n("Int8",function(e){return function(i,u,f){return e(this,i,u,f)}})},12317:function(l,p,t){var n=t(66009),e=t(72069),o=t(11286),i=t(88037),u=t(35054),f=t(18565),c=f("iterator"),g=n.Uint8Array,v=o(u.values),y=o(u.keys),S=o(u.entries),E=i.aTypedArray,I=i.exportTypedArrayMethod,A=g&&g.prototype,T=!e(function(){A[c].call([1])}),M=!!A&&A.values&&A[c]===A.values&&A.values.name==="values",D=function(){return v(E(this))};I("entries",function(){return S(E(this))},T),I("keys",function(){return y(E(this))},T),I("values",D,T||!M,{name:"values"}),I(c,D,T||!M,{name:"values"})},19711:function(l,p,t){var n=t(88037),e=t(11286),o=n.aTypedArray,i=n.exportTypedArrayMethod,u=e([].join);i("join",function(c){return u(o(this),c)})},41034:function(l,p,t){var n=t(88037),e=t(66543),o=t(58465),i=n.aTypedArray,u=n.exportTypedArrayMethod;u("lastIndexOf",function(c){var g=arguments.length;return e(o,i(this),g>1?[c,arguments[1]]:[c])})},13313:function(l,p,t){var n=t(88037),e=t(66655).map,o=t(21822),i=n.aTypedArray,u=n.exportTypedArrayMethod;u("map",function(c){return e(i(this),c,arguments.length>1?arguments[1]:void 0,function(g,v){return new(o(g))(v)})})},44698:function(l,p,t){var n=t(88037),e=t(46868),o=n.aTypedArrayConstructor,i=n.exportTypedArrayStaticMethod;i("of",function(){for(var f=0,c=arguments.length,g=new(o(this))(c);c>f;)g[f]=arguments[f++];return g},e)},66178:function(l,p,t){var n=t(88037),e=t(97264).right,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("reduceRight",function(f){var c=arguments.length;return e(o(this),f,c,c>1?arguments[1]:void 0)})},7369:function(l,p,t){var n=t(88037),e=t(97264).left,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("reduce",function(f){var c=arguments.length;return e(o(this),f,c,c>1?arguments[1]:void 0)})},67961:function(l,p,t){var n=t(88037),e=n.aTypedArray,o=n.exportTypedArrayMethod,i=Math.floor;o("reverse",function(){for(var f=this,c=e(f).length,g=i(c/2),v=0,y;v<g;)y=f[v],f[v++]=f[--c],f[c]=y;return f})},8695:function(l,p,t){var n=t(66009),e=t(96499),o=t(88037),i=t(82628),u=t(58143),f=t(49671),c=t(72069),g=n.RangeError,v=n.Int8Array,y=v&&v.prototype,S=y&&y.set,E=o.aTypedArray,I=o.exportTypedArrayMethod,A=!c(function(){var M=new Uint8ClampedArray(2);return e(S,M,{length:1,0:3},1),M[1]!==3}),T=A&&o.NATIVE_ARRAY_BUFFER_VIEWS&&c(function(){var M=new v(2);return M.set(1),M.set("2",1),M[0]!==0||M[1]!==2});I("set",function(D){E(this);var $=u(arguments.length>1?arguments[1]:void 0,1),U=f(D);if(A)return e(S,this,U,$);var G=this.length,N=i(U),w=0;if(N+$>G)throw new g("Wrong length");for(;w<N;)this[$+w]=U[w++]},!A||T)},69997:function(l,p,t){var n=t(88037),e=t(21822),o=t(72069),i=t(22806),u=n.aTypedArray,f=n.exportTypedArrayMethod,c=o(function(){new Int8Array(1).slice()});f("slice",function(v,y){for(var S=i(u(this),v,y),E=e(this),I=0,A=S.length,T=new E(A);A>I;)T[I]=S[I++];return T},c)},9711:function(l,p,t){var n=t(88037),e=t(66655).some,o=n.aTypedArray,i=n.exportTypedArrayMethod;i("some",function(f){return e(o(this),f,arguments.length>1?arguments[1]:void 0)})},3923:function(l,p,t){var n=t(66009),e=t(77422),o=t(72069),i=t(85156),u=t(13270),f=t(88037),c=t(54040),g=t(87216),v=t(73126),y=t(68674),S=f.aTypedArray,E=f.exportTypedArrayMethod,I=n.Uint16Array,A=I&&e(I.prototype.sort),T=!!A&&!(o(function(){A(new I(2),null)})&&o(function(){A(new I(2),{})})),M=!!A&&!o(function(){if(v)return v<74;if(c)return c<67;if(g)return!0;if(y)return y<602;var $=new I(516),U=Array(516),G,N;for(G=0;G<516;G++)N=G%4,$[G]=515-G,U[G]=G-2*N+3;for(A($,function(w,W){return(w/4|0)-(W/4|0)}),G=0;G<516;G++)if($[G]!==U[G])return!0}),D=function($){return function(U,G){return $!==void 0?+$(U,G)||0:G!==G?-1:U!==U?1:U===0&&G===0?1/U>0&&1/G<0?1:-1:U>G}};E("sort",function(U){return U!==void 0&&i(U),M?A(this,U):u(S(this),D(U))},!M||T)},59728:function(l,p,t){var n=t(88037),e=t(45344),o=t(4652),i=t(21822),u=n.aTypedArray,f=n.exportTypedArrayMethod;f("subarray",function(g,v){var y=u(this),S=y.length,E=o(g,S),I=i(y);return new I(y.buffer,y.byteOffset+E*y.BYTES_PER_ELEMENT,e((v===void 0?S:o(v,S))-E))})},85227:function(l,p,t){var n=t(66009),e=t(66543),o=t(88037),i=t(72069),u=t(22806),f=n.Int8Array,c=o.aTypedArray,g=o.exportTypedArrayMethod,v=[].toLocaleString,y=!!f&&i(function(){v.call(new f(1))}),S=i(function(){return[1,2].toLocaleString()!==new f([1,2]).toLocaleString()})||!i(function(){f.prototype.toLocaleString.call([1,2])});g("toLocaleString",function(){return e(v,y?u(c(this)):c(this),u(arguments))},S)},56933:function(l,p,t){var n=t(61638),e=t(88037),o=e.aTypedArray,i=e.exportTypedArrayMethod,u=e.getTypedArrayConstructor;i("toReversed",function(){return n(o(this),u(this))})},91490:function(l,p,t){var n=t(88037),e=t(11286),o=t(85156),i=t(5220),u=n.aTypedArray,f=n.getTypedArrayConstructor,c=n.exportTypedArrayMethod,g=e(n.TypedArrayPrototype.sort);c("toSorted",function(y){y!==void 0&&o(y);var S=u(this),E=i(f(S),S);return g(E,y)})},61766:function(l,p,t){var n=t(88037).exportTypedArrayMethod,e=t(72069),o=t(66009),i=t(11286),u=o.Uint8Array,f=u&&u.prototype||{},c=[].toString,g=i([].join);e(function(){c.call({})})&&(c=function(){return g(this)});var v=f.toString!==c;n("toString",c,v)},44884:function(l,p,t){var n=t(80357);n("Uint16",function(e){return function(i,u,f){return e(this,i,u,f)}})},48658:function(l,p,t){var n=t(80357);n("Uint32",function(e){return function(i,u,f){return e(this,i,u,f)}})},81083:function(l,p,t){var n=t(80357);n("Uint8",function(e){return function(i,u,f){return e(this,i,u,f)}})},27428:function(l,p,t){var n=t(80357);n("Uint8",function(e){return function(i,u,f){return e(this,i,u,f)}},!0)},85143:function(l,p,t){var n=t(72302),e=t(88037),o=t(77129),i=t(12105),u=t(11344),f=e.aTypedArray,c=e.getTypedArrayConstructor,g=e.exportTypedArrayMethod,v=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(y){return y===8}}();g("with",function(y,S){var E=f(this),I=i(y),A=o(E)?u(S):+S;return n(E,c(E),I,A)},!v)},47005:function(l,p,t){var n=t(14304),e=t(11286),o=t(17361),i=String.fromCharCode,u=e("".charAt),f=e(/./.exec),c=e("".slice),g=/^[\da-f]{2}$/i,v=/^[\da-f]{4}$/i;n({global:!0},{unescape:function(S){for(var E=o(S),I="",A=E.length,T=0,M,D;T<A;){if(M=u(E,T++),M==="%"){if(u(E,T)==="u"){if(D=c(E,T+1,T+5),f(v,D)){I+=i(parseInt(D,16)),T+=5;continue}}else if(D=c(E,T,T+2),f(g,D)){I+=i(parseInt(D,16)),T+=2;continue}}I+=M}return I}})},21084:function(l,p,t){var n=t(27534),e=t(66009),o=t(11286),i=t(2725),u=t(31853),f=t(89378),c=t(94667),g=t(37540),v=t(82367).enforce,y=t(72069),S=t(42960),E=Object,I=Array.isArray,A=E.isExtensible,T=E.isFrozen,M=E.isSealed,D=E.freeze,$=E.seal,U=!e.ActiveXObject&&"ActiveXObject"in e,G,N=function(rt){return function(){return rt(this,arguments.length?arguments[0]:void 0)}},w=f("WeakMap",N,c),W=w.prototype,X=o(W.set),Y=function(){return n&&y(function(){var rt=D([]);return X(new w,rt,1),!T(rt)})};if(S)if(U){G=c.getConstructor(N,"WeakMap",!0),u.enable();var k=o(W.delete),st=o(W.has),ut=o(W.get);i(W,{delete:function(rt){if(g(rt)&&!A(rt)){var at=v(this);return at.frozen||(at.frozen=new G),k(this,rt)||at.frozen.delete(rt)}return k(this,rt)},has:function(at){if(g(at)&&!A(at)){var ot=v(this);return ot.frozen||(ot.frozen=new G),st(this,at)||ot.frozen.has(at)}return st(this,at)},get:function(at){if(g(at)&&!A(at)){var ot=v(this);return ot.frozen||(ot.frozen=new G),st(this,at)?ut(this,at):ot.frozen.get(at)}return ut(this,at)},set:function(at,ot){if(g(at)&&!A(at)){var pt=v(this);pt.frozen||(pt.frozen=new G),st(this,at)?X(this,at,ot):pt.frozen.set(at,ot)}else X(this,at,ot);return this}})}else Y()&&i(W,{set:function(at,ot){var pt;return I(at)&&(T(at)?pt=D:M(at)&&(pt=$)),X(this,at,ot),pt&&pt(at),this}})},10042:function(l,p,t){t(21084)},58990:function(l,p,t){var n=t(89378),e=t(94667);n("WeakSet",function(o){return function(){return o(this,arguments.length?arguments[0]:void 0)}},e)},37888:function(l,p,t){t(58990)},19431:function(l,p,t){var n=t(14304),e=t(66009),o=t(38941),i=t(11286),u=t(96499),f=t(72069),c=t(17361),g=t(95486),v=t(6210).c2i,y=/[^\d+/a-z]/i,S=/[\t\n\f\r ]+/g,E=/[=]{1,2}$/,I=o("atob"),A=String.fromCharCode,T=i("".charAt),M=i("".replace),D=i(y.exec),$=!!I&&!f(function(){return I("aGk=")!=="hi"}),U=$&&f(function(){return I(" ")!==""}),G=$&&!f(function(){I("a")}),N=$&&!f(function(){I()}),w=$&&I.length!==1,W=!$||U||G||N||w;n({global:!0,bind:!0,enumerable:!0,forced:W},{atob:function(Y){if(g(arguments.length,1),$&&!U&&!G)return u(I,e,Y);var k=M(c(Y),S,""),st="",ut=0,rt=0,at,ot,pt;if(k.length%4===0&&(k=M(k,E,"")),at=k.length,at%4===1||D(y,k))throw new(o("DOMException"))("The string is not correctly encoded","InvalidCharacterError");for(;ut<at;)ot=T(k,ut++),pt=rt%4?pt*64+v[ot]:v[ot],rt++%4&&(st+=A(255&pt>>(-2*rt&6)));return st}})},60869:function(l,p,t){var n=t(14304),e=t(66009),o=t(38941),i=t(11286),u=t(96499),f=t(72069),c=t(17361),g=t(95486),v=t(6210).i2c,y=o("btoa"),S=i("".charAt),E=i("".charCodeAt),I=!!y&&!f(function(){return y("hi")!=="aGk="}),A=I&&!f(function(){y()}),T=I&&f(function(){return y(null)!=="bnVsbA=="}),M=I&&y.length!==1;n({global:!0,bind:!0,enumerable:!0,forced:!I||A||T||M},{btoa:function($){if(g(arguments.length,1),I)return u(y,e,c($));for(var U=c($),G="",N=0,w=v,W,X;S(U,N)||(w="=",N%1);){if(X=E(U,N+=.75),X>255)throw new(o("DOMException"))("The string contains characters outside of the Latin1 range","InvalidCharacterError");W=W<<8|X,G+=S(w,63&W>>8-N%1*8)}return G}})},66722:function(l,p,t){var n=t(14304),e=t(66009),o=t(23115).clear;n({global:!0,bind:!0,enumerable:!0,forced:e.clearImmediate!==o},{clearImmediate:o})},50338:function(l,p,t){var n=t(66009),e=t(93014),o=t(39882),i=t(13349),u=t(90809),f=function(g){if(g&&g.forEach!==i)try{u(g,"forEach",i)}catch(v){g.forEach=i}};for(var c in e)e[c]&&f(n[c]&&n[c].prototype);f(o)},53059:function(l,p,t){var n=t(66009),e=t(93014),o=t(39882),i=t(35054),u=t(90809),f=t(78401),c=t(18565),g=c("iterator"),v=i.values,y=function(E,I){if(E){if(E[g]!==v)try{u(E,g,v)}catch(T){E[g]=v}if(f(E,I,!0),e[I]){for(var A in i)if(E[A]!==i[A])try{u(E,A,i[A])}catch(T){E[A]=i[A]}}}};for(var S in e)y(n[S]&&n[S].prototype,S);y(o,"DOMTokenList")},5805:function(l,p,t){var n=t(14304),e=t(18096),o=t(38941),i=t(72069),u=t(5406),f=t(18526),c=t(7831).f,g=t(16142),v=t(85500),y=t(94879),S=t(12833),E=t(25001),I=t(58434),A=t(15453),T=t(74408),M=t(40851),D=t(82367),$=t(92986),U=t(70457),G="DOMException",N="DATA_CLONE_ERR",w=o("Error"),W=o(G)||function(){try{var Kt=o("MessageChannel")||e("worker_threads").MessageChannel;new Kt().port1.postMessage(new WeakMap)}catch(_t){if(_t.name===N&&_t.code===25)return _t.constructor}}(),X=W&&W.prototype,Y=w.prototype,k=D.set,st=D.getterFor(G),ut="stack"in new w(G),rt=function(Kt){return y(T,Kt)&&T[Kt].m?T[Kt].c:0},at=function(){S(this,ot);var _t=arguments.length,hr=A(_t<1?void 0:arguments[0]),Sr=A(_t<2?void 0:arguments[1],"Error"),mr=rt(Sr);if(k(this,{type:G,name:Sr,message:hr,code:mr}),$||(this.name=Sr,this.message=hr,this.code=mr),ut){var Ir=new w(hr);Ir.name=G,c(this,"stack",f(1,M(Ir.stack,1)))}},ot=at.prototype=u(Y),pt=function(Kt){return{enumerable:!0,configurable:!0,get:Kt}},Ct=function(Kt){return pt(function(){return st(this)[Kt]})};$&&(v(ot,"code",Ct("code")),v(ot,"message",Ct("message")),v(ot,"name",Ct("name"))),c(ot,"constructor",f(1,at));var St=i(function(){return!(new W instanceof w)}),$t=St||i(function(){return Y.toString!==I||String(new W(1,2))!=="2: 1"}),Rt=St||i(function(){return new W(1,"DataCloneError").code!==25}),Qt=St||W[N]!==25||X[N]!==25,Yt=U?$t||Rt||Qt:St;n({global:!0,constructor:!0,forced:Yt},{DOMException:Yt?at:W});var Xt=o(G),er=Xt.prototype;$t&&(U||W===Xt)&&g(er,"toString",I),Rt&&$&&W===Xt&&v(er,"code",pt(function(){return rt(E(this).name)}));for(var ir in T)if(y(T,ir)){var Or=T[ir],yr=Or.s,xr=f(6,Or.c);y(Xt,yr)||c(Xt,yr,xr),y(er,yr)||c(er,yr,xr)}},50685:function(l,p,t){var n=t(14304),e=t(66009),o=t(38941),i=t(18526),u=t(7831).f,f=t(94879),c=t(12833),g=t(32345),v=t(15453),y=t(74408),S=t(40851),E=t(92986),I=t(70457),A="DOMException",T=o("Error"),M=o(A),D=function(){c(this,$);var at=arguments.length,ot=v(at<1?void 0:arguments[0]),pt=v(at<2?void 0:arguments[1],"Error"),Ct=new M(ot,pt),St=new T(ot);return St.name=A,u(Ct,"stack",i(1,S(St.stack,1))),g(Ct,this,D),Ct},$=D.prototype=M.prototype,U="stack"in new T(A),G="stack"in new M(1,2),N=M&&E&&Object.getOwnPropertyDescriptor(e,A),w=!!N&&!(N.writable&&N.configurable),W=U&&!w&&!G;n({global:!0,constructor:!0,forced:I||W},{DOMException:W?D:M});var X=o(A),Y=X.prototype;if(Y.constructor!==X){I||u(Y,"constructor",i(1,X));for(var k in y)if(f(y,k)){var st=y[k],ut=st.s;f(X,ut)||u(X,ut,i(6,st.c))}}},70649:function(l,p,t){var n=t(38941),e=t(78401),o="DOMException";e(n(o),o)},39842:function(l,p,t){t(66722),t(8235)},82872:function(l,p,t){var n=t(14304),e=t(66009),o=t(9709),i=t(85156),u=t(95486),f=t(72069),c=t(92986),g=f(function(){return c&&Object.getOwnPropertyDescriptor(e,"queueMicrotask").value.length!==1});n({global:!0,enumerable:!0,dontCallGetSet:!0,forced:g},{queueMicrotask:function(y){u(arguments.length,1),o(i(y))}})},91401:function(l,p,t){var n=t(14304),e=t(66009),o=t(85500),i=t(92986),u=TypeError,f=Object.defineProperty,c=e.self!==e;try{if(i){var g=Object.getOwnPropertyDescriptor(e,"self");(c||!g||!g.get||!g.enumerable)&&o(e,"self",{get:function(){return e},set:function(y){if(this!==e)throw new u("Illegal invocation");f(e,"self",{value:y,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else n({global:!0,simple:!0,forced:c},{self:e})}catch(v){}},8235:function(l,p,t){var n=t(14304),e=t(66009),o=t(23115).set,i=t(9934),u=e.setImmediate?i(o,!1):o;n({global:!0,bind:!0,enumerable:!0,forced:e.setImmediate!==u},{setImmediate:u})},63981:function(l,p,t){var n=t(14304),e=t(66009),o=t(9934),i=o(e.setInterval,!0);n({global:!0,bind:!0,forced:e.setInterval!==i},{setInterval:i})},23913:function(l,p,t){var n=t(14304),e=t(66009),o=t(9934),i=o(e.setTimeout,!0);n({global:!0,bind:!0,forced:e.setTimeout!==i},{setTimeout:i})},92904:function(l,p,t){var n=t(70457),e=t(14304),o=t(66009),i=t(38941),u=t(11286),f=t(72069),c=t(36374),g=t(23583),v=t(11051),y=t(5683),S=t(37540),E=t(491),I=t(55902),A=t(25001),T=t(9205),M=t(94879),D=t(84082),$=t(90809),U=t(82628),G=t(95486),N=t(54932),w=t(1774),W=t(172),X=t(35051),Y=t(63741),k=t(16929),st=t(99050),ut=o.Object,rt=o.Array,at=o.Date,ot=o.Error,pt=o.TypeError,Ct=o.PerformanceMark,St=i("DOMException"),$t=w.Map,Rt=w.has,Qt=w.get,Yt=w.set,Xt=W.Set,er=W.add,ir=W.has,Or=i("Object","keys"),yr=u([].push),xr=u((!0).valueOf),Kt=u(1 .valueOf),_t=u("".valueOf),hr=u(at.prototype.getTime),Sr=c("structuredClone"),mr="DataCloneError",Ir="Transferring",Fr=function(Et){return!f(function(){var Bt=new o.Set([7]),wt=Et(Bt),gt=Et(ut(7));return wt===Bt||!wt.has(7)||!S(gt)||+gt!=7})&&Et},Dr=function(Et,Bt){return!f(function(){var wt=new Bt,gt=Et({a:wt,b:wt});return!(gt&>.a===gt.b&>.a instanceof Bt&>.a.stack===wt.stack)})},Pr=function(Et){return!f(function(){var Bt=Et(new o.AggregateError([1],Sr,{cause:3}));return Bt.name!=="AggregateError"||Bt.errors[0]!==1||Bt.message!==Sr||Bt.cause!==3})},gr=o.structuredClone,Cr=n||!Dr(gr,ot)||!Dr(gr,St)||!Pr(gr),Er=!gr&&Fr(function(Et){return new Ct(Sr,{detail:Et}).detail}),pr=Fr(gr)||Er,Ut=function(Et){throw new St("Uncloneable type: "+Et,mr)},Vt=function(Et,Bt){throw new St((Bt||"Cloning")+" of "+Et+" cannot be properly polyfilled in this engine",mr)},bt=function(Et,Bt){return pr||Vt(Bt),pr(Et)},fr=function(){var Et;try{Et=new o.DataTransfer}catch(Bt){try{Et=new o.ClipboardEvent("").clipboardData}catch(wt){}}return Et&&Et.items&&Et.files?Et:null},cr=function(Et,Bt,wt){if(Rt(Bt,Et))return Qt(Bt,Et);var gt=wt||T(Et),Tt,q,At,Jt,kt,ar;if(gt==="SharedArrayBuffer")pr?Tt=pr(Et):Tt=Et;else{var Tr=o.DataView;!Tr&&!g(Et.slice)&&Vt("ArrayBuffer");try{if(g(Et.slice)&&!Et.resizable)Tt=Et.slice(0);else for(q=Et.byteLength,At=("maxByteLength"in Et)?{maxByteLength:Et.maxByteLength}:void 0,Tt=new ArrayBuffer(q,At),Jt=new Tr(Et),kt=new Tr(Tt),ar=0;ar<q;ar++)kt.setUint8(ar,Jt.getUint8(ar))}catch(dr){throw new St("ArrayBuffer is detached",mr)}}return Yt(Bt,Et,Tt),Tt},rr=function(Et,Bt,wt,gt,Tt){var q=o[Bt];return S(q)||Vt(Bt),new q(cr(Et.buffer,Tt),wt,gt)},qt=function(Et,Bt){if(E(Et)&&Ut("Symbol"),!S(Et))return Et;if(Bt){if(Rt(Bt,Et))return Qt(Bt,Et)}else Bt=new $t;var wt=T(Et),gt,Tt,q,At,Jt,kt,ar,Tr;switch(wt){case"Array":q=rt(U(Et));break;case"Object":q={};break;case"Map":q=new $t;break;case"Set":q=new Xt;break;case"RegExp":q=new RegExp(Et.source,N(Et));break;case"Error":switch(Tt=Et.name,Tt){case"AggregateError":q=new(i(Tt))([]);break;case"EvalError":case"RangeError":case"ReferenceError":case"SuppressedError":case"SyntaxError":case"TypeError":case"URIError":q=new(i(Tt));break;case"CompileError":case"LinkError":case"RuntimeError":q=new(i("WebAssembly",Tt));break;default:q=new ot}break;case"DOMException":q=new St(Et.message,Et.name);break;case"ArrayBuffer":case"SharedArrayBuffer":q=cr(Et,Bt,wt);break;case"DataView":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float16Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":kt=wt==="DataView"?Et.byteLength:Et.length,q=rr(Et,wt,Et.byteOffset,kt,Bt);break;case"DOMQuad":try{q=new DOMQuad(qt(Et.p1,Bt),qt(Et.p2,Bt),qt(Et.p3,Bt),qt(Et.p4,Bt))}catch(dr){q=bt(Et,wt)}break;case"File":if(pr)try{q=pr(Et),T(q)!==wt&&(q=void 0)}catch(dr){}if(!q)try{q=new File([Et],Et.name,Et)}catch(dr){}q||Vt(wt);break;case"FileList":if(At=fr(),At){for(Jt=0,kt=U(Et);Jt<kt;Jt++)At.items.add(qt(Et[Jt],Bt));q=At.files}else q=bt(Et,wt);break;case"ImageData":try{q=new ImageData(qt(Et.data,Bt),Et.width,Et.height,{colorSpace:Et.colorSpace})}catch(dr){q=bt(Et,wt)}break;default:if(pr)q=pr(Et);else switch(wt){case"BigInt":q=ut(Et.valueOf());break;case"Boolean":q=ut(xr(Et));break;case"Number":q=ut(Kt(Et));break;case"String":q=ut(_t(Et));break;case"Date":q=new at(hr(Et));break;case"Blob":try{q=Et.slice(0,Et.size,Et.type)}catch(dr){Vt(wt)}break;case"DOMPoint":case"DOMPointReadOnly":gt=o[wt];try{q=gt.fromPoint?gt.fromPoint(Et):new gt(Et.x,Et.y,Et.z,Et.w)}catch(dr){Vt(wt)}break;case"DOMRect":case"DOMRectReadOnly":gt=o[wt];try{q=gt.fromRect?gt.fromRect(Et):new gt(Et.x,Et.y,Et.width,Et.height)}catch(dr){Vt(wt)}break;case"DOMMatrix":case"DOMMatrixReadOnly":gt=o[wt];try{q=gt.fromMatrix?gt.fromMatrix(Et):new gt(Et)}catch(dr){Vt(wt)}break;case"AudioData":case"VideoFrame":g(Et.clone)||Vt(wt);try{q=Et.clone()}catch(dr){Ut(wt)}break;case"CropTarget":case"CryptoKey":case"FileSystemDirectoryHandle":case"FileSystemFileHandle":case"FileSystemHandle":case"GPUCompilationInfo":case"GPUCompilationMessage":case"ImageBitmap":case"RTCCertificate":case"WebAssembly.Module":Vt(wt);default:Ut(wt)}}switch(Yt(Bt,Et,q),wt){case"Array":case"Object":for(ar=Or(Et),Jt=0,kt=U(ar);Jt<kt;Jt++)Tr=ar[Jt],D(q,Tr,qt(Et[Tr],Bt));break;case"Map":Et.forEach(function(dr,Lr){Yt(q,qt(Lr,Bt),qt(dr,Bt))});break;case"Set":Et.forEach(function(dr){er(q,qt(dr,Bt))});break;case"Error":$(q,"message",qt(Et.message,Bt)),M(Et,"cause")&&$(q,"cause",qt(Et.cause,Bt)),Tt==="AggregateError"?q.errors=qt(Et.errors,Bt):Tt==="SuppressedError"&&(q.error=qt(Et.error,Bt),q.suppressed=qt(Et.suppressed,Bt));case"DOMException":k&&$(q,"stack",qt(Et.stack,Bt))}return q},$r=function(Et,Bt){if(!S(Et))throw new pt("Transfer option cannot be converted to a sequence");var wt=[];I(Et,function(Lr){yr(wt,A(Lr))});for(var gt=0,Tt=U(wt),q=new Xt,At,Jt,kt,ar,Tr,dr;gt<Tt;){if(At=wt[gt++],Jt=T(At),Jt==="ArrayBuffer"?ir(q,At):Rt(Bt,At))throw new St("Duplicate transferable",mr);if(Jt==="ArrayBuffer"){er(q,At);continue}if(st)ar=gr(At,{transfer:[At]});else switch(Jt){case"ImageBitmap":kt=o.OffscreenCanvas,v(kt)||Vt(Jt,Ir);try{Tr=new kt(At.width,At.height),dr=Tr.getContext("bitmaprenderer"),dr.transferFromImageBitmap(At),ar=Tr.transferToImageBitmap()}catch(Lr){}break;case"AudioData":case"VideoFrame":(!g(At.clone)||!g(At.close))&&Vt(Jt,Ir);try{ar=At.clone(),At.close()}catch(Lr){}break;case"MediaSourceHandle":case"MessagePort":case"OffscreenCanvas":case"ReadableStream":case"TransformStream":case"WritableStream":Vt(Jt,Ir)}if(ar===void 0)throw new St("This object cannot be transferred: "+Jt,mr);Yt(Bt,At,ar)}return q},Br=function(Et){X(Et,function(Bt){st?pr(Bt,{transfer:[Bt]}):g(Bt.transfer)?Bt.transfer():Y?Y(Bt):Vt("ArrayBuffer",Ir)})};e({global:!0,enumerable:!0,sham:!st,forced:Cr},{structuredClone:function(Bt){var wt=G(arguments.length,1)>1&&!y(arguments[1])?A(arguments[1]):void 0,gt=wt?wt.transfer:void 0,Tt,q;gt!==void 0&&(Tt=new $t,q=$r(gt,Tt));var At=qt(Bt,Tt);return q&&Br(q),At}})},28381:function(l,p,t){t(63981),t(23913)},98812:function(l,p,t){t(35054);var n=t(14304),e=t(66009),o=t(28167),i=t(96499),u=t(11286),f=t(92986),c=t(91918),g=t(16142),v=t(85500),y=t(2725),S=t(78401),E=t(26820),I=t(82367),A=t(12833),T=t(23583),M=t(94879),D=t(45526),$=t(9205),U=t(25001),G=t(37540),N=t(17361),w=t(5406),W=t(18526),X=t(90619),Y=t(81077),k=t(10659),st=t(95486),ut=t(18565),rt=t(13270),at=ut("iterator"),ot="URLSearchParams",pt=ot+"Iterator",Ct=I.set,St=I.getterFor(ot),$t=I.getterFor(pt),Rt=o("fetch"),Qt=o("Request"),Yt=o("Headers"),Xt=Qt&&Qt.prototype,er=Yt&&Yt.prototype,ir=e.RegExp,Or=e.TypeError,yr=e.decodeURIComponent,xr=e.encodeURIComponent,Kt=u("".charAt),_t=u([].join),hr=u([].push),Sr=u("".replace),mr=u([].shift),Ir=u([].splice),Fr=u("".split),Dr=u("".slice),Pr=/\+/g,gr=Array(4),Cr=function(gt){return gr[gt-1]||(gr[gt-1]=ir("((?:%[\\da-f]{2}){"+gt+"})","gi"))},Er=function(gt){try{return yr(gt)}catch(Tt){return gt}},pr=function(gt){var Tt=Sr(gt,Pr," "),q=4;try{return yr(Tt)}catch(At){for(;q;)Tt=Sr(Tt,Cr(q--),Er);return Tt}},Ut=/[!'()~]|%20/g,Vt={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},bt=function(gt){return Vt[gt]},fr=function(gt){return Sr(xr(gt),Ut,bt)},cr=E(function(Tt,q){Ct(this,{type:pt,target:St(Tt).entries,index:0,kind:q})},ot,function(){var Tt=$t(this),q=Tt.target,At=Tt.index++;if(!q||At>=q.length)return Tt.target=void 0,k(void 0,!0);var Jt=q[At];switch(Tt.kind){case"keys":return k(Jt.key,!1);case"values":return k(Jt.value,!1)}return k([Jt.key,Jt.value],!1)},!0),rr=function(gt){this.entries=[],this.url=null,gt!==void 0&&(G(gt)?this.parseObject(gt):this.parseQuery(typeof gt=="string"?Kt(gt,0)==="?"?Dr(gt,1):gt:N(gt)))};rr.prototype={type:ot,bindURL:function(gt){this.url=gt,this.update()},parseObject:function(gt){var Tt=this.entries,q=Y(gt),At,Jt,kt,ar,Tr,dr,Lr;if(q)for(At=X(gt,q),Jt=At.next;!(kt=i(Jt,At)).done;){if(ar=X(U(kt.value)),Tr=ar.next,(dr=i(Tr,ar)).done||(Lr=i(Tr,ar)).done||!i(Tr,ar).done)throw new Or("Expected sequence with length 2");hr(Tt,{key:N(dr.value),value:N(Lr.value)})}else for(var on in gt)M(gt,on)&&hr(Tt,{key:on,value:N(gt[on])})},parseQuery:function(gt){if(gt)for(var Tt=this.entries,q=Fr(gt,"&"),At=0,Jt,kt;At<q.length;)Jt=q[At++],Jt.length&&(kt=Fr(Jt,"="),hr(Tt,{key:pr(mr(kt)),value:pr(_t(kt,"="))}))},serialize:function(){for(var gt=this.entries,Tt=[],q=0,At;q<gt.length;)At=gt[q++],hr(Tt,fr(At.key)+"="+fr(At.value));return _t(Tt,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var qt=function(){A(this,$r);var Tt=arguments.length>0?arguments[0]:void 0,q=Ct(this,new rr(Tt));f||(this.size=q.entries.length)},$r=qt.prototype;if(y($r,{append:function(Tt,q){var At=St(this);st(arguments.length,2),hr(At.entries,{key:N(Tt),value:N(q)}),f||this.length++,At.updateURL()},delete:function(gt){for(var Tt=St(this),q=st(arguments.length,1),At=Tt.entries,Jt=N(gt),kt=q<2?void 0:arguments[1],ar=kt===void 0?kt:N(kt),Tr=0;Tr<At.length;){var dr=At[Tr];if(dr.key===Jt&&(ar===void 0||dr.value===ar)){if(Ir(At,Tr,1),ar!==void 0)break}else Tr++}f||(this.size=At.length),Tt.updateURL()},get:function(Tt){var q=St(this).entries;st(arguments.length,1);for(var At=N(Tt),Jt=0;Jt<q.length;Jt++)if(q[Jt].key===At)return q[Jt].value;return null},getAll:function(Tt){var q=St(this).entries;st(arguments.length,1);for(var At=N(Tt),Jt=[],kt=0;kt<q.length;kt++)q[kt].key===At&&hr(Jt,q[kt].value);return Jt},has:function(Tt){for(var q=St(this).entries,At=st(arguments.length,1),Jt=N(Tt),kt=At<2?void 0:arguments[1],ar=kt===void 0?kt:N(kt),Tr=0;Tr<q.length;){var dr=q[Tr++];if(dr.key===Jt&&(ar===void 0||dr.value===ar))return!0}return!1},set:function(Tt,q){var At=St(this);st(arguments.length,1);for(var Jt=At.entries,kt=!1,ar=N(Tt),Tr=N(q),dr=0,Lr;dr<Jt.length;dr++)Lr=Jt[dr],Lr.key===ar&&(kt?Ir(Jt,dr--,1):(kt=!0,Lr.value=Tr));kt||hr(Jt,{key:ar,value:Tr}),f||(this.size=Jt.length),At.updateURL()},sort:function(){var Tt=St(this);rt(Tt.entries,function(q,At){return q.key>At.key?1:-1}),Tt.updateURL()},forEach:function(Tt){for(var q=St(this).entries,At=D(Tt,arguments.length>1?arguments[1]:void 0),Jt=0,kt;Jt<q.length;)kt=q[Jt++],At(kt.value,kt.key,this)},keys:function(){return new cr(this,"keys")},values:function(){return new cr(this,"values")},entries:function(){return new cr(this,"entries")}},{enumerable:!0}),g($r,at,$r.entries,{name:"entries"}),g($r,"toString",function(){return St(this).serialize()},{enumerable:!0}),f&&v($r,"size",{get:function(){return St(this).entries.length},configurable:!0,enumerable:!0}),S(qt,ot),n({global:!0,constructor:!0,forced:!c},{URLSearchParams:qt}),!c&&T(Yt)){var Br=u(er.has),Et=u(er.set),Bt=function(gt){if(G(gt)){var Tt=gt.body,q;if($(Tt)===ot)return q=gt.headers?new Yt(gt.headers):new Yt,Br(q,"content-type")||Et(q,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),w(gt,{body:W(0,N(Tt)),headers:W(0,q)})}return gt};if(T(Rt)&&n({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(Tt){return Rt(Tt,arguments.length>1?Bt(arguments[1]):{})}}),T(Qt)){var wt=function(Tt){return A(this,Xt),new Qt(Tt,arguments.length>1?Bt(arguments[1]):{})};Xt.constructor=wt,wt.prototype=Xt,n({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:wt})}}l.exports={URLSearchParams:qt,getState:St}},10901:function(l,p,t){var n=t(16142),e=t(11286),o=t(17361),i=t(95486),u=URLSearchParams,f=u.prototype,c=e(f.append),g=e(f.delete),v=e(f.forEach),y=e([].push),S=new u("a=1&a=2&b=3");S.delete("a",1),S.delete("b",void 0),S+""!="a=2"&&n(f,"delete",function(E){var I=arguments.length,A=I<2?void 0:arguments[1];if(I&&A===void 0)return g(this,E);var T=[];v(this,function(W,X){y(T,{key:X,value:W})}),i(I,1);for(var M=o(E),D=o(A),$=0,U=0,G=!1,N=T.length,w;$<N;)w=T[$++],G||w.key===M?(G=!0,g(this,w.key)):U++;for(;U<N;)w=T[U++],w.key===M&&w.value===D||c(this,w.key,w.value)},{enumerable:!0,unsafe:!0})},93944:function(l,p,t){var n=t(16142),e=t(11286),o=t(17361),i=t(95486),u=URLSearchParams,f=u.prototype,c=e(f.getAll),g=e(f.has),v=new u("a=1");(v.has("a",2)||!v.has("a",void 0))&&n(f,"has",function(S){var E=arguments.length,I=E<2?void 0:arguments[1];if(E&&I===void 0)return g(this,S);var A=c(this,S);i(E,1);for(var T=o(I),M=0;M<A.length;)if(A[M++]===T)return!0;return!1},{enumerable:!0,unsafe:!0})},86650:function(l,p,t){t(98812)},79043:function(l,p,t){var n=t(92986),e=t(11286),o=t(85500),i=URLSearchParams.prototype,u=e(i.forEach);n&&!("size"in i)&&o(i,"size",{get:function(){var c=0;return u(this,function(){c++}),c},configurable:!0,enumerable:!0})},20760:function(l,p,t){var n=t(14304),e=t(38941),o=t(72069),i=t(95486),u=t(17361),f=t(91918),c=e("URL"),g=f&&o(function(){c.canParse()}),v=o(function(){return c.canParse.length!==1});n({target:"URL",stat:!0,forced:!g||v},{canParse:function(S){var E=i(arguments.length,1),I=u(S),A=E<2||arguments[1]===void 0?void 0:u(arguments[1]);try{return!!new c(I,A)}catch(T){return!1}}})},81888:function(l,p,t){t(59158);var n=t(14304),e=t(92986),o=t(91918),i=t(66009),u=t(45526),f=t(11286),c=t(16142),g=t(85500),v=t(12833),y=t(94879),S=t(16667),E=t(48258),I=t(22806),A=t(22149).codeAt,T=t(38679),M=t(17361),D=t(78401),$=t(95486),U=t(98812),G=t(82367),N=G.set,w=G.getterFor("URL"),W=U.URLSearchParams,X=U.getState,Y=i.URL,k=i.TypeError,st=i.parseInt,ut=Math.floor,rt=Math.pow,at=f("".charAt),ot=f(/./.exec),pt=f([].join),Ct=f(1 .toString),St=f([].pop),$t=f([].push),Rt=f("".replace),Qt=f([].shift),Yt=f("".split),Xt=f("".slice),er=f("".toLowerCase),ir=f([].unshift),Or="Invalid authority",yr="Invalid scheme",xr="Invalid host",Kt="Invalid port",_t=/[a-z]/i,hr=/[\d+-.a-z]/i,Sr=/\d/,mr=/^0x/i,Ir=/^[0-7]+$/,Fr=/^\d+$/,Dr=/^[\da-f]+$/i,Pr=/[\0\t\n\r #%/:<>?@[\\\]^|]/,gr=/[\0\t\n\r #/:<>?@[\\\]^|]/,Cr=/^[\u0000-\u0020]+/,Er=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,pr=/[\t\n\r]/g,Ut,Vt=function(mt){var Wt=Yt(mt,"."),Mt,ht,jt,Ar,vr,Gr,Kr;if(Wt.length&&Wt[Wt.length-1]===""&&Wt.length--,Mt=Wt.length,Mt>4)return mt;for(ht=[],jt=0;jt<Mt;jt++){if(Ar=Wt[jt],Ar==="")return mt;if(vr=10,Ar.length>1&&at(Ar,0)==="0"&&(vr=ot(mr,Ar)?16:8,Ar=Xt(Ar,vr===8?1:2)),Ar==="")Gr=0;else{if(!ot(vr===10?Fr:vr===8?Ir:Dr,Ar))return mt;Gr=st(Ar,vr)}$t(ht,Gr)}for(jt=0;jt<Mt;jt++)if(Gr=ht[jt],jt===Mt-1){if(Gr>=rt(256,5-Mt))return null}else if(Gr>255)return null;for(Kr=St(ht),jt=0;jt<ht.length;jt++)Kr+=ht[jt]*rt(256,3-jt);return Kr},bt=function(mt){var Wt=[0,0,0,0,0,0,0,0],Mt=0,ht=null,jt=0,Ar,vr,Gr,Kr,Yr,_r,Ht,zr=function(){return at(mt,jt)};if(zr()===":"){if(at(mt,1)!==":")return;jt+=2,Mt++,ht=Mt}for(;zr();){if(Mt===8)return;if(zr()===":"){if(ht!==null)return;jt++,Mt++,ht=Mt;continue}for(Ar=vr=0;vr<4&&ot(Dr,zr());)Ar=Ar*16+st(zr(),16),jt++,vr++;if(zr()==="."){if(vr===0||(jt-=vr,Mt>6))return;for(Gr=0;zr();){if(Kr=null,Gr>0)if(zr()==="."&&Gr<4)jt++;else return;if(!ot(Sr,zr()))return;for(;ot(Sr,zr());){if(Yr=st(zr(),10),Kr===null)Kr=Yr;else{if(Kr===0)return;Kr=Kr*10+Yr}if(Kr>255)return;jt++}Wt[Mt]=Wt[Mt]*256+Kr,Gr++,(Gr===2||Gr===4)&&Mt++}if(Gr!==4)return;break}else if(zr()===":"){if(jt++,!zr())return}else if(zr())return;Wt[Mt++]=Ar}if(ht!==null)for(_r=Mt-ht,Mt=7;Mt!==0&&_r>0;)Ht=Wt[Mt],Wt[Mt--]=Wt[ht+_r-1],Wt[ht+--_r]=Ht;else if(Mt!==8)return;return Wt},fr=function(mt){for(var Wt=null,Mt=1,ht=null,jt=0,Ar=0;Ar<8;Ar++)mt[Ar]!==0?(jt>Mt&&(Wt=ht,Mt=jt),ht=null,jt=0):(ht===null&&(ht=Ar),++jt);return jt>Mt&&(Wt=ht,Mt=jt),Wt},cr=function(mt){var Wt,Mt,ht,jt;if(typeof mt=="number"){for(Wt=[],Mt=0;Mt<4;Mt++)ir(Wt,mt%256),mt=ut(mt/256);return pt(Wt,".")}else if(typeof mt=="object"){for(Wt="",ht=fr(mt),Mt=0;Mt<8;Mt++)jt&&mt[Mt]===0||(jt&&(jt=!1),ht===Mt?(Wt+=Mt?":":"::",jt=!0):(Wt+=Ct(mt[Mt],16),Mt<7&&(Wt+=":")));return"["+Wt+"]"}return mt},rr={},qt=S({},rr,{" ":1,'"':1,"<":1,">":1,"`":1}),$r=S({},qt,{"#":1,"?":1,"{":1,"}":1}),Br=S({},$r,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Et=function(mt,Wt){var Mt=A(mt,0);return Mt>32&&Mt<127&&!y(Wt,mt)?mt:encodeURIComponent(mt)},Bt={ftp:21,file:null,http:80,https:443,ws:80,wss:443},wt=function(mt,Wt){var Mt;return mt.length===2&&ot(_t,at(mt,0))&&((Mt=at(mt,1))===":"||!Wt&&Mt==="|")},gt=function(mt){var Wt;return mt.length>1&&wt(Xt(mt,0,2))&&(mt.length===2||(Wt=at(mt,2))==="/"||Wt==="\\"||Wt==="?"||Wt==="#")},Tt=function(mt){return mt==="."||er(mt)==="%2e"},q=function(mt){return mt=er(mt),mt===".."||mt==="%2e."||mt===".%2e"||mt==="%2e%2e"},At={},Jt={},kt={},ar={},Tr={},dr={},Lr={},on={},En={},Ur={},Vn={},ee={},ae={},Hn={},oe={},Wn={},Xr={},Vr={},tn={},en={},kr={},qr=function(mt,Wt,Mt){var ht=M(mt),jt,Ar,vr;if(Wt){if(Ar=this.parse(ht),Ar)throw new k(Ar);this.searchParams=null}else{if(Mt!==void 0&&(jt=new qr(Mt,!0)),Ar=this.parse(ht,null,jt),Ar)throw new k(Ar);vr=X(new W),vr.bindURL(this),this.searchParams=vr}};qr.prototype={type:"URL",parse:function(mt,Wt,Mt){var ht=this,jt=Wt||At,Ar=0,vr="",Gr=!1,Kr=!1,Yr=!1,_r,Ht,zr,un;for(mt=M(mt),Wt||(ht.scheme="",ht.username="",ht.password="",ht.host=null,ht.port=null,ht.path=[],ht.query=null,ht.fragment=null,ht.cannotBeABaseURL=!1,mt=Rt(mt,Cr,""),mt=Rt(mt,Er,"$1")),mt=Rt(mt,pr,""),_r=E(mt);Ar<=_r.length;){switch(Ht=_r[Ar],jt){case At:if(Ht&&ot(_t,Ht))vr+=er(Ht),jt=Jt;else{if(Wt)return yr;jt=kt;continue}break;case Jt:if(Ht&&(ot(hr,Ht)||Ht==="+"||Ht==="-"||Ht==="."))vr+=er(Ht);else if(Ht===":"){if(Wt&&(ht.isSpecial()!==y(Bt,vr)||vr==="file"&&(ht.includesCredentials()||ht.port!==null)||ht.scheme==="file"&&!ht.host))return;if(ht.scheme=vr,Wt){ht.isSpecial()&&Bt[ht.scheme]===ht.port&&(ht.port=null);return}vr="",ht.scheme==="file"?jt=Hn:ht.isSpecial()&&Mt&&Mt.scheme===ht.scheme?jt=ar:ht.isSpecial()?jt=on:_r[Ar+1]==="/"?(jt=Tr,Ar++):(ht.cannotBeABaseURL=!0,$t(ht.path,""),jt=tn)}else{if(Wt)return yr;vr="",jt=kt,Ar=0;continue}break;case kt:if(!Mt||Mt.cannotBeABaseURL&&Ht!=="#")return yr;if(Mt.cannotBeABaseURL&&Ht==="#"){ht.scheme=Mt.scheme,ht.path=I(Mt.path),ht.query=Mt.query,ht.fragment="",ht.cannotBeABaseURL=!0,jt=kr;break}jt=Mt.scheme==="file"?Hn:dr;continue;case ar:if(Ht==="/"&&_r[Ar+1]==="/")jt=En,Ar++;else{jt=dr;continue}break;case Tr:if(Ht==="/"){jt=Ur;break}else{jt=Vr;continue}case dr:if(ht.scheme=Mt.scheme,Ht===Ut)ht.username=Mt.username,ht.password=Mt.password,ht.host=Mt.host,ht.port=Mt.port,ht.path=I(Mt.path),ht.query=Mt.query;else if(Ht==="/"||Ht==="\\"&&ht.isSpecial())jt=Lr;else if(Ht==="?")ht.username=Mt.username,ht.password=Mt.password,ht.host=Mt.host,ht.port=Mt.port,ht.path=I(Mt.path),ht.query="",jt=en;else if(Ht==="#")ht.username=Mt.username,ht.password=Mt.password,ht.host=Mt.host,ht.port=Mt.port,ht.path=I(Mt.path),ht.query=Mt.query,ht.fragment="",jt=kr;else{ht.username=Mt.username,ht.password=Mt.password,ht.host=Mt.host,ht.port=Mt.port,ht.path=I(Mt.path),ht.path.length--,jt=Vr;continue}break;case Lr:if(ht.isSpecial()&&(Ht==="/"||Ht==="\\"))jt=En;else if(Ht==="/")jt=Ur;else{ht.username=Mt.username,ht.password=Mt.password,ht.host=Mt.host,ht.port=Mt.port,jt=Vr;continue}break;case on:if(jt=En,Ht!=="/"||at(vr,Ar+1)!=="/")continue;Ar++;break;case En:if(Ht!=="/"&&Ht!=="\\"){jt=Ur;continue}break;case Ur:if(Ht==="@"){Gr&&(vr="%40"+vr),Gr=!0,zr=E(vr);for(var An=0;An<zr.length;An++){var Fn=zr[An];if(Fn===":"&&!Yr){Yr=!0;continue}var Kn=Et(Fn,Br);Yr?ht.password+=Kn:ht.username+=Kn}vr=""}else if(Ht===Ut||Ht==="/"||Ht==="?"||Ht==="#"||Ht==="\\"&&ht.isSpecial()){if(Gr&&vr==="")return Or;Ar-=E(vr).length+1,vr="",jt=Vn}else vr+=Ht;break;case Vn:case ee:if(Wt&&ht.scheme==="file"){jt=Wn;continue}else if(Ht===":"&&!Kr){if(vr==="")return xr;if(un=ht.parseHost(vr),un)return un;if(vr="",jt=ae,Wt===ee)return}else if(Ht===Ut||Ht==="/"||Ht==="?"||Ht==="#"||Ht==="\\"&&ht.isSpecial()){if(ht.isSpecial()&&vr==="")return xr;if(Wt&&vr===""&&(ht.includesCredentials()||ht.port!==null))return;if(un=ht.parseHost(vr),un)return un;if(vr="",jt=Xr,Wt)return;continue}else Ht==="["?Kr=!0:Ht==="]"&&(Kr=!1),vr+=Ht;break;case ae:if(ot(Sr,Ht))vr+=Ht;else if(Ht===Ut||Ht==="/"||Ht==="?"||Ht==="#"||Ht==="\\"&&ht.isSpecial()||Wt){if(vr!==""){var bn=st(vr,10);if(bn>65535)return Kt;ht.port=ht.isSpecial()&&bn===Bt[ht.scheme]?null:bn,vr=""}if(Wt)return;jt=Xr;continue}else return Kt;break;case Hn:if(ht.scheme="file",Ht==="/"||Ht==="\\")jt=oe;else if(Mt&&Mt.scheme==="file")switch(Ht){case Ut:ht.host=Mt.host,ht.path=I(Mt.path),ht.query=Mt.query;break;case"?":ht.host=Mt.host,ht.path=I(Mt.path),ht.query="",jt=en;break;case"#":ht.host=Mt.host,ht.path=I(Mt.path),ht.query=Mt.query,ht.fragment="",jt=kr;break;default:gt(pt(I(_r,Ar),""))||(ht.host=Mt.host,ht.path=I(Mt.path),ht.shortenPath()),jt=Vr;continue}else{jt=Vr;continue}break;case oe:if(Ht==="/"||Ht==="\\"){jt=Wn;break}Mt&&Mt.scheme==="file"&&!gt(pt(I(_r,Ar),""))&&(wt(Mt.path[0],!0)?$t(ht.path,Mt.path[0]):ht.host=Mt.host),jt=Vr;continue;case Wn:if(Ht===Ut||Ht==="/"||Ht==="\\"||Ht==="?"||Ht==="#"){if(!Wt&&wt(vr))jt=Vr;else if(vr===""){if(ht.host="",Wt)return;jt=Xr}else{if(un=ht.parseHost(vr),un)return un;if(ht.host==="localhost"&&(ht.host=""),Wt)return;vr="",jt=Xr}continue}else vr+=Ht;break;case Xr:if(ht.isSpecial()){if(jt=Vr,Ht!=="/"&&Ht!=="\\")continue}else if(!Wt&&Ht==="?")ht.query="",jt=en;else if(!Wt&&Ht==="#")ht.fragment="",jt=kr;else if(Ht!==Ut&&(jt=Vr,Ht!=="/"))continue;break;case Vr:if(Ht===Ut||Ht==="/"||Ht==="\\"&&ht.isSpecial()||!Wt&&(Ht==="?"||Ht==="#")){if(q(vr)?(ht.shortenPath(),Ht!=="/"&&!(Ht==="\\"&&ht.isSpecial())&&$t(ht.path,"")):Tt(vr)?Ht!=="/"&&!(Ht==="\\"&&ht.isSpecial())&&$t(ht.path,""):(ht.scheme==="file"&&!ht.path.length&&wt(vr)&&(ht.host&&(ht.host=""),vr=at(vr,0)+":"),$t(ht.path,vr)),vr="",ht.scheme==="file"&&(Ht===Ut||Ht==="?"||Ht==="#"))for(;ht.path.length>1&&ht.path[0]==="";)Qt(ht.path);Ht==="?"?(ht.query="",jt=en):Ht==="#"&&(ht.fragment="",jt=kr)}else vr+=Et(Ht,$r);break;case tn:Ht==="?"?(ht.query="",jt=en):Ht==="#"?(ht.fragment="",jt=kr):Ht!==Ut&&(ht.path[0]+=Et(Ht,rr));break;case en:!Wt&&Ht==="#"?(ht.fragment="",jt=kr):Ht!==Ut&&(Ht==="'"&&ht.isSpecial()?ht.query+="%27":Ht==="#"?ht.query+="%23":ht.query+=Et(Ht,rr));break;case kr:Ht!==Ut&&(ht.fragment+=Et(Ht,qt));break}Ar++}},parseHost:function(mt){var Wt,Mt,ht;if(at(mt,0)==="["){if(at(mt,mt.length-1)!=="]"||(Wt=bt(Xt(mt,1,-1)),!Wt))return xr;this.host=Wt}else if(this.isSpecial()){if(mt=T(mt),ot(Pr,mt)||(Wt=Vt(mt),Wt===null))return xr;this.host=Wt}else{if(ot(gr,mt))return xr;for(Wt="",Mt=E(mt),ht=0;ht<Mt.length;ht++)Wt+=Et(Mt[ht],rr);this.host=Wt}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme==="file"},includesCredentials:function(){return this.username!==""||this.password!==""},isSpecial:function(){return y(Bt,this.scheme)},shortenPath:function(){var mt=this.path,Wt=mt.length;Wt&&(this.scheme!=="file"||Wt!==1||!wt(mt[0],!0))&&mt.length--},serialize:function(){var mt=this,Wt=mt.scheme,Mt=mt.username,ht=mt.password,jt=mt.host,Ar=mt.port,vr=mt.path,Gr=mt.query,Kr=mt.fragment,Yr=Wt+":";return jt!==null?(Yr+="//",mt.includesCredentials()&&(Yr+=Mt+(ht?":"+ht:"")+"@"),Yr+=cr(jt),Ar!==null&&(Yr+=":"+Ar)):Wt==="file"&&(Yr+="//"),Yr+=mt.cannotBeABaseURL?vr[0]:vr.length?"/"+pt(vr,"/"):"",Gr!==null&&(Yr+="?"+Gr),Kr!==null&&(Yr+="#"+Kr),Yr},setHref:function(mt){var Wt=this.parse(mt);if(Wt)throw new k(Wt);this.searchParams.update()},getOrigin:function(){var mt=this.scheme,Wt=this.port;if(mt==="blob")try{return new Jr(mt.path[0]).origin}catch(Mt){return"null"}return mt==="file"||!this.isSpecial()?"null":mt+"://"+cr(this.host)+(Wt!==null?":"+Wt:"")},getProtocol:function(){return this.scheme+":"},setProtocol:function(mt){this.parse(M(mt)+":",At)},getUsername:function(){return this.username},setUsername:function(mt){var Wt=E(M(mt));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var Mt=0;Mt<Wt.length;Mt++)this.username+=Et(Wt[Mt],Br)}},getPassword:function(){return this.password},setPassword:function(mt){var Wt=E(M(mt));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var Mt=0;Mt<Wt.length;Mt++)this.password+=Et(Wt[Mt],Br)}},getHost:function(){var mt=this.host,Wt=this.port;return mt===null?"":Wt===null?cr(mt):cr(mt)+":"+Wt},setHost:function(mt){this.cannotBeABaseURL||this.parse(mt,Vn)},getHostname:function(){var mt=this.host;return mt===null?"":cr(mt)},setHostname:function(mt){this.cannotBeABaseURL||this.parse(mt,ee)},getPort:function(){var mt=this.port;return mt===null?"":M(mt)},setPort:function(mt){this.cannotHaveUsernamePasswordPort()||(mt=M(mt),mt===""?this.port=null:this.parse(mt,ae))},getPathname:function(){var mt=this.path;return this.cannotBeABaseURL?mt[0]:mt.length?"/"+pt(mt,"/"):""},setPathname:function(mt){this.cannotBeABaseURL||(this.path=[],this.parse(mt,Xr))},getSearch:function(){var mt=this.query;return mt?"?"+mt:""},setSearch:function(mt){mt=M(mt),mt===""?this.query=null:(at(mt,0)==="?"&&(mt=Xt(mt,1)),this.query="",this.parse(mt,en)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var mt=this.fragment;return mt?"#"+mt:""},setHash:function(mt){if(mt=M(mt),mt===""){this.fragment=null;return}at(mt,0)==="#"&&(mt=Xt(mt,1)),this.fragment="",this.parse(mt,kr)},update:function(){this.query=this.searchParams.serialize()||null}};var Jr=function(Wt){var Mt=v(this,Wr),ht=$(arguments.length,1)>1?arguments[1]:void 0,jt=N(Mt,new qr(Wt,!1,ht));e||(Mt.href=jt.serialize(),Mt.origin=jt.getOrigin(),Mt.protocol=jt.getProtocol(),Mt.username=jt.getUsername(),Mt.password=jt.getPassword(),Mt.host=jt.getHost(),Mt.hostname=jt.getHostname(),Mt.port=jt.getPort(),Mt.pathname=jt.getPathname(),Mt.search=jt.getSearch(),Mt.searchParams=jt.getSearchParams(),Mt.hash=jt.getHash())},Wr=Jr.prototype,wr=function(mt,Wt){return{get:function(){return w(this)[mt]()},set:Wt&&function(Mt){return w(this)[Wt](Mt)},configurable:!0,enumerable:!0}};if(e&&(g(Wr,"href",wr("serialize","setHref")),g(Wr,"origin",wr("getOrigin")),g(Wr,"protocol",wr("getProtocol","setProtocol")),g(Wr,"username",wr("getUsername","setUsername")),g(Wr,"password",wr("getPassword","setPassword")),g(Wr,"host",wr("getHost","setHost")),g(Wr,"hostname",wr("getHostname","setHostname")),g(Wr,"port",wr("getPort","setPort")),g(Wr,"pathname",wr("getPathname","setPathname")),g(Wr,"search",wr("getSearch","setSearch")),g(Wr,"searchParams",wr("getSearchParams")),g(Wr,"hash",wr("getHash","setHash"))),c(Wr,"toJSON",function(){return w(this).serialize()},{enumerable:!0}),c(Wr,"toString",function(){return w(this).serialize()},{enumerable:!0}),Y){var hn=Y.createObjectURL,Dn=Y.revokeObjectURL;hn&&c(Jr,"createObjectURL",u(hn,Y)),Dn&&c(Jr,"revokeObjectURL",u(Dn,Y))}D(Jr,"URL"),n({global:!0,constructor:!0,forced:!o,sham:!e},{URL:Jr})},51862:function(l,p,t){t(81888)},24119:function(l,p,t){var n=t(14304),e=t(38941),o=t(95486),i=t(17361),u=t(91918),f=e("URL");n({target:"URL",stat:!0,forced:!u},{parse:function(g){var v=o(arguments.length,1),y=i(g),S=v<2||arguments[1]===void 0?void 0:i(arguments[1]);try{return new f(y,S)}catch(E){return null}}})},97526:function(l,p,t){var n=t(14304),e=t(96499);n({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return e(URL.prototype.toString,this)}})},61969:function(l,p,t){t(40949),t(43657),t(43606),t(15855),t(42026),t(33257),t(59414),t(88344),t(92579),t(94655),t(8565),t(60843),t(65842),t(51595),t(54908),t(81742),t(8720),t(42861),t(27796),t(1341),t(98700),t(65481),t(46509),t(41585),t(84554),t(36619),t(33818),t(64096),t(2209),t(91591),t(74092),t(54703),t(82936),t(48493),t(64730),t(95024),t(35054),t(25460),t(60703),t(90468),t(69581),t(720),t(11042),t(17289),t(24608),t(51644),t(88088),t(46828),t(90088),t(35148),t(86184),t(53983),t(42560),t(88444),t(27839),t(73051),t(9372),t(35473),t(4983),t(6875),t(68575),t(35495),t(32790),t(58594),t(30801),t(90911),t(90429),t(33685),t(60086),t(96049),t(14038),t(55518),t(8894),t(60628),t(56347),t(16864),t(93819),t(71332),t(47269),t(25627),t(22090),t(9839),t(15656),t(22091),t(2886),t(25895),t(24228),t(79488),t(75987),t(81555),t(87854),t(35074),t(50946),t(29417),t(80628),t(74375),t(29708),t(93449),t(9111),t(83514),t(15096),t(59590),t(99663),t(89988),t(54427),t(67895),t(57909),t(83938),t(55461),t(97339),t(3670),t(15224),t(45891),t(99910),t(92445),t(21875),t(4383),t(11361),t(13728),t(14885),t(30343),t(22045),t(75e3),t(64658),t(16017),t(84681),t(73421),t(93446),t(31046),t(94645),t(62935),t(62518),t(45130),t(51542),t(43781),t(25738),t(93247),t(41533),t(60225),t(69920),t(89205),t(78546),t(63616),t(16893),t(3676),t(58361),t(23958),t(9798),t(2371),t(76185),t(76553),t(93518),t(25227),t(91723),t(57882),t(37796),t(11563),t(26159),t(20962),t(77487),t(6130),t(1354),t(47119),t(31145),t(96773),t(14371),t(18180),t(83147),t(75765),t(86548),t(15282),t(51275),t(91890),t(15089),t(78134),t(56456),t(40735),t(8510),t(70159),t(93087),t(26021),t(93029),t(59158),t(15599),t(18509),t(21579),t(8854),t(57676),t(14527),t(96834),t(52684),t(74980),t(390),t(42794),t(21293),t(18184),t(75012),t(19680),t(4193),t(70641),t(53892),t(95976),t(399),t(72032),t(49442),t(16012),t(9943),t(33128),t(95625),t(90614),t(60120),t(75826),t(25560),t(22571),t(40704),t(36849),t(49191),t(81083),t(27428),t(44884),t(48658),t(71998),t(6116),t(33032),t(80962),t(49381),t(38344),t(65961),t(94153),t(16028),t(20656),t(17063),t(21774),t(51761),t(12317),t(19711),t(41034),t(13313),t(44698),t(7369),t(66178),t(67961),t(8695),t(69997),t(9711),t(3923),t(59728),t(85227),t(56933),t(91490),t(61766),t(85143),t(47005),t(10042),t(37888),t(19431),t(60869),t(50338),t(53059),t(5805),t(50685),t(70649),t(39842),t(82872),t(91401),t(92904),t(28381),t(51862),t(20760),t(24119),t(97526),t(86650),t(10901),t(93944),t(79043),t(75081)}},Sn={};function sn(l){var p=Sn[l];if(p!==void 0)return p.exports;var t=Sn[l]={exports:{}};return ia[l].call(t.exports,t,t.exports,sn),t.exports}(function(){sn.d=function(l,p){for(var t in p)sn.o(p,t)&&!sn.o(l,t)&&Object.defineProperty(l,t,{enumerable:!0,get:p[t]})}})(),function(){sn.o=function(l,p){return Object.prototype.hasOwnProperty.call(l,p)}}(),sn(61969);var be=sn(65908);return be=be.default,be}()}); diff --git a/release/3.12.4/dist/theme/dark.css b/release/3.12.4/dist/theme/dark.css new file mode 100644 index 000000000..d758405b5 --- /dev/null +++ b/release/3.12.4/dist/theme/dark.css @@ -0,0 +1,310 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */ +/*-- Dark Theme --*/ +/*-- Default color pattern --*/ +.bb-color-pattern { + background-image: url("#4a7fff;#b02c2c;#1ca46c;#b47300;#49baf3;#ed7e13;#cfaa00;#a6cd19;#dccb52;#f5d194;"); } + +/*-- Chart --*/ +.bb svg { + font-size: 12px; + font-family: Helvetica, Arial, sans-serif, "nanumgothic", "Dotum"; + line-height: 1; } + +.bb path, .bb line { + fill: none; + stroke: #8d9cab; } + +.bb text, .bb .bb-button { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + fill: #8d9cab; + font-size: 11px; } + +.bb-legend-item-title, +.bb-xgrid-focus, +.bb-ygrid-focus, +.bb-ygrid, +.bb-line { + shape-rendering: crispEdges; } + +.bb-chart-arcs .bb-needle { + fill: #8d9cab; } + +/*-- Funnel --*/ +.bb-chart-funnels path { + stroke-width: 0; } + +.bb-chart-funnels + .bb-chart-texts text { + fill: #fff; } + +/*-- Axis --*/ +.bb-axis { + shape-rendering: crispEdges; } + .bb-axis .bb-axis-x-tooltip, .bb-axis .bb-axis-y-tooltip, .bb-axis .bb-axis-y2-tooltip { + font-size: 0.9em; + fill: #fff; + white-space: nowrap; } + +.bb-axis-y text, .bb-axis-y2 text { + fill: #8d9cab; } + +.bb-event-rects { + fill-opacity: 1 !important; } + .bb-event-rects .bb-event-rect { + fill: transparent; } + .bb-event-rects .bb-event-rect._active_ { + fill: rgba(39, 201, 3, 0.05); } + +.tick._active_ text { + fill: #00c83c !important; } + +/*-- Grid --*/ +.bb-grid { + pointer-events: none; } + .bb-grid line { + stroke: #5c666e; } + +.bb-xgrid-focus line, .bb-ygrid-focus line { + stroke: #ccd9e6; } + +/*-- Text on Chart --*/ +.bb-text.bb-empty { + fill: #8d9cab; } + +/*-- Line --*/ +.bb-line { + stroke-width: 1px; } + +/*-- Point --*/ +.bb-circle._expanded_ { + stroke-width: 2px; + stroke: 8d9cab; } + +rect.bb-circle._expanded_, use.bb-circle._expanded_ { + stroke-width: 1px; } + +/*-- Subchart --*/ +.selection { + stroke: none; + fill: #ccd9e6; } + +.bb-selected-circle { + fill: #ccd9e6; + stroke-width: 2px; } + +/*-- Bar --*/ +.bb-bar { + stroke-width: 0.5px; } + .bb-bar._expanded_ { + fill-opacity: 0.75; } + +/*-- Candlestick --*/ +.bb-candlestick { + stroke-width: 1px; } + .bb-candlestick._expanded_ { + fill-opacity: 0.75; } + +/*-- Focus --*/ +.bb-target.bb-focused, .bb-circles.bb-focused { + opacity: 1; } + .bb-target.bb-focused path.bb-line, .bb-target.bb-focused path.bb-step, .bb-circles.bb-focused path.bb-line, .bb-circles.bb-focused path.bb-step { + stroke-width: 2px; } + +.bb-target.bb-defocused, .bb-circles.bb-defocused { + opacity: 0.5 !important; } + .bb-target.bb-defocused .text-overlapping, .bb-circles.bb-defocused .text-overlapping { + opacity: .05 !important; } + +/*-- Region --*/ +.bb-region { + fill: steelblue; } + .bb-region rect { + fill-opacity: 0.5; } + .bb-region.selected rect { + fill: #27c903; } + +/*-- Zoom region --*/ +.bb-zoom-brush { + fill-opacity: .25; + fill: #ccd9e6; } + +/*-- Brush --*/ +.bb-brush .extent { + fill-opacity: 0.5; } + +/*-- Select - Drag --*/ +/*-- Legend --*/ +.bb-legend-item { + user-select: none; } + .bb-legend-item line { + stroke-width: 10px; + stroke-dasharray: 3px; } + .bb-legend-item text { + transform: translateY(-1px); } + +.bb-legend-item-hidden { + opacity: 0.5; } + +.bb-legend-background { + opacity: 0.75; + stroke: lightgray; + stroke-width: 1; } + +/*-- Title --*/ +.bb-title { + font-size: 14px; } + +/*-- Treemap --*/ +.bb-chart-treemaps rect { + stroke: #8d9cab; + stroke-width: 1px; } + +/*-- Tooltip --*/ +.bb-tooltip-container { + z-index: 10; + font-family: Helvetica, Arial, sans-serif, "nanumgothic", "Dotum"; + user-select: none; } + +.bb-tooltip { + border-collapse: separate; + border-spacing: 0; + empty-cells: show; + border: 1px solid #828181; + border-radius: 5px; + background-color: #000; + text-align: left; + font-size: 11px; + color: #fff; + white-space: nowrap; } + .bb-tooltip th { + font-size: 12px; + padding: 4px 8px; + text-align: left; + border-bottom: solid 1px #828181; } + .bb-tooltip td { + padding: 4px 6px; } + .bb-tooltip td:first-child { + padding-left: 8px; } + .bb-tooltip td:last-child { + padding-right: 8px; } + .bb-tooltip td > span, .bb-tooltip td > svg { + display: inline-block; + width: 7px; + height: 7px; + margin: -1px 6px 0 0; + vertical-align: middle; } + .bb-tooltip td.value { + border-left: 1px solid transparent; + text-align: right; } + .bb-tooltip .bb-tooltip-title { + display: inline-block; + color: #aaa; + line-height: 20px; } + .bb-tooltip .bb-tooltip-detail table { + border-collapse: collapse; + border-spacing: 0; } + .bb-tooltip .bb-tooltip-detail .bb-tooltip-name, .bb-tooltip .bb-tooltip-detail .bb-tooltip-value { + font-size: 11px; + line-height: 13px; + padding: 4px 0 3px; + color: #444; + text-align: left; + font-weight: normal; } + .bb-tooltip .bb-tooltip-detail .bb-tooltip-value { + padding-left: 5px; + font-weight: 800; + font-size: 12px; } + +/*-- Area --*/ +.bb-area { + stroke-width: 0; + opacity: 0.5; } + +/*-- Arc --*/ +.bb-chart-arcs-title { + dominant-baseline: middle; + font-size: 1.3em; } + +text.bb-chart-arcs-gauge-title { + dominant-baseline: middle; + font-size: 2.7em; } + +.bb-chart-arcs { + /*-- Polar --*/ } + .bb-chart-arcs .bb-chart-arcs-background { + fill: #3f3f3f; + stroke: none; } + .bb-chart-arcs .bb-chart-arcs-gauge-unit { + fill: #828181; + font-size: 16px; } + .bb-chart-arcs .bb-chart-arcs-gauge-min, .bb-chart-arcs .bb-chart-arcs-gauge-max { + fill: #777; } + .bb-chart-arcs .bb-chart-arcs-title { + font-size: 16px !important; + fill: #b6c2ce; + font-weight: 600; } + .bb-chart-arcs path.empty { + fill: #eaeaea; + stroke-width: 0; } + .bb-chart-arcs .bb-levels circle { + fill: none; + stroke: #848282; + stroke-width: .5px; } + .bb-chart-arcs .bb-levels text { + fill: #848282; } + +.bb-chart-arc .bb-gauge-value { + fill: #b6c2ce; } + +.bb-chart-arc rect { + stroke: #8d9cab; + stroke-width: 1; } + +.bb-chart-arc text { + fill: #fff; + font-size: 13px; } + +/*-- Radar --*/ +.bb-chart-radars .bb-levels polygon { + fill: none; + stroke: #848282; + stroke-width: .5px; } + +.bb-chart-radars .bb-levels text { + fill: #848282; } + +.bb-chart-radars .bb-axis line { + stroke: #848282; + stroke-width: .5px; } + +.bb-chart-radars .bb-axis text { + font-size: 1.15em; + cursor: default; } + +.bb-chart-radars .bb-shapes polygon { + fill-opacity: .2; + stroke-width: 1px; } + +/*-- Button --*/ +.bb-button { + position: absolute; + top: 10px; + right: 10px; } + .bb-button .bb-zoom-reset { + border: solid 1px #ccc; + background-color: #000; + color: #fff; + padding: 5px; + border-radius: 5px; + cursor: pointer; } + diff --git a/release/3.12.4/dist/theme/dark.min.css b/release/3.12.4/dist/theme/dark.min.css new file mode 100644 index 000000000..61148db63 --- /dev/null +++ b/release/3.12.4/dist/theme/dark.min.css @@ -0,0 +1,9 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */.bb-color-pattern{background-image:url(#4a7fff;#b02c2c;#1ca46c;#b47300;#49baf3;#ed7e13;#cfaa00;#a6cd19;#dccb52;#f5d194;)}.bb svg{font-size:12px;font-family:Helvetica,Arial,sans-serif,nanumgothic,Dotum;line-height:1}.bb path,.bb line{fill:none;stroke:#8d9cab}.bb text,.bb .bb-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:#8d9cab;font-size:11px}.bb-legend-item-title,.bb-xgrid-focus,.bb-ygrid-focus,.bb-ygrid,.bb-line{shape-rendering:crispEdges}.bb-chart-arcs .bb-needle{fill:#8d9cab}.bb-chart-funnels path{stroke-width:0}.bb-chart-funnels+.bb-chart-texts text{fill:#fff}.bb-axis{shape-rendering:crispEdges}.bb-axis .bb-axis-x-tooltip,.bb-axis .bb-axis-y-tooltip,.bb-axis .bb-axis-y2-tooltip{font-size:.9em;fill:#fff;white-space:nowrap}.bb-axis-y text,.bb-axis-y2 text{fill:#8d9cab}.bb-event-rects{fill-opacity:1!important}.bb-event-rects .bb-event-rect{fill:transparent}.bb-event-rects .bb-event-rect._active_{fill:#27c9030d}.tick._active_ text{fill:#00c83c!important}.bb-grid{pointer-events:none}.bb-grid line{stroke:#5c666e}.bb-xgrid-focus line,.bb-ygrid-focus line{stroke:#ccd9e6}.bb-text.bb-empty{fill:#8d9cab}.bb-line{stroke-width:1px}.bb-circle._expanded_{stroke-width:2px;stroke:8d9cab}rect.bb-circle._expanded_,use.bb-circle._expanded_{stroke-width:1px}.selection{stroke:none;fill:#ccd9e6}.bb-selected-circle{fill:#ccd9e6;stroke-width:2px}.bb-bar{stroke-width:.5px}.bb-bar._expanded_{fill-opacity:.75}.bb-candlestick{stroke-width:1px}.bb-candlestick._expanded_{fill-opacity:.75}.bb-target.bb-focused,.bb-circles.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step,.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused,.bb-circles.bb-defocused{opacity:.5!important}.bb-target.bb-defocused .text-overlapping,.bb-circles.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#4682b4}.bb-region rect{fill-opacity:.5}.bb-region.selected rect{fill:#27c903}.bb-zoom-brush{fill-opacity:.25;fill:#ccd9e6}.bb-brush .extent{fill-opacity:.5}.bb-legend-item{user-select:none}.bb-legend-item line{stroke-width:10px;stroke-dasharray:3px}.bb-legend-item text{transform:translateY(-1px)}.bb-legend-item-hidden{opacity:.5}.bb-legend-background{opacity:.75;stroke:#d3d3d3;stroke-width:1}.bb-title{font-size:14px}.bb-chart-treemaps rect{stroke:#8d9cab;stroke-width:1px}.bb-tooltip-container{z-index:10;font-family:Helvetica,Arial,sans-serif,nanumgothic,Dotum;user-select:none}.bb-tooltip{border-collapse:separate;border-spacing:0;empty-cells:show;border:1px solid #828181;border-radius:5px;background-color:#000;text-align:left;font-size:11px;color:#fff;white-space:nowrap}.bb-tooltip th{font-size:12px;padding:4px 8px;text-align:left;border-bottom:solid 1px #828181}.bb-tooltip td{padding:4px 6px}.bb-tooltip td:first-child{padding-left:8px}.bb-tooltip td:last-child{padding-right:8px}.bb-tooltip td>span,.bb-tooltip td>svg{display:inline-block;width:7px;height:7px;margin:-1px 6px 0 0;vertical-align:middle}.bb-tooltip td.value{border-left:1px solid transparent;text-align:right}.bb-tooltip .bb-tooltip-title{display:inline-block;color:#aaa;line-height:20px}.bb-tooltip .bb-tooltip-detail table{border-collapse:collapse;border-spacing:0}.bb-tooltip .bb-tooltip-detail .bb-tooltip-name,.bb-tooltip .bb-tooltip-detail .bb-tooltip-value{font-size:11px;line-height:13px;padding:4px 0 3px;color:#444;text-align:left;font-weight:400}.bb-tooltip .bb-tooltip-detail .bb-tooltip-value{padding-left:5px;font-weight:800;font-size:12px}.bb-area{stroke-width:0;opacity:.5}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}text.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#3f3f3f;stroke:none}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#828181;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-min,.bb-chart-arcs .bb-chart-arcs-gauge-max{fill:#777}.bb-chart-arcs .bb-chart-arcs-title{font-size:16px!important;fill:#b6c2ce;font-weight:600}.bb-chart-arcs path.empty{fill:#eaeaea;stroke-width:0}.bb-chart-arcs .bb-levels circle{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-arcs .bb-levels text{fill:#848282}.bb-chart-arc .bb-gauge-value{fill:#b6c2ce}.bb-chart-arc rect{stroke:#8d9cab;stroke-width:1}.bb-chart-arc text{fill:#fff;font-size:13px}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#848282}.bb-chart-radars .bb-axis line{stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-axis text{font-size:1.15em;cursor:default}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:1px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{border:solid 1px #ccc;background-color:#000;color:#fff;padding:5px;border-radius:5px;cursor:pointer} diff --git a/release/3.12.4/dist/theme/datalab.css b/release/3.12.4/dist/theme/datalab.css new file mode 100644 index 000000000..4de67bf8a --- /dev/null +++ b/release/3.12.4/dist/theme/datalab.css @@ -0,0 +1,307 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */ +/*-- Datalab Theme --*/ +/*-- Default color pattern --*/ +.bb-color-pattern { + background-image: url("#2ac4b3;#feaf29;#ff617b;#73a2ef;#b180d0;#3064cf;#d0a45f;#8aaec7;#ef65a2;#8aaec7;"); } + +/*-- Chart --*/ +.bb svg { + font-size: 11px; + font-family: "Sans Pro", Arial, sans-serif, "nanumgothic", "Dotum"; + line-height: 1; } + +.bb path, .bb line { + fill: none; + stroke: #000; } + +.bb text, .bb .bb-button { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -webkit-font-smoothing: antialiased; + user-select: none; + fill: #555; + font-size: 11px; } + +.bb-chart-arcs .bb-needle { + fill: #000; } + +/*-- Funnel --*/ +.bb-chart-funnels path { + stroke-width: 0; } + +.bb-chart-funnels + .bb-chart-texts text { + fill: #fff; } + +/*-- Axis --*/ +.bb-axis { + stroke-width: 0.7px; } + .bb-axis .bb-axis-x-tooltip, .bb-axis .bb-axis-y-tooltip, .bb-axis .bb-axis-y2-tooltip { + font-size: 0.9em; + fill: #fff; + white-space: nowrap; } + +.bb-axis-y text, .bb-axis-y2 text { + fill: #737373; } + +.bb-event-rects { + fill-opacity: 1 !important; } + .bb-event-rects .bb-event-rect { + fill: transparent; } + .bb-event-rects .bb-event-rect._active_ { + fill: rgba(39, 201, 3, 0.05); } + +.tick._active_ text { + fill: #00c83c !important; } + +/*-- Grid --*/ +.bb-grid { + pointer-events: none; } + .bb-grid line { + stroke: #f1f1f1; } + +.bb-xgrid-focus line, .bb-ygrid-focus line { + stroke: #ddd; } + +/*-- Text on Chart --*/ +.bb-text.bb-empty { + fill: #767676; } + +/*-- Line --*/ +.bb-line { + stroke-width: 0.7px; } + +/*-- Point --*/ +.bb-circle { + fill: #fff !important; } + +.bb-circle._expanded_ { + stroke-width: 2px; } + +.bb-selected-circle { + fill: white; + stroke-width: 2px; } + +/*-- Bar --*/ +.bb-bar { + stroke-width: 1px; } + .bb-bar._expanded_ { + fill-opacity: 0.75; } + +/*-- Candlestick --*/ +.bb-candlestick { + stroke-width: 1px; } + .bb-candlestick._expanded_ { + fill-opacity: 0.75; } + +/*-- Focus --*/ +.bb-target.bb-focused, .bb-circles.bb-focused { + opacity: 1; } + .bb-target.bb-focused path.bb-line, .bb-target.bb-focused path.bb-step, .bb-circles.bb-focused path.bb-line, .bb-circles.bb-focused path.bb-step { + stroke-width: 2px; } + +.bb-target.bb-defocused, .bb-circles.bb-defocused { + opacity: 0.3 !important; } + .bb-target.bb-defocused .text-overlapping, .bb-circles.bb-defocused .text-overlapping { + opacity: .05 !important; } + +/*-- Region --*/ +.bb-region { + fill: steelblue; } + .bb-region rect { + fill-opacity: 0.1; } + .bb-region.selected rect { + fill: #27c903; } + +/*-- Zoom region --*/ +.bb-zoom-brush { + fill-opacity: .1; } + +/*-- Brush --*/ +.bb-brush .extent { + fill-opacity: 0.1; } + +/*-- Legend --*/ +.bb-legend-item { + user-select: none; } + .bb-legend-item line.bb-legend-item-tile { + stroke-linecap: round; + stroke-width: 8px; + transform: translate(7px, 1px); + stroke-dasharray: 1 20; } + +.bb-legend-item-hidden { + opacity: 0.15; } + +.bb-legend-background { + opacity: 0.75; + fill: white; + stroke: lightgray; + stroke-width: 1; } + +/*-- Title --*/ +.bb-title { + font-size: 14px; } + +/*-- Treemap --*/ +.bb-chart-treemaps rect { + stroke: #000; + stroke-width: 1px; } + +/*-- Tooltip --*/ +.bb-tooltip-container { + z-index: 10; + font-family: "Sans Pro", Arial, sans-serif, "nanumgothic", "Dotum"; + user-select: none; } + +.bb-tooltip { + border-collapse: separate; + border-spacing: 0; + border-radius: 2px; + empty-cells: show; + border: 1px solid #999; + background-color: #fff; + text-align: left; + font-size: 11px; + -webkit-font-smoothing: antialiased; + white-space: nowrap; } + .bb-tooltip th { + font-size: 13px; + padding: 2px 8px; + text-align: left; + border-bottom: solid 2px #ff2d2d; + background-color: #0b00b1; + color: #fffdfd; } + .bb-tooltip td { + padding: 4px 6px; } + .bb-tooltip td:first-child { + padding-left: 8px; } + .bb-tooltip td:last-child { + padding-right: 8px; } + .bb-tooltip td > span, .bb-tooltip td > svg { + display: inline-block; + width: 8px; + height: 8px; + margin-right: 6px; + border: solid 1px #000; + border-radius: 3px; + vertical-align: middle; } + .bb-tooltip td.value { + border-left: 1px solid transparent; + text-align: right; } + .bb-tooltip .bb-tooltip-title { + display: inline-block; + color: #aaa; + line-height: 20px; } + .bb-tooltip .bb-tooltip-detail table { + border-collapse: collapse; + border-spacing: 0; } + .bb-tooltip .bb-tooltip-detail .bb-tooltip-name, .bb-tooltip .bb-tooltip-detail .bb-tooltip-value { + font-size: 11px; + line-height: 13px; + padding: 4px 0 3px; + color: #444; + text-align: left; + font-weight: normal; } + .bb-tooltip .bb-tooltip-detail .bb-tooltip-value { + padding-left: 5px; + font-weight: 800; + font-size: 11px; } + +/*-- Area --*/ +.bb-area { + stroke-width: 0; + opacity: 0.2; } + +/*-- Arc --*/ +.bb-chart-arcs-title { + dominant-baseline: middle; + font-size: 1.3em; } + +text.bb-chart-arcs-gauge-title { + dominant-baseline: middle; + font-size: 2.7em; } + +.bb-chart-arcs { + /*-- Polar --*/ } + .bb-chart-arcs .bb-chart-arcs-background { + fill: #e0e0e0; + stroke: none; } + .bb-chart-arcs .bb-chart-arcs-gauge-unit { + fill: #000; + font-size: 18px; } + .bb-chart-arcs .bb-chart-arcs-gauge-min, .bb-chart-arcs .bb-chart-arcs-gauge-max { + fill: #777; } + .bb-chart-arcs .bb-chart-arcs-title { + font-size: 18px !important; + fill: #000; + font-weight: 600; } + .bb-chart-arcs path.empty { + fill: #eaeaea; + stroke-width: 0; } + .bb-chart-arcs .bb-levels circle { + fill: none; + stroke: #848282; + stroke-width: .5px; } + .bb-chart-arcs .bb-levels text { + fill: #848282; } + +.bb-line { + shape-rendering: crispEdges; } + +.bb-chart-arc .bb-gauge-value { + fill: #3b6969; } + +.bb-chart-arc path { + stroke: #000; + stroke-width: 0.5px; } + +.bb-chart-arc rect { + stroke: #fff; + stroke-width: 1; } + +.bb-chart-arc text { + fill: #fff; + font-size: 14px; } + +/*-- Radar --*/ +.bb-chart-radars .bb-levels polygon { + fill: none; + stroke: #848282; + stroke-width: .5px; } + +.bb-chart-radars .bb-levels text { + fill: #848282; } + +.bb-chart-radars .bb-axis line { + stroke: #848282; + stroke-width: .5px; } + +.bb-chart-radars .bb-axis text { + font-size: 1.15em; + cursor: default; } + +.bb-chart-radars .bb-shapes polygon { + fill-opacity: .2; + stroke-width: 0.7px; } + +/*-- Button --*/ +.bb-button { + position: absolute; + top: 10px; + right: 10px; } + .bb-button .bb-zoom-reset { + border: solid 1px #ccc; + background-color: #fff; + padding: 5px; + border-radius: 5px; + cursor: pointer; } + diff --git a/release/3.12.4/dist/theme/datalab.min.css b/release/3.12.4/dist/theme/datalab.min.css new file mode 100644 index 000000000..00b3aff25 --- /dev/null +++ b/release/3.12.4/dist/theme/datalab.min.css @@ -0,0 +1,9 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */.bb-color-pattern{background-image:url(#2ac4b3;#feaf29;#ff617b;#73a2ef;#b180d0;#3064cf;#d0a45f;#8aaec7;#ef65a2;#8aaec7;)}.bb svg{font-size:11px;font-family:Sans Pro,Arial,sans-serif,nanumgothic,Dotum;line-height:1}.bb path,.bb line{fill:none;stroke:#000}.bb text,.bb .bb-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-font-smoothing:antialiased;user-select:none;fill:#555;font-size:11px}.bb-chart-arcs .bb-needle{fill:#000}.bb-chart-funnels path{stroke-width:0}.bb-chart-funnels+.bb-chart-texts text{fill:#fff}.bb-axis{stroke-width:.7px}.bb-axis .bb-axis-x-tooltip,.bb-axis .bb-axis-y-tooltip,.bb-axis .bb-axis-y2-tooltip{font-size:.9em;fill:#fff;white-space:nowrap}.bb-axis-y text,.bb-axis-y2 text{fill:#737373}.bb-event-rects{fill-opacity:1!important}.bb-event-rects .bb-event-rect{fill:transparent}.bb-event-rects .bb-event-rect._active_{fill:#27c9030d}.tick._active_ text{fill:#00c83c!important}.bb-grid{pointer-events:none}.bb-grid line{stroke:#f1f1f1}.bb-xgrid-focus line,.bb-ygrid-focus line{stroke:#ddd}.bb-text.bb-empty{fill:#767676}.bb-line{stroke-width:.7px}.bb-circle{fill:#fff!important}.bb-circle._expanded_{stroke-width:2px}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:1px}.bb-bar._expanded_{fill-opacity:.75}.bb-candlestick{stroke-width:1px}.bb-candlestick._expanded_{fill-opacity:.75}.bb-target.bb-focused,.bb-circles.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step,.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused,.bb-circles.bb-defocused{opacity:.3!important}.bb-target.bb-defocused .text-overlapping,.bb-circles.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#4682b4}.bb-region rect{fill-opacity:.1}.bb-region.selected rect{fill:#27c903}.bb-zoom-brush,.bb-brush .extent{fill-opacity:.1}.bb-legend-item{user-select:none}.bb-legend-item line.bb-legend-item-tile{stroke-linecap:round;stroke-width:8px;transform:translate(7px,1px);stroke-dasharray:1 20}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.bb-title{font-size:14px}.bb-chart-treemaps rect{stroke:#000;stroke-width:1px}.bb-tooltip-container{z-index:10;font-family:Sans Pro,Arial,sans-serif,nanumgothic,Dotum;user-select:none}.bb-tooltip{border-collapse:separate;border-spacing:0;border-radius:2px;empty-cells:show;border:1px solid #999;background-color:#fff;text-align:left;font-size:11px;-webkit-font-smoothing:antialiased;white-space:nowrap}.bb-tooltip th{font-size:13px;padding:2px 8px;text-align:left;border-bottom:solid 2px #ff2d2d;background-color:#0b00b1;color:#fffdfd}.bb-tooltip td{padding:4px 6px}.bb-tooltip td:first-child{padding-left:8px}.bb-tooltip td:last-child{padding-right:8px}.bb-tooltip td>span,.bb-tooltip td>svg{display:inline-block;width:8px;height:8px;margin-right:6px;border:solid 1px #000;border-radius:3px;vertical-align:middle}.bb-tooltip td.value{border-left:1px solid transparent;text-align:right}.bb-tooltip .bb-tooltip-title{display:inline-block;color:#aaa;line-height:20px}.bb-tooltip .bb-tooltip-detail table{border-collapse:collapse;border-spacing:0}.bb-tooltip .bb-tooltip-detail .bb-tooltip-name,.bb-tooltip .bb-tooltip-detail .bb-tooltip-value{font-size:11px;line-height:13px;padding:4px 0 3px;color:#444;text-align:left;font-weight:400}.bb-tooltip .bb-tooltip-detail .bb-tooltip-value{padding-left:5px;font-weight:800;font-size:11px}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}text.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:none}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:18px}.bb-chart-arcs .bb-chart-arcs-gauge-min,.bb-chart-arcs .bb-chart-arcs-gauge-max{fill:#777}.bb-chart-arcs .bb-chart-arcs-title{font-size:18px!important;fill:#000;font-weight:600}.bb-chart-arcs path.empty{fill:#eaeaea;stroke-width:0}.bb-chart-arcs .bb-levels circle{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-arcs .bb-levels text{fill:#848282}.bb-line{shape-rendering:crispEdges}.bb-chart-arc .bb-gauge-value{fill:#3b6969}.bb-chart-arc path{stroke:#000;stroke-width:.5px}.bb-chart-arc rect{stroke:#fff;stroke-width:1}.bb-chart-arc text{fill:#fff;font-size:14px}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#848282}.bb-chart-radars .bb-axis line{stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-axis text{font-size:1.15em;cursor:default}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:.7px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{border:solid 1px #ccc;background-color:#fff;padding:5px;border-radius:5px;cursor:pointer} diff --git a/release/3.12.4/dist/theme/graph.css b/release/3.12.4/dist/theme/graph.css new file mode 100644 index 000000000..72a1f717a --- /dev/null +++ b/release/3.12.4/dist/theme/graph.css @@ -0,0 +1,320 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */ +/*-- Graph Theme --*/ +/*-- Default color pattern --*/ +.bb-color-pattern { + background-image: url("#65CFC2;#D0A45F;#64A4F5;#EF65A2;#A377FE;#8AAEC7;#FF7E5A;#898EFE;#FFAC35;#70B0FF;"); } + +/*-- Chart --*/ +.bb svg { + font-size: 12px; + font-family: Helvetica, "Apple SD Gothic Neo", Arial, sans-serif, "nanumgothic", "Dotum"; + line-height: 1; } + +.bb path, .bb line { + fill: none; + stroke: #8c8c8c; } + +.bb text, .bb .bb-button { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + fill: #555; + font-size: 12px; + letter-spacing: -.3px; } + +.bb-legend-item-title, +.bb-xgrid-focus, +.bb-ygrid-focus, +.bb-ygrid { + shape-rendering: crispEdges; } + +.bb-chart-arcs .bb-needle { + fill: #000; } + +/*-- Funnel --*/ +.bb-chart-funnels path { + stroke-width: 0; } + +.bb-chart-funnels + .bb-chart-texts text { + fill: #fff; } + +/*-- Axis --*/ +.bb-axis { + shape-rendering: crispEdges; } + .bb-axis .bb-axis-x-tooltip, .bb-axis .bb-axis-y-tooltip, .bb-axis .bb-axis-y2-tooltip { + font-size: 0.9em; + fill: #fff; + white-space: nowrap; } + +.bb-axis-y text, .bb-axis-y2 text { + fill: #8c8c8c; } + +.bb-event-rects { + fill-opacity: 1 !important; } + .bb-event-rects .bb-event-rect { + fill: transparent; } + .bb-event-rects .bb-event-rect._active_ { + fill: rgba(39, 201, 3, 0.05); } + +.tick._active_ text { + fill: #00c83c !important; } + +/*-- Grid --*/ +.bb-grid { + pointer-events: none; } + .bb-grid line { + stroke: #f1f1f1; } + +.bb-xgrid-focus line, .bb-ygrid-focus line { + stroke: #ffb6b6; + stroke-dasharray: 3px; } + +/*-- Text on Chart --*/ +.bb-text.bb-empty { + fill: #767676; } + +/*-- Line --*/ +.bb-line { + stroke-width: 1px; } + +/*-- Point --*/ +.bb-circle._expanded_ { + stroke-width: 2px; } + +rect.bb-circle._expanded_, use.bb-circle._expanded_ { + stroke-width: 2px; } + +.bb-selected-circle { + fill: white; + stroke-width: 2px; } + +/*-- Bar --*/ +.bb-bar { + stroke-width: 0; } + .bb-bar._expanded_ { + fill-opacity: 0.75; } + +/*-- Candlestick --*/ +.bb-candlestick { + stroke-width: 1px; } + .bb-candlestick._expanded_ { + fill-opacity: 0.75; } + +/*-- Focus --*/ +.bb-target.bb-focused, .bb-circles.bb-focused { + opacity: 1; } + .bb-target.bb-focused path.bb-line, .bb-target.bb-focused path.bb-step, .bb-circles.bb-focused path.bb-line, .bb-circles.bb-focused path.bb-step { + stroke-width: 2px; } + +.bb-target.bb-defocused, .bb-circles.bb-defocused { + opacity: 0.3 !important; } + .bb-target.bb-defocused .text-overlapping, .bb-circles.bb-defocused .text-overlapping { + opacity: .05 !important; } + +/*-- Region --*/ +.bb-region { + fill: steelblue; } + .bb-region rect { + fill-opacity: 0.1; } + .bb-region.selected rect { + fill: #27c903; } + +/*-- Zoom region --*/ +.bb-zoom-brush { + fill-opacity: .1; } + +/*-- Brush --*/ +.bb-brush .extent { + fill-opacity: 0.1; } + +/*-- Select - Drag --*/ +/*-- Legend --*/ +.bb-legend-item { + user-select: none; } + +.bb-legend-item-hidden { + opacity: 0.15; } + +.bb-legend-background { + opacity: 0.75; + fill: white; + stroke: lightgray; + stroke-width: 1px; } + +.bb-legend-item line { + stroke-dasharray: 1px; } + +/*-- Title --*/ +.bb-title { + font-size: 14px; } + +/*-- Treemap --*/ +.bb-chart-treemaps rect { + stroke: #fff; + stroke-width: 1px; } + +/*-- Tooltip --*/ +.bb-tooltip-container { + z-index: 10; + font-family: Helvetica, "Apple SD Gothic Neo", Arial, sans-serif, "nanumgothic", "Dotum"; + user-select: none; } + +.bb-tooltip { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border-collapse: separate; + border-spacing: 0; + empty-cells: show; + border: 1px solid #999; + border-radius: 2px; + background-color: #fff; + text-align: left; + font-size: 12px; + box-shadow: .5px .5px 1px #999; + white-space: nowrap; } + .bb-tooltip th { + font-size: 12px; + padding: 4px 8px; + text-align: center; + border-bottom: dotted 1px #000; + background-color: #efefef; + color: #000; } + .bb-tooltip tr:last-child td { + border-bottom: none; } + .bb-tooltip td { + padding: 3px 6px; + background-color: #fff; + border-bottom: solid 1px #eee; } + .bb-tooltip td:first-child { + padding-left: 5px; + border-right: solid 1px #eee; } + .bb-tooltip td:last-child { + padding-right: 5px; } + .bb-tooltip td > span, .bb-tooltip td > svg { + display: inline-block; + width: 5px; + height: 12px; + margin-right: 6px; + vertical-align: middle; } + .bb-tooltip td.value { + border-left: 1px solid transparent; + text-align: right; } + .bb-tooltip .bb-tooltip-title { + display: inline-block; + color: #aaa; + line-height: 20px; } + .bb-tooltip .bb-tooltip-detail table { + border-collapse: collapse; + border-spacing: 1px; + font-size: 12px; } + .bb-tooltip .bb-tooltip-detail .bb-tooltip-name, .bb-tooltip .bb-tooltip-detail .bb-tooltip-value { + line-height: 13px; + padding: 4px 0 3px; + color: #444; + text-align: left; + font-weight: normal; } + .bb-tooltip .bb-tooltip-detail .bb-tooltip-value { + padding-left: 5px; + font-weight: 800; } + +/*-- Area --*/ +.bb-area { + stroke-width: 0; + opacity: 0.2; } + +/*-- Arc --*/ +.bb-chart-arcs-title { + dominant-baseline: middle; + font-size: 1.3em; } + +text.bb-chart-arcs-gauge-title { + dominant-baseline: middle; + font-size: 2.7em; } + +.bb-chart-arcs { + /*-- Polar --*/ } + .bb-chart-arcs .bb-chart-arcs-background { + fill: #e0e0e0; + stroke: #fff; } + .bb-chart-arcs .bb-chart-arcs-gauge-unit { + fill: #000; + font-size: 16px; } + .bb-chart-arcs .bb-chart-arcs-gauge-min, .bb-chart-arcs .bb-chart-arcs-gauge-max { + fill: #777; } + .bb-chart-arcs .bb-chart-arcs-title { + font-size: 16px !important; + fill: #8c8c8c; + font-style: italic; } + .bb-chart-arcs path.empty { + fill: #eaeaea; + stroke-width: 0; } + .bb-chart-arcs .bb-levels circle { + fill: none; + stroke: #848282; + stroke-width: .5px; } + .bb-chart-arcs .bb-levels text { + fill: #848282; } + +.bb-chart-arc .bb-gauge-value { + fill: #8c8c8c; + font-style: italic; } + +.bb-chart-arc path { + stroke: #fff; } + +.bb-chart-arc rect { + stroke: white; + stroke-width: 1; } + +.bb-chart-arc text { + fill: #fff; + font-size: 13px; + font-weight: bold; } + +/*-- Radar --*/ +.bb-chart-radars .bb-levels polygon { + fill: none; + stroke: #8c8c8c; + stroke-width: .5px; } + +.bb-chart-radars .bb-levels text { + fill: #8c8c8c; } + +.bb-chart-radars .bb-axis line { + stroke: #8c8c8c; + stroke-width: .5px; } + +.bb-chart-radars .bb-axis text { + font-size: 1.15em; + font-weight: bold; + cursor: default; } + +.bb-chart-radars .bb-shapes polygon { + fill-opacity: .2; + stroke-width: 1px; } + +/*-- Button --*/ +.bb-button { + position: absolute; + top: 10px; + right: 10px; } + .bb-button .bb-zoom-reset { + border: solid 1px #ccc; + background-color: #fff; + padding: 5px; + border-radius: 5px; + cursor: pointer; + opacity: .8; + box-shadow: 1px 1px 2px #ccc; } + diff --git a/release/3.12.4/dist/theme/graph.min.css b/release/3.12.4/dist/theme/graph.min.css new file mode 100644 index 000000000..2b9152e22 --- /dev/null +++ b/release/3.12.4/dist/theme/graph.min.css @@ -0,0 +1,9 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */.bb-color-pattern{background-image:url(#65CFC2;#D0A45F;#64A4F5;#EF65A2;#A377FE;#8AAEC7;#FF7E5A;#898EFE;#FFAC35;#70B0FF;)}.bb svg{font-size:12px;font-family:Helvetica,Apple SD Gothic Neo,Arial,sans-serif,nanumgothic,Dotum;line-height:1}.bb path,.bb line{fill:none;stroke:#8c8c8c}.bb text,.bb .bb-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:#555;font-size:12px;letter-spacing:-.3px}.bb-legend-item-title,.bb-xgrid-focus,.bb-ygrid-focus,.bb-ygrid{shape-rendering:crispEdges}.bb-chart-arcs .bb-needle{fill:#000}.bb-chart-funnels path{stroke-width:0}.bb-chart-funnels+.bb-chart-texts text{fill:#fff}.bb-axis{shape-rendering:crispEdges}.bb-axis .bb-axis-x-tooltip,.bb-axis .bb-axis-y-tooltip,.bb-axis .bb-axis-y2-tooltip{font-size:.9em;fill:#fff;white-space:nowrap}.bb-axis-y text,.bb-axis-y2 text{fill:#8c8c8c}.bb-event-rects{fill-opacity:1!important}.bb-event-rects .bb-event-rect{fill:transparent}.bb-event-rects .bb-event-rect._active_{fill:#27c9030d}.tick._active_ text{fill:#00c83c!important}.bb-grid{pointer-events:none}.bb-grid line{stroke:#f1f1f1}.bb-xgrid-focus line,.bb-ygrid-focus line{stroke:#ffb6b6;stroke-dasharray:3px}.bb-text.bb-empty{fill:#767676}.bb-line{stroke-width:1px}.bb-circle._expanded_{stroke-width:2px}rect.bb-circle._expanded_,use.bb-circle._expanded_{stroke-width:2px}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:0}.bb-bar._expanded_{fill-opacity:.75}.bb-candlestick{stroke-width:1px}.bb-candlestick._expanded_{fill-opacity:.75}.bb-target.bb-focused,.bb-circles.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step,.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused,.bb-circles.bb-defocused{opacity:.3!important}.bb-target.bb-defocused .text-overlapping,.bb-circles.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#4682b4}.bb-region rect{fill-opacity:.1}.bb-region.selected rect{fill:#27c903}.bb-zoom-brush,.bb-brush .extent{fill-opacity:.1}.bb-legend-item{user-select:none}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1px}.bb-legend-item line{stroke-dasharray:1px}.bb-title{font-size:14px}.bb-chart-treemaps rect{stroke:#fff;stroke-width:1px}.bb-tooltip-container{z-index:10;font-family:Helvetica,Apple SD Gothic Neo,Arial,sans-serif,nanumgothic,Dotum;user-select:none}.bb-tooltip{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-collapse:separate;border-spacing:0;empty-cells:show;border:1px solid #999;border-radius:2px;background-color:#fff;text-align:left;font-size:12px;box-shadow:.5px .5px 1px #999;white-space:nowrap}.bb-tooltip th{font-size:12px;padding:4px 8px;text-align:center;border-bottom:dotted 1px #000;background-color:#efefef;color:#000}.bb-tooltip tr:last-child td{border-bottom:none}.bb-tooltip td{padding:3px 6px;background-color:#fff;border-bottom:solid 1px #eee}.bb-tooltip td:first-child{padding-left:5px;border-right:solid 1px #eee}.bb-tooltip td:last-child{padding-right:5px}.bb-tooltip td>span,.bb-tooltip td>svg{display:inline-block;width:5px;height:12px;margin-right:6px;vertical-align:middle}.bb-tooltip td.value{border-left:1px solid transparent;text-align:right}.bb-tooltip .bb-tooltip-title{display:inline-block;color:#aaa;line-height:20px}.bb-tooltip .bb-tooltip-detail table{border-collapse:collapse;border-spacing:1px;font-size:12px}.bb-tooltip .bb-tooltip-detail .bb-tooltip-name,.bb-tooltip .bb-tooltip-detail .bb-tooltip-value{line-height:13px;padding:4px 0 3px;color:#444;text-align:left;font-weight:400}.bb-tooltip .bb-tooltip-detail .bb-tooltip-value{padding-left:5px;font-weight:800}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}text.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:#fff}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-min,.bb-chart-arcs .bb-chart-arcs-gauge-max{fill:#777}.bb-chart-arcs .bb-chart-arcs-title{font-size:16px!important;fill:#8c8c8c;font-style:italic}.bb-chart-arcs path.empty{fill:#eaeaea;stroke-width:0}.bb-chart-arcs .bb-levels circle{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-arcs .bb-levels text{fill:#848282}.bb-chart-arc .bb-gauge-value{fill:#8c8c8c;font-style:italic}.bb-chart-arc path{stroke:#fff}.bb-chart-arc rect{stroke:#fff;stroke-width:1}.bb-chart-arc text{fill:#fff;font-size:13px;font-weight:700}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#8c8c8c;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#8c8c8c}.bb-chart-radars .bb-axis line{stroke:#8c8c8c;stroke-width:.5px}.bb-chart-radars .bb-axis text{font-size:1.15em;font-weight:700;cursor:default}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:1px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{border:solid 1px #ccc;background-color:#fff;padding:5px;border-radius:5px;cursor:pointer;opacity:.8;box-shadow:1px 1px 2px #ccc} diff --git a/release/3.12.4/dist/theme/insight.css b/release/3.12.4/dist/theme/insight.css new file mode 100644 index 000000000..42c79fa0f --- /dev/null +++ b/release/3.12.4/dist/theme/insight.css @@ -0,0 +1,301 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */ +/*-- Insight Theme --*/ +/*-- Default color pattern --*/ +.bb-color-pattern { + background-image: url("#00c73c;#fa7171;#2ad0ff;#7294ce;#e3e448;#cc7e6e;#fb6ccf;#c98dff;#4aea99;#bbbbbb;"); } + +/*-- Chart --*/ +.bb svg { + font-size: 12px; + font-family: sans-serif, Arial, "nanumgothic", "Dotum"; + line-height: 1; } + +.bb path, .bb line { + fill: none; + stroke: #c4c4c4; } + +.bb text, .bb .bb-button { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + fill: #555; + font-size: 11px; } + +.bb-legend-item-title, +.bb-xgrid-focus, +.bb-ygrid-focus, +.bb-ygrid { + shape-rendering: crispEdges; } + +.bb-chart-arcs .bb-needle { + fill: #000; } + +/*-- Funnel --*/ +.bb-chart-funnels path { + stroke-width: 0; } + +.bb-chart-funnels + .bb-chart-texts text { + fill: #fff; } + +/*-- Axis --*/ +.bb-axis { + shape-rendering: crispEdges; } + .bb-axis .bb-axis-x-tooltip, .bb-axis .bb-axis-y-tooltip, .bb-axis .bb-axis-y2-tooltip { + font-size: 0.9em; + fill: #fff; + white-space: nowrap; } + +.bb-axis-y text, .bb-axis-y2 text { + fill: #737373; } + +.bb-event-rects { + fill-opacity: 1 !important; } + .bb-event-rects .bb-event-rect { + fill: transparent; } + .bb-event-rects .bb-event-rect._active_ { + fill: rgba(39, 201, 3, 0.05); } + +.tick._active_ text { + fill: #00c83c !important; } + +/*-- Grid --*/ +.bb-grid { + pointer-events: none; } + .bb-grid line { + stroke: #f1f1f1; } + +.bb-xgrid-focus line, .bb-ygrid-focus line { + stroke: #ddd; } + +/*-- Text on Chart --*/ +.bb-text.bb-empty { + fill: #767676; } + +/*-- Line --*/ +.bb-line { + stroke-width: 1px; } + +/*-- Point --*/ +.bb-circle._expanded_ { + fill: #fff !important; + stroke-width: 2px; + stroke: red; } + +rect.bb-circle._expanded_, use.bb-circle._expanded_ { + stroke-width: 1px; } + +.bb-selected-circle { + fill: white; + stroke-width: 2px; } + +/*-- Bar --*/ +.bb-bar { + stroke-width: 0; } + .bb-bar._expanded_ { + fill-opacity: 0.75; } + +/*-- Candlestick --*/ +.bb-candlestick { + stroke-width: 1px; } + .bb-candlestick._expanded_ { + fill-opacity: 0.75; } + +/*-- Focus --*/ +.bb-target.bb-focused, .bb-circles.bb-focused { + opacity: 1; } + .bb-target.bb-focused path.bb-line, .bb-target.bb-focused path.bb-step, .bb-circles.bb-focused path.bb-line, .bb-circles.bb-focused path.bb-step { + stroke-width: 2px; } + +.bb-target.bb-defocused, .bb-circles.bb-defocused { + opacity: 0.3 !important; } + .bb-target.bb-defocused .text-overlapping, .bb-circles.bb-defocused .text-overlapping { + opacity: .05 !important; } + +/*-- Region --*/ +.bb-region { + fill: steelblue; } + .bb-region rect { + fill-opacity: 0.1; } + .bb-region.selected rect { + fill: #27c903; } + +/*-- Zoom region --*/ +.bb-zoom-brush { + fill-opacity: .1; } + +/*-- Brush --*/ +.bb-brush .extent { + fill-opacity: 0.1; } + +/*-- Select - Drag --*/ +/*-- Legend --*/ +.bb-legend-item { + user-select: none; } + +.bb-legend-item-hidden { + opacity: 0.15; } + +.bb-legend-background { + opacity: 0.75; + fill: white; + stroke: lightgray; + stroke-width: 1; } + +/*-- Title --*/ +.bb-title { + font-size: 14px; } + +/*-- Treemap --*/ +.bb-chart-treemaps rect { + stroke: #fff; + stroke-width: 1px; } + +/*-- Tooltip --*/ +.bb-tooltip-container { + z-index: 10; + font-family: sans-serif, Arial, "nanumgothic", "Dotum"; + user-select: none; } + +.bb-tooltip { + border-collapse: separate; + border-spacing: 0; + empty-cells: show; + border: 1px solid #999; + background-color: #fff; + text-align: left; + font-size: 11px; + white-space: nowrap; } + .bb-tooltip th { + font-size: 12px; + padding: 4px 8px; + text-align: left; + border-bottom: solid 1px #eee; } + .bb-tooltip td { + padding: 4px 6px; + background-color: #fff; } + .bb-tooltip td:first-child { + padding-left: 8px; } + .bb-tooltip td:last-child { + padding-right: 8px; } + .bb-tooltip td > span, .bb-tooltip td > svg { + display: inline-block; + width: 10px; + height: 10px; + margin-right: 6px; + border-radius: 5px; + vertical-align: middle; } + .bb-tooltip td.value { + border-left: 1px solid transparent; } + .bb-tooltip .bb-tooltip-title { + display: inline-block; + color: #aaa; + line-height: 20px; } + .bb-tooltip .bb-tooltip-detail table { + border-collapse: collapse; + border-spacing: 0; } + .bb-tooltip .bb-tooltip-detail .bb-tooltip-name, .bb-tooltip .bb-tooltip-detail .bb-tooltip-value { + font-size: 11px; + line-height: 13px; + padding: 4px 0 3px; + color: #444; + text-align: left; + font-weight: normal; } + .bb-tooltip .bb-tooltip-detail .bb-tooltip-value { + padding-left: 5px; + font-weight: 800; + font-size: 12px; } + +/*-- Area --*/ +.bb-area { + stroke-width: 0; + opacity: 0.2; } + +/*-- Arc --*/ +.bb-chart-arcs-title { + dominant-baseline: middle; + font-size: 1.3em; } + +text.bb-chart-arcs-gauge-title { + dominant-baseline: middle; + font-size: 2.7em; } + +.bb-chart-arcs { + /*-- Polar --*/ } + .bb-chart-arcs .bb-chart-arcs-background { + fill: #e0e0e0; + stroke: none; } + .bb-chart-arcs .bb-chart-arcs-gauge-unit { + fill: #000; + font-size: 16px; } + .bb-chart-arcs .bb-chart-arcs-gauge-min, .bb-chart-arcs .bb-chart-arcs-gauge-max { + fill: #777; } + .bb-chart-arcs .bb-chart-arcs-title { + font-size: 16px !important; + fill: #000; + font-weight: 600; } + .bb-chart-arcs path.empty { + fill: #eaeaea; + stroke-width: 0; } + .bb-chart-arcs .bb-levels circle { + fill: none; + stroke: #848282; + stroke-width: .5px; } + .bb-chart-arcs .bb-levels text { + fill: #848282; } + +.bb-chart-arc .bb-gauge-value { + fill: #000; } + +.bb-chart-arc path { + stroke: #fff; } + +.bb-chart-arc rect { + stroke: #fff; + stroke-width: 1; } + +.bb-chart-arc text { + fill: #fff; + font-size: 13px; } + +/*-- Radar --*/ +.bb-chart-radars .bb-levels polygon { + fill: none; + stroke: #848282; + stroke-width: .5px; } + +.bb-chart-radars .bb-levels text { + fill: #848282; } + +.bb-chart-radars .bb-axis line { + stroke: #848282; + stroke-width: .5px; } + +.bb-chart-radars .bb-axis text { + font-size: 1.15em; + cursor: default; } + +.bb-chart-radars .bb-shapes polygon { + fill-opacity: .2; + stroke-width: 1px; } + +/*-- Button --*/ +.bb-button { + position: absolute; + top: 10px; + right: 10px; } + .bb-button .bb-zoom-reset { + border: solid 1px #ccc; + background-color: #fff; + padding: 5px; + border-radius: 5px; + cursor: pointer; } + diff --git a/release/3.12.4/dist/theme/insight.min.css b/release/3.12.4/dist/theme/insight.min.css new file mode 100644 index 000000000..123f3a93a --- /dev/null +++ b/release/3.12.4/dist/theme/insight.min.css @@ -0,0 +1,9 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */.bb-color-pattern{background-image:url(#00c73c;#fa7171;#2ad0ff;#7294ce;#e3e448;#cc7e6e;#fb6ccf;#c98dff;#4aea99;#bbbbbb;)}.bb svg{font-size:12px;font-family:sans-serif,Arial,nanumgothic,Dotum;line-height:1}.bb path,.bb line{fill:none;stroke:#c4c4c4}.bb text,.bb .bb-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:#555;font-size:11px}.bb-legend-item-title,.bb-xgrid-focus,.bb-ygrid-focus,.bb-ygrid{shape-rendering:crispEdges}.bb-chart-arcs .bb-needle{fill:#000}.bb-chart-funnels path{stroke-width:0}.bb-chart-funnels+.bb-chart-texts text{fill:#fff}.bb-axis{shape-rendering:crispEdges}.bb-axis .bb-axis-x-tooltip,.bb-axis .bb-axis-y-tooltip,.bb-axis .bb-axis-y2-tooltip{font-size:.9em;fill:#fff;white-space:nowrap}.bb-axis-y text,.bb-axis-y2 text{fill:#737373}.bb-event-rects{fill-opacity:1!important}.bb-event-rects .bb-event-rect{fill:transparent}.bb-event-rects .bb-event-rect._active_{fill:#27c9030d}.tick._active_ text{fill:#00c83c!important}.bb-grid{pointer-events:none}.bb-grid line{stroke:#f1f1f1}.bb-xgrid-focus line,.bb-ygrid-focus line{stroke:#ddd}.bb-text.bb-empty{fill:#767676}.bb-line{stroke-width:1px}.bb-circle._expanded_{fill:#fff!important;stroke-width:2px;stroke:red}rect.bb-circle._expanded_,use.bb-circle._expanded_{stroke-width:1px}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:0}.bb-bar._expanded_{fill-opacity:.75}.bb-candlestick{stroke-width:1px}.bb-candlestick._expanded_{fill-opacity:.75}.bb-target.bb-focused,.bb-circles.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step,.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused,.bb-circles.bb-defocused{opacity:.3!important}.bb-target.bb-defocused .text-overlapping,.bb-circles.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#4682b4}.bb-region rect{fill-opacity:.1}.bb-region.selected rect{fill:#27c903}.bb-zoom-brush,.bb-brush .extent{fill-opacity:.1}.bb-legend-item{user-select:none}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.bb-title{font-size:14px}.bb-chart-treemaps rect{stroke:#fff;stroke-width:1px}.bb-tooltip-container{z-index:10;font-family:sans-serif,Arial,nanumgothic,Dotum;user-select:none}.bb-tooltip{border-collapse:separate;border-spacing:0;empty-cells:show;border:1px solid #999;background-color:#fff;text-align:left;font-size:11px;white-space:nowrap}.bb-tooltip th{font-size:12px;padding:4px 8px;text-align:left;border-bottom:solid 1px #eee}.bb-tooltip td{padding:4px 6px;background-color:#fff}.bb-tooltip td:first-child{padding-left:8px}.bb-tooltip td:last-child{padding-right:8px}.bb-tooltip td>span,.bb-tooltip td>svg{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:5px;vertical-align:middle}.bb-tooltip td.value{border-left:1px solid transparent}.bb-tooltip .bb-tooltip-title{display:inline-block;color:#aaa;line-height:20px}.bb-tooltip .bb-tooltip-detail table{border-collapse:collapse;border-spacing:0}.bb-tooltip .bb-tooltip-detail .bb-tooltip-name,.bb-tooltip .bb-tooltip-detail .bb-tooltip-value{font-size:11px;line-height:13px;padding:4px 0 3px;color:#444;text-align:left;font-weight:400}.bb-tooltip .bb-tooltip-detail .bb-tooltip-value{padding-left:5px;font-weight:800;font-size:12px}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}text.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:none}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-min,.bb-chart-arcs .bb-chart-arcs-gauge-max{fill:#777}.bb-chart-arcs .bb-chart-arcs-title{font-size:16px!important;fill:#000;font-weight:600}.bb-chart-arcs path.empty{fill:#eaeaea;stroke-width:0}.bb-chart-arcs .bb-levels circle{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-arcs .bb-levels text{fill:#848282}.bb-chart-arc .bb-gauge-value{fill:#000}.bb-chart-arc path{stroke:#fff}.bb-chart-arc rect{stroke:#fff;stroke-width:1}.bb-chart-arc text{fill:#fff;font-size:13px}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#848282}.bb-chart-radars .bb-axis line{stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-axis text{font-size:1.15em;cursor:default}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:1px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{border:solid 1px #ccc;background-color:#fff;padding:5px;border-radius:5px;cursor:pointer} diff --git a/release/3.12.4/dist/theme/modern.css b/release/3.12.4/dist/theme/modern.css new file mode 100644 index 000000000..b904b54a0 --- /dev/null +++ b/release/3.12.4/dist/theme/modern.css @@ -0,0 +1,317 @@ +/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */ +@charset "UTF-8"; +/*-- Insight Theme --*/ +/*-- Default color pattern --*/ +.bb-color-pattern { + background-image: url("#7ea9fa;#ffcd1e;#d33043;#41c464;#c86b74;#006bc2;#2a7e41;#f27c00;#c159ff;#bed017;"); } + +/*-- Chart --*/ +.bb svg { + font-size: 12px; + font-family: -apple-system, "system-ui", "Noto Sans", "Malgun Gothic", "맑은 고딕", helvetica, "Apple SD Gothic Neo", sans-serif; + line-height: 1; } + +.bb path, .bb line { + fill: none; + stroke: #cecece; } + +.bb text, .bb .bb-button { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + fill: #555; + font-size: 10.5px; } + +.bb-legend-item-title, +.bb-xgrid-focus, +.bb-ygrid-focus, +.bb-ygrid { + shape-rendering: crispEdges; } + +.bb-chart-arcs .bb-needle { + fill: #000; } + +/*-- Funnel --*/ +.bb-chart-funnels path { + stroke-width: 0; } + +.bb-chart-funnels + .bb-chart-texts text { + fill: #fff; } + +/*-- Axis --*/ +.bb-axis { + shape-rendering: crispEdges; } + .bb-axis .bb-axis-x-tooltip, .bb-axis .bb-axis-y-tooltip, .bb-axis .bb-axis-y2-tooltip { + font-size: 0.9em; + fill: #fff; + white-space: nowrap; } + +.bb-axis-y text, .bb-axis-y2 text { + fill: #737373; } + +.bb-event-rects { + fill-opacity: 1 !important; } + .bb-event-rects .bb-event-rect { + fill: transparent; } + .bb-event-rects .bb-event-rect._active_ { + fill: rgba(39, 201, 3, 0.05); } + +.tick._active_ text { + fill: #00c83c !important; } + +/*-- Grid --*/ +.bb-grid { + pointer-events: none; } + .bb-grid line { + stroke: #f1f1f1; } + +.bb-xgrid-focus line, .bb-ygrid-focus line { + stroke: #d2bad8; } + +/*-- Text on Chart --*/ +.bb-text.bb-empty { + fill: #767676; } + +/*-- Line --*/ +.bb-line { + stroke-width: 1px; } + +/*-- Point --*/ +.bb-circle._expanded_ { + stroke-width: 2px; + stroke: red; } + +rect.bb-circle._expanded_, use.bb-circle._expanded_ { + stroke-width: 1px; } + +.bb-selected-circle { + fill: white; + stroke-width: 2px; } + +/*-- Bar --*/ +.bb-bar { + stroke-width: 0; } + .bb-bar._expanded_ { + fill-opacity: 0.75; } + +/*-- Candlestick --*/ +.bb-candlestick { + stroke-width: 1px; } + .bb-candlestick._expanded_ { + fill-opacity: 0.75; } + +/*-- Focus --*/ +.bb-target.bb-focused, .bb-circles.bb-focused { + opacity: 1; } + .bb-target.bb-focused path.bb-line, .bb-target.bb-focused path.bb-step, .bb-circles.bb-focused path.bb-line, .bb-circles.bb-focused path.bb-step { + stroke-width: 2px; } + +.bb-target.bb-defocused, .bb-circles.bb-defocused { + opacity: 0.3 !important; } + .bb-target.bb-defocused .text-overlapping, .bb-circles.bb-defocused .text-overlapping { + opacity: .05 !important; } + +/*-- Region --*/ +.bb-region { + fill: #71808d; } + .bb-region rect { + fill-opacity: 0.1; } + .bb-region.selected rect { + fill: #27c903; } + +/*-- Zoom region --*/ +.bb-zoom-brush { + fill-opacity: .1; + fill: #838181; } + +/*-- Brush --*/ +.bb-brush .extent { + fill-opacity: 0.1; } + +.bb-brush .selection { + fill: #838181; + fill-opacity: 0.2; } + +.bb-brush path { + stroke: #838181; } + +/*-- Select - Drag --*/ +/*-- Legend --*/ +.bb-legend-item { + user-select: none; } + .bb-legend-item line.bb-legend-item-tile { + stroke-linecap: round; + transform: translate(7px, 1px); + stroke-dasharray: 1 20; } + +.bb-legend-item-hidden { + opacity: 0.15; } + +.bb-legend-background { + opacity: 0.75; + fill: white; + stroke: lightgray; + stroke-width: 1; } + +/*-- Title --*/ +.bb-title { + font-size: 14px; } + +/*-- Treemap --*/ +.bb-chart-treemaps rect { + stroke: #000; + stroke-width: 0.5px; } + +/*-- Tooltip --*/ +.bb-tooltip-container { + z-index: 10; + font-family: -apple-system, "system-ui", "Noto Sans", "Malgun Gothic", "맑은 고딕", helvetica, "Apple SD Gothic Neo", sans-serif; + user-select: none; } + +.bb-tooltip { + border-collapse: separate; + border-spacing: 0; + empty-cells: show; + border: 1px solid #999; + color: #fff; + border-radius: 5px; + background-color: #404244; + text-align: left; + font-size: 11px; + white-space: nowrap; + opacity: 0.9; } + .bb-tooltip th { + font-size: 11px; + padding: 3px 6px 0 6px; + text-align: left; } + .bb-tooltip td { + padding: 3px; } + .bb-tooltip td:first-child { + padding-left: 7px; } + .bb-tooltip td:last-child { + padding-right: 8px; } + .bb-tooltip td > span, .bb-tooltip td > svg { + display: inline-block; + width: 7px; + height: 7px; + margin-right: 6px; + border-radius: 5px; + vertical-align: middle; } + .bb-tooltip td.value { + border-left: 1px solid transparent; + text-align: right; } + .bb-tooltip .bb-tooltip-title { + display: inline-block; + color: #aaa; + line-height: 20px; } + .bb-tooltip .bb-tooltip-detail table { + border-collapse: collapse; + border-spacing: 0; } + .bb-tooltip .bb-tooltip-detail .bb-tooltip-name, .bb-tooltip .bb-tooltip-detail .bb-tooltip-value { + font-size: 11px; + line-height: 13px; + padding: 4px 0 3px; + color: #444; + text-align: left; + font-weight: normal; } + .bb-tooltip .bb-tooltip-detail .bb-tooltip-value { + padding-left: 5px; + font-weight: 800; + font-size: 12px; } + +/*-- Area --*/ +.bb-area { + stroke-width: 0; + opacity: 0.2; } + +/*-- Arc --*/ +.bb-chart-arcs-title { + dominant-baseline: middle; + font-size: 1.3em; } + +text.bb-chart-arcs-gauge-title { + dominant-baseline: middle; + font-size: 2.7em; } + +.bb-chart-arcs { + /*-- Polar --*/ } + .bb-chart-arcs .bb-chart-arcs-background { + fill: #e0e0e0; + stroke: #ccc; } + .bb-chart-arcs .bb-chart-arcs-gauge-unit { + fill: #000; + font-size: 16px; } + .bb-chart-arcs .bb-chart-arcs-gauge-min, .bb-chart-arcs .bb-chart-arcs-gauge-max { + fill: #777; } + .bb-chart-arcs .bb-chart-arcs-title { + font-size: 1.8em; + fill: #000; + font-weight: 600; } + .bb-chart-arcs path.empty { + fill: #eaeaea; + stroke-width: 0; } + .bb-chart-arcs .bb-levels circle { + fill: none; + stroke: #cecece; + stroke-width: .5px; } + .bb-chart-arcs .bb-levels text { + fill: #848282; } + +.bb-chart-arc .bb-gauge-value { + fill: #000; } + +.bb-chart-arc path { + stroke: #fff; } + +.bb-chart-arc rect { + stroke: #fff; + stroke-width: 1; } + +.bb-chart-arc text { + fill: #fff; + font-size: 11px; } + +/*-- Radar --*/ +.bb-chart-radars .bb-levels polygon { + fill: none; + stroke: #cecece; + stroke-width: .5px; } + +.bb-chart-radars .bb-levels text { + fill: #848282; } + +.bb-chart-radars .bb-axis line { + stroke: #cecece; + stroke-width: .5px; } + +.bb-chart-radars .bb-axis text { + font-size: 1.15em; + cursor: default; } + +.bb-chart-radars .bb-shapes polygon { + fill-opacity: .2; + stroke-width: 1px; } + +/*-- Button --*/ +.bb-button { + position: absolute; + top: 10px; + right: 10px; } + .bb-button .bb-zoom-reset { + border: 1px solid #999; + background-color: #404244; + color: #fff; + opacity: 0.9; + padding: 5px; + border-radius: 5px; + cursor: pointer; } + diff --git a/release/3.12.4/dist/theme/modern.min.css b/release/3.12.4/dist/theme/modern.min.css new file mode 100644 index 000000000..015fb467e --- /dev/null +++ b/release/3.12.4/dist/theme/modern.min.css @@ -0,0 +1,9 @@ +@charset "UTF-8";/*! + * Copyright (c) 2017 ~ present NAVER Corp. + * billboard.js project is licensed under the MIT license + * + * billboard.js, JavaScript chart library + * https://naver.github.io/billboard.js/ + * + * @version 3.12.4 + */.bb-color-pattern{background-image:url(#7ea9fa;#ffcd1e;#d33043;#41c464;#c86b74;#006bc2;#2a7e41;#f27c00;#c159ff;#bed017;)}.bb svg{font-size:12px;font-family:-apple-system,"system-ui",Noto Sans,Malgun Gothic,\b9d1\c740 \ace0\b515,helvetica,Apple SD Gothic Neo,sans-serif;line-height:1}.bb path,.bb line{fill:none;stroke:#cecece}.bb text,.bb .bb-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:#555;font-size:10.5px}.bb-legend-item-title,.bb-xgrid-focus,.bb-ygrid-focus,.bb-ygrid{shape-rendering:crispEdges}.bb-chart-arcs .bb-needle{fill:#000}.bb-chart-funnels path{stroke-width:0}.bb-chart-funnels+.bb-chart-texts text{fill:#fff}.bb-axis{shape-rendering:crispEdges}.bb-axis .bb-axis-x-tooltip,.bb-axis .bb-axis-y-tooltip,.bb-axis .bb-axis-y2-tooltip{font-size:.9em;fill:#fff;white-space:nowrap}.bb-axis-y text,.bb-axis-y2 text{fill:#737373}.bb-event-rects{fill-opacity:1!important}.bb-event-rects .bb-event-rect{fill:transparent}.bb-event-rects .bb-event-rect._active_{fill:#27c9030d}.tick._active_ text{fill:#00c83c!important}.bb-grid{pointer-events:none}.bb-grid line{stroke:#f1f1f1}.bb-xgrid-focus line,.bb-ygrid-focus line{stroke:#d2bad8}.bb-text.bb-empty{fill:#767676}.bb-line{stroke-width:1px}.bb-circle._expanded_{stroke-width:2px;stroke:red}rect.bb-circle._expanded_,use.bb-circle._expanded_{stroke-width:1px}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:0}.bb-bar._expanded_{fill-opacity:.75}.bb-candlestick{stroke-width:1px}.bb-candlestick._expanded_{fill-opacity:.75}.bb-target.bb-focused,.bb-circles.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step,.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused,.bb-circles.bb-defocused{opacity:.3!important}.bb-target.bb-defocused .text-overlapping,.bb-circles.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#71808d}.bb-region rect{fill-opacity:.1}.bb-region.selected rect{fill:#27c903}.bb-zoom-brush{fill-opacity:.1;fill:#838181}.bb-brush .extent{fill-opacity:.1}.bb-brush .selection{fill:#838181;fill-opacity:.2}.bb-brush path{stroke:#838181}.bb-legend-item{user-select:none}.bb-legend-item line.bb-legend-item-tile{stroke-linecap:round;transform:translate(7px,1px);stroke-dasharray:1 20}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.bb-title{font-size:14px}.bb-chart-treemaps rect{stroke:#000;stroke-width:.5px}.bb-tooltip-container{z-index:10;font-family:-apple-system,"system-ui",Noto Sans,Malgun Gothic,\b9d1\c740 \ace0\b515,helvetica,Apple SD Gothic Neo,sans-serif;user-select:none}.bb-tooltip{border-collapse:separate;border-spacing:0;empty-cells:show;border:1px solid #999;color:#fff;border-radius:5px;background-color:#404244;text-align:left;font-size:11px;white-space:nowrap;opacity:.9}.bb-tooltip th{font-size:11px;padding:3px 6px 0;text-align:left}.bb-tooltip td{padding:3px}.bb-tooltip td:first-child{padding-left:7px}.bb-tooltip td:last-child{padding-right:8px}.bb-tooltip td>span,.bb-tooltip td>svg{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:5px;vertical-align:middle}.bb-tooltip td.value{border-left:1px solid transparent;text-align:right}.bb-tooltip .bb-tooltip-title{display:inline-block;color:#aaa;line-height:20px}.bb-tooltip .bb-tooltip-detail table{border-collapse:collapse;border-spacing:0}.bb-tooltip .bb-tooltip-detail .bb-tooltip-name,.bb-tooltip .bb-tooltip-detail .bb-tooltip-value{font-size:11px;line-height:13px;padding:4px 0 3px;color:#444;text-align:left;font-weight:400}.bb-tooltip .bb-tooltip-detail .bb-tooltip-value{padding-left:5px;font-weight:800;font-size:12px}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}text.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:#ccc}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-min,.bb-chart-arcs .bb-chart-arcs-gauge-max{fill:#777}.bb-chart-arcs .bb-chart-arcs-title{font-size:1.8em;fill:#000;font-weight:600}.bb-chart-arcs path.empty{fill:#eaeaea;stroke-width:0}.bb-chart-arcs .bb-levels circle{fill:none;stroke:#cecece;stroke-width:.5px}.bb-chart-arcs .bb-levels text{fill:#848282}.bb-chart-arc .bb-gauge-value{fill:#000}.bb-chart-arc path{stroke:#fff}.bb-chart-arc rect{stroke:#fff;stroke-width:1}.bb-chart-arc text{fill:#fff;font-size:11px}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#cecece;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#848282}.bb-chart-radars .bb-axis line{stroke:#cecece;stroke-width:.5px}.bb-chart-radars .bb-axis text{font-size:1.15em;cursor:default}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:1px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{border:1px solid #999;background-color:#404244;color:#fff;opacity:.9;padding:5px;border-radius:5px;cursor:pointer} diff --git a/release/3.12.4/doc/Chart.html b/release/3.12.4/doc/Chart.html new file mode 100644 index 000000000..35896146e --- /dev/null +++ b/release/3.12.4/doc/Chart.html @@ -0,0 +1,11849 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + + <meta charset="utf-8"> + <title>Chart - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart

+ + + + + + + +
+ +
+ +

+ + Chart + +

+ + +
+ +
+ +
+ + + + + +

new Chart()

+ + + + + + +
+ +
Description:
+
  • Main chart class.

    +
      +
    • Note: Instantiated via bb.generate().
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + + + + + + + + + +
Example
+ +
var chart = bb.generate({
+ data: {
+   columns: [
+       ["x", "2015-11-02", "2015-12-01", "2016-01-01", "2016-02-01", "2016-03-01"],
+       ["count1", 11, 8, 7, 6, 5 ],
+       ["count2", 9, 3, 6, 2, 8 ]
+  ]}
+}
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +

Members

+ + + +

(static) $ :object

+ + + + + +
+ +
Description:
+
  • Access instance's primary node elements

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
$ + + +object + + + + +

Access instance's primary node elements

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
chart + + +d3.selection + + + + +

Wrapper element

svg + + +d3.selection + + + + +

Main svg element

defs + + +d3.selection + + + + +

Definition element

main + + +d3.selection + + + + +

Main grouping element

needle + + +d3.selection + + + + +

Needle element

+
    +
  • NOTE: +
      +
    • The element will have bb-needle as class name.
    • +
    • Will provide speical helper .updateHelper(value: number, updateConfig: boolean) method to facilitate needle position update.
    • +
    +
  • +
tooltip + + +d3.selection + + + + +

Tooltip element

legend + + +d3.selection + + + + +

Legend element

title + + +d3.selection + + + + +

Title element

grid + + +d3.selection + + + + +

Grid element

arc + + +d3.selection + + + + +

Arc element

circles + + +d3.selection + + + + +

Data point circle elements

bar + + +object + + + + +

Bar element object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
bars + + +d3.selection + + + + +

Bar elements

+ +
candlestick + + +d3.selection + + + + +

Candlestick elements

line + + +object + + + + +

Line element object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
lines + + +d3.selection + + + + +

Line elements

areas + + +d3.selection + + + + +

Areas elements

+ +
text + + +object + + + + +

Text element object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
texts + + +d3.selection + + + + +

Data label text elements

+ +
+ +
+ + + + + + +
+

Access instance's primary node elements

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Examples
+ +
const chart = bb.generate({ ... });
+
+chart.$.chart; // wrapper element
+chart.$.line.circles;  // all data point circle elements
+ +
// Update arc needle position
+const chart = bb.generate({
+  data: {
+    type: "donut"
+  },
+  arc: {
+    needle: {
+      show: true,
+      ...
+    }
+  }
+});
+
+chart.$.needle.updateHelper(70);  // update needle position to point value 70.
+
+// update needle position to point value 70 and the config value.
+// NOTE: updating config value, will update needle pointer initial value too.
+chart.$.needle.updateHelper(70, true);
+
+// update needle point position every 1 second
+let i = 0;
+setInterval(() => {
+  chart.$.needle.updateHelper(i += 10);
+}, 1000)
+ + + + + +

(static) plugins :Array

+ + + + + +
+ +
Description:
+
  • Plugin instance array

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+

Plugin instance array

+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
var chart = bb.generate({
+    ...
+    plugins: [
+       new bb.plugin.stanford({ ... }),
+       new PluginA()
+    ]
+ });
+
+ chart.plugins; // [Stanford, PluginA] - instance array
+ + + + + + + +

Methods

+ + + + + + +

axis․labels(labels) → {object|undefined}

+ + + + + + +
+ +
Description:
+
  • Get and set axis labels.

    +
      +
    • NOTE: Only applicable for chart types which has x and y axes.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Update axis' label
+chart.axis.labels({
+  x: "New X Axis Label",
+  y: "New Y Axis Label",
+  y2: "New Y2 Axis Label"
+});
+
+chart.axis.labels();
+// --> {
+//  x: "New X Axis Label",
+//  y: "New Y Axis Label",
+//  y2: "New Y2 Axis Label"
+// }
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
labels + + +object + + + + +

specified axis' label to be updated.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
x + + +string + + + + + + + <optional>
+ + + + + +

x Axis string

y + + +string + + + + + + + <optional>
+ + + + + +

y Axis string

y2 + + +string + + + + + + + <optional>
+ + + + + +

y2 Axis string

+ +
+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

axis labels text object

+
+ + + +
+
+ Type +
+
+ +object +| + +undefined + + + +
+
+ + + + + + + + + + +

axis․max(max) → {object|undefined}

+ + + + + + +
+ +
Description:
+
  • Get and set axis max value.

    +
      +
    • NOTE: Only applicable for chart types which has x and y axes.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Update axis' label
+chart.axis.max({
+   x: 100,
+   y: 1000,
+   y2: 10000
+});
+
+// To unset specific axis max, set false to each of them.
+chart.axis.max({
+  x: false,
+  y: false,
+  y2: false
+});
+
+// shorthand (only affects y and y2 axis)
+chart.axis.max(10);
+chart.axis.max(false);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
max + + +object + + + + +

If max is given, specified axis' max value will be updated.
+If no argument is given, the max values set on generating option for each axis will be returned. +If not set any max values on generation, it will return undefined.
+To unset specific axis max, set false to each of them.

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +object +| + +undefined + + + +
+
+ + + + + + + + + + +

axis․min(min) → {object|undefined}

+ + + + + + +
+ +
Description:
+
  • Get and set axis min value.

    +
      +
    • NOTE: Only applicable for chart types which has x and y axes.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Update axis' min
+chart.axis.min({
+  x: -10,
+  y: 1000,
+  y2: 100
+});
+
+// To unset specific axis min, set false to each of them.
+chart.axis.min({
+  x: false,
+  y: false,
+  y2: false
+});
+
+// shorthand (only affects y and y2 axis)
+chart.axis.min(-50);
+chart.axis.min(false);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
min + + +object + + + + +

If min is given, specified axis' min value will be updated.
+If no argument is given, the min values set on generating option for each axis will be returned. +If not set any min values on generation, it will return undefined.
+To unset specific axis max, set false to each of them.

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +object +| + +undefined + + + +
+
+ + + + + + + + + + +

axis․range(range) → {object|undefined}

+ + + + + + +
+ +
Description:
+
  • Get and set axis min and max value.

    +
      +
    • NOTE: Only applicable for chart types which has x and y axes.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Update axis' label
+chart.axis.range({
+  min: {
+    x: -10,
+    y: -1000,
+    y2: -10000
+  },
+  max: {
+    x: 100,
+    y: 1000,
+    y2: 10000
+  },
+});
+
+// To unset specific axis max, set false to each of them.
+chart.axis.range({
+  min: {
+    x: false,
+    y: false,
+    y2: false
+  },
+  max: {
+    x: false,
+    y: false,
+    y2: false
+  },
+});
+
+// shorthand (only affects y and y2 axis)
+chart.axis.range({ min: -50, max: 1000 });
+chart.axis.range({ min: false, max: false });
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
range + + +object + + + + +

If range is given, specified axis' min and max value will be updated. +If no argument is given, the current min and max values for each axis will be returned.
+To unset specific axis max, set false to each of them.

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +object +| + +undefined + + + +
+
+ + + + + + + + + + +

categories(categories) → {Array}

+ + + + + + +
+ +
Description:
+
  • Set or get category names on category axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
chart.categories([
+     "Category 1", "Category 2", ...
+]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
categories + + +Array + + + + +

This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required.

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

category(i, category) → {string}

+ + + + + + +
+ +
Description:
+
  • Set specified category name on category axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
chart.category(2, "Category 3");
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
i + + +number + + + + +

index of category to be changed

category + + +string + + + + +

category value to be changed

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + + + + + + +

color(id) → {string}

+ + + + + + +
+ +
Description:
+
  • Get the color

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
chart.color("data1");
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
id + + +string + + + + +

id to get the color

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + + + + + + +

config(name, valueopt, redrawopt) → {*}

+ + + + + + +
+ +
Description:
+
  • Get or set config option value.

    +
      +
    • NOTE
    • +
    • The option key name must be specified as the last level.
    • +
    • when no argument is given, will return all specified generation options object only. (will exclude any other options not specified at the initialization)
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Getter
+chart.config("gauge.max");
+
+// Getter specified with top level key name will not work.
+// The option key name must be specified as the last level.
+// chart.config("gauge"); // will not work
+
+// without any arguments, it returns generation config object
+chart.config();  // {data: { ... }, axis: { ... }, ...}
+
+// Setter
+chart.config("gauge.max", 100);
+
+// Setter specified with top level key name will not work.
+// The option key name must be specified as the last level.
+// chart.config("gauge", {min: 10, max: 20}); // will not work
+
+// Setter & redraw with the new option
+chart.config("gauge.max", 100, true);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
name + + +string + + + + + + + + + + +

The option key name.

value + + +* + + + + + + + <optional>
+ + + + + +

The value accepted for indicated option.

redraw + + +boolean + + + + + + + <optional>
+ + + + + +

Set to redraw with the new option changes.

+
    +
  • NOTE: Doesn't guarantee work in all circumstances. It can be applied for limited options only.
  • +
+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +* + + + +
+
+ + + + + + + + + + +

data(targetIds) → {Array}

+ + + + + + +
+ +
Description:
+
  • Get data loaded in the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Get only data1 data
+chart.data("data1");
+// --> [{id: "data1", id_org: "data1", values: Array(6)}, ...]
+
+// Get data1 and data2 data
+chart.data(["data1", "data2"]);
+
+// Get all data
+chart.data();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
targetIds + + +string +| + +Array + + + + +

If this argument is given, this API returns the specified target data. If this argument is not given, all of data will be returned.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

Data objects

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

data․axes(axes) → {object}

+ + + + + + +
+ +
Description:
+
  • Get and set axes of the data loaded in the chart.

    +
      +
    • NOTE: If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Get current axes
+chart.data.axes();
+// --> {data1: "y"}
+
+// Update axes
+chart.data.axes({
+ data1: "y",
+ data2: "y2"
+});
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
axes + + +object + + + + +

If this argument is given, the axes of data will be updated. If not given, the current axes will be returned. The format of this argument is the same as

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

Corresponding axes value for data, if specified axes value.

+
+ + + +
+
+ Type +
+
+ +object + + + +
+
+ + + + + + + + + + +

data․colors(colors) → {object}

+ + + + + + +
+ +
Description:
+
  • Get and set colors of the data loaded in the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Get current colors
+chart.data.colors();
+// --> {data1: "#00c73c", data2: "#fa7171"}
+
+// Update colors
+chart.data.colors({
+ data1: "#FFFFFF",
+ data2: "#000000"
+});
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
colors + + +object + + + + +

If this argument is given, the colors of data will be updated. If not given, the current colors will be returned. The format of this argument is the same as data.colors.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

Corresponding data color value according its key value.

+
+ + + +
+
+ Type +
+
+ +object + + + +
+
+ + + + + + + + + + +

data․max() → {Array}

+ + + + + + +
+ +
Description:
+
  • Get the maximum data value bound to the chart

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Get current axes
+chart.data.max();
+// --> [{x: 3, value: 400, id: "data1", index: 3}, ...]
+ + + + + + + + + + + + + + + + + + +
Returns:
+ + +
+

Data objects

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

data․min() → {Array}

+ + + + + + +
+ +
Description:
+
  • Get the minimum data value bound to the chart

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Get current axes
+chart.data.min();
+// --> [{x: 0, value: 30, id: "data1", index: 0}, ...]
+ + + + + + + + + + + + + + + + + + +
Returns:
+ + +
+

Data objects

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

data․names(names) → {object}

+ + + + + + +
+ +
Description:
+
  • Get and set names of the data loaded in the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Get current names
+chart.data.names();
+// --> {data1: "test1", data2: "test2"}
+
+// Update names
+chart.data.names({
+ data1: "New Name 1",
+ data2: "New Name 2"
+});
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
names + + +object + + + + +

If this argument is given, the names of data will be updated. If not given, the current names will be returned. The format of this argument is the same as data.names.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

Corresponding names according its key value, if specified names values.

+
+ + + +
+
+ Type +
+
+ +object + + + +
+
+ + + + + + + + + + +

data․shown(targetIds) → {Array}

+ + + + + + +
+ +
Description:
+
  • Get data shown in the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Get shown data by filtering to include only data1 data
+chart.data.shown("data1");
+// --> [{id: "data1", id_org: "data1", values: Array(6)}, ...]
+
+// Get shown data by filtering to include data1 and data2 data
+chart.data.shown(["data1", "data2"]);
+
+// Get all shown data
+chart.data.shown();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
targetIds + + +string +| + +Array + + + + +

If this argument is given, this API filters the data with specified target ids. If this argument is not given, all shown data will be returned.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

Data objects

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

data․values(targetIds, flatopt) → {Array}

+ + + + + + +
+ +
Description:
+
  • Get values of the data loaded in the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Get data1 values
+chart.data.values("data1");
+// --> [10, 20, 30, 40]
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
targetIds + + +string +| + +Array +| + +null + + + + + + + + + + + + +

This API returns the values of specified target. If this argument is not given, null will be retruned

flat + + +boolean + + + + + + + <optional>
+ + + + + +
+ + true + +

Get flatten values

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

Data values

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

defocus(targetIdsValue)

+ + + + + + +
+ +
Description:
+
  • This API fades out specified targets and reverts the others.

    +You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be faded out.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// data1 will be faded out and the others will be reverted.
+chart.defocus("data1");
+
+// data1 and data2 will be faded out and the others will be reverted.
+chart.defocus(["data1", "data2"]);
+
+// all targets will be faded out.
+chart.defocus();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
targetIdsValue + + +string +| + +Array + + + + +

Target ids to be faded out.

+ + + + + + + + + + + + + + + + + + + + + + + + +

destroy() → {null}

+ + + + + + +
+ +
Description:
+
  • Reset the chart object and remove element and events completely.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
chart.destroy();
+ + + + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +null + + + +
+
+ + + + + + + + + + +

export(option, callbackopt) → {string}

+ + + + + + +
+ +
Description:
+
  • Export chart as an image.

    +
      +
    • NOTE: +
        +
      • IE11 and below not work properly due to the lack of the feature(foreignObject) support
      • +
      • Every style applied to the chart & the basic CSS file(ex. billboard.css) should be at same domain as API call context to get correct styled export image.
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
chart.export();
+ // --> "data:image/svg+xml;base64,PHN..."
+
+ // Initialize the download automatically
+ chart.export({mimeType: "image/png"}, dataUrl => {
+    const link = document.createElement("a");
+
+    link.download = `${Date.now()}.png`;
+    link.href = dataUrl;
+    link.innerHTML = "Download chart as image";
+
+    document.body.appendChild(link);
+ });
+
+ // Resize the exported image
+ chart.export(
+   {
+     width: 800,
+     height: 600,
+     preserveAspectRatio: false,
+     preserveFontStyle: false,
+     mimeType: "image/png"
+   },
+   dataUrl => { ... }
+ );
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
option + + +object + + + + + + + + + + +

Export option

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
mimeType + + +string + + + + + + + <optional>
+ + + + + +
+ + "image/png" + +

The desired output image format. (ex. 'image/png' for png, 'image/jpeg' for jpeg format)

width + + +number + + + + + + + <optional>
+ + + + + +
+ + {currentWidth} + +

width

height + + +number + + + + + + + <optional>
+ + + + + +
+ + {currentHeigth} + +

height

preserveAspectRatio + + +boolean + + + + + + + <optional>
+ + + + + +
+ + true + +

Preserve aspect ratio on given size

preserveFontStyle + + +boolean + + + + + + + <optional>
+ + + + + +
+ + false + +

Preserve font style(font-family).
+NOTE:

+
    +
  • This option is useful when outlink web font style's font-family are applied to chart's text element.
  • +
  • Text element's position(especially "transformed") can't be preserved correctly according the page's layout condition.
  • +
  • If need to preserve accurate text position, embed the web font data within to the page and set preserveFontStyle=false. + +
  • +
+ +
callback + + +function + + + + + + + <optional>
+ + + + + +

The callback to be invoked when export is ready.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

dataURI

+
+ + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + + + + + + +

flow(args)

+ + + + + + +
+ +
Description:
+
  • Flow data to the chart.

    +By this API, you can append new data points to the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// 2 data points will be apprended to the tail and popped from the head.
+// After that, 4 data points will be appended and no data points will be poppoed.
+chart.flow({
+ columns: [
+   ["x", "2018-01-11", "2018-01-21"],
+   ["data1", 500, 200],
+   ["data2", 100, 300],
+   ["data3", 200, 120]
+ ],
+ to: "2013-01-11",
+ done: function () {
+   chart.flow({
+     columns: [
+       ["x", "2018-02-11", "2018-02-12", "2018-02-13", "2018-02-14"],
+       ["data1", 200, 300, 100, 250],
+       ["data2", 100, 90, 40, 120],
+       ["data3", 100, 100, 300, 500]
+     ],
+     length: 2,
+     duration: 1500
+   });
+ }
+});
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
args + + +object + + + + +

The object can consist with following members:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyTypeDescription
jsonObjectData as JSON format (@see data․json)
rowsArrayData in array as row format (@see data․rows)
columnsArrayData in array as column format (@see data․columns)
toStringThe lower x edge will move to that point. If not given, the lower x edge will move by the number of given data points
lengthNumberThe lower x edge will move by the number of this argument
durationNumberThe duration of the transition will be specified value. If not given, transition.duration will be used as default
doneFunctionThe specified function will be called when flow ends
+
    +
  • NOTE: +
      +
    • If json, rows and columns given, the data will be loaded.
    • +
    • If data that has the same target id is given, the chart will be appended.
    • +
    • Otherwise, new target will be added. One of these is required when calling.
    • +
    • If json specified, keys is required as well as data.json. +
        +
      • If tab isn't visible(by evaluating document.hidden), will not be executed to prevent unnecessary work.
      • +
      +
    • +
    +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + +

flush(softopt)

+ + + + + + +
+ +
Description:
+
  • Force to redraw.

    +
      +
    • NOTE: When zoom/subchart is used, the zoomed state will be resetted.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
chart.flush();
+
+// for soft redraw
+chart.flush(true);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
soft + + +boolean + + + + + + + <optional>
+ + + + + +

For soft redraw.

+ + + + + + + + + + + + + + + + + + + + + + + + +

focus(targetIdsValue)

+ + + + + + +
+ +
Description:
+
  • This API highlights specified targets and fade out the others.

    +You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be highlighted.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// data1 will be highlighted and the others will be faded out
+ chart.focus("data1");
+
+// data1 and data2 will be highlighted and the others will be faded out
+chart.focus(["data1", "data2"]);
+
+// all targets will be highlighted
+chart.focus();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
targetIdsValue + + +string +| + +Array + + + + +

Target ids to be highlighted.

+ + + + + + + + + + + + + + + + + + + + + + + + +

groups(groups) → {Array}

+ + + + + + +
+ +
Description:
+
  • Update groups for the targets.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// data1 and data2 will be a new group.
+ chart.groups([
+    ["data1", "data2"]
+ ]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
groups + + +Array + + + + +

This argument needs to be an Array that includes one or more Array that includes target ids to be grouped.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

Grouped data names array

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

hide(targetIdsValueopt, optionsopt)

+ + + + + + +
+ +
Description:
+
  • Hide data series from chart

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// hide 'data1'
+chart.hide("data1");
+
+// hide 'data1' and 'data3'
+chart.hide(["data1", "data3"]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
targetIdsValue + + +string +| + +Array + + + + + + + <optional>
+ + + + + +

The target id value.

options + + +object + + + + + + + <optional>
+ + + + + +

The object can consist with following members:

+ + + + + + + + + + + + + + + + + +
KeyTypedefaultDescription
withLegendbooleanfalsewhether or not display legend
+ + + + + + + + + + + + + + + + + + + + + + + + +

legend․hide(targetIds)

+ + + + + + +
+ +
Description:
+
  • Hide legend for each target.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Hide legend for data1.
+chart.legend.hide("data1");
+
+// Hide legend for data1 and data2.
+chart.legend.hide(["data1", "data2"]);
+
+// Hide all legend.
+chart.legend.hide();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
targetIds + + +string +| + +Array + + + + +
    +
  • If targetIds is given, specified target's legend will be hidden.
  • +
  • If only one target is the candidate, String can be passed.
  • +
  • If no argument is given, all of target's legend will be hidden.
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + +

legend․show(targetIds)

+ + + + + + +
+ +
Description:
+
  • Show legend for each target.

    +
      +
    • NOTE: Legend APIs aren't supported for treemap type.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Show legend for data1.
+chart.legend.show("data1");
+
+// Show legend for data1 and data2.
+chart.legend.show(["data1", "data2"]);
+
+// Show all legend.
+chart.legend.show();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
targetIds + + +string +| + +Array + + + + +
    +
  • If targetIds is given, specified target's legend will be shown.
  • +
  • If only one target is the candidate, String can be passed.
  • +
  • If no argument is given, all of target's legend will be shown.
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + +

load(args)

+ + + + + + +
+ +
Description:
+
  • Load data to the chart.

    +You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be toggles.

    +
      +
    • Note: +
        +
      • unload should be used if some data needs to be unloaded simultaneously. +If you call unload API soon after/before load instead of unload param, chart will not be rendered properly because of cancel of animation.
      • +
      • done will be called after data loaded, but it's not after rendering. +It's because rendering will finish after some transition and there is some time lag between loading and rendering
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + + + + + + + + + +
Examples
+ +
// Load data1 and unload data2 and data3
+chart.load({
+    columns: [
+       ["data1", 100, 200, 150, ...],
+       ...
+   ],
+   unload: ["data2", "data3"],
+   url: "...",
+   done: function() { ... }
+   resizeAfter: true  // will resize after load
+});
+ +
const chart = bb.generate({
+  data: {
+    columns: [
+      ["data1", 20, 30, 40]
+    ]
+  }
+});
+
+chart.load({
+   columns: [
+       // with 'append' option, the 'data1' will have `[20,30,40,50,60]`.
+       ["data1", 50, 60]
+   ],
+   append: true
+});
+ +
const chart = bb.generate({
+  data: {
+    x: "x",
+    xFormat: "%Y-%m-%dT%H:%M:%S",
+    columns: [
+      ["x", "2021-01-03T03:00:00", "2021-01-04T12:00:00", "2021-01-05T21:00:00"],
+      ["data1", 36, 30, 24]
+    ]
+  },
+  axis: {
+    x: {
+      type: "timeseries"
+    }
+  }
+};
+
+chart.load({
+  columns: [
+    // when existing chart has `x` value, should provide correponding 'x' value.
+    // with 'append' option, the 'data1' will have `[36,30,24,37]`.
+    ["x", "2021-02-01T08:00:00"],
+    ["data1", 37]
+  ],
+  append: true
+});
+ +
// myAPI.json
+// {
+//   "data1": [220, 240, 270, 250, 280],
+//   "data2": [180, 150, 300, 70, 120]
+// }
+
+chart.load({
+    url: './data/myAPI.json',
+    mimeType: "json",
+
+    // set request header if is needed
+    headers: {
+      "Content-Type": "text/json"
+    }
+});
+ +
chart.load({
+    data: [
+      // equivalent as: columns: [["data1", 30, 200, 100]]
+      {"data1": 30}, {"data1": 200}, {"data1": 100}
+
+      // or
+      // equivalent as: columns: [["data1", 10, 20], ["data2", 13, 30]]
+      // {"data1": 10, "data2": 13}, {"data1": 20, "data2": 30}}
+    ]
+});
+ +
chart.load({
+    json: [
+         {name: "www.site1.com", upload: 800, download: 500, total: 400},
+    ],
+    keys: {
+        x: "name",
+        value: ["upload", "download"]
+    }
+});
+ +
chart.load({
+  json: {
+      data1:[30, 20, 50, 40, 60, 50],
+      data2:[200, 130, 90, 240, 130, 220],
+  }
+});
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
args + + +object + + + + +

The object can consist with following members:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyTypeDescription
columnsArrayThe columns data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added
jsonArrayThe json data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added
rowsArrayThe rows data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added
urlstringThe data from url will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added
 
appendbooleanLoad data appending it to the current dataseries.
If the existing chart hasx value, should provide with corresponding x value for newly loaded data.
axesObjectThe axes specified by data.axes will be updated. axes must be Object that has target id as keys.
categoriesArrayThe categories specified by axis.x.categories or data.x will be updated. categories must be Array.
classesObjectThe classes specified by data.classes will be updated. classes must be Object that has target id as keys.
colorsObjectThe colors specified by data.colors will be updated. colors must be Object that has target id as keys.
dataObejctData objects to be loaded. Checkout the example.
doneFunctionThe specified function will be called after data loaded.
headersstringSet request header if loading via data.url.
@see data․headers
keysObjectChoose which JSON objects keys correspond to desired data.
NOTE: Only for JSON object given as array.
@see data․keys
mimeTypestringSet 'json' if loading JSON via url.
@see data․mimeType
namesObjectSame as data.names()
resizeAfterbooleanResize after the load. Default value is false.
- This option won't call onresize neither onresized.
- When set to 'true', will call .flush(true) at the end of load.
typestringThe type of targets will be updated.
typesObjectThe types of targets will be updated.
unloadArraySpecify the data will be unloaded before loading new data. If true given, all of data will be unloaded. If target ids given as String or Array, specified targets will be unloaded. If absent or false given, unload will not occur.
xsstringSame as data.xs option
+ + + + + + + + + + + + + + + + + + + + + + + + +

regions(regions) → {Array}

+ + + + + + +
+ +
Description:
+
  • Update regions.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Show 2 regions
+chart.regions([
+   {axis: "x", start: 5, class: "regionX"},
+   {
+     axis: "y", end: 50, class: "regionY",
+     label: {
+     	text: "Region Text",
+     	x: 5,  // position relative of the initial x coordinate
+     	y: 5,  // position relative of the initial y coordinate
+     	color: "red",  // color string
+     	rotated: true  // make text to show in vertical or horizontal
+     }
+   }
+]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
regions + + +Array + + + + +

Regions will be replaced with this argument. The format of this argument is the same as regions.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

regions

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

regions․add(regions) → {Array}

+ + + + + + +
+ +
Description:
+
  • Add new region.

    +This API adds new region instead of replacing like regions.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Add a new region
+chart.regions.add(
+   {
+     axis: "x", start: 5, class: "regionX",
+     label: {
+     	text: "Region Text",
+     	color: "red"  // color string
+     }
+   }
+);
+
+// Add new regions
+chart.regions.add([
+   {axis: "x", start: 5, class: "regionX"},
+   {
+     axis: "y", end: 50, class: "regionY",
+     label: {
+     	text: "Region Text",
+     	x: 5,  // position relative of the initial x coordinate
+     	y: 5,  // position relative of the initial y coordinate
+     	color: "red",  // color string
+     	rotated: true  // make text to show in vertical or horizontal
+     }
+   }
+]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
regions + + +Array +| + +object + + + + +

New region will be added. The format of this argument is the same as regions and it's possible to give an Object if only one region will be added.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

regions

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

regions․remove(optionsValue) → {Array}

+ + + + + + +
+ +
Description:
+
  • Remove regions.

    +This API removes regions.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// regions that have 'region-A' or 'region-B' will be removed.
+chart.regions.remove({
+  classes: [
+    "region-A", "region-B"
+  ]
+});
+
+// all of regions will be removed.
+chart.regions.remove();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
optionsValue + + +object + + + + +

This argument should include classes. If classes is given, the regions that have one of the specified classes will be removed. If args is not given, all of regions will be removed.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

regions Removed regions

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

resize(size)

+ + + + + + +
+ +
Description:
+
  • Resize the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Resize to 640x480
+chart.resize({
+   width: 640,
+   height: 480
+});
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
size + + +object + + + + +

This argument should include width and height in pixels.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
width + + +number + + + + + + + <optional>
+ + + + + +

width value

height + + +number + + + + + + + <optional>
+ + + + + +

height value

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +

revert(targetIdsValue)

+ + + + + + +
+ +
Description:
+
  • Revert focused or defocused state to initial state.

    +You can specify multiple targets by giving an array that includes id as string. If no argument is given, all of targets will be reverted.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// 'data1' will be reverted.
+chart.revert("data1");
+
+// 'data1' and 'data2' will be reverted.
+chart.revert(["data1", "data2"]);
+
+// all targets will be reverted.
+chart.revert();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
targetIdsValue + + +string +| + +Array + + + + +

Target ids to be reverted

+ + + + + + + + + + + + + + + + + + + + + + + + +

select(idsopt, indicesopt, resetOtheropt)

+ + + + + + +
+ +
Description:
+
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// select all data points
+ chart.select();
+
+ // select all from 'data2'
+ chart.select("data2");
+
+ // select all from 'data1' and 'data2'
+ chart.select(["data1", "data2"]);
+
+ // select from 'data1', indices 2 and unselect others selected
+ chart.select("data1", [2], true);
+
+ // select from 'data1', indices 0, 3 and 5
+ chart.select("data1", [0, 3, 5]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
ids + + +string +| + +Array + + + + + + + <optional>
+ + + + + +

id value to get selected.

indices + + +Array + + + + + + + <optional>
+ + + + + +

The index array of data points. If falsy value given, will select all data points.

resetOther + + +boolean + + + + + + + <optional>
+ + + + + +

Unselect already selected.

+ + + + + + + + + + + + + + + + + + + + + + + + +

selected(targetIdopt) → {Array}

+ + + + + + +
+ +
Description:
+
  • Get selected data points.

    +By this API, you can get selected data points information. To use this API, data.selection.enabled needs to be set true.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// all selected data points will be returned.
+ chart.selected();
+ // --> ex.) [{x: 1, value: 200, id: "data1", index: 1, name: "data1"}, ... ]
+
+ // all selected data points of data1 will be returned.
+ chart.selected("data1");
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
targetId + + +string + + + + + + + <optional>
+ + + + + +

You can filter the result by giving target id that you want to get. If not given, all of data points will be returned.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

dataPoint Array of the data points.
ex.) [{x: 1, value: 200, id: "data1", index: 1, name: "data1"}, ...]

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

show(targetIdsValueopt, optionsopt)

+ + + + + + +
+ +
Description:
+
  • Show data series on chart

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// show 'data1'
+chart.show("data1");
+
+// show 'data1' and 'data3'
+chart.show(["data1", "data3"]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
targetIdsValue + + +string +| + +Array + + + + + + + <optional>
+ + + + + +

The target id value.

options + + +object + + + + + + + <optional>
+ + + + + +

The object can consist with following members:

+ + + + + + + + + + + + + + + + + +
KeyTypedefaultDescription
withLegendbooleanfalsewhether or not display legend
+ + + + + + + + + + + + + + + + + + + + + + + + +

subchart(domainValue) → {Array}

+ + + + + + +
+ +
Description:
+
  • Select subchart by giving x domain range.

    +
      +
    • ℹ️ NOTE:
    • +
    • Due to the limitations of floating point precision, domain value may not be exact returning approximately values.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Specify domain for subchart selection
+ chart.subchart([1, 2]);
+
+ // Get the current subchart selection domain range
+ // Domain value may not be exact returning approximately values.
+ chart.subchart();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
domainValue + + +Array + + + + +

If domain range is given, the subchart will be seleted to the given domain. If no argument is given, the current subchart selection domain will be returned.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

domain value in array

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

subchart․hide()

+ + + + + + +
+ +
Description:
+
  • Hide generated subchart

    +
      +
    • NOTE: for ESM imports, needs to import 'subchart' exports and instantiate it by calling subchart().
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
chart.subchart.hide();
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

subchart․reset()

+ + + + + + +
+ +
Description:
+
  • Reset subchart selection

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Reset subchart selection
+chart.subchart.reset();
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

subchart․show()

+ + + + + + +
+ +
Description:
+
  • Show subchart

    +
      +
    • NOTE: for ESM imports, needs to import 'subchart' exports and instantiate it by calling subchart().
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// for ESM imports, needs to import 'subchart' and must be instantiated first to enable subchart's API.
+import {subchart} from "billboard.js";
+
+const chart = bb.generate({
+  ...
+  subchart: {
+     // need to be instantiated by calling 'subchart()'
+     enabled: subchart()
+
+     // in case don't want subchart to be shown at initialization, instantiate with '!subchart()'
+     enabled: !subchart()
+  }
+});
+
+chart.subchart.show();
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

subchart․toggle()

+ + + + + + +
+ +
Description:
+
  • Toggle the visiblity of subchart

    +
      +
    • NOTE: for ESM imports, needs to import 'subchart' exports and instantiate it by calling subchart().
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// When subchart is hidden, will be shown
+// When subchart is shown, will be hidden
+chart.subchart.toggle();
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

toggle(targetIdsopt, optionsopt)

+ + + + + + +
+ +
Description:
+
  • Toggle data series on chart. When target data is hidden, it will show. If is shown, it will hide in vice versa.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// toggle 'data1'
+chart.toggle("data1");
+
+// toggle 'data1' and 'data3'
+chart.toggle(["data1", "data3"]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
targetIds + + +string +| + +Array + + + + + + + <optional>
+ + + + + +

The target id value.

options + + +object + + + + + + + <optional>
+ + + + + +

The object can consist with following members:

+ + + + + + + + + + + + + + + + + +
KeyTypedefaultDescription
withLegendbooleanfalsewhether or not display legend
+ + + + + + + + + + + + + + + + + + + + + + + + +

tooltip․hide()

+ + + + + + +
+ +
Description:
+
  • Hide tooltip

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

tooltip․show(args)

+ + + + + + +
+ +
Description:
+
  • Show tooltip

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// show the 2nd x Axis coordinate tooltip
+ // for Arc(gauge, donut & pie) and radar type, approch showing tooltip by using "index" number.
+ chart.tooltip.show({
+   index: 1
+ });
+
+ // show tooltip for the 3rd x Axis in x:50 and y:100 coordinate of '.bb-event-rect' of the x Axis.
+ chart.tooltip.show({
+   x: 2,
+   mouse: [50, 100]
+ });
+
+ // show tooltip for timeseries x axis
+ chart.tooltip.show({
+   x: new Date("2018-01-02 00:00")
+ });
+
+ // treemap type can be shown by using "id" only.
+ chart.tooltip.show({
+   data: {
+       id: "data1"  // data id
+   }
+ });
+
+ // for Arc types, specify 'id' or 'index'
+ chart.tooltip.show({ data: { id: "data2" }});
+ chart.tooltip.show({ data: { index: 2 }});
+
+ // when data.xs is used
+ chart.tooltip.show({
+   data: {
+       x: 3,  // x Axis value
+       id: "data1",  // data id
+       value: 500  // data value
+   }
+ });
+
+ // when data.xs isn't used, but tooltip.grouped=false is set
+ chart.tooltip.show({
+   data: {
+       index: 3,  // or 'x' key value
+       id: "data1",  // data id
+       value: 500  // data value
+   }
+ });
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
args + + +object + + + + +

The object can consist with following members:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyTypeDescription
indexNumberDetermine focus by index
xNumber | DateDetermine focus by x Axis index
mouseArrayDetermine x and y coordinate value relative the targeted '.bb-event-rect' x Axis.
It should be used along with data, index or x value. The default value is set as [0,0]
dataObjectWhen data.xs option is used or tooltip.grouped set to 'false', should be used giving this param.

Key:
- x {number | Date}: x Axis value
- index {number}: x Axis index (useless for data.xs)
- id {string}: data id
- value {number}: The corresponding value for tooltip.
+ + + + + + + + + + + + + + + + + + + + + + + + +

unload(argsValue)

+ + + + + + +
+ +
Description:
+
  • Unload data to the chart.

    +You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be toggles.

    +
      +
    • Note: +If you call load API soon after/before unload, unload param of load should be used. Otherwise chart will not be rendered properly because of cancel of animation.
      +done will be called after data loaded, but it's not after rendering. It's because rendering will finish after some transition and there is some time lag between loading and rendering.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Unload data2 and data3
+ chart.unload({
+   ids: ["data2", "data3"],
+   done: function() {
+      // called after the unloaded
+   },
+   resizeAfter: true  // will resize after unload
+ });
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
argsValue + + +object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
keyTypeDescription
idsString | ArrayTarget id data to be unloaded. If not given, all data will be unloaded.
doneFuctionCallback after data is unloaded.
resizeAfterbooleanResize after the unload. Default value is false.
- This option won't call onresize neither onresized.
- When set to 'true', will call .flush(true) at the end of unload.
+ + + + + + + + + + + + + + + + + + + + + + + + +

unselect(idsopt, indicesopt)

+ + + + + + +
+ +
Description:
+
  • Set data points to be un-selected.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// unselect all data points
+ chart.unselect();
+
+ // unselect all from 'data1'
+ chart.unselect("data1");
+
+ // unselect from 'data1', indices 2
+ chart.unselect("data1", [2]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
ids + + +string +| + +Array + + + + + + + <optional>
+ + + + + +

id value to be unselected.

indices + + +Array + + + + + + + <optional>
+ + + + + +

The index array of data points. If falsy value given, will select all data points.

+ + + + + + + + + + + + + + + + + + + + + + + + +

unzoom()

+ + + + + + +
+ +
Description:
+
  • Unzoom zoomed area

    +
      +
    • NOTE: Calling .unzoom() will not trigger zoom events.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
chart.unzoom();
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

x(x) → {object}

+ + + + + + +
+ +
Description:
+
  • Get and set x values for the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Get current x values
+ chart.x();
+
+ // Update x values for all targets
+ chart.x([100, 200, 300, 400, ...]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
x + + +Array + + + + +

If x is given, x values of every target will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

xs

+
+ + + +
+
+ Type +
+
+ +object + + + +
+
+ + + + + + + + + + +

xgrids(grids) → {Array}

+ + + + + + +
+ +
Description:
+
  • Update x grid lines.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Show 2 x grid lines
+chart.xgrids([
+   {value: 1, text: "Label 1"},
+   {value: 4, text: "Label 4"}
+]);
+// --> Returns: [{value: 1, text: "Label 1"}, {value: 4, text: "Label 4"}]
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
grids + + +Array + + + + +

X grid lines will be replaced with this argument. The format of this argument is the same as grid.x.lines.

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

xgrids․add(grids) → {Array}

+ + + + + + +
+ +
Description:
+
  • Add x grid lines.
    +This API adds new x grid lines instead of replacing like xgrids.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Add a new x grid line
+chart.xgrids.add(
+  {value: 4, text: "Label 4"}
+);
+
+// Add new x grid lines
+chart.xgrids.add([
+  {value: 2, text: "Label 2"},
+  {value: 4, text: "Label 4"}
+]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
grids + + +Array +| + +object + + + + +

New x grid lines will be added. The format of this argument is the same as grid.x.lines and it's possible to give an Object if only one line will be added.

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

xgrids․remove(grids) → {void}

+ + + + + + +
+ +
Description:
+
  • Remove x grid lines.
    +This API removes x grid lines.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// x grid line on x = 2 will be removed
+chart.xgrids.remove({value: 2});
+
+// x grid lines that have 'grid-A' will be removed
+chart.xgrids.remove({
+  class: "grid-A"
+});
+
+// all of x grid lines will be removed
+chart.xgrids.remove();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
grids + + +object + + + + +

This argument should include value or class. If value is given, the x grid lines that have specified x value will be removed. If class is given, the x grid lines that have specified class will be removed. If args is not given, all of x grid lines will be removed.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
value + + +number + + + + + + + <optional>
+ + + + + +

target value

class + + +string + + + + + + + <optional>
+ + + + + +

target class

+ +
+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +void + + + +
+
+ + + + + + + + + + +

xs(xs) → {object}

+ + + + + + +
+ +
Description:
+
  • Get and set x values for the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Get current x values
+ chart.xs();
+
+ // Update x values for all targets
+ chart.xs({
+   data1: [10, 20, 30, 40, ...],
+   data2: [100, 200, 300, 400, ...]
+ });
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
xs + + +Array + + + + +

If xs is given, specified target's x values will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

xs

+
+ + + +
+
+ Type +
+
+ +object + + + +
+
+ + + + + + + + + + +

ygrids(grids) → {object}

+ + + + + + +
+ +
Description:
+
  • Update y grid lines.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Show 2 y grid lines
+chart.ygrids([
+   {value: 100, text: "Label 1"},
+   {value: 400, text: "Label 4"}
+]);
+// --> Returns: [{value: 100, text: "Label 1"}, {value: 400, text: "Label 4"}]
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
grids + + +Array + + + + +

Y grid lines will be replaced with this argument. The format of this argument is the same as grid.y.lines.

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +object + + + +
+
+ + + + + + + + + + +

ygrids․add(grids) → {object}

+ + + + + + +
+ +
Description:
+
  • Add y grid lines.
    +This API adds new y grid lines instead of replacing like ygrids.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Add a new x grid line
+chart.ygrids.add(
+  {value: 400, text: "Label 4"}
+);
+
+// Add new x grid lines
+chart.ygrids.add([
+  {value: 200, text: "Label 2"},
+  {value: 400, text: "Label 4"}
+]);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
grids + + +Array +| + +object + + + + +

New y grid lines will be added. The format of this argument is the same as grid.y.lines and it's possible to give an Object if only one line will be added.

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +object + + + +
+
+ + + + + + + + + + +

ygrids․remove(grids) → {void}

+ + + + + + +
+ +
Description:
+
  • Remove y grid lines.
    +This API removes x grid lines.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// y grid line on y = 200 will be removed
+chart.ygrids.remove({value: 200});
+
+// y grid lines that have 'grid-A' will be removed
+chart.ygrids.remove({
+  class: "grid-A"
+});
+
+// all of y grid lines will be removed
+chart.ygrids.remove();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
grids + + +object + + + + +

This argument should include value or class. If value is given, the y grid lines that have specified y value will be removed. If class is given, the y grid lines that have specified class will be removed. If args is not given, all of y grid lines will be removed.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
value + + +number + + + + + + + <optional>
+ + + + + +

target value

class + + +string + + + + + + + <optional>
+ + + + + +

target class

+ +
+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +void + + + +
+
+ + + + + + + + + + +

zoom(domainValue) → {Array}

+ + + + + + +
+ +
Description:
+
  • Zoom by giving x domain range.

    +
      +
    • ℹ️ NOTE:
    • +
    • For wheel type zoom, the minimum zoom range will be set as the given domain range. To get the initial state, .unzoom() should be called.
    • +
    • To be used zoom.enabled option should be set as truthy.
    • +
    • When x axis type is category, domain range should be specified as index numbers.
    • +
    • Due to the limitations of floating point precision, domain value may not be exact returning approximately values.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Zoom to specified domain range
+ chart.zoom([10, 20]);
+
+ // For timeseries x axis, the domain value can be string, but the format should match with the 'data.xFormat' option.
+ chart.zoom(["2021-02-03", "2021-02-08"]);
+
+ // For category x axis, the domain value should be index number.
+ chart.zoom([0, 3]);
+
+ // Get the current zoomed domain range
+ // Domain value may not be exact returning approximately values.
+ chart.zoom();
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
domainValue + + +Array + + + + +

If domain range is given, the chart will be zoomed to the given domain. If no argument is given, the current zoomed domain will be returned.

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

domain value in array

+
+ + + +
+
+ Type +
+
+ +Array + + + +
+
+ + + + + + + + + + +

zoom․enable(enabled)

+ + + + + + +
+ +
Description:
+
  • Enable and disable zooming.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Enable zooming using the mouse wheel
+ chart.zoom.enable(true);
+ // Or
+ chart.zoom.enable("wheel");
+
+ // Enable zooming by dragging
+ chart.zoom.enable("drag");
+
+ // Disable zooming
+ chart.zoom.enable(false);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
enabled + + +string +| + +boolean + + + + +

Possible string values are "wheel" or "drag". If enabled is true, "wheel" will be used. If false is given, zooming will be disabled.
When set to false, the current zooming status will be reset.

+ + + + + + + + + + + + + + + + + + + + + + + + +

zoom․max(maxopt) → {number}

+ + + + + + +
+ +
Description:
+
  • Set or get x Axis maximum zoom range value

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Set maximum range value
+ chart.zoom.max(20);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
max + + +number + + + + + + + <optional>
+ + + + + +

maximum value to set for zoom

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

zoom max value

+
+ + + +
+
+ Type +
+
+ +number + + + +
+
+ + + + + + + + + + +

zoom․min(minopt) → {number}

+ + + + + + +
+ +
Description:
+
  • Set or get x Axis minimum zoom range value

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
// Set minimum range value
+ chart.zoom.min(-1);
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
min + + +number + + + + + + + <optional>
+ + + + + +

minimum value to set for zoom

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

zoom min value

+
+ + + +
+
+ Type +
+
+ +number + + + +
+
+ + + + + + + + + + +

zoom․range(rangeopt) → {object}

+ + + + + + +
+ +
Description:
+
  • Set zoom range

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Example
+ +
chart.zoom.range({
+     min: 10,
+     max: 100
+ });
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
range + + +object + + + + + + + <optional>
+ + + + + +

zoom range

+ + + + + + + + + + + + + + + + +
Returns:
+ + +
+

zoom range value +{ +min: 0, +max: 100 +}

+
+ + + +
+
+ Type +
+
+ +object + + + +
+
+ + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/release/3.12.4/doc/ChartInternal_data_data.ts.html b/release/3.12.4/doc/ChartInternal_data_data.ts.html new file mode 100644 index 000000000..a328126a5 --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_data_data.ts.html @@ -0,0 +1,1191 @@ + + + + + + ChartInternal/data/data.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/data/data.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {select as d3Select} from "d3-selection";
+import {$BAR, $CANDLESTICK, $COMMON} from "../../config/classes";
+import {KEY} from "../../module/Cache";
+import {
+	findIndex,
+	getScrollPosition,
+	getUnique,
+	hasValue,
+	isArray,
+	isBoolean,
+	isDefined,
+	isFunction,
+	isNumber,
+	isObject,
+	isObjectType,
+	isString,
+	isUndefined,
+	isValue,
+	mergeArray,
+	notEmpty,
+	parseDate,
+	sortValue
+} from "../../module/util";
+import type {IData, IDataPoint, IDataRow} from "./IData";
+
+export default {
+	isX(key) {
+		const $$ = this;
+		const {config} = $$;
+		const dataKey = config.data_x && key === config.data_x;
+		const existValue = notEmpty(config.data_xs) && hasValue(config.data_xs, key);
+
+		return dataKey || existValue;
+	},
+
+	isNotX(key): boolean {
+		return !this.isX(key);
+	},
+
+	isStackNormalized(): boolean {
+		const {config} = this;
+
+		return !!(config.data_stack_normalize && config.data_groups.length);
+	},
+
+	/**
+	 * Check if given id is grouped data or has grouped data
+	 * @param {string} id Data id value
+	 * @returns {boolean} is grouped data or has grouped data
+	 * @private
+	 */
+	isGrouped(id?: string): boolean {
+		const groups = this.config.data_groups;
+
+		return id ? groups.some(v => v.indexOf(id) >= 0 && v.length > 1) : groups.length > 0;
+	},
+
+	getXKey(id) {
+		const $$ = this;
+		const {config} = $$;
+
+		return config.data_x ?
+			config.data_x :
+			(notEmpty(config.data_xs) ? config.data_xs[id] : null);
+	},
+
+	getXValuesOfXKey(key, targets) {
+		const $$ = this;
+		const ids = targets && notEmpty(targets) ? $$.mapToIds(targets) : [];
+		let xValues;
+
+		ids.forEach(id => {
+			if ($$.getXKey(id) === key) {
+				xValues = $$.data.xs[id];
+			}
+		});
+
+		return xValues;
+	},
+
+	/**
+	 * Get index number based on given x Axis value
+	 * @param {Date|number|string} x x Axis to be compared
+	 * @param {Array} basedX x Axis list to be based on
+	 * @returns {number} index number
+	 * @private
+	 */
+	getIndexByX(x: Date | number | string, basedX: (Date | number | string)[]): number {
+		const $$ = this;
+
+		return basedX ?
+			basedX.indexOf(isString(x) ? x : +x) :
+			($$.filterByX($$.data.targets, x)[0] || {index: null}).index;
+	},
+
+	getXValue(id: string, i: number): number {
+		const $$ = this;
+
+		return id in $$.data.xs &&
+				$$.data.xs[id] &&
+				isValue($$.data.xs[id][i]) ?
+			$$.data.xs[id][i] :
+			i;
+	},
+
+	getOtherTargetXs(): string | null {
+		const $$ = this;
+		const idsForX = Object.keys($$.data.xs);
+
+		return idsForX.length ? $$.data.xs[idsForX[0]] : null;
+	},
+
+	getOtherTargetX(index: number): string | null {
+		const xs = this.getOtherTargetXs();
+
+		return xs && index < xs.length ? xs[index] : null;
+	},
+
+	addXs(xs): void {
+		const $$ = this;
+		const {config} = $$;
+
+		Object.keys(xs).forEach(id => {
+			config.data_xs[id] = xs[id];
+		});
+	},
+
+	/**
+	 * Determine if x axis is multiple
+	 * @returns {boolean} true: multiple, false: single
+	 * @private
+	 */
+	isMultipleX(): boolean {
+		return !this.config.axis_x_forceAsSingle && (
+			notEmpty(this.config.data_xs) ||
+			this.hasType("bubble") ||
+			this.hasType("scatter")
+		);
+	},
+
+	addName(data) {
+		const $$ = this;
+		const {config} = $$;
+		let name;
+
+		if (data) {
+			name = config.data_names[data.id];
+			data.name = name !== undefined ? name : data.id;
+		}
+
+		return data;
+	},
+
+	/**
+	 * Get all values on given index
+	 * @param {number} index Index
+	 * @param {boolean} filterNull Filter nullish value
+	 * @returns {Array}
+	 * @private
+	 */
+	getAllValuesOnIndex(index: number, filterNull = false) {
+		const $$ = this;
+
+		let value = $$.filterTargetsToShow($$.data.targets)
+			.map(t => $$.addName($$.getValueOnIndex(t.values, index)));
+
+		if (filterNull) {
+			value = value.filter(v => v && "value" in v && isValue(v.value));
+		}
+
+		return value;
+	},
+
+	getValueOnIndex(values, index: number) {
+		const valueOnIndex = values.filter(v => v.index === index);
+
+		return valueOnIndex.length ? valueOnIndex[0] : null;
+	},
+
+	updateTargetX(targets, x) {
+		const $$ = this;
+
+		targets.forEach(t => {
+			t.values.forEach((v, i) => {
+				v.x = $$.generateTargetX(x[i], t.id, i);
+			});
+
+			$$.data.xs[t.id] = x;
+		});
+	},
+
+	updateTargetXs(targets, xs) {
+		const $$ = this;
+
+		targets.forEach(t => {
+			xs[t.id] && $$.updateTargetX([t], xs[t.id]);
+		});
+	},
+
+	generateTargetX(rawX, id: string, index: number) {
+		const $$ = this;
+		const {axis} = $$;
+		let x = axis?.isCategorized() ? index : (rawX || index);
+
+		if (axis?.isTimeSeries()) {
+			const fn = parseDate.bind($$);
+
+			x = rawX ? fn(rawX) : fn($$.getXValue(id, index));
+		} else if (axis?.isCustomX() && !axis?.isCategorized()) {
+			x = isValue(rawX) ? +rawX : $$.getXValue(id, index);
+		}
+
+		return x;
+	},
+
+	updateXs(values): void {
+		if (values.length) {
+			this.axis.xs = values.map(v => v.x);
+		}
+	},
+
+	getPrevX(i: number): number[] | null {
+		const x = this.axis.xs[i - 1];
+
+		return isDefined(x) ? x : null;
+	},
+
+	getNextX(i: number): number[] | null {
+		const x = this.axis.xs[i + 1];
+
+		return isDefined(x) ? x : null;
+	},
+
+	/**
+	 * Get base value isAreaRangeType
+	 * @param {object} data Data object
+	 * @returns {number}
+	 * @private
+	 */
+	getBaseValue(data): number {
+		const $$ = this;
+		const {hasAxis} = $$.state;
+		let {value} = data;
+
+		// In case of area-range, data is given as: [low, mid, high] or {low, mid, high}
+		// will take the 'mid' as the base value
+		if (value && hasAxis) {
+			if ($$.isAreaRangeType(data)) {
+				value = $$.getRangedData(data, "mid");
+			} else if ($$.isBubbleZType(data)) {
+				value = $$.getBubbleZData(value, "y");
+			}
+		}
+
+		return value;
+	},
+
+	/**
+	 * Get min/max value from the data
+	 * @private
+	 * @param {Array} data array data to be evaluated
+	 * @returns {{min: {number}, max: {number}}}
+	 */
+	getMinMaxValue(data): {min: number, max: number} {
+		const getBaseValue = this.getBaseValue.bind(this);
+		let min;
+		let max;
+
+		(data || this.data.targets.map(t => t.values))
+			.forEach((v, i) => {
+				const value = v.map(getBaseValue).filter(isNumber);
+
+				min = Math.min(i ? min : Infinity, ...value);
+				max = Math.max(i ? max : -Infinity, ...value);
+			});
+
+		return {min, max};
+	},
+
+	/**
+	 * Get the min/max data
+	 * @private
+	 * @returns {{min: Array, max: Array}}
+	 */
+	getMinMaxData(): {min: IDataRow[], max: IDataRow[]} {
+		const $$ = this;
+		const cacheKey = KEY.dataMinMax;
+		let minMaxData = $$.cache.get(cacheKey);
+
+		if (!minMaxData) {
+			const data = $$.data.targets.map(t => t.values);
+			const minMax = $$.getMinMaxValue(data);
+
+			let min = [];
+			let max = [];
+
+			data.forEach(v => {
+				const minData = $$.getFilteredDataByValue(v, minMax.min);
+				const maxData = $$.getFilteredDataByValue(v, minMax.max);
+
+				if (minData.length) {
+					min = min.concat(minData);
+				}
+
+				if (maxData.length) {
+					max = max.concat(maxData);
+				}
+			});
+
+			// update the cached data
+			$$.cache.add(cacheKey, minMaxData = {min, max});
+		}
+
+		return minMaxData;
+	},
+
+	/**
+	 * Get sum of data per index
+	 * @private
+	 * @returns {Array}
+	 */
+	getTotalPerIndex() {
+		const $$ = this;
+		const cacheKey = KEY.dataTotalPerIndex;
+		let sum = $$.cache.get(cacheKey);
+
+		if (($$.config.data_groups.length || $$.isStackNormalized()) && !sum) {
+			sum = [];
+
+			$$.data.targets.forEach(row => {
+				row.values.forEach((v, i) => {
+					if (!sum[i]) {
+						sum[i] = 0;
+					}
+
+					sum[i] += isNumber(v.value) ? v.value : 0;
+				});
+			});
+		}
+
+		return sum;
+	},
+
+	/**
+	 * Get total data sum
+	 * @param {boolean} subtractHidden Subtract hidden data from total
+	 * @returns {number}
+	 * @private
+	 */
+	getTotalDataSum(subtractHidden) {
+		const $$ = this;
+		const cacheKey = KEY.dataTotalSum;
+		let total = $$.cache.get(cacheKey);
+
+		if (!isNumber(total)) {
+			const sum = mergeArray($$.data.targets.map(t => t.values))
+				.map(v => v.value);
+
+			total = sum.length ? sum.reduce((p, c) => p + c) : 0;
+
+			$$.cache.add(cacheKey, total);
+		}
+
+		if (subtractHidden) {
+			total -= $$.getHiddenTotalDataSum();
+		}
+
+		return total;
+	},
+
+	/**
+	 * Get total hidden data sum
+	 * @returns {number}
+	 * @private
+	 */
+	getHiddenTotalDataSum() {
+		const $$ = this;
+		const {api, state: {hiddenTargetIds}} = $$;
+		let total = 0;
+
+		if (hiddenTargetIds.length) {
+			total = api.data.values.bind(api)(hiddenTargetIds)
+				.reduce((p, c) => p + c);
+		}
+
+		return total;
+	},
+
+	/**
+	 * Get filtered data by value
+	 * @param {object} data Data
+	 * @param {number} value Value to be filtered
+	 * @returns {Array} filtered array data
+	 * @private
+	 */
+	getFilteredDataByValue(data, value) {
+		return data.filter(t => this.getBaseValue(t) === value);
+	},
+
+	/**
+	 * Return the max length of the data
+	 * @returns {number} max data length
+	 * @private
+	 */
+	getMaxDataCount(): number {
+		return Math.max(...this.data.targets.map(t => t.values.length), 0);
+	},
+
+	getMaxDataCountTarget() {
+		let target = this.filterTargetsToShow() || [];
+		const length = target.length;
+		const isInverted = this.config.axis_x_inverted;
+
+		if (length > 1) {
+			target = target.map(t => t.values)
+				.reduce((a, b) => a.concat(b))
+				.map(v => v.x);
+
+			target = sortValue(getUnique(target))
+				.map((x, index, array) => ({
+					x,
+					index: isInverted ? array.length - index - 1 : index
+				}));
+		} else if (length) {
+			target = target[0].values.concat();
+		}
+
+		return target;
+	},
+
+	mapToIds(targets): string[] {
+		return targets.map(d => d.id);
+	},
+
+	mapToTargetIds(ids) {
+		const $$ = this;
+
+		return ids ? (isArray(ids) ? ids.concat() : [ids]) : $$.mapToIds($$.data.targets);
+	},
+
+	hasTarget(targets, id): boolean {
+		const ids = this.mapToIds(targets);
+
+		for (let i = 0, val; (val = ids[i]); i++) {
+			if (val === id) {
+				return true;
+			}
+		}
+
+		return false;
+	},
+
+	isTargetToShow(targetId): boolean {
+		return this.state.hiddenTargetIds.indexOf(targetId) < 0;
+	},
+
+	isLegendToShow(targetId): boolean {
+		return this.state.hiddenLegendIds.indexOf(targetId) < 0;
+	},
+
+	filterTargetsToShow(targets?) {
+		const $$ = this;
+
+		return (targets || $$.data.targets).filter(t => $$.isTargetToShow(t.id));
+	},
+
+	mapTargetsToUniqueXs(targets) {
+		const $$ = this;
+		const {axis} = $$;
+		let xs: any[] = [];
+
+		if (targets?.length) {
+			xs = getUnique(
+				mergeArray(targets.map(t => t.values.map(v => +v.x)))
+			);
+
+			xs = axis?.isTimeSeries() ? xs.map(x => new Date(+x)) : xs.map(Number);
+		}
+
+		return sortValue(xs);
+	},
+
+	/**
+	 * Add to the state target Ids
+	 * @param {string} type State's prop name
+	 * @param {Array|string} targetIds Target ids array
+	 * @private
+	 */
+	addTargetIds(type: string, targetIds: string[] | string): void {
+		const {state} = this;
+		const ids = (isArray(targetIds) ? targetIds : [targetIds]) as [];
+
+		ids.forEach(v => {
+			state[type].indexOf(v) < 0 &&
+				state[type].push(v);
+		});
+	},
+
+	/**
+	 * Remove from the state target Ids
+	 * @param {string} type State's prop name
+	 * @param {Array|string} targetIds Target ids array
+	 * @private
+	 */
+	removeTargetIds(type: string, targetIds: string[] | string): void {
+		const {state} = this;
+		const ids = (isArray(targetIds) ? targetIds : [targetIds]) as [];
+
+		ids.forEach(v => {
+			const index = state[type].indexOf(v);
+
+			index >= 0 && state[type].splice(index, 1);
+		});
+	},
+
+	addHiddenTargetIds(targetIds: string[]): void {
+		this.addTargetIds("hiddenTargetIds", targetIds);
+	},
+
+	removeHiddenTargetIds(targetIds: string[]): void {
+		this.removeTargetIds("hiddenTargetIds", targetIds);
+	},
+
+	addHiddenLegendIds(targetIds: string[]): void {
+		this.addTargetIds("hiddenLegendIds", targetIds);
+	},
+
+	removeHiddenLegendIds(targetIds: string[]): void {
+		this.removeTargetIds("hiddenLegendIds", targetIds);
+	},
+
+	getValuesAsIdKeyed(targets) {
+		const $$ = this;
+		const {hasAxis} = $$.state;
+		const ys = {};
+		const isMultipleX = $$.isMultipleX();
+		const xs = isMultipleX ?
+			$$.mapTargetsToUniqueXs(targets)
+				.map(v => (isString(v) ? v : +v)) :
+			null;
+
+		targets.forEach(t => {
+			const data: any[] = [];
+
+			t.values
+				.filter(({value}) => isValue(value) || value === null)
+				.forEach(v => {
+					let {value} = v;
+
+					// exclude 'volume' value to correct mis domain calculation
+					if (value !== null && $$.isCandlestickType(v)) {
+						value = isArray(value) ?
+							value.slice(0, 4) :
+							[value.open, value.high, value.low, value.close];
+					}
+
+					if (isArray(value)) {
+						data.push(...value);
+					} else if (isObject(value) && "high" in value) {
+						data.push(...Object.values(value));
+					} else if ($$.isBubbleZType(v)) {
+						data.push(hasAxis && $$.getBubbleZData(value, "y"));
+					} else {
+						if (isMultipleX) {
+							data[$$.getIndexByX(v.x, xs)] = value;
+						} else {
+							data.push(value);
+						}
+					}
+				});
+
+			ys[t.id] = data;
+		});
+
+		return ys;
+	},
+
+	checkValueInTargets(targets, checker: Function): boolean {
+		const ids = Object.keys(targets);
+		let values;
+
+		for (let i = 0; i < ids.length; i++) {
+			values = targets[ids[i]].values;
+
+			for (let j = 0; j < values.length; j++) {
+				if (checker(values[j].value)) {
+					return true;
+				}
+			}
+		}
+
+		return false;
+	},
+
+	hasMultiTargets(): boolean {
+		return this.filterTargetsToShow().length > 1;
+	},
+
+	hasNegativeValueInTargets(targets): boolean {
+		return this.checkValueInTargets(targets, v => v < 0);
+	},
+
+	hasPositiveValueInTargets(targets): boolean {
+		return this.checkValueInTargets(targets, v => v > 0);
+	},
+
+	/**
+	 * Sort targets data
+	 * Note: For stacked bar, will sort from the total sum of data series, not for each stacked bar
+	 * @param {Array} targetsValue Target value
+	 * @returns {Array}
+	 * @private
+	 */
+	orderTargets(targetsValue: IData[]): IData[] {
+		const $$ = this;
+		const targets = [...targetsValue];
+		const fn = $$.getSortCompareFn();
+
+		fn && targets.sort(fn);
+
+		return targets;
+	},
+
+	/**
+	 * Get data.order compare function
+	 * @param {boolean} isReversed for Arc & Treemap type sort order needs to be reversed
+	 * @returns {Function} compare function
+	 * @private
+	 */
+	getSortCompareFn(isReversed = false): Function | null {
+		const $$ = this;
+		const {config} = $$;
+		const order = config.data_order;
+		const orderAsc = /asc/i.test(order);
+		const orderDesc = /desc/i.test(order);
+		let fn;
+
+		if (orderAsc || orderDesc) {
+			const reducer = (p, c) => p + Math.abs(c.value);
+			const sum = v => (isNumber(v) ? v : (
+				"values" in v ? v.values.reduce(reducer, 0) : v.value
+			));
+
+			fn = (t1: IData | IDataRow, t2: IData | IDataRow) => {
+				const t1Sum = sum(t1);
+				const t2Sum = sum(t2);
+
+				return isReversed ?
+					(orderAsc ? t1Sum - t2Sum : t2Sum - t1Sum) :
+					(orderAsc ? t2Sum - t1Sum : t1Sum - t2Sum);
+			};
+		} else if (isFunction(order)) {
+			fn = order.bind($$.api);
+		}
+
+		return fn || null;
+	},
+
+	filterByX(targets, x) {
+		return mergeArray(targets.map(t => t.values)).filter(v => v.x - x === 0);
+	},
+
+	filterRemoveNull(data) {
+		return data.filter(d => isValue(this.getBaseValue(d)));
+	},
+
+	filterByXDomain(targets, xDomain) {
+		return targets.map(t => ({
+			id: t.id,
+			id_org: t.id_org,
+			values: t.values.filter(v => xDomain[0] <= v.x && v.x <= xDomain[1])
+		}));
+	},
+
+	hasDataLabel() {
+		const dataLabels = this.config.data_labels;
+
+		return (isBoolean(dataLabels) && dataLabels) ||
+			(isObjectType(dataLabels) && notEmpty(dataLabels));
+	},
+
+	/**
+	 * Get data index from the event coodinates
+	 * @param {Event} event Event object
+	 * @returns {number}
+	 */
+	getDataIndexFromEvent(event): number {
+		const $$ = this;
+		const {$el, config, state: {hasRadar, inputType, eventReceiver: {coords, rect}}} = $$;
+		let index;
+
+		if (hasRadar) {
+			let target = event.target;
+
+			// in case of multilined axis text
+			if (/tspan/i.test(target.tagName)) {
+				target = target.parentNode;
+			}
+
+			const d: any = d3Select(target).datum();
+
+			index = d && Object.keys(d).length === 1 ? d.index : undefined;
+		} else {
+			const isRotated = config.axis_rotated;
+			const scrollPos = getScrollPosition($el.chart.node());
+
+			// get data based on the mouse coords
+			const e = inputType === "touch" && event.changedTouches ?
+				event.changedTouches[0] :
+				event;
+
+			index = findIndex(
+				coords,
+				isRotated ?
+					e.clientY + scrollPos.y - rect.top :
+					e.clientX + scrollPos.x - rect.left,
+				0,
+				coords.length - 1,
+				isRotated
+			);
+		}
+
+		return index;
+	},
+
+	getDataLabelLength(min, max, key) {
+		const $$ = this;
+		const lengths = [0, 0];
+		const paddingCoef = 1.3;
+
+		$$.$el.chart.select("svg").selectAll(".dummy")
+			.data([min, max])
+			.enter()
+			.append("text")
+			.text(d => $$.dataLabelFormat(d.id)(d))
+			.each(function(d, i) {
+				lengths[i] = this.getBoundingClientRect()[key] * paddingCoef;
+			})
+			.remove();
+
+		return lengths;
+	},
+
+	isNoneArc(d) {
+		return this.hasTarget(this.data.targets, d.id);
+	},
+
+	isArc(d) {
+		return "data" in d && this.hasTarget(this.data.targets, d.data.id);
+	},
+
+	findSameXOfValues(values, index) {
+		const targetX = values[index].x;
+		const sames: any[] = [];
+		let i;
+
+		for (i = index - 1; i >= 0; i--) {
+			if (targetX !== values[i].x) {
+				break;
+			}
+
+			sames.push(values[i]);
+		}
+
+		for (i = index; i < values.length; i++) {
+			if (targetX !== values[i].x) {
+				break;
+			}
+
+			sames.push(values[i]);
+		}
+
+		return sames;
+	},
+
+	findClosestFromTargets(targets, pos: [number, number]): IDataRow | undefined {
+		const $$ = this;
+		const candidates = targets.map(target => $$.findClosest(target.values, pos)); // map to array of closest points of each target
+
+		// decide closest point and return
+		return $$.findClosest(candidates, pos);
+	},
+
+	findClosest(values, pos: [number, number]): IDataRow | undefined {
+		const $$ = this;
+		const {$el: {main}} = $$;
+		const data = values.filter(v => v && isValue(v.value));
+
+		let minDist;
+		let closest;
+
+		// find mouseovering bar/candlestick
+		// https://github.com/naver/billboard.js/issues/2434
+		data
+			.filter(v => $$.isBarType(v.id) || $$.isCandlestickType(v.id))
+			.forEach(v => {
+				const selector = $$.isBarType(v.id) ?
+					`.${$BAR.chartBar}.${$COMMON.target}${
+						$$.getTargetSelectorSuffix(v.id)
+					} .${$BAR.bar}-${v.index}` :
+					`.${$CANDLESTICK.chartCandlestick}.${$COMMON.target}${
+						$$.getTargetSelectorSuffix(v.id)
+					} .${$CANDLESTICK.candlestick}-${v.index} path`;
+
+				if (!closest && $$.isWithinBar(main.select(selector).node())) {
+					closest = v;
+				}
+			});
+
+		// find closest point from non-bar/candlestick
+		data
+			.filter(v => !$$.isBarType(v.id) && !$$.isCandlestickType(v.id))
+			.forEach((v: IDataPoint) => {
+				const d = $$.dist(v, pos);
+
+				minDist = $$.getPointSensitivity(v);
+
+				if (d < minDist) {
+					minDist = d;
+					closest = v;
+				}
+			});
+
+		return closest;
+	},
+
+	dist(data: IDataPoint, pos: [number, number]) {
+		const $$ = this;
+		const {config: {axis_rotated: isRotated}, scale} = $$;
+		const xIndex = +isRotated; // true: 1, false: 0
+		const yIndex = +!isRotated; // true: 0, false: 1
+		const y = $$.circleY(data, data.index);
+		const x = (scale.zoom || scale.x)(data.x);
+
+		return Math.sqrt(Math.pow(x - pos[xIndex], 2) + Math.pow(y - pos[yIndex], 2));
+	},
+
+	/**
+	 * Convert data for step type
+	 * @param {Array} values Object data values
+	 * @returns {Array}
+	 * @private
+	 */
+	convertValuesToStep(values) {
+		const $$ = this;
+		const {axis, config} = $$;
+		const stepType = config.line_step_type;
+		const isCategorized = axis ? axis.isCategorized() : false;
+		const converted = isArray(values) ? values.concat() : [values];
+
+		if (!(isCategorized || /step\-(after|before)/.test(stepType))) {
+			return values;
+		}
+
+		// when all datas are null, return empty array
+		// https://github.com/naver/billboard.js/issues/3124
+		if (converted.length) {
+			// insert & append cloning first/last value to be fully rendered covering on each gap sides
+			const head = converted[0];
+			const tail = converted[converted.length - 1];
+			const {id} = head;
+			let {x} = head;
+
+			// insert head
+			converted.unshift({x: --x, value: head.value, id});
+
+			isCategorized && stepType === "step-after" &&
+				converted.unshift({x: --x, value: head.value, id});
+
+			// append tail
+			x = tail.x;
+			converted.push({x: ++x, value: tail.value, id});
+
+			isCategorized && stepType === "step-before" &&
+				converted.push({x: ++x, value: tail.value, id});
+		}
+
+		return converted;
+	},
+
+	convertValuesToRange(values) {
+		const converted = isArray(values) ? values.concat() : [values];
+		const ranges: {x: string | number, id: string, value: number}[] = [];
+
+		converted.forEach(range => {
+			const {x, id} = range;
+
+			ranges.push({
+				x,
+				id,
+				value: range.value[0]
+			});
+
+			ranges.push({
+				x,
+				id,
+				value: range.value[2]
+			});
+		});
+
+		return ranges;
+	},
+
+	updateDataAttributes(name, attrs) {
+		const $$ = this;
+		const {config} = $$;
+		const current = config[`data_${name}`];
+
+		if (isUndefined(attrs)) {
+			return current;
+		}
+
+		Object.keys(attrs).forEach(id => {
+			current[id] = attrs[id];
+		});
+
+		$$.redraw({withLegend: true});
+
+		return current;
+	},
+
+	getRangedData(d, key = "", type = "areaRange"): number | undefined {
+		const value = d?.value;
+
+		if (isArray(value)) {
+			if (type === "bar") {
+				return value.reduce((a, c) => c - a);
+			} else {
+				// @ts-ignore
+				const index = {
+					areaRange: ["high", "mid", "low"],
+					candlestick: ["open", "high", "low", "close", "volume"]
+				}[type].indexOf(key);
+
+				return index >= 0 && value ? value[index] : undefined;
+			}
+		} else if (value && key) {
+			return value[key];
+		}
+
+		return value;
+	},
+
+	/**
+	 * Set ratio for grouped data
+	 * @param {Array} data Data array
+	 * @private
+	 */
+	setRatioForGroupedData(data: (IDataRow | IData)[]): void {
+		const $$ = this;
+		const {config} = $$;
+
+		// calculate ratio if grouped data exists
+		if (config.data_groups.length && data.some(d => $$.isGrouped(d.id))) {
+			const setter = (d: IDataRow) => $$.getRatio("index", d, true);
+
+			data.forEach(v => {
+				"values" in v ? v.values.forEach(setter) : setter(v);
+			});
+		}
+	},
+
+	/**
+	 * Get ratio value
+	 * @param {string} type Ratio for given type
+	 * @param {object} d Data value object
+	 * @param {boolean} asPercent Convert the return as percent or not
+	 * @returns {number} Ratio value
+	 * @private
+	 */
+	getRatio(type: string, d, asPercent = false): number {
+		const $$ = this;
+		const {config, state} = $$;
+		const api = $$.api;
+		let ratio = 0;
+
+		if (d && api.data.shown().length) {
+			ratio = d.ratio || d.value;
+
+			if (type === "arc") {
+				// if has padAngle set, calculate rate based on value
+				if ($$.pie.padAngle()()) {
+					ratio = d.value / $$.getTotalDataSum(true);
+
+					// otherwise, based on the rendered angle value
+				} else {
+					const gaugeArcLength = config.gauge_fullCircle ?
+						$$.getArcLength() :
+						$$.getStartingAngle() * -2;
+					const arcLength = $$.hasType("gauge") ? gaugeArcLength : Math.PI * 2;
+
+					ratio = (d.endAngle - d.startAngle) / arcLength;
+				}
+			} else if (type === "index") {
+				const dataValues = api.data.values.bind(api);
+				let total = this.getTotalPerIndex();
+
+				if (state.hiddenTargetIds.length) {
+					let hiddenSum = dataValues(state.hiddenTargetIds, false);
+
+					if (hiddenSum.length) {
+						hiddenSum = hiddenSum
+							.reduce((acc, curr) =>
+								acc.map((v, i) => (isNumber(v) ? v : 0) + curr[i])
+							);
+
+						total = total.map((v, i) => v - hiddenSum[i]);
+					}
+				}
+
+				const divisor = total[d.index];
+
+				d.ratio = isNumber(d.value) && total && divisor ? d.value / divisor : 0;
+
+				ratio = d.ratio;
+			} else if (type === "radar") {
+				ratio = (
+					parseFloat(String(Math.max(d.value, 0))) / state.current.dataMax
+				) * config.radar_size_ratio;
+			} else if (type === "bar") {
+				const yScale = $$.getYScaleById.bind($$)(d.id);
+				const max = yScale.domain().reduce((a, c) => c - a);
+
+				// when all data are 0, return 0
+				ratio = max === 0 ? 0 : Math.abs(
+					$$.getRangedData(d, null, type) / max
+				);
+			} else if (type === "treemap") {
+				ratio /= $$.getTotalDataSum(true);
+			}
+		}
+
+		return asPercent && ratio ? ratio * 100 : ratio;
+	},
+
+	/**
+	 * Sort data index to be aligned with x axis.
+	 * @param {Array} tickValues Tick array values
+	 * @private
+	 */
+	updateDataIndexByX(tickValues) {
+		const $$ = this;
+
+		const tickValueMap = tickValues.reduce((out, tick, index) => {
+			out[Number(tick.x)] = index;
+			return out;
+		}, {});
+
+		$$.data.targets.forEach(t => {
+			t.values.forEach((value, valueIndex) => {
+				let index = tickValueMap[Number(value.x)];
+
+				if (index === undefined) {
+					index = valueIndex;
+				}
+				value.index = index;
+			});
+		});
+	},
+
+	/**
+	 * Determine if bubble has dimension data
+	 * @param {object|Array} d data value
+	 * @returns {boolean}
+	 * @private
+	 */
+	isBubbleZType(d): boolean {
+		const $$ = this;
+
+		return $$.isBubbleType(d) && (
+			(isObject(d.value) && ("z" in d.value || "y" in d.value)) ||
+			(isArray(d.value) && d.value.length >= 2)
+		);
+	},
+
+	/**
+	 * Determine if bar has ranged data
+	 * @param {Array} d data value
+	 * @returns {boolean}
+	 * @private
+	 */
+	isBarRangeType(d): boolean {
+		const $$ = this;
+		const {value} = d;
+
+		return $$.isBarType(d) && isArray(value) && value.length >= 2 &&
+			value.every(v => isNumber(v));
+	},
+
+	/**
+	 * Get data object by id
+	 * @param {string} id data id
+	 * @returns {object}
+	 * @private
+	 */
+	getDataById(id: string) {
+		const d = this.cache.get(id) || this.api.data(id);
+
+		return d?.[0] ?? d;
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_interactions_drag.ts.html b/release/3.12.4/doc/ChartInternal_interactions_drag.ts.html new file mode 100644 index 000000000..7331b0b30 --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_interactions_drag.ts.html @@ -0,0 +1,218 @@ + + + + + + ChartInternal/interactions/drag.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/interactions/drag.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {select as d3Select} from "d3-selection";
+import type {d3Selection} from "../../../types/types";
+import {$BAR, $CIRCLE, $COMMON, $DRAG, $SELECT, $SHAPE} from "../../config/classes";
+import {getPathBox} from "../../module/util";
+
+/**
+ * Module used for data.selection.draggable option
+ */
+export default {
+	/**
+	 * Called when dragging.
+	 * Data points can be selected.
+	 * @private
+	 * @param {object} mouse Object
+	 */
+	drag(mouse): void {
+		const $$ = this;
+		const {config, state, $el: {main}} = $$;
+		const isSelectionGrouped = config.data_selection_grouped;
+		const isSelectable = config.interaction_enabled && config.data_selection_isselectable;
+
+		if (
+			$$.hasArcType() ||
+			!config.data_selection_enabled || // do nothing if not selectable
+			(config.zoom_enabled && !$$.zoom.altDomain) || // skip if zoomable because of conflict drag behavior
+			!config.data_selection_multiple // skip when single selection because drag is used for multiple selection
+		) {
+			return;
+		}
+
+		const [sx, sy] = state.dragStart || [0, 0];
+		const [mx, my] = mouse;
+
+		const minX = Math.min(sx, mx);
+		const maxX = Math.max(sx, mx);
+		const minY = isSelectionGrouped ? state.margin.top : Math.min(sy, my);
+		const maxY = isSelectionGrouped ? state.height : Math.max(sy, my);
+
+		main.select(`.${$DRAG.dragarea}`)
+			.attr("x", minX)
+			.attr("y", minY)
+			.attr("width", maxX - minX)
+			.attr("height", maxY - minY);
+
+		// TODO: binary search when multiple xs
+		main.selectAll(`.${$SHAPE.shapes}`)
+			.selectAll(`.${$SHAPE.shape}`)
+			.filter(d => isSelectable?.bind($$.api)(d))
+			.each(function(d, i) {
+				const shape: d3Selection = d3Select(this);
+				const isSelected = shape.classed($SELECT.SELECTED);
+				const isIncluded = shape.classed($DRAG.INCLUDED);
+				let isWithin: any = false;
+				let toggle;
+
+				if (shape.classed($CIRCLE.circle)) {
+					const x: number = +shape.attr("cx") * 1;
+					const y: number = +shape.attr("cy") * 1;
+
+					toggle = $$.togglePoint;
+					isWithin = minX < x && x < maxX && minY < y && y < maxY;
+				} else if (shape.classed($BAR.bar)) {
+					const {x, y, width, height} = getPathBox(this);
+
+					toggle = $$.togglePath;
+					isWithin = !(maxX < x || x + width < minX) && !(maxY < y || y + height < minY);
+				} else {
+					// line/area selection not supported yet
+					return;
+				}
+
+				// @ts-ignore
+				if (isWithin ^ isIncluded) {
+					shape.classed($DRAG.INCLUDED, !isIncluded);
+					// TODO: included/unincluded callback here
+					shape.classed($SELECT.SELECTED, !isSelected);
+					toggle.call($$, !isSelected, shape, d, i);
+				}
+			});
+	},
+
+	/**
+	 * Called when the drag starts.
+	 * Adds and Shows the drag area.
+	 * @private
+	 * @param {object} mouse Object
+	 */
+	dragstart(mouse): void {
+		const $$ = this;
+		const {config, state, $el: {main}} = $$;
+
+		if ($$.hasArcType() || !config.data_selection_enabled) {
+			return;
+		}
+
+		state.dragStart = mouse;
+
+		main.select(`.${$COMMON.chart}`)
+			.append("rect")
+			.attr("class", $DRAG.dragarea)
+			.style("opacity", "0.1");
+
+		$$.setDragStatus(true);
+	},
+
+	/**
+	 * Called when the drag finishes.
+	 * Removes the drag area.
+	 * @private
+	 */
+	dragend(): void {
+		const $$ = this;
+		const {config, $el: {main}, $T} = $$;
+
+		if ($$.hasArcType() || !config.data_selection_enabled) { // do nothing if not selectable
+			return;
+		}
+
+		$T(main.select(`.${$DRAG.dragarea}`))
+			.style("opacity", "0")
+			.remove();
+
+		main.selectAll(`.${$SHAPE.shape}`)
+			.classed($DRAG.INCLUDED, false);
+
+		$$.setDragStatus(false);
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_interactions_eventrect.ts.html b/release/3.12.4/doc/ChartInternal_interactions_eventrect.ts.html new file mode 100644 index 000000000..e93a1144b --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_interactions_eventrect.ts.html @@ -0,0 +1,785 @@ + + + + + + ChartInternal/interactions/eventrect.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/interactions/eventrect.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import type {d3Selection} from "../../../types";
+import {$COMMON, $EVENT, $SHAPE} from "../../config/classes";
+import {getPointer, getScrollPosition, isBoolean, isFunction} from "../../module/util";
+
+export default {
+	/**
+	 * Initialize the area that detects the event.
+	 * Add a container for the zone that detects the event.
+	 * @private
+	 */
+	initEventRect(): void {
+		const $$ = this;
+
+		$$.$el.main.select(`.${$COMMON.chart}`)
+			.append("g")
+			.attr("class", $EVENT.eventRects)
+			.style("fill-opacity", "0");
+	},
+
+	/**
+	 * Redraws the area that detects the event.
+	 * @private
+	 */
+	redrawEventRect(): void {
+		const $$ = this;
+		const {config, state, $el} = $$;
+		const isMultipleX = $$.isMultipleX();
+		const isInverted = config.axis_x_inverted;
+
+		if ($el.eventRect) {
+			$$.updateEventRect($el.eventRect, true);
+
+			// do not initialize eventRect when data is empty
+		} else if ($$.data.targets.length) {
+			const eventRects = $$.$el.main.select(`.${$EVENT.eventRects}`)
+				.style("cursor", config.zoom_enabled && config.zoom_type !== "drag" ?
+					(
+						config.axis_rotated ? "ns-resize" : "ew-resize"
+					) :
+					null)
+				.classed($EVENT.eventRectsMultiple, isMultipleX)
+				.classed($EVENT.eventRectsSingle, !isMultipleX);
+
+			// append event <rect>
+			const eventRectUpdate = eventRects.selectAll(`.${$EVENT.eventRect}`)
+				.data([0])
+				.enter()
+				.append("rect");
+
+			$$.updateEventRect(eventRectUpdate);
+
+			// bind event to <rect> element
+			$$.updateEventType(eventRectUpdate);
+
+			// bind draggable selection
+			eventRectUpdate.call($$.getDraggableSelection());
+
+			$el.eventRect = eventRectUpdate;
+
+			if (
+				$$.state.inputType === "touch" && !$el.svg.on("touchstart.eventRect") &&
+				!$$.hasArcType()
+			) {
+				$$.bindTouchOnEventRect();
+			}
+
+			// when initilazed with empty data and data loaded later, need to update eventRect
+			state.rendered && $$.updateEventRect($el.eventRect, true);
+		}
+
+		if (!isMultipleX) {
+			// Set data and update eventReceiver.data
+			const xAxisTickValues = $$.getMaxDataCountTarget();
+
+			if (!config.data_xSort || isInverted) {
+				xAxisTickValues.sort((a, b) => (isInverted ? b.x - a.x : a.x - b.x));
+			}
+
+			// update data's index value to be alinged with the x Axis
+			$$.updateDataIndexByX(xAxisTickValues);
+			$$.updateXs(xAxisTickValues);
+			$$.updatePointClass?.(true);
+
+			state.eventReceiver.data = xAxisTickValues;
+		}
+
+		$$.updateEventRectData();
+	},
+
+	bindTouchOnEventRect(): void {
+		const $$ = this;
+		const {config, state, $el: {eventRect, svg}} = $$;
+
+		const selectRect = context => {
+			if ($$.isMultipleX()) {
+				$$.selectRectForMultipleXs(context);
+			} else {
+				const index = $$.getDataIndexFromEvent(state.event);
+
+				$$.callOverOutForTouch(index);
+
+				index === -1 ? $$.unselectRect() : $$.selectRectForSingle(context, index);
+			}
+		};
+
+		const unselectRect = () => {
+			$$.unselectRect();
+			$$.callOverOutForTouch();
+		};
+
+		// call event.preventDefault()
+		// according 'interaction.inputType.touch.preventDefault' option
+		const preventDefault = config.interaction_inputType_touch.preventDefault;
+		const isPrevented = (isBoolean(preventDefault) && preventDefault) || false;
+		const preventThreshold = (!isNaN(preventDefault) && preventDefault) || null;
+		let startPx;
+
+		const preventEvent = event => {
+			const eventType = event.type;
+			const touch = event.changedTouches[0];
+			const currentXY = touch[`client${config.axis_rotated ? "Y" : "X"}`];
+
+			// prevent document scrolling
+			if (eventType === "touchstart") {
+				if (isPrevented) {
+					event.preventDefault();
+				} else if (preventThreshold !== null) {
+					startPx = currentXY;
+				}
+			} else if (eventType === "touchmove") {
+				if (
+					isPrevented || startPx === true || (
+						preventThreshold !== null &&
+						Math.abs(startPx - currentXY) >= preventThreshold
+					)
+				) {
+					// once prevented, keep prevented during whole 'touchmove' context
+					startPx = true;
+					event.preventDefault();
+				}
+			}
+		};
+
+		// bind touch events
+		eventRect
+			.on("touchstart", event => {
+				state.event = event;
+				$$.updateEventRect();
+			})
+			.on("touchstart.eventRect touchmove.eventRect", event => {
+				state.event = event;
+
+				if (!eventRect.empty() && eventRect.classed($EVENT.eventRect)) {
+					// if touch points are > 1, means doing zooming interaction. In this case do not execute tooltip codes.
+					if (
+						state.dragging || state.flowing || $$.hasArcType() ||
+						event.touches.length > 1
+					) {
+						return;
+					}
+
+					preventEvent(event);
+					selectRect(eventRect.node());
+				} else {
+					unselectRect();
+				}
+			}, true)
+			.on("touchend.eventRect", event => {
+				state.event = event;
+
+				if (!eventRect.empty() && eventRect.classed($EVENT.eventRect)) {
+					if ($$.hasArcType() || !$$.toggleShape || state.cancelClick) {
+						state.cancelClick && (state.cancelClick = false);
+					}
+				}
+			}, true);
+
+		svg.on("touchstart", event => {
+			state.event = event;
+			const {target} = event;
+
+			if (target && target !== eventRect.node()) {
+				unselectRect();
+			}
+		});
+	},
+
+	/**
+	 * Update event rect size
+	 * @param {d3Selection} eventRect Event <rect> element
+	 * @param {boolean} force Force to update
+	 * @private
+	 */
+	updateEventRect(eventRect?, force = false): void {
+		const $$ = this;
+		const {state, $el} = $$;
+		const {eventReceiver, width, height, rendered, resizing} = state;
+		const rectElement = eventRect || $el.eventRect;
+
+		const updateClientRect = (): void => {
+			if (eventReceiver) {
+				const scrollPos = getScrollPosition($el.chart.node());
+
+				eventReceiver.rect = rectElement.node()
+					.getBoundingClientRect()
+					.toJSON();
+
+				eventReceiver.rect.top += scrollPos.y;
+				eventReceiver.rect.left += scrollPos.x;
+			}
+		};
+
+		if (!rendered || resizing || force) {
+			rectElement
+				.attr("x", 0)
+				.attr("y", 0)
+				.attr("width", width)
+				.attr("height", height);
+
+			// only for init
+			if (!rendered || force) {
+				rectElement.classed($EVENT.eventRect, true);
+			}
+		}
+
+		updateClientRect();
+	},
+
+	/**
+	 * Update event type (single or multiple x)
+	 * @param {d3Selection | boolean} target Target element or boolean to rebind event
+	 */
+	updateEventType(target: d3Selection | boolean): void {
+		const $$ = this;
+		const isRebindCall = isBoolean(target);
+		const eventRect = isRebindCall ? $$.$el.eventRect : target;
+		const unbindEvent = isRebindCall ? target !== eventRect?.datum().multipleX : false;
+
+		if (eventRect) {
+			// release previous event listeners
+			unbindEvent && eventRect?.on("mouseover mousemove mouseout click", null);
+
+			$$.isMultipleX() ?
+				$$.generateEventRectsForMultipleXs(eventRect) :
+				$$.generateEventRectsForSingleX(eventRect);
+		}
+	},
+
+	/**
+	 * Updates the location and size of the eventRect.
+	 * @private
+	 */
+	updateEventRectData(): void {
+		const $$ = this;
+		const {config, scale, state} = $$;
+		const xScale = scale.zoom || scale.x;
+		const isRotated = config.axis_rotated;
+		const isMultipleX = $$.isMultipleX();
+		let x;
+		let y;
+		let w;
+		let h;
+
+		$$.updateEventType(isMultipleX);
+
+		if (isMultipleX) {
+			// TODO: rotated not supported yet
+			x = 0;
+			y = 0;
+			w = state.width;
+			h = state.height;
+		} else {
+			let rectW;
+			let rectX;
+
+			if ($$.axis.isCategorized()) {
+				rectW = $$.getEventRectWidth();
+				rectX = d => xScale(d.x) - (rectW / 2);
+			} else {
+				const getPrevNextX = ({index}) => ({
+					prev: $$.getPrevX(index),
+					next: $$.getNextX(index)
+				});
+
+				rectW = (d): number => {
+					const x = getPrevNextX(d);
+					const xDomain = xScale.domain();
+					let val: number;
+
+					// if there this is a single data point make the eventRect full width (or height)
+					if (x.prev === null && x.next === null) {
+						val = isRotated ? state.height : state.width;
+					} else if (x.prev === null) {
+						val = (xScale(x.next) + xScale(d.x)) / 2;
+					} else if (x.next === null) {
+						val = xScale(xDomain[1]) - (
+							(xScale(x.prev) + xScale(d.x)) / 2
+						);
+					} else {
+						Object.keys(x).forEach((key, i) => {
+							x[key] = x[key] ?? xDomain[i];
+						});
+
+						val = Math.max(0, (xScale(x.next) - xScale(x.prev)) / 2);
+					}
+
+					return val;
+				};
+
+				rectX = (d): number => {
+					const x = getPrevNextX(d);
+					let val: number;
+
+					// if there this is a single data point position the eventRect at 0
+					if (x.prev === null && x.next === null) {
+						val = 0;
+					} else if (x.prev === null) {
+						val = xScale(xScale.domain()[0]);
+					} else {
+						val = (xScale(d.x) + xScale(x.prev)) / 2;
+					}
+
+					return val;
+				};
+			}
+
+			x = isRotated ? 0 : rectX;
+			y = isRotated ? rectX : 0;
+			w = isRotated ? state.width : rectW;
+			h = isRotated ? rectW : state.height;
+		}
+
+		const {eventReceiver} = state;
+		const call: any = (fn, v) => (isFunction(fn) ? fn(v) : fn);
+
+		// reset for possible remains coords data before the data loading
+		eventReceiver.coords.splice(eventReceiver.data.length);
+
+		eventReceiver.data.forEach((d, i) => {
+			eventReceiver.coords[i] = {
+				x: call(x, d),
+				y: call(y, d),
+				w: call(w, d),
+				h: call(h, d)
+			};
+		});
+	},
+
+	/**
+	 * Seletct rect for single x value
+	 * @param {d3Selection} context Event rect element
+	 * @param {number} index x Axis index
+	 * @private
+	 */
+	selectRectForSingle(context: SVGRectElement, index: number): void {
+		const $$ = this;
+		const {config, $el: {main, circle}} = $$;
+		const isSelectionEnabled = config.data_selection_enabled;
+		const isSelectionGrouped = config.data_selection_grouped;
+		const isSelectable = config.data_selection_isselectable;
+		const isTooltipGrouped = config.tooltip_grouped;
+		const selectedData = $$.getAllValuesOnIndex(index);
+
+		if (isTooltipGrouped) {
+			$$.showTooltip(selectedData, context);
+			$$.showGridFocus?.(selectedData);
+
+			if (!isSelectionEnabled || isSelectionGrouped) {
+				return;
+			}
+		}
+
+		// remove possible previous focused state
+		!circle &&
+			main.selectAll(`.${$COMMON.EXPANDED}:not(.${$SHAPE.shape}-${index})`).classed(
+				$COMMON.EXPANDED,
+				false
+			);
+
+		const shapeAtIndex = main.selectAll(`.${$SHAPE.shape}-${index}`)
+			.classed($COMMON.EXPANDED, true)
+			.style("cursor", isSelectable ? "pointer" : null)
+			.filter(function(d) {
+				return $$.isWithinShape(this, d);
+			});
+
+		if (shapeAtIndex.empty() && !isTooltipGrouped) {
+			$$.hideGridFocus?.();
+			$$.hideTooltip();
+
+			!isSelectionGrouped && $$.setExpand(index);
+		}
+
+		shapeAtIndex
+			.call(selected => {
+				const d = selected.data();
+
+				if (
+					isSelectionEnabled &&
+					(isSelectionGrouped || isSelectable?.bind($$.api)(d))
+				) {
+					context.style.cursor = "pointer";
+				}
+
+				if (!isTooltipGrouped) {
+					$$.showTooltip(d, context);
+					$$.showGridFocus?.(d);
+					$$.unexpandCircles?.();
+
+					selected.each(d => $$.setExpand(index, d.id));
+				}
+			});
+	},
+
+	/**
+	 * Select rect for multiple x values
+	 * @param {d3Selection} context Event rect element
+	 * @param {boolean} [triggerEvent=true] Whether trigger event or not
+	 * @private
+	 */
+	selectRectForMultipleXs(context: SVGRectElement, triggerEvent = true): void {
+		const $$ = this;
+		const {config, state} = $$;
+		const targetsToShow = $$.filterTargetsToShow($$.data.targets);
+
+		// do nothing when dragging
+		if (state.dragging || $$.hasArcType(targetsToShow)) {
+			return;
+		}
+
+		const mouse = getPointer(state.event, context);
+		const closest = $$.findClosestFromTargets(targetsToShow, mouse);
+
+		if (triggerEvent && state.mouseover && (!closest || closest.id !== state.mouseover.id)) {
+			config.data_onout.call($$.api, state.mouseover);
+			state.mouseover = undefined;
+		}
+
+		if (!closest) {
+			$$.unselectRect();
+			return;
+		}
+
+		const sameXData = (
+				$$.isBubbleType(closest) || $$.isScatterType(closest) || !config.tooltip_grouped
+			) ?
+			[closest] :
+			$$.filterByX(targetsToShow, closest.x);
+
+		// show tooltip when cursor is close to some point
+		const selectedData = sameXData.map(d => $$.addName(d));
+
+		$$.showTooltip(selectedData, context);
+
+		// expand points
+		$$.setExpand(closest.index, closest.id, true);
+
+		// Show xgrid focus line
+		$$.showGridFocus(selectedData);
+
+		const dist = $$.dist(closest, mouse);
+
+		// Show cursor as pointer if point is close to mouse position
+		if ($$.isBarType(closest.id) || dist < $$.getPointSensitivity(closest)) {
+			$$.$el.svg.select(`.${$EVENT.eventRect}`).style("cursor", "pointer");
+
+			if (triggerEvent && !state.mouseover) {
+				config.data_onover.call($$.api, closest);
+				state.mouseover = closest;
+			}
+		}
+	},
+
+	/**
+	 * Unselect EventRect.
+	 * @private
+	 */
+	unselectRect(): void {
+		const $$ = this;
+		const {$el: {circle, tooltip}} = $$;
+
+		$$.$el.svg.select(`.${$EVENT.eventRect}`).style("cursor", null);
+		$$.hideGridFocus();
+
+		if (tooltip) {
+			$$.hideTooltip();
+			$$._handleLinkedCharts(false);
+		}
+
+		circle && !$$.isPointFocusOnly() && $$.unexpandCircles();
+		$$.expandBarTypeShapes(false);
+	},
+
+	/**
+	 * Create eventRect for each data on the x-axis.
+	 * Register touch and drag events.
+	 * @param {object} eventRectEnter d3.select($EVENT.eventRects) object.
+	 * @returns {object} d3.select($EVENT.eventRects) object.
+	 * @private
+	 */
+	generateEventRectsForSingleX(eventRectEnter) {
+		const $$ = this;
+		const {config, state} = $$;
+		const {eventReceiver} = state;
+
+		const rect = eventRectEnter
+			.style("cursor",
+				config.data_selection_enabled && config.data_selection_grouped ? "pointer" : null)
+			.on("click", function(event) {
+				state.event = event;
+
+				const {currentIdx, data} = eventReceiver;
+				const d = data[
+					currentIdx === -1 ? $$.getDataIndexFromEvent(event) : currentIdx
+				];
+
+				$$.clickHandlerForSingleX.bind(this)(d, $$);
+			})
+			.datum({multipleX: false});
+
+		if (state.inputType === "mouse") {
+			const getData = event => {
+				const index = event ? $$.getDataIndexFromEvent(event) : eventReceiver.currentIdx;
+
+				return index > -1 ? eventReceiver.data[index] : null;
+			};
+
+			rect
+				.on("mouseover", event => {
+					state.event = event;
+					$$.updateEventRect();
+
+					Object.values($$.$el.axisTooltip)
+						.forEach((v: d3Selection) => v?.style("display", null));
+				})
+				.on("mousemove", function(event) {
+					const d = getData(event);
+
+					state.event = event;
+
+					if (!d) {
+						return;
+					}
+
+					let {index} = d;
+					const stepType = config.line_step_type;
+
+					// tooltip position match for step-before & step-after
+					if (
+						config.line_step_tooltipMatch && $$.hasType("step") &&
+						/^step\-(before|after)$/.test(stepType)
+					) {
+						const scale = $$.scale.zoom || $$.scale.x;
+						const xs = $$.axis.xs[index];
+						const inverted = scale.invert(getPointer(event, this)[0]);
+
+						if (stepType === "step-after" && inverted < xs) {
+							index -= 1;
+						} else if (stepType === "step-before" && inverted > xs) {
+							index += 1;
+						}
+					}
+
+					$$.showAxisGridFocus();
+
+					const eventOnSameIdx = config.tooltip_grouped &&
+						index === eventReceiver.currentIdx;
+
+					// do nothing while dragging/flowing
+					if (state.dragging || state.flowing || $$.hasArcType() || eventOnSameIdx) {
+						config.tooltip_show && eventOnSameIdx && $$.setTooltipPosition();
+						return;
+					}
+
+					if (index !== eventReceiver.currentIdx) {
+						$$.setOverOut(false, eventReceiver.currentIdx);
+						eventReceiver.currentIdx = index;
+					}
+
+					index === -1 ? $$.unselectRect() : $$.selectRectForSingle(this, index);
+
+					// As of individual data point(or <path>) element can't bind mouseover/out event
+					// to determine current interacting element, so use 'mousemove' event instead.
+					$$.setOverOut(index !== -1, index);
+				})
+				.on("mouseout", event => {
+					state.event = event;
+
+					// chart is destroyed
+					if (!config || $$.hasArcType() || eventReceiver.currentIdx === -1) {
+						return;
+					}
+
+					$$.hideAxisGridFocus();
+
+					$$.unselectRect();
+					$$.setOverOut(false, eventReceiver.currentIdx);
+
+					// reset the event current index
+					eventReceiver.currentIdx = -1;
+				});
+		}
+
+		return rect;
+	},
+
+	clickHandlerForSingleX(d, ctx): void {
+		const $$ = ctx;
+		const {config, state, $el: {main}} = $$;
+
+		if (!d || $$.hasArcType() || state.cancelClick) {
+			state.cancelClick && (state.cancelClick = false);
+
+			return;
+		}
+
+		const {index} = d;
+
+		main.selectAll(`.${$SHAPE.shape}-${index}`)
+			.each(function(d2) {
+				if (config.data_selection_grouped || $$.isWithinShape(this, d2)) {
+					$$.toggleShape?.(this, d2, index);
+					config.data_onclick.bind($$.api)(d2, this);
+				}
+			});
+	},
+
+	/**
+	 * Create an eventRect,
+	 * Register touch and drag events.
+	 * @param {object} eventRectEnter d3.select($EVENT.eventRects) object.
+	 * @private
+	 */
+	generateEventRectsForMultipleXs(eventRectEnter): void {
+		const $$ = this;
+		const {state} = $$;
+
+		eventRectEnter
+			.on("click", function(event) {
+				state.event = event;
+				$$.clickHandlerForMultipleXS.bind(this)($$);
+			})
+			.datum({multipleX: true});
+
+		if (state.inputType === "mouse") {
+			eventRectEnter
+				.on("mouseover mousemove", function(event) {
+					state.event = event;
+					$$.selectRectForMultipleXs(this);
+				})
+				.on("mouseout", event => {
+					state.event = event;
+
+					// chart is destroyed
+					if (!$$.config || $$.hasArcType()) {
+						return;
+					}
+
+					$$.unselectRect();
+				});
+		}
+	},
+
+	clickHandlerForMultipleXS(ctx): void {
+		const $$ = ctx;
+		const {config, state} = $$;
+		const targetsToShow = $$.filterTargetsToShow($$.data.targets);
+
+		if ($$.hasArcType(targetsToShow)) {
+			return;
+		}
+
+		const mouse = getPointer(state.event, this);
+		const closest = $$.findClosestFromTargets(targetsToShow, mouse);
+		const sensitivity = config.point_sensitivity === "radius" ?
+			closest.r :
+			config.point_sensitivity;
+
+		if (!closest) {
+			return;
+		}
+
+		// select if selection enabled
+		if ($$.isBarType(closest.id) || $$.dist(closest, mouse) < sensitivity) {
+			$$.$el.main.selectAll(`.${$SHAPE.shapes}${$$.getTargetSelectorSuffix(closest.id)}`)
+				.selectAll(`.${$SHAPE.shape}-${closest.index}`)
+				.each(function() {
+					if (config.data_selection_grouped || $$.isWithinShape(this, closest)) {
+						$$.toggleShape?.(this, closest, closest.index);
+						config.data_onclick.bind($$.api)(closest, this);
+					}
+				});
+		}
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_internals_category.ts.html b/release/3.12.4/doc/ChartInternal_internals_category.ts.html new file mode 100644 index 000000000..c9d4c546c --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_internals_category.ts.html @@ -0,0 +1,103 @@ + + + + + + ChartInternal/internals/category.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/internals/category.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+export default {
+	/**
+	 * Category Name
+	 * @param {number} i Index number
+	 * @returns {string} category Name
+	 * @private
+	 */
+	categoryName(i: number): string {
+		const {axis_x_categories} = this.config;
+
+		return axis_x_categories?.[i] ?? i;
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_internals_clip.ts.html b/release/3.12.4/doc/ChartInternal_internals_clip.ts.html new file mode 100644 index 000000000..550ffc232 --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_internals_clip.ts.html @@ -0,0 +1,233 @@ + + + + + + ChartInternal/internals/clip.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/internals/clip.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+
+export default {
+	initClip(): void {
+		const $$ = this;
+		const {clip, datetimeId} = $$.state;
+
+		// MEMO: clipId needs to be unique because it conflicts when multiple charts exist
+		clip.id = `${datetimeId}-clip`;
+
+		clip.idXAxis = `${clip.id}-xaxis`;
+		clip.idYAxis = `${clip.id}-yaxis`;
+		clip.idGrid = `${clip.id}-grid`;
+
+		// Define 'clip-path' attribute values
+		clip.path = $$.getClipPath(clip.id);
+		clip.pathXAxis = $$.getClipPath(clip.idXAxis);
+		clip.pathYAxis = $$.getClipPath(clip.idYAxis);
+		clip.pathGrid = $$.getClipPath(clip.idGrid);
+	},
+
+	getClipPath(id: string): string | null {
+		const $$ = this;
+		const {config} = $$;
+
+		if (
+			(!config.clipPath && /-clip$/.test(id)) ||
+			(!config.axis_x_clipPath && /-clip-xaxis$/.test(id)) ||
+			(!config.axis_y_clipPath && /-clip-yaxis$/.test(id))
+		) {
+			return null;
+		}
+
+		return `url(#${id})`;
+	},
+
+	appendClip(parent, id: string): void {
+		id && parent.append("clipPath")
+			.attr("id", id)
+			.append("rect");
+	},
+
+	/**
+	 * Set x Axis clipPath dimension
+	 * @param {d3Selecton} node clipPath <rect> selection
+	 * @private
+	 */
+	setXAxisClipPath(node): void {
+		const $$ = this;
+		const {config, state: {margin, width, height}} = $$;
+		const isRotated = config.axis_rotated;
+		const left = Math.max(30, margin.left) - (isRotated ? 0 : 20);
+
+		// less than 20 is not enough to show the axis label 'outer' without legend
+		const h = (isRotated ? (margin.top + height) + 10 : margin.bottom) + 20;
+		const x = isRotated ? -(1 + left) : -(left - 1);
+		const y = -15; // -Math.max(15, margin.top);
+		const w = isRotated ? margin.left + 20 : width + 10 + left;
+
+		node
+			.attr("x", x)
+			.attr("y", y)
+			.attr("width", w)
+			.attr("height", h);
+	},
+
+	/**
+	 * Set y Axis clipPath dimension
+	 * @param {d3Selection} node clipPath <rect> selection
+	 * @private
+	 */
+	setYAxisClipPath(node): void {
+		const $$ = this;
+		const {config, state: {margin, width, height}} = $$;
+		const isRotated = config.axis_rotated;
+
+		const left = Math.max(30, margin.left) - (isRotated ? 20 : 0);
+		const isInner = config.axis_y_inner;
+
+		const x = isInner && !isRotated ?
+			(config.axis_y_label.text ? -20 : -1) :
+			(isRotated ? -(1 + left) : -(left - 1));
+		const y = -(isRotated ? 20 : margin.top);
+		const w = (isRotated ? width + 15 + left : margin.left + 20) + (isInner ? 20 : 0);
+		const h = (isRotated ? margin.bottom + 10 : (margin.top + height)) + 10;
+
+		node
+			.attr("x", x)
+			.attr("y", y)
+			.attr("width", w)
+			.attr("height", h);
+	},
+
+	updateXAxisTickClip(): void {
+		const $$ = this;
+		const {config, state: {clip, xAxisHeight}, $el: {defs}} = $$;
+		const newXAxisHeight = $$.getHorizontalAxisHeight("x");
+
+		if (defs && !clip.idXAxisTickTexts) {
+			const clipId = `${clip.id}-xaxisticktexts`;
+
+			$$.appendClip(defs, clipId);
+			clip.pathXAxisTickTexts = $$.getClipPath(clip.idXAxisTickTexts);
+			clip.idXAxisTickTexts = clipId;
+		}
+
+		if (
+			!config.axis_x_tick_multiline &&
+			$$.getAxisTickRotate("x") &&
+			newXAxisHeight !== xAxisHeight
+		) {
+			$$.setXAxisTickClipWidth();
+			$$.setXAxisTickTextClipPathWidth();
+		}
+
+		$$.state.xAxisHeight = newXAxisHeight;
+	},
+
+	setXAxisTickClipWidth(): void {
+		const $$ = this;
+		const {config, state: {current: {maxTickSize}}} = $$;
+
+		const xAxisTickRotate = $$.getAxisTickRotate("x");
+
+		if (!config.axis_x_tick_multiline && xAxisTickRotate) {
+			const sinRotation = Math.sin(Math.PI / 180 * Math.abs(xAxisTickRotate));
+
+			maxTickSize.x.clipPath = ($$.getHorizontalAxisHeight("x") - 20) / sinRotation;
+		} else {
+			maxTickSize.x.clipPath = null;
+		}
+	},
+
+	setXAxisTickTextClipPathWidth(): void {
+		const $$ = this;
+		const {state: {clip, current}, $el: {svg}} = $$;
+
+		if (svg) {
+			svg.select(`#${clip.idXAxisTickTexts} rect`)
+				.attr("width", current.maxTickSize.x.clipPath)
+				.attr("height", 30);
+		}
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_internals_legend.ts.html b/release/3.12.4/doc/ChartInternal_internals_legend.ts.html new file mode 100644 index 000000000..8de8445fe --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_internals_legend.ts.html @@ -0,0 +1,1014 @@ + + + + + + ChartInternal/internals/legend.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/internals/legend.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {namespaces as d3Namespaces, select as d3Select} from "d3-selection";
+import {$FOCUS, $GAUGE, $LEGEND} from "../../config/classes";
+import {document} from "../../module/browser";
+import {KEY} from "../../module/Cache";
+import {
+	callFn,
+	getOption,
+	isDefined,
+	isEmpty,
+	isFunction,
+	notEmpty,
+	tplProcess
+} from "../../module/util";
+
+/**
+ * Get color string for given data id
+ * @param {string} id Data id
+ * @returns {string} Color string
+ * @private
+ */
+function getLegendColor(id: string): string {
+	const $$ = this;
+	const data = $$.getDataById(id);
+	const color = $$.levelColor ? $$.levelColor(data.values[0].value) : $$.color(data);
+
+	return color;
+}
+
+/**
+ * Get formatted text value
+ * @param {string} id Legend text id
+ * @param {boolean} formatted Whether or not to format the text
+ * @returns {string} Formatted legend text
+ */
+function getFormattedText<T = string>(id: T, formatted = true): T {
+	const {config} = this;
+	let text = config.data_names[id] ?? id;
+
+	if (formatted && isFunction(config.legend_format)) {
+		text = config.legend_format(text);
+	}
+
+	return text;
+}
+
+export default {
+	/**
+	 * Initialize the legend.
+	 * @private
+	 */
+	initLegend(): void {
+		const $$ = this;
+		const {config, $el} = $$;
+
+		$$.legendItemTextBox = {};
+		$$.state.legendHasRendered = false;
+
+		if (config.legend_show) {
+			if (!config.legend_contents_bindto) {
+				$el.legend = $$.$el.svg.append("g")
+					.classed($LEGEND.legend, true)
+					.attr("transform", $$.getTranslate("legend"));
+			}
+
+			// MEMO: call here to update legend box and translate for all
+			// MEMO: translate will be updated by this, so transform not needed in updateLegend()
+			$$.updateLegend();
+		} else {
+			$$.state.hiddenLegendIds = $$.mapToIds($$.data.targets);
+		}
+	},
+
+	/**
+	 * Update legend element
+	 * @param {Array} targetIds ID's of target
+	 * @param {object} options withTransform : Whether to use the transform property / withTransitionForTransform: Whether transition is used when using the transform property / withTransition : whether or not to transition.
+	 * @param {object} transitions Return value of the generateTransitions
+	 * @private
+	 */
+	updateLegend(targetIds, options, transitions): void {
+		const $$ = this;
+		const {config, state, scale, $el} = $$;
+
+		const optionz = options || {
+			withTransform: false,
+			withTransitionForTransform: false,
+			withTransition: false
+		};
+
+		optionz.withTransition = getOption(optionz, "withTransition", true);
+		optionz.withTransitionForTransform = getOption(optionz, "withTransitionForTransform", true);
+
+		if (config.legend_contents_bindto && config.legend_contents_template) {
+			$$.updateLegendTemplate();
+		} else if (!state.hasTreemap) {
+			$$.updateLegendElement(
+				targetIds || $$.mapToIds($$.data.targets),
+				optionz,
+				transitions
+			);
+		}
+
+		// toggle legend state
+		$el.legend?.selectAll(`.${$LEGEND.legendItem}`)
+			.classed($LEGEND.legendItemHidden, function(id) {
+				const hide = !$$.isTargetToShow(id);
+
+				if (hide) {
+					this.style.opacity = null;
+				}
+
+				return hide;
+			});
+
+		// Update size and scale
+		$$.updateScales(false, !scale.zoom);
+		$$.updateSvgSize();
+
+		// Update g positions
+		$$.transformAll(optionz.withTransitionForTransform, transitions);
+
+		state.legendHasRendered = true;
+	},
+
+	/**
+	 * Update legend using template option
+	 * @private
+	 */
+	updateLegendTemplate(): void {
+		const $$ = this;
+		const {config, $el} = $$;
+		const wrapper = d3Select(config.legend_contents_bindto);
+		const template = config.legend_contents_template;
+
+		if (!wrapper.empty()) {
+			const targets = $$.mapToIds($$.data.targets);
+			const ids: string[] = [];
+			let html = "";
+
+			targets.forEach(v => {
+				const content = isFunction(template) ?
+					template.bind($$.api)(v, $$.color(v), $$.api.data(v)[0].values) :
+					tplProcess(template, {
+						COLOR: $$.color(v),
+						TITLE: v
+					});
+
+				if (content) {
+					ids.push(v);
+					html += content;
+				}
+			});
+
+			const legendItem = wrapper.html(html)
+				.selectAll(function() {
+					return this.childNodes;
+				})
+				.data(ids);
+
+			$$.setLegendItem(legendItem);
+
+			$el.legend = wrapper;
+		}
+	},
+
+	/**
+	 * Update the size of the legend.
+	 * @param {Obejct} size Size object
+	 * @private
+	 */
+	updateSizeForLegend(size): void {
+		const $$ = this;
+		const {
+			config,
+			state: {
+				isLegendTop,
+				isLegendLeft,
+				isLegendRight,
+				isLegendInset,
+				current
+			}
+		} = $$;
+		const {width, height} = size;
+
+		const insetLegendPosition = {
+			top: isLegendTop ?
+				$$.getCurrentPaddingByDirection("top") + config.legend_inset_y + 5.5 :
+				current.height - height - $$.getCurrentPaddingByDirection("bottom") -
+				config.legend_inset_y,
+			left: isLegendLeft ?
+				$$.getCurrentPaddingByDirection("left") + config.legend_inset_x + 0.5 :
+				current.width - width - $$.getCurrentPaddingByDirection("right") -
+				config.legend_inset_x + 0.5
+		};
+
+		$$.state.margin3 = {
+			top: isLegendRight ?
+				0 :
+				isLegendInset ?
+				insetLegendPosition.top :
+				current.height - height,
+			right: NaN,
+			bottom: 0,
+			left: isLegendRight ?
+				current.width - width :
+				isLegendInset ?
+				insetLegendPosition.left :
+				0
+		};
+	},
+
+	/**
+	 * Transform Legend
+	 * @param {boolean} withTransition whether or not to transition.
+	 * @private
+	 */
+	transformLegend(withTransition): void {
+		const $$ = this;
+		const {$el: {legend}, $T} = $$;
+
+		$T(legend, withTransition)
+			.attr("transform", $$.getTranslate("legend"));
+	},
+
+	/**
+	 * Update the legend step
+	 * @param {number} step Step value
+	 * @private
+	 */
+	updateLegendStep(step: number): void {
+		this.state.legendStep = step;
+	},
+
+	/**
+	 * Update legend item width
+	 * @param {number} width Width value
+	 * @private
+	 */
+	updateLegendItemWidth(width: number): void {
+		this.state.legendItemWidth = width;
+	},
+
+	/**
+	 * Update legend item height
+	 * @param {number} height Height value
+	 * @private
+	 */
+	updateLegendItemHeight(height): void {
+		this.state.legendItemHeight = height;
+	},
+
+	/**
+	 * Update legend item color
+	 * @param {string} id Corresponding data ID value
+	 * @param {string} color Color value
+	 * @private
+	 */
+	updateLegendItemColor(id: string, color: string): void {
+		const {legend} = this.$el;
+
+		if (legend) {
+			legend.select(`.${$LEGEND.legendItem}-${id} line`)
+				.style("stroke", color);
+		}
+	},
+
+	/**
+	 * Get the width of the legend
+	 * @returns {number} width
+	 * @private
+	 */
+	getLegendWidth(): number {
+		const $$ = this;
+		const {current: {width}, isLegendRight, isLegendInset, legendItemWidth, legendStep} =
+			$$.state;
+
+		return $$.config.legend_show ?
+			(
+				isLegendRight || isLegendInset ? legendItemWidth * (legendStep + 1) : width
+			) :
+			0;
+	},
+
+	/**
+	 * Get the height of the legend
+	 * @returns {number} height
+	 * @private
+	 */
+	getLegendHeight(): number {
+		const $$ = this;
+		const {current, isLegendRight, legendItemHeight, legendStep} = $$.state;
+		const isFitPadding = $$.config.padding?.mode === "fit";
+
+		return $$.config.legend_show ?
+			(
+				isLegendRight ? current.height : (
+					isFitPadding ? 10 : Math.max(20, legendItemHeight)
+				) * (legendStep + 1)
+			) :
+			0;
+	},
+
+	/**
+	 * Get the opacity of the legend that is unfocused
+	 * @param {d3.selection} legendItem Legend item node
+	 * @returns {string|null} opacity
+	 * @private
+	 */
+	opacityForUnfocusedLegend(legendItem): string | null {
+		return legendItem.classed($LEGEND.legendItemHidden) ? null : "0.3";
+	},
+
+	/**
+	 * Toggles the focus of the legend
+	 * @param {Array} targetIds ID's of target
+	 * @param {boolean} focus whether or not to focus.
+	 * @private
+	 */
+	toggleFocusLegend(targetIds: string[], focus: boolean): void {
+		const $$ = this;
+		const {$el: {legend}, $T} = $$;
+		const targetIdz = $$.mapToTargetIds(targetIds);
+
+		legend && $T(legend.selectAll(`.${$LEGEND.legendItem}`)
+			.filter(id => targetIdz.indexOf(id) >= 0)
+			.classed($FOCUS.legendItemFocused, focus))
+			.style("opacity", function() {
+				return focus ? null : $$.opacityForUnfocusedLegend.call($$, d3Select(this));
+			});
+	},
+
+	/**
+	 * Revert the legend to its default state
+	 * @private
+	 */
+	revertLegend(): void {
+		const $$ = this;
+		const {$el: {legend}, $T} = $$;
+
+		legend && $T(legend.selectAll(`.${$LEGEND.legendItem}`)
+			.classed($FOCUS.legendItemFocused, false))
+			.style("opacity", null);
+	},
+
+	/**
+	 * Shows the legend
+	 * @param {Array} targetIds ID's of target
+	 * @private
+	 */
+	showLegend(targetIds: string[]): void {
+		const $$ = this;
+		const {config, $el, $T} = $$;
+
+		if (!config.legend_show) {
+			config.legend_show = true;
+
+			$el.legend ? $el.legend.style("visibility", null) : $$.initLegend();
+
+			!$$.state.legendHasRendered && $$.updateLegend();
+		}
+
+		$$.removeHiddenLegendIds(targetIds);
+
+		$T(
+			$el.legend.selectAll($$.selectorLegends(targetIds))
+				.style("visibility", null)
+		).style("opacity", null);
+	},
+
+	/**
+	 * Hide the legend
+	 * @param {Array} targetIds ID's of target
+	 * @private
+	 */
+	hideLegend(targetIds: string[]): void {
+		const $$ = this;
+		const {config, $el: {legend}} = $$;
+
+		if (config.legend_show && isEmpty(targetIds)) {
+			config.legend_show = false;
+			legend.style("visibility", "hidden");
+		}
+
+		$$.addHiddenLegendIds(targetIds);
+		legend.selectAll($$.selectorLegends(targetIds))
+			.style("opacity", "0")
+			.style("visibility", "hidden");
+	},
+
+	/**
+	 * Get legend item textbox dimension
+	 * @param {string} id Data ID
+	 * @param {HTMLElement|d3.selection} textElement Text node element
+	 * @returns {object} Bounding rect
+	 * @private
+	 */
+	getLegendItemTextBox(id?: string, textElement?) {
+		const $$ = this;
+		const {cache, state} = $$;
+		let data;
+
+		// do not prefix w/'$', to not be resetted cache in .load() call
+		const cacheKey = KEY.legendItemTextBox;
+
+		if (id) {
+			data = (!state.redrawing && cache.get(cacheKey)) || {};
+
+			if (!data[id]) {
+				data[id] = $$.getTextRect(textElement, $LEGEND.legendItem);
+				cache.add(cacheKey, data);
+			}
+
+			data = data[id];
+		}
+
+		return data;
+	},
+
+	/**
+	 * Set legend item style & bind events
+	 * @param {d3.selection} item Item node
+	 * @private
+	 */
+	setLegendItem(item): void {
+		const $$ = this;
+		const {$el, api, config, state} = $$;
+		const isTouch = state.inputType === "touch";
+		const hasGauge = $$.hasType("gauge");
+		const useCssRule = config.boost_useCssRule;
+		const interaction = config.legend_item_interaction;
+
+		item
+			.attr("class", function(id) {
+				const node = d3Select(this);
+				const itemClass = (!node.empty() && node.attr("class")) || "";
+
+				return itemClass + $$.generateClass($LEGEND.legendItem, id);
+			})
+			.style("visibility", id => ($$.isLegendToShow(id) ? null : "hidden"));
+
+		if (config.interaction_enabled) {
+			if (useCssRule) {
+				[
+					[`.${$LEGEND.legendItem}`, "cursor:pointer"],
+					[`.${$LEGEND.legendItem} text`, "pointer-events:none"],
+					[`.${$LEGEND.legendItemPoint} text`, "pointer-events:none"],
+					[`.${$LEGEND.legendItemTile}`, "pointer-events:none"],
+					[`.${$LEGEND.legendItemEvent}`, "fill-opacity:0"]
+				].forEach(v => {
+					const [selector, props] = v;
+
+					$$.setCssRule(false, selector, [props])($el.legend);
+				});
+			}
+
+			item
+				.on(interaction.dblclick ? "dblclick" : "click",
+					interaction || isFunction(config.legend_item_onclick) ?
+						function(event, id) {
+							if (!callFn(config.legend_item_onclick, api, id)) {
+								const {altKey, target, type} = event;
+
+								if (type === "dblclick" || altKey) {
+									// when focused legend is clicked(with altKey or double clicked), reset all hiding.
+									if (
+										state.hiddenTargetIds.length &&
+										target.parentNode.getAttribute("class").indexOf(
+												$LEGEND.legendItemHidden
+											) === -1
+									) {
+										api.show();
+									} else {
+										api.hide();
+										api.show(id);
+									}
+								} else {
+									api.toggle(id);
+
+									d3Select(this)
+										.classed($FOCUS.legendItemFocused, false);
+								}
+							}
+
+							isTouch && $$.hideTooltip();
+						} :
+						null);
+
+			!isTouch && item
+				.on("mouseout", interaction || isFunction(config.legend_item_onout) ?
+					function(event, id) {
+						if (!callFn(config.legend_item_onout, api, id)) {
+							d3Select(this).classed($FOCUS.legendItemFocused, false);
+
+							if (hasGauge) {
+								$$.undoMarkOverlapped($$, `.${$GAUGE.gaugeValue}`);
+							}
+
+							$$.api.revert();
+						}
+					} :
+					null)
+				.on("mouseover", interaction || isFunction(config.legend_item_onover) ?
+					function(event, id) {
+						if (!callFn(config.legend_item_onover, api, id)) {
+							d3Select(this).classed($FOCUS.legendItemFocused, true);
+
+							if (hasGauge) {
+								$$.markOverlapped(id, $$, `.${$GAUGE.gaugeValue}`);
+							}
+
+							if (!state.transiting && $$.isTargetToShow(id)) {
+								api.focus(id);
+							}
+						}
+					} :
+					null);
+
+			// set cursor when has some interaction
+			!item.empty() && item.on("click mouseout mouseover") &&
+				item.style("cursor", $$.getStylePropValue("pointer"));
+		}
+	},
+
+	/**
+	 * Update the legend
+	 * @param {Array} targetIds ID's of target
+	 * @param {object} options withTransform : Whether to use the transform property / withTransitionForTransform: Whether transition is used when using the transform property / withTransition : whether or not to transition.
+	 * @private
+	 */
+	updateLegendElement(targetIds: string[], options): void {
+		const $$ = this;
+		const {config, state, $el: {legend}, $T} = $$;
+		const legendType = config.legend_item_tile_type;
+		const isRectangle = legendType !== "circle";
+		const legendItemR = config.legend_item_tile_r;
+
+		const itemTileSize = {
+			width: isRectangle ? config.legend_item_tile_width : legendItemR * 2,
+			height: isRectangle ? config.legend_item_tile_height : legendItemR * 2
+		};
+
+		const dimension = {
+			padding: {
+				top: 4,
+				right: 10
+			},
+			max: {
+				width: 0,
+				height: 0
+			},
+			posMin: 10,
+			step: 0,
+			tileWidth: itemTileSize.width + 5,
+			totalLength: 0
+		};
+
+		const sizes = {
+			offsets: {},
+			widths: {},
+			heights: {},
+			margins: [0],
+			steps: {}
+		};
+
+		let xForLegend;
+		let yForLegend;
+		let background;
+
+		// Skip elements when their name is set to null
+		const targetIdz = targetIds
+			.filter(id => !isDefined(config.data_names[id]) || config.data_names[id] !== null);
+
+		const withTransition = options.withTransition;
+		const updatePositions = $$.getUpdateLegendPositions(targetIdz, dimension, sizes);
+
+		if (state.isLegendInset) {
+			dimension.step = config.legend_inset_step ? config.legend_inset_step : targetIdz.length;
+			$$.updateLegendStep(dimension.step);
+		}
+
+		if (state.isLegendRight) {
+			xForLegend = id => dimension.max.width * sizes.steps[id];
+			yForLegend = id => sizes.margins[sizes.steps[id]] + sizes.offsets[id];
+		} else if (state.isLegendInset) {
+			xForLegend = id => dimension.max.width * sizes.steps[id] + 10;
+			yForLegend = id => sizes.margins[sizes.steps[id]] + sizes.offsets[id];
+		} else {
+			xForLegend = id => sizes.margins[sizes.steps[id]] + sizes.offsets[id];
+			yForLegend = id => dimension.max.height * sizes.steps[id];
+		}
+
+		const posFn = {
+			xText: (id, i?: number) => xForLegend(id, i) + 4 + itemTileSize.width,
+			xRect: (id, i?: number) => xForLegend(id, i),
+			x1Tile: (id, i?: number) => xForLegend(id, i) - 2,
+			x2Tile: (id, i?: number) => xForLegend(id, i) - 2 + itemTileSize.width,
+			yText: (id, i?: number) => yForLegend(id, i) + 9,
+			yRect: (id, i?: number) => yForLegend(id, i) - 5,
+			yTile: (id, i?: number) => yForLegend(id, i) + 4
+		};
+
+		$$.generateLegendItem(targetIdz, itemTileSize, updatePositions, posFn);
+
+		// Set background for inset legend
+		background = legend.select(`.${$LEGEND.legendBackground} rect`);
+
+		if (state.isLegendInset && dimension.max.width > 0 && background.size() === 0) {
+			background = legend.insert("g", `.${$LEGEND.legendItem}`)
+				.attr("class", $LEGEND.legendBackground)
+				.append("rect");
+		}
+
+		if (config.legend_tooltip) {
+			legend.selectAll("title")
+				.data(targetIdz)
+				.text(id => getFormattedText.bind($$)(id, false));
+		}
+
+		const texts = legend.selectAll("text")
+			.data(targetIdz)
+			.text(id => getFormattedText.bind($$)(id)) // MEMO: needed for update
+			.each(function(id, i) {
+				updatePositions(this, id, i);
+			});
+
+		$T(texts, withTransition)
+			.attr("x", posFn.xText)
+			.attr("y", posFn.yText);
+
+		const rects = legend.selectAll(`rect.${$LEGEND.legendItemEvent}`)
+			.data(targetIdz);
+
+		$T(rects, withTransition)
+			.attr("width", id => sizes.widths[id])
+			.attr("height", id => sizes.heights[id])
+			.attr("x", posFn.xRect)
+			.attr("y", posFn.yRect);
+
+		// update legend items position
+		$$.updateLegendItemPos(targetIdz, withTransition, posFn);
+
+		if (background) {
+			$T(background, withTransition)
+				.attr("height", $$.getLegendHeight() - 12)
+				.attr("width", dimension.max.width * (dimension.step + 1) + 10);
+		}
+
+		// Update all to reflect change of legend
+		$$.updateLegendItemWidth(dimension.max.width);
+		$$.updateLegendItemHeight(dimension.max.height);
+		$$.updateLegendStep(dimension.step);
+	},
+
+	/**
+	 * Get position update function
+	 * @param {Array} targetIdz Data ids
+	 * @param {object} dimension Dimension object
+	 * @param {object} sizes Size object
+	 * @returns {Function} Update position function
+	 * @private
+	 */
+	getUpdateLegendPositions(targetIdz, dimension, sizes) {
+		const $$ = this;
+		const {config, state} = $$;
+		const isLegendRightOrInset = state.isLegendRight || state.isLegendInset;
+
+		return function(textElement, id, index) {
+			const reset = index === 0;
+			const isLast = index === targetIdz.length - 1;
+			const box = $$.getLegendItemTextBox(id, textElement);
+
+			const itemWidth = box.width + dimension.tileWidth +
+				(isLast && !isLegendRightOrInset ? 0 : dimension.padding.right) +
+				config.legend_padding;
+			const itemHeight = box.height + dimension.padding.top;
+			const itemLength = isLegendRightOrInset ? itemHeight : itemWidth;
+			const areaLength = isLegendRightOrInset ? $$.getLegendHeight() : $$.getLegendWidth();
+			let margin;
+
+			// MEMO: care about condifion of step, totalLength
+			const updateValues = function(id2, withoutStep?: boolean) {
+				if (!withoutStep) {
+					margin = (areaLength - dimension.totalLength - itemLength) / 2;
+
+					if (margin < dimension.posMin) {
+						margin = (areaLength - itemLength) / 2;
+						dimension.totalLength = 0;
+						dimension.step++;
+					}
+				}
+
+				sizes.steps[id2] = dimension.step;
+				sizes.margins[dimension.step] = state.isLegendInset ? 10 : margin;
+				sizes.offsets[id2] = dimension.totalLength;
+				dimension.totalLength += itemLength;
+			};
+
+			if (reset) {
+				dimension.totalLength = 0;
+				dimension.step = 0;
+				dimension.max.width = 0;
+				dimension.max.height = 0;
+			}
+
+			if (config.legend_show && !$$.isLegendToShow(id)) {
+				sizes.widths[id] = 0;
+				sizes.heights[id] = 0;
+				sizes.steps[id] = 0;
+				sizes.offsets[id] = 0;
+
+				return;
+			}
+
+			sizes.widths[id] = itemWidth;
+			sizes.heights[id] = itemHeight;
+
+			if (!dimension.max.width || itemWidth >= dimension.max.width) {
+				dimension.max.width = itemWidth;
+			}
+
+			if (!dimension.max.height || itemHeight >= dimension.max.height) {
+				dimension.max.height = itemHeight;
+			}
+
+			const maxLength = isLegendRightOrInset ? dimension.max.height : dimension.max.width;
+
+			if (config.legend_equally) {
+				Object.keys(sizes.widths).forEach(id2 => (sizes.widths[id2] = dimension.max.width));
+				Object.keys(sizes.heights).forEach(
+					id2 => (sizes.heights[id2] = dimension.max.height)
+				);
+				margin = (areaLength - maxLength * targetIdz.length) / 2;
+
+				if (margin < dimension.posMin) {
+					dimension.totalLength = 0;
+					dimension.step = 0;
+					targetIdz.forEach(id2 => updateValues(id2));
+				} else {
+					updateValues(id, true);
+				}
+			} else {
+				updateValues(id);
+			}
+		};
+	},
+
+	/**
+	 * Generate legend item elements
+	 * @param {Array} targetIdz Data ids
+	 * @param {object} itemTileSize Item tile size {width, height}
+	 * @param {Function} updatePositions Update position function
+	 * @param {object} posFn Position functions
+	 * @private
+	 */
+	generateLegendItem(targetIdz, itemTileSize, updatePositions, posFn) {
+		const $$ = this;
+		const {config, state, $el: {legend}} = $$;
+		const usePoint = config.legend_usePoint;
+		const legendItemR = config.legend_item_tile_r;
+		const legendType = config.legend_item_tile_type;
+		const isRectangle = legendType !== "circle";
+		const isLegendRightOrInset = state.isLegendRight || state.isLegendInset;
+
+		const pos = -200;
+
+		// Define g for legend area
+		const l = legend.selectAll(`.${$LEGEND.legendItem}`)
+			.data(targetIdz)
+			.enter()
+			.append("g");
+
+		$$.setLegendItem(l);
+
+		if (config.legend_tooltip) {
+			l.append("title").text(id => id);
+		}
+
+		l.append("text")
+			.text(id => getFormattedText.bind($$)(id))
+			.each(function(id, i) {
+				updatePositions(this, id, i);
+			})
+			.style("pointer-events", $$.getStylePropValue("none"))
+			.attr("x", isLegendRightOrInset ? posFn.xText : pos)
+			.attr("y", isLegendRightOrInset ? pos : posFn.yText);
+
+		l.append("rect")
+			.attr("class", $LEGEND.legendItemEvent)
+			.style("fill-opacity", $$.getStylePropValue("0"))
+			.attr("x", isLegendRightOrInset ? posFn.xRect : pos)
+			.attr("y", isLegendRightOrInset ? pos : posFn.yRect);
+
+		if (usePoint) {
+			const ids: string[] = [];
+
+			l.append(d => {
+				const pattern = notEmpty(config.point_pattern) ?
+					config.point_pattern :
+					[config.point_type];
+
+				ids.indexOf(d) === -1 && ids.push(d);
+
+				let point = pattern[ids.indexOf(d) % pattern.length];
+
+				if (point === "rectangle") {
+					point = "rect";
+				}
+
+				return document.createElementNS(d3Namespaces.svg,
+					("hasValidPointType" in $$) && $$.hasValidPointType(point) ? point : "use");
+			})
+				.attr("class", $LEGEND.legendItemPoint)
+				.style("fill", getLegendColor.bind($$))
+				.style("pointer-events", $$.getStylePropValue("none"))
+				.attr("href", (data, idx, selection) => {
+					const node = selection[idx];
+					const nodeName = node.nodeName.toLowerCase();
+					const id = $$.getTargetSelectorSuffix(data);
+
+					return nodeName === "use" ? `#${state.datetimeId}-point${id}` : undefined;
+				});
+		} else {
+			l.append(isRectangle ? "line" : legendType)
+				.attr("class", $LEGEND.legendItemTile)
+				.style("stroke", getLegendColor.bind($$))
+				.style("pointer-events", $$.getStylePropValue("none"))
+				.call(selection => {
+					if (legendType === "circle") {
+						selection
+							.attr("r", legendItemR)
+							.style("fill", getLegendColor.bind($$))
+							.attr("cx", isLegendRightOrInset ? posFn.x2Tile : pos)
+							.attr("cy", isLegendRightOrInset ? pos : posFn.yTile);
+					} else if (isRectangle) {
+						selection
+							.attr("stroke-width", itemTileSize.height)
+							.attr("x1", isLegendRightOrInset ? posFn.x1Tile : pos)
+							.attr("y1", isLegendRightOrInset ? pos : posFn.yTile)
+							.attr("x2", isLegendRightOrInset ? posFn.x2Tile : pos)
+							.attr("y2", isLegendRightOrInset ? pos : posFn.yTile);
+					}
+				});
+		}
+	},
+
+	/**
+	 * Update legend item position
+	 * @param {Array} targetIdz Data ids
+	 * @param {boolean} withTransition Whether or not to apply transition
+	 * @param {object} posFn Position functions
+	 * @private
+	 */
+	updateLegendItemPos(targetIdz: string[], withTransition: boolean, posFn): void {
+		const $$ = this;
+		const {config, $el: {legend}, $T} = $$;
+		const usePoint = config.legend_usePoint;
+		const legendType = config.legend_item_tile_type;
+		const isRectangle = legendType !== "circle";
+
+		if (usePoint) {
+			const tiles = legend.selectAll(`.${$LEGEND.legendItemPoint}`)
+				.data(targetIdz);
+
+			$T(tiles, withTransition)
+				.each(function() {
+					const nodeName = this.nodeName.toLowerCase();
+					const pointR = config.point_r;
+					let x = "x";
+					let y = "y";
+					let xOffset = 2;
+					let yOffset = 2.5;
+					let radius = null;
+					let width = <number | null>null;
+					let height = <number | null>null;
+
+					if (nodeName === "circle") {
+						const size = pointR * 0.2;
+
+						x = "cx";
+						y = "cy";
+						radius = pointR + size;
+						xOffset = pointR * 2;
+						yOffset = -size;
+					} else if (nodeName === "rect") {
+						const size = pointR * 2.5;
+
+						width = size;
+						height = size;
+						yOffset = 3;
+					}
+
+					d3Select(this)
+						.attr(x, d => posFn.x1Tile(d) + xOffset)
+						.attr(y, d => posFn.yTile(d) - yOffset)
+						.attr("r", radius)
+						.attr("width", width)
+						.attr("height", height);
+				});
+		} else {
+			const tiles = legend.selectAll(`.${$LEGEND.legendItemTile}`)
+				.data(targetIdz);
+
+			$T(tiles, withTransition)
+				.style("stroke", getLegendColor.bind($$))
+				.call(selection => {
+					if (legendType === "circle") {
+						selection
+							.attr("cx", d => {
+								const x2 = posFn.x2Tile(d);
+
+								return x2 - ((x2 - posFn.x1Tile(d)) / 2);
+							})
+							.attr("cy", posFn.yTile);
+					} else if (isRectangle) {
+						selection
+							.attr("x1", posFn.x1Tile)
+							.attr("y1", posFn.yTile)
+							.attr("x2", posFn.x2Tile)
+							.attr("y2", posFn.yTile);
+					}
+				});
+		}
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_shape_area.ts.html b/release/3.12.4/doc/ChartInternal_shape_area.ts.html new file mode 100644 index 000000000..721167cdf --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_shape_area.ts.html @@ -0,0 +1,281 @@ + + + + + + ChartInternal/shape/area.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/shape/area.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {select as d3Select} from "d3-selection";
+import {area as d3Area} from "d3-shape";
+import {d3Selection} from "../../../types";
+import {$AREA, $CIRCLE, $LINE} from "../../config/classes";
+import {getRandom} from "../../module/util";
+import type {IData, IDataRow} from "../data/IData";
+
+type Indices = {[key: string | "__max__"]: number};
+
+export default {
+	initArea(mainLine: d3Selection): void {
+		const $$ = this;
+		const {config} = $$;
+
+		mainLine
+			.insert("g", `.${config.area_front ? $CIRCLE.circles : $LINE.lines}`)
+			.attr("class", $$.getClass("areas", true));
+	},
+
+	/**
+	 * Update area color
+	 * @param {object} d Data object
+	 * @returns {string} Color string
+	 * @private
+	 */
+	updateAreaColor(d: IDataRow): string {
+		const $$ = this;
+
+		return $$.config.area_linearGradient ? $$.getGradienColortUrl(d.id) : $$.color(d);
+	},
+
+	/**
+	 * Generate/Update elements
+	 * @param {boolean} withTransition Transition for exit elements
+	 * @param {boolean} isSub Subchart draw
+	 * @private
+	 */
+	updateArea(withTransition: boolean, isSub = false): void {
+		const $$ = this;
+		const {config, state, $el, $T} = $$;
+		const $root = isSub ? $el.subchart : $el;
+
+		config.area_linearGradient && $$.updateLinearGradient();
+
+		const area = $root.main.selectAll(`.${$AREA.areas}`)
+			.selectAll(`.${$AREA.area}`)
+			.data($$.lineData.bind($$));
+
+		$T(area.exit(), withTransition)
+			.style("opacity", "0")
+			.remove();
+
+		$root.area = area.enter().append("path")
+			.attr("class", $$.getClass("area", true))
+			.style("fill", $$.updateAreaColor.bind($$))
+			.style("opacity", function() {
+				state.orgAreaOpacity = d3Select(this).style("opacity");
+				return "0";
+			})
+			.merge(area);
+
+		area.style("opacity", state.orgAreaOpacity);
+
+		// calculate ratio if grouped data exists
+		$$.setRatioForGroupedData($root.area.data());
+	},
+
+	/**
+	 * Redraw function
+	 * @param {Function} drawFn Retuned functino from .generateDrawCandlestick()
+	 * @param {boolean} withTransition With or without transition
+	 * @param {boolean} isSub Subchart draw
+	 * @returns {Array}
+	 */
+	redrawArea(drawFn: Function, withTransition?: boolean, isSub = false): d3Selection[] {
+		const $$ = this;
+		const {area} = isSub ? this.$el.subchart : this.$el;
+		const {orgAreaOpacity} = $$.state;
+
+		return [
+			$$.$T(area, withTransition, getRandom())
+				.attr("d", drawFn)
+				.style("fill", $$.updateAreaColor.bind($$))
+				.style("opacity",
+					d => String($$.isAreaRangeType(d) ? orgAreaOpacity / 1.75 : orgAreaOpacity))
+		];
+	},
+
+	/**
+	 * Generate area path data
+	 * @param {object} areaIndices Indices
+	 * @param {boolean} isSub Weather is sub axis
+	 * @returns {Function}
+	 * @private
+	 */
+	generateDrawArea(areaIndices: Indices, isSub?: boolean): (d: IData) => string {
+		const $$ = this;
+		const {config} = $$;
+		const lineConnectNull = config.line_connectNull;
+		const isRotated = config.axis_rotated;
+
+		const getPoints = $$.generateGetAreaPoints(areaIndices, isSub);
+		const yScale = $$.getYScaleById.bind($$);
+
+		const xValue = d => (isSub ? $$.subxx : $$.xx).call($$, d);
+		const value0 = (d, i) => ($$.isGrouped(d.id) ? getPoints(d, i)[0][1] : yScale(d.id, isSub)(
+			$$.isAreaRangeType(d) ? $$.getRangedData(d, "high") : $$.getShapeYMin(d.id)
+		));
+		const value1 = (d, i) => ($$.isGrouped(d.id) ? getPoints(d, i)[1][1] : yScale(d.id, isSub)(
+			$$.isAreaRangeType(d) ? $$.getRangedData(d, "low") : d.value
+		));
+
+		return d => {
+			let values = lineConnectNull ? $$.filterRemoveNull(d.values) : d.values;
+			let x0 = 0;
+			let y0 = 0;
+			let path;
+
+			if ($$.isAreaType(d)) {
+				let area = d3Area();
+
+				area = isRotated ?
+					area.y(xValue)
+						.x0(value0)
+						.x1(value1) :
+					area.x(xValue)
+						.y0(config.area_above ? 0 : (
+							config.area_below ? $$.state.height : value0
+						))
+						.y1(value1);
+
+				if (!lineConnectNull) {
+					area = area.defined(d => $$.getBaseValue(d) !== null);
+				}
+
+				if ($$.isStepType(d)) {
+					values = $$.convertValuesToStep(values);
+				}
+
+				path = area.curve($$.getCurve(d))(values);
+			} else {
+				if (values[0]) {
+					x0 = $$.scale.x(values[0].x);
+					y0 = $$.getYScaleById(d.id)(values[0].value);
+				}
+
+				path = isRotated ? `M ${y0} ${x0}` : `M ${x0} ${y0}`;
+			}
+
+			return path || "M 0 0";
+		};
+	},
+
+	generateGetAreaPoints(
+		areaIndices: Indices,
+		isSub?: boolean
+	): (d: IDataRow, i: number) => [number, number][] {
+		// partial duplication of generateGetBarPoints
+		const $$ = this;
+		const {config} = $$;
+		const x = $$.getShapeX(0, areaIndices, isSub);
+		const y = $$.getShapeY(!!isSub);
+		const areaOffset = $$.getShapeOffset($$.isAreaType, areaIndices, isSub);
+		const yScale = $$.getYScaleById.bind($$);
+
+		return function(d, i) {
+			const y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id));
+			const offset = areaOffset(d, i) || y0; // offset is for stacked area chart
+			const posX = x(d);
+			const value = d.value as number;
+			let posY = y(d);
+
+			// fix posY not to overflow opposite quadrant
+			if (
+				config.axis_rotated && (
+					(value > 0 && posY < y0) || (value < 0 && y0 < posY)
+				)
+			) {
+				posY = y0;
+			}
+
+			// 1 point that marks the area position
+			return [
+				[posX, offset],
+				[posX, posY - (y0 - offset)],
+				[posX, posY - (y0 - offset)], // needed for compatibility
+				[posX, offset] // needed for compatibility
+			];
+		};
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_shape_bar.ts.html b/release/3.12.4/doc/ChartInternal_shape_bar.ts.html new file mode 100644 index 000000000..d2ae20e43 --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_shape_bar.ts.html @@ -0,0 +1,398 @@ + + + + + + ChartInternal/shape/bar.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/shape/bar.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import type {DataRow} from "../../../types/types";
+import {$BAR, $COMMON} from "../../config/classes";
+import {getRandom, isNumber} from "../../module/util";
+import type {IDataRow} from "../data/IData";
+import type {IOffset} from "./shape";
+
+type BarTypeDataRow = DataRow<number | number[]>;
+
+export default {
+	initBar(): void {
+		const {$el, config, state: {clip}} = this;
+
+		$el.bar = $el.main.select(`.${$COMMON.chart}`);
+
+		$el.bar = config.bar_front ? $el.bar.append("g") : $el.bar.insert("g", ":first-child");
+
+		$el.bar
+			.attr("class", $BAR.chartBars)
+			.call(this.setCssRule(false, `.${$BAR.chartBars}`, ["pointer-events:none"]));
+
+		// set clip-path attribute when condition meet
+		// https://github.com/naver/billboard.js/issues/2421
+		if (
+			config.clipPath === false && (
+				config.bar_radius || config.bar_radius_ratio
+			)
+		) {
+			$el.bar.attr("clip-path", clip.pathXAxis.replace(/#[^)]*/, `#${clip.id}`));
+		}
+	},
+
+	updateTargetsForBar(targets: BarTypeDataRow[]): void {
+		const $$ = this;
+		const {config, $el} = $$;
+		const classChartBar = $$.getChartClass("Bar");
+		const classBars = $$.getClass("bars", true);
+		const classFocus = $$.classFocus.bind($$);
+		const isSelectable = config.interaction_enabled && config.data_selection_isselectable;
+
+		if (!$el.bar) {
+			$$.initBar();
+		}
+
+		const mainBarUpdate = $el.main.select(`.${$BAR.chartBars}`)
+			.selectAll(`.${$BAR.chartBar}`)
+			.data(
+				// remove
+				targets.filter(
+					v => v.values.some(d => (isNumber(d.value) || $$.isBarRangeType(d)))
+				)
+			)
+			.attr("class", d => classChartBar(d) + classFocus(d));
+
+		const mainBarEnter = mainBarUpdate.enter().append("g")
+			.attr("class", classChartBar)
+			.style("opacity", "0")
+			.style("pointer-events", $$.getStylePropValue("none"));
+
+		// Bars for each data
+		mainBarEnter.append("g")
+			.attr("class", classBars)
+			.style("cursor", d => (isSelectable?.bind?.($$.api)(d) ? "pointer" : null))
+			.call($$.setCssRule(true, ` .${$BAR.bar}`, ["fill"], $$.color));
+	},
+
+	/**
+	 * Generate/Update elements
+	 * @param {boolean} withTransition Transition for exit elements
+	 * @param {boolean} isSub Subchart draw
+	 * @private
+	 */
+	updateBar(withTransition: boolean, isSub = false): void {
+		const $$ = this;
+		const {config, $el, $T} = $$;
+		const $root = isSub ? $el.subchart : $el;
+		const classBar = $$.getClass("bar", true);
+		const initialOpacity = $$.initialOpacity.bind($$);
+
+		config.bar_linearGradient && $$.updateLinearGradient();
+
+		const bar = $root.main.selectAll(`.${$BAR.bars}`)
+			.selectAll(`.${$BAR.bar}`)
+			.data($$.labelishData.bind($$));
+
+		$T(bar.exit(), withTransition)
+			.style("opacity", "0")
+			.remove();
+
+		$root.bar = bar.enter().append("path")
+			.attr("class", classBar)
+			.style("fill", $$.updateBarColor.bind($$))
+			.merge(bar)
+			.style("opacity", initialOpacity);
+
+		// calculate ratio if grouped data exists
+		$$.setRatioForGroupedData($root.bar.data());
+	},
+
+	/**
+	 * Update bar color
+	 * @param {object} d Data object
+	 * @returns {string} Color string
+	 * @private
+	 */
+	updateBarColor(d: IDataRow): string {
+		const $$ = this;
+		const fn = $$.getStylePropValue($$.color);
+
+		return $$.config.bar_linearGradient ? $$.getGradienColortUrl(d.id) : (fn ? fn(d) : null);
+	},
+
+	/**
+	 * Redraw function
+	 * @param {Function} drawFn Retuned function from .getDrawShape() => .generateDrawBar()
+	 * @param {boolean} withTransition With or without transition
+	 * @param {boolean} isSub Subchart draw
+	 * @returns {Array}
+	 * @private
+	 */
+	redrawBar(drawFn, withTransition?: boolean, isSub = false) {
+		const $$ = this;
+		const {bar} = isSub ? $$.$el.subchart : $$.$el;
+
+		return [
+			$$.$T(bar, withTransition, getRandom())
+				.attr("d", d => (isNumber(d.value) || $$.isBarRangeType(d)) && drawFn(d))
+				.style("fill", $$.updateBarColor.bind($$))
+				.style("opacity", null)
+		];
+	},
+
+	/**
+	 * Generate draw function
+	 * @param {object} barIndices data order within x axis.
+	 * barIndices ==> {data1: 0, data2: 0, data3: 1, data4: 1, __max__: 1}
+	 *
+	 * When gropus given as:
+	 *  groups: [
+	 * 		["data1", "data2"],
+	 * 		["data3", "data4"]
+	 * 	],
+	 *
+	 * Will be rendered as:
+	 * 		data1 data3   data1 data3
+	 * 		data2 data4   data2 data4
+	 * 		-------------------------
+	 * 			 0             1
+	 * @param {boolean} isSub If is for subchart
+	 * @returns {Function}
+	 * @private
+	 */
+	generateDrawBar(barIndices, isSub?: boolean): (d: IDataRow, i: number) => string {
+		const $$ = this;
+		const {config} = $$;
+		const getPoints = $$.generateGetBarPoints(barIndices, isSub);
+		const isRotated = config.axis_rotated;
+		const barRadius = config.bar_radius;
+		const barRadiusRatio = config.bar_radius_ratio;
+
+		// get the bar radius
+		const getRadius = isNumber(barRadius) && barRadius > 0 ? () => barRadius : (
+			isNumber(barRadiusRatio) ? w => w * barRadiusRatio : null
+		);
+
+		return (d: IDataRow, i: number) => {
+			// 4 points that make a bar
+			const points = getPoints(d, i);
+
+			// switch points if axis is rotated, not applicable for sub chart
+			const indexX = +isRotated;
+			const indexY = +!indexX;
+
+			const isUnderZero = d.value as number < 0;
+			const isInverted = config[`axis_${$$.axis.getId(d.id)}_inverted`];
+			const isNegative = (!isInverted && isUnderZero) || (isInverted && !isUnderZero);
+
+			const pathRadius = ["", ""];
+			let radius = 0;
+
+			const isGrouped = $$.isGrouped(d.id);
+			const isRadiusData = getRadius && isGrouped ? $$.isStackingRadiusData(d) : false;
+
+			if (getRadius) {
+				const index = isRotated ? indexY : indexX;
+				const barW = points[2][index] - points[0][index];
+
+				radius = !isGrouped || isRadiusData ? getRadius(barW) : 0;
+
+				const arc = `a${radius},${radius} ${isNegative ? `1 0 0` : `0 0 1`} `;
+
+				pathRadius[+!isRotated] = `${arc}${radius},${radius}`;
+				pathRadius[+isRotated] = `${arc}${
+					[-radius, radius][isRotated ? "sort" : "reverse"]()
+				}`;
+
+				isNegative && pathRadius.reverse();
+			}
+
+			// path string data shouldn't be containing new line chars
+			// https://github.com/naver/billboard.js/issues/530
+			const path = isRotated ?
+				`H${points[1][indexX] + (isNegative ? radius : -radius)} ${pathRadius[0]}V${
+					points[2][indexY] - radius
+				} ${pathRadius[1]}H${points[3][indexX]}` :
+				`V${points[1][indexY] + (isNegative ? -radius : radius)} ${pathRadius[0]}H${
+					points[2][indexX] - radius
+				} ${pathRadius[1]}V${points[3][indexY]}`;
+
+			return `M${points[0][indexX]},${points[0][indexY]}${path}z`;
+		};
+	},
+
+	/**
+	 * Determine if given stacking bar data is radius type
+	 * @param {object} d Data row
+	 * @returns {boolean}
+	 */
+	isStackingRadiusData(d: IDataRow): boolean {
+		const $$ = this;
+		const {$el, config, data, state} = $$;
+		const {id, index, value} = d;
+
+		// when the data is hidden, check if has rounded edges
+		if (state.hiddenTargetIds.indexOf(id) > -1) {
+			const target = $el.bar.filter(d => d.id === id && d.value === value);
+
+			return !target.empty() && /a\d+/i.test(target.attr("d"));
+		}
+
+		// Find same grouped ids
+		const keys = config.data_groups.find(v => v.indexOf(id) > -1);
+
+		// Get sorted list
+		const sortedList = $$.orderTargets(
+			$$.filterTargetsToShow(data.targets.filter($$.isBarType, $$))
+		).filter(v => keys.indexOf(v.id) > -1);
+
+		// Get sorted Ids. Filter positive or negative values Ids from given value
+		const sortedIds = sortedList
+			.map(v =>
+				v.values.filter(
+					v2 =>
+						v2.index === index && (
+							isNumber(value) && value > 0 ? v2.value > 0 : v2.value < 0
+						)
+				)[0]
+			)
+			.filter(Boolean)
+			.map(v => v.id);
+
+		// If the given id stays in the last position, then radius should be applied.
+		return value !== 0 && (sortedIds.indexOf(id) === sortedIds.length - 1);
+	},
+
+	/**
+	 * Generate bar coordinate points data
+	 * @param {object} barIndices Data order within x axis.
+	 * @param {boolean} isSub If is for subchart
+	 * @returns {Array} Array of coordinate points
+	 * @private
+	 */
+	generateGetBarPoints(barIndices,
+		isSub?: boolean): (d: IDataRow, i: number) => [number, number][] {
+		const $$ = this;
+		const {config} = $$;
+		const axis = isSub ? $$.axis.subX : $$.axis.x;
+		const barTargetsNum = $$.getIndicesMax(barIndices) + 1;
+		const barW: IOffset = $$.getBarW("bar", axis, barTargetsNum);
+		const barX = $$.getShapeX(barW, barIndices, !!isSub);
+		const barY = $$.getShapeY(!!isSub);
+		const barOffset = $$.getShapeOffset($$.isBarType, barIndices, !!isSub);
+		const yScale = $$.getYScaleById.bind($$);
+
+		return (d: IDataRow, i: number) => {
+			const {id} = d;
+			const y0 = yScale.call($$, id, isSub)($$.getShapeYMin(id));
+			const offset = barOffset(d, i) || y0; // offset is for stacked bar chart
+			const width = isNumber(barW) ? barW : barW[d.id] || barW._$width;
+			const isInverted = config[`axis_${$$.axis.getId(id)}_inverted`];
+			const value = d.value as number;
+			const posX = barX(d);
+			let posY = barY(d);
+
+			// fix posY not to overflow opposite quadrant
+			if (
+				config.axis_rotated && !isInverted && (
+					(value > 0 && posY < y0) || (value < 0 && y0 < posY)
+				)
+			) {
+				posY = y0;
+			}
+
+			if (!$$.isBarRangeType(d)) {
+				posY -= y0 - offset;
+			}
+
+			const startPosX = posX + width;
+
+			// 4 points that make a bar
+			return [
+				[posX, offset],
+				[posX, posY],
+				[startPosX, posY],
+				[startPosX, offset]
+			];
+		};
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_shape_candlestick.ts.html b/release/3.12.4/doc/ChartInternal_shape_candlestick.ts.html new file mode 100644 index 000000000..f941f4045 --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_shape_candlestick.ts.html @@ -0,0 +1,342 @@ + + + + + + ChartInternal/shape/candlestick.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/shape/candlestick.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {select as d3Select} from "d3-selection";
+import {$CANDLESTICK, $COMMON} from "../../config/classes";
+import {getRandom, isArray, isNumber, isObject} from "../../module/util";
+import type {IOffset} from "./shape";
+
+interface ICandlestickData {
+	open: number;
+	high: number;
+	low: number;
+	close: number;
+	volume?: number;
+}
+
+export default {
+	initCandlestick(): void {
+		const {$el} = this;
+
+		$el.candlestick = $el.main.select(`.${$COMMON.chart}`)
+			// should positioned at the beginning of the shape node to not overlap others
+			.append("g")
+			.attr("class", $CANDLESTICK.chartCandlesticks);
+	},
+
+	/**
+	 * Update targets by its data
+	 * called from: ChartInternal.updateTargets()
+	 * @param {Array} targets Filtered target by type
+	 * @private
+	 */
+	updateTargetsForCandlestick(targets): void {
+		const $$ = this;
+		const {$el} = $$;
+		const classChart = $$.getChartClass("Candlestick");
+
+		if (!$el.candlestick) {
+			$$.initCandlestick();
+		}
+
+		const mainUpdate = $$.$el.main.select(`.${$CANDLESTICK.chartCandlesticks}`)
+			.selectAll(`.${$CANDLESTICK.chartCandlestick}`)
+			.data(targets);
+
+		mainUpdate.enter().append("g")
+			.attr("class", classChart)
+			.style("pointer-events", "none");
+	},
+
+	/**
+	 * Generate/Update elements
+	 * @param {boolean} withTransition Transition for exit elements
+	 * @param {boolean} isSub Subchart draw
+	 * @private
+	 */
+	updateCandlestick(withTransition: boolean, isSub = false): void {
+		const $$ = this;
+		const {$el, $T} = $$;
+		const $root = isSub ? $el.subchart : $el;
+		const classSetter = $$.getClass("candlestick", true);
+		const initialOpacity = $$.initialOpacity.bind($$);
+
+		const candlestick = $root.main.selectAll(`.${$CANDLESTICK.chartCandlestick}`)
+			.selectAll(`.${$CANDLESTICK.candlestick}`)
+			.data($$.labelishData.bind($$));
+
+		$T(candlestick.exit(), withTransition)
+			.style("opacity", "0")
+			.remove();
+
+		const candlestickEnter = candlestick.enter()
+			.filter(d => d.value)
+			.append("g")
+			.attr("class", classSetter);
+
+		candlestickEnter.append("line");
+		candlestickEnter.append("path");
+
+		$root.candlestick = candlestick.merge(candlestickEnter)
+			.style("opacity", initialOpacity);
+	},
+
+	/**
+	 * Get draw function
+	 * @param {object} indices Indice data
+	 * @param {boolean} isSub Subchart draw
+	 * @returns {Function}
+	 * @private
+	 */
+	generateDrawCandlestick(indices, isSub) {
+		const $$ = this;
+		const {config} = $$;
+		const getPoints = $$.generateGetCandlestickPoints(indices, isSub);
+		const isRotated = config.axis_rotated;
+		const downColor = config.candlestick_color_down;
+
+		return (d, i, g) => {
+			const points = getPoints(d, i);
+			const value = $$.getCandlestickData(d);
+			const isUp = value?._isUp;
+
+			// switch points if axis is rotated, not applicable for sub chart
+			const indexX = +isRotated;
+			const indexY = +!indexX;
+
+			if (g.classed) {
+				g.classed($CANDLESTICK[isUp ? "valueUp" : "valueDown"], true);
+			}
+
+			const path = isRotated ?
+				`H${points[1][1]} V${points[1][0]} H${points[0][1]}` :
+				`V${points[1][1]} H${points[1][0]} V${points[0][1]}`;
+
+			g.select("path")
+				.attr("d", `M${points[0][indexX]},${points[0][indexY]}${path}z`)
+				.style("fill", d => {
+					const color = isUp ? $$.color(d) : (
+						isObject(downColor) ? downColor[d.id] : downColor
+					);
+
+					return color || $$.color(d);
+				});
+
+			// set line position
+			const line = g.select("line");
+			const pos = isRotated ?
+				{
+					x1: points[2][1],
+					x2: points[2][2],
+					y1: points[2][0],
+					y2: points[2][0]
+				} :
+				{
+					x1: points[2][0],
+					x2: points[2][0],
+					y1: points[2][1],
+					y2: points[2][2]
+				};
+
+			for (const x in pos) {
+				line.attr(x, pos[x]);
+			}
+		};
+	},
+
+	/**
+	 * Generate shape drawing points
+	 * @param {object} indices Indice data
+	 * @param {boolean} isSub Subchart draw
+	 * @returns {Function}
+	 */
+	generateGetCandlestickPoints(indices, isSub = false): (d, i) => number[][] {
+		const $$ = this;
+		const axis = isSub ? $$.axis.subX : $$.axis.x;
+		const targetsNum = $$.getIndicesMax(indices) + 1;
+		const barW: IOffset = $$.getBarW("candlestick", axis, targetsNum);
+		const x = $$.getShapeX(barW, indices, !!isSub);
+		const y = $$.getShapeY(!!isSub);
+		const shapeOffset = $$.getShapeOffset($$.isBarType, indices, !!isSub);
+		const yScale = $$.getYScaleById.bind($$);
+
+		return (d, i) => {
+			const y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id));
+			const offset = shapeOffset(d, i) || y0; // offset is for stacked bar chart
+			const width = isNumber(barW) ? barW : barW[d.id] || barW._$width;
+			const value = $$.getCandlestickData(d);
+			let points;
+
+			if (value && isNumber(value.open) && isNumber(value.close)) {
+				const posX = {
+					start: x(d),
+					end: 0
+				};
+
+				posX.end = posX.start + width;
+
+				const posY = {
+					start: y(value.open),
+					end: y(value.close)
+				};
+				const posLine = {
+					x: posX.start + (width / 2),
+					high: y(value.high),
+					low: y(value.low)
+				};
+
+				posY.start -= y0 - offset;
+
+				points = [
+					[posX.start, posY.start],
+					[posX.end, posY.end],
+					[posLine.x, posLine.low, posLine.high]
+				];
+			} else {
+				points = [[0, 0], [0, 0], [0, 0, 0]];
+			}
+
+			return points;
+		};
+	},
+
+	/**
+	 * Redraw function
+	 * @param {Function} drawFn Retuned functino from .generateDrawCandlestick()
+	 * @param {boolean} withTransition With or without transition
+	 * @param {boolean} isSub Subchart draw
+	 * @returns {Array}
+	 */
+	redrawCandlestick(drawFn, withTransition?: boolean, isSub = false) {
+		const $$ = this;
+		const {$el, $T} = $$;
+		const {candlestick} = isSub ? $el.subchart : $el;
+		const rand = getRandom(true);
+
+		return [
+			candlestick
+				.each(function(d, i) {
+					const g = $T(d3Select(this), withTransition, rand);
+
+					drawFn(d, i, g);
+				})
+				.style("opacity", null)
+		];
+	},
+
+	/**
+	 * Get candlestick data as object
+	 * @param {object} param Data object
+	 * @param {Array|object} param.value Data value
+	 * @returns {object|null} Converted data object
+	 * @private
+	 */
+	getCandlestickData({value}): ICandlestickData | null {
+		let d;
+
+		if (isArray(value)) {
+			const [open, high, low, close, volume = false] = value;
+
+			d = {open, high, low, close};
+
+			if (volume !== false) {
+				d.volume = volume;
+			}
+		} else if (isObject(value)) {
+			d = {...value};
+		}
+
+		if (d) {
+			d._isUp = d.close >= d.open;
+		}
+
+		return d || null;
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_shape_line.ts.html b/release/3.12.4/doc/ChartInternal_shape_line.ts.html new file mode 100644 index 000000000..db26b3ac7 --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_shape_line.ts.html @@ -0,0 +1,430 @@ + + + + + + ChartInternal/shape/line.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/shape/line.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {line as d3Line} from "d3-shape";
+import {$COMMON, $LINE} from "../../config/classes";
+import {
+	getPointer,
+	getRandom,
+	isArray,
+	isDefined,
+	isUndefined,
+	isValue,
+	parseDate
+} from "../../module/util";
+import {getScale} from "../internals/scale";
+
+export default {
+	initLine(): void {
+		const {$el} = this;
+
+		$el.line = $el.main.select(`.${$COMMON.chart}`).append("g")
+			.attr("class", $LINE.chartLines)
+			.call(this.setCssRule(false, `.${$LINE.chartLines}`, ["pointer-events:none"]));
+	},
+
+	updateTargetsForLine(t): void {
+		const $$ = this;
+		const {$el: {area, line, main}} = $$;
+		const classChartLine = $$.getChartClass("Line");
+		const classLines = $$.getClass("lines", true);
+		const classFocus = $$.classFocus.bind($$);
+
+		if (!line) {
+			$$.initLine();
+		}
+
+		const targets = t.filter(d => !($$.isScatterType(d) || $$.isBubbleType(d)));
+
+		const mainLineUpdate = main.select(`.${$LINE.chartLines}`)
+			.selectAll(`.${$LINE.chartLine}`)
+			.data(targets)
+			.attr("class", d => classChartLine(d) + classFocus(d));
+
+		const mainLineEnter = mainLineUpdate.enter().append("g")
+			.attr("class", classChartLine)
+			.style("opacity", "0")
+			.style("pointer-events", $$.getStylePropValue("none"));
+
+		// Lines for each data
+		mainLineEnter.append("g")
+			.attr("class", classLines);
+
+		// Areas
+		if ($$.hasTypeOf("Area")) {
+			const mainLine = (
+				!area && mainLineEnter.empty() ? mainLineUpdate : mainLineEnter
+			).filter($$.isAreaType.bind($$));
+
+			$$.initArea(mainLine);
+		}
+
+		$$.updateTargetForCircle(targets, mainLineEnter);
+	},
+
+	/**
+	 * Generate/Update elements
+	 * @param {boolean} withTransition Transition for exit elements
+	 * @param {boolean} isSub Subchart draw
+	 * @private
+	 */
+	updateLine(withTransition: boolean, isSub = false): void {
+		const $$ = this;
+		const {format: {extraLineClasses}, $el, $T} = $$;
+		const $root = isSub ? $el.subchart : $el;
+
+		const line = $root.main
+			.selectAll(`.${$LINE.lines}`)
+			.selectAll(`.${$LINE.line}`)
+			.data($$.lineData.bind($$));
+
+		$T(line.exit(), withTransition)
+			.style("opacity", "0")
+			.remove();
+
+		$root.line = line.enter()
+			.append("path")
+			.attr("class", d => `${$$.getClass("line", true)(d)} ${extraLineClasses(d) || ""}`)
+			.style("stroke", $$.color)
+			.merge(line)
+			.style("opacity", $$.initialOpacity.bind($$))
+			.attr("transform", null);
+	},
+
+	/**
+	 * Redraw function
+	 * @param {Function} drawFn Retuned functino from .generateDrawCandlestick()
+	 * @param {boolean} withTransition With or without transition
+	 * @param {boolean} isSub Subchart draw
+	 * @returns {Array}
+	 */
+	redrawLine(drawFn, withTransition?: boolean, isSub = false) {
+		const $$ = this;
+		const {$el, $T} = $$;
+		const {line} = isSub ? $el.subchart : $el;
+
+		return [
+			$T(line, withTransition, getRandom())
+				.attr("d", drawFn)
+				.style("stroke", this.color)
+				.style("opacity", null)
+		];
+	},
+
+	/**
+	 * Get the curve interpolate
+	 * @param {Array} d Data object
+	 * @returns {Function}
+	 * @private
+	 */
+	getCurve(d): Function {
+		const $$ = this;
+		const isRotatedStepType = $$.config.axis_rotated && $$.isStepType(d);
+
+		// when is step & rotated, should be computed in different way
+		// https://github.com/naver/billboard.js/issues/471
+		return isRotatedStepType ?
+			context => {
+				const step = $$.getInterpolate(d)(context);
+
+				// keep the original method
+				step.orgPoint = step.point;
+
+				// to get rotated path data
+				step.pointRotated = function(x, y) {
+					this._point === 1 && (this._point = 2);
+
+					const y1 = this._y * (1 - this._t) + y * this._t;
+
+					this._context.lineTo(this._x, y1);
+					this._context.lineTo(x, y1);
+
+					this._x = x;
+					this._y = y;
+				};
+
+				step.point = function(x, y) {
+					this._point === 0 ? this.orgPoint(x, y) : this.pointRotated(x, y);
+				};
+
+				return step;
+			} :
+			$$.getInterpolate(d);
+	},
+
+	generateDrawLine(lineIndices, isSub?: boolean): (d) => string {
+		const $$ = this;
+		const {config, scale} = $$;
+		const lineConnectNull = config.line_connectNull;
+		const isRotated = config.axis_rotated;
+
+		const getPoints = $$.generateGetLinePoints(lineIndices, isSub);
+		const yScale = $$.getYScaleById.bind($$);
+
+		const xValue = d => (isSub ? $$.subxx : $$.xx).call($$, d);
+		const yValue = (d, i) => (
+			$$.isGrouped(d.id) ? getPoints(d, i)[0][1] : yScale(d.id, isSub)($$.getBaseValue(d))
+		);
+
+		let line = d3Line();
+
+		line = isRotated ? line.x(yValue).y(xValue) : line.x(xValue).y(yValue);
+
+		if (!lineConnectNull) {
+			line = line.defined(d => $$.getBaseValue(d) !== null);
+		}
+
+		const x = isSub ? scale.subX : scale.x;
+
+		return d => {
+			const y = yScale(d.id, isSub);
+			let values = lineConnectNull ? $$.filterRemoveNull(d.values) : d.values;
+
+			let x0 = 0;
+			let y0 = 0;
+			let path;
+
+			if ($$.isLineType(d)) {
+				const regions = config.data_regions[d.id];
+
+				if (regions) {
+					path = $$.lineWithRegions(values, scale.zoom || x, y, regions);
+				} else {
+					if ($$.isStepType(d)) {
+						values = $$.convertValuesToStep(values);
+					}
+
+					path = line.curve($$.getCurve(d))(values);
+				}
+			} else {
+				if (values[0]) {
+					x0 = x(values[0].x);
+					y0 = y(values[0].value);
+				}
+
+				path = isRotated ? `M ${y0} ${x0}` : `M ${x0} ${y0}`;
+			}
+
+			return path || "M 0 0";
+		};
+	},
+
+	lineWithRegions(d, x, y, _regions): string {
+		const $$ = this;
+		const {config} = $$;
+		const isRotated = config.axis_rotated;
+		const isTimeSeries = $$.axis.isTimeSeries();
+		const regions: any[] = [];
+		const dasharray = "2 2"; // default value
+
+		let xp;
+		let yp;
+		let diff;
+		let diffx2;
+
+		// Check start/end of regions
+		if (isDefined(_regions)) {
+			const getValue = (v: Date | any, def: number): Date | any => (
+				isUndefined(v) ? def : (isTimeSeries ? parseDate.call($$, v) : v)
+			);
+
+			for (let i = 0, reg; (reg = _regions[i]); i++) {
+				const start = getValue(reg.start, d[0].x);
+				const end = getValue(reg.end, d[d.length - 1].x);
+				const style = reg.style || {dasharray};
+
+				regions[i] = {start, end, style};
+			}
+		}
+
+		// Set scales
+		const xValue = isRotated ? dt => y(dt.value) : dt => x(dt.x);
+		const yValue = isRotated ? dt => x(dt.x) : dt => y(dt.value);
+
+		// Define svg generator function for region
+		const generateM = points =>
+			`M${points[0][0]},${points[0][1]}L${points[1][0]},${points[1][1]}`;
+		const sWithRegion = isTimeSeries ?
+			(d0, d1, k, timeseriesDiff) => {
+				const x0 = d0.x.getTime();
+				const xDiff = d1.x - d0.x;
+				const xv0 = new Date(x0 + xDiff * k);
+				const xv1 = new Date(x0 + xDiff * (k + timeseriesDiff));
+
+				const points = isRotated ?
+					[[y(yp(k)), x(xv0)], [y(yp(k + diff)), x(xv1)]] :
+					[[x(xv0), y(yp(k))], [x(xv1), y(yp(k + diff))]];
+
+				return generateM(points);
+			} :
+			(d0, d1, k, otherDiff) => {
+				const points = isRotated ?
+					[[y(yp(k), true), x(xp(k))], [
+						y(yp(k + otherDiff), true),
+						x(xp(k + otherDiff))
+					]] :
+					[[x(xp(k), true), y(yp(k))], [
+						x(xp(k + otherDiff), true),
+						y(yp(k + otherDiff))
+					]];
+
+				return generateM(points);
+			};
+
+		// Generate
+		const axisType = {x: $$.axis.getAxisType("x"), y: $$.axis.getAxisType("y")};
+		let path = "";
+
+		for (let i = 0, data; (data = d[i]); i++) {
+			const prevData = d[i - 1];
+			const hasPrevData = prevData && isValue(prevData.value);
+			let style = $$.isWithinRegions(data.x, regions);
+
+			// https://github.com/naver/billboard.js/issues/1172
+			if (!isValue(data.value)) {
+				continue;
+			}
+
+			// Draw as normal
+			if (isUndefined(regions) || !style || !hasPrevData) {
+				path += `${i && hasPrevData ? "L" : "M"}${xValue(data)},${yValue(data)}`;
+			} else if (hasPrevData) {
+				try {
+					style = style.dasharray.split(" ");
+				} catch (e) {
+					style = dasharray.split(" ");
+				}
+
+				// Draw with region // TODO: Fix for horizotal charts
+				xp = getScale(axisType.x, prevData.x, data.x);
+				yp = getScale(axisType.y, prevData.value, data.value);
+
+				const dx = x(data.x) - x(prevData.x);
+				const dy = y(data.value) - y(prevData.value);
+				const dd = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));
+
+				diff = style[0] / dd;
+				diffx2 = diff * style[1];
+
+				for (let j = diff; j <= 1; j += diffx2) {
+					path += sWithRegion(prevData, data, j, diff);
+
+					// to make sure correct line drawing
+					if (j + diffx2 >= 1) {
+						path += sWithRegion(prevData, data, 1, 0);
+					}
+				}
+			}
+		}
+
+		return path;
+	},
+
+	isWithinRegions(withinX, withinRegions): boolean {
+		for (let i = 0, reg; (reg = withinRegions[i]); i++) {
+			if (reg.start < withinX && withinX <= reg.end) {
+				return reg.style;
+			}
+		}
+
+		return false;
+	},
+
+	isWithinStep(that, y: number): boolean {
+		return Math.abs(y - getPointer(this.state.event, that)[1]) < 30;
+	},
+
+	shouldDrawPointsForLine(d): boolean {
+		const linePoint = this.config.line_point;
+
+		return linePoint === true ||
+			(isArray(linePoint) && linePoint.indexOf(d.id) !== -1);
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_shape_point.ts.html b/release/3.12.4/doc/ChartInternal_shape_point.ts.html new file mode 100644 index 000000000..33aeb0a18 --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_shape_point.ts.html @@ -0,0 +1,662 @@ + + + + + + ChartInternal/shape/point.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/shape/point.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {select as d3Select} from "d3-selection";
+import type {d3Selection} from "../../../types/types";
+import {$CIRCLE, $COMMON, $SELECT} from "../../config/classes";
+import {
+	getBoundingRect,
+	getPointer,
+	getRandom,
+	isFunction,
+	isObject,
+	isUndefined,
+	isValue
+} from "../../module/util";
+import type {IDataPoint, IDataRow} from "../data/IData";
+
+const getTransitionName = () => getRandom();
+
+export default {
+	initialOpacityForCircle(d): string | number | null {
+		const {config, state: {withoutFadeIn}} = this;
+		let opacity = config.point_opacity;
+
+		if (isUndefined(opacity)) {
+			opacity = this.getBaseValue(d) !== null &&
+					withoutFadeIn[d.id] ?
+				this.opacityForCircle(d) :
+				"0";
+		}
+
+		return opacity;
+	},
+
+	opacityForCircle(d): string | number | null {
+		const {config} = this;
+		let opacity = config.point_opacity;
+
+		if (isUndefined(opacity)) {
+			opacity = config.point_show && !this.isPointFocusOnly?.() ? null : "0";
+
+			opacity = isValue(this.getBaseValue(d)) ?
+				(this.isBubbleType(d) || this.isScatterType(d) ? "0.5" : opacity) :
+				"0";
+		}
+
+		return opacity;
+	},
+
+	initCircle(): void {
+		const $$ = this;
+		const {$el: {main}} = $$;
+
+		!$$.point && ($$.point = $$.generatePoint());
+
+		if (
+			($$.hasType("bubble") || $$.hasType("scatter")) &&
+			main.select(`.${$COMMON.chart} > .${$CIRCLE.chartCircles}`).empty()
+		) {
+			main.select(`.${$COMMON.chart}`)
+				.append("g")
+				.attr("class", $CIRCLE.chartCircles);
+		}
+	},
+
+	updateTargetForCircle(targetsValue, enterNodeValue): void {
+		const $$ = this;
+		const {config, data, $el} = $$;
+		const selectionEnabled = config.interaction_enabled && config.data_selection_enabled;
+		const isSelectable = selectionEnabled && config.data_selection_isselectable;
+		const classCircles = $$.getClass("circles", true);
+
+		if (!config.point_show) {
+			return;
+		}
+
+		$$.initCircle();
+
+		let targets = targetsValue;
+		let enterNode = enterNodeValue;
+
+		// only for scatter & bubble type should generate seprate <g> node
+		if (!targets) {
+			targets = data.targets
+				.filter(d => this.isScatterType(d) || this.isBubbleType(d));
+
+			const mainCircle = $el.main.select(`.${$CIRCLE.chartCircles}`)
+				.style("pointer-events", "none")
+				.selectAll(`.${$CIRCLE.circles}`)
+				.data(targets);
+
+			mainCircle.exit().remove();
+			enterNode = mainCircle.enter();
+		}
+
+		// Circles for each data point on lines
+		selectionEnabled && enterNode.append("g")
+			.attr("class", d => $$.generateClass($SELECT.selectedCircles, d.id));
+
+		enterNode.append("g")
+			.attr("class", classCircles)
+			.call(selection => {
+				$$.setCssRule(true, `.${$CIRCLE.circles}`, ["cursor:pointer"], isSelectable)(
+					selection
+				);
+				$$.setCssRule(true, ` .${$CIRCLE.circle}`, ["fill", "stroke"], $$.color)(selection);
+			})
+			.style("opacity", function() {
+				const parent = d3Select(this.parentNode);
+
+				// if the parent node is .bb-chart-circles (bubble, scatter), initialize <g bb-circles> with opacity "0"
+				return parent.attr("class").indexOf($CIRCLE.chartCircles) > -1 ? "0" : null;
+			});
+
+		// Update date for selected circles
+		selectionEnabled && targets.forEach(t => {
+			$el.main.selectAll(`.${$SELECT.selectedCircles}${$$.getTargetSelectorSuffix(t.id)}`)
+				.selectAll(`${$SELECT.selectedCircle}`)
+				.each(d => {
+					d.value = t.values[d.index].value;
+				});
+		});
+	},
+
+	updateCircle(isSub = false): void {
+		const $$ = this;
+		const {config, state, $el} = $$;
+		const focusOnly = $$.isPointFocusOnly();
+		const $root = isSub ? $el.subchart : $el;
+
+		if (config.point_show && !state.toggling) {
+			config.point_radialGradient && $$.updateLinearGradient();
+
+			const circles = $root.main.selectAll(`.${$CIRCLE.circles}`)
+				.selectAll(`.${$CIRCLE.circle}`)
+				.data(d => (
+					($$.isLineType(d) && $$.shouldDrawPointsForLine(d)) ||
+						$$.isBubbleType(d) || $$.isRadarType(d) || $$.isScatterType(d) ?
+						(focusOnly ? [d.values[0]] : d.values) :
+						[]
+				));
+
+			circles.exit().remove();
+
+			circles.enter()
+				.filter(Boolean)
+				.append(
+					$$.point("create", this, $$.pointR.bind($$), $$.updateCircleColor.bind($$))
+				);
+
+			$root.circle = $root.main.selectAll(`.${$CIRCLE.circles} .${$CIRCLE.circle}`)
+				.style("stroke", $$.getStylePropValue($$.color))
+				.style("opacity", $$.initialOpacityForCircle.bind($$));
+		}
+	},
+
+	/**
+	 * Update circle color
+	 * @param {object} d Data object
+	 * @returns {string} Color string
+	 * @private
+	 */
+	updateCircleColor(d: IDataRow): string {
+		const $$ = this;
+		const fn = $$.getStylePropValue($$.color);
+
+		return $$.config.point_radialGradient ? $$.getGradienColortUrl(d.id) : (fn ? fn(d) : null);
+	},
+
+	redrawCircle(cx: Function, cy: Function, withTransition: boolean, flow, isSub = false) {
+		const $$ = this;
+		const {state: {rendered}, $el, $T} = $$;
+		const $root = isSub ? $el.subchart : $el;
+		const selectedCircles = $root.main.selectAll(`.${$SELECT.selectedCircle}`);
+
+		if (!$$.config.point_show) {
+			return [];
+		}
+
+		const fn = $$.point("update", $$, cx, cy, $$.updateCircleColor.bind($$), withTransition,
+			flow, selectedCircles);
+		const posAttr = $$.isCirclePoint() ? "c" : "";
+
+		const t = getRandom();
+		const opacityStyleFn = $$.opacityForCircle.bind($$);
+		const mainCircles: any[] = [];
+
+		$root.circle.each(function(d) {
+			let result: d3Selection | any = fn.bind(this)(d);
+
+			result = $T(result, withTransition || !rendered, t)
+				.style("opacity", opacityStyleFn);
+
+			mainCircles.push(result);
+		});
+
+		return [
+			mainCircles,
+			$T(selectedCircles, withTransition)
+				.attr(`${posAttr}x`, cx)
+				.attr(`${posAttr}y`, cy)
+		];
+	},
+
+	/**
+	 * Show focused data point circle
+	 * @param {object} d Selected data
+	 * @private
+	 */
+	showCircleFocus(d?: IDataRow[]): void {
+		const $$ = this;
+		const {state: {hasRadar, resizing, toggling, transiting}, $el} = $$;
+		let {circle} = $el;
+
+		if (transiting === false && circle && $$.isPointFocusOnly()) {
+			const cx = (hasRadar ? $$.radarCircleX : $$.circleX).bind($$);
+			const cy = (hasRadar ? $$.radarCircleY : $$.circleY).bind($$);
+			const withTransition = toggling || isUndefined(d);
+			const fn = $$.point("update", $$, cx, cy, $$.getStylePropValue($$.color),
+				resizing ? false : withTransition);
+
+			if (d) {
+				circle = circle
+					.filter(function(t) {
+						const data = d.filter?.(v => v.id === t.id);
+
+						return data.length ? d3Select(this).datum(data[0]) : false;
+					});
+			}
+
+			circle
+				.attr("class", this.updatePointClass.bind(this))
+				.style("opacity", null)
+				.each(function(d) {
+					const {id, index, value} = d;
+					let visibility = "hidden";
+
+					if (isValue(value)) {
+						fn.bind(this)(d);
+						$$.expandCircles(index, id);
+						visibility = "";
+					}
+
+					this.style.visibility = visibility;
+				});
+		}
+	},
+
+	/**
+	 * Hide focused data point circle
+	 * @private
+	 */
+	hideCircleFocus(): void {
+		const $$ = this;
+		const {$el: {circle}} = $$;
+
+		if ($$.isPointFocusOnly() && circle) {
+			$$.unexpandCircles();
+			circle.style("visibility", "hidden");
+		}
+	},
+
+	circleX(d): number | null {
+		return this.xx(d);
+	},
+
+	updateCircleY(isSub = false): Function {
+		const $$ = this;
+		const getPoints = $$.generateGetLinePoints($$.getShapeIndices($$.isLineType), isSub);
+
+		return (d, i) => {
+			const id = d.id;
+
+			return $$.isGrouped(id) ?
+				getPoints(d, i)[0][1] :
+				$$.getYScaleById(id, isSub)($$.getBaseValue(d));
+		};
+	},
+
+	expandCircles(i: number, id: string, reset?: boolean): void {
+		const $$ = this;
+		const r = $$.pointExpandedR.bind($$);
+
+		reset && $$.unexpandCircles();
+
+		const circles = $$.getShapeByIndex("circle", i, id).classed($COMMON.EXPANDED, true);
+		const scale = r(circles) / $$.config.point_r;
+		const ratio = 1 - scale;
+
+		if ($$.isCirclePoint()) {
+			circles.attr("r", r);
+		} else {
+			// transform must be applied to each node individually
+			circles.each(function() {
+				const point = d3Select(this);
+
+				if (this.tagName === "circle") {
+					point.attr("r", r);
+				} else {
+					const {width, height} = this.getBBox();
+					const x = ratio * (+point.attr("x") + width / 2);
+					const y = ratio * (+point.attr("y") + height / 2);
+
+					point.attr("transform", `translate(${x} ${y}) scale(${scale})`);
+				}
+			});
+		}
+	},
+
+	unexpandCircles(i): void {
+		const $$ = this;
+		const r = $$.pointR.bind($$);
+
+		const circles = $$.getShapeByIndex("circle", i)
+			.filter(function() {
+				return d3Select(this).classed($COMMON.EXPANDED);
+			})
+			.classed($COMMON.EXPANDED, false);
+
+		circles.attr("r", r);
+
+		if (!$$.isCirclePoint()) {
+			const scale = r(circles) / $$.config.point_r;
+
+			circles.attr("transform", scale !== 1 ? `scale(${scale})` : null);
+		}
+	},
+
+	pointR(d): number {
+		const $$ = this;
+		const {config} = $$;
+		const pointR = config.point_r;
+		let r = pointR;
+
+		if ($$.isBubbleType(d)) {
+			r = $$.getBubbleR(d);
+		} else if (isFunction(pointR)) {
+			r = pointR.bind($$.api)(d);
+		}
+
+		d.r = r;
+
+		return r;
+	},
+
+	pointExpandedR(d): number {
+		const $$ = this;
+		const {config} = $$;
+		const scale = $$.isBubbleType(d) ? 1.15 : 1.75;
+
+		return config.point_focus_expand_enabled ?
+			(config.point_focus_expand_r || $$.pointR(d) * scale) :
+			$$.pointR(d);
+	},
+
+	pointSelectR(d): number {
+		const $$ = this;
+		const selectR = $$.config.point_select_r;
+
+		return isFunction(selectR) ? selectR(d) : (selectR || $$.pointR(d) * 4);
+	},
+
+	/**
+	 * Check if point.focus.only option can be applied.
+	 * @returns {boolean}
+	 * @private
+	 */
+	isPointFocusOnly(): boolean {
+		const $$ = this;
+
+		return $$.config.point_focus_only &&
+			!$$.hasType("bubble") && !$$.hasType("scatter") && !$$.hasArcType(null, ["radar"]);
+	},
+
+	isWithinCircle(node: SVGElement, r?: number): boolean {
+		const {config, state} = this;
+		const mouse = getPointer(state.event, node);
+		const element = d3Select(node);
+		const prefix = this.isCirclePoint(node) ? "c" : "";
+		const sensitivity = config.point_sensitivity === "radius" ?
+			node.getAttribute("r") :
+			config.point_sensitivity;
+		let cx = +element.attr(`${prefix}x`);
+		let cy = +element.attr(`${prefix}y`);
+
+		// if node don't have cx/y or x/y attribute value
+		if (!(cx || cy) && node.nodeType === 1) {
+			const {x, y} = getBoundingRect(node);
+
+			cx = x;
+			cy = y;
+		}
+
+		return Math.sqrt(
+			Math.pow(cx - mouse[0], 2) + Math.pow(cy - mouse[1], 2)
+		) < (r || sensitivity);
+	},
+
+	/**
+	 * Get data point sensitivity radius
+	 * @param {object} d Data point object
+	 * @returns {number} return the sensitivity value
+	 */
+	getPointSensitivity(d: IDataPoint) {
+		const $$ = this;
+		let sensitivity = $$.config.point_sensitivity;
+
+		if (isFunction(sensitivity)) {
+			sensitivity = sensitivity.call($$.api, d);
+		} else if (sensitivity === "radius") {
+			sensitivity = d.r;
+		}
+
+		return sensitivity;
+	},
+
+	updatePointClass(d) {
+		const $$ = this;
+		const {circle} = $$.$el;
+		let pointClass = false;
+
+		if (isObject(d) || circle) {
+			pointClass = d === true ?
+				circle.each(function(d) {
+					let className = $$.getClass("circle", true)(d);
+
+					if (this.getAttribute("class").indexOf($COMMON.EXPANDED) > -1) {
+						className += ` ${$COMMON.EXPANDED}`;
+					}
+
+					this.setAttribute("class", className);
+				}) :
+				$$.getClass("circle", true)(d);
+		}
+
+		return pointClass;
+	},
+
+	generateGetLinePoints(lineIndices, isSub?: boolean): Function { // partial duplication of generateGetBarPoints
+		const $$ = this;
+		const {config} = $$;
+		const x = $$.getShapeX(0, lineIndices, isSub);
+		const y = $$.getShapeY(isSub);
+		const lineOffset = $$.getShapeOffset($$.isLineType, lineIndices, isSub);
+		const yScale = $$.getYScaleById.bind($$);
+
+		return (d, i) => {
+			const y0 = yScale.call($$, d.id, isSub)($$.getShapeYMin(d.id));
+			const offset = lineOffset(d, i) || y0; // offset is for stacked area chart
+			const posX = x(d);
+			let posY = y(d);
+
+			// fix posY not to overflow opposite quadrant
+			if (
+				config.axis_rotated && (
+					(d.value > 0 && posY < y0) || (d.value < 0 && y0 < posY)
+				)
+			) {
+				posY = y0;
+			}
+
+			// 1 point that marks the line position
+			const point = [posX, posY - (y0 - offset)];
+
+			return [
+				point,
+				point, // from here and below, needed for compatibility
+				point,
+				point
+			];
+		};
+	},
+
+	custom: {
+		create(element, id, fillStyleFn) {
+			return element.append("use")
+				.attr("xlink:href", `#${id}`)
+				.attr("class", this.updatePointClass.bind(this))
+				.style("fill", fillStyleFn)
+				.node();
+		},
+
+		update(element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) {
+			const $$ = this;
+			const {width, height} = element.node().getBBox();
+
+			const xPosFn2 = d => (isValue(d.value) ? xPosFn(d) - width / 2 : 0);
+			const yPosFn2 = d => (isValue(d.value) ? yPosFn(d) - height / 2 : 0);
+			let mainCircles = element;
+
+			if (withTransition) {
+				flow && mainCircles.attr("x", xPosFn2);
+
+				mainCircles = $$.$T(mainCircles, withTransition, getTransitionName());
+				selectedCircles && $$.$T(selectedCircles, withTransition, getTransitionName());
+			}
+
+			return mainCircles
+				.attr("x", xPosFn2)
+				.attr("y", yPosFn2)
+				.style("fill", fillStyleFn);
+		}
+	},
+
+	// 'circle' data point
+	circle: {
+		create(element, sizeFn, fillStyleFn) {
+			return element.append("circle")
+				.attr("class", this.updatePointClass.bind(this))
+				.attr("r", sizeFn)
+				.style("fill", fillStyleFn)
+				.node();
+		},
+
+		update(element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) {
+			const $$ = this;
+			let mainCircles = element;
+
+			// when '.load()' called, bubble size should be updated
+			if ($$.hasType("bubble")) {
+				mainCircles.attr("r", $$.pointR.bind($$));
+			}
+
+			if (withTransition) {
+				flow && mainCircles.attr("cx", xPosFn);
+
+				if (mainCircles.attr("cx")) {
+					mainCircles = $$.$T(mainCircles, withTransition, getTransitionName());
+				}
+
+				selectedCircles && $$.$T(mainCircles, withTransition, getTransitionName());
+			}
+
+			return mainCircles
+				.attr("cx", xPosFn)
+				.attr("cy", yPosFn)
+				.style("fill", fillStyleFn);
+		}
+	},
+
+	// 'rectangle' data point
+	rectangle: {
+		create(element, sizeFn, fillStyleFn) {
+			const rectSizeFn = d => sizeFn(d) * 2.0;
+
+			return element.append("rect")
+				.attr("class", this.updatePointClass.bind(this))
+				.attr("width", rectSizeFn)
+				.attr("height", rectSizeFn)
+				.style("fill", fillStyleFn)
+				.node();
+		},
+
+		update(element, xPosFn, yPosFn, fillStyleFn, withTransition, flow, selectedCircles) {
+			const $$ = this;
+			const r = $$.config.point_r;
+			const rectXPosFn = d => xPosFn(d) - r;
+			const rectYPosFn = d => yPosFn(d) - r;
+
+			let mainCircles = element;
+
+			if (withTransition) {
+				flow && mainCircles.attr("x", rectXPosFn);
+
+				mainCircles = $$.$T(mainCircles, withTransition, getTransitionName());
+				selectedCircles && $$.$T(selectedCircles, withTransition, getTransitionName());
+			}
+
+			return mainCircles
+				.attr("x", rectXPosFn)
+				.attr("y", rectYPosFn)
+				.style("fill", fillStyleFn);
+		}
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/ChartInternal_shape_shape.ts.html b/release/3.12.4/doc/ChartInternal_shape_shape.ts.html new file mode 100644 index 000000000..4f352614a --- /dev/null +++ b/release/3.12.4/doc/ChartInternal_shape_shape.ts.html @@ -0,0 +1,689 @@ + + + + + + ChartInternal/shape/shape.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

ChartInternal/shape/shape.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {select as d3Select} from "d3-selection";
+import {
+	curveBasis as d3CurveBasis,
+	curveBasisClosed as d3CurveBasisClosed,
+	curveBasisOpen as d3CurveBasisOpen,
+	curveBundle as d3CurveBundle,
+	curveCardinal as d3CurveCardinal,
+	curveCardinalClosed as d3CurveCardinalClosed,
+	curveCardinalOpen as d3CurveCardinalOpen,
+	curveCatmullRom as d3CurveCatmullRom,
+	curveCatmullRomClosed as d3CurveCatmullRomClosed,
+	curveCatmullRomOpen as d3CurveCatmullRomOpen,
+	curveLinear as d3CurveLinear,
+	curveLinearClosed as d3CurveLinearClosed,
+	curveMonotoneX as d3CurveMonotoneX,
+	curveMonotoneY as d3CurveMonotoneY,
+	curveNatural as d3CurveNatural,
+	curveStep as d3CurveStep,
+	curveStepAfter as d3CurveStepAfter,
+	curveStepBefore as d3CurveStepBefore
+} from "d3-shape";
+import type {d3Selection} from "../../../types/types";
+import CLASS from "../../config/classes";
+import {
+	capitalize,
+	getPointer,
+	getRectSegList,
+	getUnique,
+	isNumber,
+	isObjectType,
+	isUndefined,
+	isValue,
+	notEmpty,
+	parseDate
+} from "../../module/util";
+import type {IDataIndice, IDataRow, TIndices} from "../data/IData";
+
+/**
+ * Get grouped data point function for y coordinate
+ * - Note: Grouped(stacking) works only for line and bar types
+ * @param {object} d data vlaue
+ * @returns {Function|undefined}
+ * @private
+ */
+function getGroupedDataPointsFn(d) {
+	const $$ = this;
+	let fn;
+
+	if ($$.isLineType(d)) {
+		fn = $$.generateGetLinePoints($$.getShapeIndices($$.isLineType));
+	} else if ($$.isBarType(d)) {
+		fn = $$.generateGetBarPoints($$.getShapeIndices($$.isBarType));
+	}
+
+	return fn;
+}
+
+export interface IOffset {
+	_$width: number;
+	_$total: number[];
+}
+
+export default {
+	/**
+	 * Get the shape draw function
+	 * @returns {object}
+	 * @private
+	 */
+	getDrawShape() {
+		type TShape = {area?: any, bar?: any, line?: any};
+
+		const $$ = this;
+		const isRotated = $$.config.axis_rotated;
+		const {hasRadar, hasTreemap} = $$.state;
+		const shape = {type: <TShape>{}, indices: <TShape>{}, pos: {}};
+
+		!hasTreemap && ["bar", "candlestick", "line", "area"].forEach(v => {
+			const name = capitalize(/^(bubble|scatter)$/.test(v) ? "line" : v);
+
+			if (
+				$$.hasType(v) || $$.hasTypeOf(name) || (
+					v === "line" &&
+					($$.hasType("bubble") || $$.hasType("scatter"))
+				)
+			) {
+				const indices = $$.getShapeIndices($$[`is${name}Type`]);
+				const drawFn = $$[`generateDraw${name}`];
+
+				shape.indices[v] = indices;
+				shape.type[v] = drawFn ? drawFn.bind($$)(indices, false) : undefined;
+			}
+		});
+
+		if (!$$.hasArcType() || hasRadar || hasTreemap) {
+			let cx;
+			let cy;
+
+			// generate circle x/y functions depending on updated params
+			if (!hasTreemap) {
+				cx = hasRadar ? $$.radarCircleX : (isRotated ? $$.circleY : $$.circleX);
+				cy = hasRadar ? $$.radarCircleY : (isRotated ? $$.circleX : $$.circleY);
+			}
+
+			shape.pos = {
+				xForText: $$.generateXYForText(shape.indices, true),
+				yForText: $$.generateXYForText(shape.indices, false),
+				cx: (cx || function() {}).bind($$),
+				cy: (cy || function() {}).bind($$)
+			};
+		}
+
+		return shape;
+	},
+
+	/**
+	 * Get shape's indices according it's position within each axis tick.
+	 *
+	 * From the below example, indices will be:
+	 * ==> {data1: 0, data2: 0, data3: 1, data4: 1, __max__: 1}
+	 *
+	 * 	data1 data3   data1 data3
+	 * 	data2 data4   data2 data4
+	 * 	-------------------------
+	 * 		 0             1
+	 * @param {Function} typeFilter Chart type filter function
+	 * @returns {object} Indices object with its position
+	 */
+	getShapeIndices(typeFilter): TIndices {
+		const $$ = this;
+		const {config} = $$;
+		const xs = config.data_xs;
+		const hasXs = notEmpty(xs);
+		const indices: TIndices = {};
+		let i: any = hasXs ? {} : 0;
+
+		if (hasXs) {
+			getUnique(Object.keys(xs).map(v => xs[v]))
+				.forEach(v => {
+					i[v] = 0;
+					indices[v] = {};
+				});
+		}
+
+		$$.filterTargetsToShow($$.data.targets.filter(typeFilter, $$))
+			.forEach(d => {
+				const xKey = d.id in xs ? xs[d.id] : "";
+				const ind = xKey ? indices[xKey] : indices;
+
+				for (let j = 0, groups; (groups = config.data_groups[j]); j++) {
+					if (groups.indexOf(d.id) < 0) {
+						continue;
+					}
+
+					for (let k = 0, key; (key = groups[k]); k++) {
+						if (key in ind) {
+							ind[d.id] = ind[key];
+							break;
+						}
+
+						// for same grouped data, add other data to same indices
+						if (d.id !== key && xKey) {
+							ind[key] = ind[d.id] ?? i[xKey];
+						}
+					}
+				}
+
+				if (isUndefined(ind[d.id])) {
+					ind[d.id] = xKey ? i[xKey]++ : i++;
+					ind.__max__ = (xKey ? i[xKey] : i) - 1;
+				}
+			});
+
+		return indices;
+	},
+
+	/**
+	 * Get indices value based on data ID value
+	 * @param {object} indices Indices object
+	 * @param {object} d Data row
+	 * @param {string} caller Caller function name (Used only for 'sparkline' plugin)
+	 * @returns {object} Indices object
+	 * @private
+	 */
+	getIndices(indices: TIndices, d: IDataRow, caller?: string): IDataIndice { // eslint-disable-line
+		const $$ = this;
+		const {data_xs: xs, bar_indices_removeNull: removeNull} = $$.config;
+		const {id, index} = d;
+
+		if ($$.isBarType(id) && removeNull) {
+			const ind = {} as IDataIndice;
+
+			// redefine bar indices order
+			$$.getAllValuesOnIndex(index, true)
+				.forEach((v, i) => {
+					ind[v.id] = i;
+					ind.__max__ = i;
+				});
+
+			return ind;
+		}
+
+		return notEmpty(xs) ? indices[xs[id]] : indices;
+	},
+
+	/**
+	 * Get indices max number
+	 * @param {object} indices Indices object
+	 * @returns {number} Max number
+	 * @private
+	 */
+	getIndicesMax(indices: TIndices | IDataIndice): number {
+		return notEmpty(this.config.data_xs) ?
+			// if is multiple xs, return total sum of xs' __max__ value
+			Object.keys(indices)
+				.map(v => indices[v].__max__ || 0)
+				.reduce((acc, curr) => acc + curr) :
+			(indices as IDataIndice).__max__;
+	},
+
+	getShapeX(offset: IOffset, indices, isSub?: boolean): (d) => number {
+		const $$ = this;
+		const {config, scale} = $$;
+		const currScale = isSub ? scale.subX : (scale.zoom || scale.x);
+		const barOverlap = config.bar_overlap;
+		const barPadding = config.bar_padding;
+		const sum = (p, c) => p + c;
+
+		// total shapes half width
+		const halfWidth = isObjectType(offset) && (
+			offset._$total.length ? offset._$total.reduce(sum) / 2 : 0
+		);
+
+		return d => {
+			const ind = $$.getIndices(indices, d, "getShapeX");
+			const index = d.id in ind ? ind[d.id] : 0;
+			const targetsNum = (ind.__max__ || 0) + 1;
+			let x = 0;
+
+			if (notEmpty(d.x)) {
+				const xPos = currScale(d.x, true);
+
+				if (halfWidth) {
+					const offsetWidth = offset[d.id] || offset._$width;
+
+					x = barOverlap ? xPos - offsetWidth / 2 : xPos - offsetWidth +
+						offset._$total.slice(0, index + 1).reduce(sum) -
+						halfWidth;
+				} else {
+					x = xPos - (isNumber(offset) ? offset : offset._$width) *
+							(targetsNum / 2 - (
+								barOverlap ? 1 : index
+							));
+				}
+			}
+
+			// adjust x position for bar.padding option
+			if (offset && x && targetsNum > 1 && barPadding) {
+				if (index) {
+					x += barPadding * index;
+				}
+
+				if (targetsNum > 2) {
+					x -= (targetsNum - 1) * barPadding / 2;
+				} else if (targetsNum === 2) {
+					x -= barPadding / 2;
+				}
+			}
+
+			return x;
+		};
+	},
+
+	getShapeY(isSub?: boolean): Function {
+		const $$ = this;
+		const isStackNormalized = $$.isStackNormalized();
+
+		return d => {
+			let {value} = d;
+
+			if (isNumber(d)) {
+				value = d;
+			} else if ($$.isAreaRangeType(d)) {
+				value = $$.getBaseValue(d, "mid");
+			} else if (isStackNormalized) {
+				value = $$.getRatio("index", d, true);
+			} else if ($$.isBubbleZType(d)) {
+				value = $$.getBubbleZData(d.value, "y");
+			} else if ($$.isBarRangeType(d)) {
+				// TODO use range.getEnd() like method
+				value = value[1];
+			}
+
+			return $$.getYScaleById(d.id, isSub)(value);
+		};
+	},
+
+	/**
+	 * Get shape based y Axis min value
+	 * @param {string} id Data id
+	 * @returns {number}
+	 * @private
+	 */
+	getShapeYMin(id: string): number {
+		const $$ = this;
+		const axisId = $$.axis.getId(id);
+		const scale = $$.scale[axisId];
+		const [yMin] = scale.domain();
+		const inverted = $$.config[`axis_${axisId}_inverted`];
+
+		return !$$.isGrouped(id) && !inverted && yMin > 0 ? yMin : 0;
+	},
+
+	/**
+	 * Get Shape's offset data
+	 * @param {Function} typeFilter Type filter function
+	 * @returns {object}
+	 * @private
+	 */
+	getShapeOffsetData(typeFilter) {
+		const $$ = this;
+		const targets = $$.orderTargets(
+			$$.filterTargetsToShow($$.data.targets.filter(typeFilter, $$))
+		);
+		const isStackNormalized = $$.isStackNormalized();
+
+		const shapeOffsetTargets = targets.map(target => {
+			let rowValues = target.values;
+			const values = {};
+
+			if ($$.isStepType(target)) {
+				rowValues = $$.convertValuesToStep(rowValues);
+			}
+
+			const rowValueMapByXValue = rowValues.reduce((out, d) => {
+				const key = Number(d.x);
+
+				out[key] = d;
+				values[key] = isStackNormalized ? $$.getRatio("index", d, true) : d.value;
+
+				return out;
+			}, {});
+
+			return {
+				id: target.id,
+				rowValues,
+				rowValueMapByXValue,
+				values
+			};
+		});
+		const indexMapByTargetId = targets.reduce((out, {id}, index) => {
+			out[id] = index;
+			return out;
+		}, {});
+
+		return {indexMapByTargetId, shapeOffsetTargets};
+	},
+
+	getShapeOffset(typeFilter, indices, isSub?: boolean): Function {
+		const $$ = this;
+		const {shapeOffsetTargets, indexMapByTargetId} = $$.getShapeOffsetData(
+			typeFilter
+		);
+		const groupsZeroAs = $$.config.data_groupsZeroAs;
+
+		return (d, idx) => {
+			const {id, value, x} = d;
+			const ind = $$.getIndices(indices, d);
+			const scale = $$.getYScaleById(id, isSub);
+
+			if ($$.isBarRangeType(d)) {
+				// TODO use range.getStart()
+				return scale(value[0]);
+			}
+
+			const dataXAsNumber = Number(x);
+			const y0 = scale(groupsZeroAs === "zero" ? 0 : $$.getShapeYMin(id));
+			let offset = y0;
+
+			shapeOffsetTargets
+				.filter(t => t.id !== id && ind[t.id] === ind[id])
+				.forEach(t => {
+					const {
+						id: tid,
+						rowValueMapByXValue,
+						rowValues,
+						values: tvalues
+					} = t;
+
+					// for same stacked group (ind[tid] === ind[id])
+					if (indexMapByTargetId[tid] < indexMapByTargetId[id]) {
+						const rValue = tvalues[dataXAsNumber];
+						let row = rowValues[idx];
+
+						// check if the x values line up
+						if (!row || Number(row.x) !== dataXAsNumber) {
+							row = rowValueMapByXValue[dataXAsNumber];
+						}
+
+						if (row?.value * value >= 0 && isNumber(rValue)) {
+							const addOffset = value === 0 ?
+								(
+									(groupsZeroAs === "positive" &&
+										rValue > 0) ||
+									(groupsZeroAs === "negative" && rValue < 0)
+								) :
+								true;
+
+							if (addOffset) {
+								offset += scale(rValue) - y0;
+							}
+						}
+					}
+				});
+
+			return offset;
+		};
+	},
+
+	/**
+	 * Get data's y coordinate
+	 * @param {object} d Target data
+	 * @param {number} i Index number
+	 * @returns {number} y coordinate
+	 * @private
+	 */
+	circleY(d: IDataRow, i: number): number {
+		const $$ = this;
+		const id = d.id;
+		let points;
+
+		if ($$.isGrouped(id)) {
+			points = getGroupedDataPointsFn.bind($$)(d);
+		}
+
+		return points ? points(d, i)[0][1] : $$.getYScaleById(id)($$.getBaseValue(d));
+	},
+
+	getBarW(type, axis, targetsNum: number): number | IOffset {
+		const $$ = this;
+		const {config, org, scale} = $$;
+		const maxDataCount = $$.getMaxDataCount();
+		const isGrouped = type === "bar" && config.data_groups?.length;
+		const configName = `${type}_width`;
+		const {k} = $$.getZoomTransform?.() ?? {k: 1};
+		const xMinMax = <[number, number]>[
+			config.axis_x_min ?? org.xDomain[0],
+			config.axis_x_max ?? org.xDomain[1]
+		].map($$.axis.isTimeSeries() ? parseDate.bind($$) : Number);
+
+		let tickInterval = axis.tickInterval(maxDataCount);
+
+		if (scale.zoom && !$$.axis.isCategorized() && k > 1) {
+			const isSameMinMax = xMinMax.every((v, i) => v === org.xDomain[i]);
+
+			tickInterval = org.xDomain.map((v, i) => {
+				const value = isSameMinMax ? v : v - Math.abs(xMinMax[i]);
+
+				return scale.zoom(value);
+			}).reduce((a, c) => Math.abs(a) + c) / maxDataCount;
+		}
+
+		const getWidth = (id?: string) => {
+			const width = id ? config[configName][id] : config[configName];
+			const ratio = id ? width.ratio : config[`${configName}_ratio`];
+			const max = id ? width.max : config[`${configName}_max`];
+			const w = isNumber(width) ?
+				width :
+				(targetsNum ? (tickInterval * ratio) / targetsNum : 0);
+
+			return max && w > max ? max : w;
+		};
+
+		let result = getWidth();
+
+		if (!isGrouped && isObjectType(config[configName])) {
+			result = {_$width: result, _$total: []};
+
+			$$.filterTargetsToShow($$.data.targets).forEach(v => {
+				if (config[configName][v.id]) {
+					result[v.id] = getWidth(v.id);
+					result._$total.push(result[v.id] || result._$width);
+				}
+			});
+		}
+
+		return result;
+	},
+
+	/**
+	 * Get shape element
+	 * @param {string} shapeName Shape string
+	 * @param {number} i Index number
+	 * @param {string} id Data series id
+	 * @returns {d3Selection}
+	 * @private
+	 */
+	getShapeByIndex(shapeName: string, i: number, id?: string): d3Selection {
+		const $$ = this;
+		const {$el} = $$;
+		const suffix = isValue(i) ? `-${i}` : ``;
+		let shape = $el[shapeName];
+
+		// filter from shape reference if has
+		if (shape && !shape.empty()) {
+			shape = shape
+				.filter(d => (id ? d.id === id : true))
+				.filter(d => (isValue(i) ? d.index === i : true));
+		} else {
+			shape = (id ?
+				$el.main
+					.selectAll(
+						`.${CLASS[`${shapeName}s`]}${$$.getTargetSelectorSuffix(id)}`
+					) :
+				$el.main)
+				.selectAll(`.${CLASS[shapeName]}${suffix}`);
+		}
+
+		return shape;
+	},
+
+	isWithinShape(that, d): boolean {
+		const $$ = this;
+		const shape = d3Select(that);
+		let isWithin;
+
+		if (!$$.isTargetToShow(d.id)) {
+			isWithin = false;
+		} else if ($$.hasValidPointType?.(that.nodeName)) {
+			isWithin = $$.isStepType(d) ?
+				$$.isWithinStep(that, $$.getYScaleById(d.id)(d.value)) :
+				$$.isWithinCircle(
+					that,
+					$$.isBubbleType(d) ? $$.pointSelectR(d) * 1.5 : 0
+				);
+		} else if (that.nodeName === "path") {
+			isWithin = shape.classed(CLASS.bar) ? $$.isWithinBar(that) : true;
+		}
+
+		return isWithin;
+	},
+
+	getInterpolate(d) {
+		const $$ = this;
+		const interpolation = $$.getInterpolateType(d);
+
+		return {
+			basis: d3CurveBasis,
+			"basis-closed": d3CurveBasisClosed,
+			"basis-open": d3CurveBasisOpen,
+			bundle: d3CurveBundle,
+			cardinal: d3CurveCardinal,
+			"cardinal-closed": d3CurveCardinalClosed,
+			"cardinal-open": d3CurveCardinalOpen,
+			"catmull-rom": d3CurveCatmullRom,
+			"catmull-rom-closed": d3CurveCatmullRomClosed,
+			"catmull-rom-open": d3CurveCatmullRomOpen,
+			"monotone-x": d3CurveMonotoneX,
+			"monotone-y": d3CurveMonotoneY,
+			natural: d3CurveNatural,
+			"linear-closed": d3CurveLinearClosed,
+			linear: d3CurveLinear,
+			step: d3CurveStep,
+			"step-after": d3CurveStepAfter,
+			"step-before": d3CurveStepBefore
+		}[interpolation];
+	},
+
+	getInterpolateType(d) {
+		const $$ = this;
+		const {config} = $$;
+		const type = config.spline_interpolation_type;
+		const interpolation = $$.isInterpolationType(type) ? type : "cardinal";
+
+		return $$.isSplineType(d) ? interpolation : (
+			$$.isStepType(d) ? config.line_step_type : "linear"
+		);
+	},
+
+	isWithinBar(that): boolean {
+		const mouse = getPointer(this.state.event, that);
+		const list = getRectSegList(that);
+		const [seg0, seg1] = list;
+		const x = Math.min(seg0.x, seg1.x);
+		const y = Math.min(seg0.y, seg1.y);
+		const offset = this.config.bar_sensitivity;
+		const {width, height} = that.getBBox();
+		const sx = x - offset;
+		const ex = x + width + offset;
+		const sy = y + height + offset;
+		const ey = y - offset;
+
+		const isWithin = sx < mouse[0] &&
+			mouse[0] < ex &&
+			ey < mouse[1] &&
+			mouse[1] < sy;
+
+		return isWithin;
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_Chart.ts.html b/release/3.12.4/doc/Chart_Chart.ts.html new file mode 100644 index 000000000..7f1d6ad3e --- /dev/null +++ b/release/3.12.4/doc/Chart_Chart.ts.html @@ -0,0 +1,240 @@ + + + + + + Chart/Chart.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/Chart.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import ChartInternal from "../ChartInternal/ChartInternal";
+import {loadConfig} from "../config/config";
+import {extend, isFunction, notEmpty} from "../module/util";
+
+import apiChart from "./api/chart";
+import apiColor from "./api/color";
+import apiData from "./api/data";
+import apiExport from "./api/export";
+import apiFocus from "./api/focus";
+import apiLegend from "./api/legend";
+import apiLoad from "./api/load";
+import apiShow from "./api/show";
+import apiTooltip from "./api/tooltip";
+
+/**
+ * Main chart class.
+ * - Note: Instantiated via `bb.generate()`.
+ * @class Chart
+ * @example
+ * var chart = bb.generate({
+ *  data: {
+ *    columns: [
+ *        ["x", "2015-11-02", "2015-12-01", "2016-01-01", "2016-02-01", "2016-03-01"],
+ *        ["count1", 11, 8, 7, 6, 5 ],
+ *        ["count2", 9, 3, 6, 2, 8 ]
+ *   ]}
+ * }
+ * @see {@link bb.generate} for the initialization.
+ */
+/**
+ * Access instance's primary node elements
+ * @member {object} $
+ * @property {object} $ Access instance's primary node elements
+ * @property {d3.selection} $.chart Wrapper element
+ * @property {d3.selection} $.svg Main svg element
+ * @property {d3.selection} $.defs Definition element
+ * @property {d3.selection} $.main Main grouping element
+ * @property {d3.selection} $.needle Needle element
+ *  - **NOTE:**
+ *    - The element will have `bb-needle` as class name.
+ *    - Will provide speical helper `.updateHelper(value: number, updateConfig: boolean)` method to facilitate needle position update.
+ * @property {d3.selection} $.tooltip Tooltip element
+ * @property {d3.selection} $.legend Legend element
+ * @property {d3.selection} $.title Title element
+ * @property {d3.selection} $.grid Grid element
+ * @property {d3.selection} $.arc Arc element
+ * @property {d3.selection} $.circles Data point circle elements
+ * @property {object} $.bar Bar element object
+ * @property {d3.selection} $.bar.bars Bar elements
+ * @property {d3.selection} $.candlestick Candlestick elements
+ * @property {object} $.line Line element object
+ * @property {d3.selection} $.line.lines Line elements
+ * @property {d3.selection} $.line.areas Areas elements
+ * @property {object} $.text Text element object
+ * @property {d3.selection} $.text.texts Data label text elements
+ * @memberof Chart
+ * @example
+ * const chart = bb.generate({ ... });
+ *
+ * chart.$.chart; // wrapper element
+ * chart.$.line.circles;  // all data point circle elements
+ * @example
+ * // Update arc needle position
+ * const chart = bb.generate({
+ *   data: {
+ *     type: "donut"
+ *   },
+ *   arc: {
+ *     needle: {
+ *       show: true,
+ *       ...
+ *     }
+ *   }
+ * });
+ *
+ * chart.$.needle.updateHelper(70);  // update needle position to point value 70.
+ *
+ * // update needle position to point value 70 and the config value.
+ * // NOTE: updating config value, will update needle pointer initial value too.
+ * chart.$.needle.updateHelper(70, true);
+ *
+ * // update needle point position every 1 second
+ * let i = 0;
+ * setInterval(() => {
+ *   chart.$.needle.updateHelper(i += 10);
+ * }, 1000)
+ */
+/**
+ * Plugin instance array
+ * @member {Array} plugins
+ * @memberof Chart
+ * @example
+ *  var chart = bb.generate({
+ *     ...
+ *     plugins: [
+ *        new bb.plugin.stanford({ ... }),
+ *        new PluginA()
+ *     ]
+ *  });
+ *
+ *  chart.plugins; // [Stanford, PluginA] - instance array
+ */
+export default class Chart {
+	public plugins = [];
+	public internal: ChartInternal;
+
+	constructor(options) {
+		const $$ = new ChartInternal(this);
+
+		this.internal = $$;
+
+		// bind to namespaced APIs
+		(function bindThis(fn, target, argThis) {
+			Object.keys(fn).forEach(key => {
+				const isFunc = isFunction(fn[key]);
+				const isChild = target !== argThis;
+				const isNotNil = notEmpty(fn[key]);
+				const hasChild = isNotNil && Object.keys(fn[key]).length > 0;
+
+				if (isFunc && ((!isChild && hasChild) || isChild)) {
+					target[key] = fn[key].bind(argThis);
+				} else if (isNotNil && !isFunc) {
+					target[key] = {};
+				} else {
+					target[key] = fn[key];
+				}
+
+				hasChild && bindThis(fn[key], target[key], argThis);
+			});
+		})(Chart.prototype, this, this);
+
+		loadConfig.call($$, options);
+
+		$$.beforeInit();
+		$$.init();
+	}
+}
+
+// extend common APIs as part of Chart class
+extend(Chart.prototype, [
+	apiChart,
+	apiColor,
+	apiData,
+	apiExport,
+	apiFocus,
+	apiLegend,
+	apiLoad,
+	apiShow,
+	apiTooltip
+]);
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_axis.ts.html b/release/3.12.4/doc/Chart_api_axis.ts.html new file mode 100644 index 000000000..6638d747b --- /dev/null +++ b/release/3.12.4/doc/Chart_api_axis.ts.html @@ -0,0 +1,345 @@ + + + + + + Chart/api/axis.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/axis.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {isDefined, isNumber, isObjectType, isValue} from "../../module/util";
+
+type AxisOption = {x?: number | false, y?: number | false, y2?: number | false} | number | false;
+
+type RangeAxisOption = {min?: AxisOption, max?: AxisOption};
+
+/**
+ * Set the min/max value
+ * @param {Chart} $$ Chart instance
+ * @param {string} type Set type 'min' or 'max'
+ * @param {object} value Value to be set
+ * @private
+ */
+function setMinMax($$, type: "min" | "max", value: AxisOption): void {
+	const {config} = $$;
+	const helper = (key, value) => {
+		const v = isNumber(value) ? value : (
+			value === false ? undefined : null
+		);
+
+		if (v !== null) {
+			config[`axis_${key}_${type}`] = v;
+		}
+	};
+
+	if (isDefined(value)) {
+		if (isObjectType(value)) {
+			Object.keys(value).forEach(key => {
+				helper(key, value[key]);
+			});
+		} else if (isNumber(value) || value === false) {
+			// shorthand values affects only y and y2.
+			["y", "y2"].forEach(key => {
+				helper(key, value);
+			});
+		}
+
+		$$.redraw({
+			withUpdateOrgXDomain: true,
+			withUpdateXDomain: true
+		});
+	}
+}
+
+/**
+ * Get the min/max value
+ * @param {Chart} $$ Chart instance
+ * @param {string} type Set type 'min' or 'max'
+ * @returns {{x, y, y2}}
+ * @private
+ */
+function getMinMax($$, type: "min" | "max"): {x: number, y: number, y2: number} {
+	const {config} = $$;
+
+	return {
+		x: config[`axis_x_${type}`],
+		y: config[`axis_y_${type}`],
+		y2: config[`axis_y2_${type}`]
+	};
+}
+
+/**
+ * Define axis
+ * @ignore
+ */
+const axis = {
+	/**
+	 * Get and set axis labels.
+	 * - **NOTE:** Only applicable for chart types which has x and y axes.
+	 * @function axis․labels
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} labels specified axis' label to be updated.
+	 * @param {string} [labels.x] x Axis string
+	 * @param {string} [labels.y] y Axis string
+	 * @param {string} [labels.y2] y2 Axis string
+	 * @returns {object|undefined} axis labels text object
+	 * @example
+	 * // Update axis' label
+	 * chart.axis.labels({
+	 *   x: "New X Axis Label",
+	 *   y: "New Y Axis Label",
+	 *   y2: "New Y2 Axis Label"
+	 * });
+	 *
+	 * chart.axis.labels();
+	 * // --> {
+	 * //  x: "New X Axis Label",
+	 * //  y: "New Y Axis Label",
+	 * //  y2: "New Y2 Axis Label"
+	 * // }
+	 */
+	labels: function<T>(labels?: {x?: string, y?: string, y2?: string}): T | undefined {
+		const $$ = this.internal;
+		let labelText;
+
+		if (labels) {
+			Object.keys(labels).forEach(axisId => {
+				$$.axis.setLabelText(axisId, labels[axisId]);
+			});
+
+			$$.axis.updateLabels();
+		}
+
+		["x", "y", "y2"].forEach(v => {
+			const text = $$.axis.getLabelText(v);
+
+			if (text) {
+				!labelText && (labelText = {});
+				labelText[v] = text;
+			}
+		});
+
+		return <T>labelText;
+	},
+
+	/**
+	 * Get and set axis min value.
+	 * - **NOTE:** Only applicable for chart types which has x and y axes.
+	 * @function axis․min
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} min If min is given, specified axis' min value will be updated.<br>
+	 *   If no argument is given, the min values set on generating option for each axis will be returned.
+	 *   If not set any min values on generation, it will return `undefined`.<br>
+	 *   To unset specific axis max, set `false` to each of them.
+	 * @returns {object|undefined}
+	 * @example
+	 * // Update axis' min
+	 * chart.axis.min({
+	 *   x: -10,
+	 *   y: 1000,
+	 *   y2: 100
+	 * });
+	 *
+	 * // To unset specific axis min, set false to each of them.
+	 * chart.axis.min({
+	 *   x: false,
+	 *   y: false,
+	 *   y2: false
+	 * });
+	 *
+	 * // shorthand (only affects y and y2 axis)
+	 * chart.axis.min(-50);
+	 * chart.axis.min(false);
+	 */
+	min: function(min?: AxisOption): object | void {
+		const $$ = this.internal;
+
+		return isValue(min) || min === false ?
+			setMinMax($$, "min", min as AxisOption) :
+			getMinMax($$, "min");
+	},
+
+	/**
+	 * Get and set axis max value.
+	 * - **NOTE:** Only applicable for chart types which has x and y axes.
+	 * @function axis․max
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} max If max is given, specified axis' max value will be updated.<br>
+	 *   If no argument is given, the max values set on generating option for each axis will be returned.
+	 *   If not set any max values on generation, it will return `undefined`.<br>
+	 *   To unset specific axis max, set `false` to each of them.
+	 * @returns {object|undefined}
+	 * @example
+	 * // Update axis' label
+	 * chart.axis.max({
+	 *    x: 100,
+	 *    y: 1000,
+	 *    y2: 10000
+	 * });
+	 *
+	 * // To unset specific axis max, set false to each of them.
+	 * chart.axis.max({
+	 *   x: false,
+	 *   y: false,
+	 *   y2: false
+	 * });
+	 *
+	 * // shorthand (only affects y and y2 axis)
+	 * chart.axis.max(10);
+	 * chart.axis.max(false);
+	 */
+	max: function(max?: AxisOption): object | void {
+		const $$ = this.internal;
+
+		return isValue(max) || max === false ?
+			setMinMax($$, "max", max as AxisOption) :
+			getMinMax($$, "max");
+	},
+
+	/**
+	 * Get and set axis min and max value.
+	 * - **NOTE:** Only applicable for chart types which has x and y axes.
+	 * @function axis․range
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} range If range is given, specified axis' min and max value will be updated.
+	 *   If no argument is given, the current min and max values for each axis will be returned.<br>
+	 *   To unset specific axis max, set `false` to each of them.
+	 * @returns {object|undefined}
+	 * @example
+	 * // Update axis' label
+	 * chart.axis.range({
+	 *   min: {
+	 *     x: -10,
+	 *     y: -1000,
+	 *     y2: -10000
+	 *   },
+	 *   max: {
+	 *     x: 100,
+	 *     y: 1000,
+	 *     y2: 10000
+	 *   },
+	 * });
+	 *
+	 * // To unset specific axis max, set false to each of them.
+	 * chart.axis.range({
+	 *   min: {
+	 *     x: false,
+	 *     y: false,
+	 *     y2: false
+	 *   },
+	 *   max: {
+	 *     x: false,
+	 *     y: false,
+	 *     y2: false
+	 *   },
+	 * });
+	 *
+	 * // shorthand (only affects y and y2 axis)
+	 * chart.axis.range({ min: -50, max: 1000 });
+	 * chart.axis.range({ min: false, max: false });
+	 */
+	range: function(range: RangeAxisOption): object | void {
+		const {axis} = this;
+
+		if (arguments.length) {
+			const {min, max} = range;
+
+			isDefined(max) && axis.max(max);
+			isDefined(min) && axis.min(min);
+		} else {
+			return {
+				max: axis.max(),
+				min: axis.min()
+			};
+		}
+
+		return undefined;
+	}
+};
+
+export default {axis};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_category.ts.html b/release/3.12.4/doc/Chart_api_category.ts.html new file mode 100644 index 000000000..01059656d --- /dev/null +++ b/release/3.12.4/doc/Chart_api_category.ts.html @@ -0,0 +1,144 @@ + + + + + + Chart/api/category.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/category.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {isEmpty} from "../../module/util";
+
+export default {
+	/**
+	 * Set specified category name on category axis.
+	 * @function category
+	 * @instance
+	 * @memberof Chart
+	 * @param {number} i index of category to be changed
+	 * @param {string} category category value to be changed
+	 * @returns {string}
+	 * @example
+	 * chart.category(2, "Category 3");
+	 */
+	category(i: number, category: string): string {
+		const $$ = this.internal;
+		const {config} = $$;
+
+		if (arguments.length > 1) {
+			config.axis_x_categories[i] = category;
+			$$.redraw();
+		}
+
+		return config.axis_x_categories[i];
+	},
+
+	/**
+	 * Set or get category names on category axis.
+	 * @function categories
+	 * @instance
+	 * @memberof Chart
+	 * @param {Array} categories This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required.
+	 * @returns {Array}
+	 * @example
+	 * chart.categories([
+	 *      "Category 1", "Category 2", ...
+	 * ]);
+	 */
+	categories(categories?: string[]): string[] {
+		const $$ = this.internal;
+		const {config} = $$;
+
+		if (!categories || !Array.isArray(categories)) {
+			const cat = config.axis_x_categories;
+
+			return isEmpty(cat) ? Object.values($$.data.xs)[0] : cat;
+		}
+
+		config.axis_x_categories = categories;
+		$$.redraw();
+
+		return config.axis_x_categories;
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_chart.ts.html b/release/3.12.4/doc/Chart_api_chart.ts.html new file mode 100644 index 000000000..7c5f6f34e --- /dev/null +++ b/release/3.12.4/doc/Chart_api_chart.ts.html @@ -0,0 +1,287 @@ + + + + + + Chart/api/chart.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/chart.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {window} from "../../module/browser";
+import {isDefined, isEmpty, notEmpty} from "../../module/util";
+
+export default {
+	/**
+	 * Resize the chart.
+	 * @function resize
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} size This argument should include width and height in pixels.
+	 * @param {number} [size.width] width value
+	 * @param {number} [size.height] height value
+	 * @example
+	 * // Resize to 640x480
+	 * chart.resize({
+	 *    width: 640,
+	 *    height: 480
+	 * });
+	 */
+	resize(size?: {width?: number, height?: number}): void {
+		const $$ = this.internal;
+		const {config, state} = $$;
+
+		if (state.rendered) {
+			config.size_width = size ? size.width : null;
+			config.size_height = size ? size.height : null;
+
+			state.resizing = true;
+
+			this.flush(false);
+			$$.resizeFunction();
+		}
+	},
+
+	/**
+	 * Force to redraw.
+	 * - **NOTE:** When zoom/subchart is used, the zoomed state will be resetted.
+	 * @function flush
+	 * @instance
+	 * @memberof Chart
+	 * @param {boolean} [soft] For soft redraw.
+	 * @example
+	 * chart.flush();
+	 *
+	 * // for soft redraw
+	 * chart.flush(true);
+	 */
+	flush(soft?: boolean): void {
+		const $$ = this.internal;
+		const {state, $el: {zoomResetBtn}} = $$;
+
+		if (state.rendered) {
+			// reset possible zoom scale when is called from resize event
+			if (state.resizing) { // arguments[1] is given when is called from resize
+				$$.brush?.updateResize();
+			} else {
+				// re-update config info
+				$$.axis?.setOrient();
+			}
+
+			// hide possible reset zoom button
+			// https://github.com/naver/billboard.js/issues/2201
+			zoomResetBtn?.style("display", "none");
+			$$.scale.zoom = null;
+
+			soft ?
+				$$.redraw({
+					withTransform: true,
+					withUpdateXDomain: true,
+					withUpdateOrgXDomain: true,
+					withLegend: true
+				}) :
+				$$.updateAndRedraw({
+					withLegend: true,
+					withTransition: false,
+					withTransitionForTransform: false
+				});
+
+			// reset subchart selection & selection state
+			if (!state.resizing && $$.brush) {
+				$$.brush.getSelection().call($$.brush.move);
+				$$.unselectRect();
+			}
+		} else {
+			$$.initToRender(true);
+		}
+	},
+
+	/**
+	 * Reset the chart object and remove element and events completely.
+	 * @function destroy
+	 * @instance
+	 * @memberof Chart
+	 * @returns {null}
+	 * @example
+	 * chart.destroy();
+	 */
+	destroy(): null {
+		const $$ = this.internal;
+		const {$el: {chart, style, svg}} = $$;
+
+		if (notEmpty($$)) {
+			$$.callPluginHook("$willDestroy");
+			$$.charts.splice($$.charts.indexOf(this), 1);
+
+			// detach events
+			$$.unbindAllEvents();
+
+			// clear timers && pending transition
+			svg.select("*").interrupt();
+			$$.resizeFunction.clear();
+
+			window.removeEventListener("resize", $$.resizeFunction);
+			chart.classed("bb", false)
+				.style("position", null)
+				.selectChildren()
+				.remove();
+
+			// remove <style> element added by boost.useCssRule option
+			style && style.parentNode.removeChild(style);
+
+			// releasing own references
+			Object.keys(this).forEach(key => {
+				key === "internal" && Object.keys($$).forEach(k => {
+					$$[k] = null;
+				});
+
+				this[key] = null;
+				delete this[key];
+			});
+
+			// release prototype chains
+			for (const key in this) {
+				this[key] = () => {};
+			}
+		}
+
+		return null;
+	},
+
+	/**
+	 * Get or set config option value.
+	 * - **NOTE**
+	 *  - The option key name must be specified as the last level.
+	 *  - when no argument is given, will return all specified generation options object only. (will exclude any other options not specified at the initialization)
+	 * @function config
+	 * @instance
+	 * @memberof Chart
+	 * @param {string} name The option key name.
+	 * @param {*} [value] The value accepted for indicated option.
+	 * @param {boolean} [redraw] Set to redraw with the new option changes.
+	 * - **NOTE:** Doesn't guarantee work in all circumstances. It can be applied for limited options only.
+	 * @returns {*}
+	 * @example
+	 *
+	 * // Getter
+	 * chart.config("gauge.max");
+	 *
+	 * // Getter specified with top level key name will not work.
+	 * // The option key name must be specified as the last level.
+	 * // chart.config("gauge"); // will not work
+	 *
+	 * // without any arguments, it returns generation config object
+	 * chart.config();  // {data: { ... }, axis: { ... }, ...}
+	 *
+	 * // Setter
+	 * chart.config("gauge.max", 100);
+	 *
+	 * // Setter specified with top level key name will not work.
+	 * // The option key name must be specified as the last level.
+	 * // chart.config("gauge", {min: 10, max: 20}); // will not work
+	 *
+	 * // Setter & redraw with the new option
+	 * chart.config("gauge.max", 100, true);
+	 */
+	config(name: string, value?: any, redraw?: boolean): any {
+		const $$ = this.internal;
+		const {config, state} = $$;
+		const key = name?.replace(/\./g, "_");
+		let res;
+
+		if (name && key in config) {
+			if (isDefined(value)) {
+				config[key] = value;
+				res = value;
+
+				redraw && this.flush();
+			} else {
+				res = config[key];
+			}
+		} else if (arguments.length === 0 || isEmpty(name)) {
+			res = state.orgConfig;
+		}
+
+		return res;
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_color.ts.html b/release/3.12.4/doc/Chart_api_color.ts.html new file mode 100644 index 000000000..f16a9809e --- /dev/null +++ b/release/3.12.4/doc/Chart_api_color.ts.html @@ -0,0 +1,105 @@ + + + + + + Chart/api/color.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/color.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+export default {
+	/**
+	 * Get the color
+	 * @function color
+	 * @instance
+	 * @memberof Chart
+	 * @param {string} id id to get the color
+	 * @returns {string}
+	 * @example
+	 * chart.color("data1");
+	 */
+	color(id: string): string {
+		return this.internal.color(id); // more patterns
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_data.ts.html b/release/3.12.4/doc/Chart_api_data.ts.html new file mode 100644 index 000000000..207559d61 --- /dev/null +++ b/release/3.12.4/doc/Chart_api_data.ts.html @@ -0,0 +1,282 @@ + + + + + + Chart/api/data.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/data.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import type {DataItem} from "../../../types/types";
+import type {IDataRow} from "../../ChartInternal/data/IData";
+import {extend, isArray, isUndefined} from "../../module/util";
+
+/**
+ * Get data loaded in the chart.
+ * @function data
+ * @instance
+ * @memberof Chart
+ * @param {string|Array} targetIds If this argument is given, this API returns the specified target data. If this argument is not given, all of data will be returned.
+ * @returns {Array} Data objects
+ * @example
+ * // Get only data1 data
+ * chart.data("data1");
+ * // --> [{id: "data1", id_org: "data1", values: Array(6)}, ...]
+ *
+ * // Get data1 and data2 data
+ * chart.data(["data1", "data2"]);
+ *
+ * // Get all data
+ * chart.data();
+ */
+const data = function(targetIds: string | string[]): DataItem[] {
+	const {targets} = this.internal.data;
+
+	if (!isUndefined(targetIds)) {
+		const ids: any = isArray(targetIds) ? targetIds : [targetIds];
+
+		return targets.filter(t => ids.some(v => v === t.id));
+	}
+
+	return targets;
+};
+
+extend(data, {
+	/**
+	 * Get data shown in the chart.
+	 * @function data․shown
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} targetIds If this argument is given, this API filters the data with specified target ids. If this argument is not given, all shown data will be returned.
+	 * @returns {Array} Data objects
+	 * @example
+	 * // Get shown data by filtering to include only data1 data
+	 * chart.data.shown("data1");
+	 * // --> [{id: "data1", id_org: "data1", values: Array(6)}, ...]
+	 *
+	 * // Get shown data by filtering to include data1 and data2 data
+	 * chart.data.shown(["data1", "data2"]);
+	 *
+	 * // Get all shown data
+	 * chart.data.shown();
+	 */
+	shown: function(targetIds: string | string[]): DataItem[] {
+		return this.internal.filterTargetsToShow(this.data(targetIds));
+	},
+
+	/**
+	 * Get values of the data loaded in the chart.
+	 * @function data․values
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array|null} targetIds This API returns the values of specified target. If this argument is not given, null will be retruned
+	 * @param {boolean} [flat=true] Get flatten values
+	 * @returns {Array} Data values
+	 * @example
+	 * // Get data1 values
+	 * chart.data.values("data1");
+	 * // --> [10, 20, 30, 40]
+	 */
+	values: function(targetIds?: string | string[], flat: boolean = true): number[] | number[][]
+		| null {
+		let values: any = null;
+
+		if (targetIds) {
+			const targets = this.data(targetIds);
+
+			if (isArray(targets)) {
+				values = [];
+
+				targets.forEach(v => {
+					const dataValue = v.values.map(d => d.value);
+
+					flat ? (values = values.concat(dataValue)) : values.push(dataValue);
+				});
+			}
+		}
+
+		return values;
+	},
+
+	/**
+	 * Get and set names of the data loaded in the chart.
+	 * @function data․names
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} names If this argument is given, the names of data will be updated. If not given, the current names will be returned. The format of this argument is the same as [data.names](./Options.html#.data%25E2%2580%25A4names).
+	 * @returns {object} Corresponding names according its key value, if specified names values.
+	 * @example
+	 * // Get current names
+	 * chart.data.names();
+	 * // --> {data1: "test1", data2: "test2"}
+	 *
+	 * // Update names
+	 * chart.data.names({
+	 *  data1: "New Name 1",
+	 *  data2: "New Name 2"
+	 * });
+	 */
+	names: function(names?: Array<{[key: string]: string | null}>): {[key: string]: string | null} {
+		const $$ = this.internal;
+
+		return $$.updateDataAttributes("names", names);
+	},
+
+	/**
+	 * Get and set colors of the data loaded in the chart.
+	 * @function data․colors
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} colors If this argument is given, the colors of data will be updated. If not given, the current colors will be returned. The format of this argument is the same as [data.colors](./Options.html#.data%25E2%2580%25A4colors).
+	 * @returns {object} Corresponding data color value according its key value.
+	 * @example
+	 * // Get current colors
+	 * chart.data.colors();
+	 * // --> {data1: "#00c73c", data2: "#fa7171"}
+	 *
+	 * // Update colors
+	 * chart.data.colors({
+	 *  data1: "#FFFFFF",
+	 *  data2: "#000000"
+	 * });
+	 */
+	colors: function(colors?: Array<{[key: string]: string}>): {[key: string]: string} {
+		return this.internal.updateDataAttributes("colors", colors);
+	},
+
+	/**
+	 * Get and set axes of the data loaded in the chart.
+	 * - **NOTE:** If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data
+	 * @function data․axes
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} axes If this argument is given, the axes of data will be updated. If not given, the current axes will be returned. The format of this argument is the same as
+	 * @returns {object} Corresponding axes value for data, if specified axes value.
+	 * @example
+	 * // Get current axes
+	 * chart.data.axes();
+	 * // --> {data1: "y"}
+	 *
+	 * // Update axes
+	 * chart.data.axes({
+	 *  data1: "y",
+	 *  data2: "y2"
+	 * });
+	 */
+	axes: function(axes?: Array<{[key: string]: string}>): {[key: string]: string} {
+		return this.internal.updateDataAttributes("axes", axes);
+	},
+
+	/**
+	 * Get the minimum data value bound to the chart
+	 * @function data․min
+	 * @instance
+	 * @memberof Chart
+	 * @returns {Array} Data objects
+	 * @example
+	 * // Get current axes
+	 * chart.data.min();
+	 * // --> [{x: 0, value: 30, id: "data1", index: 0}, ...]
+	 */
+	min: function(): IDataRow[] {
+		return this.internal.getMinMaxData().min;
+	},
+
+	/**
+	 * Get the maximum data value bound to the chart
+	 * @function data․max
+	 * @instance
+	 * @memberof Chart
+	 * @returns {Array} Data objects
+	 * @example
+	 * // Get current axes
+	 * chart.data.max();
+	 * // --> [{x: 3, value: 400, id: "data1", index: 3}, ...]
+	 */
+	max: function(): IDataRow[] {
+		return this.internal.getMinMaxData().max;
+	}
+});
+
+export default {data};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_export.ts.html b/release/3.12.4/doc/Chart_api_export.ts.html new file mode 100644 index 000000000..7fd575e0a --- /dev/null +++ b/release/3.12.4/doc/Chart_api_export.ts.html @@ -0,0 +1,384 @@ + + + + + + Chart/api/export.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/export.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {namespaces as d3Namespaces} from "d3-selection";
+import {document, window} from "../../module/browser";
+import {getCssRules, isFunction, mergeObj, toArray} from "../../module/util";
+
+type TExportOption = TSize & {
+	preserveAspectRatio: boolean,
+	preserveFontStyle: boolean,
+	mimeType: string
+};
+
+type TSize = {x?: number, y?: number, width: number, height: number};
+
+type TTextGlyph = {
+	[key: string]: TSize & {
+		fill: string,
+		fontFamily: string,
+		fontSize: string,
+		textAnchor: string,
+		transform: string
+	}
+};
+
+/**
+ * Encode to base64
+ * @param {string} str string to be encoded
+ * @returns {string}
+ * @private
+ * @see https://developer.mozilla.org/ko/docs/Web/API/WindowBase64/Base64_encoding_and_decoding
+ */
+const b64EncodeUnicode = (str: string): string =>
+	window.btoa?.(
+		encodeURIComponent(str)
+			.replace(/%([0-9A-F]{2})/g,
+				(match, p: number | string): string => String.fromCharCode(Number(`0x${p}`)))
+	);
+
+/**
+ * Convert svg node to data url
+ * @param {HTMLElement} node target node
+ * @param {object} option object containing {width, height, preserveAspectRatio}
+ * @param {object} orgSize object containing {width, height}
+ * @returns {string}
+ * @private
+ */
+function nodeToSvgDataUrl(node, option: TExportOption, orgSize: TSize) {
+	const {width, height} = option || orgSize;
+	const serializer = new XMLSerializer();
+	const clone = node.cloneNode(true);
+	const cssText = getCssRules(toArray(document.styleSheets))
+		.filter((r: CSSStyleRule) => r.cssText)
+		.map((r: CSSStyleRule) => r.cssText);
+
+	clone.setAttribute("xmlns", d3Namespaces.xhtml);
+
+	// remove padding & margin
+	clone.style.margin = "0";
+	clone.style.padding = "0";
+
+	// remove text nodes
+	if (option.preserveFontStyle) {
+		clone.querySelectorAll("text").forEach(t => {
+			t.innerHTML = "";
+		});
+	}
+
+	const nodeXml = serializer.serializeToString(clone);
+
+	// escape css for XML
+	const style = document.createElement("style");
+
+	style.appendChild(document.createTextNode(cssText.join("\n")));
+
+	const styleXml = serializer.serializeToString(style);
+
+	// foreignObject not supported in IE11 and below
+	// https://msdn.microsoft.com/en-us/library/hh834675(v=vs.85).aspx
+	const dataStr = `<svg xmlns="${d3Namespaces.svg}" width="${width}" height="${height}" 
+		viewBox="0 0 ${orgSize.width} ${orgSize.height}" 
+		preserveAspectRatio="${option?.preserveAspectRatio === false ? "none" : "xMinYMid meet"}">
+			<foreignObject width="100%" height="100%">
+				${styleXml}
+				${nodeXml.replace(/(url\()[^#]+/g, "$1")}
+			</foreignObject></svg>`;
+
+	return `data:image/svg+xml;base64,${b64EncodeUnicode(dataStr)}`;
+}
+
+/**
+ * Get coordinate of the element
+ * @param {SVGElement} elem Target element
+ * @param {object} svgOffset SVG offset
+ * @returns {object}
+ * @private
+ */
+function getCoords(elem, svgOffset): TSize {
+	const {top, left} = svgOffset;
+	const {x, y} = elem.getBBox();
+	const {a, b, c, d, e, f} = elem.getScreenCTM();
+	const {width, height} = elem.getBoundingClientRect();
+
+	return {
+		x: (a * x) + (c * y) + e - left,
+		y: (b * x) + (d * y) + f - top + (height - Math.round(height / 4)),
+		width,
+		height
+	};
+}
+
+/**
+ * Get text glyph
+ * @param {SVGTextElement} svg Target svg node
+ * @returns {Array}
+ * @private
+ */
+function getGlyph(svg: SVGElement): TTextGlyph[] {
+	const {left, top} = svg.getBoundingClientRect();
+	const filterFn = t => t.textContent || t.childElementCount;
+	const glyph: TTextGlyph[] = [];
+
+	toArray(svg.querySelectorAll("text"))
+		.filter(filterFn)
+		.forEach((t: SVGTextElement) => { // eslint-disable-line
+			const getStyleFn = (ts: SVGTextElement): TTextGlyph => {
+				const {fill, fontFamily, fontSize, textAnchor, transform} = window.getComputedStyle(
+					ts
+				);
+				const {x, y, width, height} = getCoords(ts, {left, top});
+
+				return {
+					[ts.textContent as string]: {
+						x,
+						y,
+						width,
+						height,
+						fill,
+						fontFamily,
+						fontSize,
+						textAnchor,
+						transform
+					}
+				};
+			};
+
+			if (t.childElementCount > 1) {
+				const text: TTextGlyph[] = [];
+
+				toArray(t.querySelectorAll("tspan"))
+					.filter(filterFn)
+					.forEach((ts: SVGTSpanElement) => {
+						glyph.push(getStyleFn(ts));
+					});
+
+				return text;
+			} else {
+				glyph.push(getStyleFn(t));
+			}
+		});
+
+	return glyph;
+}
+
+/**
+ * Render text glyph
+ * - NOTE: Called when the 'preserveFontStyle' option is true
+ * @param {CanvasRenderingContext2D} ctx Canvas context
+ * @param {Array} glyph Text glyph array
+ * @private
+ */
+function renderText(ctx, glyph): void {
+	glyph.forEach(g => {
+		Object.keys(g).forEach(key => {
+			const {x, y, width, height, fill, fontFamily, fontSize, transform} = g[key];
+
+			ctx.save();
+
+			ctx.font = `${fontSize} ${fontFamily}`;
+			ctx.fillStyle = fill;
+
+			if (transform === "none") {
+				ctx.fillText(key, x, y);
+			} else {
+				const args = transform
+					.replace(/(matrix|\(|\))/g, "")
+					.split(",");
+
+				if (args.splice(4).every(v => +v === 0)) {
+					args.push(x + width - (width / 4));
+					args.push(y - height + (height / 3));
+				} else {
+					args.push(x);
+					args.push(y);
+				}
+
+				ctx.transform(...args);
+				ctx.fillText(key, 0, 0);
+			}
+
+			ctx.restore();
+		});
+	});
+}
+
+export default {
+	/**
+	 * Export chart as an image.
+	 * - **NOTE:**
+	 *   - IE11 and below not work properly due to the lack of the feature(<a href="https://msdn.microsoft.com/en-us/library/hh834675(v=vs.85).aspx">foreignObject</a>) support
+	 *   - Every style applied to the chart & the basic CSS file(ex. billboard.css) should be at same domain as API call context to get correct styled export image.
+	 * @function export
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} option Export option
+	 * @param {string} [option.mimeType="image/png"] The desired output image format. (ex. 'image/png' for png, 'image/jpeg' for jpeg format)
+	 * @param {number} [option.width={currentWidth}] width
+	 * @param {number} [option.height={currentHeigth}] height
+	 * @param {boolean} [option.preserveAspectRatio=true] Preserve aspect ratio on given size
+	 * @param {boolean} [option.preserveFontStyle=false] Preserve font style(font-family).<br>
+	 * **NOTE:**
+	 *   - This option is useful when outlink web font style's `font-family` are applied to chart's text element.
+	 *   - Text element's position(especially "transformed") can't be preserved correctly according the page's layout condition.
+	 *   - If need to preserve accurate text position, embed the web font data within to the page and set `preserveFontStyle=false`.
+	 *     - Checkout the embed example: <a href="https://stackblitz.com/edit/zfbya9-8nf9nn?file=index.html">https://stackblitz.com/edit/zfbya9-8nf9nn?file=index.html</a>
+	 * @param {Function} [callback] The callback to be invoked when export is ready.
+	 * @returns {string} dataURI
+	 * @example
+	 *  chart.export();
+	 *  // --> "data:image/svg+xml;base64,PHN..."
+	 *
+	 *  // Initialize the download automatically
+	 *  chart.export({mimeType: "image/png"}, dataUrl => {
+	 *     const link = document.createElement("a");
+	 *
+	 *     link.download = `${Date.now()}.png`;
+	 *     link.href = dataUrl;
+	 *     link.innerHTML = "Download chart as image";
+	 *
+	 *     document.body.appendChild(link);
+	 *  });
+	 *
+	 *  // Resize the exported image
+	 *  chart.export(
+	 *    {
+	 *      width: 800,
+	 *      height: 600,
+	 *      preserveAspectRatio: false,
+	 *      preserveFontStyle: false,
+	 *      mimeType: "image/png"
+	 *    },
+	 *    dataUrl => { ... }
+	 *  );
+	 */
+	export(option?: TExportOption, callback?: (dataUrl: string) => void): string {
+		const $$ = this.internal;
+		const {state, $el: {chart, svg}} = $$;
+		const {width, height} = state.current;
+		const opt = mergeObj({
+			width,
+			height,
+			preserveAspectRatio: true,
+			preserveFontStyle: false,
+			mimeType: "image/png"
+		}, option) as TExportOption;
+
+		const svgDataUrl = nodeToSvgDataUrl(chart.node(), opt, {width, height});
+		const glyph = opt.preserveFontStyle ? getGlyph(svg.node()) : [];
+
+		if (callback && isFunction(callback)) {
+			const img = new Image();
+
+			img.crossOrigin = "Anonymous";
+			img.onload = () => {
+				const canvas = document.createElement("canvas");
+				const ctx = canvas.getContext("2d");
+
+				canvas.width = opt.width || width;
+				canvas.height = opt.height || height;
+				ctx.drawImage(img, 0, 0);
+
+				if (glyph.length) {
+					renderText(ctx, glyph);
+
+					// release glyph array
+					glyph.length = 0;
+				}
+
+				callback.bind(this)(canvas.toDataURL(opt.mimeType));
+			};
+
+			img.src = svgDataUrl;
+		}
+
+		return svgDataUrl;
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_flow.ts.html b/release/3.12.4/doc/Chart_api_flow.ts.html new file mode 100644 index 000000000..e1a31907f --- /dev/null +++ b/release/3.12.4/doc/Chart_api_flow.ts.html @@ -0,0 +1,307 @@ + + + + + + Chart/api/flow.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/flow.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {isDefined, isTabVisible, isValue, parseDate} from "../../module/util";
+
+export default {
+	/**
+	 * Flow data to the chart.<br><br>
+	 * By this API, you can append new data points to the chart.
+	 * @function flow
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} args The object can consist with following members:<br>
+	 *
+	 *    | Key | Type | Description |
+	 *    | --- | --- | --- |
+	 *    | json | Object | Data as JSON format (@see [data․json](Options.html#.data%25E2%2580%25A4json)) |
+	 *    | rows | Array | Data in array as row format (@see [data․rows](Options.html#.data%25E2%2580%25A4json)) |
+	 *    | columns | Array | Data in array as column format (@see [data․columns](Options.html#.data%25E2%2580%25A4columns)) |
+	 *    | to | String | The lower x edge will move to that point. If not given, the lower x edge will move by the number of given data points |
+	 *    | length | Number | The lower x edge will move by the number of this argument |
+	 *    | duration | Number | The duration of the transition will be specified value. If not given, transition.duration will be used as default |
+	 *    | done | Function | The specified function will be called when flow ends |
+	 *
+	 * - **NOTE:**
+	 *   - If json, rows and columns given, the data will be loaded.
+	 *   - If data that has the same target id is given, the chart will be appended.
+	 *   - Otherwise, new target will be added. One of these is required when calling.
+	 *   - If json specified, keys is required as well as data.json.
+	 * 	 - If tab isn't visible(by evaluating `document.hidden`), will not be executed to prevent unnecessary work.
+	 * @example
+	 * // 2 data points will be apprended to the tail and popped from the head.
+	 * // After that, 4 data points will be appended and no data points will be poppoed.
+	 * chart.flow({
+	 *  columns: [
+	 *    ["x", "2018-01-11", "2018-01-21"],
+	 *    ["data1", 500, 200],
+	 *    ["data2", 100, 300],
+	 *    ["data3", 200, 120]
+	 *  ],
+	 *  to: "2013-01-11",
+	 *  done: function () {
+	 *    chart.flow({
+	 *      columns: [
+	 *        ["x", "2018-02-11", "2018-02-12", "2018-02-13", "2018-02-14"],
+	 *        ["data1", 200, 300, 100, 250],
+	 *        ["data2", 100, 90, 40, 120],
+	 *        ["data3", 100, 100, 300, 500]
+	 *      ],
+	 *      length: 2,
+	 *      duration: 1500
+	 *    });
+	 *  }
+	 * });
+	 */
+	flow(args): void {
+		const $$ = this.internal;
+		let data;
+
+		if (args.json || args.rows || args.columns) {
+			$$.convertData(args, res => {
+				data = res;
+				_();
+			});
+		}
+
+		/**
+		 * Process flows
+		 * @private
+		 */
+		function _(): void {
+			let domain;
+			let length: number = 0;
+			let tail = 0;
+			let diff;
+			let to;
+
+			if ($$.state.redrawing || !data || !isTabVisible()) {
+				return;
+			}
+
+			const notfoundIds: string[] = [];
+			const orgDataCount = $$.getMaxDataCount();
+			const targets = $$.convertDataToTargets(data, true);
+			const isTimeSeries = $$.axis.isTimeSeries();
+
+			// Update/Add data
+			$$.data.targets.forEach(t => {
+				let found = false;
+
+				for (let i = 0; i < targets.length; i++) {
+					if (t.id === targets[i].id) {
+						found = true;
+
+						if (t.values[t.values.length - 1]) {
+							tail = t.values[t.values.length - 1].index + 1;
+						}
+
+						length = targets[i].values.length;
+
+						for (let j = 0; j < length; j++) {
+							targets[i].values[j].index = tail + j;
+
+							if (!isTimeSeries) {
+								targets[i].values[j].x = tail + j;
+							}
+						}
+
+						t.values = t.values.concat(targets[i].values);
+						targets.splice(i, 1);
+						break;
+					}
+				}
+
+				!found && notfoundIds.push(t.id);
+			});
+
+			// Append null for not found targets
+			$$.data.targets.forEach(t => {
+				for (let i = 0; i < notfoundIds.length; i++) {
+					if (t.id === notfoundIds[i]) {
+						tail = t.values[t.values.length - 1].index + 1;
+
+						for (let j = 0; j < length; j++) {
+							t.values.push({
+								id: t.id,
+								index: tail + j,
+								x: isTimeSeries ? $$.getOtherTargetX(tail + j) : tail + j,
+								value: null
+							});
+						}
+					}
+				}
+			});
+
+			// Generate null values for new target
+			if ($$.data.targets.length) {
+				targets.forEach(t => {
+					const missing: any[] = [];
+
+					for (let i = $$.data.targets[0].values[0].index; i < tail; i++) {
+						missing.push({
+							id: t.id,
+							index: i,
+							x: isTimeSeries ? $$.getOtherTargetX(i) : i,
+							value: null
+						});
+					}
+
+					t.values.forEach(v => {
+						v.index += tail;
+
+						if (!isTimeSeries) {
+							v.x += tail;
+						}
+					});
+
+					t.values = missing.concat(t.values);
+				});
+			}
+
+			$$.data.targets = $$.data.targets.concat(targets); // add remained
+
+			// check data count because behavior needs to change when it"s only one
+			// const dataCount = $$.getMaxDataCount();
+			const baseTarget = $$.data.targets[0];
+			const baseValue = baseTarget.values[0];
+
+			// Update length to flow if needed
+			if (isDefined(args.to)) {
+				length = 0;
+				to = isTimeSeries ? parseDate.call($$, args.to) : args.to;
+
+				baseTarget.values.forEach(v => {
+					v.x < to && length++;
+				});
+			} else if (isDefined(args.length)) {
+				length = args.length;
+			}
+
+			// If only one data, update the domain to flow from left edge of the chart
+			if (!orgDataCount) {
+				if (isTimeSeries) {
+					diff = baseTarget.values.length > 1 ?
+						baseTarget.values[baseTarget.values.length - 1].x - baseValue.x :
+						baseValue.x - $$.getXDomain($$.data.targets)[0];
+				} else {
+					diff = 1;
+				}
+
+				domain = [baseValue.x - diff, baseValue.x];
+			} else if (orgDataCount === 1 && isTimeSeries) {
+				diff = (baseTarget.values[baseTarget.values.length - 1].x - baseValue.x) / 2;
+				domain = [new Date(+baseValue.x - diff), new Date(+baseValue.x + diff)];
+			}
+
+			domain && $$.updateXDomain(null, true, true, false, domain);
+
+			// Set targets
+			$$.updateTargets($$.data.targets);
+
+			// Redraw with new targets
+			$$.redraw({
+				flow: {
+					index: baseValue.index,
+					length: length,
+					duration: isValue(args.duration) ?
+						args.duration :
+						$$.config.transition_duration,
+					done: args.done,
+					orgDataCount: orgDataCount
+				},
+				withLegend: true,
+				withTransition: orgDataCount > 1,
+				withTrimXDomain: false,
+				withUpdateXAxis: true
+			});
+		}
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_focus.ts.html b/release/3.12.4/doc/Chart_api_focus.ts.html new file mode 100644 index 000000000..ec64d4938 --- /dev/null +++ b/release/3.12.4/doc/Chart_api_focus.ts.html @@ -0,0 +1,219 @@ + + + + + + Chart/api/focus.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/focus.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {select as d3Select} from "d3-selection";
+import {$FOCUS, $GAUGE} from "../../config/classes";
+
+type FocusParam = string | string[];
+
+export default {
+	/**
+	 * This API highlights specified targets and fade out the others.<br><br>
+	 * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be highlighted.
+	 * @function focus
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} targetIdsValue Target ids to be highlighted.
+	 * @example
+	 *  // data1 will be highlighted and the others will be faded out
+	 *  chart.focus("data1");
+	 *
+	 * // data1 and data2 will be highlighted and the others will be faded out
+	 * chart.focus(["data1", "data2"]);
+	 *
+	 * // all targets will be highlighted
+	 * chart.focus();
+	 */
+	focus(targetIdsValue?: FocusParam): void {
+		const $$ = this.internal;
+		const {state} = $$;
+		const targetIds = $$.mapToTargetIds(targetIdsValue);
+		const candidates = $$.$el.svg.selectAll(
+			$$.selectorTargets(targetIds.filter($$.isTargetToShow, $$))
+		);
+
+		this.revert();
+		this.defocus();
+
+		candidates.classed($FOCUS.focused, true).classed($FOCUS.defocused, false);
+
+		if ($$.hasArcType() && !state.hasRadar) {
+			$$.expandArc(targetIds);
+
+			$$.hasType("gauge") &&
+				$$.markOverlapped(targetIdsValue, $$, `.${$GAUGE.gaugeValue}`);
+		}
+
+		$$.toggleFocusLegend(targetIds, true);
+
+		state.focusedTargetIds = targetIds;
+		state.defocusedTargetIds = state.defocusedTargetIds.filter(id => targetIds.indexOf(id) < 0);
+	},
+
+	/**
+	 * This API fades out specified targets and reverts the others.<br><br>
+	 * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be faded out.
+	 * @function defocus
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} targetIdsValue Target ids to be faded out.
+	 * @example
+	 * // data1 will be faded out and the others will be reverted.
+	 * chart.defocus("data1");
+	 *
+	 * // data1 and data2 will be faded out and the others will be reverted.
+	 * chart.defocus(["data1", "data2"]);
+	 *
+	 * // all targets will be faded out.
+	 * chart.defocus();
+	 */
+	defocus(targetIdsValue?: FocusParam): void {
+		const $$ = this.internal;
+		const {state} = $$;
+		const targetIds = $$.mapToTargetIds(targetIdsValue);
+		const candidates = $$.$el.svg.selectAll(
+			$$.selectorTargets(targetIds.filter($$.isTargetToShow, $$))
+		);
+
+		candidates.classed($FOCUS.focused, false).classed($FOCUS.defocused, true);
+
+		if ($$.hasArcType(null, ["polar"])) {
+			$$.unexpandArc(targetIds);
+
+			$$.hasType("gauge") &&
+				$$.undoMarkOverlapped($$, `.${$GAUGE.gaugeValue}`);
+		}
+
+		$$.toggleFocusLegend(targetIds, false);
+
+		state.focusedTargetIds = state.focusedTargetIds.filter(id => targetIds.indexOf(id) < 0);
+		state.defocusedTargetIds = targetIds;
+	},
+
+	/**
+	 * Revert focused or defocused state to initial state.<br><br>
+	 * You can specify multiple targets by giving an array that includes id as string. If no argument is given, all of targets will be reverted.
+	 * @function revert
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} targetIdsValue Target ids to be reverted
+	 * @example
+	 * // 'data1' will be reverted.
+	 * chart.revert("data1");
+	 *
+	 * // 'data1' and 'data2' will be reverted.
+	 * chart.revert(["data1", "data2"]);
+	 *
+	 * // all targets will be reverted.
+	 * chart.revert();
+	 */
+	revert(targetIdsValue?: FocusParam): void {
+		const $$ = this.internal;
+		const {config, state, $el} = $$;
+		const targetIds = $$.mapToTargetIds(targetIdsValue);
+		const candidates = $el.svg.selectAll($$.selectorTargets(targetIds)); // should be for all targets
+
+		candidates.classed($FOCUS.focused, false).classed($FOCUS.defocused, false);
+
+		$$.hasArcType(null, ["polar"]) && $$.unexpandArc(targetIds);
+
+		if (config.legend_show) {
+			$$.showLegend(targetIds.filter($$.isLegendToShow.bind($$)));
+			$el.legend.selectAll($$.selectorLegends(targetIds))
+				.filter(function() {
+					return d3Select(this).classed($FOCUS.legendItemFocused);
+				})
+				.classed($FOCUS.legendItemFocused, false);
+		}
+
+		state.focusedTargetIds = [];
+		state.defocusedTargetIds = [];
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_grid.ts.html b/release/3.12.4/doc/Chart_api_grid.ts.html new file mode 100644 index 000000000..8f6b53bd5 --- /dev/null +++ b/release/3.12.4/doc/Chart_api_grid.ts.html @@ -0,0 +1,288 @@ + + + + + + Chart/api/grid.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/grid.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {extend, isTabVisible} from "../../module/util";
+
+type GridsParam = {value?: number, class?: string, text?: string}[];
+
+/**
+ * Update grid lines.
+ * @param {Array} grids grid lines to update
+ * @param {string} axisId axis' id: "x" or "y"
+ * @returns {Array}
+ * @private
+ */
+function grid(grids: GridsParam, axisId: "x" | "y"): GridsParam {
+	const $$ = this.internal;
+	const {config} = $$;
+	const withTransition = config.transition_duration && isTabVisible();
+	const gridPropLines = `grid_${axisId}_lines`;
+
+	if (!grids) {
+		return config[gridPropLines];
+	}
+
+	config[gridPropLines] = grids;
+
+	$$.updateGrid();
+	$$.redrawGrid(withTransition);
+
+	return config[gridPropLines];
+}
+
+/**
+ * Add grid lines.
+ * @param {Array|object} grids grid lines to add
+ * @param {string} axisId axis' id: "x" or "y"
+ * @returns {Array}
+ * @private
+ */
+function add(grids: GridsParam, axisId: "x" | "y"): GridsParam {
+	const gridPropLines = `grid_${axisId}_lines`;
+
+	return grid.bind(this)(
+		this.internal.config[gridPropLines].concat(grids || []),
+		axisId
+	);
+}
+
+/**
+ * Remove grid lines.
+ * @param {object} grids grid lines to remove
+ * @param {boolean} isXAxis weather is x axis or not
+ * @private
+ */
+function remove(grids: GridsParam | undefined, isXAxis: boolean): void {
+	this.internal.removeGridLines(grids, isXAxis);
+}
+
+/**
+ * Update x grid lines.
+ * @function xgrids
+ * @instance
+ * @memberof Chart
+ * @param {Array} grids X grid lines will be replaced with this argument. The format of this argument is the same as grid.x.lines.
+ * @returns {Array}
+ * @example
+ *  // Show 2 x grid lines
+ * chart.xgrids([
+ *    {value: 1, text: "Label 1"},
+ *    {value: 4, text: "Label 4"}
+ * ]);
+ * // --> Returns: [{value: 1, text: "Label 1"}, {value: 4, text: "Label 4"}]
+ */
+const xgrids = function(grids: GridsParam): GridsParam {
+	return grid.bind(this)(grids, "x");
+};
+
+extend(xgrids, {
+	/**
+	 * Add x grid lines.<br>
+	 * This API adds new x grid lines instead of replacing like xgrids.
+	 * @function xgrids․add
+	 * @instance
+	 * @memberof Chart
+	 * @param {Array|object} grids New x grid lines will be added. The format of this argument is the same as grid.x.lines and it's possible to give an Object if only one line will be added.
+	 * @returns {Array}
+	 * @example
+	 *  // Add a new x grid line
+	 * chart.xgrids.add(
+	 *   {value: 4, text: "Label 4"}
+	 * );
+	 *
+	 * // Add new x grid lines
+	 * chart.xgrids.add([
+	 *   {value: 2, text: "Label 2"},
+	 *   {value: 4, text: "Label 4"}
+	 * ]);
+	 */
+	add(grids: GridsParam): GridsParam {
+		return add.bind(this)(grids, "x");
+	},
+
+	/**
+	 * Remove x grid lines.<br>
+	 * This API removes x grid lines.
+	 * @function xgrids․remove
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} grids This argument should include value or class. If value is given, the x grid lines that have specified x value will be removed. If class is given, the x grid lines that have specified class will be removed. If args is not given, all of x grid lines will be removed.
+	 * @param {number} [grids.value] target value
+	 * @param {string} [grids.class] target class
+	 * @returns {void}
+	 * @example
+	 * // x grid line on x = 2 will be removed
+	 * chart.xgrids.remove({value: 2});
+	 *
+	 * // x grid lines that have 'grid-A' will be removed
+	 * chart.xgrids.remove({
+	 *   class: "grid-A"
+	 * });
+	 *
+	 * // all of x grid lines will be removed
+	 * chart.xgrids.remove();
+	 */
+	remove(grids?: GridsParam): void { // TODO: multiple
+		return remove.bind(this)(grids, true);
+	}
+});
+
+/**
+ * Update y grid lines.
+ * @function ygrids
+ * @instance
+ * @memberof Chart
+ * @param {Array} grids Y grid lines will be replaced with this argument. The format of this argument is the same as grid.y.lines.
+ * @returns {object}
+ * @example
+ *  // Show 2 y grid lines
+ * chart.ygrids([
+ *    {value: 100, text: "Label 1"},
+ *    {value: 400, text: "Label 4"}
+ * ]);
+ * // --> Returns: [{value: 100, text: "Label 1"}, {value: 400, text: "Label 4"}]
+ */
+const ygrids = function(grids: GridsParam): GridsParam {
+	return grid.bind(this)(grids, "y");
+};
+
+extend(ygrids, {
+	/**
+	 * Add y grid lines.<br>
+	 * This API adds new y grid lines instead of replacing like ygrids.
+	 * @function ygrids․add
+	 * @instance
+	 * @memberof Chart
+	 * @param {Array|object} grids New y grid lines will be added. The format of this argument is the same as grid.y.lines and it's possible to give an Object if only one line will be added.
+	 * @returns {object}
+	 * @example
+	 *  // Add a new x grid line
+	 * chart.ygrids.add(
+	 *   {value: 400, text: "Label 4"}
+	 * );
+	 *
+	 * // Add new x grid lines
+	 * chart.ygrids.add([
+	 *   {value: 200, text: "Label 2"},
+	 *   {value: 400, text: "Label 4"}
+	 * ]);
+	 */
+	add(grids: GridsParam): GridsParam {
+		return add.bind(this)(grids, "y");
+	},
+
+	/**
+	 * Remove y grid lines.<br>
+	 * This API removes x grid lines.
+	 * @function ygrids․remove
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} grids This argument should include value or class. If value is given, the y grid lines that have specified y value will be removed. If class is given, the y grid lines that have specified class will be removed. If args is not given, all of y grid lines will be removed.
+	 * @param {number} [grids.value] target value
+	 * @param {string} [grids.class] target class
+	 * @returns {void}
+	 * @example
+	 * // y grid line on y = 200 will be removed
+	 * chart.ygrids.remove({value: 200});
+	 *
+	 * // y grid lines that have 'grid-A' will be removed
+	 * chart.ygrids.remove({
+	 *   class: "grid-A"
+	 * });
+	 *
+	 * // all of y grid lines will be removed
+	 * chart.ygrids.remove();
+	 */
+	remove(grids?: GridsParam): void { // TODO: multiple
+		return remove.bind(this)(grids, false);
+	}
+});
+
+export default {xgrids, ygrids};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_group.ts.html b/release/3.12.4/doc/Chart_api_group.ts.html new file mode 100644 index 000000000..2a5d3898f --- /dev/null +++ b/release/3.12.4/doc/Chart_api_group.ts.html @@ -0,0 +1,120 @@ + + + + + + Chart/api/group.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/group.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {isUndefined} from "../../module/util";
+
+export default {
+	/**
+	 * Update groups for the targets.
+	 * @function groups
+	 * @instance
+	 * @memberof Chart
+	 * @param {Array} groups This argument needs to be an Array that includes one or more Array that includes target ids to be grouped.
+	 * @returns {Array} Grouped data names array
+	 * @example
+	 *  // data1 and data2 will be a new group.
+	 *  chart.groups([
+	 *     ["data1", "data2"]
+	 *  ]);
+	 */
+	groups<T = string[][]>(groups: T): T {
+		const $$ = this.internal;
+		const {config} = $$;
+
+		if (isUndefined(groups)) {
+			return config.data_groups;
+		}
+
+		config.data_groups = groups;
+		$$.redraw();
+
+		return config.data_groups;
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_legend.ts.html b/release/3.12.4/doc/Chart_api_legend.ts.html new file mode 100644 index 000000000..a1153f454 --- /dev/null +++ b/release/3.12.4/doc/Chart_api_legend.ts.html @@ -0,0 +1,150 @@ + + + + + + Chart/api/legend.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/legend.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * Define legend
+ * @ignore
+ */
+const legend = {
+	/**
+	 * Show legend for each target.
+	 * - **NOTE:** Legend APIs aren't supported for `treemap` type.
+	 * @function legend․show
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} targetIds
+	 * - If targetIds is given, specified target's legend will be shown.
+	 * - If only one target is the candidate, String can be passed.
+	 * - If no argument is given, all of target's legend will be shown.
+	 * @example
+	 * // Show legend for data1.
+	 * chart.legend.show("data1");
+	 *
+	 * // Show legend for data1 and data2.
+	 * chart.legend.show(["data1", "data2"]);
+	 *
+	 * // Show all legend.
+	 * chart.legend.show();
+	 */
+	show: function(targetIds?: string | string[]): void {
+		const $$ = this.internal;
+
+		$$.showLegend($$.mapToTargetIds(targetIds));
+		$$.updateAndRedraw({withLegend: true});
+	},
+
+	/**
+	 * Hide legend for each target.
+	 * @function legend․hide
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} targetIds
+	 * - If targetIds is given, specified target's legend will be hidden.
+	 * - If only one target is the candidate, String can be passed.
+	 * - If no argument is given, all of target's legend will be hidden.
+	 * @example
+	 * // Hide legend for data1.
+	 * chart.legend.hide("data1");
+	 *
+	 * // Hide legend for data1 and data2.
+	 * chart.legend.hide(["data1", "data2"]);
+	 *
+	 * // Hide all legend.
+	 * chart.legend.hide();
+	 */
+	hide: function(targetIds?: string | string[]): void {
+		const $$ = this.internal;
+
+		$$.hideLegend($$.mapToTargetIds(targetIds));
+		$$.updateAndRedraw({withLegend: true});
+	}
+};
+
+export default {legend};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_load.ts.html b/release/3.12.4/doc/Chart_api_load.ts.html new file mode 100644 index 000000000..430fcb2c6 --- /dev/null +++ b/release/3.12.4/doc/Chart_api_load.ts.html @@ -0,0 +1,326 @@ + + + + + + Chart/api/load.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/load.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {callDone} from "../../ChartInternal/data/load";
+import {requestIdleCallback} from "../../module/browser";
+import {isArray, isEmpty, isString} from "../../module/util";
+
+export default {
+	/**
+	 * Load data to the chart.<br><br>
+	 * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be toggles.
+	 * - <b>Note:</b>
+	 *   - unload should be used if some data needs to be unloaded simultaneously.
+	 *     If you call unload API soon after/before load instead of unload param, chart will not be rendered properly because of cancel of animation.<br>
+	 *   - done will be called after data loaded, but it's not after rendering.
+	 *     It's because rendering will finish after some transition and there is some time lag between loading and rendering
+	 * @function load
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} args The object can consist with following members:<br>
+	 *
+	 *    | Key | Type | Description |
+	 *    | --- | --- | --- |
+	 *    | columns | Array | The `columns` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added |
+	 *    | json | Array | The `json` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added |
+	 *    | rows | Array | The `rows` data will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added |
+	 *    | url | string | The data from `url` will be loaded. If data that has the same target id is given, the chart will be updated. Otherwise, new target will be added |
+	 *    | &nbsp; | | |
+	 *    | append | boolean | Load data appending it to the current dataseries.<br>If the existing chart has`x` value, should provide with corresponding `x` value for newly loaded data.  |
+	 *    | axes | Object | The axes specified by data.axes will be updated. axes must be Object that has target id as keys. |
+	 *    | categories | Array | The categories specified by axis.x.categories or data.x will be updated. categories must be Array. |
+	 *    | classes | Object | The classes specified by data.classes will be updated. classes must be Object that has target id as keys. |
+	 *    | colors | Object | The colors specified by data.colors will be updated. colors must be Object that has target id as keys. |
+	 *    | data | Obejct | Data objects to be loaded. Checkout the example. |
+	 *    | done | Function | The specified function will be called after data loaded.|
+	 *    | headers | string |  Set request header if loading via `data.url`.<br>@see [data․headers](Options.html#.data%25E2%2580%25A4headers) |
+	 *    | keys | Object |  Choose which JSON objects keys correspond to desired data.<br>**NOTE:** Only for JSON object given as array.<br>@see [data․keys](Options.html#.data%25E2%2580%25A4keys) |
+	 *    | mimeType | string |  Set 'json' if loading JSON via url.<br>@see [data․mimeType](Options.html#.data%25E2%2580%25A4mimeType) |
+	 *    | names | Object | Same as data.names() |
+	 *    | resizeAfter | boolean | Resize after the load. Default value is `false`.<br>- This option won't call `onresize` neither `onresized`.<br>- When set to 'true', will call `.flush(true)` at the end of load. |
+	 *    | type | string | The type of targets will be updated. |
+	 *    | types | Object | The types of targets will be updated. |
+	 *    | unload | Array | Specify the data will be unloaded before loading new data. If true given, all of data will be unloaded. If target ids given as String or Array, specified targets will be unloaded. If absent or false given, unload will not occur. |
+	 *    | xs | string | Same as data.xs option  |
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataFromURL)
+	 * @example
+	 * // Load data1 and unload data2 and data3
+	 * chart.load({
+	 *     columns: [
+	 *        ["data1", 100, 200, 150, ...],
+	 *        ...
+	 *    ],
+	 *    unload: ["data2", "data3"],
+	 *    url: "...",
+	 *    done: function() { ... }
+	 *    resizeAfter: true  // will resize after load
+	 * });
+	 * @example
+	 * const chart = bb.generate({
+	 *   data: {
+	 *     columns: [
+	 *       ["data1", 20, 30, 40]
+	 *     ]
+	 *   }
+	 * });
+	 *
+	 * chart.load({
+	 *    columns: [
+	 *        // with 'append' option, the 'data1' will have `[20,30,40,50,60]`.
+	 *        ["data1", 50, 60]
+	 *    ],
+	 *    append: true
+	 * });
+	 * @example
+	 * const chart = bb.generate({
+	 *   data: {
+	 *     x: "x",
+	 *     xFormat: "%Y-%m-%dT%H:%M:%S",
+	 *     columns: [
+	 *       ["x", "2021-01-03T03:00:00", "2021-01-04T12:00:00", "2021-01-05T21:00:00"],
+	 *       ["data1", 36, 30, 24]
+	 *     ]
+	 *   },
+	 *   axis: {
+	 *     x: {
+	 *       type: "timeseries"
+	 *     }
+	 *   }
+	 * };
+	 *
+	 * chart.load({
+	 *   columns: [
+	 *     // when existing chart has `x` value, should provide correponding 'x' value.
+	 *     // with 'append' option, the 'data1' will have `[36,30,24,37]`.
+	 *     ["x", "2021-02-01T08:00:00"],
+	 *     ["data1", 37]
+	 *   ],
+	 *   append: true
+	 * });
+	 * @example
+	 * // myAPI.json
+	 * // {
+	 * //   "data1": [220, 240, 270, 250, 280],
+	 * //   "data2": [180, 150, 300, 70, 120]
+	 * // }
+	 *
+	 * chart.load({
+	 *     url: './data/myAPI.json',
+	 *     mimeType: "json",
+	 *
+	 *     // set request header if is needed
+	 *     headers: {
+	 *       "Content-Type": "text/json"
+	 *     }
+	 * });
+	 * @example
+	 * chart.load({
+	 *     data: [
+	 *       // equivalent as: columns: [["data1", 30, 200, 100]]
+	 *       {"data1": 30}, {"data1": 200}, {"data1": 100}
+	 *
+	 *       // or
+	 *       // equivalent as: columns: [["data1", 10, 20], ["data2", 13, 30]]
+	 *       // {"data1": 10, "data2": 13}, {"data1": 20, "data2": 30}}
+	 *     ]
+	 * });
+	 * @example
+	 * chart.load({
+	 *     json: [
+	 *          {name: "www.site1.com", upload: 800, download: 500, total: 400},
+	 *     ],
+	 *     keys: {
+	 *         x: "name",
+	 *         value: ["upload", "download"]
+	 *     }
+	 * });
+	 * @example
+	 * chart.load({
+	 *   json: {
+	 *       data1:[30, 20, 50, 40, 60, 50],
+	 *       data2:[200, 130, 90, 240, 130, 220],
+	 *   }
+	 * });
+	 */
+	load(args): void {
+		const $$ = this.internal;
+		const {config} = $$;
+
+		// update xs if specified
+		args.xs && $$.addXs(args.xs);
+
+		// update names if exists
+		"names" in args && this.data.names(args.names);
+
+		// update classes if exists
+		"classes" in args && Object.keys(args.classes).forEach(id => {
+			config.data_classes[id] = args.classes[id];
+		});
+
+		// update categories if exists
+		if ("categories" in args && $$.axis.isCategorized()) {
+			config.axis_x_categories = args.categories;
+		}
+
+		// update axes if exists
+		"axes" in args && Object.keys(args.axes).forEach(id => {
+			config.data_axes[id] = args.axes[id];
+		});
+
+		// update colors if exists
+		"colors" in args && Object.keys(args.colors).forEach(id => {
+			config.data_colors[id] = args.colors[id];
+		});
+
+		// unload if needed
+		if ("unload" in args && args.unload !== false) {
+			// TODO: do not unload if target will load (included in url/rows/columns)
+			$$.unload($$.mapToTargetIds(args.unload === true ? null : args.unload), () => {
+				// to mitigate improper rendering for multiple consecutive calls
+				// https://github.com/naver/billboard.js/issues/2121
+				requestIdleCallback(() => $$.loadFromArgs(args));
+			});
+		} else {
+			$$.loadFromArgs(args);
+		}
+	},
+
+	/**
+	 * Unload data to the chart.<br><br>
+	 * You can specify multiple targets by giving an array that includes id as String. If no argument is given, all of targets will be toggles.
+	 * - <b>Note:</b>
+	 * If you call load API soon after/before unload, unload param of load should be used. Otherwise chart will not be rendered properly because of cancel of animation.<br>
+	 * `done` will be called after data loaded, but it's not after rendering. It's because rendering will finish after some transition and there is some time lag between loading and rendering.
+	 * @function unload
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} argsValue
+	 *  | key | Type | Description |
+	 *  | --- | --- | --- |
+	 *  | ids | String &vert; Array | Target id data to be unloaded. If not given, all data will be unloaded. |
+	 *  | done | Fuction | Callback after data is unloaded. |
+	 *  | resizeAfter | boolean | Resize after the unload. Default value is `false`.<br>- This option won't call `onresize` neither `onresized`.<br>- When set to 'true', will call `.flush(true)` at the end of unload. |
+	 * @example
+	 *  // Unload data2 and data3
+	 *  chart.unload({
+	 *    ids: ["data2", "data3"],
+	 *    done: function() {
+	 *       // called after the unloaded
+	 *    },
+	 *    resizeAfter: true  // will resize after unload
+	 *  });
+	 */
+	unload(argsValue): void {
+		const $$ = this.internal;
+		let args = argsValue || {};
+
+		// hide possible tooltip display when data is completely unloaded
+		isEmpty(args) && this.tooltip.hide();
+
+		if (isArray(args)) {
+			args = {ids: args};
+		} else if (isString(args)) {
+			args = {ids: [args]};
+		}
+
+		const ids = $$.mapToTargetIds(args.ids);
+
+		$$.unload(ids, () => {
+			$$.redraw({
+				withUpdateOrgXDomain: true,
+				withUpdateXDomain: true,
+				withLegend: true
+			});
+
+			$$.cache.remove(ids);
+			callDone.call($$, args.done, args.resizeAfter);
+		});
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_regions.ts.html b/release/3.12.4/doc/Chart_api_regions.ts.html new file mode 100644 index 000000000..406160d31 --- /dev/null +++ b/release/3.12.4/doc/Chart_api_regions.ts.html @@ -0,0 +1,247 @@ + + + + + + Chart/api/regions.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/regions.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {$REGION} from "../../config/classes";
+import {extend, getOption, isTabVisible} from "../../module/util";
+
+type RegionsParam = {axis?: "add" | "update", class?: string, start?: number, end?: number}[];
+
+/**
+ * Region add/update function
+ * @param {Array} regions Regions will be replaced with this argument. The format of this argument is the same as regions.
+ * @param {boolean} isAdd If true, add new regions, otherwise update regions
+ * @returns {Array} regions
+ * @private
+ */
+function regionsFn(regions: RegionsParam, isAdd = false): RegionsParam {
+	const $$ = this.internal;
+	const {config} = $$;
+	const withTransition = config.transition_duration && isTabVisible();
+
+	if (!regions) {
+		return config.regions;
+	}
+
+	config.regions = isAdd ? config.regions.concat(regions) : regions;
+
+	$$.updateRegion();
+	$$.redrawRegion(withTransition);
+
+	return isAdd ? config.regions : regions;
+}
+
+/**
+ * Update regions.
+ * @function regions
+ * @instance
+ * @memberof Chart
+ * @param {Array} regions Regions will be replaced with this argument. The format of this argument is the same as regions.
+ * @returns {Array} regions
+ * @example
+ * // Show 2 regions
+ * chart.regions([
+ *    {axis: "x", start: 5, class: "regionX"},
+ *    {
+ *      axis: "y", end: 50, class: "regionY",
+ *      label: {
+ *      	text: "Region Text",
+ *      	x: 5,  // position relative of the initial x coordinate
+ *      	y: 5,  // position relative of the initial y coordinate
+ *      	color: "red",  // color string
+ *      	rotated: true  // make text to show in vertical or horizontal
+ *      }
+ *    }
+ * ]);
+ */
+const regions = function(regions: RegionsParam): RegionsParam {
+	return regionsFn.bind(this)(regions);
+};
+
+extend(regions, {
+	/**
+	 * Add new region.<br><br>
+	 * This API adds new region instead of replacing like regions.
+	 * @function regions․add
+	 * @instance
+	 * @memberof Chart
+	 * @param {Array|object} regions New region will be added. The format of this argument is the same as regions and it's possible to give an Object if only one region will be added.
+	 * @returns {Array} regions
+	 * @example
+	 * // Add a new region
+	 * chart.regions.add(
+	 *    {
+	 *      axis: "x", start: 5, class: "regionX",
+	 *      label: {
+	 *      	text: "Region Text",
+	 *      	color: "red"  // color string
+	 *      }
+	 *    }
+	 * );
+	 *
+	 * // Add new regions
+	 * chart.regions.add([
+	 *    {axis: "x", start: 5, class: "regionX"},
+	 *    {
+	 *      axis: "y", end: 50, class: "regionY",
+	 *      label: {
+	 *      	text: "Region Text",
+	 *      	x: 5,  // position relative of the initial x coordinate
+	 *      	y: 5,  // position relative of the initial y coordinate
+	 *      	color: "red",  // color string
+	 *      	rotated: true  // make text to show in vertical or horizontal
+	 *      }
+	 *    }
+	 * ]);
+	 */
+	add: function(regions: RegionsParam): RegionsParam {
+		return regionsFn.bind(this)(regions, true);
+	},
+
+	/**
+	 * Remove regions.<br><br>
+	 * This API removes regions.
+	 * @function regions․remove
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} optionsValue This argument should include classes. If classes is given, the regions that have one of the specified classes will be removed. If args is not given, all of regions will be removed.
+	 * @returns {Array} regions Removed regions
+	 * @example
+	 * // regions that have 'region-A' or 'region-B' will be removed.
+	 * chart.regions.remove({
+	 *   classes: [
+	 *     "region-A", "region-B"
+	 *   ]
+	 * });
+	 *
+	 * // all of regions will be removed.
+	 * chart.regions.remove();
+	 */
+	remove: function(optionsValue: RegionsParam): RegionsParam {
+		const $$ = this.internal;
+		const {config, $T} = $$;
+
+		const options = optionsValue || {};
+		const classes = getOption(options, "classes", [$REGION.region]);
+		let regions = $$.$el.main.select(`.${$REGION.regions}`)
+			.selectAll(classes.map(c => `.${c}`));
+
+		$T(regions)
+			.style("opacity", "0")
+			.remove();
+
+		regions = config.regions;
+
+		if (Object.keys(options).length) {
+			regions = regions.filter(region => {
+				let found = false;
+
+				if (!region.class) {
+					return true;
+				}
+
+				region.class.split(" ").forEach(c => {
+					if (classes.indexOf(c) >= 0) {
+						found = true;
+					}
+				});
+
+				return !found;
+			});
+
+			config.regions = regions;
+		} else {
+			config.regions = [];
+		}
+
+		return regions;
+	}
+});
+
+export default {regions};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_selection.ts.html b/release/3.12.4/doc/Chart_api_selection.ts.html new file mode 100644 index 000000000..3f0f983b7 --- /dev/null +++ b/release/3.12.4/doc/Chart_api_selection.ts.html @@ -0,0 +1,231 @@ + + + + + + Chart/api/selection.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/selection.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {select as d3Select} from "d3-selection";
+import type {DataItem} from "../../../types/types";
+import {$AREA, $LINE, $SELECT, $SHAPE} from "../../config/classes";
+import {isDefined} from "../../module/util";
+
+/**
+ * Toggler function to select or unselect
+ * @param {boolean} isSelection Weather select or unselect
+ * @param {Array} ids Target ids
+ * @param {Array} indices Indices number
+ * @param {boolean} resetOther Weather reset other selected points (only for selection)
+ * @private
+ */
+function setSelection(
+	isSelection = false,
+	ids?: string | string[],
+	indices?: number[],
+	resetOther?: boolean
+): void {
+	const $$ = this;
+	const {config, $el: {main}} = $$;
+	const selectionGrouped = config.data_selection_grouped;
+	const isSelectable = config.data_selection_isselectable.bind($$.api);
+
+	if (!config.data_selection_enabled) {
+		return;
+	}
+
+	main.selectAll(`.${$SHAPE.shapes}`)
+		.selectAll(`.${$SHAPE.shape}`)
+		.each(function(d) {
+			const shape = d3Select(this);
+			const {id, index} = d.data ? d.data : d;
+			const toggle = $$.getToggle(this, d).bind($$);
+			const isTargetId = selectionGrouped || !ids || ids.indexOf(id) >= 0;
+			const isTargetIndex = !indices || indices.indexOf(index) >= 0;
+			const isSelected = shape.classed($SELECT.SELECTED);
+
+			// line/area selection not supported yet
+			if (shape.classed($LINE.line) || shape.classed($AREA.area)) {
+				return;
+			}
+
+			if (isSelection) {
+				if (isTargetId && isTargetIndex && isSelectable(d) && !isSelected) {
+					toggle(true, shape.classed($SELECT.SELECTED, true), d, index);
+				} else if (isDefined(resetOther) && resetOther && isSelected) {
+					toggle(false, shape.classed($SELECT.SELECTED, false), d, index);
+				}
+			} else {
+				if (isTargetId && isTargetIndex && isSelectable(d) && isSelected) {
+					toggle(false, shape.classed($SELECT.SELECTED, false), d, index);
+				}
+			}
+		});
+}
+
+export default {
+	/**
+	 * Get selected data points.<br><br>
+	 * By this API, you can get selected data points information. To use this API, data.selection.enabled needs to be set true.
+	 * @function selected
+	 * @instance
+	 * @memberof Chart
+	 * @param {string} [targetId] You can filter the result by giving target id that you want to get. If not given, all of data points will be returned.
+	 * @returns {Array} dataPoint Array of the data points.<br>ex.) `[{x: 1, value: 200, id: "data1", index: 1, name: "data1"}, ...]`
+	 * @example
+	 *  // all selected data points will be returned.
+	 *  chart.selected();
+	 *  // --> ex.) [{x: 1, value: 200, id: "data1", index: 1, name: "data1"}, ... ]
+	 *
+	 *  // all selected data points of data1 will be returned.
+	 *  chart.selected("data1");
+	 */
+	selected(targetId?: string): DataItem[] {
+		const $$ = this.internal;
+		const dataPoint: DataItem[] = [];
+
+		$$.$el.main.selectAll(`.${$SHAPE.shapes + $$.getTargetSelectorSuffix(targetId)}`)
+			.selectAll(`.${$SHAPE.shape}`)
+			.filter(function() {
+				return d3Select(this).classed($SELECT.SELECTED);
+			})
+			.each(d => dataPoint.push(d));
+
+		return dataPoint;
+	},
+
+	/**
+	 * Set data points to be selected. ([`data.selection.enabled`](Options.html#.data%25E2%2580%25A4selection%25E2%2580%25A4enabled) option should be set true to use this method)
+	 * @function select
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} [ids] id value to get selected.
+	 * @param {Array} [indices] The index array of data points. If falsy value given, will select all data points.
+	 * @param {boolean} [resetOther] Unselect already selected.
+	 * @example
+	 *  // select all data points
+	 *  chart.select();
+	 *
+	 *  // select all from 'data2'
+	 *  chart.select("data2");
+	 *
+	 *  // select all from 'data1' and 'data2'
+	 *  chart.select(["data1", "data2"]);
+	 *
+	 *  // select from 'data1', indices 2 and unselect others selected
+	 *  chart.select("data1", [2], true);
+	 *
+	 *  // select from 'data1', indices 0, 3 and 5
+	 *  chart.select("data1", [0, 3, 5]);
+	 */
+	select(ids?: string[] | string, indices?: number[], resetOther?: boolean): void {
+		const $$ = this.internal;
+
+		setSelection.bind($$)(true, ids, indices, resetOther);
+	},
+
+	/**
+	 * Set data points to be un-selected.
+	 * @function unselect
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} [ids] id value to be unselected.
+	 * @param {Array} [indices] The index array of data points. If falsy value given, will select all data points.
+	 * @example
+	 *  // unselect all data points
+	 *  chart.unselect();
+	 *
+	 *  // unselect all from 'data1'
+	 *  chart.unselect("data1");
+	 *
+	 *  // unselect from 'data1', indices 2
+	 *  chart.unselect("data1", [2]);
+	 */
+	unselect(ids?: string | string[], indices?: number[]): void {
+		const $$ = this.internal;
+
+		setSelection.bind($$)(false, ids, indices);
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_show.ts.html b/release/3.12.4/doc/Chart_api_show.ts.html new file mode 100644 index 000000000..68c1a2d73 --- /dev/null +++ b/release/3.12.4/doc/Chart_api_show.ts.html @@ -0,0 +1,221 @@ + + + + + + Chart/api/show.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/show.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {callFn, endall} from "../../module/util";
+
+/**
+ * Show/Hide data series
+ * @param {boolean} show Show or hide
+ * @param {Array} targetIdsValue Target id values
+ * @param {object} options Options
+ * @private
+ */
+function showHide(show: boolean, targetIdsValue: string[], options: any): void {
+	const $$ = this.internal;
+	const targetIds = $$.mapToTargetIds(targetIdsValue);
+	const hiddenIds = $$.state.hiddenTargetIds
+		.map(v => targetIds.indexOf(v) > -1 && v)
+		.filter(Boolean);
+
+	$$.state.toggling = true;
+
+	$$[`${show ? "remove" : "add"}HiddenTargetIds`](targetIds);
+
+	const targets = $$.$el.svg.selectAll($$.selectorTargets(targetIds));
+	const opacity = show ? null : "0";
+
+	if (show && hiddenIds.length) {
+		targets.style("display", null);
+		callFn($$.config.data_onshown, this, hiddenIds);
+	}
+
+	$$.$T(targets)
+		.style("opacity", opacity, "important")
+		.call(endall, () => {
+			// https://github.com/naver/billboard.js/issues/1758
+			if (!show && hiddenIds.length === 0) {
+				targets.style("display", "none");
+				callFn($$.config.data_onhidden, this, targetIds);
+			}
+
+			targets.style("opacity", opacity);
+		});
+
+	options.withLegend && $$[`${show ? "show" : "hide"}Legend`](targetIds);
+
+	$$.redraw({
+		withUpdateOrgXDomain: true,
+		withUpdateXDomain: true,
+		withLegend: true
+	});
+
+	$$.state.toggling = false;
+}
+
+export default {
+	/**
+	 * Show data series on chart
+	 * @function show
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} [targetIdsValue] The target id value.
+	 * @param {object} [options] The object can consist with following members:<br>
+	 *
+	 *    | Key | Type | default | Description |
+	 *    | --- | --- | --- | --- |
+	 *    | withLegend | boolean | false | whether or not display legend |
+	 *
+	 * @example
+	 * // show 'data1'
+	 * chart.show("data1");
+	 *
+	 * // show 'data1' and 'data3'
+	 * chart.show(["data1", "data3"]);
+	 */
+	show(targetIdsValue?: string[] | string, options = {}): void {
+		showHide.call(this, true, targetIdsValue, options);
+	},
+
+	/**
+	 * Hide data series from chart
+	 * @function hide
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} [targetIdsValue] The target id value.
+	 * @param {object} [options] The object can consist with following members:<br>
+	 *
+	 *    | Key | Type | default | Description |
+	 *    | --- | --- | --- | --- |
+	 *    | withLegend | boolean | false | whether or not display legend |
+	 *
+	 * @example
+	 * // hide 'data1'
+	 * chart.hide("data1");
+	 *
+	 * // hide 'data1' and 'data3'
+	 * chart.hide(["data1", "data3"]);
+	 */
+	hide(targetIdsValue?: string[], options = {}): void {
+		showHide.call(this, false, targetIdsValue, options);
+	},
+
+	/**
+	 * Toggle data series on chart. When target data is hidden, it will show. If is shown, it will hide in vice versa.
+	 * @function toggle
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|Array} [targetIds] The target id value.
+	 * @param {object} [options] The object can consist with following members:<br>
+	 *
+	 *    | Key | Type | default | Description |
+	 *    | --- | --- | --- | --- |
+	 *    | withLegend | boolean | false | whether or not display legend |
+	 *
+	 * @example
+	 * // toggle 'data1'
+	 * chart.toggle("data1");
+	 *
+	 * // toggle 'data1' and 'data3'
+	 * chart.toggle(["data1", "data3"]);
+	 */
+	toggle(targetIds: string | string[], options = {}): void {
+		const $$ = this.internal;
+		const targets = {show: <string[]>[], hide: <string[]>[]};
+
+		// sort show & hide target ids
+		$$.mapToTargetIds(targetIds)
+			.forEach((id: string) => targets[$$.isTargetToShow(id) ? "hide" : "show"].push(id));
+
+		// perform show & hide task separately
+		// https://github.com/naver/billboard.js/issues/454
+		targets.show.length && this.show(targets.show, options);
+		targets.hide.length && setTimeout(() => this.hide(targets.hide, options), 0);
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_subchart.ts.html b/release/3.12.4/doc/Chart_api_subchart.ts.html new file mode 100644 index 000000000..1c681417b --- /dev/null +++ b/release/3.12.4/doc/Chart_api_subchart.ts.html @@ -0,0 +1,259 @@ + + + + + + Chart/api/subchart.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/subchart.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import type {TDomain} from "../../ChartInternal/data/IData";
+import {$COMMON} from "../../config/classes";
+import {extend, parseDate} from "../../module/util";
+
+/**
+ * Select subchart by giving x domain range.
+ * - **ℹ️ NOTE:**
+ *  - Due to the limitations of floating point precision, domain value may not be exact returning approximately values.
+ * @function subchart
+ * @instance
+ * @memberof Chart
+ * @param {Array} domainValue If domain range is given, the subchart will be seleted to the given domain. If no argument is given, the current subchart selection domain will be returned.
+ * @returns {Array} domain value in array
+ * @example
+ *  // Specify domain for subchart selection
+ *  chart.subchart([1, 2]);
+ *
+ *  // Get the current subchart selection domain range
+ *  // Domain value may not be exact returning approximately values.
+ *  chart.subchart();
+ */
+// NOTE: declared funciton assigning to variable to prevent duplicated method generation in JSDoc.
+const subchart = function<T = TDomain[]>(domainValue?: T): T | undefined {
+	const $$ = this.internal;
+	const {axis, brush, config, scale: {x, subX}, state} = $$;
+	let domain;
+
+	if (config.subchart_show) {
+		domain = domainValue;
+
+		if (Array.isArray(domain)) {
+			if (axis.isTimeSeries()) {
+				domain = domain.map(x => parseDate.bind($$)(x));
+			}
+
+			const isWithinRange = $$.withinRange(
+				domain,
+				$$.getZoomDomain("subX", true),
+				$$.getZoomDomain("subX")
+			);
+
+			if (isWithinRange) {
+				state.domain = domain;
+
+				brush.move(
+					brush.getSelection(),
+					domain.map(subX)
+				);
+			}
+		} else {
+			domain = state.domain ?? x.orgDomain();
+		}
+	}
+
+	return domain as T;
+};
+
+extend(subchart, {
+	/**
+	 * Show subchart
+	 * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`.
+	 * @function subchart․show
+	 * @instance
+	 * @memberof Chart
+	 * @example
+	 * // for ESM imports, needs to import 'subchart' and must be instantiated first to enable subchart's API.
+	 * import {subchart} from "billboard.js";
+	 *
+	 * const chart = bb.generate({
+	 *   ...
+	 *   subchart: {
+	 *      // need to be instantiated by calling 'subchart()'
+	 *      enabled: subchart()
+	 *
+	 *      // in case don't want subchart to be shown at initialization, instantiate with '!subchart()'
+	 *      enabled: !subchart()
+	 *   }
+	 * });
+	 *
+	 * chart.subchart.show();
+	 */
+	show(): void {
+		const $$ = this.internal;
+		const {$el: {subchart}, config} = $$;
+		const show = config.subchart_show;
+
+		if (!show) {
+			// unbind zoom event bound to chart rect area
+			$$.unbindZoomEvent();
+
+			config.subchart_show = !show;
+			!subchart.main && $$.initSubchart();
+
+			let $target = subchart.main.selectAll(`.${$COMMON.target}`);
+
+			// need to cover when new data has been loaded
+			if ($$.data.targets.length !== $target.size()) {
+				$$.updateSizes();
+				$$.updateTargetsForSubchart($$.data.targets);
+
+				$target = subchart.main?.selectAll(`.${$COMMON.target}`);
+			}
+
+			$target?.style("opacity", null);
+			subchart.main?.style("display", null);
+
+			this.resize();
+		}
+	},
+
+	/**
+	 * Hide generated subchart
+	 * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`.
+	 * @function subchart․hide
+	 * @instance
+	 * @memberof Chart
+	 * @example
+	 *  chart.subchart.hide();
+	 */
+	hide(): void {
+		const $$ = this.internal;
+		const {$el: {subchart: {main}}, config} = $$;
+
+		if (config.subchart_show && main?.style("display") !== "none") {
+			config.subchart_show = false;
+			main.style("display", "none");
+
+			this.resize();
+		}
+	},
+
+	/**
+	 * Toggle the visiblity of subchart
+	 * - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`.
+	 * @function subchart․toggle
+	 * @instance
+	 * @memberof Chart
+	 * @example
+	 * // When subchart is hidden, will be shown
+	 * // When subchart is shown, will be hidden
+	 * chart.subchart.toggle();
+	 */
+	toggle(): void {
+		const $$ = this.internal;
+		const {config} = $$;
+
+		this.subchart[config.subchart_show ? "hide" : "show"]();
+	},
+
+	/**
+	 * Reset subchart selection
+	 * @function subchart․reset
+	 * @instance
+	 * @memberof Chart
+	 * @example
+	 * // Reset subchart selection
+	 * chart.subchart.reset();
+	 */
+	reset(): void {
+		const $$ = this.internal;
+		const {brush} = $$;
+
+		brush.clear(brush.getSelection());
+	}
+});
+
+export default {
+	subchart
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_tooltip.ts.html b/release/3.12.4/doc/Chart_api_tooltip.ts.html new file mode 100644 index 000000000..c6e62fcdc --- /dev/null +++ b/release/3.12.4/doc/Chart_api_tooltip.ts.html @@ -0,0 +1,236 @@ + + + + + + Chart/api/tooltip.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/tooltip.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {$SHAPE} from "../../config/classes";
+import {isDefined} from "../../module/util";
+
+/**
+ * Define tooltip
+ * @ignore
+ */
+const tooltip = {
+	/**
+	 * Show tooltip
+	 * @function tooltip․show
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} args The object can consist with following members:<br>
+	 *
+	 *    | Key | Type | Description |
+	 *    | --- | --- | --- |
+	 *    | index | Number | Determine focus by index |
+	 *    | x | Number &vert; Date | Determine focus by x Axis index |
+	 *    | mouse | Array | Determine x and y coordinate value relative the targeted '.bb-event-rect' x Axis.<br>It should be used along with `data`, `index` or `x` value. The default value is set as `[0,0]` |
+	 *    | data | Object | When [data.xs](Options.html#.data%25E2%2580%25A4xs) option is used or [tooltip.grouped](Options.html#.tooltip) set to 'false', `should be used giving this param`.<br><br>**Key:**<br>- x {number &verbar; Date}: x Axis value<br>- index {number}: x Axis index (useless for data.xs)<br>- id {string}: data id<br>- value {number}: The corresponding value for tooltip. |
+	 *
+	 * @example
+	 *  // show the 2nd x Axis coordinate tooltip
+	 *  // for Arc(gauge, donut & pie) and radar type, approch showing tooltip by using "index" number.
+	 *  chart.tooltip.show({
+	 *    index: 1
+	 *  });
+	 *
+	 *  // show tooltip for the 3rd x Axis in x:50 and y:100 coordinate of '.bb-event-rect' of the x Axis.
+	 *  chart.tooltip.show({
+	 *    x: 2,
+	 *    mouse: [50, 100]
+	 *  });
+	 *
+	 *  // show tooltip for timeseries x axis
+	 *  chart.tooltip.show({
+	 *    x: new Date("2018-01-02 00:00")
+	 *  });
+	 *
+	 *  // treemap type can be shown by using "id" only.
+	 *  chart.tooltip.show({
+	 *    data: {
+	 *        id: "data1"  // data id
+	 *    }
+	 *  });
+	 *
+	 *  // for Arc types, specify 'id' or 'index'
+	 *  chart.tooltip.show({ data: { id: "data2" }});
+	 *  chart.tooltip.show({ data: { index: 2 }});
+	 *
+	 *  // when data.xs is used
+	 *  chart.tooltip.show({
+	 *    data: {
+	 *        x: 3,  // x Axis value
+	 *        id: "data1",  // data id
+	 *        value: 500  // data value
+	 *    }
+	 *  });
+	 *
+	 *  // when data.xs isn't used, but tooltip.grouped=false is set
+	 *  chart.tooltip.show({
+	 *    data: {
+	 *        index: 3,  // or 'x' key value
+	 *        id: "data1",  // data id
+	 *        value: 500  // data value
+	 *    }
+	 *  });
+	 */
+	show: function(args): void {
+		const $$ = this.internal;
+		const {$el, config, state: {eventReceiver, hasFunnel, hasTreemap, inputType}} = $$;
+		let index;
+		let mouse;
+
+		// determine mouse position on the chart
+		if (args.mouse) {
+			mouse = args.mouse;
+		}
+
+		// determine focus data
+		if (args.data) {
+			const {data} = args;
+			const y = $$.getYScaleById(data.id)?.(data.value);
+
+			if ((hasFunnel || hasTreemap) && data.id) {
+				const selector = $$.selectorTarget(data.id, undefined, `.${$SHAPE.shape}`);
+
+				eventReceiver.rect = $el.main.select(selector);
+			} else if ($$.isMultipleX()) {
+				// if multiple xs, target point will be determined by mouse
+				mouse = [$$.xx(data), y];
+			} else {
+				if (!config.tooltip_grouped) {
+					mouse = [0, y];
+				}
+
+				index = data.index ?? (
+					$$.hasArcType() && data.id ?
+						$$.getArcElementByIdOrIndex(data.id)?.datum().index :
+						$$.getIndexByX(data.x)
+				);
+			}
+		} else if (isDefined(args.x)) {
+			index = $$.getIndexByX(args.x);
+		} else if (isDefined(args.index)) {
+			index = args.index;
+		}
+
+		(inputType === "mouse" ? ["mouseover", "mousemove"] : ["touchstart"]).forEach(eventName => {
+			$$.dispatchEvent(eventName, index, mouse);
+		});
+	},
+
+	/**
+	 * Hide tooltip
+	 * @function tooltip․hide
+	 * @instance
+	 * @memberof Chart
+	 */
+	hide: function(): void {
+		const $$ = this.internal;
+		const {state: {inputType}, $el: {tooltip}} = $$;
+		const data = tooltip?.datum();
+
+		if (data) {
+			const {index} = JSON.parse(data.current)[0];
+
+			// make to finalize, possible pending event flow set from '.tooltip.show()' call
+			(inputType === "mouse" ? ["mouseout"] : ["touchend"]).forEach(eventName => {
+				$$.dispatchEvent(eventName, index);
+			});
+		}
+
+		// reset last touch point index
+		inputType === "touch" && $$.callOverOutForTouch();
+
+		$$.hideTooltip(true);
+		$$.hideGridFocus?.();
+
+		$$.unexpandCircles?.();
+		$$.expandBarTypeShapes?.(false);
+	}
+};
+
+export default {tooltip};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_x.ts.html b/release/3.12.4/doc/Chart_api_x.ts.html new file mode 100644 index 000000000..da6ffa357 --- /dev/null +++ b/release/3.12.4/doc/Chart_api_x.ts.html @@ -0,0 +1,160 @@ + + + + + + Chart/api/x.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/x.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {isArray, isObject} from "../../module/util";
+
+export default {
+	/**
+	 * Get and set x values for the chart.
+	 * @function x
+	 * @instance
+	 * @memberof Chart
+	 * @param {Array} x If x is given, x values of every target will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids.
+	 * @returns {object} xs
+	 * @example
+	 *  // Get current x values
+	 *  chart.x();
+	 *
+	 *  // Update x values for all targets
+	 *  chart.x([100, 200, 300, 400, ...]);
+	 */
+	x(x?: number[]): {[key: string]: number[]} {
+		const $$ = this.internal;
+		const {axis, data} = $$;
+		const isCategorized = axis.isCustomX() && axis.isCategorized();
+
+		if (isArray(x)) {
+			if (isCategorized) {
+				this.categories(x);
+			} else {
+				$$.updateTargetX(data.targets, x);
+
+				$$.redraw({
+					withUpdateOrgXDomain: true,
+					withUpdateXDomain: true
+				});
+			}
+		}
+
+		return isCategorized ? this.categories() : data.xs;
+	},
+
+	/**
+	 * Get and set x values for the chart.
+	 * @function xs
+	 * @instance
+	 * @memberof Chart
+	 * @param {Array} xs If xs is given, specified target's x values will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids.
+	 * @returns {object} xs
+	 * @example
+	 *  // Get current x values
+	 *  chart.xs();
+	 *
+	 *  // Update x values for all targets
+	 *  chart.xs({
+	 *    data1: [10, 20, 30, 40, ...],
+	 *    data2: [100, 200, 300, 400, ...]
+	 *  });
+	 */
+	xs(xs?: {[key: string]: number[]}): {[key: string]: number[]} {
+		const $$ = this.internal;
+
+		if (isObject(xs)) {
+			$$.updateTargetXs($$.data.targets, xs);
+
+			$$.redraw({
+				withUpdateOrgXDomain: true,
+				withUpdateXDomain: true
+			});
+		}
+
+		return $$.data.xs;
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Chart_api_zoom.ts.html b/release/3.12.4/doc/Chart_api_zoom.ts.html new file mode 100644 index 000000000..d270a2d6a --- /dev/null +++ b/release/3.12.4/doc/Chart_api_zoom.ts.html @@ -0,0 +1,321 @@ + + + + + + Chart/api/zoom.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Chart/api/zoom.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {zoomIdentity as d3ZoomIdentity, zoomTransform as d3ZoomTransform} from "d3-zoom";
+import type {TDomainRange} from "../../ChartInternal/data/IData";
+import {extend, getMinMax, isDefined, isObject, parseDate} from "../../module/util";
+
+/**
+ * Zoom by giving x domain range.
+ * - **ℹ️ NOTE:**
+ *  - For `wheel` type zoom, the minimum zoom range will be set as the given domain range. To get the initial state, [.unzoom()](#unzoom) should be called.
+ *  - To be used [zoom.enabled](Options.html#.zoom) option should be set as `truthy`.
+ *  - When x axis type is `category`, domain range should be specified as index numbers.
+ *  - Due to the limitations of floating point precision, domain value may not be exact returning approximately values.
+ * @function zoom
+ * @instance
+ * @memberof Chart
+ * @param {Array} domainValue If domain range is given, the chart will be zoomed to the given domain. If no argument is given, the current zoomed domain will be returned.
+ * @returns {Array} domain value in array
+ * @example
+ *  // Zoom to specified domain range
+ *  chart.zoom([10, 20]);
+ *
+ *  // For timeseries x axis, the domain value can be string, but the format should match with the 'data.xFormat' option.
+ *  chart.zoom(["2021-02-03", "2021-02-08"]);
+ *
+ *  // For category x axis, the domain value should be index number.
+ *  chart.zoom([0, 3]);
+ *
+ *  // Get the current zoomed domain range
+ *  // Domain value may not be exact returning approximately values.
+ *  chart.zoom();
+ */
+// NOTE: declared funciton assigning to variable to prevent duplicated method generation in JSDoc.
+const zoom = function<T = TDomainRange>(domainValue?: T): T | undefined {
+	const $$ = this.internal;
+	const {axis, config, org, scale, state} = $$;
+	const isCategorized = axis.isCategorized();
+	let domain;
+
+	if (config.zoom_enabled) {
+		domain = domainValue;
+
+		if (Array.isArray(domain)) {
+			if (axis.isTimeSeries()) {
+				domain = domain.map(x => parseDate.bind($$)(x));
+			}
+
+			const isWithinRange = $$.withinRange(
+				domain,
+				$$.getZoomDomain("zoom", true),
+				$$.getZoomDomain("zoom")
+			);
+
+			if (isWithinRange) {
+				state.domain = domain;
+
+				domain = $$.getZoomDomainValue(domain);
+
+				// hide any possible tooltip show before the zoom
+				$$.api.tooltip.hide();
+
+				if (config.subchart_show) {
+					const x = scale.zoom || scale.x;
+
+					$$.brush.getSelection().call($$.brush.move, domain.map(x));
+					// resultDomain = domain;
+				} else {
+					// in case of 'config.zoom_rescale=true', use org.xScale
+					const x = isCategorized ? scale.x.orgScale() : (org.xScale || scale.x);
+
+					$$.updateCurrentZoomTransform(x, domain);
+				}
+
+				$$.setZoomResetButton();
+			}
+		} else {
+			domain = $$.zoom.getDomain();
+		}
+	}
+
+	return state.domain ?? domain;
+};
+
+extend(zoom, {
+	/**
+	 * Enable and disable zooming.
+	 * @function zoom․enable
+	 * @instance
+	 * @memberof Chart
+	 * @param {string|boolean} enabled Possible string values are "wheel" or "drag". If enabled is true, "wheel" will be used. If false is given, zooming will be disabled.<br>When set to false, the current zooming status will be reset.
+	 * @example
+	 *  // Enable zooming using the mouse wheel
+	 *  chart.zoom.enable(true);
+	 *  // Or
+	 *  chart.zoom.enable("wheel");
+	 *
+	 *  // Enable zooming by dragging
+	 *  chart.zoom.enable("drag");
+	 *
+	 *  // Disable zooming
+	 *  chart.zoom.enable(false);
+	 */
+	enable(enabled: boolean | "wheel" | "drag" | any): void {
+		const $$ = this.internal;
+		const {config} = $$;
+
+		if (/^(drag|wheel)$/.test(enabled)) {
+			config.zoom_type = enabled;
+		}
+
+		config.zoom_enabled = !!enabled;
+
+		if (!$$.zoom) {
+			$$.initZoom();
+			$$.bindZoomEvent();
+		} else if (enabled === false) {
+			$$.bindZoomEvent(false);
+		}
+
+		$$.updateAndRedraw();
+	},
+
+	/**
+	 * Set or get x Axis maximum zoom range value
+	 * @function zoom․max
+	 * @instance
+	 * @memberof Chart
+	 * @param {number} [max] maximum value to set for zoom
+	 * @returns {number} zoom max value
+	 * @example
+	 *  // Set maximum range value
+	 *  chart.zoom.max(20);
+	 */
+	max(max?: number): number {
+		const $$ = this.internal;
+		const {config, org: {xDomain}} = $$;
+
+		if (max === 0 || max) {
+			config.zoom_x_max = getMinMax("max", [xDomain[1], max]);
+		}
+
+		return config.zoom_x_max;
+	},
+
+	/**
+	 * Set or get x Axis minimum zoom range value
+	 * @function zoom․min
+	 * @instance
+	 * @memberof Chart
+	 * @param {number} [min] minimum value to set for zoom
+	 * @returns {number} zoom min value
+	 * @example
+	 *  // Set minimum range value
+	 *  chart.zoom.min(-1);
+	 */
+	min(min?: number): number {
+		const $$ = this.internal;
+		const {config, org: {xDomain}} = $$;
+
+		if (min === 0 || min) {
+			config.zoom_x_min = getMinMax("min", [xDomain[0], min]);
+		}
+
+		return config.zoom_x_min;
+	},
+
+	/**
+	 * Set zoom range
+	 * @function zoom․range
+	 * @instance
+	 * @memberof Chart
+	 * @param {object} [range] zoom range
+	 * @returns {object} zoom range value
+	 * {
+	 *   min: 0,
+	 *   max: 100
+	 * }
+	 * @example
+	 *  chart.zoom.range({
+	 *      min: 10,
+	 *      max: 100
+	 *  });
+	 */
+	range(range): {min: (number | undefined)[], max: (number | undefined)[]} {
+		const zoom = this.zoom;
+
+		if (isObject(range)) {
+			const {min, max} = range;
+
+			isDefined(min) && zoom.min(min);
+			isDefined(max) && zoom.max(max);
+		}
+
+		return {
+			min: zoom.min(),
+			max: zoom.max()
+		};
+	}
+});
+
+export default {
+	zoom,
+
+	/**
+	 * Unzoom zoomed area
+	 * - **NOTE:** Calling .unzoom() will not trigger zoom events.
+	 * @function unzoom
+	 * @instance
+	 * @memberof Chart
+	 * @example
+	 *  chart.unzoom();
+	 */
+	unzoom(): void {
+		const $$ = this.internal;
+		const {config, $el: {eventRect, zoomResetBtn}, scale: {zoom}, state} = $$;
+
+		if (zoom) {
+			config.subchart_show ?
+				$$.brush.getSelection().call($$.brush.move, null) :
+				$$.zoom.updateTransformScale(d3ZoomIdentity);
+
+			$$.updateZoom(true);
+			zoomResetBtn?.style("display", "none");
+
+			// reset transform
+			if (d3ZoomTransform(eventRect.node()) !== d3ZoomIdentity) {
+				$$.zoom.transform(eventRect, d3ZoomIdentity);
+			}
+
+			state.domain = undefined;
+		}
+	}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Options.html b/release/3.12.4/doc/Options.html new file mode 100644 index 000000000..e54fb1771 --- /dev/null +++ b/release/3.12.4/doc/Options.html @@ -0,0 +1,33651 @@ + + + + + + Options - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Options

+ + + + + + + +
+ +
+ +

+ + Options + +

+ + +
+ +
+ +
+ + + + + +

new Options()

+ + + + + + +
+ +
Description:
+
  • Class to set options on generating chart.

    +
      +
    • It's instantiated internally, not exposed for public.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+
    +
  • bb.generate to use these options on generating the chart
  • +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +

Members

+ + + +

(static) arc :object

+ + + + + +
+ +
Description:
+
  • Set arc options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
arc + + +object + + + + +

Arc object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
cornerRadius + + +number +| + +function + + + + + + + <optional>
+ + + +
+ + 0 + +

Set corner radius of Arc(donut/gauge/pie/polar) shape.

+
    +
  • NOTE: +
      +
    • Corner radius can't surpass the (outerRadius - innerRadius) /2 of indicated shape.
    • +
    +
  • +
+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
ratio + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set ratio relative of outer radius.

+ +
needle + + +object + + + + + + + <optional>
+ + + +
+ +

Set needle options.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
show + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show or hide needle.

color + + +string + + + + + + + <optional>
+ + + +
+ +

Set needle filled color.

path + + +function + + + + + + + <optional>
+ + + +
+ +

Set custom needle path function.

+
    +
  • NOTE:
  • +
  • The path should be starting from 0,0 (which is center) to top center coordinate.
  • +
  • The function will receive, length{number} parameter which indicating the needle length in pixel relative to radius.
  • +
value + + +number + + + + + + + <optional>
+ + + +
+ +

Set needle value.

+
    +
  • NOTE:
  • +
  • For single gauge chart, needle will point the data value by default, otherwise will point 0(zero).
  • +
length + + +number + + + + + + + <optional>
+ + + +
+ + 100 + +

Set needle length in percentages relative to radius.

top + + +object + + + + + + + <optional>
+ + + +
+ +

Set needle top options.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
rx + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set needle top rx radius value.

ry + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set needle top ry radius value.

width + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set needle top width in pixel.

+ +
bottom + + +object + + + + + + + <optional>
+ + + +
+ +

Set needle bottom options.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
rx + + +number + + + + + + + <optional>
+ + + +
+ + 1 + +

Set needle bottom rx radius value.

ry + + +number + + + + + + + <optional>
+ + + +
+ + 1 + +

Set needle bottom ry radius value.

width + + +number + + + + + + + <optional>
+ + + +
+ + 15 + +

Set needle bottom width in pixel.

len + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set needle bottom length in pixel. Setting this value, will make bottom larger starting from center.

+ +
+ +
rangeText + + +object + + + + + + + <optional>
+ + + +
+ +

Set rangeText options.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
values + + +Array + + + + + + + <optional>
+ + + +
+ +

Set range text values to be shown around Arc.

+
    +
  • When unit: 'absolute': Given values are treated as absolute values.
  • +
  • When unit: '%': Given values are treated as percentages.
  • +
unit + + +string + + + + + + + <optional>
+ + + +
+ + "absolute" + +

Specify the range text unit.

+
    +
  • "absolute": Show absolute value
  • +
  • "%": Show percentage value
  • +
fiexed + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set if range text shown will be fixed w/o data toggle update. Only available for gauge chart.

format + + +function + + + + + + + <optional>
+ + + +
+ +

Set format function for the range text.

position + + +number + + + + + + + <optional>
+ + + +
+ +

Set position function or object for the range text.

+ +
+ +
+ + + + + + +
+

Set arc options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
arc: {
+     cornerRadius: 12,
+
+     // can customize corner radius for each data with function callback
+     //
+     // The function will receive:
+     // - id {string}: Data id
+     // - value {number}: Data value
+     // - outerRadius {number}: Outer radius value
+     cornerRadius: function(id, value, outerRadius) {
+         return (id === "data1" && value > 10) ?
+         	50 : outerRadius * 1.2;
+     },
+
+     // set ratio relative of outer radius
+     cornerRadius: {
+         ratio: 0.5
+     },
+
+     needle: {
+      	show: true,
+      	color: "red", // any valid CSS color
+      	path: function(length) {
+      	  const len = length - 20;
+
+      	  // will return upper arrow shape path
+      	  // Note: The path should begun from '0,0' coordinate to top center.
+      	  const path = `M 0 -${len + 20}
+      		L -12 -${len}
+      		L -5 -${len}
+      		L -5 0
+      		A 1 1 0 0 0 5 0
+      		L 5 -${len}
+      		L 12 -${len} Z`;
+
+      	  return path;
+      	},
+      	value: 40,  // will make needle to point value 40.
+      	length: 80, // needle length in percentages relative to radius.
+
+      	top: {
+      	  // rx and ry are the two radii of the ellipse;
+      	  // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve
+      	  rx: 1,
+      	  ry: 1,
+      	  width: 5
+      	},
+      	bottom: {
+      	  // rx and ry are the two radii of the ellipse;
+      	  // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve
+      	  rx: 1,
+      	  ry: 1,
+      	  width: 10
+      	  len: 10
+      	}
+     },
+
+     rangeText: {
+      	values: [15, 30, 50, 75, 95],
+      	unit: "%",
+      	fixed: false, // only available for gauge chart
+      	format: function(v) {
+      	  return v === 15 ? "Fifteen" : v;
+      	},
+
+      	position: function(v) {
+      	  return v === 15 ? {x: 20, y: 10} : null; // can return one props value also.
+      	},
+      	position: {x: 10, y: 15},
+      	position: {x: 10}
+     }
+ }
+ + + + + +

(static) area :object

+ + + + + +
+ +
Description:
+
  • Set area options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
area + + +object + + + + +

Area object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
above + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set background area above the data chart line.

below + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set background area below the data chart line.

+
    +
  • NOTE: Can't be used along with above option. When above & below options are set to true, above will be prioritized.
  • +
front + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Set area node to be positioned over line node.

linearGradient + + +boolean +| + +object + + + + + + + <optional>
+ + + +
+ + false + +

Set the linear gradient on area.

+Or customize by giving below object value:

+
    +
  • x {Array}: x1, x2 value (default: [0, 0])
  • +
  • y {Array}: y1, y2 value (default: [0, 1])
  • +
  • stops {Array}: Each item should be having [offset, stop-color, stop-opacity] values. +
      +
    • (default: [[0, $DATA_COLOR, 1], [1, $DATA_COLOR, 0]])
    • +
    +
  • +
zerobased + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Set if min or max value will be 0 on area chart.

+ +
+ + + + + + +
+

Set area options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
area: {
+     above: true,
+     below: false,
+     zerobased: false,
+
+     // <g class='bb-areas'> will be positioned behind the line <g class='bb-lines'> in stacking order
+     front: false,
+
+     // will generate follwing linearGradient:
+     // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient
+     // <linearGradient x1="0" x2="0" y1="0" y2="1">
+     //    <stop offset="0" stop-color="$DATA_COLOR" stop-opacity="1"></stop>
+     //    <stop offset="1" stop-color="$DATA_COLOR" stop-opacity="0"></stop>
+     // </linearGradient>
+     linearGradient: true,
+
+     // Or customized gradient
+     linearGradient: {
+     	x: [0, 0],  // x1, x2 attributes
+     	y: [0, 0],  // y1, y2 attributes
+     	stops: [
+     	  // offset, stop-color, stop-opacity
+     	  [0, "#7cb5ec", 1],
+
+     	  // setting 'null' for stop-color, will set its original data color
+     	  [0.5, null, 0],
+
+     	  // setting 'function' for stop-color, will pass data id as argument.
+     	  // It should return color string or null value
+     	  [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0],
+     	]
+     }
+ }
+ + + + + +

(static) axis․rotated :boolean

+ + + + + +
+ +
Description:
+
  • Switch x and y axis position.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

Switch x and y axis position.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  rotated: true
+}
+ + + + + +

(static) axis․tooltip :boolean

+ + + + + +
+ +
Description:
+
  • Set axis tooltip.

    +
      +
    • NOTE: +
        +
      • When enabled, will disable default focus grid line.
      • +
      • For timeseries x Axis, tootlip will be formatted using x Axis' tick format.
      • +
      • For category x Axis, tootlip will be displaying scales' value text.
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
axis + + +object + + + + +

Axis object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
tooltip + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show tooltip or not.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
backgroundColor + + +string +| + +object + + + + + + + <optional>
+ + + +

Set axis tooltip text background colors.

+ +
+ +
+ + + + + + +
+

Set axis tooltip.

+
    +
  • NOTE: +
      +
    • When enabled, will disable default focus grid line.
    • +
    • For timeseries x Axis, tootlip will be formatted using x Axis' tick format.
    • +
    • For category x Axis, tootlip will be displaying scales' value text.
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+    tooltip: true, // default background color is
+
+    // set backgound color for axis tooltip texts
+    tooltip: {
+         backgroundColor: "red",
+
+         // set differenct backround colors per axes
+         // NOTE: In this case, only specified axes tooltip will appear.
+         backgroundColor: {
+              x: "green",
+              y: "yellow",
+              y2: "red"
+         }
+    }
+}
+ + + + + +

(static) axis․x․axes :Array

+ + + + + +
+ +
Description:
+
  • Set additional axes for x Axis.

    +
      +
    • NOTE: Axis' scale is based on x Axis value if domain option isn't set.
    • +
    +

    Each axis object should consist with following options:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDefaultDescription
    domainArray-Set the domain value
    tick.outerbooleantrueShow outer tick
    tick.formatFunction-Set formatter for tick text
    tick.countNumber-Set the number of y axis ticks
    tick.valuesArray-Set tick values manually
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set additional axes for x Axis.

+
    +
  • NOTE: Axis' scale is based on x Axis value if domain option isn't set.
  • +
+

Each axis object should consist with following options:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
domainArray-Set the domain value
tick.outerbooleantrueShow outer tick
tick.formatFunction-Set formatter for tick text
tick.countNumber-Set the number of y axis ticks
tick.valuesArray-Set tick values manually
+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
x: {
+   axes: [
+     {
+       // if set, will not be correlated with the main x Axis domain value
+       domain: [0, 1000],
+       tick: {
+         outer: false,
+         format: function(x) {
+            return x + "%";
+         },
+         count: 2,
+         values: [10, 20, 30]
+       }
+     },
+     ...
+   ]
+}
+ + + + + +

(static) axis․x․categories :Array

+ + + + + +
+ +
Description:
+
  • Set category names on category axis. +This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • []
  • +
+ + + + + + + +
+ + + + + +
+

Set category names on category axis. +This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required.

+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    categories: ["Category 1", "Category 2", ...]
+  }
+}
+ + + + + +

(static) axis․x․clipPath :boolean

+ + + + + +
+ +
Description:
+
  • Set clip-path attribute for x axis element

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set clip-path attribute for x axis element

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
// don't set 'clip-path' attribute
+clipPath: false
+ + + + + +

(static) axis․x․extent :Array|function

+ + + + + +
+ +
Description:
+
  • Set default extent for subchart and zoom. This can be an array or function that returns an array.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set default extent for subchart and zoom. This can be an array or function that returns an array.

+
+ + + +
Type:
+
    +
  • + +Array +| + +function + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    // extent range as a pixel value
+    extent: [0, 200],
+
+    // when axis is 'timeseries', parsable datetime string
+    extent: ["2019-03-01", "2019-03-05"],
+
+    // return extent value
+    extent: function(domain, scale) {
+   	 var extent = domain.map(function(v) {
+    	    return scale(v);
+    	 });
+
+  	 // it should return a format of array
+  	 // ex) [0, 584]
+    	 return extent;
+    }
+  }
+}
+ + + + + +

(static) axis․x․forceAsSingle :boolean

+ + + + + +
+ +
Description:
+
  • Force the x axis to interact as single rather than multiple x axes.

    +
      +
    • NOTE: The tooltip event will be triggered nearing each data points(for multiple xs) rather than x axis based(as single x does) in below condition: +
        +
      • for bubble & scatter type
      • +
      • when data.xs is set
      • +
      • when tooltip.grouped=false is set +
          +
        • tooltip.grouped options will take precedence over axis.forceSingleX option.
        • +
        +
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Force the x axis to interact as single rather than multiple x axes.

+
    +
  • NOTE: The tooltip event will be triggered nearing each data points(for multiple xs) rather than x axis based(as single x does) in below condition: +
      +
    • for bubble & scatter type
    • +
    • when data.xs is set
    • +
    • when tooltip.grouped=false is set +
        +
      • tooltip.grouped options will take precedence over axis.forceSingleX option.
      • +
      +
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+     // will work as single x axis
+     forceAsSingle: true
+  }
+}
+ + + + + +

(static) axis․x․height :number

+ + + + + +
+ +
Description:
+
  • Set height of x axis.

    +The height of x axis can be set manually by this option. If you need more space for x axis, please use this option for that. The unit is pixel.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set height of x axis.

+The height of x axis can be set manually by this option. If you need more space for x axis, please use this option for that. The unit is pixel.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    height: 20
+  }
+}
+ + + + + +

(static) axis․x․inverted :boolean

+ + + + + +
+ +
Description:
+
  • Change the direction of x axis.

    +If true set, the direction will be right -> left.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Change the direction of x axis.

+If true set, the direction will be right -> left.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    inverted: true
+  }
+}
+ + + + + +

(static) axis․x․label :string|object

+ + + + + +
+ +
Description:
+
  • Set label on x axis.

    +You can set x axis label and change its position by this option. +string and object can be passed and we can change the poisiton by passing object that has position key.
    +Available position differs according to the axis direction (vertical or horizontal). +If string set, the position will be the default.

    +
      +
    • If it's horizontal axis: +
        +
      • inner-right [default]
      • +
      • inner-center
      • +
      • inner-left
      • +
      • outer-right
      • +
      • outer-center
      • +
      • outer-left
      • +
      +
    • +
    • If it's vertical axis: +
        +
      • inner-top [default]
      • +
      • inner-middle
      • +
      • inner-bottom
      • +
      • outer-top
      • +
      • outer-middle
      • +
      • outer-bottom
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set label on x axis.

+You can set x axis label and change its position by this option. +string and object can be passed and we can change the poisiton by passing object that has position key.
+Available position differs according to the axis direction (vertical or horizontal). +If string set, the position will be the default.

+
    +
  • If it's horizontal axis: +
      +
    • inner-right [default]
    • +
    • inner-center
    • +
    • inner-left
    • +
    • outer-right
    • +
    • outer-center
    • +
    • outer-left
    • +
    +
  • +
  • If it's vertical axis: +
      +
    • inner-top [default]
    • +
    • inner-middle
    • +
    • inner-bottom
    • +
    • outer-top
    • +
    • outer-middle
    • +
    • outer-bottom
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +string +| + +object + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    label: "Your X Axis"
+  }
+}
+
+axis: {
+  x: {
+    label: {
+       text: "Your X Axis",
+       position: "outer-center"
+    }
+  }
+}
+ + + + + +

(static) axis․x․localtime :boolean

+ + + + + +
+ +
Description:
+
  • Set how to treat the timezone of x values.
    +If true, treat x value as localtime. If false, convert to UTC internally.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Set how to treat the timezone of x values.
+If true, treat x value as localtime. If false, convert to UTC internally.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    localtime: false
+  }
+}
+ + + + + +

(static) axis․x․max

+ + + + + +
+ +
Description:
+
  • Set max value of x axis range.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
max + + +number + + + + +

Set the max value

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
fit + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

When specified max.value is greater than the bound data value, setting true will make x axis max to be fitted to the bound data max value.

+
    +
  • NOTE: If the bound data max value is greater than the max.value, the x axis max will be limited as the given max.value.
  • +
value + + +number + + + + + + + <optional>
+ + + +
+ +

Set the max value

+ +
+ + + + + + +
+

Set max value of x axis range.

+
+ + + + + + + +
Example
+ +
axis: {
+  x: {
+    max: 100,
+
+    max: {
+      // 'fit=true' will make x axis max to be limited as the bound data value max when 'max.value' is greater.
+      // - when bound data max is '10' and max.value: '100' ==>  x axis max will be '10'
+      // - when bound data max is '1000' and max.value: '100' ==> x axis max will be '100'
+      fit: true,
+      value: 100
+    }
+  }
+}
+ + + + + +

(static) axis․x․min

+ + + + + +
+ +
Description:
+
  • Set min value of x axis range.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
min + + +number + + + + +

Set the min value

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
fit + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

When specified min.value is lower than the bound data value, setting true will make x axis min to be fitted to the bound data min value.

+
    +
  • NOTE: If the bound data min value is lower than the min.value, the x axis min will be limited as the given min.value.
  • +
value + + +number + + + + + + + <optional>
+ + + +
+ +

Set the min value

+ +
+ + + + + + +
+

Set min value of x axis range.

+
+ + + + + + + +
Example
+ +
axis: {
+  x: {
+    min: -100,
+
+    min: {
+      // 'fit=true' will make x axis min to be limited as the bound data value min when 'min.value' is lower.
+      // - when bound data min is '-10' and min.value: '-100' ==>  x axis min will be '-10'
+      // - when bound data min is '-1000' and min.value: '-100' ==> x axis min will be '-100'
+      fit: true,
+      value: -100
+    }
+  }
+}
+ + + + + +

(static) axis․x․padding :object|number

+ + + + + +
+ +
Description:
+
  • Set padding for x axis.

    +If this option is set, the range of x axis will increase/decrease according to the values. +If no padding is needed in the rage of x axis, 0 should be set. +By default, left/right padding are set depending on x axis type or chart types.

    +
      +
    • NOTE: +
        +
      • The meaning of padding values, differs according axis types:
        +
          +
        • category/indexed: The unit of tick value +ex. the given value 1, is same as the width of 1 tick width
        • +
        • timeseries: Numeric time value +ex. the given value 1000*60*60*24, which is numeric time equivalent of a day, is same as the width of 1 tick width
        • +
        +
      • +
      • If want values to be treated as pixels, specify unit:"px". +
          +
        • The pixel value will be convered based on the scale values. Hence can not reflect accurate padding result.
        • +
        +
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + + + +
+ + + + + +
+

Set padding for x axis.

+If this option is set, the range of x axis will increase/decrease according to the values. +If no padding is needed in the rage of x axis, 0 should be set. +By default, left/right padding are set depending on x axis type or chart types.

+
    +
  • NOTE: +
      +
    • The meaning of padding values, differs according axis types:
      +
        +
      • category/indexed: The unit of tick value +ex. the given value 1, is same as the width of 1 tick width
      • +
      • timeseries: Numeric time value +ex. the given value 1000*60*60*24, which is numeric time equivalent of a day, is same as the width of 1 tick width
      • +
      +
    • +
    • If want values to be treated as pixels, specify unit:"px". +
        +
      • The pixel value will be convered based on the scale values. Hence can not reflect accurate padding result.
      • +
      +
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +object +| + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    padding: {
+      // when axis type is 'category'
+      left: 1,  // set left padding width of equivalent value of a tick's width
+      right: 0.5  // set right padding width as half of equivalent value of tick's width
+
+      // when axis type is 'timeseries'
+      left: 1000*60*60*24,  // set left padding width of equivalent value of a day tick's width
+      right: 1000*60*60*12   // set right padding width as half of equivalent value of a day tick's width
+    },
+
+    // or set both values at once.
+    padding: 10,
+
+    // or set padding values as pixel unit.
+    padding: {
+      left: 100,
+      right: 50,
+      unit: "px"
+    },
+  }
+}
+ + + + + +

(static) axis․x․show :boolean

+ + + + + +
+ +
Description:
+
  • Show or hide x axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Show or hide x axis.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    show: false
+  }
+}
+ + + + + +

(static) axis․x․tick․autorotate :boolean

+ + + + + +
+ +
Description:
+
  • Rotate x axis tick text if there is not enough space for 'category' and 'timeseries' type axis.

    +
      +
    • NOTE: The conditions where autorotate is enabled are: +
        +
      • axis.x.type='category' or 'timeseries
      • +
      • axis.x.tick.multiline=false
      • +
      • axis.x.tick.culling=false
      • +
      • axis.x.tick.fit=true
      • +
      +
    • +
    • NOTE: axis.x.tick.clippath=false is necessary for calculating the overflow padding between the end of x axis and the width of the SVG
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Rotate x axis tick text if there is not enough space for 'category' and 'timeseries' type axis.

+
    +
  • NOTE: The conditions where autorotate is enabled are: +
      +
    • axis.x.type='category' or 'timeseries
    • +
    • axis.x.tick.multiline=false
    • +
    • axis.x.tick.culling=false
    • +
    • axis.x.tick.fit=true
    • +
    +
  • +
  • NOTE: axis.x.tick.clippath=false is necessary for calculating the overflow padding between the end of x axis and the width of the SVG
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      rotate: 15,
+      autorotate: true,
+      multiline: false,
+      culling: false,
+      fit: true
+    },
+    clipPath: false
+  }
+}
+ + + + + +

(static) axis․x․tick․centered :boolean

+ + + + + +
+ +
Description:
+
  • centerize ticks on category axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

centerize ticks on category axis.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      centered: true
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․count :number

+ + + + + +
+ +
Description:
+
  • The number of x axis ticks to show.

    +This option hides tick lines together with tick text. If this option is used on timeseries axis, the ticks position will be determined precisely and not nicely positioned (e.g. it will have rough second value).

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

The number of x axis ticks to show.

+This option hides tick lines together with tick text. If this option is used on timeseries axis, the ticks position will be determined precisely and not nicely positioned (e.g. it will have rough second value).

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      count: 5
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․culling :boolean

+ + + + + +
+ +
Description:
+
  • Setting for culling ticks.

    +
      +
    • true: the ticks will be culled, then only limited tick text will be shown.
      +This option does not hide the tick lines by default, if want to hide tick lines, set axis.x.tick.culling.lines=false.
    • +
    • false: all of ticks will be shown.

      +The number of ticks to be shown can be chaned by axis.x.tick.culling.max.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • `true` for indexed axis and timeseries axis, `false` for category axis
  • +
+ + + + + + + +
+ + + + + +
+

Setting for culling ticks.

+
    +
  • true: the ticks will be culled, then only limited tick text will be shown.
    +This option does not hide the tick lines by default, if want to hide tick lines, set axis.x.tick.culling.lines=false.
  • +
  • false: all of ticks will be shown.

    +The number of ticks to be shown can be chaned by axis.x.tick.culling.max.
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      culling: false
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․culling․lines :boolean

+ + + + + +
+ +
Description:
+
  • Control visibility of tick lines within culling option, along with tick text.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Control visibility of tick lines within culling option, along with tick text.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      culling: {
+          lines: false,
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․culling․max :number

+ + + + + +
+ +
Description:
+
  • The number of tick texts will be adjusted to less than this value.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • 10
  • +
+ + + + + + + +
+ + + + + +
+

The number of tick texts will be adjusted to less than this value.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      culling: {
+          max: 5
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․fit :boolean

+ + + + + +
+ +
Description:
+
  • Fit x axis ticks.

    +
      +
    • true: ticks will be shown according to x value of the data points.
    • +
    • false: ticks will be shown as to have same intervals.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Fit x axis ticks.

+
    +
  • true: ticks will be shown according to x value of the data points.
  • +
  • false: ticks will be shown as to have same intervals.
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      fit: false
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․format :function|string

+ + + + + +
+ +
Description:
+
  • A function to format tick value. Format string is also available for timeseries data.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

A function to format tick value. Format string is also available for timeseries data.

+
+ + + +
Type:
+
    +
  • + +function +| + +string + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+       // for timeseries, a 'datetime' object is given as parameter
+      format: function(x) {
+          return x.getFullYear();
+      }
+
+      // for category, index(Number) and categoryName(String) are given as parameter
+      format: function(index, categoryName) {
+          return categoryName.substr(0, 10);
+      },
+
+       // for timeseries format specifier
+       format: "%Y-%m-%d %H:%M:%S"
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․multiline :boolean

+ + + + + +
+ +
Description:
+
  • Set tick text to be multiline

    +
      +
    • NOTE:
    • +
    +
    +

    When x tick text contains \n, it's used as line break and 'axis.x.tick.width' option is ignored.

    +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set tick text to be multiline

+
    +
  • NOTE:
  • +
+
+

When x tick text contains \n, it's used as line break and 'axis.x.tick.width' option is ignored.

+
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Examples
+ +
axis: {
+  x: {
+    tick: {
+      multiline: false
+    }
+  }
+}
+ +
// example of line break with '\n'
+// In this case, 'axis.x.tick.width' is ignored
+data: {
+   x: "x",
+   columns: [
+       ["x", "long\ntext", "Another\nLong\nText"],
+       ...
+   ],
+}
+ + + + + +

(static) axis․x․tick․outer :boolean

+ + + + + +
+ +
Description:
+
  • Show x axis outer tick.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Show x axis outer tick.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      outer: false
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․rotate :number

+ + + + + +
+ +
Description:
+
  • Rotate x axis tick text.

    +
      +
    • If you set negative value, it will rotate to opposite direction.
    • +
    • Applied when axis.rotated option is false.
    • +
    • As long as axis_x_tick_fit is set to true it will calculate an overflow for the y2 axis and add this value to the right padding.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • 0
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Rotate x axis tick text.

+
    +
  • If you set negative value, it will rotate to opposite direction.
  • +
  • Applied when axis.rotated option is false.
  • +
  • As long as axis_x_tick_fit is set to true it will calculate an overflow for the y2 axis and add this value to the right padding.
  • +
+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      rotate: 60
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․show :boolean

+ + + + + +
+ +
Description:
+
  • Show or hide x axis tick line.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Show or hide x axis tick line.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      show: false
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․text․inner :boolean|object

+ + + + + +
+ +
Description:
+
  • Set the first/last axis tick text to be positioned inside of the chart on non-rotated axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set the first/last axis tick text to be positioned inside of the chart on non-rotated axis.

+
+ + + +
Type:
+
    +
  • + +boolean +| + +object + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      text: {
+         inner: true,
+
+         // or specify each position of the first and last tick text
+         inner: {
+      	   first: true,
+      	   last: true
+      	}
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․text․position :object

+ + + + + +
+ +
Description:
+
  • Set the x Axis tick text's position relatively its original position

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {x: 0, y:0}
  • +
+ + + + + + + +
+ + + + + +
+

Set the x Axis tick text's position relatively its original position

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      text: {
+        position: {
+          x: 10,
+          y: 10
+        }
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․text․show :boolean

+ + + + + +
+ +
Description:
+
  • Show or hide x axis tick text.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Show or hide x axis tick text.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      text: {
+          show: false
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․tooltip :boolean

+ + + + + +
+ +
Description:
+
  • Set to display system tooltip(via <title> element) for tick text

    +
      +
    • NOTE: Only available for category axis type (axis.x.type='category')
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

Set to display system tooltip(via <title> element) for tick text

+
    +
  • NOTE: Only available for category axis type (axis.x.type='category')
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      tooltip: true
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․values :Array|function

+ + + + + +
+ +
Description:
+
  • Set the x values of ticks manually.

    +If this option is provided, the position of the ticks will be determined based on those values.
    +This option works with timeseries data and the x values will be parsed accoding to the type of the value and data.xFormat option.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • null
  • +
+ + + + + + + +
+ + + + + +
+

Set the x values of ticks manually.

+If this option is provided, the position of the ticks will be determined based on those values.
+This option works with timeseries data and the x values will be parsed accoding to the type of the value and data.xFormat option.

+
+ + + +
Type:
+
    +
  • + +Array +| + +function + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      values: [1, 2, 4, 8, 16, 32, ...],
+
+      // an Array value should be returned
+      values: function() {
+      	return [ ... ];
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․x․tick․width :number

+ + + + + +
+ +
Description:
+
  • Set tick width

    +
      +
    • NOTE:
    • +
    +
    +

    When x tick text contains \n, this option is ignored.

    +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • null
  • +
+ + + + + + + +
+ + + + + +
+

Set tick width

+
    +
  • NOTE:
  • +
+
+

When x tick text contains \n, this option is ignored.

+
+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    tick: {
+      width: 50
+    }
+  }
+}
+ + + + + +

(static) axis․x․type :string

+ + + + + +
+ +
Description:
+
  • Set type of x axis.

    +Available Values:

    +
      +
    • category
    • +
    • indexed
    • +
    • log
    • +
    • timeseries
    • +
    +

    NOTE:

    +
      +
    • log type: +
        +
      • the x values specified by data.x(or by any equivalent option), must be exclusively-positive.
      • +
      • x axis min value should be >= 0.
      • +
      • for 'category' type, data.xs option isn't supported.
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • indexed
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set type of x axis.

+Available Values:

+
    +
  • category
  • +
  • indexed
  • +
  • log
  • +
  • timeseries
  • +
+

NOTE:

+
    +
  • log type: +
      +
    • the x values specified by data.x(or by any equivalent option), must be exclusively-positive.
    • +
    • x axis min value should be >= 0.
    • +
    • for 'category' type, data.xs option isn't supported.
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  x: {
+    type: "timeseries"
+  }
+}
+ + + + + +

(static) axis․y2․axes :Array

+ + + + + +
+ +
Description:
+
  • Set additional axes for y2 Axis.

    +
      +
    • NOTE: Axis' scale is based on y2 Axis value if domain option isn't set.
    • +
    +

    Each axis object should consist with following options:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDefaultDescription
    domainArray-Set the domain value
    tick.outerbooleantrueShow outer tick
    tick.formatFunction-Set formatter for tick text
    tick.countNumber-Set the number of y axis ticks
    tick.valuesArray-Set tick values manually
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set additional axes for y2 Axis.

+
    +
  • NOTE: Axis' scale is based on y2 Axis value if domain option isn't set.
  • +
+

Each axis object should consist with following options:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
domainArray-Set the domain value
tick.outerbooleantrueShow outer tick
tick.formatFunction-Set formatter for tick text
tick.countNumber-Set the number of y axis ticks
tick.valuesArray-Set tick values manually
+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
y2: {
+   axes: [
+     {
+       // if set, will not be correlated with the main y2 Axis domain value
+       domain: [0, 1000],
+       tick: {
+         outer: false,
+         format: function(x) {
+            return x + "%";
+         },
+         count: 2,
+         values: [10, 20, 30]
+       }
+     },
+     ...
+   ]
+}
+ + + + + +

(static) axis․y2․center :number

+ + + + + +
+ +
Description:
+
  • Set center value of y2 axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set center value of y2 axis.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    center: 0
+  }
+}
+ + + + + +

(static) axis․y2․default :Array

+ + + + + +
+ +
Description:
+
  • Set default range of y2 axis.

    +This option set the default value for y2 axis when there is no data on init.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set default range of y2 axis.

+This option set the default value for y2 axis when there is no data on init.

+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    default: [0, 1000]
+  }
+}
+ + + + + +

(static) axis․y2․inner :boolean

+ + + + + +
+ +
Description:
+
  • Show y2 axis inside of the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

Show y2 axis inside of the chart.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    inner: true
+  }
+}
+ + + + + +

(static) axis․y2․inverted :boolean

+ + + + + +
+ +
Description:
+
  • Change the direction of y2 axis.

    +If true set, the direction will be top -> bottom.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Change the direction of y2 axis.

+If true set, the direction will be top -> bottom.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    inverted: true
+  }
+}
+ + + + + +

(static) axis․y2․label :string|object

+ + + + + +
+ +
Description:
+
  • Set label on y2 axis.

    +You can set y2 axis label and change its position by this option. This option works in the same way as axis.x.label.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set label on y2 axis.

+You can set y2 axis label and change its position by this option. This option works in the same way as axis.x.label.

+
+ + + +
Type:
+
    +
  • + +string +| + +object + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    label: "Your Y2 Axis"
+  }
+}
+
+axis: {
+  y2: {
+    label: {
+       text: "Your Y2 Axis",
+       position: "outer-middle"
+    }
+  }
+}
+ + + + + +

(static) axis․y2․max :number

+ + + + + +
+ +
Description:
+
  • Set max value of y2 axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set max value of y2 axis.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    max: 1000
+  }
+}
+ + + + + +

(static) axis․y2․min :number

+ + + + + +
+ +
Description:
+
  • Set min value of y2 axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set min value of y2 axis.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    min: -1000
+  }
+}
+ + + + + +

(static) axis․y2․padding :object|number

+ + + + + +
+ +
Description:
+
  • Set padding for y2 axis.

    +You can set padding for y2 axis to create more space on the edge of the axis. +This option accepts object and it can include top and bottom. top, bottom will be treated as pixels.

    +
      +
    • NOTE: +
        +
      • Given values are translated relative to the y2 Axis domain value for padding
      • +
      • For area and bar type charts, area.zerobased or bar.zerobased options should be set to 'false` to get padded bottom.
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + + + +
+ + + + + +
+

Set padding for y2 axis.

+You can set padding for y2 axis to create more space on the edge of the axis. +This option accepts object and it can include top and bottom. top, bottom will be treated as pixels.

+
    +
  • NOTE: +
      +
    • Given values are translated relative to the y2 Axis domain value for padding
    • +
    • For area and bar type charts, area.zerobased or bar.zerobased options should be set to 'false` to get padded bottom.
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +object +| + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    padding: {
+      top: 100,
+      bottom: 100
+    }
+
+    // or set both values at once.
+    padding: 10
+}
+ + + + + +

(static) axis․y2․show :boolean

+ + + + + +
+ +
Description:
+
  • Show or hide y2 axis.

    +
      +
    • NOTE: +
        +
      • When set to false will not generate y2 axis node. In this case, all 'y2' axis related functionality won't work properly.
      • +
      • If need to use 'y2' related options while y2 isn't visible, set the value true and control visibility by css display property.
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

Show or hide y2 axis.

+
    +
  • NOTE: +
      +
    • When set to false will not generate y2 axis node. In this case, all 'y2' axis related functionality won't work properly.
    • +
    • If need to use 'y2' related options while y2 isn't visible, set the value true and control visibility by css display property.
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    show: true
+  }
+}
+ + + + + +

(static) axis․y2․tick․count :number

+ + + + + +
+ +
Description:
+
  • Set the number of y2 axis ticks.

    +
      +
    • NOTE: This works in the same way as axis.y.tick.count.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set the number of y2 axis ticks.

+
    +
  • NOTE: This works in the same way as axis.y.tick.count.
  • +
+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      count: 5
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․culling :boolean

+ + + + + +
+ +
Description:
+
  • Setting for culling ticks.

    +
      +
    • true: the ticks will be culled, then only limited tick text will be shown.
      +This option does not hide the tick lines by default, if want to hide tick lines, set axis.y2.tick.culling.lines=false.
    • +
    • false: all of ticks will be shown.

      +The number of ticks to be shown can be chaned by axis.y2.tick.culling.max.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

Setting for culling ticks.

+
    +
  • true: the ticks will be culled, then only limited tick text will be shown.
    +This option does not hide the tick lines by default, if want to hide tick lines, set axis.y2.tick.culling.lines=false.
  • +
  • false: all of ticks will be shown.

    +The number of ticks to be shown can be chaned by axis.y2.tick.culling.max.
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      culling: false
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․culling․lines :boolean

+ + + + + +
+ +
Description:
+
  • Control visibility of tick lines within culling option, along with tick text.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Control visibility of tick lines within culling option, along with tick text.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      culling: {
+          lines: false,
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․culling․max :number

+ + + + + +
+ +
Description:
+
  • The number of tick texts will be adjusted to less than this value.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • 5
  • +
+ + + + + + + +
+ + + + + +
+

The number of tick texts will be adjusted to less than this value.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      culling: {
+          max: 5
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․format :function

+ + + + + +
+ +
Description:
+
  • Set formatter for y2 axis tick text.

    +This option works in the same way as axis.y.format.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set formatter for y2 axis tick text.

+This option works in the same way as axis.y.format.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      format: d3.format("$,")
+      //or format: function(d) { return "$" + d; }
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․outer :boolean

+ + + + + +
+ +
Description:
+
  • Show or hide y2 axis outer tick.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Show or hide y2 axis outer tick.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      outer: false
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․rotate :number

+ + + + + +
+ +
Description:
+
  • Rotate y2 axis tick text.

    +
      +
    • If you set negative value, it will rotate to opposite direction.
    • +
    • Applied when axis.rotated option is true.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • 0
  • +
+ + + + + + + +
+ + + + + +
+

Rotate y2 axis tick text.

+
    +
  • If you set negative value, it will rotate to opposite direction.
  • +
  • Applied when axis.rotated option is true.
  • +
+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      rotate: 60
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․show :boolean

+ + + + + +
+ +
Description:
+
  • Show or hide y2 axis tick line.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Show or hide y2 axis tick line.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      show: false
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․stepSize :number

+ + + + + +
+ +
Description:
+
  • Set axis tick step(interval) size.

    +
      +
    • NOTE: Will be ignored if axis.y2.tick.count or axis.y2.tick.values options are set.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set axis tick step(interval) size.

+
    +
  • NOTE: Will be ignored if axis.y2.tick.count or axis.y2.tick.values options are set.
  • +
+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      // tick value will step as indicated interval value.
+      // ex) 'stepSize=15' ==> [0, 15, 30, 45, 60]
+      stepSize: 15
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․text․position :object

+ + + + + +
+ +
Description:
+
  • Set the y2 Axis tick text's position relatively its original position

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {x: 0, y:0}
  • +
+ + + + + + + +
+ + + + + +
+

Set the y2 Axis tick text's position relatively its original position

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      text: {
+        position: {
+          x: 10,
+          y: 10
+        }
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․text․show :boolean

+ + + + + +
+ +
Description:
+
  • Show or hide y2 axis tick text.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Show or hide y2 axis tick text.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      text: {
+          show: false
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y2․tick․values :Array|function

+ + + + + +
+ +
Description:
+
  • Set y2 axis tick values manually.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • null
  • +
+ + + + + + + +
+ + + + + +
+

Set y2 axis tick values manually.

+
+ + + +
Type:
+
    +
  • + +Array +| + +function + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    tick: {
+      values: [100, 1000, 10000],
+
+      // an Array value should be returned
+      values: function() {
+      	return [ ... ];
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y2․type :string

+ + + + + +
+ +
Description:
+
  • Set type of y2 axis.

    +Available Values:

    +
      +
    • indexed
    • +
    • log
    • +
    • timeseries
    • +
    +

    NOTE:

    +
      +
    • log type: +
        +
      • the bound data values must be exclusively-positive.
      • +
      • y2 axis min value should be >= 0.
      • +
      • data.groups(stacked data) option aren't supported.
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • "indexed"
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set type of y2 axis.

+Available Values:

+
    +
  • indexed
  • +
  • log
  • +
  • timeseries
  • +
+

NOTE:

+
    +
  • log type: +
      +
    • the bound data values must be exclusively-positive.
    • +
    • y2 axis min value should be >= 0.
    • +
    • data.groups(stacked data) option aren't supported.
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y2: {
+    type: "indexed"
+  }
+}
+ + + + + +

(static) axis․y․axes :Array

+ + + + + +
+ +
Description:
+
  • Set additional axes for y Axis.

    +
      +
    • NOTE: Axis' scale is based on y Axis value if domain option isn't set.
    • +
    +

    Each axis object should consist with following options:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameTypeDefaultDescription
    domainArray-Set the domain value
    tick.outerbooleantrueShow outer tick
    tick.formatFunction-Set formatter for tick text
    tick.countNumber-Set the number of y axis ticks
    tick.valuesArray-Set tick values manually
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set additional axes for y Axis.

+
    +
  • NOTE: Axis' scale is based on y Axis value if domain option isn't set.
  • +
+

Each axis object should consist with following options:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
domainArray-Set the domain value
tick.outerbooleantrueShow outer tick
tick.formatFunction-Set formatter for tick text
tick.countNumber-Set the number of y axis ticks
tick.valuesArray-Set tick values manually
+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
y: {
+   axes: [
+     {
+       // if set, will not be correlated with the main y Axis domain value
+       domain: [0, 1000],
+       tick: {
+         outer: false,
+         format: function(x) {
+            return x + "%";
+         },
+         count: 2,
+         values: [10, 20, 30]
+       }
+     },
+     ...
+   ]
+}
+ + + + + +

(static) axis․y․center :number

+ + + + + +
+ +
Description:
+
  • Set center value of y axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set center value of y axis.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    center: 0
+  }
+}
+ + + + + +

(static) axis․y․clipPath :boolean

+ + + + + +
+ +
Description:
+
  • Set clip-path attribute for y axis element

    +
      +
    • NOTE: clip-path attribute for y Axis is set only when axis.y.inner option is true.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Set clip-path attribute for y axis element

+
    +
  • NOTE: clip-path attribute for y Axis is set only when axis.y.inner option is true.
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
// don't set 'clip-path' attribute
+clipPath: false
+ + + + + +

(static) axis․y․default :Array

+ + + + + +
+ +
Description:
+
  • Set default range of y axis.

    +This option set the default value for y axis when there is no data on init.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set default range of y axis.

+This option set the default value for y axis when there is no data on init.

+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    default: [0, 1000]
+  }
+}
+ + + + + +

(static) axis․y․inner :boolean

+ + + + + +
+ +
Description:
+
  • Show y axis inside of the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

Show y axis inside of the chart.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    inner: true
+  }
+}
+ + + + + +

(static) axis․y․inverted :boolean

+ + + + + +
+ +
Description:
+
  • Change the direction of y axis.

    +If true set, the direction will be top -> bottom.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Change the direction of y axis.

+If true set, the direction will be top -> bottom.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    inverted: true
+  }
+}
+ + + + + +

(static) axis․y․label :string|object

+ + + + + +
+ +
Description:
+
  • Set label on y axis.

    +You can set y axis label and change its position by this option. This option works in the same way as axis.x.label.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set label on y axis.

+You can set y axis label and change its position by this option. This option works in the same way as axis.x.label.

+
+ + + +
Type:
+
    +
  • + +string +| + +object + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    label: "Your Y Axis"
+  }
+}
+
+axis: {
+  y: {
+    label: {
+       text: "Your Y Axis",
+       position: "outer-middle"
+    }
+  }
+}
+ + + + + +

(static) axis․y․max :number

+ + + + + +
+ +
Description:
+
  • Set max value of y axis.

    +
      +
    • NOTE: Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0).
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set max value of y axis.

+
    +
  • NOTE: Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0).
  • +
+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    max: 1000
+  }
+}
+ + + + + +

(static) axis․y․min :number

+ + + + + +
+ +
Description:
+
  • Set min value of y axis.

    +
      +
    • NOTE: +Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0).
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set min value of y axis.

+
    +
  • NOTE: +Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0).
  • +
+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    min: 1000
+  }
+}
+ + + + + +

(static) axis․y․padding :object|number

+ + + + + +
+ +
Description:
+
  • Set padding for y axis.

    +You can set padding for y axis to create more space on the edge of the axis. +This option accepts object and it can include top and bottom. top, bottom will be treated as pixels.

    +
      +
    • NOTE: +
        +
      • Given values are translated relative to the y Axis domain value for padding
      • +
      • For area and bar type charts, area.zerobased or bar.zerobased options should be set to 'false` to get padded bottom.
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + + + +
+ + + + + +
+

Set padding for y axis.

+You can set padding for y axis to create more space on the edge of the axis. +This option accepts object and it can include top and bottom. top, bottom will be treated as pixels.

+
    +
  • NOTE: +
      +
    • Given values are translated relative to the y Axis domain value for padding
    • +
    • For area and bar type charts, area.zerobased or bar.zerobased options should be set to 'false` to get padded bottom.
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +object +| + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    padding: {
+      top: 0,
+      bottom: 0
+    },
+
+    // or set both values at once.
+    padding: 10
+  }
+}
+ + + + + +

(static) axis․y․show :boolean

+ + + + + +
+ +
Description:
+
  • Show or hide y axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Show or hide y axis.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    show: false
+  }
+}
+ + + + + +

(static) axis․y․tick․count :number

+ + + + + +
+ +
Description:
+
  • Set the number of y axis ticks.

    +
      +
    • NOTE: The position of the ticks will be calculated precisely, so the values on the ticks will not be rounded nicely. In the case, axis.y.tick.format or axis.y.tick.values will be helpful.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set the number of y axis ticks.

+
    +
  • NOTE: The position of the ticks will be calculated precisely, so the values on the ticks will not be rounded nicely. In the case, axis.y.tick.format or axis.y.tick.values will be helpful.
  • +
+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      count: 5
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․culling :boolean

+ + + + + +
+ +
Description:
+
  • Setting for culling ticks.

    +
      +
    • true: the ticks will be culled, then only limited tick text will be shown.
      +This option does not hide the tick lines by default, if want to hide tick lines, set axis.y.tick.culling.lines=false.
    • +
    • false: all of ticks will be shown.

      +The number of ticks to be shown can be chaned by axis.y.tick.culling.max.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

Setting for culling ticks.

+
    +
  • true: the ticks will be culled, then only limited tick text will be shown.
    +This option does not hide the tick lines by default, if want to hide tick lines, set axis.y.tick.culling.lines=false.
  • +
  • false: all of ticks will be shown.

    +The number of ticks to be shown can be chaned by axis.y.tick.culling.max.
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      culling: false
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․culling․lines :boolean

+ + + + + +
+ +
Description:
+
  • Control visibility of tick lines within culling option, along with tick text.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Control visibility of tick lines within culling option, along with tick text.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      culling: {
+          lines: false,
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․culling․max :number

+ + + + + +
+ +
Description:
+
  • The number of tick texts will be adjusted to less than this value.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • 5
  • +
+ + + + + + + +
+ + + + + +
+

The number of tick texts will be adjusted to less than this value.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      culling: {
+          max: 5
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․format :function

+ + + + + +
+ +
Description:
+
  • Set formatter for y axis tick text.

    +This option accepts d3.format object as well as a function you define.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set formatter for y axis tick text.

+This option accepts d3.format object as well as a function you define.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      format: function(x) {
+          return x.getFullYear();
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․outer :boolean

+ + + + + +
+ +
Description:
+
  • Show y axis outer tick.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Show y axis outer tick.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      outer: false
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․rotate :number

+ + + + + +
+ +
Description:
+
  • Rotate y axis tick text.

    +
      +
    • If you set negative value, it will rotate to opposite direction.
    • +
    • Applied when axis.rotated option is true.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • 0
  • +
+ + + + + + + +
+ + + + + +
+

Rotate y axis tick text.

+
    +
  • If you set negative value, it will rotate to opposite direction.
  • +
  • Applied when axis.rotated option is true.
  • +
+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      rotate: 60
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․show :boolean

+ + + + + +
+ +
Description:
+
  • Show or hide y axis tick line.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Show or hide y axis tick line.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      show: false
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․stepSize :number

+ + + + + +
+ +
Description:
+
  • Set axis tick step(interval) size.

    +
      +
    • NOTE: Will be ignored if axis.y.tick.count or axis.y.tick.values options are set.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set axis tick step(interval) size.

+
    +
  • NOTE: Will be ignored if axis.y.tick.count or axis.y.tick.values options are set.
  • +
+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      // tick value will step as indicated interval value.
+      // ex) 'stepSize=15' ==> [0, 15, 30, 45, 60]
+      stepSize: 15
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․text․position :object

+ + + + + +
+ +
Description:
+
  • Set the y Axis tick text's position relatively its original position

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {x: 0, y:0}
  • +
+ + + + + + + +
+ + + + + +
+

Set the y Axis tick text's position relatively its original position

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      text: {
+        position: {
+          x: 10,
+          y: 10
+        }
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․text․show :boolean

+ + + + + +
+ +
Description:
+
  • Show or hide y axis tick text.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Show or hide y axis tick text.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      text: {
+          show: false
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y․tick․values :Array|function

+ + + + + +
+ +
Description:
+
  • Set y axis tick values manually.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • null
  • +
+ + + + + + + +
+ + + + + +
+

Set y axis tick values manually.

+
+ + + +
Type:
+
    +
  • + +Array +| + +function + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    tick: {
+      values: [100, 1000, 10000],
+
+      // an Array value should be returned
+      values: function() {
+      	return [ ... ];
+      }
+    }
+  }
+}
+ + + + + +

(static) axis․y․type :string

+ + + + + +
+ +
Description:
+
  • Set type of y axis.

    +Available Values:

    +
      +
    • indexed
    • +
    • log
    • +
    • timeseries
    • +
    +

    NOTE:

    +
      +
    • log type: +
        +
      • the bound data values must be exclusively-positive.
      • +
      • y axis min value should be >= 0.
      • +
      • data.groups(stacked data) option aren't supported.
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • "indexed"
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set type of y axis.

+Available Values:

+
    +
  • indexed
  • +
  • log
  • +
  • timeseries
  • +
+

NOTE:

+
    +
  • log type: +
      +
    • the bound data values must be exclusively-positive.
    • +
    • y axis min value should be >= 0.
    • +
    • data.groups(stacked data) option aren't supported.
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
axis: {
+  y: {
+    type: "log"
+  }
+}
+ + + + + +

(static) background

+ + + + + +
+ +
Description:
+
  • Set chart background.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
background + + +object + + + + +

background object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
class + + +string + + + + +

Specify the class name for background element.

color + + +string + + + + +

Specify the fill color for background element.
NOTE: Will be ignored if imgUrl option is set.

imgUrl + + +string + + + + +

Specify the image url string for background.

+ +
+ + + + + + +
+

Set chart background.

+
+ + + + + + + +
Example
+ +
background: {
+   class: "myClass",
+   color: "red",
+
+   // Set image url for background.
+   // If specified, 'color' option will be ignored.
+   imgUrl: "https://naver.github.io/billboard.js/img/logo/billboard.js.svg",
+}
+ + + + + +

(static) bar :object

+ + + + + +
+ +
Description:
+
  • Set bar options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
bar + + +object + + + + +

Bar object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
front + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set 'bar' to be positioned over(on the top) other shapes elements.

indices.removeNull + + +number + + + + + + + <optional>
+ + + +
+ + false + +

Remove nullish data on bar indices positions.

label.threshold + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set threshold ratio to show/hide labels.

linearGradient + + +boolean +| + +object + + + + + + + <optional>
+ + + +
+ + false + +

Set the linear gradient on bar.

+Or customize by giving below object value:

+
    +
  • x {Array}: x1, x2 value (default: [0, 0])
  • +
  • y {Array}: y1, y2 value (default: [0, 1])
  • +
  • stops {Array}: Each item should be having [offset, stop-color, stop-opacity] values. +
      +
    • (default: [[0, $DATA_COLOR, 1], [1, $DATA_COLOR, 0]])
    • +
    +
  • +
overlap + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Bars will be rendered at same position, which will be overlapped each other. (for non-grouped bars only)

padding + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

The padding pixel value between each bar.

radius + + +number + + + + + + + <optional>
+ + + +
+ +

Set the radius of bar edge in pixel.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
ratio + + +number + + + + + + + <optional>
+ + + +

Set the radius ratio of bar edge in relative the bar's width.

+ +
sensitivity + + +number + + + + + + + <optional>
+ + + +
+ + 2 + +

The senstivity offset value for interaction boundary.

width + + +number + + + + + + + <optional>
+ + + +
+ +

Change the width of bar chart.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
ratio + + +number + + + + + + + <optional>
+ + + +
+ + 0.6 + +

Change the width of bar chart by ratio.

max + + +number + + + + + + + <optional>
+ + + +
+ +

The maximum width value for ratio.

dataname + + +number + + + + + + + <optional>
+ + + +
+ +

Change the width of bar for indicated dataset only.

+
    +
  • NOTE: +
      +
    • Works only for non-stacked bar
    • +
    • Bars are centered accoding its total width value
    • +
    +
  • +
+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
ratio + + +number + + + + + + + <optional>
+ + + +
+ + 0.6 + +

Change the width of bar chart by ratio.

max + + +number + + + + + + + <optional>
+ + + +
+ +

The maximum width value for ratio.

+ +
+ +
zerobased + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Set if min or max value will be 0 on bar chart.

+ +
+ + + + + + +
+

Set bar options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
bar: {
+     // make bar shape to be positioned over the other shape elements
+     front: true,
+
+     // remove nullish data on bar indices postions
+     indices: {
+         removeNull: true
+     },
+
+     // will generate follwing linearGradient:
+     // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient
+     // <linearGradient x1="0" x2="0" y1="0" y2="1">
+     //    <stop offset="0" stop-color="$DATA_COLOR" stop-opacity="1"></stop>
+     //    <stop offset="1" stop-color="$DATA_COLOR" stop-opacity="0"></stop>
+     // </linearGradient>
+     linearGradient: true,
+
+     // Or customized gradient
+     linearGradient: {
+     	x: [0, 0],  // x1, x2 attributes
+     	y: [0, 0],  // y1, y2 attributes
+     	stops: [
+     	  // offset, stop-color, stop-opacity
+     	  [0, "#7cb5ec", 1],
+
+     	  // setting 'null' for stop-color, will set its original data color
+     	  [0.5, null, 0],
+
+     	  // setting 'function' for stop-color, will pass data id as argument.
+     	  // It should return color string or null value
+     	  [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0],
+     	]
+     },
+
+     // remove nullish da
+     overlap: true,
+
+     padding: 1,
+
+     // bar radius
+     radius: 10,
+     // or
+     radius: {
+         ratio: 0.5
+     }
+
+     label: {
+         // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the y Axis domain range value.
+         // if data value is below than 0.1, text label will be hidden.
+         threshold: 0.1,
+     },
+
+     // will not have offset between each bar elements for interaction
+     sensitivity: 0,
+
+     width: 10,
+
+     // or
+     width: {
+         ratio: 0.2,
+         max: 20
+     },
+
+     // or specify width per dataset
+     width: {
+         data1: 20,
+         data2: {
+             ratio: 0.2,
+             max: 20
+         }
+     },
+
+     zerobased: false
+ }
+ + + + + +

(static) bindto

+ + + + + +
+ +
Description:
+
  • Specify the CSS selector or the element which the chart will be set to. D3 selection object can be specified also.
    +If other chart is set already, it will be replaced with the new one (only one chart can be set in one element).

    +
      +
    • NOTE: In case of element doesn't exist or not specified, will add a <div> element to the body.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • #chart
  • +
+ + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
bindto + + +string +| + +HTMLElement +| + +d3.selection +| + +object + + + + + + + <optional>
+ + + +
+ + "#chart" + +

Specify the element where chart will be drawn.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
element + + +string +| + +HTMLElement +| + +d3.selection + + + + + + + + + + + "#chart" + +

Specify the element where chart will be drawn.

classname + + +string + + + + + + + <optional>
+ + + +
+ + bb + +

Specify the class name of bind element.
+NOTE: When class name isn't bb, then you also need to update the default CSS to be rendered correctly.

+ +
+ + + + + + +
+

Specify the CSS selector or the element which the chart will be set to. D3 selection object can be specified also.
+If other chart is set already, it will be replaced with the new one (only one chart can be set in one element).

+
    +
  • NOTE: In case of element doesn't exist or not specified, will add a <div> element to the body.
  • +
+
+ + + + + + + +
Example
+ +
bindto: "#myContainer"
+
+// or HTMLElement
+bindto: document.getElementById("myContainer")
+
+// or D3 selection object
+bindto: d3.select("#myContainer")
+
+// or to change default classname
+bindto: {
+   element: "#chart",
+   classname: "bill-board"  // ex) <div id='chart' class='bill-board'>
+}
+ + + + + +

(static) boost :object

+ + + + + +
+ +
Description:
+
  • Set boost options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
boost + + +object + + + + +

boost object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
useCssRule + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Avoid setting inline styles for each shape elements.

+
    +
  • NOTE: +
      +
    • Will append <style> to the head tag and will add shpes' CSS rules dynamically.
    • +
    • For now, covers colors related properties (fill, stroke, etc.) only.
    • +
    +
  • +
useWorker + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Use Web Worker as possible for processing.

+
    +
  • NOTE: +
      +
    • For now, only applies for data conversion at the initial time.
    • +
    • As of Web Worker's async nature, handling chart instance synchrously is not recommended.
    • +
    +
  • +
+ +
+ + + + + + +
+

Set boost options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
boost: {
+     useCssRule: true,
+     useWorker: false
+ }
+ + + + + +

(static) bubble :object

+ + + + + +
+ +
Description:
+
  • Set bubble options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
bubble + + +object + + + + +

bubble object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
maxR + + +number +| + +function + + + + + + + <optional>
+ + + +
+ + 35 + +

Set the max bubble radius value

zerobased + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set if min or max value will be 0 on bubble chart.

+ +
+ + + + + + +
+

Set bubble options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
bubble: {
+     // ex) If 100 is the highest value among data bound, the representation bubble of 100 will have radius of 50.
+     // And the lesser will have radius relatively from tha max value.
+     maxR: 50,
+
+     // or set radius callback
+     maxR: function(d) {
+         // ex. of d param - {x: Fri Oct 06 2017 00:00:00 GMT+0900, value: 80, id: "data2", index: 5}
+         ...
+         return Math.sqrt(d.value * 2);
+     },
+     zerobased: false
+ }
+ + + + + +

(static) candlestick :object

+ + + + + +
+ +
Description:
+
  • Set candlestick options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
candlestick + + +object + + + + +

Candlestick object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
width + + +number + + + + + + + <optional>
+ + + +

Change the width.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
ratio + + +number + + + + + + + <optional>
+ + + +
+ + 0.6 + +

Change the width by ratio.

max + + +number + + + + + + + <optional>
+ + + +
+ +

The maximum width value for ratio.

dataname + + +number + + + + + + + <optional>
+ + + +
+ +

Change the width for indicated dataset only.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
ratio + + +number + + + + + + + <optional>
+ + + +
+ + 0.6 + +

Change the width of bar chart by ratio.

max + + +number + + + + + + + <optional>
+ + + +
+ +

The maximum width value for ratio.

+ +
+ +
color + + +object + + + + + + + <optional>
+ + + +

Color setting.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
down + + +string +| + +object + + + + + + + <optional>
+ + + +

Change down(bearish) value color.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
dataname + + +string + + + + + + + <optional>
+ + + +

Change down value color for indicated dataset only.

+ +
+ +
+ +
+ + + + + + +
+

Set candlestick options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
candlestick: {
+     width: 10,
+
+     // or
+     width: {
+        	ratio: 0.2,
+        	max: 20
+     },
+
+     // or specify width per dataset
+     width: {
+        	data1: 20,
+        	data2: {
+        	    ratio: 0.2,
+        		max: 20
+        	}
+     },
+     color: {
+ 	  	// spcify bearish color
+ 	  	down: "red",
+
+ 	  	// or specify color per dataset
+ 	  	down: {
+ 	  		data1: "red",
+ 	  		data2: "blue",
+ 	  	}
+     }
+ }
+ + + + + +

(static) clipPath :boolean

+ + + + + +
+ +
Description:
+
  • Set 'clip-path' attribute for chart element

    +
      +
    • NOTE:
    • +
    +
    +

    When is false, chart node element is positioned after the axis node in DOM tree hierarchy. +Is to make chart element positioned over axis element.

    +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set 'clip-path' attribute for chart element

+
    +
  • NOTE:
  • +
+
+

When is false, chart node element is positioned after the axis node in DOM tree hierarchy. +Is to make chart element positioned over axis element.

+
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
// don't set 'clip-path' attribute
+clipPath: false
+ + + + + +

(static) color :object

+ + + + + +
+ +
Description:
+
  • Set color of the data values

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
color + + +object + + + + +

color object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
onover + + +string +| + +object +| + +function + + + + + + + <optional>
+ + + +
+ +

Set the color value for each data point when mouse/touch onover event occurs.

pattern + + +Array +| + +null + + + + + + + <optional>
+ + + +
+ + [] + +

Set custom color pattern. Passing null will not set a color for these elements, which requires the usage of custom CSS-based theming to work.

tiles + + +function + + + + + + + <optional>
+ + + +
+ +

if defined, allows use svg's patterns to fill data area. It should return an array of SVGPatternElement.

+
    +
  • NOTE: The pattern element's id will be defined as bb-colorize-pattern-$COLOR-VALUE.
    +ex. When color pattern value is ['red', '#fff'] and defined 2 patterns,then ids for pattern elements are:
    +
      +
    • bb-colorize-pattern-red
    • +
    • bb-colorize-pattern-fff
    • +
    +
  • +
threshold + + +object + + + + + + + <optional>
+ + + +
+ +

color threshold for gauge and tooltip color

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
unit + + +string + + + + + + + <optional>
+ + + +
+ +

If set to value, the threshold will be based on the data value. Otherwise it'll be based on equation of the threshold.max option value.

values + + +Array + + + + + + + <optional>
+ + + +
+ +

Threshold values for each steps

max + + +number + + + + + + + <optional>
+ + + +
+ + 100 + +

The base value to determine threshold step value condition. When the given value is 15 and max 10, then the value for threshold is 15*100/10.

+ +
+ +
+ + + + + + +
+

Set color of the data values

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
color: {
+     pattern: ["#1f77b4", "#aec7e8", ...],
+
+     // Set colors' patterns
+     // it should return an array of SVGPatternElement
+     tiles: function() {
+        var pattern = document.createElementNS("http://www.w3.org/2000/svg", "pattern");
+        var g = document.createElementNS("http://www.w3.org/2000/svg", "g");
+        var circle1 = document.createElementNS("http://www.w3.org/2000/svg", "circle");
+
+        pattern.setAttribute("patternUnits", "userSpaceOnUse");
+        pattern.setAttribute("width", "32");
+        pattern.setAttribute("height", "32");
+
+        g.style.fill = "#000";
+        g.style.opacity = "0.2";
+
+        circle1.setAttribute("cx", "3");
+        circle1.setAttribute("cy", "3");
+        circle1.setAttribute("r", "3");
+
+        g.appendChild(circle1);
+        pattern.appendChild(g);
+
+        return [pattern];
+     },
+
+     // for threshold usage, pattern values should be set for each steps
+     pattern: ["grey", "green", "yellow", "orange", "red"],
+     threshold: {
+         unit: "value",
+
+         // when value is 20 => 'green', value is 40 => 'orange' will be set.
+         values: [10, 20, 30, 40, 50],
+
+         // the equation for max:
+         // - unit == 'value': max => 30
+         // - unit != 'value': max => value*100/30
+         max: 30
+     },
+
+     // set all data to 'red'
+     onover: "red",
+
+     // set different color for data
+     onover: {
+         data1: "red",
+         data2: "yellow"
+     },
+
+     // will pass data object to the callback
+     onover: function(d) {
+         return d.id === "data1" ? "red" : "green";
+     }
+ }
+ + + + + +

(static) data․axes :object

+ + + + + +
+ +
Description:
+
  • Set y axis the data related to. y and y2 can be used.

    +
      +
    • NOTE: If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + + + +
+ + + + + +
+

Set y axis the data related to. y and y2 can be used.

+
    +
  • NOTE: If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data
  • +
+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  axes: {
+    data1: "y",
+    data2: "y2"
+  }
+}
+ + + + + +

(static) data․classes :object

+ + + + + +
+ +
Description:
+
  • Set custom data class.

    +If this option is specified, the element g for the data has an additional class that has the prefix 'bb-target-' (eg. bb-target-additional-data1-class).

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + + + +
+ + + + + +
+

Set custom data class.

+If this option is specified, the element g for the data has an additional class that has the prefix 'bb-target-' (eg. bb-target-additional-data1-class).

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  classes: {
+    data1: "additional-data1-class",
+    data2: "additional-data2-class"
+  }
+}
+ + + + + +

(static) data․color :function

+ + + + + +
+ +
Description:
+
  • Set color converter function.

    +This option should a function and the specified function receives color (e.g. '#ff0000') and d that has data parameters like id, value, index, etc. And it must return a string that represents color (e.g. '#00ff00').

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set color converter function.

+This option should a function and the specified function receives color (e.g. '#ff0000') and d that has data parameters like id, value, index, etc. And it must return a string that represents color (e.g. '#00ff00').

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  color: function(color, d) { ... }
+}
+ + + + + +

(static) data․colors :object

+ + + + + +
+ +
Description:
+
  • Set color for each data.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + + + +
+ + + + + +
+

Set color for each data.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  colors: {
+    data1: "#ff0000",
+    data2: function(d) {
+       return "#000";
+    }
+    ...
+  }
+}
+ + + + + +

(static) data․columns :Array

+ + + + + +
+ +
Description:
+
  • Load data from a multidimensional array, with each element containing an array consisting of a datum name and associated data values.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Load data from a multidimensional array, with each element containing an array consisting of a datum name and associated data values.

+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  columns: [
+     ["data1", 30, 20, 50, 40, 60, 50],
+     ["data2", 200, 130, 90, 240, 130, 220],
+     ["data3", 300, 200, 160, 400, 250, 250]
+  ]
+}
+
+// for 'bar' type, data can contain:
+// - an array of [start, end] data following the order
+data: {
+  columns: [
+    ["data1", -100, 50, [100, 200], [200, 300]],
+    ["data2", -200, 300, [-100, 100], [-50, -30]],
+  ],
+  type: "bar"
+}
+
+// for 'range' types('area-line-range' or 'area-spline-range'), data should contain:
+// - an array of [high, mid, low] data following the order
+// - or an object with 'high', 'mid' and 'low' key value
+data: {
+  columns: [
+     ["data1",
+         [150, 140, 110],  // or {high:150, mid: 140, low: 110}
+         [150, 140, 110],
+         [150, 140, 110]
+     ]
+  ],
+  type: "area-line-range"
+}
+
+// for 'bubble' type, data can contain dimension value:
+// - an array of [y, z] data following the order
+// - or an object with 'y' and 'z' key value
+// 'y' is for y axis coordination and 'z' is the bubble radius value
+data: {
+  columns: [
+     ["data1",
+         [10, 140],  // or {y:10, z: 140}
+         [100, 30],
+         [50, 100]
+     ]
+  ],
+  type: "bubble"
+}
+
+// for 'canlestick' type, data should contain:
+// - an array of [open, high, low, close, volume(optional)] data following the order
+// - or an object with 'open', 'high', 'low', 'close' and 'value'(optional) key value
+data: {
+  columns: [
+     ["data1",
+         [1000, 1100, 850, 870, 100],  // or {open:1000, high: 1100, low: 870, volume: 100}
+         [870, 1250, 830, 1200]  // 'volume' can be omitted
+     ]
+  ],
+  type: "candlestick"
+}
+ + + + + +

(static) data․empty․label․text :string

+ + + + + +
+ +
Description:
+
  • Set text label to be displayed when there's no data to show.

    +
      +
    • ex. Toggling all visible data to not be shown, unloading all current data, etc.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • ""
  • +
+ + + + + + + +
+ + + + + +
+

Set text label to be displayed when there's no data to show.

+
    +
  • ex. Toggling all visible data to not be shown, unloading all current data, etc.
  • +
+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  empty: {
+    label: {
+      text: "No Data"
+    }
+  }
+}
+ + + + + +

(static) data․filter :function

+ + + + + +
+ +
Description:
+
  • Filter values to be shown +The data value is the same as the returned by .data().

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Filter values to be shown +The data value is the same as the returned by .data().

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  // filter for id value
+  filter: function(v) {
+     // v: [{id: "data1", id_org: "data1", values: [
+     //      {x: 0, value: 130, id: "data2", index: 0}, ...]
+     //    }, ...]
+     return v.id !== "data1";
+  }
+ + + + + +

(static) data․groups :Array

+ + + + + +
+ +
Description:
+
  • Set groups for the data for stacking.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • []
  • +
+ + + + + + + +
+ + + + + +
+

Set groups for the data for stacking.

+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  groups: [
+    ["data1", "data2"],
+    ["data3"]
+  ]
+}
+ + + + + +

(static) data․groupsZeroAs :string

+ + + + + +
+ +
Description:
+
  • Set how zero value will be treated on groups.
    +Possible values:

    +
      +
    • zero: 0 will be positioned at absolute axis zero point.
    • +
    • positive: 0 will be positioned at the top of a stack.
    • +
    • negative: 0 will be positioned at the bottom of a stack.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • "positive"
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set how zero value will be treated on groups.
+Possible values:

+
    +
  • zero: 0 will be positioned at absolute axis zero point.
  • +
  • positive: 0 will be positioned at the top of a stack.
  • +
  • negative: 0 will be positioned at the bottom of a stack.
  • +
+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  groupsZeroAs: "zero" // "positive" or "negative"
+}
+ + + + + +

(static) data․headers :string

+ + + + + +
+ +
Description:
+
  • XHR header value

    +
      +
    • NOTE: Should be used with data.url option
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

XHR header value

+
    +
  • NOTE: Should be used with data.url option
  • +
+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
data: {
+    url: "/data/test.csv",
+    headers: {
+       "Content-Type": "text/xml",
+       ...
+    }
+}
+ + + + + +

(static) data․hide :boolean|Array

+ + + + + +
+ +
Description:
+
  • Hide each data when the chart appears.

    +If true specified, all of data will be hidden. If multiple ids specified as an array, those will be hidden.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

Hide each data when the chart appears.

+If true specified, all of data will be hidden. If multiple ids specified as an array, those will be hidden.

+
+ + + +
Type:
+
    +
  • + +boolean +| + +Array + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  // all of data will be hidden
+  hide: true
+
+  // specified data will be hidden
+  hide: ["data1", ...]
+}
+ + + + + +

(static) data․idConverter :function

+ + + + + +
+ +
Description:
+
  • Converts data id value

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • function(id) { return id; }
  • +
+ + + + + + + +
+ + + + + +
+

Converts data id value

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+   idConverter: function(id) {
+      // when id is 'data1', converts to be 'data2'
+      // 'data2' should be given as the initial data value
+      if (id === "data1") {
+         return "data2";
+      } else {
+         return id;
+      }
+   }
+}
+ + + + + +

(static) data․json :Array

+ + + + + +
+ +
Description:
+
  • Parse a JSON object for data. See also data.keys.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Parse a JSON object for data. See also data.keys.

+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
data: {
+    json: [
+      {name: "www.site1.com", upload: 200, download: 200, total: 400},
+      {name: "www.site2.com", upload: 100, download: 300, total: 400},
+      {name: "www.site3.com", upload: 300, download: 200, total: 500},
+      {name: "www.site4.com", upload: 400, download: 100, total: 500}
+    ],
+    keys: {
+      // case 1: specify 'x' key for category axis
+      x: "name", // 'name' key will be used as category x axis values
+      value: ["upload", "download"]
+
+      // case 2: without 'x' key for non-category axis
+      value: ["upload", "download"]
+    }
+}
+ + + + + +

(static) data․keys :string

+ + + + + +
+ +
Description:
+
  • Choose which JSON object keys correspond to desired data.

    +
      +
    • NOTE: Only for JSON object given as array.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Choose which JSON object keys correspond to desired data.

+
    +
  • NOTE: Only for JSON object given as array.
  • +
+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
data: {
+    json: [
+      {name: "www.site1.com", upload: 200, download: 200, total: 400},
+      {name: "www.site2.com", upload: 100, download: 300, total: 400},
+      {name: "www.site3.com", upload: 300, download: 200, total: 500},
+      {name: "www.site4.com", upload: 400, download: 100, total: 500}
+    ],
+    keys: {
+      // case 1: specify 'x' key for category axis
+      x: "name", // 'name' key will be used as category x axis values
+      value: ["upload", "download"]
+
+      // case 2: without 'x' key for non-category axis
+      value: ["upload", "download"]
+    }
+}
+ + + + + +

(static) data․labels :object

+ + + + + +
+ +
Description:
+
  • Set labels options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +object + + + + +

Data object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
labels + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show or hide labels on each data points

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
centered + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Centerize labels on bar shape. (NOTE: works only for 'bar' type)

format + + +function + + + + + + + <optional>
+ + + +
+ +

Set formatter function for data labels.
+The formatter function receives 4 arguments such as v, id, i, texts and it must return a string (\n character will be used as line break) that will be shown as the label.

+The arguments are:

+
    +
  • v is the value of the data point where the label is shown.
  • +
  • id is the id of the data where the label is shown.
  • +
  • i is the index of the data series point where the label is shown.
  • +
  • texts is the array of whole corresponding data series' text labels.

    +Formatter function can be defined for each data by specifying as an object and D3 formatter function can be set (ex. d3.format('$'))
  • +
backgroundColors + + +string +| + +object + + + + + + + <optional>
+ + + +
+ +

Set label text background colors.

colors + + +string +| + +object +| + +function + + + + + + + <optional>
+ + + +
+ +

Set label text colors.

position + + +object +| + +function + + + + + + + <optional>
+ + + +
+ +

Set each dataset position, relative the original.

+When function is specified, will receives 5 arguments such as type, v, id, i, texts and it must return a position number.

+The arguments are:

+
    +
  • type coordinate type string, which will be 'x' or 'y'.
  • +
  • v is the value of the data point where the label is shown.
  • +
  • id is the id of the data where the label is shown.
  • +
  • i is the index of the data series point where the label is shown.
  • +
  • texts is the array of whole corresponding data series' text labels.

  • +
+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
x + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

x coordinate position, relative the original.

y + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

y coordinate position, relative the original.

+ +
rotate + + +object + + + + + + + <optional>
+ + + +
+ +

Rotate label text. Specify degree value in a range of 0 ~ 360.

+
    +
  • NOTE: Depend on rotate value, text position need to be adjusted manually(using data.labels.position option) to be shown nicely.
  • +
+ +
+ +
+ + + + + + +
+

Set labels options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  labels: true,
+
+  // or set specific options
+  labels: {
+    format: function(v, id, i, texts) {
+        ...
+        // to multiline, return with '\n' character
+        return "Line1\nLine2";
+    },
+
+    // it's possible to set for each data
+    format: {
+        data1: function(v, id, i, texts) { ... },
+        ...
+    },
+
+    // align text to center of the 'bar' shape (works only for 'bar' type)
+    centered: true,
+
+    // apply backgound color for label texts
+    backgroundColors: "red",
+
+    // set differenct backround colors per dataset
+    backgroundColors: {
+         data1: "green",
+         data2: "yellow"
+    }
+
+    // apply for all label texts
+    colors: "red",
+
+    // set different colors per dataset
+    // for not specified dataset, will have the default color value
+    colors: {
+       data1: "yellow",
+       data3: "green"
+    },
+
+    // call back for label text color
+    colors: function(color, d) {
+        // color: the default data label color string
+        // data: ex) {x: 0, value: 200, id: "data3", index: 0}
+        ....
+        return d.value > 200 ? "cyan" : color;
+    },
+
+    // return x, y coordinate position
+    // apt to handle each text position manually
+    position: function(type, v, id, i, texts) {
+        ...
+        return type == "x" ? 10 : 20;
+    },
+
+    // set x, y coordinate position
+    position: {
+       x: -10,
+       y: 10
+    },
+
+    // or set x, y coordinate position by each dataset
+    position: {
+       data1: {x: 5, y: 5},
+       data2: {x: 10, y: -20}
+    },
+
+	   // rotate degree for label text
+    rotate: 90
+  }
+}
+ + + + + +

(static) data․mimeType :string

+ + + + + +
+ +
Description:
+
  • Used if loading JSON via data.url.

    +
      +
    • Available Values: +
        +
      • json
      • +
      • csv
      • +
      • tsv
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • csv
  • +
+ + + + + + + +
+ + + + + +
+

Used if loading JSON via data.url.

+
    +
  • Available Values: +
      +
    • json
    • +
    • csv
    • +
    • tsv
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
data: {
+    mimeType: "json"
+}
+ + + + + +

(static) data․names :object

+ + + + + +
+ +
Description:
+
  • Set custom data name. +If a name is set to null, the series is omitted from the legend.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set custom data name. +If a name is set to null, the series is omitted from the legend.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  names: {
+    data1: "Data Name 1",
+    data2: "Data Name 2"
+  }
+}
+ + + + + +

(static) data․onclick :function

+ + + + + +
+ +
Description:
+
  • Set a callback for click event on each data point.

    +This callback will be called when each data point clicked and will receive d and element as the arguments.

    +
      +
    • d is the data clicked and element is the element clicked.
    • +
    • element is the current interacting svg element.
    • +
    • In this callback, this will be the Chart object.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • function() {}
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback for click event on each data point.

+This callback will be called when each data point clicked and will receive d and element as the arguments.

+
    +
  • d is the data clicked and element is the element clicked.
  • +
  • element is the current interacting svg element.
  • +
  • In this callback, this will be the Chart object.
  • +
+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+    onclick: function(d, element) {
+       // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"}
+       // element - <circle>
+       ...
+    }
+}
+ + + + + +

(static) data․onhidden :function

+ + + + + +
+ +
Description:
+
  • Set a callback for when data is hidden.
    +The callback will receive hidden data ids in array.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback for when data is hidden.
+The callback will receive hidden data ids in array.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+   onhidden: function(ids) {
+     // ids - ["data1", "data2", ...]
+     ...
+   }
+ }
+ + + + + +

(static) data․onmax :function

+ + + + + +
+ +
Description:
+
  • Set a callback for maximum data

    +
      +
    • NOTE: For 'area-line-range' and 'area-spline-range', mid data will be taken for the comparison
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set a callback for maximum data

+
    +
  • NOTE: For 'area-line-range' and 'area-spline-range', mid data will be taken for the comparison
  • +
+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
onmax: function(data) {
+   // data - ex) [{x: 3, value: 400, id: "data1", index: 3}, ... ]
+   ...
+ }
+ + + + + +

(static) data․onmin :function

+ + + + + +
+ +
Description:
+
  • Set a callback for minimum data

    +
      +
    • NOTE: For 'area-line-range' and 'area-spline-range', mid data will be taken for the comparison
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set a callback for minimum data

+
    +
  • NOTE: For 'area-line-range' and 'area-spline-range', mid data will be taken for the comparison
  • +
+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
onmin: function(data) {
+   // data - ex) [{x: 3, value: 400, id: "data1", index: 3}, ... ]
+   ...
+ }
+ + + + + +

(static) data․onout :function

+ + + + + +
+ +
Description:
+
  • Set a callback for mouse/touch out event on each data point.

    +This callback will be called when mouse cursor or via touch moves out each data point and will receive d as the argument.

    +
      +
    • d is the data where mouse cursor moves out.
    • +
    • element is the current interacting svg element.
    • +
    • In this callback, this will be the Chart object.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • function() {}
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback for mouse/touch out event on each data point.

+This callback will be called when mouse cursor or via touch moves out each data point and will receive d as the argument.

+
    +
  • d is the data where mouse cursor moves out.
  • +
  • element is the current interacting svg element.
  • +
  • In this callback, this will be the Chart object.
  • +
+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+    onout: function(d, element) {
+       // d - ex) {x: 4, value: 150, id: "data1", index: 4}
+       // element - <circle>
+       ...
+    }
+}
+ + + + + +

(static) data․onover :function

+ + + + + +
+ +
Description:
+
  • Set a callback for mouse/touch over event on each data point.

    +This callback will be called when mouse cursor or via touch moves onto each data point and will receive d and element as the argument.

    +
      +
    • d is the data where mouse cursor moves onto.
    • +
    • element is the current interacting svg element.
    • +
    • In this callback, this will be the Chart object.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • function() {}
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback for mouse/touch over event on each data point.

+This callback will be called when mouse cursor or via touch moves onto each data point and will receive d and element as the argument.

+
    +
  • d is the data where mouse cursor moves onto.
  • +
  • element is the current interacting svg element.
  • +
  • In this callback, this will be the Chart object.
  • +
+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+    onover: function(d, element) {
+       // d - ex) {x: 4, value: 150, id: "data1", index: 4}
+       // element - <circle>
+       ...
+    }
+}
+ + + + + +

(static) data․onselected :function

+ + + + + +
+ +
Description:
+
  • Set a callback for on data selection.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • function() {}
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback for on data selection.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+    onselected: function(d, element) {
+       // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"}
+       // element - <circle>
+       ...
+   }
+}
+ + + + + +

(static) data․onshown :function

+ + + + + +
+ +
Description:
+
  • Set a callback for when data is shown.
    +The callback will receive shown data ids in array.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback for when data is shown.
+The callback will receive shown data ids in array.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+   onshown: function(ids) {
+     // ids - ["data1", "data2", ...]
+     ...
+   }
+ }
+ + + + + +

(static) data․onunselected :function

+ + + + + +
+ +
Description:
+
  • Set a callback for on data un-selection.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • function() {}
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback for on data un-selection.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+    onunselected: function(d, element) {
+       // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"}
+       // element - <circle>
+       ...
+   }
+}
+ + + + + +

(static) data․order :string|function|null

+ + + + + +
+ +
Description:
+
  • This option changes the order of stacking data and pieces of pie/donut.

    +
      +
    • If null specified, it will be the order the data loaded.
    • +
    • If function specified, it will be used as Array.sort compareFunction

    • +
    +

    Available Values:

    +
      +
    • desc: In descending order
    • +
    • asc: In ascending order
    • +
    • null: It keeps the data load order
    • +
    • function(data1, data2) { ... }: Array.sort compareFunction
    • +
    +

    NOTE: order function, only works for Axis based types & Arc types, except Radar type.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • desc
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

This option changes the order of stacking data and pieces of pie/donut.

+
    +
  • If null specified, it will be the order the data loaded.
  • +
  • If function specified, it will be used as Array.sort compareFunction

  • +
+

Available Values:

+
    +
  • desc: In descending order
  • +
  • asc: In ascending order
  • +
  • null: It keeps the data load order
  • +
  • function(data1, data2) { ... }: Array.sort compareFunction
  • +
+

NOTE: order function, only works for Axis based types & Arc types, except Radar type.

+
+ + + +
Type:
+
    +
  • + +string +| + +function +| + +null + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  // in descending order (default)
+  order: "desc"
+
+  // in ascending order
+  order: "asc"
+
+  // keeps data input order
+  order: null
+
+  // specifying sort function
+  order: function(a, b) {
+      // param data passed format
+      // {
+      //   id: "data1", id_org: "data1", values: [
+      //      {x: 5, value: 250, id: "data1", index: 5, name: "data1"},
+      //       ...
+      //   ]
+      // }
+
+      const reducer = (p, c) => p + Math.abs(c.value);
+      const aSum = a.values.reduce(reducer, 0);
+      const bSum = b.values.reduce(reducer, 0);
+
+      // ascending order
+      return aSum - bSum;
+
+      // descending order
+      // return bSum - aSum;
+  }
+}
+ + + + + +

(static) data․regions :object

+ + + + + +
+ +
Description:
+
  • Define regions for each data.
    +The values must be an array for each data and it should include an object that has start, end and style.

    +
      +
    • The object type should be as: +
        +
      • start {number}: Start data point number. If not set, the start will be the first data point.
      • +
      • [end] {number}: End data point number. If not set, the end will be the last data point.
      • +
      • [style.dasharray="2 2"] {object}: The first number specifies a distance for the filled area, and the second a distance for the unfilled area.
      • +
      +
    • +
    • NOTE: Currently this option supports only line chart and dashed style. If this option specified, the line will be dashed only in the regions.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + + + +
+ + + + + +
+

Define regions for each data.
+The values must be an array for each data and it should include an object that has start, end and style.

+
    +
  • The object type should be as: +
      +
    • start {number}: Start data point number. If not set, the start will be the first data point.
    • +
    • [end] {number}: End data point number. If not set, the end will be the last data point.
    • +
    • [style.dasharray="2 2"] {object}: The first number specifies a distance for the filled area, and the second a distance for the unfilled area.
    • +
    +
  • +
  • NOTE: Currently this option supports only line chart and dashed style. If this option specified, the line will be dashed only in the regions.
  • +
+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  regions: {
+    data1: [{
+        start: 1,
+        end: 2,
+        style: {
+            dasharray: "5 2"
+        }
+    }, {
+        start: 3
+    }],
+    ...
+  }
+}
+ + + + + +

(static) data․rows :Array

+ + + + + +
+ +
Description:
+
  • Load data from a multidimensional array, with the first element containing the data names, the following containing related data in that order.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Load data from a multidimensional array, with the first element containing the data names, the following containing related data in that order.

+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  rows: [
+    ["A", "B", "C"],
+    [90, 120, 300],
+    [40, 160, 240],
+    [50, 200, 290],
+    [120, 160, 230],
+    [80, 130, 300],
+    [90, 220, 320]
+  ]
+}
+
+// for 'bar' type, data can contain:
+// - an array of [start, end] data following the order
+data: {
+  rows: [
+     ["data1", "data2"],
+     [[100, 150], 120],
+     [[200, 300], 55],
+     [[-400, 500], 60]
+  ],
+  type: "bar"
+}
+
+// for 'range' types('area-line-range' or 'area-spline-range'), data should contain:
+// - an array of [high, mid, low] data following the order
+// - or an object with 'high', 'mid' and 'low' key value
+data: {
+  rows: [
+     ["data1", "data2"],
+     [
+       // or {high:150, mid: 140, low: 110}, 120
+       [150, 140, 110], 120
+     ],
+     [[155, 130, 115], 55],
+     [[160, 135, 120], 60]
+  ],
+  types: {
+      data1: "area-line-range",
+      data2: "line"
+  }
+}
+
+// for 'bubble' type, data can contain dimension value:
+// - an array of [y, z] data following the order
+// - or an object with 'y' and 'z' key value
+// 'y' is for y axis coordination and 'z' is the bubble radius value
+data: {
+  rows: [
+     ["data1", "data2"],
+     [
+       // or {y:10, z: 140}, 120
+       [10, 140], 120
+     ],
+     [[100, 30], 55],
+     [[50, 100], 60]
+  ],
+  types: {
+      data1: "bubble",
+      data2: "line"
+  }
+}
+
+// for 'canlestick' type, data should contain:
+// - an array of [open, high, low, close, volume(optional)] data following the order
+// - or an object with 'open', 'high', 'low', 'close' and 'value'(optional) key value
+data: {
+  rows: [
+     ["data1", "data2"],
+		[
+			// open, high, low, close, volume (optional)
+			{open: 1300, high: 1369, low: 1200, close: 1339, volume: 100},
+			[1000, 1100, 850, 870]
+		],
+		[
+			{open: 1348, high: 1371, low: 1271, close: 1320},
+			[870, 1250, 830, 1200, 50]
+		]
+  ],
+  type: "candlestick"
+}
+ + + + + +

(static) data․selection․draggable :boolean

+ + + + + +
+ +
Description:
+
  • Enable to select data points by dragging. +If this option set true, data points can be selected by dragging.

    +
      +
    • NOTE: If this option set true, scrolling on the chart will be disabled because dragging event will handle the event.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

Enable to select data points by dragging. +If this option set true, data points can be selected by dragging.

+
    +
  • NOTE: If this option set true, scrolling on the chart will be disabled because dragging event will handle the event.
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
data: {
+   selection: {
+      draggable: true
+  }
+}
+ + + + + +

(static) data․selection․enabled :boolean

+ + + + + +
+ +
Description:
+
  • Set data selection enabled

    +If this option is set true, we can select the data points and get/set its state of selection by API (e.g. select, unselect, selected).

    +
      +
    • NOTE: for ESM imports, needs to import 'selection' exports and instantiate it by calling selection(). +
        +
      • enabled: selection()
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set data selection enabled

+If this option is set true, we can select the data points and get/set its state of selection by API (e.g. select, unselect, selected).

+
    +
  • NOTE: for ESM imports, needs to import 'selection' exports and instantiate it by calling selection(). +
      +
    • enabled: selection()
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Examples
+ +
data: {
+   selection: {
+      enabled: true
+   }
+}
+ +
// importing ESM
+import bb, {selection} from "billboard.js";
+
+data: {
+   selection: {
+      enabled: selection(),
+      ...
+   }
+}
+ + + + + +

(static) data․selection․grouped :boolean

+ + + + + +
+ +
Description:
+
  • Set grouped selection enabled.

    +If this option set true, multiple data points that have same x value will be selected by one selection.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + + + +
+ + + + + +
+

Set grouped selection enabled.

+If this option set true, multiple data points that have same x value will be selected by one selection.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
data: {
+   selection: {
+      grouped: true
+   }
+}
+ + + + + +

(static) data․selection․isselectable :function

+ + + + + +
+ +
Description:
+
  • Set a callback for each data point to determine if it's selectable or not.

    +The callback will receive d as an argument and it has some parameters like id, value, index. This callback should return boolean.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • function() { return true; }
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback for each data point to determine if it's selectable or not.

+The callback will receive d as an argument and it has some parameters like id, value, index. This callback should return boolean.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
data: {
+   selection: {
+      isselectable: function(d) { ... }
+   }
+}
+ + + + + +

(static) data․selection․multiple :boolean

+ + + + + +
+ +
Description:
+
  • Set multiple data points selection enabled.

    +If this option set true, multile data points can have the selected state at the same time. If false set, only one data point can have the selected state and the others will be unselected when the new data point is selected.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Set multiple data points selection enabled.

+If this option set true, multile data points can have the selected state at the same time. If false set, only one data point can have the selected state and the others will be unselected when the new data point is selected.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
data: {
+   selection: {
+      multiple: false
+   }
+}
+ + + + + +

(static) data․stack․normalize :boolean

+ + + + + +
+ +
Description:
+
  • Set the stacking to be normalized

    +
      +
    • NOTE: +
        +
      • For stacking, 'data.groups' option should be set
      • +
      • y Axis will be set in percentage value (0 ~ 100%)
      • +
      • Must have postive values
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • false
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set the stacking to be normalized

+
    +
  • NOTE: +
      +
    • For stacking, 'data.groups' option should be set
    • +
    • y Axis will be set in percentage value (0 ~ 100%)
    • +
    • Must have postive values
    • +
    +
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  stack: {
+     normalize: true
+  }
+}
+ + + + + +

(static) data․type :string

+ + + + + +
+ +
Description:
+
  • Set chart type at once.

    +If this option is specified, the type will be applied to every data. This setting can be overwritten by data.types.

    +Available Values:

    +
      +
    • area
    • +
    • area-line-range
    • +
    • area-spline
    • +
    • area-spline-range
    • +
    • area-step
    • +
    • bar
    • +
    • bubble
    • +
    • candlestick
    • +
    • donut
    • +
    • funnel
    • +
    • gauge
    • +
    • line
    • +
    • pie
    • +
    • polar
    • +
    • radar
    • +
    • scatter
    • +
    • spline
    • +
    • step
    • +
    • treemap
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • "line"
    NOTE: When importing shapes by ESM, `line()` should be specified for type.
  • +
+ + + + + + + +
+ + + + + +
+

Set chart type at once.

+If this option is specified, the type will be applied to every data. This setting can be overwritten by data.types.

+Available Values:

+
    +
  • area
  • +
  • area-line-range
  • +
  • area-spline
  • +
  • area-spline-range
  • +
  • area-step
  • +
  • bar
  • +
  • bubble
  • +
  • candlestick
  • +
  • donut
  • +
  • funnel
  • +
  • gauge
  • +
  • line
  • +
  • pie
  • +
  • polar
  • +
  • radar
  • +
  • scatter
  • +
  • spline
  • +
  • step
  • +
  • treemap
  • +
+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Examples
+ +
data: {
+   type: "bar"
+}
+ +
// Generate chart by importing ESM
+// Import types to be used only, where this will make smaller bundle size.
+import bb, {
+  area,
+  areaLineRange,
+  areaSpline,
+  areaSplineRange,
+  areaStep,
+  bar,
+  bubble,
+  candlestick,
+  donut,
+  funnel,
+  gauge,
+  line,
+  pie,
+  polar,
+  radar,
+  scatter,
+  spline,
+  step,
+  treemap
+}
+
+bb.generate({
+  ...,
+  data: {
+    type: bar()
+  }
+});
+ + + + + +

(static) data․types :object

+ + + + + +
+ +
Description:
+
  • Set chart type for each data.
    +This setting overwrites data.type setting.

    +
      +
    • NOTE: radar and treemap type can't be combined with other types.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + + + +
+ + + + + +
+

Set chart type for each data.
+This setting overwrites data.type setting.

+
    +
  • NOTE: radar and treemap type can't be combined with other types.
  • +
+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Examples
+ +
data: {
+  types: {
+    data1: "bar",
+    data2: "spline"
+  }
+}
+ +
// Generate chart by importing ESM
+// Import types to be used only, where this will make smaller bundle size.
+import bb, {
+  area,
+  areaLineRange,
+  areaSpline,
+  areaSplineRange,
+  areaStep,
+  bar,
+  bubble,
+  candlestick,
+  donut,
+  funnel,
+  gauge,
+  line,
+  pie,
+  polar,
+  radar,
+  scatter,
+  spline,
+  step,
+  treemap
+}
+
+bb.generate({
+  ...,
+  data: {
+    types: {
+      data1: bar(),
+      data1: spline()
+    }
+  }
+});
+ + + + + +

(static) data․url :string

+ + + + + +
+ +
Description:
+
  • Load a CSV or JSON file from a URL. NOTE that this will not work if loading via the "file://" protocol as the most browsers will block XMLHTTPRequests.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Load a CSV or JSON file from a URL. NOTE that this will not work if loading via the "file://" protocol as the most browsers will block XMLHTTPRequests.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
data: {
+    url: "/data/test.csv"
+}
+ + + + + +

(static) data․x :string

+ + + + + +
+ +
Description:
+
  • Specify the key of x values in the data.

    +We can show the data with non-index x values by this option. This option is required when the type of x axis is timeseries. If this option is set on category axis, the values of the data on the key will be used for category names.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Specify the key of x values in the data.

+We can show the data with non-index x values by this option. This option is required when the type of x axis is timeseries. If this option is set on category axis, the values of the data on the key will be used for category names.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  x: "date"
+}
+ + + + + +

(static) data․xFormat :string

+ + + + + +
+ +
Description:
+
  • Set a format specifier to parse string specifed as x.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • %Y-%m-%d
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Set a format specifier to parse string specifed as x.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
data: {
+   x: "x",
+   columns: [
+       ["x", "01012019", "02012019", "03012019"],
+       ["data1", 30, 200, 100]
+   ],
+   // Format specifier to parse as datetime for given 'x' string value
+   xFormat: "%m%d%Y"
+},
+axis: {
+   x: {
+       type: "timeseries"
+   }
+}
+ + + + + +

(static) data․xLocaltime :boolean

+ + + + + +
+ +
Description:
+
  • Set localtime format to parse x axis.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + + + +
+ + + + + +
+

Set localtime format to parse x axis.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  xLocaltime: false
+}
+ + + + + +

(static) data․xSort :boolean

+ + + + + +
+ +
Description:
+
  • Sort on x axis.

    +
      +
    • NOTE: This option works for lineish(area/line/spline/step) types only.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • true
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Sort on x axis.

+
    +
  • NOTE: This option works for lineish(area/line/spline/step) types only.
  • +
+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  xSort: false,
+  x: "x",
+  columns: [
+    // The line graph will start to be drawn following the x axis sequence
+    // Below data, wil start drawing x=1: 200, x=2: 300, x=3: 100
+    ["x", 3, 1, 2],
+    ["data1", 100, 200, 300]
+  ]
+}
+ + + + + +

(static) data․xs :object

+ + + + + +
+ +
Description:
+
  • Specify the keys of the x values for each data.

    +This option can be used if we want to show the data that has different x values.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • {}
  • +
+ + + + + + + +
+ + + + + +
+

Specify the keys of the x values for each data.

+This option can be used if we want to show the data that has different x values.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
data: {
+  xs: {
+     data1: "x1",
+     data2: "x2"
+  }
+}
+ + + + + +

(static) donut :object

+ + + + + +
+ +
Description:
+
  • Set donut options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
donut + + +object + + + + +

Donut object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
label.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide label on each donut piece.

label.format + + +function + + + + + + + <optional>
+ + + +
+ +

Set formatter for the label on each donut piece.

label.threshold + + +number + + + + + + + <optional>
+ + + +
+ + 0.05 + +

Set threshold ratio to show/hide labels.

label.ratio + + +number +| + +function + + + + + + + <optional>
+ + + +
+ +

Set ratio of labels position.

expand + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Enable or disable expanding donut pieces.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
rate + + +number + + + + + + + <optional>
+ + + +
+ + 0.98 + +

Set expand rate.

duration + + +number + + + + + + + <optional>
+ + + +
+ + 50 + +

Set expand transition time in ms.

+ +
width + + +number + + + + + + + <optional>
+ + + +
+ +

Set width of donut chart.

title + + +string + + + + + + + <optional>
+ + + +
+ + "" + +

Set title of donut chart. Use \n character for line break.

+
    +
  • NOTE: +
      +
    • When arc.needle.show=true is set, special template {=NEEDLE_VALUE} can be used inside the title text to show current needle value.
    • +
    +
  • +
padAngle + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set padding between data.

startingAngle + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set starting angle where data draws.

+ +
+ + + + + + +
+

Set donut options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
donut: {
+     label: {
+         show: false,
+         format: function(value, ratio, id) {
+             return d3.format("$")(value);
+
+             // to multiline, return with '\n' character
+             // return value +"%\nLine1\n2Line2";
+         },
+
+         // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value.
+         // if data value is below than 0.1, text label will be hidden.
+         threshold: 0.1,
+
+         // set ratio callback. Should return ratio value
+         ratio: function(d, radius, h) {
+         	...
+         	return ratio;
+         },
+         // or set ratio number
+         ratio: 0.5
+     },
+
+     // disable expand transition for interaction
+     expand: false,
+
+     expand: {
+     	// set duration of expand transition to 500ms.
+         duration: 500,
+
+     	// set expand area rate
+         rate: 1
+     },
+
+     width: 10,
+     padAngle: 0.2,
+     startingAngle: 1,
+     title: "Donut Title"
+
+     // when 'arc.needle.show=true' is set, can show current needle value.
+     title: "Needle value:\n{=NEEDLE_VALUE}",
+
+     // title with line break
+     title: "Title1\nTitle2"
+ }
+ + + + + +

(static) funnel :object

+ + + + + +
+ +
Description:
+
  • Set funnel options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
funnel + + +object + + + + +

Funnel object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
neck.width + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set funnel neck width.

neck.height + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set funnel neck height.

neck.width.ratio + + +number + + + + + + + <optional>
+ + + +
+ +

Set funnel neck width in ratio.

neck.height.ratio + + +number + + + + + + + <optional>
+ + + +
+ +

Set funnel neck height in ratio.

+ +
+ + + + + + +
+

Set funnel options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
funnel: {
+     neck: {
+         width: 200,
+         height: 100,
+
+         // or specify as ratio value (relative to the chart size)
+         width: {
+           ratio: 0.5
+         },
+         height: {
+           ratio: 0.5
+         }
+     }
+ }
+ + + + + +

(static) gauge :object

+ + + + + +
+ +
Description:
+
  • Set gauge options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
gauge + + +object + + + + +

Gauge object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
background + + +boolean + + + + + + + <optional>
+ + + +
+ + "" + +

Set background color. (The .bb-chart-arcs-background element)

fullCircle + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show full circle as donut. When set to 'true', the max label will not be showed due to start and end points are same location.

label.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide label on gauge.

label.extents + + +function + + + + + + + <optional>
+ + + +
+ +

Set customized min/max label text.

label.format + + +function + + + + + + + <optional>
+ + + +
+ +

Set formatter for the label on gauge. Label text can be multilined with \n character.
+Will pass following arguments to the given function:

+
    +
  • value {number}: absolute value
  • +
  • ratio {number}: value's ratio
  • +
  • id {string}: data's id value
  • +
label.ratio + + +number +| + +function + + + + + + + <optional>
+ + + +
+ +

Set ratio of labels position.

label.threshold + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set threshold ratio to show/hide labels.

expand + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Enable or disable expanding gauge.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
rate + + +number + + + + + + + <optional>
+ + + +
+ + 0.98 + +

Set expand rate.

duration + + +number + + + + + + + <optional>
+ + + +
+ + 50 + +

Set the expand transition time in milliseconds.

+ +
enforceMinMax + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Enforce to given min/max value.

+
    +
  • When gauge.min=50 and given value is 30, gauge will render as empty value.
  • +
  • When gauge.max=100 and given value is 120, gauge will render till 100, not surpassing max value.
  • +
min + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set min value of the gauge.

max + + +number + + + + + + + <optional>
+ + + +
+ + 100 + +

Set max value of the gauge.

startingAngle + + +number + + + + + + + <optional>
+ + + +
+ + -1 * Math.PI / 2 + +

Set starting angle where data draws.

+

Limitations:

+
    +
  • when gauge.fullCircle=false: +
      +
    • -1 * Math.PI / 2 <= startingAngle <= Math.PI / 2
    • +
    • startingAngle <= -1 * Math.PI / 2 defaults to -1 * Math.PI / 2
    • +
    • startingAngle >= Math.PI / 2 defaults to Math.PI / 2
    • +
    +
  • +
  • when gauge.fullCircle=true: +
      +
    • -1 * Math.PI < startingAngle < Math.PI
    • +
    • startingAngle < -1 * Math.PI defaults to Math.PI
    • +
    • startingAngle > Math.PI defaults to Math.PI
    • +
    +
  • +
arcLength + + +number + + + + + + + <optional>
+ + + +
+ + 100 + +

Set the length of the arc to be drawn in percent from -100 to 100.
+Negative value will draw the arc counterclockwise. Need to be used in conjunction with gauge.fullCircle=true.

+

Limitations:

+
    +
  • -100 <= arcLength (in percent) <= 100
  • +
  • 'arcLength < -100' defaults to -100
  • +
  • 'arcLength > 100' defaults to 100
  • +
title + + +string + + + + + + + <optional>
+ + + +
+ + "" + +

Set title of gauge chart. Use \n character for line break.

+
    +
  • NOTE: +
      +
    • When arc.needle.show=true is set, special template {=NEEDLE_VALUE} can be used inside the title text to show current needle value.
    • +
    +
  • +
units + + +string + + + + + + + <optional>
+ + + +
+ +

Set units of the gauge.

width + + +number + + + + + + + <optional>
+ + + +
+ +

Set width of gauge chart.

type + + +string + + + + + + + <optional>
+ + + +
+ + "single" + +

Set type of gauge to be displayed.

+Available Values:

+
    +
  • single
  • +
  • multi
  • +
arcs.minWidth + + +number + + + + + + + <optional>
+ + + +
+ + 5 + +

Set minimal width of gauge arcs until the innerRadius disappears.

+ +
+ + + + + + +
+

Set gauge options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
gauge: {
+     background: "#eee", // will set 'fill' css prop for '.bb-chart-arcs-background' classed element.
+     fullCircle: false,
+     label: {
+         show: false,
+         format: function(value, ratio, id) {
+             return value;
+
+             // to multiline, return with '\n' character
+             // return value +"%\nLine1\n2Line2";
+         },
+
+          extents: function(value, isMax) {
+             return (isMax ? "Max:" : "Min:") + value;
+         },
+
+         // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value.
+         // if data value is below than 0.1, text label will be hidden.
+         threshold: 0.1,
+
+         // set ratio callback. Should return ratio value
+         ratio: function(d, radius, h) {
+             ...
+             return ratio;
+         },
+         // or set ratio number
+         ratio: 0.5
+     },
+
+     // disable expand transition for interaction
+     expand: false,
+
+     expand: {
+     	// set duration of expand transition to 500ms.
+         duration: 500,
+
+     	// set expand area rate
+         rate: 1
+     },
+
+     // enforce min/max value.
+		// when given value < min, will render as empty value.
+		// when value > max, will render to given max value not surpassing it.
+     enforceMinMax: true,
+
+     min: -100,
+     max: 200,
+     type: "single"  // or 'multi'
+     title: "Title Text",
+
+     // when 'arc.needle.show=true' is set, can show current needle value.
+     title: "Needle value:\n{=NEEDLE_VALUE}",
+
+     units: "%",
+     width: 10,
+     startingAngle: -1 * Math.PI / 2,
+     arcLength: 100,
+     arcs: {
+         minWidth: 5
+     }
+ }
+ + + + + +

(static) grid :object

+ + + + + +
+ +
Description:
+
  • Set related options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
front + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set 'grid & focus lines' to be positioned over grid lines and chart elements.

x + + +object + + + + + + + + + + +

Grid x object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
show + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show grids along x axis.

lines + + +Array + + + + + + + <optional>
+ + + +
+ + [] + +

Show additional grid lines along x axis.
+This option accepts array including object that has value, text, position and class. text, position and class are optional. For position, start, middle and end (default) are available. +If x axis is category axis, value can be category name. If x axis is timeseries axis, value can be date string, Date object and unixtime integer.

+ +
y + + +object + + + + + + + + + + +

Grid y object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
show + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show grids along x axis.

lines + + +Array + + + + + + + <optional>
+ + + +
+ + [] + +

Show additional grid lines along y axis.
+This option accepts array including object that has value, text, position and class.

ticks + + +number + + + + + + + <optional>
+ + + +
+ +

Number of y grids to be shown.

+ +
focus + + +object + + + + + + + + + + +

Grid focus object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
edge + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show edged focus grid line.
NOTE: Available when tooltip.grouped=false option is set.

show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show grid line when focus.

y + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show y coordinate focus grid line.
NOTE: Available when tooltip.grouped=false option is set.

+ +
lines + + +object + + + + + + + + + + +

Grid lines object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
front + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Set grid lines to be positioned over chart elements.

+ +
+ + + + + + +
+

Set related options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
grid: {
+  x: {
+    show: true,
+    lines: [
+      {value: 2, text: "Label on 2"},
+      {value: 5, text: "Label on 5", class: "label-5"},
+      {value: 6, text: "Label on 6", position: "start"}
+    ]
+  },
+  y: {
+    show: true,
+    lines: [
+      {value: 100, text: "Label on 100"},
+      {value: 200, text: "Label on 200", class: "label-200"},
+      {value: 300, text: "Label on 300", position: 'middle'}
+    ],
+    ticks: 5
+  },
+  front: true,
+  focus: {
+     show: false,
+
+     // Below options are available when 'tooltip.grouped=false' option is set
+     edge: true,
+     y: true
+  },
+  lines: {
+     front: false
+  }
+}
+ + + + + +

(static) interaction :object

+ + + + + +
+ +
Description:
+
  • Interaction options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
interaction + + +object + + + + +

Intersection object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
enabled + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Indicate if the chart should have interactions.
+If false is set, all of interactions (showing/hiding tooltip, selection, mouse events, etc) will be disabled.

brighten + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Make brighter for the selected area (ex. 'pie' type data selected area)

inputType.mouse + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

enable or disable mouse interaction

inputType.touch + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

enable or disable touch interaction

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
preventDefault + + +boolean +| + +number + + + + + + + <optional>
+ + + +
+ + false + +

enable or disable to call event.preventDefault on touchstart & touchmove event. It's usually used to prevent document scrolling.

+ +
+ +
+ + + + + + +
+

Interaction options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
interaction: {
+   enabled: false,
+   brighten: false,
+   inputType: {
+       mouse: true,
+       touch: false
+
+       // or declare preventDefault explicitly.
+       // In this case touch inputType is enabled by default
+       touch: {
+           preventDefault: true
+
+           // or threshold pixel value (pixel moved from touchstart to touchmove)
+           preventDefault: 5
+       }
+   }
+}
+ + + + + +

(static) legend :object

+ + + + + +
+ +
Description:
+
  • Legend options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
legend + + +object + + + + +

Legend object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide legend.

hide + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Hide legend +If true given, all legend will be hidden. If string or array given, only the legend that has the id will be hidden.

contents.bindto + + +string +| + +HTMLElement + + + + + + + <optional>
+ + + +
+ +

Set CSS selector or element reference to bind legend items.

+
    +
  • NOTE: Should be used along with legend.contents.template.
  • +
contents.template + + +string +| + +function + + + + + + + <optional>
+ + + +
+ + "<span style='color:#fff;padding:5px;background-color:{=COLOR}'>{=TITLE}</span>" + +

Set item's template.

+
    +
  • If set string value, within template the 'color' and 'title' can be replaced using template-like syntax string: +
      +
    • {=COLOR}: data color value
    • +
    • {=TITLE}: data title value
    • +
    +
  • +
  • If set function value, will pass following arguments to the given function:
  • +
  • title {string}: data's id value
  • +
  • color {string}: color string
  • +
  • data {Array}: data array
  • +
position + + +string + + + + + + + <optional>
+ + + +
+ + bottom + +

Change the position of legend.
+Available values are: bottom, right and inset are supported.

inset + + +object + + + + + + + <optional>
+ + + +
+ + {anchor: 'top-left',x: 10,y: 0,step: undefined} + +

Change inset legend attributes.
+This option accepts object that has the keys anchor, x, y and step.

+
    +
  • anchor decides the position of the legend:
  • +
  • top-left
  • +
  • top-right
  • +
  • bottom-left
  • +
  • bottom-right
  • +
  • x and y:
  • +
  • set the position of the legend based on the anchor.
  • +
  • step:
  • +
  • defines the max step the legend has (e.g. If 2 set and legend has 3 legend item, the legend 2 columns).
  • +
equally + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set to all items have same width size.

padding + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set padding value

item.interaction + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Set legend item interaction.

+
    +
  • NOTE: +
      +
    • This setting will not have effect on .toggle() method.
    • +
    • legend.item.onXXX listener options will work if set, regardless of this option value.
    • +
    +
  • +
+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
dblclick + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set legend item to interact on double click.

+
    +
  • NOTE: +
      +
    • Double clicking will make focused clicked dataseries only, hiding all others. +
        +
      • for single click case, click + altKey(Win)/optionKey(Mac OS) to have same effect.
      • +
      +
    • +
    • To return initial state(which all dataseries are showing), double click current focused legend item again. +
        +
      • for single click case, click + altKey(Win)/optionKey(Mac OS) to have same effect.
      • +
      +
    • +
    • In this case, default click interaction will be disabled.
    • +
    +
  • +
+ +
item.onclick + + +function + + + + + + + <optional>
+ + + +
+ +

Set click event handler to the legend item.

+
    +
  • NOTE: +
      +
    • When set, default click interaction will be disabled.
    • +
    • When interaction.dblclick=true is set, will be called on double click.
    • +
    +
  • +
item.onover + + +function + + + + + + + <optional>
+ + + +
+ +

Set mouse/touch over event handler to the legend item.

+
    +
  • NOTE: When set, default mouseover interaction will be disabled.
  • +
item.onout + + +function + + + + + + + <optional>
+ + + +
+ +

Set mouse/touch out event handler to the legend item.

+
    +
  • NOTE: When set, default mouseout interaction will be disabled.
  • +
item.tile.width + + +number + + + + + + + <optional>
+ + + +
+ + 10 + +

Set width for 'rectangle' legend item tile element.

item.tile.height + + +number + + + + + + + <optional>
+ + + +
+ + 10 + +

Set height for 'rectangle' legend item tile element.

item.tile.r + + +number + + + + + + + <optional>
+ + + +
+ + 5 + +

Set the radius for 'circle' legend item tile type.

item.tile.type + + +string + + + + + + + <optional>
+ + + +
+ + "rectangle" + +

Set legend item shape type.

+
    +
  • Available Values: +
      +
    • circle
    • +
    • rectangle
    • +
    +
  • +
format + + +boolean + + + + + + + <optional>
+ + + +
+ +

Set formatter function for legend text. +The argument:

+
    +
  • id: legend text value. When data.names is specified, will pass from it, otherwise will pass data id.
  • +
tooltip + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show full legend text value using system tooltip(via <title> element).

usePoint + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Whether to use custom points in legend.

+ +
+ + + + + + +
+

Legend options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
legend: {
+     show: true,
+     hide: true,
+     //or hide: "data1"
+     //or hide: ["data1", "data2"]
+     contents: {
+         bindto: "#legend",   // <ul id='legend'></ul>
+
+         // will be as: <li style='background-color:#1f77b4'>data1</li>
+         template: "<li style='background-color:{=COLOR}'>{=TITLE}</li>"
+
+         // or using function
+         template: function(id, color, data) {
+              // if you want omit some legend, return falsy value
+              if (id !== "data1") {
+                   return "<li style='background-color:"+ color +">"+ id +"</li>";
+              }
+         }
+     },
+     position: "bottom",  // bottom, right, inset
+     inset: {
+         anchor: "top-right"  // top-left, top-right, bottom-left, bottom-right
+         x: 20,
+         y: 10,
+         step: 2
+     },
+     equally: false,
+     padding: 10,
+     item: {
+         // will disable default interaction
+         interaction: false,
+
+         // set legend interact on double click
+         // by double clicking, will make focused clicked dataseries only, hiding all others.
+         interaction: {
+           dblclick: true
+         }
+
+         // when set below callback, will disable corresponding default interactions
+         onclick: function(id) { ... },
+         onover: function(id) { ... },
+         onout: function(id) { ... },
+
+         // set tile's size
+         tile: {
+             // set tile type
+             type: "circle"  // or "rectangle" (default)
+
+             // width & height, are only applicable for 'rectangle' legend type
+             width: 15,
+             height: 15
+
+             // radis is only applicable for 'circle' legend type
+             r: 10
+         }
+     },
+     format: function(id) {
+         // set ellipsis string when length is > 5
+         // to get full legend value, combine with 'legend.tooltip=true'
+         if (id.length > 5) {
+           	id = id.substr(0, 5) + "...";
+         }
+
+         return id;
+     },
+     tooltip: true,
+     usePoint: true
+ }
+ + + + + +

(static) line :object

+ + + + + +
+ +
Description:
+
  • Set line options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
line + + +object + + + + +

Line object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
connectNull + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set if null data point will be connected or not.
+If true set, the region of null data will be connected without any data point. If false set, the region of null data will not be connected and get empty.

classes + + +Array + + + + + + + <optional>
+ + + +
+ +

If set, used to set a css class on each line.

step.type + + +boolean + + + + + + + <optional>
+ + + +
+ + step + +

Change step type for step chart.
+Available values:

+
    +
  • step
  • +
  • step-before
  • +
  • step-after
  • +
step.tooltipMatch + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set to true for step-before and step-after types to have cursor/tooltip match to hovered step's point instead of nearest point.

point + + +boolean +| + +Array + + + + + + + <optional>
+ + + +
+ + true + +

Set to false to not draw points on linecharts. Or pass an array of line ids to draw points for.

zerobased + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set if min or max value will be 0 on line chart.

+ +
+ + + + + + +
+

Set line options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
line: {
+     connectNull: true,
+     classes: [
+         "line-class1",
+         "line-class2"
+     ],
+     step: {
+         type: "step-after",
+
+         // to have cursor/tooltip match to hovered step's point instead of nearest point.
+         tooltipMatch: true
+     },
+
+     // hide all data points ('point.show=false' also has similar effect)
+     point: false,
+
+     // show data points for only indicated datas
+     point: [
+         "data1", "data3"
+     ],
+
+     zerobased: false
+ }
+ + + + + +

(static) onafterinit :function

+ + + + + +
+ +
Description:
+
  • Set a callback to execute after the chart is initialized

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback to execute after the chart is initialized

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
onafterinit: function() {
+  this; // chart instance itself
+  ...
+}
+ + + + + +

(static) onbeforeinit :function

+ + + + + +
+ +
Description:
+
  • Set a callback to execute before the chart is initialized

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback to execute before the chart is initialized

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
onbeforeinit: function() {
+  this; // chart instance itself
+  ...
+}
+ + + + + +

(static) onclick :function

+ + + + + +
+ +
Description:
+
  • Set a callback to execute when the chart is clicked.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback to execute when the chart is clicked.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
onclick: function(event) {
+  this; // chart instance itself
+  event; // native event object
+  ...
+}
+ + + + + +

(static) oninit :function

+ + + + + +
+ +
Description:
+
  • Set a callback to execute when the chart is initialized.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback to execute when the chart is initialized.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
oninit: function() {
+  this; // chart instance itself
+  ...
+}
+ + + + + +

(static) onout :function

+ + + + + +
+ +
Description:
+
  • Set a callback to execute when mouse/touch leaves the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback to execute when mouse/touch leaves the chart.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
onout: function(event) {
+  this; // chart instance itself
+  event; // native event object
+  ...
+}
+ + + + + +

(static) onover :function

+ + + + + +
+ +
Description:
+
  • Set a callback to execute when mouse/touch enters the chart.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback to execute when mouse/touch enters the chart.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
onover: function(event) {
+  this; // chart instance itself
+  event; // native event object
+  ...
+}
+ + + + + +

(static) onrendered :function

+ + + + + +
+ +
Description:
+
  • Set a callback which is executed when the chart is rendered. Basically, this callback will be called in each time when the chart is redrawed.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback which is executed when the chart is rendered. Basically, this callback will be called in each time when the chart is redrawed.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
onrendered: function() {
+  this; // chart instance itself
+  ...
+}
+ + + + + +

(static) onresize :function

+ + + + + +
+ +
Description:
+
  • Set a callback to execute when user resizes the screen.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback to execute when user resizes the screen.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
onresize: function() {
+  this; // chart instance itself
+  ...
+}
+ + + + + +

(static) onresized :function

+ + + + + +
+ +
Description:
+
  • Set a callback to execute when screen resize finished.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • undefined
  • +
+ + + + + + + +
+ + + + + +
+

Set a callback to execute when screen resize finished.

+
+ + + +
Type:
+
    +
  • + +function + + + +
  • +
+ + + + + +
Example
+ +
onresized: function() {
+  this; // chart instance itself
+  ...
+}
+ + + + + +

(static) padding :object

+ + + + + +
+ +
Description:
+
  • The padding of the chart element.

    +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
padding + + +object +| + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Set padding of chart, and accepts object or boolean type.

+
    +
  • Object: Specify each side's padding.
  • +
  • false: Remove padding completely and make shape to fully occupy the container element. +
      +
    • In this case, axes and subchart will be hidden.
    • +
    • To adjust some padding from this state, use axis.[x|y].padding option.
    • +
    +
  • +
+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
mode + + +string + + + + + + + <optional>
+ + + +

padding mode

+
    +
  • "fit": Reduce padding as much as possible to make chart fit to the container element for chart types w/axis.
    When specified, all padding values will be relative from fitted value.
  • +
top + + +number + + + + + + + <optional>
+ + + +

padding on the top of chart

right + + +number + + + + + + + <optional>
+ + + +

padding on the right of chart

bottom + + +number + + + + + + + <optional>
+ + + +

padding on the bottom of chart

left + + +number + + + + + + + <optional>
+ + + +

padding on the left of chart

+ +
+ + + + + + +
+

The padding of the chart element.

+ +
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
// remove padding completely.
+padding: false,
+
+padding: {
+  // specifying mode value, will reduce padding and make fit to the container element.
+  mode: "fit"
+
+  // when mode is "fit", all padding values will be relative from fitted value.
+  // so, 0 will be initial fitted value.
+  top: 20,
+  right: 20,
+  bottom: 20,
+  left: 20
+}
+
+// or specify padding value for each side
+padding: {
+  top: 20,
+  right: 20,
+  bottom: 20,
+  left: 20
+}
+ + + + + +

(static) pie :object

+ + + + + +
+ +
Description:
+
  • Set pie options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
pie + + +object + + + + +

Pie object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
label.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide label on each pie piece.

label.format + + +function + + + + + + + <optional>
+ + + +
+ +

Set formatter for the label on each pie piece.

label.ratio + + +number +| + +function + + + + + + + <optional>
+ + + +
+ +

Set ratio of labels position.

label.threshold + + +number + + + + + + + <optional>
+ + + +
+ + 0.05 + +

Set threshold ratio to show/hide labels.

expand + + +boolean +| + +object + + + + + + + <optional>
+ + + +
+ + true + +

Enable or disable expanding pie pieces.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
rate + + +number + + + + + + + <optional>
+ + + +
+ + 0.98 + +

Set expand rate.

duration + + +number + + + + + + + <optional>
+ + + +
+ + 50 + +

Set expand transition time in ms.

+ +
innerRadius + + +number +| + +object + + + + + + + <optional>
+ + + +
+ + 0 + +

Sets the inner radius of pie arc.

outerRadius + + +number +| + +object +| + +undefined + + + + + + + <optional>
+ + + +
+ +

Sets the outer radius of pie arc.

padAngle + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set padding between data.

padding + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Sets the gap between pie arcs.

startingAngle + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set starting angle where data draws.

+ +
+ + + + + + +
+

Set pie options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
pie: {
+     label: {
+         show: false,
+         format: function(value, ratio, id) {
+             return d3.format("$")(value);
+
+             // to multiline, return with '\n' character
+             // return value +"%\nLine1\n2Line2";
+         },
+
+         // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value.
+         // if data value is below than 0.1, text label will be hidden.
+         threshold: 0.1,
+
+         // set ratio callback. Should return ratio value
+         ratio: function(d, radius, h) {
+             ...
+             return ratio;
+         },
+         // or set ratio number
+         ratio: 0.5
+     },
+
+     // disable expand transition for interaction
+     expand: false,
+
+     expand: {
+     	// set duration of expand transition to 500ms.
+         duration: 500,
+
+     	// set expand area rate
+         rate: 1
+     },
+
+     innerRadius: 0,
+
+     // set different innerRadius for each data
+     innerRadius: {
+     	data1: 10,
+     	data2: 0
+     },
+
+     outerRadius: 100,
+
+     // set different outerRadius for each data
+     outerRadius: {
+     	data1: 50,
+     	data2: 100
+     }
+
+     padAngle: 0.1,
+     padding: 0,
+     startingAngle: 1
+ }
+ + + + + +

(static) plugins :Array

+ + + + + +
+ +
Description:
+
  • Set plugins

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+

Set plugins

+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
plugins: [
+   new bb.plugin.stanford({ ... }),
+   new PluginA(),
+   ...
+]
+ + + + + +

(static) point :object

+ + + + + +
+ +
Description:
+
  • Set point options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
point + + +object + + + + +

Point object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Whether to show each point in line.

r + + +number +| + +function + + + + + + + <optional>
+ + + +
+ + 2.5 + +

The radius size of each point.

+
    +
  • NOTE: Disabled for 'bubble' type
  • +
radialGradient + + +boolean +| + +object + + + + + + + <optional>
+ + + +
+ + false + +

Set the radial gradient on point.

+Or customize by giving below object value:

+
    +
  • cx {number}: cx value (default: 0.3)
  • +
  • cy {number}: cy value (default: 0.3)
  • +
  • r {number}: r value (default: 0.7)
  • +
  • stops {Array}: Each item should be having [offset, stop-color, stop-opacity] values. +
      +
    • (default: [[0.1, $DATA_COLOR, 1], [0.9, $DATA_COLOR, 0]])
    • +
    +
  • +
focus.expand.enabled + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Whether to expand each point on focus.

focus.expand.r + + +number + + + + + + + <optional>
+ + + +
+ + point.r*1.75 + +

The radius size of each point on focus.

+
    +
  • NOTE: For 'bubble' type, the default is bubbleSize*1.15
  • +
focus.only + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show point only when is focused.

opacity + + +number +| + +null + + + + + + + <optional>
+ + + +
+ +

Set point opacity value.

+
    +
  • NOTE: +
      +
    • null will make to not set inline 'opacity' css prop.
    • +
    • when no value(or undefined) is set, it defaults to set opacity value according its chart types.
    • +
    +
  • +
sensitivity + + +number +| + +string +| + +function + + + + + + + <optional>
+ + + +
+ + 10 + +

The senstivity value for interaction boundary.

+
    +
  • Available Values: +
      +
    • {number}: Absolute sensitivity value which is the distance from the data point in pixel.
    • +
    • "radius": sensitivity based on point's radius
    • +
    • Function: callback for each point to determine the sensitivity
      sensitivity: function(d) {
      +  // ex. of argument d:
      +  // ==> {x: 2, value: 55, id: 'data3', index: 2, r: 19.820624179302296}
      +
      +  // returning d.r, will make sensitivity same as point's radius value.
      +  return d.r;
      +}
      +
      +
    • +
    +
  • +
select.r + + +number + + + + + + + <optional>
+ + + +
+ + point.r*4 + +

The radius size of each point on selected.

type + + +string + + + + + + + <optional>
+ + + +
+ + "circle" + +

The type of point to be drawn

+
    +
  • NOTE: +
      +
    • If chart has 'bubble' type, only circle can be used.
    • +
    • For IE, non circle point expansions are not supported due to lack of transform support.
    • +
    +
  • +
  • Available Values: +
      +
    • circle
    • +
    • rectangle
    • +
    +
  • +
pattern + + +Array + + + + + + + <optional>
+ + + +
+ + [] + +

The type of point or svg shape as string, to be drawn for each line

+
    +
  • NOTE: +
      +
    • This is an experimental feature and can have some unexpected behaviors.
    • +
    • If chart has 'bubble' type, only circle can be used.
    • +
    • For IE, non circle point expansions are not supported due to lack of transform support.
    • +
    +
  • +
  • Available Values: +
      +
    • circle
    • +
    • rectangle
    • +
    • svg shape tag interpreted as string
      +(ex. <polygon points='2.5 0 0 5 5 5'></polygon>)
    • +
    +
  • +
+ +
+ + + + + + +
+

Set point options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
point: {
+     show: false,
+     r: 5,
+
+     // or customize the radius
+     r: function(d) {
+         ...
+         return r;
+     },
+
+     // will generate follwing radialGradient:
+     // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/radialGradient
+     // <radualGradient cx="0.3" cy="0.3" r="0.7">
+     //    <stop offset="0.1" stop-color="$DATA_COLOR" stop-opacity="1"></stop>
+     //    <stop offset="0.9" stop-color="$DATA_COLOR" stop-opacity="0"></stop>
+     // </radialrGradient>
+     radialGradient: true,
+
+     // Or customized gradient
+     radialGradient: {
+     	cx: 0.3,  // cx attributes
+     	cy: 0.5,  // cy attributes
+     	r: 0.7,  // r attributes
+     	stops: [
+     	  // offset, stop-color, stop-opacity
+     	  [0, "#7cb5ec", 1],
+
+     	  // setting 'null' for stop-color, will set its original data color
+     	  [0.5, null, 0],
+
+     	  // setting 'function' for stop-color, will pass data id as argument.
+     	  // It should return color string or null value
+     	  [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0],
+     	]
+     },
+
+     focus: {
+         expand: {
+             enabled: true,
+             r: 1
+         },
+         only: true
+     },
+
+     // do not set inline 'opacity' css prop setting
+     opacity: null,
+
+     // set every data point's opacity value
+     opacity: 0.7,
+
+     select: {
+         r: 3
+     },
+
+     // having lower value, means how closer to be for interaction
+     sensitivity: 3,
+
+     // sensitivity based on point's radius
+     sensitivity: "radius",
+
+     // callback for each point to determine the sensitivity
+     sensitivity: function(d) {
+	// ex. of argument d:
+	// ==> {x: 2, value: 55, id: 'data3', index: 2, r: 19.820624179302296}
+
+	// returning d.r, will make sensitivity same as point's radius value.
+	return d.r;
+     }
+
+     // valid values are "circle" or "rectangle"
+     type: "rectangle",
+
+     // or indicate as pattern
+     pattern: [
+       "circle",
+       "rectangle",
+       "<polygon points='0 6 4 0 -4 0'></polygon>"
+    ],
+ }
+ + + + + +

(static) polar :object

+ + + + + +
+ +
Description:
+
  • Set polar options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
polar + + +object + + + + +

Polar object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
label.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide label on each polar piece.

label.format + + +function + + + + + + + <optional>
+ + + +
+ +

Set formatter for the label on each polar piece.

label.threshold + + +number + + + + + + + <optional>
+ + + +
+ + 0.05 + +

Set threshold ratio to show/hide labels.

label.ratio + + +number +| + +function + + + + + + + <optional>
+ + + +
+ +

Set ratio of labels position.

level.depth + + +number + + + + + + + <optional>
+ + + +
+ + 3 + +

Set the level depth.

level.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide level.

level.text.backgroundColor + + +string + + + + + + + <optional>
+ + + +
+ + "#fff" + +

Set label text's background color.

level.text.format + + +function + + + + + + + <optional>
+ + + +
+ +

Set format function for the level value.
- Default value: (x) => x % 1 === 0 ? x : x.toFixed(2)

level.text.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide level text.

padAngle + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set padding between data.

padding + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Sets the gap between pie arcs.

startingAngle + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set starting angle where data draws.

+ +
+ + + + + + +
+

Set polar options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
polar: {
+     label: {
+         show: false,
+         format: function(value, ratio, id) {
+             return d3.format("$")(value);
+
+             // to multiline, return with '\n' character
+             // return value +"%\nLine1\n2Line2";
+         },
+
+         // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value.
+         // if data value is below than 0.1, text label will be hidden.
+         threshold: 0.1,
+
+         // set ratio callback. Should return ratio value
+         ratio: function(d, radius, h) {
+             ...
+             return ratio;
+         },
+         // or set ratio number
+         ratio: 0.5
+     },
+     level: {
+         depth: 3,
+         max: 500,
+         show: true,
+         text: {
+             format: function(x) {
+                 return x + "%";
+             },
+             show: true,
+             backgroundColor: "red"
+         }
+     },
+     padAngle: 0.1,
+     padding: 0,
+     startingAngle: 1
+ }
+ + + + + +

(static) radar :object

+ + + + + +
+ +
Description:
+
  • Set radar options

    +
      +
    • NOTE:
    • +
    +
    +

    When x tick text contains \n, it's used as line break.

    +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
radar + + +object + + + + +

Radar object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
axis.max + + +number + + + + + + + <optional>
+ + + +
+ +

The max value of axis. If not given, it'll take the max value from the given data.

axis.line.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide axis line.

axis.text.position.x + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

x coordinate position, relative the original.

axis.text.position.y + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

y coordinate position, relative the original.

axis.text.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide axis text.

direction.clockwise + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set the direction to be drawn.

level.depth + + +number + + + + + + + <optional>
+ + + +
+ + 3 + +

Set the level depth.

level.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide level.

level.text.format + + +function + + + + + + + <optional>
+ + + +
+ +

Set format function for the level value.
- Default value: (x) => x % 1 === 0 ? x : x.toFixed(2)

level.text.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide level text.

size.ratio + + +number + + + + + + + <optional>
+ + + +
+ + 0.87 + +

Set size ratio.

+ +
+ + + + + + +
+

Set radar options

+
    +
  • NOTE:
  • +
+
+

When x tick text contains \n, it's used as line break.

+
+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
radar: {
+     axis: {
+         max: 50,
+         line: {
+             show: false
+         },
+         text: {
+             position: {
+             	x: 0,
+             	y: 0
+             },
+             show: false
+         }
+     },
+     direction: {
+         clockwise: true
+     },
+     level: {
+         show: false,
+         text: {
+             format: function(x) {
+                 return x + "%";
+             },
+             show: true
+         }
+     },
+     size: {
+         ratio: 0.7
+     }
+ }
+ + + + + +

(static) regions :Array

+ + + + + +
+ +
Description:
+
  • Show rectangles inside the chart.

    +This option accepts array including object that has axis, start, end and class. +The keys start, end and class are optional. +axis must be x, y or y2. start and end should be the value where regions start and end. +If not specified, the edge values will be used. +If timeseries x axis, date string, Date object and unixtime integer can be used. +If class is set, the region element will have it as class.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Default Value:
+
    +
  • []
  • +
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + +
+

Show rectangles inside the chart.

+This option accepts array including object that has axis, start, end and class. +The keys start, end and class are optional. +axis must be x, y or y2. start and end should be the value where regions start and end. +If not specified, the edge values will be used. +If timeseries x axis, date string, Date object and unixtime integer can be used. +If class is set, the region element will have it as class.

+
+ + + +
Type:
+
    +
  • + +Array + + + +
  • +
+ + + + + +
Example
+ +
regions: [
+   {
+     axis: "x",
+     start: 1,
+     end: 4,
+     class: "region-1-4",
+     label: {
+     	text: "Region Text",
+     	x: 5,  // position relative of the initial x coordinate
+     	y: 5,  // position relative of the initial y coordinate
+     	color: "red",  // color string
+     	rotated: true  // make text to show in vertical or horizontal
+     }
+   }
+ ]
+ + + + + +

(static) render :object

+ + + + + +
+ +
Description:
+
  • Control the render timing

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
render + + +object + + + + + + + <optional>
+ + + +

render object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
lazy + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Make to not render at initialization (enabled by default when bind element's visibility is hidden).

observe + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Observe bind element's visibility(display or visiblity inline css property or class value) & render when is visible automatically (for IEs, only works IE11+). When set to false, call .flush() to render.

+ +
+ + + + + + +
+

Control the render timing

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Examples
+ +
render: {
+   lazy: true,
+   observe: true
+}
+ +
// <!-- render.lazy will detect visibility defined -->
+ // (a) <div id='chart' class='hide'></div>
+ // (b) <div id='chart' style='display:none'></div>
+
+ // render.lazy enabled by default when element is hidden
+ var chart = bb.generate({ ... });
+
+ // chart will be rendered automatically when element's visibility changes
+ // Note: works only for inlined css property or class attribute changes
+ document.getElementById('chart').classList.remove('hide')  // (a)
+ document.getElementById('chart').style.display = 'block';  // (b)
+ +
// chart won't be rendered and not observing bind element's visiblity changes
+ var chart = bb.generate({
+    render: {
+         lazy: true,
+         observe: false
+    }
+ });
+
+ // call at any point when you want to render
+ chart.flush();
+ + + + + +

(static) resize :object

+ + + + + +
+ +
Description:
+
  • Set chart resize options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
resize + + +object + + + + + + + <optional>
+ + + +

resize object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
auto + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Set chart resize automatically on viewport changes.

timer + + +boolean +| + +number + + + + + + + <optional>
+ + + +
+ + true + +

Set resize timer option.

+
    +
  • NOTE: +
      +
    • The resize function will be called using: +
        +
      • true: setTimeout()
      • +
      • false: requestIdleCallback()
      • +
      +
    • +
    • Given number(delay in ms) value, resize function will be triggered using setTimer() with given delay.
    • +
    +
  • +
+ +
+ + + + + + +
+

Set chart resize options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
resize: {
+     auto: false,
+
+     // set resize function will be triggered using `setTimer()`
+     timer: true,
+
+     // set resize function will be triggered using `requestIdleCallback()`
+     timer: false,
+
+     // set resize function will be triggered using `setTimer()` with a delay of `100ms`.
+     timer: 100
+ }
+ + + + + +

(static) scatter :object

+ + + + + +
+ +
Description:
+
  • Set scatter options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
scatter + + +object + + + + + + + <optional>
+ + + +

scatter object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
zerobased + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set if min or max value will be 0 on scatter chart.

+ +
+ + + + + + +
+

Set scatter options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
scatter: {
+     connectNull: true,
+     step: {
+         type: "step-after"
+     },
+
+     // hide all data points ('point.show=false' also has similar effect)
+     point: false,
+
+     // show data points for only indicated datas
+     point: [
+         "data1", "data3"
+     ],
+
+     zerobased: false
+ }
+ + + + + +

(static) size :object

+ + + + + +
+ +
Description:
+
  • The desired size of the chart element. +If value is not specified, the width of the chart will be calculated by the size of the parent element it's appended to.

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
size + + +object + + + + + + + <optional>
+ + + +

size object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
width + + +number + + + + + + + <optional>
+ + + +

width of the chart element

height + + +number + + + + + + + <optional>
+ + + +

height of the chart element

+ +
+ + + + + + +
+

The desired size of the chart element. +If value is not specified, the width of the chart will be calculated by the size of the parent element it's appended to.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
size: {
+  width: 640,
+  height: 480
+}
+ + + + + +

(static) spline :object

+ + + + + +
+ +
Description:
+
  • Set spline options

    +
      +
    • Available interpolation type values:
    • +
    • basis (d3.curveBasis)
    • +
    • basis-closed (d3.curveBasisClosed)
    • +
    • basis-open (d3.curveBasisOpen)
    • +
    • bundle (d3.curveBundle)
    • +
    • cardinal (d3.curveCardinal)
    • +
    • cardinal-closed (d3.curveCardinalClosed)
    • +
    • cardinal-open (d3.curveCardinalOpen)
    • +
    • catmull-rom (d3.curveCatmullRom)
    • +
    • catmull-rom-closed (d3.curveCatmullRomClosed)
    • +
    • catmull-rom-open (d3.curveCatmullRomOpen)
    • +
    • monotone-x (d3.curveMonotoneX)
    • +
    • monotone-y (d3.curveMonotoneY)
    • +
    • natural (d3.curveNatural)
    • +
    • linear-closed (d3.curveLinearClosed)
    • +
    • linear (d3.curveLinear)
    • +
    • step (d3.curveStep)
    • +
    • step-after (d3.curveStepAfter)
    • +
    • step-before (d3.curveStepBefore)
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
spline + + +object + + + + +

Spline object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
interpolation + + +object + + + + +

Spline interpolation object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
type + + +string + + + + + + + <optional>
+ + + +
+ + "cardinal" + +

Interpolation type

+ +
+ +
+ + + + + + +
+

Set spline options

+
    +
  • Available interpolation type values:
  • +
  • basis (d3.curveBasis)
  • +
  • basis-closed (d3.curveBasisClosed)
  • +
  • basis-open (d3.curveBasisOpen)
  • +
  • bundle (d3.curveBundle)
  • +
  • cardinal (d3.curveCardinal)
  • +
  • cardinal-closed (d3.curveCardinalClosed)
  • +
  • cardinal-open (d3.curveCardinalOpen)
  • +
  • catmull-rom (d3.curveCatmullRom)
  • +
  • catmull-rom-closed (d3.curveCatmullRomClosed)
  • +
  • catmull-rom-open (d3.curveCatmullRomOpen)
  • +
  • monotone-x (d3.curveMonotoneX)
  • +
  • monotone-y (d3.curveMonotoneY)
  • +
  • natural (d3.curveNatural)
  • +
  • linear-closed (d3.curveLinearClosed)
  • +
  • linear (d3.curveLinear)
  • +
  • step (d3.curveStep)
  • +
  • step-after (d3.curveStepAfter)
  • +
  • step-before (d3.curveStepBefore)
  • +
+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
spline: {
+     interpolation: {
+         type: "cardinal"
+     }
+ }
+ + + + + +

(static) subchart :object

+ + + + + +
+ +
Description:
+
  • Set subchart options.

    +
      +
    • NOTE: Not supported for bubble, scatter and non-Axis based(pie, donut, gauge, radar) types.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
subchart + + +object + + + + +

Subchart object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
show + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show sub chart on the bottom of the chart.

+
    +
  • NOTE: for ESM imports, needs to import 'subchart' exports and instantiate it by calling subchart(). +
      +
    • show: subchart()
    • +
    +
  • +
showHandle + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show sub chart's handle.

axis.x.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide x axis.

axis.x.tick.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide x axis tick line.

axis.x.tick.format + + +function +| + +string + + + + + + + <optional>
+ + + +
+ +

Use custom format for x axis ticks - see axis.x.tick.format for details.

axis.x.tick.text.show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide x axis tick text.

init.range + + +Array + + + + + + + <optional>
+ + + +
+ +

Set initial selection domain range.

size.height + + +number + + + + + + + <optional>
+ + + +
+ +

Change the height of the subchart.

onbrush + + +function + + + + + + + <optional>
+ + + +
+ +

Set callback for brush event.
+Specified function receives the current zoomed x domain.

+ +
+ + + + + + +
+

Set subchart options.

+
    +
  • NOTE: Not supported for bubble, scatter and non-Axis based(pie, donut, gauge, radar) types.
  • +
+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Examples
+ +
subchart: {
+     show: true,
+     showHandle: true,
+     size: {
+         height: 20
+     },
+     init: {
+         // specify initial range domain selection
+         range: [1, 2]
+     },
+     axis: {
+     	x: {
+     	  show: true,
+     	    tick: {
+     	      show: true,
+     	      format: (x) => d3Format(".1f")(x)
+     	      text: {
+     	        show: false
+     	      }
+     	    }
+     	}
+     },
+     onbrush: function(domain) { ... }
+ }
+ +
// importing ESM
+import bb, {subchart} from "billboard.js";
+
+subchart: {
+     show: subchart(),
+     ...
+}
+ + + + + +

(static) svg :object

+ + + + + +
+ +
Description:
+
  • Set svg element's class name

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
svg + + +object + + + + + + + <optional>
+ + + +

svg object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
classname + + +string + + + + + + + <optional>
+ + + +

class name for svg element

+ +
+ + + + + + +
+

Set svg element's class name

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
svg: {
+  classname: "test_class"
+}
+ + + + + +

(static) title :object

+ + + + + +
+ +
Description:
+
  • Set title options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
title + + +object + + + + +

Title object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
text + + +string + + + + + + + <optional>
+ + + +
+ +

Title text. If contains \n, it's used as line break allowing multiline title.

padding.top + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Top padding value.

padding.right + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Right padding value.

padding.bottom + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Bottom padding value.

padding.left + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Left padding value.

position + + +string + + + + + + + <optional>
+ + + +
+ + center + +

Available values are: 'center', 'right' and 'left'.

+ +
+ + + + + + +
+

Set title options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
title: {
+     text: "Title Text",
+
+     // or Multiline title text
+     text: "Main title text\nSub title text",
+
+     padding: {
+         top: 10,
+         right: 10,
+         bottom: 10,
+         left: 10
+     },
+     position: "center"
+ }
+ + + + + +

(static) tooltip :object

+ + + + + +
+ +
Description:
+
  • Tooltip options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
tooltip + + +object + + + + +

Tooltip object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
show + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide tooltip.

doNotHide + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Make tooltip keep showing not hiding on interaction.

grouped + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Set if tooltip is grouped or not for the data points.

+
    +
  • NOTE: The overlapped data points will be displayed as grouped even if set false.
  • +
linked + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Set if tooltips on all visible charts with like x points are shown together when one is shown.

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
name + + +string + + + + + + + <optional>
+ + + +
+ + "" + +

Groping name for linked tooltip.
If specified, linked tooltip will be groped interacting to be worked only with the same name.

+ +
format.title + + +function + + + + + + + <optional>
+ + + +
+ +

Set format for the title of tooltip.
+Specified function receives x of the data point to show.

format.name + + +function + + + + + + + <optional>
+ + + +
+ +

Set format for the name of each data in tooltip.
+Specified function receives name, ratio, id and index of the data point to show. ratio will be undefined if the chart is not donut/pie/gauge.

format.value + + +function + + + + + + + <optional>
+ + + +
+ +

Set format for the value of each data value in tooltip. If undefined returned, the row of that value will be skipped to be called.

+
    +
  • Will pass following arguments to the given function: +
      +
    • value {string}: Value of the data point. If data row contains multiple or ranged(ex. candlestick, area range, etc.) value, formatter will be called as value length.
    • +
    • ratio {number}: Ratio of the data point in the pie/donut/gauge and area/bar when contains grouped data. Otherwise is undefined.
    • +
    • id {string}: id of the data point
    • +
    • index {number}: Index of the data point
    • +
    +
  • +
position + + +function + + + + + + + <optional>
+ + + +
+ +

Set custom position function for the tooltip.
+This option can be used to modify the tooltip position by returning object that has top and left.

+
    +
  • Will pass following arguments to the given function: +
      +
    • data {Array}: Current selected data array object.
    • +
    • width {number}: Width of tooltip.
    • +
    • height {number}: Height of tooltip.
    • +
    • element {SVGElement}: Tooltip event bound element
    • +
    • pos {object}: Current position of the tooltip.
    • +
    +
  • +
contents + + +function +| + +object + + + + + + + <optional>
+ + + +
+ +

Set custom HTML for the tooltip.
+If tooltip.grouped is true, data includes multiple data points.

+Specified function receives data array and defaultTitleFormat, defaultValueFormat and color functions of the data point to show.

+
    +
  • Note: +
      +
    • defaultTitleFormat: +
        +
      • if axis.x.tick.format option will be used if set.
      • +
      • otherwise, will return function based on tick format type(category, timeseries).
      • +
      +
    • +
    • defaultValueFormat: +
        +
      • for Arc type (except gauge, radar), the function will return value from (ratio * 100).toFixed(1).
      • +
      • for Axis based types, will be used axis.[y|y2].tick.format option value if is set.
      • +
      • otherwise, will parse value and return as number.
      • +
      +
    • +
    +
  • +
+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
bindto + + +string +| + +HTMLElement + + + + + + + <optional>
+ + + +

Set CSS selector or element reference to bind tooltip.

+
    +
  • NOTE: When is specified, will not be updating tooltip's position.
  • +
template + + +string + + + + + + + <optional>
+ + + +

Set tooltip's template.

+Within template, below syntax will be replaced using template-like syntax string:

+
    +
  • {{ ... }}: the doubly curly brackets indicate loop block for data rows.
  • +
  • {=CLASS_TOOLTIP}: default tooltip class name bb-tooltip.
  • +
  • {=CLASS_TOOLTIP_NAME}: default tooltip data class name (ex. bb-tooltip-name-data1)
  • +
  • {=TITLE}: title value.
  • +
  • {=COLOR}: data color.
  • +
  • {=NAME}: data id value.
  • +
  • {=VALUE}: data value.
  • +
text + + +object + + + + + + + <optional>
+ + + +

Set additional text content within data loop, using template syntax.

+
    +
  • NOTE: It should contain { key: Array, ... } value +
      +
    • 'key' name is used as substitution within template as '{=KEY}'
    • +
    • The value array length should match with the data length
    • +
    +
  • +
+ +
init.show + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Show tooltip at the initialization.

init.x + + +number + + + + + + + <optional>
+ + + +
+ + 0 + +

Set x Axis index(or index for Arc(donut, gauge, pie) types) to be shown at the initialization.

init.position + + +object + + + + + + + <optional>
+ + + +
+ +

Set the position of tooltip at the initialization.

onshow + + +function + + + + + + + <optional>
+ + + +
+ +

Set a callback that will be invoked before the tooltip is shown.

onhide + + +function + + + + + + + <optional>
+ + + +
+ +

Set a callback that will be invoked before the tooltip is hidden.

onshown + + +function + + + + + + + <optional>
+ + + +
+ +

Set a callback that will be invoked after the tooltip is shown

onhidden + + +function + + + + + + + <optional>
+ + + +
+ +

Set a callback that will be invoked after the tooltip is hidden.

order + + +string +| + +function +| + +null + + + + + + + <optional>
+ + + +
+ + null + +

Set tooltip data display order.

+Available Values:

+
    +
  • desc: In descending data value order
  • +
  • asc: In ascending data value order
  • +
  • null: It keeps the data display order
    +NOTE: When data.groups is set, the order will follow as the stacked graph order.
    +If want to order as data bound, set any value rather than asc, desc or null. (ex. empty string "")
  • +
  • function(data1, data2) { ... }: Array.sort compareFunction
  • +
+ +
+ + + + + + +
+

Tooltip options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
tooltip: {
+     show: true,
+     doNotHide: true,
+     grouped: false,
+     format: {
+         title: function(x) { return "Data " + x; },
+         name: function(name, ratio, id, index) { return name; },
+
+         // If data row contains multiple or ranged(ex. candlestick, area range, etc.) value,
+         // formatter will be called as value length times.
+         value: function(value, ratio, id, index) { return ratio; }
+     },
+     position: function(data, width, height, element, pos) {
+         // data: [{x, index, id, name, value}, ...]
+         // width: Tooltip width
+         // height: Tooltip height
+         // element: Tooltip event bound element
+         // pos: {
+         //   x: Current mouse event x position,
+         //   y: Current mouse event y position,
+         //   xAxis: Current x Axis position (the value is given for axis based chart type only)
+         //   yAxis: Current y Axis position value or function(the value is given for axis based chart type only)
+         // }
+
+         // yAxis will work differently per data lenghts
+         // - a) Single data: `yAxis` will return `number` value
+         // - b) Multiple data: `yAxis` will return a function with property value
+
+         // a) Single data:
+         // Get y coordinate
+         pos.yAxis; // y axis coordinate value of current data point
+
+         // b) Multiple data:
+         // Get y coordinate of value 500, where 'data1' scales(y or y2).
+         // When 'data.axes' option is used, data can bound to different axes.
+         // - when "data.axes={data1: 'y'}", wil return y value from y axis scale.
+         // - when "data.axes={data1: 'y2'}", wil return y value from y2 axis scale.
+         pos.yAxis(500, "data1"); // will return y coordinate value of data1
+
+         pos.yAxis(500); // get y coordinate with value of 500, using y axis scale
+         pos.yAxis(500, null, "y2"); // get y coordinate with value of 500, using y2 axis scale
+
+         return {
+           top: 0,
+           left: 0
+         }
+     },
+
+     contents: function(d, defaultTitleFormat, defaultValueFormat, color) {
+         return ... // formatted html as you want
+     },
+
+      // specify tooltip contents using template
+      // - example of HTML returned:
+      // <ul class="bb-tooltip">
+      //   <li class="bb-tooltip-name-data1"><span>250</span><br><span style="color:#00c73c">data1</span></li>
+      //   <li class="bb-tooltip-name-data2"><span>50</span><br><span style="color:#fa7171">data2</span></li>
+      // </ul>
+      contents: {
+     	bindto: "#tooltip",
+     	template: '<ul class={=CLASS_TOOLTIP}>{{' +
+     			'<li class="{=CLASS_TOOLTIP_NAME}"><span>{=VALUE}</span><br>' +
+     			'<span style=color:{=COLOR}>{=NAME}</span></li>' +
+     		'}}</ul>'
+     }
+
+      // with additional text value
+      // - example of HTML returned:
+      // <ul class="bb-tooltip">
+      //   <li class="bb-tooltip-name-data1"><span>250</span><br>comment1<span style="color:#00c73c">data1</span>text1</li>
+      //   <li class="bb-tooltip-name-data2"><span>50</span><br>comment2<span style="color:#fa7171">data2</span>text2</li>
+      // </ul>
+      contents: {
+     	bindto: "#tooltip",
+     	text: {
+     		// a) 'key' name is used as substitution within template as '{=KEY}'
+     		// b) the length should match with the data length
+     		VAR1: ["text1", "text2"],
+     		VAR2: ["comment1", "comment2"],
+     	},
+     	template: '<ul class={=CLASS_TOOLTIP}>{{' +
+     			'<li class="{=CLASS_TOOLTIP_NAME}"><span>{=VALUE}</span>{=VAR2}<br>' +
+     			'<span style=color:{=COLOR}>{=NAME}</span>{=VAR1}</li>' +
+     		'}}</ul>'
+     }
+
+     // sort tooltip data value display in ascending order
+     order: "asc",
+
+     // specifying sort function
+     order: function(a, b) {
+        // param data passed format
+        {x: 5, value: 250, id: "data1", index: 5, name: "data1"}
+          ...
+     },
+
+     // show at the initialization
+     init: {
+         show: true,
+         x: 2, // x Axis index (or index for Arc(donut, gauge, pie) types)
+         position: {
+             top: "150px",  // specify as number or as string with 'px' unit string
+             left: 250  // specify as number or as string with 'px' unit string
+         }
+     },
+
+     // fires prior tooltip is shown
+     onshow: function(selectedData) {
+     	// current dataset selected
+     	// ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...]
+     	selectedData;
+     },
+
+     // fires prior tooltip is hidden
+     onhide: function(selectedData) {
+     	// current dataset selected
+     	// ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...]
+     	selectedData;
+     },
+
+     // fires after tooltip is shown
+     onshown: function(selectedData) {
+     	// current dataset selected
+     	// ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...]
+     	selectedData;
+     },
+
+     // fires after tooltip is hidden
+     onhidden: function(selectedData) {
+     	// current dataset selected
+     	// ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...]
+     	selectedData;
+     },
+
+     // Link any tooltips when multiple charts are on the screen where same x coordinates are available
+     // Useful for timeseries correlation
+     linked: true,
+
+     // Specify name to interact those with the same name only.
+     linked: {
+         name: "some-group"
+     }
+ }
+ + + + + +

(static) transition :object

+ + + + + +
+ +
Description:
+
  • Set duration of transition (in milliseconds) for chart animation.

    +
      +
    • NOTE: If 0 or null set, transition will be skipped. So, this makes initial rendering faster especially in case you have a lot of data.
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDescription
transition + + +object + + + + + + + <optional>
+ + + +

transition object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
duration + + +number + + + + + + + <optional>
+ + + +
+ + 350 + +

duration in milliseconds

+ +
+ + + + + + +
+

Set duration of transition (in milliseconds) for chart animation.

+
    +
  • NOTE: If 0 or null set, transition will be skipped. So, this makes initial rendering faster especially in case you have a lot of data.
  • +
+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
transition: {
+   duration: 500
+}
+ + + + + +

(static) treemap :object

+ + + + + +
+ +
Description:
+
  • Set treemap options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
treemap + + +object + + + + +

Treemap object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
tile + + +string + + + + + + + <optional>
+ + + +
+ + "binary" + +

Treemap tile type

+
label.format + + +function + + + + + + + <optional>
+ + + +
+ +

Set formatter for the label text.

label.threshold + + +number + + + + + + + <optional>
+ + + +
+ + 0.05 + +

Set threshold ratio to show/hide labels text.

label.show + + +number + + + + + + + <optional>
+ + + +
+ + true + +

Show or hide label text.

+ +
+ + + + + + +
+

Set treemap options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Example
+ +
treemap: {
+     // "binary", "dice", "slice", "sliceDice", "squrify", "resquarify"
+     tile: "dice",
+
+     label: {
+         // show or hide label text
+         show: false,
+
+         // set label text formatter
+         format: function(value, ratio, id) {
+             return d3.format("$")(value);
+
+             // to multiline, return with '\n' character
+             // return value +"%\nLine1\n2Line2";
+         },
+
+         // set ratio number
+         ratio: 0.05
+     }
+ }
+ + + + + +

(static) zoom :object

+ + + + + +
+ +
Description:
+
  • Set zoom options

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
zoom + + +object + + + + +

Zoom object

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
enabled + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Enable zooming.

+
    +
  • NOTE: for ESM imports, needs to import 'zoom' exports and instantiate it by calling zoom(). +
      +
    • enabled: zoom()
    • +
    +
  • +
type + + +string + + + + + + + <optional>
+ + + +
+ + 'wheel' + +

Set zoom interaction type.

+
    +
  • Available types: +
      +
    • wheel
    • +
    • drag
    • +
    +
  • +
rescale + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Enable to rescale after zooming.
+If true set, y domain will be updated according to the zoomed region.

extent + + +Array + + + + + + + <optional>
+ + + +
+ + [1, 10] + +

Change zoom extent.

x.min + + +number +| + +Date + + + + + + + <optional>
+ + + +
+ +

Set x Axis minimum zoom range

x.max + + +number +| + +Date + + + + + + + <optional>
+ + + +
+ +

Set x Axis maximum zoom range

onzoomstart + + +function + + + + + + + <optional>
+ + + +
+ +

Set callback that is called when zooming starts.
+Specified function receives the zoom event.

onzoom + + +function + + + + + + + <optional>
+ + + +
+ +

Set callback that is called when the chart is zooming.
+Specified function receives the zoomed domain.

onzoomend + + +function + + + + + + + <optional>
+ + + +
+ +

Set callback that is called when zooming ends.
+Specified function receives the zoomed domain.

resetButton + + +boolean +| + +object + + + + + + + <optional>
+ + + +
+ + true + +

Set to display zoom reset button for 'drag' type zoom

+
Properties
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
onclick + + +function + + + + + + + <optional>
+ + + +
+ +

Set callback when clicks the reset button. The callback will receive reset button element reference as argument.

text + + +string + + + + + + + <optional>
+ + + +
+ + 'Reset Zoom' + +

Text value for zoom reset button.

+ +
+ +
+ + + + + + +
+

Set zoom options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + + + +
Examples
+ +
zoom: {
+     enabled: true,
+     type: "drag",
+     rescale: true,
+     extent: [1, 100]  // enable more zooming
+     x: {
+         min: -1,  // set min range
+         max: 10  // set max range
+     },
+     onzoomstart: function(event) { ... },
+     onzoom: function(domain) { ... },
+     onzoomend: function(domain) { ... },
+
+     // show reset button when is zoomed-in
+     resetButton: true,
+
+     resetButton: {
+         // onclick callback when reset button is clicked
+         onclick: function(button) {
+           button; // Reset button element reference
+           ...
+         },
+
+         // customized text value for reset zoom button
+         text: "Unzoom"
+     }
+ }
+ +
// importing ESM
+import bb, {zoom} from "billboard.js";
+
+zoom: {
+     enabled: zoom(),
+     ...
+}
+ + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/release/3.12.4/doc/Plugin.html b/release/3.12.4/doc/Plugin.html new file mode 100644 index 000000000..2adc44eb1 --- /dev/null +++ b/release/3.12.4/doc/Plugin.html @@ -0,0 +1,295 @@ + + + + + + Plugin - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin

+ + + + + + + +
+ +
+ +

+ + Plugin + +

+ + +
+ +
+ +
+ + + + + +

new Plugin()

+ + + + + + +
+ +
Description:
+
  • Base class to generate billboard.js plugin

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +

Members

+ + + +

(static) version :string

+ + + + + +
+ +
Description:
+
  • Version info string for plugin

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+

Version info string for plugin

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + + + +
Example
+ +
bb.plugin.stanford.version;  // ex) 1.9.0
+ + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/release/3.12.4/doc/Plugin_Plugin.ts.html b/release/3.12.4/doc/Plugin_Plugin.ts.html new file mode 100644 index 000000000..b2df79d9f --- /dev/null +++ b/release/3.12.4/doc/Plugin_Plugin.ts.html @@ -0,0 +1,152 @@ + + + + + + Plugin/Plugin.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/Plugin.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * Base class to generate billboard.js plugin
+ * @class Plugin
+ */
+/**
+ * Version info string for plugin
+ * @name version
+ * @static
+ * @memberof Plugin
+ * @type {string}
+ * @example
+ *   bb.plugin.stanford.version;  // ex) 1.9.0
+ */
+export default class Plugin {
+	public $$;
+	public options;
+	static version = "__VERSION__";
+
+	/**
+	 * Constructor
+	 * @param {Any} options config option object
+	 * @private
+	 */
+	constructor(options = {}) {
+		this.options = options;
+	}
+
+	/**
+	 * Lifecycle hook for 'beforeInit' phase.
+	 * @private
+	 */
+	$beforeInit() {}
+
+	/**
+	 * Lifecycle hook for 'init' phase.
+	 * @private
+	 */
+	$init() {}
+
+	/**
+	 * Lifecycle hook for 'afterInit' phase.
+	 * @private
+	 */
+	$afterInit() {}
+
+	/**
+	 * Lifecycle hook for 'redraw' phase.
+	 * @private
+	 */
+	$redraw() {}
+
+	/**
+	 * Lifecycle hook for 'willDestroy' phase.
+	 * @private
+	 */
+	$willDestroy() {
+		Object.keys(this).forEach(key => {
+			this[key] = null;
+			delete this[key];
+		});
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Plugin_bubblecompare_Options.ts.html b/release/3.12.4/doc/Plugin_bubblecompare_Options.ts.html new file mode 100644 index 000000000..beb9b6622 --- /dev/null +++ b/release/3.12.4/doc/Plugin_bubblecompare_Options.ts.html @@ -0,0 +1,136 @@ + + + + + + Plugin/bubblecompare/Options.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/bubblecompare/Options.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * Bubble compare plugin option class
+ * @class BubblecompareOptions
+ * @param {Options} options Bubblecompare plugin options
+ * @augments Plugin
+ * @returns {BubblecompareOptions}
+ * @private
+ */
+export default class Options {
+	constructor() {
+		return {
+			/**
+			 * Set minimum size of bubble radius. (px)
+			 * @name minR
+			 * @memberof plugin-bubblecompare
+			 * @type {number}
+			 * @default 11
+			 * @example
+			 *   minR: 11
+			 */
+			minR: 11,
+
+			/**
+			 * Set maximum size of bubble radius. (px)
+			 * @name maxR
+			 * @memberof plugin-bubblecompare
+			 * @type {number}
+			 * @default 11
+			 * @example
+			 *   maxR: 74
+			 */
+			maxR: 11,
+
+			/**
+			 * Specify bubble expand ratio when focused
+			 * @name expandScale
+			 * @memberof plugin-bubblecompare
+			 * @type {number}
+			 * @default 1
+			 * @example
+			 *   expandScale: 1.2
+			 */
+			expandScale: 1
+		};
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Plugin_bubblecompare_index.ts.html b/release/3.12.4/doc/Plugin_bubblecompare_index.ts.html new file mode 100644 index 000000000..9ada5dd9d --- /dev/null +++ b/release/3.12.4/doc/Plugin_bubblecompare_index.ts.html @@ -0,0 +1,202 @@ + + + + + + Plugin/bubblecompare/index.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/bubblecompare/index.ts

+ + + + + + + +
+
+
import {select as d3Select} from "d3-selection";
+import Plugin from "../Plugin";
+
+/**
+ * Bubble compare diagram plugin.<br>
+ * Compare data 3-dimensional ways: x-axis, y-axis & bubble-size.
+ * - **NOTE:**
+ *   - Plugins aren't built-in. Need to be loaded or imported to be used.
+ *   - Non required modules from billboard.js core, need to be installed separately.
+ * - **Required modules:**
+ *   - [d3-selection](https://github.com/d3/d3-selection)
+ * @class plugin-bubblecompare
+ * @requires d3-selection
+ * @param {object} options bubble compare plugin options
+ * @augments Plugin
+ * @returns {BubbleCompare}
+ * @example
+ * // Plugin must be loaded before the use.
+ * <script src="$YOUR_PATH/plugin/billboardjs-plugin-bubblecompare.js"></script>
+ *
+ *  var chart = bb.generate({
+ *     data: {
+ *        columns: [ ... ],
+ *        type: "bubble"
+ *     }
+ *     ...
+ *     plugins: [
+ *        new bb.plugin.bubblecompare({
+ *          minR: 11,
+ *          maxR: 74,
+ *          expandScale: 1.1
+ *        }),
+ *     ]
+ *  });
+ * @example
+ * import {bb} from "billboard.js";
+ * import BubbleCompare from "billboard.js/dist/billboardjs-plugin-bubblecompare";
+ *
+ * bb.generate({
+ *     plugins: [
+ *        new BubbleCompare({ ... })
+ *     ]
+ * })
+ */
+
+export default class BubbleCompare extends Plugin {
+	static version = `0.0.1`;
+	public $$;
+
+	constructor(options) {
+		super(options);
+
+		return this;
+	}
+
+	$init(): void {
+		const {$$} = this;
+
+		$$.findClosest = this.findClosest.bind(this);
+		$$.getBubbleR = this.getBubbleR.bind(this);
+		$$.pointExpandedR = this.pointExpandedR.bind(this);
+	}
+
+	pointExpandedR(d): number {
+		const baseR = this.getBubbleR(d);
+		const {expandScale = 1} = this.options;
+
+		BubbleCompare.raiseFocusedBubbleLayer(d);
+		this.changeCursorPoint();
+
+		return baseR * expandScale;
+	}
+
+	static raiseFocusedBubbleLayer(d): void {
+		d.raise && d3Select(d.node().parentNode.parentNode).raise();
+	}
+
+	changeCursorPoint(): void {
+		this.$$.$el.eventRect.style("cursor", "pointer");
+	}
+
+	findClosest(values, pos): number {
+		const {$$} = this;
+
+		return values
+			.filter(v => v && !$$.isBarType(v.id))
+			.reduce((acc, cur) => {
+				const d = $$.dist(cur, pos);
+
+				return d < this.getBubbleR(cur) ? cur : acc;
+			}, 0);
+	}
+
+	getBubbleR(d): number {
+		const {minR, maxR} = this.options;
+		const curVal = this.getZData(d);
+
+		if (!curVal) return minR;
+
+		const [min, max] = this.$$.data.targets.reduce(
+			([accMin, accMax], cur) => {
+				const val = this.getZData(cur.values[0]);
+
+				return [Math.min(accMin, val), Math.max(accMax, val)];
+			},
+			[10000, 0]
+		);
+		const size = min > 0 && max === min ? 0 : curVal / max;
+
+		return Math.abs(size) * (maxR - minR) + minR;
+	}
+
+	getZData(d): number {
+		return this.$$.isBubbleZType(d) ? this.$$.getBubbleZData(d.value, "z") : d.value;
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Plugin_sparkline_Options.ts.html b/release/3.12.4/doc/Plugin_sparkline_Options.ts.html new file mode 100644 index 000000000..a426944e5 --- /dev/null +++ b/release/3.12.4/doc/Plugin_sparkline_Options.ts.html @@ -0,0 +1,115 @@ + + + + + + Plugin/sparkline/Options.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/sparkline/Options.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2021 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * Sparkline plugin option class
+ * @class SparklineOptions
+ * @param {Options} options Sparkline plugin options
+ * @augments Plugin
+ * @returns {TableviewOptions}
+ * @private
+ */
+export default class Options {
+	constructor() {
+		return {
+			/**
+			 * Specify sparkline charts holder selector.
+			 * - **NOTE:** The amount of holder should match with the amount of data. If has less, will append necessaray amount nodes as sibling of main chart.
+			 * @name selector
+			 * @memberof plugin-sparkline
+			 * @type {string}
+			 * @default undefined
+			 * @example
+			 *   selector: ".sparkline"
+			 */
+			selector: undefined
+		};
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Plugin_sparkline_index.ts.html b/release/3.12.4/doc/Plugin_sparkline_index.ts.html new file mode 100644 index 000000000..65f2abe49 --- /dev/null +++ b/release/3.12.4/doc/Plugin_sparkline_index.ts.html @@ -0,0 +1,381 @@ + + + + + + Plugin/sparkline/index.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/sparkline/index.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2021 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import type {IData} from "../../ChartInternal/data/IData";
+import {$COMMON} from "../../config/classes";
+import {loadConfig} from "../../config/config";
+import Plugin from "../Plugin";
+import Options from "./Options";
+
+/**
+ * Sparkline plugin.<br>
+ * Generates sparkline charts
+ * - **NOTE:**
+ *   - Plugins aren't built-in. Need to be loaded or imported to be used.
+ *   - Non required modules from billboard.js core, need to be installed separately.
+ *
+ * - **Bear in mind:**
+ * - Use this plugin to visualize multiple tiny chart only and chart APIs won't work properly.
+ * - Sparkline chart size will be based on the main chart element size. To control spakrline charts, is highly recommended to set `size` option.
+ * - Bubble, scatter and Arc(pie, donut, ratdar) types aren't supported.
+ * - Some options will be stricted to be:
+ *   - `resize.auto = false`
+ *   - `axis.x.show = false`
+ *   - `axis.y.show = false`
+ *   - `axis.y.padding = 10`
+ *   - `legend.show = false`
+ *
+ * @class plugin-sparkline
+ * @param {object} options sparkline plugin options
+ * @augments Plugin
+ * @returns {Sparkline}
+ * @example
+ * // Plugin must be loaded before the use.
+ * <script src="$YOUR_PATH/plugin/billboardjs-plugin-sparkline.js"></script>
+ *
+ *  var chart = bb.generate({
+ *     ...
+ *     plugins: [
+ *        	new bb.plugin.sparkline({
+ *        	  selector: ".sparkline"
+ *        	}),
+ *     ]
+ *  });
+ * @example
+ * import {bb} from "billboard.js";
+ * import Sparkline from "billboard.js/dist/billboardjs-plugin-sparkline";
+ *
+ * bb.generate({
+ *     ...
+ *     plugins: [
+ *        new Sparkline({ ... })
+ *     ]
+ * })
+ */
+export default class Sparkline extends Plugin {
+	static version = `0.0.1`;
+	private config;
+	private element;
+
+	constructor(options) {
+		super(options);
+		this.config = new Options();
+
+		return this;
+	}
+
+	$beforeInit(): void {
+		loadConfig.call(this, this.options);
+
+		this.validate();
+		this.element = [].slice.call(document.querySelectorAll(this.config.selector));
+
+		// override internal methods
+		this.overrideInternals();
+
+		// override options
+		this.overrideOptions();
+
+		// bind event handlers's context
+		this.overHandler = this.overHandler.bind(this);
+		this.moveHandler = this.moveHandler.bind(this);
+		this.outHandler = this.outHandler.bind(this);
+	}
+
+	validate(): void {
+		const {$$, config} = this;
+		let msg = "";
+
+		if (!config.selector || !document.querySelector(config.selector)) {
+			msg = "No holder elements found from given selector option.";
+		}
+
+		if ($$.hasType("bubble") || $$.hasType("scatter") || $$.hasArcType($$.data.targets)) {
+			msg = "Contains non supported chart types.";
+		}
+
+		if (msg) {
+			throw new Error(`[Sparkline plugin] ${msg}`);
+		}
+	}
+
+	overrideInternals(): void {
+		const {$$} = this;
+		const {getBarW, getIndices} = $$;
+
+		// override internal methods to positioning bars
+		$$.getIndices = function(indices, d, caller) {
+			return caller === "getShapeX" ? {} : getIndices.call(this, indices, d);
+		};
+
+		$$.getBarW = function(type, axis) {
+			return getBarW.call(this, type, axis, 1);
+		};
+	}
+
+	overrideOptions(): void {
+		const {config} = this.$$;
+
+		config.legend_show = false;
+		config.resize_auto = false;
+		config.axis_x_show = false;
+
+		// set default axes padding
+		if (config.padding !== false) {
+			const hasOption = o => Object.keys(o || {}).length > 0;
+
+			if (hasOption(config.axis_x_padding)) {
+				config.axis_x_padding = {
+					left: 15,
+					right: 15,
+					unit: "px"
+				};
+			}
+
+			if (hasOption(config.axis_y_padding)) {
+				config.axis_y_padding = 5;
+			}
+		}
+
+		config.axis_y_show = false;
+
+		if (!config.tooltip_position) {
+			config.tooltip_position = function(data, width, height) {
+				const {internal: {state: {event}}} = this;
+				let top = event.pageY - (height * 1.35);
+				let left = event.pageX - (width / 2);
+
+				if (top < 0) {
+					top = 0;
+				}
+
+				if (left < 0) {
+					left = 0;
+				}
+
+				return {top, left};
+			};
+		}
+	}
+
+	$init(): void {
+		const {$$: {$el}} = this;
+
+		// make disable-ish main chart element
+		$el.chart
+			.style("width", "0")
+			.style("height", "0")
+			.style("pointer-events", "none");
+
+		$el.tooltip?.node() && document.body.appendChild($el.tooltip.node());
+	}
+
+	$afterInit(): void {
+		const {$$} = this;
+
+		$$.$el.svg.attr("style", null)
+			.style("width", "0")
+			.style("height", "0");
+
+		this.bindEvents(true);
+	}
+
+	/**
+	 * Bind tooltip event handlers for each sparkline elements.
+	 * @param {boolean} bind or unbind
+	 * @private
+	 */
+	bindEvents(bind = true): void {
+		const {$$: {config}} = this;
+
+		if (config.interaction_enabled && config.tooltip_show) {
+			const method = `${bind ? "add" : "remove"}EventListener`;
+
+			this.element
+				.forEach(el => {
+					const svg = el.querySelector("svg");
+
+					svg[method]("mouseover", this.overHandler);
+					svg[method]("mousemove", this.moveHandler);
+					svg[method]("mouseout", this.outHandler);
+				});
+		}
+	}
+
+	overHandler(e): void {
+		const {$$} = this;
+		const {state: {eventReceiver}} = $$;
+
+		eventReceiver.rect = e.target.getBoundingClientRect();
+	}
+
+	moveHandler(e): void {
+		const {$$} = this;
+		const index = $$.getDataIndexFromEvent(e);
+		const data = $$.api.data(e.target.__id)?.[0] as IData;
+		const d = data?.values?.[index];
+
+		if (d && !d.name) {
+			d.name = d.id;
+		}
+
+		$$.state.event = e;
+
+		if ($$.isPointFocusOnly?.() && d) {
+			$$.showCircleFocus?.([d]);
+		}
+
+		$$.setExpand(index, data.id, true);
+		$$.showTooltip([d], e.target);
+	}
+
+	outHandler(e): void {
+		const {$$} = this;
+
+		$$.state.event = e;
+
+		$$.isPointFocusOnly() ? $$.hideCircleFocus() : $$.unexpandCircles();
+
+		$$.hideTooltip();
+	}
+
+	$redraw(): void {
+		const {$$} = this;
+		const {$el} = $$;
+
+		let el = this.element;
+		const data = $$.api.data();
+		const svgWrapper = $el.chart.html().match(/<svg[^>]*>/)?.[0];
+
+		// append sparkline holder if is less than the data length
+		if (el.length < data.length) {
+			const chart = $el.chart.node();
+
+			for (let i = data.length - el.length; i > 0; i--) {
+				chart.parentNode.insertBefore(el[0].cloneNode(), chart.nextSibling);
+			}
+
+			this.element = document.querySelectorAll(this.config.selector);
+			el = this.element;
+		}
+
+		data.map(v => v.id)
+			.forEach((id, i) => {
+				const selector = `.${$COMMON.target}-${id}`;
+				const shape = $el.main.selectAll(selector);
+				let svg = el[i].querySelector("svg");
+
+				if (!svg) {
+					el[i].innerHTML = `${svgWrapper}</svg>`;
+					svg = el[i].querySelector("svg");
+					svg.__id = id;
+				}
+
+				if (!svg.querySelector(selector)) {
+					shape.style("opacity", null);
+				}
+
+				shape
+					.style("fill", "none")
+					.style("opacity", null);
+
+				svg.innerHTML = "";
+				svg.appendChild(shape.node());
+			});
+	}
+
+	$willDestroy(): void {
+		this.bindEvents(false);
+		this.element
+			.forEach(el => {
+				el.innerHTML = "";
+			});
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Plugin_stanford_Options.ts.html b/release/3.12.4/doc/Plugin_stanford_Options.ts.html new file mode 100644 index 000000000..dae33c85a --- /dev/null +++ b/release/3.12.4/doc/Plugin_stanford_Options.ts.html @@ -0,0 +1,235 @@ + + + + + + Plugin/stanford/Options.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/stanford/Options.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * Stanford diagram plugin option class
+ * @class StanfordOptions
+ * @param {Options} options Stanford plugin options
+ * @augments Plugin
+ * @returns {StanfordOptions}
+ * @private
+ */
+export default class Options {
+	constructor() {
+		return {
+			/**
+			 * Set the color of the color scale. This function receives a value between 0 and 1, and should return a color.
+			 * @name colors
+			 * @memberof plugin-stanford
+			 * @type {Function}
+			 * @default undefined
+			 * @example
+			 *   colors: d3.interpolateHslLong(
+			 *      d3.hsl(250, 1, 0.5), d3.hsl(0, 1, 0.5)
+			 *   )
+			 */
+			colors: undefined,
+
+			/**
+			 * Specify the key of epochs values in the data.
+			 * @name epochs
+			 * @memberof plugin-stanford
+			 * @type {Array}
+			 * @default []
+			 * @example
+			 * 	epochs: [ 1, 1, 2, 2, ... ]
+			 */
+			epochs: <number[]>[],
+
+			/**
+			 * Show additional lines anywhere on the chart.
+			 * - Each line object should consist with following options:
+			 *
+			 * | Key | Type | Description |
+			 * | --- | --- | --- |
+			 * | x1 | Number | Starting position on the x axis |
+			 * | y1 | Number | Starting position on the y axis |
+			 * | x2 | Number | Ending position on the x axis  |
+			 * | y2 | Number | Ending position on the y axis |
+			 * | class | String | Optional value. Set a custom css class to this line. |
+			 * @type {Array}
+			 * @memberof plugin-stanford
+			 * @default []
+			 * @example
+			 *   lines: [
+			 *       { x1: 0, y1: 0, x2: 65, y2: 65, class: "line1" },
+			 *       { x1: 0, x2: 65, y1: 40, y2: 40, class: "line2" }
+			 *   ]
+			 */
+			lines: [],
+
+			/**
+			 * Set scale values
+			 * @name scale
+			 * @memberof plugin-stanford
+			 * @type {object}
+			 * @property {object} [scale] scale object
+			 * @property {number} [scale.min=undefined] Minimum value of the color scale. Default: lowest value in epochs
+			 * @property {number} [scale.max=undefined] Maximum value of the color scale. Default: highest value in epochs
+			 * @property {number} [scale.width=20] Width of the color scale
+			 * @property {string|Function} [scale.format=undefined] Format of the axis of the color scale. Use 'pow10' to format as powers of 10 or a custom function. Example: d3.format("d")
+			 * @example
+			 *  scale: {
+			 *    max: 10000,
+			 *    min: 1,
+			 *    width: 500,
+			 *
+			 *    // specify 'pow10' to format as powers of 10
+			 *    format: "pow10",
+			 *
+			 *    // or specify a format function
+			 *    format: function(x) {
+			 *    	return x +"%";
+			 *    }
+			 *  },
+			 */
+			scale_min: <number | undefined>undefined,
+			scale_max: <number | undefined>undefined,
+			scale_width: <number | undefined>20,
+			scale_format: <number | undefined>undefined,
+
+			/**
+			 * The padding for color scale element
+			 * @name padding
+			 * @memberof plugin-stanford
+			 * @type {object}
+			 * @property {object} [padding] padding object
+			 * @property {number} [padding.top=0] Top padding value.
+			 * @property {number} [padding.right=0] Right padding value.
+			 * @property {number} [padding.bottom=0] Bottom padding value.
+			 * @property {number} [padding.left=0] Left padding value.
+			 * @example
+			 *  padding: {
+			 *     top: 15,
+			 *     right: 0,
+			 *     bottom: 0,
+			 *     left: 0
+			 *  },
+			 */
+			padding_top: 0,
+			padding_right: 0,
+			padding_bottom: 0,
+			padding_left: 0,
+
+			/**
+			 * Show additional regions anywhere on the chart.
+			 * - Each region object should consist with following options:
+			 *
+			 *   | Key | Type | Default | Attributes | Description |
+			 *   | --- | --- | --- | --- | --- |
+			 *   | points | Array |  | | Accepts a group of objects that has x and y.<br>These points should be added in a counter-clockwise fashion to make a closed polygon. |
+			 *   | opacity | Number | `0.2` | &lt;optional> | Sets the opacity of the region as value between 0 and 1 |
+			 *   | text | Function |  | &lt;optional> | This function receives a value and percentage of the number of epochs in this region.<br>Return a string to place text in the middle of the region. |
+			 *   | class | String | | &lt;optional> | Se a custom css class to this region, use the fill property in css to set a background color. |
+			 * @name regions
+			 * @memberof plugin-stanford
+			 * @type {Array}
+			 * @default []
+			 * @example
+			 *   regions: [
+			 *       {
+			 *           points: [ // add points counter-clockwise
+			 *               { x: 0, y: 0 },
+			 *               { x: 40, y: 40 },
+			 *               { x: 0, y: 40 },
+			 *           ],
+			 *           text: function (value, percentage) {
+			 *               return `Normal Operations: ${value} (${percentage}%)`;
+			 *           },
+			 *           opacity: 0.2, // 0 to 1
+			 *           class: "test-polygon1"
+			 *       },
+			 *       ...
+			 *   ]
+			 */
+			regions: []
+		};
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Plugin_stanford_index.ts.html b/release/3.12.4/doc/Plugin_stanford_index.ts.html new file mode 100644 index 000000000..fb8307911 --- /dev/null +++ b/release/3.12.4/doc/Plugin_stanford_index.ts.html @@ -0,0 +1,347 @@ + + + + + + Plugin/stanford/index.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/stanford/index.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+// @ts-nocheck
+import {hsl as d3Hsl} from "d3-color";
+import {interpolateHslLong as d3InterpolateHslLong} from "d3-interpolate";
+import {scaleSequentialLog as d3ScaleSequentialLog} from "d3-scale";
+import {$TOOLTIP} from "../../config/classes";
+import {loadConfig} from "../../config/config";
+import Plugin from "../Plugin";
+import ColorScale from "./ColorScale";
+import Elements from "./Elements";
+import Options from "./Options";
+import {compareEpochs, isEmpty, isFunction, pointInRegion} from "./util";
+
+/**
+ * Stanford diagram plugin
+ * - **NOTE:**
+ *   - Plugins aren't built-in. Need to be loaded or imported to be used.
+ *   - Non required modules from billboard.js core, need to be installed separately.
+ *   - Is preferable use `scatter` as data.type
+ * - **Required modules:**
+ *   - [d3-selection](https://github.com/d3/d3-selection)
+ *   - [d3-interpolate](https://github.com/d3/d3-interpolate)
+ *   - [d3-color](https://github.com/d3/d3-color)
+ *   - [d3-scale](https://github.com/d3/d3-scale)
+ *   - [d3-brush](https://github.com/d3/d3-brush)
+ *   - [d3-axis](https://github.com/d3/d3-axis)
+ *   - [d3-format](https://github.com/d3/d3-format)
+ * @class plugin-stanford
+ * @requires d3-selection
+ * @requires d3-interpolate
+ * @requires d3-color
+ * @requires d3-scale
+ * @requires d3-brush
+ * @requires d3-axis
+ * @requires d3-format
+ * @param {object} options Stanford plugin options
+ * @augments Plugin
+ * @returns {Stanford}
+ * @example
+ * // Plugin must be loaded before the use.
+ * <script src="$YOUR_PATH/plugin/billboardjs-plugin-stanford.js"></script>
+ *
+ *  var chart = bb.generate({
+ *     data: {
+ *        columns: [ ... ],
+ *        type: "scatter"
+ *     }
+ *     ...
+ *     plugins: [
+ *        new bb.plugin.stanford({
+ *           colors: d3.interpolateHslLong(
+ *              d3.hsl(250, 1, 0.5), d3.hsl(0, 1, 0.5)
+ *           ),
+ *           epochs: [ 1, 1, 2, 2, ... ],
+ *           lines: [
+ *                  { x1: 0, y1: 0, x2: 65, y2: 65, class: "line1" },
+ *                  { x1: 0, x2: 65, y1: 40, y2: 40, class: "line2" }
+ *           ],
+ *           scale: {
+ *           	max: 10000,
+ *             	min: 1,
+ *           	width: 500,
+ *             	format: 'pow10',
+ *           },
+ *           padding: {
+ *           	top: 15,
+ *           	right: 0,
+ *           	bottom: 0,
+ *           	left: 0
+ *           },
+ *           regions: [
+ *           	{
+ *               	points: [ // add points counter-clockwise
+ *               	    { x: 0, y: 0 },
+ *               	    { x: 40, y: 40 },
+ *               	    { x: 0, y: 40 }
+ *               	],
+ *               	text: function (value, percentage) {
+ *               	    return `Normal Operations: ${value} (${percentage}%)`;
+ *               	},
+ *               	opacity: 0.2, // 0 to 1
+ *               	class: "test-polygon1"
+ *              },
+ *             	...
+ *           ]
+ *        }
+ *     ]
+ *  });
+ * @example
+ * 	import {bb} from "billboard.js";
+ * import Stanford from "billboard.js/dist/billboardjs-plugin-stanford";
+ *
+ * bb.generate({
+ *     plugins: [
+ *        new Stanford({ ... })
+ *     ]
+ * })
+ */
+export default class Stanford extends Plugin {
+	private config;
+	private colorScale;
+	private elements;
+
+	constructor(options) {
+		super(options);
+		this.config = new Options();
+
+		return this;
+	}
+
+	$beforeInit(): void {
+		const {$$} = this;
+
+		// override on config values & methods
+		$$.config.data_xSort = false;
+		$$.isMultipleX = () => true;
+		$$.showGridFocus = () => {};
+		$$.labelishData = d => d.values;
+		$$.opacityForCircle = () => 1;
+
+		const getCurrentPadding = $$.getCurrentPadding.bind($$);
+
+		$$.getCurrentPadding = () => {
+			const padding = getCurrentPadding();
+
+			padding.right += this.colorScale ? this.colorScale.getColorScalePadding() : 0;
+
+			return padding;
+		};
+	}
+
+	$init(): void {
+		const {$$} = this;
+
+		loadConfig.call(this, this.options);
+		$$.color = this.getStanfordPointColor.bind($$);
+
+		this.colorScale = new ColorScale(this);
+		this.elements = new Elements(this);
+
+		this.convertData();
+		this.initStanfordData();
+		this.setStanfordTooltip();
+		this.colorScale.drawColorScale();
+
+		$$.right += this.colorScale ? this.colorScale.getColorScalePadding() : 0;
+
+		this.$redraw();
+	}
+
+	$redraw(duration?: number): void {
+		this.colorScale?.drawColorScale();
+		this.elements?.updateStanfordElements(duration);
+	}
+
+	getOptions(): Options {
+		return new Options();
+	}
+
+	convertData(): void {
+		const data = this.$$.data.targets;
+		const epochs = this.options.epochs;
+
+		data.forEach(d => {
+			d.values.forEach((v, i) => {
+				v.epochs = epochs[i];
+			});
+
+			d.minEpochs = undefined;
+			d.maxEpochs = undefined;
+			d.colors = undefined;
+			d.colorscale = undefined;
+		});
+	}
+
+	initStanfordData(): void {
+		const {config} = this;
+		const target = this.$$.data.targets[0];
+
+		// TODO STANFORD see if (data.js -> orderTargets)+ can be used instead
+		// Make larger values appear on top
+		target.values.sort(compareEpochs);
+
+		// Get array of epochs
+		const epochs = target.values.map(a => a.epochs);
+
+		target.minEpochs = !isNaN(config.scale_min) ? config.scale_min : Math.min(...epochs);
+		target.maxEpochs = !isNaN(config.scale_max) ? config.scale_max : Math.max(...epochs);
+
+		target.colors = isFunction(config.colors) ?
+			config.colors :
+			d3InterpolateHslLong(d3Hsl(250, 1, 0.5), d3Hsl(0, 1, 0.5));
+
+		target.colorscale = d3ScaleSequentialLog(target.colors)
+			.domain([target.minEpochs, target.maxEpochs]);
+	}
+
+	getStanfordPointColor(d) {
+		const target = this.data.targets[0];
+
+		return target.colorscale(d.epochs);
+	}
+
+	setStanfordTooltip(): string | undefined {
+		const {config} = this.$$;
+
+		if (isEmpty(config.tooltip_contents)) {
+			config.tooltip_contents = function(d, defaultTitleFormat, defaultValueFormat, color) {
+				const {data_x} = config;
+				let html = `<table class="${$TOOLTIP.tooltip}"><tbody>`;
+
+				d.forEach(v => {
+					const {id = "", value = 0, epochs = 0, x = ""} = v;
+
+					html += `<tr>
+							<th>${data_x || ""}</th>
+							<th class="value">${defaultTitleFormat(x)}</th>
+						</tr>
+						<tr>
+							<th>${v.id}</th>
+							<th class="value">${defaultValueFormat(value)}</th>
+						</tr>
+						<tr class="${$TOOLTIP.tooltipName}-${id}">
+							<td class="name"><span style="background-color:${
+						color(v)
+					}"></span>Epochs</td>
+							<td class="value">${defaultValueFormat(epochs)}</td>
+						</tr>`;
+				});
+
+				return `${html}</tbody></table>`;
+			};
+		}
+	}
+
+	countEpochsInRegion(region): {value: number, percentage: number} {
+		const $$ = this;
+		const target = $$.data.targets[0];
+
+		const total = target.values.reduce(
+			(accumulator, currentValue) => accumulator + Number(currentValue.epochs),
+			0
+		);
+
+		const value = target.values.reduce((accumulator, currentValue) => {
+			if (pointInRegion(currentValue, region)) {
+				return accumulator + Number(currentValue.epochs);
+			}
+
+			return accumulator;
+		}, 0);
+
+		return {
+			value,
+			percentage: value !== 0 ? +(value / total * 100).toFixed(1) : 0
+		};
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Plugin_tableview_Options.ts.html b/release/3.12.4/doc/Plugin_tableview_Options.ts.html new file mode 100644 index 000000000..d0258d3e7 --- /dev/null +++ b/release/3.12.4/doc/Plugin_tableview_Options.ts.html @@ -0,0 +1,204 @@ + + + + + + Plugin/tableview/Options.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/tableview/Options.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2021 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * TableView plugin option class
+ * @class TableviewOptions
+ * @param {Options} options TableView plugin options
+ * @augments Plugin
+ * @returns {TableviewOptions}
+ * @private
+ */
+export default class Options {
+	constructor() {
+		return {
+			/**
+			 * Set tableview holder selector.
+			 * - **NOTE:** If not set, will append new holder element dynamically right after chart element.
+			 * @name selector
+			 * @memberof plugin-tableview
+			 * @type {string}
+			 * @default undefined
+			 * @example
+			 *   selector: "#table-holder"
+			 */
+			selector: undefined,
+
+			/**
+			 * Set category title text
+			 * @name categoryTitle
+			 * @memberof plugin-tableview
+			 * @type {string}
+			 * @default "Category"
+			 * @example
+			 *   categoryTitle: "#table-holder"
+			 */
+			categoryTitle: "Category",
+
+			/**
+			 * Set category text format function.
+			 * @name categoryFormat
+			 * @memberof plugin-tableview
+			 * @type {Function}
+			 * @returns {string}
+			 * @default function(v) { // will return formatted value according x Axis type }}
+			 * @example
+			 *   categoryFormat: "#table-holder"
+			 */
+			categoryFormat: function(v: Date | number | string): string {
+				let category = v;
+
+				if (this.$$.axis.isCategorized()) {
+					category = this.$$.categoryName(v);
+				} else if (this.$$.axis.isTimeSeries()) {
+					category = (v as Date).toLocaleDateString();
+				}
+
+				return category as string;
+			},
+
+			/**
+			 * Set tableview holder class name.
+			 * @name class
+			 * @memberof plugin-tableview
+			 * @type {string}
+			 * @default undefined
+			 * @example
+			 *   class: "table-class-name"
+			 */
+			class: undefined,
+
+			/**
+			 * Set to apply default style(`.bb-tableview`) to tableview element.
+			 * @name style
+			 * @memberof plugin-tableview
+			 * @type {boolean}
+			 * @default true
+			 * @example
+			 *   style: false
+			 */
+			style: true,
+
+			/**
+			 * Set tableview title text.
+			 * - **NOTE:** If set [title.text](https://naver.github.io/billboard.js/release/latest/doc/Options.html#.title), will be used when this option value is empty.
+			 * @name title
+			 * @memberof plugin-tableview
+			 * @type {string}
+			 * @default undefined
+			 * @example
+			 *   title: "Table Title Text"
+			 */
+			title: undefined,
+
+			/**
+			 * Update tableview from data visibility update(ex. legend toggle).
+			 * @name updateOnToggle
+			 * @memberof plugin-tableview
+			 * @type {boolean}
+			 * @default true
+			 * @example
+			 *   legendToggleUpdate: false
+			 */
+			updateOnToggle: true,
+
+			/**
+			 * Set how null value to be shown.
+			 * @name nullString
+			 * @memberof plugin-tableview
+			 * @type {string}
+			 * @default "-"
+			 * @example
+			 *   nullString: "N/A"
+			 */
+			nullString: "-"
+		};
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Plugin_tableview_index.ts.html b/release/3.12.4/doc/Plugin_tableview_index.ts.html new file mode 100644 index 000000000..32b09b612 --- /dev/null +++ b/release/3.12.4/doc/Plugin_tableview_index.ts.html @@ -0,0 +1,259 @@ + + + + + + Plugin/tableview/index.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/tableview/index.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2021 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {loadConfig} from "../../config/config";
+import {isNumber, tplProcess} from "../../module/util";
+import Plugin from "../Plugin";
+import {defaultStyle, tpl} from "./const";
+import Options from "./Options";
+
+/**
+ * Table view plugin.<br>
+ * Generates table view for bound dataset.
+ * - **NOTE:**
+ *   - Plugins aren't built-in. Need to be loaded or imported to be used.
+ *   - Non required modules from billboard.js core, need to be installed separately.
+ * @class plugin-tableview
+ * @param {object} options table view plugin options
+ * @augments Plugin
+ * @returns {TableView}
+ * @example
+ * // Plugin must be loaded before the use.
+ * <script src="$YOUR_PATH/plugin/billboardjs-plugin-tableview.js"></script>
+ *
+ *  var chart = bb.generate({
+ *     ...
+ *     plugins: [
+ *        new bb.plugin.tableview({
+ *          selector: "#my-table-view",
+ *          categoryTitle: "Category",
+ *          categoryFormat: function(v) {
+ *              // do some transformation
+ *              ...
+ *              return v;
+ *          },
+ *          class: "my-class-name",
+ *          style: true,
+ *          title: "My Data List",
+ *          updateOnToggle: false,
+ *          nullString: "N/A"
+ *        }),
+ *     ]
+ *  });
+ * @example
+ * import {bb} from "billboard.js";
+ * import TableView from "billboard.js/dist/billboardjs-plugin-tableview";
+ *
+ * bb.generate({
+ *     ...
+ *     plugins: [
+ *        new TableView({ ... })
+ *     ]
+ * })
+ */
+export default class TableView extends Plugin {
+	private config;
+	private element;
+
+	constructor(options) {
+		super(options);
+		this.config = new Options();
+
+		return this;
+	}
+
+	$beforeInit(): void {
+		loadConfig.call(this, this.options);
+	}
+
+	$init(): void {
+		const {class: className, selector, style} = this.config;
+		let element = document.querySelector(
+			selector || `.${className || defaultStyle.class}`
+		);
+
+		if (!element) {
+			const chart = this.$$.$el.chart.node();
+
+			element = document.createElement("table");
+			chart.parentNode.insertBefore(element, chart.nextSibling);
+		}
+
+		if (element.tagName !== "TABLE") {
+			const table = document.createElement("table");
+
+			element.appendChild(table);
+			element = table;
+		}
+
+		// append default css style
+		if (style && !document.getElementById(defaultStyle.id)) {
+			const s = document.createElement("style");
+
+			s.id = defaultStyle.id;
+			s.innerHTML = defaultStyle.rule;
+
+			(document.head || document.getElementsByTagName("head")[0])
+				.appendChild(s);
+		}
+
+		element.classList.add(...[style && defaultStyle.class, className].filter(Boolean));
+
+		this.element = element;
+	}
+
+	/**
+	 * Generate table
+	 * @private
+	 */
+	generateTable(): void {
+		const {$$, config, element} = this;
+		const dataToShow = $$.filterTargetsToShow($$.data.targets);
+
+		let thead = tplProcess(tpl.thead, {
+			title: dataToShow.length ? this.config.categoryTitle : ""
+		});
+		let tbody = "";
+		const rows: (number | string)[][] = [];
+
+		dataToShow.forEach(v => {
+			thead += tplProcess(tpl.thead, {title: v.id});
+
+			// make up value rows
+			v.values.forEach((d, i: number) => {
+				if (!rows[i]) {
+					rows[i] = [d.x];
+				}
+
+				rows[i].push(d.value);
+			});
+		});
+
+		rows.forEach(v => {
+			tbody += `<tr>${
+				v.map((d, i) =>
+					tplProcess(i ? tpl.tbody : tpl.tbodyHeader, {
+						value: i === 0 ?
+							config.categoryFormat.bind(this)(d) :
+							(isNumber(d) ? d.toLocaleString() : config.nullString)
+					})
+				).join("")
+			}</tr>`;
+		});
+
+		const rx = /(<\/?(script|img)[^>]*>|<[^>]+><\/[^>]+>)/ig;
+		const r = tplProcess(tpl.body, {
+			...config,
+			title: config.title || $$.config.title_text || "",
+			thead,
+			tbody
+		}).replace(rx, "");
+
+		element.innerHTML = r;
+	}
+
+	$redraw(): void {
+		const {state} = this.$$;
+		const doNotUpdate = state.resizing || (!this.config.updateOnToggle && state.toggling);
+
+		!doNotUpdate && this.generateTable();
+	}
+
+	$willDestroy(): void {
+		this.element.parentNode?.removeChild(this.element);
+
+		// remove default css style when left one chart instance
+		if (this.$$.charts.length === 1) {
+			const s = document.getElementById(defaultStyle.id);
+
+			s?.parentNode?.removeChild(s);
+		}
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Plugin_textoverlap_Options.ts.html b/release/3.12.4/doc/Plugin_textoverlap_Options.ts.html new file mode 100644 index 000000000..574590824 --- /dev/null +++ b/release/3.12.4/doc/Plugin_textoverlap_Options.ts.html @@ -0,0 +1,138 @@ + + + + + + Plugin/textoverlap/Options.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/textoverlap/Options.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * TextOverlap plugin option class
+ * @class TextOverlapOptions
+ * @param {Options} options TextOverlap plugin options
+ * @augments Plugin
+ * @returns {TextOverlapOptions}
+ * @private
+ */
+export default class Options {
+	constructor() {
+		return {
+			/**
+			 * Selector string for target text nodes within chart element.
+			 * - **NOTE:** If no value is given, defaults to data label text elements.
+			 * @name selector
+			 * @memberof plugin-textoverlap
+			 * @type {string}
+			 * @default undefined
+			 * @example
+			 *  // selector for data label text nodes
+			 * selector: ".bb-texts text"
+			 */
+			selector: undefined,
+
+			/**
+			 * Extent of label overlap prevention.
+			 * @name extent
+			 * @memberof plugin-textoverlap
+			 * @type {number}
+			 * @default 1
+			 * @example
+			 * 	extent: 1
+			 */
+			extent: 1,
+
+			/**
+			 * Minimum area needed to show a data label.
+			 * @name area
+			 * @memberof plugin-textoverlap
+			 * @type {number}
+			 * @default 0
+			 * @example
+			 * 	area: 0
+			 */
+			area: 0
+		};
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/Plugin_textoverlap_index.ts.html b/release/3.12.4/doc/Plugin_textoverlap_index.ts.html new file mode 100644 index 000000000..2a8a5da40 --- /dev/null +++ b/release/3.12.4/doc/Plugin_textoverlap_index.ts.html @@ -0,0 +1,222 @@ + + + + + + Plugin/textoverlap/index.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

Plugin/textoverlap/index.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import type {d3Selection} from "billboard.js/types/types";
+import {Delaunay as d3Delaunay} from "d3-delaunay";
+import {polygonArea as d3PolygonArea, polygonCentroid as d3PolygonCentroid} from "d3-polygon";
+import {loadConfig} from "../../config/config";
+import Plugin from "../Plugin";
+import Options from "./Options";
+
+/**
+ * TextOverlap plugin<br>
+ * Prevents label overlap using [Voronoi layout](https://en.wikipedia.org/wiki/Voronoi_diagram).
+ * - **NOTE:**
+ *   - Plugins aren't built-in. Need to be loaded or imported to be used.
+ *   - Non required modules from billboard.js core, need to be installed separately.
+ *   - Appropriate and works for axis based chart.
+ * - **Required modules:**
+ *   - [d3-polygon](https://github.com/d3/d3-polygon)
+ *   - [d3-delaunay](https://github.com/d3/d3-delaunay)
+ * @class plugin-textoverlap
+ * @requires d3-polygon
+ * @requires d3-delaunay
+ * @param {object} options TextOverlap plugin options
+ * @augments Plugin
+ * @returns {TextOverlap}
+ * @example
+ * // Plugin must be loaded before the use.
+ * <script src="$YOUR_PATH/plugin/billboardjs-plugin-textoverlap.js"></script>
+ *
+ *  var chart = bb.generate({
+ *     data: {
+ *     	  columns: [ ... ]
+ *     },
+ *     ...
+ *     plugins: [
+ *        new bb.plugin.textoverlap({
+ *          selector: ".bb-texts text",
+ *          extent: 8,
+ *          area: 3
+ *        })
+ *     ]
+ *  });
+ * @example
+ * 	import {bb} from "billboard.js";
+ * import TextOverlap from "billboard.js/dist/billboardjs-plugin-textoverlap";
+ *
+ * bb.generate({
+ *     plugins: [
+ *        new TextOverlap({ ... })
+ *     ]
+ * })
+ */
+export default class TextOverlap extends Plugin {
+	private config;
+
+	constructor(options?: Options) {
+		super(options);
+		this.config = new Options();
+
+		return this;
+	}
+
+	$init(): void {
+		loadConfig.call(this, this.options);
+	}
+
+	$redraw(): void {
+		const {$$: {$el}, config: {selector}} = this;
+		const text = selector ? $el.main.selectAll(selector) : $el.text;
+
+		!text.empty() && this.preventLabelOverlap(text);
+	}
+
+	/**
+	 * Generates the voronoi layout for data labels
+	 * @param {Array} points Indices values
+	 * @returns {object} Voronoi layout points and corresponding Data points
+	 * @private
+	 */
+	generateVoronoi(points: [number, number][]) {
+		const {$$} = this;
+		const {scale} = $$;
+		const [min, max] = ["x", "y"].map(v => scale[v].domain());
+
+		[min[1], max[0]] = [max[0], min[1]];
+
+		return d3Delaunay
+			.from(points)
+			.voronoi([
+				...min as [number, number],
+				...max as [number, number]
+			]); // bounds = [xmin, ymin, xmax, ymax], default value: [0, 0, 960, 500]
+	}
+
+	/**
+	 * Set text label's position to preventg overlap.
+	 * @param {d3Selection} text target text selection
+	 * @private
+	 */
+	preventLabelOverlap(text: d3Selection): void {
+		const {extent, area} = this.config;
+		const points = text.data().map(v => [v.index, v.value]) as [number, number][];
+		const voronoi = this.generateVoronoi(points);
+		let i = 0;
+
+		text.each(function() {
+			const cell = voronoi.cellPolygon(i);
+
+			if (cell && this) {
+				const [x, y] = points[i];
+				// @ts-ignore wrong type definiton for d3PolygonCentroid
+				const [cx, cy] = d3PolygonCentroid(cell);
+
+				// @ts-ignore wrong type definiton for d3PolygonArea
+				const polygonArea = Math.abs(d3PolygonArea(cell));
+
+				const angle = Math.round(Math.atan2(cy - y, cx - x) / Math.PI * 2);
+				const xTranslate = extent * (angle === 0 ? 1 : -1);
+				const yTranslate = angle === -1 ? -extent : extent + 5;
+
+				const txtAnchor = Math.abs(angle) === 1 ?
+					"middle" :
+					(angle === 0 ? "start" : "end");
+
+				this.style.display = polygonArea < area ? "none" : "";
+				this.setAttribute("text-anchor", txtAnchor);
+				this.setAttribute("dy", `0.${angle === 1 ? 71 : 35}em`);
+				this.setAttribute("transform", `translate(${xTranslate}, ${yTranslate})`);
+			}
+
+			i++;
+		});
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/bb.html b/release/3.12.4/doc/bb.html new file mode 100644 index 000000000..404d021b2 --- /dev/null +++ b/release/3.12.4/doc/bb.html @@ -0,0 +1,1020 @@ + + + + + + bb - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

bb

+ + + + + + + +
+ +
+ +

+ + Namespace + +

+ + +
+ +
+ +
+ + + + + + +

bb

+ + + + + + +
+ + + +
Source:
+
+ + + +
Version:
+
  • 3.12.4
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +

Members

+ + + +

(static) instance

+ + + + + +
+ +
Description:
+
  • An array containing instance created

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
instance + + +Array + + + + +

instance array

+ + + + + + +
+

An array containing instance created

+
+ + + + + + + +
Example
+ +
// generate charts
+ var chart1 = bb.generate(...);
+ var chart2 = bb.generate(...);
+
+ bb.instance;  // [ chart1, chart2, ... ]
+ + + + + +

(static) plugin

+ + + + + +
+ +
Description:
+
  • Namespace for plugins

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
plugin + + +object + + + + +

plugin namespace

+ + + + + + +
+

Namespace for plugins

+
+ + + + + + + +
Example
+ +
// Stanford diagram plugin
+ bb.plugin.stanford;
+ + + + + +

(static) version

+ + + + + +
+ +
Description:
+
  • Version information

+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
version + + +string + + + + +

version

+ + + + + + +
+

Version information

+
+ + + + + + + +
Example
+ +
bb.version;  // "1.0.0"
+ + + + + + + +

Methods

+ + + + + + +

(static) defaults(options) → {Options}

+ + + + + + +
+ +
Description:
+
  • Set or get global default options.

    +
      +
    • NOTE: +
        +
      • The options values settings are valid within page context only.
      • +
      • If is called multiple times, will override the last value.
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+ +
+ + + +
+ + + + + + + + + + + +
Example
+ +
// Set same option value as for `.generate()`
+bb.defaults({
+  data: {
+    type: "bar"
+  }
+});
+
+bb.defaults();  // {data:{type: "bar"}}
+
+// data.type defaults to 'bar'
+var chart = bb.generate({ ... });
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +Options + + + + +

chart options

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +Options + + + +
+
+ + + + + + + + + + +

(static) generate(config) → {Chart}

+ + + + + + +
+ +
Description:
+
  • Generate chart

    +
      +
    • NOTE: Bear in mind for the possiblity of throwing an error, during the generation when: +
        +
      • Unused option value is given. +
          +
        • ex) For data.type="pie" option, setting 'axis' option can cause unexpected generation error.
        • +
        +
      • +
      • Insufficient value is given for certain option used. +
          +
        • ex) data: { x: "x", columns: [["x"], ["data1", 30, 200, 100]] }
        • +
        +
      • +
      +
    • +
+ + + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
See:
+
+
    +
  • Options for different generation options
  • + +
  • Chart for different methods API
  • +
+
+ + + +
+ + + + + + + + + + + +
Examples
+ +
<!-- chart holder -->
+<div id="LineChart"></div>
+ +
// Generate chart with options
+ var chart = bb.generate({
+     "bindto": "#LineChart"
+     "data": {
+         "columns": [
+             ["data1", 30, 200, 100, 400, 150, 250],
+             ["data2", 50, 20, 10, 40, 15, 25]
+          ],
+         "type": "line"
+     }
+ });
+
+ // call some API
+ // ex) get the data of 'data1'
+ chart.data("data1");
+ +
// Generate chart by importing ESM
+// Import types to be used only, where this will make smaller bundle size.
+import bb, {
+  area,
+  areaLineRange,
+  areaSpline,
+  areaSplineRange,
+  areaStep,
+  bar,
+  bubble,
+  donut,
+  gauge,
+  line,
+  pie,
+  polar,
+  radar,
+  scatter,
+  spline,
+  step
+}
+
+bb.generate({
+     "bindto": "#LineChart"
+     "data": {
+         "columns": [
+             ["data1", 30, 200, 100, 400, 150, 250],
+             ["data2", 50, 20, 10, 40, 15, 25]
+          ]
+     },
+     type: line(),
+
+     // or
+     types: {
+       data1: bar(),
+       data2: step()
+     }
+});
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
config + + +Options + + + + +

chart options

+ + + + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +Chart + + + +
+
+ + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/release/3.12.4/doc/config_Options_Options.ts.html b/release/3.12.4/doc/config_Options_Options.ts.html new file mode 100644 index 000000000..47e00b760 --- /dev/null +++ b/release/3.12.4/doc/config_Options_Options.ts.html @@ -0,0 +1,130 @@ + + + + + + config/Options/Options.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/Options.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+// common
+import boost from "./common/boost";
+import color from "./common/color";
+import legend from "./common/legend";
+import main from "./common/main";
+import title from "./common/title";
+import tooltip from "./common/tooltip";
+import data from "./data/data";
+import interaction from "./interaction/interaction";
+
+import {deepClone} from "../../module/util";
+
+/**
+ * Class to set options on generating chart.
+ * - It's instantiated internally, not exposed for public.
+ * @class Options
+ * @see {@link bb.generate} to use these options on generating the chart
+ */
+export default class Options {
+	static data = {};
+
+	static setOptions(options: any[]) {
+		this.data = options
+			.reduce((a, c) => ({...a, ...c}), this.data);
+	}
+
+	constructor() {
+		return deepClone(
+			main,
+			boost,
+			data,
+			color,
+			interaction,
+			legend,
+			title,
+			tooltip,
+			Options.data
+		);
+	}
+}
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_axis_axis.ts.html b/release/3.12.4/doc/config_Options_axis_axis.ts.html new file mode 100644 index 000000000..7f12312ac --- /dev/null +++ b/release/3.12.4/doc/config_Options_axis_axis.ts.html @@ -0,0 +1,150 @@ + + + + + + config/Options/axis/axis.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/axis/axis.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import x from "./x";
+import y from "./y";
+import y2 from "./y2";
+
+/**
+ * y Axis  config options
+ */
+export default {
+	/**
+	 * Switch x and y axis position.
+	 * @name axis․rotated
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @example
+	 * axis: {
+	 *   rotated: true
+	 * }
+	 */
+	axis_rotated: false,
+
+	/**
+	 * Set axis tooltip.
+	 * - **NOTE:**
+	 *   - When enabled, will disable default focus grid line.
+	 *   - For `timeseries` x Axis, tootlip will be formatted using x Axis' tick format.
+	 *   - For `category` x Axis, tootlip will be displaying scales' value text.
+	 * @name axis․tooltip
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @property {object} axis Axis object
+	 * @property {boolean} [axis.tooltip=false] Show tooltip or not.
+	 * @property {string|object} [axis.tooltip.backgroundColor] Set axis tooltip text background colors.
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.AxisTooltip)
+	 * @example
+	 * axis: {
+	 *     tooltip: true, // default background color is
+	 *
+	 *     // set backgound color for axis tooltip texts
+	 *     tooltip: {
+	 *          backgroundColor: "red",
+	 *
+	 *          // set differenct backround colors per axes
+	 *          // NOTE: In this case, only specified axes tooltip will appear.
+	 *          backgroundColor: {
+	 *               x: "green",
+	 *               y: "yellow",
+	 *               y2: "red"
+	 *          }
+	 *     }
+	 * }
+	 */
+	axis_tooltip: <boolean | {
+		backgroundColor?: string | {x?: string, y?: string, y2?: string}
+	}>false,
+	...x,
+	...y,
+	...y2
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_axis_x.ts.html b/release/3.12.4/doc/config_Options_axis_x.ts.html new file mode 100644 index 000000000..3877a0bf2 --- /dev/null +++ b/release/3.12.4/doc/config_Options_axis_x.ts.html @@ -0,0 +1,834 @@ + + + + + + config/Options/axis/x.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/axis/x.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * x Axis config options
+ */
+export default {
+	/**
+	 * Set clip-path attribute for x axis element
+	 * @name axis․x․clipPath
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo]()
+	 * @example
+	 * // don't set 'clip-path' attribute
+	 * clipPath: false
+	 */
+	axis_x_clipPath: true,
+
+	/**
+	 * Show or hide x axis.
+	 * @name axis․x․show
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     show: false
+	 *   }
+	 * }
+	 */
+	axis_x_show: true,
+
+	/**
+	 * Force the x axis to interact as single rather than multiple x axes.
+	 * - **NOTE:** The tooltip event will be triggered nearing each data points(for multiple xs) rather than x axis based(as single x does) in below condition:
+	 *   - for `bubble` & `scatter` type
+	 *   - when `data.xs` is set
+	 *   - when `tooltip.grouped=false` is set
+	 *     - `tooltip.grouped` options will take precedence over `axis.forceSingleX` option.
+	 * @name axis․x․forceAsSingle
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.ForceAsSingle)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *      // will work as single x axis
+	 *      forceAsSingle: true
+	 *   }
+	 * }
+	 */
+	axis_x_forceAsSingle: false,
+
+	/**
+	 * Set type of x axis.<br><br>
+	 * **Available Values:**
+	 * - category
+	 * - indexed
+	 * - log
+	 * - timeseries
+	 *
+	 * **NOTE:**<br>
+	 * - **log** type:
+	 *   - the x values specified by [`data.x`](#.data%25E2%2580%25A4x)(or by any equivalent option), must be exclusively-positive.
+	 *   - x axis min value should be >= 0.
+	 *   - for 'category' type, `data.xs` option isn't supported.
+	 * @name axis․x․type
+	 * @memberof Options
+	 * @type {string}
+	 * @default indexed
+	 * @see [Demo: indexed](https://naver.github.io/billboard.js/demo/#Chart.AreaChart)
+	 * @see [Demo: timeseries](https://naver.github.io/billboard.js/demo/#Chart.TimeseriesChart)
+	 * @see [Demo: category](https://naver.github.io/billboard.js/demo/#Data.CategoryData)
+	 * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     type: "timeseries"
+	 *   }
+	 * }
+	 */
+	axis_x_type: <"category" | "indexed" | "log" | "timeseries">"indexed",
+
+	/**
+	 * Set how to treat the timezone of x values.<br>
+	 * If true, treat x value as localtime. If false, convert to UTC internally.
+	 * @name axis․x․localtime
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     localtime: false
+	 *   }
+	 * }
+	 */
+	axis_x_localtime: true,
+
+	/**
+	 * Set category names on category axis.
+	 * This must be an array that includes category names in string. If category names are included in the date by data.x option, this is not required.
+	 * @name axis․x․categories
+	 * @memberof Options
+	 * @type {Array}
+	 * @default []
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     categories: ["Category 1", "Category 2", ...]
+	 *   }
+	 * }
+	 */
+	axis_x_categories: <string[]>[],
+
+	/**
+	 * centerize ticks on category axis.
+	 * @name axis․x․tick․centered
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       centered: true
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_centered: false,
+
+	/**
+	 * A function to format tick value. Format string is also available for timeseries data.
+	 * @name axis․x․tick․format
+	 * @memberof Options
+	 * @type {Function|string}
+	 * @default undefined
+	 * @see [D3's time specifier](https://d3js.org/d3-time-format#locale_format)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *        // for timeseries, a 'datetime' object is given as parameter
+	 *       format: function(x) {
+	 *           return x.getFullYear();
+	 *       }
+	 *
+	 *       // for category, index(Number) and categoryName(String) are given as parameter
+	 *       format: function(index, categoryName) {
+	 *           return categoryName.substr(0, 10);
+	 *       },
+	 *
+	 *        // for timeseries format specifier
+	 *        format: "%Y-%m-%d %H:%M:%S"
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_format: <Function | string | undefined>undefined,
+
+	/**
+	 * Setting for culling ticks.
+	 * - `true`: the ticks will be culled, then only limited tick text will be shown.<br>
+	 *   This option does not hide the tick lines by default, if want to hide tick lines, set `axis.x.tick.culling.lines=false`.
+	 * - `false`: all of ticks will be shown.<br><br>
+	 * The number of ticks to be shown can be chaned by `axis.x.tick.culling.max`.
+	 * @name axis․x․tick․culling
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default
+	 * `true` for indexed axis and timeseries axis, `false` for category axis
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       culling: false
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_culling: {},
+
+	/**
+	 * The number of tick texts will be adjusted to less than this value.
+	 * @name axis․x․tick․culling․max
+	 * @memberof Options
+	 * @type {number}
+	 * @default 10
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       culling: {
+	 *           max: 5
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_culling_max: 10,
+
+	/**
+	 * Control visibility of tick lines within culling option, along with tick text.
+	 * @name axis․x․tick․culling․lines
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       culling: {
+	 *           lines: false,
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_culling_lines: true,
+
+	/**
+	 * The number of x axis ticks to show.<br><br>
+	 * This option hides tick lines together with tick text. If this option is used on timeseries axis, the ticks position will be determined precisely and not nicely positioned (e.g. it will have rough second value).
+	 * @name axis․x․tick․count
+	 * @memberof Options
+	 * @type {number}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       count: 5
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_count: <number | undefined>undefined,
+
+	/**
+	 * Show or hide x axis tick line.
+	 * @name axis․x․tick․show
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       show: false
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_show: true,
+
+	/**
+	 * Show or hide x axis tick text.
+	 * @name axis․x․tick․text․show
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       text: {
+	 *           show: false
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_text_show: true,
+
+	/**
+	 * Set the first/last axis tick text to be positioned inside of the chart on non-rotated axis.
+	 * @name axis․x․tick․text․inner
+	 * @memberof Options
+	 * @type {boolean|object}
+	 * @default false
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickInner)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       text: {
+	 *          inner: true,
+	 *
+	 *          // or specify each position of the first and last tick text
+	 *          inner: {
+	 *       	   first: true,
+	 *       	   last: true
+	 *       	}
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_text_inner: <{first?: boolean, last?: boolean} | boolean>false,
+
+	/**
+	 * Set the x Axis tick text's position relatively its original position
+	 * @name axis․x․tick․text․position
+	 * @memberof Options
+	 * @type {object}
+	 * @default {x: 0, y:0}
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       text: {
+	 *         position: {
+	 *           x: 10,
+	 *           y: 10
+	 *         }
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_text_position: {x: 0, y: 0},
+
+	/**
+	 * Fit x axis ticks.
+	 * - **true**: ticks will be shown according to x value of the data points.
+	 * - **false**: ticks will be shown as to have same intervals.
+	 * @name axis․x․tick․fit
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickFitting)
+	 * @see [Demo: for timeseries zoom](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickTimeseries)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       fit: false
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_fit: true,
+
+	/**
+	 * Set the x values of ticks manually.<br><br>
+	 * If this option is provided, the position of the ticks will be determined based on those values.<br>
+	 * This option works with `timeseries` data and the x values will be parsed accoding to the type of the value and data.xFormat option.
+	 * @name axis․x․tick․values
+	 * @memberof Options
+	 * @type {Array|Function}
+	 * @default null
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       values: [1, 2, 4, 8, 16, 32, ...],
+	 *
+	 *       // an Array value should be returned
+	 *       values: function() {
+	 *       	return [ ... ];
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_values: <(string | Date | number)[] | (() => number[]) | null>null,
+
+	/**
+	 * Rotate x axis tick text if there is not enough space for 'category' and 'timeseries' type axis.
+	 * - **NOTE:** The conditions where `autorotate` is enabled are:
+	 *   - axis.x.type='category' or 'timeseries
+	 *   - axis.x.tick.multiline=false
+	 *   - axis.x.tick.culling=false
+	 *   - axis.x.tick.fit=true
+	 * - **NOTE:** axis.x.tick.clippath=false is necessary for calculating the overflow padding between the end of x axis and the width of the SVG
+	 * @name axis․x․tick․autorotate
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickAutorotate)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       rotate: 15,
+	 *       autorotate: true,
+	 *       multiline: false,
+	 *       culling: false,
+	 *       fit: true
+	 *     },
+	 *     clipPath: false
+	 *   }
+	 * }
+	 */
+	axis_x_tick_autorotate: false,
+
+	/**
+	 * Rotate x axis tick text.
+	 * - If you set negative value, it will rotate to opposite direction.
+	 * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `false`.
+	 * - As long as `axis_x_tick_fit` is set to `true` it will calculate an overflow for the y2 axis and add this value to the right padding.
+	 * @name axis․x․tick․rotate
+	 * @memberof Options
+	 * @type {number}
+	 * @default 0
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.RotateXAxisTickText)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       rotate: 60
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_rotate: 0,
+
+	/**
+	 * Show x axis outer tick.
+	 * @name axis․x․tick․outer
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       outer: false
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_outer: true,
+
+	/**
+	 * Set tick text to be multiline
+	 * - **NOTE:**
+	 *  > When x tick text contains `\n`, it's used as line break and 'axis.x.tick.width' option is ignored.
+	 * @name axis․x․tick․multiline
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.XAxisTickMultiline)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       multiline: false
+	 *     }
+	 *   }
+	 * }
+	 * @example
+	 * // example of line break with '\n'
+	 * // In this case, 'axis.x.tick.width' is ignored
+	 * data: {
+	 *    x: "x",
+	 *    columns: [
+	 *        ["x", "long\ntext", "Another\nLong\nText"],
+	 *        ...
+	 *    ],
+	 * }
+	 */
+	axis_x_tick_multiline: true,
+
+	/**
+	 * Set tick width
+	 * - **NOTE:**
+	 *  > When x tick text contains `\n`, this option is ignored.
+	 * @name axis․x․tick․width
+	 * @memberof Options
+	 * @type {number}
+	 * @default null
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       width: 50
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_width: <number | null>null,
+
+	/**
+	 * Set to display system tooltip(via `<title>` element) for tick text
+	 * - **NOTE:** Only available for category axis type (`axis.x.type='category'`)
+	 * @name axis․x․tick․tooltip
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     tick: {
+	 *       tooltip: true
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_tick_tooltip: false,
+
+	/**
+	 * Set max value of x axis range.
+	 * @name axis․x․max
+	 * @memberof Options
+	 * @property {number} max Set the max value
+	 * @property {boolean} [max.fit=false] When specified `max.value` is greater than the bound data value, setting `true` will make x axis max to be fitted to the bound data max value.
+	 * - **NOTE:** If the bound data max value is greater than the `max.value`, the x axis max will be limited as the given `max.value`.
+	 * @property {number} [max.value] Set the max value
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     max: 100,
+	 *
+	 *     max: {
+	 *       // 'fit=true' will make x axis max to be limited as the bound data value max when 'max.value' is greater.
+	 *       // - when bound data max is '10' and max.value: '100' ==>  x axis max will be '10'
+	 *       // - when bound data max is '1000' and max.value: '100' ==> x axis max will be '100'
+	 *       fit: true,
+	 *       value: 100
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_max: <number | undefined>undefined,
+
+	/**
+	 * Set min value of x axis range.
+	 * @name axis․x․min
+	 * @memberof Options
+	 * @property {number} min Set the min value
+	 * @property {boolean} [min.fit=false] When specified `min.value` is lower than the bound data value, setting `true` will make x axis min to be fitted to the bound data min value.
+	 * - **NOTE:** If the bound data min value is lower than the `min.value`, the x axis min will be limited as the given `min.value`.
+	 * @property {number} [min.value] Set the min value
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     min: -100,
+	 *
+	 *     min: {
+	 *       // 'fit=true' will make x axis min to be limited as the bound data value min when 'min.value' is lower.
+	 *       // - when bound data min is '-10' and min.value: '-100' ==>  x axis min will be '-10'
+	 *       // - when bound data min is '-1000' and min.value: '-100' ==> x axis min will be '-100'
+	 *       fit: true,
+	 *       value: -100
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_min: <number | undefined>undefined,
+
+	/**
+	 * Change the direction of x axis.<br><br>
+	 * If true set, the direction will be `right -> left`.
+	 * @name axis․x․inverted
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis)
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     inverted: true
+	 *   }
+	 * }
+	 */
+	axis_x_inverted: false,
+
+	/**
+	 * Set padding for x axis.<br><br>
+	 * If this option is set, the range of x axis will increase/decrease according to the values.
+	 * If no padding is needed in the rage of x axis, 0 should be set.
+	 * By default, left/right padding are set depending on x axis type or chart types.
+	 * - **NOTE:**
+	 *   - The meaning of padding values, differs according axis types:<br>
+	 *     - **category/indexed:** The unit of tick value
+	 *       ex. the given value `1`, is same as the width of 1 tick width
+	 *     - **timeseries:** Numeric time value
+	 *       ex. the given value `1000*60*60*24`, which is numeric time equivalent of a day, is same as the width of 1 tick width
+	 *   - If want values to be treated as pixels, specify `unit:"px"`.
+	 *     - The pixel value will be convered based on the scale values. Hence can not reflect accurate padding result.
+	 * @name axis․x․padding
+	 * @memberof Options
+	 * @type {object|number}
+	 * @default {}
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     padding: {
+	 *       // when axis type is 'category'
+	 *       left: 1,  // set left padding width of equivalent value of a tick's width
+	 *       right: 0.5  // set right padding width as half of equivalent value of tick's width
+	 *
+	 *       // when axis type is 'timeseries'
+	 *       left: 1000*60*60*24,  // set left padding width of equivalent value of a day tick's width
+	 *       right: 1000*60*60*12   // set right padding width as half of equivalent value of a day tick's width
+	 *     },
+	 *
+	 *     // or set both values at once.
+	 *     padding: 10,
+	 *
+	 *     // or set padding values as pixel unit.
+	 *     padding: {
+	 *       left: 100,
+	 *       right: 50,
+	 *       unit: "px"
+	 *     },
+	 *   }
+	 * }
+	 */
+	axis_x_padding: <number | {left?: number, right?: number}>{},
+
+	/**
+	 * Set height of x axis.<br><br>
+	 * The height of x axis can be set manually by this option. If you need more space for x axis, please use this option for that. The unit is pixel.
+	 * @name axis․x․height
+	 * @memberof Options
+	 * @type {number}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     height: 20
+	 *   }
+	 * }
+	 */
+	axis_x_height: <number | undefined>undefined,
+
+	/**
+	 * Set default extent for subchart and zoom. This can be an array or function that returns an array.
+	 * @name axis․x․extent
+	 * @memberof Options
+	 * @type {Array|Function}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     // extent range as a pixel value
+	 *     extent: [0, 200],
+	 *
+	 *     // when axis is 'timeseries', parsable datetime string
+	 *     extent: ["2019-03-01", "2019-03-05"],
+	 *
+	 *     // return extent value
+	 *     extent: function(domain, scale) {
+	 *    	 var extent = domain.map(function(v) {
+	 *     	    return scale(v);
+	 *     	 });
+	 *
+	 *   	 // it should return a format of array
+	 *   	 // ex) [0, 584]
+	 *     	 return extent;
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_extent: <(number | string)[] | Function | undefined>undefined,
+
+	/**
+	 * Set label on x axis.<br><br>
+	 * You can set x axis label and change its position by this option.
+	 * `string` and `object` can be passed and we can change the poisiton by passing object that has position key.<br>
+	 * Available position differs according to the axis direction (vertical or horizontal).
+	 * If string set, the position will be the default.
+	 *
+	 *  - **If it's horizontal axis:**
+	 *    - inner-right [default]
+	 *    - inner-center
+	 *    - inner-left
+	 *    - outer-right
+	 *    - outer-center
+	 *    - outer-left
+	 *  - **If it's vertical axis:**
+	 *    - inner-top [default]
+	 *    - inner-middle
+	 *    - inner-bottom
+	 *    - outer-top
+	 *    - outer-middle
+	 *    - outer-bottom
+	 * @name axis․x․label
+	 * @memberof Options
+	 * @type {string|object}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   x: {
+	 *     label: "Your X Axis"
+	 *   }
+	 * }
+	 *
+	 * axis: {
+	 *   x: {
+	 *     label: {
+	 *        text: "Your X Axis",
+	 *        position: "outer-center"
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_x_label: {},
+
+	/**
+	 * Set additional axes for x Axis.
+	 * - **NOTE:** Axis' scale is based on x Axis value if domain option isn't set.
+	 *
+	 * Each axis object should consist with following options:
+	 *
+	 * | Name | Type | Default | Description |
+	 * | --- | --- | --- | --- |
+	 * | domain | Array | - | Set the domain value |
+	 * | tick.outer | boolean | true | Show outer tick |
+	 * | tick.format | Function | - | Set formatter for tick text |
+	 * | tick.count | Number | - | Set the number of y axis ticks |
+	 * | tick.values | Array | - | Set tick values manually |
+	 * @name axis․x․axes
+	 * @memberof Options
+	 * @type {Array}
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes)
+	 * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain)
+	 * @example
+	 * x: {
+	 *    axes: [
+	 *      {
+	 *        // if set, will not be correlated with the main x Axis domain value
+	 *        domain: [0, 1000],
+	 *        tick: {
+	 *          outer: false,
+	 *          format: function(x) {
+	 *             return x + "%";
+	 *          },
+	 *          count: 2,
+	 *          values: [10, 20, 30]
+	 *        }
+	 *      },
+	 *      ...
+	 *    ]
+	 * }
+	 */
+	axis_x_axes: <object[]>[]
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_axis_y.ts.html b/release/3.12.4/doc/config_Options_axis_y.ts.html new file mode 100644 index 000000000..a33daff03 --- /dev/null +++ b/release/3.12.4/doc/config_Options_axis_y.ts.html @@ -0,0 +1,597 @@ + + + + + + config/Options/axis/y.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/axis/y.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * y Axis  config options
+ */
+export default {
+	/**
+	 * Set clip-path attribute for y axis element
+	 * - **NOTE**: `clip-path` attribute for y Axis is set only when `axis.y.inner` option is true.
+	 * @name axis․y․clipPath
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * // don't set 'clip-path' attribute
+	 * clipPath: false
+	 */
+	axis_y_clipPath: true,
+
+	/**
+	 * Show or hide y axis.
+	 * @name axis․y․show
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     show: false
+	 *   }
+	 * }
+	 */
+	axis_y_show: true,
+
+	/**
+	 * Set type of y axis.<br><br>
+	 * **Available Values:**
+	 *  - indexed
+	 *  - log
+	 *  - timeseries
+	 *
+	 * **NOTE:**<br>
+	 * - **log** type:
+	 *   - the bound data values must be exclusively-positive.
+	 *   - y axis min value should be >= 0.
+	 *   - [`data.groups`](#.data%25E2%2580%25A4groups)(stacked data) option aren't supported.
+	 *
+	 * @name axis․y․type
+	 * @memberof Options
+	 * @type {string}
+	 * @default "indexed"
+	 * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales)
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     type: "log"
+	 *   }
+	 * }
+	 */
+	axis_y_type: <"indexed" | "log" | "timeseries">"indexed",
+
+	/**
+	 * Set max value of y axis.
+	 * - **NOTE:** Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0).
+	 * @name axis․y․max
+	 * @memberof Options
+	 * @type {number}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     max: 1000
+	 *   }
+	 * }
+	 */
+	axis_y_max: <number | undefined>undefined,
+
+	/**
+	 * Set min value of y axis.
+	 * - **NOTE:**
+	 *   Padding will be added based on this value, so if you don't need the padding, please set axis.y.padding to disable it (e.g. axis.y.padding = 0).
+	 * @name axis․y․min
+	 * @memberof Options
+	 * @type {number}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     min: 1000
+	 *   }
+	 * }
+	 */
+	axis_y_min: <number | undefined>undefined,
+
+	/**
+	 * Change the direction of y axis.<br><br>
+	 * If true set, the direction will be `top -> bottom`.
+	 * @name axis․y․inverted
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis)
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     inverted: true
+	 *   }
+	 * }
+	 */
+	axis_y_inverted: false,
+
+	/**
+	 * Set center value of y axis.
+	 * @name axis․y․center
+	 * @memberof Options
+	 * @type {number}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     center: 0
+	 *   }
+	 * }
+	 */
+	axis_y_center: <number | undefined>undefined,
+
+	/**
+	 * Show y axis inside of the chart.
+	 * @name axis․y․inner
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     inner: true
+	 *   }
+	 * }
+	 */
+	axis_y_inner: false,
+
+	/**
+	 * Set label on y axis.<br><br>
+	 * You can set y axis label and change its position by this option. This option works in the same way as [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label).
+	 * @name axis․y․label
+	 * @memberof Options
+	 * @type {string|object}
+	 * @default {}
+	 * @see [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label) for position string value.
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     label: "Your Y Axis"
+	 *   }
+	 * }
+	 *
+	 * axis: {
+	 *   y: {
+	 *     label: {
+	 *        text: "Your Y Axis",
+	 *        position: "outer-middle"
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_label: <string | object>{},
+
+	/**
+	 * Set formatter for y axis tick text.<br><br>
+	 * This option accepts d3.format object as well as a function you define.
+	 * @name axis․y․tick․format
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       format: function(x) {
+	 *           return x.getFullYear();
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_format: <Function | undefined>undefined,
+
+	/**
+	 * Setting for culling ticks.
+	 * - `true`: the ticks will be culled, then only limited tick text will be shown.<br>
+	 *   This option does not hide the tick lines by default, if want to hide tick lines, set `axis.y.tick.culling.lines=false`.
+	 * - `false`: all of ticks will be shown.<br><br>
+	 * The number of ticks to be shown can be chaned by `axis.y.tick.culling.max`.
+	 * @name axis․y․tick․culling
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       culling: false
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_culling: false,
+
+	/**
+	 * The number of tick texts will be adjusted to less than this value.
+	 * @name axis․y․tick․culling․max
+	 * @memberof Options
+	 * @type {number}
+	 * @default 5
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       culling: {
+	 *           max: 5
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_culling_max: 5,
+
+	/**
+	 * Control visibility of tick lines within culling option, along with tick text.
+	 * @name axis․y․tick․culling․lines
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       culling: {
+	 *           lines: false,
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_culling_lines: true,
+
+	/**
+	 * Show y axis outer tick.
+	 * @name axis․y․tick․outer
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       outer: false
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_outer: true,
+
+	/**
+	 * Set y axis tick values manually.
+	 * @name axis․y․tick․values
+	 * @memberof Options
+	 * @type {Array|Function}
+	 * @default null
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       values: [100, 1000, 10000],
+	 *
+	 *       // an Array value should be returned
+	 *       values: function() {
+	 *       	return [ ... ];
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_values: <number[] | (() => number[]) | null>null,
+
+	/**
+	 * Rotate y axis tick text.
+	 * - If you set negative value, it will rotate to opposite direction.
+	 * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `true`.
+	 * @name axis․y․tick․rotate
+	 * @memberof Options
+	 * @type {number}
+	 * @default 0
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       rotate: 60
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_rotate: 0,
+
+	/**
+	 * Set the number of y axis ticks.<br><br>
+	 * - **NOTE:** The position of the ticks will be calculated precisely, so the values on the ticks will not be rounded nicely. In the case, axis.y.tick.format or axis.y.tick.values will be helpful.
+	 * @name axis․y․tick․count
+	 * @memberof Options
+	 * @type {number}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       count: 5
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_count: <number | undefined>undefined,
+
+	/**
+	 * Show or hide y axis tick line.
+	 * @name axis․y․tick․show
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText)
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       show: false
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_show: true,
+
+	/**
+	 * Set axis tick step(interval) size.
+	 * - **NOTE:** Will be ignored if `axis.y.tick.count` or `axis.y.tick.values` options are set.
+	 * @name axis․y․tick․stepSize
+	 * @memberof Options
+	 * @type {number}
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.StepSizeForYAxis)
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       // tick value will step as indicated interval value.
+	 *       // ex) 'stepSize=15' ==> [0, 15, 30, 45, 60]
+	 *       stepSize: 15
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_stepSize: <number | null>null,
+
+	/**
+	 * Show or hide y axis tick text.
+	 * @name axis․y․tick․text․show
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText)
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       text: {
+	 *           show: false
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_text_show: true,
+
+	/**
+	 * Set the y Axis tick text's position relatively its original position
+	 * @name axis․y․tick․text․position
+	 * @memberof Options
+	 * @type {object}
+	 * @default {x: 0, y:0}
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       text: {
+	 *         position: {
+	 *           x: 10,
+	 *           y: 10
+	 *         }
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y_tick_text_position: {x: 0, y: 0},
+
+	/**
+	 * Set the number of y axis ticks.<br><br>
+	 * - **NOTE:** The position of the ticks will be calculated precisely, so the values on the ticks will not be rounded nicely. In the case, axis.y.tick.format or axis.y.tick.values will be helpful.
+	 * @name axis․y․tick․time
+	 * @memberof Options
+	 * @private
+	 * @type {object}
+	 * @property {object} time time object
+	 * @property {Function} [time.value] D3's time interval function (https://github.com/d3/d3-time#intervals)
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     tick: {
+	 *       time: {
+	 *          // ticks at 15-minute intervals
+	 *          // https://github.com/d3/d3-scale/blob/master/README.md#time_ticks
+	 *          value: d3.timeMinute.every(15)
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	// @TODO: not fully implemented yet
+	axis_y_tick_time_value: <Function | undefined>undefined,
+
+	/**
+	 * Set padding for y axis.<br><br>
+	 * You can set padding for y axis to create more space on the edge of the axis.
+	 * This option accepts object and it can include top and bottom. top, bottom will be treated as pixels.
+	 *
+	 * - **NOTE:**
+	 *   - Given values are translated relative to the y Axis domain value for padding
+	 *   - For area and bar type charts, [area.zerobased](#.area) or [bar.zerobased](#.bar) options should be set to 'false` to get padded bottom.
+	 * @name axis․y․padding
+	 * @memberof Options
+	 * @type {object|number}
+	 * @default {}
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     padding: {
+	 *       top: 0,
+	 *       bottom: 0
+	 *     },
+	 *
+	 *     // or set both values at once.
+	 *     padding: 10
+	 *   }
+	 * }
+	 */
+	axis_y_padding: <number | {top?: number, bottom?: number}>{},
+
+	/**
+	 * Set default range of y axis.<br><br>
+	 * This option set the default value for y axis when there is no data on init.
+	 * @name axis․y․default
+	 * @memberof Options
+	 * @type {Array}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y: {
+	 *     default: [0, 1000]
+	 *   }
+	 * }
+	 */
+	axis_y_default: <number[] | undefined>undefined,
+
+	/**
+	 * Set additional axes for y Axis.
+	 * - **NOTE:** Axis' scale is based on y Axis value if domain option isn't set.
+	 *
+	 * Each axis object should consist with following options:
+	 *
+	 * | Name | Type | Default | Description |
+	 * | --- | --- | --- | --- |
+	 * | domain | Array | - | Set the domain value |
+	 * | tick.outer | boolean | true | Show outer tick |
+	 * | tick.format | Function | - | Set formatter for tick text |
+	 * | tick.count | Number | - | Set the number of y axis ticks |
+	 * | tick.values | Array | - | Set tick values manually |
+	 * @name axis․y․axes
+	 * @memberof Options
+	 * @type {Array}
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes)
+	 * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain)
+	 * @example
+	 * y: {
+	 *    axes: [
+	 *      {
+	 *        // if set, will not be correlated with the main y Axis domain value
+	 *        domain: [0, 1000],
+	 *        tick: {
+	 *          outer: false,
+	 *          format: function(x) {
+	 *             return x + "%";
+	 *          },
+	 *          count: 2,
+	 *          values: [10, 20, 30]
+	 *        }
+	 *      },
+	 *      ...
+	 *    ]
+	 * }
+	 */
+	axis_y_axes: <object[]>[]
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_axis_y2.ts.html b/release/3.12.4/doc/config_Options_axis_y2.ts.html new file mode 100644 index 000000000..54eec4e30 --- /dev/null +++ b/release/3.12.4/doc/config_Options_axis_y2.ts.html @@ -0,0 +1,557 @@ + + + + + + config/Options/axis/y2.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/axis/y2.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * y2 Axis  config options
+ */
+export default {
+	/**
+	 * Show or hide y2 axis.
+	 * - **NOTE**:
+	 *   - When set to `false` will not generate y2 axis node. In this case, all 'y2' axis related functionality won't work properly.
+	 *   - If need to use 'y2' related options while y2 isn't visible, set the value `true` and control visibility by css display property.
+	 * @name axis․y2․show
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     show: true
+	 *   }
+	 * }
+	 */
+	axis_y2_show: false,
+
+	/**
+	 * Set type of y2 axis.<br><br>
+	 * **Available Values:**
+	 *  - indexed
+	 *  - log
+	 *  - timeseries
+	 *
+	 * **NOTE:**<br>
+	 * - **log** type:
+	 *   - the bound data values must be exclusively-positive.
+	 *   - y2 axis min value should be >= 0.
+	 *   - [`data.groups`](#.data%25E2%2580%25A4groups)(stacked data) option aren't supported.
+	 *
+	 * @name axis․y2․type
+	 * @memberof Options
+	 * @type {string}
+	 * @default "indexed"
+	 * @see [Demo: log](https://naver.github.io/billboard.js/demo/#Axis.LogScales)
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     type: "indexed"
+	 *   }
+	 * }
+	 */
+	axis_y2_type: <"indexed" | "log" | "timeseries">"indexed",
+
+	/**
+	 * Set max value of y2 axis.
+	 * @name axis․y2․max
+	 * @memberof Options
+	 * @type {number}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     max: 1000
+	 *   }
+	 * }
+	 */
+	axis_y2_max: <number | undefined>undefined,
+
+	/**
+	 * Set min value of y2 axis.
+	 * @name axis․y2․min
+	 * @memberof Options
+	 * @type {number}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     min: -1000
+	 *   }
+	 * }
+	 */
+	axis_y2_min: <number | undefined>undefined,
+
+	/**
+	 * Change the direction of y2 axis.<br><br>
+	 * If true set, the direction will be `top -> bottom`.
+	 * @name axis․y2․inverted
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.InvertedAxis)
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     inverted: true
+	 *   }
+	 * }
+	 */
+	axis_y2_inverted: false,
+
+	/**
+	 * Set center value of y2 axis.
+	 * @name axis․y2․center
+	 * @memberof Options
+	 * @type {number}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     center: 0
+	 *   }
+	 * }
+	 */
+	axis_y2_center: <number | undefined>undefined,
+
+	/**
+	 * Show y2 axis inside of the chart.
+	 * @name axis․y2․inner
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     inner: true
+	 *   }
+	 * }
+	 */
+	axis_y2_inner: false,
+
+	/**
+	 * Set label on y2 axis.<br><br>
+	 * You can set y2 axis label and change its position by this option. This option works in the same way as [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label).
+	 * @name axis․y2․label
+	 * @memberof Options
+	 * @type {string|object}
+	 * @default {}
+	 * @see [axis.x.label](#.axis%25E2%2580%25A4x%25E2%2580%25A4label) for position string value.
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     label: "Your Y2 Axis"
+	 *   }
+	 * }
+	 *
+	 * axis: {
+	 *   y2: {
+	 *     label: {
+	 *        text: "Your Y2 Axis",
+	 *        position: "outer-middle"
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_label: <string | object>{},
+
+	/**
+	 * Set formatter for y2 axis tick text.<br><br>
+	 * This option works in the same way as axis.y.format.
+	 * @name axis․y2․tick․format
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       format: d3.format("$,")
+	 *       //or format: function(d) { return "$" + d; }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_format: <Function | undefined>undefined,
+
+	/**
+	 * Setting for culling ticks.
+	 * - `true`: the ticks will be culled, then only limited tick text will be shown.<br>
+	 *   This option does not hide the tick lines by default, if want to hide tick lines, set `axis.y2.tick.culling.lines=false`.
+	 * - `false`: all of ticks will be shown.<br><br>
+	 * The number of ticks to be shown can be chaned by `axis.y2.tick.culling.max`.
+	 * @name axis․y2․tick․culling
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       culling: false
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_culling: false,
+
+	/**
+	 * The number of tick texts will be adjusted to less than this value.
+	 * @name axis․y2․tick․culling․max
+	 * @memberof Options
+	 * @type {number}
+	 * @default 5
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       culling: {
+	 *           max: 5
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_culling_max: 5,
+
+	/**
+	 * Control visibility of tick lines within culling option, along with tick text.
+	 * @name axis․y2․tick․culling․lines
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       culling: {
+	 *           lines: false,
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_culling_lines: true,
+
+	/**
+	 * Show or hide y2 axis outer tick.
+	 * @name axis․y2․tick․outer
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       outer: false
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_outer: true,
+
+	/**
+	 * Set y2 axis tick values manually.
+	 * @name axis․y2․tick․values
+	 * @memberof Options
+	 * @type {Array|Function}
+	 * @default null
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       values: [100, 1000, 10000],
+	 *
+	 *       // an Array value should be returned
+	 *       values: function() {
+	 *       	return [ ... ];
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_values: <number[] | (() => number[]) | null>null,
+
+	/**
+	 * Rotate y2 axis tick text.
+	 * - If you set negative value, it will rotate to opposite direction.
+	 * - Applied when [`axis.rotated`](#.axis%25E2%2580%25A4rotated) option is `true`.
+	 * @name axis․y2․tick․rotate
+	 * @memberof Options
+	 * @type {number}
+	 * @default 0
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       rotate: 60
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_rotate: 0,
+
+	/**
+	 * Set the number of y2 axis ticks.
+	 * - **NOTE:** This works in the same way as axis.y.tick.count.
+	 * @name axis․y2․tick․count
+	 * @memberof Options
+	 * @type {number}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       count: 5
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_count: <number | undefined>undefined,
+
+	/**
+	 * Show or hide y2 axis tick line.
+	 * @name axis․y2․tick․show
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText)
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       show: false
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_show: true,
+
+	/**
+	 * Set axis tick step(interval) size.
+	 * - **NOTE:** Will be ignored if `axis.y2.tick.count` or `axis.y2.tick.values` options are set.
+	 * @name axis․y2․tick․stepSize
+	 * @memberof Options
+	 * @type {number}
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.StepSizeForYAxis)
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       // tick value will step as indicated interval value.
+	 *       // ex) 'stepSize=15' ==> [0, 15, 30, 45, 60]
+	 *       stepSize: 15
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_stepSize: <number | null>null,
+
+	/**
+	 * Show or hide y2 axis tick text.
+	 * @name axis․y2․tick․text․show
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.HideTickLineText)
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       text: {
+	 *           show: false
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_text_show: true,
+
+	/**
+	 * Set the y2 Axis tick text's position relatively its original position
+	 * @name axis․y2․tick․text․position
+	 * @memberof Options
+	 * @type {object}
+	 * @default {x: 0, y:0}
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     tick: {
+	 *       text: {
+	 *         position: {
+	 *           x: 10,
+	 *           y: 10
+	 *         }
+	 *       }
+	 *     }
+	 *   }
+	 * }
+	 */
+	axis_y2_tick_text_position: {x: 0, y: 0},
+
+	/**
+	 * Set padding for y2 axis.<br><br>
+	 * You can set padding for y2 axis to create more space on the edge of the axis.
+	 * This option accepts object and it can include top and bottom. top, bottom will be treated as pixels.
+	 *
+	 * - **NOTE:**
+	 *   - Given values are translated relative to the y2 Axis domain value for padding
+	 *   - For area and bar type charts, [area.zerobased](#.area) or [bar.zerobased](#.bar) options should be set to 'false` to get padded bottom.
+	 * @name axis․y2․padding
+	 * @memberof Options
+	 * @type {object|number}
+	 * @default {}
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     padding: {
+	 *       top: 100,
+	 *       bottom: 100
+	 *     }
+	 *
+	 *     // or set both values at once.
+	 *     padding: 10
+	 * }
+	 */
+	axis_y2_padding: <number | {top?: number, bottom?: number}>{},
+
+	/**
+	 * Set default range of y2 axis.<br><br>
+	 * This option set the default value for y2 axis when there is no data on init.
+	 * @name axis․y2․default
+	 * @memberof Options
+	 * @type {Array}
+	 * @default undefined
+	 * @example
+	 * axis: {
+	 *   y2: {
+	 *     default: [0, 1000]
+	 *   }
+	 * }
+	 */
+	axis_y2_default: undefined,
+
+	/**
+	 * Set additional axes for y2 Axis.
+	 * - **NOTE:** Axis' scale is based on y2 Axis value if domain option isn't set.
+	 *
+	 * Each axis object should consist with following options:
+	 *
+	 * | Name | Type | Default | Description |
+	 * | --- | --- | --- | --- |
+	 * | domain | Array | - | Set the domain value |
+	 * | tick.outer | boolean | true | Show outer tick |
+	 * | tick.format | Function | - | Set formatter for tick text |
+	 * | tick.count | Number | - | Set the number of y axis ticks |
+	 * | tick.values | Array | - | Set tick values manually |
+	 * @name axis․y2․axes
+	 * @memberof Options
+	 * @type {Array}
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Axis.MultiAxes)
+	 * @see [Demo: Domain](https://naver.github.io/billboard.js/demo/#Axis.MultiAxesDomain)
+	 * @example
+	 * y2: {
+	 *    axes: [
+	 *      {
+	 *        // if set, will not be correlated with the main y2 Axis domain value
+	 *        domain: [0, 1000],
+	 *        tick: {
+	 *          outer: false,
+	 *          format: function(x) {
+	 *             return x + "%";
+	 *          },
+	 *          count: 2,
+	 *          values: [10, 20, 30]
+	 *        }
+	 *      },
+	 *      ...
+	 *    ]
+	 * }
+	 */
+	axis_y2_axes: []
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_common_boost.ts.html b/release/3.12.4/doc/config_Options_common_boost.ts.html new file mode 100644 index 000000000..56c3e6c23 --- /dev/null +++ b/release/3.12.4/doc/config_Options_common_boost.ts.html @@ -0,0 +1,117 @@ + + + + + + config/Options/common/boost.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/common/boost.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * boost config options
+ */
+export default {
+	/**
+	 * Set boost options
+	 * @name boost
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} boost boost object
+	 * @property {boolean} [boost.useCssRule=false] Avoid setting inline styles for each shape elements.
+	 * - **NOTE:**
+	 *   - Will append &lt;style> to the head tag and will add shpes' CSS rules dynamically.
+	 *   - For now, covers colors related properties (fill, stroke, etc.) only.
+	 * @property {boolean} [boost.useWorker=false] Use Web Worker as possible for processing.
+	 * - **NOTE:**
+	 *   - For now, only applies for data conversion at the initial time.
+	 *   - As of Web Worker's async nature, handling chart instance synchrously is not recommended.
+	 * @example
+	 *  boost: {
+	 *      useCssRule: true,
+	 *      useWorker: false
+	 *  }
+	 */
+	boost_useCssRule: false,
+	boost_useWorker: false
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_common_color.ts.html b/release/3.12.4/doc/config_Options_common_color.ts.html new file mode 100644 index 000000000..d6a2965c0 --- /dev/null +++ b/release/3.12.4/doc/config_Options_common_color.ts.html @@ -0,0 +1,173 @@ + + + + + + config/Options/common/color.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/common/color.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * color config options
+ */
+export default {
+	/**
+	 * Set color of the data values
+	 * @name color
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} color color object
+	 * @property {string|object|Function} [color.onover] Set the color value for each data point when mouse/touch onover event occurs.
+	 * @property {Array|null} [color.pattern=[]] Set custom color pattern. Passing `null` will not set a color for these elements, which requires the usage of custom CSS-based theming to work.
+	 * @property {Function} [color.tiles] if defined, allows use svg's patterns to fill data area. It should return an array of [SVGPatternElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGPatternElement).
+	 *  - **NOTE:** The pattern element's id will be defined as `bb-colorize-pattern-$COLOR-VALUE`.<br>
+	 *    ex. When color pattern value is `['red', '#fff']` and defined 2 patterns,then ids for pattern elements are:<br>
+	 *    - `bb-colorize-pattern-red`
+	 *    - `bb-colorize-pattern-fff`
+	 * @property {object} [color.threshold] color threshold for gauge and tooltip color
+	 * @property {string} [color.threshold.unit] If set to `value`, the threshold will be based on the data value. Otherwise it'll be based on equation of the `threshold.max` option value.
+	 * @property {Array} [color.threshold.values] Threshold values for each steps
+	 * @property {number} [color.threshold.max=100] The base value to determine threshold step value condition. When the given value is 15 and max 10, then the value for threshold is `15*100/10`.
+	 * @example
+	 *  color: {
+	 *      pattern: ["#1f77b4", "#aec7e8", ...],
+	 *
+	 *      // Set colors' patterns
+	 *      // it should return an array of SVGPatternElement
+	 *      tiles: function() {
+	 *         var pattern = document.createElementNS("http://www.w3.org/2000/svg", "pattern");
+	 *         var g = document.createElementNS("http://www.w3.org/2000/svg", "g");
+	 *         var circle1 = document.createElementNS("http://www.w3.org/2000/svg", "circle");
+	 *
+	 *         pattern.setAttribute("patternUnits", "userSpaceOnUse");
+	 *         pattern.setAttribute("width", "32");
+	 *         pattern.setAttribute("height", "32");
+	 *
+	 *         g.style.fill = "#000";
+	 *         g.style.opacity = "0.2";
+	 *
+	 *         circle1.setAttribute("cx", "3");
+	 *         circle1.setAttribute("cy", "3");
+	 *         circle1.setAttribute("r", "3");
+	 *
+	 *         g.appendChild(circle1);
+	 *         pattern.appendChild(g);
+	 *
+	 *         return [pattern];
+	 *      },
+	 *
+	 *      // for threshold usage, pattern values should be set for each steps
+	 *      pattern: ["grey", "green", "yellow", "orange", "red"],
+	 *      threshold: {
+	 *          unit: "value",
+	 *
+	 *          // when value is 20 => 'green', value is 40 => 'orange' will be set.
+	 *          values: [10, 20, 30, 40, 50],
+	 *
+	 *          // the equation for max:
+	 *          // - unit == 'value': max => 30
+	 *          // - unit != 'value': max => value*100/30
+	 *          max: 30
+	 *      },
+	 *
+	 *      // set all data to 'red'
+	 *      onover: "red",
+	 *
+	 *      // set different color for data
+	 *      onover: {
+	 *          data1: "red",
+	 *          data2: "yellow"
+	 *      },
+	 *
+	 *      // will pass data object to the callback
+	 *      onover: function(d) {
+	 *          return d.id === "data1" ? "red" : "green";
+	 *      }
+	 *  }
+	 */
+	color_pattern: <(string | null)[]>[],
+	color_tiles: <(() => []) | undefined>undefined,
+	color_threshold: <{unit?: string, values?: number[], max: number}>{},
+	color_onover: <string | object | undefined>undefined
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_common_grid.ts.html b/release/3.12.4/doc/config_Options_common_grid.ts.html new file mode 100644 index 000000000..6678d4659 --- /dev/null +++ b/release/3.12.4/doc/config_Options_common_grid.ts.html @@ -0,0 +1,166 @@ + + + + + + config/Options/common/grid.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/common/grid.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * grid config options
+ */
+type Lines = {value?: number, text?: string, class?: string, position?: string}[];
+
+export default {
+	/**
+	 * Set related options
+	 * @name grid
+	 * @memberof Options
+	 * @type {object}
+	 * @property {boolean} [front=false] Set 'grid & focus lines' to be positioned over grid lines and chart elements.
+	 * @property {object} x Grid x object
+	 * @property {boolean} [x.show=false] Show grids along x axis.
+	 * @property {Array} [x.lines=[]] Show additional grid lines along x axis.<br>
+	 *  This option accepts array including object that has value, text, position and class. text, position and class are optional. For position, start, middle and end (default) are available.
+	 *  If x axis is category axis, value can be category name. If x axis is timeseries axis, value can be date string, Date object and unixtime integer.
+	 * @property {object} y Grid y object
+	 * @property {boolean} [y.show=false] Show grids along x axis.
+	 * @property {Array} [y.lines=[]] Show additional grid lines along y axis.<br>
+	 *  This option accepts array including object that has value, text, position and class.
+	 * @property {number} [y.ticks=undefined] Number of y grids to be shown.
+	 * @property {object} focus Grid focus object
+	 * @property {boolean} [focus.edge=false] Show edged focus grid line.<br>**NOTE:** Available when [`tooltip.grouped=false`](#.tooltip) option is set.
+	 * @property {boolean} [focus.show=true] Show grid line when focus.
+	 * @property {boolean} [focus.y=false] Show y coordinate focus grid line.<br>**NOTE:** Available when [`tooltip.grouped=false`](#.tooltip) option is set.
+	 * @property {object} lines Grid lines object
+	 * @property {boolean} [lines.front=true] Set grid lines to be positioned over chart elements.
+	 * @default undefined
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Grid.GridLines)
+	 * @see [Demo: X Grid Lines](https://naver.github.io/billboard.js/demo/#Grid.OptionalXGridLines)
+	 * @see [Demo: Y Grid Lines](https://naver.github.io/billboard.js/demo/#Grid.OptionalYGridLines)
+	 * @example
+	 * grid: {
+	 *   x: {
+	 *     show: true,
+	 *     lines: [
+	 *       {value: 2, text: "Label on 2"},
+	 *       {value: 5, text: "Label on 5", class: "label-5"},
+	 *       {value: 6, text: "Label on 6", position: "start"}
+	 *     ]
+	 *   },
+	 *   y: {
+	 *     show: true,
+	 *     lines: [
+	 *       {value: 100, text: "Label on 100"},
+	 *       {value: 200, text: "Label on 200", class: "label-200"},
+	 *       {value: 300, text: "Label on 300", position: 'middle'}
+	 *     ],
+	 *     ticks: 5
+	 *   },
+	 *   front: true,
+	 *   focus: {
+	 *      show: false,
+	 *
+	 *      // Below options are available when 'tooltip.grouped=false' option is set
+	 *      edge: true,
+	 *      y: true
+	 *   },
+	 *   lines: {
+	 *      front: false
+	 *   }
+	 * }
+	 */
+	grid_x_show: false,
+	grid_x_type: "tick",
+	grid_x_lines: <Lines>[],
+	grid_y_show: false,
+	grid_y_lines: <Lines>[],
+	grid_y_ticks: <number | undefined>undefined,
+	grid_focus_edge: false,
+	grid_focus_show: true,
+	grid_focus_y: false,
+	grid_front: false,
+	grid_lines_front: true
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_common_legend.ts.html b/release/3.12.4/doc/config_Options_common_legend.ts.html new file mode 100644 index 000000000..9e1afaac6 --- /dev/null +++ b/release/3.12.4/doc/config_Options_common_legend.ts.html @@ -0,0 +1,260 @@ + + + + + + config/Options/common/legend.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/common/legend.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * legend config options
+ */
+export default {
+	/**
+	 * Legend options
+	 * @name legend
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} legend Legend object
+	 * @property {boolean} [legend.show=true] Show or hide legend.
+	 * @property {boolean} [legend.hide=false] Hide legend
+	 *  If true given, all legend will be hidden. If string or array given, only the legend that has the id will be hidden.
+	 * @property {string|HTMLElement} [legend.contents.bindto=undefined] Set CSS selector or element reference to bind legend items.
+	 * - **NOTE:** Should be used along with `legend.contents.template`.
+	 * @property {string|Function} [legend.contents.template="<span style='color:#fff;padding:5px;background-color:{=COLOR}'>{=TITLE}</span>"] Set item's template.<br>
+	 *  - If set `string` value, within template the 'color' and 'title' can be replaced using template-like syntax string:
+	 *    - {=COLOR}: data color value
+	 *    - {=TITLE}: data title value
+	 *  - If set `function` value, will pass following arguments to the given function:
+	 *   - title {string}: data's id value
+	 *   - color {string}: color string
+	 *   - data {Array}: data array
+	 * @property {string} [legend.position=bottom] Change the position of legend.<br>
+	 *  Available values are: `bottom`, `right` and `inset` are supported.
+	 * @property {object} [legend.inset={anchor: 'top-left',x: 10,y: 0,step: undefined}] Change inset legend attributes.<br>
+	 *  This option accepts object that has the keys `anchor`, `x`, `y` and `step`.
+	 *  - **anchor** decides the position of the legend:
+	 *   - top-left
+	 *   - top-right
+	 *   - bottom-left
+	 *   - bottom-right
+	 *  - **x** and **y**:
+	 *   - set the position of the legend based on the anchor.
+	 *  - **step**:
+	 *   - defines the max step the legend has (e.g. If 2 set and legend has 3 legend item, the legend 2 columns).
+	 * @property {boolean} [legend.equally=false] Set to all items have same width size.
+	 * @property {number} [legend.padding=0] Set padding value
+	 * @property {boolean} [legend.item.interaction=true] Set legend item interaction.
+	 *  - **NOTE:**
+	 *    - This setting will not have effect on `.toggle()` method.
+	 *    - `legend.item.onXXX` listener options will work if set, regardless of this option value.
+	 * @property {boolean} [legend.item.interaction.dblclick=false] Set legend item to interact on double click.
+	 *  - **NOTE:**
+	 *    - Double clicking will make focused clicked dataseries only, hiding all others.
+	 *      - for single click case, `click + altKey(Win)/optionKey(Mac OS)` to have same effect.
+	 *    - To return initial state(which all dataseries are showing), double click current focused legend item again.
+	 *      - for single click case, `click + altKey(Win)/optionKey(Mac OS)` to have same effect.
+	 *    - In this case, default `click` interaction will be disabled.
+	 * @property {Function} [legend.item.onclick=undefined] Set click event handler to the legend item.
+	 *  - **NOTE:**
+	 *    - When set, default `click` interaction will be disabled.
+	 *    - When `interaction.dblclick=true` is set, will be called on double click.
+	 * @property {Function} [legend.item.onover=undefined] Set mouse/touch over event handler to the legend item.
+	 *  - **NOTE:** When set, default `mouseover` interaction will be disabled.
+	 * @property {Function} [legend.item.onout=undefined] Set mouse/touch out event handler to the legend item.
+	 *  - **NOTE:** When set, default `mouseout` interaction will be disabled.
+	 * @property {number} [legend.item.tile.width=10] Set width for 'rectangle' legend item tile element.
+	 * @property {number} [legend.item.tile.height=10] Set height for 'rectangle' legend item tile element.
+	 * @property {number} [legend.item.tile.r=5] Set the radius for 'circle' legend item tile type.
+	 * @property {string} [legend.item.tile.type="rectangle"] Set legend item shape type.<br>
+	 * - **Available Values:**
+	 *   - circle
+	 *   - rectangle
+	 * @property {boolean} [legend.format] Set formatter function for legend text.
+	 * The argument:<br>
+	 *  - `id`: legend text value. When `data.names` is specified, will pass from it, otherwise will pass data id.
+	 * @property {boolean} [legend.tooltip=false] Show full legend text value using system tooltip(via `<title>` element).
+	 * @property {boolean} [legend.usePoint=false] Whether to use custom points in legend.
+	 * @see [Demo: format](https://naver.github.io/billboard.js/demo/#Legend.LegendFormat)
+	 * @see [Demo: item.interaction](https://naver.github.io/billboard.js/demo/#Legend.LegendItemInteraction)
+	 * @see [Demo: item.tile.type](https://naver.github.io/billboard.js/demo/#Legend.LegendItemTileType)
+	 * @see [Demo: position](https://naver.github.io/billboard.js/demo/#Legend.LegendPosition)
+	 * @see [Demo: contents.template](https://naver.github.io/billboard.js/demo/#Legend.LegendTemplate1)
+	 * @see [Demo: usePoint](https://naver.github.io/billboard.js/demo/#Legend.usePoint)
+	 * @example
+	 *  legend: {
+	 *      show: true,
+	 *      hide: true,
+	 *      //or hide: "data1"
+	 *      //or hide: ["data1", "data2"]
+	 *      contents: {
+	 *          bindto: "#legend",   // <ul id='legend'></ul>
+	 *
+	 *          // will be as: <li style='background-color:#1f77b4'>data1</li>
+	 *          template: "<li style='background-color:{=COLOR}'>{=TITLE}</li>"
+	 *
+	 *          // or using function
+	 *          template: function(id, color, data) {
+	 *               // if you want omit some legend, return falsy value
+	 *               if (id !== "data1") {
+	 *                    return "<li style='background-color:"+ color +">"+ id +"</li>";
+	 *               }
+	 *          }
+	 *      },
+	 *      position: "bottom",  // bottom, right, inset
+	 *      inset: {
+	 *          anchor: "top-right"  // top-left, top-right, bottom-left, bottom-right
+	 *          x: 20,
+	 *          y: 10,
+	 *          step: 2
+	 *      },
+	 *      equally: false,
+	 *      padding: 10,
+	 *      item: {
+	 *          // will disable default interaction
+	 *          interaction: false,
+	 *
+	 *          // set legend interact on double click
+	 *          // by double clicking, will make focused clicked dataseries only, hiding all others.
+	 *          interaction: {
+	 *            dblclick: true
+	 *          }
+	 *
+	 *          // when set below callback, will disable corresponding default interactions
+	 *          onclick: function(id) { ... },
+	 *          onover: function(id) { ... },
+	 *          onout: function(id) { ... },
+	 *
+	 *          // set tile's size
+	 *          tile: {
+	 *              // set tile type
+	 *              type: "circle"  // or "rectangle" (default)
+	 *
+	 *              // width & height, are only applicable for 'rectangle' legend type
+	 *              width: 15,
+	 *              height: 15
+	 *
+	 *              // radis is only applicable for 'circle' legend type
+	 *              r: 10
+	 *          }
+	 *      },
+	 *      format: function(id) {
+	 *          // set ellipsis string when length is > 5
+	 *          // to get full legend value, combine with 'legend.tooltip=true'
+	 *          if (id.length > 5) {
+	 *            	id = id.substr(0, 5) + "...";
+	 *          }
+	 *
+	 *          return id;
+	 *      },
+	 *      tooltip: true,
+	 *      usePoint: true
+	 *  }
+	 */
+	legend_contents_bindto: <string | HTMLElement | undefined>undefined,
+	legend_contents_template: <string | (() => string)
+		| undefined>"<span style='color:#fff;padding:5px;background-color:{=COLOR}'>{=TITLE}</span>",
+	legend_equally: false,
+	legend_hide: false,
+	legend_inset_anchor: <"top-left" | "top-right" | "bottom-left" | "bottom-right">"top-left",
+	legend_inset_x: 10,
+	legend_inset_y: 0,
+	legend_inset_step: <number | undefined>undefined,
+	legend_item_interaction: <boolean | {dblclick?: boolean}>true,
+	legend_item_dblclick: false,
+	legend_item_onclick: <Function | undefined>undefined,
+	legend_item_onover: <Function | undefined>undefined,
+	legend_item_onout: <Function | undefined>undefined,
+	legend_item_tile_width: 10,
+	legend_item_tile_height: 10,
+	legend_item_tile_r: 5,
+	legend_item_tile_type: <"rectangle" | "circle">"rectangle",
+	legend_format: <Function | undefined>undefined,
+	legend_padding: 0,
+	legend_position: <"bottom" | "right" | "inset">"bottom",
+	legend_show: true,
+	legend_tooltip: false,
+	legend_usePoint: false
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_common_main.ts.html b/release/3.12.4/doc/config_Options_common_main.ts.html new file mode 100644 index 000000000..a373b9c4e --- /dev/null +++ b/release/3.12.4/doc/config_Options_common_main.ts.html @@ -0,0 +1,506 @@ + + + + + + config/Options/common/main.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/common/main.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import type {RegionsType} from "../../../../types/types";
+
+/**
+ * main config options
+ */
+export default {
+	/**
+	 * Specify the CSS selector or the element which the chart will be set to. D3 selection object can be specified also.<br>
+	 * If other chart is set already, it will be replaced with the new one (only one chart can be set in one element).
+	 * - **NOTE:** In case of element doesn't exist or not specified, will add a `<div>` element to the body.
+	 * @name bindto
+	 * @memberof Options
+	 * @property {string|HTMLElement|d3.selection|object} [bindto="#chart"] Specify the element where chart will be drawn.
+	 * @property {string|HTMLElement|d3.selection} bindto.element="#chart" Specify the element where chart will be drawn.
+	 * @property {string} [bindto.classname=bb] Specify the class name of bind element.<br>
+	 *     **NOTE:** When class name isn't `bb`, then you also need to update the default CSS to be rendered correctly.
+	 * @default #chart
+	 * @example
+	 * bindto: "#myContainer"
+	 *
+	 * // or HTMLElement
+	 * bindto: document.getElementById("myContainer")
+	 *
+	 * // or D3 selection object
+	 * bindto: d3.select("#myContainer")
+	 *
+	 * // or to change default classname
+	 * bindto: {
+	 *    element: "#chart",
+	 *    classname: "bill-board"  // ex) <div id='chart' class='bill-board'>
+	 * }
+	 */
+	bindto: <string | {element: string, classname?: string}>"#chart",
+
+	/**
+	 * Set chart background.
+	 * @name background
+	 * @memberof Options
+	 * @property {object} background background object
+	 * @property {string} background.class Specify the class name for background element.
+	 * @property {string} background.color Specify the fill color for background element.<br>**NOTE:** Will be ignored if `imgUrl` option is set.
+	 * @property {string} background.imgUrl Specify the image url string for background.
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.Background)
+	 * @example
+	 * background: {
+	 *    class: "myClass",
+	 *    color: "red",
+	 *
+	 *    // Set image url for background.
+	 *    // If specified, 'color' option will be ignored.
+	 *    imgUrl: "https://naver.github.io/billboard.js/img/logo/billboard.js.svg",
+	 * }
+	 */
+	background: <{class?: string, color?: string, imgUrl?: string}>{},
+
+	/**
+	 * Set 'clip-path' attribute for chart element
+	 * - **NOTE:**
+	 *  > When is false, chart node element is positioned after the axis node in DOM tree hierarchy.
+	 *  > Is to make chart element positioned over axis element.
+	 * @name clipPath
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.clipPath)
+	 * @example
+	 * // don't set 'clip-path' attribute
+	 * clipPath: false
+	 */
+	clipPath: true,
+
+	/**
+	 * Set svg element's class name
+	 * @name svg
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} [svg] svg object
+	 * @property {string} [svg.classname] class name for svg element
+	 * @example
+	 * svg: {
+	 *   classname: "test_class"
+	 * }
+	 */
+	svg_classname: <string | undefined>undefined,
+
+	/**
+	 * The desired size of the chart element.
+	 * If value is not specified, the width of the chart will be calculated by the size of the parent element it's appended to.
+	 * @name size
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} [size] size object
+	 * @property {number} [size.width] width of the chart element
+	 * @property {number} [size.height] height of the chart element
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.ChartSize)
+	 * @example
+	 * size: {
+	 *   width: 640,
+	 *   height: 480
+	 * }
+	 */
+	size_width: <number | undefined>undefined,
+	size_height: <number | undefined>undefined,
+
+	/**
+	 * The padding of the chart element.
+	 * - **NOTE:** for more information, see the "[`Understanding padding`](https://github.com/naver/billboard.js/wiki/Understanding-padding)"" wiki documentaion.
+	 * @name padding
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object|boolean} [padding=true] Set padding of chart, and accepts object or boolean type.
+	 * - `Object`: Specify each side's padding.
+	 * - `false`: Remove padding completely and make shape to fully occupy the container element.
+	 *   - In this case, axes and subchart will be hidden.
+	 *   - To adjust some padding from this state, use `axis.[x|y].padding` option.
+	 * @property {string} [padding.mode] padding mode
+	 * - `"fit"`: Reduce padding as much as possible to make chart fit to the container element for chart types w/axis.<br>When specified, all padding values will be relative from fitted value.
+	 * @property {number} [padding.top] padding on the top of chart
+	 * @property {number} [padding.right] padding on the right of chart
+	 * @property {number} [padding.bottom] padding on the bottom of chart
+	 * @property {number} [padding.left] padding on the left of chart
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.Padding)
+	 * @see [Demo: Fit padding](https://naver.github.io/billboard.js/demo/#ChartOptions.FitPadding)
+	 * @example
+	 * // remove padding completely.
+	 * padding: false,
+	 *
+	 * padding: {
+	 *   // specifying mode value, will reduce padding and make fit to the container element.
+	 *   mode: "fit"
+	 *
+	 *   // when mode is "fit", all padding values will be relative from fitted value.
+	 *   // so, 0 will be initial fitted value.
+	 *   top: 20,
+	 *   right: 20,
+	 *   bottom: 20,
+	 *   left: 20
+	 * }
+	 *
+	 * // or specify padding value for each side
+	 * padding: {
+	 *   top: 20,
+	 *   right: 20,
+	 *   bottom: 20,
+	 *   left: 20
+	 * }
+	 */
+	padding: true,
+	padding_mode: <"fit" | undefined>undefined,
+	padding_left: <number | undefined>undefined,
+	padding_right: <number | undefined>undefined,
+	padding_top: <number | undefined>undefined,
+	padding_bottom: <number | undefined>undefined,
+
+	/**
+	 * Set chart resize options
+	 * @name resize
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} [resize] resize object
+	 * @property {boolean} [resize.auto=true] Set chart resize automatically on viewport changes.
+	 * @property {boolean|number} [resize.timer=true] Set resize timer option.
+	 * - **NOTE:**
+	 *   - The resize function will be called using:
+	 *     - true: `setTimeout()`
+	 *     - false: `requestIdleCallback()`
+	 *   - Given number(delay in ms) value, resize function will be triggered using `setTimer()` with given delay.
+	 * @example
+	 *  resize: {
+	 *      auto: false,
+	 *
+	 *      // set resize function will be triggered using `setTimer()`
+	 *      timer: true,
+	 *
+	 *      // set resize function will be triggered using `requestIdleCallback()`
+	 *      timer: false,
+	 *
+	 *      // set resize function will be triggered using `setTimer()` with a delay of `100ms`.
+	 *      timer: 100
+	 *  }
+	 */
+	resize_auto: true,
+	resize_timer: true,
+
+	/**
+	 * Set a callback to execute when the chart is clicked.
+	 * @name onclick
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * onclick: function(event) {
+	 *   this; // chart instance itself
+	 *   event; // native event object
+	 *   ...
+	 * }
+	 */
+	onclick: <(() => void) | undefined>undefined,
+
+	/**
+	 * Set a callback to execute when mouse/touch enters the chart.
+	 * @name onover
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * onover: function(event) {
+	 *   this; // chart instance itself
+	 *   event; // native event object
+	 *   ...
+	 * }
+	 */
+	onover: <(() => void) | undefined>undefined,
+
+	/**
+	 * Set a callback to execute when mouse/touch leaves the chart.
+	 * @name onout
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * onout: function(event) {
+	 *   this; // chart instance itself
+	 *   event; // native event object
+	 *   ...
+	 * }
+	 */
+	onout: <(() => void) | undefined>undefined,
+
+	/**
+	 * Set a callback to execute when user resizes the screen.
+	 * @name onresize
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * onresize: function() {
+	 *   this; // chart instance itself
+	 *   ...
+	 * }
+	 */
+	onresize: <(() => void) | undefined>undefined,
+
+	/**
+	 * Set a callback to execute when screen resize finished.
+	 * @name onresized
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * onresized: function() {
+	 *   this; // chart instance itself
+	 *   ...
+	 * }
+	 */
+	onresized: <(() => void) | undefined>undefined,
+
+	/**
+	 * Set a callback to execute before the chart is initialized
+	 * @name onbeforeinit
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * onbeforeinit: function() {
+	 *   this; // chart instance itself
+	 *   ...
+	 * }
+	 */
+	onbeforeinit: <(() => void) | undefined>undefined,
+
+	/**
+	 * Set a callback to execute when the chart is initialized.
+	 * @name oninit
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * oninit: function() {
+	 *   this; // chart instance itself
+	 *   ...
+	 * }
+	 */
+	oninit: <(() => void) | undefined>undefined,
+
+	/**
+	 * Set a callback to execute after the chart is initialized
+	 * @name onafterinit
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * onafterinit: function() {
+	 *   this; // chart instance itself
+	 *   ...
+	 * }
+	 */
+	onafterinit: <(() => void) | undefined>undefined,
+
+	/**
+	 * Set a callback which is executed when the chart is rendered. Basically, this callback will be called in each time when the chart is redrawed.
+	 * @name onrendered
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * onrendered: function() {
+	 *   this; // chart instance itself
+	 *   ...
+	 * }
+	 */
+	onrendered: <(() => void) | undefined>undefined,
+
+	/**
+	 * Set duration of transition (in milliseconds) for chart animation.<br><br>
+	 * - **NOTE:** If `0 `or `null` set, transition will be skipped. So, this makes initial rendering faster especially in case you have a lot of data.
+	 * @name transition
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} [transition] transition object
+	 * @property {number} [transition.duration=350] duration in milliseconds
+	 * @example
+	 * transition: {
+	 *    duration: 500
+	 * }
+	 */
+	transition_duration: 250,
+
+	/**
+	 * Set plugins
+	 * @name plugins
+	 * @memberof Options
+	 * @type {Array}
+	 * @example
+	 *  plugins: [
+	 *    new bb.plugin.stanford({ ... }),
+	 *    new PluginA(),
+	 *    ...
+	 * ]
+	 */
+	plugins: [],
+
+	/**
+	 * Control the render timing
+	 * @name render
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} [render] render object
+	 * @property {boolean} [render.lazy=true] Make to not render at initialization (enabled by default when bind element's visibility is hidden).
+	 * @property {boolean} [render.observe=true] Observe bind element's visibility(`display` or `visiblity` inline css property or class value) & render when is visible automatically (for IEs, only works IE11+). When set to **false**, call [`.flush()`](./Chart.html#flush) to render.
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#ChartOptions.LazyRender)
+	 * @example
+	 *  render: {
+	 *    lazy: true,
+	 *    observe: true
+	 * }
+	 *
+	 * @example
+	 * 	// <!-- render.lazy will detect visibility defined -->
+	 *  // (a) <div id='chart' class='hide'></div>
+	 *  // (b) <div id='chart' style='display:none'></div>
+	 *
+	 *  // render.lazy enabled by default when element is hidden
+	 *  var chart = bb.generate({ ... });
+	 *
+	 *  // chart will be rendered automatically when element's visibility changes
+	 *  // Note: works only for inlined css property or class attribute changes
+	 *  document.getElementById('chart').classList.remove('hide')  // (a)
+	 *  document.getElementById('chart').style.display = 'block';  // (b)
+	 *
+	 * @example
+	 * 	// chart won't be rendered and not observing bind element's visiblity changes
+	 *  var chart = bb.generate({
+	 *     render: {
+	 *          lazy: true,
+	 *          observe: false
+	 *     }
+	 *  });
+	 *
+	 *  // call at any point when you want to render
+	 *  chart.flush();
+	 */
+	render: <{lazy?: boolean, observe?: boolean}>{},
+
+	/**
+	 * Show rectangles inside the chart.<br><br>
+	 * This option accepts array including object that has axis, start, end and class.
+	 * The keys start, end and class are optional.
+	 * axis must be x, y or y2. start and end should be the value where regions start and end.
+	 * If not specified, the edge values will be used.
+	 * If timeseries x axis, date string, Date object and unixtime integer can be used.
+	 * If class is set, the region element will have it as class.
+	 * @name regions
+	 * @memberof Options
+	 * @type {Array}
+	 * @default []
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Region.RegionLabel)
+	 * @example
+	 *  regions: [
+	 *    {
+	 *      axis: "x",
+	 *      start: 1,
+	 *      end: 4,
+	 *      class: "region-1-4",
+	 *      label: {
+	 *      	text: "Region Text",
+	 *      	x: 5,  // position relative of the initial x coordinate
+	 *      	y: 5,  // position relative of the initial y coordinate
+	 *      	color: "red",  // color string
+	 *      	rotated: true  // make text to show in vertical or horizontal
+	 *      }
+	 *    }
+	 *  ]
+	 */
+	regions: <RegionsType[]>[]
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_common_point.ts.html b/release/3.12.4/doc/config_Options_common_point.ts.html new file mode 100644 index 000000000..a57de879d --- /dev/null +++ b/release/3.12.4/doc/config_Options_common_point.ts.html @@ -0,0 +1,254 @@ + + + + + + config/Options/common/point.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/common/point.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import {IDataPoint} from "../../../ChartInternal/data/IData";
+
+/**
+ * point config options
+ */
+export default {
+	/**
+	 * Set point options
+	 * @name point
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} point Point object
+	 * @property {boolean} [point.show=true] Whether to show each point in line.
+	 * @property {number|Function} [point.r=2.5] The radius size of each point.
+	 *  - **NOTE:** Disabled for 'bubble' type
+	 * @property {boolean|object} [point.radialGradient=false] Set the radial gradient on point.<br><br>
+	 * Or customize by giving below object value:
+	 *  - cx {number}: `cx` value (default: `0.3`)
+	 *  - cy {number}: `cy` value (default: `0.3`)
+	 *  - r {number}: `r` value (default: `0.7`)
+	 *  - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values.
+	 *    - (default: `[[0.1, $DATA_COLOR, 1], [0.9, $DATA_COLOR, 0]]`)
+	 * @property {boolean} [point.focus.expand.enabled=true] Whether to expand each point on focus.
+	 * @property {number} [point.focus.expand.r=point.r*1.75] The radius size of each point on focus.
+	 *  - **NOTE:** For 'bubble' type, the default is `bubbleSize*1.15`
+	 * @property {boolean} [point.focus.only=false] Show point only when is focused.
+	 * @property {number|null} [point.opacity=undefined] Set point opacity value.
+	 * - **NOTE:**
+	 * 	- `null` will make to not set inline 'opacity' css prop.
+	 * 	- when no value(or undefined) is set, it defaults to set opacity value according its chart types.
+	 * @property {number|string|Function} [point.sensitivity=10] The senstivity value for interaction boundary.
+	 * - **Available Values:**
+	 *   - {number}: Absolute sensitivity value which is the distance from the data point in pixel.
+	 *   - "radius": sensitivity based on point's radius
+	 *   - Function: callback for each point to determine the sensitivity<br>
+	 *    	```js
+	 *   	sensitivity: function(d) {
+	 * 	  // ex. of argument d:
+	 * 	  // ==> {x: 2, value: 55, id: 'data3', index: 2, r: 19.820624179302296}
+	 *
+	 * 	  // returning d.r, will make sensitivity same as point's radius value.
+	 *  	  return d.r;
+	 * 	}
+	 * 	```
+	 * @property {number} [point.select.r=point.r*4] The radius size of each point on selected.
+	 * @property {string} [point.type="circle"] The type of point to be drawn
+	 * - **NOTE:**
+	 *   - If chart has 'bubble' type, only circle can be used.
+	 *   - For IE, non circle point expansions are not supported due to lack of transform support.
+	 * - **Available Values:**
+	 *   - circle
+	 *   - rectangle
+	 * @property {Array} [point.pattern=[]] The type of point or svg shape as string, to be drawn for each line
+	 * - **NOTE:**
+	 *   - This is an `experimental` feature and can have some unexpected behaviors.
+	 *   - If chart has 'bubble' type, only circle can be used.
+	 *   - For IE, non circle point expansions are not supported due to lack of transform support.
+	 * - **Available Values:**
+	 *   - circle
+	 *   - rectangle
+	 *   - svg shape tag interpreted as string<br>
+	 *     (ex. `<polygon points='2.5 0 0 5 5 5'></polygon>`)
+	 * @see [Demo: point type](https://naver.github.io/billboard.js/demo/#Point.RectanglePoints)
+	 * @see [Demo: point focus only](https://naver.github.io/billboard.js/demo/#Point.FocusOnly)
+	 * @see [Demo: point radialGradient](https://naver.github.io/billboard.js/demo/#Point.RadialGradientPoint)
+	 * @see [Demo: point sensitivity](https://naver.github.io/billboard.js/demo/#Point.PointSensitivity)
+	 * @example
+	 *  point: {
+	 *      show: false,
+	 *      r: 5,
+	 *
+	 *      // or customize the radius
+	 *      r: function(d) {
+	 *          ...
+	 *          return r;
+	 *      },
+	 *
+	 *      // will generate follwing radialGradient:
+	 *      // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/radialGradient
+	 *      // <radualGradient cx="0.3" cy="0.3" r="0.7">
+	 *      //    <stop offset="0.1" stop-color="$DATA_COLOR" stop-opacity="1"></stop>
+	 *      //    <stop offset="0.9" stop-color="$DATA_COLOR" stop-opacity="0"></stop>
+	 *      // </radialrGradient>
+	 *      radialGradient: true,
+	 *
+	 *      // Or customized gradient
+	 *      radialGradient: {
+	 *      	cx: 0.3,  // cx attributes
+	 *      	cy: 0.5,  // cy attributes
+	 *      	r: 0.7,  // r attributes
+	 *      	stops: [
+	 *      	  // offset, stop-color, stop-opacity
+	 *      	  [0, "#7cb5ec", 1],
+	 *
+	 *      	  // setting 'null' for stop-color, will set its original data color
+	 *      	  [0.5, null, 0],
+	 *
+	 *      	  // setting 'function' for stop-color, will pass data id as argument.
+	 *      	  // It should return color string or null value
+	 *      	  [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0],
+	 *      	]
+	 *      },
+	 *
+	 *      focus: {
+	 *          expand: {
+	 *              enabled: true,
+	 *              r: 1
+	 *          },
+	 *          only: true
+	 *      },
+	 *
+	 *      // do not set inline 'opacity' css prop setting
+	 *      opacity: null,
+	 *
+	 *      // set every data point's opacity value
+	 *      opacity: 0.7,
+	 *
+	 *      select: {
+	 *          r: 3
+	 *      },
+	 *
+	 *      // having lower value, means how closer to be for interaction
+	 *      sensitivity: 3,
+	 *
+	 *      // sensitivity based on point's radius
+	 *      sensitivity: "radius",
+	 *
+	 *      // callback for each point to determine the sensitivity
+	 *      sensitivity: function(d) {
+	 * 	// ex. of argument d:
+	 * 	// ==> {x: 2, value: 55, id: 'data3', index: 2, r: 19.820624179302296}
+	 *
+	 * 	// returning d.r, will make sensitivity same as point's radius value.
+	 * 	return d.r;
+	 *      }
+	 *
+	 *      // valid values are "circle" or "rectangle"
+	 *      type: "rectangle",
+	 *
+	 *      // or indicate as pattern
+	 *      pattern: [
+	 *        "circle",
+	 *        "rectangle",
+	 *        "<polygon points='0 6 4 0 -4 0'></polygon>"
+	 *     ],
+	 *  }
+	 */
+	point_show: true,
+	point_r: 2.5,
+	point_radialGradient: <boolean | {
+		cx?: number,
+		cy?: number,
+		r?: number,
+		stops?: [number, string | null | Function, number]
+	}>false,
+	point_sensitivity: <number | "radius" | ((d: IDataPoint) => number)>10,
+	point_focus_expand_enabled: true,
+	point_focus_expand_r: <number | undefined>undefined,
+	point_focus_only: false,
+	point_opacity: <number | null | undefined>undefined,
+	point_pattern: <string[]>[],
+	point_select_r: <number | undefined>undefined,
+	point_type: "circle"
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_common_title.ts.html b/release/3.12.4/doc/config_Options_common_title.ts.html new file mode 100644 index 000000000..d7e42ec00 --- /dev/null +++ b/release/3.12.4/doc/config_Options_common_title.ts.html @@ -0,0 +1,132 @@ + + + + + + config/Options/common/title.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/common/title.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * title config options
+ */
+export default {
+	/**
+	 * Set title options
+	 * @name title
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} title Title object
+	 * @property {string} [title.text] Title text. If contains `\n`, it's used as line break allowing multiline title.
+	 * @property {number} [title.padding.top=0] Top padding value.
+	 * @property {number} [title.padding.right=0] Right padding value.
+	 * @property {number} [title.padding.bottom=0] Bottom padding value.
+	 * @property {number} [title.padding.left=0] Left padding value.
+	 * @property {string} [title.position=center] Available values are: 'center', 'right' and 'left'.
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Title.MultilinedTitle)
+	 * @example
+	 *  title: {
+	 *      text: "Title Text",
+	 *
+	 *      // or Multiline title text
+	 *      text: "Main title text\nSub title text",
+	 *
+	 *      padding: {
+	 *          top: 10,
+	 *          right: 10,
+	 *          bottom: 10,
+	 *          left: 10
+	 *      },
+	 *      position: "center"
+	 *  }
+	 */
+	title_text: <string | undefined>undefined,
+	title_padding: {
+		top: 0,
+		right: 0,
+		bottom: 0,
+		left: 0
+	},
+	title_position: <"center" | "right" | "left">"center"
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_common_tooltip.ts.html b/release/3.12.4/doc/config_Options_common_tooltip.ts.html new file mode 100644 index 000000000..84502a630 --- /dev/null +++ b/release/3.12.4/doc/config_Options_common_tooltip.ts.html @@ -0,0 +1,339 @@ + + + + + + config/Options/common/tooltip.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/common/tooltip.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * tooltip config options
+ */
+export default {
+	/**
+	 * Tooltip options
+	 * @name tooltip
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} tooltip Tooltip object
+	 * @property {boolean} [tooltip.show=true] Show or hide tooltip.
+	 * @property {boolean} [tooltip.doNotHide=false] Make tooltip keep showing not hiding on interaction.
+	 * @property {boolean} [tooltip.grouped=true] Set if tooltip is grouped or not for the data points.
+	 *   - **NOTE:** The overlapped data points will be displayed as grouped even if set false.
+	 * @property {boolean} [tooltip.linked=false] Set if tooltips on all visible charts with like x points are shown together when one is shown.
+	 * @property {string} [tooltip.linked.name=""] Groping name for linked tooltip.<br>If specified, linked tooltip will be groped interacting to be worked only with the same name.
+	 * @property {Function} [tooltip.format.title] Set format for the title of tooltip.<br>
+	 *  Specified function receives x of the data point to show.
+	 * @property {Function} [tooltip.format.name] Set format for the name of each data in tooltip.<br>
+	 *  Specified function receives name, ratio, id and index of the data point to show. ratio will be undefined if the chart is not donut/pie/gauge.
+	 * @property {Function} [tooltip.format.value] Set format for the value of each data value in tooltip. If undefined returned, the row of that value will be skipped to be called.
+	 *  - Will pass following arguments to the given function:
+	 *    - `value {string}`: Value of the data point. If data row contains multiple or ranged(ex. candlestick, area range, etc.) value, formatter will be called as value length.
+	 *    - `ratio {number}`: Ratio of the data point in the `pie/donut/gauge` and `area/bar` when contains grouped data. Otherwise is `undefined`.
+	 *    - `id {string}`: id of the data point
+	 *    - `index {number}`: Index of the data point
+	 * @property {Function} [tooltip.position] Set custom position function for the tooltip.<br>
+	 *  This option can be used to modify the tooltip position by returning object that has top and left.
+	 *  - Will pass following arguments to the given function:
+	 *    - `data {Array}`: Current selected data array object.
+	 *    - `width {number}`: Width of tooltip.
+	 *    - `height {number}`: Height of tooltip.
+	 *    - `element {SVGElement}`: Tooltip event bound element
+	 *    - `pos {object}`: Current position of the tooltip.
+	 * @property {Function|object} [tooltip.contents] Set custom HTML for the tooltip.<br>
+	 *  If tooltip.grouped is true, data includes multiple data points.<br><br>
+	 *  Specified function receives `data` array and `defaultTitleFormat`, `defaultValueFormat` and `color` functions of the data point to show.
+	 *  - **Note:**
+	 *    - defaultTitleFormat:
+	 *      - if `axis.x.tick.format` option will be used if set.
+	 *      - otherwise, will return function based on tick format type(category, timeseries).
+	 *    - defaultValueFormat:
+	 * 	    - for Arc type (except gauge, radar), the function will return value from `(ratio * 100).toFixed(1)`.
+	 * 	    - for Axis based types, will be used `axis.[y|y2].tick.format` option value if is set.
+	 * 	    - otherwise, will parse value and return as number.
+	 * @property {string|HTMLElement} [tooltip.contents.bindto=undefined] Set CSS selector or element reference to bind tooltip.
+	 *  - **NOTE:** When is specified, will not be updating tooltip's position.
+	 * @property {string} [tooltip.contents.template=undefined] Set tooltip's template.<br><br>
+	 *  Within template, below syntax will be replaced using template-like syntax string:
+	 *    - **{{ ... }}**: the doubly curly brackets indicate loop block for data rows.
+	 *    - **{=CLASS_TOOLTIP}**: default tooltip class name `bb-tooltip`.
+	 *    - **{=CLASS_TOOLTIP_NAME}**: default tooltip data class name (ex. `bb-tooltip-name-data1`)
+	 *    - **{=TITLE}**: title value.
+	 *    - **{=COLOR}**: data color.
+	 *    - **{=NAME}**: data id value.
+	 *    - **{=VALUE}**: data value.
+	 * @property {object} [tooltip.contents.text=undefined] Set additional text content within data loop, using template syntax.
+	 *  - **NOTE:** It should contain `{ key: Array, ... }` value
+	 *    - 'key' name is used as substitution within template as '{=KEY}'
+	 *    - The value array length should match with the data length
+	 * @property {boolean} [tooltip.init.show=false] Show tooltip at the initialization.
+	 * @property {number} [tooltip.init.x=0] Set x Axis index(or index for Arc(donut, gauge, pie) types) to be shown at the initialization.
+	 * @property {object} [tooltip.init.position] Set the position of tooltip at the initialization.
+	 * @property {Function} [tooltip.onshow] Set a callback that will be invoked before the tooltip is shown.
+	 * @property {Function} [tooltip.onhide] Set a callback that will be invoked before the tooltip is hidden.
+	 * @property {Function} [tooltip.onshown] Set a callback that will be invoked after the tooltip is shown
+	 * @property {Function} [tooltip.onhidden] Set a callback that will be invoked after the tooltip is hidden.
+	 * @property {string|Function|null} [tooltip.order=null] Set tooltip data display order.<br><br>
+	 *  **Available Values:**
+	 *  - `desc`: In descending data value order
+	 *  - `asc`: In ascending data value order
+	 *  - `null`: It keeps the data display order<br>
+	 *     **NOTE:** When `data.groups` is set, the order will follow as the stacked graph order.<br>
+	 *      If want to order as data bound, set any value rather than asc, desc or null. (ex. empty string "")
+	 *  - `function(data1, data2) { ... }`: [Array.sort compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters)
+	 * @see [Demo: Hide Tooltip](https://naver.github.io/billboard.js/demo/#Tooltip.HideTooltip)
+	 * @see [Demo: Tooltip Grouping](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipGrouping)
+	 * @see [Demo: Tooltip Format](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipFormat)
+	 * @see [Demo: Linked Tooltip](https://naver.github.io/billboard.js/demo/#Tooltip.LinkedTooltips)
+	 * @see [Demo: Tooltip Position](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipPosition)
+	 * @see [Demo: Tooltip Template](https://naver.github.io/billboard.js/demo/#Tooltip.TooltipTemplate)
+	 * @example
+	 *  tooltip: {
+	 *      show: true,
+	 *      doNotHide: true,
+	 *      grouped: false,
+	 *      format: {
+	 *          title: function(x) { return "Data " + x; },
+	 *          name: function(name, ratio, id, index) { return name; },
+	 *
+	 *          // If data row contains multiple or ranged(ex. candlestick, area range, etc.) value,
+	 *          // formatter will be called as value length times.
+	 *          value: function(value, ratio, id, index) { return ratio; }
+	 *      },
+	 *      position: function(data, width, height, element, pos) {
+	 *          // data: [{x, index, id, name, value}, ...]
+	 *          // width: Tooltip width
+	 *          // height: Tooltip height
+	 *          // element: Tooltip event bound element
+	 *          // pos: {
+	 *          //   x: Current mouse event x position,
+	 *          //   y: Current mouse event y position,
+	 *          //   xAxis: Current x Axis position (the value is given for axis based chart type only)
+	 *          //   yAxis: Current y Axis position value or function(the value is given for axis based chart type only)
+	 *          // }
+	 *
+	 *          // yAxis will work differently per data lenghts
+	 *          // - a) Single data: `yAxis` will return `number` value
+	 *          // - b) Multiple data: `yAxis` will return a function with property value
+	 *
+	 *          // a) Single data:
+	 *          // Get y coordinate
+	 *          pos.yAxis; // y axis coordinate value of current data point
+	 *
+	 *          // b) Multiple data:
+	 *          // Get y coordinate of value 500, where 'data1' scales(y or y2).
+	 *          // When 'data.axes' option is used, data can bound to different axes.
+	 *          // - when "data.axes={data1: 'y'}", wil return y value from y axis scale.
+	 *          // - when "data.axes={data1: 'y2'}", wil return y value from y2 axis scale.
+	 *          pos.yAxis(500, "data1"); // will return y coordinate value of data1
+	 *
+	 *          pos.yAxis(500); // get y coordinate with value of 500, using y axis scale
+	 *          pos.yAxis(500, null, "y2"); // get y coordinate with value of 500, using y2 axis scale
+	 *
+	 *          return {
+	 *            top: 0,
+	 *            left: 0
+	 *          }
+	 *      },
+	 *
+	 *      contents: function(d, defaultTitleFormat, defaultValueFormat, color) {
+	 *          return ... // formatted html as you want
+	 *      },
+	 *
+	 *       // specify tooltip contents using template
+	 *       // - example of HTML returned:
+	 *       // <ul class="bb-tooltip">
+	 *       //   <li class="bb-tooltip-name-data1"><span>250</span><br><span style="color:#00c73c">data1</span></li>
+	 *       //   <li class="bb-tooltip-name-data2"><span>50</span><br><span style="color:#fa7171">data2</span></li>
+	 *       // </ul>
+	 *       contents: {
+	 *      	bindto: "#tooltip",
+	 *      	template: '<ul class={=CLASS_TOOLTIP}>{{' +
+	 *      			'<li class="{=CLASS_TOOLTIP_NAME}"><span>{=VALUE}</span><br>' +
+	 *      			'<span style=color:{=COLOR}>{=NAME}</span></li>' +
+	 *      		'}}</ul>'
+	 *      }
+	 *
+	 *       // with additional text value
+	 *       // - example of HTML returned:
+	 *       // <ul class="bb-tooltip">
+	 *       //   <li class="bb-tooltip-name-data1"><span>250</span><br>comment1<span style="color:#00c73c">data1</span>text1</li>
+	 *       //   <li class="bb-tooltip-name-data2"><span>50</span><br>comment2<span style="color:#fa7171">data2</span>text2</li>
+	 *       // </ul>
+	 *       contents: {
+	 *      	bindto: "#tooltip",
+	 *      	text: {
+	 *      		// a) 'key' name is used as substitution within template as '{=KEY}'
+	 *      		// b) the length should match with the data length
+	 *      		VAR1: ["text1", "text2"],
+	 *      		VAR2: ["comment1", "comment2"],
+	 *      	},
+	 *      	template: '<ul class={=CLASS_TOOLTIP}>{{' +
+	 *      			'<li class="{=CLASS_TOOLTIP_NAME}"><span>{=VALUE}</span>{=VAR2}<br>' +
+	 *      			'<span style=color:{=COLOR}>{=NAME}</span>{=VAR1}</li>' +
+	 *      		'}}</ul>'
+	 *      }
+	 *
+	 *      // sort tooltip data value display in ascending order
+	 *      order: "asc",
+	 *
+	 *      // specifying sort function
+	 *      order: function(a, b) {
+	 *         // param data passed format
+	 *         {x: 5, value: 250, id: "data1", index: 5, name: "data1"}
+	 *           ...
+	 *      },
+	 *
+	 *      // show at the initialization
+	 *      init: {
+	 *          show: true,
+	 *          x: 2, // x Axis index (or index for Arc(donut, gauge, pie) types)
+	 *          position: {
+	 *              top: "150px",  // specify as number or as string with 'px' unit string
+	 *              left: 250  // specify as number or as string with 'px' unit string
+	 *          }
+	 *      },
+	 *
+	 *      // fires prior tooltip is shown
+	 *      onshow: function(selectedData) {
+	 *      	// current dataset selected
+	 *      	// ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...]
+	 *      	selectedData;
+	 *      },
+	 *
+	 *      // fires prior tooltip is hidden
+	 *      onhide: function(selectedData) {
+	 *      	// current dataset selected
+	 *      	// ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...]
+	 *      	selectedData;
+	 *      },
+	 *
+	 *      // fires after tooltip is shown
+	 *      onshown: function(selectedData) {
+	 *      	// current dataset selected
+	 *      	// ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...]
+	 *      	selectedData;
+	 *      },
+	 *
+	 *      // fires after tooltip is hidden
+	 *      onhidden: function(selectedData) {
+	 *      	// current dataset selected
+	 *      	// ==> [{x: 4, value: 150, id: "data2", index: 4, name: "data2"}, ...]
+	 *      	selectedData;
+	 *      },
+	 *
+	 *      // Link any tooltips when multiple charts are on the screen where same x coordinates are available
+	 *      // Useful for timeseries correlation
+	 *      linked: true,
+	 *
+	 *      // Specify name to interact those with the same name only.
+	 *      linked: {
+	 *          name: "some-group"
+	 *      }
+	 *  }
+	 */
+	tooltip_show: true,
+	tooltip_doNotHide: false,
+	tooltip_grouped: true,
+	tooltip_format_title: <(() => string) | undefined>undefined,
+	tooltip_format_name: <(() => string) | undefined>undefined,
+	tooltip_format_value: <(() => number) | undefined>undefined,
+	tooltip_position: <(() => {top: number, left: number}) | undefined>undefined,
+	tooltip_contents: <(() => string) | {
+		bindto: string,
+		template: string,
+		text?: {[key: string]: string[]}
+	}>{},
+	tooltip_init_show: false,
+	tooltip_init_x: 0,
+	tooltip_init_position: undefined,
+	tooltip_linked: false,
+	tooltip_linked_name: "",
+	tooltip_onshow: () => {},
+	tooltip_onhide: () => {},
+	tooltip_onshown: () => {},
+	tooltip_onhidden: () => {},
+	tooltip_order: <string | Function | null>null
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_data_axis.ts.html b/release/3.12.4/doc/config_Options_data_axis.ts.html new file mode 100644 index 000000000..52176372e --- /dev/null +++ b/release/3.12.4/doc/config_Options_data_axis.ts.html @@ -0,0 +1,240 @@ + + + + + + config/Options/data/axis.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/data/axis.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import type {DataRegionsType} from "../../../../types/types";
+
+/**
+ * Axis based chart data config options
+ */
+export default {
+	/**
+	 * Specify the keys of the x values for each data.<br><br>
+	 * This option can be used if we want to show the data that has different x values.
+	 * @name data․xs
+	 * @memberof Options
+	 * @type {object}
+	 * @default {}
+	 * @example
+	 * data: {
+	 *   xs: {
+	 *      data1: "x1",
+	 *      data2: "x2"
+	 *   }
+	 * }
+	 */
+	data_xs: {},
+
+	/**
+	 * Set a format specifier to parse string specifed as x.
+	 * @name data․xFormat
+	 * @memberof Options
+	 * @type {string}
+	 * @default %Y-%m-%d
+	 * @example
+	 * data: {
+	 *    x: "x",
+	 *    columns: [
+	 *        ["x", "01012019", "02012019", "03012019"],
+	 *        ["data1", 30, 200, 100]
+	 *    ],
+	 *    // Format specifier to parse as datetime for given 'x' string value
+	 *    xFormat: "%m%d%Y"
+	 * },
+	 * axis: {
+	 *    x: {
+	 *        type: "timeseries"
+	 *    }
+	 * }
+	 * @see [D3's time specifier](https://d3js.org/d3-time-format#locale_format)
+	 */
+	data_xFormat: "%Y-%m-%d",
+
+	/**
+	 * Set localtime format to parse x axis.
+	 * @name data․xLocaltime
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * data: {
+	 *   xLocaltime: false
+	 * }
+	 */
+	data_xLocaltime: true,
+
+	/**
+	 * Sort on x axis.
+	 * - **NOTE:** This option works for lineish(area/line/spline/step) types only.
+	 * @name data․xSort
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataXSort)
+	 * @example
+	 * data: {
+	 *   xSort: false,
+	 *   x: "x",
+	 *   columns: [
+	 *     // The line graph will start to be drawn following the x axis sequence
+	 *     // Below data, wil start drawing x=1: 200, x=2: 300, x=3: 100
+	 *     ["x", 3, 1, 2],
+	 *     ["data1", 100, 200, 300]
+	 *   ]
+	 * }
+	 */
+	data_xSort: true,
+
+	/**
+	 * Set y axis the data related to. y and y2 can be used.
+	 * - **NOTE:** If all data is related to one of the axes, the domain of axis without related data will be replaced by the domain from the axis with related data
+	 * @name data․axes
+	 * @memberof Options
+	 * @type {object}
+	 * @default {}
+	 * @example
+	 * data: {
+	 *   axes: {
+	 *     data1: "y",
+	 *     data2: "y2"
+	 *   }
+	 * }
+	 */
+	data_axes: <{[key: string]: string}>{},
+
+	/**
+	 * Define regions for each data.<br>
+	 * The values must be an array for each data and it should include an object that has `start`, `end` and `style`.
+	 * - The object type should be as:
+	 *   - start {number}: Start data point number. If not set, the start will be the first data point.
+	 *   - [end] {number}: End data point number. If not set, the end will be the last data point.
+	 *   - [style.dasharray="2 2"] {object}: The first number specifies a distance for the filled area, and the second a distance for the unfilled area.
+	 * - **NOTE:** Currently this option supports only line chart and dashed style. If this option specified, the line will be dashed only in the regions.
+	 * @name data․regions
+	 * @memberof Options
+	 * @type {object}
+	 * @default {}
+	 * @example
+	 * data: {
+	 *   regions: {
+	 *     data1: [{
+	 *         start: 1,
+	 *         end: 2,
+	 *         style: {
+	 *             dasharray: "5 2"
+	 *         }
+	 *     }, {
+	 *         start: 3
+	 *     }],
+	 *     ...
+	 *   }
+	 * }
+	 */
+	data_regions: <DataRegionsType>{},
+
+	/**
+	 * Set the stacking to be normalized
+	 * - **NOTE:**
+	 *   - For stacking, '[data.groups](#.data%25E2%2580%25A4groups)' option should be set
+	 *   - y Axis will be set in percentage value (0 ~ 100%)
+	 *   - Must have postive values
+	 * @name data․stack․normalize
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataStackNormalized)
+	 * @example
+	 * data: {
+	 *   stack: {
+	 *      normalize: true
+	 *   }
+	 * }
+	 */
+	data_stack_normalize: false
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_data_data.ts.html b/release/3.12.4/doc/config_Options_data_data.ts.html new file mode 100644 index 000000000..fee672cc0 --- /dev/null +++ b/release/3.12.4/doc/config_Options_data_data.ts.html @@ -0,0 +1,981 @@ + + + + + + config/Options/data/data.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/data/data.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+import type {ChartTypes, d3Selection} from "../../../../types/types";
+
+/**
+ * data config options
+ */
+export default {
+	/**
+	 * Specify the key of x values in the data.<br><br>
+	 * We can show the data with non-index x values by this option. This option is required when the type of x axis is timeseries. If this option is set on category axis, the values of the data on the key will be used for category names.
+	 * @name data․x
+	 * @memberof Options
+	 * @type {string}
+	 * @default undefined
+	 * @example
+	 * data: {
+	 *   x: "date"
+	 * }
+	 */
+	data_x: <string | undefined>undefined,
+
+	/**
+	 * Converts data id value
+	 * @name data․idConverter
+	 * @memberof Options
+	 * @type {Function}
+	 * @default function(id) { return id; }
+	 * @example
+	 * data: {
+	 *    idConverter: function(id) {
+	 *       // when id is 'data1', converts to be 'data2'
+	 *       // 'data2' should be given as the initial data value
+	 *       if (id === "data1") {
+	 *          return "data2";
+	 *       } else {
+	 *          return id;
+	 *       }
+	 *    }
+	 * }
+	 */
+	data_idConverter: id => id,
+
+	/**
+	 * Set custom data name.
+	 * If a name is set to `null`, the series is omitted from the legend.
+	 * @name data․names
+	 * @memberof Options
+	 * @type {object}
+	 * @default {}
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataName)
+	 * @example
+	 * data: {
+	 *   names: {
+	 *     data1: "Data Name 1",
+	 *     data2: "Data Name 2"
+	 *   }
+	 * }
+	 */
+	data_names: <{[key: string]: string | null}>{},
+
+	/**
+	 * Set custom data class.<br><br>
+	 * If this option is specified, the element g for the data has an additional class that has the prefix 'bb-target-' (eg. bb-target-additional-data1-class).
+	 * @name data․classes
+	 * @memberof Options
+	 * @type {object}
+	 * @default {}
+	 * @example
+	 * data: {
+	 *   classes: {
+	 *     data1: "additional-data1-class",
+	 *     data2: "additional-data2-class"
+	 *   }
+	 * }
+	 */
+	data_classes: <{[key: string]: string}>{},
+
+	/**
+	 * Set chart type at once.<br><br>
+	 * If this option is specified, the type will be applied to every data. This setting can be overwritten by data.types.<br><br>
+	 * **Available Values:**
+	 * - area
+	 * - area-line-range
+	 * - area-spline
+	 * - area-spline-range
+	 * - area-step
+	 * - bar
+	 * - bubble
+	 * - candlestick
+	 * - donut
+	 * - funnel
+	 * - gauge
+	 * - line
+	 * - pie
+	 * - polar
+	 * - radar
+	 * - scatter
+	 * - spline
+	 * - step
+	 * - treemap
+	 * @name data․type
+	 * @memberof Options
+	 * @type {string}
+	 * @default "line"<br>NOTE: When importing shapes by ESM, `line()` should be specified for type.
+	 * @example
+	 * data: {
+	 *    type: "bar"
+	 * }
+	 * @example
+	 * // Generate chart by importing ESM
+	 * // Import types to be used only, where this will make smaller bundle size.
+	 * import bb, {
+	 *   area,
+	 *   areaLineRange,
+	 *   areaSpline,
+	 *   areaSplineRange,
+	 *   areaStep,
+	 *   bar,
+	 *   bubble,
+	 *   candlestick,
+	 *   donut,
+	 *   funnel,
+	 *   gauge,
+	 *   line,
+	 *   pie,
+	 *   polar,
+	 *   radar,
+	 *   scatter,
+	 *   spline,
+	 *   step,
+	 *   treemap
+	 * }
+	 *
+	 * bb.generate({
+	 *   ...,
+	 *   data: {
+	 *     type: bar()
+	 *   }
+	 * });
+	 */
+	data_type: <ChartTypes | undefined>undefined,
+
+	/**
+	 * Set chart type for each data.<br>
+	 * This setting overwrites data.type setting.
+	 * - **NOTE:** `radar` and `treemap` type can't be combined with other types.
+	 * @name data․types
+	 * @memberof Options
+	 * @type {object}
+	 * @default {}
+	 * @example
+	 * data: {
+	 *   types: {
+	 *     data1: "bar",
+	 *     data2: "spline"
+	 *   }
+	 * }
+	 * @example
+	 * // Generate chart by importing ESM
+	 * // Import types to be used only, where this will make smaller bundle size.
+	 * import bb, {
+	 *   area,
+	 *   areaLineRange,
+	 *   areaSpline,
+	 *   areaSplineRange,
+	 *   areaStep,
+	 *   bar,
+	 *   bubble,
+	 *   candlestick,
+	 *   donut,
+	 *   funnel,
+	 *   gauge,
+	 *   line,
+	 *   pie,
+	 *   polar,
+	 *   radar,
+	 *   scatter,
+	 *   spline,
+	 *   step,
+	 *   treemap
+	 * }
+	 *
+	 * bb.generate({
+	 *   ...,
+	 *   data: {
+	 *     types: {
+	 *       data1: bar(),
+	 *       data1: spline()
+	 *     }
+	 *   }
+	 * });
+	 */
+	data_types: <{[key: string]: ChartTypes}>{},
+
+	/**
+	 *  This option changes the order of stacking data and pieces of pie/donut.
+	 *  - If `null` specified, it will be the order the data loaded.
+	 *  - If function specified, it will be used as [Array.sort compareFunction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters)<br><br>
+	 *
+	 *  **Available Values:**
+	 *  - `desc`: In descending order
+	 *  - `asc`: In ascending order
+	 *  - `null`: It keeps the data load order
+	 *  - `function(data1, data2) { ... }`: Array.sort compareFunction
+	 *
+	 *  **NOTE**: order function, only works for Axis based types & Arc types, except `Radar` type.
+	 * @name data․order
+	 * @memberof Options
+	 * @type {string|Function|null}
+	 * @default desc
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataOrder)
+	 * @example
+	 * data: {
+	 *   // in descending order (default)
+	 *   order: "desc"
+	 *
+	 *   // in ascending order
+	 *   order: "asc"
+	 *
+	 *   // keeps data input order
+	 *   order: null
+	 *
+	 *   // specifying sort function
+	 *   order: function(a, b) {
+	 *       // param data passed format
+	 *       // {
+	 *       //   id: "data1", id_org: "data1", values: [
+	 *       //      {x: 5, value: 250, id: "data1", index: 5, name: "data1"},
+	 *       //       ...
+	 *       //   ]
+	 *       // }
+	 *
+	 *       const reducer = (p, c) => p + Math.abs(c.value);
+	 *       const aSum = a.values.reduce(reducer, 0);
+	 *       const bSum = b.values.reduce(reducer, 0);
+	 *
+	 *       // ascending order
+	 *       return aSum - bSum;
+	 *
+	 *       // descending order
+	 *       // return bSum - aSum;
+	 *   }
+	 * }
+	 */
+	data_order: <"desc" | "asc" | Function | null>"desc",
+
+	/**
+	 * Set groups for the data for stacking.
+	 * @name data․groups
+	 * @memberof Options
+	 * @type {Array}
+	 * @default []
+	 * @example
+	 * data: {
+	 *   groups: [
+	 *     ["data1", "data2"],
+	 *     ["data3"]
+	 *   ]
+	 * }
+	 */
+	data_groups: <string[][]>[],
+
+	/**
+	 * Set how zero value will be treated on groups.<br>
+	 * Possible values:
+	 * - `zero`: 0 will be positioned at absolute axis zero point.
+	 * - `positive`: 0 will be positioned at the top of a stack.
+	 * - `negative`: 0 will be positioned at the bottom of a stack.
+	 * @name data․groupsZeroAs
+	 * @memberof Options
+	 * @type {string}
+	 * @default "positive"
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.Groups)
+	 * @example
+	 * data: {
+	 *   groupsZeroAs: "zero" // "positive" or "negative"
+	 * }
+	 */
+	data_groupsZeroAs: <"zero" | "positive" | "negative">"positive",
+
+	/**
+	 * Set color converter function.<br><br>
+	 * This option should a function and the specified function receives color (e.g. '#ff0000') and d that has data parameters like id, value, index, etc. And it must return a string that represents color (e.g. '#00ff00').
+	 * @name data․color
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataColor)
+	 * @example
+	 * data: {
+	 *   color: function(color, d) { ... }
+	 * }
+	 */
+	data_color: <Function | undefined>undefined,
+
+	/**
+	 * Set color for each data.
+	 * @name data․colors
+	 * @memberof Options
+	 * @type {object}
+	 * @default {}
+	 * @example
+	 * data: {
+	 *   colors: {
+	 *     data1: "#ff0000",
+	 *     data2: function(d) {
+	 *        return "#000";
+	 *     }
+	 *     ...
+	 *   }
+	 * }
+	 */
+	data_colors: <{[key: string]: string | (() => string)}>{},
+
+	/**
+	 * Set labels options
+	 * @name data․labels
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} data Data object
+	 * @property {boolean} [data.labels=false] Show or hide labels on each data points
+	 * @property {boolean} [data.labels.centered=false] Centerize labels on `bar` shape. (**NOTE:** works only for 'bar' type)
+	 * @property {Function} [data.labels.format] Set formatter function for data labels.<br>
+	 * The formatter function receives 4 arguments such as `v, id, i, texts` and it **must return a string** (`\n` character will be used as line break) that will be shown as the label.<br><br>
+	 * The arguments are:<br>
+	 *  - `v` is the value of the data point where the label is shown.
+	 *  - `id` is the id of the data where the label is shown.
+	 *  - `i` is the index of the data series point where the label is shown.
+	 *  - `texts` is the array of whole corresponding data series' text labels.<br><br>
+	 * Formatter function can be defined for each data by specifying as an object and D3 formatter function can be set (ex. d3.format('$'))
+	 * @property {string|object} [data.labels.backgroundColors] Set label text background colors.
+	 * @property {string|object|Function} [data.labels.colors] Set label text colors.
+	 * @property {object|Function} [data.labels.position] Set each dataset position, relative the original.<br><br>
+	 * When function is specified, will receives 5 arguments such as `type, v, id, i, texts` and it must return a position number.<br><br>
+	 * The arguments are:<br>
+	 *  - `type` coordinate type string, which will be 'x' or 'y'.
+	 *  - `v` is the value of the data point where the label is shown.
+	 *  - `id` is the id of the data where the label is shown.
+	 *  - `i` is the index of the data series point where the label is shown.
+	 *  - `texts` is the array of whole corresponding data series' text labels.<br><br>
+	 * @property {number} [data.labels.position.x=0] x coordinate position, relative the original.
+	 * @property {number} [data.labels.position.y=0] y coordinate position, relative the original.
+	 * @property {object} [data.labels.rotate] Rotate label text. Specify degree value in a range of `0 ~ 360`.
+	 * - **NOTE:** Depend on rotate value, text position need to be adjusted manually(using `data.labels.position` option) to be shown nicely.
+	 * @memberof Options
+	 * @type {object}
+	 * @default {}
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataLabel)
+	 * @see [Demo: label colors](https://naver.github.io/billboard.js/demo/#Data.DataLabelColors)
+	 * @see [Demo: label format](https://naver.github.io/billboard.js/demo/#Data.DataLabelFormat)
+	 * @see [Demo: label multiline](https://naver.github.io/billboard.js/demo/#Data.DataLabelMultiline)
+	 * @see [Demo: label overlap](https://naver.github.io/billboard.js/demo/#Data.DataLabelOverlap)
+	 * @see [Demo: label position](https://naver.github.io/billboard.js/demo/#Data.DataLabelPosition)
+	 * @see [Demo: label rotate](https://naver.github.io/billboard.js/demo/#Data.DataLabelRotate)
+	 * @example
+	 * data: {
+	 *   labels: true,
+	 *
+	 *   // or set specific options
+	 *   labels: {
+	 *     format: function(v, id, i, texts) {
+	 *         ...
+	 *         // to multiline, return with '\n' character
+	 *         return "Line1\nLine2";
+	 *     },
+	 *
+	 *     // it's possible to set for each data
+	 *     format: {
+	 *         data1: function(v, id, i, texts) { ... },
+	 *         ...
+	 *     },
+	 *
+	 *     // align text to center of the 'bar' shape (works only for 'bar' type)
+	 *     centered: true,
+	 *
+	 *     // apply backgound color for label texts
+	 *     backgroundColors: "red",
+	 *
+	 *     // set differenct backround colors per dataset
+	 *     backgroundColors: {
+	 *          data1: "green",
+	 *          data2: "yellow"
+	 *     }
+	 *
+	 *     // apply for all label texts
+	 *     colors: "red",
+	 *
+	 *     // set different colors per dataset
+	 *     // for not specified dataset, will have the default color value
+	 *     colors: {
+	 *        data1: "yellow",
+	 *        data3: "green"
+	 *     },
+	 *
+	 *     // call back for label text color
+	 *     colors: function(color, d) {
+	 *         // color: the default data label color string
+	 *         // data: ex) {x: 0, value: 200, id: "data3", index: 0}
+	 *         ....
+	 *         return d.value > 200 ? "cyan" : color;
+	 *     },
+	 *
+	 *     // return x, y coordinate position
+	 *     // apt to handle each text position manually
+	 *     position: function(type, v, id, i, texts) {
+	 *         ...
+	 *         return type == "x" ? 10 : 20;
+	 *     },
+	 *
+	 *     // set x, y coordinate position
+	 *     position: {
+	 *        x: -10,
+	 *        y: 10
+	 *     },
+	 *
+	 *     // or set x, y coordinate position by each dataset
+	 *     position: {
+	 *        data1: {x: 5, y: 5},
+	 *        data2: {x: 10, y: -20}
+	 *     },
+	 *
+	 * 	   // rotate degree for label text
+	 *     rotate: 90
+	 *   }
+	 * }
+	 */
+	data_labels: <boolean | {
+		centered?: boolean,
+		format?: (v: number, id: string, i: number, texts: d3Selection) => number,
+		colors?: string | {[key: string]: string},
+		position?: (type: "x" | "y", v: number, id: string, i: number, texts: d3Selection) =>
+			| number
+			| {[key: string]: number}
+			| {[key: string]: {x?: number, y?: number}},
+		rotate?: number
+	}>{},
+	data_labels_backgroundColors: <string | {[key: string]: string} | undefined>undefined,
+	data_labels_colors: <string | object | Function | undefined>undefined,
+	data_labels_position: {},
+
+	/**
+	 * Hide each data when the chart appears.<br><br>
+	 * If true specified, all of data will be hidden. If multiple ids specified as an array, those will be hidden.
+	 * @name data․hide
+	 * @memberof Options
+	 * @type {boolean|Array}
+	 * @default false
+	 * @example
+	 * data: {
+	 *   // all of data will be hidden
+	 *   hide: true
+	 *
+	 *   // specified data will be hidden
+	 *   hide: ["data1", ...]
+	 * }
+	 */
+	data_hide: <string[] | boolean>false,
+
+	/**
+	 * Filter values to be shown
+	 * The data value is the same as the returned by `.data()`.
+	 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
+	 * @name data․filter
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 * data: {
+	 *   // filter for id value
+	 *   filter: function(v) {
+	 *      // v: [{id: "data1", id_org: "data1", values: [
+	 *      //      {x: 0, value: 130, id: "data2", index: 0}, ...]
+	 *      //    }, ...]
+	 *      return v.id !== "data1";
+	 *   }
+	 */
+	data_filter: <(() => boolean) | undefined>undefined,
+
+	/**
+	 * Set a callback for click event on each data point.<br><br>
+	 * This callback will be called when each data point clicked and will receive `d` and element as the arguments.
+	 * - `d` is the data clicked and element is the element clicked.
+	 * - `element` is the current interacting svg element.
+	 * - In this callback, `this` will be the Chart object.
+	 * @name data․onclick
+	 * @memberof Options
+	 * @type {Function}
+	 * @default function() {}
+	 * @example
+	 * data: {
+	 *     onclick: function(d, element) {
+	 *        // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"}
+	 *        // element - <circle>
+	 *        ...
+	 *     }
+	 * }
+	 */
+	data_onclick: () => {},
+
+	/**
+	 * Set a callback for mouse/touch over event on each data point.<br><br>
+	 * This callback will be called when mouse cursor or via touch moves onto each data point and will receive `d` and `element` as the argument.
+	 * - `d` is the data where mouse cursor moves onto.
+	 * - `element` is the current interacting svg element.
+	 * - In this callback, `this` will be the Chart object.
+	 * @name data․onover
+	 * @memberof Options
+	 * @type {Function}
+	 * @default function() {}
+	 * @example
+	 * data: {
+	 *     onover: function(d, element) {
+	 *        // d - ex) {x: 4, value: 150, id: "data1", index: 4}
+	 *        // element - <circle>
+	 *        ...
+	 *     }
+	 * }
+	 */
+	data_onover: () => {},
+
+	/**
+	 * Set a callback for mouse/touch out event on each data point.<br><br>
+	 * This callback will be called when mouse cursor or via touch moves out each data point and will receive `d` as the argument.
+	 * - `d` is the data where mouse cursor moves out.
+	 * - `element` is the current interacting svg element.
+	 * - In this callback, `this` will be the Chart object.
+	 * @name data․onout
+	 * @memberof Options
+	 * @type {Function}
+	 * @default function() {}
+	 * @example
+	 * data: {
+	 *     onout: function(d, element) {
+	 *        // d - ex) {x: 4, value: 150, id: "data1", index: 4}
+	 *        // element - <circle>
+	 *        ...
+	 *     }
+	 * }
+	 */
+	data_onout: () => {},
+
+	/**
+	 * Set a callback for when data is shown.<br>
+	 * The callback will receive shown data ids in array.
+	 * @name data․onshown
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 *  data: {
+	 *    onshown: function(ids) {
+	 *      // ids - ["data1", "data2", ...]
+	 *      ...
+	 *    }
+	 *  }
+	 */
+	data_onshown: <Function | undefined>undefined,
+
+	/**
+	 * Set a callback for when data is hidden.<br>
+	 * The callback will receive hidden data ids in array.
+	 * @name data․onhidden
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @example
+	 *  data: {
+	 *    onhidden: function(ids) {
+	 *      // ids - ["data1", "data2", ...]
+	 *      ...
+	 *    }
+	 *  }
+	 */
+	data_onhidden: <Function | undefined>undefined,
+
+	/**
+	 * Set a callback for minimum data
+	 * - **NOTE:** For 'area-line-range' and 'area-spline-range', `mid` data will be taken for the comparison
+	 * @name data․onmin
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.OnMinMaxCallback)
+	 * @example
+	 *  onmin: function(data) {
+	 *    // data - ex) [{x: 3, value: 400, id: "data1", index: 3}, ... ]
+	 *    ...
+	 *  }
+	 */
+	data_onmin: <Function | undefined>undefined,
+
+	/**
+	 * Set a callback for maximum data
+	 * - **NOTE:** For 'area-line-range' and 'area-spline-range', `mid` data will be taken for the comparison
+	 * @name data․onmax
+	 * @memberof Options
+	 * @type {Function}
+	 * @default undefined
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.OnMinMaxCallback)
+	 * @example
+	 *  onmax: function(data) {
+	 *    // data - ex) [{x: 3, value: 400, id: "data1", index: 3}, ... ]
+	 *    ...
+	 *  }
+	 */
+	data_onmax: <Function | undefined>undefined,
+
+	/**
+	 * Load a CSV or JSON file from a URL. NOTE that this will not work if loading via the "file://" protocol as the most browsers will block XMLHTTPRequests.
+	 * @name data․url
+	 * @memberof Options
+	 * @type {string}
+	 * @default undefined
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.LoadData)
+	 * @example
+	 * data: {
+	 *     url: "/data/test.csv"
+	 * }
+	 */
+	data_url: <string | undefined>undefined,
+
+	/**
+	 * XHR header value
+	 * - **NOTE:** Should be used with `data.url` option
+	 * @name data․headers
+	 * @memberof Options
+	 * @type {string}
+	 * @default undefined
+	 * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader
+	 * @example
+	 * data: {
+	 *     url: "/data/test.csv",
+	 *     headers: {
+	 *        "Content-Type": "text/xml",
+	 *        ...
+	 *     }
+	 * }
+	 */
+	data_headers: <object | undefined>undefined,
+
+	/**
+	 * Parse a JSON object for data. See also data.keys.
+	 * @name data․json
+	 * @memberof Options
+	 * @type {Array}
+	 * @default undefined
+	 * @see [data․keys](#.data%25E2%2580%25A4keys)
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.JSONData)
+	 * @example
+	 * data: {
+	 *     json: [
+	 *       {name: "www.site1.com", upload: 200, download: 200, total: 400},
+	 *       {name: "www.site2.com", upload: 100, download: 300, total: 400},
+	 *       {name: "www.site3.com", upload: 300, download: 200, total: 500},
+	 *       {name: "www.site4.com", upload: 400, download: 100, total: 500}
+	 *     ],
+	 *     keys: {
+	 *       // case 1: specify 'x' key for category axis
+	 *       x: "name", // 'name' key will be used as category x axis values
+	 *       value: ["upload", "download"]
+	 *
+	 *       // case 2: without 'x' key for non-category axis
+	 *       value: ["upload", "download"]
+	 *     }
+	 * }
+	 */
+	data_json: <object[] | undefined>undefined,
+
+	/**
+	 * Load data from a multidimensional array, with the first element containing the data names, the following containing related data in that order.
+	 * @name data․rows
+	 * @memberof Options
+	 * @type {Array}
+	 * @default undefined
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.RowOrientedData)
+	 * @example
+	 * data: {
+	 *   rows: [
+	 *     ["A", "B", "C"],
+	 *     [90, 120, 300],
+	 *     [40, 160, 240],
+	 *     [50, 200, 290],
+	 *     [120, 160, 230],
+	 *     [80, 130, 300],
+	 *     [90, 220, 320]
+	 *   ]
+	 * }
+	 *
+	 * // for 'bar' type, data can contain:
+	 * // - an array of [start, end] data following the order
+	 * data: {
+	 *   rows: [
+	 *      ["data1", "data2"],
+	 *      [[100, 150], 120],
+	 *      [[200, 300], 55],
+	 *      [[-400, 500], 60]
+	 *   ],
+	 *   type: "bar"
+	 * }
+	 *
+	 * // for 'range' types('area-line-range' or 'area-spline-range'), data should contain:
+	 * // - an array of [high, mid, low] data following the order
+	 * // - or an object with 'high', 'mid' and 'low' key value
+	 * data: {
+	 *   rows: [
+	 *      ["data1", "data2"],
+	 *      [
+	 *        // or {high:150, mid: 140, low: 110}, 120
+	 *        [150, 140, 110], 120
+	 *      ],
+	 *      [[155, 130, 115], 55],
+	 *      [[160, 135, 120], 60]
+	 *   ],
+	 *   types: {
+	 *       data1: "area-line-range",
+	 *       data2: "line"
+	 *   }
+	 * }
+	 *
+	 * // for 'bubble' type, data can contain dimension value:
+	 * // - an array of [y, z] data following the order
+	 * // - or an object with 'y' and 'z' key value
+	 * // 'y' is for y axis coordination and 'z' is the bubble radius value
+	 * data: {
+	 *   rows: [
+	 *      ["data1", "data2"],
+	 *      [
+	 *        // or {y:10, z: 140}, 120
+	 *        [10, 140], 120
+	 *      ],
+	 *      [[100, 30], 55],
+	 *      [[50, 100], 60]
+	 *   ],
+	 *   types: {
+	 *       data1: "bubble",
+	 *       data2: "line"
+	 *   }
+	 * }
+	 *
+	 * // for 'canlestick' type, data should contain:
+	 * // - an array of [open, high, low, close, volume(optional)] data following the order
+	 * // - or an object with 'open', 'high', 'low', 'close' and 'value'(optional) key value
+	 * data: {
+	 *   rows: [
+	 *      ["data1", "data2"],
+	 * 		[
+	 * 			// open, high, low, close, volume (optional)
+	 * 			{open: 1300, high: 1369, low: 1200, close: 1339, volume: 100},
+	 * 			[1000, 1100, 850, 870]
+	 * 		],
+	 * 		[
+	 * 			{open: 1348, high: 1371, low: 1271, close: 1320},
+	 * 			[870, 1250, 830, 1200, 50]
+	 * 		]
+	 *   ],
+	 *   type: "candlestick"
+	 * }
+	 */
+	data_rows: <(string | number)[][] | undefined>undefined,
+
+	/**
+	 * Load data from a multidimensional array, with each element containing an array consisting of a datum name and associated data values.
+	 * @name data․columns
+	 * @memberof Options
+	 * @type {Array}
+	 * @default undefined
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.ColumnOrientedData)
+	 * @example
+	 * data: {
+	 *   columns: [
+	 *      ["data1", 30, 20, 50, 40, 60, 50],
+	 *      ["data2", 200, 130, 90, 240, 130, 220],
+	 *      ["data3", 300, 200, 160, 400, 250, 250]
+	 *   ]
+	 * }
+	 *
+	 * // for 'bar' type, data can contain:
+	 * // - an array of [start, end] data following the order
+	 * data: {
+	 *   columns: [
+	 *     ["data1", -100, 50, [100, 200], [200, 300]],
+	 *     ["data2", -200, 300, [-100, 100], [-50, -30]],
+	 *   ],
+	 *   type: "bar"
+	 * }
+	 *
+	 * // for 'range' types('area-line-range' or 'area-spline-range'), data should contain:
+	 * // - an array of [high, mid, low] data following the order
+	 * // - or an object with 'high', 'mid' and 'low' key value
+	 * data: {
+	 *   columns: [
+	 *      ["data1",
+	 *          [150, 140, 110],  // or {high:150, mid: 140, low: 110}
+	 *          [150, 140, 110],
+	 *          [150, 140, 110]
+	 *      ]
+	 *   ],
+	 *   type: "area-line-range"
+	 * }
+	 *
+	 * // for 'bubble' type, data can contain dimension value:
+	 * // - an array of [y, z] data following the order
+	 * // - or an object with 'y' and 'z' key value
+	 * // 'y' is for y axis coordination and 'z' is the bubble radius value
+	 * data: {
+	 *   columns: [
+	 *      ["data1",
+	 *          [10, 140],  // or {y:10, z: 140}
+	 *          [100, 30],
+	 *          [50, 100]
+	 *      ]
+	 *   ],
+	 *   type: "bubble"
+	 * }
+	 *
+	 * // for 'canlestick' type, data should contain:
+	 * // - an array of [open, high, low, close, volume(optional)] data following the order
+	 * // - or an object with 'open', 'high', 'low', 'close' and 'value'(optional) key value
+	 * data: {
+	 *   columns: [
+	 *      ["data1",
+	 *          [1000, 1100, 850, 870, 100],  // or {open:1000, high: 1100, low: 870, volume: 100}
+	 *          [870, 1250, 830, 1200]  // 'volume' can be omitted
+	 *      ]
+	 *   ],
+	 *   type: "candlestick"
+	 * }
+	 */
+	data_columns: <(string | number)[][] | undefined>undefined,
+
+	/**
+	 * Used if loading JSON via data.url.
+	 * - **Available Values:**
+	 *   - json
+	 *   - csv
+	 *   - tsv
+	 * @name data․mimeType
+	 * @memberof Options
+	 * @type {string}
+	 * @default csv
+	 * @example
+	 * data: {
+	 *     mimeType: "json"
+	 * }
+	 */
+	data_mimeType: <"csv" | "json" | "tsv">"csv",
+
+	/**
+	 * Choose which JSON object keys correspond to desired data.
+	 * - **NOTE:** Only for JSON object given as array.
+	 * @name data․keys
+	 * @memberof Options
+	 * @type {string}
+	 * @default undefined
+	 * @example
+	 * data: {
+	 *     json: [
+	 *       {name: "www.site1.com", upload: 200, download: 200, total: 400},
+	 *       {name: "www.site2.com", upload: 100, download: 300, total: 400},
+	 *       {name: "www.site3.com", upload: 300, download: 200, total: 500},
+	 *       {name: "www.site4.com", upload: 400, download: 100, total: 500}
+	 *     ],
+	 *     keys: {
+	 *       // case 1: specify 'x' key for category axis
+	 *       x: "name", // 'name' key will be used as category x axis values
+	 *       value: ["upload", "download"]
+	 *
+	 *       // case 2: without 'x' key for non-category axis
+	 *       value: ["upload", "download"]
+	 *     }
+	 * }
+	 */
+	data_keys: <{x?: string, value?: string[]} | undefined>undefined,
+
+	/**
+	 * Set text label to be displayed when there's no data to show.
+	 * - ex. Toggling all visible data to not be shown, unloading all current data, etc.
+	 * @name data․empty․label․text
+	 * @memberof Options
+	 * @type {string}
+	 * @default ""
+	 * @example
+	 * data: {
+	 *   empty: {
+	 *     label: {
+	 *       text: "No Data"
+	 *     }
+	 *   }
+	 * }
+	 */
+	data_empty_label_text: ""
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_data_selection.ts.html b/release/3.12.4/doc/config_Options_data_selection.ts.html new file mode 100644 index 000000000..4e5ee9dc6 --- /dev/null +++ b/release/3.12.4/doc/config_Options_data_selection.ts.html @@ -0,0 +1,222 @@ + + + + + + config/Options/data/selection.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/data/selection.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * data.selection config options
+ */
+export default {
+	/**
+	 * Set data selection enabled<br><br>
+	 * If this option is set true, we can select the data points and get/set its state of selection by API (e.g. select, unselect, selected).
+	 *  - **NOTE:** for ESM imports, needs to import 'selection' exports and instantiate it by calling `selection()`.
+	 *    - `enabled: selection()`
+	 * @name data․selection․enabled
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Data.DataSelection)
+	 * @example
+	 * data: {
+	 *    selection: {
+	 *       enabled: true
+	 *    }
+	 * }
+	 * @example
+	 * // importing ESM
+	 * import bb, {selection} from "billboard.js";
+	 *
+	 * data: {
+	 *    selection: {
+	 *       enabled: selection(),
+	 *       ...
+	 *    }
+	 * }
+	 */
+	data_selection_enabled: false,
+
+	/**
+	 * Set grouped selection enabled.<br><br>
+	 * If this option set true, multiple data points that have same x value will be selected by one selection.
+	 * @name data․selection․grouped
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @example
+	 * data: {
+	 *    selection: {
+	 *       grouped: true
+	 *    }
+	 * }
+	 */
+	data_selection_grouped: false,
+
+	/**
+	 * Set a callback for each data point to determine if it's selectable or not.<br><br>
+	 * The callback will receive d as an argument and it has some parameters like id, value, index. This callback should return boolean.
+	 * @name data․selection․isselectable
+	 * @memberof Options
+	 * @type {Function}
+	 * @default function() { return true; }
+	 * @example
+	 * data: {
+	 *    selection: {
+	 *       isselectable: function(d) { ... }
+	 *    }
+	 * }
+	 */
+	data_selection_isselectable: () => true,
+
+	/**
+	 * Set multiple data points selection enabled.<br><br>
+	 * If this option set true, multile data points can have the selected state at the same time. If false set, only one data point can have the selected state and the others will be unselected when the new data point is selected.
+	 * @name data․selection․multiple
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default true
+	 * @example
+	 * data: {
+	 *    selection: {
+	 *       multiple: false
+	 *    }
+	 * }
+	 */
+	data_selection_multiple: true,
+
+	/**
+	 * Enable to select data points by dragging.
+	 * If this option set true, data points can be selected by dragging.
+	 * - **NOTE:** If this option set true, scrolling on the chart will be disabled because dragging event will handle the event.
+	 * @name data․selection․draggable
+	 * @memberof Options
+	 * @type {boolean}
+	 * @default false
+	 * @example
+	 * data: {
+	 *    selection: {
+	 *       draggable: true
+	 *   }
+	 * }
+	 */
+	data_selection_draggable: false,
+
+	/**
+	 * Set a callback for on data selection.
+	 * @name data․onselected
+	 * @memberof Options
+	 * @type {Function}
+	 * @default function() {}
+	 * @example
+	 * data: {
+	 *     onselected: function(d, element) {
+	 *        // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"}
+	 *        // element - <circle>
+	 *        ...
+	 *    }
+	 * }
+	 */
+	data_onselected: () => {},
+
+	/**
+	 * Set a callback for on data un-selection.
+	 * @name data․onunselected
+	 * @memberof Options
+	 * @type {Function}
+	 * @default function() {}
+	 * @example
+	 * data: {
+	 *     onunselected: function(d, element) {
+	 *        // d - ex) {x: 4, value: 150, id: "data1", index: 4, name: "data1"}
+	 *        // element - <circle>
+	 *        ...
+	 *    }
+	 * }
+	 */
+	data_onunselected: () => {}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_interaction_interaction.ts.html b/release/3.12.4/doc/config_Options_interaction_interaction.ts.html new file mode 100644 index 000000000..90befb898 --- /dev/null +++ b/release/3.12.4/doc/config_Options_interaction_interaction.ts.html @@ -0,0 +1,131 @@ + + + + + + config/Options/interaction/interaction.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/interaction/interaction.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * interaction config options
+ */
+export default {
+	/**
+	 * Interaction options
+	 * @name interaction
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} interaction Intersection object
+	 * @property {boolean} [interaction.enabled=true] Indicate if the chart should have interactions.<br>
+	 *     If `false` is set, all of interactions (showing/hiding tooltip, selection, mouse events, etc) will be disabled.
+	 * @property {boolean} [interaction.brighten=true] Make brighter for the selected area (ex. 'pie' type data selected area)
+	 * @property {boolean} [interaction.inputType.mouse=true] enable or disable mouse interaction
+	 * @property {boolean} [interaction.inputType.touch=true] enable or disable  touch interaction
+	 * @property {boolean|number} [interaction.inputType.touch.preventDefault=false] enable or disable to call event.preventDefault on touchstart & touchmove event. It's usually used to prevent document scrolling.
+	 * @see [Demo: touch.preventDefault](https://naver.github.io/billboard.js/demo/#Interaction.PreventScrollOnTouch)
+	 * @example
+	 * interaction: {
+	 *    enabled: false,
+	 *    brighten: false,
+	 *    inputType: {
+	 *        mouse: true,
+	 *        touch: false
+	 *
+	 *        // or declare preventDefault explicitly.
+	 *        // In this case touch inputType is enabled by default
+	 *        touch: {
+	 *            preventDefault: true
+	 *
+	 *            // or threshold pixel value (pixel moved from touchstart to touchmove)
+	 *            preventDefault: 5
+	 *        }
+	 *    }
+	 * }
+	 */
+	interaction_enabled: true,
+	interaction_brighten: true,
+	interaction_inputType_mouse: true,
+	interaction_inputType_touch: <boolean | {preventDefault?: boolean | number}>{}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_interaction_subchart.ts.html b/release/3.12.4/doc/config_Options_interaction_subchart.ts.html new file mode 100644 index 000000000..c5555397d --- /dev/null +++ b/release/3.12.4/doc/config_Options_interaction_subchart.ts.html @@ -0,0 +1,158 @@ + + + + + + config/Options/interaction/subchart.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/interaction/subchart.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * x Axis config options
+ */
+export default {
+	/**
+	 * Set subchart options.
+	 * - **NOTE:** Not supported for `bubble`, `scatter` and non-Axis based(pie, donut, gauge, radar) types.
+	 * @name subchart
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} subchart Subchart object
+	 * @property {boolean} [subchart.show=false] Show sub chart on the bottom of the chart.
+	 *  - **NOTE:** for ESM imports, needs to import 'subchart' exports and instantiate it by calling `subchart()`.
+	 *    - `show: subchart()`
+	 * @property {boolean} [subchart.showHandle=false] Show sub chart's handle.
+	 * @property {boolean} [subchart.axis.x.show=true] Show or hide x axis.
+	 * @property {boolean} [subchart.axis.x.tick.show=true] Show or hide x axis tick line.
+	 * @property {Function|string} [subchart.axis.x.tick.format] Use custom format for x axis ticks - see [axis.x.tick.format](#.axis․x․tick․format) for details.
+	 * @property {boolean} [subchart.axis.x.tick.text.show=true] Show or hide x axis tick text.
+	 * @property {Array} [subchart.init.range] Set initial selection domain range.
+	 * @property {number} [subchart.size.height] Change the height of the subchart.
+	 * @property {Function} [subchart.onbrush] Set callback for brush event.<br>
+	 *  Specified function receives the current zoomed x domain.
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Interaction.SubChart)
+	 * @example
+	 *  subchart: {
+	 *      show: true,
+	 *      showHandle: true,
+	 *      size: {
+	 *          height: 20
+	 *      },
+	 *      init: {
+	 *          // specify initial range domain selection
+	 *          range: [1, 2]
+	 *      },
+	 *      axis: {
+	 *      	x: {
+	 *      	  show: true,
+	 *      	    tick: {
+	 *      	      show: true,
+	 *      	      format: (x) => d3Format(".1f")(x)
+	 *      	      text: {
+	 *      	        show: false
+	 *      	      }
+	 *      	    }
+	 *      	}
+	 *      },
+	 *      onbrush: function(domain) { ... }
+	 *  }
+	 * @example
+	 * // importing ESM
+	 * import bb, {subchart} from "billboard.js";
+	 *
+	 * subchart: {
+	 *      show: subchart(),
+	 *      ...
+	 * }
+	 */
+	subchart_show: false,
+	subchart_showHandle: false,
+	subchart_size_height: 60,
+	subchart_axis_x_show: true,
+	subchart_axis_x_tick_show: true,
+	subchart_axis_x_tick_format: <Function | string | undefined>undefined,
+	subchart_axis_x_tick_text_show: true,
+	subchart_init_range: <undefined | [number, number]>undefined,
+	subchart_onbrush: () => {}
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_interaction_zoom.ts.html b/release/3.12.4/doc/config_Options_interaction_zoom.ts.html new file mode 100644 index 000000000..9091cab3b --- /dev/null +++ b/release/3.12.4/doc/config_Options_interaction_zoom.ts.html @@ -0,0 +1,172 @@ + + + + + + config/Options/interaction/zoom.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/interaction/zoom.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * zoom config options
+ */
+export default {
+	/**
+	 * Set zoom options
+	 * @name zoom
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} zoom Zoom object
+	 * @property {boolean} [zoom.enabled=false] Enable zooming.
+	 *  - **NOTE:** for ESM imports, needs to import 'zoom' exports and instantiate it by calling `zoom()`.
+	 *    - `enabled: zoom()`
+	 * @property {string} [zoom.type='wheel'] Set zoom interaction type.
+	 *  - **Available types:**
+	 *    - wheel
+	 *    - drag
+	 * @property {boolean} [zoom.rescale=false] Enable to rescale after zooming.<br>
+	 *  If true set, y domain will be updated according to the zoomed region.
+	 * @property {Array} [zoom.extent=[1, 10]] Change zoom extent.
+	 * @property {number|Date} [zoom.x.min] Set x Axis minimum zoom range
+	 * @property {number|Date} [zoom.x.max] Set x Axis maximum zoom range
+	 * @property {Function} [zoom.onzoomstart=undefined] Set callback that is called when zooming starts.<br>
+	 *  Specified function receives the zoom event.
+	 * @property {Function} [zoom.onzoom=undefined] Set callback that is called when the chart is zooming.<br>
+	 *  Specified function receives the zoomed domain.
+	 * @property {Function} [zoom.onzoomend=undefined] Set callback that is called when zooming ends.<br>
+	 *  Specified function receives the zoomed domain.
+	 * @property {boolean|object} [zoom.resetButton=true] Set to display zoom reset button for 'drag' type zoom
+	 * @property {Function} [zoom.resetButton.onclick] Set callback when clicks the reset button. The callback will receive reset button element reference as argument.
+	 * @property {string} [zoom.resetButton.text='Reset Zoom'] Text value for zoom reset button.
+	 * @see [Demo:zoom](https://naver.github.io/billboard.js/demo/#Interaction.Zoom)
+	 * @see [Demo:drag zoom](https://naver.github.io/billboard.js/demo/#Interaction.DragZoom)
+	 * @example
+	 *  zoom: {
+	 *      enabled: true,
+	 *      type: "drag",
+	 *      rescale: true,
+	 *      extent: [1, 100]  // enable more zooming
+	 *      x: {
+	 *          min: -1,  // set min range
+	 *          max: 10  // set max range
+	 *      },
+	 *      onzoomstart: function(event) { ... },
+	 *      onzoom: function(domain) { ... },
+	 *      onzoomend: function(domain) { ... },
+	 *
+	 *      // show reset button when is zoomed-in
+	 *      resetButton: true,
+	 *
+	 *      resetButton: {
+	 *          // onclick callback when reset button is clicked
+	 *          onclick: function(button) {
+	 *            button; // Reset button element reference
+	 *            ...
+	 *          },
+	 *
+	 *          // customized text value for reset zoom button
+	 *          text: "Unzoom"
+	 *      }
+	 *  }
+	 * @example
+	 * // importing ESM
+	 * import bb, {zoom} from "billboard.js";
+	 *
+	 * zoom: {
+	 *      enabled: zoom(),
+	 *      ...
+	 * }
+	 */
+	zoom_enabled: <boolean>false,
+	zoom_type: <"wheel" | "drag">"wheel",
+	zoom_extent: <number[] | undefined>undefined,
+	zoom_privileged: false,
+	zoom_rescale: false,
+	zoom_onzoom: <Function | undefined>undefined,
+	zoom_onzoomstart: <Function | undefined>undefined,
+	zoom_onzoomend: <Function | undefined>undefined,
+	zoom_resetButton: <{text: string} | boolean>true,
+	zoom_x_min: <Number | Date | undefined>undefined,
+	zoom_x_max: <Number | Date | undefined>undefined
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_arc.ts.html b/release/3.12.4/doc/config_Options_shape_arc.ts.html new file mode 100644 index 000000000..9423483c9 --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_arc.ts.html @@ -0,0 +1,239 @@ + + + + + + config/Options/shape/arc.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/arc.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * arc config options
+ */
+export default {
+	/**
+	 * Set arc options
+	 * @name arc
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} arc Arc object
+	 * @property {number|Function} [arc.cornerRadius=0] Set corner radius of Arc(donut/gauge/pie/polar) shape.
+	 *  - **NOTE:**
+	 * 	  - Corner radius can't surpass the `(outerRadius - innerRadius) /2` of indicated shape.
+	 * @property {number} [arc.cornerRadius.ratio=0] Set ratio relative of outer radius.
+	 * @property {object} [arc.needle] Set needle options.
+	 * @property {boolean} [arc.needle.show=false] Show or hide needle.
+	 * @property {string} [arc.needle.color] Set needle filled color.
+	 * @property {Function} [arc.needle.path] Set custom needle path function.
+	 *  - **NOTE:**
+	 *   - The path should be starting from 0,0 (which is center) to top center coordinate.
+	 *   - The function will receive, `length`{number} parameter which indicating the needle length in pixel relative to radius.
+	 * @property {number} [arc.needle.value] Set needle value.
+	 *  - **NOTE:**
+	 *   - For single gauge chart, needle will point the data value by default, otherwise will point 0(zero).
+	 * @property {number} [arc.needle.length=100] Set needle length in percentages relative to radius.
+	 * @property {object} [arc.needle.top] Set needle top options.
+	 * @property {number} [arc.needle.top.rx=0] Set needle top [rx radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve).
+	 * @property {number} [arc.needle.top.ry=0] Set needle top [ry radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve).
+	 * @property {number} [arc.needle.top.width=0] Set needle top width in pixel.
+	 * @property {object} [arc.needle.bottom] Set needle bottom options.
+	 * @property {number} [arc.needle.bottom.rx=1] Set needle bottom [rx radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve).
+	 * @property {number} [arc.needle.bottom.ry=1] Set needle bottom [ry radius value](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve).
+	 * @property {number} [arc.needle.bottom.width=15] Set needle bottom width in pixel.
+	 * @property {number} [arc.needle.bottom.len=0] Set needle bottom length in pixel. Setting this value, will make bottom larger starting from center.
+	 * @property {object} [arc.rangeText] Set rangeText options.
+	 * @property {Array} [arc.rangeText.values] Set range text values to be shown around Arc.
+	 * - When `unit: 'absolute'`: Given values are treated as absolute values.
+	 * - When `unit: '%'`: Given values are treated as percentages.
+	 * @property {string} [arc.rangeText.unit="absolute"] Specify the range text unit.
+	 * - "absolute": Show absolute value
+	 * - "%": Show percentage value
+	 * @property {boolean} [arc.rangeText.fiexed=false] Set if range text shown will be fixed w/o data toggle update. Only available for gauge chart.
+	 * @property {Function} [arc.rangeText.format] Set format function for the range text.
+	 * @property {number} [arc.rangeText.position] Set position function or object for the range text.
+	 * @see [Demo: Donut corner radius](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutCornerRadius)
+	 * @see [Demo: Donut corner radius](https://naver.github.io/billboard.js/demo/#PieChartOptions.CornerRadius)
+	 * @see [Demo: Donut needle](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutNeedle)
+	 * @see [Demo: Donut RangeText](https://naver.github.io/billboard.js/demo/#DonutChartOptions.DonutRangeText)
+	 * @see [Demo: Gauge corner radius](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeCornerRadius)
+	 * @see [Demo: Gauge needle](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeNeedle)
+	 * @see [Demo: Gauge RangeText](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeRangeText)
+	 * @example
+	 *  arc: {
+	 *      cornerRadius: 12,
+	 *
+	 *      // can customize corner radius for each data with function callback
+	 *      //
+	 *      // The function will receive:
+	 *      // - id {string}: Data id
+	 *      // - value {number}: Data value
+	 *      // - outerRadius {number}: Outer radius value
+	 *      cornerRadius: function(id, value, outerRadius) {
+	 *          return (id === "data1" && value > 10) ?
+	 *          	50 : outerRadius * 1.2;
+	 *      },
+	 *
+	 *      // set ratio relative of outer radius
+	 *      cornerRadius: {
+	 *          ratio: 0.5
+	 *      },
+	 *
+	 *      needle: {
+	 *       	show: true,
+	 *       	color: "red", // any valid CSS color
+	 *       	path: function(length) {
+	 *       	  const len = length - 20;
+	 *
+	 *       	  // will return upper arrow shape path
+	 *       	  // Note: The path should begun from '0,0' coordinate to top center.
+	 *       	  const path = `M 0 -${len + 20}
+	 *       		L -12 -${len}
+	 *       		L -5 -${len}
+	 *       		L -5 0
+	 *       		A 1 1 0 0 0 5 0
+	 *       		L 5 -${len}
+	 *       		L 12 -${len} Z`;
+	 *
+	 *       	  return path;
+	 *       	},
+	 *       	value: 40,  // will make needle to point value 40.
+	 *       	length: 80, // needle length in percentages relative to radius.
+	 *
+	 *       	top: {
+	 *       	  // rx and ry are the two radii of the ellipse;
+	 *       	  // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve
+	 *       	  rx: 1,
+	 *       	  ry: 1,
+	 *       	  width: 5
+	 *       	},
+	 *       	bottom: {
+	 *       	  // rx and ry are the two radii of the ellipse;
+	 *       	  // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#elliptical_arc_curve
+	 *       	  rx: 1,
+	 *       	  ry: 1,
+	 *       	  width: 10
+	 *       	  len: 10
+	 *       	}
+	 *      },
+	 *
+	 *      rangeText: {
+	 *       	values: [15, 30, 50, 75, 95],
+	 *       	unit: "%",
+	 *       	fixed: false, // only available for gauge chart
+	 *       	format: function(v) {
+	 *       	  return v === 15 ? "Fifteen" : v;
+	 *       	},
+	 *
+	 *       	position: function(v) {
+	 *       	  return v === 15 ? {x: 20, y: 10} : null; // can return one props value also.
+	 *       	},
+	 *       	position: {x: 10, y: 15},
+	 *       	position: {x: 10}
+	 *      }
+	 *  }
+	 */
+	arc_cornerRadius: <number | ((id: string, value: number) => number)>0,
+	arc_cornerRadius_ratio: 0,
+	arc_needle_show: false,
+	arc_needle_color: <string | undefined>undefined,
+	arc_needle_value: <number | undefined>undefined,
+	arc_needle_path: undefined,
+	arc_needle_length: 100,
+	arc_needle_top_rx: 0,
+	arc_needle_top_ry: 0,
+	arc_needle_top_width: 0,
+	arc_needle_bottom_rx: 1,
+	arc_needle_bottom_ry: 1,
+	arc_needle_bottom_width: 15,
+	arc_needle_bottom_len: 0,
+	arc_rangeText_values: <number[] | undefined>undefined,
+	arc_rangeText_unit: <"absolute" | "%">"absolute",
+	arc_rangeText_fixed: false,
+	arc_rangeText_format: <((v: number) => number) | undefined>undefined,
+	arc_rangeText_position: <
+		| ((v: number) => {x?: number, y?: number})
+		| {x?: number, y?: number}
+		| undefined
+	>undefined
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_area.ts.html b/release/3.12.4/doc/config_Options_shape_area.ts.html new file mode 100644 index 000000000..0b13a79a1 --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_area.ts.html @@ -0,0 +1,161 @@ + + + + + + config/Options/shape/area.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/area.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * area config options
+ */
+export default {
+	/**
+	 * Set area options
+	 * @name area
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} area Area object
+	 * @property {boolean} [area.above=false] Set background area `above` the data chart line.
+	 * @property {boolean} [area.below=false] Set background area `below` the data chart line.
+	 *  - **NOTE**: Can't be used along with `above` option. When above & below options are set to true, `above` will be prioritized.
+	 * @property {boolean} [area.front=true] Set area node to be positioned over line node.
+	 * @property {boolean|object} [area.linearGradient=false] Set the linear gradient on area.<br><br>
+	 * Or customize by giving below object value:
+	 *  - x {Array}: `x1`, `x2` value (default: `[0, 0]`)
+	 *  - y {Array}: `y1`, `y2` value (default: `[0, 1]`)
+	 *  - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values.
+	 *    - (default: `[[0, $DATA_COLOR, 1], [1, $DATA_COLOR, 0]]`)
+	 * @property {boolean} [area.zerobased=true] Set if min or max value will be 0 on area chart.
+	 * @see [MDN's &lt;linearGradient>](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient), [&lt;stop>](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/stop)
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.AreaChart)
+	 * @see [Demo: above](https://naver.github.io/billboard.js/demo/#AreaChartOptions.Above)
+	 * @see [Demo: below](https://naver.github.io/billboard.js/demo/#AreaChartOptions.Below)
+	 * @see [Demo: linearGradient](https://naver.github.io/billboard.js/demo/#AreaChartOptions.LinearGradient)
+	 * @example
+	 *  area: {
+	 *      above: true,
+	 *      below: false,
+	 *      zerobased: false,
+	 *
+	 *      // <g class='bb-areas'> will be positioned behind the line <g class='bb-lines'> in stacking order
+	 *      front: false,
+	 *
+	 *      // will generate follwing linearGradient:
+	 *      // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient
+	 *      // <linearGradient x1="0" x2="0" y1="0" y2="1">
+	 *      //    <stop offset="0" stop-color="$DATA_COLOR" stop-opacity="1"></stop>
+	 *      //    <stop offset="1" stop-color="$DATA_COLOR" stop-opacity="0"></stop>
+	 *      // </linearGradient>
+	 *      linearGradient: true,
+	 *
+	 *      // Or customized gradient
+	 *      linearGradient: {
+	 *      	x: [0, 0],  // x1, x2 attributes
+	 *      	y: [0, 0],  // y1, y2 attributes
+	 *      	stops: [
+	 *      	  // offset, stop-color, stop-opacity
+	 *      	  [0, "#7cb5ec", 1],
+	 *
+	 *      	  // setting 'null' for stop-color, will set its original data color
+	 *      	  [0.5, null, 0],
+	 *
+	 *      	  // setting 'function' for stop-color, will pass data id as argument.
+	 *      	  // It should return color string or null value
+	 *      	  [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0],
+	 *      	]
+	 *      }
+	 *  }
+	 */
+	area_above: false,
+	area_below: false,
+	area_front: true,
+	area_linearGradient: <boolean | {
+		x?: [number, number],
+		y?: [number, number],
+		stops?: [number, string | null | Function, number]
+	}>false,
+	area_zerobased: true
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_bar.ts.html b/release/3.12.4/doc/config_Options_shape_bar.ts.html new file mode 100644 index 000000000..ea1a9a18b --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_bar.ts.html @@ -0,0 +1,225 @@ + + + + + + config/Options/shape/bar.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/bar.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * bar config options
+ */
+export default {
+	/**
+	 * Set bar options
+	 * @name bar
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} bar Bar object
+	 * @property {boolean} [bar.front=false] Set 'bar' to be positioned over(on the top) other shapes elements.
+	 * @property {number} [bar.indices.removeNull=false] Remove nullish data on bar indices positions.
+	 * @property {number} [bar.label.threshold=0] Set threshold ratio to show/hide labels.
+	 * @property {boolean|object} [bar.linearGradient=false] Set the linear gradient on bar.<br><br>
+	 * Or customize by giving below object value:
+	 *  - x {Array}: `x1`, `x2` value (default: `[0, 0]`)
+	 *  - y {Array}: `y1`, `y2` value (default: `[0, 1]`)
+	 *  - stops {Array}: Each item should be having `[offset, stop-color, stop-opacity]` values.
+	 *    - (default: `[[0, $DATA_COLOR, 1], [1, $DATA_COLOR, 0]]`)
+	 * @property {boolean} [bar.overlap=false] Bars will be rendered at same position, which will be overlapped each other. (for non-grouped bars only)
+	 * @property {number} [bar.padding=0] The padding pixel value between each bar.
+	 * @property {number} [bar.radius] Set the radius of bar edge in pixel.
+	 * @property {number} [bar.radius.ratio] Set the radius ratio of bar edge in relative the bar's width.
+	 * @property {number} [bar.sensitivity=2] The senstivity offset value for interaction boundary.
+	 * @property {number} [bar.width] Change the width of bar chart.
+	 * @property {number} [bar.width.ratio=0.6] Change the width of bar chart by ratio.
+	 * @property {number} [bar.width.max] The maximum width value for ratio.
+	 * @property {number} [bar.width.dataname] Change the width of bar for indicated dataset only.
+	 * - **NOTE:**
+	 *   - Works only for non-stacked bar
+	 *   - Bars are centered accoding its total width value
+	 * @property {number} [bar.width.dataname.ratio=0.6] Change the width of bar chart by ratio.
+	 * @property {number} [bar.width.dataname.max] The maximum width value for ratio.
+	 * @property {boolean} [bar.zerobased=true] Set if min or max value will be 0 on bar chart.
+	 * @see [Demo: bar front](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarFront)
+	 * @see [Demo: bar indices](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarIndices)
+	 * @see [Demo: bar overlap](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarOverlap)
+	 * @see [Demo: bar padding](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarPadding)
+	 * @see [Demo: bar radius](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarRadius)
+	 * @see [Demo: bar width](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarWidth)
+	 * @see [Demo: bar width variant](https://naver.github.io/billboard.js/demo/#BarChartOptions.BarWidthVariant)
+	 * @example
+	 *  bar: {
+	 *      // make bar shape to be positioned over the other shape elements
+	 *      front: true,
+	 *
+	 *      // remove nullish data on bar indices postions
+	 *      indices: {
+	 *          removeNull: true
+	 *      },
+	 *
+	 *      // will generate follwing linearGradient:
+	 *      // for more info: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient
+	 *      // <linearGradient x1="0" x2="0" y1="0" y2="1">
+	 *      //    <stop offset="0" stop-color="$DATA_COLOR" stop-opacity="1"></stop>
+	 *      //    <stop offset="1" stop-color="$DATA_COLOR" stop-opacity="0"></stop>
+	 *      // </linearGradient>
+	 *      linearGradient: true,
+	 *
+	 *      // Or customized gradient
+	 *      linearGradient: {
+	 *      	x: [0, 0],  // x1, x2 attributes
+	 *      	y: [0, 0],  // y1, y2 attributes
+	 *      	stops: [
+	 *      	  // offset, stop-color, stop-opacity
+	 *      	  [0, "#7cb5ec", 1],
+	 *
+	 *      	  // setting 'null' for stop-color, will set its original data color
+	 *      	  [0.5, null, 0],
+	 *
+	 *      	  // setting 'function' for stop-color, will pass data id as argument.
+	 *      	  // It should return color string or null value
+	 *      	  [1, function(id) { return id === "data1" ? "red" : "blue"; }, 0],
+	 *      	]
+	 *      },
+	 *
+	 *      // remove nullish da
+	 *      overlap: true,
+	 *
+	 *      padding: 1,
+	 *
+	 *      // bar radius
+	 *      radius: 10,
+	 *      // or
+	 *      radius: {
+	 *          ratio: 0.5
+	 *      }
+	 *
+	 *      label: {
+	 *          // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the y Axis domain range value.
+	 *          // if data value is below than 0.1, text label will be hidden.
+	 *          threshold: 0.1,
+	 *      },
+	 *
+	 *      // will not have offset between each bar elements for interaction
+	 *      sensitivity: 0,
+	 *
+	 *      width: 10,
+	 *
+	 *      // or
+	 *      width: {
+	 *          ratio: 0.2,
+	 *          max: 20
+	 *      },
+	 *
+	 *      // or specify width per dataset
+	 *      width: {
+	 *          data1: 20,
+	 *          data2: {
+	 *              ratio: 0.2,
+	 *              max: 20
+	 *          }
+	 *      },
+	 *
+	 *      zerobased: false
+	 *  }
+	 */
+	bar_front: false,
+	bar_indices_removeNull: false,
+	bar_label_threshold: 0,
+	bar_linearGradient: <boolean | {
+		x?: [number, number],
+		y?: [number, number],
+		stops?: [number, string | null | Function, number]
+	}>false,
+	bar_overlap: false,
+	bar_padding: 0,
+	bar_radius: <number | {ratio: number} | undefined>undefined,
+	bar_radius_ratio: <number | undefined>undefined,
+	bar_sensitivity: 2,
+	bar_width: <number | {ratio?: number, max?: number} | undefined>undefined,
+	bar_width_ratio: 0.6,
+	bar_width_max: undefined,
+	bar_zerobased: true
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_bubble.ts.html b/release/3.12.4/doc/config_Options_shape_bubble.ts.html new file mode 100644 index 000000000..508c48cc5 --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_bubble.ts.html @@ -0,0 +1,120 @@ + + + + + + config/Options/shape/bubble.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/bubble.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * bubble config options
+ */
+export default {
+	/**
+	 * Set bubble options
+	 * @name bubble
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} bubble bubble object
+	 * @property {number|Function} [bubble.maxR=35] Set the max bubble radius value
+	 * @property {boolean} [bubble.zerobased=false] Set if min or max value will be 0 on bubble chart.
+	 * @example
+	 *  bubble: {
+	 *      // ex) If 100 is the highest value among data bound, the representation bubble of 100 will have radius of 50.
+	 *      // And the lesser will have radius relatively from tha max value.
+	 *      maxR: 50,
+	 *
+	 *      // or set radius callback
+	 *      maxR: function(d) {
+	 *          // ex. of d param - {x: Fri Oct 06 2017 00:00:00 GMT+0900, value: 80, id: "data2", index: 5}
+	 *          ...
+	 *          return Math.sqrt(d.value * 2);
+	 *      },
+	 *      zerobased: false
+	 *  }
+	 */
+	bubble_maxR: <number | (() => number)>35,
+	bubble_zerobased: false
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_candlestick.ts.html b/release/3.12.4/doc/config_Options_shape_candlestick.ts.html new file mode 100644 index 000000000..88081d339 --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_candlestick.ts.html @@ -0,0 +1,146 @@ + + + + + + config/Options/shape/candlestick.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/candlestick.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * candlestick config options
+ */
+export default {
+	/**
+	 * Set candlestick options
+	 * @name candlestick
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} candlestick Candlestick object
+	 * @property {number} [candlestick.width] Change the width.
+	 * @property {number} [candlestick.width.ratio=0.6] Change the width by ratio.
+	 * @property {number} [candlestick.width.max] The maximum width value for ratio.
+	 * @property {number} [candlestick.width.dataname] Change the width for indicated dataset only.
+	 * @property {number} [candlestick.width.dataname.ratio=0.6] Change the width of bar chart by ratio.
+	 * @property {number} [candlestick.width.dataname.max] The maximum width value for ratio.
+	 * @property {object} [candlestick.color] Color setting.
+	 * @property {string|object} [candlestick.color.down] Change down(bearish) value color.
+	 * @property {string} [candlestick.color.down.dataname] Change down value color for indicated dataset only.
+	 *
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/##Chart.CandlestickChart)
+	 * @example
+	 *  candlestick: {
+	 *      width: 10,
+	 *
+	 *      // or
+	 *      width: {
+	 *         	ratio: 0.2,
+	 *         	max: 20
+	 *      },
+	 *
+	 *      // or specify width per dataset
+	 *      width: {
+	 *         	data1: 20,
+	 *         	data2: {
+	 *         	    ratio: 0.2,
+	 *         		max: 20
+	 *         	}
+	 *      },
+	 *      color: {
+	 *  	  	// spcify bearish color
+	 *  	  	down: "red",
+	 *
+	 *  	  	// or specify color per dataset
+	 *  	  	down: {
+	 *  	  		data1: "red",
+	 *  	  		data2: "blue",
+	 *  	  	}
+	 *      }
+	 *  }
+	 */
+	candlestick_width: <number | {ratio?: number, max?: number} | undefined>undefined,
+	candlestick_width_ratio: 0.6,
+	candlestick_width_max: undefined,
+	candlestick_color_down: <string | {[key: string]: string}>"red"
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_donut.ts.html b/release/3.12.4/doc/config_Options_shape_donut.ts.html new file mode 100644 index 000000000..02e806fbb --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_donut.ts.html @@ -0,0 +1,172 @@ + + + + + + config/Options/shape/donut.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/donut.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * donut config options
+ */
+export default {
+	/**
+	 * Set donut options
+	 * @name donut
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} donut Donut object
+	 * @property {boolean} [donut.label.show=true] Show or hide label on each donut piece.
+	 * @property {Function} [donut.label.format] Set formatter for the label on each donut piece.
+	 * @property {number} [donut.label.threshold=0.05] Set threshold ratio to show/hide labels.
+	 * @property {number|Function} [donut.label.ratio=undefined] Set ratio of labels position.
+	 * @property {boolean} [donut.expand=true] Enable or disable expanding donut pieces.
+	 * @property {number} [donut.expand.rate=0.98] Set expand rate.
+	 * @property {number} [donut.expand.duration=50] Set expand transition time in ms.
+	 * @property {number} [donut.width] Set width of donut chart.
+	 * @property {string} [donut.title=""] Set title of donut chart. Use `\n` character for line break.
+	 *  - **NOTE:**
+	 *    - When `arc.needle.show=true` is set, special template `{=NEEDLE_VALUE}` can be used inside the title text to show current needle value.
+	 * @property {number} [donut.padAngle=0] Set padding between data.
+	 * @property {number} [donut.startingAngle=0] Set starting angle where data draws.
+	 * @example
+	 *  donut: {
+	 *      label: {
+	 *          show: false,
+	 *          format: function(value, ratio, id) {
+	 *              return d3.format("$")(value);
+	 *
+	 *              // to multiline, return with '\n' character
+	 *              // return value +"%\nLine1\n2Line2";
+	 *          },
+	 *
+	 *          // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value.
+	 *          // if data value is below than 0.1, text label will be hidden.
+	 *          threshold: 0.1,
+	 *
+	 *          // set ratio callback. Should return ratio value
+	 *          ratio: function(d, radius, h) {
+	 *          	...
+	 *          	return ratio;
+	 *          },
+	 *          // or set ratio number
+	 *          ratio: 0.5
+	 *      },
+	 *
+	 *      // disable expand transition for interaction
+	 *      expand: false,
+	 *
+	 *      expand: {
+	 *      	// set duration of expand transition to 500ms.
+	 *          duration: 500,
+	 *
+	 *      	// set expand area rate
+	 *          rate: 1
+	 *      },
+	 *
+	 *      width: 10,
+	 *      padAngle: 0.2,
+	 *      startingAngle: 1,
+	 *      title: "Donut Title"
+	 *
+	 *      // when 'arc.needle.show=true' is set, can show current needle value.
+	 *      title: "Needle value:\n{=NEEDLE_VALUE}",
+	 *
+	 *      // title with line break
+	 *      title: "Title1\nTitle2"
+	 *  }
+	 */
+	donut_label_show: true,
+	donut_label_format: <(() => number | string) | undefined>undefined,
+	donut_label_threshold: 0.05,
+	donut_label_ratio: <number | (() => number) | undefined>undefined,
+	donut_width: <number | undefined>undefined,
+	donut_title: "",
+	donut_expand: <boolean | {rate?: number, duration?: number}>{},
+	donut_expand_rate: 0.98,
+	donut_expand_duration: 50,
+	donut_padAngle: 0,
+	donut_startingAngle: 0
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_funnel.ts.html b/release/3.12.4/doc/config_Options_shape_funnel.ts.html new file mode 100644 index 000000000..8f71e21c9 --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_funnel.ts.html @@ -0,0 +1,124 @@ + + + + + + config/Options/shape/funnel.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/funnel.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * funnel config options
+ */
+export default {
+	/**
+	 * Set funnel options
+	 * @name funnel
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} funnel Funnel object
+	 * @property {number} [funnel.neck.width=0] Set funnel neck width.
+	 * @property {number} [funnel.neck.height=0] Set funnel neck height.
+	 * @property {number} [funnel.neck.width.ratio] Set funnel neck width in ratio.
+	 * @property {number} [funnel.neck.height.ratio] Set funnel neck height in ratio.
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.PolarChart)
+	 * @example
+	 *  funnel: {
+	 *      neck: {
+	 *          width: 200,
+	 *          height: 100,
+	 *
+	 *          // or specify as ratio value (relative to the chart size)
+	 *          width: {
+	 *            ratio: 0.5
+	 *          },
+	 *          height: {
+	 *            ratio: 0.5
+	 *          }
+	 *      }
+	 *  }
+	 */
+	funnel_neck_width: <number | {ratio: number}>0,
+	funnel_neck_height: <number | {ratio: number}>0
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_gauge.ts.html b/release/3.12.4/doc/config_Options_shape_gauge.ts.html new file mode 100644 index 000000000..cf5785180 --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_gauge.ts.html @@ -0,0 +1,235 @@ + + + + + + config/Options/shape/gauge.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/gauge.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * gauge config options
+ */
+export default {
+	/**
+	 * Set gauge options
+	 * @name gauge
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} gauge Gauge object
+	 * @property {boolean} [gauge.background=""] Set background color. (The `.bb-chart-arcs-background` element)
+	 * @property {boolean} [gauge.fullCircle=false] Show full circle as donut. When set to 'true', the max label will not be showed due to start and end points are same location.
+	 * @property {boolean} [gauge.label.show=true] Show or hide label on gauge.
+	 * @property {Function} [gauge.label.extents] Set customized min/max label text.
+	 * @property {Function} [gauge.label.format] Set formatter for the label on gauge. Label text can be multilined with `\n` character.<br>
+	 * Will pass following arguments to the given function:
+	 * - value {number}: absolute value
+	 * - ratio {number}: value's ratio
+	 * - id {string}: data's id value
+	 * @property {number|Function} [gauge.label.ratio=undefined] Set ratio of labels position.
+	 * @property {number} [gauge.label.threshold=0] Set threshold ratio to show/hide labels.
+	 * @property {boolean} [gauge.expand=true] Enable or disable expanding gauge.
+	 * @property {number} [gauge.expand.rate=0.98] Set expand rate.
+	 * @property {number} [gauge.expand.duration=50] Set the expand transition time in milliseconds.
+	 * @property {boolean} [gauge.enforceMinMax=false] Enforce to given min/max value.
+	 * - When `gauge.min=50` and given value is `30`, gauge will render as empty value.
+	 * - When `gauge.max=100` and given value is `120`, gauge will render till 100, not surpassing max value.
+	 * @property {number} [gauge.min=0] Set min value of the gauge.
+	 * @property {number} [gauge.max=100] Set max value of the gauge.
+	 * @property {number} [gauge.startingAngle=-1 * Math.PI / 2] Set starting angle where data draws.
+	 *
+	 * **Limitations:**
+	 * - when `gauge.fullCircle=false`:
+	 *   - -1 * Math.PI / 2 <= startingAngle <= Math.PI / 2
+	 *   - `startingAngle <= -1 * Math.PI / 2` defaults to `-1 * Math.PI / 2`
+	 *   - `startingAngle >= Math.PI / 2` defaults to `Math.PI / 2`
+	 * - when `gauge.fullCircle=true`:
+	 *   - -1 * Math.PI < startingAngle < Math.PI
+	 *   - `startingAngle < -1 * Math.PI` defaults to `Math.PI`
+	 *   - `startingAngle >  Math.PI` defaults to `Math.PI`
+	 * @property {number} [gauge.arcLength=100] Set the length of the arc to be drawn in percent from -100 to 100.<br>
+	 * Negative value will draw the arc **counterclockwise**. Need to be used in conjunction with `gauge.fullCircle=true`.
+	 *
+	 * **Limitations:**
+	 * - -100 <= arcLength (in percent) <= 100
+	 * - 'arcLength < -100' defaults to -100
+	 * - 'arcLength > 100' defaults to 100
+	 * @property {string} [gauge.title=""] Set title of gauge chart. Use `\n` character for line break.
+	 *  - **NOTE:**
+	 *    - When `arc.needle.show=true` is set, special template `{=NEEDLE_VALUE}` can be used inside the title text to show current needle value.
+	 * @property {string} [gauge.units] Set units of the gauge.
+	 * @property {number} [gauge.width] Set width of gauge chart.
+	 * @property {string} [gauge.type="single"] Set type of gauge to be displayed.<br><br>
+	 * **Available Values:**
+	 * - single
+	 * - multi
+	 * @property {number} [gauge.arcs.minWidth=5] Set minimal width of gauge arcs until the innerRadius disappears.
+	 * @see [Demo: enforceMinMax, min/max](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeMinMax)
+	 * @see [Demo: archLength](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeArcLength)
+	 * @see [Demo: startingAngle](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeStartingAngle)
+	 * @see [Demo: labelRatio](https://naver.github.io/billboard.js/demo/#GaugeChartOptions.GaugeLabelRatio)
+	 * @example
+	 *  gauge: {
+	 *      background: "#eee", // will set 'fill' css prop for '.bb-chart-arcs-background' classed element.
+	 *      fullCircle: false,
+	 *      label: {
+	 *          show: false,
+	 *          format: function(value, ratio, id) {
+	 *              return value;
+	 *
+	 *              // to multiline, return with '\n' character
+	 *              // return value +"%\nLine1\n2Line2";
+	 *          },
+	 *
+	 *           extents: function(value, isMax) {
+	 *              return (isMax ? "Max:" : "Min:") + value;
+	 *          },
+	 *
+	 *          // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value.
+	 *          // if data value is below than 0.1, text label will be hidden.
+	 *          threshold: 0.1,
+	 *
+	 *          // set ratio callback. Should return ratio value
+	 *          ratio: function(d, radius, h) {
+	 *              ...
+	 *              return ratio;
+	 *          },
+	 *          // or set ratio number
+	 *          ratio: 0.5
+	 *      },
+	 *
+	 *      // disable expand transition for interaction
+	 *      expand: false,
+	 *
+	 *      expand: {
+	 *      	// set duration of expand transition to 500ms.
+	 *          duration: 500,
+	 *
+	 *      	// set expand area rate
+	 *          rate: 1
+	 *      },
+	 *
+	 *      // enforce min/max value.
+	 * 		// when given value < min, will render as empty value.
+	 * 		// when value > max, will render to given max value not surpassing it.
+	 *      enforceMinMax: true,
+	 *
+	 *      min: -100,
+	 *      max: 200,
+	 *      type: "single"  // or 'multi'
+	 *      title: "Title Text",
+	 *
+	 *      // when 'arc.needle.show=true' is set, can show current needle value.
+	 *      title: "Needle value:\n{=NEEDLE_VALUE}",
+	 *
+	 *      units: "%",
+	 *      width: 10,
+	 *      startingAngle: -1 * Math.PI / 2,
+	 *      arcLength: 100,
+	 *      arcs: {
+	 *          minWidth: 5
+	 *      }
+	 *  }
+	 */
+	gauge_background: "",
+	gauge_fullCircle: false,
+	gauge_label_show: true,
+	gauge_label_extents: <(() => string) | undefined>undefined,
+	gauge_label_format: <(() => string) | undefined>undefined,
+	gauge_label_ratio: <(() => number) | undefined>undefined,
+	gauge_label_threshold: 0,
+	gauge_enforceMinMax: false,
+	gauge_min: 0,
+	gauge_max: 100,
+	gauge_type: "single",
+	gauge_startingAngle: -1 * Math.PI / 2,
+	gauge_arcLength: 100,
+	gauge_title: "",
+	gauge_units: <string | undefined>undefined,
+	gauge_width: <number | undefined>undefined,
+	gauge_arcs_minWidth: 5,
+	gauge_expand: <boolean | {duration: number}>{},
+	gauge_expand_rate: 0.98,
+	gauge_expand_duration: 50
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_line.ts.html b/release/3.12.4/doc/config_Options_shape_line.ts.html new file mode 100644 index 000000000..b25f750dd --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_line.ts.html @@ -0,0 +1,143 @@ + + + + + + config/Options/shape/line.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/line.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * line config options
+ */
+export default {
+	/**
+	 * Set line options
+	 * @name line
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} line Line object
+	 * @property {boolean} [line.connectNull=false] Set if null data point will be connected or not.<br>
+	 *  If true set, the region of null data will be connected without any data point. If false set, the region of null data will not be connected and get empty.
+	 * @property {Array}   [line.classes=undefined] If set, used to set a css class on each line.
+	 * @property {boolean} [line.step.type=step] Change step type for step chart.<br>
+	 * **Available values:**
+	 * - step
+	 * - step-before
+	 * - step-after
+	 * @property {boolean} [line.step.tooltipMatch=false] Set to `true` for `step-before` and `step-after` types to have cursor/tooltip match to hovered step's point instead of nearest point.
+	 * @property {boolean|Array} [line.point=true] Set to false to not draw points on linecharts. Or pass an array of line ids to draw points for.
+	 * @property {boolean} [line.zerobased=false] Set if min or max value will be 0 on line chart.
+	 * @example
+	 *  line: {
+	 *      connectNull: true,
+	 *      classes: [
+	 *          "line-class1",
+	 *          "line-class2"
+	 *      ],
+	 *      step: {
+	 *          type: "step-after",
+	 *
+	 *          // to have cursor/tooltip match to hovered step's point instead of nearest point.
+	 *          tooltipMatch: true
+	 *      },
+	 *
+	 *      // hide all data points ('point.show=false' also has similar effect)
+	 *      point: false,
+	 *
+	 *      // show data points for only indicated datas
+	 *      point: [
+	 *          "data1", "data3"
+	 *      ],
+	 *
+	 *      zerobased: false
+	 *  }
+	 */
+	line_connectNull: false,
+	line_step_type: <"step" | "step-before" | "step-after">"step",
+	line_step_tooltipMatch: false,
+	line_zerobased: false,
+	line_classes: <string[] | undefined>undefined,
+	line_point: <string[] | boolean>true
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_pie.ts.html b/release/3.12.4/doc/config_Options_shape_pie.ts.html new file mode 100644 index 000000000..8e77e4755 --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_pie.ts.html @@ -0,0 +1,185 @@ + + + + + + config/Options/shape/pie.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/pie.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * pie config options
+ */
+export default {
+	/**
+	 * Set pie options
+	 * @name pie
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} pie Pie object
+	 * @property {boolean} [pie.label.show=true] Show or hide label on each pie piece.
+	 * @property {Function} [pie.label.format] Set formatter for the label on each pie piece.
+	 * @property {number|Function} [pie.label.ratio=undefined] Set ratio of labels position.
+	 * @property {number} [pie.label.threshold=0.05] Set threshold ratio to show/hide labels.
+	 * @property {boolean|object} [pie.expand=true] Enable or disable expanding pie pieces.
+	 * @property {number} [pie.expand.rate=0.98] Set expand rate.
+	 * @property {number} [pie.expand.duration=50] Set expand transition time in ms.
+	 * @property {number|object} [pie.innerRadius=0] Sets the inner radius of pie arc.
+	 * @property {number|object|undefined} [pie.outerRadius=undefined] Sets the outer radius of pie arc.
+	 * @property {number} [pie.padAngle=0] Set padding between data.
+	 * @property {number} [pie.padding=0] Sets the gap between pie arcs.
+	 * @property {number} [pie.startingAngle=0] Set starting angle where data draws.
+	 * @see [Demo: expand.rate](https://naver.github.io/billboard.js/demo/#PieChartOptions.ExpandRate)
+	 * @see [Demo: innerRadius](https://naver.github.io/billboard.js/demo/#PieChartOptions.InnerRadius)
+	 * @see [Demo: outerRadius](https://naver.github.io/billboard.js/demo/#PieChartOptions.OuterRadius)
+	 * @see [Demo: startingAngle](https://naver.github.io/billboard.js/demo/#PieChartOptions.StartingAngle)
+	 * @example
+	 *  pie: {
+	 *      label: {
+	 *          show: false,
+	 *          format: function(value, ratio, id) {
+	 *              return d3.format("$")(value);
+	 *
+	 *              // to multiline, return with '\n' character
+	 *              // return value +"%\nLine1\n2Line2";
+	 *          },
+	 *
+	 *          // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value.
+	 *          // if data value is below than 0.1, text label will be hidden.
+	 *          threshold: 0.1,
+	 *
+	 *          // set ratio callback. Should return ratio value
+	 *          ratio: function(d, radius, h) {
+	 *              ...
+	 *              return ratio;
+	 *          },
+	 *          // or set ratio number
+	 *          ratio: 0.5
+	 *      },
+	 *
+	 *      // disable expand transition for interaction
+	 *      expand: false,
+	 *
+	 *      expand: {
+	 *      	// set duration of expand transition to 500ms.
+	 *          duration: 500,
+	 *
+	 *      	// set expand area rate
+	 *          rate: 1
+	 *      },
+	 *
+	 *      innerRadius: 0,
+	 *
+	 *      // set different innerRadius for each data
+	 *      innerRadius: {
+	 *      	data1: 10,
+	 *      	data2: 0
+	 *      },
+	 *
+	 *      outerRadius: 100,
+	 *
+	 *      // set different outerRadius for each data
+	 *      outerRadius: {
+	 *      	data1: 50,
+	 *      	data2: 100
+	 *      }
+	 *
+	 *      padAngle: 0.1,
+	 *      padding: 0,
+	 *      startingAngle: 1
+	 *  }
+	 */
+	pie_label_show: true,
+	pie_label_format: <(() => number | string) | undefined>undefined,
+	pie_label_ratio: <(() => number) | undefined>undefined,
+	pie_label_threshold: 0.05,
+	pie_expand: <boolean | {rate?: number, duration?: number}>{},
+	pie_expand_rate: 0.98,
+	pie_expand_duration: 50,
+	pie_innerRadius: <number | {[key: string]: number}>0,
+	pie_outerRadius: <number | {[key: string]: number} | undefined>undefined,
+	pie_padAngle: 0,
+	pie_padding: 0,
+	pie_startingAngle: 0
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_polar.ts.html b/release/3.12.4/doc/config_Options_shape_polar.ts.html new file mode 100644 index 000000000..83eeca535 --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_polar.ts.html @@ -0,0 +1,167 @@ + + + + + + config/Options/shape/polar.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/polar.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * polar config options
+ */
+export default {
+	/**
+	 * Set polar options
+	 * @name polar
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} polar Polar object
+	 * @property {boolean} [polar.label.show=true] Show or hide label on each polar piece.
+	 * @property {Function} [polar.label.format] Set formatter for the label on each polar piece.
+	 * @property {number} [polar.label.threshold=0.05] Set threshold ratio to show/hide labels.
+	 * @property {number|Function} [polar.label.ratio=undefined] Set ratio of labels position.
+	 * @property {number} [polar.level.depth=3] Set the level depth.
+	 * @property {boolean} [polar.level.show=true] Show or hide level.
+	 * @property {string} [polar.level.text.backgroundColor="#fff"] Set label text's background color.
+	 * @property {Function} [polar.level.text.format] Set format function for the level value.<br>- Default value: `(x) => x % 1 === 0 ? x : x.toFixed(2)`
+	 * @property {boolean} [polar.level.text.show=true] Show or hide level text.
+	 * @property {number} [polar.padAngle=0] Set padding between data.
+	 * @property {number} [polar.padding=0] Sets the gap between pie arcs.
+	 * @property {number} [polar.startingAngle=0] Set starting angle where data draws.
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.PolarChart)
+	 * @example
+	 *  polar: {
+	 *      label: {
+	 *          show: false,
+	 *          format: function(value, ratio, id) {
+	 *              return d3.format("$")(value);
+	 *
+	 *              // to multiline, return with '\n' character
+	 *              // return value +"%\nLine1\n2Line2";
+	 *          },
+	 *
+	 *          // 0.1(10%) ratio value means, the minimum ratio to show text label relative to the total value.
+	 *          // if data value is below than 0.1, text label will be hidden.
+	 *          threshold: 0.1,
+	 *
+	 *          // set ratio callback. Should return ratio value
+	 *          ratio: function(d, radius, h) {
+	 *              ...
+	 *              return ratio;
+	 *          },
+	 *          // or set ratio number
+	 *          ratio: 0.5
+	 *      },
+	 *      level: {
+	 *          depth: 3,
+	 *          max: 500,
+	 *          show: true,
+	 *          text: {
+	 *              format: function(x) {
+	 *                  return x + "%";
+	 *              },
+	 *              show: true,
+	 *              backgroundColor: "red"
+	 *          }
+	 *      },
+	 *      padAngle: 0.1,
+	 *      padding: 0,
+	 *      startingAngle: 1
+	 *  }
+	 */
+	polar_label_show: true,
+	polar_label_format: <(() => number | string) | undefined>undefined,
+	polar_label_threshold: 0.05,
+	polar_label_ratio: <(() => number) | undefined>undefined,
+	polar_level_depth: 3,
+	polar_level_max: <number | undefined>undefined,
+	polar_level_show: true,
+	polar_level_text_backgroundColor: "#fff",
+	polar_level_text_format: (x: number) => (x % 1 === 0 ? x : x.toFixed(2)),
+	polar_level_text_show: true,
+	polar_padAngle: 0,
+	polar_padding: 0,
+	polar_startingAngle: 0
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_radar.ts.html b/release/3.12.4/doc/config_Options_shape_radar.ts.html new file mode 100644 index 000000000..d99bc115f --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_radar.ts.html @@ -0,0 +1,161 @@ + + + + + + config/Options/shape/radar.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/radar.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * radar config options
+ */
+export default {
+	/**
+	 * Set radar options
+	 * - **NOTE:**
+	 *  > When x tick text contains `\n`, it's used as line break.
+	 * @name radar
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} radar Radar object
+	 * @property {number} [radar.axis.max=undefined] The max value of axis. If not given, it'll take the max value from the given data.
+	 * @property {boolean} [radar.axis.line.show=true] Show or hide axis line.
+	 * @property {number} [radar.axis.text.position.x=0] x coordinate position, relative the original.
+	 * @property {number} [radar.axis.text.position.y=0] y coordinate position, relative the original.
+	 * @property {boolean} [radar.axis.text.show=true] Show or hide axis text.
+	 * @property {boolean} [radar.direction.clockwise=false] Set the direction to be drawn.
+	 * @property {number} [radar.level.depth=3] Set the level depth.
+	 * @property {boolean} [radar.level.show=true] Show or hide level.
+	 * @property {Function} [radar.level.text.format] Set format function for the level value.<br>- Default value: `(x) => x % 1 === 0 ? x : x.toFixed(2)`
+	 * @property {boolean} [radar.level.text.show=true] Show or hide level text.
+	 * @property {number} [radar.size.ratio=0.87] Set size ratio.
+	 * @see [Demo](https://naver.github.io/billboard.js/demo/#Chart.RadarChart)
+	 * @see [Demo: radar axis](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarAxis)
+	 * @see [Demo: radar level](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarLevel)
+	 * @see [Demo: radar size](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarSize)
+	 * @see [Demo: radar axis multiline](https://naver.github.io/billboard.js/demo/#RadarChartOptions.RadarAxisMultiline)
+	 * @example
+	 *  radar: {
+	 *      axis: {
+	 *          max: 50,
+	 *          line: {
+	 *              show: false
+	 *          },
+	 *          text: {
+	 *              position: {
+	 *              	x: 0,
+	 *              	y: 0
+	 *              },
+	 *              show: false
+	 *          }
+	 *      },
+	 *      direction: {
+	 *          clockwise: true
+	 *      },
+	 *      level: {
+	 *          show: false,
+	 *          text: {
+	 *              format: function(x) {
+	 *                  return x + "%";
+	 *              },
+	 *              show: true
+	 *          }
+	 *      },
+	 *      size: {
+	 *          ratio: 0.7
+	 *      }
+	 *  }
+	 */
+	radar_axis_max: <number | undefined>undefined,
+	radar_axis_line_show: true,
+	radar_axis_text_show: true,
+	radar_axis_text_position: <{x?: number, y?: number}>{},
+	radar_level_depth: 3,
+	radar_level_show: true,
+	radar_level_text_format: (x: number) => (x % 1 === 0 ? x : x.toFixed(2)),
+	radar_level_text_show: true,
+	radar_size_ratio: 0.87,
+	radar_direction_clockwise: false
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_scatter.ts.html b/release/3.12.4/doc/config_Options_shape_scatter.ts.html new file mode 100644 index 000000000..9a76b235e --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_scatter.ts.html @@ -0,0 +1,121 @@ + + + + + + config/Options/shape/scatter.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/scatter.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * scatter config options
+ */
+export default {
+	/**
+	 * Set scatter options
+	 * @name scatter
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} [scatter] scatter object
+	 * @property {boolean} [scatter.zerobased=false] Set if min or max value will be 0 on scatter chart.
+	 * @example
+	 *  scatter: {
+	 *      connectNull: true,
+	 *      step: {
+	 *          type: "step-after"
+	 *      },
+	 *
+	 *      // hide all data points ('point.show=false' also has similar effect)
+	 *      point: false,
+	 *
+	 *      // show data points for only indicated datas
+	 *      point: [
+	 *          "data1", "data3"
+	 *      ],
+	 *
+	 *      zerobased: false
+	 *  }
+	 */
+	scatter_zerobased: false
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_spline.ts.html b/release/3.12.4/doc/config_Options_shape_spline.ts.html new file mode 100644 index 000000000..691519bb4 --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_spline.ts.html @@ -0,0 +1,131 @@ + + + + + + config/Options/shape/spline.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/spline.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * spline config options
+ */
+export default {
+	/**
+	 * Set spline options
+	 * - **Available interpolation type values:**
+	 *  - basis (d3.curveBasis)
+	 *  - basis-closed (d3.curveBasisClosed)
+	 *  - basis-open (d3.curveBasisOpen)
+	 *  - bundle (d3.curveBundle)
+	 *  - cardinal (d3.curveCardinal)
+	 *  - cardinal-closed (d3.curveCardinalClosed)
+	 *  - cardinal-open (d3.curveCardinalOpen)
+	 *  - catmull-rom (d3.curveCatmullRom)
+	 *  - catmull-rom-closed (d3.curveCatmullRomClosed)
+	 *  - catmull-rom-open (d3.curveCatmullRomOpen)
+	 *  - monotone-x (d3.curveMonotoneX)
+	 *  - monotone-y (d3.curveMonotoneY)
+	 *  - natural (d3.curveNatural)
+	 *  - linear-closed (d3.curveLinearClosed)
+	 *  - linear (d3.curveLinear)
+	 *  - step (d3.curveStep)
+	 *  - step-after (d3.curveStepAfter)
+	 *  - step-before (d3.curveStepBefore)
+	 * @name spline
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} spline Spline object
+	 * @property {object} spline.interpolation Spline interpolation object
+	 * @property {string} [spline.interpolation.type="cardinal"] Interpolation type
+	 * @see [Interpolation (d3 v4)](http://bl.ocks.org/emmasaunders/c25a147970def2b02d8c7c2719dc7502)
+	 * @example
+	 *  spline: {
+	 *      interpolation: {
+	 *          type: "cardinal"
+	 *      }
+	 *  }
+	 */
+	spline_interpolation_type: "cardinal"
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/config_Options_shape_treemap.ts.html b/release/3.12.4/doc/config_Options_shape_treemap.ts.html new file mode 100644 index 000000000..a824a1946 --- /dev/null +++ b/release/3.12.4/doc/config_Options_shape_treemap.ts.html @@ -0,0 +1,139 @@ + + + + + + config/Options/shape/treemap.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

config/Options/shape/treemap.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard.js project is licensed under the MIT license
+ */
+/**
+ * treemap config options
+ */
+export default {
+	/**
+	 * Set treemap options
+	 * @name treemap
+	 * @memberof Options
+	 * @type {object}
+	 * @property {object} treemap Treemap object
+	 * @property {string} [treemap.tile="binary"] Treemap tile type
+	 * - **Available tile type values:**
+	 * 	- binary ([d3.treemapBinary](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapBinary))
+	 * 	- dice ([d3.treemapDice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapDice))
+	 * 	- slice ([d3.treemapSlice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSlice))
+	 * 	- sliceDice ([d3.treemapSliceDice](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSliceDice))
+	 * 	- squrify ([d3.treemapSquarify](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapSquarify))
+	 * 	- resquarify ([d3.treemapResquarify](https://github.com/d3/d3-hierarchy/blob/main/README.md#treemapResquarify))
+	 * @property {Function} [treemap.label.format] Set formatter for the label text.
+	 * @property {number} [treemap.label.threshold=0.05] Set threshold ratio to show/hide labels text.
+	 * @property {number} [treemap.label.show=true] Show or hide label text.
+	 * @see [Demo: treemap](https://naver.github.io/billboard.js/demo/#Chart.TreemapChart)
+	 * @example
+	 *  treemap: {
+	 *      // "binary", "dice", "slice", "sliceDice", "squrify", "resquarify"
+	 *      tile: "dice",
+	 *
+	 *      label: {
+	 *          // show or hide label text
+	 *          show: false,
+	 *
+	 *          // set label text formatter
+	 *          format: function(value, ratio, id) {
+	 *              return d3.format("$")(value);
+	 *
+	 *              // to multiline, return with '\n' character
+	 *              // return value +"%\nLine1\n2Line2";
+	 *          },
+	 *
+	 *          // set ratio number
+	 *          ratio: 0.05
+	 *      }
+	 *  }
+	 */
+	treemap_tile: "binary",
+	treemap_label_format: <(() => number | string) | undefined>undefined,
+	treemap_label_threshold: 0.05,
+	treemap_label_show: true
+};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/core.ts.html b/release/3.12.4/doc/core.ts.html new file mode 100644 index 000000000..79d494e22 --- /dev/null +++ b/release/3.12.4/doc/core.ts.html @@ -0,0 +1,244 @@ + + + + + + core.ts - billboard.js API doc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

core.ts

+ + + + + + + +
+
+
/**
+ * Copyright (c) 2017 ~ present NAVER Corp.
+ * billboard project is licensed under the MIT license
+ */
+import Chart from "./Chart/Chart";
+import {isObject, mergeObj} from "./module/util";
+
+let defaults = {};
+
+/**
+ * @namespace bb
+ * @version __VERSION__
+ */
+const bb = {
+	/**
+	 * Version information
+	 * @property {string} version version
+	 * @example
+	 *    bb.version;  // "1.0.0"
+	 * @memberof bb
+	 */
+	version: "__VERSION__",
+
+	/**
+	 * Generate chart
+	 * - **NOTE:** Bear in mind for the possiblity of ***throwing an error***, during the generation when:
+	 *   - Unused option value is given.
+	 *     - ex) For `data.type="pie"` option, setting 'axis' option can cause unexpected generation error.
+	 *   - Insufficient value is given for certain option used.
+	 *     - ex) `data: { x: "x", columns: [["x"], ["data1", 30, 200, 100]] }`
+	 * @param {Options} config chart options
+	 * @memberof bb
+	 * @returns {Chart}
+	 * @see {@link Options} for different generation options
+	 * @see {@link Chart} for different methods API
+	 * @example
+	 *  <!-- chart holder -->
+	 * <div id="LineChart"></div>
+	 * @example
+	 *  // Generate chart with options
+	 *  var chart = bb.generate({
+	 *      "bindto": "#LineChart"
+	 *      "data": {
+	 *          "columns": [
+	 *              ["data1", 30, 200, 100, 400, 150, 250],
+	 *              ["data2", 50, 20, 10, 40, 15, 25]
+	 *           ],
+	 *          "type": "line"
+	 *      }
+	 *  });
+	 *
+	 *  // call some API
+	 *  // ex) get the data of 'data1'
+	 *  chart.data("data1");
+	 * @example
+	 * // Generate chart by importing ESM
+	 * // Import types to be used only, where this will make smaller bundle size.
+	 * import bb, {
+	 *   area,
+	 *   areaLineRange,
+	 *   areaSpline,
+	 *   areaSplineRange,
+	 *   areaStep,
+	 *   bar,
+	 *   bubble,
+	 *   donut,
+	 *   gauge,
+	 *   line,
+	 *   pie,
+	 *   polar,
+	 *   radar,
+	 *   scatter,
+	 *   spline,
+	 *   step
+	 * }
+	 *
+	 * bb.generate({
+	 *      "bindto": "#LineChart"
+	 *      "data": {
+	 *          "columns": [
+	 *              ["data1", 30, 200, 100, 400, 150, 250],
+	 *              ["data2", 50, 20, 10, 40, 15, 25]
+	 *           ]
+	 *      },
+	 *      type: line(),
+	 *
+	 *      // or
+	 *      types: {
+	 *        data1: bar(),
+	 *        data2: step()
+	 *      }
+	 * });
+	 */
+	generate(config) {
+		const options = mergeObj({}, defaults, config);
+		const inst = new Chart(options);
+
+		inst.internal.charts = this.instance;
+		this.instance.push(inst);
+
+		return inst;
+	},
+
+	/**
+	 * Set or get global default options.
+	 * - **NOTE:**
+	 *   - The options values settings are valid within page context only.
+	 *   - If is called multiple times, will override the last value.
+	 * @param {Options} options chart options
+	 * @memberof bb
+	 * @returns {Options}
+	 * @see {@link Options}
+	 * @example
+	 * // Set same option value as for `.generate()`
+	 * bb.defaults({
+	 *   data: {
+	 *     type: "bar"
+	 *   }
+	 * });
+	 *
+	 * bb.defaults();  // {data:{type: "bar"}}
+	 *
+	 * // data.type defaults to 'bar'
+	 * var chart = bb.generate({ ... });
+	 */
+	defaults(options?) {
+		if (isObject(options)) {
+			defaults = options;
+		}
+
+		return defaults;
+	},
+
+	/**
+	 * An array containing instance created
+	 * @property {Array} instance instance array
+	 * @example
+	 *  // generate charts
+	 *  var chart1 = bb.generate(...);
+	 *  var chart2 = bb.generate(...);
+	 *
+	 *  bb.instance;  // [ chart1, chart2, ... ]
+	 * @memberof bb
+	 */
+	instance: [],
+
+	/**
+	 * Namespace for plugins
+	 * @property {object} plugin plugin namespace
+	 * @example
+	 *  // Stanford diagram plugin
+	 *  bb.plugin.stanford;
+	 * @memberof bb
+	 */
+	plugin: {}
+};
+
+export {bb, bb as default};
+
+
+
+ + + + + + +
+ +
+ + + + + + + + + + + + + + + + + diff --git a/release/3.12.4/doc/fonts/Montserrat/Montserrat-Bold.eot b/release/3.12.4/doc/fonts/Montserrat/Montserrat-Bold.eot new file mode 100644 index 0000000000000000000000000000000000000000..f2970bbdc7cced41387b330775acfe5904035ada GIT binary patch literal 106135 zcmZs?WmFX27dAQt3^4T2HA4(7-8FQ>&>SHKC z00j8|$^H)tfdIt+@CED9-~ZwN*WdsHfFHmY5DW+cxB>$IbI1SU|MgYJ z#8dX=n35u`+dY204|(4+k}kgz!DCz#W6D=d+4LA>xU85t+hLE!cFcI}xjXX{!IBPDNJh2>Fr!4c=FXJweQB;lyn$`IQtjmw6cCFwvd;=-msV1S+T z3oJbmMLexZ^)out@WqISHviq`UJn56zEffwXA|%+tsyx&%lEdD0F>2r>DlVfUUBJ9 z_X%$n#tU#R`HdaGD55)a7rsJ4tM)kzu^1Ctalah8gEtwBpm!_`;O8=G=oyK!)`OW< z;(N@ZV+@WuW1*tNDqA8Vl^o2tN)W8Mk9dUIOiF^#O@~>=(6sj?{(`k~7IZq372(Kw71d^P_*B&^ zl{P!mcv(1L$6VinMUu8($i!5 z`HsdP`H|DiI9yV+zxuY<`0Zd^$^Q`4ri|s=%OmyX-^n`Wgk^0z&Rag6WoeGdYRasFai!^v-kpr=Ek4+3Mo0G-Kpq?KiAqTfeBQ5uPhB^ zIbRFU*#CozNLszmj${9LBG3awa~Z^A1vCPclDH!2Kh%6Ig)>HjWE(yYvlCJznrx_h z5wjA%1d|3$B(sUQbpUa5`>{!oJ>YvnUq(Vr=bUb3%W)v+eT0M)Ch)zhXVBu)xS zZQq+qKT?}I>@-=I4y_3jx&LE+tMJ>vb==TRpi~dL)?z7B-JbfZ?CU^M99t$Ncuy{q zpt!VU`6AF$JUn?>BTzx=fUB>m-)4!k|Ae8~tQf1x6Yb_j*=+Q*~mQyHJRzs57ldeP)krfcbbYi?Pg3C-qa$)wWY ztqU$Ws1|)ROz*YiZD}@{!5xzl{*-3<)ttv>mRtPf^Dx`x6~ngu3TH1d;)aDE;&J7M z1%;$w;SLJSfq2HSIt6jYH^tf#FrQrA_lo43M4J++K&@_yx#fv^?Ufawyvr}ux{h0N z1#|#Q>Ort-B%iseI{~HD7NlaDK}Hou@H^EXOT)z;As6%{j`_@XcW%I(Ce2Nx&H(!7;OWdj4&ASI)>yyvI?mYTQqRC1t@8lD(3^*Fs z7XV3Z4zz&jUTUW~0OK(snzSLQlf1Gnmy)`zlk#L{NH@zhY~3*5E%jRwe#ni4AqiV6L>t!m zXzpt#5qLv1PF;baBL;$ojG9){eUQ@1wMu~Kh&Z>2+!_=-EtVZ$v-)6fqcd_oCo9MZ zqGpH&vWd%!Xye-Ws`MYL8b8JND{){$GXQTgC(pn!mDhklYBJ=$J}c+z+F*QE`MCX) zK8M=UWWR;Om^&9Cm!9uLg1Y2BFVGJ`L^|3wS-;Y3GrQ0Nu3>~T5}XIlgMo_@YA+DN z^e(txhSl@;M4!|*WLuT}kZkJu3M%D{Dqi9x|EltFh?*-Z;`0L06RP@A#egQM;VijW zlLsAGr@HLH`w+DeJrecrS#q??yV&#Z@3c*$Qb~{x7**T7M9v0FFSF1BsbXO% zxp5)x*NjXMx~InCcyMDbhIANe*Zz@&hN_p6WfP+Yd(Rv_2i07^&Kp#{8(s>T1bAJH zBBDkaT0Xy0n^OgF$`s!qeEr;(?DpS#y2#p(btt2x46?g)iT-uS1GXB*ZJ=wkpAfDr zaQ(=M1a8eIHJ|v$?f5ynmqS}DUIP>;frI+hdIk1M9U-~n_L`auRBJ~Z0P*yJ(D)bhkQkT-7!tv_93zLi3em?WM z_7S?+itwjv;r8UAp?ZUf2F%b3ds%JzCsA5%nw6>_me$8~KdtObo0^uBKYdGM79h+4 zfb2!)({b1$<>VgBI0GduGHv_Z%Bb2l{H`lBF|d=Lc-8xtjQ3zf)f==p=OZX-dC1v6 zNF3$B!@4KahzPU~<+_>pr@?@yc`F^V$^dCG4>oOZTT&*8@E>dnqS`?jH>p`7nCoDw z`{vG#WH@&m5f*Wm&qX!WNK?3z|+H+fh27a}f&kc_D|YZfsZ{ z1ydB^V&L!FbnlhxwJ^4L`xU>5=I=1$Nh^H%fuFUXItK{khk6@}`)!AEu(*VGtdLS|x}2^YjOL#zrd=ZgXui2S=rl{8AFb!6Senfd<9!Mp zgu~Q-su)^nE6l3^ElxxArcZGL5(F~Ojdj2tUA5bK?|!-DUk3|N@@}%I&7zk_v*Y&K z&ImP`mZKe6&@YuWYoP)8wR9rgn_#BE<;v)zo;~E(Egzo2)#B1FYq849x1APx`f)@f z`P}VsVqEPYI}x{MeSL(C?HGForl4^P%_I_+DZZVJmfXnn-cpXqY;`Qg^CtFR2AY(C6w}hXdntfYVhz@5`QIzuQ_Yn-)3O( zX_#tI$;rwDIlVSsdH_G+1;a$q>e(jxS-`>eR8pRGm6`Wob|2Y3drVzTB7t8)1S7lf zbcE{c!*bKmsCzsQj7H3a%=#*mgY5LE00OLmVx2i+ zXu=n_0%WsC03T0r(H=EWq411ebOuJU@}lbFD>F#H;)Gfr_r?8WFtcbJ+`L3|c0Mc` zi@q;foRfJ*Fv~+ntr0BN3Ny)n%{xCE02dcv|IDmrtq^_vKiMbi45Vc>{r}PTUHlylOEt0gQ0TS1oi0RHGjM&D zuNCtGBtw`FmoHpcjeo^#GwnBXU(K@C2ap1jNRLiSb67}TQN1Z^u5{Lz%ws?hzvld5 z8)Ngxe^T_NFu_L9+Xpv0bp#ltcvw};MmkORQq^-6uiTa_iX>C+U&VVBa`e)QTE+uk z?0enY_%S(YoIhb836{SoGI`PSGGw;jQr>|XbU}46?!p){#fw?B9RTLlZS;=qQVr3| zn7PS);B%v01)#pzL5#NwM@jQZZ=TlsBz^j4YGJ{|xl-u;=rXSG>T&-&uk>kEIB_Bw zuZ)w(eoRcl012}X!o*S}J`*r2PH5e6FzU)FOCglJ{*wYZP*wzO{<9h1O4&6+3ZU#F zBjv>izY_oTj7Hwg^&JqE-L5aeR-+L!1$oCNHR{=05|Z=sqtbTe*uC1%Yf_J~`JaGQ zy+U0ojn^hRD%EfvAKpbN59{?0wpof|e~oav?9$P>;Z3!ozIlC)EtWa~kL{l8CA>~z zTNY#d2N_l+WLkWBcZ~I(Qx9|Htxc+|*8{oUZ{Z@*rdBVKbOStPm}?V4zK#RL^@E!! zc$s$w3Q6B!=J{cL>I6*~GIeX|Pc$HA9rRxGLajw=Z3?_ofsoRCc90{4cO%ksiS@meL}Nra^{fL`Ffj*S{zz*pbdT z$vMoSp=eTs$8CiS<)3iSR*XDl&RT2foTAMVK-fUxqiW~gck5BQ$J^>zh>y#&wt+XY zUMwK?IN5NPZk9BbR~feC4yg<9C6aVn7Gbn0)Oyd2!4vQiaEH8!)s9spd_tj5L-RrS z`p!2r;^IxE^n=yy7=`~9v~+VXw9rNkJ3%~fu9P=v~u<4Kt(H_;j15$j5=L6+zee!T;X$NXqjT3)re#L#Fvor^nyP@i=4S*#1HKue~9?C%@3i?8OnRHvIk#4d7D zE>$k`@3&h=k4Ad)tox^8&lTLS5gRe=;P?DMw%wAC#s&k?sscm{mWO=Fe}7_4N%M1% z@>M4QHXn4kRHd7c>H-UezsmBVh++~+p@)R*T$Z02(XmIiYZf5cnK1R%H;kKdA6YTf z1tm+9N~aLWt@~IAerQl&go?~Q?o#GuS^Md!vJLk-0g33XVEj{fNaw}AuB=_WxN=GuM$9{C ztQ*G1d6mIcc={ypJWh8cUPs%LNQTn>-*gO@uhaHqVW?+apK2;;f5EHGBq>5QpSoq<$7Cj|#y`nrwNA z6iKhQji<x?OQudt*Y9aozB6#v-j)< znSfFcW|*Sm(8SoAfpU_GnwKpaR4itipRNLB4S-xF(o|MOvsgU=8hVq}CfG}T?DmF} zRzAKE5osMI*=iLR%SJ?jeSUWezmbt(7t}19zbQAa&;Fj< zJdQ}~6g4zfy25Bt>b&hY=X#lGW3>$c>rv_XtVEIYByfnj9>|;Em6A7VYwZ z=?{KoQ%j)VcBV5d2VXI0Bqec>SY^L5>OHN&NcamqQ9siPgfi?HAd3v}#nOwDMP8Ct zakcS(tGPKB3U$oenF`J^)X zMY!*CDrU7T-7~hIGl{xsnjX0S(LuJ`V-Mz%>^U(XTk>$EFBW2 zx4I7rw6i=nsbaz%22myuS!>KHp%awvsHK4f0b@?&$N^LYDR#Uosg8hR84^DImzk{D z?F$2&MA5v;gCzWo@8faSaf5njNRfu^aiPR*zAOpT1BB<}bJ|YpsZwrT?aZUy$MPK` zP7lIa!E}HTP8nOx!SteWO9?u17F+2C;`}wplkrnVQ%5(FF$SDt04ODr<^vEm(5}4= zoaz@XfyAX6zk6W(5TLHp|6$u>1;`-?25cn0^e0mXK2@dD$C|8R|U<5c{Xo6_t#5QVw_q3EZ0Z+vb*aJ}P>ut2H-gvCZ0TxCYJjU#kQj$YKcyPsH6XepYzTU{ zc&w6k3Tv3ZH%+_E`!20uTToq*|3kJ~ODCCrfZaJ`SeZy(USwL`fZJBH=9m8H{uhEvs5;viI|0MG4cZh*zXU7*h*;2K|j?s-dk`q*soKd`3lC<%N1~Cx2-_w}o z$roPb3>}{Yms^PC&v8lQ6dGq_@O7;wCIC0YR4qE>sMj7(7}wNcJQ4gN=_ayEZ3d-U zh)m764^~{a>>qVtdLksY)IbTpOWzf4D8DvC72fq%Ujb7Rn2l0%I zd(6zQ#>4SGJ&4y?C#b7$vP$(XTlZSz#KVl2whN|S5uXND{yddpTLVgO7|N@(krg5t zf`lB*e~Gw1G+5=1HSB<$xsKA4$kyr#Jb>3p8e+7~x7 zsOdTDxYXfAkR^SbGG(!-_RYg7r8FsKlDNExi1Hr!a`%i^ydz}O1v{nzB#pBYQpeU< zn_6$%cIWg6CrNvy;G?Wpu8bAedZ_wc;xS+EXBKFxvuw8Z$B%H#F_>g13{*$POX>q; zi~_n`Q1n*FPKw$xj3HO2g-qH!f+2{fhFtOy&#n23=yeG_<`rHl$Qbd&`>mV{?uFxi zvir+Xv}s8JL-pU1nI6DRakOi=QRLfEB7^hwe^(DERIQF&7L_IMTBlzacaC;=#c8Cv zaPME7iws31#pn2`XXct2ANgv4g0qt6d?(X-WX*;rkS5TmXE-CI(FTS=jUT>qsEvxlq;r+6gb?kj~J~4u_8lHR-^+TmC`+Sx@okqon z=`)Vx|46P)_BHwIYwwo?Ux?m>8W-XJB|6!hy;u`DVOSlU(SO7u-pMB_R^~bTfs0cr z@L{GEur5?Xzxu&X`z3P4)ph*<=9OclJ*o8;!unaYN9 zt*Ixuc)u1z(W%nS)%$&-Mg&;aPm2#mw|UqfA046(B6_{Vp+f~fKGvf>8D?Z(|{*)XcdD0o%NYTP?x-+C3M~i1HtJlqVz{KpN z6jJryJy6@Q)9Cwdl*gOMiLuf!{K8#rGlZoQDi4t~f2L;0@@rb$oin^zDbzb=Ur^zV ziKvY9JUG4*ey3IuM;90ak%*RqD_A z*TCjJWJ<1D=nQqfq<^jifR7G!XSdTk~bH?*{%W5Q3y zgxyEYN$W_lh0p~1WRbZjkoRLhg?^X`RjyvC|2Us4BIjWUTa7X(l2u4KL88$N=`#Eo z%g(o%fJy!67bS@JL799NnpR@*ojn7>*w%VfYQL3&ECs5ggyv4B&M^zks_Oz^GcWGG zSbjqnNsKw$^oe_Is`(+!$+!v97YR91C08%;`qm&F!+_!F+#Pj{a4>GXzB^4M2>apQ zFDnAveROL?^1@v4rGz%Ig>&J4eFEd23bnZ6tGkm9Ki2`<8Gc|u*|)crRUGFWhBA#! zHMNYnAvN48f7_UyqA>Ce+SA+L79EB*`M8`c%%ZOj(Wk?29&T!-#D!@QZ3dAzOEu_Y`A-;p z)J}?NbkkWdWyA(FKg3-ul=(FsjGh-#q_}-?k|iW z6m`Rgt| zbD#hE3$6bpCOFoUnfUuV(4G6QWeG>=T1nrF1_r%`0H-FJs%xC4O5M^+*3Pl zB~Z+^cptd=<|9A>^qzVIdau!VXqoJqn99vG;aLosqkW9*TfN-(F(Mq58v6GIxRxhs74Tk5^PH_IfwyQ8c=iPoR4+jU$ku9#Ww!P<6; z*Le>Yl8YH}KL5=Dr7=Du@os~2H&_|dHp>mlf)OHW9A)Yr=X~(XZOn^(pE&c<+@+;7=^Ru3`ZG!O=Rm1otmC8R71{(g%s1CL6_ytYK5qY91SM$=r5j?g zN!E)JB2py`zY8#7>H|u7@U%Hr(CowKU%0wks$bQ|U*>c{T$53HV1-I93Pi7t~wUht@n90L(h_5*kosyoN}-WJEutZXJ)DFi^jx z&`gFau&ExMCK=K`FqTqe2fn5JS+kWlf50rWY9ck~S~))``I%*&$g9*}aDl0imU}Wk zTM&&{u*IuznVNGUw}X#5mnEsva)i1|-m}$xr%9*OzW^NI)5uEf zZE?#Hb$ocl3wxu#aZ~&+(w8^%UP-(}Z%XUf1>1O*vD`f_SaO;kri~r1C?OR5`jhM4 zWfV(GtX;n-7l6i!_2m9gd*0ReAQ8>YI4(Yczvd#ba^Qbz!vSf&ZZq2I7ViE9w|!lH zndf#pE)%lQh-`o;iIJTFPDv_U`n4WkCfUKOh}h{s$La z1QjrP=a1EWABPQZCMTe5C6#iG5FrThBmRRNSzj`ycDg_AO81`24naxrV-&YgL4f%3 z2y!O3%Rj_1pf;bkVlDWO{@?ztuwloQ{YFEH9w`~+PERdw+C!zPsunuahAGWhoRi#r zf{M$gjXNds_k9&M$%L&VpQg;+z8j_%GuNx;s(rw)b-wESf)2236r3ww-fK9v4dA?o zp!t*Y-`hCQO;I7H=*y_db_958b{&26UdQtG;C;Q8Y+>i2Ke&g}h|z*_ofsE~H^4Z~ zfqZxd@MfAj|9BR850d{@Y4vwM9Jo6F%{FFeW5X3iAJg)b`vH_bOt6=o<$@S2ga=WXNXCA`dY36jW> zai2Wk*d?kWrPFr)`q6vVLd;?&Zsu-UQTD_XWtzVIuTEM;Y-tt~o8YEHY7OH$ZRSSS zG3dQB|M(!iJ-W~slfVYxcI)4nva14uJ(6oJgd}sQo_b5R4JbePEZ?2&Foo%XKR#!OS7+Ib5LvVXn;y(pM8~{?r`OZ3?>4qA)J;{;aRsHb%3eTGtYb2 z!4j0BYVhgfzidwV65FTI96?8rQFwfR4fJ+YMMQa9>s<}e$f0~+znHfMRgKe~^zVk7 z!fhHO@F{nihLy%cdL0Q5Uca!b(#NW>Yu2{6DiPg0p^_mya%mY((m`WPHl_rq(tiL& z0}Vz`=H-!}!2U0dqBYI}+QOVeSN!FG(4&F0T(O9_ zUkpo#rE&J^t7o**K5@-bzpoiNwdc`?b}&>1;7FR}A)2ZZsVb<_8Zl%*pxdI`wN|MW zjxPUabMzurj1ZOd*meJvW(%&HxZlM3zKn0R9eMNDNj409-aY@LHQ4XKEu?^Dm;G=h zNp*jX0}PD|Zn$R(_}4=m5i8T9^NX{%-w0KwcjzzGr6BCaYrzW~SG3=;Zqw;NUfQjS zw^-1L@sT+5ENEg(grruJ%ekI= zk2}pUM<>29NrGh>2agU}|%o1>Lhfg2}&e(&!hz%tpf4$$nf^c}YG}CSJUif7@Nq)^oJh@&$V+B=J19el*33 z0RMS{o%tJ*&P=s2Zx3hEx383Zb4Ms=hQtHjDy5e3o4&>J?G zRsKACk|Q``xIX0osJY{Vh2lZwZ$oC-cr?)h@Lq{=SPJatYX$N%K(E1L&iJn>_y*mW ziDxn1qGrCml?uyST-|^y{hVD1!lEE;}ZqD$7PttQl)c$Ninij=ZpOo1>aXgAB-8Lew;>xn) z?uHO9SE%kzV;SG)c#QfTphE)HKlOWAEdPwpIf}mj=Ji}8LJ>eZO32(FW7zRIBW9OE zN4OeQDK=q>*Q$nvf%TNQdz=Qjc46AJx;o&ex?kzl``0Vq-n-XAzsYEWq<(vxG7zxO zyt64kT&M@{kaq>@hW?^6n#w;5#l^?n;Xqs`+QXxo^pWCurpp}X#D?@GcPZqy4Eo5A zgnw@q_gLC>1(JV3(}>#Dn;tnJQX%vX>cJoQQPGEUiWxDV$ zD~bi0EUxoF%voB#p<>#Db6Fmz$6zZeKy8;O%~%Ycp5X;`4_X<8DGNBm#DWwTUe3t=NwqZBe~iB|rQ@=Oifd zV3U5YB9=5cT{fDMsq{X&1TDdtyo@9yTjBXjLPwcx0kx#u6HCR?gHuM4MQTdCS!f;| zzDpCH(63TqnF4U~nUoo11dU`PN+zhFx-lRM`~~}(HVCgW`s6|j{Sq^`6t}~x&xH8s zK+GT+?21&qcZPwfx+kl7sWBvA`rC%TY(|eV z-jwwPR(B#>Y5drW5A&o<-|}reZr)nHC$-J1;^1q`d1IxW`-b5$(|%ck^=1&pZ1338AZtar zIR*|3j+=owW+YW6A+EsZ-f{jyxw?yS*z>G&lnfw-cRgWth&r1^NmXbGohJ{b&zlYe z$f)ovHb{*s#Ep}BmH-}|)Z2&}sBjUY-#gKKrgmEi5dW9ns7g{>KYo7cKr!+aKN`Cj zTdMOCPjpXb59oX@)cBLAfMr|l84H9n;hC11VjW=9ha`=-p^$c+X9sPaRiD_nNr8~| zB#e1yqhH~&vmq3j#O*|(vfz6Y`vA%eN#;d5Aykkf>6^v#O)smd}yOWZ2(g zg3M=fuO=eT4;T_S;_Q47RItEQ)W%C+R-+NrC;`b7(#C2{h-v8$hzdC-Ixw)RA}#Tx zS>UQnC;)7E;};)tWb88{{0qdAsXO9Tk8IamQSS51E8a`arF%5MM?~pqI^dwmkV!0Q z&`xjwlsuubCgsK2ZxDM)jXkUTMu2O;!nRRcjDh-e4&TIAnXkfuTm^54EtONjfzpiCn|T&*!(w=%~$et-D@_$&kO7*%A~ z?lb>;V;`RiFl?E3NwxRe3L? zFeKmeY?S#R%^#m8XP=2l8r|@vP>dciQqnx9%Xa$s*(luU+Ue*e0o=v2Xa$$8WI9Jo z)y{?M5KZ)sj1@81=KfFibSRTGJtSozwIR?et^3WypX;f3e<+jWuJjdZNdx>{5@1Yf zGCT(1h@V|KZrtX}gSICznE7h&#YwbpSM{s!$5MUt$dM-uqiE$N)$JeZc1p?){08?n zmwEL~zdVL}_L?f2J01xU{5t{}IopDrve??hf}mAYPSA9Hz(ObWo*?&3KlH^}UHWEdR_#W3a=cmeKUx8~n3L{o# zrrc);k9ta7(-_RT*!=`YcmIbs`1jK3amek38S)V8pSSh-B!wlh$xfpu?zXyKdW0aA zpoE6v(1<)fcx)D!_!B?4svFU-uyidQ8*0d2 z&*sG{e2Km+55!_a`gH3w^1fK0C|1?{qrc0~vDcT?tb8jgL6YVyo_oyg^8htQ zI&lT{-{>N}rt}mAFr(E21*IdQ_KAhdIIpYv+k(PZN?ZTg@%^z$68qCyWhq>#E;bFc z29WWPB>-J%*g7IKk@MhE$trUffO=w5k}r%>R9*c))-*|z*Dgy#u#=QfDi2t${fhhd zeNS?DgJ`#Dj)(X8XnaxyqPNe-AfRZ2*6` zZey;-?BuE&dMz^+XfnrzajVSuM&2o$#&FAN&h^~)&9MzL;!K4mfSRt)LNzs%3pxRK z7-H9l)$d@+Z!YIZSE0t7%NFm1lGtQAZU?ROsu5k5tXX6mKaNK$H{+cFYdH0+P`hiv zdnyIdr<+$9c0y(QLe!zWJoPs>6BP-AA$5|DypO3HI4c6dM4a|sn0g-U^wf!~7Tm&z zDFaoL+z2S?&{t$5$R~j(H=at0H|;Ko_lR7$czaP-@TkzQOt%NH>LKluMefbQ;Ah=e`lDe2B*r3;da3 zN?)x3kYnAsp#=kqbw{r0osS&*s&lF*+aFSIrf92XMdf>%CH0_A_KP6`bxk~OV+uJu zTx-YL4~B2xu^UwREKQvPpMJG7eqP}~oHMomu z6mz6~Fr^gHr6e?2lBvzwA?>ehfkdi^CERMtg>39P-rSW zKJVusPpFgWj6A-aAjIl6Sms3+eINpb*POCmdWhbTjqBt>ZzKU@W{(BifA+R%LshwJ zQJI7!zE}z^mP{K$&fkLk%5FceGOWXJ;HifKd(qR#urnNp9EVT`?V4$?Lkqeoac$W2 zRA?5?(}{l(5rLCypiP^bUQ!kQsh$-aFUM+*jfMmzAr8NPtP~bsawg=EvSN`bpI=qKK9sejyx9P)J!)f5x%q8HVgQj_isuaXt$S)vUygrV_eb z8Q#$tCZc~{Zrnihqq-eF8d^y=j8jCa{S8^b43vB=2N-l zW`OmYPS~$btMm64lK!f3ekYGAiR4t3y<@W{PH!+#!FM)nNup8>6qIW1ETKCmY_H$& zBr8d3vc5d+WnSYq5q*l3OF=gVNkW-Ek_ifbpql@Ky=wo&tZV39;SH9Dv_-pD>MNKL zHtwCr5Sy_ycd)nNG(A{PXdZM`N?v@)523fJJh-7Agz)86o!t1z~Gg_oD%CXS!cl*_JX&YX-^r2K8`)A#MT|=pFy5$lY<x{K1fWq*f%v3sr_Er|&ZGPi$q6Ln!?WTRCqkgxC(T zGX6tmfV=eV=&|3*{@F2b$2!Ao$9~m1PWoLMlV(~B_dT`u?FYcxjx&St&ZlT{531#* z+8ozkdP=c+MS?USDF*`?b^MGBt3Jg9LWUJTR%BF5$q+{{x_a?lg{}J8X%)ooh04c% zVZ&STBWohcE~k~bDU&y~7C}?~jBPPqQ3{`BuH2`T!aK-g`xZhN?bb5Gk7&E4l~;%NX+jD zj{NZyUS5t61KG|N_Xblb4R4p&PtQVR)eMQLt)Haje5!+SQ9tJVIZA$ZF{8BD{@TUD z%UEDCL1Cx1B%PKp6P|w`4fnyDIKS&a3*2wdX7++RM>*aUEh2je8nY=)%9(v9{ZS4S zL7(#4b3&0^<2py>61_JcI7)r|9p|Z<&|@yTb%stH6x7f866#z;@AYCQ`v0=a**(mW zV$&u$r=+@|(f`P}MaJHp^+rPX0Acu!EU&I@+EJB)s)}yNOAX=S^6T_B;)wCWNu`RA zN$B zTM;re#-2IIqcTic$vl@PY~Oawv9|}Ng@uz{`Fd|s624BD6CF7*lk&)GOeCkW4mBXb zxWM%BKIGM0`4pSQRq4CGs8*#IYsfQE9%GeC>Zxw9yG2m7#=eIrOIM-FO1;DSy`y%R z9WppBbi8*hbSn`PjI0rRgRVzY9xMlJGmPc!eKwN_;%-kShNbum7?7dRHKh`?Rb1S( z`xK-ED@$;+ctK!I^iOy2s`r1>F5HALzW9(&OntyDz0uNhgia0U~SF2gf z8Edp+zWI0A3d&N~KNaG=WPaW?@;&pSc_W3FmGbtIuBK_X{K>EQ3O(~ZsfiN%XkqnQ z{_YPwf2O(Pe4JVudSC4}nuA%rw$rEtTa(>y!> zSvggTLSd?4N^HZkPpmhtTkPK`?w*uLEhu)@e>dAb&wOCqFL}Ymp`ZKIF>kr_^?v*O znfT+j(q&T{e#gj!;+<_LkhnC{+mkR5HFvIde2@`-d^p(K zFSt4gyXGFu)r6W$Z4-F@)Qsx$b>dMFGcXmR+e=!$!$SxZt|SbYh0=oD0{`%Fkm3p+ zgjL=j0e(g5ar_&=Hb|-L?eB4myUE?;{tS7Rgs~}Kv=TbZN!=R>T6x=TRib2-+M;wbVUs^_^V;|IMdKl3L|y@_p!ZAm0} z?(?bE@uf93Ax9+)G9$mEVB%@C0&D#Bqpr@+-~6EtE7_EAGllV~wwAB1UZ=!s0Ca@X zom2GZf2S8lKOxIs9*@H#egwE?kAN$Yn}Z||BjApmNlMVoSwuoN!Ns0Qf~6-VMeL;I`uh1d3b1zpHpHyf{fgK*a3a zW2LIq>o7J^kiFX6hUp{(wAT6sb-sX&^2)w75`PgI2j@noHAy?gOpU?^BE0hzI#b>k z6Y8KpZk0E1?GXw>bh?XQtQYbs?;7LO- z3=KY_uedZp{yZjTvH$6{hBLY9@lOAuR^FZdt?Kbi{}iTCGyj30ESdk}qsltL_XPYA zf!_%lSU+{riJ$sTJfqd61jaW0*Z9Zu!Sfa_}80( zXtmUKkEu~RM5hs?6rf$g01WVJLRSMs5f&5>TmdM;n})7~V?-r{UG1Tovf9C?pMj)| z7?Ip-u#o~K0u%s@1#lZ|8hAB8LqR_l0GJ14SP8%t%&DL)dlF|`I>2e-_7-g{6td9c z=pc|(U^^E>A)PRQ6{REHgn%o6bpW?Q;909iCTPGzL$x8`w6t{1fk*i*x%Z>8P)Gor zpmYH*jk-TETmIAlCzH3ZXTVp`SU&!vjn4b|5rj{D{K11{4YSB-^@*3hD8Z(A{bxS2 zL5%ey&^Q_XO1k}d{E*n)zRRZ$ilSf30Vg>5i+ls z6=W?wKoyUlUE~TZZ`C}2<%8OLfGca-d!MzR4L!hxfqp-(Ics8ZFL1$TvoCk**v`=1 zaH@K;_Z!t-d4ygDN=EKm;Z?>m_X?E?*?ZSzF*EwN3>5bH^tj9Kj z>^W*JA82ieXVb2wu?!#OHOQO5m2AJsKn#ln)i{A?~^u_+YEs9oOG4{hR zv3IjEPs79+Ya(r)y=+~k8ZP#LNGO>nuc~tnmwJwrgO%R5l$tf(rTHPvcdw9K*gaJ; z3$*H8X=+z`FGIE7iGw4PrXD4A_nu@GCgSfT%6PeVmCNAOc*Ezya~?1u_PJM!4DiaY z6|V^C;yUDsd&GlPcq^kUFwD+C^OFP_6R&RmL)1BK;|dAk$%;z|w!m^}*a$4=eL0^$ z16_=d-FRgONPsuIqU)@Tvahl+0lj#&g*kf`S8@!M(ys4;G`X9GC{0CO%kS)EW4K&OGvU?G`bm{`axh7JtGIujOsn?< ziQ9CR;!uQt1zbsZ421d3TNdI_=i)KF`#8`*`t7TkL@>Mb=-Cb*VH=JRM!OKV<~bH? zz|?#>CsEqy4~SHDvBx9zm)dI#thB3XA{pePwbd9v*#mH+VkI52NV6W@+jA6-Z~oBm zjyjIk1V&cB8WSpFH65glhZbgR>fr}}WIz6eJ?m&x=u56UV%>52jkWuvmXb{uHx%CP zg`H(IC~395ZDZ=Aw{67eXF9nNp3L;X&q~yhjG0c1lE@ztM$Pz8f?<*pu4Il%JaaC_ zxrDAfZ0lgVj;=B}Cc{H7x+)o94DOP&pN#I2FqYez2^gL38q@<~CjEA8Gn3m4?NR~Q zGqi*Lz|PVDH9?)E>5v9?k;cvp?IAn6S9Z><5Q>r;N`Q)zYf8}-B%8^B6(r~fgjA4s z@`$M>zo;Ulh^4>Q&*;*o`l6t`vB->%cRFRW}5mHU7@QRWvuVN}l^KubVLSvAM zk~tpVWz))lhFqf} zh-KcBu?)BcG7!swLeUJnrdlDFZ;C`R=Se_@UE(787EtQ^ zc}(Z;lH=8zvEud#p5Y8AtIqI-6{mK*Lkooxjvn0s;j>LIMLwfPjJO zARr(#{}2#(KZpowRD;-<$q^KXbkuV58we>yHEHodI%-K9u9~!>FX1I-(n`ysP6E6( zw`1#s)u_Vn5`8`vbAXF>J|o4czR?kq3fEAuVg!X%5P3*Afy>#6CogXK;zFL1w~Ky# zZ6@ygTC3+$Q9|I7x94@PwF5mR-Td8jX_Ix*+dS^N?Y;M0ENdAwir^P$2L0~Z&khQb z?36Zb6>E$h@das=KDr9u1SZl7#jsk`6{Naf+-^Z~METiLujlDL~nzJQzKTl1hp$A{AJ1h*kr5W_O09$B?yR;KoAMN)=Z16(t;XRtz}mGe&7u*zlH( z9a0Nu>sAiEwv$n=f{RN;1qwqbrX+RNlc{VXMvbE!xktXTk8u+#JPe{YnKH1cK*UEa zWJ4`u{wBR4Rj)&qu!m-`=FMbI&13^sv&Zn;Dh^0HR*;J3M^aqOfJ>RMmn%RfFd-%| zWqoeleQc5J4l4N^6Kf!oYYODncxpB20ot^LcD?|k9K_IOM1lx9q$51Opg;lCW=M}C zKn|2T&T}Lox!#g;a7oBxlaP-mCkZDd+1$ZajU-$_ttD)!4N?W18l)jK{iM<_a9VVL zjT!DMPkN=||K^;S6f*P5z4s)a`p)2?*ek$z?`SBPFH+t)zUR>`|2tI^%umA zTk9IPry94qHEUWmYS~!gMvU?G5e0J}EG1a`#_0f-$Icc6@*f29GBykN*fKT*Y%C4o zV4lLmsum6SSZ+eWw+jWVEEZ6(Q9{8-3j+998p6X@3j-KfYN23sLcqlf2XYn;*?7?(wQSjS(dGK?RArF1!JFpZL5od|or+O3#TaKbXo3VIWNYa3epQ9UtccPr!x$ z6S8OFjVXqZH^T-$3<`W0J9shM!H9nb1wITkehe340npq)JSTvHzX2M&1TK68P2eFf zfQt`+pS}fjo}xz930hRKB;wW;vWc5gFt*JGI1OQiV7DJSa=<3_v5Dhp%P2+ZV-v?G zFF(_}y#ktk%+r=yDp9e9q6tgf^*7Hzl9k8?7(uB93@T16UcfndysdBAQr8>G=J5s7 zFmTnMNp%>SIUP{?fRF<$sga-i0H!1am!m5U5G@qt+BziLel}=j*Nqbb8Bti6 zaea=a0dleh8#@BO4Q-ls*+PSm$=k31!3}W%Dn@{V%oml+CX+&bfI)*1#z@h(+GA~gD?E0)I)2C#}aRk)%OR#;$iR}CJ+Xx1nc z0!($`3}&Bm=S%js|j0vXd{n zC*z0pl0~(E>8;%_SQ4O0w~#YSs#pdD)x8?c5E&6q=zIex=sGMx@DkRz1wgs0?P8Ne!nrwG5<`Co#uM9d)t zPFZ{vJcg}?$D-T{oIAF+sICl*1w9Lp6y<#)+R6qfFI^`=0@$ej%0N?E&8>^zkg5ZR05nAKrCHw0~XR&K{Wki z#40LHUSHb2Cx9F41NX&d^tPbx`oMe>ez3`-{kdVUA#SH`7V8aGIXo@|-IVbaLtkI;RE0s&?vcb`z*F&LE$LZxnKS z;*KD=s@DNQIH&bLys^tD_VU))?M@K=sp$=EM;`5G;8og?YTa#5N#@k~v#x`fD{n;& zeg@D3a4ED3ZU7onP)WV?fgbs#FbA4ba3p#zdgT_B*~3{=1T}B{KtipC6HueVo7u(6 z&CT}LX^K^Cu@Dgk!kM%QbQsj&*<3d^*i%UQEHsXy!)Be~NXbR~DYK+FQYLOg!vMa* znYqQt&17f^lRF4@(S39GU}? zEGeltvQp9Kg(FtD-0Yz`a%3e=C*erAHkeV!ZVJBsaiG7PXI{=ZE7``~_c-$VoN0dN z8(*$1p1Yrv-sj|l%>1YGKNm*yM&G>8%mf_&Eg z`+eGbo6acJ-*$)R77pCPJ#axkZVdI@N_FpITvEBr%2%!k-gMyW+c+YC9C{ezU{ zRnJk;BPc}bs{`>9h$;ZpNEn&3npkX&ULtz;nh3rcBZ96Q)dt74g7X0~7c(VRp3OoH zQAkk*-C{$RMy(|Ei)fM1CO+uk5(=%kQ0+txtD7uqPZCv>GrXWbTS`nb}IHHgPcAv4x(?Q$y;%hk16Wv4}` zrD!@|Ng`Q#A+eoSFvS}2-ENN?1>J0!TFRGRvZX*PDqT9tm#b$~Qb<{%jy};!EJ@XP zcD+_3j*pP{;Dq0zt&p!$=GUo9)#_e4^)HaSv{i;~>#dLq&g&gJ8GXVPFruvTG8$Oo zMv6kD_{x&QHbo^{Bp-!TBipitcHIuQ8dJCfr=4 zLXHxV6K5|lO}Qhwqa=izF~~`?97WeEXbUSPAUCd~fgF^Dnn_3=IVj>Dra@szw@{1# zNRyie(8uw>3Br<)qJ8DmAwW&+=pl7hY!DE~a|9HEN-# z>k>UC0u$8yPsg4EB^P!e*l!qWWU570A~3U~^Zbd|0 zyi}2U6&!W4&`q9}u4p|mQD)g~6K$5!HV}%B>}SPAn|iAjY4K6!Z_HG3Gre-cQ>jB# z>RfPBn=Fgh(6M*ucdX)}&a;|Rq>{>Xkr2Qxp@lj~7f+;yfEpr#D|&d?0nVQ!pH5>y zOIh?;o9NO-KAxRt)768~(J>?kM1-5|>8yLcC`kd)AtPm2NQX9ABj7qDB&Nj)0=S_h zY`j#HCTvl|vO5VG8>E9A5RoskHbcI2NJz-=NXW=ITHu3^oe~Z{bVxYI{Tp~b6&yPs z^lgvuZExr{S%NCSGnb@9^0FMxUD%V#N4c+W&UsSo&ngAyqoQRoSYoX#i<;k>QK zkO&o>qEW?GXw!KvCc3t+G!Q9vf(2}}Kw)#nc1xKKV`W{oTP)L-%Lr#cB4 z1nPrFr&wh@I>`3?Ry5Hj^^U7MUY{8R*A~|&y*{YG1)FdP5}nZoq6#3TI*6s(5&ta5 z2(8KD!6|V9Q=ly{E5ryAohXA79*b<0^!3uuPh2>}_u~N3UI3Kwj7Yf}^okaokwdY` z6z{nrlQ;wH6jT_HQw_-$o~}r?lrbQp1udVi*a9yFk@RC;bchuwD1*~&V1UG(HjYW; zK2pm;;!;Q(MkJpL_nnR@NhG^ty7CT2mxAPJP^gik%q>=|ZjAp+Tf#0c;Q>*9-#Rau zG{x}V1i9EKTOCPj;1=e+;-#;KydajYgatKdG;>!q?rP>Mnz@&AR|lg!fxHi?L`WVb ztDysO3Q#fA1qcdjF!*y=V!5m_Eo%=0TERI8Qp--(vWFVhR5KdOO=4MOd@-e}QOKj)f#_zp z#RhA50WE9?8xNiqz3Ws!bA1H>Hq~k$C5q|{VwC=|a6R#hryQ{`IGU0JMOc;upOy#) z`Cx;OkYivCrHH^@SeSNW5LY;2U`e|Zdwhj$uyOJhgGwC+2GYR#C5ZetVq<#oGq%e0 zbZm6pf_r+{TOE>C z$4xQqOGC{W)BV!px2=xIoU?)yV@7o|GrMmtcWewTiZ@qws3qO0mKL@Mz;T_;eZE*H zwwt{0P2PVKcb*Bm&j3;hMR%{>cTMHa>5G-!4n}uP{=skfm#gqCK?(+omiT3Isgo;} zeOY1XQ7SI8`E}RU5DSNlE^e(il@+5X!JvlJ7+@tH6b%)Zii*qBy0Kb!2=mywz4}B~ zr#BM43NVV>;?3TjKnC>cBENX3uimDj^rEf`Ep^Yz#}m_wU2C^aiq@GNtY^s~ilDZy zP6S?)xn1esp~?PfS9!P*c=|+MJ_@ffaJ#_!Rp#jnMtO>aLtOc^UyjgfdU0yMDnnKI zdWgSXqA%B^X&j6Nkkw2maToW}BL4f+G06F?h`t@|SHzv+h@y89e7(wVieRPJxGBCU z<`JUgAnuoX=;1|Oh+v0g=_#=j;XR0*pk(AD;%>P)v{+8kmvVBs?AY5qn{jonN5_;! zjNnC#?Ga--hq0Uov78F)k(;dcHQ-lVhrPqu=K`+eAe8n;)IE{)CbD7HYbM}7Gv0Pw zggp^!Aij4>U5h(K*sy9{i!X)Pu{^sLaxTT2yw)oBCb3q$yB0y0V$A~VSpr>)Ju9(h z(RM777h=KAjbf)#YZYgiY*p%ih?n^;#e~eZDrie$AvUWLK-FSJiB=@`s>F!uu_98e zNHJB32@0_yEiH(eUbpXM4x|J0B-K$$tON8K-v~XSEkRd@h%kQf20P18RCkCm-b#Xx z)lq4>s*8KoQEy#U7O!KdF9GTY0qO?H9YIzRR2M+?141f-o2sa^z*R-JxT*`FdV!%8 zL3&;vpm^B*7?`SWrHZELtdNh14M(&fAtr=A-%P5Kn&E1@LK>3;xGGJhKelOK^%7=e zT9|i!$bywu8X~KW-1W*>s^fjAo5R=MmFoZQs<`NtTx(@DgAS_WMBc6@=JjzX3a&F{ zR~dr$mhS24ivQUYtx^IpThpqooYhv(v)!$v_5c?@A&wn_9Z$)6PnqBftz3*rT#hjO zl-baM4o+5xfkRKn7cs}Qta0hI@t`6AP{)-hUfpjDIoZ21*)?rt@&kv~`YPt}fC`lf>)RKQQwz9;JB z)AfF-`oF?{tVUz%nhX6?9e=85AM12JSz9cRbCh_Ht~GQGBltvOdV_de83UwZgS6 za8AlQQ_4GQHQPXh??8m_K!oo=gzT{Gbkgxd&Q@!-f!gW0ovxY$IP?f{=y7w-a^!Yg zh-zBlO?F#V*?W7knl8)1vkCp0#Tzw-mlnT3k8b8ap<(@DVE#?#4>7)r(Als>Q zPri^Q*a_2U+s|sk#k)m(D=B!N^LUf8#lA%~J1IdtZM^(pV%INnXg2f9C-QRsi3a)E+ZnUKY}-`NJjO6BYMUWy=x?ITxz@3z&`ZAS9H+AH$iHR+;2AW zVnc5sV!O@FM*1z$zKpbQry{%WfNk@@Hu>kO@4fn)?|^Odo-0MfifD)#BSd`f6>xU( zR|g84uE`mSyFQ*O{|@d0piLXntU*Kx2ZGpGmG`a@eU0W5+bv)n5$ucI zjz#X}!`{{2`Os4O(PcYH7bS<-Xo=j5J*`Ea_R(jj;w<;A7IEoW^_43=S)$GhQnTwR ztn$j0pB(73i!@ozlx+II)_HlF&n%|1%PKZ}a-z;Rn$Ipn?D;(wa6d(ym-`OQV2z&> zPiHxgUpffa^?|GI=xY10HGSA4U%+|m<9Vy@(fx^fC!W4Hqh3HG?L_(O2J$Zog=pP6Sbel_Lg~e4*rHSHRKx65iS{la`uE6vik?2j08j) z)>Jkytn`I!^n{_(C3Tp6gT8%%|6*RZq4w6wdbQYniF&M%+AZjXT%o?=UboL#FDwmI zch4CwEWR>cT|C6SVvtIj>Ek8khm4n(>5{9mn{{>&1+u`%o)w#N*=R8?mQ!xoUzn6$ zgYV}(o+Vq$@+BG5*mUT0A4Pbxr;iebhOj|A>Vv2AAIwC)%4F@8nLBr(leb`G?bsln zd2|!+VcsHN`awST!zU?OlYv?Z#X|{BE&62Y?4+k$EhQcF4iczzb)dcCRn_Sz(Ig2* zi(KuJtDrJC>(e9hfXMu>OpV(2tV%DSlx=H;N12~Ymr9{gkj$vbTq-h95{&oLqaHU{ zmwMq*t)h~RRxFfiwINZdROyoGO_efAY^kNK2~7}MI%u_^>7t7xCW}GVCEvJo+!qE+ z{YX^KQA(RyDN}1jDr{8>n-m31Gcu+f6sd<)Dq+wOFz5)GVVMxL%!pE`L@87m3brwj zt3X64Tvd>a@Ari}{mM@NY$@OEemV@6B~+Ll@vu(ay{B&1R_cMrZbTv5lLj+!Cq_D63zz|Hz(Ug!wiCa^mnZ@f>QWM# zQ3-X>vipD$IB7wa3Xl@dO(7<0Gt#95lj_luVaUla=T^^JP-VcK1ei4-$uQ&?6i@(3 z!Ac1@AFF3J7ac7LDNKkd zbp$C=L=>rS0HO&}k*mr?3wQ)Wg(V^d$J}W~Mp{q^pKT!>3epkKApnjFTiG1fqa%}% zkx9+_P}YEJMyfq(as=1L2n<$YO)GfjgyeHVay>wtj%-dqne#GCmT)G2)RL4cNlKR_ zrN@(4QY4M4DI;n@BWh?(VQ!OHS;rb_phoXYXyxSB%Tj7vFf}@qn&@Ipbf$r>?MbU5 z|Ed(x>e}e_Z7B6@uk}Yq`lBi>R(t(NGyhT1-|9MgEkw&jsF_z38T=Q@ivUv*UI`~Wb&!Tf5OrClE!4RwRR!1QS_Cy9X|$M8N|{10aq22O&&$x&cr zukbu__6N#~113RW8>soSYqHKP0?8u4EU0v)r_XuMK*k}^B-h#p1AU-*=yVA>2SARG z2e9xM9VMQJNoS$bR!t5u4u(&Cq3z+*QxNHy^g3pG!@^%_hFTpnH4cfEheXXoqGv$p znb0~WY8?hkL%pUU-qr2EXF%`ihFZ$yGn<3F{qeN6kwZ; zODS85>K@}$-T|6P4(+-D=zu-(#*ch*EAlYZ`1dt);1Uxjx8e*K4ymKx#5nggzuWN> zk8?m_?rPFK&9N`Y!J-)VD}T2_ogVCO4mMAHjqU!%_~7NL7*f?46t%y4Tcty~%7=BI zeJ$9pZiJ|1rd6bVTHRcxFzmPcekc)cYK&W(jt~ld0^iNwZ^B9N3-ZDNO7Flgl>iGR zeZ311x3dG=(3J-E%Chc{K#O}J_faGZdl~zB64*C&mihpDD?l4{qfUmDnf-A_bI@0>K9t^ac&H*gf*MFaVj@J*pi9QZx}quK)&PELm3o12Cp4A|z}|@uj1kp!l{=L~kE@ zTB9{s{ZZ;uV0@BQ;RkI|mThBepu(09?sT zHC&aid;<%Mkz^mKt5+qn0hBTEP;#(H${6-IvKaVidBj-^d@e5F$ztT9nCFa09!*sY zPVkBt`1D64{J4fm@Sx_g*^;MO977o$aSUWG%?+$BDZtAg;EzNyep>#?`a6n#W%&$z zG#|?Z{X-w0^$dIx59x;b$@;>kPiTWptV7~x{UMKzz=kpOt==`sfed5R7vk%WCY~sU zCo-l_wGUY^T%Sl|?^xhD$qxZTctlWd2*E@#H;a5W-cG{nxeR?0h+<8lv73nmcogJ3 z0Z|RxD0l^!El6T#dJx|{n6h(lEQNxIZruXFQt@DCZaw=nq8q6|d+NL%`{be15!Wgk@8CVEK0UeGA8C7WLD{>|bNd1tm*{9^*CHF_rQp5R z^e`pw2WJD34fZbZNWX7D^;Hnv=w64;+rj^VL@_<9!I{)BVQ@BsGCiQo{R|jixe(Ye z)`9}$Z-x+If@AS}T$ky4JX&}yTtRxzsgx2=9 zfTdO+*+FP6+9)%Rri}#CXkrX5#ERh4B3iV-Wv>bAG^PVKoH#F1knPu4dca*_=}xVL zOD!pblcg|Qpr$ac3yNK4D-%j!uC@8)%mc))?l{Rcsbn!V9A|{MdDGn7_UiEkBEzo` z9t3i5fYW;pX@530{)+&7kU*adV&;G!0g}%kh*vM04R{7b*W%dKhCEmby>bb0mmrmS zO%I`53QID#aX0Tp)4deR6H>Dsmmh9JmoIqqm>3oLr)+R#( zfE&vs$Y5aBO#hzoSyIuUBT%+fof-noSb-SI2Ke0-K;Iwe(jsa!izpgaCWr?fQ3wp$ zA@wBC`IHE1)dCu_fely)5X&}bVT_s>S!l1le9*wlpgddIp@us&FtmU}E!r#ZqzVcy zO<=cxLn0Gazxl&y(*C8iG62fCCdw_O*+v`;0%S90$;66~f_XRJsWqcjX_5(Wux zX2HX0zV@geV>W{FE5h)UR2S^tf$+AIfAI4=AF8K^9#f!7RD(BqG!7t0t|d{!xLcHLwIEqnX-=e=|^^6j)grP7@0?L z=rP4`Vl`3=>Ce`9#!*867n$MLJVP-uiPR9px=6V44Bn4fv0gNDg8pK<=ZI!hM?AS2 zXNYEOqdZtIG9R966Ml^8cwS(R7nov`$TG?ytPWGe6thh64As%RK(fj-641uTevPaL zOz{kX5TLwgo^zOT^iayC9s;ic;4R)<2Qtfm;~01gN=Ja^Z*UUC_W>-i;5#=S1DSh( zmR%ZYSPyU#&F%tOW595tJO?+amg61+nPb3po;(LK$AIWucn)AO;5tT+0nOCQVUL%x z$IHk1V%gby%Nj(>L63k9-ta4SJ^(r~@Bx~e#If)Jm%IwnQRj}0B5xBz;6XHe0B>X9 z0MvW{Rqq0?d%&u_;8pK<6;?g~C2{ZpRz3h>9Sj%v^(FoYT_50r+W!O(H|X_i{1A=@ z!H2eK`jPN-&6)lPDLvrTC%hV~qj^>&B zP&l{7D_T*)jqn9m7Ws*lr?fWO9>q<*779ElH$8)SCTaj+mz3 zj)Y+;;Hp{E64b->7N!vpw{Ib(DTG-GOzO9v-+*FP)M|aiO_`LZ8$<;=s<@{`R}|>J zz*D_o{Z8txDbZE(o#%I4N1K-sRVDK0vYxJbtBaVb*hFhq=Y;C5ghl^ucuuWs*Ac;* zvF{wcGE0=d338bC9I(Z(>?pP!m##U*TG&XtNOPMgVKRI}opK0stniMDYDU5Wx;%6J zMK*F|;EXRMYfVyHIwQbm8#y6+Wp<;xEL`M7$R5`%CE`~(5uh>gA|@&1 zwWCYKa}@!JBt8TVl}Es+7QeJb1YPxlplKP3|91P}wXpwf$bYFYKY^c{`~_D^1TkCu6&S)rEO80rt$9d6vyy&aE=&Cxw zAo?{uxV%i1Op-zNuL1T*AM$A~6hsxa$jjURA32BfI4@j(pB(16 z&*R|5`56J6c%rk98Sn8lQ~XV8{}Wz6#MicQ;)L%Wp*zQ@yT_^B zE0MYtDO!;Ol&nc<6w4j)(_%=#AbwARXhPHl#qs0Ph_UyTz#^IH3e* z6cKleP@Uq`t2m${XA}{4iq#MyT5RGuI=&;D*TiyZyhNs(#7Z=B9AeGAG}CNPR&DYx zHjrY?xiuVyPn$}r&AByMw=1mMlR9mQoir(m%>Z6`p&LBeU&=HEGp2%oRBZDl8#;NW z!j02mO?22!x@;!hH$)vbLvEUBNZbG?nvhzJapz58`KFC2QKBopLfMZYZ9KtJ9(6Iw zI_BRvBhe1)KRG0aoSdJWGCNKherdx>bm305Vhe#aVhfFQ;ZHhEB`PE^@kE9>G?0Zl zNJpkjB`PKeugTSFqF|b+m?RYw1ly#<+obw>={}UWp4zSj?|1}Zc1sFCPs(gZN&mz(NxY{yyGvx2hx#5SAu+Tr@ zHW$DR&pkEIJvyhyl0U_8_liRAfqV#kdO|$ffRBTB!i)F9*IGZb_rkx?&Bx{jB>X^c zsocsq?q!0bkP~eC`+?=$$|pxNm>lOrB^>PfTmJrpZ#vGutvaKT2nyHr$mB%zoL)K! zI_L75=klIL{;?ZCHsBGr+d|?}+P}8wx&uHxGh+^;Y!vpyxe>MlZf&WmHo*5lW6#mH z3VUrOdu;^~wgawhsr0GC`P(R=c5&&OB?N7#y|TA>FrL{@xD8EDvxJAu11B?S$Z&Wp zPnssU4^O$9NpK#L;5|V;&S*G1Nl&&BGi>7SY?K@aLg|^m-)z_iY}$6s{ONQMjkW?) zO6LCAvYi9P9j6-(+e*IMN*injPHn0VZK>LAusC+w3Qe{HT-#Gz+fwdrstLBhC^py% zOxsi(+fvgu)dbRCS?MK@%-T)N+Jl+31lgecHfR#&WWLFc9g|y)E12Ob*bp7FvO2_A zWD1N$4mUEwJ^KB4d-A5lQ2v0P9Z;}W3<-4Gj*0^IL@(LXWi?l3vdF>Bp&mK{LdnB? z@rdmpv>gp(duLaz(!_i4@rdrWZdi`*p+R5L#CH+kUHK)`IaVOQr$L^G;OQNOHTR%# z!$%ch*)*la|$mqYgGC*@94i zFi7q8tq3$PC!vMFY*KR(oMyq;;0WJx{A87C^OIKvfQts)v4wZ3YYq1yd4?7|cH6fP z#Kb^+-DpiaV602X705q89c7&{+=2Z8O2AV!evVxOwDwXRxMn^g5LR|zKVTGV5YVsS zDL}!%?}7OQsIUlhwg^jFv<~18)&Ux~4w11Ml47uAfsiW@L5lIDu7xL&`qZ2m{-*|N zlY!u#sP}*|Nr4*qO$;#_0xu?!SWE(F6S`dyi~uldP(Z(+3;JE&VZrsSRF@fU>F9TZ zP`)ft-nC?mBLTZ5*H^?3^cAQWJ%RP{0r-^cj`o|uA{?q1g@tCR(->eaVu z#)tIvHr9T}vcx%KDPq}TKC#|a39av0U5W<916#SJM(IL2Ud0HfL&%{CsBUyHB?}un z4NlE9f;nUcvo!11I>yeZvpczzHe_~{xk%h(Xac#eJ0k5PYa_dn5eQaw^?TJBBLI<6 zWMHx*e2NnaHNvCtp*$%C3Rc3Xu%hfNiwobcbRuZA?!uLjqNFPm3Ms;i@T^P^b_7;| zg~0FNLiidS3jzmgxc3mReM>MZ5UvxWftr1_eHuQEpJ(s77u^f!!u!5`P@YCNm}Rcv znyL%Pyz(PFzwWccsRrW4IM@xPOK$bH-qRGai;TV2SM_;-uO1cGD+Nnys>s3jqNmlBrS19(>d5R)Bj-5xMq6HSEMORUSlw!n~ zwY2tfsj5p*a@3rk1+h_SK3kzJ(U$Q`NOF_-q+lf}lG+J(d=kBFB&9N10#mH=-GqfODOu;@s_6VwTI1en4|!7+fAKnauAoNGWeKs^8;pcwELdWyKrIZ?0; z+y*WJM*%1R+q#rpdA)UgLH@UnybiJ6rAJdLf~a!%DCKp4`osN9&ZhrUPl=nxAmUN+ zxN*I4>Tw=8np{RXaUNWy#<#~)#=W$swrgpBw+;w4)@^ax&9=X2({1}}SVF~Gh&INy znl!*PmzrUEMm;0W5xWVeg?vApBz_YA2+~fV78+m*Oy`*VjI>SYXF~HKo#Hln8PK}O zXLc`}DG<5<@tF&~49_1w7U{*9vDjup=NX-hdyve9zJ_OGYZ+|<7HC^!GjVOcw?u*I zZW$1_#z$h#)G{G!p^f4=!v4echEos57Ti4-UG9xtZ(X3fLv^2bvg-|~V?x(M8|>WK zv}zd8v&J_NfxAi`u!jnThmDoQv)Tn-7|^fAH`?0uwT%k>3~#eD%`s?WLbn*5i?FmY zAzPt|@%$AzPt|;^hg#)^GVwhdiR}<7_?<3VM#5FqbuDcVkWxz0C&YRyk4sUpPJJN? zUJr<+29xC~DE3m&f<~j}Sxe=VSKl1A1z&=AbfABOWtTW)Rz@!6dtZX`k9fwTXT`t+G$)h82|6<-L$9U_hGdBdAB!o&;8=p?Sb! zHDTUGQXnSJdmn*<_OV~;rNa*dDlq1F-j?6jv^qk*35wyqQ3$UPho~HyC5DMqjOPK@lS-@Y8kt2yMZsrUe(r=fLhQM+_?z0mw7|fz$43Bi zRWdN$d2D;;eXJvV_=Ir7LZURHeJD7?Ed*&0KAf2nk{?J*^n2jsiP9D76Ss@j22_~! zHh_14P#7G2qbp-=r+=tCgg;6#NPduwyA_8C=hgxbo#=_EjOEKBVF?@~X`Xpxjc&c4 zG~qcAkYxMFjX8O6=@HvsbG5bx9FZ7d=URyNoYE?E4rqBlGON7uMC5>kL6Q%Q5Rg)US0cN_ z00w|Dfo6hG5y&3oTiQ*7ECV<>$Rw}j>j7%zEbZ0;^&6ND*y=dITlypc07r`$4jeo^ zfZ^D=AIU_wU^!v`00{mBJ3-JO4UR4hkTGx)BY~ky^+^BAN9>0d2lQ|>2_g=R9yKMCJ6Wgum?m32s%HJ{#L!Z^S|I{lfN5&KYO3&)7&4mo(lO}Bk-h; z+>!dwKycy^tn=(RaR}plm-5U!SWmFw-6Qz%WXSxr@%Q2{gAWpXvx%1>yK4Xa|K+cb zuO7Ub^XxI!Ag|wVA74!R6UXnfJg4~NU+FKmmYq4zJLf5j61oAJBO%_F0M`TvYQQx-bFU*=D5`DONCoDf!TPs3=EkoauV z3J+;>7n0e$D`H5Ht&8--3|=oOBrA!|KbD}Y5PE7=wsBYtS*#tD7Cm73zkTc-3ne1Z zmf&VeMIh0qGynlER%wE$d;W(jq3!|@ouSm?c861&U^&rkla*t zuYre6ItlU(upa)i@i)W}K|d#N6+UtJk7@g{vq3ElnpAFGz2`FiFeWDi3{dHEHCj`7 zf;FMm!sIAiP)<)^Y*l?!sobXfcgPB#WAERAAm=Z0_5f$M+t>qXbx@SP-xkij4Kuex zlINwi+xs#K1_R^T|3RHQ+B5D{6@e%1)9M{`jMDR@AW#UH2V-YX;U5ZhxwA%%A=-Co z73si-FsluXfp_R0H1gJo(h3WOSfGbSt$bR<=rq%hPOksA|I$Ni?fY(BzpZ>)PvLpZ zhCVDJ0sw;w95pyp?jGAz2 z3b#94V6$zJkSWo2`~~tz#$a8X)wBM|pgB z1;5v`U`FA$RI;tf?8#$|pYC?Ki-&FbV?d1dWbDCmTIQDLfmPkNyI_`u)vSK8lo{3B z+?RPfk!*XiNo9S{mp2Fd9o5ga7J?T7QwMb>OBpQu3^_8^>bOK0a|sZ4aR+svZn2XZ zmH;5nZZHA*zOrBgkRt`}fCD;NuYIx11DZj+JCVmxo)bCLXMlB#Gqb=uBrXAR!HZLx zpC}ZenL&6IiGBAF*A#N}?)8F_klnzJI9x6U$xsalNqKy{)Ejbg0G&v(OZx(pKtR90A_6ae!#^#s^nfo~V+yQI}JYvg6cM&&U~ln z0AwkI0iL6v0Aoo|3i9iG%^BCs%dh#)B-i=?gS8j<6rB!4sd|$4_7lBg-v4zl$nen5 z|J*;Ntf%&7fgZjDJp6kSZ^n-#%_lxQSRDCtbWd2sURRKn>rpA{OrDQV6U(Ick*0br z)E$iCt8$W zskKe%IZ~>#SK5lIFDlbQ4QpgVllnvX1*8g)N=m5|B%_krLm43CQIq0B>9b63OxXqJ zHz^r~sE7%n(aw)Uu-Ei_zscyv|KsS%e*ox%e_nMWf=1fSujyE|`M2u?0cM!5IbZfRO}^hLjL*1QH8Q z1&AW%A}AuvLr`KkX;5I-AfTrf`XGz#ctQAB%t5+aMFhjKc!Q&BvI%j#0~~vv^rqwd z_n-vFPjCBNc*H0$eWQ(NWxvVmLNflHtuZ(MZD@mjd)A2C^D|lrm+{?iK-+@a-mSV@ zRS9juy&Fbb?Q{?cw|ZR4g9co@L66+%f?ixHK^HERK`$=`AeDF8oWxed&Tx9PNxv%W z)f}0&jhw|SSsa!Pc!Phpv1W1$>_{B_VO%I!CR+eA7Tl_T335-)Q7{_Hi zjK|TKI%DIXpkfl{6`02+9gJpa2&O){7DEutpaZ4+RU*h@aY*wq_2iXIMM)f{C#OfL zzawNunET}r%x#$kh9XRbS&88y(8o0)R$`t=F)_|dmN9CQ<`|YFcZ_z)9!5O*bH+0a zh?5koiHV6Xrb^%7k_=|hMwXp9F=_pET6E{dr%qzD>CB5xla*=Ga~7Z0t4^HQ0@#D7 zTw)Hb493Q}%t6(nF$Y)GId;(Lu?JBu#2rPMh&eR`Nqy9M7=x%uVh)jbF|v^$V^S{$ zH-x#1{FlejOq!z{T-{gDOpC1PX#k@Xw17h!X#m3cgychoLsd*~-WPR7Zq!$>OaLL(VSzn`R+=UzBMk%lj+NLh}!q;=2I-hMd> zgulV(;2C}~XQ)6*UMJ_RF?dcQT6PEe7?(s0u`Z9dJwj{n`6r)dCDApCbog%!P8bQy zP8|11>Ml^=`ilXTiX#te6h;$k6h}W&c}2)m&nU3cu|!~gu|#uEUQu9@3URPCF+^df z6zQSlVu->~DUZ{4D6kqze2}y;L}9rUq+u)N7C(N_%jlVrOus&E-=?)MDZ|tv|39_g za#|=0$J!(+aS92_eAEXDaT>&mMzsfZGet)wY6_9JJm~jaP{&LL6s4LO(@?{T|@!dr7Zp^%%5xs2E ze&)VS#SO{7JHbzmo5eD%Tna;7%D=G>~@q=Vd|3S02@#Au|a-XdZVxK=YmB$jP^OVlnj96vp%b5tf zuEw@^XnS)rf1~IRI4^PPD;A7z{BX_oU4?JGK0KA8RLQ2X>gfbGq*2{ZWo0XPU87-jy8E29dWy!dM^d2S=9B950 zVk4V?kwxQI;mMm4BG5xec@tAL@6jRJxG1Tp3TmV(AZes$2kBqm4lb*Tt}`p>wL{c$ zrlPz6CSq%DVBN*VxUGXLHL%KgxW@joTQ~$i1qY*G+G;K}%cd|1HuHw1aZF0ef=Dj9 z@(|PC6tOQI9A(UFP(5DKrvxHvn5n?=q=}E;t!xYYd@HApMVv5R%N;Qd5H?r^eSW#q zJNQ^5@8Mwn@oqXpIO#mcN%lHn$4-<~gx1Lki36H4ogUuv1$bK_^oCXKu>|UExhX;| z=4EPh<;dP|lcOVPk%ONipl^(giOU?v3Jj>yfGRYcWk!+6sM0ekH0?@_KC+`p_=wXw zbVX!raWLbZ>KjG`&*q;|2)cs9?szidA?y7f{ZShG!{GYdI; z7yG1JFs5{Lc;OJ`^brw^gu&Y4EL!>bAO0hvKbdsYJhtCZ^7P1d__TN;GCmG!jzjbr ze~|K4@Q*Xv9%|~$3WF~ $)*$PqXnI`Dx6H^>%8=WhJm03?IcDv zNPOf~3XW5Ijj?EJ-trU`06SO4#!*+b#`dE1&b&&HdDaeds16gIzXp8zme zpO{niOH<}2xF?Q&CTvxYL&r8+B+%!0G&wm94sBCIkgKoF+TjkSML|^m%K%rTXCuD_S`mKU zxOr*Fs$Vn$1!%u!TmiXJ)}*R`xQ*+8C#FSSb7-Mh`3M9$UNda+G$cW4&aRfiz7gVh*k2X3anF5?5X_^ehT}RD;HQ1TkBK3kt2#mpRGr8y|9f&T(}I80T#;CQ%DJf zb1r2!E!+}A2hx?AkgCr=ae;Qt>PN}4mw1`7GKskhXXYr| zK^n_mhm?!2H7)CRUOM)H%|bm5^}Ntppv_j*272*oSF3Kn8W8AYGmTbVHS0>2X`xqo zvDTWe^%|{Zeyg;kQCwAZC?3>(K%E`616KCA($-r@`d3xXw)B6kZ4Z=W6`)lQLz)fK zRc+f@9k91A+Av?VsjftlzK04e*6l~#M6ytl?Ij6MJU)g=@Ssn@ zQ?^P4_6ceD?t$`#O_gjHg$h$8CmJgL4&ha;@tWDk+bdDFo!u^|tFm+cMB z{EB2eUtr=vc%G0-Mb5Av zoe~a6BRjd@E!uzOHSA4_-MP)z@=5t)oR>&7grZ*_=?GjRxfG5jKuKEYZ=yFFMjs9+ z!&r0L`3vNIT1etS?pCbJRLy|Sy9hUM)p2FH>7f%MPSG1i7bmrHa!e|D3E;L2bPaw+ zKrEFP$68JWs;0p7pX3^zd8lo?+>`D?28o@NWaKgqNRuEEKo?i{t+9q~eLXlkP!sdz z1V`JF2P?%ON_4b!Tgglme=t0w?RWIa7LEY1Sy6CVx1;hw*nQ&Ut?$KCw>{5xm|f>PN2xIVT)hImW#1)L}JMNbT?n~ba~D* zAC55R%xTn+Mss!1;;=gNyfOby#=FT);_IdgKT5X}5fxHj^l9j1ZIe^vX&u@36m7ok z@i+Je|HfTk9Xd!#N0ir*2Gt%KEo4Bk+Rb0Y%$M-n>YOA0)Y#xbxXQ|qh}@t_(M1vHk~Fr0K9&M#1M(dIG->`!6+WS_ALLh^%0w9&q+N7xATz$2^IhaknCXVD=jiq1 z?%UQy2plM?*>py1)}uW3OQ>>m{gGE(~m!$JZ#j$~7ndLIPjxy$3=Ni3=fC8!m(- z(7dSiog|N0iwEd(SRZh>4eETwJSo$pSuAm73b9!j6WV6p1zYxZv^q`W5v zR4sl;DYnO-OZ2|v43-4nk*5+W>j^R4!ysPzcZhfVl#$fq%*s9gC#^Opr*N zD3QdG^pk*vOoz;YU`CXL6prBuQVtOv$qF(6GA~47L=vQQhz3Zg$T-OF5mF;tBfcCA z9|$_UJ*GJ#KJa@?bx3!>eQneS4zCYu4h)VLjF64I4XYSU80j0n8@w=>GAS4Y4SgE8 zHuO<2UJz1MlC*%8)MCB=6Dp;?f{wm=KuET*pdh_QM_GYe)-9}2gj?KOL|(9ffRz}4 z>`w4%;KA5n*kXWvkniB%F#7?5!RsNML5d;c1J(j0!t8~i3y%mHgfav}2mpmggmneN z2nq#N1V#jx2w;R3f)|5R1q1_sf&znV1TllHf^`Cm2MYyW1UCmb4nhqa5r7ng5)=@O z6f^V*owMB#AP^`ORe+*}42Dvy2F~!F-9cpN&?x{g?+>o*3zQC63iurcNJNH=f4^!1 zhyh*Xm=*za06qgW4loF49C!pU2(Std59V|LQ=_*?_Ita^=>yag(qpd+Ar3+B4^7>H zZ*x7#_OSSTtl9rH<>&Pp6Y@h2hNG_887m`C<9c1(vb!X6<;3EJghFS`> z*y+U27m{-$pU`0a;bp-530<$CXq%iHAQvD!h}m>xo$$1d-cog*L>`I)Bv;-Vc(~UT zU<2WS#FrNysw#f|1d?LFe?+h^mn;v9sHcp8d&|{PU{sSAhY&-_&>wgaB)5UYA40VW zRiHTHBUJ==p;iS@k|@M0EA#h2jyljEYmg4YK?W6|GMTY@Uc*2-%lftP!g?rY78Ldj zsr36cQ<;kh3K(lq=3^`!I4}uC4?P%RDILTP7S2Xqil_|ly9U7+3!A_cZmbD-Od~ZQ z9S^YTl|q4)JSV8G%2K>JT5^UY!Ou+I)q-kjghF$LbyX;bM&|0)P!bZu4diruC+i^~ zeZ>W?F5R1e08myz(BI9yrg#84GMWO0%n)+vK=I;vi;Lha4?}VwJ4-5);POx#XmR1d zh^GUiN8p3FYSgXxGz%So8bD`D>~m1` zsb>{;(_tD!uto{d04BI21vx>&E%;htk>n)I!uS|(C$%*fS_S<`sRw~cEew8~Qg6y2 zhqIbM9BP(s6J<>$r`S&FNpE?3Wr1!8eEO+*3jXc3%(njPDwVOHA< zYrK1db+;$sYa1G(+a^3$EfHR36Km31I;&Q?TH;8*_4-taP3f0ufNW^$&-c zelN9jExi6M2NbsK7UArgD;J`8?x_C#@VE;F#ml7!naHvW?#>+dnq9oaCX$L(qw4%# z1%rZ|Pw7PLLMP`cz31kWt-(o>fk?i^!XRnbKAWmNU|Wgu=5K{@Dw!Wb613G&`Afok zXgjBoh({Bp=DmRmq-iX!vsI1U2HDV@Lr^B3yCr;^>6@uLOwpi#MMx%R=x*W;I%k4B zvy*f?e?$v?&VZmGaxQe#%D7eAZ*A>_4enTQEnu&RIjgu)L#<=oN|;@wir@nBepJk& zo$wR<2Y|oK;B*W8#{$$N_jnTmJafR#{o;Lt=jRAEAHLm7VU6p<9fH%V%>_T>qgoOV!|ll_z?WAaf#W+z!FOup$L^Hv691TEH+ zvd_7|#+U4ZCCI@CAK>c6124~dZ2}kz@INGM$J!%!$lEQj)PthXa8zz5*l+D~d2AFZ zEWcI;8P5s8w}=hNDL;1)AGrQseGKOKj=>tDk?{>!6ZY36U~$-DZZBBRRaPo&)=-x2 z=#zpTCRFTGP>;pn$(XAH?~UN0kvgs1h>saa5^sX12*BEzOEwI%6S!fFRD?*-3 zdmH9Xd<5DJF9F0~E-gtqCk?xU5ygh3YxuDw4j+F)rZ;SfaaQSYQd)`QU#eQ0kp|Hg z{IeXmj_L=bd+W5BVUnaXEW}F{lDCTY?2YF8tl^}kz`;#PQq9=N>^A{YP=XBn;I{5K zv2vy7i_y8jFq%Ft;Hs3h3}v&Q?djqmJ_~Ls-n^4dw7}rHhP_Q?fV()4p&HbxQVW_4 zyLb5*n$nyr(4z}#f=1Ei6Yv!&dk=>4vCFW=@sg8I{zDJj5DTy-#_XiXB-C=EJvvBM zI)3haMkJ|pkpa4=sTx?Dw0H*$-d%K&mo@sa!D$dubZB~>lejPwj27HCuHdhPMbS>w z(E(fkPZlf1GqB&b03&vB8!q<8cy-?hN)< zaAm4)#X@>c5pBnwIS$--7!Ym8jPbi0aJmp}$C!Zz+;|WR?Z=jybEX(DQ3$Y6F`AJH zFi~BuhtbP$RUIc02UKEbtZ=~G#{*QxCJ7aB4E|ZkV7JM`950g;950xFO&Bpd)*LT9 zu^cZvB-B)I1 zm0O1PGi)0HeuhY15e$&^e>4~L-uS&e)X7w@kK5ZMCx9?r-hCd!kjC~Ik8U{hDT89z z#VnphU`y}f_cJs;siTVdGA$zgjNP_CkE;DDTeYBNfEisT$;6Az?~6EWh)npf{ptz# z79`2!n7$D(UTHW-lFlnMv%lOdiVm}>9!tztXkPf;kzDbI$ns3WbA84;bAl%}bAPy_ z$red=CpTbXbK1*rmnQ5)kPcK2#*z# z(#Z-kmkZP6m|u5<{wd6~@j(a~cz<8jC*l}9Ric_$K(Xy9R*NNyD};p!D82FdZ}-5J zDV3q9sonaJ<39Go10MzAIBq|im`q+gfEi3S0gzz3dtmHIboXDdvNRE)GV)CrFY#sP z?>6dDCo;ku3z&)rptpKLBw%48zeO~KixvX_Kwp{kK$!g|y%O%Of@%F(e;f0@hjlL&nC|9L`DJ(@wiiJXA zIYZ#87sgm9&dXx_T>z0ww?Q_oMmw3_iOm)c{&^}}OefiftjExu0}T7-P^hcR7^+i; zL3naj3=*kqN^RqC?9ahND}0&9Ld)SaxsI7Z6YWMbJ#>f%~2E$ke3zRr1O3KaHsWM z^b-K^_~G)0?}uExf|157@{)xNoKdq`(0ID9FH6ILhHPSkQ&@=&;AX+jpZka5Dmlng zg|=)$#iFar7s(zoj|Yt7om&K0JgZTKyafVt4RD2%n?d7!uv$Zamwv#i32c<-$2=XwTOo^Bc11tV|gWbjNC}pPNX9=QZGC6srX{m zreqa`h|Z>BA2xOs$r@qvT5(*Jh(2zNyA+Ls=83U&Y0j_|KlAZKjNvlYplB$O1S0yB z#9`-_!Cz#uQ6m77@u%f3SGG+L->{$$6jN2 zO9e4?&Fx#gd90UYoCXHtnn%J@(fx@z0xOcVi>a_2;l%nlgHVV*Xrk+$irg}g`Jy19 zyx{abws>c~8^AJBr?Mo8Y}7RuD6shZVH2r$NQ&DOR;h2Vs5JRcaidrPgMxcpO}n$O zvEkpsHioB)?>sB$aP2$T(Xmqz-+yLxnfi4N6_m8i37CWCu!F#l(!KO}LTr|mLuf}@ zqpW%|H;-9j)mg<%8*~H8l!QCPJ+tHLW(RTxv`^Ld%BkVYYcS7 z2`9;tmtzfkwnRl6IXXe_>+eQlig9AdV*H(N79!Tfd| zOeCQI8QGbauCT46F-?^f3MGbT14U|Yrno`UVW2-3W&;FIV~gp8F?gb11@}ztu<&^l z$i$dP!T@;3Q%q(_BN>q+A%7HnJWdTtP3BMnUPhS4d5SYIcr9|kMxWwe`fau^E^a71 zg}jb7jkJt6h>j>r)MRm_c+vL^enLYFyV69+)wdrf05Ik@5gbxk4x6^0hZxS#iS%4e zNafLh6&FEK128dI1T;uX9JQJ>C=-g3?f}S~W8O4FL@T7pO}s0rG`=dG^f;rG#BNA>4QpQ##VjXi9O_UQf4TQaki-Lw9&d^e%Sf(73uF;~J^eIk*= z3mxko;yd<7@+P0f2bU5$Xl)GYe=-!$%$bnldC9sqY=XRLk}Ns%-GEtV>96=^F$DWS z1`oWF0)U8!h{92cTm*@)Uud<2h8Tqx%>Y|_(L*f!$qP6a z`V>ZMA*4nFF9vp#J1@!Sj)~%T6|6^j;)4qFm_HNSJ0`MX&8Qw?M9z|&nq+@vYtVp~ zq>fO(VWs!^qv6P1V$H%BAAI3+MU-wKwV4+{n%|=W50h`3fYY=QM|0M^+yrb{7P+z% z_V5j6p#n4ziNfzS89Ci#g9c&&We3Sx$HaLB8TTva{KyIZXzUR3R(>wU)Eh7ofVY9< zo`22T0Vm4O|1%V`%u#3wJvvAGX}A_h^XAbcxwwu#Z5T@yzC-~0XCB8MkpL;_(mvZG zM-VRdfHY?X#2?HW@g8QGnypM$uJlJ5bBZ+@HW~m!>lGY{ok_LdBA#FJTmR^48K#_2 zFu;ux8swoFs`3KFfY8S)M$Oq{#m}>o|!km6Vl*)winpswDywSr# z!PNQ0`=g9Z&4G!DkA6f}HM2HDJd&f1>K1{l6O3F#Bm)xbudW;lOnJ#4?I2%GpcxN8 z10{NNdVq2uVF4ol$blT3okYNep55z&N^JZdq0l-L^@H_P_8NjbV1!th}t}+egm$1$4t0Bjl!dO?I z&OpOI=r9L}P(RzC&gsN3P$gg~Wo+*kv8mpPE2qD0tDMVM{Pfx=AsHhznkxfL?UBr9 z>NaVMh*szog`G|)F$|ryS{w=JXqp-_Zx;RIAVfArBRk9Fs5{7s3Gvt}Iac*}@mzcX z1S9m$M-eIyV5Z<91Sp@1wd@>O*C4>+XH+*ruW7t4gKdP&Sx&`;EN1Arf1HO0zw=4A zgEHlae2f1EL9RGZbAvLIPtW`Z#n1P`Xtl!hOy;@C47Z~pXk3x}$%dI`e=;5n5(xnNA1}Fy!&1bebj~#F%!z%2K!^Jc3^xzGt9fqNRwVvrzgcbcL*=>%#U z_HY@SPGDBeLx>}-u#uYL7U>;2?(8Yj$EaukA@}?N2aWbw1jt+nB@Ib8^cTz~5_;g! z4Gyg#Ugjs%Nd-)Ra75rQo|&E{nuRbQcAP8$2e2R-O@bK6qB+>95;4w@O>d zz6G*qA;~7hori0R6SYznPRgmYsB4JVqmKHnPO=VA&&O^-|4vb9hQ^2+4PPISXpNU?6BAnbnE-50;$*w(jaT0SYCNBJWwR41uB2$`j4WYS|7 zdgPeJ%^UirlDm>h9aDPg@-XAMCyCWG6xfnh>Kj?uUhaciXTDc^nm!Ky_@7xN%5A(VYOxSP;qQMbKaAq2`IGNezguo_Z*g0T-pX251BHyufNB8(&l5lv1HOpm z5=JWCNCpG2K?_GsG6aZ2X5|vTg7gl$+gG(XQYEjTb<)|l#;{y`#?r;OWW!lYhPBt+ zwxk?G_AR;zwMGgmLMUHMvsrnU$qK9m z5DBB=z$En4&~qNH4FcUx#h4Mp0Q)NurDJ7{EQVMi2>@E1K=LG(IWTsZKq)OCaSEN( z+gaS+CN6%LcT_&pY?KdYK&fO%k+}Ld14X zw(a@K*_x)hrSRcE>up5U%!v0<>b_>rT>?k?rRu9Swhn3+!-WH-wJ@J>rD^*6sz^R5 z@Jhpd$?e&w$%a#)8??*eN2a@OIWgbDk4<*YntjFNQV9fW4Q`Sg`FjGlEb96XHjqmy zu+ip-O(jrozIaG`P;3&K@m96@GAdu-D;5rMNi>F8yx?2V`91$BiaKwN~-54#6+mS@IvyL-4fkE-jn#2< zG&DX$BaSGC>PJyaG<7QnH+w|lcqlYlRw0mhl4GMP2t*JknPwV3!FI`I^1_bpokx!k zt4>LvMv+Ut+@dAuIDkbr$>Xc(BuPI8<&C3t(h= zs-jlUGQj}xA)-K{?@Gjy&Y?Ewn}lbFBzdm#vxhm*635SR*^6#evO4gwta&8xx5#-J zc{0SR?G<%ydv*m7d3+7S!?(9;6Aw!ugduYd%h{9a4;P~fhDKK*s3C4?(=sy|f)k`O zyk^U|!|^Yz?6owsyM#V0=I7MptyfavyC}$;uw#g~OIGc9K`r%Lvr7qFTc1mk^L7V& z+m1^_h!-u|6aFO)kMcx>LxT$5+<81l&x$|;1>_%pL5)xlqXX6#{Eua5TN&kSFKr9U zq`HLxAU%{j0s@S8P@RZSF|v6tA%NO~yyo|Sc>D_^Ia^#Hc}~CDhtSSK`K=~15$J@m zQOyw$4=qmFhA5-w#uAZx_?yEzk$S%$QUx+M%CVlBZJM>L0Gy-)`r9oQ%6J9qVYFL) zU?0$<=(dN@aDp{#K#8;*DoPy7A!A5(DOAuJ61xdkW)0)H3HeMK??P@`HY20U3#}U* z1=hO`8qQgDsPj9Fy40ESP4nWAg3%15xU|xp{0m&fzyhd!TxU*$+LQBC{CYLc8mX?&05@vP=wygP;18Oq1W(|46ad7Mh#8ER9 z`B?{o_Xnj9;&|R7x&1q>S6>$QC(1KJLYp)zZdrdh`{4AjO?p0W%=lBdA?>?fDS$pE z{I+CSrCZ^gT@Zw#7Ckth1Sp;t0up>I?yHQLTsd#%rBm_1QSWR(n9!-BZ!At1z~i9Q z?xrEfFXs|)#?ix&*CNd!)^RTivH?`4ZzMV^L^qB^s5&oB#2eUj6C2$qK$nQh6v>15 zkHJnEzsVOZR)OW*K6{nUVCFuRCRfy%UtIltaZZANu?C}}4IIE7N~R#x>|F)y=p{c8 zZ|q^bG3*FZ&8#qLTsw%E-RhQ$dN_pean7>k+<0EzoRa{D>71q=i}o9Cj2MGPoI%Lt z=Hw+G5O3MYNL3JONj{T}4nkGfgLv$MdoPBtSeL=w*JC5PDvwLJ(tz=Bn-TSjJlu=c z`mKR<@bY1?pgp*Jjg>;W*0Gh(Pcae<(At3brUN(@#C0K@4hFL(N+e#}B{ zOhSFHhM%A5UAv^$*EK7BZMmW7r9lC2N9z2yf2zwM<6@YTD-;)DK+3||BR1i%m!7l1 z^&9Xu`Q)Zq9SHF-W;D6Zn{Am!GfB9~+ymj#%z{I}I$j?E{L%DVTN3m)2knoHLQE%v zT@MD0I(=5cy=<6w_fo*6ki_1$73*&M5S~lHsulr1hl5Yy?cf56;oQ+L}Dq6i)93JVQ%=_IsvfF1`JL_>SAwe`@DCUocfoWcv;FcttWk@A`6iAE<&@sOf z#{-jU!pe(yHJ&4`!Q&U2QY{)e48kcDlK?6!`di*`u4x7IEpXwdC^(CwLea7$+#=!A zwAIa_mZ|LRvvF@~KM4jK`dDK$5j_2YQ}6H_6@vi3F%@ovq;Wtia$5O_0m`h8fDye3 z%k|AFE|6g~bmgJ)`6&BV7r=;0@xvZ?G(fTPb`i6^pikhiB@uWxx}+x5@M)TtaG`4Y z`6*bkz8anlBNE%Pq|SX($r`Cy*?bhd8z>PSD-*%KGF`>$DG9i|8&D!LR4)dhv3n4U zArQi1csKMwIIK;Eqm+cAEryeW+vh_$d5vh38C^acYTgo|Wn=E*wBrz7l|AMgwKI!4 zNC$jTTLdz+hOqjO%v}x^b%`D%uwbhF}!6{L{@d&n@Kx3vN*d1}y`ixYwMl*)bOr-_0l;c~0>EhNxvedtYh z0fJ_VTa1P(1&3)&CXQOxk3nFR^#yhfS1lEhUQ^|_br0a&+XE}sty5`T$kKscMOI@H zJ&Y+*cZ*RAV(YTQ-ZnY`?hq7X*&MobWOEjN4aI|gB@ocoaV-l{pezt84eB|>ru9P# zPlYkeHIQ5&W^-AjEK4O=vC8thp&BWj8T#W3oN1<_+1$1G2*6GdHEhmi2Lce|Q5pch z{b@N~)!*7KehsG3bezfhtfqa$(hB@(mwRl0)zX&|Rz@XnBlw;qvltW)Z-qt&;b)1D z9O+IP0zx)I`Wr)IaeH826^uyjKdRv@DgiEb8+${E;g*LJ;34`|q|MiyOQ;6VjSDV` zVqkBFp2nG%gG-rs{eH!{xfSr;1>mOZ z`Jt$E5!GN`?2nLcTF${@8c+4wE;jEtBJu7a%s#5oH>T`MO($DnT#zWUY=}v{09tWS zE+A%ra0>rZa3!cI!MHpBDai#{pSIe&ybz*?z+FFpghaA^EikD1s0~{!Wz`hfEGKEo zg*wf-BZ>XNntYQqC?JV6!14lu4%Ri$NT;2p-AGHdz|>qQApqZ8W9vN}Li%_TAPU)p zOgvmO?J7iigr*ZG zn*>cBCeB4IMDVry!H|5ki=U_EBWY9<^0TNHw0xOF0Ax*~m|`dyV@2q?sSFsB*Ch&K z8}rb@M_hzt3h1m@)Xtc`FKN-c%3de|TB+o*-*17W;t_|dmcrwKq9sq1Fn8t9Jtrz; zgh0>D3>@Q_8j|`LImbRyU5H)O7tq1ZIh9Z;lyEe*26yZ*t=lG2>Z)}H_83;}ztkVt zVOzF4C@*1!ZrGZj-p+d6u_I?#N&|Rrr4P z;5iNbJjUe#EDs<+jvXs+MYumz>n9TeMrFcIq6 zA$;coAQNNlFnJ(lB3U*>VIf@hx;upDLZ0*F{+F-GF!@nzK#_v*5U2?xvl3o9BX6&r z{0`^(&qyCG{Bl17wC94GfB-TTa}94>E-Aq=(4)10hR997;@yRU3GgB|;h>B#_}}^n^om1=-^lW-n;4x*HbNqloSNWHX2e+DLGgT9EkVL z4uA;$S_K#Z+T0t22pL9%!D%jcs4Czjh50guXGxUe>Sb_&k_sm*Xnz?(SjfJPJ=CVS z21j%!2zg99m&?G2AqCmTrW*QG+nq;0u7_77T#cI42eeSOZhPLR75`V(WbV zXH0{s!N9=>z!AO&E5E~Qy^Fy?#ODpIVwv25iY((fP#b`BWJ3}9WP2AR=^A|@D}IXl`S8HXh%9QY(o z%5g=OPCQd`yvkbu3ScOhVjf*H?wHuapU@yvW&=Rv!>PwXKn8G18}a9CdBtJYx+~L9 z=)rUi&5%fuE7ib3tT-E z$kGXhkO?EqS6k~?w~k5>*j$jgAvC7JomuFD6)L+q6t&J75=9)W#oBNww|b zJrIP7C;t@CM^*^=-W(VUC3WJUNV>@UDe9AR7XBHW-_9nC46~S&Gq4E2LWRyT6W01K zuMjYiNg*tUg9A~d#k}}MSY1C8#+L)*0nJ7=kh_m37Q{z(v|EueSnPFQ=lCzN^ zV9_b}%0eV1Wsgjg?2p;-kqW`DgW)EM!MCbC#i<`JqB1Py{P?AuuxJGEPw`;eej1fB z!KXBO^*DG^GFUg^0tW}Y1RxFZBq62ZF%oQ`W6ig1c~dIKRd_KN01If<1^Dg5cXp5w z znS!tIu8tKUn=S+ihV*Di6M4DNP8ls${Nqxt7hL6LVe_sL$|X?@>vad3lzDsmIfKnt zh@g>5as#>G!nIc=E;q6mgS~x_jSMwsCquy|>cOJ_Vu+m!27uRfe4$fu|J4W#V?>$2 zVz=-w{T?seMI6H#SKNr07|w8Tq&uR-hY~%tdWBLLgNP!4|4sN{uE2@*a%2wflLV+4 z698%`FDJ)D$zG0;Dv$<^3^NEu6==zu7AZjjvJ`f`X4X^Te;AvTM*)=y>9j{u7Fq{q z(W{PYzPyhN2U5OyHXlJJD8+erc?0o-RQ^GTgM~`+)0^jC5C((#9q6S`1l9_Mk41Tw zED?@g7J++9&O?&Xt0Lw0lmu4z(>dW^F6N+@X*mwvHVk@9aaX`-O2(fd!}2Sad{}FPA07XE$zYyi&7u4iP zV39C^z4+T@$Q1&?a>B9eAl?NTU^W)pAxF30ep1<0T3;38D~L)JxQtt@2CGY8)O;_{L zrG9>Z@#UH8IUxrRgYGA*TMEAwOkRWf9=J!AFlCV3^WdY+fCtHdQ3|Z&=B+co6!H93 z&AnlQMD1tq61xKAnMlA1$Tel6=^#Ar0I$&p)>%Mq8O7j3Q&b~1Yz#`6U!u?zrpQFI zpQC4j)GkuW^Qu$i2MrmD7r=f{_KL#gY4IXvJ#GOfJWS+(wc#TNz!bWc5O~lLF1+H{ zx+^(QX7LWrND5-ThGXa`+=32EV?J5n8!E79y;`d^Fvb{xC>#-+FJ&NNw%Cq@tvsbyC6z-#$A>2)#p;h%9O9^#M~*JWq%1FZ zn^t1raFvcfWKBsKz(U}d7+up^>8xwv%BxD02Jc=A9Bd-WzzKtv;|O#)icXu8=gwr; zeK>VHU9JKAW1mdeEpsRn1uE4CRfZd z@;||#F}z71#BmzZ8?um~ixxnW_`HF$MY20Of|y}v6If$A=LQ-54sEegXkik+Po@_# z-<0zS=2bvSrBDzS(2Z$^zLB|9c?Et35JFanW-kjN}vNS{_V zOF{U2offqXh4RiJTVe6I6@?kz!iG#IZUh*nn`7t}Y{mqsq@r1FH&(7`*fw*_1`(I6 zY9B~RBV1%S58N!>&mIQ#Y5zy~-emH{kh^mBNWt$U6Q~Srj6C^Gcvu)1KokV$hCXsF zNziy@Ly#0)13*lNk?5MStI=`^p+!q!bC>nYx2_$%V8@Hy85OpKP&5(xV5k~zQ=p$u z7uUdwIqjivqj{wK{$;^NO-qcCa)IzVbm5Cf4-_}aIoG6}grtTYP(KI<^jlO7?BmXk zdmK&@miw$xw^SajN(R59(nqxDN`9bewCQ`eHA`Vv5%z}^4P7B}<2lsMKTK;n^{Wm- zW^oL8MWxPllxg)seLSEa-gt^?!k}*uNV|}VTO!c5vn0KWfK#WsHiXxcNzq)K-|Yg1mAh1O;n}wjOe%9D>%@@2v{+c@#+l1 zDZwYy?d5^&B#Ea186@3QgM=0p9C|@fDBc2SDXPTr^k-_}$RX;>{yh;i*Gt6D1)F3* z%ig6ZkdBZ8@Jf=_QL)U;bzq^<4fxkE1N zhr%FQbD=h*!(dLAxT2?QM@%#U@>3=nYPT>$0+Z3vNWn1PegTBhNHipLy*nya&te_u zCV>IGCWnCnuB{I+aC#I)Mh!37iJ}Y2sGvBpCWTbcOr5INVenkDrRkkgwjZQ$vP#66 z)hlC7lbm9$A2$kHq)i2_6m=!g1|pt~w6G%&VUaX9AS9yz9%C^X3S9>pyk#D5j@e_b zs4clDVGGbKAf3FM87>n+F@vW!SX{6!oZVsM2qxglf@>K4dLfN;z)eDn<$|!l2HPHH z^l*W`g|vhm%eh4Z+6UBQK=w6=#AJb>;~?18O^qNJI%mP8Zm>?oY@jEK8iv7%b210$ zn&ttC#{{S`7+^^X)1~*5rS0>`B<32BZ+X|s_eb?D0&;_)Cb~hOVbGS!L8lTO!sOl7 zXzIlQx-n97gf{G)GpnZ=8U6z#Mv!a#;7G!dYlw$&T;~hlnxky*z+|Nn4KyRrPZ`4q zi2&YngOsrV(+R@&>uMIj^vD@BEGL#=*RBBQiFNppx0LL)o2}mwh=KZphP!0XJ(p@r}4wEILgJObq2nD#$z%_*tKlvxdxF9 z+BW%C&rV~HRL0pEOvkpZod+&MVIfihtg1baavLvyT7|Qzu}i7}quir%lRz}ak5xOH z6orrt&o((q5Dh1q2{%v;2bvU{NCw^S>ex@yZ$0h`OBUIK?r;jFb+dDw9d+4B;M+d9 z=VyvUSAoJ#N>LdX6l{}x~FGUohZY7mKqE0NWALn-E9$K!T)70Eu;lF|Z3MHP~wp|3eb5&lwa z`lzd^)uzjjoJ4KYhuS=^S}@E)$grTofReI+lWI+~96SgQfq(aMR>DoKfNP1O`)kS$N2mtu*ET#bs9O`*%*3!M zIGPlN5DmM;7)f*kevKEuexYppGeHpz=s_YfxLy$uek>D)@i|4}RuyGl!66C6L|($p zbzY6!&So|Bl*(`Vf06as&V+G9_9r`BAwXy@qv)GpdjWV zDc$(f>_LoYz~&FL@#RcAc-BCYb$-%KxDud!)sLzfPsRYGnPJl<3yb^6J6);lXwPxs zv`v$7*pXHIwW3jmFe|^TEeQ?ZU6u;~ftec!-QarK6kAi5f96SeF3vw9Y~VQ>z*DVs zHxA4!6pB|FcORqTQ9r@=KUoPLhk>SorWHADX#IK zql@Oo?%l*|dR?|P5jkDrx^>W+CU;eWzEN9U(h0i3jyhod&(>dt7CtD2FP7%Gy3K$R zNFY>e?U*l{4*RsvK6Ky}rA%;yL6bf=i6~pe%TpObAR)K42B>Z!4=@|{ zN|dwfAF)ALSVD+Nd&MJPU^CF%dIq~1o4)noY=tRJRv|FFbUZIjzXy&wJ$%_MpnEf z5)>~eUuPF4<U!sN48l4eJAxFn**w}J7aMj+Sl+MGj2 zK2qZmj1G3a(GZRu6`vj3pgG!*y&tn_JeDTt8ds4`9x^XV{UOjOQ=mjwO;rkq6OA_k z8w?b&TD;~sZNF2g(FaEcnxR$zG|d6f`S6XMgTy~xqj`i&5FZ8Yk;h(Iq;ck=<86`4 zmQ|zQ%977;h@~U|8Tu_s(Jys%4vvRcTmFBpb>wLhY&d=K@i$m|mXTnT(e7Mzs4Aqm zgG{wm$qC0mP$o{{=bMJZ2uM2*fX^dKFDOuDBasyP3fw%rb_rR?(6G%oaF4fc1*-uI zkQC&O7&cr>`l$lWMJq?(Hz8d}XbA80U|KSVHU|LPK$q3Wxb4pwCyhKp@Ubgrh6$in&fUj49_6l?8+Ypwa( z7fZneSNCY{9S)y}M)2VqQ>i6eOgf15p>`y^L$pdgIv!0a2R;%qV7rBa5*a(T3SDGD zRiy5DvxHD}4~d@C&c`;pd!DO72tRhroXkzn&`C)!y>%5;#Mz z0jtHNi}zgGS9qJOL-@S0Ff9~eeeEgR9750|NWmv0Kekpk=}5eeXd8E-sJdNDz;_uM zFx}Q5^HHn@8;mR%?aPMOE*FB-)X=?)%tP(rd<@Jg)9KJhh>MPO4o#jj=6$>6Mu+8z zaC$u@g?WmQyDNDfEqRtFXUe$)7# z=pGqYzsA+Xy27?%efE|su0d$}qX}BvjzoV9SxFwPkpvka z`sw*9w&xfaG(f1dluV*J!FuMFSKsHg=Eox5&IAq*3nl5B=r1i7K3fi5=V$S!h5nrnd{a^|vF+Kawv8Z~t5B zssjSO+d<>@~60mk2A&*$8ijA zKHOG#%f14*>N6-hI8AMWT{=Av|XmlLTydRu7~Pk#?!V zMO*@6lzj@Ff(sS+6h1DE}p53hEmIRKtQwLI>2a~+5eP$w4tFd#^a z$-tFeUL-6UXaOxK!TU=zs?&`7d2B_3yduJdHl6DJfioCQLN>jDUfEOH&NUmrj2?UcKy_ucc}oyj8-ZIr8BdL?-cNJV_{<4&hXUkrvM$ zU!EW#W?#v_7TO3l%0&xr#JyN6djK&3>1Nh;0cP4D>~0M}7pSm8rMGdp;vz8FT2Imi zZQw|suVbSFnJ0?+MABt$YSBRs5n_(zDj2nit(G>=XtoRh-k}uTYLZ~_Qbd$n4kSh)2qA!1jh4ho%$Df0JXXy5^G2WK1!S8I zqcXSw!lg02B=1Wy!2t^9*~P~M72d0$B5+~`8_#I08ZRB5P74ZWYQno#U6OKm6eMM# zIViF>M%j#wl%}f|t@n`@Gz(Ycepl6zX=zdAuwDz6XNuSoRJ|T5-j4u=!39W!@liPj zd<`0He;C#CfM~5tJ{8g?NiZN12Fiw~1_UU{Iz)I$;GnKvGRcAT!tCuNmjv{ag9h_C z()vcQTPi7tqJ<{q)&W!F6hs@L#~M~av?t2|jDUp0BHG9V0j0U1LRL)-gjI-bcYnT; zmPo-V2w71HsN04C_8h`6RIu>OfT8J$igL2~|%(}pGRRzFKLskW; zX!}NvSrKFzVlINB+aC91M0;91e^Ua*At|Dz;JmyQiY$UFa1iQ1j?3f3mUWbxVY(zx z;~0a5k-{odOSD=vl9am$3S|iPH?nR>8z;HQa;Rk^-VOU}w`b3i zgX!56WUC<`4*Z>T2Tp00Kp+XC5o1jA9LQ()GyoG>qW}V>=iv&%1PwYCvWayO%MwN+ zS?;NA6mLNDW&JzK59FbXF`XITaMwfTwNNkuTMdPz01hnE{RX718M(ZWEv-L6j`xnOQCg?7QZ>|qj^A|<$) zY)X#@#t6<8pupn?MN9yr9*_+kbHoc7+8^~iZXQNJBnHDHTK(12As~{RrCP+FznAaK zZ{-5t1rR2FHEx4~EWm74sH^}_agW8X(_(NeN?U-8;v|7EIN>9Ov{Q_CbfU1D(F|Et zWa>wc#b1QCePaXOQDBDesGtax7D;SA*^q_ijE7T-2gVSx8u<(^cq2Mg_@V_ia;y`F zfH_M`P8*FlTeRU)gQu!O8D7d!bi_g`lM^VU30AN87H* zBgF1d0Z0_VQAc$6d%2bR{f~edf~*uz;FS@C4?1u)W5JwesL~Tb-ThWpXU%>#tThNg z`35KNydch1qgecAwI|O+JRc&b6-?=5a1-jL3Z)TqL>r-;T*a5Qh(YqFB^P{%T`yx5 z89*l~e5!-lZ(Bi(f?;`+MLYz%aS;!W>C;iz+0F_pEQN#@8j!ub;aj<ngOK3AEs(doM zNK%#K@a0qEHi~&1+6V!6-v2`G=BXm}ib@oj7m3NNZg|^c#87>LBtjE%oBQx(#)iim zaxv(MW!2)zg?@<^nR^gcO_x2Hkfl5@R!~xwzQ>p$fh69H+G8t_rea{Oa`{TiV5uaC z^)tGTw3OHn!+ngeq#_?oxu9{0ps7(y+tHm_lxkWgby-jzDr$~=3R5fCpXq)(L0WR+ z6g;pwE6=(j3+pXDqzGS8EX?>>lI!$~uc^bMq6An8Sz`h>zeo`snQdVK^YY;mWwwZg z`7&G(EvTXp>oa7CHP4Uj>P}x)T*{Vm`n4d~#sqKTLB4{*4HZ_NOK7f_MOwnY{QegBNn9{rMKq|EL{?yMCF0XV*oU*uE3vh2H|#IvnxG3 z-!+4+F1~0{bjeCsI?{YAWDwKE>1u3uItJ`F(7LufEp}4-X(TYGN^#{bygQqUPMkVq#Us-0OtMF34$Y7c$y~oM0Y4C8e z5ok3{fU;dcD};!N3Ki_oa%YM52T}FuS*1Y8*S1Kq98P6n%_~SLGq!VXh;Av7!`jWK zL&q-36x>GPGXX78R7-`U3owu)lM>Ax6W%7EO)2(hGJ{4{Vjqf3Eq9Y>c$s{_Djq$a zcz_rV0{)l;D8{(MDO`lmCs}=HgNo=awE=HRz)Fp&MY82MK0p&dZUx|NgA#@x1;Heo z)0QU@i3T7=TYIHAg#a>vw2sYszQ=jE&!iqn73kQZt7Cw0V;~ckUI+>SF>Ni102z-= zfM{DwbOUQ;7@iC2<zh(xh7}x5s(K0<&CKw`1jr0e=9TPH#wAi5<8=fMgAphi?i?e>CYRZfAv)l8cPe z&8%WnX;0*_d?!jI68g2uY?A)~wvkyHTHJ&(GAgWiuL`6--4^15qTFsTth4f-viji; zzra9HG7`t90D+InAf)zZOL+joUb6ML%0S6$0t$bgDAN`xe#Y_2FZE4;gn=DZ%kEqX zJxw{rrw-{kbBP!=0#rV7v$9}BG%`~>^6+Kl^}ofx5D&~k1`yV^}9vUHV2#|k-A05?jc)PuFQ zP|PVWh%Ai+8yyQ_pg(*s)7!#~O;8vdP6K~Zay5hD8y%gd`JdRT0b^U6L*TOxr`8ix zrkEtHq19P4Bq%o08xmdsEkef)21yh90U>|MJ2f?~PfThR zl33Z6Z;F*kHbbtGg~lFfM!7&Sd_Zp6n+|0ZFgJOk;r3qrK7XMz<2oUA!Pwo~Ly!u` z>aX{pYlLXc@KeSe16(;y=GzQ-RcHr9F1R?X=Exk1EHGz94Mwgyqga)qLE30X@Gx1H z0GNq+gl&JgAi5d*j@Vj$fNnQirFxaN%Bmc0+t(6DV&{R`-UnLv9Zf%}Bp21ETy>T< zZZ>Kwj3ewresndL*P^@n_u`Sj=6dz6{18%;$XX`hz&@^yzVPXzl+!^{d9R>Li7_g= z5H>f|;y;wT#8(m=_!ECkfd)Wb{q=sVAeOb_x2aWq(wm^{YU9w0#yy7E_errZb- z6zjm>Aqsv@*~ziMd>t`wxdJMAoxj44-`|_(Dw#uP117eL>$zRd@DXrhu|c-%t^!JX z!mC5xo@KH;tc?Yl(+v%Y>uf!>Lq_^BG7$;o;ovMwv!+8q6O)zaYAOKe2WMXH+)Fxu zgIlcl^kG%(MGi>>s`1!ax|L`(0wp?(7&21w!Hy`%GwFiElUOZM6Csk(O{v~VwDc}x z!ca{c5{Ay`CQ6!Q&E%zZcO}%equQo88%WK;*qm2c2I=`-ifO@Yd}$}EaW&($phvr==mEv7)B`mfhfUL` z&3X7vVnaCSV=9(&3R$u8*dnmOoABTceM09+?V8Uu&s5}^@JSk6*b1jR!Ski}Ck}&@ zFjN=JaBaE?-PB$Uuu^t6Wtw-&36W1L0JL<9Y3!#hp4&6)34&rghk^-UvQYkbKxi_8 zuoD3TMAVoLfOd^ki`6H5n4}=BoX0udU@^jHyES(?2j@g|p8^dgAGHK9tX@o?=n8wbgKEy4Gx!537O%V64_@EUbGDee&mm8C-s-ns*4GM>AXBOe_! zFwa_S;bG~{ku(~ZC{#|iW2uieayx+Af+7Q!LF#Vrk6Dd%ktrXi31IDIK52v!fr3V)QS0pm{LCOByej}=8lUPy?Bse%9FgpXD6Tu?w9zY+ zbx1C9`BrkQqg;)%p-V<%w4Y5Xr-sgv?rGE3NC%W&$2w1d0Yvtb+4&(mb{1<9tw%b` zy^VC-3>BDB%>6df`Q!C!^}9rs;51Bt36^m60oiB;UFoazGUyb>IK4ep=&`DG6j4YLwwrW#aF`0H`#)k z3Xkj3yDjwqA3GI&W^x!0v5qHaKj#EYMwNm&{?OU0UfA%cnv|py!?8f`fb=C`_lW8j zk1vg_U#@WQa}pbD2$@z`0?xH12Sp zb*bOH?e3X%VGjKDaT&xS57L%2ho`kky}b!9a(MTPmT# z{ntA_b>4Y23Q70y1Wz_u6F8^PL=m<)>?>s*Q=o!acLhSlWUH+N_hdH;`zU9?YXg1| z)}uz@;nY(gi%QWj!caPFzuwv4L86RhHGm5yo4y4)0oq}fO=C61LiS8Z=n9*0!Mm9q zTd9yJ=o*2aT#lHkVP7QrA&DX-ZD0x7>t(X{htNG%Cg@C@Dm(i*3I}rd{d_3EQvw1G z1O~NbU@%QmY_Z9M^y4a1>^cOI{=QA7?c9sc7p*8~=jm&FH_+mnd1f)K+|XzsOTqqS zbH3f>wNaTg_;OJw27@j-g#0`HMGU7L6}DI=!QAQS5HS(IJ>A#<7Luvht?xXg83R

fETNMevwO+mYTFC)@^Ar{>f35uhUo z>R_7vaMcm0u#K$&AFQB8)U1vXv!))H( zPd#h*l{8ec)ogCG6KcyIl!`_2BGN)0I*`;zfCRIThd>+N519_<%tiL#Zf4ccXQ?SY zT4`*-jGH2=pwVZN|Pa zAIXpifr=rDH_Ut?^PcExA*pI7b#>pfhCDPt{RRiowsl%)p&-C=aHDocRzGAsf87V` zJg{iDpib)C3h;S0Ge0(?1XNajuU{c};=o)?iki)lQDKk~j!NaYu9@79$|2@7ij$yH zTPT#!M`(odvp!RR_J`Al$4rKSDI+PUR=;7fkcJ-tbIKoO4Qawopd5@eG;_|)X1vJq z;5pp~g{igBhv7lkRfqrP;A8rF!G|XcY`R!M-CnC9O$TW*v=?xcjol&F(w30@p&4j{ zi_!NU+L;VR(!lO^Ube;vSp@ws2FJ^{d9PWgwyhp8C4s2)-&!vputuPJVFd>HWt>Pr zXjs9OEwG?Pt_Dug=2!1Qk7{wJZdu3ab-9A2I;>89`&ju`{m;!=W;2L>qFz~1iil#X zjHpFVR6;2T`Yr!h>v+Be!t&-2l>{#LZ^aG~V{Uce-r-0ylpyr)FgORTpg_LBu5=6f zI_Sn2M0?UG?|SG4ygmeVPa~q#KFJ;hD|96bag+%y!*1L1`Zxt>+WX~mH_i59phZls zI#4s9=msWfB0HUrcoGqh2B(&)SL=e2aitf9shQcQ4z}uVPx`-+US|@Q!ZxhHfIYFQ2ULWb=BodoILp|xwDH@r zvS{x~4IVKMjexbS;Lqv`)rS&>-i^(LugS_GQu~ z3_i7$svzK16gAB&)IfpgTSTh-4N|~0f&$~i&`TzN8Vi;it&oH9 z@$SRvmIv{8*98}Z4DltCGr#N7xETR%5pycNGe1r>Av|l3PeZezVd1?tvH|W)0_&iZbP^Nf?^FZmZu@*wJ1|SgxW)1J$2~T21!O-0BtU>Cef0#qy+J{= z&Q<_QQv++DBiJH8*}3>t3rB#NO7szcL@Oo_ar$mJhi(=iLfSV*$|uBb7>EK>Y<>d{ z)_Q+$0oD6W(+bJQGknn~f_C(je97X@@5PW3Mgk0$PR8g7MEW-2$15);g?NZ{J4yn9 zaWQ%)1OydIqpP(P(jF;V>_CV|Enr8AgF_-DlSv>b5HVsxZd#~U4uyikK(psf4xKBP zvK4TtL!K4f?|os$v8fE@tRSfksWX_A5dMkqa$TiolS`<*xE%+8b{+kO zi~)op4gMRbwioc=z{n9EdaR7i+c^^k)#QuHB;=!lhEL?yelQK`C~8L{UQ@Pb8C2;I+40OKY$ucga9~1j*Sh?ZfVK ziz{|Ju0C~*`(77@HK~!0d{WXtPScGCqz&aQF#KB=a9tK^QyF;B&G%6SF}8bH$y(FI zSZ=1SV?~ZI4_bg}2E9HFGL=?#f_w zD?*LOa?A|pvi7R7eD46r5aLLD zb|tx1(1{q!fEoV<462A+%$E1U_xNno-$H`gD^V1GJKF+|lIAK?ijGaA=?&^&kuhI! z<#T1=BOSNgiFq1 z*tT^z$PIWa;hF0gqB98wdp!j5Zm1bnqfs8w#f^ZjAu}4M6_NPL!V!G_h1jM?Z=dWJ zopK*5f4$(I;<~~dWk%;2i`?8Vcj0Ykgn)WZvf8>uPx;r@j@Cc<@ZmS!t|53m1ZvsU zN)%5~th3R#J?L^3&f5~Ql4|#M30??WE(6595}aoUE5u3HnYQs}m$Fvz)+l=kS^RkB8n zB}s(XJ6a(K9fM5iAcizeS+hSlr0&KPc7}z?2usN^He5KKcnC4OuylBUP>T_72|~+t zjU#^Ia$>v|mUaxM;22Qm;U0$s4qK;*bO<_#Tonv-sHcPweK*UnI@GB<(T~uaE4NTd z#%D=Gq)agj`YloY6D;6iAsoU`Euw^J*$yCZEb@l@J=4dtG`T2r_clKMN)<%d1+na) z2nPyciYb~Z9`TgyVl?x;-E}w=VksAblqSU(wBY8oV`(1yf!UpO&WC$#%6~YY#r4rK zLM;m;)X0Lp`Ty*EFc_F##61&CjTVTJN_GpqkNb!8ko9}agoBib;`*VM;fz60Ef*E{c}%X&d;;;sNE8kwt$bd{KPI#ARP(}Zza)) z0seFjYtMiYu<7+*ycT5gAP`+CYSQ!y>SbHzYgN0QLbk2hR>6;dn6iFrl47 zKG)sR@gJ5qSo`814T){3fib8x_8Ur;#FXh7%EYk-q+MOLRUB4WsK(H%U9 zTl2#HZL90SUEKMACoc((LsRJD!9R~_C86CiB2LOt*lpJ56P1a2cUlMo#vh8<$Nm&J zA2I*ABL8Zij6%R(q@d)`JU1sT`uS|A+Guy8;NTV-5hNde&Qg^-u z;xTaRnHEk^ua2U2u@=f_;N~bc*yAZzV1GwZ_htu#92LuxJ~d?KHiLf9N1$NT`p*=$ zU&oPvp>DTm&hW-<^|0DC_~Z_mIv%bn4EE7u03I;DER~`fK3J?qKv4~F{FMkwuuN+R zgI<8Kzy&#fZjMSewkKK?(#j<5vFyWh%6O5Eb^+-+$=IjQgG#AXej&PT zwze7^V4h)==$$dzJ0ZKOD(e+EefE=gl#PN6UVwSkX%3?H^ENGjDhb=q241uvE}4xt ztWA5lmxx&~I8YL$=}?b89;(Kyx% za`O{QK~cbeHV|;bb>RDCRc)U3w=oIrYY(q!Tk`TqkiuJ3S1sO+7h9oWBx}sb34~1~ zkjlx|V(USLwH(P=IDmu3y`uu56s$(2rrCCs(1+L?DsUS$4OqTjo9ghrH9;!m#9ak5 zaDX%pgO1bU=oV6&$3#{Z$)`$rT7ewpy0gYn_eO`UgpVz2L=)DuXi;JVS6Z}yL9z3?E2juv#eR$?)R`$#MPLA@#2 z-`cW2KhI#$THU#)A<^HMeg5gQKB>+=<<|p6P4T#<9_0$bv~Oe_l7iUL5ELs+F6W-zoe zg?-;+BLrayLoMbHcE_#tw{GXk5wt?kK#jgbgDEH|?D*6a9!JYEiWN+qXz?E>fuHK= z%vVpgdw%~OgGJ0D5QDe?aWpUkn4}UL?mcL=k+2AdY?pXN6A5%7-hga*1Dr1_hDO1# zxuztdNrw=cm1BMx8S)V1vEPa2104qzll_muVo_z+ZS0;fIDbBSyw&XhfmO-%#G=2v z0gXtldpk!62}8t$hU&$O?CS292|V`pguF=w8}UkoX=U6=*>G#R+Dv`M z|5fiS-`bc_(Y>nDgdi-_V64+qtW!rz(3A#^8uFLcHy;H_pqmad^asuh45hc4Uoc>B z@2pPUf$&(^Oee&qi<|kaG6;f32b$j!5Enkn#lqP7__e=gcNrQsuu-9H4=8NXA!NVp zB=e7+K*?!vejUaf1c{VuKDa>Jg$bh5l(!{LoIa&A5nW3W8*(Tsupod`ZzUGQC{Qo% z0|vb8(`B+)AtD8roaV=(RMWS#6bQ-9S_|4;*9f6{38(L>VOS*zO=kco9p`dMK>)N6 zcy9^hdbG*NlHnoZ%VC6Aty5E z{|lX z4;m0~tB<(^F)+T$YS|gcmKX#gORbTFy?Gap<9wRgWlYaLzbHY1j!33${LT|LlzwO} zB@vq(O-=fB@mY|Mb6Px}4L?hrvc;~-3&Ru_*Xw0P3Tr1mlEu2#&7w}Rjaz;wLDNuu z5^f3yR{eDbgNgxaSoG%4R*DUo5yDCLS{(%W%L9k6l?KJam`GDBbs}FcE{x->5W0mW z8h}HlFG{!8qdr)2vdFNXVm3>SrXD0Yuz|d`MeA*Z3?@L4>;M8=k>J@MQA#9<)$&eq zqkNEnMy#1lH!$edmTr|1PVfDYGiG}B`U$h+43v!N@UFtd%vuQPcxOQfl6VGj`T`?1 zWfFeli-(5F#Ms2OkB)3P&Nu0KQKw>U$C%z?PCV}q2p|xE9|WGGjx|4!cpQNdkQfcE zTeu+rL8<6fvR>+`n|{EHQbh&kmUrO_2z<6MfI8hY28GO8bti$XV7&D2y~} zHT@FFeqpSI0*QBsauSYb-Qg^D%!D4l!9obMGX<4cj#DBSW6_H?v1I&F3W8)gRa^0F z-?+AVv7c=T?7ChqCcqp`N+E6;d}wek`S#OmUW{(y-*~)3vP`7xJlpS)Pp(1JtUK{A zrJw{JbGY9C+_jR?^y$9wqYV79BPwNcmy~0P%aTAlmB3RV0@-78|FlfVO0D5bWq5W8 zqw6lsz#%A-I8cZ_LQ1^cwvarc=UNqr8Hoi|4VB2~jLTvcT1$6&kfE<8X;`TVIgU#P zFESckKN#P{+puzeNE=tvN(f`jgn68{x%S}*yFH1Naz4iyXc7qlkYU*vX_c!mO?8o= zxzWclnbw_=-%eyB-tIi?t~6x_AxCFuZu0O@00#}4bSpGI2NQ(|jr8OMv`YaxfjC6R zoARWv!0G{6+m1O$}cU$wz-+DF!b z`5H#p?LHL{9FZ4baTyrA2-=m|(BU$2z&wXFC=NFIw}NTLh9x`4*TS!l7sk$ zjnr$m?niREmxZ?`oPganbA>~*|?YU zeOf$Lz`~=sg`RWxZ?gteKLmM;D_~a*#A!kcBTc7Ekl4JrQ2YnaIvmGqxrm~6pmgwM zpbul+OuMO+uoCeh_`r6eAg3NfO3>7`OTj~sr$8dYJv0UnXRs4^jovwxzhVy~_|WHT`ll)Zu|ZK@1a7+DP6lng z=5hH7PLvNbs4G?CqM1uwTJ4cEVNH6KkC3{z2GdX%S}IB+$B40{uuX5L5gn<{2*Zu& z8?UM&AM>VXp<+e~SLI>VN`2YdWx0Qg$G-jGpm)S(=67`iq?_ou6#RkXlpbS}aRl&% zfEL`+4CQ@o-83vE2z3G9)eR8q72P4l zOi->6b=%c3o+hFSud9>Ftn6|-_)m^av*n3 z^LWrWWPg5_#-@HGF-m-mh7ngv5yQ=FGHLk(i-#XQoyYRg5_P(bvsS}Oai4fcsAIbZ z!LR<7+eOFVE{S8tWwI@ z!lG7yQ}QRoLAF@=ZZ%k99bboZq6@mw7S+J>wAMZlYhBwLarn@H@;+ua5Q2mKh~Uu;bj;v zc?ubb2T?2^_D|sl;_FYV)f&FqT(szrDpDtB+_w0{NqKBE=~p*G0v?@IzK>)!EfI<| zk|l41(@XM@SYpXU=Qld*@h>;I7a)e91Pk?)f*aDo{V>R|ds`m$xHd_yc zpdn8Mkq;)^Pje4{nD%!-;%+0`B1IEHg!M)m+67b?$?|;`K0BS2Nww~V$e6=}Vl+HY z&JNBEWF+4#mi9=8$5j;nQJ;%wB!Bb^^E*i~WY+7R80X~AgeJWXd74CWP@gBO{)7sd zqwc;##Q=FRZkT)6#mi>OJc08yvaQ1o6bMA_6CR#r#JQlrCdP>x!f_xEZ>euM<>I$n zT##IPP98EScur=amTLpy#lmwl9Ek!9~1y}ns`WvA*mmw#)3~euh%+73>l7=+OTTYLtHPKe+3^yeX@Oi>;lw(W$6L7axLd%fTh5>M9}`$P@}UEL5j5 z#J%je@=TQudFF6{qM}f_U^1668)9DK90ezI|7jcAdPO{b^;a1|?nG+huE@$96-o6j zwbIsQTW&kqAz&Gi9+Icq_7`vhviK+z9(vq8=D{pQ=Tbru;DOa^8o)0lklTUWC6n1G zWnXfhfhj|=2m+Q#L3v~6%Osfv3IP-)hmE!(QYaBfk}57xI0^6XEc|!N5$a6#dr?M{ z=qNufmlA`EF5ipd;y54Yxd3VVq-48_))-p0Ez4b9xQHVGi7!bz zoU+l)MVCv0u1k8YQqvE5{1s@tV!jl~7Q8dAU^jLDI$!x2gCOA`BopLvsl{Qc3dAfI|7n82Zp=@1edS9VB zNQ_)rD71WAOs~>amCO;!tg7P@6ldE%nCOq_#3_FidHTlR5||#^n2x20WhBvX$s}?? ztwug2Fx-e*%i_G~9Nqv+K(xOND%XF|0*9tTDDA?LZa=06X#RJYduWX~ow+I7&(SoNj)Ln(l?(Cs&n%!>=$Sw11Fd86wlJLh@Uw78qNFcpyf<{AyzbUCo93<^Xr6L7<+18S?vRbH# z*MSLZ729X+ea4Q~gA?3N(fXN0(;%iE_M7NEf+;nHsptMIl)jux@CNp99Ug)W=l>xZ ze!zw$$rw)5r-O|sS?cPgs(Tx8jbq02OYjOPlH1k?|IbG@h@%Z}g<|4q6W4wXHKL<< z_eG82&)2rcqKkMK?%sGo=pDQi^uayqpnbMT_L`V&I)dTH1D3R*?KYG*MxVhGT2T3O zeW8At`W z+*ys1J;1H6$_m~;%ICYvCyh1a+92+xXvtH@jHpiDaSRSuzK6uch&k6~PAMgJmOVuP z3%jvYffbGTq$P9)KYEEIH=f&L8%UVyaq=o={Nc;HThhr zwYxYmW56V8b&?){urc)Jw(J1T=xL(rKh+wR_eYx+RSep9gtvdQ*llRoM$&l()2FNN zQciX{rwoK;F21G&)b#5Z)RD6XIfEe$%wuu}VL;m+qI6i<%k(tmAUa zAA3Saxg+$q54A*XPR05NTEqboeXfQ9p!#tq-D#WUG^YQJm&|@EOI{w*fGkycSLNV_ zr^Uz$4-ziSA3gC3jzE4FRIJvIKM1;#X!*IW@;43nGbOZi{Cty3gv^dYjRBIcanokg zihNtHxF6Y<*rC#40W_u}Aqg6YCIGsVZA-viZA~OVb$nQw@o!i8br9ADz}LuVW$jA0 zRpULtL=ez)V67s&EvlQ8O0Q{~%hozT1oV+r>EFP#xR z^pt^nK)w*)`OraY^J=9=A(zMp@H-HBItPlmJewyE`Wuf{&^<8zT@nM1hxu&~{N%<- ziGPf72lPQA=6AyMs1HFv=AQ%e_T79_j)tbfp+evZ3<4`vc6n_O!m-LHqf6p&OeaJ1 z2|7Xw4g8?ZnW~IOzF+!8*>KdMguvfu{vLDjrl)0u3l&m@o<}!%{TtH&|rf_GEl2X1U z(IEtZTY9Vyf*-zW0RUz$d~m!bkY{I5;UJ5`k9^qW!O+*GWx+|q8E-L~_L*cbNfNsR z3lg;@fi?d=odAZR3nq=23SqO7sA%v!*vVXFLVAomr2pT>F=ha|2*Wi40t7`zxe%H{ zdYKmhTOnwH5$`nyC(-O8!-{)2wf%Uaw;VfIH`rx2Dq7@)Yj9kn)f;F)bm~;;fLSPF zwhU=H6*S>5$(bs{1(?P6!0t-WKx766WGEDZXM(J~c#nc+7qcJGDM1bx5C%_C;xrxF z&{=*$np^^vku%0-68##8d;5Z;*ob-oyk(^3W)Zmfqt%7X*%lhmMm`Kl9=YzWcV}6% zN|HM^Z7N8#&5_QtApI3q9AF1tLVuL5KcvP>pO~yU&$9PEN@4>`3@5d&{z=cY#}6T` zr-o<~Xry@p)1<%^yz25A+CWm^TJQZE0QM`&PvBV0M9a%yK3ZEPUVI5Z)S=!hdQF{^ zHa?h%Fu=1&qy_Z@=J&)1-Td(14|HkZHyR&v(5KWb`z#FgrB9EiBZ&3wS#FOI(fuL4 z;6OdNLg9>9(*MTRDqw##ZLE}P_u(?emSGZr@OKXl5<<@zy{n&~Y@w0xm;kPI4Cx>t zSKIg0%d4cVc`qRn4RR&n_Tk2!NX&fz2nH5Z;J>+EF-lepeJ6pHLRm^XfTQpX>|4QW zY!Z{o{e0nroPntPb!miBCPGQDIwebVu*SDsN+B-y4WorQyGxl-d+WFi$ZqibcvwV8 zXV-4Ke>>fGIJ!Sbalrk(Kpb>)3=&vpKUVo|z|?sSA=k!ITVo0{zG5&cIqqwQORCr5 z$8Bh;_egMcDx@j875Hl&o5ousDIYE5v^VJl=R zD@C3HR&KdKi%olg8A=zb2Lr4BgD966e1kt5Qwv%Y%0QOXz!7!+sqxY6ZxkdtAA(+P z16Dxfa)AO2P8@+!t84d>ri*op*UeYmA%54H8HV4?Qa?)!Gb zK#?_M$$hfKhWX@eShVw_n)4T%1t6DJF9FMkwl^o ztn6I_bhiy`;IH{^EDFxg`rY>fQ!o*qg}dwDb-^ue_!--8tyZ z{8u@~>D)$X!ntu9rIw1`1v(_%JxI*-P-Z?V&_!gzc~m9<-teuLdx&}fig_kYXc6-|=$zl~G3~b*LM*{#EbRb+n(U5q3P32u$k@m&v zD2IK#1^KO4kicpw#cD?yMpzI(B@z;=ghx*%4*8K+3W*4li?6tpF8z3=?#jK=t3p%L zbaj|kkLM60H1awN&A6ljDiI4|9C|t_7HjYu@^fXm$-tC|KBe$wAOo}M14fg4lmM6Z z2h^g0;{k!jCHa710(g>`i)aOWNqA1O04TAY1b~)w91FT$1Y_4UF7A?LODGJTA(c9E zjD#fX0}jp!uFT9+2yp?QPpV+I3h2L}V7>j96D{?(B}HV4vFx|OoM)4F@Ii!=R8k@`43qdSs%J3G z{N*dscr#ck8j{q`1hT}Gq%&V0o`qnB&!AW*faciJHdvfqFGXZRxk@LRjD%vjy*o|H zGHQx&RP8+I@r)_TM`^o7YA-2>J5G8tauv=|+H;Ya@LpNxX<;I@P_BbJNeGk)S`#R$ zMF^^qLN$?;Wl|~90@PMS7nGuTsK`PWo1=8xBPKvs1kKaTj~KyRqHdd%R-E#fV|3)B zH1NFQo2M-qp9STXZk7ToNDAmPbhu(UJg#*aDp)ESzdO%CmQ*^ej{ihVcaGGQs2H%8 zRZzT1Yb(C@SK3vYD=tk+D+*4P1`tghHKt=DG+6>>oF?}S(bHR|IMYRukCH$QN;5}K zA-&XQj+_H~isp=mY3$4_X7twCi=7YLd zY(#6e2GFiJw}Y<;4yOX$#92ZS$ZdWhH%Kg=6D{*Fl}fo;`MBwFu`#7H03#DF6xk?V z4j!MhF~rmQm@}N1M-#FD@~vVda8R&|k6;HD{_LZyoEgM;i5cEECZ9klMG3I1(?5CXzuQg8{`-np9XtC>MxwKKerw8h!#u zfRY%@kPO;HqPbHE%O`dW@f!7g8s%UVm*-jR8PP928P8r3p$W!_fNuN|ulI2edsUE? zP)&=vwM`6EyHR=Osm#6q5nZYhNi34VNi3GqT#`&$6%%H;BUF-B5fd(QSodGZ5qy5G z(!?ZyCohksBn+@GH6=LwazS$;<=0^OQJzHjM;JD!fRe~r0<>(g8317N9C1UANLTN* zm577N&h6q;=WF(qNhHxzDUH~*HX%`mHZJ!F()~EX!D0rJO(c>7II(8G_&;Gi48xy) z*)y4=KgLhaf-N*dKj2GUt`dm`jxiuVvqRh|-J@^5$gm-qPzVS$D1&MBB>=-=pbW@) zH`|HCbY+u>l;?y|GkdlYWTu8;w9ra98G#L?ipkA=Y#8 zDkY<5nK2`*N>*N`kH&)m@mJ-nW(f~Yh+)Y7-G7AH*TAtz9i(Pe;h|kn`AirS5l9z_ zHH1$G!P*N6Lyy5)&NWOz9ODYrsj5RLb0{lVW~pK!$?&WOC`zo2JfYsXo&bl3<|H;5 zP`G(0Z?O`ZD_$flVg9#xs``CUCVqGsN6MA$Xh3)xMs^rfd+=#fY#)`5V=ae8UuD@G zLOxkw{q*zH;hR`BLzkw1x+SfpkUsfgxyxTQ z2?$f11`^avY&iJqLHIa8Yyf3{3*;OelxN6aAg5?I0nCNKS9QqMfvbB$FeW9b10h@2 zbIHkggVDj1ONJ5~SV&Unm#l-};3lXGS;A0tnmM>?m2=Em5$vPqY;2mcbpQUU{-~65BHQghbn#2!X2=RuU*5)`A#bZgMSDOy+1MaZ_Ncaah1XF&%{; ztX{gDFchdmfX9y8-DC}8SW0D9xsi3Ko0dza))V@PZNVWEa>+vNVIY)B4}^qGrcCMo zCOXDlF~z6*TV3&Bx{e8sUvI!sFVh%^zp*wo3sp$vTgf094Lyu(ENNs{KGbB`*FuTV z&6=Lao=!{VsMtjkxGPpP z@Ha&DJ^-$Tb;K#D1cm_Q$QFKaZk3R(lXDbsN0FEa2Vh_gBc)R^=|?u5Y6to?Byws; zZ&hbtQ^ZDCl_^9QYs!;7)q;AJB`WgE$UxOPXkJrZ!hol~IHH5`k&6O&LdXE2i)a?= z7LUd<=~<6LmKm5Qv22rKm$GZd6tR4n(DFLy^s|a0U6w2gps|nQX-AprrmI}EQl9Xs zHV%CCbqMFA+u(kI@gybpnstHJ`Ievqs+W|3`V5uYCKqiLc8QkT%sW5%Ba?BHOZY#m z3!HtWJ9cs!pP+9le@>S3x1XXH?u7fHcMaq1Dd@-|R3A&M5dW~*9AD_p=EjXt0=Ra+N7 zN;BCYvgoi%2MwQv zowS7}YIL=%?Z0IN5O-hC#J*gm?T2OcGiOu}O6^Q;3@|koJ$m z1|kXM(l=t%mW(0_nKPA5=ksK+1Q{vyu`qJT_|TM4eqzDA4reXkgO>Inr&w2f){xgsBedH z+wpQ`-fkDN8||8C2ojpZ5vWyL7QktAdr~UUmBOq>Ri;ORRyHdk@`^+^4g@`B6M?b# zcc|oa8lb~Ri=Vg#?8x!zdbG2X(;2}f&C;K?KX5=dczuEqXPl!f=wFb$XO^@=3qagg zW=3uT@F@UD*>Ws!$OeOetxsG++i3{Wm~uvJ0k%em!nElCp-O1wDkvn&fZ%YgRZ-CN zNyTIwBfDf2kaBP-h)!gz2^T9TAyB432&B3%fc(Bt8BQn)n~_^h6+&lFdYEvoZia?) zXQUmP1ohggq6k&Qhad?E&Nz}<%f4!?73NXd9catKtq6C^L(qPRgcDSwbCswzI1z>> zpy&^Aq=Zrp(hj)V$>IhxJA5n%b=z$Z^w4NfZxCBKIf<;)ULepQ=peNxMFdftqiWA( zg%#c9!8j3Ad1Dm8h?2Tr>!Zhakd=YFhC;oeD)ph_LNsVSMwgTk6Kx-(h)`P*o*p71 zJoIb(EZm#B;#~h?w@d%!5~E6@i7(PKh+-N?g?!INAlcxoHcd^;x@aq719j;PWxGSD zvU#PW+?NbC!JeY5GNkKtAT=CN9t8-|+0={qM3i*6Y&J1jUxN^@;~?i;gbm6(#+9gN zJ_-(;h*=%rEk=c>iQF?vIF{h3(I|x9C!!O32-9!;KUbZW?_3EpY>u@Fz=Vd0zIFy$ z>>~<>bHNFvz1#=UUzfFM4G(+`Td<=RrU%&uCoTrBO8KCRbp`H~rEC*=--ZxaU%J@B zYe(S4TpLtJb|KubW~AD6)Mwya7OpTYl$vml7FqLm0)_d}b})slMhqN`iY6Pcxl%q9 zSm=C6qA71^CdHr)iBq;l2H-G4&KG-H5;h7pf*^JNWDq3x7)@T4NQs%X!A4#*Xq4+6d}fDc(ioFACn84Aj`6t?zQrby(=Pm~i>wMp z)J>5fNPsG@c@w1|&_Wm+M$1DClqMfg5)tbaKkr~?g2-pYp73x8rq5y3tn;9j-(_+k z5v@WS^;!LysLhUG>mxs+LdX{aO!NF3dFkKVU~JDSNBLYpqBfaBjKKWV*1Uy9ibFxt zqgQ=rh`t%6dnl||q#Q~o>B7+!f6u5%SO5e&-00d{YnYcX1T6>*10abJH<<@N(uU|C z#Ir2R$bbP((9PI0TYw4U|5vr>WvsCFZg`*KBSwzh3a9nlsRvI$M^SHaSxTxnZZ@h* zN*7$}sU@3cXu4d-OPxq_N-Uy9l1-bAgz*sdPzr6%*jgtm8DjZo+F|{5kx9UOt~v@pw}Hv zfab1X*H@b;#cAT%)~bGX3`&Iv3-G3RNHoy=Pvi+8ld_$()gi*4FHC>nGWrE)8E*r8VeQXhbuK z8DRT)2$^;smxKn5R3h7;Gfrte_K~dSf`~8_kBArxMZpqveQ38p{?Z71^h;$^KNtll z*62CsIrELQwy>P>Q%41`NbVM}O!$sLdb|`uyi&Bi#^CVjQY*m`^G}|9Xt~~fL@eIk z2opP89`Zy*Pw%$1k+>ubpLorfLm;Jb0l`EreAn0;Npl5D!h)za=qhycTR(HRwq1u9B*b z&dBeM(x~0=;O?X7$ve8iX%bG7oD;$%kkI*Pp}^{Fm3{f2MzpuEka4BHV_6^8QX8}x zsqtPA1frL_KSOiN(Vl%ZxsTs9#%JTKUJU*7mw>3sfna3#^BK=ZEnMgdDbUMk>p&E9 zvX=g~0qqWOTxAFzo_kR@&xUldoui5&%i54M>UR3g7w&}`aZB#+d^*n#EjI7XPfJaP za{fRC7(u7%PkUPGR}lO^SWKYWMCd}3tD-8@b{6cWt`x8k1exwC74egIoaAVFA;q!% zk+{9yWzOn_UDZTnZ>`uwBF3@Wo5|*K`6+}SF+h9=MHGr+sH=Rk36{~PDJaxq%pvjg zBTzgZXCF@F1nD=j@EIPq2}Mqm148{EEM8c^7IJ``*9z~yw|38(`iSA_^GYhoZkpw2 zhAAiu#KnNphl_nc8LXXxxtn{@5QzAAZRnuXEL1ibkLY|c})f^Y;=gMznhNvfN}5nzBa*(!K!%Q`=)( z0#Rs|x~%!G6=hsS<0@%;{dosijz%o;j?Zj68Qg$d{WhUEix?C{CD5fyD!%**At3NJ zx2vXuPK(*@!`y-dP5F4f)@U)3ZaroCQ`1n<7rRISzh#{i3Kjw&S5F(5EcD%4mc zUobd90>sfju{uJ6&!l$}F2`1*Ioc@@sNz6i)E*&;;3iVAWr}3rA=mU|{5g3ZcGNJS z1H3H_YURif*M^STTi7~CAZZ{y8cxm-!8W6=4Xig%!VvkN1SJ1vVxofD=LAK^5h$%y zd0xbJWB6=zegm%aQfqtlc)mGTa;FCQYz!&8nENDdwlPo zA6#Kv4ZxAvt@Ro^7YmCI&|{?5qi)h?nshi?Ue9E3oG+Oa>TO#TQZRIE-3Vz-tce=T z7Of+>ezftho#F}Ls7KKvjwVC_J}9$y=3hDlU5}huDf#XPzr93TpNFAq@kCMd1?E_i zV55))v{Bm#odXz3l!N?>;z)W`gP*Hmzzig+3I1Ayu?5>moP|w@2^Ocb`P+*he~UA5 zmU-5CFr>ZcEJ9K>!ph*b+!a_hf7UocJ8#Q9HNO(t;59gDRm}255Q+?RVLPoS=Gq{|4rfJcB8vH`#L4b4b=xSxcvRZW+?!xsnnC zG_VyaRLsxv-=ZFJsacm7aImN5XQ*iYKEt-@ZsaTrVY1Os>aFWnMQSb-PH!%_Fizat^u>M1}fE%E&}tPkaF9+Z-E#2 z0BI4Io|GU{n}ByS3)&0C;`CZ!Oux|^*sVW#F1N)q`&QW2+~UOlj#EjaLKF&C~pcH9;vROVtS~p#b5+})$AVwgpXzc*9M+!7Y z>`mSAzcNAXFh@wl-V~LfAmW9;RPIQuLB`H7d`}PIS2Cyu4*J2x>X+Jby5G@s_CBIJ z-8W72>U1$nX&k{k98II+eS@9M+MLIzSn#0v18%n{^bNA{r!HE>vkkpBH3nJE_{~A* zPdi@7uaM&w!)qc%j%0^1z z8h~4g8rDM~Vlz#(fLCODCNQvuB-O>idg4K!bP84B`k)60bIuRi7g0@M=fc+1b^>d(nb7XdnEI{*!>#iBOU z(w95>=_fHYq|_F)o`S42^k;1__T$aO?422#Rel~H(79jZuG_}loLmpK_$UJfH!Ii-B3`{J<>W5;J0k7l(NwQAD@|195~Yo z>UPfAJ1n2FKqX0CTDR}fYtHYn|fML67a4GRF+}i z2wS2QI93MBryTYhtm?Qx0B8%OWVOQ3U!Ve|dk4utL( z4XDot!gpuFL;GT+k80 zWhiiB7W;=8jTTq4SXnA60Xhv)am8&as6%92P4aNitPejLx)wUh7azlv4 z6(Y=V*b4$6BcISLT-sU@TiGZ`0(XTed(7YuX>y6|MIEE_U~fmdb4lmf5E(EI=ZH1o zhAnL6aEi4&37sDFn2CEv-kgo(v;-#>sp%?qo-Vusv*R5rX`+M^;7$w3`61x9zAQmC&{7N*2>;VL6&fY*rW%v4)p z4qHGg2?s%*aZ#~HO@&M~}s7*9WzxHQ20a z)f%A=3Gs0~s4Nw()TtBb_XqUu;&Ah9iW2GJ?$nn~zT3z8=xp+9+$X`St+!L6oLLrOf|J>>l4XmB14*)>vnN9+^TUJpl2Y|tMp}>TG z5qI(7Z7)AA!B6<`s<*^dmQ|C6($@aupasUghr(Mbn9(g0EBzrTwQ6AVGq_3Yy-D^C zZxjd|*@izQu|`r|%^ft|CosD5yKF-O2JNP>YLKj3kxQfsIA%imrEoreE-rqmsmTuH zJ9IlxA+8-7;v5-B!_OcrG@VLJd#sR+%kYF45d7zj2d{x`LLwiTOjT)PxN{^xBIuZb zSOEzE7!RFqK8nHuLGi*vC@s~z?1#4y59Gwjbt@r_LbH)W5wSFx1T4A%NDoVtU8stW ziEL9jrJyWtb26RW^vkP6j+VRB*cP5@bA?~A=4qJ-y-1;#mLYF_k}~bbRb)-1f8pC$ zjRrN1U2y|2DT4!2gtfbCnf7jE>)0%9bm7~RDSxJU7VY77sJ4;GN zMK&XHKt!N*zMu=I-b7Za{9>JLSS{+izgc^=ii9=%3(A414M00q5hZtJ8i{1hIXo9- zF;;cU6xaZKe@(bFFSdM&1>b zisj-N!uyj3;WcsZEEPsgo>@`SM6(%W3ushiktSly!#GL1;d}F&;7HvPDXDE#K_mC$hbKyb!R*(i$*#*!%*R>MJ|Mgdy)u5syU3)3`|m=_U-f-b6+BRgOPN-o|K ze&_527Dv{05H-{yuuKWCl0_v)uUt+J03;YojVW*)<5>ZV7q#%UOaKctd+L!?<~Kf$ z06C>-ImW845B8}D5pxaHF@Y#hz#%3{Kp=Y_%zzFJzMurpR!aq7*5hO|qb6LIVuXu| zMF?wj8Ot)V6)Bf%8ytBYYflOCH&0jxz#;zQ4p;%%dJjCM(2#-^mJK>5h_@t921M{{ zF*{8#KM4X2lhf>qmlMl#H)XP_?~QP!(HPo_0V`EKB#E%duz{(w@~2*k<|`^%DSbuRN_!JTS8_7*r;h?|;$joH?jLPU zXYs3({34TmMgiFj!f1`N(=XN2Fq$H|DXjUJgwY#HfN5xf?|Rgkm!<(Up-l!S@e2fq zX2`%Mh^%XBj2jrJtR{$sFHl2o@x0v@&lJST6^MzD*3e6mMC`JVhJXvq>C_EZxk@5r zif}~8YGf>kt8?f}cNQZA(}h$v?qy4%9E^GjXC_FU6kuqrXCB;?1h)-U@2w~|7qw?A zJ(&tZ;|gOqOqN<3-jX+rhP?%r3veUOlL(31gRStn|t9v*DFA{s^MV_ zsikyCB}kLRNQR_C&7>muA`vl-iPRcGC>$h6)5+pud{N=Vlkbtb(9bzh|iYR^y=P$zGgONl%tv* z4y8!aYq;4s40q2CoCW~JrgY@1s)O$A2EQ)Y0fhX1&GICP81gH^Rwl^vyLAI9`gBfE~F&TQ)8a8l>p z4nA9l!(yQfHIVSJ;f!!AN~OLj1EoI8B1pi)2KpAsT)sW0ZFRq&O>Jb zw3?qfXyNPCa1%k`Wyx?F(V9xqh-Qe@25QZS%MqkT6`?@k(%8Z^L7WN8`&X!|y{Uv{9tS&_$5~$cqe!5E_d-`&>=#(^Qlzmjv4p7NjA` z`8>QUNNhhPrfX)b$_pO(YQ#|<(uni;^Mw)JsH~(aL{S-vfMoWIA8dLyunwq%QiCt$ zXBrBB%S0lG?bKF#*d%B~Q5pZoI&4Fc+7S*J8GuvV$-VPK?7<9gSAO(8u(QLxBVvJ)CEX)!bhH1JC_eD+UjS;*ClozR4=pJtm7y?@?CdHK&GN-73Ih>IhE~SK3sY#D8(qYmW1&W#1uTC>d2%dm`gNvhCGG z7B<+?sZrWK=*llAEKB_q!2t(I@&2SRQJsR7>SacXbfZU57-%HilSh?Gdg0Wis>%Dr ze5EN`U^gk9#imutZkf`}R<|g*bd@j=u1^S7ncN9f=pozsPOa&p!%A&!GNdY~ZumBp zNJB?WJ+{S0jE7Q~wb$ii3R-MnhTx&`$R8*A9tc`LcS=9Be)394V7cky(fnQfh!e;9 zJAGz)_=1t_H90ocgiy5)TPT?l+!9d6;%Y{47Ubvoij(cW zB!`-4Tds&*L< z6zusKpNOua*258DDdIlFL!Dg2rYHQrGim(790+X!5)juR7M*%E8lM#*b>}Bhvy?WK zXyl@hge|cPebh*5K4GOeMM+3)iUlVJw@n2pQWJevEKR$hy%0}|iOc>Q_VfGlaUQw~ ztGXdsko@NQnAI90Wui)&dzu;wAsP8?W-Z`Tv=~sz2id7Hm|mk>2aOfz`n;2-c@=Rc zMxPX+o^TOeKlS)CG1{O>A;(nQs|TDGxh!rWMOLSC^FHU!teM5gtdOa*-m18kuhf&{ z-cqR|s+xLjA(k&}eaB4fY^YO|inNaFjYrG9=#IiV`@uDr>-Oj@|7YkmpY1QUI0SU) z{>lHj_|VhkYcG$qNe-Kq^ptNX7d`tdv>9)HikKxwHlm$s>u$OEKUKr^1Cx)aJQm~( zMI9S(W9qVY949dbQ_84*Q&bW&w&lz@Nv3YJ-4d5&Ek{xY;=OSjr=OOrlsVX2`UU>`&n$tSN%obvVxE-G zE)zV{WruVE>rw&KL5C?MYJ5aq*Q-&GI55!x)Ip``Yb22(J(VgVQ~-AkM8_5-PBAgU z+bj!9#cGU{!))vlNgZQYOf=t(TOXnFg{|FP&9NYwbX25oGUcH1%T}~P#$<-x0#+&{ zYQT2dsQKnEmRR}XBzh!MdsJ21&QOu;TisuwRF@VdE`!VciskUPAm)eh5Z+a^M^f{Y znaeQzrlAY93GW`lmt1_Pp*nGULv_m>< zVl#d-c*Y>;BH}@-7weRrn~E*E0h#<(h%2rQYgB33MleM$TeWt9ZCHn$pPA-*}d+IHe5psy+GawQYQjD*=7FKmDfgf=h zW+4$eh^3iPRHc-Ihpl8vwX)qyqA6F$REU=(Cs_AeocCm3&)UetBQq*pgrd&e2q+^@ zEWX60Y+$@bgy7{$*!t z>TMCZm_@AMtpWp~L)1ff1T{8#mxz$@3X2eMI5{R|lJk>!-{ANg7r<(3ovT@7?lA(d z+)rhEgN6C3yrVQ+s|+qD5XfPRRiUU?&fcUBA*7Dm2k(K4i(xp)gVTlf42HQ_G8S&@ z1%pxu5^La$rc4k$2b3t1ndLCy@(}ZSNh~Z~&XxB{Q9qDv8ASU+h``9AlmQ|zb3-vl z@yhJ>?J4+u?%MB8;sQN>6D6i~kzUJ9EElCv8QQO`QLFaJ^<)PDqKMwRNCpVoT1{Njr z3L;&F6T1v-0GS~qKa%Naay2em!BJmB3a(WvT2zBWYsl3Fkhxa7K8CBDklTI_TKE>O z9X61N&Y6HKB8_YLn^w#fc5r(pB?TaTpww6T;j8v4GfSG-mt2=ih`wXKtB}iBVeAPDkFZO+7kZP28ZGPqYzQ>R{{_O1SR^B z|1vV&^x1TpJkU6oM(|h3qN6gcLU~P>jo9WT8JI%~G>)xzFrr5AjGn8Lj9~LqtkN8X z!xTI9psq`K?SSq}US|+uIOU@=yyqGOJW1|6Gdjj9cmABgq(vc0{l_LPFCx&99+}&` z`&h|{hfZg1@>1m@Q$ZfX)RBzDJYix`vq51}JVSFk1?35QPlycASi^uUbR-0#v zOrbcjJH*=F2(l3&!cg$vnhEa>9KL;~mq5&NB_17_nhE^)qAe-i{{rU5XgzxH!8RL> zIa=IvG0<27WEx|Lub`nAIiUW&cM~-vi5*ix-FgIVlVR`UQ@d#9JB#i5@@T5)0PvRp z4AYt;_>GuxO%x`Ei5Ti!s51kfZ3nWj&&BxY-$ zQNJ@b&1&PJdwC~v)M6mZ$)=Yy3K+C`0bL}3H!_jb_BL0DX9kIZ6HX+EFkEC5)N?Tg zLd@EjE-~I~>7DRF8hbbRr?GXVhzdt?x8cCE*+`O_CFvEND+XAcqRDW=*h+>M3RR5x zF8A3=Vrzvx%Tg;OQZ%bsb%i{6P)dGX8CQbON`{y6R?xId5&<@W$^(?p=KzCymmXe` zY^5H{tSRNnJUfn8M>qxwd1Z&mWx{$eKLYGZn_|ENLInJmIRwSJ1bkd@u!eyi93mwH zydppeDHIiDV;t%fZ2o-Si-+Ue@%CADxKapGr$DGYKy z!#dpC@HbHP{MK#ns-f&Ir#p$gYV6y9zdJ<4kQ`=h@RcQ~h6aKAqH&7@XJ7+1fi)on zX2hK^gbHhAsDZ=W)i0s45dhyiDdpi@OE0(_WgZPC(h#%rNwBb@!KBSUEpWWUN#)*- zUIfxgKvB!Uo23y9B%5?n{R-5q;bK?XU%K5eOTvW_3^uN1nHRiJ2&<`1;+;feZ2YhS zjWc92EgXtwURHdFd2B7pY=&JoOpwfVg@A}M{t%+cW|EZTFv-j#Iz|L)ZG*<9Okof4 zp|#vzZFD01m~vFecao$=B!y`fl4}TdkYE=OTgbYSY(zkv;xgiskq{+u4V)xO&mvkD z84^56%vmaLlEV^_a|xS<42&T9A23i$;06hNq#IO^XNx3tGSd%r{OXMR5sODiHG)Bn*?vt6mE(D1O+^LV6 z1ZP47KUB^fq zaB(2OVdw^ghpHMXx)^;6^g%nes8G_XEyEam!01pSJ;8==MsCrVIEY<&Y@l=+GGO95 z*3)+a_-s9CY{M%pBBKVs8<2I)Vs>Rnk&9_Tk}@dg!`+V5Hh6fUn1itl;~La#XyQX> z2MmvvoveB%NymwtphtT(Z5+JT=x$iqZxXl+;^Mf1BW@d&yNX+(Abz(7+l&X|w@`2g z=esWTmq++PSxO;~QS`TD$qnC#}i&!zCIY$$E2&l8Xw`aS9Y8(V;1Rm1mVfIFL z!yG~yP}lx;BHItDKM?yOcOcA2bGi{af-r>G;~0wsMu@K#$V{l0{9~u^RcNb%JcVzD zJHDSHUy9x;Sd39pguIB3hL(ZGG7A8)h`8ukxU+CP(x^+3t5BtaJH^lw6eOzxMS{#Is~ z;kFxI*>=m6>o#5oYsDh)PKDv2h8`G78c@ z#w(Io47+FREf^<75cK-8QBl6j$P=gUwyy@sOu%P)%P5$fa_o z90-wJOBGPaObZI7+zq5%b{YYW6n7g-1-9-r0?KuxYV5I1N&$fB$W=MPwxdN4g;b0e zN9}aRw8WSued*0|5*% zuD@K#Sg<7YVF)&K{mK?k+zRV_7_*Px2Ont=7I-gqWv)K4|ZOk5(!X#E)>;NZf7Nufh6U~{iT$=paLrsM zo0=@&xS~)^64+5FkH3>P(kd^-*?D#r7gtum4FcQHEfn(NY?*k~(kpMWAi8NrfqQ=? zJ<)4C_vM?r35sWEGipd9ieE+mG)`ODS^o*cHd`n1A~79g;n(rzVhF(_QMz?c?T#T0d!Z)qzDLE)OO_0cx7oVdQfrubxNmj%FL09Yvjr6`@Pt!EMbU4ck4Z80c zrrhJG)#@W*uq;MF3~WK@$=+apPl+8E2TL0gBVwpPksOoQXCqkI@(SZN1tfs3PJ$_g z#YNx<+*b0zTejrPB3c5RDHN*Z@_0m#7h#c_Nnj&V?VwQBaf^VQ0qm(IvRPPyco$YA zS6nG`q-QxvG3;MwMhDb`l6|v#0_#D_18&`%bTO=5s6Qnx3+E-XJ~4D-ZzY$)QCNu5 zq$wx3Q=l~kZW;;(5tvrDLNkqR1ZPIov5W?yYQ+l!hKyz&3*HaC&UzM?ch4TW-;Q8J zD9sSKLxX%xz*YtO&B8G6p2KAT+goD>*l6y&SP-Zg=n8y6 z@Mv-wUDNafwsSvgv)ca1Uj1WHYGvtrdQ?zuy*gjn^V|yxE!RYL5n`AFfk3d(P<}w* zu>4JF!J)``SyaJ6&ZuK7fCa%oYzFW2xlA+5Cf|lSu>A z9z(+=O2C+~w7K1zY??^P6CoeRNwPGQL~42$Q7mFAmCMH@d}hd6z#ud1{Ap7mh@osxji8O zLxPGJtf|)N*P(o5J*uum7;3P)ZmLCUVuAq<5mszlRhJa>QB^{je(J=&tgw^f@c8ng zsM58G;34f%_E#vct<2qc1!cq|C(o}Uk{ktt0EeUM9BOV}4`=gNt-9ViSDldHAkE|F#b#>4A^l;-x@{6Sux68)Y zRw;e|_>w19pWlx~4mlbHcb=GsW$J!OS9^IkwQny$Xs2U~awn(ULt;CHlS;Z1f!;;=i}wn-+b+!hw{T26N?S$Gnq<+j{PdMRa+MfMf= z3FuG=%H*J(Gg?u}S;lO0_m!a$w`8zrRb58V44dh$$3iq#U8pzXs$Vg3+U26_x4Rdb9PA(Wb-rJ~eVsO#~ST!PyoN z62obzg23cWACtXKU>R*ZbuoE5{G>|J2Q)|kQbR`~3!>^6TZ{2(IF1t*mOm_*k-3_* zXdJQz*q6zs+$zPJ__9CQ^s-$?aL~!}T8R2A=f#^7BjlsEGg2ynCzKX;5>!bb>DZjo z7>@LeeI%1k*L-6)13BfB_RY%u=Rdim?8}=&A(5o>Zy9kP6p7rKCN~Qitq3EbN8l8Y z+FGIIXX~t#IFijl$E1zGYyFOV_NnT>q(88|x zlCmTRFFUW{gXgv^&_eg6pHr#8i42kwop?!WC=O;qSF_@Q%3ad~k(s24-Y^+Va0~}^ zTYI|~fMuxdke{+=2}|iDc!I9G9s_J#qofx((qAjG9|62sIe0c7*4t|C9rrXKCiR*> zY4@oo)O3m63;+)34YtlG#hnO~a}H`w`KV{=5FnH7DV04?1L?OdmuC+FM4dBT=`8c` zzY0u*dk;J8OlgJOZc z?Ug|_bYpKsf)ezXMG+J6MuK49nYE;$;*m6lu``=*MN}%%jSJW%&T&3_Edo4FZRzzg z3aGWQ5^C~8LO7MK0F7zGpB>uFd&hc>Y1pxeh6hHWRHF=?dsJVi(R z4{1f*pKM3a|L6z4#a*Es6wXiWW$RBFNyGRK>EdBPB9(`=)C=SOSccYjN)1t82O&Q_jd8u1nLWm(ZMvvoCSx+>7o4+{z zqM{ZSaFi)E78Y`5@6;7hiRDf=(&70WwK_F`-;!og(yvjOr&$qKLZ%B#ZjDF_QmSdG z1J=4rlx0cZnIPzD49|h8M52*zXx}}LnT9mF8Y3mS;XkY^p$`GKVqiM```2H+c92I^Op?x)t=cvC z`sG2kpXsQ1?CXCdp4wI7JbNy6eLdpv9t49$B;MxK3G=9Vd2epJksz{#VQ=Wu?ZaxGeeZd?<=Sem`I zb~<)aQ%AFnw-SvuSlm?_#PQ<9YNiw;#&|T7-1yY zz%Ujd0yyeSHY4s2lbn+y`>3E8Z0V^ViK;(ADHqNfw~W6w(G~=a@P_kR91~pJh?Do0HIPOkCU^=GgmB;|(Kgv!a-y>=>f#3Upg-6vy{I z<3+L2OlsvGgN|b75XH^;i`%moH&wbWZi-@q1bdhh+`yjZ1oto}xp+Oxx$a$$b4+`h zQ=HKp=7{Gr=Q*A^%<;};&9wW%Z+>u^Ufd*u+j^cd+7UIa^CGZ20rX(dpm}Y8C!p19 z@)VEwW9A6qX)OuOR$CKKPB-BcT5|;M7Blc<8_BVm!ug$Vm=?s4iQ1B7Ul!f-C2E?Q zH%&=3&zT(*u8fI%TV|vyvr>Rx7a{Rtma#EPcx~SnFC8NJlx&_K+IXdP8s9V->(aF} zZla%?iWjAbQ|=-dYqL@n&8Z6K5SnD77P3uE87PYfq)z;g9@no)_(Y_q3M zYi4O89M_oCrn%%ak)X{%S*&hLW^3EouvMDInASL^s%e60MAo(rSuB=R{4qiLF+uN% z$xAQ<*1f^Wc(PL29?A@sHx(?xC6tM4o~le#wnu=|#*-D?#Y-;|*3l2=I27YVl`yqA_nK z9=4#3O`d>mO_Lr~57G&H6(?p(jO7p^W&Voh-K0oT-sZFs!ab7o7h~oU@j5`Nj5J2|XF9_p*zZd*lQE79 zd_V09z0UvWO^KAA<5N5_dGty9oR< zMNp8J@SbUYDtfH2cU;wXVb{Gi zYfxs|k@eV3VEXrm!KIPKubT-mH&kKyWc9qIKZTB?*_$)*g?uC|SRkQ11xk9pWbZ zB@zFB(pm{NQlXHlgaS9~;+ztNngE2F&`?sH8@h&BL7?{(Z9+@-@IfyJFr(fQhVSaZ zHtd_qV&Qy#})`YnQ5J>IcFp;@Wsti3-} z`EX(~H8r_>$f#wi9r}hQp+SDt*HsAdNSAcT`4N za5~KmHkaZCZjqv08vv{28|d|~o}?+Xil$Y4yXuDNCA=d=$0v4>oklS(7&8ze^Anpm zgvyX3{Q7NQ!*=VF+DMfoWoYQgxX0+~Vpxdv1xLqj@vZ2Z2v(i!Hi~9(hng$;%P3fI z-EM$(&(*_a7e&O8|5*@7(=Q6-kqyF&W3c6rcJ6dEZbUSd<#oVz>~lgD5qLkZhEx%+ zj*JNzBkR>6a;wie4)e%^ym0|WokqH91oQ#i8tkKyQ~@#*h#jGOC;Exb$N*|2`WL$N zRMP!87Kl_l?cl|Qxy}jz;ps#9&F9OQX;Q@LCZ-Xg3!X97K3=_9g;Hs;21(lLmw7i{qM9yI~T~PLtAN*d%c5L z%T4Tnp=PkPjU$^XQIgX^qa^Le-iH6^rGw1;$Mrix_bKDY(twAsfI75!Qe`_?@~!m_ z_gp1j$Wg}#*(?4Pm;b^`Z==cBjiZ4l2e zrc^63L^4^g#DWO29tfdW(-)()B55RY%IuL$s9GhTaF#50OJp08dp1pH4W8Z*m_~eg zA-g$(TX)(LlOm+o)8C>NH07#PA1=Qnp|HsYH*9JpR&H-t$evNcZ8mKu*Y-rnlAA6% z@`^a3rGagL1*zJs>YXR5avozPm{O*gCgw#06<1&yh zan>UR8>j#vICQ`uCs4rP%rRD@9u(w@HVV@A4dkLI*4;KTB~71$!EzJ=V^$f{BO=3* zGmJ8(^|PRp6G*~hK^X|Lj+3?JXs=1f@aoqBY`Iu5VlZkqOf-**>sVo94pEZE?3Ujw zJ+0PHZL+NlDSj#nlypUya>W@6s~O-?Y-W8gM%kv9H5Ea`q$3rOwd=&f3~3PVyt-aXB7OX@Pa?Y3U0NA`oDs%4nU5Pw={BeeCq)O%b>ov3#Rwu;ZZ+a0 zr5x^cg9RyxN!2tMx0&8U+2?`ua5mlLTJ*3=TH!@|0lxql*e@V2t%n039we5MUrh z=o#MlFzTX~?rk78X91wRvH@O!Xgv5z4CQWzOQXPyp`eywy_@rY7 z#>k?8MP?j;pN2f_HFn6bgC2int|C)dCr8%lZAPoKjbrPHFnbxeNR-s3?rRr;^B7<`wlOtnWca{&_Z zIZ|i_5unc;?he?&U)(q*vfp)*VS@|*s`X6TV$rFNgW@<>_EJu}M=)R;^g}zlaIJ4B zNpW^>G1avo5iOq(QxJWRfgf>{X`!`vYV3!G;&Z7Oa}hpsa7%JeI&_5Tg=toz6)V)R za9U(Uiiq8`6HS<;zoZ(d8nL*U8Tm3EK$@5dzX_#DoAm{Ux)Ub2M- z8x;4wLBc>{72?|%ZB65$$sn_zYq2=&ts$~B0`PMilmEL;6o3yhu726|Lxq)uXAP;$ zUC0o(?kGAWaT60izJNK%1 zgBPbDAf^H#3-Ny!3Crg0fO-B-Qs8rCC5vg{Z-YDQh#*lTD6FPG*4Cjntw-2!2xJE0 ztQ7%%XBirDswY$M8yV17N}$4*rY%jH*mS9N?G@-!sKTY@BiOiqJq?@Jei8buT@RgN zM5!xzp@hGhARx{_7mI9F4>ujW=d21^wQU3)y3i z@!X9pFvcA**`buuUX*s&!9e>h-n2G-`ucNwG=vAdKuJp&ET+(v2_`zSfwpMkao7JF z(K#sHG;esN>FEf5+HXUqOog<}0wMeXVGpnb3cUbOM79Z(zzfZA54(_Xs89zuQ!Z>+ z%u1s%SbaM(kVYiLqp69_l*nZkIATL=9%eSvnuvDHXa-@Y-1IMZL5ougV=zazfB6CL z%z05JHe1&mw=N+?1muO{b;pKA6V7a0(vqOLG{gT0L_$mlUoCt5p-3X} zp~>K*a0Hsj0Peu@6tA_yffv0KKsIUglmi~{gE6EPVu_=P$T|vGKo6Q34bqq@&`BP1 zHoBJaV7D~Lz<(jxk;u#nW6pt3*B-2@)PI2s3MM!XVe_{Th z%E={D%MB=sF|8+uF1J0s5G6?rCdxH`sqpfA%GBt%f-jv~PH<>2oRW-d*he%WcmTAk zrAnh${G29igc|v*x5rM?kQ7Zxdf3NJqisyV+;d{`?lB5MLSnP8h_(koZ1UZ;gqois zP?d;e_e$7`S{`^YhPz>_j~$5KYbfy+do+BqlF~_^1B^8mIP0vmxc}6gX4F)FC#Cq* zCZ+UIg^)wvd4t83*h(%GU?345%m4De<_{L%v^qn88kArGK}KpAIE9nL0HIn#Ug+&~zU^A5MgWq!7AjPnjE-Z~Vhf{czh+|d z;B#L}$o?B@l=cb-f}D<>D6Bm|eB>a4)O_TSmB5s@i-#n0;(9qa&NbV*5s#uq;u6d7jA5h)H4 ze{oO2ae+u6_##vwpf&`TR4okADw$afiu2_o*p-^74vEn~>VUK#HK=fx?Y4_P5|s&B{=)1CzTlkmtioiWfi1Z!d?QsJ1=Kqt{V3=e1GUg(&xCGuTuo$}J4Yoj>4W`J|&c^iDz~z@B z2Y6q>M~@!pD73=fh?L^8V0IiC1qEb1i}a{(E2L%H#{KRlBeKswV%J|KCDH>t8gY%T zn;q8dRt+2yK^W)|ZDHtzyc50xIz`1>hSe!7LO{tNh(w@Y0jghvJP30 zEJ0X$ggAIce%p6)7fYH5fFLiaqtiv4z(8ahSQ;9qO+cxjNLmsw843@f8m|FpoH1{u zF0Yv;3C0wUmYvd(0wyM`gCXER(s>VL7m1zr?*e zX_6PFuZ~!T6D1Sfv@DLnm0_9z(4t!KtQx<+0NAfPq-8}{TsC$b1e>g$iUz9(aumyA=$DYGVX(7CBOB$f*KWTg_8{>}@zoAnCw7P2N)kT8X+~;2Jt) z(wu_lYl%f3rn~=8@Y#w`Dr*!VI%HlUj@Qx#cT3m^d~|}Efhk7aOJw1-z$>M?thZdg z+D;1>05-@4WMiPX6i`$g0P--+Xx|#1n1G&gS&j78hxSJR42$Q7X~1E!O8+nh`$+2z zE`2Tj2vT#}{Xg2^NW~NTqR@NPVK_f!IlCNdJ2LCUD)_LEWEoUPNEp!Fc|eAX+5yp? zxJ_D$#pOizo<3DES7^$zv2N{&ymG6&Ir6AZi72%PW0VvbM=6dLHQ2Vq*^!Nl?DyHF zs}VjYMKFg&z3OOYQ=HEk)V5%Sd8bGkToM5vDM?|$YAjV=)G5J*vpms*vj;5zjY&o=jawbr zL1RVPfq44amB&DKQF@;CL!ZpHb8j(`#g@hexwT|)G9#-cxjQFPVih%DmoBUDqAMxm ztP-s-Hya+*|KNPSdEjY~adbktbJ{jfg+sph6e)aUE@zcHxA=Uq0u-qEC6d?H+^iF& zLbvn;b8GFUg||I1z5A1p3#RI0kEbJpF?8B*jOnoR;UtE03-i=z3Mi5cK@1iG>9ulQ z;Pn@cB3W9C0`%4y&>`b|$#H=gvTb_19K5pLl#GeYn z46_h&4tuw4FeSX29|#6nhlfRkV@2#9O(`MABgpT_JhtORswNQPKmiA#z7XS=M5GiN z#62_|)%*>ez|3jjha>BVbp`PbuS?3+J?%hDi6DUG2FQTpcS{6aPqmm-olSB@b&R0N zByGQBl3sk33kPm80f}8=p@ukZrKRX8maU|@IM6r%uf9RGA94J&H5gml{ zBaBNH04KP+pd9LyTI8bbD>bBRF9e}Fyql$d2kB2?!{Zi1uw(+q9E8Hd{^meTAi;nw z^u7a-Pq!U#Gz*jbbugR(ju2oOI+b(7jx z1Hv=NP~;%Svw`!~eL8r8d8Q{$FT&v?U{f}vOeez*rFCVUIOBuEE2G7L5EoN|H1r*$Bt5f!vCQl zo*(BSwtFKnS0A}tEvr~zPh2l#4oaiOoD2*BNbBnE3)7pt7S?)6C{P*r4F(V$K*&D? z;cV9{aF2Suj>fQvLufRsAkIS0`4z)+f(-*%*`g3#cKkGKBGL*?)Fu_NQ}CvH(LBK)elVggGB)L{h6 zX%D3~JBEqs{y@*spX3k777}IxpjZ7-;Y(ErpJOD^n{JS5aXLzkchPczEcr!((5+ex zQXw#!ls~7#C24tsQW-z*Tf)FU$^gCUgK6tm-YmKR-G>XWs2H99*^~WelRTd2;X;O` z^>AtnDA&{GFJ_vx%wPi&&@1f>6_ z_4K7~dSSm{bU^xzGmG*dj6aUewaK6=`QcG0I-HT75?$mc+GS5WL_-eZIG&a~0q|{5 zh&%3);0Ja=s!fT>Sx5w}t{d?v1L5XQP=Fh=$eKvO1jYc*(R8P(05JQvR3JLbQ_K>= z2Whb#cJDeflc#zH2ijnYDu00SNWCdS61I3Xa(E*?0cn(2G+KPqk z01Z?e7-iMvbcAw}xuVBI$bmrk#?S?|2_*A7;x@*VAqlL;3y>h@I(-LJ#}2LMv<|>K z&bLHX*at=ir(6PNPzU-Twv3h)LIG71VglHB^bFgVvI5NjKwMZ-psWF^=hPSHIUbUWIi7=lNTmA3&dVd zbPLz*H0y%F@EJ8X;p|}ET+Zf9k1Rd#M_k4756;~}yOz0Dtt$SIBNj(|-s#YPiWPL5E6q6kwA(o1-$fLevbov=)T#)L)O%*||q2PK9( zgWsljhNvk2q68CU&F>tKG(IhzBU6EQPp)j5#W4gOx%_)zVf-1OKq6|Ip+3(jGw8Qi z&dk3upp|Ud>DFfVkP%Z`+IiR=TFs6foRSl z3nQ5P5%vC3-H)g*kSde3xV?exo&vCN(5QZ)^$L^0Xl|zcXb{uHkNEnBrLr?;BBUj> z5LL7Q6c|$6J!DfryFWmVDUwmM$Xp7u=8ypWAocZ^cto7}QJ0lo+H1~FxxQf5anFj_ z0Ex~DtLnj+z?E%Tp9lxU3P~#UgULQsW_8FEqIL)2b<8B)Fl#gs#6hTY9Jq>BgVT;9IJed#zfY~OT-0XR9M5Z45u=N5TrLCtaaOuj6s>DG%*2~ zqBb9yt4SN3e{vtcQqUqB^I97!C(ZAR6{}Mcw(W8S=fx zC161$=6L^lg>BgdhuQ?>-)o#5fo51d=4E$?dWv4^3j~U-@Pu8lr|5Nq;jYq`#9~#n zB-Cgnnw8v!j&=_)0_r@E6?xu*iSaP$Y?Eox*7aGXR{)uZ;L{_#XqZU{j{`c00THXz z7!)+X$iD$8vcZOflLX@eLkgc4^-i}7HxPi~i7_ipwc_VOE247}($57c?+#*xmUXIS zAso1YtCS;-Iy+*u$TL0k&CvDAvzr}I1eXC&Iv1kyR+^lrjS>up)-vEN06~%tZ>MN- zblU6~?S*?BS^+gk(-M6RVhjZ`Sc2Vj`Hfx}=9`=H*vf#%ngHciiuK&8O62n`$6{I|(G+ttmUPp&>6A zrI`w35=WvK3N3D+VH;gK+@}JRL;(C%8bSo01zx<*QLL}5RmFmcMcOz96m$z1B(faoZ%A`I~>l&27AGZ-D9%MWr3 zK$xJF2AfbZd`JF9Lr``Eg3xS(fCZ^sj$0C?x1k>1w}=f38VNS)xJRW!C`bd@lrPa} zI)S^)+d^>@W!S(bz>8oFWU5>ZWT_klU=a0!wk3<#gzHL%aSe~2}W;* zpFHc-6WO-`T!i0R;Ccd*w1n9-rwO6SMC#fWwnEmD+KU?n)8O+U;*LQjINnKJ)+kj;J`Jg9%f++0?|~mgAZ9l zS_NCP&Kat3%y46vBzs07+;)I#a9{zeG+otNq}Qf^*5g9cXs*Vj5Uz)$F---eD5ecq zs)8y=h(pipudb?qD|0l+PK|pUI8QSeY=0~-W`Ghpf`|~17%4IBtz>wNb5S_a#tmK} z7z<5}8IdCv16cgJ#w;3|!0s(K`p9@$`D4a25=e^;7`1A!vldBIh}4KjfmI0zK~Ys& z#9E&XyLeWy7JQnZ3kd~M#*ij4i>?~b zmK&4x$~-itNJblQnc7E%M@0iQ+&>~YHb-PWi5QV`o zpMr`BUp3ec$_)!SlxS?QLsyIkl*26LH=S=CJsueYaT~ZoMLF!cz*>^{kxpYI5^dB!*sTx0qu@Pg-e3{8iOQwnMmj#VPW5;C^%C+b*`*&ZWOfkqxa#h$>l z#wP-c3<8S`$x=!U2y5OkY0Q2CYgta9c-NJyFZnx3eL^OnBxt^_n8U!IXy)hR%-PZy z88SYmQ`9l&paJw7+xAt2O0@y+m|*|&Cjp4Y=yk`lvHu8oQ{x|7I6c53JXkpi6CL@% zgH87O98}$(qJbU?35cUmQyp>y?LTD`*atftX9JjVIQSwK$oNtcLKv8)F z;Y`43RI+l3rtR9`8Bkxm z2xNGUu*+S+;(Y}fa7LO6j(S0o+ZU#e1^^QVdZ!aXO}MhI#>}8Uk z`0+_kUoTXhPno1mQ{l&n%7SD4T_aJCF*4BXO;9Gnh~0gmSSl+4D-Cq41s7ljBx8*X zXS4v>Whp8E4<~B~k}=aN(HBHW7MM|9T(tqNO@VdxQC!R1?~NxY3k)p*NkdR4U*3fOetWYw> zaSIl9ZG*(ywC^(YCo1U5!P(A~o|g!+hvt!>{MxMrfK^a=!~d=U(gr{gWN{MxI^0iD z061(HNr8^g2<`y6>etHN}^V1R0DjB?wP-ys~O3@iW zB1D7t)!Vd)S+5c;(%#9Qy8f~zj(E;q4*~C05(vw|4qnQ=;dZSH*2&lN86&=c^8jyW zViAJGViSNN@~NtD0|0}vQ9uYu;~_;A&J{jHHOr8Q3c=t43XHDO(5wIqci8~J+X~3> ztemHYC73irsm?G7Q2AM98uO$9LA`)6xr3PCnheOd4Q1^xVivv{-xlg zBHt+{Qh`hU+|z>{Dz&KJ-Xo8OGCn`lRa- zO@%wb{8Kdqs zi%1I(NY~o&XM*2hOwxaYCkl3R0HczwndTZ51p4WLXH1VnT;$EvBwI@eCn!F^`i{T` zCS`?$;CbVp9QlN&KjV)a9V|_fsB~ZYb}qXVPVJ+n!snEw5;t;0$Ie+2$s<60#>83 zheBkahXC4z5hn_T=TphEGaEdt^G>EbIU)XXRSyS;UezU;=$bRlnI5`mmm@=m=4U>c zKSs%ZEK}2|nSiQ_=>hrMMp3qZaIxS(2(afD`;E0Yh^Ix zwmyK67*6b+rK~tRIspbGuy@G9Hg=0gbzVmu-v!Q2Ok*S+Fc8JoDM%vc43jtpjf@4% zC!o(!f54wg51T^Rfb0t>-VPSf!#cCaw9X2c#T|Q8^$q;aS=!v>@03d!w3lfd_!dm;Z z&jj<2@M~JMw^U<=laV{5FkXNif)Br+v0U)Oc!FdKPZeQYSgN2Q)7|He8h#9_!HmCq z%iHf_He>X^P#UL+^Fu~zv1~xOHdJBrBrp) z!1)m*RJLtm6QBpWzfXdp78icrLMzLziO&d#NJ+ zFQqvCqEE8WWu`(M%{zieY=yQ(4}CCe2H6Qb+z3}muYxFp(m|x2PQ(y>HBFwR-|&rS ze3YeGZzWWIbRhaKyFRsw;ghG}0&>QG)Xew;fCOO%R!Olw3tk;!1MQ+J3l(RSQnZB+ zas}-^kpqLf`!MVC+`7K=7yu7nl7xQT9l|>Xu2(e(tg?&X>L{|xZ=jjM-)Yz3`U9T= zgMd+GEmV7Pa0McR&I261)mov`Pr<600v8HduI8GgK^SRPkVIyQ3|K-W#sf}C$P#;< zc?U$5#*vBfSTty=bcOTxCsWg)4eJK>`DT`MTn1;XavRvv=62fhi*X(tl^}1Rj~CKh zv1s-W6E?;e3!6n2WtdEyn5Uq4^_CCUF@6DeJd&5%9~IgIly92o9fL%N>Lp}V@s=iD zx@4Sr%R_Rf1(x3~3Ha$GbD zc@eXpETAzL1^c(KGM&`n34Bq9jT-CO%#3M%tuDkWFRjZIl zeUD=8AWRzYosnWM3kcQ=)XCE1p>xMo0e5D_5Hhm}g>n^4dS9u5@fE8w1(Tm?4gg&mm&XL1DoWr2cI<|5_qtYx6mHJu&4qeJ0)k&J%q_L;?(f;Ko`@+I<^I z%yS3;>u9hgI%2#>^6pQLrt>RY3VrOJQ#2MR+P7d3&k=-+qgZ@hrZ7A+qgG&0wX#ih zK$>q~qBE@t&ay3Z1azput7CIlTld^;SUqNjo_wyqBUpt}2_^xWUGl;AhP82ri_9*m z)r5{nShLAJ_o+DP$;&LPgjQDhG+wPmp?r~Rt z1L?{~kzD4U9=iE9A>%71F-*Fqb2rCds`RSvOD|x$US7Mm^Ub+Lg4A!zpa8mS=y>!h zA;<#pfH<&*o*=+gb}b^KyTT|1UA7~-H2#^x%*~WcUX;{zQ~*m0hLE1(~U{c=6Nw|JJNIY&~$ptxZ04ey94OCj)w#_ea zZDw*?z(Sc^oh)dMLL>!Z)eh%<}`MtR-!q3)PZaF*YB-xVTb6|moT zH@M1TtKNSNRqBNT^%YjTJjxD>Fe}$dcZC5lV5Xxn%opQ1U!=dnp$x(u7TjfiM_pVyh{g)rf z?irB-W$~4`pI#HW18f-8VQ-^MjY~I1wtOifqRzZ;+Q?%vbOBg;LthBk>>4z{NK^(t zyk4e8!I}f7$oy6(O%>M60ht_T<2Q9R!1SuE<)$#^rC*mR>TDu=CXG7^LUkd9kgDkx zFxL>sLo@6w!V`{(#FwW=j0Dhn3+4ryQ2ylDs|tF&dZkRSxDaZpVLPVDMwaXT8uZBbTjt;Eb3$S3>%*+m^93)Zwl& zx@36@!|kocWWeo7h9Q|n>^?3DBdJ?;j{LzDrqY=!4*oZabceTl5^rb(^WtSB2Gdubp<^H^g8I4mTM zLWo8hkc65+HAHt8NfOLn{a!}MU_WTS!|-af-;A!fyW|Jwja-e?^B;-<8gGG$xfH*0 z&D9H6fVA*Z(iD_Vpr(T|n{2@Fq=7#+bEhkV(P#|33E6^Tn`$^O`-;kKtS37SCHi@+ zvv;KvB&r+wwrtj6zI8UC-^_59*@XYF&C!+ zxF7%t${$z=AqSE?AnAG^{k&2@S$eaC03n4u*c$Kv28q^Mc}Sqag0BEo*s~uvoq#YE z%5i#d>9QE!aM2~D&MX6{*oO=qj$Mk@Vp1i*NJSV|cN#GjQdh7*YX=qn+>b>E!}Z7x zGddw++;t+9JTH{Y>bP=(lqh1b)Tk!Q^*YmN0qM>mkq(`ucumIvWq6Y_*o@at!F<0F zdDt9yG60MbEN};lp-fYd(WHhXt|%Lv=_!Dm5(_y{5hVnHB9^6DwMkNw4ncj>6n_~R zzJr=WCb!GsA&!DedNgL3X4b z669v1pg*@p%sm#Eo4RAFNOA_soDgxSaO#s<<_KAs&+!Z)9P&B&aX^ALiZCEC9ihd( z$#SHQ@9q@bnZ(r-{!1DmW;WJ)im%Eylxv6l5I8iO5YGR-vQu%6W_E!*f_cy8fqEe^ zO_WF{m|Pa!lbiwYtRNWL@+%dC6Ozyn$90vWUnhEEB!7cA-l|n*q7d8YN8jdR-)mDm zKRMAh8QCNZM~edPgj`&_-W>$bamLUx%_2gtSj#>bq@XTv`ytCvF;ciWxU_9cdBslU zp39MbC6rMOh7=V1TvQ=eiq7;O&Y&X(l7`le4gA>x(?w;s>k$#9pZj21 z0L{U;OI|DF9>j%!HRQHGE|})O4BFSL1Jhstv{lAWepViOy+NjK=&>BMX^w%5z#l+O zvw(FVPiIaq3^KN=u>lZwCi{i@r2r0qu_q!oCragdNsO!};biHi-xuWU?mG>Yg`Qz* zCtuq+H=y$wPP*WaZObXzY{eWcw(0~y;?4IUw=7C(}Hvis)i`JBt(%|(n=kElt0H-3h5ODmt>NxVkCEtbAZAw zsof_11zqWdSWeNiR55r7Ystr>i+YkO7JrU zs!heGzFL5=3`|s*ld6?ToMG}ESimb3wqQkj@Xksn;2hu`3|o$Q0EB1<$2>>@KbJcx zQHSbYssboi1~Z!RUcR{sIz=t-@ymsnADkyw)#n^nA6Uzx2WGhe;W*am05$dlP?Poc z8t5;!r2y%57y!kKvA0AhhQ2Hb6}lz6NWdAN{=7)Qe(nj~VvJH;bFUUhL)OZ0u9 zZYyoBeUqtKy}=nh1U9-RX&u7$4i%R|A~gUQ7aesl!Ho^AYi1~Y2%b1O%~Kacc%)x$ zI1o=vJZo21%t4J!H;^vAc_DWZQw%4s(z2z=B)ibajY_-m(=#B&$C8PKf(~I}KCnDj zeB{)Y2r<2gWMf`#=F6~j!4m4kJd8RH1QIyopQo^xr*S_YX+bPyq&~_6MkCXg(}zm< zmWP^>u2^z7)$zSi=xR`P2~S)ZZqVxj_JWjk0GYLuYsSegD=$htz7PXfO zqL&O1G(w#1S;)dSoDr{{Tc1 z>=;B#T^4BcP{p-vMhK7)+?Z#d+q+^)x6a2Zg!7Z~sZ0FouLU{Tc&hh16I0<26h;g+ zG$At1-r+teXg z%80Uu^2n;Br+LVJ&pm<{K3#zxi=KBfLlhTQh~pn0R-Yzi1!b5!>BX@AEDM*mtcD3- z!H-unKX^w|Ss zq(}&M6T^g1iuMz1Ob=&n(Mq}jEgJSDO2{{9kJAS<1|ZTL)2kwsa=#I+E!^Y{A}iYQ zN-MxjtFq(@(T~LoM8YKq5)GI|j}~MMxI~UdTF}h@BIA{<&b_9iBNh~7A*C@l{3l0~ zQfsYN6=T zd;d`U#wi%-V0PoJ-&rQALI`wJN6H(9I3|WhsnI_%OFVxINgdLZ9S1r1JN`l){7jFs(`c@ zI8_Ab>_VzmFt!GBu<&xqm&b?(cw_B@IJV6^45?*Ubfth=E*eIr9P+N3T z&Q4jGr4gPI_KH<4wsNU#wh`f;{kMjZS8pbLt3iSEs00zrl-Sjw5=@X_(!}Q+4yD^n zsL~`6z0^Gx=-RG#QN_asNN0Bo-9J|QLvHPEUm;fy`fb!I=*1qn%y$qij1KQv76V&# zPuv=Ty#;sv{~1t*-PVCOrUojEilp~J?3k3!E1-8$!Bc+eQupX?muprsK$cKY>z&w4X^>R7VZ1!0qMbw9j#U*4O(DsoG9@(Eu;Y^Dz1%=~C)9Ftd z{+zsan;LSdAv8yxBzOb>=aOn2&S#5ZTo;A5)v?BC^V|en@t_^T;2uGF`)*-c20Tn= z?_IN)FEIZ7l1B%(_tXszd76rBqpczAsj*Y6W(S+9G){AyAJ*P%dJjk%TPG?CZYT!M z0Xn5)Ik5}4!FxB?F9qF|)#_WC#R!;AlLl6x<@?(hDwX>faYKh&B2msLHmNvbBql83Fw!BJ>JPleeSRr$iwcw(dHA1^^N4nGgyN)tqVs4OJ0v$e<(p9H~i*}#* zr5|#FpLNo|TKMU)C5MB;QEg6At;s%LwpVL*b-7p41Rgb1fkv4vq9y|@T&xHtTX=Vk z;oT}4ibHDzfmOyaHEN1ADpq+VK;S|S3c%8k!^d($XjLEz1=88*GvK)0#D};Le6tKZ z$u)9C!{mK%2+PEN1@jC}Lf?VfgHMuQHiuul=RlAVX_JkVECWybss!00cA=p=yeX!{ z5p*B_zZhHUz(!zcJu83}Ku!EXdm0Y?ut?`|Cv{{zoFl-71nB!~z`%GE~zcpEDi9M?yEvQ=v=8rmY3 zr#mMYqY;2e6>L9Sk@&(B)<8=5NBZY@l;aY=Qq`1bf)iBJzc*@MZ@ivNaI1(Ot%~X# z1Zqnw>3q!!hSbrjbE84rjMC`35T+t%gNuf(??9>y#UdLp+S=~L z86_Lj;KkzlAyF10@`)nQ7g}<8`PbD@!N37^q3W3qi?RR5HeUYvu1l9<3hR#}3@Ke= z5jTY;#eH(Th=9BlFW=-SMe{W=%u!NhPYly_o)ZzJ1ysWe*?4`8H&EAvgmyvv5r58! z$1$3rd^j%I4Kxp@mMLF}PI)pZJf*mA+?$*)mrwi`u`#yx1_QvZag!h2l~O`ez#e%G zg|^(yATyI`bd8URXfiDdM5%YfvFr6RlpehWAow8FpwV4K1EkIA;)wkU%|&gx)jz?j zH4ueKGUjb`aM4EDOCwMYkz$YxmpcFIH7?Bsthyd_pjO3@!|tj_BVTtPkmEuA{8<5YgUZr15Ot??nB+7J-`%M z3;t3J;fiKC4ZuYek%zQFi8!Ew5B~N%55_$rJcU8?hoh3nGI_{YBV{mk^e5_Fm1wKt z62iL-ciQ`uZqEpFTjFODej1W@7Z%raDXCvd6SzM0oM!M)`$~G<4hjIgamF$PyWA8k zQ@u_^lAs_y2FK^!?zFRTrd!?R>-K39Wu{qb!>p_6VQ0+-a?-U9@KdOOGr>qq;}ts! z;H`u7lWJNSjZ#SRDz^eKAs*Lt=kLDGEHou0*HHx<6}m(L#HI(=+KiSWTWvI+(6=Z&0*BNNs1EI44p$i6z@F9a3B*2`2*iQc$|DU4Kn-^s*E#{n;Cb! zqL=pNWZJ^yAbK$FV+wVDZ@9~bLa{7RAK!bjAoq}vq~X<2_9|@fDOF94e?fYQBl-u2 zRaY3SYT@x{^%Sje>fc1pYt&10-i!b9DI4D!i~BHPHcm54gEBi*l2Cpu9TFuYEyzUE z5KOOCGRCB0#X74+^F9s5(^XY6MAKZ5nU@q`Xtf~&%qjtq=%o5G@n4)WHxf;YE}7$S zmsRP~TtFH;8kIsGDmZgeq7Gt3f7k!A4 zKc{zMYcS}o{aVfs(1(;=1pG_RI6y+q1yGOzDGX1mKFd{H@~6*w!_9)_&o+8T$YhCe zuQ7uyqUJyzNc9NHS^eB=S8DYL4~l@vVvB?zrd2TUijfwD9ymNp1}Vg54ZuLpPL+>X zq9>FKYURH7?AWqJEbUFEAEFkV0(v9)-Fom)a1*hvhZ$&~px$$&koDbA2tqeGi(7y& z8!mFw6_gCfRRKm@ca>E!>WFqI73F3U3tNP`9A@{74O~mcd2$^{N|$;)B0~_^zMGUR zBAK#~g^44MbA9|}SMEr`%~4M`zg53ReF*8MJ&jr+RY12xnwe(Fy9$D20Wejx+#Ch0 zW9x>=3S*0m3|txBYjM%V@Ek8D zHNG@HF`-O?auB$>IVM|B*y&0b<1$G)nrMA084ihzLC+`MY1eP%a6{6hOL_?2q|bxh zz;zKag0&wtHNvIh2q$MQ)%sJN>Hw&$$>Fke^jome#)ARLCdDEi=+UhilG)OC$Qjx{ zB8DYJex4p(&3^y!&tT$Rl5!T1nYYoq5TIV$2p2oVWjRgMN(8r6JEoNZNFD?{{1T}) zQ`3fX73a_6@hKkw0QJjwcB`5uO}{}g%%_@_oXbVlzQzTu^fj(R2H<$N6@5M_dRZ#? zx#^0(40d`4Ez&ZrhXp7$sN@KT*;XOjq7sGVx&o%~rd8GaSs7&iRwYDZ{ht{~S(!tF zwQOZ5Os({LdGCgM-a;x$l<7}iRH!o4>bI?)M&&pyN@WV*7)}Ft5&;m3EK4b!4A_#x z^uRQrk6-G&h0)a+ri}i-X>?s$AvrLxj_n&J0LG*YHe-cvI#D|Rw&!u1fgyKUZ%c7k>mB;Q-va=(ZlZ_gLVgGEZir%wcQvpt(UST^AWBi zwiJa()lE;&%n;2Yw+=ij3V<+Xt5ZxFVQ%;v(x0rk$DK!pbc`fFdNY!AQ3VqOMfR2g(uraMMljn{Yaw0am+_rG>exC?7xpS$#ti?-@tYHs%trf?RxRUWw6Aghuf)JH&=TkUko|i#1yacZ#>{Fc0r)`YXuF4@13@x*D^Bjul(4Wx;!e;3 zrF$ok354XCA)!gUt~ohCJ1gPxTWQUTbj+p^D0fadlFsA}41&T$!g*YsghM-)(`f_l zjR}ik{;+72RiG46Dh~_-yk~tAi;&F`q}>^da%Im%QgzVrO(GtL9T*tXsCV&uOyT#i zw@j5soKb6p4%W+olXP!@tvJO?(@Q8I(>29i!wE(1` zfkynDFUL#RKxCDqDpb-5U~q+eOdpKr$FA58<+nVHU1T;i+;Y8<4?X!%oJBkrRa{!S`AP>Y)L* z|WoFGD|?-|wiINm$s$;M zXhaCOXqe+#zl9S7;Bu$jGk*lA*%Uz!$XXf|NrU5d+8eAz_pOvuZ{YDOS33&pu^RJ8 NbN`kq065MBBfty~TCM;9 literal 0 HcmV?d00001 diff --git a/release/3.12.4/doc/fonts/Montserrat/Montserrat-Bold.ttf b/release/3.12.4/doc/fonts/Montserrat/Montserrat-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3bfd79b66f9dd2a59deef46385ff5d9c576d6aae GIT binary patch literal 47088 zcmd442Y6h?)i*wK?>2R(CE1d(+zl>Z8`~J$1aJa4 z2{;rHY67e=1_I8T1b7nyNg&BfUXqYN2yqA@^bX$r|IXZ9Y2^}r?0Sh{&V*YFt+*~k)$J+yfP;^WcYYq;xHuid`txrcwakujdm*ot??Mu$dX$4_3% z*zkO$myIDp^Sb&CwD&VS+s7uhZ1a?#8AJM408ic8^}|Dp)~rL?kQ?piObl(?AT5dQ z!E-e7o7W9ZjOO*Vyvx`QJo9%ptlzw)*|%dqV>`b<`PVmW8r|^ouJ8Vkv2B2#y}%>} zxFwr(ipfmNa=lK(N-~p1Rb1v=UVxj-moYr_s8lMgN}HgMSH~D#i59)Zp||LB_~(8# z|Bn9->C~C#R;lRB^C%zqm@!$0I<+j4xx6_MTqW^NHCF*76k&=W0#hz)od9$07z0&;^I=WQZh44 zamKjhY>QnNX>_qv9UXrd20seAr2{hgSFm3 z0I;M8Sgb4tjmYeb^gY}q!l9f997bY1on9LTPT;ArOT_^zCI%64bW}ooRAO|Z)2xn6 z#?&ZICM*G84h2g#eIKve^uW;21DpI$@UrpCE*rmII<@HL@$s7%U9oj!WUGHRs23Pv zvKehzSsZ|nF<5HAz{NOjM0^x0^tu6?N-e8KffmtxW0xju@Q^=>MG4~3My3++=tG1f zZ9Ma;qzApU_#fZ9S0NQ@m8fK+m`i%hZYSa=<_TV%>YkasKeZ=L#uk^yC|B1;-UMDzRmj6%EDgT>1Nx>ld5cSF|(F-=g z8oLy-)5l9hZXUg@Z*r1KVbnSR$Tl&WsmMu877Q8u>i3AB2#c43@t-1oj!dH|^0PoN z9;H|yEI*@o#slvJKH$#-mN=qCnKLeNtQIs~rDec1Ktrox(>0F8>J#iVU6Y;J<(QtO zdRwVQ4`y=pCCd&vJs?)g4XTzMQA{2p)fKkdIXSm%7ysb;C( zWI!pfC@lxjAU~`>GGGKQFPBNysii^B9IwqOd>koC4&nz zcB!$v5g$OU(JUH}B@hu?WZ5Ru;BxLsl%D6m==k|J4sZ>Zu8{b*{de-Y{!swf!%v)P z24=;4BkGA@cCSSzOVo@?mZ*O4Lh3WBr#X_KCv<{zhP9LnN9vT{=;e2;UVX=M<@d0{d6i$# ztbj()nq5H2rC$jSbauQnBc5nhU zj6?z!8*rEq$HmBnSZ;(?Cr_`KiHVFQniA8JlTai9EX-+%RG4pwy@Yr$7H=ypQyx|0 znbpdIAbmw)$+vB$Wnu5$MK_O)-?E6-ahX53b#!T({rll9lMI1Xnx>*yejqUb1T{bqlU|U2TpVL0GZ+#fa>M`) zisYbB3bpPrc+PEq^6Fsw>(Tz~O?8{4Q$7BJ_0`q&9|%faA-984(^wu+YMKGk0H&X; zk}x-RAp`z~L;Ss61^%9sYbE}!7Ti6%00b&z1R=Kw`2hHU^g?)02v=^m4pq(GHFw1g zeG2U!+L&5sYM6EA*(ve`5qIUen-)Z`ylJ^Y#ycLhrx{Clf)Fhf0V6n0KfpM}u@vU< z7R7R=2CyMasZ>E8sgXncBAG@C0w0!XEhe=k8$*LpQUnOCQ4&K1Awtq$siUDNAEVzN0CEjMuEsjbJHhK|fkU#w>orWH*Q+pr zX=(E$CQ2Xpe|f9_R}Z}KA~AZ*(rEqxaDcT;wG}l*lhhHVgMdo9mI|C<#>$~AOhUTi zSeNjJD)Fb<`j`7}yyd>rci()+(OYj9OUUp1PSl>n-}J}xchG_iSP9Ef3=(jpRt3&8 zwH#v>hTw(ZnUIh`sJ3K7VUaz?au3$W=zH#bjLRQAdfUwpe8AQ3zt2Z_|DXTtzu$k9 z@bDh$K7qP*EW?|o0hLZytsnvmJ*~_RgRPX1;NiDV`rrNT7lR3!C)H4uG3o0Sfu_6U+zbclxZAcspUq*sI#AC#D0UPSd&1 zVQf_@&58)F(R6E|`KFuFQgtahW1^GjJTfv3@`u*uz$KBaB&MMtRSgD9Z~NV`lM_|yfS z&y$6QNaPcIrJHvTcnxW3jHTJqtXUaoG{x$$CPrWeLxF_g7ZSKV9xOsujW!#sIiak) z)Mlkck>7maYwm4zONusLd}&>st1qL%y|W>`F6N@a!d%IE$u|Gbo4WEk3%eG2%1y?J zEUUlXVK1-Gw9$N3`uR5ISshUT`vk1^eDR;oh<|G;|A#Z;r|bDRJYH^`%Kuq-y!7Ez z{O1&p_5qLlB=DZcX0d7>+vSS}mXmCml3D{zMXd!|V|AGDs!mgvFXy~zQAiU-B4!jp z^uT~pp99u}NKhIif#?WHt=3@VG@7oim?&@(X$1+V-BNe3fx-)9#)J!I?TX=1QPah| zm0=}#L`0}|Hr>#L$_@;8(~65-uHx$As`66TELTyo&0)3M>{fkjWQNPGwM=R1R%bR* z1y<>Bq9`^77j3&nYr#6r%1VPoB0nkn$D(@cW>@uPZ)|PbmREOVeEX)Ym)6y~=7V5% zG#spRtg7zW)9HV>6EjWMG0Q($0}66|l;o)@S?qEb6fRrZ)4H%&p`mVjPV=t0->NDt zt@59&C`zp}+d${-m^ELMPGen3XWvm~NFD9@@7)U2ifP0A-v$ zVTQ0}%_eC}Pm_zpJw@i^zuei{y0dG2)eXn0S6g~|YHDyv)|Siq`Yvl}t&>jsKX33a zoZH+ymoD%xGq6xAcn36}WJ6RWsX0@YnXYNeOt-MiV7A*8%S`fFS~X2>#V+&Fp`M;Y z3m5Fp*q%41wzs#oH+Or+?ghHGUA?`#+S(c$I(u7MdOI7v?KF4Iu*p#SR@Nrw)EQ|I zcgXR8Yi)3JzTu6GgP{a`9b*w33K{@07DD|G9||n2p`oBmLGDIlao((AD1s>>zc7)B zp_pQLXAecZ)2b)A7s}ZbyDRe)8}(AyP)KWUs9M)e!_mFEs%!S_>YCZJYoya>(&}29 zclGt{YHr}_Ghdq;3iR0wNoRxf7iMAkY@IjRoRyh|URzQPNr?$iOn?I}2m7Cip;N)Y zvKquAuK+`DR!l@>PU`>yyy@UikO-yKp^U!La@y+?XV1H8*K~{%Ok{yZl5%i*;ph)6n=r*`sN=iy*N=C91EJt)gVL4^64u%BO^3c_tj(#IxB}aC6tJQBsak} zrxXT{iG-+5l8F{(=tK|6-=Jv^aq6JS)$sn|1IPOMCWdYGhFp`qO^V&-U&D`XOIf-$ zE_P$$Y%zjm(q@ccI?G{46)u=yf(9PPB@GE=T3WuqQ7KY2GZLIth$fIjK&~2)D~+=j zWDoX=krpP49wKP_R2Gt4(EV_N2xWt4l99n!Movby%>sDRopy(fL=#TR0G6Sk#5H5q zmd+sU%{N{@`zr-?*0GYgJ+%{^JKNiLc5ba*FlSC(U2kull;-zdf5d6ukZ$SdG&VI{ z+|zS$Lr;r;Pe*li2VFFp?O> z2>kwwEDKR^DeC!HP6S2L9+V6d)f0m904sYS3`f&y<~MJ$BLHGnpF`v$N6Bzb>CZ-C_)nVhp2L%Ok=#3582pdh}=qD~}|#gzS{c z__1ZeY&j!k;Ng%B)1lZf%RSme8!zlScI>ssUiskrzwSJQAzJ$4YyM}HHZc~bfwvr` zsVG2>ro@1lyz~^>jTm@n<^W+?2|_KufSG7v3m?vestwD8GQpCGFQ`}Ov>Mp7TDnw_ zQAh(d5#zu!rD~8Wkz^T491wFpzsJ*e(@jdNv)c1rdDv~zo? z{fV?57>5YQSjBp~}l+BCHmg~xw7Bc9eGCI5#r;-~BRcq;yTsDG)F zAN!(y>2kChaa`h$1_Ia^4Xuakg+`>*`8kyZmVh0V4%o3X7b|C1dgC&xG+|<^&)#+T}eWG#B?oR&+NDn$)YpMVG;J|&DY#&Ig$}Y-XdIHFeki1$A%s>~5{cP}{aYeN=oOr|aZFx|;6h=l#5sA+mR!%T zL>SJiM69kpc0<+rvz3U3&!v~@TEldRP%jisYC}kGnwHfG%JZmAXZ7T4tx8D_sz&JT zzt)rUt3&9?v8u6idm`WM_t%AWMaVLB(wg9i>{do0sC3W)x3~;k#@%Zd4r-}wAT5T zPm!9!U-?n=EQSSzuE-e3S6Cvs=ocQ)FM0?j(>ljsUtmmVfh22s4G>NQ*A-kb6hH7V z76@1|Q(OsU9s`sHje%5C!>23i(juC=kKMpO%Q+%-b@`<c;tXHJj(?EU6oe8MBN@+Q_uVTF)GJYV!J=^yJi}h^W-Y>f+fhu_l4r-vGHhk4-AH z5Ss_XS_I?_9mEY8^bi(-6(D3O$OJD`v@bFSLVg#kID^?{Qk!ezo0hkXY>v=g8eQmi7w+Vhg?XO(Dt{#Z^TKVl8r3#FF2VDsf<=^QbwSAO7cE6iDS@Jh<5=4Y>;NOB63hN5|Be9K^K`$ zggzqFkwhzX$RQXtj6zUIu&rdUDK-XvyRpeJINsNH?7#t=*^!o}*RNdhhi&`zZTr2| zL3`;f7`0W93lktofPSYX2?!Aa8c5iKK%*i78AGvT=LCK8L7-TeIZ5`$W*=l9#iUN! zJ}n^AdkoU5>$4UXuetQtL`5?R$zGdd$2MN%|Lfk4b{Io_=7{);phm{*F6%9FO|exBQ>_|3NtT zC{QMFkjV1Ac?q#PurX3OC1q<};a7t|1oTM!CbGmNhfQp+%ZfapD23(av|A!Af8R0D zlQ%D|GNI6D&WV@)cH7s#f&TpWvhFnF`uKz_yIRWhU&kk)_bBbsm~2D6G`6UJDxStr ziT_ZjARN|tCdt6S1$HWc2C(2S+o_QKW}e{xkU#H#YumQvym{Ml|0&?M0XR4csgQOm zqOg;?g;pw!I+p9E>Q(GHq>|_L8K|-3=)5lJ(W77^(gq4V_uw>CDP|C(^jHS!H&{!sdAaAqr`bYKm8 zFoVf(9*G$rSJ-}dDD`p?1M~ggCr~( zi79i|Hnn%n=G|#!iH`Jnx$cCz+Kg1`t@ieZvkk^_SH7oOAKRRm?El1JvFQ^4N(y>+ z9ePLF2XtPnIB?^T0aehsV@x_n^@ujO5~fVG=c*pJE}AuKQCZo-S+f?FISL9Kj>19* zzunbURM?%D*IiiDo!6J|bh_P6XFh0xzS_gIFZh4`o7&eG2YY%BE?Ojhy&WB}oOIMjFT8!@#@iPv zzlYXs-n@=3U_c9oQ;OY2HG|g@777VkKW)OIhsutwnyG_3y26ykODDe~wsNcXqBQ26 zR1El270&@K#bESkiGrmQbt#@~XK{g4mg>kB?m)C(=?Japf}Vmt1X`*1%-cNHm04L{ z(3yI1?vZ7)w>A{D+=i{pKyGzLUcSxNUEAVWR$n>d{RVN&04&XJ^dgN_dn-~wMQKT} zBf~wD)DPI|z^7n42K8f7EWoG>r0YMB#V}+ci&1!HHEiI=FRV{yJrFY+o z&TEV7bH>YSTlaMy@&AUuaWg-1(VW`Vb=meyGcAR#g%{nvcl;s1!?J*vy8%xu6P_y#cIQi{>i0cVO*?Bja45E7)jH{I;Nl6T(g|HY|q zZo2Ne>n8Xq|B`(mPtGFI>k859N^e=Hvr;E)%OF~{G)jt;;FSan#zany5!#eRO2PK zvEe%Z!xcqEmDL3W!k+`CCaDW})UkOdA>;}9DiTaJ1!%;wy8+mfA^3^m64S!uO;wWE zu5;1`ywO0hj_EL@Vo^45TOy6A)aC!e_xbBbq*LQ(?vpAueFQFV1I9K2Vmd*Ho;s*LZp{{`Kpd1XVONHB^>> z5~Qb3+#MYM@!@)fBK!{%1rQ|=^(I34zlq-kX~W3!yzr+3)4-ZMZ3oMN(=^65+8CXj z5RYt;*oQH|MO4{bz=o48#LGyo-@SHie?PA5!oqC2bX!J-w`>_6+0yUzdh6@)gBeWb z^&R{cNKg*174$$l)+pq6V1%~qEJDBw`50?))&LySL;8cB@9;mjdigK<`uaZY^9!Dn zfVvI<{uDOLTM!G@7siXRMFRG>dWsV(6{oNi;>23=RI!wnhoBE~VsuEWNB@iqtDsP+ zjJjIT4deR?GXs*e{$(Xq(zH&3?7e(P*mLO5xNZ*e}1S z>7qY<|B@3I4K~f6Kfjf$KWc47?Rxa|AZkx#<=&Ez`V32b(9v+30|!YPJ;ZQ=u@T?3 zYthfp24!dm2Sz$uIsC=Ib`PSLr7N-L)8WW-xhpPD<(W@v9bCHHQSV4inxjujGa8NW z_7Rgv0UY1Jm>VHcHhSwZ*Eso>8wAG%oLKfGVj{x-arKln4dA4tFqUFVv1X>Da58|> zfegd~ND5*25e0DDDL#MSVCEHP4(=O+AMdjq!Z028Bqi9IFAZz6}UNq3Zra3Krc<#KB zvdQcmi#0dLM*K26KR^3>jg_sfm5r8IcY0}KV_9X!-ZX={SKbNcVLwjzT(8=C~^qW zfRItlLZ=L4b^L5r$2WxWI@EPQdJ4P_^3_aUN2G#LAHvKQ@~1<%xKFb>s`p=Kb$sK6 zcpdtBwUE6kyrut)*NJWlHH!pKGyFq^xJfMF-(_`D%z1bn@E#3p+$5a>-j9Uv&ZqIN z2c!o9X(|JxVZ15`SWreZ(>|XXE3#UhEr#O%h*?Ql=P)b4nF2_@A?V|4AvnY6BOSfK zX)thy-Wl8>$OOoI1eGHwiJ57;ASjpNB_N=c6W4?l;HYiM_E~Wds$frjTgMduybx<+3Z17 zyqZgN4^r3aAV0MQRI$ zb!K}!+0N24&HP8G9dsd`0_-N}=pEkH_&E4)t3jubkmV|} zC2dIBcf_#o2<{Z#%a2@PxX!?1CT_)NVlsG}oFr-zG=NcvV#?VsL6Kz02P#4&8IIG% z6&1O;xO5eHuF_IhUIk9}2C#FG0$nVPIa#ToJi9qJ zGdIoQ%C@z6TURd1t#hSY^3CC+UJ_UW*A^OeC!JriSuyAYDYS8dREFFxt43%KM%k(h z>SE4lhdDFZAP}M@S_mUDiNXSW4+vizwS{3$Y?_}bEz8X-E6W?ZD&3i7w|%|P4d{ys zJ5#pjT{Fxlh+c?p&b&3WAg4ArJ*yzg)8a%AEV)iQdVo1Hi{Hv|{0MX8VKFxzX1^d3 zrFizRm>cAOq|8IsIPHHV+h$!6wE;B$nljHZhiA<5`%sIriUj9*;AL>NhXhyCdt<4I zeW-Se;w~dNeeP9YXmY2*%~;@0oUowTYCf(RX~qsG0kME!gR;YTk5cfshBeQEm4|=e zk6uibuH*eYMbZF~rHWHSwBRCSBD2z33(sBD6V4g2w}nJOiBN;X5r1=0k;8$D_s?=V zXVFD1IN5XTNxl{({u!S|RpESgp4$z_&V1{0`Btk4QcWd+I=&67jh!t#iJ2?xHHtqo z$Qr68Io+vNK-$7CCGr!A3-u`r6mjxf(K+pt|{PpDcpXf!}!Fb*!OO0YZloZ_gcV$ZF1=Z>X|P8w5o zq!>>wTDrq&zm;H*1MGbQ_GKp%#ZfC|am*y0k>T((fWur=fDc;A1n}tq9`-{S>Rc$} zbTS-Z(NjCKL1)4H2w=CxP!LWRAZ%fY6AdI`w4vh)eQ_#Uk^Qtxi-u_FF~V2^^MO8Y( z96I#w;`M*ov*$1CQFA0}Cir7mkph3TKn+bNQ8hhsyh1@dDw8NCxI`NTtIhU^!;jiX zI!|~*ZG*S&38nIZcMl(a8!m$ooY>#w*U6&6QZ6*Z=}@rz`WGp@6Kkg^!9V!&62uRJ zB}&-u`5fN=&)Oh6aS1p1|HAt(15XTM#qn{hu11^v>aQF+^c5cS)KgDVY1GP#MQO++ zShmk94upgIp&e{!B#=B*UY_kSYEx0g)mL{uiAvA|$W%BpPLj`a0YDnWCXWdLijh zG&w^$jISDYrKXqXNpC6Q;muL*ELW*$^Z$xp9K`8~uR&h1(0*WMMp~*dIWbi z(mu$HE;ifSl>+lG%onL~5K$s^2&rkmD+-cI2Tn}z_6Y1FwgFOMd{fL3i%2LY!9`|s zAWFK@^YY!o_s6bEm9?#G+`egKXK!)W?AD=1|2ST3VgD68 z+IMb^-7ukYn|Gu;)pzOh<~H?R60?3H(zDYQac_L?+(sU6j=ClyJI#NMJvG%FeHh5i z#M=PUAlc@#1>SkI8*bt%?0iSjyvJ!X?DFei-Gh-C=Pt1QfWu|vmm`iHw0A}0%vfmm z5A!vjx$|;!vhmIbn?6aOXpf=eUP0$dXExSP2$Cez*GZv61R5{x`tvlh34&HSVG}x72Ownjevn5HY`N zQ=J#@bg3y-9!qPeUl0P0h}{#|(8=Q=9{rMn{egE?STBSHE%-JU_|q%r9wGp{18iB@ zCJ-7I#zhD$kXyKeFFG?hGBWa=8@J7!RkOHv{yXpN-Mja@Lum)TS+K|6*`9%+7AI5b zO%};y$4{c8E1h61IR1y_b`=ip&^Em!k46f036e^asvGC$r!}IephhHIoXDCkwk(vB zu&0kc{`ljQxW4ZH_`ct~ILXWV%KH{C#t+Vb{)AVOzez~qm7tjuzo}!FNNG|FBuA&$ z1{`qJ0)RjaUdCB|m5L-=6(n2w;FU~iF0L5yl?~Li`!B!mzRU0DmV58raqqpNK5miH z_)VAt=U+Wz=zTZ_OC5j7Z|67d00fKKA?}wvfIxFXC-EX-q);prFi-5gbpEbg^Dh;@ zeEDVlyLb0rCVtUE9jgZHm!l;4IKcW$ju?bUGCK=2!uYIKk#B(-Cn41;^_=PL{wXzA zhxLkusWw`G7q0v9h@v8!4cA))^RvMR{`(@ky`aEuFY@j<9SWk^I(7$O!s!jjaOqxb zWs-jz&2b^cwTS(Ykc@_gLYP3!l5xi_!bcq&Lk;uE73&0C-hdB-y42w)g@crx_xMln zTlSv3Z2JzpQtYg}GUZjP4USR=@}59mJAaA4xMTZeC-NvM!Hg$&jc%#325Om7`6o9B_WRULHLA#z4w~%+7VDb*b4T2AxLmFG*hS) zivV~ivw9E$x~%S1L~>YB6YSOmaVCv)F1s^Zyum?>y+UFpbfmP5WJ()fTW(Ith%;IF z5TDm%FR`Vh$EBO4mD0S%&(l*A;`8iFhfQh9U0`*ypkW~^5t{cy5a!YXh{-e^B$^K5 z^)L?dCIA{P_us)^+Wf$FNI4;|7l~bt`K4wioco;zYq~PEky|A{tKc-CB4- zJM;3=(~0EsO7lvJ3et1abL`f5an@jp{A173>`Cnv%M0-}XlZO}x0@_MA$tX-Tskz= z(=#~O!*3&V=!)!Yt0gDL!ta^mcF!s9L83Jj)i~bYKTa3l0aMZS73Jj>m1Sj>{*l7| zs;d4%N|{FylmK*hGp7^{eObp0-UOIB)i{f$rBfDcO9GEExUjJb-=NZRqZIw^?YF=D zr%#9d&+xM0Z8zLNgEf~~B#30e($MM<)0~O+4chEdBTmCg39tO=+uM23_M=C) zkML6evouGt1I6-d(vMjMYi6H!`K+K?9FmW~I>%IQu3`CHi$n4_pN2>{!GuS`7n-u; zEl3iJP)QM_D(hB6!BY;aVx)wT8YDpxF8P>cD=^D?v~(noT+BS+5)p6~CKs}Qxu~}` zyj0{_4f4pyu%pH2X&MLmQY*1LU)fyQR9}k@m)o5VYl73}jDdSz=p`}O&w>aQq5)F) z#2Yh0?@F0|!&)d$IPFL`{O>l;(mGFTeA!m-n%dg&hT-yqMYil^_pDoY&$6X=O{^U- z=kKh&=6Bn+zjSRuYioH$b906CA$hc=fU5j&Rd=Dw!@~FVvK~)n29mL ziyp}081(rd--D2x;&NqWxje4oth}sTw^akNS3TA1X>SiQ@fyj-r8P2|8j40~ODNA4 zLZnBUm_Kr$dq+#hT&ERI5KGoIwC^!SUzX&a=f5a7+3d-&TRc_w6y`KnM$eu-tG~Qq zI6u41>6z_X)LAw^`;wyC>}8GJlFFWLaAcWWscB|^V(!hR5=(Xws5&-qOd_2+js-3L z*ki`Z!X)h9O444;e#QJx%mSwx!;{cau@^vg0xtIqJc6a%Dc*UO7-k6EWJOp<@b(NFq=f1cy9pDO%TXjR zC>n(Dj#RwU*7R2SAFiy;NKUJ)O*cYjtv5QGOL_|| zY3oum&87@fbZmyVVs4SMaqh~rjmJ)@WBpU@5~2hZ}s0 zaGq7>bIfMqz~)MGMG2gWa-8wgZ_tVY@1>P%`ptz3md<*M*3>(TrjQhRtD)nzWy>aq zhi_ZDd~#*)zOIhFbLZ~u?7Y0UXsEn=sJ41>@?ukYPC5Qe2v*C>Cx?b6moL3-<;vTa zH}qW5J9lqa_x|4A{oM;omR40QE%CTZ3*l{4URaXvLD#}DQGhdAVkP%3vvRc#uAF#l z1=-AYVG(2Sp$0Ov3>#AstE0J&sZ}~PZ2q)eya>0DepXaSxF{pnAX-3Fa>SOtC7f2Knvp`SrHBVO@WD(0xPq_@bQ?#zF@3F)i8F? zoW(v{cDAir`hkK51tn*8hhu{m)av(c*ueL9)z@TYWSF;u`c*tbehPBC7P}l?Z>>H$ zg4}6w<{aXHO4=2n!$ya+SF3^a38M<#VTclTmL9y)G)b3)x4_H*-)FMV;mfnN zHsRNbH{&F#_*K_zxLRJscNOm%UwY@{5=lC>(EkYU@IUg8Crky=`t`;oPF4-onD(qMXvw z9J=_r{5ge%a|#ORH@~MWC#Q@qT5n;qWUqoVoqH1XJl4MHlc;^yUMro3xez^?uHpaG z?g?|G0T=3~+WnJn`X>QlCA(V6k_sVaWea?zV~7-k2j7QLgJ1vz(#Z$BK`>cNNQVrk z7f&L;Yv;~wCog;GYM$-?EuZu+r~dvMyAbGGXfK2G0qmS&e4q)Cj7R$xA#*Ku@Mss0 zb}ya^?qKkA>|!vq?lHcwXwjzqhxbb>y1S2{b;;i^^#*$7Mll9oKI8s{kqDQf{kOEWm6W!( zm!{clX{k1An$+9s@wC!aV@spRG#fCGBrOeGk5ja%>^j1lvXAsn^(jRfwN5EjLiGYg zhLoxQO!GRw>Lp!J_4*<=HQo?uNaJ&)`jWKVG(04k#DlcdkPsc6VQQLVNW?w0VK$Al zN!l5>TKYA($(Qc2kqYWJ@lF0~q+f%NaR0(UN}v^Teu8_VL2!**~AxpM}q93KOQ7^kJY-ysPZ2eNQcXL_%{9uMwlX+mZL~3+4^ZxnSNX znjAlK@3<^|@hC=Xvosng#aSq^*GwC? z(|gUGU%J2fUc^GrhdeYH|iGuW~rj)1A)rgSgTWmPVbKna=Qw=+h29zhChA3i!6s!mjMn z#L&`Cwj0g`NKtqQt@i_7+Ju~1@`J?q_lAb`69*=w6|Jpc{G8?ThuK$!zrmOCB3iy( ztCHuz`QS5Hfv}gv{vjXXTI^{>vU~BSc*cGA!np`(zm!(s1T&q!`$PiULd^Yv6n-=K z7QJO$i5Zqw@DD|vPlGX+OC$V$AqU8K^RtqtA9=16c|H!tY?gNNzX;y>MKH!E_42#1 za>;mOy;5qew3NSzb%fqhff)3X@kBNo(#Zl?tLW|jRqQIn?~j>)27pv()5>=-PStFJ zKj2|@6T6H31G|a)__h4M`7hC%Xn4Zdr6OrSxI_)v- z+qz-hdfiUlmAdP6x9GkTaX2z2vL|vN^4C$bqi&7*Zq%buPenZ+T^RjH43CM4vBea| zRL8W%^u?@*xhUqFF~5%aAa-8tH)HRJJstaAtUoR?E;%kIt|abf@rCg>=p}ud{#b%5 z;gW>!C;T+wg@ivP{3B7H*qFFJ@jHo+BtDt=Zqh)~c+%FS*9>;Uh~W;yQ^~sI-sFAB z&la)` zOJAA3F?~<^H`4D;e>DB+jHnD}Mpwp$jJ+8TWc(oGt;~$fO_|qc{w=E^t0!wD>*B1d zv+l|IT~@%n%=};Gw=5RRY|9?YH!TlZp0)hi^0MXc)<~<{T48Or_FAv7{=oXC@`ZoY zq@CL*><`%Awtwu%a#T1LIBs$L(D56`KVZ?h+tI{>@I^w#^^%J+oUF7a`kGK!HpUtn&UzY!^{73TNE6^2W7StC!Q1H`&mkZ+y z`wOoqoGkPeey{L}!eTVUJ#A66@kGslH4`8A|H$l9ej z%q*^lm=!1I&C(_3Ui3Cma455Mg0=H}R*H-6)jU6N8h062Bf?K`PvCaCr0Yd`yDAm+ zql~z&MfnR{svM*dEXrl(45F`U5t4oeYr-^H@|L8g^vqg-zwART8}C?6?Z20X82X@J{?a1wlL6LEFm zN(f%jxa)DH;7Z3ud6IGctNCWs#U2e5tCCnp@Jiqh!vFSQ;00d5%J?c=8fL|1lQVI* zK)b^wJ&!gKFZBTK9#+Cn;vJu-kw$qB23{tgF}{?oWA`y9zY^(JvN*m0G`RuyQS@aM zi=^2i^6f=BE~$dqai#Kw%#JISzsGF2tl}Pof#9Gy!>*wjgtqocjnK0+6?6@w6g@1^Rvx`706Kp-+ld+Xu z%r3#Z7Iv~z>>c)fct<@CO8PbXU-m!jMfNWHJCB8*(Qfu*_Gk9rkaFVL+w4#5HZ}=A z?bp~F>|W5*t!xkb3A>Zs0XgU)5RV#?WF*$K2*|{-%z*cRfJ3qjc-ojS_VLVyHO|4D zkfXAJ$y|8Fd*IJi%BtZVv5qyedgg`Yq=7ZD7VL7(!TwhdB(ecWWDB9EcCtb2#IFS1 zuVy3c50JvPu#J$!HnZ()4ch^~nK2G`0rn(&f<4QA#-8ypx7o)Q^tTL{&0UYO*tuOk zP2b{vUx~?=GcdTye0V{>PjU=>59esv@UU&A$zt)b0Uv9!H9v?^ZyIdO_i?w+Jh&>~ zC%MfdX5SBceJbbT2XlB-Q_FCRPt($G@yU*Xc}w~&HjC+SzuDK@izx4a$?U73P{qK2 z`M8pMXoOy8YzaP@eMOXBL^*%h+iwOmhlk8QoCqF7jG59RDO5(GvO&|}z`%eB(E1{q zhJ9>azmIiMX5?y8UW{Y$Wp)ic8qbC)$D?Yta$sO&Xu!u^0|Pc6>+K&M7|8d@ZgY#- zr*aITFY2b=exKUb=+oF5(Q{-S%=f9>HuS_ia$LQ#(M&1SN0S0G{ra?nEyF%J&w|7z z^I`L0G;q8~?EqTl_7C=&hUN|Q+XgHHW}mmOA895+MzH;SpW5xyHn|>z%p-8C!K1Cw zhB2}=4*8^&t9*PIQ25k&`97`NOrS=iFDkYYSpckeaDcK5HVaU7?gzEetf{3j&oVVy z5$>6z7pc_3T>zm8{T?*89JUS7ND2%y6ODq;YyyxWC^4S4p=PCts0$SL*-;9Gr@9ti zD4K}Q*7#slqzv*f*(?KjmV94~8~-D##Wyn4obQWuqXTBMFQ%!J`h|e4aljW#PxJ5; zi>G{F9IA;IC@}*A!vNbC*EDE8JZSdC0crWZcz4(Q{^P2V<^j7eX4JMV-=}wX&F$~% zQzA_k#3zdQ1ov?k-?X6rczk@5j}JBa;#@@Kpr*#-G4vCQA0JP~NXU-f{^LaYKvv^n zj4zsv&9m50EEEPcP&yUC8qI@f{$xS|9Gh8V=v~Tt)X(_i;7d)7-~3bT_$=Yw4cuKCYvChWmH~-E-Z*f`WISW)K** znG1Y;8BLIUUtU;Z@>JqRCD9d@=$uO2q$Fm#nJ>omAM`H^{mTSgX7rEl7W9wqR`ieV zHuR6~cJz<#4)l-iPV|rN+2|kLbI?D!yWQp*F@5sgKx@LFxd~%CNVG77yU$IuTHyBO zyL|bWg@u>^ZJ^ZiPD9&Jg^hUVKg|I$%=ZD*An0Z9XM~9K}?dNihN(G zyTDkJ?<@PVtRU!NWG}}Mv1Et2z}!ZR0I2Oae7Mcl2FBBmH3p0p+@XwfLlQ7t0gjdI z(<7S-Ow=K=9gk#v zVyOz@!VC!1&LA#qH9%AKRFY2zCSo?X+S;g58pWDWn&^yzX&;;4Utq4m+D*_)N+c?s z8VaArfu{~6O^FH0Af8KkgSOyk0p5IHZKySY{ors7k}Pp{mqSBb2mVn&SZwv_oBDfA zSV_$_0|mzmcoODq{fyLkrrsH;@Ip9G+3>itOEkEB6|V3MXE)gB_EowLgZzlb4r8WY z2sR98fv*4{Hi<4189Nos5BVZ(jY`*voNbtC1(z3=C~i^ zBBmDs5i^(av><67<)J_y<)OfQ%0qz#?i1jK4G1knh>Or7_X)1V^&_Oj4NyK#`4&?? z5n4j|L})4H6QO0)W)re4r#30Dg4(3OAhk(>Afl&chBSNbL zTohU@;G)o&fQv%o0xk-z5pYrHA^{hL)(W^NGyxn}O%32W@#L#R!g?iGkKhJEI%V^D z@w5?ZErOJ1lMQ_PxL65NiA$6qW#5K+s+B6YD?!SzLkUub zoyc1=Ro|uJNz`|l5~S?Alptl_jgmD=eS4H3Ww=}kQii?ATRTRRXYrg+d|7Yxn3|RSx?V{{K&7tBB!WT z8;&z=qc?(Gw4|$=WoucUc#hv74eEMzUR{aCt;)nn*kJS~Hm2#wVMUq1;qGKBy zBGSDn-Xw3lH^v*~)&7taOyoBpfq7?qMS{$lkK6gdxzHC5_8*r=nvXl_=`r0NIB%f~QL$%<4uPXHf z(|I-g;)3bC2|I^Mdfim{)4VN|j<*HWPnE|@E5w(KKX_Xha1?>&eYlh`-aLyZB`hJ& zQ^Bwd&HZP=u!?1ZZ76xvEREBfT&W%n;wyq-oKk}Qu1VM)wnJ+lhZa8u4c-h}23a&_ zAv7N`qqz4V*E*za#?vNzheWg$~C}-u>~d8BYrcUb3}bxVB6RXyGS9v ztI-PO*b1vb0ZOfh?V}KOgsrfGjH8|{sCfaxLx??Jo4MzWZA3k5VSy+|odkOk>=z4Q zt7rfW)#oh%+jFqY`C2hgr7jfx-3-{M|K_k3&R1@_R>C9oTj}*?^pxIjlnEQw|G+Xf z#(pDgS=F#+{hifv%um2fwyHJ2!vyS1Er5AFEL(5DF0?_6_eNN`I$`JPhQ(?N*|N9_ z_tcBBytJBy%JF zPjf0y<0ek;8p(vc_7wYoeaJq7U9TRtsViX*i(}t`rSEpk4?XO9ldzjb!p@g~9SSqI zz*aX1JDwLdv}o7_A7t^|3Jc%8u=D)@mbiytO?((O!>727+qnbVy5GmC87I4f9p%}u zy1fl+-lL!$3+#s1fwI5NbFjmZ%k!8GcDaM>0CqJGw3-MNo zSvcG1;U&D3m+^95!7F(cujVz_;jH8J+{+tyBi=#sN7x6i!A$-gY;eC-&0f&m9p5oD zymiayip~Q38}_xcyPG4%MQHxKF74KJ<3+`u^7wHj%bHLYk>F`;ir6u_X??-Sy7d#f z_3K8Jz?Mstn8+<-n?{wmh*j&iZW5^xtHv)5=G#2JO+-a*9=&*Uoe~@!Up=-($+&Jj zSfSF!x~&tNL>nSNZBQWC1_hNiln}Kc@=+TipVEd1Ds702q74d({uDJ<2JgkeyNB+@ zMdc-?4WpaJ*N+U3uG=!YX>>%Op{Zeh!SK-L(d6@|DOEHy2k%8nRYjtS;-aEPRm;{* z>qTVotWqUYW2ts%)28*8Y~2tc?j!3jS*Mv8Ux(4rY#tq6zive2^AuGC@8uDzHw|5k zl!=uQVuUCZOjG*cDQbw=GQM_1+KO>3EX?a-EW;D;(|5A9Q~=`g)fI1~>Kd(r5obu20T7m385Ies;9Z{U}F zBBJH!i2q^|e~3!+AM>{$2xX%7F9N>6`;aMqf!~jqCh%(D>A;JDGl3rjJ`4OM@E*eN z;Uwc{ftLdBqtE}s2eqJ9C1c>z&>b-X>aYrEPbByWya+7ft)GGa!n@G0qk>Noa|E6N zS7QVvJ}U6K;HrcA|42~*?DpYf4!nu*K0x^l?r-AzI$*{rccjsU*Wgk%N+_@^5yj}=iwGtG!jF`cz^f=r zaWQBq1y7T6kdyZLX;+1Ifc}m(=xrKT#QYCZUc^^}l)qqv|BkN;>2G00 zcw6L>u#)b@*93mO5Bz&SzRBSASD>{6`0B8pT!~$xgZP@TsvQEp596BwE`JsFUGBjb z|5FU>O$v6JzKh!L!x|oqb@&0a>cdxy73M*)(wsma9>OTmH) z#LDq|Kjq3 z9Y~H1Jc3zV8h8q0s{xg&F*>h;mOf&O5tkYGCBAh31^OC^P$c^b(c5`Gp|J*K1l~b9 zj<*0O^ih75dlFjHVAo26H5S{gXc1C*_$To9@Tc%F%`EXDDp8@1=_iB)9R;I;w;435 z&=yjZSa@xTkTNSn5K_UjW=Y_u!4knrr+Tjmd?soOwSu`JVuIzT@`cJh6ATdSXjSB; zC=L3hK%rz%2lEBzLhxzo7Wlzb5H(@0{5|kp)b>a4Fq%oqCz5a_cma(B)vgh9D!d)n z)VL6DPdgiYkk7BHX(Pxj>B*lYs1@RhqC$LdGv%u4!n7`xuQ#`+e6(AB2g2!N9 zYXB|H{f|PUGCj7$J3(!t_oC)s1l|tZ2r3D-3l9CRh{vzUt2}*#H(sF(IQDl~4EXhr zM4n#(Kfemxf%vD;<~F3B23CHB@UMuM1ztd|;=r@W|03Fqq1;psDW5_DS3c;M;I~$A zU~oXtrxmbU1WqEsrGH6%!t9_=h!$Ajb3DOE;jDUoj9B-1>q$X9v6ztx^-w+2G)et> z8`6CY+M#rn7-^-R6kyjxxWp$PR}Oj_ix%|2jY`0S5*S|zX%5koSj^^knVaY+@I%x@ z^A=+qn8bAwSSe&R$gc%oAXr)8Dx!|S_fRv@)M>-K-)t7kvNHvv5IIq{cXXe;{*g;K)?kAT0rpMz~hhcRYQ~e3Bts&)zIsRGZ5d_3BDaA_;$45+fjmV zM+?5K6MQ>X@NJFggGTg0Bl-{{`Va-qy%+0`36Q0NbLv1(CdeBW^z=XfNLb16zk<-W zSgbZ0R1}LfARhQkL~L?sMqxd&;tEN4R0eMb6;~|AAwgWzl7bmI%@~bL)Id4$&ku1a zALThjxp>b*ke=!PK`I|=`(OX)aU$t0;$QM7sszAP4*K~#;Kw|DEATgb{g?}{f|r1g zAnr}fI!S~=E5*Ow(gky(Uho!3hmhqcEGRfEH+jZ@_CF7Nfa`PNCli+XZwEEtMo+_b zbvGo_H!*J*=5~_cq^A)|1$X@jJ@yBFgEswvzoEBZfKpO`=Oj=KaU$ZdUqBN3EAWFi zm@BjH--hG=_X2^ZguJT8m_-4;6hQd~_{DR0-_}n6Gb9c`8;{tx37=?Q2H*c8@cY1T z(ciy_wd`$3=^r4KRtNMLxr97Q@-Fhcfu2S}ZioDf(x4ft5jD`b(e(+XQ@1DL zt|3Z@(nJo*MVCUe3TLOZ3xB{}i3;hfWWwl7(IACLA_}~V^p6FVd~)Hc{)H3`M)wP> zqDm(VZTY;5#fKl9X9co?jyAZ; zIX>D#B>fp=BnOczdMH8V>zlTT)APmf2D!y>l2JH}U~yi|EmE#KNqzb&dJW^!$X?#D zj{Cds&i}OUEpX!!7SF!|g~5kHhhw!FKvGT2&pfOR|4xb~yhU@M$CE-9))JleUrfRF4y~ijZZgFGB-w28x^LWIZv{#GFIS2%#g+c`;9y z@^l69Kc+4Bay-oOD7BjqkN33V@m3QtFSpir+c%XdW&Nz>zeobwT6!9(V5yP`j1ZFmCODO&I% zl4|M(d?iAg zQD&(0!VI|30sW9XpN(E7E~K15_di08W3=rE-1I25HE?9ni{M;N7oVaXP38slTgO7BI_5%U;t25MISUA?6w zXak`qfXpAkp+|UnA$ndpneRE~dt>w$Qm#QZb9&CfmXee{=Spds?-uj=D3pm90E zO5}FVZ*n}xP23jd2D891uQCGTx+BFA%2Fwk@X_q)kDi!aAzmTj;4J(O^>sQgHAf#N z>A2U74w7XE)EtwmXjr5PQKvqK+JWN{)k(P;;}6}Fj&gf!ZPgff{M_D9pYxR4f0~;1 zxX1j>iV@ulJO;pvX;BbL`2#ceRcd}3jx-Rx#whe93I*22@&nvS+Y!F(R`_fum_n!aMx;v|X=T9_e3dKiUosj=$`Bqf zOgUqSo1(d=NpW+o!m$`$j!S9?bydeyXRU=NGxZ2Ff!R#H{j{pY$nD2YGD&Z?GoJg= zCZ1-LbI~iL_$wnQ`^i(#>)ocMqkMr+I`DY(IplRMl$=|cFktdxc||YSf3<5PiS7@Rj%GJlU_6sO7NIvDB1j* zl!-N?DpR<{dNxBJUo);gIVU>7lf`pmW`}qt%nmx;Q#M{DBAqc(vn$9MvwNpKgdd- zRv*^06W}oU_zD{3v{Jt`3;sX>g{!muDT}<%f1Q!DdH)L439C>Z;ll@4e( zBNv!AhJ7Tw8cpaxS({vqUb-4+kGU%4$pKp(Mf7I=qsUQ=o6*D779+0ERy?yJj?-O^ z{sxx;-wId(1dBoG1a_+X%$LqSHUcdN!&Ng@T`2Vg6ho_NP+aIKyy|0emZCmN zSC{MmNv;Yk7pu}%ZYzD%o$ND7Nae1QdcM1m$EnS2 zk~He|5O7JHWSFya`m66w)?zE`)D7`E^~qPLuc7_2{);-cnHIJ&?&#>WHV6hsCNNbeKjK!Tb$}Z!#eiV z1WXCoA#Rs3x2rcsG#DcqjS+nR4Bu=l$QujthJUwV-ffuY4fAe8J8x)r8^R^ScG$2T zF>HscU|VvFve;&SLTk0FqF@NGFoXvU;ZE(hqofJKWw!UEUd!Vg76upLUhauc+ z2=^Jni(?3DMJ~X0$gpiSY+DW0oLAwx4BMPn;kpdrUa!LS$8gr}iT)~R_Zr%H&&M{y zJY&8dc2xw(=M4FrA)hnkyS=w!k@r@#nBNz@w_>^XRfvjD-mc46IeK; zz3fN+N9R#KBC^s-m`iA+)rIRm(E}WQTWxIZbJ$5$8#>Q(3H#;*Ets)JhLx1M$2p|C zcW{+nSh3{2fL><4PA}i4#o{W7g+YCoJ?d~mw6Lepc^(HMe~PxHu4WZbc1r6W?*FsY zth&(UT(WqRXpG0xG)EYxu=jk8t@fmr?Ln#aZ=GInQhR>b>E={gxwnf~l3w&fMdJx_ zKu9v@j4p>Z?-Et24(*?N5(!7^mJ{5?-dWeCz7TYBYCj+CZaVdCMn@$q2gmZZ2&y%r zp>>?++ZXT;=!bR$6ucu~(DQZ3tLej@izA+kvW#zo%JGXCXr%B{(z8m|uHa652D}TB zUz%|36x2G1obqV3M+cTqV5?(3T<&sO!8n<|?h`D&3YC z+Ras3%q3b(r*o#zU8cc#bKi`)FP|rE_?;+M!_LOdjK(_f?1SiWD9L`-iKpPQJF$bE z0Gi#hvw?%Mn$KXDI3x@srof&;?CP?IW5+mw6$CqXm|15A81It_EAwD@$P?RHz!I=J z-j_*BSnUOJ!Nw@NCi*wF8fdlcKWf|5S?Kb-?Nk^!MSDcA-y`H8&oNJ^)LM-JrivDW*Krg5;-wa$Zs~f5T`}XOJC`DD9-jLz@ED z#*%0qT=8=B9ep$C2IT+EXqM74?gCG~i@vxLJ@Fnmlr*q0XyoO*|0Szd#cS8MoW3Sl z+2^78A8L1G`IPL^5ZA8uDn;dpyNjP!oGg?2L8*Lj{4B&aylNYn?k{rv7jdoj=~++O z9g+A-Yr~zwmHHF(q+;8X{b9)VJmnp(@m**TwLV2impQt)dhn}gy7p;=r`jB2#B>vP z0oNtw{CZPR?+WS-C!I^u3%sW#jMEBWwG4@(0~ulk5@UNTCB;K@Ru`?zN#1FN=N7Q1 zttEGO8w?&o=xS-rcCz-hV95m6amv#P@6k~}zTpQg90kW|3{s3_aI2kCITELwV_=t@ ztT7|#Qi8$&untajpShFVoaSIheck$5@2HIU9hI=hMDM7G%W8M-uUIru< z(F@w{XYJ|i1yZs*D87My_W{jw<7ak=(epu|7~-3NV?VHlqdPtF5l~;j3=GdLzxH z@QlB~I%QJpZ_D9J%HhhrHT6s9OsDSWeePhN2(40^n<=xA(f$$F8{r*w^h@o~o+pj2 z;D1@%5bo=!%72u^eh_5X_9 TV!uf}z&C0i)Vr*-XWRb)IXm>Y literal 0 HcmV?d00001 diff --git a/release/3.12.4/doc/fonts/Montserrat/Montserrat-Bold.woff b/release/3.12.4/doc/fonts/Montserrat/Montserrat-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..92607654b7c7225082b354f7ec641d5595f3d8c1 GIT binary patch literal 112872 zcmZ^}WmFtZ&?pQcfdByl1h){}gX=#RxVyW%1YO+SeQ{fCS>*D( z-~0W$x6f41oa(Bs>guXKQ#0kJASsD}h=72A*nEJ1^Ll^Fv-{frU)y&TX{lGb&DX*A z{|ksx-z6kpnd4uf7y;o;;_U6bv6P~M3IYO>5CVcp9s=T5S9xFYNhuXoF$4tQD=!f% z0)n7efE>a%1r;_91ccuoU*}SM1p~FkLP=vAL;F{p!K;X02ncA;U1#+e#;(qv5fG~n zUTMrWYLf2G@erTPE$`v|o5Fhf8Htw%sO zg(JMdE@q|5L^3xuG(kXgtA3^9`42uW-YlEHB42U;$@u&V)W~}uT+D5p-4PJoU*|#v zARv$%xW=oKSlb!D(*6E{fPh8%iZel>{he=P=>94<#^ir_Kfk}k!nQTEF@41azS<=F zRY(3dU{1Haos%;HVjMLB0$D2pg4#tIwHb!JqvBYqw(C)aX@WuwZ=``2CU;-+7QNvY(Az9~^yuPH`l zl5VpU=8jTJq}!gbaD36dPUrRuYa3tE4BkL)B{`3MWOb-^G|3v~>R#oJoEypc!~M3m zm_G5y1Ea>;-9J6h+o)UkWw!61=ts`WXVrLdop>h3NYgy|MVizw&fNZHE`cbzycu_% z);~$yp?q?ML|^0Z`+BrKg*I5>>DZv z8d~uejy+e4(;Ujq`qn&26%HAM^3*R<*L%Sagjq)_-Z^X+k)VGH4;0Un`r8qIET!37 z3jX~{M4r)R9X0k~@51{hruIHuLy6hew5C>dpi~X7Ok1wp=B6fxyMKQkM_XI)#DJ_i z&ZUQS9?5G-k<`@K-e2zD5D!t&l5DySx5P8;A^|@x@)vg zaz`9ZeiuUuo&)=~Ssv~-M#tB<;9ILDyL@Nhu>drPIx8dQ80o&M)2P(`D*G?iKTT5TY?06GV?hGr?cf z-Y#7dsyPawq~DI#9i{sWSSVCN`#3ZCdM7$I>w)tgdlE@H8juPCeZCnuN|yVOgo`kI zH+Nh;>#-00$eZ_?BP&oUv)0^Qfnu2K#C;G z+Pm?xe?Wm7RCy^Asc-eDwsS}9J9}UE4X^ld1G29TwSO^GPJl7ri%fVCW)IY)54Y$H z&y>`DMs3ShBelP-pZO9AflH{j z#qso4sjRxyci$B0md4_ezbUhYh0<$z44!-%Wa$F^(SUDVY)msg!?VHub8ii3-hLn! zyv0Iw%H~0;n--fP+)ETB%{=47|5Ni9_cskSUx8sgxAk;GIkKf067f`)3tl)va`enz z`Rpx+TtH<9Azykg3x&VpnI=CxeiK2~&Zy!LHL=eRSw@VFM`iXR2aqGgu&z{>h@`k! zNE_OLep9|-z>dvTu4Jm1@6YWoy3v4BenPvK?GOiDN==bgvLkMou235CFrAy$nF*sBBG(*$I$loq1VpQ7l6s#PnF}UkO6$`ph_LTvC+6fuHY3Khmq(76>M+ ztQHb?GcC}o5yUGSOUF3LDRmse_?jUXULwOBQ78}BB=a>JWT*469NDY;>0-O68rB^DZTo)_hfIjPuKQ*RJPh6ZHL^ZFi8E*45x)i|=)l(69u<`_L(yBs!e6KI`;Dm=1s;%Nh zE8q$paSloA3tYGqSB5eO(m7~E(IDGep}W^c#=<}}1G<(p4T#TO@to(L@AOJDNDy#3 ziJ1DcFOXtdW!-gh5-N3M2~nI?$$t@!BJw)W8?e|@lJindQ$Enz?@6fmuxF;pzaMbr z-h=__1fI4RIP$F#thXEx_(gk$J)AylJQw7@tS)1jmw^H$L>strxirplcgLPTsy8^@ zcGO6+TU3s@ z=W&get|0K~EEsAr&Q%LsFRM=gB%Tl`ZYc?lE%$87O$nVMm&|!ALJClFISo1BzCFqx zJc~!iKThz9k`{1Pz-5CIZjsE*nV3o#=J3`0X#S0hT4@xdT~NDwiusgB@8qsEyzAuxE58)IlH_JGUp*& z=@c-*@93Bm?PWF{EWf>8{=q+4gvol9bA(5Z(!|`h7tXwGk!`V7;2qp#C5FpaU};h0 z*sdvDfk_^I==qE6c|++WB|EWjwlNO5(B{MSkH6MnJFC_|ys50ru$M{wjE{JM)tX3SpTvu+eao&Ei6RMw&bt40zZGP@;0*s3E} z-QtHt)N^de?a=xgq#MLbf*cmuyJXucPLv$PTUJ8Wx{`VRw!pn-NKw1TXAKj>iol#O zd}-EP3&I`gDG?U$}+-QCCl|r_jn;jr1mbfbwU|O{%En) zVYwSE4x@F%J?SRhV%e6TU3Z1Jx8FfQFc&TkY|;qK^frg0{JBo0{pUHsP4wtG>N=&9 zv5CuKI-Gmn*Qe&MsbcTlWYq#li%6}(Of&#J?ol)>vYFRuWw+nI)8^Rgvu`A6`sX|@ z`f`Fp=DCQJi`Oh--#w#6DG;HpxpXSsyc8vxrFFe!gOxInR8K$S^0H-Lc>2k_%_8bF z@p3RUfkS=eK6B`3;is**e||e0ps%A3BX1aMkkPytXE6}qGp$J~39tZq_^n~~is@9F zqki8Yox7K0o2I$CC$y}QI>5$Yn#mt{-9(uJf4YM2Q0nNi!_RnP?xh{6u!jA z2XAyER#GS4`&@@U-Q`lZ_AjH*8`~-72~O7ADwTSGL;U zP5ahZMQ_DYDIo+a6wD-qUoQ?WHa6Tw{rB?xKi6rQ!>!kRqnmGgNxb|?agJr3r#asM z%7DR6KKSz2&FHNVmvM?+^3B-aeKTk!Zz^wBQ=?n4Tc=ymUF}^^RN>6=owMqij@xWN zMVOjRS;gE6vBg+pqSkRm+dNZO5Gd^_>Olc>mDpYA!fcaM+xk_iFOEL%XvOC;Ofw&-RCoiwZ}n zcErX2l91TP9_rw~X*Na&MmRD_`yUJrb7Pf~#NJ&V{w)4dX#08S25pG`_xA{ezWVRp z;eVz=lQq_G1B#_Xk3Mp4YT!O5@m1euau7SXwkUGi?|VIsnwf`eF8rZEOq)G6RW)Ae4%_Vk^CK7T=%bQ zeB*unxDw_2cO&#Ev!vVUy&gYVWAyrHbO!KrlKf@q(81rx3KO)~1^`17omoEtxk7)u z2_fZl^*&)h_uonG@6_LX`0bB~C2JyKJ7n(ttrgj-2J^TEk)#GSt>&F}4VhpyZd)~p zS2Y2g`djluGnTVO=B{jA%_pw3AEHlxsTYC@vfb&WkO9|OP0 zu0JqNFU;#@U;d@$6qXeIBxd+YROwSMo=(4u^sU8c1moMB_i+)iTDqnRZNbOQztft7 zR+HnnDdo0qsHSe0SQU7AUQ^LlW z!bW1pMz6s}aoGAyzD3R2b7=$fl`~IKJR=P?5Cep?KyJ zc;;a}v0gf|XI4(f%I2SmT9U?CXuaG-U2w64JEWXC zi@p<$xudC?S>3@Pz2}YWi%n6EefOQj@cL6+L;87jaZg{HAIGHIgk#iU?tJs4Mv43P zj-3gw!)_rWFYC|Xs`w3k=v?gM=C!ZmsSi;4d9clr8}bP8MGx5-E72E@2jhU5$Eetc(}F{tfHqI_>N*(`QU9M!Uq6suNva#!)jlb=ZBP{KS;0 zM*h(otV7T?Sf8kK6$ScTf)2ok`_!#7+a%4Gv*S>8g74ic1#=5^Q|6fix$cvOfPh?6YMp}WtVA6QbK;M_ z{SNQ=`D?7S#4VjCK}$PxwX9{8cwQTJHR?F16oRPn1{wveFde(*IU*KWhZKB=IViC? zOVqUAd8?$ZsfWCyqR6tT!y86J5}qvHE4Pp%M@|E~@2im8*id!rtwt@)`BY+tU-s{X z<{0ce;*_l5>BhVq5z4)^IqQ;KS%X{4e3B*gIWDed=KNlKa){W;E^I8vg*G&H#--ts zt(ocLWfgebTtItdv7l=1&B$+3GJ_#ZT6Ih_7J#t`o7%Q&{gGS2;!#J^_jY1$yyIx^ z1y(CZmwz>K0k3?xHeSl;k)~r4xZ|7F=sj1mb*CcCSjN&wrIzt|ZSVZ?e{8%B;n9Kr z^9oyQpah3V-lbH;MMZO3(mH2H?1QUWNk%;mrc_erOxw&3VRL?xO>02rbBVDWx>_tD zEuOBx%2^3#h2V5o(_7GYjN8ND?x2y;CX0+YA)l`@toy-F>s6eAIGhj7x3xcM93O<}UYV+D!&o<6I z{5?~=GvaE37c7l8$68IK>&?ZIOQjvuMsa4*-Gu3>jj0=pSHfI0p&C>5Is9p!-&DC| z*9{#;w7x-{*Ic9^J}&H0diq1tB1Jp%J$Hk98l@z&(ev?7nX|D^db908@q@g%GLvKP zxVa~Y5i~68I<51lYP-WWwE*|!Oz%P;*pP3O+A0r{Ii8X%=fhBPb^G$3RVzb8GY1P= zR&ivAm}2V$^168GeIt?kFN<^F%FUW2Vl&9P%^dpI>~hCnJVhp|L56`U6iupTw@8Udt3_B7PRCLwswQ7_;eu=!02EpS%fKK>9SBAt&{z@k8v z6SmiKW%ukwVq!a(c%8AndD?S;ed3<%H-|Ri1+md}&hoK8gch&5<=@R)Iuti!WGm#T zsH=n1!g+2Ky4;x)|DPCz9Mu{0l?4EyL04cmgb zDuO$7B~%=#Lu`Gx3WE#Q4QxCo&qSdsquUGsvlfw$VUs2a4-xpIA~FnC<`isHX`(x! zTsxtv%Nh7MWF5;tttst8$$P8ShAi+)>MtGcgGxp9rbU(#pp#`<^)U?KXYOS_V%r)m zHEUsV_Q(q#4~jsvRDJ`l2U%lF&X*|;e_OKJ7-WEtl8SIo6(=-nx*leQT=!k1$7x1e zPg~WPM3=YxvkME{hU}S28Gjy?~kjpIetXCEQX$oZu90v&~Qf61V%M_-#V zQ~1TuqsTNSbLJLk$MJ$xeEetrDK*;VF6QIK`MYTA^PgqAGq)Sn!&Kx_UhGmA@}GZnDUd+MM2Z+jp5oPCaRC)I;fRyK5D4#i2ti)Afn}4Yw1KFLO>0U%gn6P&#Q2ZS2~Y zwF7W!sQpic0;gyBXL8cK+D(P%7V34gl&-szToX4g46hy1XdVHfh93Er+RP5u^55rF zzp7dICZ*A*?@GgLIyFaYS-b)+$R^WIy6hOM`nxusDWVtOd-LsF7I`XmMV|h|Jv(f$ zN04?X#7&(KH~g+(Aw;S?SB1-Sgf|vQsjEyC0qayRbZMyGChF^|6!+9V4yIy_Zufr{ zXoU@XPGz!<50h6cIK=xkoX#gB`+DwNwHwL>2E;4Vnau4CM1DtR-xXMb&n!_`u+6WR zh6DIrdp6r9-$)U(%Piq$cIlqb43lNMzN@(Ai^hbTJ5v%d+SXbM-aq`&rqpE3R@ z{ju*x&W@O&pveFeBco-)*B)BhW>#$v0KKsDj=a^5h0THaA)6mAVM?U}Y(Ng#%JeuB z)@sOBVvxWY>3(vIm%q9Tn2?!H1IbtbatiY&#{#!b&HY#>4CSrq}PTUip3R z-*b(dSX!S1mF>#3m#t8t_bIw)Y%h%;H$oSz+0qNj-9nV}OiPR@=HjyLihEZ^VIR6W$Q*mA8)DTuD-o=Co*-Yk z2D46H+=$oJV5#QxCM(YRC_L=GzG5!1Qd!`xHXNdPAF>1oYl*OFhQ)S7FZ&Q!oS|h& z9d~=_tDi|lT_fHKmSSLUf0XJ4Yq<-=b*@*gxl)lGK$YZcm?&i?_{0kg`4s29p9>m1 z)q6Ae98(!MS58sftTk4RVO2!+C1M=W``&f^JB&dp@{+HJw&|H>K#M> zKI`55)+uleD&U=agX@LKx>9bKIteoU-j?;xp+g9*)N@5;tAyw}&?BXU6XGA5mK?7s#x0)Uu^<=oE=mt+O zU@MsH6ZE6$2M?l6H2qb80|*}(NB*HDoNBI?XWN63$#NQN_p4ksiEDac1ogmzKZ_im z^_J8Zk;P?C)8X`1r8~0*pVb|P{?2GOMa@8+?RAo*M$P&Lm3$xy zs9p!ojYYre41sGay(m3XS#@P&i;%WSRr{wi?_d9FH7^eR^=5s=h&VSW!a6D(vW|QE z_~_Pq8GNgb@@L-Luh`0KM8pTETxwoYbO>jt;`xyjzq95c#lTr^HqA+a6O1$N-bu%8|KgReB8oPaTjKYAZIKml&kZXboedQ0AW zkHMaCr!8ECJB7VN#_pnBVVkAk@74$AHudo%ri4vegi)!1ct#ow*x^*|FM=;gJI^P+ zp49CG(~rUPE+T^XKohl&qOa|@X&PhM1Yyn}!bMpEf9tr)pSSb2?;jhiWLHXR zbJgoxY(@Q;uFn_grT_y;mB+w?=Mn&~Ih`&Cu@t2o&@De3PVEO25xV)xOv@>LFax(a zkW9}BUg^H9JsWb$7qys78=v~@xcq7Qs~8%f?rD9lR9aMcnmnpCbLU4T#ff{Q3!=bZ z8yS~RnnQ*omyH*c`JMf&PJ^n#sVWUyB+8wHhr?fqC7_1?w$HX@AG*oE`rCz6c~+lI z3E6>nLVMw=P_`W!Pp|bob<@s&yx2Qlr-9_(vEXy0nH*ddp$a!;6{bi*WDuf?lc^G) zrXb!UWUtbdmfiM;txvwnA6#VOdOga|ImDP^U*vjNua{jC=E<o;;J54v>cf=S}tK)YB3<0=l`LhB2i5fuaoJz zth5lH>o`x)q=WZQzm(You($1$(aF<+hV;*^Pk~Mm`^z4Bo5>;2SrXWuXc{2=kFeUz z@275rtJcilD$ALDOnHTZL~My6anUjpmXy1O`(M%cJPT2f9{E8hDm}>qOB$E)A1ZEE zHMJ|NDj|Kgm6ckv!!-?3m(EzL*gcKM!aS=)B~Gk2&jttOBh>sh4?NKG2CG?+$jVt8 zbEF}I0Dj&gJ1Iv-xL|jFanY$Fhs?WvY!2$r%J>Y@8*&qj=VV1^K}?^AS3EAkFp?J_|?7LKdEfrOl@KJMRj`kn5cCLc1i zKA|2AOV-SMZMu1#FI66Npn3|!d=?i6QZl_4-o{Drd*2r+!>=N3u#Ss?WXOtNdBXOR!KJFlkY~@sp8!oMMqBCtjNH*{3=bG_{)m8=iSW)ahBcD%dfUq-(jnV zkFZQEvaV9BGOP~6wb<^`04MY=E5BVyM(rBlZKuzo#{m>Y8BeZ~``=zBme0W}=WHuJ zS!-Q$NbMCXydTNY6apa+>#_QVt7oXbnYD1`WDJ?xHZ#fs`?*XlA5$-o(}w8uwJ!Hr z-=oSs?o-}9*6YuzhwFKv?}#n> z4XK%#Ss{nh@PD5WM@h}(^@>T&nstcGq~PPe6GyPsW*-nI+~V3w`q=(M8jR~cbl~m1 zieyF1C0w4iERyjAC^M+|(u=DXvYvd#z{{$h=@dV~pViHV+&lND1?%dJQxdh`l6EVs zlsAvcYq572Q&P~KK-G>qnL0vmSk>Q(IxbOeIqp$dBaK73vLV2RCmubhyumll&`0;5 zVVlq|yi$y!o)?~4;RKI{picA$21ma~sgv&`H9hm}<}%uI6|Lq>T9HqlBY91~1rGC3xQ35_ z7*h+li-lh+3-KmX=7+wBi2U(zL3K`W32-54F&Li*G=tuIiY)+8k|sKGSDMPP$|txc zYVkEjzK^AfO<2q7RyB-02p{MUMz1O`O)U4`CM|}#{z+L?s3oh3R@5;U*(!lsfU}1c zHHREU9CUFl(dHD^wA(V){CD+T{>q-e!$A1kPr6zyJ9s4|h`Q(6qxxH8US>C&&I@BrPfBQ0gx>YMFZbPjY5 zEhh$_S5wqnoxr~-;Dy|%uubX*bXITFh=>WIXyq#pJ$MFfHk53TEkz&bmlu5W#juIB z`ny3eWHC<<(HVt7JyGf>#+!VhRe7||@e}Q=L=EW8?Gsa_Q_EAqVO+cft3QQSSeAd= zP?*OIf+eKhUVZAOLlfrp^hDH;H__1*?ZRwj@v<>$PFuK{vRbm9z|^R3#b{#j8nm?<`VT>-+9m4TJ5ISCwp10-7Jet71XQm50cn}X?8DrMsG`+Au5 z!RQ26oU^>Lg|hZi+&~WEXW0H!CZJUfN4vG!FIA(^6DK*2i6U(g58*wyV;UN3nox)> zdiUvDH|(1ZQn~~9F=h;Kf=rSENp5=Ra?Ln(c;m*n} zt_|szdk1{g`>u%^EZZ$ruo0I`RxLs^7wv@zS0pb@9e$iG9Px-X#*mPM&hi`kYV`}e zKilVo%u9_r#Y|Z0xcyD;ec!#)r=jx56So0Ie$l(W0Qp+2c5jp<1_jK~KW4C`Q$QwXyO#^S8-mDorGCi@+yWw|%&#bSN$5*RFQayxy7}eQhZq8Ex-MGypRgSbRPH@5hG(Zzha zINAQp;~LM0e%b1*;Tl%HIC0s+>Ivc#i1h=*K7{a+z|n3)^X2Q)r*T&r_1D5i)*FbV zaHuz+1<{A+i7{$A%q?VE?%`t|nK$*h@c6D|?NCk6F52K0sT)7IVmKe|m?U*?E90O2 zEOAcfZmJpogOfv@>x<>{Izd8t;y#Iw5bD3r&&S>gnC!GmryRwaFp z<047}kRR)YIFxOJTa2iH!Bm!Olu^J1d@ya(zzO-0GJzy6Wt4;Mx5y|33Zv6%=LzKP z6aH{X;A6x&>7B&>r6OxPZC2{wdSXgaDSvg-&r#_8EaEH`ul&2F&9&hD5BJ3Dy5qxo zCtF-uKEN?=Plg9`sPW$J*>&f&z+gfgjQln9bGnYs89R8r*53xlg-pUZQ>s?ezquvf znc3mC9MN0ZDrLqQM0UHZfu~UFKzz`hErZ=+MSeyRF^)_(h2Q|qjm$@W(i1vD?D3Sl zeTI%d3V`#wp;X?39ZhJ*_9Tkz@_l92Q!?g&iu3Iwvc}7jQI`|EO5u4a_fA3*&C6-g zOx%!uw*$&cv@Z27ea8pG#^3cD{9-iyMB7KLte4$6G*{CV*|C)9S^Hp(}m zuO-E)StgnMz(wFKEP9-&-Ja14{7oKNN1*p1Oi{N=prvLQ5WOn7TPx{E*9~X~t$&ng z-B7as3rwIh=~B>BU`p+X%i%=2_wG*mCf;7wPQtZ8>;3~_LuK@la!ldRBmV)*Io>%^ zeU@n5H7Wl4eK=0L>^|aZNivLhjN~Qf*~>0E31R~U4W;AejAo62UKGg}z7S0e3z1Q* z3tbNV6p6)^`u2BsNxsin8^1I?*vc$PzV^ zZ=~e^OI9yU^yy^*cni60*!4@5n~XwON7(~Ye14htkU)pBEgvKPbY%VW=HhXFxpB-{ zE2aE@%PyW@i!XH25~NSFylQXOH&4>}xu0&<;Eac+^9`59e}@OZ{S4H#5Lo)EkRInt zmnu07y>QYM)209Wgd@q{>)dzFGJ0N9wtk%P*x9&_HxNtGI-xG3DY)BE7M-yb6}D#t5jW(ZetR@XUwf7kS$4WE(S`4|{94;XjHb#q$m*CipVq3~SE zgIBt}Oxvy?)sX6RtH=caDhSiH^r4FW48ro{!jzbENAVsgg6@rbANqtc=DP{KuyUHK zBZ@;1`5=!d53bTQM@w!QH4;v`+zXxz^GcT}n4Zl-D$)S5ahTjWdz#8%N{ zkg=T>J^va61{}lTk045Ses>mk&aSh3hHrIQHr3H$&!5K7SF28T_pSB?Pofu-qu(B1 zm7K7Beu>&=gAzcwI`jhJ9pl^jcbiX}Qo1NAQzm{wB!b(=5T)H9cLmfzLxpOcNi;Q# z)b8bz;LZKmoDH?nsfVYGox`TN^wXg;g&pC57V@!7`n{9GsQV`!(45b0|D_KrF_?*8 zA1kAxHA_6wZHBZR>PvIw&^ZA#*E8zc@{z3LfB`P(Hmeq?@W@7MUV@TPe6wK~kI`R5 znD(!A4|HxbIzsuAp_2hz7GlvM98*@9sb6xubCi<>T~klcl4k+~SCQ4R<}h>$76vNC zSpaG5T22(JnQN-cLuaR&CkGQpXTP271=ExMJ*aM^*Qz&dNpKAqdI7qXvL220=k~Z~xJ7sD+Ge|c=I%Tb z?CzHXC+GCyRA=-<*mk3e}!(5+dBmM4$# zXFDtpG*{F^<~H8z8C1cMsbm9m9Xy@1wT};DR5nzvLDT&dG_J_L(B{i=a)L^Z;q@yc zG|Y<-BeSx3UMC3Nd;YtBGvVZhOM9u!0@FV_AnS5e-~7x^->6FzD!tpm=PLo#-VJ$y z`tpg$IB_~IIb4gL34%z|gK2RErMUF#|4_Ly*uVRqrK5(nth?)y=#ahoybIpl4By|o ze?X?nf;$#|JB1m%)igki8J|0|yQ5I%p`ai|`>(~WR5LGUX&H#j{&gy>aD&&v>=h z?#r@U4PLfBZHm$otSDM!^V5&}@Z`3uW3~FCB=qFQ1?*}zPR$#qGwk{Yk{Vvp_tQ5% z7KXdE!grzG6<1wK&*5=(FVjz?mforRUmii7XPpD<3Q&4JJU%4BwA=vxTj)2vKZS3b z)4%Zcr+1>0jkq;3?i-AYW5tpT%;T@Ea&|cBb}v{k?KVOd$7=w_@R?)9Tl0(W89~p^ zw>o3v{RTOCB4uqTl=>yj^PVNIVa0U@4LJ_j+}Q*Mj>~Y_`E4NizIjG_M1u2L`|NJiqHW^Wt?Eys=F4hGOk5E{5fadWY<&B8S9$lHyDz(bW)PHv>+jFtgW=8S zMQ)#r2eI{8Cu<;;s_z!H0OTxE(FWs)pfk4)ai5*g!}pZ%k&>G zIsc~-zS}bC9eNw7P)|b|#F-)NOVT6T(4e2udgnU99B+EmVe$NOe3#YJ&m(cX;g1H9 zNqpF$mU(`1D#db}SNHBeqU?lJB>q_Hcg_-PDu91?b16BmYt`3G`+^C5Jk@Zqk`HHb z#l&iy6QU*H^e8kbX^(x}k3H;^t=)2NU(_8+{Mkx2AR@eWB;A3yF(9lhxN$A0k@(QV zp%37OV72P8jqkU%Z6z6!c_ep;#8HgLX_~PPP{=fzR4pI9z18eqPO7;ji``4VaHa90 zT@_5@T<}bO6@p8_uoSD(w5qBDU_N= zZU$F8s(U(&vf~9HUPh;qRcGa-xZcLuCFq^}qOA)XLtCIX$a)G$F+bu{x&^dfpRLW5otS_JGQ4UT5(@I zpHq0#zqz_DKw>gf>f3JzN7q2-Z?8Cin(e=D4bgtJFuv4T;SW8_>_aLoQuz zmF|8lQT7Z`Hku8LOQ!Zkr}UiDmX-_t#&CGVPiyl6}fd zoOnmdl8t)DV@4E=0eOH8V&BFfJjJ9RZ6qfNHKCj4tpHL)pOi~FnFga0keqo9tO z1bK1!6U$m*`S#NbGbb;bCkH9LCgWW%L^{zsziu94tvzC^EyMGnTH=U7OZd`8v#oqN zL!Zf=eIsS)M1HpG+Y{0(U9nwSF5R)yV6TYK*65PiINpwOT5bha&r=;(I&sKOn&%{Z z16;L*w^TI);QP;Zto=1WW#>w)+IBCm8q2${|L~>wT$5lT0&bBkQPwG_GB!RRVRgGt zBQVQj*aLd3>72fBiyW`Sl``qd!{?Fl8EUVY^EZ#rFq;Nv1@yS_6Hd(ILGkD1vlNVS zPl~Js8CZLi*>mqNJ&C=yj3mm}vOcd>NCtXVy$IT*Thor?tBz}c|CYY}9-NqxGTQai z5fkHfaft(0ZP}9;_Vemf<)VSU{H8Wz6Ac?0ZnAxNh1-a{i+WZGCbTIY)}{y}P7qW| z**roo*4HCD0hB1nO)s9iXcIrjl>$O6%<3qi`%simFpF zGwOfS9Ww|lv?;YPw*9D`Yho4@lCAwkE@`UNO13tBmC~s;T-m=6jO=w{Ur^!JV7h)+ zPLL$M(L(Fg2yktG86?Xb9vPq3Al?WbTV`yzIV*3#5L zb0@Vow4X4K!WXwPV=FL+_4GK_;$6;a>KJ0xmpxPW>NH4+Pe!sz6NfwO8%;9m0Ioa| zq-J*s*5=jV@j`RhbyG!SQ%*Ogx*3)Fs)VB}FKN~*w>Ygz{S6nRdTf!2;Lv|MPL@R# z9RqBl$);a*Wr!`(bQKO(l?r+tVTOX;g@s~L_;b3+1$8WrEq0k$?qD`U!2_P1h04Ao zWj*803RwTy{nHSWO$U>Fohk6$$cC@p5GI}U`2WZBpRi*xXI=AZsf{5?^`6^U7T81A zGVh`>5XRG4I18gaVKlVseQR6ux++bD;NB&eSu6&@ww(i~yxDpADXdH-nym757tRVP zJyQ49_!7$~aEVW9>RvHd%X=wgpvD~@{_}jQhRFCQr-_P&wA-NxBo}uW#4PR0c>l`Q z*YhUt5PkQqBOjBBDsylD4PLo! zJn_1wWXu}GC4g#_vVDD__K_nvUh&xWfWgS0zNuTrUYF_^V$FALRlShlJ}+NtS|76Z zvp4e9-aMPKz&<-pl>QeW9UwxIV*lQjwA;!+I6nf|H{4yVH?PAzH!ggA&!f}4v$4KYQk(=REmB;CDE3iY zN-54#K*36*S(gyS9{p>=_}dQ?Vt|QDQm$)$VU);6w-=;HDpBfhD)jLq&A1n0dhdfM z4}Pot5k~_Ju-)T1eIh~dD zltW`cI+ZzYu2$xD2*giIw^y(8Yle7PN$?mqHP0)6(5qYT8gqS0&;xi*tbB`ch>ZU= z@a@FI$a87emL06=xg+`}R2X0~bj>`0%FinK5vNab`?DhGUv%~XlDHEB%imzy!Iwb#Tdk=2A>&f9wsVMeZPE$Nl5N!@Q*G~hJ(fw4kBP{jXn2DLY-F27Z(J*u zW{97}GH@ESFMRrhQQ11B!I;iCQk_41Tap5&^5E5aW4(g%CoKxVBVtAk_atsDdEXmIB znQ^G#CXWco?Xsm;4e1O93B<}Y|B`|!Qj{8dH)Ac-2v18L@ll-Sxp=$790VxapTB49 zGGyj52+tKAnPi>KaL@Td`vv-wU>q6yQcuP5cRL^*;Jvg+0q2vy{^Sy9h|NMvRGo_~ zjOp6=iE#2sl>dh!dvPGXXo3Ns);p>Ikr@2+21myV)#}RW!PXV%)qzMP8Pv@f_|#Sb z8lRAQ`$lqQwIw@6arMIY>6GF@@FHs*KU_dt=*T*>xUL{~JTX#W<@1sCPH~-F?l{j) z9SDCcZ@ z7|Xa^IPd(kgwzrJ?g8PLc;<7lh;hfO4;sad&m}CD3%bx@9@(x%inprYZC4j)5=T`N zhVRgiT&R&kblXXQ?jq-43TE)teH@0V8=LD?bMdYB=4e0#HpAvv2FLu3EObZS63m(2D5S^rz9P#i*I$86Q|N zNwcV920OBBfa*OO|M9Gluh^lS1nPb%{_q3;clJk_>Ni$3Jjb=<+O;ezH6$WCUon9K zoXP#x`}T;Rh+BA+k^XRndq=}54MckZ+^uS1NAE@u7nyE}`_}8(3~m#A!h3Ezp8U4) ztsLly3T3}p$kdv|Gc01QlA4i43)n^mg7*m%3Is?Mq6<5^>&Qq78fM=@Pc_V#*qOCSZvmZYc|i zJtF}2)$CG9IP8P)IQZ`n9qdc(J;z2b+hcN;5kuE*l7><>jmFS9QMhUZM6rB_KB`+S z%9z;o(+P?^M-tQlElkkR95tJJU7XX~57ix=;YY8z$!7|cOWglM)>}Zu^#gswRcK3b zD_-2)y|^syPH|n_wT0sDviPFK-QC?;+}+(4mY4pYbKd7Y-?zz~Br|jO>`iiWvdM2U z9K;0L6^OKz?>#HvpmuP0_G&|0zf|HEmDCQUIUChIBpEG8yvf8;0e?qg-J}qJxP;!+ zm&Rdww2s#vKsvLUqPj^>kubd(>BlOcLjG&?(K!h=b=Q3q{%x1jfSwbl2Uy%usAUlxtho3e~g24z_Z~(uapD8OCU#q*+IOYxNHAdGfX6u^7i*3i3 zFeeEU!c;zxB#^59Y#1?M|Gt0&*Xgr=S_{P6nXdz`eGlM*|NNyg&a>o%Ur0kde|3Da z!2aD=uMU44zDo@^P0V%NI}%2(lP|bl-JF$U_1@TcUTb&u6UfgfK~HRa7fd9yDOl_H zd&VtnMAX>L-z<`vFq|5PiPd{sBHgWwB0M;W`++thzncy7gv)O{;yu9i*?Jz;O02*E-`dGk{i6t@0b(8SU19YrQjnm?F^@R5LRs@9dHA9QpZ28A(CcW1jxN zoc^;|B8EP~DtUhKwTQwDqLJ_bje9i0v7aNQjmty&4s$t>^1 zs2ZgGA06<{C{x4)e$E;}idm#Qe&S-3{#fZVQY!oLa>PZBJlN;%>B#r74B6W1P9Ldt zr)%$5ClIgq6K%2qu1rhQts&XM7(O=19Xs2|1DU&W$|&7C z^0Jr>XqwnH)Ft88%^#Loz-;Q;mDaT=*Uc-=RaZZrWaU(SZbDq4YUWIVbz2D|fVKwhG2Mr<%wba+-_#^IfV_W=vzCrlT0>Pq921Na6)mCIU-WiDLmV#G$V^r8lS+*qT@4e1^6v5u3hXj+d3Pf z0#l$LvzSn;3}YM@PyPgRRHT^G2-paffVAlcw&YiK(k4l4sjsrbO)5#!>_dIdjSSe= z30#l)6P)2~s{0_JHT=hXCx4r0Kbx5dr778_!8wp~b^HW>=qa;PRF0>N>%Lr((6iP| zRJKnzA&STXOX{xdH0z)!V~S*42m{Nc9EG8APL#}bY={~Qvk*o8Ko3{SH!}1U;~amP z>$niAlznn^ps}H!Ozuz3UnbuYKWZR#SK%g#X(SqOzZuq)rud%vXTJnzaDZm;*U@&k z*Y3I`sBGw<++Q(kP-lZvm1PaL+~B^-k4306pZ5n!HQj!Qoaz~-a$6yG7w{DjdZ|JEmTy}&XJ zV|O(rwnJ7@GPOr4%xSTo*r8_hYWp4auw`TCoJ)7Td(<)|f7&_!Wg$QPWilVBoXt7ZRB}sxHj+o#BS0lCHKf_UAxrG^A0Sw z+s`h#G6k{En6ILL&ZWKPMx~;l^sb7d%{EVBpsnU&<#^S-65j&&Bux#c{!v|OHMJK_ zn-NiM2$sNG7(P9veM0eAQJVQBqw2xoysq_dWnBd1LX_})a42x!)%0lNbhAW znHkTsb_N9^K@C7)pT%8f7?;Iu(mk+l^}uzpWzj}RLPNf>b2kEpH27fl44B%{zhwjr zwr{Q_tUP(kA36(pY*fCoyV-HXkS=OkbWdGNMVdMabC&2L_DAE=UiB~R|1zb zjQFmsml)4SE*AfpkG4W*HRZ(81_s(annd<^Q)c%>ybDXohOZSfPt3HFGLQCh;=EbX zsRfn-ALZ7p(68c+35Gfb%WsQIck3U3E_^uma@P#)!+(A1*F;|Q+LOk-eTZ)SVc(x6 zo)vk!U+3=of?_l_F`JqBz8%PRL45Mw^T^6^agB~MQCiV)`qF!Sy5 z=Of5Ex_x171X6#mz2DNmCh|=D5={P*?3)J4JeQw%DDlmB41<{*+TL?czRtUkuhYs7 zd?D>tolY<#01W-*b9yH96&ny+vlmMJ7wY1rOam&U+L3m4XvvlLx+J6)o3c_{n-qDFr@Vr2|3$Pit> zzDLdH>}u0}W;|-oaWCM4#7Wy4+|FO8eD;Y&;W)DO>9}paU-lN|nlWT}Uk6oPlk|+N z!B>#x?uNf}B;gM033()8*^7!0 z?8B0g>%)_=I|iGV_hv%M3ED(S@3#NLE3suVbIehwk5?{{B0Is^4{96?^e?xKs=vBx zCtZ~qt@AIp=A~ms@cBB5)GULjViB}(Ki8e@=BIpFWemrSBGIqQyaeOR# zeC$!sW;|xREOwkBZajm`CX=x~ox$cVcxf+qiGTAJ!`}1o#biNgnXps9D8M=R6(qYF zu-~e1EueYL&~vgwa_fNVSsC0a+@nWq7==Jp7c|>x{h3fey zm|wPskl0Wjy|O>-pZFumtuU(R@8A_umb>5%QWj4|7l2*V=&y(|Jc>h^b;qlWkPn@? z!bG^!3;Ij)n?Zv!@K*4RpHqs6S!V)9W}*kn8 zC?saSaapohsSBGnYUV~VRsJ3%`HoH(57cUmyT=u3F>7p&P-;1$_ciKs0a zL@uGqtwcHmhMnfM_UHlqd+&);F7|o3Fk{*<4uUSfoKsuP7jVl$zfOCL9NUIG11sCr zkI$;t9C2?YMMIOM#PRU2ss5o^Q$)Y7w_m}{aJ{sH3H`N{+ZzJ?k?>)=jbS=MM8G|~uwN0;?v4^qT%9)Hh%Z@?^CSS;$Akgf1ES z-q$}bsZqU+mwrQEcfD5M^wQz`BNP9}O94!|_+k9XOihuZkOrO1#P59VfvE9;@+FRZ z$G_>alWE64@KUH~MJLyLl})?M$jRI;ytu ziAL%qU_-Wh2^=PsYRO&tR<-wvottLJQ%VAtePjiSC(73ID20N0S z4%Bf7(y0oR7|YHG!()iWJB`Mhv+KrIFoSo(KNq*8Kzo!preYrxi*Qsl+gqgiFVgP) z9c+Z#&>0bMD3)tfOCS|J7HVMj<=r7){()Up}KG`07D{D8bpB5qXbSU}Kd_{vM< zx%Qgi(S69hEkA89PcUC_da!y-Fr^9srLl|(X{+EY{fc7Ha>Zn$ZzZnYhLpEj*E9*z zK#AR)ZQotg+>D^+DsdF3++XZ=KC|Z4GZ6-T9*b%h+&Ysq!QQ+G?k6TBq7O?PWPmXS zdGej61bOa?)fQ4TPmCL0$K_<&Tu+DjG(8;9JlP{XhvyI_odpsNGJM_6k~=cdwP=#xj`mn>NeUoZI*47(6b1ln6HARUGl}})3Nsn_sR#Niu_c6k;QJng|$?c zbTC$!G7FtELn4hqkv*O26yTagvpnf&C-wl7htzj`CMEWOE}ir!Mh$-IaN^@4InFB0 zMk%@0OzBk765GI=TdlBGt*9ldcEZFgiR<96(;+`7Q};#b&w8BEE`@a%yFL6@sea3m zxl`K2{2)gAqL_sui$Rk8k4$-9zx~`$`h(a{pagliLLetfG7IadP)wNKa)v|!LCpDM zDyq3SdL6AoB*jpS!s~iaivZ(q2R6k>Exkx}vWalNwnR?SpKX6kG0eqTN6ovuK0beE zl$g=*C7Xy!_WAHQ8GpBh{yCm>YW$k@bHDR_f)DxcP%@R=kkFYz$&RoPpW-#?h(xx@ zSV`X@TC_q*bWEIVl5Q2UY!c;b>}OeFqu;R`(=sU&u|LGnXsU#w4iy(f0pjLTS>&o( zRlgHua>(gx$R=N|1yjPg5c-?ZG|9TLwCR5LeTzsDHTuhD+HHYGkj?zNuVx~-XROxI zge4D0EblYTjY>hVECI(!Ez(gmkMIpgx2Ys*fk)b*-QWJAvE8MoEv*yrVx-dBoLP)g z4*-2a-psIelCu}l!1|La1o*qnpX1VMqTPgu1?KbM4Mn!&3A^%>T5qL-AwqOsUPFo8$nfR^r_gYI zmeX3R6RpOfvg)JU;8+6b(>lBp@sy|peznz3EOpTlB<6AODH8MDV!BJg47K;7hKUJw zE2E)#RJO9`GGS6)M7o;GhJ~&Cg0hmtERw3H=UhgDi}gumZTB2?or}&_3nNHEF{+ED z?b4D1HAKYnY_VBMbSVSSm3^XEbJ9Sg1RW8Gdnf>bcuBvX32pOZx|a*B4oBa89Pr%q zr8p6;kNEzn<2+-ps;xtD^mlFdNK4W8?+mQ0kVDV-4U3_Ztr}#-ua`%v zGw&hKkjpZqRnqvow>$ho?zYOSpmxaE%e%w(u}@q&5^V@EfqrGV;eDc&{WG9$mm zjLKHRoihIJ%TBt|s_c+wz~yel_p9)wD?F8ZdYf^g$<2E6i-HI{y-z%r z?bN1n%{?8xfJE5%)TZMp!L>Tha=2eYb92QYlFR14J4ZT3`$peAS_}SEsvQy)h z=@X&zX#-As&Z=dDOrD7;!w2#g*0!J_Cy6JK+NWn~W->$kX>M2+cF z%tUg4W+nVb@yEBEE-H`)jS@3r(O(YX8dNZ17)Pi%m`d+fh74L|EA8;T|HeyLZvP?I zJP8~fOS2t&5Hsx1eLW=GSR`*V2;^Ujp`?f{xKzokQKgBI-YE^)N%tUEDR1En@lvS8 z7oumjlu`r)YO&137HbKl#CjzX<teSp^}^>Jnn_Qdz5m9b+uyHCQ?|@D}{5sbY{wI53DXLH*)UAU6j#jwg>8iW-z6`_RJ^Ivs%=I1U zk=daBMs@Y-KvAiKUUAwajak_c&R++XziEavW{E>m#$5I)W4H;`A|@xa2>Phk)Ixh7 zTFLhL{p3D9`en&~#tpMg^6ce*^2<{H&`PoYQD_b2RY$$Ie%RZO5cQfsDC!dr!)a91 zXWUObr2D~HAz9kTGRMm~yAqZ@>pSo~WBXj-t@jLs_V$Cl$_xyRZbQ8|*j5Z<4H|K0 z!Cq&Bcgw9CA)ej!7<>-4^9`JQj{i|wn}CAe()0L8Ol(>#wI{$6=)$(I9p}olrr7*0 z)+H#dmSpf2B$Yb?V~Igjm=}~ ztB6?hRq&c&eC6~0EvNpULSaLopHMYBPbslsgJVDT{( zv4HmUGUrm$JVR%B$E0@pAg#nPr%Mxq)1$TSKt)!4`P76z?nb8EtSTerFh%3FNRG}v zBHVqAOMzYQsaQ{k0Z^l>*CMw}a4ba&TWZzIb9y8@iqlJR8X~ibEtIOl9ke9-8>1H? z%06`zt@rzSk<==xkUxKs)H15A1c}$(f>Ll{Fv{gJ1&Duo**4!zi+8^ahjetey1Am! z5`=Zux5;1S%m`ee)pj*FasjTuYjZkv!D~Yno2;~5*XC9ra8|(cA9#EfKG<_-U60;% zKAbLR5xt&97Yx=b0n;zq+O9@NgiB47YNxdc&6TFubH@Sf%@wAMC7O0~Q5^JKM~o-3 zHMX5?-W9gkw+lOG@8pOlZCcwJV(Ykb; zrIe8LqLY!Cv5`=9GOz*A%b!3qnP7>fnzEGNf?leMaL|UVd2%trm{}_<=D3@8xT5ZB zx`_t%@WkSuIoz6nXQSJ8qZi)WvntgpYkY+*PhI|wi4eZ;8{k}AC!{7~y<{du#(DS?GybiSrme6gZ%dm5 z_I(o>R(fB*xrPnncX{*`>I4+LVAHi2Zwwv0ga^|Wys$FpK?xlW0Rz;euip?H)9^I z`o`WW<4CK%+X0y%<*D{&S#UGS>0cCAvE}WN7fIdY;;9wCO;pVj!8GrA&>b*OAh&p|U%6J)U z@XoIXiW*?Z;b6{ND_|D}y+vd716K+q+50;r#n2mD4btf9VH5Lf`R(?*j`3$%L6)26 zUb+uW(ThRukiOdD%O*!i*%01%tNlsDUF$_Qr@(Dr!D<6ceXsc}!ff@vjWff2>!#<* zRL^7=u%7bbu!SvDJidB+!x;A$M~Aj3HQTaGb@Zpc)NFVZQobb|I^eJAd1bC;V0ues z9B0Y#wANt?Jjd09sT#*s#;8}JSzoRh;r#eYu32El!*b&3z4jC<(NRjanSiO&+Tm*o z*9;)4S0CqFcT;z{C+=U;*eWr0;ox4{?mERvY}D8_OsO_uNaWVu?b^|^Ys6N2OzlOi zd+brW`$q(;W>b2BbS`!CDUFCDz>3ukwYE&D;a>AJdC6=LjX3pSto#x2F~i{Z zqVCz8s-+X8*%^epa$^(I^@X}br&zp2VJm6evhHP)%6k2gOsq{&DE$i(_e2qcAee_8c<)o@6P^ zfQc=8zcax}Z+ku1!IB`*I7dmkf$PnZY?;b5#viUs9uAh*+mFkZ*E@{+?M>s&ay^LP z%|h|202CJgPu+iq!rLJtna2B4IP>eZ%0b-t&0yerN zZA(`fdOz1{u=05aGoh;21Lx?5#w6%IRC-~v%@4|QO54C#9It)t>IY+aJX*N_^)^hp zQOr*)&-&u0!7ihMff_ZhwZ{E}aNZLtC05$}QJi+oJh(R;OMb#oD6Exb!Jsck$|lB0 zC{iamL*d6iH&puo#65<5`BqJwn$wvn_0N;AisqbNwHHNb# z>qgJI`Uhfjt|e~ixC&w`n`khcs(R;+Sq5sbF>I6qeJKOAP0W>_sh`*1-HolS*=|72 z9vi~g`zu+$b|lif51C*O?$jC2UQ1fy{-uyrMFvm#SW0f_2qpg3t^3XUi4tl|VA|xr z&a%`Px;}`Aw4-IEIfe6W2$ zYe8*k2gBXl@`IV;=(cEQfB4PkZOMIQVOT!H?UcUA?GV8}Df99{E&>x=CrUPR*3^il zi-^h7`we?+pU04iBB}kEt4SHqSnYu@h{0OijK_Jrc>v0D^P^z*l|)f&v~Fhx62YwT zr8D`zjMp0+3d3(VW;hx-Nmzw0w0#&)+$waE=Wc6%Z;QgwMok7KJ z3%{_}l{+e{WmASEGc$rgkeU$}N zDg&mmHyb~{HpucRY^K)tOqff}&ND)>>+MrL5@ zPYZrJ0fy7U^bW!p(wDyD*TQaY)EJV78N8U2%LFJIO0nJcnVQ7eMs}d+bEAc@T+x-9 zlZzcA4=+_twZGqw`VURy6WWstoe>w>TlM0MFH6~z&D_`+918O|0f-nbat7s!^FIvC zUKtt^2JZu$Cj(#7x_G|u7F0CU+84rAI^y++}Js2HVk0dZbifh>I)Vefn zQPd`wtTtvC5PK+f7_jeNo{?+Ab4KNM zXi((M%5%fDQ>5pz7QX^mSQ$PQb`g|O`aCXT9B1wROo## z;p5?NBudX%oNAq3;uZOXc_XnE5Ericm0{xyz3~iey&dY$X9R})0;Z05@LB$i|biB zr)LE$zX@%fThu$k^einnDQA$-|DdrXp<5ND^-2xr8F*?BzTG}g7RgGKzsLE?q0YFd zQwl7byA84W+nTl5sb)V~*IK%%{AX!_Uf^f_eXbco8I!Hq_`ODrnb)Et96a4}<#|U} zdb-9{`*f!4W6FdXx_4r(zGOR-wD5ax>Zfzs1NAQCc2m6b(Fy*P$do|62etc+dVW{@ zrk?4ZHH7w^yXmtiifm#ZW@%y0Kh@xCNH%ePTWhSjA6f20rUbga?qF`64$|`l@?G6l zbX^MX0{r&Dd+-m-K$`uc-F(^}m8A*(5ovbvSudxAsIp7N=T#^d3r!Azji&|1!#z^25Bc*GSi?_6(D< zz3i9}HXUVqSrKNOQVdvY{$$4f7f`N>(v{?MU8w>AFrbetmRVAoNc{kuA4OXyh%7;= zX1fNRS*}Ds@hGbh7st8rJaz5!VkQp5Q4Y7rSr6t}T-PBEPW@gc+6-dm9hoOK2}&h! z(eb5b$Cy#L5+-opAXbvhi5OwmD_k=njf?GaR!SCEqB_>5NAFN2sLw*W< zphu{|P*ChheRoThmG>+3HCc~^+1|Wpy)fRq2*0R5zQn===Uz%-?IkbRkL^=W3A_4M zF#hzl{ilF2+uCR8CC#6|!X z|70fRqockf;r>X3Kub0@$3cT)e(Dc-!SE!Wnjn3$+VqCq@1 zweUUP6Wc#WR7V*T;gG}VBdasb1c@S^tMP(feAGQluEp~Zr|NxCMUYF_Izr$yEPkOk z>J8mA>M-UxQ)dJ2G9#?@#K+6%O&qB~fFhlyaqDF>jw z6*PHrdy)`kDZZGtgk@Q9IbW`WE3WUF(54z1XF~14QrlVd(4y#Eq{)fO97UB2xk-Ui zU8u{J@a!#g7j_gP}HA8Y5Fm)|znSbd(LMm^(E&b(Gx>M;3A)vGIX(_=g zZ-iDCzHvl*sD;I2wK>v1Td3F)s}?Ty3N-Psk5Zm9EPB%A085*q8t)Q8L^?v!bqy zBv(6?%a74u)pVxIb6KfmyDW;A@4vKQNRb|7OOgTHQAQZ^B+3NETBx%m#9ADr3dD*x zPZh?C=dtl5iaXvBN3bnApG``Fb>5AVD;&rf(R)hYeT(=&vtq<{%8YB_w7@S;8t0Oy zNF5=4hZ)hx6DviVQWGnMQ01$@LT@~kAwwhiOgvZCA9@?}tEAXf<~0j)6lN5BUfvI*&Tn3ws9%up7JXUZ%x=+`%H zZ|Nr9+hs|-3Ea2~11>eZg2s5cUr)mZr!Ll=$N`slv|n(?(cW_8r!xrt)Y8&h3SAoT zONpb-+jfW;283XttvM^q zohjeZ1_~neC@Q0!kGD(-H^o->cwv|hD!(?%+$vWKIlmpr+7l;>ekm-78l*EMg*FBR zxrZR%XS|ScQ!88qa&{-6#8Tz{_Q|hEmc?IJBit|%*oKECg`{ETeyFNsIAlOD^paAv zLV*HO857FqFr4A-tID!DBo%LJ^MnqqZ3+>l9_Ik!QFR=U4+q#=L?etl3bE8VF>mv$ z{`fEVfm^yHo(2?ChQvCh*-lODse@vKnPtDSMC4iTqSRk~E5BqGw3jh;Pz{d#Y8wK- zk*g%kDk5Wsqs=u!z&B>))isWv)VPfC*SK4IL+XP?{8SectHzjGq#dRFIZx�Msr zYXEic`J5Z76pu*_OP7pVMTAvD7^S=a_XlMckJ~oNjBiO8=vVpaSCFc1RFPAFB~zf1Sh6M z?h;cZgq{~t2um633)+I^Rra<=j0(s)RI zOeQF)k3(N=oOc|(=(r}!Ra?GcgvCq{lxiN=KW!7_6VomyY21`){6 zip_wsCL7PU>vSF)eoL}?)CQ3tO4*)+p=YN7i*rkEIZEP!O|R$34V%c-uCF(!t!Lb) z+m8uO+0b+(thbV6t}p*vnC?V`t~W9v_8d{rrg>WMv^@huUqS<6{iY3HaQ_9JUfn$3 zT*d!=44wbyF${g^EGzr9y8uRFC6UgR%ym5)$G@GdwT=ywrqI(mg=K8t^2`T%BP&hNQS#&k3iqI(@A<*Mm(Smyfr z=5a^Og*ah;t@ccjeS=(h*jtuCFOML5%F}+Z8!qFfb4ys%1$kS4xew`krmsdi_E@gQ zN-_~R%)Gn3T^eY^Mye$dh?U%RVyrIq&UMbgPFdK#of-50zsF2sUqy9CiQ3X^3Fo{J z5a@;6Puj-+L=pcfEE8#=TlVxZhs8*4BucE3O|9op0~^l>5dPZeLX@!a9p=WICPQ2N z;BI?5xxN%GqNGjB<=`cIM#8>0hNx~#XTtJLpjYtt1-;KL9Z+XyZIgCmywF(p@H9 zQ9SN$WJYqIfne=K;3>UC^Fcb3ye2k`>iKP77A34!+OaCr4M8OyDd> zPM;L8nHjfOajVI@3>Z*5nk+U`*m>p6F)lc068qp{=aP6&IXbgt@>A_yo?;|`^c6Br zFyf4}ZhXzeKzqDX*l$eTyVE)D^su27LR8E-mPvHV{Z{cWsF0tsh({$QC!wfmwIu5L2&c4+u#a=)g*7(uG`l9&>z_GEI3rAI0U0+yY?GPq^z zJSz2GYE_lLIl`EF)MJR4F!CAx^E)V^(Z}+zcZH0B^png_@X}`8`H$dTQ?#T+gInIm zPFi=?oN&nxs<`C8K1<(fvg97W#Tns5%%5bF3Q&LlSMFNifzD{Pl7$3ZWD5R#mJ=O}f+)58m~;Gn0V;@rWy7D`2$qkWmSIVS@C zIb|eYpaYp*0e{oih}F#}&MRpLK8{bqos+A)4bOc3ih5wdeua9=N1^=IlPHe+lPB&_ zhwmrGx2DIRK5`A0{W!feM|ShB!D*4@UiX&n8YA?4J+f4Gd4wK+Tg_(6<#b){bkpW^ zL+^CUhj3kpaMOVBb2u|TvNYzale&(-Cjb0t?3ygOtgZ6e2>AtkS4p-*B@qk3B2`Os z`#eP^9ZM%>*>S*PJQPbWQO5W11%pPZM6`%yheqYEQmJ^U2O=)J#pGYvW~B5cr=!VY z`S!Q|yNGz~rpte%l=DZE+08n0$cNQRw5n~o^S!m}PUdT|&wqjg3 z5$Qe5?C*`rB7sfi4$wz=T@DxX%oYnpSSnR(&E~sAn5!7!Lb4;BO3?YEg(x(Q<3t$T zx0Qdz35QbU|4|yU+vxMhCh{37%8I4=Ta=y1bBJU5=Z%o?pAZ!CK0ew$G~WyHjS@3? znEky|)z#&8UXs>$=Ga&%w*1z~Gzdbky}P)atnFxaO7z(e{+Q>r+J6dG183_l{&Q8> zSJp!Q+xMN@dbR|i=Vp;vhUZ3}x}N7&sp~3q9V{;Z-7L0kgKiY)`#?!0D^Rk#{)C}W zOV@m>-0T5FQ%O}}6iww0M^gjp@Eb3;X%z}3E79_X;)@lEq-$|&4`-|<3Z<&CN*8O6 zCW-*{gsrd6!kEklDp0|F;UFf9p&Fd(-4X2y^T8_2;<=Kg3X9=7g67*}Uc3E)O7w!U zv}U`5|7l_<^nW|esMbpPYtQyss#CLI;jrn-rJgn&NoBSDe|jVRlFRX8^;t(YX}??= zkK<`q9xcRXxykXY6HGa-*Wz(?+Fii7=JWK3j)H-Pg^G!u6dfO%7?TjEuAri%rl_h6 znV6ZHo1C5IWMaFNN8zJ-eWeuMlz3A7=b{D(^{;NVEoHjOf1TOU3GArq?a8k0>aOmI z2<$2g>;c+#U)@$o`0T3t6vSu5D@(E0&P+?Pmex#5ar$0zzFbdf6Yqn|eID_CW(mRJ z85SA@;u+*BisKoT*!O{c=15V14F6i>gADRDO+iLw?z`GQv&FEq4U0??wGHxA)wGRD zo#&Q*f@L|D42ywvO9lnHE=xw`-nYE#St3Zhn}tS^yc@a7a=cq5j$_U1IRJ*{&A(P< z%^UgJHqBdQo~NGw+t}H;5}IPFvbxG50Bs2f(aUQWdH>WA8kE)ki$g6<$Dh*Hy z!QTpGiQh?SDa*48b4zmm=9gs`<$;R}Y=4>?8(LeM+89`v0FA87&er$0k2eo@Pd5&B z(%~$4@2ibof!l%1C?(IFJpWU5|Cg?%0l~*XDX^)KEz*5oVPAdW7xc$Wg>vNd38Gpa zuEitq+vS?oi;^=_Wg^ESh|Cv?no0NTL0cGe{S!;|Q?!H+^bA%b(stY2zWi+?WDth_ zDE6mqaL2%_-d+&)X#4??d^hA+Y{ze&G(8rAPF_s!UpYgX%}cV<^(K3Mnd@q>(NQeMV~h?4 zCvJ<8N|QYQRRQ5DIa&hJizsgjve{B8rkqj%VHV`21*J7fNYhfeKA7ol!Eg;?a{>#3 z@H-RuFxe;n^ezToro#-$}&9V{pMgh*9xni0AVQx3-api_$SG_8kP7%C3RfVv)h5H`mgaDENT?P zGAWDzlUnQelPc_mjQA@DRhwZEa_8cV*@8z%7OoblrBg(4NQ}G3HV97>3sR+}X=UjR z{977h=z3D@?_47{bHJmHeI%`0uI*e;IJ4!U#&{&#Y8#p2&UUs7d8aLjV5>-9M_#j? zILD$bM{C|&TB2H)IyaH3t$hR}1vb&wj=G#P_g}m*QvW8Vc)xbn)>*{-?_UpaiB%CS zj`%vXtz_BE6e@xPYcKkE5!*^kV1r&-BfZl2J+fY8k|bnuN@Rd9xiXfyQarix;>OZ* zgB}atLB^otSZ@c($U$mu%B1bo&F5`_Op&^PI4T_wf^_-Afcw z%PL~u6&D81s`TSpc4%3?L$Le;u>4&7qNPkbuV6K=gg39KJ+I8mrQpe>1ka@?!KF;u zpkUUZgx#R1-k{9srr_$PgzTm$@21RnuV8zxM0BsHf3Ga~LBaRK)SC~JC?BR3{!G~Y znfml+Qu5CRjVIBJrB zX&soqA!U#h==sWAiXwV08fj+DWWslniv6Cu@Q@ zFS77DK&u}I+Rj|E#g673rm{vl9W`*n`sF!PsU19(S$K07W!A(|`2EfMZ(iGp;QTHV z62jB}K1l3{Geoso;qm zajjWN5UzzfDFIKea*)$Ov<<-&Sj59wG85?lLj0b`SRv@^L9_t@OOA-R^FT5Z4ulw; z$5<&y<{;XFfCVgK>O7E!lma0}$mq|()s!B1lwptScVNp*Fn?P-DLj`WRw5C$pzski zsZ^I^V*MhRZb13__^bfBaASJglJZPOPD!xY0pbpiwA-G>hq6%$^b{f6?~0^BQLqJi z@{sL!M0B7ioB}3F!)kXCtw>8qV?E1=i5&{(kvs!r{Qz=?6v-wLWE$L^R4&tJYElTIiV@xI6y{zSrYShBm zmD}Rwk1bl~EJ92N)h~=~%p!vGCf+0bkb=^8(KXSh`(J8aF(vHrqqVm$+Z8tzD$*II9R^PW-KJ zjIAiNsTUs6oD${KhvOcV(+%7L2`$|62~D`vqd3wEvi;n$)`rf1+BVwGbEzmJ(?c|0 zpi4h1^aCnwi0Why2AJ122| zEy*kGtGMgwt>e0D>TU2ap&fs%``D#Nw~4VN)R|dId*n)M`RWO8V9YEhU8>|$5av9$ zEZlGAI1i!kTG$Gl$ie(wRLfBX4gRkV9BjJTT!VQ#M-!X|qpb&%-ciSsP$w!;CrKA2 z@>nEdStM{gWIstRiliCihUWHu!h8F!*^?{{+<><{dh2eq@bxQ8Yb$&YyG-Q0a)m)g z;`^T!7crl{Q8s2Z*hrZ5o%K5!dO3dLq8fJ!xG!3Y4_gBxmYxfMf^F zk7Z)5lA*{KmKb_1V1B>DVvRK;8=74kfZ%bonO`z!xZAi76n#7%42Mw(iCof@jCE zB457c;t{smg-{bopto&m)2Ho1qkPVBHVEA`TFs2=#m1+h3VX03?3nsc&5u~UsEZhZ zSj$CIj~7Rzl=r+gD~9Mo$&%t@%*m&%)V%WRSdPF&x$+l<7QvBbs&Q>$l7)V;u(u3+ zAtNtbhF-9wjgg{ml4nlr`nYTtC){qqU~yOM}2 zXb5kgQ2Ac|z~>;A!9&y~uJu51K_4lrU`K&FEh7QEP30jZ7aO-PMlkW#V=(h%JU^*( zp77yQXqhN|AQ)Zuo6#O0;#Ng*BLk-A#t-Ao4?0o8%fZm_bog^BiY-f2a@jJ!k62m(CMOIj+AJec7o!{@9>`^ zo%KTvh>6T_^{#!5_a_9IoGiC@Wwv%@Qt=u!Q5v}!9UR+s{PFhR4S(jG4u~lTBaz3J z$S4cv(}6j2~ul?CJ<=gtVAMg%;g`X7W*NMv7>D;MdX-HH1m^6L3?x1DF zpf70!Hk^YmpZ;;q6ZJ`NkGZY4-a*`s+w5bKql+E)9vsl#;+!Yxx8g11BlLdl!IO5` z7I?IO3CtOe3SkgrZhBhYzvKlE>*v@U_6<)SmD`a}Zm#U#-!=I2p8H%s!%yDni>}>) zc#&USg}tt^Ij-oGINUXOR%o%1y|)_CUeK^wrRn1-O0@i%T7URyqaHq>q}30N&df$m zl}D3O*?AyZ1)YVEy{BaHQ{O-X#RSW=K)~dBGC8_oB0gTVu~M**%}A^}GXSfHPV-x} zG4m&*4Pmt{Q6qMJgc^mg8Vx{=%5aSiC(*ku*rCUp*ZmUm-b&2h%-`O0Kx1El@~t$i z^S=_&RNz?NlnSx@N_l!y#!a5Cq%PH8(|_rUKVtZn^hX@Uz#GtPOCwXRm$&K=MW1XM zv8=L0+!`Vs0-D=fzSsSibRm>C>)o)*(G!^OYU{k5I6Hjpe^biW9hlp~+pM{x0N107 z{%`0!d1G&M-4)^MUBm5(TDe$>yf2Ig>5?MWNgrecg35QB@89~QukD;Yn4vNZg^0#5 zREZfeOW0gqQ6{bbbq=pb76c9_jP?w<=BT(wFhNHoqm47KUK|5k}^Enf>Dn zDOuQYyzoK1L_#6bO-?6UirO^Kq9n)y9&G%+7v2UcoaKQqV0G261B7|6%JLqcaPeF5#FR z+jht5*h$Am$LZL%ZQHi(q+{FG9s7ec!A#f6mW?b=9e=UDzAAT0t7G>Q#!# zHF14|^^W#Mp)eSpgc>ih-}Z}

M3UDXbPVJmHZvev$~fdAmfKZ%lf*NUNInSXp>h z#9b@4ZI$(!X^C?6Jf2qHfINKLtK#mL;TYZr@=mFjQ2yTo{ZRbhFqFfk)y32L?S$WP zf2=|gbhi`sIrI9-d*|Sd^cgLj%ATSkD6x*TfBPvbG10*&1|*N&55(^nM0d~Et?O7( z2?PdWPu)MsU(BD(|L-Rwxa>QRuh-Vc4j3px(7^S({JZ=|>bo?^m-~+Nj`Ba(tC7_= z!=JCrYA;7G9&fl{NYcCNNCyH@p0)_Pg#I9Yq##Kl93XxxZdP;p?r;{2z?*+r4}2?#)ybMr8c1;lm9PBTV=yg;Wg z#03;?sgaXk*@cx((S-A89&)xP^dPf%9B_5898)H1yzlUM&>$Sclxs=3J|8`~K+9~9 z)qtG?b&m7WIxddu*6b-z5I42HS50RveXPsqheoL7*@`tpIz#%Zrlq(J_p{A(oAwm8~^Jhryg5fiqjMU4*)1!|)ae~bqMNJ&vi zq4vp8l=7GwNU7lRP|or}1L6=xm~aM|z#^HqT?|MVcFCuA@pJxCsOJT<`J2qbWynvM zeZ%U+rp(6$W)CqR58)Xzc!@)D{A@!9Oga5dE;ML+>zWaSHoW6~!Z2xReKwR^Gn#}s z&7y+n-?Eu;S<57R)?!fWA%C5q*36LL=IxV;?ndQ272|F4cy&aKJA$R0(3($3Di-+I zN|DT@t`%~@%*3xzg!vbXTg}9B3+cVZ^a{bfBjxV-xaVC@CIwwF@AsHaM)u}X2kbR| z0Dh-UoHAt@>T{I#IZXSrXJMWH5?FTNx7sUM9V)I*ls4c={fAN$F`x|@+QxEakGHvx z`D@78E>-IQigSR#CU|5MWu}cM=YS9Cp9EnL5^o&cUs|dG3Pd4Iqmpd1*qX_cXd!$Y z6f;S4L!QVz#uQB-(K;=D}rlgEWTMnB&p*5T2Z;!|(7r>lmWwc7g3M zayq|E8M-FU;oA3W(&+Xg+D;fsB99Z=&>8Y0&qzDi7~&%j_N9qV>7}&Z9;A3~5J8{;68`=CG7SrHtQbmgdo=!Od})OMf-B;mw5T^UK+TO_q2YWF|%( z=;`R1vZ@w=EE>uYdJ?|{C8Xq|87rFts+J=f#OcN~tACz1MO3X+Gze9WiB~gZHicL% zXEdlx?8gp=#c^9Js0&1aSg{)~(=t~idj_CD!81@tXfK#pxrhGilld+Ib zd{FRTq)?9NKliFM#@Co~S@j7^N1zzOWVNw9+kQSea9JJxUG1Z&kDWNcUioKV6aKb| z+1gI=zKIjt2JW>9%h*Q6f2%)O1Q{k9i5zZ13O6OLk`ZXeh81s)i7zXxkr80WhOuXk z+dpfBUVug|T&fVkK#WBoNXQ-3<%Iom0^_hC#8$EbQ=FPM7|tA=_?LX7-z+AO86V4# zi%{I&O6CBN)9g|6PtTw{->eO%JkAAJ+yc|h^hZ+R8i zx;ay__9N4H!MdfnUTt}OUDNg4AiKKKxsl<+B$uzKDuRF zZJk!D^!UDNt7*bzsb<5v)3Eg-LZ=bWWm9hB&xX0yWfnmbIA-1PpDwn8 z`O|`+lB)X!ATHffgCN5hsR%{tn#c0D0ts3c7bu7QGlCOr1!+l5*|b zYS$FEw>|k<)*8-FvuNKauMGaWX7(u)dk~M}QAjNCCv}YzqJm zBKgb#%}L(N*msO;btvM&cWisRnUqb(m9TTYn*lgh8ePf_c;b3arSK(g?y`N^bcgJy_A41o!Wp1zyr2I;+y zc3U$lV_yVAQk{X+<*W=;C_2g??&5%$I^w>wpn%jjUSJ%bk?~}lx?Gi=9zBXdXCAeJ z&0Apscn9}ami{*l{S!y(AgAl|Mv;7t4FehN`In%uF9=2UX)d^~29X{(t(kcR zM~1(-p9gMChl1h>lfwE&_H;#vK>&#NY+@#S-1*dl$L7Txe(Q^#iMY8nxj-G;;5`x` z^Gm%$L`5?9V`c5r)IMUnpDs-cG%d%Dk9fYPw-U%G4aJX zbwzN%J1_m9Ne<;_AmLanJ3FHeDuVm!iUPHOI75wq?{ZtzMr^K*wkhw+{dh}Da_35x z+lMngzILOhKzoC&R#ofG#>}FMx;oy3#hHs23^MI;O?)qjdLNSXe&hm5K2sp_Jqbk< zJhA}O5d!YVNT<4wTH zZN)QVm?Nf^tI6vnpZx%DB!l5{9N)vl>LNY=dA$20s=n81tCNWvA=;_VTajiU?PouScluoHs7?$qb0ti8_`^=e1=ev3=0#MpFEXCJ zbJrXnpP8@R>QOwb&-c(TBu|Rl@^3gY^?SRI3zhLR`0N>DkhXu=hCURvIuKLp3~- zyJ`=-ghuSzI@x2XYgv4PS*sYt2Wn+d8VQ1Ek{qE5o?@SO*ICK`C{-vx3IE1DQZ-U0sX#4!k^-j>1?%6Z2!rMdbc`iUl z#X~gw)*sPc96{>UACu~Knomk@-jdJJXS*~G$W6;MMEgZYc1WoJzMtL>Wh4C=)vU{J zeLICnC~XJgjPYU|kcifV0TSov08f_-8hy*1msh5O11VeutJ)}A22!OGl6La&Lm>BL zD_k;XljW^;aO&vsdwLNK?WhT{Ku59nBvfqK%ZZX^Cney?5i#iW5RDi9Y)|?20)O$I zRE3?0#edCg(x}j$LP+ozY(~x5dbQu$??1jVBHTtsC8kjU<4MYh!kQVD*xEJQHlve^ zp^gnM z)&7CPK=FSs2Mm$G-A8pIZs;X9J z1*I=kVBgUUd~B`7*pf@~AhE_ofxh zJpFnu0$d{UlevfL=sJiwFxWP{@(?_DDFaEqCHh|K0%N85PiE;PfLk=r4AY>&jJd`R zDL@=*Bt<$g0!b|DJc|f!IPSXGKtUQDOlX4Hroju1Qx`3~>4p~s(|yE`OqplJi$3WE>rnn(V zLGe|OIpYL>6YVYh#x1gEe|DduD>~x;f~w)HkwN1${{Rf)CnA7UbuXoks+v?TyGb)B z?ThCXmw^bWBr)tpQc;iiE7hAcSf>>1!Vq8mBW&q~JFKv(=ugYspdI3mT-4F@X+Iwg zeY*BNJ-M2wub;+SiEeI*soARgF%nI*!jZ;P-Gbry%`n`QQtf5D2_?*65ID8`{y_12 z_)Yny2ZD1O@G80e`*T>$M;wSK!FP~=#A34+{;I);vWjlYd0Dh^S)?3&wr-DQK^sue zXQmWcFLw)5S!|rNA};)5YtUS5wWftT5v#Z}jlP_j-rjU~ef|4yZ$@ScJ-A?d?Tp{J z8#cN)I{uPMzjv^H13UEAr1Gk1lsCmr2FIs|2kypTd(Y-Gmc!69(q!ZEGkcXTBf797 zZ%PRoyADZQK1(&LpFR|hvCAw#vL(sz7##(57mI=m|D0<-IqIY0ps=Z9<1T)BIPF@zkC}dZ|%17hw3%8xR>xdBJafZ`s z1#QbD*M~QQkx7l*(dG!d!!fj(U%jxf$s(waahJZZjKhejCyIg|0P!4ExXZ)|=85YU zRYvWS4Kj(_Ugg$8RZzbU_k1>(N@e2ObC_TCD3GJmP+`FPcz>S)Pv)DIGhKza^GEmA zp4YO=@|`amP+=c2whijn3ZLzgVJYCFnkDuXc)P{XGqo?E{~i|o^yeLRcxC;WF!Ia) zmfq<*kw^r;c}>P2xC~G5wDNy(fm+o=T68L zn)rD*T7mcW^ivT1NR{{Q-?3hc1Me&?#{tHnO$9 z;22h=j=&-x#$K~zFtjSjn}plO*7ItWJGi;PZ+uyjoU2_);(pWy^(wfdVBAPI0T8P; zI)f!Sz3}Lbw~_$NJ~@M(5D+tvF#IbL40Oo4u-u^k@r&Bqv{b;*|Mc^0@6<3xleqQk zMjsW?ZL+lxS_IGxqeV(Jv@W?l^F*?WE`C8M(ha&X%pYA+)Kw zKI~AxK=Wp>TJN)_vhrT!f27a+6a|t3!PlTCmlHS>X#VIrEH-DSu|8S4a0t6_yf**B z3%@;gYvI4W&}QxS_dvt1jo-rDxu7OGI0QZR88{XkZp>rQ%}$TcDJh3@Mj2#a`iMbZ zrJE7{6PJ9g#^SY4T%_L8X81xM?7@$do~- zcy*+bC-}Sy(ev0uU*2XmOxiLhQLLP_iLhSlZwQ9e`p{bh!t^9SgPtfFJ22Q_x%; zBGkCX6PJ>PN9D?GT0dJEv3WEsdE#>Qf_uMoo1Cd^;fKwV9c9t7Vqbb?#t(7Ly2gwX zyXF-C&xFaj!R8rEwgz>RkW85sTwtracbz>4NNlW} zW{Ac$i$Jg1JB@AIDqRj4rk4K00Yp7UeCWb{0}FPn$q=HpLkihUndFg&b>{tM&4-w=)f=^9`lFel|-O5 zjazQ?${eHgryl^Jq3f5eL(gt|*k$`2;-}*n<7#^X#mf-7!=?R=5bw`1u#~~F@>hb~yYx5Yn6ZWu?_a_gz%@SD@ zU{gSS$NWctT+I(f<9Vge&E?OZKi+?I*zlvo+2|B(c0RB$!+yIP!yj{-+qk%)znoee zNlEB#`tBxYo-Z?u)mBYy=*)H8!*lGA(wlk~+qO69i@BTE^%NUB#_T!%${3Kl*4Z^h z*d)xNYNR_JyP$oE3zV1Sk1O!?Ab8IL3?T9|yyX1{KV8f9xsLff!upo`iPcf-=2oKZ zqG8@t=YhcmANCa@V*`5;QLSS z#QL`ORD;XQobLP=2U=5a?#m`4}Q!zg=NDiQakeA|7kHlkIHm9A9EhwgD_fRjG zF|c>|LNG7RTw%&K9_}ton6_|8ETY1w4W=x~TsX}bVS zu?o)(g&$kZ{xd2e8PZB5Df!sBu>t3*EN3r~8K~ehib*o!%iZaIx0dg?u!?&Wq*sq|e{r^qQR#bb#e)a;GL;dMBIKk38kc)yd}or?!(_@YK4bHSf7uBB z{(vfz+erRvnEa%@`I5t-c;i>2$56!5%3vFQN#>|3bqH?HC+0DlaD1#}L7KXj;I2NY zNB@XXTLt&%a1lm&rBjrsj;JhVjCcplulaRH+npQF)(kq}npOnvhb88WPai)fkLB4i zg3*=dB5t6o52?0x8w6jABK741j(y7AH#;^*!1$o-s+3|CTDCaa+XUFQ7FXN=SQs~} zdfxm6jr6W?fAmnP_dfsS{uaBFi=*k=0i$E2v(v}aPMFVmd+~+d4N_(8kk+B@5$oRz zuYb5atdj1&0eH3!=@hmyiazoIGwi>{S9r#A6TLK2{_BeIk)Wq0d%)6fsLu(q~pyWI)NZ@ImUE5gdX|-EOUgyU& zQ$5x2^pu$!8GU3-+dRH?D0{M=54b|5?Vv*fSBqC#5Go&A)snWBl&}y(H@D5cLXzLK z+6jeq4Pw>lJGa3S=t#yqe?bR5Xdnor+>(gim00uhi;A4*j(6rFw2^^~on5;w=F+^V zO$UE?_50B6UA6V1usbUji9MFa$ykR|+tkkL*G@lz-Qs0n^v2+guNL#U_@5}v{+ zxX2jtB-Q#d%M}JQVXVr~o;0E8HuuI=VcQ zb&Wf<*YX!tyNr)1TCMf^TZS_?LlQXGt>wP+n7FP!#h&eHtWqJ4ph%3Uo;7vJ^o84frSIYTVtx6j($ZRIsimr=3lJEY>53r# z#P8wukshLT(?4f@{zQLEz^JjP(fiBrV5bx5g86Eg^^L(Ll=d+fq&-#6l;cK-Yw(~F z7(dG^+E1pFS4MrsdkP~@VZa5~;w`C&BBOrKYX*WBdnb(?J7V})qH2ya$_fj7nl@bLmX0-y zjjdIJ5a+h;yTgHr*~1^qhgVn({a-kUFj{drtB zIOv^qd~P0-ys|Ao*qiY+p28qA*>L2aYav=5ItU8_rkQm7a%RL{!=;Vj{!y{MF-4A6 z5uSuCfE8lQZRZXqc`YtGWd9V9ISa!Xbho|00++htmN-FiXiZK=nQLix<1xm`;}+#; ziSM0qs|_4I_Qk$wQMvm zBUeGMGG{j~U?w?V!CGzdpCJF9STlY3pW7qyQ@jYm;XQCabB%=(cxeNLc+_cSVmf@l z4@QBnaXmpl@6Fd%s9tG6WN(MxWx&`bxVcb?@2DhH_el7e&%lvkUi+8AnNn-$c?HF- zOQ>?UI9C_cj*u`gBF+IA*B!ZdxtDl0zQ@Iar@;9^oO)~f<+rO;Z~doJBI%cjwD$$= zPf^{1pR5$luB!@T@m|o!e!LQK+J>(dUOy^e!gP|5ucTR+D*cZz{r?Oi4|nN0Og*nF z53lIGFT1**B!uULuLS*p14(MVYeeYvowQR#iB!dqvYu1G337%HoI^Gys#1E)@A{x3 z@&Sw?ecZoL<+Q&q{;0+4wH5vI;r>h{&hRO9Lb8tBbHk`6cTg?qo*O7HwVhMoMRn{a z2rBwzdUKmxLsvGbmqeYk%Am+c7)#6X;sIkGMNmSMFo~7pjc}To>-HLsRh$31v9k}l z`BF%PL&U*AwZB)}(4nJ%%eYKE`%*z-4=M5|IsScC3Bb{pZho*r^uAb{^Zs%D73OR0 zg{akbVZtZ;nEU78X1l0srjLrk*7XKwj0e@L#(#pw-80l|wBLPSAyQGUr*UVYUYs;_dHP-Ns z??s`+?=?dr9-yU(7(LwpYMSB^h}nEj>xj`lbcHG{FVn3xHrpjaKLhOXK; zyww$ECl`YtsASI;Jpu*5f)$V{qil;2y=Wy-Qd&=nO< z3KzKx3dI(B<}~X0O%+Wn=%YW!?%&|fbPoF)I3ueh6CJ3mtLsiT)7H||#sslUuuQy*LB8Z{Ui@5RcIhUyTA^}t-{R@?(Ffc{K8M*awD{`;y5-*5&Y^ymCQu`vKoRSa zsJmB%*B0>(2IWOGDcorwqtMWR{ua&9;7p4z;Z3#4fvM`I5omE6`XfFuGoq(^lFji6 zEZ>GFlegK~syTAup;5E*nMFFm@^}`TiS?{@TAwU(Z6tc zI6}2Ci$U%_`Wd?1xkS_-Ng|=PS=MfT!qifKZE(a_B-lx%2=`_rfd`ga(Qj zD^*r?)nNU8ce&D3>~}nLND#lE1={C^)nK_t8aeR|^0PYMhC~|ALf(F_tD8OQMd?k; z2#A(M-L=g<1C&EsAF_Yl0w>(|^V88{HyQmLBj3v2_IM%Y2^9W>Si$a$hzpn!$NC zu4;6~ylmW-8ZKWTb)qMpe%@hi>uhLXl=JE;t1e*2wI?12U-5shFZ>vLZb9$LwLjmM zx%qkGH#0(qH&@Kq&!!Hsu&`_>?!jYX;*^*2C#*uvFXHTsc0}fajVz%$-0J#!FqSIP zlw`@h!4Cn9j{npCcAfk;*((dl7Fn92rg;z1Ig|ZOBC*}~|5af7Qy>4Y z3al#d75%}L`l~$%9=(kRE%B$_k6o9Co~cMp`)#-SvUe?|v0L|> zggMRKUREE&;Pqm=lZGQ=EZ2NE*Yf?@?$^Co94PqC@lSGYRxo;`UW~h={v%>zj=PYq zNB`c2_(qKSr)$nHv@=6GLh{a-EE-EDk~jC4%B864y#qo>6ib2(j`1`Zut+td}l{$34-3e0JX?8!z|dO-86{I}FmUe#k~> z1SbrqxhM?(q}5)5roI1C&fA}nrv$_3Wg2fkQ58r2xmLSsv@>ih-~R@2+`cc@GotA8 zT_ojE|2D1@Y5_8LiEn6Tw-eX3y>AS^e(AJ$Cp#93|9^@Q#0SeBWb5>MrKvLHUY3Kl zYcLAJNG0uIC8q;<=NMZRc1n2`~8QL+<>QTLl0Q&vx4@$a7~ zr$Z*=ZyxdBjJ%rT+!V$H#Kvk@Z;tg_1TCAc3ahRjOeiCjf?E5XKHmFpiyMVJ zskYoVP|{w#$0n?|ABW*V zq_?`+Uc7=W=|!d9!a1D6!A>s=uucOSwkF4V@#m-hGWE50vfR_&H8r8m3oh^rhZ8Ccc$djill|Y(EJgw zB-{eE@J-;{m!56fIf-AjbDw6ezGcZ+2;2s5M?-6eW(VankDa`!}0mLC> zgyV%zu0>is94<`95H9s z3@+)bvg*pp<`u1f$1?%%Sr;;kZsX}PJlNo>vQ|Ye`{$20(KIUSEC@!H+@Ci0i{+=R zrbdxgkr{XG1H(j$JnvkUOFV71X_pbqtsA(G60&^9Ucx!V_%T>e;}c%NFSx1~;V=;o z6>U4|vE=<`f59<*J5v(-W68n(u9Sr|ktYKm%U-XvlB8%d6IebK%Xd@7a2e$%)m%(4eN9IMPZ{OR!l zts^ZK;(!ejVetM87MiN5e4g&5fzD}bJ58|z97SX0rftvq*t~+eP+4F2J`J$XnN1B` z506CG`}dgMk{Dk6c~l)8IYj1nNW~z^4Kn&4v?j0Eljtb8%H|sWUOn5$MK~c|Fxg82 z1&6FM8ohkMNcjn8VUE8)7P(J+xk{FYh%aMlN^8h?>G*0ZhV&r5UL;O zPf=T{_gmAqv@qwtb2;DbPVVO<0C*O-Fg*y@%)0ZPuMRz0xiE^;yz!f>tI=YA^0TQc zSbz8CzejkR&vX-=j++BL_+HPswND|cV^bo}$JLc<_L#&RDnuPVKIZ!4J6B#_=6m(l z-qOrXzy-hix6EbA#^7r3QFjGX?)2b)NYE(CKG;RzQ<%Ujw6!LBMc z`z&4YG{`GI4KE-)q zd)NZi>-cgwb=i5@%I0E|(DD|GkOm32l58(!$(W?3cQ$c{XU{#~mmep;Tj9*FUGM(dRqJdzQpPI3;6wyL8~`eMgSnQAbBdv9mPkQoMcGXTOt!CB3s7*V7xLR^@3gW2+-D z1b~qRewg)%(5Q~^GXx{enve%5Y%IDYrTEQSHL~gXPr_N-dw|ukRXVasGkK|I{86V_ z^?Kd{)IVqzF3zkV&`J`p*bbHJiJwaH#banaXhsEy7K7WG73fU{h zApC}h*f?y{?+l6~2-=OrP+4V&Y|KKS<=Y!hHUf^nI=iOItJa?Bba%KqFR8q2o&N+k zRj=jeVX8B_ojo(2P(z}Z{2}~CeI5Gv;`*u6L13KdDL6fT{`at2=oqaSRG<%P+#$S~ zJaza*l3`>4keqoh$-rut1!#a$g(j<&bVwItf1XlRHl||TPts0wwPbU)Fq8BWtWZlw zaY5(rQ7>j6l7r+1+4@~Z_(80Qn{O%()!{Ot=`fLmiHp)tS&{FEvzUS%OQ~#?d=OBb zAkQ|tm)Qi1aEuw}06Lkrj(z~gZqiMH8THc-S6RLjkB0du9?~q$$``Plyt3$!@_DTG zBt6CeK#U^`cvtDkouRUoSq0Yl|F)vtON9R6!r@sLQE3{)emVv&s9gpx`#di%)6bah zKS;{z2plbyNM~}_zm#+c4=kfZYWT8P@i#~l40&>@#>Y9m!ofKu>Fqd-VZ0XL;c#j3 zW#-uSkdYy*BKpk6FTiKwR|!QVkLXUuu+g;Cqp7n?XUgaPhg$0ki8Pa8bO#HjQ&u?K zr$$A>)F@Npw_h)8x%>2X{@$$WZ}w|+f1FhVq3l64{1>alE)|8{oXX|wXd&8wDO3s} z-mmoy=ZUv+;E8^&qtX3?7N@(`4iD4p^3u+Z+^i=eZ+DI5PD61g57d~-&a`UaQ9*fs z&%X-cHT>A6Cl_{h7ZD=AmXr*NRY%{n%N6P3oqUTM-vOesk~il$qMX8yzTkipS6D6n z7C*>^j58!fZe;O9WIL*?271hrwA&&Ct?Kc)2izYzg<1QC=rhLfGLQrnDFM`)0d)rP zx}35Fnvhu7LYkwqrv^MZ)OnL@ee;4ak1lpCT?41?ZlA^wprLLQNqiH6@}O4hHVP$~ zGl_Fqt*gz!@xFQl9iqP7X|mLg0hEBEU$wxo>Pz{ptX^)q0QKsv?ffM8wPm@pyfD9+ znPJIM*WjDri}zGu1#}>2hX(u(xQ0yJP~?d?Xoi*N;Q*j7wA9d(P!{58$qHH3L)EP% zMBH79sU;2>@dY@X=ua|Vh+!JFq}hflcgz(LI9|msjfwr@TxmgDv+`mOCoUm=_z0s* z*O>muoi0XqP{ap!0(x9(qw?Y4=w}Q=$@#2jHBg26TtTM{#JEY=x~fYn%c_zCDt|ir z-|;^^Ocb(O`VX(jFHszQ_=U>>C8B+a9*a6BBc#`nG{^k!a0tSzez!l35vg>{rwQHJ z)4BasTB>ijM{BM4@=`oQ21W`KqPZC(b-T)S5L7s&E`BKDVgM&_UnEI-3l@AU*?^Y9 zHY)%_EQipNE+3NGg|VITF)9XtBEqLJN$v8e9x^bGGM9!V_GEN`SRyD^T4RDkh*t(d zoYEMPMW2c?MEI98wm79mNIu`@9oXZ}Px4GzNvrIRF%X{Hl67(1O5Cc)Mq+(uq{$yY ztSo)2!!4{06!k=kMog)aApvkI?5N+QD(fa9tK37V&aW zyxjJIMtUu<%u2l%?4sr-92%5?@-{jHBm+}8nG0?mD*uv(I*M?ogE7?B*GzyToA?JAR{hL?n^fDK4bce> zRNNEJ32yqnugcEuTjl5S^IKcZ&{YQFHKKyI547PVsS8QKeZ1M&ce`L<8fBZ(8bE#9 z2vbUxtSagcjaSSoBSW*my~-+RHVZd`(YDghxRGXLAZ%jyfsK^|mziF!BKS{6suEhT zDA>Qesf!nb8B$klPoG*JqsXTJP`Yz-_UBs+|HI%Yczv6%?L>yrHGzmJ6!gpwf@_^t z3sv4859h45!$Gvzpuo^^FS-z^6bAlynH-HQZOUA&xvg%n&smqFS3j3e(68kji8TNr zLAw@x>RC{iI9V%vyGY^;yf7gImu)T*8WCK+`2AHf(T&KP%HPUz5Ik!WeTd;S!8gCz zDvTJqn+kj@5%IvOU*>)KLsWK1vE#IZe2g3e5p@iB%T^`yP_PP6IW|1~dv=Cx`7P_G zKNg;o<6`4)aKTR>!8UqZrv5n&D4N+IR%l%f80z%O^bls$IC}$jdIAnY6G~s-8=$y5|3 z9^A?LM6|MxbIdPv0pGIFoUzDWPVI;35iJR1_=Zx`rzDr-M{-Lg)pm`CpgjX`nmUEsOhX;!HbJOVK#Geq$icfH_-VpKST;D%T?eyxTM@s1ykH(80ssdt#eZmgDqz=jElj4r;-%(%B zT@!Rh3ADGl@eZ6niVMJVkQSdAE1tNydN4_{7>9y+E6P_UgnfhoJK`4eF9*E`+7iVj0cJ})j&?Dn@mMNN)u}j%}1!WPY`S-Is zxQ&Ll9Yeo+0sb@VOv z!QnQf+QXD6N%oX8l;6fbhz&55lMNN+%W#$FQoYs#JdDunc$g&9?@^`fXQr1#H&c|Z z#EC@O7lXJvu4_qd28Y>(Smt%(gbV}xh>w`K`l6zo>sgmaH&xc+IG^0zEd z?Oq3u*JAn4l^ub*{#gv}V(XV%X&~pbn|DI=X{LuEZr?q~Az0Ktc(c5!?vr+onIfjO zWJE*K;D;eKj8gQS9to@%*8wF)6tM5gpjXM2Im%a*^|=oqmRm9`P&rds#V@vYCX&lb zcL*y(vqo}6t(u+x6AtPus+W4+=O@L8$%4tfYm&-5rRv@HGK&svHFhE~mZ8HVR-=ep zGTctpq-PYT7u7k^B`i;=s5qtqi+b!lotv+pUe=9YMd@hYqDU|3;xJTp9)NM-QYW-@ zgNI}gaIH#qena!8Msw*1>P_tj!3BxRc3xM#!j1olPp5Rbi1`;(5L6YrDc zs!c#cU76sZ!^HRrjqIuVMD%wR(L3(W5nQ$HU7E)wh=3}5Sa1yio8EF|ver6lPsJ6# z?{9NYYNROlziLNdpR(QJhm8H-f(JcO$RtNw)O6e6ZpC`S-9cSB9Qz?#9LNp#G3XgWdNdqHS4oN1Hc58Nu3btO;j=?DVD_RK&eA!T-_GdS$*` zaH&VWxkN3`w>Qm~E*-VDZ1qv9MJv6yCGb;oxo`Oyz7KRwi)3(fRyvE;z_()oyyQLO z_V3~(rXF}}_C2--+jIC{l5Uml_^?dv_*%g!VY(Pbl-m3UqbRZq~Va5Dt zEo{3^;!IH7u_fRws7p{8sW)!rv}@&mqIg^+$JZ}f3DpyjNb}s>owdR}S3-H#U$#=W zJh8Aorc=skBGkQ(s$xw!b3C2LrLN04{`V`h+l^QAcEI_Leo9~6;##vt0bH+zu=(tp zH=ApetuZs06witGZ^7+ixfdO7?}?eWW#(iC0S17xaLo|Uk^{|m_7F!Feo$Mev>21J z4T#RoV%UaY&(VWg@0m9pUhett?u@pH9 zLJe4&G9gl4v6$@ZuGf=qD@)LC_DCINs3G5Dt)3c5cYlD7uc)TA83@QvS%yHm_MTI? z;h0BaKucj_XuwBE3fM#@2f>{pZSvTTklQjm{nSwfOis}=>hLP5#AUvXtX!1;8LpFN zZPCL7T13A?k|0$ae!ENwCx8JnR@-WpQn&@?FetwbHmo?-AgB#ufJ?j7?btNihwI;y z-@-3~R$62eWPIbCq`jRDqf`CWnXh;^~4Mw+h2*{@@#wF)d25S-+X!;Yl1@w$Xh5tXYmHd2#G%Z5#Ix z@5#8IPEy&eCDf6VzFfB>b+W?w5TLL`oM06D{HwFz>n!Ul|Db2pMgLuN_DsTyXJ;evgQIbLyc3jiYl+?i1eN{=Lybpd$rHHe}@yn`}h=C9Xo5AUGaiTaVJn z)l5BEZ=v0Z>P(Y_0FV4*qslFhy}TMB*kZ$SBLi2MJ^yT24cV=FTuV#5Wac#mt&Lea$1;fGbO z>EyzrY2(XC@O{o{T>SsQtJRY+8<|SW3##OlJv&NkT?i(fGBn@ifp^ai%`-_#NP9dk zzuTf=^^o*jB$%yr8u&4%_2FwGMQRxqbUcrj#XQ7Q4$j8^d0|k!xn*uvH-WqA_Dv!o z`urY`z2%x>t8w7*?>^wRu`|LW7R;|od)ZXJkA8V8>3pQ-2Z!zuSH1$f()#W>HcT55_IMg0xY)$Ew6tq^Ep?A5S0JnuZ-Q8 zHox=HN(~UMXxFYze4tcr!_E!MQV! za;3idCYZ(roh6lXNr;tQfog$&wEJs?AnPV`{E+lFmdDT~of$oD>|QB!zlJ4Y1m{{P zk34NcLm+>(tRK@*m-<181z$k??@r3W-;fWZjwM|vQ*P;h@%0W-qAg9-;4Ry?bj!AF z+qP}nwr$(CZQHi(uJ`@jy?WGxoSZ?PLBxvOu>*VRFIFW$`y*+AL{18omd@L24w&VsV|MFg-qs72s#z$I z`u3zvv?9yo-a-Fc+cf};?i8dGbzKA`K)#jY54z<6vX{J_mIv*UyV`~VYaPW+gH8af z8Yb*?z{ZH`j|G5tmb`#w_wU1HB#>vq>p|{Ny8HlfXs=I}hTZllw70Y4V_n|NIxVbP znp?%r!RBP3x36p=_l>dCaNdxsc$?mQUtfP`Xl>|jZ>y1L-qWe(S=#9C;$Xg%I~FAQ zy695mfo07hPDMeLAbt8p67{>fp!&k4$?Uj$BMU{3Wd22$hnT$if}96WI|DG4;b#+m z_hluju~r&yVUF*S|6&>h&Wav=-+QU;qp(DG-qY;ar>2+8c-+9;{vsDR%^(A<&DF|h z(>Jp+>F>JI>NfMzrp;0hY79Spy)7LhP*D3U-kp~r?{_u?K~D5}$ajSyC)KzDS)o2X1#GtXqS z5XXR2)v>il9*yJSv zl@h#rS7lyh0rsu+wcJa~5k9SRyQB39aBj z^`-^Vi3~bk)NUovEUpwQaTgCdroeF=1}ZInzg3eYUHSys*G6V|jS2_%&57R*fwYuRdKJ@iSFKT|_W0t!&6-8K zXJURs47-`VW}Jy(tD4!_1gjp;ji1h|a|K%5Fb!{L9NyF|pD$=TlY=H4jXyPAkCQ3c zne7*2G~C`VUN2c4sP@AI_aUa&GP_^5VCTI%00!5&_QPVQz#}(CSwUlzP{UObZw0-p z3TXK`F$@ei-Zx|9`_ugaJjF8sH;S&eS+2)}XD^;7Z!b7(-!?NoFIqSKZmcI%HgP&} zKcT7}o2ga?SNnmful_*|Ws`O=;)9V{apdT8i(S}c@9SynN zgBVjJJzg6a+oDdNNmT>a@d0ljNqhulu{a|xv*hGAL3B=;F-LlV^`l$=-k9)ODvtik zy7;jJ+#%es+?XuBrKPxkEor{};U5debpLAv5Vn3&U--CCjTjamOTNyx_{$-Xd#6vW zxAiiG4cnhGtNRiY6Sr;I=Z?1NcldGqm(u@TN%m$5Jx+S)WC(GPuOWE>{9(GAKf!11 z2u+Dae1LC>u$`_4A>cC@><~WEeygMjWFa|0eOtJ0nTHeVyIak$3&l=)Zjh9baWPHh z6pVR`6UYYf%}(&dNeXMh$(Nnuef{Sf*r+DK=k}Q8=OsSAltd9db-N|$Gc10Es^h7` z=J3c4EH32~5WT=}?cxx-9x!Ovx>TRl22OVj4HAVNMv%M~ey=U<3ZMt0oONSM_U>^@ z)@$Fo6xz3MwjvkacW_IVFF~md!yG_GpeZtQy`jE|@gLO6qOww=$MpjkSgf~SJJ6JRgRHsLy4dyTpn2!Y`9>^? z{P4Pa2#jQ%)mnVWya-xDAvGn~O zZ$?p{g|RwwWGYF*-cqAi>Gp3yozf&YCC6R=+4zbZVAz_3~p)XI6hQ4ApEC*~!wets3#fm1ua#H}68$ggozPNvsA^M?0 z%o-zh^p~qg7rnaI@RAMAw|%l{rsfTF)z#9!g5f~A1tnsFHG1}ep9CWz^A?EsMUek# z@em&-{maruwWk?Xs{4{#^li8GRR~Y&2sJFFz!NNoK!k!o(68?WxgaKhyIToSB@5(Y zGVvh?{0``iv%pX0VzaeK*S8NNbf{t`6Cy(tDs%l&Rj!1AGDP%$UnoPw!Uy0H2jq0W zD%33@v$3o!=P#|RsB5SyD$gs=9w!hV?a5+xjTLE|LOs_3WONDqHz<(q>T@5`9o|F$ z2P3)k$UO}B<#B*N%hTCn@migv%B@JdSp^{C@{vToQ4 z*%I@(SA1T4dG~!-#kuVh7Yg**NDh0;GbS?VV!(A*fUgLe=~Gk<2nLXk8wp;!VM`M! zI`7*?B9rLworLV+`#^&UJl(UKdCDUMVLS`Kodf%YA(gE~hGSQ0iiL&0nz*oI%Zc^g z@;bS0$QZs6lESRQQuKc1uAJg>+vbC4l#p^U%7uG!=Y!i)pu8AhP0X2vB^C81TtRh- z3u=MKj6q&IrWqYotT^e45tGJ%Aqo0`fMT!T$wg8GV>2IZ#XKQxSSP3oM}Nr=DzF%9 zpJl32!kneydM{`pEG~(pR?9fnFe?T|=Wb;cVJgt_)aXQGuC<6*0R!Thlr3M99;1U% zppuJ|l~RRJV}}3uZWaMM9X8oPBJok4|3Gf45c6*-&ut@1M$(wsGuhd(V*N!zJ|tG> z?|)vsGd{+4=3G9nCI5nIrZ`GtaYz#M87}?v|0J3*zdknUL=$eB+77m(@Wke4Z^7!!;L)WnpBOZU$gW>I$}l+ypouO6wtB|{;vKduns z!N?%-S6o0{Ne4N=j1d!3S%Y*&UzUX2X8Wz6mUO!`e3ZiOT!uu*?Mb4G+JzjqhH&FD ze}2J9&Zefc#aP-=U-GmwHKX8&FA5xckMPWMQmiV5c5#00JfmXOJ)i-&S zF}QC30f*?XB;K>{LT~93NEogs^LC2|`|cDKQwG6Oa@IlN(K6g8UV`3u^=t0JXBr&) zTVppIdnTW#8=!)Cv&jQrh&^ENMtv0i)rh>k7mlOUI(uAm)bGa7lmNJQ^6i@7TLW@W zhFyg0FN75(x^gkWhzFE4hpI)a&GBPTK(2^gs8IMui8J{)#2mqrD|if?{-@2!o9x~U z{G|*R3hUF5)bGgWtOJQahWGUsKa`*xX#@=pl{{s}D$l~qT6b75ig7*Bf&0lnP^L|b zgGC48{`BhekN0cF&7zp8_I_JuvN9SkB^ zZJ+>0CP9!?8EQdbXCj4#MNUHsN*v2Rp@X4&r3^L`f}!9WWvy|Yrj3~_rq?jjOe|yS z`(a_{_ob!607sbjmiB$6>W~gtY9E?v?jM?($TV0NEWo!CNbmF$=1y>p6+%(SA3UqX z$(X6C*u1)n%k#$uIXMc9)rUe+CT{%2iV#HAXEOVJ?Q4zcR1A4k9VXcnEmpA0sg7Zk zl8!{9nlf1BfVf6ka=ZEAo(dz^PDB-*hKKRK@)(oW25uk*w-N(zOp9IM@wiEKdI z=1q!NkXY`G?{nTke#k7W0!arkY^NuD){EbH<}+^CmYB5V>gr6+HytbM%Jkav%IJhQ z?_;F5ks^fyUNQ%j?rBnq9Ib(BOUW@1LcmAa_qO6z{OOqtF^}u2(YR|?(nZ?g z`kZcBB=>f{X;#=MewLoSC%p-B|MI_J@RLPp6QN4E$5fc#E;qAS$z4`3s>$dVS?(rOv^`10@J-SVkM=Uq-Znn1yfynSu_NYpD^ zTTX-9p0_@6c3pjyP+G70!?(o@wRC|W4fG7c;SU~#j4|Q)Bu#+v!Mfg)Me|H~p<$EE zD0ISINw0dY;^Qr;&xK5a3y%>RTF9N|jyWS8<1pY@icu(_kr&TU-O?${LIdPP#OB!T zhj`w$(UJ!U*F}K;1D*CRTOG`fnNN~1sH{fN0p9fpV1ycbNr&{k=Pau9{g&%Kr9&lY8wrtrQdTH=V}N3;c<_$Ce+tP2_sKw{O0(A zvL4@}{;ArNN|iJ)bN_gUd41Rm9~W)R$H%NL4HYJ*=)VVpOX$}4l{xO%5faru`RkF3 z4Nvt@vz@0Q2XGYfnv%=Y!r4-}sC1b51G}Z4CE@tt$(^!sLc{eky0C?XrL_=~>G0-R zRP+e<9XA8=)9z_M^rhhXJD4Z`j-!q5qkrz*337OgS#(Y>7X1BV8&fT&)z-SAp??07 zvhUCGgt_YCSzJ)$H3meMR=T~dp<}9Je@(iL>r=|o-H2M#np};!_f-X#76+qzp=^mu zi$pr8>VbgAMQPZ88ly^yk}(7-qE1W^H7)h>_mfI$hSgrsFR~ck=dSlSZfzcj^AskZ zlImy@VB+!!GNe>( z3Y(Ll0ca74aWe|%5CdNt-VsV(yhw7xMXmI#`ouRX(FT`K`l;k4bT!pGy>R-8coQ+Y zu%0g+`OzMNZxoIj7Y2X|Wf68zkt`Y5@bRZDKu35ag2VtXaZFApH1aw~n+5HUEvRI3 zP1ByO)6{TBY>7YiRpa^;yid5*A4NTd1NH|j9y`%Uh1%bA%;P_q)amKz{^>GO*j%6O zKi@WmiKyd%U!wHn4@rv2a@t{AVs44aE(ivV=VFf3`VGYRqq>B_T(-rN`5f+v2gg^T zNy|s$6F|fj^ekOboviy%>Xk*Gi<>96b!1zZ=EQf)3?oN2ySIG?dA^?w zNKAF@>jxUx-e?_Q8p_de-E&4t5GNcZrK}31z~o*!hbjDqMsW@*q4p(-G649(ol&Q}H*BgN(}F40x1+6k6u7r*M| z#*8FxZd>gXW5v%^6U{IzL=`DkRu;zZisSgma$f4MpFe*fDV$4aPZ=ub!trP<+V&Lk%7RJQTTc`k_EgtU?sA}Du)q9C#rSA7T-lntKj%d zo8D3y39ec<2uu<|wNP@?Ut3N#MwH9KuxzSna}cdk2|`741bB~^C2%K~L+LYCSQI_2 zUKVUz>?N}rq#tvSF|>UeUeN6FdcW*`C;Mx^BP<|5J3i)B^?um>?%tkJ|Bi zVtu9Q+g<-m(_)QdiGn6V42r;fy~Fn&3&YlD0b^HEg6(VyPJmr}yqW3$iD^>JaLJ@@ zCK^VAd~yS2H{&CMcyi^gKb216Jm%Bayrj`wxh?aaywhMez%_BB$wFVR{SDk%;rsnW z$2{Vy8!UIlqDS4Rn+jdkm|3<)6yrR{DTA$bp7Ix!tq=6dHqeT8pm2L8v&0KT9PjT3 z$~QO7NVyWL4N>CZy^&mMkL0KJbr2v{ChPQL>0-`Ql$&Sf^~@)8xIGe?&gKFzdjRA3 z%ln@cIJ3hkGB*BToL-KCE|< zNh@2>Q>%U$maEw^v@tj(x?gZ#DOpr@71y7yRV|>*{1;sGAq9Xz-%CbC)M#v04n^qi zF%*tm#12b_1Pc=Y9n`=Sh^3$=lPFWmBj1(Ijt~B#bx;?J>0>*lwo()*Py55#5wA}vmt2!!Yg`_pX8z`_b8{k(fi0m^v zId9Jql-8YHV%xF4=6B$Coj#YjyRGwe38^_xopuL#S$&}iu;{BV%02?fWetkm>yW_o_L_E_{@ts|AjQ+%*yuxFz$C|3`XzsD?lfx(~zc%M^cW1qYkQwQJu??RbdpCIxxqy0x zSJ_TeSf|O@@WSJD5gr{%{s3u&CNyzQI`xczzAd4D8htKBDCiViWoXCj3@;yOg*|hs zUwK9nvVb~pG0Q6T_CvmMzCL|T&Lz9eKJLZo;$n`1DeWHPKdI%t)5Cr?iJZ?2wdi1J zcsO13RBddu*_nPk?**G{^rnGgEb3JNRJ`INPrKs^B8IipC z;m?Lv5VT+Q%eCrz)vjI3@GpZ2Ej5$Nj@?ZP~1DVgAdHDvphx0Ar# z_c3;yq&@s$rd0Y9&%mI2<;%&MEIO_R@r8k7cq3(t6Io+42?wgk^#SPyx8adi=B;IF zhOajO8sRj(^}H|rfqg1ito2v#oI#F)oN|^b2*rdiHV900VP%7$*>>O9G7RO(!N&U< z_EP{HHg#*hNq>M#hR1COih)6Xt{{fn{lax$b>gd4r&3W5)}&9fNQPZ0wft`|IP^hJv=|7WgJ=W-XMw?dWba`SZG10ouGDM7A|Wko z@1&K5DM>G>l@whp&lkp)Y|=s+5!EE5(0pL8AOju0jS-*&K2iX#o^T3~TxmKR2)T>a0@senozu5}#v~$@inQP5(R$*|_IX>?&FWs+?3&(6$ z5X?NAqSoQ`SS!h4AB1hSFvBc^QEcc4YOt!XNgYi#B7ueOKC5!446`&zbW-W$nk{uv zaYfD3q?%Xv~p!}?OZ9;0%Q&ba|JH|B!EPgO>&nElU-UtMPi3F2UXBTf( zzenTk=~Kajyk*g``jvg#>o7XA{akAcjK{W#5 z;ZmT`h8m7+G8p{H9$UU5JVenR)b?rr>};p&MyAI5bEqgLzWZXuB<>T0&V*}lyDfUg zLc!sq&J$=G0_{5s$pf931oy;7bo+L_MbcZ{ttkHM28Gfio;dQ_0VsFXD`mH z4|y{agY-tH*yO6;y39@fz5b&e(H}ArIEi5)W575=$P0gXJ@_IYbnw@O2Eiiu`r0i^ z{MiEN{+(;_IWkfFfPx|Qv~Oh0J^G58@V-bk5lmO~{8tdUpNb_( z+fIkkuU6V_AXX7Dvvy)Qjw|J-_NFQ4RkJ>EwQi+O3zetF�O;&bslFM}<`=-aHtO zBK)(kdK=XEuO?+ZD) z*Zv(lm7qa{spGm<9@71}zy*G_Vf=wYGqKsN55-8Md7fPGpm z-^4yC%Qph9hs&t)SKlPcEn1yhJ$Y&~s&ce@4Whu>R}iUrxcEK;xij+cQfRiNtZsc|G5MBAvhJ zI>N@FdY`4;+6nQ~`lzd1Pj!7Si^rEOi6DI`m`}l?7Pyn?a~mbdgg$GFd+IkdnpSU3 zgmCITmgQ^*nS3dNlwH%RF@_h6;)TafgnATGn$#3zT1rb&#v86!a)<;-;grhVqz}lm z7r3V#)YEkK$dz5CtB9C_p|clQnO^I$h+Cf4v2{A0@2E6Zcj}UsmM9GBl9-q%3_eNm z+>Ex`C&nI{#)5|pt*q+n@YE=lKW6Hkxq3Ig>6)^LDT+M-&{|-R;pUb7+EV-BnTUz+ zCITS8Bvj|Mzwu*Y_Tl(8?1Z>-mw*E+C=r zyT|j&s7;(LT2(;!g+WF(=X9rhVkYIOJNo+QfomYPN%&uFi9Fy7FB&MXSB(E&K4alK2j2co;_s5jQ^5-@)OZAZ4RF#D-hGy$*A=*;WY^sy} zxEnbw@nT(FID*F-3B1LPVXyxr)#=g`dt&Q2om6Q!vNA?4E)!8_nsw8#GpYHKkK!{5}s?q(zLS4=b`qd*@O#-+t zgkXC0_gtl-XIk|LHH8G?d$kRAzc28w4PeJeIHg@+JDd6wZYIdcEDP*#kdrEAs8!g< z`lRlEX1Vc-M`!EtTZTCQ5D$)5BVMFCh#56!y7qru7*?gyAjF%#^$1V+Kqk%pQ-qkF z5q0&Ro^hQotjBow>?YSy-1}^t9(g-cESG~;3Kz9SH6W?#Ehn-cbS9t(_K-RjU&GQ+ z7jiFVBDcukj_a;pf`>_MS#v>w*M;)Di>v;M-gzED4}3*gm>22SH1N2PP%SyVUNtyF zuoksy!F)~A27=bkI#d=cWJ!qYqy&E_>gOWE4rfD3Pg-vVOM;-LcU)I`%wEEw8-1X- z9CD?OI21%2ZKRIA?#Q=q8<){hz#T@U@|*7GzcqCo4&yW&!Q)<{nU_s&TU%T=`!agn zn^nzS3Tw!*h^2yNAGH(N>GTGQq`LNp@)lg0d!6z<@^xd9OQ6KjG|b4z#!^iYTF#b= zuRG6g{TzKTXg}jtFflP)oJ62zd(O@T=7}*dcaC3?%fE};cZ&+MoL(ARGkYWkIN?jT zOuN#|)!DlT=dI3@hJCK}znDqZx%al|(T-RrJ+7HNN!bImL`(zBY{+9maQ)o!CJSr6 z&?>kQyg;6v`@yV3ByS{1*I&!wjp_hh7y>dH*g~M66yS=Jr|(FGMsS0`VcEw=Y>39XrQNkxs%Ua`L^4)-++xl*^7PAxKwQxX-V>jqnIg1N( z*BA>giSOQ*R~orhg6PF)`9mtPRhB4*M2QeUYy>CcSM~$R5q*!=KYx%Dpw9?@c@y9_ zP}a13W+vKgpM5rcx9Dt%EH;7{TqSqw8i^fxQ#z!AI1qr+=Mu9Mb_y$wNly{L%T%EH z5sc@njJ5;VchJwH4-)Ukg0PR7Og>qhBP_|7ncMFbN=LkNy5D({TVEoq(jfa&9p+W4 z2m=1?EZoiIRxCfhtmJs5ge~J^KYzIz0@4hc3ON6KV9W_yw%Y)CMp#fX5WY3D5B|2? zOMfKU#WAvT!;AgPWTZ@5{$5N}FX+oLz?r5GxGBzW;JTwLimMeQFQ6Vu(LKA}3z%s) zB8w^}lcS_@@d}bbcc#2kM{29anqC^3bo>>+Vua+xtOYF*fi{gD-t5WgPwH<_KiA&` zJka9xXm{Lb`2WVu7YIqxpt!}WWBGRwbMZygBSgZrx9BL``0YA6?J4ZkEz)@$Tab#@ zCoAh-Zx7Y2Lc^JJ3lXWTnOw1s&LC4hhCpnkyNWYSJHU zxo=1rHXyx#^N>zoY#>@o@}=h23^~trL_JO zcwr%Mu^j?0wN{8F6wN*<)2Tz^&ux<&F7NZTnJ$C#OM{Xb{^?#ZQHP#LnX!|*t^W*P z3Fnpdq3N;YG#zetp`Qt8Afp%R%{@Ko32&U?zg0*B#iAF}FSS~6Ox$Q}i{yP<-I4t< z=ECiGzUa~Oun^-33}(CLu}$!!{9V^C<%)%8k1@63KaOOb5U6+}P3m+Be8PeE9%RI} z&%n^*_Oe8h{k?g@9WtZUBYly3*mr)5#m!>5xQzE-&EF0(k}C)=EtS~M&Tztn8Po|7 zIwyqLm?}V_1sVwuY3ct?j7O+ww1sSF6XCM@n@epd{hkI}P#+Vvd_-)TlljZRX!^AZv*WAiB zHiO)CSQkFApD-To^%@R9uX%=rtBCK&3{#d2k;z1Cy^po0u#!Pj?$ zXJXU6(EmSe`4is^IXUFR2WE|hm8ta0C$wCWfE?FT8>{P9Q}Ti-wWF2vu0EZM1iO9_ zmg+2jX0@|t!>5)~7ysvsLzzlSuwM-)*>eJ$XgIKG@EeBm&1Ksq|V#h3LrPOQD z5iE&4Tq#j2@x9Qf6~o;N^2%{r6Zs{ZY{`&;;?lAMYl0L1B^~?g%vpvewLVYzwcG@90SIXNE#z9II*NW88?NobgK*KxJHU^^-DoJv92Unff zvj>bywIyGlupIIb3{BymQwyP7RJURSTvnK{*xTzTG!~+AN`|B`|C8VE3f`T+WUQo% zW~$Jx68-fW1-B`Ie-Bru=56F|<+Hz7MxkQ6vL;dTjK$`D)F6@4QqLw`26f@V@}>@A z)R2Piofxf0i+M-~o#eQs4985iYfU-`jH(y5TFV!%Pwj@R3Pdb$pEfs>0@i`_y!jV#U_enm2rM!_`ps!RvHYKXtdA=i*aaY&}*# z%;m@KBD7VWylw;%oh>_X9*lnymfMqmq$;Eq)Kdw3o|l-ibdcl8y_5HiV)Q@yYHSdf zpN=}Xu7K|`O0W=HV-jZ796~R{iEO&=>0mRH&vKk9PfACUBig7H@nk;wBk z)q>rBa+Lq-{38~5&Azf(u`+;5NCH(nKQnVPivnSD=Q_gR;_kPIB z5o~sOQ&mNPfKW5&!FJAwBrl_fC<(m$M*xY7F1OAXi@j`P6ee!KE`vN5Kdsq0a-$jc zwDFtH+&m(`(&}W{Y)3}?|1esMsi~tPZ^~D*{}EanrT@dj`I`T)3xY>_?^MnYv4RX& zN0=d^i70ao>3%w3iRK1W8rhyl=lw5ejsq8~!wFbJO3Je2{0A}L&kg$1&;r*|t&5(n zcqxzquqor{En_iPO-o0J4FZC66~LGSwp8(A(kG#NcQYIHI1!DIbVK9k%KNENSP_Z| z=+)6nv=xNjJQwr_?gfKJN(M~_GYG%P?o}DjsO(N4v|59xJJpU`)UjLS0>}OAivAev zQ#&25qOD*b499|J|CRL6n{HIm)&!OGz@u8o4mXY2f?63bect|t7qq}kwL54*g&EW@ zFv_T)uKXu9?lW~$Apv5M+5WWyG#BflQYrOprMbs>34=S?y~nKH47ivY3gF|+eIU&j zk6@BFX8|E!Cgh7C)k?QV8l=b^!@vdjXrThrpwTGAc7g2i#;D6Ld_ zfX8VnlaHJ81YvlqOVGOb4~7x2I#l{R$sCdAxNr}sU;o?3Z=zK*YBjo4k@jB*1OW-0 zZ2h(8tGWJd{7Ovr>PCap08oX3_xpebOU-F%Kf)WycY6}*idCymp!=DP4pV2FJl2dZ z>0(U8Xs_$>$RrY~9nvEqEj%jUU+B5x1xnh7K~eBX?Z`onvkt&h&2lM9hxNj6nttM{ zRm=WSQ(@lHHJ%eX^^8AE0b1gPrX zNz_lh+6!MQD0E*EDD*;M&<@2V9g!@?~iCKSB&rS&%H9T%*^!k zEMzxCfwWteAMnYe+l;C-dmV;gT|4}2uHfFtsM`0YOJoG#IZ6cJ5ed1X>da1Xo)JPhBK9 zgx__}l~3NEv7YbSA!8Uv91BPIEJD9@1{rE`yB*zDB3~teZSr~@@SMMKMNn$&T4Tr^ zj%W+U8ZNCaHza8{G$0lkSlobdwJs1IF6DuK0=e)oERkz&Y7n9(a)BTO-l+*5h~;4E z;~B~kx3GP~AX2A57|9=wZt`qiytw@FL_)@F_HL2+bVpG?HZ1vF*`U9R&ZKxC8fKz= zE1;a7>ezqjKpwSnbiWFtW7I^9ab(8}`Y}<^nrQkt3SEl6I$&nu+Ta==IUC?AKTOpi z`h+J>77$M{g*mP1GEy<%Pt<{wr6ST&cgrAT@Sh6oP?i+K$N>|Z=g(9a>iP)F-doy8 zg_fzUSUDRy>K@KE(%X%*$#+)WYo|I2GN7?|aC;zZwsyAhelUJQ9-ZER#$*-m#&nII zG5)dbXjjOiS{qREQshjGsER8U!S|uxvpQHQUu{Q3s_u=Z3!1gHc0+SstdaBEj)mp3 z9H@}yDLH)1r?EWGzhv={_khLx@kx?g16fZYeV1PIgP!W#sxI9iq!>egOh=Ltjr*J^bI$h`x$~eNY=h9JC>)Q>zsr=inlV-%l9? z#+ie`dI~>h5F9Z^4t5B`U+}qqbXR59+GzzN0xp*4R}U*-U;n(m-*@X)^X^T5>jq2X zA9Z?yixBU34w~GBWfl#>GS+z{G)Xg01U`wJ6Yo-gJTm~b6AXC~l`*(t8~qf_MNO5& zlp1IM2(~#sNTdLf^H3(N=QRgXgN`1fP%iIJ!%1e}B1I zNW+nPtE8y7FcMjmepr5(pL~Dqa~8u|9@}C!jOsHZ637G6$SX$ck>n*XzzX03_W}0l%@3Y*}u(w3x?Iy_bbT@YVcpV>Y*K@8j^maiY#))IxB1oOa!_J9~;aGeU0LPjzFu! zV~s>Qf|NPii3Ixy<7#anS1^1s$~S>_QJnDH!<3>fX2tAj2L?(*21#F%Wx>yevG&Xt zR!J27rg)6{zQ6sOFHww`TgR{>>RMuf3*E0coN^z zTlA9PzaK_e%HV|9)H9B%e~p#`aKU6=2Vi2g5CdXr!5(F7XHb}}G0LKGz97{hbq94O zaXf*%PJA4VSH|v@u;lUdJBTYw(rfBOJa4>`)+-4vsfc=jf_4MAzEiaEZ3L)Ll>*mB zM$5P5(j}w&_{l#V$NiVrg={L_WMCD(msk=5BifvkpTE_R(P*x+)-}k9?q-?gyg??ElX|~O}u`g>(-Md{p2UX4QK5{Mh?Hl6K_RSE23S=KEJQo!`|7 zVS{5FIJp-+TntrGQ&@#E-p8j~cdu;(t_7bx?d{QfPPZ~HB-$h6kVm=?qs-pK3jzM( zUjF&q=x8m}#k{(gWYBXnBWY=H{ib7=9H~5lAmJqKO_*D^LBPw-zs>&K*$0_#zy(Z@ zaxT5-i+Jb8z)y)K8gF9O9t%N-T26Pf%fWtvD}z`iChY2aP*81ZG=~9*U-bJyKIHf+- zr}2YDs+nIl{{O&Wr-%Ov>qr5#kOS#}pG-YAYIN9I|NEWZYI-Rg?I%WkcGbbe zEypckTd-!MbO|DeP~&qi-{CNE0RjOMCANX%JY|V&K^PhdRq8n)v4}Grx@LNtjDAZV z0a7e)j=~;%kh$(bSpK|xptx7jwmqDeK^P61t@@Q^2RJdm9h=%Z%J#Gk-T(-Obwf*# zM+$5;X5YXyvq`CCV|g>~wuZKNH4LmbqrBq0w!+HhmFnURWwK4MCx8e*MNY)>jh%WA z=OF+nEJqHy`nv84^HLF(&DQK{YhIO=m%+h%vn(YF z^CFyz3fu|{v`WlU&_L5;dl!34SC}fiBCnh*!ey5pp*5qN3IQ>KB=3r) zWR3MQlaWS#M)sB0!e+MBSy;?X_QN*k_Md`lZ?11NdKYYm54Mx+ho2mYC9diRG0T8p zNlcjEo!{&~vA*ya1i_|hRAnJ(EXEPeM>vLyu_);Tm2bbjCo-N=uIZEHWEiXhG*=(* z=SLOHRuhsso?!=d)2L@eWIbll3=>>EWF%&7t6`NM#-g+!XGN9Gt_@LD?POt6T4Nck zWOZlN_X8h6Hu2+FEk-3!Dc9p;Qxn}0tIV8lgk~DD?S@2Mi`(&B8>!>-GezKQR#Y;! zn0?Mlvl8~&z?|HA_3jLPo#3`KC2BLRw2hjs;gNB0bW5K^sxz-GlDF!L8g^VPvbNvw zWtndSxNw1~Px10*rgpMIlw8onto~E%7Eo%g@~-BQ+VAbREfy(y(SRc>_hGEspkyrI zGgC*6>XMd2!ebIs51)Y{==PVjCP0tIyo&=*r1<<=GxZ}Ub%y$pn0@7Q_hBSKy9tE# zj2Z_*QvKtq3}mk)Jfxpbt91IgGCmJ0E7Uzs+SK+`Rn z+@vWgqMc4Y(F#O$JuJM?qHvqM#gk#_h=e$9W~7gU86~S=0^r!HLN^S=5c)r^zP$B~ ze=l>e?TuzzI&L)F-Z^Z3Zu1tpUaC4@@^Ctzu=EkD_hop@{&M3Yygn4#W-j3bzwV^8 z5mqm%{gqHWN9(VM9~B&@b>hNMqMh}F2kf*LOb7GI8C-wK@| z$|VL;W?O&;;_dLh$^O1xb~im|=dPvp4ZZhmO~B@ac-$sw;^I^Sa~!Psd3^1mTa&fr zfxk4`-6G7f#txH+miK~nU%-`WPX)+O_^9d}u!+!GyWyW<9h!aXw?Wmk=&0rm>h%bH zB!7BoE-#&hSFPF!7%y0dKrkCTHtdU~lCF!7(8@d;gqR`KnWi{)CKo(Yj1xw?%#Wvx zRAyE6-8!wt!mN)OCG|k+^vI@Cir{7)+k&H>;J<=I3=}7CLK)2Kh`(XnXHm??U2Pc=8+hdNolcz-j+tvt= zsc`ymh<3ZO^g|4sSI5Ll?)k1A;#s`P=Rfx`2kIDAx|9&LvJ?2{7!AU z8T%agwMd}6#F&xJo)Ol6LgscBV9$aPUOjH^eCAkIcP@4#5f5vQ`dAZg{9}@SkBgcq zo-##qnknP`()7Ep z(>^vg{?%U4ZAL?6&p=LYkA4$c8)+|YMt@Y^Daa6`4VAfVX&<6akXR9GK7NA}du&r} zx78`QkN}W8JD}U>Qj1T^nA%M3F;>cVA?epvkt|*W6D%7RH>P*EF zc_u)STcx8v861ZjySu%k+`(Q#0SuE=QmubCy^qyRO^xEpU@X6#PGrrVLoH5fOWetE zm_DFZe4)eoDfPJ)G5v1H40`)>6Wn|NXK-vulk!$I9aS1s%YaVIswUg2%g>_t=M2}Y&pS~L5xvn}6V_dB%s zB!zdon$M>Smmi+3y0s!pgHCrCc==T4|4CNK-$z zDo@wJ0hN@#WVF<|`@9O&@0X>Dw;2;N7M2sO4f6D#HzIX~5lsnV|C8+~}&C!#9`*iZyMPY}#M%UAmtEm=6NOEWOh zd=z+5CHx9xWB(4*D8beA8lHuUV|5QJu8B)cKteg&!iJ~CeoR(b#>!?O9T$f*Kj$o5M>`XEp zBLS=Tr$aPB!y8{G4Fw<}B2nrLa{qM2U{~NX1zJr4b^q@;zD{6L(W?(t#b9PEJPfK1 zS9~ly^3?ZFe;UIh6vtmOZ*f%$cnkV(gg1aN3KTd3;zOP05bzqc(l3GHMkqK3yJW3<3X;;65g@*lAr`95+9XtX z_a|%`)?BL=GE3K;uRu4ye>KfGFInTHxKI-V$xz0;RxJ;OO7}qY*-cC!P-WE zi@@8KlBk9Fic+D$@z{xj+LDL`mr0B~;aUmYoRp64brgKB(8@u~-6ww>M7VwikqUS| z)`m{gfL=BQwpSNhyjh~I&Q4F$2r_fxc3wO(9e9?r9V{yeTG2+)bfNRK(@FE6^)({8 z5NVh){lQO!TDffb!Wi|bA0-V94J8dFZELk>(h-1ri5r%tQHUv(;43V#XmKL3FzfU3 zg!LT{?@q8op=ulkGealK;9@?E`R0$=YUX!(m`yb1n?iC5W?pDYQNP9f&(+^!taK{A zm+p;vlxw#5vcKkHG);&pPC=Gr*f=9MPwawnS^|J60-c07N^W^ zJ0voa2@d%-_}QYXjStS@o=<^A0jm4@3ZYc<(!?Q1ht!5tVQ)=!AA8w~iQ))VUq?)3 z;NCd$-gr(Cz6Cx#M4xgeP_)EE^m2Ha30HqZ$I!<+ayMn6f?o+< zGx$pnAL9^}04lI{+Q}Swsz_#3kjQgE&hGnT_Vuc%mO*9>W^VW1Je=4?&(o!x(Jtn4FB_=Vdc0xMKfz632JT{l z0-%WG#`ONm0*b($KwAGElWyl9d>tJ^(=b?Vs# zcrkzz#Hb}JqX>Y7{DaOIHkt9qS0e^57g;cdLDK2d*L`zO#KAhV?8_2a?-z!yt-bgS*NXlbB;zLgM2}`sDVw2Z~ zec68@2*(=Ob|u%W_gv2J`cnHb$?Kfr6ug(ehB@~y1?Jpq(q-%b39^e4 zD}MKOF!YVUmF0vTT;qsPA4)@p8I#s@;=&07RKtZrxYVfTi2_oepXEVO4k*<=%`I)- zK6{npSuo}K_2pj=C)eaT3P)8mYjyl?zVa-EWiCOJa(9&E&ms1-xOTg7k>Fm(y{HN)3I%<<8-VW+qUi8*tU6N+vwP~ zZB5U==4D>yVV-uKs$E~zsoH0s^yYA^%lhn24KH>-bAA~pJ-K0qEYphq(rt=3C63|Yap%YQnk8Hou^Ec+ghadi zQ+};N*$6Iym>DG+EdzQCetH>SK z;qwoF!SUEu;cqp|@G6DPr$U6!{o72xC8zcDef*mVDbMvkervyxCbq8!-o6>S$d2sb zZXT6Dq~zsp^u}Y@l^fBMKBXFi=&-cW51aXp4?8~4ogOE@(R|!@X5LvBFxj>ydZ1i{ ztzo)}eXJPv@sxjW_UeU{l(ydL;kQ3s5Su^EpIE-{!)h^cQ7z1OTB&o*nvK3aa_3|! zgjTw<=hH-2E5}6EETILjIY<1GtC{b`MG=CgfK}sO^*Q-FJM-shjA&5tq_{r>hFAST z9jU%O2IU?Bakj6xI}#moTuIvquCzFw74M-P#loZBQgPmJ>K6}t>MKLo?|Vl8R5wS) zr8)KJ?`xCr<>~4Sh;=`o;<`DvdybfR3~7PK>yD4&fZ(!0)(J;gtt{_|377gn%L@X!~RM* zwTz*RzLDGuCsl9gGmAD;jxBl|BeT2PR1C-YQhUtl289Au{0M3Ia@8(aa+>C7RX(s! z$U%=wvAUVVwMetuyO#q6Kr8!nU}f}t#%!Ylx6H+_;c+UWBWWr)IaA00tHAH#r#1XH zxhC9f*i4zL>~&W?KcRz!MO5g4#0$&st=Z;cmrs z&8;Lof)xE0GM5d-jvd+W>oqe@`rW~=s-dryHn!0Qyx})=hDXZ3GnsDxnAzCo%VHyq zF|e?(7O>@2yd3*US392VuSmsqbcAaUa-WF2Ng3B(BbRR-EgmO{Cqb`!Zvtr`GXv__ z*rl#$kd7vkP9?UN=tE3RBYlC@w1b;Ff1|?RYj2L4*_r;T%*YqH%%E zoZ^yz0qR_F<}zJ5RYXg$_+V8=*X?9_%#6Up*EUhD#W`>b!#Ktz%Qoe5V5I2D*vLyn z7#Pxk$#7*u(WIB!01el-=oKJbQ#73~gA@<(E1a1egmXsbVAwo|Zn9eySuLYVo-vjtDnCTo|s^` zK&TmzQ`)d09vM3fa^%*REYkL+A$_|j_%yNp@%1TxdVRd}1vI&%@xQ!gVt~5RW98UKYQy_*17Ip@kh z5Esa%P$WVLt}Q;A>unq9=)^v<+rW|?LvV7k+rXh=HEc6*mcDqFb#-^^*fZFc>HT^K z)?ErFuOl6vbd21272i#10GZ7QGD+uFHp;1plO||4{&)Q-v&b=eb?<(p_&B!x0#Yjg zC-sL}ma*N$@}5+4)twgKjp(Vk)q2%ul5_S2B{5oRwU0$y;=Yx}GXGr03Kjf$Lu-c zjQwB#>7Wr+94DvCs5WpYS~l(MC{z-i0y&0M*pLpmiIEkS7&pt~`?acT-{ZFxZ3(-KJNxvj=@GpPkH>ePan zz+X%!7j!0@!=pj5!)Ong^1;-hqRfC_dk)9@-3{%JFzRsgjZT9Di3|ZA-kP1{#e09g2d4HwXgWSrD9AIEyuNW~Fxy1H&s&b)V7 zo4dNNsinG>gOTo07xE!5Z-vuRN%G*3iA&P7IXey>C~}?U7wL0orV?5;YzNxjJgD%O zxc9m{hoKi4AL(IXfPwlomLukr%-?YHbn*&(8xpn5Ed=_MhaMI~I1=SlTzjO+|6o#^ z*@ukZen62G;i?EMB(-QXz?h%jqGOY2@Ho9Ip;2o>?g?D)R5H1~?6ks%K|8u-ct_nK z(A?2mQXT?Sn!2C={w)vN^3#9mPJE6I45bjnMoR}q|0ISnIQUaG6Mb=b`Tg$mhS(DL zr>D#3;j*Rnd_I*~NO&)%%AdgqUsI0y!c0i{pBSIT*`{J{JC%-cq$V~aMd4q(CRb`v zevQ!zKCc|bcGq=b#)IR9DeHgKE$yFI1SaiLyg6>il=ZhDK!(WFiJ3A-bTnw1h;+b%QvI zj5gV}L}GnbFl^5dWMEojlQ-H@*Mo(hesOqS0M#fdQ);1#V`3q*M9Lk5bmZ!%69N4# z2}azlccFJ5W*#^Obo*G|e}uVg3xc>X`XZ&NX#efp`9Rh`nHK6%{Fk;4=AT<5A$Gxs ziogrIwRcVFW!_1VSEs*yK4qFSLxjdA>XHlmlz|~1DkZz2ZNCTR_55eUi}(+OaFdJe z*|O}TkqS8G%KSK1IxLN0bcr3es@_!7Ax_*LLu0wT%qFp1)ctQX|w5Sqd(-O@=$9$ z1Cw?sZrRgI9p!Nh>3h$xXF4$o3(@5b6XV4NiC(K0Xz}NVt+u_%ejp@%VDKtIX)nK5 zYvNMS-B4?EnYT;7ATE{`+-Tn2=eL9P?swFeq_r|mGj$BU^KY$mhDOv1#W2Nji~m3v zgIYL}8j4-vVfB4~9Y3JdJ7ucX=uHOTkD+6Riy29?9QKTyciLxm)lAt-*U)e_Ies)Z ztc+Pmwh-}V`$|N$co}|*OPKy448)Ze&=nriIq12_A-63gx$WB)%6*|92sBqCsIKO37kLQ`W}Erie~~kbx8nTw$Ym3iVD0H7;59j@iktN zcQ+*4DYo|8ZjDYiTGiW+{pfQeR;=NlW6hjVa#QkFBUsqh)d#hmXc!my?0#s!zbd%8 zT(DsC0iq!&!*MP%Jp}^zbN6078k25g6?BHIeva)GjeLe9m)SwiGxp|fOLrhv4yybC^ z-IO3IJ3ngVTgi9i@=$=oddT%=#nA#4jgMNORY6fV$^`P~o%?Nvi0V^nJ4Si22VS_b zI}DP;Om_MbJz^uWC`~m$wIOla|E0wpehzokn$g84)iVPb?)DLkig_Kf3ex60uM!zh zlB0@Aw8jd~7yFSRh7+m#`}f{&Omqv#jzAu$mF%zMP^6;CDI9)&mCe5jy6n8|BmutP z=PehVq$@XAZO=EG{c~pxnoUzpF;Lnw{;YYVt=-sRz3*qY=r~dS`|Te@%jfEIo|^&3 zdtAdd1O<#T$A(d?6f{c2bjRJMQ>p*yyT2Tka(_75j>j@|Y^-~|E%0QRHF+<+-QKGF4XnZnP5EI}YcddGQC=0Q7^+sxz8tx=Iv{*Zdnj z2#By`s}n?A&;*OGFi*w`UONcok3}REBn6aO0jP1E?Fc6cqp`nXfT_UK_856$y@Hb7 z@xsS~9}#nC*o*Sw1}B}uL3H~%Cye(8GqcpR0tZU0sC|7*qkXe|iU#>$?f>a0KW=KL4@{}F1)FIB{>6!$Iq94F$0ch2*G!MCM75TQ{TR?z& z5RPpV*TAghLygxM1};}`yvY_GO{wvG!zL0Ng#0ZA47oQ3YjnQ18y+GQ1*s9jEb49* zR2S|HtNoTTvt1oHN0bn2#HIO=rtbs8F5wYEEUu5?dUYukg5mUqFz~u zvYLVZ)6+px(!nKzEQ((L8631R7zTmAejuEPD_+Gfu|@EnTWQC<*lMYXq8hxu@883CHQWwY2V=^Ym)3}kR`m-}BE=crOmz9-`-oiVjF+mZZ6Wq=(ULEUlQ++a?@|?SVZm5HxB){TXMBDj}`0IW!2O) z6;@Pa*QpQc3wF)|Hzz0Xvp|UQt@tLBnEt-@kB#xWtU#!Luhq6P_{xfl3G2)MZQ(JF z#hKI4rytHHwnBGnO1pPXIh%Bwgh3Y%W-jhW>@;?wZY>#&EwDDX(Rr8(I|lvax1~8R zCdY09JH)dd4Zdq=Ad5kYiEfVk8kn*1I+h~!Va%75$Qay%m^hNAxGpEh^|iO{JG!LW zI(TVkSiHA+wl6u3-Sd6@z#%`897&xaa;x7xJ*3f0^|L^l0wf+9PSZBILsUlEZq$D~ zu(0r*|2O7*$?OBkQ;=P5#-w@UN9wBoNFzb|1cIa|eb;xI{f>sYTBnwbFAZM>XV){A z;LU7_9C5r{7k0?iCoO4sxyU%}2d<9)`OV(T;JaU)Lqz{)NhyEiu|U$qXFfsR|wEW(!w2EWM9_79T|7GqNrB+PZ=uRE34$R&n%rH?D-E=Yy0I zvPVWa*=d(aU4kB8m&f6T#vgk+2^Z#)Ea`7(Q?n)E#U=L2#v2*30C6pE2PVpD%J#&J zlA9Fz9FGZ?0Wl|MjhDOg1+q@btmPWC(wl-t-&6T4O8Ds!2CYFkWgvH$*t>6d_w@K@ zI(gH1;MmXGl!4U>AU1L#16~6%)ZyPX=)b{3qz)d*39Z(OD5jEf#T9|jT7wbvy_wTQMvfXt%y$;XANIIi8 zVXWC52le+<#d)&nf9K&C_j}fa)DI_gS7G#R?H0`wyoWQa{ft^9{rRT#V7??^fi2?R z`gYI*sgub&z;gF}tQ@SaG~`wr&PB0(RmL~=oLqD*Q{X0Z5zueOj4wVC64CNLB8D## z7h9F`p8WTxLwrOGn{I0K#nsF7+tJPJu3ZlAlx__oM@utDBJc6E4ZrW?^QxIo?A4~v z=sz*qhb|*CmqKLfo0>|lRSg}*WBShMW*9?C{QA#Kd%npFA0Bp{R0-=gZXyRHIbv$N zD**4_DAja`MVs}hmd983B*uKlT#m`xH6Od&9x9+_hLl6r-tqL+DA4F7l~lH)UUd}_ zw5RpXHwq3JyW%*{w-->Wi|cFo0&8CTQhc*-d5!W7$1Zn-3a}j|RcpjOcRyTVCsbkK zyIIyPNBf8$F2Y*Z)qHM6E*cc=FygO4gG|J^C-^nuK28}2^r4x;`I=pWAL(KD_ApLl z(=Edvw!mcHC0tD88pa|YaX%wmY{35|-%Y({%gHr5vwW$`_~G@!ksJNch)FBCo$y+% z6P!VWHH?mS!6EWnfwHfgS6GgyZ8+sS*@~dW^_ge4(jcK_gt54|FzCVPvlME@^-sex zQq)(bg83Y<7@KxTY)a9r7kE+9CQfX^@p!bV z(@$Yc#fr}S?WD)s+S4N^hqHf@lXGvKE^Dkdm(9=bVua@eG-u80!=sr`JAZR~gw6dh zaDPE24br6^i>N}chR-;1{W?=$c-Xx5eZF2wJ6Qoc-6$2;IS6(>z4)YbrfAxvb6foq zv`<|v$F#RSmRUn{<7_0bH0N5FtK+S&cJGV!2)OsQ z+SDq{I&+2w_z?jOIOpHIgN7KVO;Z<6PkE`4*S9yamH%vh|IuYvh1zX?^0$|+t8t;{ zUFTlljLk4q5v+Fm987T#(Gm0`)r<6Uy1yHyTKS}ZJ|8Qtvy>_H zyS%Z_zCAb#Y;O<5b#Y-WE4KWjJfBmMRa{)FI4^T~9t`O;PMeWIGkzR?#~9j0R-i|+ zKw7I|@v{5+i>>!36j8}8CauL#M2p=;x1X8sZlBF5aI$I&U${J%=h6LSqaT>l)f^n$ z>V@KTw|uLujqR`jX67HFU}y4m0~3DZfY)@S#@LAgINwWjXM~i@(t%Rh7ozCTqukve zjaT)kROKfk4pj`>Hy{YhSC?f$I%$)V8s@LfSrtIJ!i; zxnFCCd0o7NCer9O6=_h`znZNri)f<4L$Qmtt5TE*IrS*$t0ZL03blt|ky$D*#sgUe zio}~CfO*85MZ3NR^0ZPO+iO`lN)i2x_z{&kf?&Pw2;gD?ly%5j`j) z=I7FYxoVKj=c5Lz4{Z`$jns&6s%D`*J3&xldKG{1!vo!xJa3dt4(N1HRzUsh0@gALJSceiG#qr3Jt6mCT5 zPThk$Pkq!vdgBVYgJk2Ln^ru}NKjQz4lmD!qbH-lxFV%s014GZMM)g;3fb?edoHw)2uQ z6QcnTPS>5^+z;YYy4o6zk}u$dN(nuCW(&?bU-c$5-z%z_tL#D&nG#nd-1k>}VML6M zo-GG=3Da#4zt}wvW_B*T1kPwmL?sxBtUf20?w{)tuaaqZZWXg;pOq4!r|X9xjy1ka zS$ou9-eJ5!C#%>!083up&ObBk&F*`6QDV-6(Q}l*CT7Njcy$(doG?kxp8B7$5z#0SRK+2sl(9f}6tfkCpY%HjBRyWiAJAvb0b%i>UC{;9> zn(Hcxvt)a3VZF~s0qXx?6)neT=ibulh?cnDhH6?(0N5=cZKgIXqvS4f*1;svW61JJ z{MWnN_UOA=s665=Bj2CGko}@uW#3pcU1pBi-x2Z{_R;CNX~TQdpJ5A;jr%h9*3eZnaL&%7<_)P*mYvg_2<0T zu_&|9(yc%I-Dwy!NsINVo?#?1#d{7InTe~%$j8wMJZoz09T4b zHkM;#)4+*3I2O!_YU%pQFt4$hkCMxF62#{iX#!0V*dWU15GgMG59;7Iub9=I61%cc zF%Xc{oOq{9QtI#@Usu9wtW?Z)!TXw?T1$=DmCO9ID%mRZqlS4bo4hYpiImE(i4#Zr zM`sErijxp_=!%n1LWX+Vs~3L-7L3Qor!{ZXR5O9078f_E_M1Ia+zdQ zO;K(0+Er1lE7BRLgw`?MYSY;J##AvHDCvQF+YP=pS>a#0dR6d4a`ogVb_CA*+-Fnk zczMs7e&f58{Hp6Cio#>aVPN;*z`c?~`$N_(SVStiP# z)?7maWrb!xwYe6nVg5O4%Q&wR@3&ETiS8DSq5pNm1GYOP(Zc~7Qhu)ffD9G>5g`On zVaU`rxT{kne>cNLC$(l?>On^S_Ayp{j|GQVK1IJMh;#Hp+)q}h29v%@Bfw5DOD!!1TvHDu zh_po4_VJ_BT&4@z7JP`dZR9dIC*RK)$=-aV&hP$ooi$GqEwA$CZW1c-jT2?CZD3SH z^`#M96$p@%^H2IDfR=hE)vpZJ&CR8oPrPm|>~{6LzX-s~**IL+&SGPAwEet2vt-<5 zt*x+juAbTg42i+pVTY6{#IiuW`P&S2*Cf8R!%isX=zCPDd@-kxmVi%8DZR?_QTmKN zNinf+vT?2!JlKwH7_UFJj>R%CZZ0djd3omexadk1gQ}i_|J5CNp03tBrWcDN96F3_ zRxQeb$$zc@k2>-JPA~P*PIa>Y%tPYw!!IT7;gotlO&UGq9uvQ5m)5Z-SX;;bZ&+Iv z+z{T|mEymM7nUcTP=ba}R+AHUH<(+uHlt3jl0(ag;@sTg{X=^f7ly0H!8Y3zO+K_w zu%GuDS4qb*K*9YLV@V@cb;YlI?W@>B<^4qi!!{h~;bTzo@o}p$)?Q7?AqAkMR6+`? zW7R%6{rrG=R;!dEJU6PItEyC?;utwA4Vp658{r(uee6rD_^AVxag~LTkvlL-NVh@t zh`i8Gsr=3HuU6Q6@N%(Cj1`tD)}Vyu)Y32{{HU;_rQG}7W0d+()dD5?on7;{&3|hp zhV3m_Yfx1k;Y^}+(rc(JB&#g+B-}(T{TQjK)+1J9>xg5(l#PVD9{}Sbli#cK$UP3P zw}_eDul=zpjPg@8f5LUK3DAkwm7Y;xe+di>=t*%8VGDHU<1 zr80@6$ZX6ytVzf*=-#o__-)K^&d8{}eaGY%2wRXX_kMoYPRrYW&qz-AkDh#R)62lL zRkPAovc`OLkT8T2kTVcT!`}02r9B$#b8rpxX8b@&m#)5pGAqY}9k1|Ye#0C)iefkv z?+vFbG`O6adljE*5EkBK3#eHdOe=D@>WwYcDnfv0(zeK+(2h#y5eU z)zq(Tsr0V)}+f^_u! ztn9QiB+kcXW@fe1(?dAlr3J%AhSfFF#;ooARykIGL*J+U9os zB<1!2k#bYBwhOWs7U$)$+QtySEOq30h?&!xt?6FnOAcDvA-quhW^ zfPDLDBvj55v2QGhbHYNOymc=)@@)AKrMY^Ho9DJ;YT1j0hP)!ehp6?i1Z$mtfhtxR zV;cQ~9oyv@@!2><$m+{jUSsS2B`At@pE$@fGA-H*?$COj)$#{sxFspU;4&ZIR^ftU z4?yKhmSjl*ic&!w4ca_;PMI2HL*78|bEaYCEOT_WN$LZ6Xivo0wB~9}irY_YS6)sb z;LgBE^qthxzh<_JrLF%Ss*DP2g+dbuOMXLWm35xsnfL&PgyI`1hn<)J9pNSf`e4Z; z?X61;o2*G6gi84i>v8;LD*O~ZgnEQIG|>V)Fh1hBg$xC)7|KXVNv}7D9Kc+sq^PMT z2rb(I2cD424K?2P+YYh47n90#E@Q=x8-9E}-!9!*vTF`2V>2?Sy)q*;yddZdqg$i} zDSD5b4^8K70!e)azPOw#(u}I-U13dkd34Z>_==;$26(Rbut6b0(W5~jkLBR>0}gwg ze@!d{HMrb->s67rt{z z4C6UM7M5~z_trF$MAL<(X@6o)<2luQJy^K}W2RyXWDg-e0_WM6p`a@nM#MzBcxA8k z+#n|gL$H1n__!H%ZhWQi-$XH!G0*nDq&3IUJ}L1YRAp@>BcW5 z`3Y+kRDAtI7SEqI7V89=7*?IpXAsQO z)u@ouh87Og+8P!A>h^HrV;vW-zAKpxLqcmkNr*VYr}j>xKSHr*R9M>1+oaPi^WYb~HX%i$a#8eI;+TuWIV)X{e~Hi{-2- z=ykMBw&ho}vc@jC9j07FB20~=T-A)v)YeST)CPX_4wf)&qmh4$=nzK;IQNPY3V&%p zg3SIti(yN4m-@KZpu23Y$05e?y7uYGltVR!#LM|q(SD%Po`RwJ$fcIM)AScARQ~J= zRz|NG8Bms=D1x>R+Ee~u8LP83sSqz#8minApXwi#IzcnkmE4!3nm}AGIPIV(Vmktc z%xnpnNq-$Ln!^+Bl&q}J9mC(;gZAzlh~G%Y1hk8(z7-gr!yJKm{Hwrb)lXKwUH8c@5S8qnYUVHHhlA$H$=|mnQNB zrEW9b`>V)wy@chXt8xr1w$!PNbv`RKP-b>*H~w;&@{#zb#x2p?U1KBB9e3)K>bqa< z)MMA@z%GbY-I}YDl~s^(K7}|f^|ZwRvAi3FprO-Ae0%L8DTz)wt^cU~<~wdmwe9NZ z@?SkytU~0BkRg*+r?GA6xous$90?d!zb9&671)MTGjm!N5Yb$lO@$ zWpH=2F3%;3ln?_hyWn=Y#`TbblA8=3oBMCoAOGdZ1GKib=@R>;OfJGhcHuN#W9e~} zsF5TRMMVPaWSnGuc8F(x2dW^<=%ke_g0WX)Y)0H{9(?c9P*UCyD^i-KruI=(;m(0e zhfZt{0c%%^v6-pHL&zg$FC47NTHQ-+x1u$>xaR5?a)4+*qf>$oe7NCspjkXN-cWWY z1E)#)iaqstl38HnonooaTdBe-bpzf`vNs6{0X7;YngyIuwJ@@99ScZ!+Sxb-1zK<2 z&;6Rx4hgx3+naJsUUKtaSB74$n${PCxukZ*Po7&g{e8yUF-FPp0p1S zw?9GQ2kV&*EYwv_flNN5SWY_0g0kScKK`Wue~=A52zd9si63uI8sFTpA@4)RJ=c51 zMV?&vNha+GFODmZV5=o0W8e-OvW7^6rFl_t@xYGL-BSihCNG)LOA#O|N&H)%U11q|4+ixrVOMPxNNw__@DeoLqPQ?OzMzo2}yk%FI=DaQiph~x|aiJGt!1S;<9y={Ob07#W6Cw6PxmS=#<|<#$iMG0%LiQ@5A&NNh0n)a_+<0>)5$~ zovEv>i;Js`$%_jFL?8drbN3Bj#B%OZFgV$iv5}!HvHv1@2bf8uSH_0`7(nq2JnoTx zl@nP=SKgOi2AKBP?SKkianvQ>fWwvm-hPkC=6SP-#8=5R#L(@Om$L1CV{$s^T> zza|e9X6^}WJTk)i@?Ut-f{NU<^m)viH9gghjvupfnMBz)slM`^^-Unl&U}N;ib~ba zTl3kkr+NSsv>mS1ww|+d&$*D-zPrhx`~Don^d~|oIhCLFfdF|~{R!DV=5r%n_cr)FC8K1Kf8&ms(2JTFwHq0AKn*w+anQW5RLaZ{UZGk^WVY}3&SRxa4I^`h zBWp{sY0|@cIs6rRs!Zx;sAB2lWpn?McAy}QMOKKq$JPYF-cQ=V0oT74_CMM3AY!iK zu>QKBo4j%DoI=1Z-mmhQ2w_#vA?`8~dU>6yY;xd79hy0<5OA-mO=OX!-{Kj8MMy@U z3KtFV@Ikd2-l}9n!Ch8YVnZOb@TI%>f^6ldn; zFfu14wcmJdo_}$oA#p(^>AzeZ8U;i4gNPwz9TJ6vr{ zQX45li0NtzGY)>xYY!Se^%8O9d#1DFfSnx}CzB}iTsoE)a_^e&ki1i4cm6Q z>xGIM8GIS+ZI_1=6)L-Y_MXwxi!#6kU{Qe|RjdzNgrvxXWM&}X-HQT6MbqN=G4)iD zgC;bsCmQ|J1fkyWb*6Q~+lzyNgh_3%V`{xO46KhUZjBhj@8-eGZOeIH4zOe4FqEu5?$B1Zt-AX`x_iY^&V8}Q2$(i~Ohuuy z>$fp(0a&F`1_{&Pu{H|0pNQRzH?5rOUy(hv+q~{GxJ!DEDIgv*;3Lbk-}t6tVPFn4 zNdQBRA24!}ZI3FG5ipeEZe&|fei?hL${8rcAL459C4zV-OeTiU(ivJL%)%cQGkp48 zfqM@NOZpRAPnlN$-{s*7#G19pt9U8Z&*p{U-+m@e%Iw~=f?F#M^=}a~*S_{E#v7Me z1hv??RW$U~x*FQr11I6JB{ClJRoza#EfW0(|51^i$dhCIcK?U0DPYBr#QT1)a2r`m zhXsw7{F7~BO^%__q4E7#5!~Vv&&|p34OYAK&V3isT=D8iXw)vQUw^zMQ&wrq-PWd(jY5*8NQ1nIr?apbef|DJj8 zw5_Y5tg8zE=q|5msjtr|!3RME49|{_&kpwrshI+#Ht!l54qeD?(iu|^4zaM0kCMYR z1O82E_OuQ%jzHmOr9<<*C+t-eCYw>p=+bdtBHo?iIuUW{#1kq{v&i^FE9DV)*d1I9 zS3K5e=^;=1huTEFbed}~Xy^nu1qi&qeBL3X;n~F<1;3DGLRd50cz1+9yEq5l8=pG= zz=X-p*d5I=2S(ePSKQkhqtu+AwcEPCtku+5g#~SH3cC)uZP$SZA= zZf0@FCZS!LHXQHN1btQH zk26Og=ZgFzG%+u`psS z^fL#}4KNc;1VJ~bB1$=MQlHZ$ZwBa-WEbX>D@8t=#@m|(~wFpdOMGXC$66Aow)W+*nO zm#(HXX6P~0qy`&~nlHA(kNUkYN5q#I4DZqDfTM8{{jK<~O+$5e+DHR1A#o%7d#*wS zRE9uGYOM-nb9H8Gp!Ge;v01;uO%SME?KT>5b!E;VBo97@o4a>%N*Xsf^`N6P;TOM> zzJ)y8PX{{<*RX%aEfa7&fbl*ZWqY1yAPYX8pD}hs-wudO$ov<7&~TIO6R!w!?W}@B zMLWT5-+X4PBy!2CbwMRF8?f*TRxTi-WCrCYx#aRhfpJOHjNd_|R+*D_^l2cXoO%o+ zuX4NjP`9{E6rf#@);D5!8##AvAqbv*+ecqfN>~>aP!`LY(F&7K$sl5?gl06^BlgF- zO|=sOjtEuH=b(h%ApNu#OibtMxh5(u-SqJpo$jw*u5G7f)iLWKVhAr5)OyFV?^Mj6 zZ=eB5R)@2WeTBgC7?!!OqLhYd#ld}M&o`+_$>a*l{KW?V3!dcS@w(37k*>uH==Xln z$-35NH-YWOLC?MNej27G;4Q^2EvH$%HM=P?tzn}jBcrN+nxOS!sL$8xZZy^A)gr)V z$#Nwlx5;7Z6me`REp3IBg0Up^P<70G#z@CY%}s7JDi248g$*_>4&2ulDR5^IaYy5_ zYu)|V3}#y`FrmB@q~@isylQnFy0c1EQ$50L)Sg}Tt1D)@9?%ckj@|ohWM*cxKL`AY z@TBeozFH3R?z}kZE!pmWF=$jXl7q~^d9JZwjA(uopQ9U@0W0%@VA0#QGr}#Lo6V12 zv`Ug=qbN~NfUIJjag`f;n2C5F3+fZ@7oQVG z4wm&jLakXuMQZ4y?e1e0nrvEt$I3$_zjP$abVHX|sdjzDUSRKN zgUv#B^Ljl5&+7$(G7b9^>%SHWaxl?zB5r1Gjx&t}wgWG7cOU7Q&r1zH0q#ClI1FO_ ztSG*r10bX3?a<5X{Y$e!YeC4}5f7h2@b7N~ADE%nTaxMh87F+tNjC=uXXbhLVD7B0 zC{_%omy73{zNyTxu-m(oB=^mJ7BE0kaM182k!&(D4fjE=nYhA<=X0_l^-Ud^ALzKK$UmHfk~VAWW_C^tbvDYv$U z2{bQRT6{0{)u?481UjBX3%$4;6It3vjAoV93Mc5Iuc95C?A|YXpM!#}bCj)Vl}YlN zv?DZ1&Qxb8_|Tv)mnChPu+qFduieONk?nRtXc?WyoT`T$mBF$ik0QTWt^sl)L0fTc z_pHqDXOCd;619Ph6}U7I%VO!_wL`1RY)NWQ`}?h&6*eLQLZkoNXA0KVvhl_F;!1Z! z_Mf9;m?N(+TAzbG6$&q(j+b-Z;dT5^xGXJV?U>Ih0??7x`o=3{h-#Qz+$Ul+{)vHG z(0bBRc2x&ELzt}>aN}$H-VXP(3)d}MT6nQcJU0)UWP(46LpQWbK}_2a8RYDbI+@EHc4b;9 z+u2&@PJWvyCe5oL7Q!rBtPidr=lOUB@fyj)-COcDk&rU*UtIxI!j>ihA_0@7dawz} zP}6+f*L{C#|6N}Z&%JXctV+|_Y(?|*lBH~hq#=C76}oe^LJ;wk{-*JxwtxP#V6VY< zUO59i<#lrs<3}+|6nYDpQau)FT21ChZ-$TPCfx0|gTJddm#;=ATv&9*04fKcj>;}F zGA@by^?#LC7Y=HhiN^Y)p^qM->29kD5~+FDjmL#MSx}x?QH{KX)1eJxnL$EUMu5C} zQqaf>ubDUYZkksV93OCl587K7ce~w@6aU(5I%DtVmivs&c_{BkYn+utbQ2ypEoq6|G<68}hb10b7=(CcWkCuWDeK&V^hI3@_ z|Mh+3!Xbu#ud{q=nYdg1_|%H`t(|z-w+|04{rSOFYZr|;^7QBbH+bRt_xJp@ULkRS z0=KWWc&^&s1eI5ZRMKVcdoQe1hxmwXv)}ZoRQQbq-Syvbn83gq& zTy*ytHHhqYI`XL?iUf4+^+ID{z9td~=Q+|B1aAkLA?mqz7bq|PaiRS(T8@LCZ23JXV)x}JVL_NwW8 z!LPfK>usi|RMz10)g zor4tM%mg$6(Cce7G&gV7ncF?a5!?ToyvhI3?&#*Y6*7+H z$rU->&+&9(Rfy$_Pao!{425RmfzV=%g57zvfcRaurqrBV6IxviXil;XS#-9-ZKA)h z+UTe)w==NOn-}Y0yhGWclDrXKyA{FGgGwEQpIh{7QE2U=DT4Oq@ zkjAyEYA}!$be9_p<-R*zo_#Ba&KWcJWg5>7t=#8v-N|rYfVlT_+*jeLCZZ1Gp3TE~ zQZ>&_97dkf8RRX@nxa+-Q%b=I@CciG*rwB7h<#u_a=?*9Le3x_@XYi?>K*heSV#5+ zx@U0q&F%~z<9_VJ81_L+Y9-{;!>@RbGvA9|CLqqK;RCVCT_xe2fhD}-=L+oouwd6N z@h|lCebXKL!Zfn-_M4^lGs0(S_<-{LSLp$1L~%A!ZgY!)lJ*IO3!}VIwqWN@NPK1= zePZ9oJf0i&<1nlf@{o6|j9Vn}jzwXRv~ON zhpmmSr#x?T7L3n#@*;G@FcC;5lA6(aNM51@x+QkYwu36bEWQTAm$UYiI#e^s+aTmE zco*8w*G4k70q=_O&^}7Sb%ZxBTt|5G<4mPaA^7MixcNf37Sf67+u-I=hO6=%s@W79 z_t1UtF6WT8|I$n}&)4pMX-IRK+=u0SoWKPma2L{aGOkUcX;fHz8~zi2*}= z7;MvQ*ne0)$F|`|T&~{5dW)Zbl;n1}5q?Nt$NRha{oV3?C)@%*qHp8(%M4A)t}Gt=Htz9Ag>}0 ziKOnFF5+47ivGhNmJ&@Q&ioZRr9{ywsb;*uWC`TcwGj)-IIu`Z(q)pmQ3az*>+T9aC6e0s)MYrZr(BCr-3~1DiqI%HU2o%5}#p7;gB< zV=S@zO=sq<6JgmLwl4~X^`Mo* z_D8J+tOvCmb|7x$I!Jq7OFA)dy>5 z^udNmeNZ2*4+fsF97w6CC}e6fZ4mE#quk*vEps@^C4G<(Y`>N3gXrz1D1!A$pols; zOC{7ttAtNu%Z2!a<@hApTJCU^l{y{e(_e1mQysE^hP=PHF8Cq^~t4UcE(R1ugFdFdbb}m6j*aBWPW-KeuQm1G*|OA zceTP#laZe`;Qj0Q{p%HeYC?Y6iuX_O`zI8BnoM57@`-E>NDMX1Noz?LGEM!wOtWO% z4(IZ%c@-6Tsb0^HgEG%Fkyr6KiR=uE)MsU7)srrzw^3a2kpT8~+=0E#qpg+LUH6VF z;tH~JD+!VK;&%7|eu(&=V)*0d&n3Qy_y5T6^Y~Ht$^B}1c?aGxZHz|Cv9rO(fx9Z>2@ zW5M$@6C&3Ifkh;PfzO}3{dTM@7Q)ZqXYzTdtLZm{3X(<%N?A`^4$Nwzk3R z7q6{s&~DupKX&Wt)whntZ`-P^uUy+4FE*dJBo!V@y`-0)Gex}W=#Bq2ygU+KaKB}* zX{u$SbxU2{mez^ZNz-0y`4@{ko}!b!rm7a*&PxqTceS?eT57m-r>>>Cu_8(Q-Kr%? zke0NB@o7P!mxJVy66O<@Z7~TN6=uS7V}ihhI32@JLpcNB`6`J9X9RN`9PE@%T9{Lk zO=-z#?9>rQmoE)(czy7dmto`|h_~P|rlPjPele;#swYct7&5Q2=2+~j3fc$yPp`JD zvZUu`ukzFuOfE=Yw?Ai_IY+f=hkIFdnh=}Z8uq>5h={i%k{D(VVIR8)sGRdW#9q+aCT$gmy zk`3iItr$8zY1}aeFt)=ud3tEYP30TfCYvTL)8g*|AYpw!+PYx<&ZPtTlob8I z(w+6e+O>VPmC~P;wFE+Uhx`;!2eOk}gDKhkG&<2Hf&d9X1(iI{94ym>W>lVLjQ6U6 zkbWg$>Ixd3SvI1fZ_oHn+w#cYZH%^8!lVz38q(?+&Q_b@__{dD#PwkM^l>LYNI>7-kd$+4i+nx zXAL~D$G&oNQsRzOHok;VJSs?%nXgRP^rHc)2A(RICBoFMAzEz@JNezKQi4oNKXHa^ zoQgQjW@najK(qMtbI;v9I!cpi&6kh#^)FxEPZu1K-@o5S-ee(8wohZ@Z#fO2IhHJZ z*J*%IC6hV94?4u7V&WI*&Pq>WObUF-^Stx?f$-b7@aD3EO%tnc>g&5{^+eC%;>pIr zvLf*g_Bw_s@l|(`dh7Q1(OcH6zGWWx(W9smoC4mO_)AKzaS3h zH!W^BRFW6GVe!hV+SHBkqyGM+3|C>^{xbh~Q&Qr!{i!*QJezr+-B~%_l$Ju|G5-^e zc`D0I#KJYk=>>t!$w@6RHb_A}MU5p=m9aLkJ&9DOAf-#^!Cp~9^QFT_?|$t)^PQuk zcUs>4+TZSlV(}-^H3~)IPuVr9%(G`n4p|ypl7iGr1&xk&Al2ePt;kL_ecl_dfP|1zUrX;vwX!`5~{;W4VaB@#?S?%(c zKK-Bm{O3QT=lzxe|G@5}#fMzgRrpQD@q0)Y3)_`r`!Re^NgpRbMjY-dsWp^mO9u)p zP#plS37&VHQ!6FU%~uvhJTk<2VH(+&!-2MO)MKe({tnK1bu4a-i_jypk;D@g4hIKOWeOf{0c1D zbk9WGwrxb7AHo#U!Njr)X>nes0b7@Gpv7%f4bf^gNF0n3;0&UtQ{X#V@}UGa%ag-V zg4rm6#2p}+GYEe9AlZj^1@*)P`Z3EU(V5Ze-bz5CdyTxoW@-91)(~=Tdmz``W zW4CcOgmVG1%Z^;zr&6*@x2y+Pf585!4cFhzNB|`pZnPZ`AMWUAJ9-pe(5I&8`B6oUq7 zmtjP#5Es;6y?iHx9UJjznWHI9%UCeAth?>LM^FFnSGqevJOop@6ThN+=v0QiKcQo* zdHS^@P5%BW=*QI)!FNoIN((@vP6CyN%5n=Lqev^Wxecc3a&j)CpUq_|X0jQ~;x7-~ z!kJ6Y0Ou?Zk7gbJEHak%CDu_E2Muw!liLdoWT~{PX`XSgP=UPB($B)x^{V;FH39Fc z1-d~gCcz@o{~IjaC~uTfw>cZ===2@G`3)WYEsn&%4FdzBhxfl&e!ufvWsIS*O!vsl zc)Tql3| z*3qL9{Z(J*>k@aywV>4*(|8J9185WCIWw7@VJ0|TW^)q@;XFTrpYX+{mNC9#E!i|-m#xqQ0xMR6uf@ssi&Sgi`S>c z4<7l&b7vvYAHa2lA8<_k7F0*96ajkNz%4=;%>xOE@LVL7=5MCwBvG>_{jlye6T$$KMU zgd+zAuDD|00RM#5mk%F2ID9$(7m?UVSyyRr-|OM8gd$G&B2GrcPD?C76GMaw z2pV2D_+n-xd4haS31>$4DyKx%9Dk7Iu?pQB>Ye*aF|70}ZY(HPNUi zRltd?;tWr~uk3VKE*91v!?N`F`HS)>-m^tRjkGB3im!^DC!B%n8-FPNrRHEw*A0z7 zgazyieC~>UTet4x9}>=!i1Pr^;5cgdIHs#B-R?@7g}v((ABQ`RoV$GQz5`KZ1y)wA zPIp(jX%?32WYmD?_U*m=+>vvLAEzn7^4DScI3__!JP+yH9yP~|ILE?IX4|9u>3;D$ zoW{Sq;sJ*3^gH|hi8dt+L2C0m*rrPvw`6Sefh!(}Z1)B}C-JmC>OwOMihxFnrOh?5 zUah<@qNGmMOTGij8skrsmYMhy{`yOlcu1 zmYa1a0iq_blf>!t`na7qBMchtPC~g}I7NhbP@^SgBhhON`Vpcd8m&$B4SOaItY%&aY!28mtqaT!7=^w?t_o+SWr4*;$7o-ZYhDOk zYB8lG<-1mno3o_fAFvyF%8garITFX}AJhZiKqM#GKDs2?nwbv3jE_p!1sKz)DF}cR z%Zs8Ib4ME?GlhBZTtVH(T~L(%qYDb(k9YkuJ^jbr?(p@xi}Q80?EgfL6AH6b`s8G; z(!1I5T%59p#e3nUU0>LXMXSjPnnO#7hIqOEfCXmk{5+4vWl9zc*^R(0XR`SG{{4H- zUH-%g@QTmFS#h;w6E%}QT1N*-2Fa0fwr4Oo#9=pO;sQ3r=>%r$O$W5{!iCF?j zB!AVO=c>aOL<;}nf?wAyZP?UM(OuNl(B81A-fZe9dOzo}3}>CoWBIQPEFty5My?f( z&~iBrL3^;ZG&?g+rB|!)OY$2Qe#mdd0kP@Gfs=vc@P$ecLRew9|Q$>G{e`|>? zXk}U#94Ck;e+w{yn$T|k*4D7MHcvqA?59W0iqD{k{_zp|*XcyrPY~O=7TbwuvZorG zF~qTiU;>btb7C8$4TqudK|z6ZOKHN;lFE9lMim915;=crx#GF8&w*GyqkyL}Yd1_wTy@ z%J+}|mA?M*Fub}~Tu)yMg_QV_RQ+8!p7p!*IDL)B=)$<4Mxa6lwvSqvbUsQ+f}m0Z zJ151bZup!R&f7Wh+B|NZW=;?drjaQov{~o7zV>X_r^Y+>w=UY%y0c;D=H7+rZOae0 zwEC+THwWlzKm4DqcPy*fxOma}swH&i-t@y6(^uCQm((pRD_ckid$<|TKJ?LV%5q{J zsU$bb*)R;iPI>9nFhw+|dTVqWiAp6&=Y!mmFO0@(CGp%G^hKBE$`-FeSPgyFO?76vic%Zwmu)DkyfsXL4rm5lKDR#j=bhf{_DiElu_WP^FiIU-(n&A=# z>0>t-fM^-bR6m$SvqsWM9+l`;wgA+L0C7kO6fxr=&Y+2lq+DtO`r;Ub(PVv+RwYxf zI%b_{`pK2Gtg;}}(2ocA{9!sabvAV@Y4JDugS9p1p=sJDqG_a7<%%d}`y{l6QiQS+ z;=N(u?fAil;9|(nugGCghJyg&x=FThg-Bsqj?si-RwHr608ZHBY@b{9@6dUwmJd zS<0k3{G`WxjD_om{B5drG6Rp-M-y+pYEt|qf@CHfr4hS1e1u+%JCQ@5i2hqj=B{af8@%UZjfIaw7#*)qNVxgQCb=J|7ya85l; z5)dzgij7HffRmI@q;#0Xd2|n66vQu2>^XC0&jhqiFdFmuIE;0xV$Vk{j?J9;2nEW7 zl>0YM6R8*LH!gk5!xCV~bBpkds4R3e;~H79rrlaL?RvN~bFxZ1&%|rt6OTyqs2}H% zFZMjrM$eQK)f#QjKll939XoeGJ1i2vikk{8_ul(? z0%Rj;g}33m(dR9=VJF$X5sr!n;Je}hLL zwIVp~=kVaHHgFyQkTw8piIb61O-2DCMd9Z^XRYz_HKYPw#qvsfsqW+&co6jXNURjm zo|-s=HWffS1@7My;Xfw`0;*`qf`l%vd(4M+B;;0vZfHLDgVg zWUaV4wID8zjLMZ_)<;W&sk)kw>gMW24RzSz07|Y7+*B>cpZB(A0eyc(&$TLvbMW5(9DUXKHV z>aN(@xa5#A{_?cKK5L!8xAy%7kOJfzOI6ycK?8PcWIq> zRZ|C5xh(1K9CLvw%Op8@Fb(Bba2m08{ z#X1`V2pd8e+r$B(d*qAwdhsN&P~WL?5;9c$*uPinM*|DDEP+)A_a1~vC>gA-87%qu zN&5V>m#>d>jKTCi%Fd;vp6$##L7)pOTxJyCKrrxt65(WVvfId@(B&#|d-?XSMjIV+ z%*&q7EfkS?(2UtMU6o;!k8UyY!k_FpMS-c-y31X~&e7t6(yE1Zoq=G%(Y z$V^PkS-ddAlAw)qWMo?wXyTmdl273@eT)7#(mID!lL>C$8OaB=sJbx}# z5f*`vs5R{PmnIIh0y@v=`I}%w&w~r;@GJD%Y)rnlRokj6(7KW9Ny`&UnAEwkukaq`Lo_g$-2ogE*)Yvt;*V?9?cZ9CH2i&+N`_mqwX0;6>cmuD@~P#gfET0nAW2_A9PPsM`{d9;qXO>i5PVa5-! zw1iQ^Ur`b$4RC)ex62tpkp!6{3KLRz%WTe*!na@f<~3WL+H!f*8ve*>F~;fA6+w}& zxLwO8+fMkki zE-q%DMVeUKrPf*d;@LlnXL(MUf54Y1vyD61o{7_#L4gepV;%yq zWF0^$jD)lF0PQ72vLoer)hK&rFjY37ynSYzt`vnI?FfP|qdz}&Vv)c8n$0Sk%@wp2 zEjv)zm!53$8gkUP+k*@LzG+i){n!_l8I4|dp(k({uDY_?WLenoi0rFQ%lJMn=3*9@ zJ|_8#QOdXUm#MoV_Vbl2Hp$NCpL*)Hr=PwJMi0IC;-TqZk;t}E$&*s{DaXu4-3IQX zr)<+fFQe}=)GMU@9otOF*)AeIGv(4Rvc(HF#{E}QV!4ma-W}(Cg-fxUxHpd7h0$jZ zzwp9g{vpYW(?S4wqlFZa&R}~%4!#{0fB+FrScIrGM9nNi1OyG6J}MO*K`d0GT2N6{ zFHap-WG(Wzuo-iT*Xhw~vSx*WW%)GI(;{{`Qp@qkt-J-IL68p?Ke2J+6B{=@F*SWm zqt89m)_%0O+JDc=cQuBR{msn>O5-%bnzL)x-o0kc-D`EK|IsIw`|JG;?XXGn^+bJ1 zWuP=Z{;L|o`F%frVEiJofLlcK$njuY8i2+GdL5NhI=b1rj^&`4B08cMbb4g+S}ppN zQi}7J2kf@9HIo-rP7RdWI(caxygXc1-uJ?Hfk(2XG8Zl8-p09AJgTx}HmBk_-~idD z4@gAxEPr?~viW9Yth99F{Nk`lMOxY+#w^oftczWk1ol8$`o6PnO; z^?*2p{ACDM7kb=9MQ%@__^mZOZv3UftAZXhnzso*LreJ?T7_0O(r0lRIY|lekzbxm z!v2P%lKF@>9yEF_+u|c}D5RsO7W1oC8&rZES9|6UDrd%&C|ojMRgf#HP|{ba+)A~e zKdJ^{MOif!K7_KuydM9qRK#^)cez-yHeWe4nhRvG4Ijkw3S#$E-7PjenGy&%sgB)E8Kp7Jq4qr$Kzcnw06v$uha} zkLH*wiwz4G7Ic*Px*XLDn|j+D3R|;#U8Rnt)m3nlIV~|OBLz=1WQvE(m!!Ci77xy| ze7J@Dfxb&}JI}e#U35RZMt^!SXPTLp#xB?? z-avmU*$0Q|8n}wSgLO^3ZloPVsf3X|hVQ>>AARRkm&x#YGV4Nca>d6?&y;4tPQby}fu_lJz@X5>wLOm$OmP9+r2i4%1RO>Igsqw*LTc zKcBasBU|7iH|7Z2m&1nnJDjx)()_KIE$am=g%u0vLQn8!*#j8vKc;Iaxd5#I-Qr>R z{&NzsfaHg)y=xz4hzq)88ai%%c;bgY<14^R%4T z^h$P=5pG8rWjO^{l#jV_Pi4t4(s8If;=70&wb|KTZ}!7@W#e}`fxo?x7e6;BTJiaN zguTR}UC;ARPvY&na28W|>@N9?uvm&^u8$})6{Cz9%bXC#l`>oBmLVV>!ZNu+0`vFc zJ)J+6NsQi!Utli=yy!%!+l7v2?o#Qw6x36)%M9vGb> zkrxebca7Yi$yxn@i2m%wGWTD^{0b31zj(V>V4drQ6WHz)Z+FAoc4s|%YMy6P(T`5T#S6upd98mQWjg4cjV`WpqWl1|BS6 z&QuNy>cCq2*`;Zt^tEp@dKeI=&mm41?`t8j^Lswy&xeL~9=-M`UDMHl2$7g=sd-!2 z3~PaJx1~#^InLV>E<<{5QfPjyM9*u(V`-s7q3e0h>09MA9^=5l0KmS^$UtbEQh`J3684bz@bkI=-|`h|7D3$OTDdZ2iR zobrz`!x=`)uG(;tKN*LIgd4d&ikTS`ctT2+C$WA06NyPlOef8CxmXNVK{@O!9YoYb z;PCb2C6yJ3hRHnC`8630L1%SHXv8hA{f>eOqj?%#8M>LiM@-}<$tTHlA)h44dh1Xe zlXy|`uX-=Vc3-0Nx-Wg4XG%(sOV5IC+E9^|mxX_%nfV`dWqL|{yw$v@J3SSDn;N^= z{L7@PLZ^glaQnV$7CGXfHAcd$=*er;byeNMg?V?(P`|LGSI8*aNnG z4Ec{!C?fIUcVj%K$J{tA>CP}IXm}a2gU`Rp^?GyDiv}F@={$?gZZ>(Buao%bSKgmCYfxvM?m#Y@GkgjwKA2Ac8L44Pp;%qaeq`GZw zc5{xSxkqD8GuyHK!BA$Xh3H5sspswcSRO6b8_69_k$R)u(YS`^aE0GDD#;~{#Y|_1 z-K8FWwmdo0X0Ir7Wc4Q&7W6E7(-604fz7(HMqOktt|SDer$d?IA4wib2~&0fkCl+9 zQ46F!*4U+x6DvJ@!lnL z2wvs)tjfJ{x(43k_sq(@M?;x#JJI32(ir8klzWHi1pJb|jrS6id(Yv$LqY=HOIGeF zda5>6xpxENSI+NcD)$s!SnE>mEkj(INgm!SQ|>)Rd*FVd3GZbq_cqg&@JIR{-m``8 zp+5EZ&_UrSXtfD=YsG(TcD=ss#v348w#ltQ29_bJ&6?m>FRwgpUxG6a_nk zuw3D8ge8YzFjMcN&Wv7?pIr}m#m7(_dKhk*@7xm) zM~XZM%RMIcz%2?7dYAS@@E|baUD#72UJZW8>JndPZA|Ns4}D9ZF=L!E{&RL}`oSrI ze*7iGu^wr;k<;?hxj2fu=(#sb@+nuSm&IO5+CqOF@fp2a<{v@)aCVY zeqN66xOb6nB$NCLzu%HcQUP;{iF&s=#Y>uMs!Ltg%#@VG3~SMwb>$`fwmhpZD?KZ& zIh{~$57|TCl=9SEq>RFCgt_4$=tTp zk!=&!GPV_NTd@*Eww=t|mW>41@UFo@`s1BDtE*@9e{4H}1f@n75a80uIySC0o~2|S z@rA`4RU{aedt;9DvQE8PVDnU1tzOqf@lb1eR#tjd6CYDar=!0mCNM~Qaf}61Y?rh8}5E~u@ft1!Dyd}c;%V^UIFoGGmaDGZV>N}rj%-;F(1*kV`(ex{#~$5A>M z^3jh;67#6jNjj-EmQL#8$MR;YqZ+OFEqCgIbYqsIEWg~FL-(g-CM3m|W)!%r#qnIn zX+%D_f&Pi}4mrZ@0?sq|p38ZiR*F~x67@T5KG}y>QseurS=Hn*f}ZE`kV!cUbJI;(c;95T(t&i)k-^KeAS*D zfz{6JZ0BkiSxkre7u&sF`{I5HrxLVVp&UlcWs8}JDQYe@`11Er>4OoJmH^Xq4+a2O7Zbu6WYaXF17Ob3jmbDj&Nq} zK8o#S#J0qYJQ=pd$aWaXQt1@^Ba0W~06TJW9INR){nGGqdFKuCx6n!$oL838%d*rP zaH)75430Bh@H+5?mcp3})%o~3`ajb_IK%2pKNR{_C`9)}zf<*+T(xdOTrf`eOm}np zd`oDNK;~^9h+CWNuPOIAsuSnwp3*zJ(mUn#-%YpC-rRiH25U#@Tc2%nyOwtG*t**wpByD> z#v8-9({Qpn1!XOwoXk`8w zm;VQ7t2(jh^0zi$9tue^l`u&h+Rcg`_>^P^KE>_8G0IHNTV}6ZMx)(^c=HmM%laL{ zPYK(VHnv2!!DL6WT&Th_8)aO6K-NlS)<%>GeHc+@a-K5Z6Z(`g+sJ3hpj2isvdrg% z-K>m)&!?p_pXOy09au!@k=Xh%hg}&P#&yf1(RwbzPN_5qI~Gfi$Nv8SVaH>^u-^=J zRV*0x_f3Rd9osgbNoXADwCqZ?NgJ8lELD(x=ZGn*({+w#^=N?|GN- zbF%LdLa!E%5(lir8-jK*-OBD072aRZ?vt;}_ebU27Td_LNsjc4xq(h4fzOEUV!u9p z`csdwdrLy6$qU3XZ+VSW{)HQF+;kQB{{jEkU;F?70RR912QxGNG+pOt}uZP}mh z|AuV+KoJzcJ_7)e{03=w0nOP3Y#g~4$MK)-DPyi_uPL{IO_`aQasPMa_L!NOnVFfH znVFfnc+AW<|F5mdYL#?Xdy*QRq>rA*_B?yu#8oG;(^V-+rY&IqiGQsP(GbA?t+f46 zsa)JJrR!X)w3{qLI}=0yLhikIJvvAw!NIKOl**|)Dw#7*#>Z@C3VGhpNa9p8CH@NU z<0AY{pD+i^i(erQ^K*zzlfJdKef(X`w=;#8!wxs#Ljw($?{ey-v7QfHEn z>lQ7}x}Krbe?hd1QuYI-J%4Ri(9Y)|wX0&fYJ!jXxJH`k`jU4$MY*_Q<`klH4#oM| zFE|Ist5tROIXQbp{6j%5Rz(f`%=vQ`)@hA)wIdp(NuEEmbvEanoUhb+v$baCJ(qoy zGHaMeEwUrPIU`on!N=-sJI-DrI*YUNB;eZdj6-}}w`g{VNX}GW4YmixKj-4#)A|(M zT9Yf%ltS2R)xCyoRbCt1TEO1MK4z;^PIst_JvE70qF0G~)4x7-i@)*A;i_*R;5wJ5 zal58KAjU5Sv`tS9gpb2b&-hn-f>XG5#2<*`z?}FoVh=yZZW8WM(*M2bA77r$p1~St zkl)86$(_lcw66e>JjD1zGdW%xm1qjs8{k^=Y{cr^Ct24gtJ8l$R7vFLB+<#-tSN~K z5aZ92>%p`?v@KLz#gu7+k9pn6y))Iq+^+iOK{W|6BmO5u*qb%6AP?riSY8{)zqxB= zsQ;ff-4YH#beL@`fuXO!a^RHm-(P|%b2^SKj`Fz+)J`&Hi;STs}K=? z=!SC*_LNg}N!IlXD*Z2Tj}Q-JKL~wC5VK%>5`mOTs)T=UiFq|wlo#itAP?lgSYF4( zf4NW9vO2r1tX&xYT#&IUtAR6J8{ADA>(w#TevCS{KZK=t5&*42PH4m$A70yt% zq}|6n9KV-6hQ?X*`el!0pEZAmqGo`-Gq>o>5Rv?xmhxWmD7eOt=Wu6!QRABI^%_@@ ziK?j1T%dO5dbM^PRo|}GeET`(CeoVkMyr{2K1=vJw@Yp!nW70eriKgb0$H>t^I^!365&8MAm zztg6sUNl~juN}4O6`9$QFHb)J-R?mqQl6|H?EtZBIY*q_hoY#Jg}3_uLrT)9f7D8&bcm z;(t6hR~_kdc0YBtkFbyD0edEv;yUWLn7${;_X5``_BRK!)YR}i;Tx-8e2Kj=e$5@t z_#Wy=`%8O_y13iYs~GfBG2@tO-(}HJ6ZQ$;;YzG?cE}xuPfXdBK1R0FH=XpK{Ivq z^*S@bb0)P4!rGR#sEKW;=60SUyD9IcpUQpBsc~ob9DRo}_AqnqjxV)$(0`PM+a9ca zzuJd2P5i69Mk6u~VeZy4;eGLJQ8CZAKXrIkBWRC|25O{TsL|}Nf!mikO~AfGoh>?Mz*DL1~C^9f+OP*RwNuk25vE^wJ=+6>d`#`wIDw ziC5rFGfrd7epsTNs`_-JD$JIe%KV1rXbnI!vy0MbX7(lS$NlGP6iUnyT8a{L81uZJ zB=?!*-@T7jeda9YCu3o+KLlMuO!jYws0<}$W0j%A+^N3$glCwcUMMx&sTWF36QwfG z*OH&rmKu~ZXLE8Ek!v_PM<|oi?4Z`@z&@od{GQO3_DPTw{;tFC>U?BQN%&p-9n^M! zI+#`Q<@S1Ya4!7aXM$Zto(u3DeJ3mJj#h`dR}r`1x<37Hs9P9+mvj1%dPOT}uZ(~2 zwYT%wJ9W47H7c=_v%F4E-@dwhqzF~vac~LYDE3s;T_zh zrnaG4x+0~#sFfmfnL3AeaVG{U9lXoD+0+MaIrAP>+UJNK;CZ&B_AS-TbW{(2PqNMe zpM!XlU0}KsU)2NZru(3Ox}rV$pe+tbqLR2T4ocdC@CF)XX@>=gVzkcEwwmpvzh6r3 zIT8=zWb{ws#*F`+jJHKy>93QBN}&i*V7Nb(|+zfm>$$B$Ey8LDOBZyDPuGAT_pT{PwY43o+l0001Z0SwUt(4aRI z0Kiwf{cW?hZQHhSwr$(CZS`#1u5EWSvmcX(Bn;ze0H(2)qx>ClLJn8+FmF?jZj56s zM=|fj6fWj&UZxuD7{4scq+|Jun zqaDLA|I8e&=3)FlYZQyvi8yB`a6Y&5Je6q0AZD?V&m+zWGPsy>5ee7RDIzh2i@BSZsfIjB8C=f&yiP4TF^Wa(M6Tr1Dd2jBp}&+8Zsuu5 zu?X{1^_7;w#oW!yG@=)i&_nvgbi@8-1Q}e;{k%>s)RCFM`P|O)*pI9rgUh*}_i02g zCb5!(*yHR3&gXWl&v~5pX+$q3v66$BpPRt>n4cGHM9%ymgUh*}y%7b^qu)YjR&+Kc z+|1K_Of&j1Eu#2s>d}p*?8Uj27H~a}^FEDmE@k$({9)Q*|Ia_2LCj(!YP#TVUZxuD z7{)xd@^!?8C-Xl8^`M(c6vqKHm~d^|wr$(?Zf#rf7gk#{EFYj@jksZr2kA+2qM5n( zk6&gp|LJ6aY4mw$Is3WJd(?J#J(qb+6z)2*nbSPxH(BWU=yuNYoG|kEPbULR0%W9o(b5@Y1Df*U_Xyh z`?=FR<~RB{f1LY#N8T>3<}kPUO%^4z(!)6FxwM$wT;?@V6rsP%C3yeJcGPq=U^AzA zPaN`cEe(6TejoSW2-wVN9`lYA;tIe(EQ*EjN7=)<@3)vPe!ExuW#2E`vyl#&Gw`HOc;hgjkC zKLhpbAV(Aj0C>wSW2=kJE=CvIKHKijw$q)>?(7T7E%#5!SA64{_vZb8+WKtmz699A zH69T`0Zk0EN*FQwx`kuh;1y!{?G^Ul4{!?q|HFFy+`%dC@QxJ9FsBG(NBZxmXT(s& zIGgzA=q()M2CqnH!5o7=|}aA3I%a+qP}nwslmdi}nIe7xuAp3AvDbDc)u^Gyk)*$*9IKwuP8~!7r$_ z;D}&kgMYAig%6O$l7K77Vwrj?{@~0i`)kdZh60H@{D42PZVeL;p!W@bq=RfWv(b!c zD3BndE&ACe-<@bM>n^kI{qsjLxGTN~X-c;)`j@5nRb7x!7ZZfesu|450wr$(CZEIrNb~3ST+qN^Y zb92r;@2z_Ogj=;g^xm~q`~UVCs%vDKCv!HGeYdb6+SsdqsU^m5Pw?`!o`F@k^r|Ekw-o?aWQtJ*URVPdz3 z;}IalYb?;Wb$@O*2+-Q95)Qj&unoc>*V1m+>|?M(64uW!JlaR0lgLf+9-!NZ@Ctyw z3mwH-Y!C?foy%VjPkaQf@hlnQyNdBe<&@7xxZ~^r|2jE$ql>Y$N>CyzSzg2yRkB06sd#16CWFXm8>47 zSh5dC92_AmLh4K%Cd7*k$X1~G3+i2HEr@@5d7~v4ZZlzk?;0i_?ZK$Cvz@liHjI7y zce7HX!2rjXzT`qi$`GCPS%%(X!h8TA(2~p@tix;osh0msA714S_=aktAA9C5LWe3&0Puz%J2E** zE~0d5A5s@zmW1SN;Li;|Z=)oP9&kK9+5;akK^l?TK=d2gUjebfB2qg*tUF#sD9Al8 zl$-+u=pE8o!6J5DWZ0DTX4T9gb|MHLU?a{1R?+QYDNX?b&kSp ztY-du3;bGuSd70rfjlbT_ClC-6MaS-zjfumrbuM@A3=?}+ZWp2>EfhcZw5QrYagr( zY}{4_WJ$9HSi0e1`i$g8D7)cYzwZN|9F*V;)q|V7xWjgGMLTyN%nTT0eptdKr~|9} zj_aZ540CmNM|%5yUw6_G+2W;2og%~OW#)>E^fk6)y*9ku{wZaO61{_!J^c1@=Q7aU zi*a{H zPIbe8zaOm+mWgcs44v6O$%Sh^KpH0kPP&0>zJM{rm|@5kYWd7DcLKLUtRMoex${23 z0^fVA-l>+c88pGZbX@Is?cNL4!sz>xW%ol2EJl>Fp|}+83EkG8Qv&*?lPQpjD9O6- zJZ?;N_eJbyLR_Z<S&RW8>+adp#LN&WcC2&-5y^x~fNWxb=egB|`T3ywO<3*iQS+3>|at6r!WN&rrJ>J)UU@m~K3hdKSVVe}|J6oU+AOr+u_ zP z(-%mUeJm}eQ)nA8SI1ZW&Ufjl6TshK9UU=gM=?7;?(1^{v}acPXy3i%p%|#E!y5*; zB^gWkij6C3q26}jR8sNH2eIz!=e}SU`tuj`ae!w2F&oRY%M`LpYOa5**N3Xx{vv(a z#%>xqp_y{=de_RL!4vSoQ zhWga+ra^ZNRv*>`1Y>w;{<h+oM*hDojVwG!fuy~I<2I?70cAc~ z)8oGT)J*kT7IscN%Wa0fqjn|SL7AFFvu|d}1p!Ir3j_VEm%g|}f&7b*b6F~gUO6fA z=A(+f@JDlkd$@HP;>Sj)=aXYr3h284&6@@Q=xd!9jFAHX^Y*yoKES>Z3K!<<#%jTq zzg!?Vb4;Iui{B5i;L_(x{>3PU0B{JB2lA_F!d_PCfVOPUs%^3kYGl4#U9PXXnP5;c zT)#>=Sl>)*c7NXH#oWdxV+_S9mw(&m;qui8@Zp)}&!$U><4ioR@O-5S_dfac!qufX zMQm$tJ0-DIDgf;u1JcI1Yaz|T2F zZ3*TvEwdwYK+PxH>TnQMoZa2R`%)i{XqWNb>5NDRkO2wY3{`eax3_JILb$_1`0y^= zVaI~>!$y&h+(nxyoz!ZNN%j|ChZ|RkyEyw)g%RA9y!ns%6ye(A+rJCMrh_=hpiKL| zNiZ#uj1?Mzu8R&!Qb#QKze>>AEfP}ud7@F~BHGni)7U|^j%gm{dDGd2R)W{yELR5f z8J&) zlH0w={F&~n-dRj)_XwvdyryIWjP#4kuWqv;CG2z_Y-~^jN52-ignb%al(W7nn=`Py zY?)Z4Ew;Qc>6^kjABaqfFBu<&-((N4kZp%e?#u3|x7ua$c{gR z%tM%~QJ97KYMiUckop;&~+mG$-C7$@YBd5$D_cvAWk~>fBFsaiB z2(i=TbzVsQuCUJ^{n28eI6F`Wzu@?gl6yKv{{Z}9?5MAMuxR-re^a39Lvs?a%);}Z z0JlBom}r{%bIE~p!h!R3!Wk3T7@}&_0y{iA z3;ej92?Czr?}56y0l$5z4}|E84WNY8gM)Ajc;4R85>Unw1jguoZ{AI}b1gyFdd=IN zgSonL(!#pJ((TuN%Oi}5_St1^XQ>;&7N_82=Ae%f+}Ky7hHxDqgg7)CWOK2PVy&Y# z6(R&_OdX=v8BhRQL6scNL%U-`A0Nm=-!@?XX^497U^7^+M$4Z&wMdq%i728E^5udc zNC-Z7dm~8Y_9P`plg+PN12D?P3RD|p9(i~aL57x#l9Ad+eA>C@`8Kk^Sar_`jX%_M z{)s?9qyou&M9MEIZI0tn&;Og%*E_Cp_Ncz2uJ(REpe%-QT( zR0#VoM<>n)VS(VQV7E}sNYhsT`&ThK8!Hqn5Tc)r8u<)OcEA-|Nxr8`>8Yd@(&_lc z%#7-4K}pSrSEa4pkkIz~OK6vH7M*v7Bg!to2M!}G+J>!xee;h+Mce*rNZaw6%RT9o zbtRpnwdpJ6)1##B{?_IxHdk9^*UO#UHbZlDk?q~Z{)KDFLLKfeSkO1c*Cutg;qjv| z#}-Qr%!4>2S>%3f-;ZP?yQ!E3b*R}yB#OTNp9 zg3CLx95rK-_Wg=*-bdX_hWz>QlZ=4L^Bh>^qoIDtRX)%xe>igN_e^lqu%ZFXL$ z+Jy`?NDw_nTcW5t-1paBMLaVNZ~<0x@kG(mWpuohcf%`L$@hGUvCdGDP|~?C=`X6c zwNhyLkLAy~L*Sr=IL364kfv2j>R(r<`<;N!K~++`Q0=dg+G+gGneH&8U_3LAj-ARW zg}?G}ws9@uuOB8}qG0iRH@2?1!td=aF1FePS>ub{oYvODq!ijduLIK0eDXStAgqFH zt%r$Ah~aSbA{GLBmjh_>t_gU2r6+t#QrMnq92cwTAy$ z)m?J1yskK3a4<^D@pey*6n}~7(!~{$kdEh`lOzaGninei1++;JLMsO4qZYIXB+ej7 zDEyvFlu!M`QGS@1AW!x&Lnllj3r0C6McP@!pj;}!Tt1#p!CWd%qg}uP9+?U-oP}c; zS&;rSLKdoZJ2LzmuAL#VY?{q(uP+Ls=FiP8IbSTtSaG$Dylit>4JXr#D%Kfol$jJt z`kWLyQ%SIcxj5C~Y&uIr5$@$FpD4#^+U+SdmG+4QYukKa_I*C9H)?|P(@DkKeE~0F zpHLX3Oe7l=w-FEs=73%ZAWcS14M5G3~ z&hR~3Aj%6_T@bzI95j1rR4C7U~LlPCGf7Y-ptLnGFv915C zq8WtmhgLPM+Jt7gAYI#uvdzgyllen7M(1tSF|Ay(4J#gll5>oX%Ggte%Q&_%ia8Y5 zXG;HZ%sl5hZtn@E-9!3COSYKHO>18^u5|^i+V)#y&dhP2geREgF71O2JbK{)nX?`Dgjq8LE0fi{5*(mlDDaK=BKl`SzWaPHNlxrMi`tSOk z&P{$whg7rb$Yc3(q}wL;);$_~gXcP@lSc~e_3W-U{_~6|&ttf(_mQLS^PFneW0dVE z>9lLtQy~6miQlph(S>RE^P;WK6GZUmL0b2_EFu@skp8!POnjOwHd%W%{=5BZvL^o~ zQh#m*gY|(R`HS&)A@-zn-8R~KopWx#^~U(z)|=%=5EiQ$L=acI?MV{k2_Z`ol^MlL z5*8^bND@~$&5aWjNHL5PRapHQCoIu&7$>grx~0m^6@aG7FE#Ly*McHVQqaIOPEynX z`>Cv;{!>|5Q5%kVQ9%>ec~Map1THWjP=IMp4Mm!HUJHh%aZUrh8mnqKPdc-1IE`DoZa7bSBXHf17|L=zOgPeY+>cq>c05dZ;(OhXns&cVUVq+{ zbiZHXf4xqB2?Rr-BME6rRF;z`O;VOuW?o#BQ>1BJlvm|`V4jg9 zj$)owVw`N8QJ|`7oK@kxbe@qX&vKqsX5D<4QKaj9m{sNdfCJ1B1j5lT0Q#cUh90P5di;n=fZkw41&X}?Z+T2pJ45uJ-m0CWtf;D6;yAaioh8e#u3KbT zzpS07ZNIEr=6S=ln;{IvwO^ng&a#{PRgz`D#D1)8H%pqLZNJF8ylFR2)4XZF%>BfD zGeaE1{da+Jy7Oj^s;2Yr66dw|%`AD2_uoaZ{HbuCj{sOW|jRuSPYQYlPO^^GtdE1^`!hVrREJmBY!e8?y|4)#*-yer{ zzn}sjsM){Q+X1)_y2Kul(@0yyZ4y@NEWYry#q!$cwLB*p{YZwF= zQ#H*>Bm9~(8u^prtz=e!@7%PmU!v`@Zn$WO_Y_3VeP}-Iw&a-o6oB4&U|i$2XsPoQ z!rFOgeGTYuPlUR5&(Zd}^GEPLFwA*gFy(m)rt=<@(tR6huDs2<{@_Eoc9V_Xr8WWW zR~v;+uFojD(Cffg9|GrnNpr3=F40vJgj4=sii$2wXO{C-X!}HzCo(L(G^(vMCd4eV z*vtgAaY7&ME^YWnv8ZGNL)!6dj=9s29|lIC!Ogc|oaOohK?AM4jYGDyE4p^J$t+E& zLa-3pAFPBcnoeoAI32D%ZsZED@$t&DoSeR z7gUtk>X{i?8DK@M4C&$+{2X5qM&_*x-(DGBo7mvxzwtx-Cy|T#+J3dkdf#f@&0;-3 zSTeavtaoF&u>R`YwuFk*!Ou?IMfIn0aM{$wWRv^0TBytAnbdb1 z*%@Guo*i)9W(s|LAQ(MRDZjM3Cme|PFuWyhDo<6qW^GI3&2q~OUXxXq&FZs5{q65s zB_>)K1N89+7k9U(x8fHzs_HiHPA!&8JWQ~1ttH(b-u~9A*SktU%#{K~(ybEMhO5r{ zNd>P&KREahFbK}|iccShn1M|I;nXz2yJ$#&+6GkUHv!~vL;kA8;L(Y$lZYgm=?rby zt26c+=&3FrMccYCR4r>?X?i2N=izsSNokl^vw$qaOH4qokIAI`h!(Qy-G_(c;tK1! z3>sV4{#r`Eku%YWsF_zKUPfpcUdC;0Mh#w2kdwpMZZnoYHc4~ys0b*Xt@|>DlAjf_@EMv_SZX5ncF6jiqWsR!jD5Q_Ir|39vC+lp~{Yi*53 zH-D6GU0lGk^+!IsoEV(s63qd&ZaBc8AmBoHErbjf6Ney{nK}_QOU5 z91ZCYQwd-uIHSpaR!Hm!*m&?u$751>w_-ek&C8v&q?Y$PjwndtS=jWX>yFVJecZi# z-2?^-=gjoK0H9!HPcOapNFN$V*m5LlN9-c>3nGI03(g&Fn2G`KZ_7&B62(l(#=8!G ze1)lXWKWL#$t`79;nT)W2AMniF#2#v^^h@d={Bp`%%;eo@)c<4M%a2SZ`XRVGDeBu zYeLP1-e20y@QUG3Xn@g?P56^&PFTa;Nu;%;czn^fmkjn^&VdL+W7H%iO-!=?dI%Ic zxRDzw0OAxr9WB@F1L9%_PZXmVFK!TKBl!zyWCL+XxF4!6#_bZ1W`YuZGKWa4-q1>~ zjZZxtzI;wTKZH0@CO4rFjaSy89}Jdm;pe{ixs0Fp+I(a1-T@Dd#m}@BDiTS0cp%!j z2(b3xi?s;;qyX^Z9vlb(^!G5HCGU!%-J%eMa?c_q*2+W$PjLxzcS>>XxD$H`y*(Bd0$7V`XgX_hY|?h^2bt)ORXW zrfRJ}OqEE#TH$8J65mG{s&a}` zK~_xtZHKhBug$Y2LryknaZ^E-XGU1iu^qdt1X+!+Tfw@hTT?~$d!i!ILp=3TH5xvk z3UL42sq6e6fa*y*15tdOQLTMB^~joTKAk=qN}irDbVK2v#8K-4t%sLyDjGSBP?!}f zau{&jgRHj68OiB=7w1s2Pp2~@15uC#Uzw%wz`xc0J%%TuCP!qgOu!=Vbzlu@ zy6>r1@j<;|{y5L&7QgzC;_0z4OJ(v=dsC-#)hmrmQhA)Nn?HaqLE zMM#Ce15hs48BFZB6$E3GCL6HI!%*o_Qo^T64#t8vY;7v?OcdaXM(hhi9HPUh)9bK) zrv(A9EAry=gB@fa+IvJ8VuAfE&oD&%aUyMxfP)_leXxFAAA}kCMBNf_;!HmxTl#Vs zU5kcV`NVBx#)xa#DlzmTeFhG^^M!UJ^!IO{vI1*zaQeg-$sT-~pM091U8o_I2?$|k z;l}ZNGIs=q-l}sQ9tT=}kIClZl*sk%`h1{ktF)wY!GY|GbzHf}te|4j>GX*F3Oo<) zJz(NAy;`PQOm08nIWm@M6fl(}ZQ1NP4K>>4O1$&$a(V8b9G!!Ew*jw(D8N?DnX_T< z^Ba3wxIF!KTu{?EC1SIKusVhyK5K)9mID5T};ckaR% zki_~1<-iE{)Iw%lP-R>ZbWM8B(liEjnZ8aCfEU+?VEiR9^v(2llEGWVSf0$XWQh@$udjRB zKh!21r$voi?mtUQB#IdeC_2%Er5iCqU;pANoT*31XlAD*qdfCWcm`GrDq~E_4QX3V0Ysl?oC$B%5t>hB)QURIP=sFIMHv6GZ78w*?YmkJc z^t7ssJ53%Omwp_@wr8=mCzL4qlV$;$j#w1CFBvBHYk;f%B%9jPW!vp{kiWNlgri|+ zH2A>1xK7$dNUiY-#->;DeK$d64D!+tmCsi0iL`RpYCL%{GpL7}Ba?#?e449S90V?I z25HZ2WrBNMpS#+s?{TpG{o$ynVjA`jeUb?~ptLRU^ME`A>?vvm?C~_Jax+NMOwtBw zW^PI3pxrDA-Iv6A2mDwkGgA_I!}ZHQ0@?@0qx2%{;L%G#aD-ai>M~85tz25|%7J)W zpSSm@%T}_=@$+9d^?mmiQiHQ&Lf(9T!j%oZupMTq=$n?ZEZZF~<3W>0R}wB7Uo2LW z=pB@_K7t>DRewam*@?-F_K8yS_a~X=S`~yDRJch=JPTJ-kwcJ+l9P{({S@Y54Vqn% zlCjCuVrS=UEv|G@I8byDY$pal#e1;gW(kZPBnvO0p|}&I6gZK^OSj!l-g*?98)uXG z*2`}deK$T6E+ZB;hr*UOYk*zePResB%2Abpmx-2X1kP> z#!pgCZ=oWe7bQ&-@ilxXsXXnLZ;(TWa1ft0`t+jDGPjeS?BC1ade{3S&JA(*5hgQ2 z90Ag49@))RaKN$u~_P@PDUD_s8);^MsD zx?5m;an(*ald>s#ekiAd&dfCKeIl?-(5R9t4sW&0V z?bEQYF^zLhz)E+p)JMpAAub~S})(+8w(ZDUeV?X){)^yM{pZ^0q1;glf0 zeWgLZq_XZIumzcupRS?&HJz-z(-Q}x zkIKV`R&4-YXa5WKiFb?)vpd;G9m(56`w$Io`rOuE4^G4BBnJGv9v#5I`kX17TBm1h zizm6ykxQie%}+4^F7$qcK4`_vv}BL z0=~bF12(l*uiyWC1(t*BxB$kfHw1)z8}8q$`(5F9Ez$kC!ZDasE}6sTGx|M2VA$|l z!^Zzn2k$H=0KL8dIEd`KSuCfO*v{LLE~=K#1NW!bfw`|&Dc5wD<&L&*KSnW(bo1jl zp0Dp))N=501Sk?yeh@vD%JOfKBns(1DeZIQDKj=WI{jpsfT0;PEbTs}sA74N_yjXS z1EFwprc99;F)ZN%aq1EzrsM$@EEz!?+^VfMSazp1UAS7?sDP zI;U#ZYJ|4^o^Y5adW?pX8T|cx5Rr-R4?Wx{hG4mvpkj%{Sjlkeiv;8JgkfFYq<1%> z^Nbumqc<4(jZ1!ISbsu)ONny&O*?dH-eb@k4o-P9a@*q%7xeoO;N_)bZT|Dj&bf_4SG&5J3HO-UR`sdk z`a^oYS39dlMm444d~yHG+-Uq+v}>Kn?tM9oTH`0 zm(x+FhrJSsG=H|XO@*mk=oHyr0<>V4sY6JM0~1TSKysiw&vH~!s$!QpUu3BiOWVLb zsrpT*ushX*!TQO51xTDC zK3Gj0b6#^`QNq1n2fwQspuBo_B01b7aW{kKbfIVYF=PgzY4W9=!W{D@@56ZL2|@e0#E|<1@u$pAjv@ogK|?5VV`J2TAsErQK$6mzys?MIRg7I6Q}wBmMV!5 zwO!bdZSwp`sDu}Es2{yE_^=J?!ph{qG{LNO;OAO>O=kDitEjA0YhL5whi6MCtbu#7Of6S=9FsEmPm zDVLMsSEZLhZJRXGlSB_})w-Y-^e)p=`RLk$s{2;2^1DsctdR zJQ>?lz$^|d4yUNAb9uLVmq{Gq=2zIazBuHl(hri_PZoYX$S+nQ7-zH)iVVaaYUVHD zX1Gu5Uuc*2*S(nGzSzt!L&2Ce_UjHPD|dC`IP*YPBktc*1QUz>aiok>IhZJW)({^v zVa?Z9ks7(Tl)8>^TS|K*#6jv?(tI1xyQj#Qj=$BWl6=cAyL}FK^rX@qR_~>vK65nS z+W^@5dXK=o{Cd?WGLGYKynGSMz82glP1w^N@W_YSpO+=VS5_Vt9vU8TP_f+m-LlXU z9Y)Sg^eMH$&`nYuPH1NnY-sSd&Cp_Pm(tjqO0fp1`y?|iD6kmto6Z2ceDZvRvt|)h zcRN|)B~7Fp-kzImY;nPB&p`@x7^y2^=Ba=Crc3b)Z;FxC#BNxqb!aEK_wuxwI%mId z;c1M@cgbvBD6}Qr$T*?Y`(+88lXjLId?2=Ek*zr#?;p~xFX`k7YG^AYfE!f{vV#Xu z&!3Xz48wef3jHu2g;_m0yN8R z*|sL(6$Df32sZdZ?#4642RIO`8KrA~78X3!-eL<^@R&<0CzPi@qw7+AiyOu|V|Vei z<2-TU+I(g1t)7(?;i0-RefBipBvVNOA;%|@QMsgiL@CK<1EbA{vW+D8IwYW}i`kgM za4UyP7Q7i257SHLD!1!6xtBO_S~dc^>$PB1E-a+41AWDjLQRkm3-bQ?N?BPtd+5zu zX9T-XFm3e3+qv>KF#W^+5eBM&wu4hUX`m!9Gh6)Y2Y<#B?zf8#7zp_53kc!6{*eHE z0;CT-1iY9V7FJ3D7WV5hRp$MxukikB*q0F;3et!JI6<%$;|N5bSdch@TW;X|OBEEK zWjr3x_%>7WBkg z8L_+U@cu*(CF%}51PhG>M;0qpX;ZU77R=yp&>z;+ClDkD{qEEgJ4vPkUggGCXgAQp zEk82MC8b(Mnj6b8)VC$tz_9=cPvgdx@7JD1qDEQ=kqN9TMA$B5soq>r&dTsBvIadf za1c{*7~Py}+MqT59+dkBZydeTn-NR~M1bCY1W2D*1B1@Eq*NwKbn`C>xdnCp1WJ&5 zcLOa{?{Wi4a;;p_Yz6bY9Ya=~J3EayDj=D(1;>IU37RYq^=B7>z1@Y9P*eyZ>I z)ont-;@m0f7o+r7?qV#T7)wCnDRBpfxZk)89b0@KxG86|BIL&;6Ct6w;+ORt9{v(L zu~cxW#NK$W+fqF>RfdXoxDx7n7LaKXI6isN5R^Do39w~hcxmXhYK?}0h*I!UdRl2( zn6%%2OisWjF>3%a+hI0DYMswy9m7n) zGfp4G!ZJ-;`W+O51$cU9nq-ORc%H}PBaPXUCC*=_6zj;zY(4i7h1LK;nHUNu<8 z#3x4&+I#oh9sQ*jLDE;A&(n0X)`js^kJ)FU=jAoV)UqzL#G zOG)H-wAx3%lTTyc7^1|O(q{r#phu^Vl;azWHHQ!{knqjKH#PrMdPHI9$S3$ zd>YxDw#=}ZYI zG^$LZP86?J988rnCV|-+PR1%<==+wl(67+|DGROzWIpcbO?!Zne|qWo0GuZk?2h<~1bP)#=X%O;rRL)heFYEWV?Jbo-C$?wPI{j*Yu=XI zFyumOHPZ|ltwK-^|ItV0cv_6T))@{5U1{O*e7xkx`#B{p4Ks7_I~~>Lr>`}=;okKM zig->r@!MX|2hTd?PpT`wB;Fb8MQ5WN^j4?L097G=Zr?}lUb>F8KGFLz-JAkn!P82O zpZN1HRei?D*QvreCm|0(ug|X2&T)%;sGxH9%{!8MW059cE$x7UmT|pFoTZxhAPTp(nm?$}xi7`;z^tdQJ;H4nB0OIphsrkV3OnM>U6C$L?S|w&O z2W1NKqmJe7aU~kLcQZs;-+e3^rAjn*Cv1Aldq6BRp_ah#R&q~Ktmgcf;8ya1*F9=z zXQM|HFCDTiWDm+7Pr01%;(bTQ*q&LC-!Y(k3Jjt?2PRXN(FA!BIR}BQ za14QOTUOq)5Hg`_+U!XW(azYmy$=qas+?s(+8BO}l{%E3GO=TXAFc;AQ(IIDsFNih zXNs(N)j2j*CO3Ld5Rv`=|NsC0|NsC0|Nq}lGLfxH2AH%3U-2`ye<3jEoCDs8BOOgq zOe|1RX2CRrGBM^wS=CLNqo7(URc+sCx=#0S9}h5N8;(%h(n6@l6A!0wmqe6lz(2nd{JbC(hZqcDNf^J zECV>)Uzyhp@qssG>d-+lzAb4Z3I|7WG>J~g7@LJ!AMcgriBxL;G*8b!ehz0DzgGbe zU3kcVE%w99sTO&$8LmoMN)P?@_03W`y6ws39oQdqoMeR$67JEKWztt^t@EBZJq;fG zkY&V2?BjpZD_nhchl%y5T&NQ}^62Gp#=Rn+yt@)S>+Wf^PI9_CC`f(#2F`FNhHiZA z?cGP#| zE^&kRBez>Otn5`PBYH)tkYIYjh=`rBN$)L77rvAesptPzct-1Rv=(~@%td>IKR-W)jHDipl;f><=SV8*R;LuFogSLX zBTrFkS##RSv>Cw+A@%LaG)$Q57{8 zA_^mSW1~qI?VOzl32F>yF{7WyaP=?)+;91}BE9OQ#Dq*huRB|hR94q%*sW68g(S`( zldyvS!T)69M%W;EoY;PZjfBjCFy!_M2LR9_RSasRrf40NGYi>Qv0>*pX%~CmA|Cyv zs`&Wwm#6Q)ecG?gUAL;mLnMczJqYq3$@2h-z6en|KhMwY&%N(0SrlVq!N?IgqDIPK zV+_eu>Vskt{Sl+V4lK;VXe`Xes2ZTTb&L%#h*B9n5a}MGRH{gZAR_3K7BOH{iZBN_ zB4Sjiz$6T+Ca-g&2ED;kxjud3H-c(0z<%`#YEZQn7PPb1!Ad^vE4yMvR_xee;4F4I z^#3;Z|DT{@L(ER0G$q*yAn0lBm#p=McQ6~V?)Urx2pC#ZFCCB)XiNa$2`DL{n(k&N zJvcIA^}ny2ednBe?|Uy(0yE8qv_brFmT?c0T^V6ys!WJl$bzPl^s34|EPtp6yj!#U z5MS!MMZAy9Gbc+kH?}Op5mKyT=xAfn(^er?6)jc2mo{_PdR!Un{_KaFe|dZp`-v}M zDdle5r43gpfvUoKU^U z2sezdyReGQLy9!43M+Ri$#!Xblvkl73T62BeI8*ajKWy>r+&b1yXWp_XjDQYB_d-8 z!4R4T$D$Vhi+~^)fVmYG4hsPhHljAhHdsXi8yjqF3>eWPO9Z79m`E6y3C5LiVdaH= zcY5b}QGfU6z&eX*Aw6?G!GoCv1OPA*rh%gFxPt(0Ll$x-g(G56AN#@X-oHJ}8=e>< zk)gwMS|Vi8q!RI@i4gHbB8eu3A9eQXJxNcNWk-(fbK>LV5Yr?0aFqK%sM1!R$}7+W zfNQrdTeo&Xw&zt#=iwuSOn@LkFlW30bH5=pc>sBE&d`fhF(C!ad=sU;mTLEU>e*>0y|G>$YoCH; ztP~>`L^%9U^>dMnT=ZMghyC+~5W-`OW5|AF4YKskc214rD+A{o==6>it$12R3|;P@ z8XM1>#G= z^{;=KZQBYltl8|VqErP)s(L2hz^6Z%*tbkoj}}(agiB7n$^WCyH@ju23?L`~Y`m<5 zcbEKx{maJKpV;sutp_8}dLaNI8>yL*Q&m$ny4l8Gu~W)rbf z0Ulp9{UQMtQFmv_?sRX%nAWfd!!qUtV$%?fA9!89F}55H1(#v0isgdc1yj;yq> zMS-vSOQ%2>$#M?-mg$}{mC64=dpl2fxim{d`}TTY&Ux25%eH(cDYIVzNdYLV(M)LG zUmB}dC`tu1s8m27W}-4@RtM;P14Zc7Catt{As+6a`h9D^Ol;oxV=mwULH4gJ*gD@j z1>`CZ8^j}|WR{$q#sC#GoXZV8O+`7&`(jg{A%jhlmJS0EqUxA*(J_f1UHr@G{-Hvf zr5b9DW&4=_GoU2h0yuzA-7`;uY0YIq)vVwqM}8i=d;?)%mPhI~Sh0p=a69>E`uD#% z`!Dv6ggqotKm^?w%a^M9r|Ewi8~_v?-8OQ(V=AFmilCqX43J=4QQhdn4p)euD%@>E z=3UyX4mCU0(ArN)bfpG$OW}wfatvKMVy}-bbvosf6lfZ9Z&I}?L|f+yZI%o~RIHpn z6~Hx5`RJ%qNQxPM~a7@_a@k6viS9{{O3%w*T@A(r^@^$gLz6*w880 z%9SejZhHKOC717i;G6-tdv-pt3A0KVZUU(UD&*MusA!!y+(atEA%t@5&Q;-}cV!pl zs@tM;SEed-CM0g!?QtN14}`j?!sg#htR-RAn{B~%fPe--H5#C%y8)0eZ*|Lk`1lfFAPOt zc{{VoU9QoKt4boQ00$5Mf2I0wvSR=PmT}9ny)zUXz{HlVwydhLek@o)1EMWxvEbJK z)upp@-~f)@Hu;x5POsRZjtdSz>?`*_&`?|+yXOQn385*0JfJF`iN(>FD{rY81chxp^X^28yQeea@ zZjP8Vib7asm`}<&uj5eQ(*C)BOV|9Kxgn*fSRo8jEvUueBwk|wPD^@zN@q?Tc!0o+ zmWllfc%F5j7`|>W;TQ%_|4V4ZYvwvG%UG0oLZ?sk%hiJMG6wSb2eSW&6N)1@)l5ANz*7Ml+=lgm5*pJZufEs;r^hqv=MRZd$%#2V_X3upA~C`ktx4h7!Yb8l+ryy#6^B9yA%qaZ7-J45m~>|S zeUE~y z)sQYbAiErZ9C90S*L}!CPaw~H0UAG%G!)OML(%3Dl=Rp^$xaoN^=XE(BePJhX46gX zmJv|7IP!<6nuza9)r~Q>UAnveTwn2UUyckkUZcAtY7mn>-Gi*uQIu|tY|Q6Pj&ZTY zaV&w!)Th(FwEp`NLW;cVN-|akK{mPG3m+Iz{3;VwA*xEK(a@l$&9+8`acTFPnXc5P zsBKX@0-?M1d%AGmO8@~3VaLgOw*cVIf?BS$SZWgq!*Fp!I=8rgZM~25Uj~ocb zoUs@#k4SPealPvsE=tgDiQ zYy@Gv=#6wL(JzTeQAv79Qdr1)$uVOS{A0H{dKAv^Iyl>7_H(_ zh}e2m=Ir*;h}rY#EI4=!5^9f0%F#1p$;o4parW5cTqbiUxN>{v;^CEu<%iz5MSv(- zs&p8#WXshPfx@t(`U|xGj9Px zycMVL|GlLG1(N;G$-oF?@$0K7sGb@Pk5YhedI>UMbfiMVwtw%fV_!Vx^?yD){qyg~ zKl1==`xAD~Wt#Vy`TqBT1o8npBEy~!zIu^Qe=C3*fc)B>&(rIF2LS!XuL2~n5s*-_ zgZ3H7!_7=LM#8`GJwSp#{H%M)bIHHTIW+&aEn8rqjaZxet(R$;dx z561b}mh|=>9^HIO;W)kka76qZFaZd4YdoaVUPehaDx8mC5Ni7!+_LorFN1}V@Sw{r z&QHyt(f?U4`r^nIz>3s2ZAjv^y|62q2r#46r>4xT^Bs$AA#C<6B!AgcA_7t=#@jWu z`U}&)4o<)b?m@x+(H4w}*t%`gv}Or@@Q6nx<2N_7mOlnqq!2U#NtA^sfbRO1iO{9t z982IQPvicri=u%V28#yi0Cf(&vgCF;(ri&i!#7Mgx z&UmX(P;-29wZ9`CkUiNzs3QT8fx#B>p`1DSa<9zd*#U=F0uJl`9mB-2O=mHb!Ca1G z^fb+*?)tOChu5-0V+&4VfSR8tbV}uYFl)iB;{oxxjU6St8d#67{9G;$$V>C7G$r}w zEEqSat&Veh9`0Qx+%6>M6N^N&9|Q;$fuDrIDd@afk8U|Gfn#$&#DsiC>02OT9GLU! z@I?ENMdpobgo&qZG4gH%tO%^GhJ{JXEgnHEPdOI z%d+%ET?6tf7vZgEzfCX)ynJl<)-w{Xc2<~e zf*6ipU6#M$V_@!i!z-4t*eowLOKa7FWnQBZ%T~v@zc}45ECFy#9I|gO>%6JaBgyIl zfBHl}R4>Uih7Jz3V*;sBG*Y7R-N=8hMK?q zCS*cs?F?Rwk@>%q%!x2?`1cBvNg%D+Mo?u*nNQG=CldcC2${VPvzd=(I9~480Q;o( zVWCo(=%W)hURx%CdJW*p8NgS&TRi;7qX(^;B<6I8NE4NUiW?fo7k=e{IQ_Zf_h6_> znSmWxmdAOpR^|KyluM6N8je6Qz^OHk^LT3H2+kX5>&5;@%BZ51({J9!I2)j;sc6a| z7SbV%9T~+a+2%57Tl(j))5>!^1c!&`bIz&U-m^kY&3R(S-IFz8z=(jW(&}H^e?^*l zIT5ZDivwO0tvjcWKc5&ZiJUjjCzC&AZ=c-?lO5-Mb-X0Nb1Jr_1WEwMmlM}=^i4&a zUp>d8>znH+ky#c32 zD0tZjv6vbF{D@JwvJW|5jq2uw?75T3{1re)AWLWL;h0EW!)r0{vF z-De2?l}@zv9n`%L2b<+KA>lF$ot=?h#?W#8I=(U_H~9kljFa+gQ=x^&seu7xp$e?{lMPeSJE(Mn zW50}c?@gG)el-)IISUQ5`BJL+5_IfZRy7Qf#;0v!5|0*&q4&hbXeOs}#-;+#gXtOH z%*uF>MQt05Vq%N0?bsR0UL{}*yIa82haC|DVdPcq^?+)mTQvhi@m~!~nf(HFmUIM_)RC7VNl%-+01X=WTrU6*cGV3I2Ed2~UfL&17modW$5?F;GNMzBB=Y++NK(8#7?7pmoxBx>Q9vI(9ZuXW7BnxdTJ6TvY* zNOTN#2{4~e3JQn_z|i}XL#X@2!oV6s=rS}D(T&=S&6A|jAR$XIZ3Wkhom)vh9}JBN zJRo?BJF$nkur^G_i5Lu4FxL7z$}2?P*W*R3#~3-m35U4=5JfyEQX_SpG~L{$>P|eo zeW2QDx17@O4%d^0howHpYnD&9By|IQ+EHqOQ4%l$7@;5p?}-lFg;+M5#`N?0ucpD< z%D&xQA4ded^N)Y=f9T#-8dbY)_y%t`d?U|bem%a$`S!luLc?!Sw|1}uZ@@O+Ve1@s z!;9T0y3#pUwdQ4hu3!E?M!ul;%loRnmaq3Ce3ZZ8AN*4rclL|1H*Usad@`&~cPr1n zGTkh5Ewa=Kt8K8&UI!d@%t^OBvG5__p~$!kYOq2a&LR05M*bZRupF-NpGy|2ZsoP&8EgG>>%&!-P%1)$?6A zOOL}<*!WqHSSt>x_GljHMhwZDEAnECxJuqFd_RKiGTfJ@aP^lF?im4eU~hX)*RxZ2 zW#vC^21CC!>D-hf6ggE(XW^&)(4_9t4ceh0>HA8zZ9!yW%4CIY%Mj6jo$^ng^U~Mr zP51_#g3&cghXYR_<`r*MXEguO-7s!+xBU*pK^$_}5l0D>4SPiK*a29Vou3ERsnyE(_*S^}crIDV)* zQc{-6J)uvZ{(Jq9dpoyn)_Ce#B$ljLd*Go*Hf<&RB#!)$qjX&0nk|;uo|f5cLw5Y{ zkG}~1AtKqeXWzkNs&3^Rv=E>}kHHmJU2`2HCd^o{Qld(YIt`k%XeW4Q$311E@r@EC zNR{oMopTvXw{}&hfZC(VfErrxPaVKXm`8ZbDF)K z7MW)fva>_VN$;~pe7CJos}~;H8rJz?Q@=3I_BEGH>@|z>C3KHE4qx*tA{FWAKqtB}j1e)l3JzLez~B5K011BLqmEaA z((vRRAJ{tkXHBOtjPl;#di7`fOMXK88AU1~xtSbbkyS)fot{^Ioaacpm42vwY)8bgynn+c)e+pF0-rRDQl`ii> zQBPr!S4<5TRWNP7SllaVofve3z#9VN`56XzqZ6e>gf|+>U5P`d<=|aAqiMP@mLTU-&en9;CDC*?S>|iQ878* z?a=&80l5i6oPx${4mL=$j!J;Q?U^moNcg**(2C|KZsw5-vMlatc&s*gT**0Vgl0wH zflVW2pn+>zxH&*q?RE*UuhT*a-%T~PG_c7X3@m}sG_h(2)@Og*q29d_A{X+0mzvb> zWjL;E;lWg&SvPOk*|ZGw>wl+d?!Y388P5!_<(^=veJ(%v)`yKU!7@YofMDqBnq>Y?@65 zvtba9AIayi$Fp-4W?rNL?Y5Ol{A6dE$T0Th6{pBIwO>R6YRmHZ<5epl%BVgWE0L|<3Wm(Z+g~iWYRqRyMxbq;VHhv*_IGr~BKTB#^=r{3}?pS%B59lQl^g zuCQgf0$myn*ht`;gYMBD`L_E~7rR`B|69C$$g^zyav-Ov@_|m2i6ybmy>m0V`)B_5 z(7sxa(>k|Pi)?cKmk#rfyXsE|wTIY6sIfMStaS;zD<5(Z_FTEDgK6377JUK1Q;0~! z78sAG0HAqbTsvVl9U>0T#Hj?(g; zP-W?0Q&z{XG?8@to}KG;wUD2)*MzXZSM2I4-_4Td8CTj|yjy&KS;oN8$ z^-F_Ek^g2c%E>4ov{9|UXkY^nI>U>+J?&N3KB3rtKZeCUf!rs}QK;jEPxO>Qeo7V= zZYxSH@q-v3dJpqf-HCS$xS*mUPnZ=y&squLu zyE^O-a2>X6dk>XqlMQ}s>Jrpc%+BEh=CLt%YzvmkJ0}eCUI;EH&YJ zxULYX;1>w;f4@ zK$J^$3x+h@T6yST*PwWu;Yh=*896;xNJu}IqT;xBjtgwo!upDecp-x+Mi~;5Q2`@v z2K(x=!Qo}|29t%8`9Lb_uQQ%Or@_6=*mPNBS|ibGR!ZgaGdI#yTKGgfp0D#E7) zW==GhsQlBA{^}9C$HIdz82z^@i^l5KEZh5n7cp!j{dh@8%j(%Eu1kfsUb(&1ZK(Au6 zuRXNcP}TeljXGC*_0lv$R&LHeqysvDyE+x>`tFFRFhM~}p>4ojGeRT-cM{ihZ}nAy zVu3nZP7y&mX`v?PNsO>-56gmP5e!a<3h8wPTg>%9H%}^Pp zy2Bfn0QSbUg54Q(+KDDa^jepRrYq#^xfT)wVM|R5Bi((>#!{sZZ;eMG5LVTSy)JgD6!>okNt=?SA z!xI6Vug?8zIcGJutH+5sfVi zhmk%KDPmTM&W`dwJicxwA+13uR4d1X7FcE}03zo90DE<^H4YdQs;4AvpVQ0KncPoWuv=RFD2eI zM*e_UYkGC|JbS@cnVTlcRHY&j>)wc>gSaZ#y2YE;9QuLJx~YBLx^5ykX*l80VWqw* z>Rh0eOeYQ;3n4wxd!W^UC@ba?BZ^NN|IP@pjO3ZRY1Rx0qi&o<0JK6dYIR0zwa~l? z-Z=w*)FA6tWmF&U!Gw)$I0K9^z;PV{jEZjxx^e{`i^4FWxk5?}?lKqbAjo9orY4w! zEI?E7pLpS8P@ez8NSv*A&Wtp)=H<>kE(MW07&UOoEm0aNLfDM4;?C6!)2{Ok0Ij#Z zt}4WSz1_oz;OnPvqkG;2yTrO)-T4*ZDQftks~c>pFiYe?{YAz~icqxaQ;b~I-V zb^(rwJ+oeDO85MI&a>YxyJix6`}yIoJKk&4akj2i)0N;bUWf*CnGRx~ zdCl6tt&7IRGO>XzAZMc@onH^YeV*803`rn~c6KN&pTrHIpB7_KjAwX!41|N)8in4J-jYYCM1FCV3mV9@PvN=A zF%*3EfqC1>1zeruFmvvy&FqW1lsaxVwL%u>cN_Qjkiozu+q!C^U9%TCBiez49@&x@ zjEuH`Kd9eT#5>P@fe@ldfPsdYk?#{Ck96oFmNUpO$vkLvUQ;MdwuS87I3f#p=asRA zsiu%z^_e6^!~o{U^{b;Y4@d4QdXKlHrU#*)*lFg@S4C2^lzL)us`vhQueWn#lvBZ#{>76>oj*{X@z_AVBKIGVu}k`pTQbk~;;QbOdu#yGIRrjwHHOl}w`ncCb=BPNp^DW=gBdyxCrS zk-h>2M+~IR_q%0v=R<1j!~?YbLxtG@GN~xA^PFfb;E=uGdWhyVnJEBX$XJ-#0i<+A z3IUEd+Wpb^Rs*S|8CJ7(!q}%Ot5xb?7loK>=4TVIn&|Vsa{>bwO1n~>xV~NqZiEf{ zLB*W~L7$8~0FYrgXu>uu85NO&PGxKhDTcf$@@VU4zqAUo7gG84{pkIrUw&m_{7)evnR|< zZ*>*?>X|FAbAu+^rLJM1+jl83F;Ew3z>b;_^Q6pz8*H*mvOWEfALG8Spqq%knO2nV zQf-$orp=sY8(SoU4Mh>rv+7Jh;XZYS;1~Ku52N6QK~%{oRg7RT#bvzT!X%s4UO;?4%gQty5ZeOg5xtL zmmz+1AZS2vNT*M!UfSi)XZ_J2Q2`=-oZ^y?d0{gLv%EJ-?7d-7R=N6Hs&MqMCl;drC8jv z&%ON2QwDj(W)U3LdB-t`1c^2dV8V;CjKUwGU?>hgl$v@8 zt|?j($`7@|B2!lH5luT11w~yD0%;4r9o3!e1Yh@>?nUgiJ*;8z0l%W^k~R zQluVoV0}W87CmfvMa2aI+~lzfD4{!@Z_;sP~0J3^x3eQwQ!SQmHVmTx9g4)1V8>4 zY)q*ZCe?4~8+m|vxYW58?2nOxR9!CD=Q9Esu-Q@;22a#bFOG^bpsaLmW0K7?tFERh z11a*-sU)xo3+@UJqel$yK#kH1+$IbjynqGEKkrC`Of+x(#~!;thn2VL;JSW&cgbqp z*ZweLzSI@;PT7g-V3uesNI+Ve1CKqXc(%Ir;a2mh2VRShS-|l3i~WwSlHLeQJx8~H z9c1|%XZ?Di5-Yls#ao=RnBz24dt$a|=mgTA4U-2?`wnsDjIYY=lW+Z9`WxYo5cmc! z5S(t(aL+ZL`TW0m=oU{erV-sZtb3YQ>2-!(Xo_T$2c4X-+S@Fl(abusbw0kn`500$ z58n3{zwAnU6<)n7kJGzLx$?68VaE902v>evccLrz%#v3vfeH@ns>j<)p87r8$*Y=? zPJnql*JHl2C9j4iMD=4)t|qKl#8#V8w1=hCgewA@?QN(75sny8 zx?9Az8tP0#ecMt~>;TCupJUZ%L_4kT#WYs+dgIt&#`W{;WndjFyG6=eZ(@Cp?HdAC z69Y^i0XiWC?Iyza0N7qY>IL{{f$s$MWa&2W0L)Sjf_eibgek=UwHhu*H3~s@u@i%P#{nYRH!# z)zCbJXUg_Bb#dpeK1z%o8xm0x0q;GYUMq3a6q_JMkj;zJbrm4>=P-Tlg^XUvrefKt zWE12oR+iQ()#%ZJ};K zzNF>kAjGV~ZX2vu^X&#b!W@6aCoC?%e$uQtKdVJ7)J3~ktPhhp`7i9+-5XmIyPwrP zm@~Ohxvu+Z>yYj`e4Z#dmKr0CdfrGUfl6pZCX*G4 zLB%p7q;*=o0e#-H&a_$mBCc2NvUJai@PzChj(4k-C{n{n)vmCPuAy^wwLQxTuA(Qd z(tagN&;aS6^QSKBa z=uq3}@VsBqKFCj+0dHjiRuL{QM!U50b2P)+7~piD9)Il|F{ zVu|(GR@6D1HN(6@7F=M-N_%!sx|elf>_Z3ploN$2%M*>48YdiJ;lLMl;RdKpih=p627ZB{Ey|_;_{)>wIra;qkG)X2G`rlp`@lY)TKHaurVN z%s!H}-s+8VB$JHEUoP~`cn^|-&mHw+>xp^s$FEXdr-)pGi%q6KGuY;w>zqR7cQf0a z6&*67_BLu^ez!7g&;A;3qkdhVLeXO$8%Y^cQBN^851xl1i2Q}&)@|}QzMz$uJ($E+ zQa%3`*^|mp=|e?$FO=M9IW?C^2pr5Ur0`*cOpW0QwT5k1$K^Vkm0W6{h26y_D3?CE zVX&jXyiQX6^-p<~_c7giulW1j_=)t#k~e;?-4+is#`i|J@jbc|-S{E1#Em}$e~!Q9 zf7ave=XmO$XFGA@KSw(MZ+>E~$9!c=+}(t;{#Agy`+h4H@r_>v%H8Fd5|k$!lNHow zN{f2LkGA&a(gz7t)H8?V`i?W18JKNvH^w@cpN`M*D~6^KPV5~$_dWO zjWi0*9q!+}HR^RJ&UzT#$B(?nKY?lV#@@yF7{A9n8n$WPhgE-;cX5x5V~&T#2OKE~ ztIO$ib@puHT0uPPig8iy^mDySvD>rY1y4y*B*nuU`Z`KX%-t3Z zr&YsI60(HkOQls+0FVYO(EM+)szcoX_1*r&U|(Ix6JaP0(A0j{RVcgcOPU|8icoD+ zbNq+}J1eTMLj^@nT7Q|irkP9gqJ}5E19S!b+_*h69;OExoWl%d7(1sftp4I!FPIQF zGMbLXqbSH{x{+Iv)YgY+OgfYGZTJkv^_oLlOceJH005KHF5Zobv(*u%2AEEyQ3yht z#_1V~@W6gesFk9ep!D0mvjV_!5&+~q7Fhq^Xj#`D05$^L{=}!gx|3(h&>O%OdtXCAQn|mr&J#fTS3DX+(t06`JF zsK88F^QgJGBN0_rKZc6HkmasB!9kqROZO_?WN}(G zWT{YRHEBsigGv9+{VtlU?@~oY7`0K2PMyVy&SO-qu8*Or4KUANv9U+v_abWFftP1= z51iJ{l~`$q;K6Ck8s98=g8HNgpyGY~ zsmfMbgq zf>T9ty_Ji>b0ql4bwNFMM>0cd46%oLMk{H3Go;0w$L+X>>4LXdhAD-MB9=-;>%;0x zcNsy*XRB+Rp0l)?EzX)zdLo?a8vl6dK@&m~HEBD3nSj%j;{x5`J=TG9x6C~is~)WG z@Dy;yG^f6(uV$F(bML~D7UYX6zwZCsW3_r>4u9%Arw2!@$4y>22jY|q)O zk;s?gIHy*PY?dOGsn~W`FM;Cer6UYjKF<&y8GLwq?mdcYFyDHmW zRQL5v4yZov@jgeS3(mtVEzztac%$4$&!%B71ppc;8Z=gG?T_|yq-N1s z6VagaUFlkvx~bR+(>JY}p*o8dod>9P*f(a<1~6+>0o^gp(2Kx{?C*io+BsfkECI%B z8w)D$vE^CqpA$F#WWS%`e(8bppg;_tYY6pJ&$J?$sFJ1{x`bevyIr3O_e@75z->>& zl@&*7pbh|84Dsni@M&<22Rb&uaVmNS>$h4tq>aX5Vpy$9Uta&bn)Db=uGL7j061rl z*zg|fzE+*O@&O#-6HfU}yXeCY-|sluiKEPT5qO$>Vkuo*>r1!&68Rs&Ki{{m346}c zYTr0(Mkx_abxn@f+-S|eC4DcwG6A?sSVQ`arnBS}F1r@KJqBGNyoU685^)wc;JKSM z62meU=hUi6&XOaew*mkpeb!mBbZ^geu?;4WRcytWFB$hVpe$sFtiL(xjh5R8?Ki4(k~{@2gu85DFc&>8AbP9hk8on~~}<>7KerNl3h8Dh}!E z9j1|-kP7iL@?(x(Tjq{tG84De%*`_2O)N|KK|8QDH(`y?S>dqk=U!l?^Ipr3o=Oaq zO>Nez`IXoEqeR`gLm3pZE$K32x|h3vqPe4QZp0kVX{N3ENLIxeDxEUXvV^UAtyLhq zVKsfH7D`Th(&RhtSf}@-W1jg5^Iml&?&F)YNp#`Jr1362lSuqH6s>3_E%BkTVmw54 zj|^7!=OA6$`C7ZzeHO0mTPd*>sp5%0j?baJl#|MrIdI-v4v>#jqX-{&%NpWisFK#F zMNT>pv_f)+X}LO$zNzS$=EdyUlBQ`cbK6&XhDKNsVbSl5gOA6Ia|Agu&S%`(%KUCd zYh%?L_Re?h0Niw%uQ+jk@#-Ms@YAhV@j$r)B-awUR(?N$Mu7xYBs&6>3g?5*`UdKO z;_>QQvBoe*Vh%>jg+M}Ri=>qnZ368?XiL$~C2fI>4}*ay(9HZV+ZXnV0*r1_Srien zT+RWachb@9YDrJd3;(*=Q=rf7FyiZvzDq=kfr{pz;~?Y22qouJb2{O$Y*?f$$|ahg zXhz!$v|U3b;>pc(z+U{J_*~^>_LQ=>+#xHduBZ%F^hD%)Wdk_3oR$1@eFNJZG2mos zF$o8%97P{ShY?V=t4HY;qAL=^c{R~nB6>;m{0L&M^Vxm$P76!;*R!u}`pM~es7m05 z3c52HI9+xC;+;*b`O`Qk6ae=V-SpmkmG8fXLc7AzutU~1<6Iu#p|I#-ZB#h4y{&6U zO@F{0ZZ25!j1cC0pyk{m)zOuBkOx@dO-HXSA@3R@j8VhM)1-kvqXXX znU?^cL$||C!uzVs)O9EYtB#q?qAIEiRZ(#M zq9Bxl<79#GD&JjDxF|Zb-+9ucwB~uYrZw%>AWw~_9m&L5OxdUVpazJA(WOk3nXFPO zxgP!Kp?Rj{wm&llkWJ8@Sxj4O9!f!XEtqRNs}{?mlEaelLpfv)|1u>Vi5+?bC5J)D zF{ng^>7G%3ptdTdf`Mi*4@&IN!7yH#B>>a~1OxyFzqH6sc1aYyp(0Kn%a8ypSHf)_ z6d}}5lLvvO76QEtOGNgLM2(^h+e(SkR@=74=VBYGt+uRG3oW!@(Q2#kEyBXW!r&lb z@Qk8F8O4gepOzoD0aQUj;9S5s;9#H%E?E5RDN_f`C(d-7)3Pv3uvoWk+qP}nwr%U% zwr$(CZQHhO)v6Z;uE#L=-U9xPE5-cMucnz}-_y$FJ94@(IDz)b0F; zF}i%=FFLat-uPYF-)7#f@1_1z-G5{CAMtoU{Tp5Rn$cZ+8MYlATE5F|+Er8MhAqo# zyH#Q@Eqbk&$q`gtUHL8-_bFicKAxPatdYlN>E79`L_GBzrYBS|#DemJ*|0KurUzj` z4lu^SZ4gC^U?i{WJ!McxiiPzNTGtEz!qz&ElPaATEA_t978@^SVq5z#Vm}su%5;nW zIP=-yiXEnU*XZ0ve-3VmNkB`v`FLxx#>dkFl?ADB>OF*+94&I_8Frld?l@Sr*D(aX zQtx>t07V8LF27BHuYVtP5d;@7W*7e(4BUn!=e<|R6UXyD%sA8YxJX&s^|;D;Lv^%i zFx$A^;N)%_?HJ=pc8_)Wa`#B~7o;kRW&6m0|22IPohr-p%Cw|sD%RH-@1)4(s|rG? zb6Tm={Q*mDNK~ypV7iQT#K%*TolFR6$Vrft`IO z8~(fXyFD$LPjtb~OkB!{InHT_xN#fd-sR4Ax9p1@F1h!5q8$2}B(URaGH#1Msopc{ z?mT)cuI(&SyRt=DnEqO_IgrbW;=T&=I2*Vu?T#|iLPBWoRs{^Q-oyZNh>B(i*xE!j zbAT7)aB3hvm^R%NYIkmlI+#%3iImZMaaVcl>{6VfFA*6N1u!{X6pZf(h_@zyUK3a! z-REM!tQ|AK;^ja?4v1bs*-x^i>T!$=>sd+S z0mqf@%|lg2X|$sq5r!OqiAk=8pxhxRHl^0IoKy!?>YysNa+P?&ieA3HB2(hVk@yLh z7;=kYvGW7B+$5ElDrfX7o@n4u+rsi1JC6$deUT76;&d_+Gn|J}W*O5uvq^#?zG&c` z-kC9jj+~qE!g$hnis|glyF=F!p@`7Yx=RN3XY)O-(dN{5?a|E%N#dwT;w*u7PN>y) z_v626dA8rAI<l&f-kaoDD6{P6jiQj`}H9Y3Uq&^Oc<`_r%xKSo6BD z5!k!5QjEHxF6Dh~s{^)kkqF(wy@=-C0nl@U)Vz1-1pzWhsX&B) zf>J(jNT60L6tv@uVw-j2wrSdSL{L=jA8QK>BSGfgl?lEAbeS3!n%oBgZ6+a+!fLfz zD4S-->jjI^VlmM<6w7g$zC_n`+S#>p1t{+^$(;Mrjox!?TIab1&iC3uzwaJL?4|26 zVY;^SG(YzD0x58v@JujFoI^Hc+q^`oP76_qK1golB>zmRKEDWzi`*Dlky1)CcmIH(VzRL#p%zL=z}tczTV^EIT59^c@u_AHdMeJIqsWF=yYbgsH+N zT$)|Th)uJz&az>SYKFcb66rEuv6DsWk!%*485Va_LhHiF+($?tbt2XWBFY zxFV}8gIylrDfypX@UIuV5jNnO4pC^cSB%bhlF=|u4XdfBXJf+nHeB`?%H2B^9G`rr zUpMUF;^Iurl;KFSP>DiE#I^`l!={w1OAMKE1OTwXIE`tl=8=V5QnTvD7^MXfE9ABv zYjUE$gQle=x0`CnX(DFvVL*Rl;~QmCjL>y`;CF4V(kV5oPV+msX-G>y2fMKQKh2Hy zMi%!2n4KBo%f;*;V6qh$xH0$%C?nY%rRw2rdSyAI=#^7fzp@rvH;2(4CqDhXO+#`- zym*RSrijaoH-S6gc)`WCttN|ak!zzt#96Bx(M)BN`f<~uL9R+HOY;DO^e-{SfFxA# zyZl&3@lsYuoy2sNT1jcttS3Rv8TP#H2#e<;D1eC%oj@kkeoYH@o_H% zQ}prVJgfMd{nw3FjHD|x$r9NhyehQx8&u7K zHRCAOt&?aI+pvVK%&W_x72y@y(BDaxmc(eegBMnC5G1oiP3kDIFN5PsE5gnEGn+)X z8LiRLes_iNY_oMsclPAcD%D|EpMOJD>ecTphQ&hex!`~gn!FxGmTG+^ zrB2)nJyGV^lx(`U9rcLs`2?oOr7}r>{lqt{#!+3}?)1-ydQZjlenq#;?S36bNsYX% zE{fR~sdHB1!0vh-)v(hl+C|u-b_MBG);@!&1+dHNE&}b5+RI>4nzA6MRb^#;m?pNcA1E8)yTS80=4mpTfY8d___HHhKXiq=?Rs^k_z zN1I^lX&M~9J=#jCNmOt`}&`48) z4VpGU1vRJ~Ho{H}hjR66uy*LgXi=|P_RmYut(uT*i_x)9T0|OG54K>XHIJTXN*jlA zUY~WWZbZ&;2deJp!$k9J>xX#hkhnz@g-qRQ*T;cS&ZlgtZ|vUx^B#(GBn1=@6{}7- zF;hAQK(UyQ$`FXr3~W}#9_q$2(sEg1&3;z*0&>m5$jZG9=4owc8vpOxKI#zBFB)bS zG75x5h>x8tfP(@}Gig`BW}Mw)nuv&~Nf<^H(Gn3fs#``oJbauc^O@JxRTWBw;V)-Y;bM17Pd zsy%cx1BZK()_Pu*6PycBdClu8j1+KFT5s~Mz}*&PhlGXBle;gB55|Bw9W7dYcFYn|HS2aI`1)8+JY3HrEd`Us0_N=iS0h9(Xv@LByWJ40t$0^Y;MVegYze{G6$K1x65y~)SbetDxK}6 zU$;)zJM?!-(FYGEA0B^P%|$uPUqANz1Gt-qP`R$8!Y@W#V&tA2LJmHz9;<_W(hX8U zQ#A~Nb!pxIAM&5H=MbrF2DuJqrR;>W;?daK*uAb*F8Y zPk;KO-BU=1&XBt%K|mNUIjQ+5`0uo2#M1M|Xk08%<1Um|jgaF-ps&z!N5WuH}LF;6RmScda=!{tD zGrJWljQd9|&??G}vN}0lItW`#`3nNkt(Ho|o}gPL%pk487w{iZU7FZK#H&PfzlBKL#J0P>Gg_hx^+szm>`+PUlW zwV>$lP)fvm=L)h{-X?d&+o6yYu17dICt*CigCToPzfaV$DgYj2GpozDdqtvB^ZBqm zAd?Cvf=K#!+#e8z=qItsdg-1QCSBFAMs^jqNME9Vbj(Tsa9f_b{)#N7effPmyV>eg ztp?do8vMq_(BJ*{ShK<`2MSNu+h)V9c&5Dk?PHO^8?)SeF9u5^VRz^a)!q9GFjPxh zLnAv5Y_R;Uk8p_QkN55=5ef$*49;8*fF9!6K_jo%#`ZzJQf^e$9ELQR>=WdSrWn_( zc5AMMDcM~~YKgC{I`9?nYe)MECoNLcU`l!)4pbPA6iGX*QT~0uz9RmKvcJZ?Pp6y; zT8hd>A&N|$=jmKZLAOHP$Tk*<$;7HDjVQ&?`Xo_q2)LH)DI+srB}U8&8F5=}^k`Ib zXusU{(a&khGwBuH$%^n|7PT)uoN4Y5j>v)}-0G!n1%+nF#IA`}6YI$x2<31X3bXkR zzK@Mt`?R5*Y3es{hJ6Vk8&s>d8u3!A)|UU<526&Mb`tM=e2(KuZ$z{dD~25@rZ4@P zO!bN_$uz3Pf7-FR*P-@Ci+%BCr0L4Nxh=)rI-(X6l4_8Y3b?3QD^q8nLct|msFf;O zq|g|lx^?SmZ@#P8F)MFXySpOd>BPZ^O3;WNFnUG|A;NXP$QOp&6wFQ+)1U_1{942v za;|Exd&SPc(PFEcU2`%nor+Uq$42DJ`|(LAzkcWrK2xn+izR8STPJtpnd7wYy}^CC z-O9MeT?>F}^QW@~Nbw*P0-8i*i71Nm^X#U?+a zzPul&$n#wC{oOq@iaTG*)qjL|yU~n={1~6|}&&jZ34vz~@Ee^6o$pJU))|AFt zH(?DW))dwVZUAIw(l50HQ4NA!jomS!0A&Xxt40KZKQJHykmZmR#IhltQ=NeKynH&XrrG_RUQ5=qkqT9=qc@$oYoiIIrzdqF13EhU*oukU-qi8<%&RzD9h* zv+7){_w9}4F2_xr9d;{G>R#fWvgR{gbzf<&_ww1W20nYTk-GMpTRz&SEqjfY^28rN z<|-u_L^R6al)4oKI*~B_ttFJkRI5@ST#6z&p1=?^zv7~#MPhTF0VQULql{NfvX1%{ zZ9a!)*3^OdZq_ugKLVDiU~k!K|9Up}eUMhnL6`^1og~UNCBl%#M3Xeqo;?GQeV}n# zkG!L4(WI$^{}F9Uswnd~6iw-xB3etFK|!WM5R7D13<|+tL*A<--93Pr&_x2%^5g5 z=Zm7*t+o|#hu0%uXCCSi?7wnjDsurE-P1qM{}aSlvgl6n3sy8xo=iQ*6F!ZSh$KkC zK(`C(0i;2KC<%ZS-%3ambf$&WiifVbQr*%>-rBSZ9lH8y_fKP!BvhVgrmdkUB7;3<~!{*b~O+(?%z|Pu1NhPHVr&1{GeaPmIyKDsNy(Nw) zVe?=qa3MxBT5YY9qT-2aijMfUKAO@0x$ps zfxuy>C4rap#3sWjRk=z9mB%RzMmv1VsWe^dW_0+d=9vUa^Bu%Auxu0T(r-orseU`E2!k2<6S|Km_i372{QZzFp>%)vshm&%jurw&!b@#;3Aq@YP2q!> ztGx-O4k3CG;XqO<2}4j2r3Cseo*IUFmg%{RA>C#4skZjDd+TlhJPYq!3R5%~7U+W1 zhf_GA#uI&tq(f;-)Q?pOk%I575ZmlQbZ^lpmsJ`)&t{;Z6h1kPPl_>zSG=K|BZo9s zJ35W*8GZ;&ewPpo@P=sbd1qayr$-%#=GQmBP~A=RKlLrlEZpY%Nszp{z8R)vZbDiuF}1`o6d53)g- z8Sb?F9~?Gaf%0cZ{h{*VxT1K3304pa7AK z2KhR5yGCWA9TMUV3eUA(9}+`twvSd{I}zFvn;Nc2LV*oJDq>d z0?^|=dw@x)K4O-9`I*8l4pGy}DWz!VA4?^a;&L&tp)$kBETv{|U+tzYI8nq)YJU8g z@>LF`%1z+JZqf+|2_dB%-n%^bEFY&>@ zUhZuzI3VsskkYe9i{h5LKI z-4u9pv!EYPryU+%wS#I7aDcD~6=cEVo@7W9L~TS>oeETsmhLUyh^H^@fL&AWxjtcK zzbBecTiz7H>a+Uy1*h&Y9~*X)zsDR^_cBO6**&3*m(tW@z_yZk)uPE}xdIZ*yMZUMbGUIE-1PUcst^3X1vhYq8q*1nuy zSlJz?neSfgOv^Xy>BbXm)mmsxr`>Bhb6vM~)U25X=n8=pJH>cgLxkP|;lOSO1lCS> z^R(~b_0fFmkbU$2$tceVgg8KNTKuIBC?tBYLa8J>HDiS#(@63$GZRRt0VQ1`;yz|M#A|=?0 zb%PB3px_H+oK!3rW^t;n9i~nH@eu&%3QtP3jJikX%?Hc2ywvkgDyMsNfLXFE=v3Xf zY@^2ci0n*t--~xvuo1tu-6PfZ@dUAEnB=m$aUN8T@ev{%iW4xs4trqcO?iLcRUzue z+*rj|UBtUIF}tmW#}nw6m_60BY)P*1JYX&m34#!NOMOS8?h=twF^EJ>pq)30$6e)q z2KGx}XdGucF{r(tlS>v9{IZV-U0u6Q!p`}KB9KHX9FHumdn0+K+V~r4wP>64{FCdt z=&%om%Mj;)!b~#`!OuYfhGka@8(}+l8>OZ95r3A*-cm%_GY;vqsECZ7H>)IN+q|pZ z()$d+h!+(pB#|4B1Ylf5sbZRBk+yZ}=XCFWMAj8d+>U7UAf^VoD4|xgZN5m|xX#ye z?|FsR6A6%-m8 zBrdp~8Ix1+8yO}fAuKC2H84BbKi%3NvlYfoNK{`~2JhA|)rJWZ6wv)VGuLNK3r`Nr zj71zCofx7g>5P~g)6Py+b~w}1m0k-vWoIZ8}SQCCu2T3%oWk?H2S`+Brie_Uba0B+WBj~5;0M6 zk*Ut^4lGP;gqpO!slVzX)rA+!mFdxZzu%%8dxa?TcH1R;;}Aiw^%?CSB_}H?E-=@c z@^qi;$%#@I(2!9Ytto7*41Il_?ScB~FKWo>C~1*>C1sGX(0C`!`HQocbUdOagCm6G zM5P60rXK5@8%qqAR}j&WQqz+Zl~oqsy9W?wcsSgdl;6Vf3KSmT5El^B-8|vEj))DB z7LgK^9fL4BIzI3#XNRTjz=%UmnumBG&9o4^)f^R)8MF*-AF>~;mzHBhPI4fdCLZS1 z*4Nh5ot1V?nKTFoaK;`+?v?EaToI8ObT*9b-v)UCO+PcR^X~xNW$bEkal?d4u2`_@ zt~k}Iol^70b=)Lvd-l8_&L%`KA`;9G5aoGPocl>1Bb$AY6A*f2bCi^|o2Qi4-6SA* z^Mxhw-~O8dKwY17wf>USBWKm#k&%Z)l2{e5=wabp@d%a2nLPfKfi=^%_`N$_oo3kq z+==BZSko+%?yD>VWk1L2ct{!0@3Lq2e>W&vyCLHu1c1->Z)u$ZH=pf!t%kPno`}}% z(lNO6FthN*B1p7<+_(dR@R+{2)d#r8Cwxd4&9f za2dM;PRmj7l8jWTWZv;2*KwG#)yjqcDVXIo|>YIkhU8C!D?C}pa z+?^a#tIBe^Bd}IAnR}Aud0o|+g#8PT`ljZ^X8-HSvGlAPc)@D*#bS6G8JS}RZRHW0 znaok$6*6>}wHYgDw}AgJnI~keHc&nPtOM5M-&RhfA|bJrANSAlD%NLICz}w-AWCv}`AGp-dl5xgToc(C>3LA%D+;OIyT9Ks z*ZzC|Ji_E-QUSn&*6#zB_`<0(tjVGln~&kV*1+HAZD`Wb%t~te8`96Gefak!{>Ms{ z$*#&uX;Z2hqdaSwzWH{_O7;1H7S04og$}gk=M7_)S_4HFvs_GZ^qR*&!jGHQmqhri zA91r{#904RwM*02o|p6P>C*_m{Tr&^T5B&t3{6w67-J`647#QNclB8IIspGtC0%o2 z_v+o<{%DNT_sERHeQ`iw(+7V1p+tFaSY@%KrxCwH9o5cWT=fH|-~QuU>;HRf5AlI+ zB(X80_v#!!6z`mTlzq%%&N(MaC+rFEhBfNo>il;9{P=pZ6{qj_%T6-}UDoFzsip#Z z9%{LPz`6eNO%Q!ZGIi5~Qq$XM+2xB-c4OzqF}lrZb#;DufsKKMnU$WQt)Zp4wZ0jU zfItBg3!zHM0v1(t2q}V;k@)Mt!WA@Oi_Ha{r#d+X4mrxi^XQOU2NHO zN~_gswNq-_mA@Z9Uw(v zS&MhaemefBzNz7^PLcbLBteldELFX5`3zPxG40e%FbJ^+iJ}VJX{f~}0_Vod4^hM+ z+0;!zt;BA-#-5$~;?~BGgFU0xwRH0WK7_bl@9jnVG~(2eY>ceTVbLb)YigUcKKqxK9aNOm6jhbg6;_tk z7FUxn)Y94za_!+0pkPAp7C#xeiS7>JPD4pcT~}UR8S7FRG1_j?#jI28wRk#n^#|W# zQWZN}i^uEza(lbfrtg<}1ge;b`v1up{-}B923{Nhku3TDnbwNz*2@sb%v9&i*qrEA zj-cLhlAaXAd7+^s>LLO{Fd9(k_k5tB0Pz~Z8ez1>02l(A5Cmzo>&51)hG`4ys+M_A z4BNU%lM_dy1`D?mlr?-f$oZf8m46T%=XH2dEaxxaB~QDpy(8cI%pWz?c|K25I3rbG ziHkA><(Nr9o87l;2$$7ZV`Jp8gwQObssvhPqsI5#MTL7E2dT(}R6U)7CJr^Dri|yH zSMY{H)V?gJ6uVS%+#}T!=_#MV{gV-;SSMPz&82__v2gOIUrzMW|$z?)?d{| zvsZ#*&(+=^*24HGYe&Wmbth?!mGD;NjlmfAN(Y@w%{x-(UXl`+3#_Vovg{0t?AY_{y-$YylX0qH*YNyMP5b0!mZG;Vt&OJj=K3ocTTh4Ri!!y=TB=)1Us2Av40@-U z59H3BBxN9>x~JT#@mXRqfP`~P`)^zK7*rg5@7`~M{5nH;+!&^Im%QvgFSztM@)_o<|6 z8pcVuaGYhb!{LzBOm?0KI(>iR%I-wrG?f;GQKYpZiBg0u&rB0UT{@4H<>8A|m8G?6 zks{A5!YPGZ+#kFj+21)n^2a3dwY3eT5CKK?AWUHnGzpW(k0V`DExWg{cw5Z_1l)BOLlfPuNd$pG3w8ukeiu@M)8B`TK)(5erWoUBePJz>;7#RP#NkKDtv_@brj$1=_ejem$u3WAm* z-Bm)Y+~>%ov8pJDSDCZaV{yuMn+Zmht1gmRtGkqQvFd(`zCqA6l&%?Hw7hVB>H_Bq z?kN~>upnW^#E|lp^_ujal0hYr>YQxtJ`YScY#=+A_2zvz-kyc%r=8Z(=xBF0xL9{c zjBKCxv{^$Vf}p_Q044rUWfu9b%gD0J_<{=o{sR#LMg>9zM1@~_??~v_Obv;SA3mraNSh2s`ege2Mwp==*6pYCLmPI2b=8 z*{=?b(yG0@-B~Vsvg!OWC?6CoF;+ieX{g=Lu5j$AbX^JE>g<}s>-G4&G#%V3hR>$W zGah-dm}xy&cOtar#?Gb1M_PyUBT>3YtL2rkxuB41&u5@4zp zE`4dV@%imJad@n*$2=~w<%w&>J@hb&v8I^I(bwe5@HpzqMb8tvl_OsW{tw0#bu~}2 zF(URnLE8B!&Qu}T>y&Y4ya%GH!KPbpc%)3n!ci^p7L}lo+A1EZ9QmfW# z%H8r`Gd#r{uwv!)_{Z*gx7{q-c@foVF?!8|#b*V-cJMib%Xf6~@spF_9wv1U;Nvq^ z9W3+(PwV}cXiLZu=M)b1X0Y@Q{x#sa&6N-SHsF1a3lw%w=oOB87zP4^UmM24k?T`V z@W}>n7f>mTbEiN<%$;nnn~Xmol{|KJ1Y31ZR{v`zVX`^!%11s+lEatRt5Rtls{q5Wt6TVpp+lmU=ZZfm~O0~&8}s3<*^1dx=C#L;O1?NKZu(W4}T1^|=~Bxwhy))os9 zY`OHBNuyfBn`2W6h2sB&etj}CRNZoz`N%#J8xM_5H5wLytBX&X?Uv4`(kgwLOD=J? zgVBk;{(R0cs0;USvC={Z_%|yh4>xE3Gf(i&6)^7uS2Dlw{S$8p z5SYu1L;&^GT7knEwDgW5?O*eo9^cizm>VF`9pWD-=xrzS++0^6X7um9Q zSLgUTwMMYs#}4t9cL|u|se8&$fhdn_NoZT5WmVkvoZ=e=IQHcl@@MpXz>`c}&tS0Z zPkPNxd`6fVC`hD_IT@1K1xH@Vtd)4#@6aoJOMPApRCA#ot}2d|n=&i2RTyp}2mE&$ z{h8KLsK?^dGWWH(^XJukv4s68#<$O3!a)Gg?`er)!I{Pa-gaPAR;-CKg#L<*ZfqzJav3|ZO06^F;O7zH z40zE0J)BKrh&&ndL2||59ma~&>FlNLnQnh$;vWznnfnF_a|gYJv6FrZrP~gOfVdno zGbDBCAw;zYEbwN|Z~_Uge2A3tPGt*COiOBvt6Nm-njj^fNK(jircL@=+yLXsMSNDq zbmjP)4Muhij#o-iwlp2clA%|fQSXLnUEqjnWo{5_c?EQfrN8xVcT+O2-d>aQB6W}r z61@aB_06Jb>hu!63v<#`m?x_8aDvE091^j#X-KsQs`w{dGbSGeJtW_;ZQ?(iO4SD9 z-dg#FQu(81V;?b5iCpy{?tg;d`QG?U<@|#+NnaRoss+Z{Z*-1S^i%Z5uAD{YdnrhJ zlwaDHy}oZV)pTzUsJp^B>l{U=^m{NS?{mFZg=Exwr=m}pl(R7Tj^?lL%B%+c{p5m>uoq8 zshJ8$kU7~TiFdJ*#k)713Etu%-Hh0CM8|v5^Dr=I@+C;a+{fI9P$_DwYy+vAg6-q( z&1D*`IezHtpziB*&Cqvk?g>A$be}GF+1J-biURxUB``ayke zc%Rn3JL(Y%noz&+ORqE#0XMEg#esbMAz$%j(m~wdng0Y1d?C*7u_mJE1#eLS;CS|- z-~+I@_E0P*WE`;;b1SA#>?Ka<{7NbnQZ`we)?ZxcK++Ik-XPRlYvt`!$i1n+ zxqr@Hs1x(|5v+3h0H4AqE;vbH_plTRQ5XTCmlH6*Xxy@rqay=CklB4}gp!!0xoK;v zcf)Q`4%LsTkS0~FSLD=rX*G?~B2y^TE98>YbiFQbWGDndcrk`xe5a~$k_M4%fVJbp zSxgEsc&F$RAO1d1+xpIc#Y$85EJ|)|&L2@Ri_%A+`(W^my4CYGY(mnT*akvMh0R+Q zM}M&le9Zf6NThQSxC{;p;M|&za>nNtv-h%3+p2rC-K=>UKq&eHc$kdB8n8*i6LT|& z)o){ji54R(rD%~w&&_E;rHXTE=y*`08+TT)TF(7(KQH{w@j@}w$PMRy9%SvgUw=Yn zqUu=vqD4cO(u`?35E$&dZ+g7MV@i!zUgKk|jdyAjVG{jN$$kTNsWi-{f$nGf^@04L zzkyHvUWxw&_NU72!W@^F|2`tVpU8(jbZ(VxY}vTq>V?|r>jAeO2KQltalvnd!Bc?nDX{NlpzqL0Y09y z0MK21oaE7;=oedDFwLykJP0e?uyw4^(Sn0;i{cVqPWAr03afLcC#JR(w(xG_-h5$w zGDy>4*RP)T7W>*V%N0kEWl>F1S>w2DQ~GrPBzd%nXvovMe+VNN@n#s#sLtW#>ze2C z>$qdBT7Mm5{RHCUS)IpN(BrPZgX>y#hF-9>TqL}@rD~S#Twv1K7ha&kL3J@)dtD6e z5-szkT;wcl7&K7>ILl`Hyz6cc3Gd#gw*9-7?!APsnq>Exl6TE9+~{gP!=D1iURI2| z>Fj{*;nCN+kh>*9K;R9xeO^tQ7>ZR2URM78>z-txwf37a#lIVxZncG_)|rxPd$W8= z>rJ=Mn|AN>b$|N;BVSlXJ=WX1rQz2)pwz$NFiz!$)<7sSP)0~lY(yT7qOSpLJRU!? zX~rDIvJZ*vnPNiEc2cW5TU~A5%*f@l9~m^IUiKB>0xe7%)g z>xi?~9}89KFf67NoMB0&G)>Zivn-ZF-dc8)q+V-|mtV|5n);$y}>V~T$T7g?F98Pct!Aji326?PI>EUTFrn8q@YOEmf5<<)rQ~%q8Xnr6PFG>_;7?zu+s&D) z(^F8&07-?pL>w%^&sNS0424W1LbNCCGDRgrxy}=R-UqvOg^_;Sw`5GDm5e6`6<5M?=q{ zFMN#B{{S&jFbD@SP4feTg_bjbEKS*)fy$o4CV5RAJ7p-9NAy^_g-qYrK2aI@-lZ!W zo?RUq>FU&GRlPXWO$+gB$>VDRvA$Q8HD)TDh9JuA_0y`y7llww*%1Z)b~7$Oyr%DSh6aQgLblQsk$6dBmZL>`CN$vfJGw%+z6)ZX{NrUq&0TxA+8S#h6^xFChOhH35#^I-qx=L-2EQKr zuO2oWN#*5)M|+DJ7dY9Qdi#NojO7pa+p`u@5ElBmoU?2mFJ*E&)Y zzR8DFOmW9;!8v+z8I;qcRz%yWh94@d^LV>UUj_chdH{MQ2DCkhV>Oc4$c6(?M_`m- zM{ve|`{r;xyon~u3)?qx=*kpeQKy&e%rO$OqIUgSpWc+@InoY}SUn$7Rsa};zI;ZI zQ^J)%glSCf$*?k>l$}NUVmb@h&v*7dR;RoKWFK0=4KQ^0_r%qsLu#JjI#@SHmb^%Q z(I<*tcfFIB%ozig`1L}+OFM}T2x2{?un?ny9%ARXNv=3i310d znN@ymSTF?Ct_A)e8vuY*UM&!aW$2QLo)h62a4Na5$Pbe*GFnIvT542s%@BccB^aJM zusQ+1K}==7;>rdQ$%!kljP^9&4Rx^oS2N@q?MJ1sOOx_LP){1mBVnbLpP6;y9Z~LW za#SrV9yurmHBOY6AKLwe1`n*P>Twq0!+9>fZ(CCiMIAX4*Z38|LVQ~kP1OGCqRR$& z_*P$y5r-r@<5(M&<^5Z7+FQ|)+)@r`CWhfF^h&p*STk z6H{b_QFe%{K*bd&<7rm#L@If!m>w^9rPYf`2o2mJDZ}>MFjMnZh39B)mEG;m-nQ0> zmk(fK(bHC&ZP{})s>s@|h~Wx{xxQgELYgR#dySjL!^Y1LYWHvREt8}#QGt(SI9b?q z`Pi%iLWI)3R>mbb_*{UmT7G`M)G=3FsTvYm^?xru)K62quX_sumn!%U?yqRRqZplYW0G1S9&(F7W(gxH6so47vmd5j)S`dB=G#ENKGA%TZ&WKr zRWc30J*lFtyZH}mzoFrAwL1$?yL!PrpBCB-AfLnZh5a1wPew->YX zb+R^sK4EjN(-#^9Jk*jNvHOKB z4Bap!-9m2qe=b*DS#97pyB&R3oaOuM?fpF6u4ZP%Q|{fbpRtI(F`d+x+FgS4g}-vx zGY^9BSGwLz>$h#YQTV{S$NyHncmIHS9@pHzk9Cvz5PmL6*4(biZ29X$V}%-yL%}wQ z+vb~v6gn=0P28XnkwxuLxW@QBLQ^H6qm~itg_MbM@61xsUl(x3AFp%=d;l0)GYSy7`aZmgD0CY$ zTc2^qSVLL^oqBRuCaATtXA#MQG<_>(1ED$QDgq`FO{!<`Xo~(V$9@cTI@30!4}4P8u&z47jK!k?*ZngY_u|>BhY% z@I0#u7`~t-<%1M)HNm}?ucRHUd+$|#4x*J67AcR2WCo3?C=wH8K?TS2MlXc?CCvIHUW>KWx(B$4|krnbN2u3VwITYd_ z3vkrd*Ve)Ku9-`di~Y_mWt+AOvr?{LeR{nEVM-dQNTW^xsF}k<5eTO`eSY=o+~NKOrlOJyQ`JDL zbfi{3Q)v-DOPtv(9LVI_NCOG&aRLQlvU}Q!ygheH^4a$dLM*}!EqZ6vIm5f8Pe)AtDntfTf@enR%!-%myM?i-)keKapMyhe^F=FX)1+^nkHdPjA5? z{xjwA^??5`05w3$zftoYtv>-IdxbpMy^kR^*Q-NOQ5eUF5{(A6iMr4`Ms%f{x{b?; z7{eF?IS(&38qgKBuw}i}n0SbTPKLg{j`?sml32FTcS8d&6@BpuPCsuLT~#bHJez9L`FX%8Q+U#iqM zF8Yrgdl9=kWk9^um%EJPi1A4zXf``s$a18Q!d2wiE27kK*g8Lb(1INOkF{8?M32-* z-Ok1XqSz}CqOD_B`R|kAB^LpC+zdK?L<}?h8HUMx%LI(8b&mJ&7l(6cEIiHgk7_e1 zin894_9Q5jP#V*_n4ex{iNcDqiT7;@l?s~B5)H6XxZl|L5{8Tpq_aZq;L|8b0$tY= zk5OA-@%1X&54GQVRKjhrc@Z0!m)!}tCYyQz>#L{UqAutHv-wI07eK&~H^e$osWe~E zqP;P9dryrjiuYB>`4HAux>Db|IwPoi4ODko5cgt*1?o@~L-i21ShF2&mN-y~R3eH` zcc~>^306C)BjoFXrwN{5kwV#xi)C!w1EUgW(aB4+Fw_Ap)V_+SibQPmKv|VGa29HU zp7G~Qoro_d=5&c?j(|idyaOsdvbYD8CDG5>nE-HgrSD#awX!xH3 zSThJ|8gwF7Yf6x=Y8*|(0t!lABF_U2%Hw@YUDhe_C&@KlKNbY(VhISJ<5?}I3Cp=c8OWf)W=cNA|KTP>Tf!m@ zON&D>9a9xl<3@zHGP>Ga5}k)SxQRQE0@tY$3{VVgB}Hh&oZb4|F0)?n>HycX#Stt?6d%m7UG*KjrLb8xT+5}AKPfi{2h3T!4< zYABuWf%@m}|EF9eS`uQ57yM44T=OU*r<0Y`_lBX!7BZvoW!t~PS+6M$>A+ex1uC~P z*QOx_N_od&J9}M~Y}8-=Mrc$<^xz%A)r_Sfg76uEzFVWz*Dr)5kk@+`*tB2(yPnGx zWVFS4HIZPQaLausVk!9JTdBX6E?q0*<(3qnZ>Yu0K$hKw`c5xYnisV6Ov}cH;`zQ; z8y!B8uuSr=Wt~FmeWhW#!X3nj7k^(!p{Au3iyn~b0&~An&x6d(60)_TMh7}6uRr2a z%{Svls?H;Z=9&Ku#cmn4YD-!ypy=jPW~bEvRZUx&&Nojm~TM#F7a&f9HX>C+7 zs!=OGW7E|nxs;3}GSLAwyn;G?&iVA)DL7P~VBB-}PQut(n@o1B(sZLqoMRCPqL1rZ z{Vj2hNpy`RB7MFK!d$G_%+|rtiNwbhPW9N`huE20-3>V&^>U;)@E{qN`+}lpAjI-7 zW+gZNe>E!h{A?W#aV!bdHlf&f-VqDeRqRW&B-dFKsNt@AmMSLg{AN#6+L3NE5*eRt zAf83kv5JKc4+P5Y3B#)(y6gz0y7Ris+~q9&vEJKp?Y!Y9-S65f@6+%`HT@!??WQ*R zv~DYy?IaC6R^$y7N3o@Guw@{jl)s^cRfI%xqK8%MVC&D?v8F1Q@ml`7EdIj}xbY8_#&b_jUJwpg8f}g%K2i!pk+oS<`LkHp99=^b z`xpmU{16);{TaeBZ(xl&UGb<~Ly?fC*ig`k zrxiglqCV@EHx{4)rBR?+i<52vkuZ$d5bPB)H<6KoZ6(Sc4qp$fi-dBDEQ&$8>TZV)r6LtrY@00EZ%D z$GkxX7o9b>Pun!*GkB(H6``#c&OYe9R~c6(fcgFV2!-8cIif z5vF=g+)d*5+>{_npOnV`Ma-riG65R+h59QU29$NuUV2o_KDYI7xZ5gXt>NvcX6tZ1 zw2)M&mals89$lxP@D0ZuSl@sgg34qZ#OaHVeXwl-qAb?4R(XGKL}xk52w$J|s9Xd= zA`CIJ!S2kNkFZ%%!TtgzlXdK{Idr`c~&tr<{m7W&BBAid|(e7 ze=Mzp98kG43KT^LB(O*-35;7m4OVI{OHG~XFsiw$hn5xUyRlF!X7Y)P8cY2#Aeq5{ z8WWd7uhc%)_i&-=Yk^3fPAZyZ_;^YRHswwl*_V>`c05K@ka>5&gpQTPV06msXS;%_ zv;LjU=aKc9?5OMFsF3FOPk@IT4n1iY)2vK}nz8ztrZ~;X#1tw6eC?KmsPJl#JJ7LM z3G|K8&NzBnegIBZO$JoLTh+YT1TCsHf{?ng7L1dxn>HI(wQJZh@=cg`u%}VhH8qI# zjPPB6wQ9GAg94@tSOLGGG$4+$ALI!L%}-eAjYeZMzS-|gq;psIgjUv`NJce?l?nFD z*P*irR3)n(zhm-E2o>T*EE^*<)Rnds+8Zw*Jq8<`eFpaG7q4>$^K}<|_^()utHjT9;;jN?lvIS&) z9wbH#VGQ`7eMRcrxX;HB@-}z_4zahl$wUq`qi0-vPK8oNU=cn_(rB~`;pHi8X9-Qm zA6KKZpb|-4dZ8mZ_+gw5B9=oVYsX;Pf(v5>S*~G4vwk7&4xWgUBO_YYj&y95zM zmx8BaVdwl|_-jO?)y?KwylP6A6~weKL%3X53So*s?@=p4tu?xv=!lyVM9nKx{YL}q z|~%PI@%7O_?K@aR{6;z9fW=Y-Th;1k-Z2K}OWQ zmT*plI=agX%V3;&eyzF)F+>}DT$8eHZPQfAcF3X4Kas4K=u!6f5Vh8W1g_bk^>n?N zwne~FOXvgPBw;>SY#>~5ijaQgMd8ZLt_Tz4(tPqzdHpT@YG>T}5xOQ)%Lr!=g2rS+ z1YacSH<%ozGIFSXn(-HzI3y=CV~y`B_a7!uP;7s2rbKe@Niu1mGH4-CN|WEhNCrth zfL7hA{+PpyoY$Rw=RCm~ROuoA0b*uYBmHVM?jDyeHF7RA`h+XwQzveRi(%8m(BHI| z329+~@$Dm^oVk;Izin~HA$|+Xhzw=5c10bh(fU<%%SNXDXPF3>}tUENv^F%0@&p+qNo3hrdG*{#KD znuUV8xvyC$k*k1CwGm3*(`YsVDpx8^o!+oxlSsbwpb!4cBO?i;Ys^OOTlr$WO5Nz$ zg}58-Gfm_ZWBHN+Vl)eyqp`-dcHFNIY6+GytOaD>=}7y#XLuOPTfsyNSvMEjx*GTN zQ$XC|t@FUJzdi`@(BaqjHFxl#A#~wsYCL>8u zNL0<{_1X|U1}Rh;Ndj%0-kiA_gWitvsM1H%5FkSf?k&to6=gdT{x(643@qVoMG)1e z>=&xSLNJewQD~2Dec2$6$jy>!m*=<>!O;*wO*|zvB-Tb}VV#2!_hlMI@-kWcVU_HU z7OLU|MRFp!e;F;>BUc5kxA0m9Y6ds7hKS#X80o3Pun(P}aM$;DAG< zCh}rffQQI>c~v=`uuGb-R)fYu4RoXpkdg#aEasj8Sy{YN9`^8B7Q^7ngPw@Z*||4) zi`stU1cq4=UyC>&J$esH?otiMkT#D>w)#E&ic3}8OKa=V^oMP!J&eeyifGv`GgW_KdpRg4u1{x~rC59i)bAAV1tA zk35?9n5Dpu!cl9?AuX1Tt52W(NT4R1ku@P+%Fm==xl&je70g_M+CpTz7Q$nnt7Y$> z`y`l(kA?UR250vuC~heb7$Yw8Yp1k zC=74$1E^@EOknmdkJdSAhm65lx@(=O-!4)6Z;5>;Z=eb7-o0k!M%TnlQyeH>r@N60 z_lQ^dbT2R@?=?Hz0DcG@x#cN1K-MQGA?ErjOO2c9A9roLSlE~UAqk3p8YPm!wsDwHFlq!=tNaal2%Q8RX)-cf6nOPuZRruGd zC;@_;7R97E;-n(!GgWMaevED=R#Y|gJ|pwd*JPKjWiCU2DOOOOn`Bmm;eG`vck~dj zP&Oe;##X8L!SQFN^*|jwRKr;4hvqFJoDs4TT6)*%otfq`i`pWgRu+V8!Q-skUJ(TJ zB21E9F*7{fI7UmUpGF9>gQP$fdEulEF5>FW&%Nz3=`%%PlQCFx)+530SrqG#Y*PGe z8nv!_YnGCrNRPRwbfApYoa)TX%9+(C7AG{~-`L{1Wl}E6n$o~tYc?+fjQEken`@l(Z>x9|Dp97YA;6bJ{iaq@;=5eu6U%UQoOGk8qcCzSx2S ziuv@KuzfJ3-9ycag0zryGV!D9m&hG5*1a7;I0R9Zw7GJ|I$Zm&8StuRZuZ9 zn|CZQ+ELF=HUlSD=txjfE~2iSohy8oaP7pw2U-(>m0=Or1!O4mDM%u~fAR9b*1_!>a>RiB z_l$s@Qd5R6+JTI zwd{nePr?_&NeUBHYEZhzbnxfdX(X|mtG5%e-fVE8B=ju4sz_HIy2mFv*!0VzS=g7E zmkXK7Ev#i(LKLFSw4r-4d|%}=00)mjE6yPDG4d8yV!$~a!J*2BUsVkwQyF*^g#Qk`Kl32BQ}p=0~Lx6+<%ujo^^$v zWSHDD!L}nKu&;RaTXMLH} z9^>m3v-PJRXhim|%V@Th&#X)-tIpW-Psh`}FS?m2E@IQ~7pz@#8@FK9;0eXlI{A)n zT~$&NG+`@!z=6`@ZOg9Oy(HCdFZ-Hk|D1eTcQxs0mpDu;%Z;~bV_s~XD1)Y&_$K^< z$Q9#XA+K5Y3ZfNkTGW5`d;$Vx0U6g9YO{>Dl8U0p2i>c`zvj_9C-Q)5;KX~tL2>hi zx!Cz1tMvu!UOjXs8WuMqV2tb{%}SMLj_*%Es_;AzC@4brKS6wa3??x=BV%=6 zwrY!&&=0ch3%}KN4$LikPJe!}aqT>_?4Z%U&EwI<4jRjtgmzDTh0|&0@C+YK4xR@e zhqM*i5}9^l-4(VSDm=7jm>yKp(i*!EBDY^nf=0m%YSj;3n#F>g;6Si&U~tZ2L9RxH z_~8g^eG%EuFxEA+&UfF?mTMC*(GqYumHr#$48N8Ce))1M7$R>tx_2Z^?mZy&y$@N6 zEF%o~MWo7no|{C;<#O}`g^SD;Hc&Cmm&`uMCx_1#%#w%6X7QbQ>`WXpZl-6hW3GeZ zL;kb<_m=%9fqw0bmbsZ~3n*Y3nMCb8#CPnlzgHqtaCG0-d2zVuQ#~^+9_8SGH2d$d zPZ2Y?b+g#gTCy5w{9#MXt*Wk(ks?N~IA6zixC%iNx+h0e@=-@td~gE!Q7 z)RS!SXj#btdgiiRPS^3HN#vCWtvNf~ZWSN2dc6m%j%_yr2asj-I4o$bgUn=R<5FJ| zncZp#!`txZ9>z{kHj+toXqiJ!(SucTouk*9&2V zQ5-QH$G(uYawuCnmPHk@@h@TF4g9_;n>1Xzexcl&puger2MowQv(*ru&Ex31A=qT- zOT0~YV0y2-A;5hU3m+Hx&7)Uq!~4>$7(PF~wRLQ0fIMPS+h>zmQ;Uz5`$&Ua2R`-d zc_c$ps#HkIy6M)9AIxA;tST9kN|Ujq{nvKcuZyaplwi6U0Od9_ijAyl8I!hpl74Gf z#5c=;b_7+~z*XzBRt{%t$Frn;kE!iGRg%>6DvGlN&)Q4<)R4{(0VyAKs>1eVtLVqyw?Nh1+m_UC7w4Km_&lyKiC0m_+Kj;!{X?i|&oad{!XEAbmgNpt`IF4sER zcewLxJ9k?=`E%B+-35t^3Ys<(Ng{jULVI4)c4me}n`c@r8(J;*7`5!@q$lm}?N7)v zQ5~eSU4>ntGocTvvw+?}Sprl%gbW`f@7HT(JIA|cS{M9sRYrE}RQLF{*hE zk+O9jtqUwKYH_p>IWysJYBJzbH?lf=$Q-YTeh?G>AS$WfrImqhdd#WDRU2menp{h; zfM2_%=cm%<58e6o{y~CByYOPZZtUUY{DJNHifwOp{2eX)X@&${HTTQT{j(s)?~hMU zJ=?Z%=s>g7lRWe1U!Ts_4AgWHbA7hQ^t81*Jx$kY+7+J0YpB(;9sc73-k1UZiC%+u z7f3NYz4|M6JVvWFXLZargeqc4k5`VZijBP^U5*ReGVu->b>kQ-=mnI9m4zw23`0!J zg3RsJs6;v4M;)o{K~aFZQM87IZ3dCOufEs6d3uhjD;ri}F7li`NwHHdyATHjtC zFi{P8nr7zMb5l(o)zE+}dvcr8WH3u*db7!ieKl%0u7gl#^c|@(6h&a& zNOJRAK!2pxWy0M`B{BsfBwlE~%HY6K;CiH)Sr>nR21&0OI!t`jpN>Tr5hjXo=eWI>{6C)e>qVAhXBO~^_jwgDj(FL> z67Z!*yA6h<-bF=tHBK==$X(brxNYlZaS4ndD29nPU-%W7*=i7|1siv5o!Pppzjyxt zr+qZPK3P9Ekv@c`Gpn=YO=i8>iVzr@JNifaf126WDs&>5$&~(x*x%CX%-VUi*mtX8 zYjdm8y6vK?=1M1qu`Qvass=a6Lr80w88DOtB`Yyh)#L6l5n9kCQsMd91Wwe&J0Fn> z?5x;lusRz5oxQXH-9R!1+n1#8UN^5PH68s&($*Ojg{d6UrstO+gre%SNrq*UrzTS& zEHzZtWA8B#IvT*YRl6B7UM`fTXyQp4G!nmr(jHhLreLhnQ)pm;of-cO@jm22LM>lV zuhR*umM<%&2$&+JARK`&F5PJo&IFL@Au_Mp}aw@285{5&?t=N)UaU^6+@*G z2;iBaPLb4bt~ZJd$nomeSv*%IR4*QLk=bO+3u_$AqoHdtWqp+CXQfp)5_bz;z8cY{ z2#VyjJVAqCLJhS%xtqdXCiN=%lB-bD=uclK>0686cLgXWH|ZVnT8hvk;Bj-yNuqMP zXt8hdUwfSLtmsmT_(f=qB22r%!c0$$Q}XuzC1fB`LOPMkqhK*SDyax?TrJUbbr+SK z$~Z;y(Sa?RT6s{J zh>mCcU>rYs04W=fQmpM8&EA zWCko!)|CM-4u2RJR&IdYW)w%cC@2rQ zQNg2-6+9M8$s<#g_7dLxOG0gR72Y4sZY0nIV(|+9D?j+{<9NIpn57YCh|QUOI^%S4 z<=T$|03x6tJxIidGcHS@aaVCyZtE^LKFm!A|M;a0?NBEynpXt9uv-%}?h|U6uvK5eF0xS}ujEt9 z1&u17VrNh{Eq znO-zsFTs`2^NUb4S|N(7YUD{8^z!YZ!2$$5E5J$Cxhq;5xT)-aP)lLQb#dmV5NYBS z{>9t!@&%Q6fM5F0DQtJ-nyDg+fT@`dSrScuojOCAn>GjWWK!9GcJVb@lzwJ;Q@j~h zOw5hOI4}{qDo&6A$mB3^RAmW5K`Dt8;EIG$JvM4RP&da}p^Id2Xjqz}46efScaMiP zcBTC<%bS@E*!OkSSZvFSTS|8)isYpttH9Y)Ru;zw7(?nZk+_4YssB-kbtN1!3SNdG zeNFwtziAXz*V2{Baw0v8hD?#cXUsnap){Tn5}2gC1vzyyKs$FW#GaRJ`|9v=+Wc*u zHJy(W!SRqG!)|Z|Qj{SwRFxQNGip<-2UV;fCasC)e8aKGCj*^Swo<_ts{>t%P%=BpCmcq2f)iqDDLU=1{Zai?P%WtRWjfzf7!ub=R zi6>V%Yl@&HGmyCC`1f%dZSfRXD{w-EnPaHVam#p-HKoYpnYj4Fu-GdgcH3A4SR|2& zsFO^su)2e7rBs64c1>2l2M9{GJ*7zPwTHT9nY0r=(GSXc_U)pE53Ku5#dnW%=?Y`N zs3z?Y-8wkQI`1Xs3#@ZPsq%WZv@Sq5AP<+N;B`c~g0*NFrjv_7+1_mpD!H{H-M<{P ziUzi{R=-icTnr^>h!WW%?lNp84}+%snD*m%PcJW7r0HCGXqGp$rTu7X|6*Yw@XD{z z-1x}v7k%ssHe{FKopQ<{rJlCF% z_anUE=v5t#z?woh3=jv>mk!GWy19uiQ>;4(@iP*Eo2ukQKGLTvjid5vbiLe*7DUot znVH2XzN&>SuhWmo!{sS>Jy9-aFJ6u96ksrA5jEo9FqCftXS?6S1Ak0MO~>QJb@AY1 z%1t1KO!-_5E*N|nzSOE^xQX7auq_mLif3=!3ZOKBVAU-xHB@ubNg+3qME5ndRKxr+ zyst6X_gsZPhWlRQ^))XhE%#l}t8xYgx*Fda|DSDxIrTkd zxtEpZH%RiPmDZuQRc?(uZ-*|2!TB(8l;6{j?2QU7tMNZxNf{|VBQP31+@1H6u=d^7TEN3Ai*cv&gD_LWHMz><@!awfu81w z%$jcMK%`4?DH!+OMFQUefoqY!5Fu{X7>ULy%CBfDH%%%T4R{iV%aCmN@twhX7P&sB z_4CrzsGv5NL;yO{gT`&8bUOK~KqI@ZyW#!9CC-R?$ z*F50^7+iP}URJBEB(jo=%QXU+DiJ*Et3rGo6MHSS!p>q@1{w$GfEAnNx-Nr3*S%Su zsjI=9%(amDI!TsQj)lwRFtm=$&$aBV#cJ^Yz(VED!)z8dg{yG}|d z)!x|t!RYl_HA&;*;{br18JsgDP`8*(VneazhZ9t%&eSWFnFe*CDETH6eB93#4%M4r z;}7euP~7e4t}LVjqQZRFSsyFxH3G{6OHqJW{F_&CY8mjl?+HR@8=V2?n+Gi2INiB8 zD6X0xe!hbPW+Z)bb(hho=<1P~%sp~>Z+hZ|J$fM%Dg<8ExypPgeC`u5b8Fn3oJnP$ zmza%gJjGCrP3Jeq?8TOnvLkWiXK}Hc=sa7aFSznU+s1Ah;Ppr+*thgDy1mU|my$Pq z|EvkZv<=I(hTU*jZr!DKxh-U_S(-E1Z4SMe3Me1q^ln)`hd0gp`Tp%*iib ze>n-CeDV6lq~PsovzeDEpA-%Sb&~peQ>u8K^P2UVXdnP{@i4&3UpXg^Z}Q&VggVjB zJfPQsMJX5KOs&22?fCYQjqSGtlh{cfpxk6*U?z)EF2bd^R6fz@#}UCZ|NihG@%=yhbQ~|6 zeGIHS1q1{IQLR}}#Y{)apTbkDV_CS-()=s_^pe`TQ&&wCMX~N*bgY@ID$;(Eni)VD z`&YE}7xWOT{R_nvMaLqhbQzP?3ZQFEJlxID1_R=KC}X~Qe{aNF`;=Pxrx<66@Tb^{ zF+3n>#h{n<56Uf;t=g@29hKHBMZn}}j6O_?Kq5!rats=tEldTJv-k7il0zC1bQKF&5dJV~?ebmgg%nGaoj#Aa zhp$wC2DP9`!P_y8qM`J-m{)M7qzsN0KO$EO8M&;A6HSmhbme4nr2t!39w^T7J}~Wk z(0men^yVCeX{@vhL7xfn0p*iWihMq}Yeb-KHk;Kg6L-bMu%rEp#713~L8;WI(NV85 zHUS4?q8`1Kqva#&(j#xGI87#WR*K~aEC{;$fWPtJ;^OLKHggRn{ z#~nk&ei{L)`HZ{T5X%%Whzwl?QbqMf)?h0{h)m26k)Z0&IIE4ZOg@c7*Ht1l_@)mt z*x}7~1WkY5A;V3#OX560U#}U;o%_2XvfR|g6s4=`#8L7XS4_kU zhW|u#F81}jRpp(9xJP3F0Kf+3-%Ni!%emRk-JJ=HP}Vu-o{EC%f<5P%vo+NX)q}pq zhDIpWgGcI*<)=CEAn{t%(ds?#+ktEAA3~FB&tI6l@NLuX;opW1xAOwZCxb`SEqA2Z zp>@A`AnhoC{Tj4SQqSVonMji@Z(7hK6ThyGrL9z|m`pZ_#9%X3Xuw%b`!}~@BSTAv zhV+)nb{Z<<+bvnPrsh`9ubw<=CIeTN3Lpoeo+f<^r=UG*e?T5{Vx6D`l(YDm zHctN2v+9_vm{eEq*tB%F0zPp&%a`ef%zwHy%Us^u*iild%h37_O=adu1J#FfR~ViQ zC0JZ7#gInus&gHGT>Iozci#E>$lzyj% z`IcL2`qInJW_Z$kzdDz7WS4zpE2e?3!H|DOk@%z&`mr&Y!6hQnL|B<}g&d?#1M`k* z!eNNz>jasMq>vAQHQQ&5aI_SSLd%RWBGCYI289*`f(X`rnVkF>0(sN_<9>j^jPrz+ z;Y}YlwR@bNq4F*{x0=a8qb$uc3+TFZo`GfUbGM~02y45nCOl60ikG^DkO7Ak;I|}w zmSHM8dgLg9M^XfkrWf76pi@k6+fiBQ?P@W$+f7AQ1VxJ#W5VbujZyRXeM~WNXc}#+dZ>F(y)_#mZ+@JIt zru=bHG(nt&Lqge5^1j;b7N0>MP)M4m?1*VRQcH9aV`nT{nWUa*Yw(^nLiw_>L* zD=v-kJ^XG_UhyKaCS`a@ae&mO$ll{ru4|6oq_0t9k@lEsT`sT$G`%n#RdEWm?}g@# z=QQ-vJa&rwZfVBSVaRE7jymCW5b~q7)U@tpn}ecU?gV_AG>gBOW7McK;95UTrjw@^ z61=1*NE=b?gIKSKt7^460|Vc z)4Sk5vO+u}IvljHy=TcDw^=)NGsNu*zZve%4{{l`s5|rNw^RE3j`AP>3p3wN{hmL~ z{oar~!eJo)X2dHuj&wFXp8717izRA7EDeQIw?~c)OSl1KeKL%NU0Cq%5MLF4NrnjG z%@UKlXFp9&yZOs-?(i?Ds3h3k?x2$D(fS@bR`}{DpH;}9c{>MR4a)Ai+XY+>jr>Ww z*Q;ZER>3M?nKgZ{L3_!}iJOjC3yX8Mwb)g-vAU6s!C?^a^l}{i)Z!!SIlswap3(Y0 z?ax})Akn&P(Zeij-VTd(9vc+1!?K?C!>nkRO`7K+45BII(p9NtQzQnzeT zhsJ(I&JNd|*|+(YFj`ij)krG3m=<=Mn8jiUIQ;(qdR4zWYE{){i(5OqHku%lMjFB1-Q-QMnu;Rz($D6d-{gG$=xpukBA8EiYT@eQo~t~- z{Gsz-R!O7P7P&YD5j=V?Sf~fQ^UAbi6zStocgX6g)$aI2DE=`ZMoQ8rQTiDCO0_}U z+ALN>l7aQVveP6Qoe6sGJY`)<;uvwW3$yDO>t@MlZVp*ap1sO`2gQ}t ztG&J-+D0;*pk5_1E27oW=F(GH`G>0xf z)6iv13cMYwEzwqwLrvb_9nl3%9D^=fm6g9?yCfrfx4}7Gbn2^e>l)?IDpj#XBEY|I z`Js&Tx-Vx#dFZY!q17vnZ=5%D0Acnw6^A4l1-VwiSCI0!$f#%WxIDj7Qw|CjY*e|$ z2tQX-j!|#M#px2`n34T}T~*xFWfswx0Vndm!QcZBBaf5GmNs(J{6hEUk?@A`^mxU_ zkw)L;saCd}E75RcKxF1xXxEwP=BBPf`sH%{!~EHjV$Y5PMyF%WkUL!zuV#eGs!a-v zJ*BH6=i!v5PA99huTgJbsVTE5*l#!adelsgtBc`O4kiCWte-4Npz&mA1YD3NmU$*- zxh?N`?NM6DZ!D@k?kpg3aeUmp*%BKKDRZrs2P8d0-D|JdRnyb zHXuecn)GpqD`d*xW8jSG2r{1?mz;MaKA{G>Bx8-+4B+{@&6({_wyhnOyLQnoQ42q@{qFut31>Io&KtqPc)~_^ zJF1%T+a_U=VIxMD#iH`e$6w$TScWFO2c>1yMb)7jujBxc3A=fCB?71|Reqyo0o&c>Nb70ivtW*5-bZicu*gJ{Mm z9KSl%aF|RPN7BBioj!gumJ?qeP4TnhrWU3mSxGGy^S;4gr-El^6(!VSC^;L)uBHFy zJXo?nRHomNUNgovVvVTJ^i(*hr7vlp097?d(QG}Po50dq#m#C z%IB;15bTz^dAwaI_d{IV?khTk>QC#V0*h}l;M_5Y&NZa6zecia%xfq!ve zwkB7fKkyRR>V&TgD#`{H6}$&E{~GD_TYtL2ZWo+~(kl=X)=HgBs@G}P#bSb3d&a$K z9@e!kfOK?2MZZ@sW^R&7ClIQ2+N}pj0=<6qrx>!J&#z=xeOQv#S~t9*GgTY%+sz{M zM*o%((WG3&<;f*{ky0a7-jPS7P_r*xw&c&|JXm+wg zr%h?(<|(rqH}e!pLvc{5=c<$T#1Ti!JuOcrgwHif-;)Z(Jqerc^%_!Jjb|8$H+(Vl zu3Q2|qhswYX+9j@*$J}2ri4-%M^m$VAz$|^7skJ(FP@h(SYCl#R@TKb_io#LaH{Y8 z=9u?bQODEN?}SlI$#RZVQMs;4A|(^W0yFU=1; zb9daTHPk)+9CUawA7}ea_WAgPtn{C1Hxd1`V=?uNi66ryeK;xwg(8x#HljDkb)9)zPK!j!$&56S;~?EC)mqaX`r6O zQdW9w(C=l1D(>-L*R9VNHZQtZs|F!nH^%EppJ_h#L;W}Pn{VvuUUcQ=X{Zti@{jLb znzh6ew?U+0C%#$!?q_--*h=MM_VW97X71E#u73@0BWQLX@g#9@5m35Q?$+yD1Prde zzB(b8-IRVJi_C;IV<)%R_{rwwQ3~;cyEculI6ZKB3GM1{YS_`^U-3!W$PVU)x;l|Y zVGg3$0yI*=;D}Zs7HFl$Q6!NxR^|#XLF+Bb$=l=KjzORq>CaGeGL`rOG%@~g95oIj zF9tyg3;I|WmvLkqLO~JwL!7N%tDmx;mS8#iO-H#Mb|VCm;9++Ub92 z;*UK9b2d9&bA{ieYn$t_3R90z-lSFwP5>rFJ$4{ncg;xEQJy|4c=D5$MB$i{x`m2L zNKJPJ%ymrl-)mBg-;cZcGVuLq-trlZdVPm zF)1ZwDK>bloZOXi*4D`mq?CM^92?%PpvscU|DyY-edgbRg%E_IGZq>w{6Z`4*;euB+tdO4Dt5x*3Uj zk!|Sf@1xDVky0p-H)}FZu3F#wSBw6{_rSgV2GeWHqOq>aw#&y0j!SLQ<%gQnAjvFg z8HJrMmhmd7aeoTefmm*N>w7DI+6?uLs->~8Pt-!;U|fN&(xp$ zEld^@%}?*l>qX%**SOTsV^MHA7V7C&F)ot9otwGThbUl* zsfAvuw4kxt%_UUEU{eG0V)rP>Ol;<(H&`2s08eFXt%gggITcx4_KLj0B3ndRzhgG+ zan)>uL|KG3kAYOzs`N17p&8!1_=5lZ^O%{rKPwuE*@ErP*goN(n9At+{MBJBtVmU? zuwv#rfVH*0?_8=0hKcAci1WjCB>#?c~1p(e1 z_nwLEvj5vE(*@{fgbNL>g3KsZBaSYRhyeaqe#Yl^V4|a{s`4ZegZ_syb3{jBA?A3z z#Th!NT2Bx!Tx;Yp;Jli3!62@GVwbMqs`Bb6GHokQ)~Gj3iD_+X%OrH70QbIu$uC;t z8uVs_RaC9gtz-Gp`IbSjpGz=jq>u6q`PnA+zamAbsMyeWn5g(aFMF}OVc2wim(p}o zyl>B-ROPr&>s9WWqLktpa2ynR^+$JD&X2eJJeItIEZTY8HXLVj;6RY8VDN<{pC7OJ z^3(o;b~FM@PrpRQ+nbY%s}IMADH$VeNZ4>1E*PvWdL!fc2c9~L^lYZ5nQ4>tro155 z7kiROOaTs=_6t{bYYV!>iKTMd@r2_F8i^#3(`VymR~m`& z(#HNEL5G@CmX8%KWGy(ArIv!cOkqF7{b5o947Nmh!R~0|AU<=pYhG?o%_EnJN%D))kOB)>fhzz3&%o^2Mewtr*e4{n zK82X0Rvgb6Rr-8XT<-=)dM-y~b2; zDP0qQbd75s>&ITOUqE&RsQs*feErTj;0R!D`4o{~K^EU&D3WRAWCg(g<%l`SP$#M4 z^BZ(QLp2OJ2TPOZ5CjS}lPO^VU!h`_6#_y2&tG42iXv+=XHBEKc!R`6KtcX%udmVk z5vILeY+FZ_N^C5#($RO zbrr!M%Ti)am39bz$u@G{MH1-jR=gJ820pU#*#h;oKNR3D7uS#QQvpjd91kW7||XmqKF zOqK?urG%7N`^@~zcuG%`+H3`aMzq}v`QOv>Iz{bvjcd`_;|WbXL4#h)sjucM-4yme zs7alqp+k^P*dx<$c`_}7A=U7B5)G65!OG~;Lh;1O7G)SFx71!syp$c>jdg%tI;9c1lDO$kdtT^MeL=^k{$|f2n#nNz$qsTUV(;$A3KPU%+fG468 z-6q?M`?~1NLxG zC0d7{PWKws>3zL#iBA z(-YGd92c5eRO`^tHcCq=#Pcc*;lPMzdWLqHt;B4~++g>$w&dnqx7+OK3G_wVMTJrk zid*`hT0$ZT3)VhKPBi1ifROq3M@X?2kz5Z>QUPuLfAO`_oSd-(hJpgeb&Tam3AO)z zL=@EtljL<$4k;%G&tlmIl5#jQMV&CQt_bb{f;Mt1rActk%vb&;KNoiZ-=rw~#LjoS z`gUa@clOm*hys_y$JP`j!NVo-sYsy~N(3iMe%2S@utFi8AQIqkWG;jy~K-tuzBvsuFJk(G*{UznlxwZ>uE+Cx06|EpMt zf%lP+lEl_ZS>FKPs;t1WEi4Mk!Dmfv!Cf72%U3a2u2zOk+MgW8tZT@NCou#_gt1Lp zFfapeeeKzHjJA8QY-n=G=atOw#q3yU8*3{=?>*jE>0q<+TAB7#fJM4*ttdpAI4$E? zQqR6t@QQW{ftAA%3OqGr>Cnz&yQ|apOque@u1F%S3ad(YyO-pARU9f|lh9~3 znMmMKkw^}O!k5l_mS_+EkMv#Hra!b415rofNbDVWv$-8FwsS~C9n1|AqZqt&A6liZ zMPt1gD44kV$0rBHQnq2S=TczjvGkWhA`&SiFz5mT66Hd4#-YnQo93#`d#1Ne=GISC zgS`IV7V{Y7*b*)UfUU(-WX@l_vRA3tn3<`vUZvUGvjIIkR)^AJFd%`=cHZ^E@h0=k zy}sxeRC7y6#+tinL|}Xs!GRRj@Kf0RLYtxr%`yGRl>&&h6_pj_6snV+q$!E!7t63!vy%x=N0+2qPsGdQkJhQlxd`;A+d!L8+q zkq8(+Rj4Z1IwNjf<=K6d);H)Kni$IV!sib}?Kn_BRPRN9bv(Nwm(9-WWaOx~Ktq{z z=St#fYzYdUrbOD$gL@WQi7VP^lt(9nh@2d@K;&tpXtwM>74r3+#C28E%} z?5d*0**|3`(Zi$y3JT4wK_*G5s8kW1&hMD_L}?GKCQ-@;{?O_TWG$H^v-jXLGmMsY zqa#T=Nf-Rgg7gNoR@aCYoB$#2`tu3J{6`{@ot6S)BRBg}ZX78ma5&Q0EF-WPk1x~U zC}uT*DWyY8q>JS*>r9!-K8r*MnRPfFiDc7HZ1!6y^evnH6BHi%@5`svVRY`lopsmbkPe;R z%G*D3iX9xT296E9ZGq~@L~t|~0XZIU-$jR!|MVVhcfbT;6P>`1p{k>@b;*c55hxXn zpJDz?r{y_wDC0VwzCiy}xUjVP= zler_4yrY@5d!$>q_EF{7X)YySkZ$$}C|q9rw)tp64o9PPaEKJkbc-iEye=WJH+;P> z3A+AkAn>ac=odYyYfxJ9u0rb56SO=g9_h&+Tm(fJbQiqYa4I z#;sy8kti17@uD0oF+P?QS4c%`yzE6aSphyT2c>y4g*0cpoF6u8k%B^NI1#H_y#ry} zOA8EvlA<>6rghVEg-hu-Zw>I@)IPm#ddNLWLWiUq*3BN=5EAQHP&0240KhiWJCWpf z5Qy!L5Y5wETYx3b7x)b8^TgO57yGB41ok_P^buweRh+DllxTtYvv~XKUbaPSaNlkjOk9WvdT)g-J|er6Smgi5vuEUdTyIWFt~p zNr{-$bYbKML(eWNv7GRSMLvQlJ}ed$H52siCOJR#)S*A0-`o`UDzP$c3i;)BM}^3) zIYh?pCYd0KL~^P8_`$GQdHq2BMzl#5eYS8k6EE;}OR@V_-T7 z2P|xK88Xlj-w50x5Fl42VVHPs!eJJ^J%;)V}iQ{$n=gAg>c zW5sWQVG$v_ZV#YuPp;UTI!*rZ_O{C7H&FO)+wpp)EU?H~Y*{(j%T835n8ECeS?ny5 z1=cf;yKPjSX63@-K0~=U^l-uLp9Z$O|7Z=TD^DO;UgoS6t|*k!%RYujl?}XDmCiEZ za<`znhW$}o>`6w3g06^>n3bA?f7uE zbwyNwHOkAbj;XRjM$XN;ZBJFszFNSmfMdJjmges)@d@=gvtQ#fkwXt0giZzh6nmg0aw z6`~h@e5Y2TfADVM%1>%fviADJvJ*MM45g9}<0lfH4OWTvf$l-ZY(};&J2)ho^o%gk zrH!earA5vX>&ij9X3Ul)W-$9w^?|2a)=awVNeD6|V0!t@8LUbL6 zqyJ0l*R=D$r9~m9klBHqHkB6rYwG!5Qg>#fz%8cMtX8Mjsdo~E=~_`W*EUe2PD3{x z%MfbFT|esIDZewc$!EXYx1TfgPXFS-n;ejV@dPiYGJa_?0x~d#{3A$7X+_}-HT~>n zhiXT@c#AO4P^({c-g#cX+EnWnj*1IZvzs0EpkilnB3k1s$jFVQoo22f(4`wZ$IwxsX=>W>TSsKTy*L^EvQmHalUsl6KC%honE)SJ9 zRb5fe>K)h+Ehg|c+}UtnOvF>d@(fQrI>TzY(klk-{P$q?i%(j+RC3O;W}TS|<_5yvu&4#+=XAXMeqMb)oc69?h5>BGq(rOr<8<{Xd#b z^59+mrro`r$k+HF1NwcMw+BnU+P!>m`1>9XK5SFbZQ+-45}pVo$1fq+L;5;iG`FzbEN8x~&o zpS}!m!Ho4X-8e%#UTCjAk0F1HBF=)dPz{Erl!2P|tjll^%i4ffD7nDB?GU;u=B z;qW@hkLY0LcNja7WTVqbb~}kK&t-H}x)^eL4v}OJ*3Tgx;bK&F{!<< z4$o+=7W5Z#5QR_0@Wpi;d!E@WPNA?lz!p2@`}~KOHRL9d+=&S_L}E?C+=LQ|Fj1+5 zOu#B|A7>IYc|>AfVnQ{ERGl!Gg%%AFBu*JwswY96NPZ(dxbiQIJJCm+$*K8zcx{;T zY*yOYM~@7q$B)iPY7Kz|rJ%soVOh_*eD=c%Q(Swyz^iI-faOGM!|Ak#5A~+Uk5kVE zhRFE78Ce?%pLGy?gmC1Cr=<+o%6!ZNAzqLt1*C7p@W7RDio0JeU~T|TNH#4!K!S_a6Cofexy^`ur z8qCUwjtYmvw^fIYL+cJ;EaS%DQZay2Gl&mx4TE^#$MMZNK%WPhL=8jz! zZ=o3xmwBl+lF|RLs`_SIbj|h0l>=$%0x{>?->*N3%oDTNJPG-q!j(FOL(wVsq4_2f zN1UThH6{p?aRfyUoRjG_N{MWpD7mSsc%eQy%!1%(WW!6^qQmw7iPr)_tOV>2TPwD` zE>D2+P!#5K_YFIeXrNH3hC-y+Ds6h`d)OrXVHwk_5k8)%%1aY5>fO8d2}&Z^M0kSrY+ltsQ`wj77E~5L}oMyy78PUmcpk=!Z&<=DSh+$*bUcC_zs4n zz>BA>mg($lAg8Sk$5dwKR8Ed{=K7PPVz%`!F0V8;0mm}l8&W0-<;3IF(>!lQ8edx?KqPrN9$Yi#KlWF zC3)?8ROwRIAzD&VOiXbS&6l@ieuJ@JQX<(%D3t{Kkbi(}nE%$Z-LmuV>C?zt#Vn2$KP8^|qIZ!c>!Z{E8FcYMwFI~JX z-lnC({tmrMZCmq*3?4J5`(S~d7yAE$42V>rbglz#PHI28GKb^f9EkH5> zWw*-AW$~uBb8!Q;K;Eat|E@YREMou@^g}=lG`tVA0tp%-k|n~iiIzLQE$@@Oc-Xw_ zV^{n^$CdNy{k9Uq?$aw&JAQ(IO9uG~oC`??ye}%uAzQ2gEpG>X2FgMPY$OEnqB87C zcG{gRqbxJa+6H(ykJ+1r>Q*o1Tzh(Lk^Y1(8>UF|0~N zXz>{H1@1AX%W3DXN`B%0$!u@=N46pywL-Os%T(e)?SpRFx*9++o2kGL-9@LUD{2`W z6S?3G4I2%Q{qVo(y96#3tnDBQcrTpo)M}s=pBv&oYB$xCt4Sc zT`6Wq#f2pDB$29c__`=|e46XqGgf&(kM7}RtV?B{{#HWAVdOe_)PskV6!%q%VSNvB zl`QLO@Es_4wUu?>Au5qCvdTPJMh=TZ3gf?4t-2?zn8G! zq34ti#M~(59(^=il9Rhjg;?>SXZN>1t0@Ty-4CH^N<;2u8OXU--d@^Wi{zXe&V_RS z5ZPyRazt5RAOr#gXNm6Lpk)8+xM|>ILD0I#;p&xi9U@3|;cv-`b+%#3AlhBR`!(+a zWxBF3axEuvHHta>>Gp6890ZQ>zDXK$3Swgg(b0xJWr*&+7#-N)zs_O{a;>;~4q0-I(09H5Q-c^V z{y#v96+SR>2~?AR8+ZTx;M23zG$ zFk(B9&rLY!~f*qoXhpIVTawjLf_>U!E*lawhR~?p%(IHDJ=l z;=ad^j&1l;w6$L5e;zxyiD83rNrrV80mtfA5t;EK$|c#QYsB_6aZCc-$fg~Q`H1b6 zXGBNwKm9?RyOq}>_8gdqJmZ2uwx~H%X-*Au-YiFbJFShGft|H;#S5Nj&W0DZj_L*( zV^ofr2+U@pSvd$Usa#PwCV8;CcJeXMCA*1Zf|(c}Jhwwfr7#f*WQ#h}S!ZfE^JX*Z zVa@Eq6H#?J#&&Qr22HfHrmXMVUWh_8-u%|}-a;Xg2xLYE^Rd@CBcPHV0$p)txeGe~ z(eJ~#vw8g#zxYk1%>Q(mkQUf;U?M6QnUUFrx|7P;hC8iWQj0EeofU(di2^WuT^K(% z_IClihmkqg(NQV>r)O?7uSM)RFcC=vG9xnsJGSOeT#54}R3{gr%ib6(6%D$Jg}xF8hYQ%s~*X zY`F;vk+cYXrW|X8!F=>~&Pb@F;l<$s2Uy%@<*|S0&%!xPULVCLKC`_Q2zkEhG9j&D z!-%uVU}; zt$1CIb>W954xWwTMW*W)oPNy?G(6&*kq7J;mglOFG$5xn$LBuhd1A-$`!xBgXl$;3 zEoepkhAa8&e`7OE+kx!MThSK{y(&Lid&S|&6g%A=xY6xj)H1tZ6jzpS%!b@*7Jmk` z>u|9x1Yq4R=NMM&eD#=15PL(U5k}R|a znzhp;dX`oMvU4sL9VZ;yG{_Bdlu?FVIG{16GM!Mcn`ex%PvMZvZK7AZYbRfn`#lAJ;~cpKS_+wwKqXmFduO%R(Eet2bueS1*BQ(w+Sz1Ne6sa_ z1^ttbOfZVd*^0bDCJ+}@|0=~Apf?vyoihsx@gWsAI%{$dwEnu^m2*9Ly%BGDMPQONUEmkDVN8@7xN>WXst}#DV7a8`Sny;;j^&QV-Y7i}j?5eswbGE$JV#Ah^;IK}WZG)2-nCP{H zg}Fe^U-$*HHQKcF=4dI7>lt;}ImC)Z<_q}S#{vVoUt=zcdgVb!OLkQ~fOCU+ zt;L2dBY|Dlt1~W*ELJMApp8>$V+|YMtWjM%%^VXwODm#xjJ#13%{k%NrZLa9EeH zGy<_wkp|J5i-(=F4vNFts~F#pmroa@Z%jd;sD3VFWjG9j&D!1gYD7C25?CHE95#!hSVbi&*nu<_4KSd`+!| zR*E%1Z!Wx@vjK|3y7XG}JA0CBfFkb=&bQF7`UA|9<+))#Xwa8<ZT0R>vY8pFA zh&CL4K+Z>iPX)_>pMmK=iLuC`qOpvoQwx?Kg%x3`7*-qLRW)wxkF z)!n6iS}Cs#nzg*yx7%da9c$CnjS;+qK$*tV zvJa>i>QQyA>!p7Jppo!>^D&q)t{XK2zY=+7_nq`-cqf~j`#savkSck8qx z9j>Tbv!xF5IX*vKFL8%uKIbzII=YD6RyON`gu#i1`;9cvWIcB}{_h8I?eL-HqO!Ah zeI?!-#|0k_Yz}+frfSL)MnWQXpAeuGtmnYJ|uXsg0+Ec`M6 z&7%VE)9>GWzBK?n)!FRb0&sp3sNJdY6K-r|PTBka)0(yaH+t6eNt!(cW*4foX|nMb z5_E3FT(BcptOW@^3}L)>UZ(+M-3M%DLqdx1L}>h&2SDo|0Gg|}e$1x*7Xas{jENQ` zSt>jz-=-&LprzsG`=H-ul5<8#x?A+?ln zRjRa&I{NKR+P5ijhh|d+s6XqL!0loOw%amC%w{$u)DeH@J3v(cJzag?`#Q)@xnbdN z>5DJ^s~S}x^p3?A5~-z3u4s>xL0?zFdVZ>1Ab}K?kUE9nR_cJ+Ep}B|0Lk`(C1sHA z52J+b6*1cjZzpo!N9_h6Zy!)9x>R4x4VnhI_N`)i6J)0*Tr_<0#754=dpwut@qAw3 z6}}j}mjPZOeiPBK?4prY%Xt;A#%6yB%+0TX^F7p|mWQE^zlx-N@YiVKZzE}M2VS2x zz#F}$S7WmyfzhpaGEH_o1ygu>bE>O61JiicQ)cM>jjaLhs(IIeY50~6bWf9?a_DrL zpGwb+w)56v{vCA(fDURcrmo?Cf%C%~;S>i@9gsP0UIGOXOa- z=Doc(d*_Ra=8Hz$Sd_Lr{7&dHU=Eug*Z~88AY|~^MeaMH^ROU34{V@=E)YEsHet}m z17u(bhOlrLV}dC>W++f1AR_rEXRGt}HMG#&yN%LSyfWW}&}pFJ*i>k<6gl?6BY#R- zqC;mo1}8Yh8P0LxU*1jg-EVd^+p~@g&{$^$?dg2Geg0oo$T3wFcEB&K6qoMKsoHh& zWA<(><-}T1siAJ_|E)~Z{4+?>N7B3KPdzUyUj9>>KO9pReZ=J|b>;NuyJx#S|K0)N zagRzp4xl=N|KvM0BfQS8k~gdW|KUY09eUp_yGv>zE#1q+Z1(ue|NhmRI)ty7udA&# z{*t13K>xy4aIX*E_wO|v_>w|B`ymxyz=3yykGU55VP~K({t*vs&f&f*fZl@nDm>5p z*{jdP0AVkG>$Ub$0Gyowo&u0(PW4$RSkwi6#A@ILm*`1Zp*5s|pwdUjk&UKmTi%aU7VIoLMgfswYILt+4s(=3;Jf6Q(|0K;V9E~m zVP@QSlG+B=xF-yv``}o7i5#W8GvQ zdslR*Cm&PqWJb}VFnf-fStvY_LhjC_pa$JuX?bc$t|=G8RJOyiUB((hK&O@gwR($+ zCGMP;tq)?KD;*6fas?di%WI+Dk$Q~Mdx%Dka3Rt_9O4kq#dB3jHChCIn0qS7n4GOJywE;QG4(k!3N0@9uoESqzW%V`2K-4w{NGKKGJ1JY+18a zC=pAmV7*D(=vXu>=pxf6*BfH018JpaE=D+iRtk%G9scl;vAcTR%3~UXspfd@DrB=( zRcH+nBVwcimRn2PI)-MgB0PN$>_yBoNkZ*wpVK zr3&K<=3nfB!TKS+V?hac=p$Vy)`w_{&A+!l%e?S;G4n@^aCg+M*AUF#^>N+Kvb0<9 zaqbL5A_g=iXZG!tHHKXCDbL>;l@>Ng0L;GLB#^5+@%Hs?9)2Y9ie4q=s1E!`((Q>; zGzfH$srDIPETU)j9qi{I0O=8dIYg<}-GH2paTUT&WNIYhNUo2(74&@TN)t`&jaFp9 zb38B9XvWX;NaR;r0V^?kM0=ULtsTXHN4juq8ta!>RK zQip`}b^fFB9j{t4Ez0frkkYc1!iEshs(W5qUyOt}$r4)_Gzb_A_l6}c51E0_&SAYGZ#e^cQTKouhj|K2^~J9>sQ zl8NduGAf{E(>BarOSTWtDoHhhU5h@p+*f9v1~#pn0XDFKO)EtXdx<`?1X%^E zH1@(93=z+)PQ@}4UGDsQfS;x7$;&u9!(?7j2j7cSl2z{gwF-(UC)y}HqY?$gdW@d~ z1kjvK+h|tTlO=#bd#MrZT6_m=i4K6k{-B_<_1_f~d*?wO4!o2l53c}v|D2lFH<=Th z5V{pAV=rAcctjpJJS7sl6X1h(ANpTYP#kQt9OF#aD=-1W%>tl(@T+BtQ6M*Q-{a7& z@GxrSR2!@Fz|Y{$3gshF!3^w~e2wl^%)uk$A)J#cbee@ybaHD}cs??<4J>1yDbRCj zPxZWv7!-Fz)SEv!7tTJ{@Ba>`!O?SKBG&NK>gemzi>>nmAB0ZC{56}beUWBh{;Bh7 zb22R=35B+tUMIejPSC!e-7Xx7K8)h0iqW%Fl(7f`=bB(#2CyQGT>QSI8AVNDc1M2Z zN%rh&3%L}!GOAp4X=)I1axpkjC{?H$Vh6}9t=4Q&p@e&+wf;>}yCs?8TjWxyJ5p!Qf

<(a?CQuB=SbU zxtRpGPKfS=#@BHeiI5EXR7r0iFNs?Aj8_k|$paIrFm-u$MH2y#2g>nLT@lk=eaQ8UlVk%s~v zyA#PXx7pmzpn1AxrDx`I8fT0E1mppcM)^}U&pf%3yFWBLkXoE~L2W6#AJ^G70U9?3Gr5tIL1 zVflmS0uSqiT_}eYl_gJJt?Vbm(E)J{HWT!Ug@XN)f)9lluM|xqHUrJ&zSBHx$!Wqf z{z%%S-kk|9F{qz#HT`PupoZ#cbeTofC5Q=~X9G^WM2*r)cSp1oa5ou77hjq%p&22H zJPYH|;F}@LBqo%Ek$gf!zQleyHaL*mqF-&z(I|sE=lBk{{4O^`-0`*U6cHVn4gx@J z{BEvwcb7%qnYQlK5uG9KsLjffv}l@?b`|%exJP`~*t#36^1UmJBs9-hDn}owSNJ=j zpR8IZ_zPnM`QH**y{Zr_fz%=9di`L(NAwYTa6n;Vmv*yjE@~FGD6a|xwFo2V)m}L> z`n!U&{)b?{L%LYBl>IsbkDLf;brJME`kxeP=aXNxa{lBK7wa97xiL>&dUqnxI>IDyzLLrwJF35^jy0&}rJqmE=)HGeVvQvnlE3_5NH%0=9&GW>Bwh}~~?^z6T zVL${6(sLEpqCLWcwwf*sX9_yZ5Z*)-OJE%5eU>vRfW-wcA0Sx*=jB))Ar~UfHx`3j zD-67piLGD&JPbet9C*Y44><6Eg9roQ0S6KA7I399%GH4$X0Jc4!FZgE7Nr+jsIMt=O4Aa;+{@ zsH}zYTmTek{1cVnJ0p+q1LZqQ+3E^Bb|=3#h~qk%-jqJtm`@AOmlgi$nUIIfE#v_Y z_!$?^E$qyf0?ZEO7xF3L^vWgRgi|e^M+ux5zA(RH44|Z`n#a3EbKtlv`Hmaktwjg$ z<&ix1C*s^7kHiRX5Fx(Pu1>x@VqWdG*-5SWe(uj>Y-YI?bmv{haS6zqn6q*avx&3% zm06rAVb5nzw@7R-4B~Xm0k_M@g^GO`a*o5rJ&y-==1(YsGBz;amA>wE*Z=PO_mcTp zsr~9Deaa3hA3p)JXffoDwN>IP40`*>t#Lm3mvh7f*LLPrw-jLqBfnH3H`{W?d!EO<2@PS-UX(< zt9PvtBKqb|R6s2MTk}E(KrpBiM%wk`osBbSd?(S#S!r!ytJ+@xzzdn$ZR{DUb{B7Uncyv|*i zm#;-J%ej*Q`|NqI(Mc8lL|&g!rSrl{J}6D4W@tmiI`{5>&if$n5oA0nx#BZ{x!p54 z&FS>PG^J>cbR9T((j5Bb`=Z$8+!G`Hb^e>Di3-?m9j)F0Gj$KWHIZb5sgq%wy0v+K z(O=xotF>dUl_ZqNEOwYWDGI3>vd^%Y0B3)?f6mfG31VZ(Vz*lk%*MYhs^uIa0fUEm zM;EWZG}+jL00suD<<#}sU;S!g%DXb{z)%W8RKF4C@c8@4k<(|mOe?gWi@~rSbQC=N zo>P?>TP_X%FwZuFa-L*$Jz>}M)r>`PXXg|92-rW%%D=|T(09(F(e1gZibN6%!?lyb z_)bIOmYp!{!Sq!&XW)9P>9G%0Eq27!(b;y_(1p%im~y$nggp^UJIFyFW% zmQHGR0|(rwV8BH|?b%+OMPxYuVXoXe3`k64#KH2~HH824jsdm788+^Wd&v`(r)0a7 zj>JGD+TG2qZp>>1xIk))0DFr32WBRBy&>yzIN&a~i&ig|) zCR!|K!PNE_uWH{z;f>-k-!+(?K?==sDW+zL%y2u1NVs|3u5toDLQc>O@&z0sgpl_k z9=LE3h_j?&0EEfHGv4dj+a@$uU8Qg3Lz*#CP!@vLwHJR<3R1c)0RDlWY%?fVcfky9}?4Bp{&%NKTO4 zaOVI@U35-OHxAezG5y+14z;tPFe9nEHsntaYO%u&3jl%N5g&TxvfVC5#6kOIJSAZe z8r_O~nLa2&Sc_$k2!4UbA(gZlxQH1;+gsjoy9jm>xF;#rXjQRQ>2^R63`IPP_;_T> zwL7eMDo-^~Tv#zvUX)x7(E6o@%RLYigVo#G_}NmXoqQI+rlkWOB@2+&wM2oEduf=f zz>JDeq$n)h1@FTTTzurDAM|mB4T3Fn<8iM|$kDy@n43}u&rX(hy|`+bQsZtkNHkdc zgpDNg^iMQr@T(o%fH*p8L1<%eKr4Rv5=7eNMN+oB99|+gl3#BJ!D#vn0m40dPTPqVt z%!TVVLY0~L1cBP{H0`oSG&Y>nY`=@B*#@K*!h<9Gc$+6?A0~4I=bavA1lcris*5v0=rTvBF#t_+BhgoDLvaCsUwjMNYw)8lE|?0T+pH-NwJmn=iCmoZli1P`5ZNB40dErzi7TaFcvoX#nI4(3r$ow$ zc@!CJ$+LeSL1mgty6nS@mR2(yLM$@H-olgs*~XychU4I%jINri~u^ho@9>c0BiVyZ$)ig6&vp(vx3M*t&E98ky_JS$TthYLJ>ym$7%U1_B7nV-6?tG7tta_~z3ztk{>=`&oS<@i$`)Pt&i z_%vJcoXMwCzrk?MKRoNpTQgO>|6-9`*?A2-{eH)9uD(8Ap049phHNHzqQ{f@W&Ku> z>qywT^k1v^O>0bKrih#^iIyT!=iXCwuAG$tTyQ=%5sS0@ynW%|wqm$i%R-%dPQ51) zpQ%WSP;e#AqhV`?A4xbhqg5X*Eh@zT14uua6!OXlb*%FEj2QJZau(D_$?f7au&EoF z;Zp@3IbG-Txh^$wA|j(}bQxPt+*C+t*M*FIyIM1Vjqpwy_nep`eMbB^sU?u7#hp>* zPVJBgq^HomJu-5fZ@`s7YNP)eYUe%DiA)Tq3ihOX*|@}UEf67le^DnBafv3i2qwF) zwNlD6CLgEEUM55mCw;p>?H1YT4IUqRf8^sJV=A}x; z)=;_#TJ{kQA7P1_4k@M6n7iFpJf<}eW&-K&@ck6lU|9g7%{BL)<0MHUGTxU`q|cSm z(j-RM%A^Q>ONcFtRK}Xmu z18OP}7VZ3&qwXBK!w_YdhVFz=Y1sDXy_RWUow+a+w8>z z@i?hSL>L@1%+ljPrf~^h|eW25bS0PiRfQQNRklRy} zr7CnceoO~T>J?fj992Z&`ib`0sctF4!!a;s9E~H0*4&+#LZrcjZnL-P)ectMPH(Lr zNYmF4c1@7!P(&uNT%?2k;-AOPE?*s>tWFz(E3mEHRKj5sk(x)+ zP1qW5<^VH`k;=uJs#T;K#53;yJ7OZ?R=(~cHmUhIj$r?_D=Vedio{AhVRqA$bVc8MPb?GU0p}ya9z=GwQ?LNx$rv(BXwdMX4JFgXj|L)HLCPTL>JKZ?ZaZuP+EL{8E5( z8iOtAKYa`;_H=q_RxhYPU3+h!rIM=m@q@>}A6Vp)?*rhyS$v^;Uz%+=tmC(qdmIRW zED7Vbf!9x2B%YkuXAat_Fw(+Hv@#?9nQB_!ii4_f@UL%t@kwy;`T6gk@7L#X=xlq+ zGY|pWdApBm^zD*HnvD0!xz2opD_R<$gigbsS>zmZD&__Wt;mh6hnIMso)Y(l7Y*MM z{sh7C0nf-`xZ0_B9ymw|W_MOukc3!ObUZVwSTzzS1WPD#>-WZxm)rjT*#O`Uzq4oQr|c z74q-27OnVPnfsN2(kTuQ6IBiPK&NRSqBT+K&#UgywjZZQoG+7?;|1$o{h(G9THj-K9_?q=ow3uB4nPB?9K?LU! zHRMEqj!=4OI8~l2r}LVcsjgLU|BAs>4;_r29QNi1xDzmnriE%y<~DzhGFz_d)+g@a z`&zd_a+g0+UDkQZd>rNFYG3r%-|cU%QnWo;zXv$J{17y)FvP1&e+SpY@5brHXR3S) zoVTJoJCs|$leU+7Rw=pRd0hg02svjHz)uK<+d3-n?o??;~a`x3Nh+q4Nzu|3`2p z%^>)04f;~~`xRCE>^X?E!`&!bA~htKfUtV~W;hbTpg>U68qnAqjN|Q}%qnhvBMBya z8VXvQhHB?98s}T2CQrs({U5JgLWW!Np3qXhIJb*hD%1k@d%T8z*&|@EcaP(lK)BJs zjDrP$1%wO%v_VD<7-CF+4`&h%Fh^h5!sUE?cB4BOuJ%5mhbzD_cfVHaIBbrWf@8*s zq-J7i4R^xrYQnXm2e6#RRf~bNk2rit|b%?x@Jm=;{4GBx%t1&c^4;=N&*GgN{VLH{df4-j=tCb~Mrk zO({c~M*cDe6JM#94T{|~+Dl0pgQ;3G6r0_B!ix6V`+?4eMZ2H?RY0o0t5<$pA+<1r zN=DM3_4J!e1HqrG(a4Xd(RYSaz#3dBbUm1sH7kt-f3IGPnV4dkrC-Z>tsD;eqKpNN zHq&&20q-&+vbZRabW?HMragKnw=eBhJ0M|{0d+ePhcjFB8hTP@?`cXpEOE~rZ$;MVnB}2 zct2PV<8@tHsHzA(y!WkPX3D72a8KKJygGUs27;s4r?2n3zI>FFw?_O@fXmP4C${SPYzd;;AU{(1P$o{fx#p-%9Z#M= z(+E%8x7hbSPD^!N(pyF;p6s{8&vQzm<~-v4lop%CcoQkkfwnge?<5N3;Qe&3-{T{& zet-Xo|BwIvOxCogG8f7k@8#2KX)#C-qkM_bG6@HyVeme4R)1j^)LDolD1w3JBgu{4Yja zgsmiupVl)Vh7>su4G4(2;XQw3Z7jXmFU3gMEQpWCrD0Wasvi4hQVYdLQZud$hwqYh zA&hZ)5YyDzrKum`NHM_?gXKhfGTb*SGZoOnS(&Psd)-*!X?UCt)ydb5IWHC$tqB&l z%j@G!54tBUjXT7>K0AHPxiBNYd7`$D8bF$jZ0E|IofYP??l^dBhC~c}qKEJICKI}z z37FgCPGz!)9TnnRkmp^taOCHLf{;h&SJ)3bH_zD8En9tDLn}^hQ#$Q58}r20C^G}` z%F#}=ZTP%`I({%}z@TB|G|;GX<8UUDK6Ilai7ec=@eYAzP%VV4e&?-&gy1!ef(Clu zRqK4MIJ_&3Qm4s8a7e8b$@wvRAv98C!SYDLghXM^%6yxKy7p;WD4;UKiz(6>7}6{$ zCDD^y8;W?BCJI_v;egl^wBjw-(<``bjV}t2vuF^B3q{BelyZH`X$=`k|CfO}dg>pa zGbMnXZJT%8@s-kr+4%Gb6-Ih!Q$7DI2Xhjoq9hvAt702GEqhk5ygs;~%oeW$e8+xm zTKX^csrY?P=9u%kU&9k+dMy{|t!Ckp_7Y=%#dY&GDaA{#wFk3JWEZzVx6 z_~1QOUFV1T)y3@~<9rgz$Q7Sbd+&T7rMal|_uIx_3Y~47+ z=c4{rA`Af5>b?7%y6+#KtJS0`g5LH#Q72n7ra8|#`)KW|6xdladd3}Jd0KVU760~j zUMR0`x$ekiEH$H|L(D&1rGuPVKU%K`0lH>*+n}4TB}VUpS~%^J*{itCKXgWOJG6V$ znt3SzS<34T-_&tj!0To==$+$_;8EwLGPdxJJ-43Mu!@&$F6)aO0@$)t0)ub(jKS{t z_(A|q(@gK!bL)A{+%E>_!VrVCb9e{O2?x~4wjsZ=(WKecZvpJ)sb4!=O`max*VejA z!dgYC-f{cJa)qGu#E}hW+bc;@y?o9Zm_o}bYxAM|;@*=` zhdHN-V|{NMytep!9eW#pt1dp+yy1tWgeYN@Y>zVWuQ#Aiq%;UCpNk#aonwgyfWUiq zPxW}!M2{U;fTh};!iP7^r=A2;xfr>fPu4WY)i6}`x#(mI$c3lgJfE(eL2HMx9~(cK zqMV<@S_c^G-T87HHLBIix&iesvw<}h!uYhqOun>T@b-x<9T-4sD+VvdN!zVdMr}Nd zGNHyD8D8BBH2H7`W!o+JDGj_2?9sN&~hJI{ssx^1;YAJ+DE6HGxp{^vZ8FRjejP>H?So5sxB?ibO_;-0wIiu%DMA3GI1?ZeW?c2MHDdQqMTG6Bz8HEvTOY`@88VneeD>++kCU3towBZQ#hMtbCJO35M*dX^ZV;s>W+kKMle1nud^=7EV_!L~766m+k z4lCOWVO(c)23FYTl$w^xOi*{E56$or)bU=+QcY`!+ID^8JwVpj8~@eVvo#A>$p_eKabv43@Emb9mGP?jRybN80J`R=Q# zW+aNS-`5zPwtMh3R0NLb-9|k{Z>jTX&TEmox1x1qY1@P!%yu6;pZd)dq%g#{2Mf1u zuN71i`(EyA9}EmY#y~4DAdouKX?JM_SynEbKMF}}+_*b&m zqPz1xFJ|Ji&g6D+M9Q5En;7y+)1Uo)d{ozkMa&WyL~y!k!OXHZuc%TI-Ux|3$MN4NdF2Ar7}Q(y(1-0TVOmPi(_p33xSZmgPD!;t2~V`zW4o)B?8q(+^=lQw5=p2pM9`;u6Nl220OPElL z|2xu>G^g7HZn-5KNKE<7v#39yh#DxDa3rS4_4rAHJ%?%4?8|i-5iG`ZvD5 zz09>`!Nw45vk<{RS4xFT(@`M?cSC@D!z93S*)}xdIrkqEF!V&L-5QOv5JIObrBB{W zS{b=MI0zJL1Z)RskDhB-(~HMxCq=#! z{MosmjhvU}9x!+NyBBOw2dLFA9iU$OhUl^OVx3_l2FcL5FEB2vzp+RMkV=}OihtV^ zZ~E`HhCq%do#IX-8MWmdJM(#nzr6tOnJCB2XbxpU7Nn$j~^EByVpG}N@txN{RCqx#7P-`AoL{)bAdH^|qM(=8oKKAN0EVxN1htdP;73OO z3Q@0E$}GTb!!S+_rCXsmz2osv5_imt^X#TUz@7G2`uMW7R`N_1XZH*bF-qA0+SF@l z2Zf%mgEfbBo@0$Pc#tV~yaHx|2?Kd|o^tO;1ot_$Ywv#Va+Qk=7ZC$jX-sZh6CmlC z;pmX_h4vYZ*x`=zS&<)cSR?FkXk9l57#q}$t0Q;G&&#I*$d-%__Jx8PE%+`|4cc8R zUk8+=4^VC1$B^h?(G?Od^FRQQ;YR4x5|>a{0kgBClg&$^XD1ZAx7WPk8N?b+6z*(@ zPtF=N{HIG&f+VK)?wCl52nUYyjRKwRptI-7B5anBmDH&u(Lh%9Ea#nLqiDtWi@59lj9xKvYKQO8ym z6wc#V3&0%K>*@$$k!Bp`8R%z1_*wdWdN5_SRd#BS)lCL~fxEF*)_X2vrsGh6kfjMMvM-U*~ksLh#cB>Nx(RfQyh(evPMekBa96E22PI7Tk{c4R* z@gWp6O_9ZwYZC2IW_JSkf$^e2;?tp?IFP8EE_H%AszF~%8euRpLG{2gt=lDoTlW>= z5e4=v=aptd)@kK2B*+}>0E}!jpYA!%ye|{bhwhM?j-}7Ftk0md_6qySJ+L^B23c#O z-*TFId^3AqKhC;Zp9^4D5p2K>W-1|r)m!173%l}4d!LX6kKzL$@XooL2AS5IvC0rA z-T(oNV-?S2IIfli#x2kEaT0r#@G!Pdff7{WL(Q)3_yxlmR78f*h71X~91;(pJC%h6 z<^81RrsVpRB|yfV(<&4y9T8FHxYk{;iY2T()O>O-h|#r1)_l^0q%A;Z5{IFS7N}+7 zSh|Chhx>}KD!r*72Wuv%k^n2%r%P4}05DBM!11>+DYiv+Qc~(|;>Nd7?*=1u3Y4?J zZ3B}Vlc7!w{ZJ;HQc~>3aE52Y%HGZfA?hxngVlCl^44F;Uxuk&OL}aZQ;R~Hellh( zo!liu&9&XKd7M@Tpaox!2{Qx@;an0p1*}tw~Sovner&i?Sm}WUzNY!Z;r6*XOj;9=aGg5mF|rIVN&2 zK&sxf#~aS%3(gbrG~Hb7I`$LB2$FGH6*)_o5}d}~-NeS*RH9|~AX)c;ueiV7Ox~97#uy2IlD9aMD5Iwu4;00JIEPi6TyNe{o zMHOCFZDN^%>7gisGwJ{_JUGK9tPWGV{^NE#tFnEdNrNLU;aVM^e^PU%skJj-jSrWV{)X+a-+gsauh3-$ zvhFxwHp_mW>tU`n_LcV_x?;5mZ3z9B5=MS|T;HWMtPrkNlgiV3=H_WFrAp?wPiCw$ zEbg_cN^q?Xkc`r`5M_Jf<8=n6En#YzAwE6fDrY6bG*x9)4$`lce3mIF4 zb}lK80EH0O4*dKw(=#1Id&-prEV|xGfejqVb@>mYr4)>`ZC&Vva02Xu!eOfL`Hdds zPk5ar@!9ZzV9E8%j$RD;o7=A{&UjiiY%l}y7oI^)%%0hIk5bbp_6||6659OA&f~fv zsMpPanpBi8V5VTUc*KzsmWjf~gxh<0TT6+7FRZ}wwK4=id-#F{v#``{$CF4AL{rt2 zISFAKM?p0E-&Y<2QaUoT+U~>KyKg1)W16&8!HMY}Y*N0@jn|FJuZ0h#5E<nu?g&UPo+xKIx(FznsGjsEl!R>0DUh8aF3~ei+CV3297>nO^u%o?Vy?; zfes_}Y9HA7_+|G;HTU!hJo5WpqkZvPb|dFTLeQc2Z4hD#94_)!+Sl}O7y{6dgkT@d z$MZ~2BO2CBA{+3p@u&I22nhUb1X~C1c)>~JSPQ~~E;XGtv%*oM_;x(h!{X}^0b_5-}lj2RFoZnE;b2I zIxj>tgKC|pl<-k_s)O-iIJiz|+hL8-l2yj9PA-KsjUu(&Vg)(U;~Cv2V<<_KRL!aW zMx#*$c;pxH;?rJ5K05M=+(`~%%H%PD>yG%I8C@Mp*|tRe!}f^`Dh{8-f}}QLLLwII z_nJl)5NO7ey&$xiW#lBDg$57fi$B)074|}h4-3tlNIrGL8lwy&_#<^AA&7 z8sPxg$FTUow}??J!9G`<+p>iH)9kmV>y2Mc@n{kDqm$J3V%@~vra@S&@`S*3Gam4! zT&2$;%hG@cI3r_qnAYCWTU3yHCsF8f<7v7wL5a-!CD<>`tF!U1`9q5Y^J#cI86N>r z;#M0PdoL3CPAy0AWdg|zqrKqj3+Of?#g>3z=SVq^-Ar9lcH4n!(!TS%wLDNpfxA-I zZUVjurEdrbRxL@bgaiIGUW?pg4lj|8*Grg?U1|JlK%Kc-;Cc28NKB9%!ncWL8&pI_ z)K5j>s#>3y-vrVKpC%Bl#W?swb9UKst+0<7=W|oCBZH{v7;i zRI5wFeKy#Vt=kTBmb}OmU*09&?Yr^136+kFvcKb%NQe)DOoZ>Gzs`9HFnYEy7EJ7W z)Y+)r9DhtGw8dT6rZ|Lkf)Xi|+qeaS>?#aoVhX<+JCe%dg}kv z%8zhE%cL$y6?q{vF|i`%PZbCg)j5bO8KIB^mtV1O{G`VYyKa=N%atx2d@-5ua^RQ* z02>r|&&y`?8#{Ko^#|_JD4jTaH4_fyh>@gL>Vf-g*jUG)ZQf?;WbB#%qMU6biMpZ< z<3^C?_|Xgo3?^pJ#h@-j0mSb)&_8z8I0zA6H{dwuEb8ULX(89ps`Wfbse-yyE&R3# z@v5Z}vor{oq3<>r^^G1yWes}Z3nEn~(={4JZoN=9ko{d@Z2}XVPy!OZX7fD`(`1X_ zZ4BJw8v7i&VeG9rpTpGCP*2~Cp99#WlQ3=z6U=!$2BaGgJF(bVkUiY`V!zCtB_Hs+ zY1!kjmhL6}O8T`HD%KgbE1ahi&FZXdBzt}|TfARU<)6s(JHEl1?c>4?wv~MLf?Ieu zd5*=sTWnPJbW$4oZ=dg8otO!kd`5l`k{}qYSh1Aa2?NT`EJ5Z*UliEv_$z`@hGg1q z1ILwjl^a@2K*{eRO9>LyG}w@C=J6i$x<+*?QGHwtvB?@VJRPD7uqa1oQ6a(=wh@n< zN6ym$Uo3Do47Di^Y-8t4xN&22^V>J6?l}MuzhB5DAqUM|@TH-&P#ho=maGPips_(C znB3XRgGyzR7Jo7jIWO;;*PNHY%O%hH^pUGIRs3(yA=YTUODZnJt}?Cdpk(lM`0@U_ zQ|Hg_nS#N6xnQycNeUy;)d_q=EA6_~vCko12KJ6-YsxgdZ7Le{Y|xE*wm;&ZGO9RT z0#7SOwpO6$UxOyKdBv*kSz*qTb34u3XhdS|nB}SYTL$+7pju!Ng#mS&B$Nc&<9?pb0KAq<{UUDrGe{f@r|i&ByK2sZhI)jQ5n1X~FL2)h1XrgOMC+f$3Hz(n)ETAB$aGz(K1c5+kDX@d2rdM4E$ zeA4+c3?!qZ%0@G3E`aFD8}1oHp##&htG)g!3Fql&d5Ud$oCm_-#hg1 zc3yhEsD>C@o@8O0@U{JO&XWFVSRH3Ew8p#ihaAEnz7aLj0Ej$jJoI zPTBE8Jb7eX?GNV8Ac!P0}u@2aSSv2ID@-BjbRr}NM{T&ss>|guXk)dtyrkvW1pibsdsY9 zrl%FLO_Z8NVt7G4W&#Es_BirDKfy1fK|s6~-c1VNxGXcU$Ltz_;LeDa9UBWw4Q>Ef z^L$5j3gCY;iRtUyEOz^|*4$Tg&Uxr>3pJ$H>o!gK5X6&L5L+|x30ufhqaZ}3wRoAQ zsZc5gQU%gBbPPm|Lai_yudMOQ@YX|s-4=gv+Ar)!(hIk zY*bQlnjnDK45>3O%VD*C+C-@D<3I@h>#9n?2GsZQn=(<`nf@dsI7BjU1iSBi z(JaulJ;i8cF3G?E`V1~O)vgZ{u-ttkTd&`h*1qfDnHuFf9eA6YqA|p=PIU9{6qJ~| z#^Y>f{nuBMsL4hr1AvI>lQ;>StSj($yr!CN53vN%&sodsN)gp^M-Lpmq%*j$r@`RM}>YcOq+v{Bax|p^v`eFJjvsDNZmLRUTp7y6`tKqZS^H z&*%xF8LW*=8;lui=-x1XibA#s=&5PPa3f6=MwK--4?ex5L{xlO)QjT|lGmHz)PtPs z-@lxW;Gfc9z9KD_L*;1e4ZR;(M=?Iu?Uv-ydY{2VCelQ^2Hce}G}7;n(E|p-_FisT zyf@{Mh|WcV4enL*weU8}Bg)Q0_uYh^gV415yl(AnB<*w4;kDW!+&G6WBqwMHSfQDQ z$;@gDz?vE?&5EjhE|k|~x_t2E5)D{AZr4!P30Ijk)>nDB zdxAc0m28^7${4hy(lM`Zw1;!jMfN(1!=mbPcWCbo1R)_oj5a}5Mjay-W&!#jAm!Ed z;4KeduuY0X8#ErnPIY`uo$4xIl>c=7ZC;GDr^BxJjV3)mq#Ip?1WUaV`(Rw6^6o<} zLGs$J_%@9>TN-yKGu6fAX9BafF@Cl01-z|Mc!O`Mk_4MBbldB!XEUxEtIKto?^CgV zaI;ufRO@matBjtJS_X=7H;&@KnI{&3&dMyN#o`ezcnBSXdT=+3gjJ?Wo6amXb*-aF zW|L4^M7YyW1JIp37Dv&*#~7P1c8g2s%u>n-!B`ovzKlE7Bqd#DLImPs*zikE75gHQ z17j8j-ez7V{#5E%O%5dcMDvSUYZ?rAp{YGq6LCQO&JvIy@PIu;xtcA%)yT^Y$W zJ3CexLj`U}Nz8Nx0z~gS@ojj#$p$jsgF?!EkREQHPbw&D4ea(cK3O@#83YMmw|;nJ zC)HThmme84?Ku5Z}+T>hfyI>&lF9 zKFnT1n8(|2Kp;QRgsi)s{Vz>kS4C}=YKEui8XwZ&)-8L;^mv z9hL~m)6J^dxYf>_BI&hg6M2*6RguM|4J`9qgAs3KNwn1zCd@9ixxGk9&v$yONO=QL zJIcesV4FBkRl)qhb63N2$%^`Qhc}0Xzt7@8hCvOfZe=$NY6dPmO#!I0 z(JLk#evT zO_0RLo5L2=i2It+n6pKuFSf3fQF50cNC!J&=GR=ztlK*+v4bt}cSHf-*M*ODNU(S4?!g3g%QyUrhYq(}L9tya$~?2edYU zkTKm&T*-*-PjQxZ!FR(|q$STA@2QW9T(%E^sf8vl4fEdTVU@AbCRzfW;s<{Aj}y{S zu`Q6*a%lx`85JLRAV#2eJbPGT3<_b9k3qZ5#jL{wKBtDM?5JCPJ0%%B&SmO zzf=76=?oJJfv$cs!u|-K>d}}>@tT@k`ZyH=Om>$SD?SVx2Cqgpx`2{W{vMI~p-6S5 zK#B(e64#3n&@4*N_m9p4C@DV@^~E37=dm_0N=5!wR=Q8Mn74BM%*c3~aZggI=bA!I zJ<|-Bv~LiCZkc4Pkq-dhQamcVvB!wa{4+#=pSh)~>d#CXr2JU}@>d9YJY*D$PnngJg8nR_LAfn9kyva#pG#dWHm?JJlg#}zSZttz29miIU5e+& zhwG89n9;H~xO{;e#t-&aZrFlW3ZqTAQ5HuGA< zmGL(Q2;s7JE}N0?wi^tSG#GOD3qWwJ2)7C9jSRL&7e6=sd|WduH_?5+XVc$P;H~f)AJC;$mTIDD50{{X1 zQ01|rd$}Oz!xcseYZ3K?PXOlZTK4||{5U`ITa4p50&fP5*CYW_+B#lhi|}pOw9+;2 zAP_4Gi`7^aOs6R=;~>E|p;M*!7*MAI$sx!xq`}B?W|Vky)r9|4;b)oB7ZB2k5%5%2 z454yWJr!l%l=6LTu$8-xV(8nr!HI9P)6Jt!z*Na9)e5(O?;>QA zhaBGNDZpgVB1-W8T`$DmM_p^naYk9azKG2*?VbMx8E)aFyOZuY{^frxBTKZwsAk$y z?#e&J?fSrW%YT8L-4%8VO8?y&RQ#S&(n)~e&}bLJ1ir9yZKwD1jg^NU}NP}J7)Ofuye)@pW%xxO#-6l$}l({)i9Qo5DyarS!qhw z<^Dvd#43ylElA3ijWF@eauifNo0}`0gUb-41Xt@tme?UpouUEP)AETzYhbsCLom|l zjN4*F$1?|{U0vpxvi%ftO_s!-MP;R$FTo7VGze%ki;#1Z`eBeVB^{@LSj~y-362cM ziN)j%8ZnnFHa2$Fi~EuIA$~u#v*!X4URfD3RXOz>)Trui1ruzpotpxY@HfE~0!)8X z2jNVwC;7ZBlyCLU+rT>hU>L~WV~8mX&dF+DuC zl^R%HbV(sY1lrkw&xNv`_AsyO;c0kWR8!zW=`YB6@ada)COd&%QfZ-fw4zYvwB{*& z)C_76hV50r8aQ5z1WGihIl?+D7`e_GBtn&Sj&G+TFJsnmd#8_euF;L)M4N;*)B^#Z zzVf^D026U83q}zY8vKTU_L*_hxSXH0_^QoG4~)DivV$Rn86{z4>3nuD)u8aOA7T1A zBAw9oVp@Zrlt!|YkBMl;DYHB^2^Y{9!3rFAGfoQT`{suu3z6++6yM4kB3o`373*<~ z9z<7nDaV9ZXxzI-{_ayKa0i=J{!!(yC8r(3vg0VT8x4@{mMVs^YL+d$n%0Jj$`bNn z=_7llo;jPeU~L;@mBK{mgfI6y*zK}PiFJhQj?Q}FL*t{ux>e=63oP2>T2}seA8%8|3NxpO(5cs3`hP+Gx>5QF zqNmSW&hVj~Cqkc_(aU^zYCeuy(Ms~!{&6V6k3z2MLcj2hOA>WZnC?v#(Qvk~VO z;15YRf~TaQV;X4yd{=mwAloga4d|T&)wkjfJQ4W`A{H8prR`MCeYC1UOefs$_mC=d zN=#_CHR1~ZvSzxFz+ex?0W$671oaRqt9>cxiH z5qCJ96)gx$LQfy(Gbr%~6O-`!U^XGO@(KU*&AxG5X78M`qL&ld>R%cR7(rPKeZNZ_ z$2*pSt{%fdcVj1LJldj-i1;BAsp|!0>VjN28Z!Aw49VEoNxQ}NRDMmTsnOQn?}XPc z=GG{kf>Bj7C@qrrn;=7DGko%s>1U9Y^ic0ZKi7K;(EfVOe}3Cu1>mSW0F+Fvi6A@M zeZm4-;cs8Xj;B2>?H~Hie6HqyKtIm`zj=xBa=>qYM(g_vx&21krU;?Ie`EswO_(3p zzwXbjC0ECPxXa5szMv)?0eNWpAHKKO@omqkekQr}pv%;Ijk@Gh<-iy~rftwu>|UxZ z)K|PE{ag1=^3Z}>l_(dLJi3sG?22K3=Y$Y2*u4nqqKZ~dcLOy6w1n3;F@oxGobukS z@~++Vp<9v_$LJQJy1^_GpEN$sckS1WP(&9w>Ca`Mb#r+9kKUA;U0dKsbV)Mg!FN?M zAM%#`0TC00E#If+8kk0ox_-#ppZ-isb4*D!wOz8%`|DGEDx*8vv&C; zmn(T2*)=?|lj>$m>t>a2l$IU-q{>v-O$Q zCi+@XjkU08#wHTpruh#yl!}*&FXCrfV$j=7rH7{=ocfXF7{$v6wdP;myrQ%qIJn__p$T zmL-rrE||evH=~YQ8xc_HUq3e`J~4_eWw1tk?bw_2pH({k^jk0d4=BcQgKZJnz3AO@ z%de*I1XDZKu{tqr1@b~*Pwzj|WHR*y+jEaHb%9_5gf~1VPL~ts)LLG`wr~oVIH#Y* z7PYm!pQ$@Uo5*j9%01zAi+W9VLdm@t~%D60PO(XOq7^v8>5 z@?JM1L?bZ-`>=n@qXCi5W}$T}di;-mf-T|cC;f&Az?q6*qP8EscSu3sYDKY^KXex4 zAO1!${$MNWIbY}1m!%)a3~M$$LqoA8?((Ya0+#te5O%VsgoHe*%_ z`+nuvFNCp>{tl!-6>BnEL{{9Dh_V&#gy2u3M`O!e7;Po)phS;nX7GGvdPwaNu5oJR z6hBjzK5;kCG?y9E9z?qHJIr~AH!NsQB}w|U_Rid5ORV;TpO-9+uvO-&=d{OLy^YhUoQ5BJ?r{#A4|d`j%l_=WG{yoo$>zybTP- z4TZh6Nx$A^nc}x;X3qnz^g(PY$3L~X|Mid}f_F3@eSxEnR4wM-0LFsST#kbO(~x$I zV#N_B1GU~n9c8>>-HEmD%O z45k=++EbP0X0x?_+Ko+nNLSD{v{zA1QY*IiDG(al1A%crX7(!ZYK?3mW;N{hdrWt- zo-fFb^tq3`eHFLGn>1E%C8^p?G477&-?0kX#F3i%Ku4w48oP0b?JKtZOl#9ZHYFjo z6V_3TsRxWSGwl(BD29_o3Pfx96^Gh`Yl0f}z_a`V#!*Vq{KmA;*SUwV;^K$%gw1En z<9$L~Hz!ep8FenN=TPwwb#A zESr5U+9PTk=a%cgC>F~-VKiLf5!r3)E~JH;z_%D!~SRE)N~p5ZU6|3|~)>7mb=N>P7fOnqR!fHDUJxQIKo( zw&C~a3QxoiN0nvC1`hFJXtm6Y>nq0NW~gMf+|+Ny2%;1Sr6~Gw!6%*6f@(9^Pb*sfes1C@Qf7T&T1`n=T~ya8 zi%MdbK4%mro^me}_IzXpFP-CDyYRfQ_Hy4=m%6t0_kF3>{Pz6DJ{FoDpJfjVN8@vC z1>RLQ7^*a_^;e(11sKuKLVbr(6#A`T8kXNYBisIv)mB_W4m8L`A~F!0W)9qoj4hF- zM!uG&EPDiq%0aprvAxkw(4(;Z4BItO_ZPd?;gkvH!}>_>vfV&tIqPFk$FVy~l7;76 zdi^Ph$A#X24!^t`PT-#eCbcU#{xv{p9C|=af+1}*BZ6_$;30c&N1E`N$ z41T!scr$_A$$;pJlB<&KEeE%H+c5_F(Ghv;-ZXIQPmN?{DggiA4sJ(+TSsPA302|1 zHG&NzqZ`K(wXe#lVDqy*Xtf7j>(N?g%dOvY9-0oo?NET*BfxFV*r;QMCu@mr$6+)g zBD)0N$RmP%C4UC~f6^AM+ke53R(hDV;feTBllK{8 zvL7;PhQR2d|M2crJJHxk*FW_{0mq?w%W#_4P#Z>=3{wm9)A)t)`;5$-z^AJ((JdEDK9>J%< zH<6TW^(ZVm##C|EJvy6GJqDW*^vr1H9r@I*zc{#RhOKt!4}a%Who3kdM?r@(l%0iOjk_Jc09pJfv|_nOFl}4@|4%K#1T$ z5*y(H+2PC)WLa$m2z#5Cfcghm`MEHfz=Osrva2N6`h4%Cpv4>bvMoaiY&(UG$y8T@ zn~vaAe9cD+;MlU+MUXj}e51{zorIc(C9J7B#6PvtmaD~SRvFv4uaA;r%6YtX(YPMh zc)7r~Qn_n>RH}s=ascd-R zc~4hk8CR)z`3gg=ax>JHvrgvTw-~OaCC~LN!2*dgley=cZyez$3MRF{k$LMFNpdvdf}qQKgBGehI;3+lv^ z%{N=L^ZX!;_VEE9lQctH{bxJ&a zFu)KCXfa|rUJxZ&Q8l0&re#CqVAu15Fp85j%Zsuib<@tR=!bFI?)HZx075W=Vt4|P zH0_be6e^9*V2;XSbGV)t`>Y8@5sJi;F{Go<zCSK@(uM~AITvy>B0A$&b)}dXFMm@1Opc=$;wkJ4C;dMMFD^yFa!#N zBakRG28)Ejgy3MxOlx#Nj4_MNfy5{TLXkD=^`$boLa9>M(A3gaXWhJ~Z(wL-Y=Y0q z=Y98FHPB!~4L8zgV~w9rJ2X5pIyOErIW;{qJ2$_uxU{^oy0*TtxwXBsySIOEnC)m3 zVP>MmE&y@ZCC8)rBfWlvA4(cDiYa4d>^MXe28lsquo$A5X^~OUF>)D{6NQuGG_H&> zW>z*^#&(FvsOXs3xOnx}f0>1poRXTBo{^cAos*lFUr<<7TvA$AUQt<9T~k|E-_Y39 z+|t_C-qG3B-P7CGKQK5nJThwZn253C#z#(=I7!Qh5ZAacRz@<^9M(|v#y{d9Fa!#N zBakRG28+WJh$J$FN~1HFEH;PB;|qi$u|z79E0kQc-5D-YJ!$ji^=CMDYFc^{drSSS z%gD^i&dHab<#<7qT(N~6`34H3I7zd-C@WGoZPyRuwB79wM>E??x?}W$C}BlyUamy9 zwRLp$^g%xE92uKXUs|?`Z;XXF6i2N-&P^auXpNh+MAph+T3Lgsa>Lv+?F-y8o+y?` zWpV|-P-RdlY?E|&~ z%#0!N7*PqZmei@&pi$GVVaa2_#kRHmqP1$%u462%HEG_Z8+N*T^y=fW{ibQrs!h8} zReJS-V7}M$%7eavp^>qPshPP2%hC#Lb~}e_ZDR}B@t8DjEF9v>deGmCSLXOS>?o1S zV#RT7m3pxWPMYN=VfSE2ZNCXM2pAwJ&WLPT%DE}HdtU7J`?(j|sl0sk zaQQ;9RIXHO^+vPR?sR+ofpyW0$#gdNdij}L0U!h;D25ZfIbZ!zk`-0c4U^eowb>m_ zGZcUKJD6&i+;| zan=+s)@C*lYUs_<4o@oo@9u(KRMx7Yic2%UEZX%#DPwzP&a+vS$V4ono)vuw$`RE9 zBX7WKACOZAfI&JOZ6*;AK7|Z_Bp=YWNJsP#b32v+Tq#(P!!8ft(iG*pT}T?7sui56 zg;(cPKmKfp2k&rz4zraX?NYQ4O#7b&s@!}RDZkM69MkHW2C!ZIf9?hxfS zhGk!XIJztkVUxm?-hOy6Y2miu0Tez$B7A2Vu{6763)syb7MZ%%Rxq@7YeU%4A?at~ zoatZ_(GFE9hQ9fas6+M<>oJOr`Zf30>`Kw4qrh?wsIs=3%_EhK4|xFw;6NT-X#B&g zd23u1p0MALZa_ljfMps;fL5nUXAlR+s=)57NSugq7xxG;KcNA$}~jEi-};d-MTL_7|1;-yH4FQw7=!4xd*v$0V8 zU>BYIQww=|t5Q6h4pk;sfZ(eTjuFMWc!`!0WpAlegT$Bt1w<%dEdff%yARs5dpFz9 z!GqEzM0{%dT_tk_#L3k~DDY*DQ2EX9=jXudJ7Z~@(Vqt!XJ*t)Zhum6h%QVmw9ppo z=~wmNq&Vk;-jJ?(bIrrMfn&HCM|mV`ZWUGg*c$kA(d$7GTkU z;;TkJZZOEWMwQZ2IObxMcg_@Sq#5_)s?w9uL4%T^Z(&Cz`KqaJM#NePHKHkUu@*&4 zZ-1M92HYjKxwTgMZ7X>=tYsoe%!5_Kli&lYtNOUo3F>$-j%%1EZBA)2+>x;|1n2H) zdpDI;l)~0+|4OD_N)^Ty|L>;n%P#Bve^txUhI;kU!UmSA)i%O;MVQF6JKaT|$kXL8 z>qC?4(@0HmOeowX%>~Q^is345A`C{5Q864S1RTSCNVCzJ4fAK&YV)#OTAVUhbssn+}`+?S`Tl6v7iTDP!m3DhH-7chq1vCCpCoOKaTk(cJh&OHI zrQz_u9$fHSV-&2tcj*DoE9R?sqjbjphxhFfHTtRU6szWA9w#y ze&lvdRFrPW_;UZ*dJI10=)(r3ucNaR${o~$KBS$KJQt0i1`H<@37BT*LX6pvsb(yr zv&^?a5LldAQM6GpVIoiVt=w>-UQbKDdHjRrGL9Y?gi+W7ySrD&zoi%IuO zFLAp6xQtW(-{ZCjGXy9Ycvs)T85|P?28=Ry(20)v5g1=71Ry~lQk)_2+9S|NG9~gX zYstwUr=5^1M|cJ^2%x}#JMW=xa)X~>WCm6cKp86t<^HhXi}!nH zf#$fsfB<5R3?t}B$L=w^ENgl4;m!M2wfuZ}XaTSbPxKw|HhBN8-_LLJ`FfZAtbez& zi_kp8NQ#vrb#JCF6?3A&P=*b-oUpo`gt|7w56r{}W*CnUQ&hWmp-!(T#Y*-Xh*jaS ztCnKKlg&I;tTj38b=c{BSmdn8UN6GBH{qp@X5SN2W0QB=81R_h8UuPaMp9KevAV>_ zq}>}MU+kzcZKQ;-5ch{cy26Kil|bYe6JJI&sv&WS;P!w z7~8A|~&zHCwyFT4;Jz1_<2fYdv!>gngsF!P1L8!>}j{3wsrrXk| zS>FcW`EQ?eUgTrm$sZ;8wY4-aaSs zCdM?BMIWNX+{s+k8!D%9JI1)S&rEj4LZ!{~7R#Yc-t}U=pSp3MShx@ldN& zNg9sYm6USmAzNHgc zftk3J4q9zoET)k-l3NgSBZwK|se4Grf%Le((XsMka!OxI1+A#%QHez`mxif>lXJlL zh+>3Kq*Sa0beeX=^cca())uSCCR7Dw8m<~IAz67LWsY&zbW~#1q-xFvZuwBRN^i($#G*%Df z>MmqLySRbwr&TC3ou26+C(SuoMj-y8b8bp|6l)N-L>`?^At@Li4 z13^YZtC#6EZ9OgZ*uEOmMi#5|texTXLdnX{6qx1sLIq8HQEsQe(a5iO^C4yHO}2_R z{pL-oB0kHroL*5WolAikZeNWe5-kReEle_9ULH)|>fmz9#}w<4U_Esg9zS+0MVx$5 z`Sz_|8^B>BGWHCvGS#DRk?;eK_9IL=k6sg$za47J(hPxChtezN3QS~*KAs&6 zFC(;6#2P&TV_uyM-{jBkhsS{{y@|6B)(%4JMJ9EZWN5T{C{poh&gLnnudiGEQ zwtF=6IC|E+Bn?>tje8(r&fDrvJ96~rGEJjI)uL!~$Vw%r8Ea^(6|5W0@Y(XzD{ z>{<^}k|XB|vPX@D2PUUXp^H!obz^3MnsYweAg^ zp!GQ|@}h;;pBi_iZnHPSz!A!ep8ozD;0WbKt+m!#YunyY1*Vn`mples%6oE7`@c8E zW#yYI(t1yyW0<8K=)|75xN6Q58&;LN^t}LV1BwA9GxrjDP{)K!|OxeghDDxmp31w;NDxylVimaL)NU zvkC$Z6gcPWtQL@S&N%=80ssIY03ad)A|k*#x#k##9CxKQwSjU(sg0!^U8!@Psg)T6 zM<}m;l%p$kjarnWD|L-pl%p$kjarmftC4C|>ieBH6AE0?$K1yuKnJ=|0GY$d^MX3q z6xbLHbfE(Ul+c3;_+#nUj8KmInot_CY4LxADXsa|byKJ19`@O|51!@yeq~sdhzsw^ zF+v$os0JSLnwB=Of&im_mVbZ;CAUK*QAeG2tI;6m0^y3FW((D?`kByG8(`H26LZ}t zt-0UQp8I9v%x}@|uzHUmvOkJZycsF_`-jVOB_5Wxn#aGeb`e&;>sF4KZ~4_*75Tka z$C0M4=n=15zSo{xQKy%?=VdQ`lJ?E&^m_Na>XDH~6=`r9xzoOBmEP{2;~woRk}HOJ z6Qi8rs6vq@ipWTrky?&HhsfOpm(4MN2=jyr1kU2_{k&Y4wCg&TSIz|>BD}nr}2u<-&3unW1_aZQ{!&W|ILUI0Mh!@>Ae(AK@0(1gT&VN(7#B-wWhb^D-es zd@L33rD=IRwlpKt_Ng6agR@-;8@N5$OJ48XzLxsog|08IyD?z>_JnSeLPT}`0%>=v zK|x^P17d^wrDOW9jI>2t->?0f8=KaCCP;brD?3hPzH&+X4DAgrGC?JnT3jzHXcu(b zamIu6rFR>o!rRleI_G@}wo29~i-kTR_R(&~+XlGEZiQ=TsCjPaDG1&+=_Nn^gr<73BX{OxEJI&$`G;z^48Xk$zlddkfYkc zEKYlD3-~k<0E{BHYj-2=(YuMip+4k~1X<1iN+>x}1}L93V2J+h2yyAC2QR8QV%-`> z*xp2Ki?F^4w8`M&^S1geN6@ar2aAv=f)Fu9x3-(2EVDj~lhUzm^+CP(_rNhb3>tR1 zvYhcr^gY_)BVGViW<(A&C_gcS>De6_%1FvPt$$wt8Y$-8$_#;B8IT$3bp2uF!Pp0g zNjlwy>;sRvb@85&_@VmvUW;x<8L#xh}_HXDH$58BaSI-c^L zC~p^oJ9PxR2riJgkWW9&r?w^5HQTdM* zmx?D2x?Bev+2;q$o%k2I_-Yza*DTRjzA*th|3sP^$qN|&me3*t1d0&UkO1CTpeBWB z;KKVs2D)t)^nqZxgB8%wm{cukOwVAP;iCs6WJbca8p)NxMkcX269ql7q#3=0mU!@{ zZ_OOU@@Z*s49UC%IpyZH6LWwwy5>ZiLd1=mT>q=*s<2e9FWZzUZ(qVOUm7xd8<7K+t)ceq57<6@YP5 z*XoL*FNkEFgy!v~=K1^OrH>h>*uS&qba~AGs*kpzq`+y2>f?-(JA@k{fc)Z<*)}d= zBCy?7&3#?P@;bveY#b0qTozg6(55YKuk(_!GmAokz6_B_4kCyt27k#fU!KLhD{0K` zUIbItYvoakA?y~&&D{v0(H*=JBo@iV+TQ<83=PH~(DPchTSC+Rh7I{2ptb#bY(abR z3mE{s;VZ!RQ8d8W4D;UZIeA-}pXu)Eo8-ZF&@;m}dME5&o855Ju0p?U2%aM6#V=xT z{e(rou%Fk@>A$3N^rJBws^$xU@QFDB{e!)=uk_OId^keBrtRhzBHzF(ifWJEw)+f_ z2jHb|DErR$L%sL!LulU?{t0jWFqFnNoc9j>h88XN`JU9RV literal 0 HcmV?d00001 diff --git a/release/3.12.4/doc/fonts/Montserrat/Montserrat-Regular.eot b/release/3.12.4/doc/fonts/Montserrat/Montserrat-Regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..735d12b51e3e109058fe239ec79c77cbd59f1384 GIT binary patch literal 106287 zcmZs?Wl$Sl&@Y^XBm`}OJHdko_cjD~cXxM}(gb&h;ts`&7btD<0tJc}Yl{^xMQXIP zz5nN#_scu??w&cj=Qro<`LsJbyR*WTK!8^T5C8;#0ARrX5afS%z<)?K@PAZo{d*t) zlHmVC|3^Fq0+9bBNwRL~|407+i3*?t@B{b)f&oDQ7eL^D?C_rs0FVO=|2w+@LIB?X zA%XuP3;@&ry%7ZP_}>>ufD}LoAPPYL#{dB5|I-fg|FQxA5P%KfK#L7vTm~>Zn`-VP zecEZ$jo3rx`Ph90YF8mXt;789naP*egjBIENwMWiMl4!%(wr8kB%kV!q?Kn!_xV}^ z`+fSPSxW$*9zTwB z#3q+OolB_iG>td+Y^rrle(}EiVp}5hM)E$i>Hfuz+}ry}Qzn`|wQ5hl$3*Xt9r`)o zz930n=|$U9(-}y_nFI`Nt(D%j=kIsBp@-vCkoSYIrC+rlrHRAhaN(p#0y;_YIK5-s z?0NE6>Mu$lCyWT(BVN4;(nOo52|88V?DhYHh8e zOo4Sx0olM9QdTsf%n?K|+2hNMG;$i>H-IyiXbKZAcvC5I=#A?{mTfUzw(qQgo5V0ar zRp^joTs0q_t`S`XtdI9x-Uo22;8ciPO-C2gW}MbvB8`XHXV6^lR9RftU_=p)KZ}~} z7fu`Q2CE&|sa{uIH=Gq!6%Q%0`Cg)*7Roh?IDmI8`%PCb8N!LIiMfB<4}d9&FQuJI zB1A0Yi&!H&uH^gfRYwthG=;x4CE6(%l}6D00fxj5v0iq@9#YGhOJ8>c5|GjZ74XRj zZ#MbX{}y^AEx}yWe+DW<=O7mk`Aa$+IWl!SAX(!YcQz6w8Pm7hZvN518ZE5EE6q$SUr z$}?9%cdO8P@Yq!I;6*9Cinvz<&^lqSunY+Vfgm?~0hiXj%n?*W4ncKpR#{^ZJ3(?p zz=7&g+w1Rc+roPD0G%Z1H(vQ`gw7!COA(GIDtb4GlLKMdM4f+~S+xlCE*}-< z8SDf(B}6J*8le0{rTN;`Zs#2(32T zke36_mZ(LXkCm~LuJ#7HJ#ceNu*)JM5)d{Tp6m2UKQ9QD!lp@x%-TCpqImc z+Q8wNGngb6eW|#?*mxsyMcQgX^au%N8h_XCsqO}#-6OVB9V__1@bJI#HKKy6x)Dz8^}e^7ACefbfg)a|kRp?Ov?(sybQ$ ztS9*XSfsb#tI`Ioe8XnnA88Oa{r%ctyY$pRI~|0rCm+&FYei5}H!hnhEJZPe)^Qp0 z@4RzIClCBBvisxDo%c}E9xqcQ13w-(KW1N+UcqliURrX{3$Q+`< zt5o?#@Q^rj*bR4^>3K-};uAg?0phdF7m-RMNbW{(Vvb6UhNVqt&bVG(F|6w&G4^p+ zni^`=r10)>H_7k(4+N!vKQ%(gS_mn@4@&r{7ReD&Vj4k~HKc6sa3SS+A=`8pXtz}j zkJ`@p97OkKP1>WOclAJpT`-vrUkAusGN6AmK5s2f3y>Xy!y<)+0EU08qc^G!mq!w3 z>x5HlE}X?nEVV)A>Xzkr-ZcAI%5S0uj`JgJQiKY1yW?{zln=ZG8m-V=N0Eq69HZygl*VUf7MEX|B^QiVXNH zvb0rcnr%o%YH)-h+xQp7qYPIz%=?tADzTvNRog<-^vvT8Bx!dU%9ZHkrVkT6f)0P# zA}THLcTc4NZ}kpnfR)A>Gs-dy4~~b_Z4q1C|A?Dj%W#LN4GIlUnTliE(toPD``0nq z1pwzWp(ZGkY(6xGQ}9tpf}?wAmA19h8=3d70|q?V73#RSy?K=PD*@w8A9e9h z>@7WCIO}{p)RxZvO_fDOJWU7&c6iIr_`Uey7$OB*HeL4FtWGR%0tg>7Ev^K;!Zzlhc`%`5k8v;7YK@zx?@XM08s;EUjzA{)t9*Yyl0K1556;b;q zttwJxy{Nc11n71#_LZ9C8;o`1;#}Kq@%3H0U!(oCVyjflKW?i@6NQ%-nHR`#ssYLI z%~z6Ug*iFw4G+ht_?*Cu`}+D(!%+qoFRHgg=iCw+m964f1OWSU%ss#J4sn$K6yk8B zT%_CEkrZgdswCP8BA~i}N*M+9_L2;^YkJPuDwHwu>d`z>2qBM&mf=jhn} z_>Y=wMlNb}d068QdRU#Xx;Bq#I=`bU8*bf#@uF4Ii58e5l^IQp`OD!dJ&A=)L6DBm@ay)natEmuxN>(WcYPcU4R#dxk+(s5 ziOJPFS$?z#2rqB{)L4I#B7?~}}*id8&)KPDK>+RJP1?}E^ zp8J@cp@y22B7J^FU4#R@6k=vr($*x>;3&N$`wca`E8NWYjfYovC2l?|AIizx%-{L> z&(yMr;!fQg{pc*s%~F`h$tmKY;k=wV#So$0vy= zP-L)${_e%^L`yUj+B%t&NxmA4Q3O{#1F0hVZ6Sep|lQ`CsVj@ zNEPjTy18FV;6sCG)K`lKW|F#X;G$hMegzkx3HwVIyC{M#m#RSV_e+ot)i_<2G_G#m zZNmi7{6BUHomp(xp8pbPZurI2`8Swopzen6AB22@eiVMs9_U`$V|uaDr*fGD}KZ7%(`p8=wts8DP0jyZVm z#iDv!Ac+eh$l6dq`_v!)6;mcoI%^&JJY}u(oHC%ayJDm28rN8`*G$>NUbe|DX3&{w zd_S+J?Zn4jMN+>wrJ~1Cl!3Crp!1LF+1OS^)uur`q*2AYADUfW=(*2~&R zCq~Dt-uRC%g}lHWYfFTwN?W=K3>i1`@$FzXH{R)iI`0PSlG}%Mwz%3C$FaltsDBAm z_j5Kr(oG&VIE}YYn>2>-|3jY~50G=hQP1Nf0k)%wG5 zN`)1%940!CiA3N}YBlcESppmBpC4=u`#CSST(-?~ zWv#J?t3m$&LafmUqq`=ccvR|VdG8qfcIj77OuT{WPUtDHT@_+vBR|smO#t#JrDnj^ zxbvQX=oS}@GbyvPH=V%wUFJif?ZoGSF9Q!!p69X$bmDmD@62K2iV3iUgm@RCLayCR zscj_%dHOkJ%2PpTt)R0mX>wbRY$Lzf;smnxhGjD{K=7qEBj;KXE;fkhRTHPp4HhKN z$11&p|BjTz{*)&qWLf`|zz$-}*DxSDO)WRJjVN(91WkzOtC=x9!e6aUtQ=w8*7p{- z=}9`uEGj5iP=UFkhS*QRny<*8@|Gcr$z{PP)%gofr%MI*y^ zE}1Y2xJ39zgtK_pJ9y-uLO?6f(&gdoOJ>j8Xo)5`O0ibbxx5{anwjkiv(6u?mirY* zbx8D`M^xF9-0jP346}QvtkB2m&B4(g{w7v-)|p7Q>)MgG%PhLlbytdiv%2MNV`7~p z;-xh=S@JXAT9}SDANAgMj;b)KV0rlSw&)wj3Qzv)Sx6RSy8dHYeo`ru1mQfn4fB6- zW3DIG-ny~K88(H;CakFiO_hedqPq<(m9CrR3`zcU8B`|on1z$oQbt!kJ-q)g{(eso zmW4*9n^jdF6)7I%LQcojK-VuFF23&g(|_TUV#(z^dRBjK_{-QXRF^a}i39qYbeUk2 zbcuXj2IaTwX~Vy*#xL3Wul4U} z&7b90X_e0=tO=j7(CLlYj1^&BW(l=)22v!rO{!wob&`)v9bu~#t)mS9<^uq@c^n-<(-+8+OrtZIP zxT44p=$cGQ!ml3ZcAbFeO)471n8Hj z6mOj+P3#$a;h#DS9o7hn5Vr-SR3R&d@KHoSOKiQZ;dEh_s6`$-B$qw&gIn|=Hpd8z?<{EGz3+3W1zH5X_E%@$z&88 z8M#iKcaGhmaE2UUvcz7R3LU`v3rkB+KH5O^@>5UAC+|h#sc4U?1zMA+vFFyx43?W7 zco_u9;VMKU8J{n1I+D{v1m;TNhI7_A*9$@_#Yn1V)4wC9gz}e$d(?jiD@7-a%EWzT zhDU$(Fa**8g5I2k8UvUzY))YOvu!Au`yj|(Q;^Wjdmm2yrjwey8uc0_5872SD{CGR z>-Tkry5men1Oa~%-cv9q0LdqW7u*9f=@X;RRiALhL8U^!j)-fs?W-{GBYD5oyq+V~ zUV`ZS*q0k2K|hc`8aU=L_#m)_H9W*`Y>3<&7;r!7Cp836J^GE^gR<%TF$}^jBu;mcei2!ZOs^n~a=e99f2Ik2{|;+S|R5%f8j zEd~EGu=g60Pe)wthn{`MA(b_(V?31uA&_uv7l_v+C9Rikl-E`iyH^h&ln z@!Um@#2PgX%&`F@p=3TfxMJidiZKeU%Y(5!w&$Tt6t;{kzCDo87|K-D&KPRA&sL=iUmVrv3UN4!yS z#0|*jRlP9cMJ`U%=uXG*j4Eelofxd&qon#;SxWY0Dl-z1r0{vJ%DvE;ID*-9-q-D$ z_E=L6qTsxX5dVECr8q=zbn$|a3!v-K`HW73`SA^TBsO`rF2K$Bds5;(&z?=3zZDx* zLmHNBNwQwkc{XL*1GFy$AWaDDJ^+RwcWK0BgisOs(5i!Nl#$bV)FYAbH;;V&aJN@( z<{%#Osm~#UV?5_w`2H_|x}ka82rn2D#q#4&BAC$u>A1dZwrl;BM3(w8D&F)ul) z7MHD&qeqXlUe(Cy(H3Mv#e7FLpo_P z<>2|MW4Uw-IfRRgGgno2r^A;Bjz_2A1h<|xQFH43xMliN^}P5kf$0awyEso+6(e{P z!jY=DvV@iYp zA(buakf!|t^wp@0e^nVYEf* z!|3$8)!}Kglr|Hte|T_DlEWb#J2_0@{q!PT%#{J@_Dv0Y!SJX()s_7e*Hd1gY@>q% zxVgGvTo;frE~39@WNy{2cD)26$aV;5tt8uNLN>eRz=ItwKmJvYP~q?HO%XJ#TX6Et ze@ZOo<;>|sa*+n!UXVfLnCci?BzGT^G*PFzWKqT}0O1v3?vwZ2!$_t$Z z^g z!cMW(X};!;(3sYPr4-*l)P-6S>7N!qv2%LkfYYAtp;TPT07nq?Swo?-0l)+%AB7D3 zPQvi&XOe1OF;Ss?@i->3Z&z`g%te$zx{V_Y#N1!eDRJ`{sHH@m{=>d3UN?nii zj7n#u^68Uqth>8j<2jvYak*nVT8O6rPb5!;DGioZ;TfIdUyyW5SxBahSHCarD&r&} zzNkkHW|PQ?iutMV7qOM{7u`Tm-`aU#uj|rN3C17lyYPf!MH^ z&?G9!98#{5Mlj|Bh^J1);PTltkaKfCTNmJ>_(4fgcE=>x3NIN>Ki-e&*4E`E*)RJ^ zCqC&52dleUPp4^;Sb!yXcqWs+ncL$N7_f!8sJfP?883#7okdOwB(E~y1#A1~&6gx4A?7`&ks8VYKzTxI!W=1s0k6n-kh;^^F zMuaEHUPlQ5k)o*j5?3+O%8_iu>NAYBN6-*a&RXTxbcn2XZAn zpT$rVQS8nvO=dBD5KqMZ-dY~E{_aw!Z}7ZSN6471O>9G+r)8MkTd^@ahT9uu{QFg7TCEMcLk+c;b9(kV3lE0emDDJKD3=o;Nw&?==|3pFBX zh}WNnqZfYr9;b^Vq%q2P$4a%3&bGd!P&^n5xLT`Q!hnjwj;hB%60~$8`YjRBoNcm4 zHhu7J$u5R=5}qz#5z0N>?OCK_+yNGb9V z#zdcZV`d?b1HHAXi)G>>YDi$xu?VT!EH6Xy=BJ_UJA9@g;L+L*lNvt`zRhAOG16@Q z|6H~$9x&DO?taR_?@r@;;p=#jx~k*Q9x&?ItG>+u@QiP|g}|5NTalpD*G1UukL9OT z3U&ZuZa7#ZG{x51U1sqqyMax9n~3oT;xw-C*sXRpO(hOCj1Zib)M)C=nyK;;AbnXg z{=Y2SAXjNan`vij+SQz>ApC5x=*!Vk5U4TMn5+Q-QD!15N}w|tWNgu1^jF=d>fpde z;K{l7l145=UW|-fO%_d_pYNRk*0k^`Hn(d|%I1bEvS$W~wkX+nsh2B}}eE$56wIqo=9^>;cm_Gc+irM`-C6^ds~<LGZw9&^kl|Gf8ppH6^bts zoU`SOm14ui>WvP;T*)~6-#{xg4+aci3Ckt~9OqLn&@|bSOke=^rN?kF0XK8!A-6e-L8w^jcW~BgZA|w-x1XdB zu=U#h_tp?77#Y8%^HM6;?C3gp&EGD}#V$LLq*zt6c{(?IXKmXkJBY43M_fX#h(gNN z3XJN@y&@Tskm?txrZoRRVe3@+vs4x}4R+B4&(A@{;(Us^&B4l&G~dKebz~A-BOMRU zza&c6nynIz%-(ybV<=s6@DMk@ZG|f~lf~zWVGF7x%yIjzbTmOUizH?w0Cb=1#XzL2 zCox(cnB25!qJgo`XW(H+%X;3QC`$>zLSe*?V|E0eNjc5s@Miv;??USq6Qu;IhNBph zB2mM*CTsdB=1>a-DvN>9nxpZQQ6!Vbn+Ux@wKW@=+FPWXbHR%6g2T5LzP(^&ZOVG> z(ce&YTNc0v{QOKxS3OC7JF<@!FXX2ajYU1ICa@1APR_NSt}{sfi1N;~w|?u@MlnLw zK4RO*h>c;7B+o5MXs%U*6QZjhmJsy$dPX|{1=TQ0m(X5P;0n* z@jxy2bT>UbGv>PXbiFjEERU8V_;cnXo!^`FU;$@v2@zI#mSO%H9Kr3w`6akq-`JSs zkb+Hku72jq~2AE1w+T+0sX9w?qMY?|i@M$pE6Am*9o9!AdfL^1=j~RH?EWR;shO|Xg zm3&-ZNnX#_AzLV{8H=GLpBMA3yU?W$Q1*fB?TbGxSORKL2xbox=l*i^-RwB0;(K>$ z(`4=GWwGc7T&KAe6^p`!|JfFWmykWj*lP{i*Nx-vr9>9QlnGV}99iTjIGxMnv1ho{ zzyYVscZ0O1}mkATl z!SAUpY@}FV7UndU@?nJfSko^xG8i z?qPu+**T5v&nP7u#RPiumMRQHB+d0L1V)qXW8N4^E3+)nbgYpY4h;J}&uGL?t^ET~ zc#W6&8qP~cOwLmbmX*$yZH7qBD7_p1=$!+F4^TZBo~Gmt?V(svx73E3k@s7#wkWJ| zN|BI~+5;Mi3;$~m@?WyeJpjGS85AcQT+opC4iDUQsL9RkPjd?M?`sE}Qel4-_!z~u z%Nmb@PF_;ZBkaLI5_cs2V8YpPY}4h~qYwlzzxx8E$X1-R0p^pp# z$>u$%i>bae-T&r;c9JIIJWo%`uU9x~!P3g?@HL?wRJ4Bae2#-SDwn@c?_bD0T36y zH3DM{9e;+j1wFDD^no){s8lj~3kCEz?*VR-Xl@f*(r6eDL;ao~FOh9G)>q*#P3t}o1@u3Q<< z>Tjm@Q&QYw-;xP~|D^(o<4Xw9krpbrX0m4hRCQnK;gNkty(ABhs9unVk|W2iwv|E; zdpAa46#in0h|#ip&tIlnd1k7!KfPTYKBbf*3C%;i^6L09N)Zc_yb-zHBaC$5t_wJZ z7CW%Je#^jN%R8Z)9SgX7bu}E5vKndX7U4tq>er&Gol`zBGai0 z$of%^s!6)0!ZS`vmYjK3#)VGv=NH_FRy?H`GA~w@lM=q6aUe_8CElf8KIT689k#AG zYaamh8Q$ngOeryrTLhM-f1we#ZQ=R1BXK6MpI1t~V1tkZMy}O1# zz~vJDiC%#SmVk^E-rZ&KdZrq^B!Ed6=RTOTJCvBp9rwdACSCWVM^)uoF$X5Z-+%lX z&R!G=Dy7tI?3_Wp2!*vNrAdPDX8Pi>P4#M<8JHq+1jfq~RzksEs^}p~pti4kAR%7; zrEGpG;w0m{rXxkjOV{Di@AzjXgHp&xN&)3bxIY&VNyY8F?nI7~B<_sWxm|z#JVk@1 zE|kE+dYd+R$&1vg%q0Ez`hF{wIq3XT?j9gwj`j zj+Fd0=G;f4mgpuKV_D(MZICsT;T+#7lB6jxb@&hqS4K3f5Q>DVAULHaNoZDE4{BhR zX`v+glrVsVy9Plw(?j^J)8y;YXGYTr5ZkDt<=q)H$4h7AbX>IB=CY;!w4HR8$l|;) zMA|F(H4Tk@YIPF}SYm~`c6d3z+oyhjZK>1WRg7~uGkihVkZ-&!U!TW;!uwg_tasXc z{Q7qSaLx}gZU9{=uE;qH%k22cyP%5qq4wKtlhCe6uz3j0L>=F~fYPZX#=16)R)scv1;Ueq zM<|-VB*lxRw=ZbW$cE^oa#R&0%YqTJz=HRxf_2DsK2fs4stnoG6(}~*C!-Je{!e#s zWS8sX0j1dlf1K#gwp;p-AY5DnV3&6Zlq#7?8E9=wE&)}I4V$^SG_@m7*R?`CPcb*S z7n;79yf#=0e_=u--2Z@PlATIeN}b5-1gUA865b)(1Qizs`J>?v7AYNj1xr1blKPH+ zW=*>{GAXp?s*tL1I=A91^EG4AMR*|uXv`4pW(28u%QJ;0ENWQ!luSYqzV`LE+T0&k zY~-qEJFkr5kG(~f$E441!_-YgPWf*+4zAK&`dq9&6BBKc3z| z!lygw1TqZ@Z(a>Z?U@%4Z}A+}N9~>pAe7?}+vj)onW%RE!#a#$7+d$@bE4UJY#nV{E=66i@Gng({Hd%U=_9+Lk z`ADkKq{*D8T2`|{-Dk-WGM*Xak9PULh+1rj7c-!swy!=1^}VpIuGZ1ZqIR;@<3j!2 zw;$E{^;|_Q)}+1~Ucje)E`QBD>y^r2K%=&5*|qC3$Oduh^qc14Dc(2#qUbr(IpW5w z%>FPYGTL|_Jw2t7+x4mWjqs;zTd+O$-s82&Xo;)`KU2^IM71&f7~K@56Mmp#oot7K z3Pfsb_{XsV{+0goS(dl4{AcUQ)73AMe#UE2w68aAW(UhX<_qZR3{mNpnw}&R*sipy4iZeuotQeJ}>Ko^GaT=>PNoMM4mu#uxu4j2gpNCi>C8@`lxZptry} zBVktmw#v;EV%lrdj!!(~)qUGifE&@94c{nen?l(dD=ELGMTiM0+RHGEjoUy-^Iew< zrlTBXmLEFa6x~D#$ocVcS+6VwYKu&4v80evP(F+{q#CykzS+IFA6~Ff3cKBy{Ika(?3$h{wjQGw)LJtoJou|po1vy7neb=v>3@k9 z^dH^GvbnWHp#uK_(c#Z{G2hG_Q`|MJa=6DDw3~Eyc_qDr^;mdNA?e+pL;0rb&b#V9 z`Im~X({W}SN8P~>8BM#kVri+SbiTcpUtGsX1CKdsmpySP{6F?z$p7h zrMAXSWulEeW8z;G#o#lF<^pEgDX0xzoj|n;z`n2+(9eeTkUBgh)nc&G zB9Iu`GoSL0zHGCcv2lnu`H;wQXfm`A4c+2rg$<%Gp&zkd@$1*WNQc->?gw925!E}F zw$$(V*8EDb>Q30k{t_Z^igS7w3~}J(k206#d)PphoOMW%=E?{qjX5bv69Jt03aF=G zbO_8v4QEZs)imf&%@@j_Ws6^=7L9L-sk<*Z%vpc-0E`-fp1wtICrZ#2n0*m~F>&U5Qfe_na;PkP7QPCpe&@L%@_X-zD+R-idK=xtgc(`v;7q5x<>QN%@{J zNT2bNH)D0vy%eO?^u(mit+?5-UF;C@93Bu%9bUr`#2{sVY3~>-Y0vBQ@Ierez^5qc z#=>~9mf7Y&am5ImN*4sA`ZLg0BJRE%P?3;Q7qFtZz1DXkIRG%tl-257?JIEA;F%^S zuE}3^nkHtyKT$*Kw@64mO?KUjsNn|NaANaM$KS{>&6scm5v4+n06p=DOz>CNPwG1E z($ByTZZo2@|2Tnhn`^b?n{f!%lYGvbNCrN%@p9n4pecair%hvB+Tp; z?k@Q`jz&F;=wf?(xD*fkONrFq5-bf(_8(eb9(8=WbW~38PcAi< zDy3f_@v8KC?Dh7~bWB7dGp8px;+59kFQ9gc;WoFH=jn+@BAAHbUJwgwZtlD>EU?Ou z?m6L%dPD8%1IZz$vY)8@#3uOu5dC}ZMC>8#($*0 zTRvR~_w;AmKUPztJ$;Pb+K=rFeW`-|*fQ}$>wr|Spb9}1SXYhFeDqvgk+@kMrKyy% z5mTz5LHQ%@_v6QdAF6XKpd^ADFOCPZrR_OWz|UFwr8U)G*TlAM$d6mdH{}ef3+7XI z34hy}KqCVBurswUgh1}@5X}KdZ-Ghjy+C3Q8mFfye^gQWX8Q1fDq$=aGvc+gf_oGp zjC#LX^Wgfo?%#+n+qI!0!`pMMFi^ItICjno`k%i_aFaPZp#CRmW_zwbpr z+wL5yC)sKb{EXq|_6GlbZi_`jQ0E0aEEa&jawKE|C)oj~f%&Ad9~0Se?plq3jY_7S zpy3jOAE#`0NVU>_HeMX3sf~A+PxjSRMvl z<7iV+y`EU@{&nyAI1e9uv0Zd~HAZK^v%uiw32hnBj2Mk(AHA7ULb+g85RKX(Dr+N=*nqiCRg51MK;Zbu}{$JY3 zP?uwsSqDg}4?g`t*Y<+l6;oQCS!QbZgkYVyyl7aG|EyjYG+9O5F6EX)WYK=9=(6#+ zA>FhWr)Kp~=+d|rCN6MEeLR|$zomoC)&_{Q{-njJ)gB>ACJuXC$5g~Ermg@P@bTb# zjphxB+1c_PO#GtEU#VZ$XN}U0N7HrRaY%cQ5>Cg?i*^&GjWbDtXl3C<6hr3b{k<)# zBTP9s)nc?o_T3~2>&)|XJDvn$XQLYJ6hwh6I2GNo-}FVve26-gOPp|+N_d9M>n=_|1$5fjuUZ9+){B0fIg81VMA1yV(9IP~BWE|hj>Q7|Q ziPw)iVuw^n&BIh&{mF4w7w^KWNeyn?6lrJ8`vMdxs@mkx9m^Z13YY=4A)(+ME52_FceMUTY#bD zKIQv8#cX!7Bn^-l0q5|{At_3Dkv~5riRx^&I+sJ8YFSQ%9CKn}k3cuWJA%tsltsU| z!pbC1Pg;qoqIf`YLB~7)xnbexpz4#C$C>HR3@plp1^BAsKpo?MxWc(S>O*#hP4G<; zI8S zA>+zbtEAustg~~S=)L${Dp~n!lJ>E0@8JU`kU`nlI{TR=-*YBao@nFGou1+2Ou8>;gqgXnLa&K-no!ui+XB>sQM6*!7>Sz9>JUS z)I>hc-sJ4HQzy~fC10}2g{MM42|}gq29-pNfZ??5_jG@>Ffyz_qzizq#QllVHU&~$ zc^XehyXa_FR@QlJyByRUwTWJ@Tg`{`&r-wrC294oEi$mQN4n=*DIjkOsFM*$IseO; z9Y@qz4cTQs?@z&#hQzo-r@c?AxH6g_+s541%5Q z{+>Qsvo_zd_17v9@n-9_joJJ6#*g+gj^u$*hwbE#wS9pqJb~Zl&wq()gMRlH1#5Cs z4-SdeeT;QBX!;BXm767*KXXEu;Jo@#G%$_*s?1*#>~B4Z>Z*H6P1HXkiVbrd>Gg;!vE7z-d-(#?6Kr{bJAKR(jY5=$greQjyYyhnMAXF(`ImV5`3C zWk)r+!E6iFr~ei1agG=`@rZXza@(rAYmx=DCtIi=B1}J{N?c`0k!R4F##_C)aCazU z@drmNCUT(n3?TWD>6PVtMlKJd=HNsAhLP@(D}bXYh9$aD!zOTH={T8~@1#_^9?t2X zFcK&I%dO^dJ@Z;Un|Exsy1=A`Wol2tM`itn^yB*KT4qBoS~lKbl0r@539qu@Rxv}kuzJo1F6^IhXPu4 z*SkN>3V49aI;2%y6p{}nd|NsP^zwJLK*I5jMZ?0xR^5GdnG3y~uhSa^Sz1TUlGgy5 zVxobrt~8?5vmIKQ~Y z`NGjZGoB58Mg{kpb4s#*GLUSgGz5ln9OFwoe<=K#?=YlGOK8FeWSs z#p{4-3QLXU3P|gzEk*x})9&$5DVD?O>VvtiFbnC&S=tGNQ`@-w1beaV3*`$_UrdF( zT13_CAsri|HD1UXhVhkJLQ=29MV-Q_GbpQyso#b+Yi60qO3tY(PJqR|m}_54J@Bf! zIxPe?Lj#b3sf*`s>~N!53T}v{Ibld}6A@e&HuoD@@rrpXz1P7bEEyxl*e+ z2y(hPw;+Y?I`vJ(RoOe&{4wtqfOE~*;c>M%Riu8cy@?@g7dIRK)F;!J9N;lsp{N|z zM!8V)C6hc2S|z{;P6yZ835Ilzlz?4Q9z)TL;dE5|KOq-_$pN8^YC4=?7rOS@KEmsepwi{Jf@^1TeSyTnpsjz{tvdLi&JVb9 zeqB3#4g^+CPu!c<+t2zc*Df1Vd`6m8IV*k@=TBt3L>gTQ(W$QG23ci0zZl3fxI{8A z&Z~R}vsT$mf9PYCjvgNgR!I$GtWKKVd&)!nT-f7P&nH;(w>ohoy?4dMO)B>V6Di$C zV5M)u1~Hj3R9P7se*ss9B+2pmI0JI`6`rJ3aj7aUrad{|OmaN@G>OUT9tiUviluct znW`ne95voh4N44`Qkhm%q!H2*!oK_#q#wU}_umi)nL;Hol**axO&%$b5O$!@sVwa0 zL37DHG7jd{t&`%PINT)UCT5lY3Z#amb$mdw!Kl&8wa%nf4Sk{%aiL%X>BWla{Nam> zjQ1nYed~C?>%`Nlcyj&yC_gV-F)1JVGJAU82OC6$TRSX#EZ-ugGhgPrJ*!J_TOQBF zz~^=%Uu#V-$B;f5o(;lEQzc?F1=ThzN-FQ|tA z%{(2;OQkrWa2TX&N@?R2(WBizT7<#gBV5wX%)3A8>}|nFBRP@L>GajJV(F*zs8!zF zjGw@=>#MX!QH<>I;Na4cniw)JTCg(+Bb@hRYQ%*r4|XdyddC_!ExHaXm=c(wak+P) zkN&Y9-LV4xq>T`n>x4NWf>e#~bBmwz9pGD4hK5o^uvfFZI!44w6M~7(1bb{Uitf&% zb0X_CMJhx=26?jzhb*UAJEK%n!_B4@6Vx;t8H2UkALb-Z!i;N+fDDf|rhE=(Qh*n> z@K;9bX|d6AMZo$TDuajyuNOkLkA-w)O9Rv7RcJZyhnjp_H+c+Iqs+I<4LFVS@#Jhy zWM+?I<9XS(rA*savD0vn_>RMfOn)GLZ7DvQPCz`*L>WM!>*I3AT*RKU>bzA?CNow5 zk*RHLR^GxHpv&bi>^YCr$ql5KscB}1Be8gmUgw3P)H{<0>Q6hR6b*Ysx%c?4_fqOZ zr^mO9X=e=BRO{52H_ZGB%2h57ex|(A_?%HI2gOsZn1Y~;K_5BujOy!Eek@rY6$Hq1 zmxL*7%3B;+9ch`}&B+`lPDq}wdjEapK$0BLA9TVo86Wa{peyhv+VVK+Ie^8`5*iF5 ze#?J1K7UVhHvZq{kziqY$pLE57#0~J5f7CDx8B<7U$4(tnxHJr_ zKQ{)gxc6w&yu1iSwyBt@R?CHu&r+G%Hw}rH(z<;mCz&p&X?mVE@5y?m{~=hnGW1pX zp&^&vnc-3b&qwm!kpuk$p|B zn)%%`7M}#P;Wvd%RJs|OFLP&});(LY;bdUS+>X7OU)BTj(Riu}bQhWz@zy0sA-hG2 zUE$*Mf$hCLKFRVGG{^i&wbLD%?$%o*;7*15l4F7 z9`2g*I#5n%-cN(B!MN@jkxz8jsh6}3iXjZOb$q!G8+gBMcGp2;%~ServO=Apl4&3R6|Mg?|Nk@> z%?3U}&Er`m3V!PD-gI#H3kryt-SNMEu1l zkfGj%IL_5& zhp~q&1z*gmjpMlr?QdY4q{XZmKbyQSev>t{T7r+VH1B>A)6IvAeVYV z{8NlzhluOUS9gnEXco9Q{G0d$-x){JPLKn9=T#h|8(Li)ZOXVM-xg}MOw*8v^irbK zw#=JSFp;6fF%*m;GOMGiPt|8O6f!g@YxmuJGOL0G3@c_f!0OCKbCW}jSwL~v_2sZ8 z0~Tg-SJGfEXSLOos75WIXC{GyD{u_gmcd$N*WUL$`jViJ<7#*0kPd#8(H~=pOZ^1n z5H&k2E1}>23Du#bl{;C(5|cR+1&C@w=nKIG0r8nQyR29m06MIC01|{i1(bWD!Kn(P zU9NzUK@ljO;7~Rc?s3X7q*Hn!F&a7hN3;VkGdMhB_ETjd9aiSMmI!tIoW__F<{za0<*STfVn}^>F6aCHk6aov;|%UF znzK(y!%W98PnaUBL`<{d*Q64=>_k$Ixld)-!-B8=4Sj3Wri|OAEW|h2ZLDVCx%#Ae zbg7p%UGNM=uaiALJy=^cd#C#OFsF#hZCcT1Zepx`KeJrmH@8xi&2V;v`e5yuI6C>y z#|*Crh^Gk??b;9G*QBcb6eNer{Um-Pzb`Mk^{eig@{953Tfhg;^-=}7YP#3Vh#U=Z zlh?fGQs4NF+X>pgVppcc-aH4SU}8q2dBEF9nF ztp$fJ0*`v+7J;jI-zvC+OHt92@5vYoNoO&iD9ZCRzNNX}+LXx~<^76IaW8MQRW+S zt5|IAZsLA|Eu;Rwzg4+&@?+uBdBEfGSPf{X6GwNM*$@foMQR^ZGfCO!v-E#5B+e!N z`uahBpZSYGr6Swc?yPWF_F1W4G%=?G(u>8iMF1Tg<7j2x7xUN3JROx-8oNJ>GxroL zk%;K;#(Qo;**#jm@&u>uv^tv4wOLu%DOZGvo>XbosmGABPlZ#`mpNJhmOV=`k>W*} zJ(@9`V57fU|~zi#jCaoEll5zmJ~W zDN?&gyIr_JdcRC;WDSzMM0%$I!&!YvRwqA299YnyyTw(H?t-!gzdz}aP-DwiJ^lQ4 za(nHpLxO2~hSe9viu9JBOkoW}9wB|+^R3fOlE!8A6VY1GC9d^MZikRs(6s_)SpDg- zJ0!LqF47(t#8vluDUt@ig*$k^*;*?>@yw6~G^->H-itYSCl$6!fUbi%j`{ME-ZY<& z?I?t{O8{(|bbgmL>3r#aMAAr&ZE5MWOH^ey=^Rb=aO@87Ck-yFBn`oXn^H;*EQIPK zC~{tcyG*rBxX~SMPuVGQKoG8`k_YePsjLHXQ*GK*0}J8FYKj~Lb*`yKZ1oC7wxORw zs)q{lXgn=yt(^BQypqG2&m>l%s7v?zBTE)r}Prn_^ngfBY#J-Jy+B z43@e_)GM4ck~W(rPbso3PM0Y!Xz>q4@|L;@AG&?d{%s8>QjIEp9k!}-BO5X~mFBjEvXDyd zv;(qJxG2&%u&|Zqv#`Rj))JF-!452Pf&?(w&%3q6l&NfIn(^!sHmo30wMm^g6C1mZ zFqQ19P+@_A(JCI-YdfLCsfCloD-Y1B-N0u60)aYyQuSc{xsaoi(D?uh(ITLMx7!sn z4_VRHVSM=}YpA7&)qD4K4mKT%7_zV>C8#Rx5FUMg%CwRXF65~6YFV|0y#~#YG(Jw7 ze(l1~iElaR=}~E89HcS<%ECfApr00oM4rg^%u>+F4vZ*>xUQ`sZrZ?}8g)!=Dx;wi zRW1~rf-5Q1z$cHWo@$(GV;fufGt7}=Hm49!)f#|EM7QEcrJ!3;h$xsTO$0?~@ZWl{ zeIC5kSX>lUC_a+O8Jdh0^+L3~`Fn-|Cg!!Q8W4haF384J+R9j1$i0@S2=!lE#Bpm7 z#AzvRjyDyuMD`gpT&-L!yRXG=yl@|&J8QTLzrstt;@mZ&m=^=rQz*O$#4Aev0W5DX zOLH75>;^MjbypH|8hkEsFA*{Pj8b7{PQ>~wp0s?!dJ>6Ua}m8#Kv{xxQE*Q9ABjof!w zwOk7}SnV__B@IDm%Tx)5&kRq+3ndQV)bPlKd8qomwnD^MA!w`+utHJs z3D-?N*WfaSc)Co(o{wPW>BrXtotkqlkJeQgP0)iKq4eHStSCk#NA%7!;S20B;-e`uh)fYEln zTw+TBB9E5Y2qd>Kn`DLb#UKnRrVx9X*^f){1`>7-{mP~EyiQS;ONk2(*GYyGCBq5V zqEH&ZL^6j&Y&!>#VFmFl|KkP;B3o(EP0*`s&MlqcawftNu!X zYO7avk7kGde#GhxZs{Ju_k;w|5SfMi{>s(kRNdp$@#8e6V&PUPUarsutzHFE9io_c z3T^`fwc&}{PNvt>(Pq|uAySMNw#Ez5-wN??Hx=0?<)!AvE^0Zhfy1kyoU{Rm4(T?ppXp_uDEq1uSm~W?H#^ zS|_|lf5AgGN}-Jv?Z@kNF|)GE1{AJ|Z2s^6@@>M0ac3(lE2PuYKJ@HMtoHFs0SQfg33|>u ze^6CK-9K7Y<|t0xV#mN_!|vOwNX$UVN#K(qIb>jg2@9yuX`DWLR1PGSO38Gtxt?(} z65yyIQ25!V2xW~z%`hwc6naVJXH6{Jg2u`b0SN$6(>>pX@BWT-rYFPbSK5kw=0sFE zV)Z*wu9vQzHcc+R3kbrQBChGEg|N7h56?qy@yPAe+06HZytx)xJsap_lx-UdhxSChX^sZyZb}B-yz?3uvHGAJ` z$}vR&2uekgklfFGEsK=s&|UqFrKSi~EWYYguB8u|=pQUr2ewQ+GC1&PWGqkF6_mtf z*;h|rG{#a(CM^)9lA<``0xE3RjUy!^<$`>jT2`iIa4dUvbd}ubuJ;tV@(;jr>e_A> zTcw6Ym4#99x&TTMjEeJ_HRLbQaLplL0h|kye+fRR2+g;)w9mfHN}e;z3VWG_tMr@+ z(g0w-A%S1h&rHU|{Dzj^ohk4784I1orch<>%f@Na_wB=HX7FQHFjmSV{AhYWGCF?F zdV^Uot4pVK2!L@=xyUNVG?#yrinU7!U!@=wt(l_sBp5=AyR-nyr+7t9Lsb{(5_GYt*!t`oI+j=(@aLrvr}uCy`)T!A`Gfl$XJr)s7N?ICACOe&nz)UTX8%9XX{ znWoNoiv5_9;d?dMd1l;Dij^i%0MjE^_8506%Z8_^}yN}3BW9Mnv%mo8z6eO7}PgpQ| z{uwRvb#;ss?b3AcuIDUl zGBvOj=^y#c3JxS`fayF@fUKxT=upwLt_6Lw{`^>We7y9ss1R>OMaGh*!?$NrtTyXp zG>8S8bVqRxpjZh3eb8B3D+^@3v06X-sd#&X=DQ9ihZ``VdChGCb7aM&@~&_5Nz&ZG zAZt=3D_3ms6>2W#G=OOG5KrAuBbOi73^lS>N1CgEU0#F4Q;vM}bu#&O-^i_y z$*id6xZ*3xA`D4CL{;&e12a22z#tW(_CmH#v?w(Ey(Zcju~-5(H53Iu|B7d#>{;7Z zqtpyG!J)w>X0yddXIbLcd{?DoF8U}Mi|3@rzeF(%Ih z9Ak)W$P*>8QBKsZYKMvIV~*;wP#8e_U;z|e+|iKPJmu5?W2LN6(`2Vm0#}DC%K7hG zW#D#}D|)4`{!WVS2o(}rp7SJ{Ap=|q5pNOWCClX{#_Kc#x+e~h%{lzE>lLsN0R@cC z&{ea~woVdG)?om$(WuCs(;-%?uXz6gIzA=@9;*btSx6@QU1{(*tA96AT|IRTFpN*2 zJa+YK^)Vq85DmeVbDh6)j%Tf&15oN09jLw&5%n^3ju(H`fJ9i&pB0Eog=nIk=7>w8 zjL8IC1E-4_B>7=a70h478_%ERiAs6lz{3^VMQ=^aShlYtnH#Fc?_nD>93s= zWXqj7ho{DV2>U&~#D02#&GC`~hTDgUM$-)6$6{7BtmJN3ZxRb?y0;%^GsSBG;T2GyPgDdNflcnno;( zK(bi}v~QzB0cIBslvjab2K1KOmtoDLJNeN zwWI#jgNXwugvpP2kfLIlgvJ}qQ?xl@MVi%IlgWK?Hd^U}G9L+Vx?&m)*OmVZ#Of-2e7tGvQ znmt2HtCKrGuka^v5*p!cLl&UfunuA>OL8R|b~}Zyri=#Xqg^DXpokjQJ`$AziDVpg z;V%?&x@e}h8SaCXWHQEP)%e`usWSI59Yk2WIWy39aU`i`SPM+nOgl$J z|ERbrN5odtJ{=??X_mpKU17s)#B_hqh@2V&fhXw=W`R>Znc4U{#7mz$m>4nh(S=ucqqq+=4n#uLH z(MiV(%Cj(6y%h37m@CX10M#J`z>9XVK)?B*wz*e;7kp*is)<5|5iQJd6Ia!E{7MIn?lCaRbwy+X9X4iVO-UUh-jQ5~&vILvaoMlp9m z%G@ES9>={mrt+f90r7QA`86R{wCaD$>K}URvWhN9#l!5C8I@7xIq4YvB({TYp-3ZABHeE*eamR`$heA^fTLDPAm2vV~z ziD&TJC(-uhaR!>u-n&>n8usXQO9-sQ1IppGW30eFkHCK;TP!2A{zHjjAE!GGLihYP z!yK^$L*tX&Sht?PkDZ^^Bts-z?mw_wC)9^V0p_%kVZszZ2I)zkpWFADTGI9R03nY8fgN``BKfBx<&0;wxz4E3;xvoZNzg--1IV zy6`C|Xk1X6Bi1&Lko|XgOhfZ1y3zN{#)nXB^;>j*#T9NbSfr*~apZHb?W;&Lf$m6? z)mGzym2Hn^OW}c)tj1>Rq)mToW2&!&t8mV@;{jUNjv`=>vfRhYOhB{y3c zsJPc^@|vhFSk^Cwt@ung+tf9zENEHQ#|AaLb8mju(P&Cz;{GYlv>9sRjxjN9xiE3R zp|I>q{A?oJ(p_U<^s~4yo~w|jfo!D8k2mo=(VoG8HqS)UO2@eKn+dc@$GGEa1y-wL z+<@1RKcZtiz_y}gs$i@HUcr7euMM<^O#^fEIVz@Gxr3v@1hk@c9$Xhs(11g{Lduw$ z@r)iB)~&m;HGOIG-ZddgKe%ZEn*=)i$!Djyqruv>aCo3o`f{ak`kjYx?|HqXq{+=p zueBAC*aSXD-_b|w8lsQnb(;!$DXpEnCVxNZ_zG7(j_Y^-H5iMr5v1IimsX3Qm&zeb!lh)gC%RZQ7cr%Q*8WI*Znw^N^x=i z?q!m$=d;x-WHwER`FJ6)Z>#`ZSV5uuY^UhSR~>V;gz3LtX)h%*mTzvk?!@0(TXbI^ zBOfZZ<+&L@&Q$UKMi!b*`u-Psf>Qb8gOWGff89vFbmKnu$BJLx)Yap>iYUU&A+k02 zbz`*N%4Y33X6%n`e``ag$c@2qWCP+|GhBM_?|Ci?j5@ku?K3j8Z2X44p)YrsfNlpU&GI5{I74RtViny`S!Sq(6Kq(-of(@o!3id+6`A&#;qgV=$GC3d#{2Dl zQ!(expx@7C$lDurz6vw0{-3QiiPcJ9X}N!9>_!|kJqwK`*a6{x>8F!Bw7aK{xnjDf8exGZE_y{#a5jirex+<}KvaGcnwPxs!r1gX(XIZqFI}BUspEfhjcN6hF@l1{IsZFl>$h2?1z#Ms-d8>ucNcz`bPL54+luQv0l^CP zK~BG}+(H{f-|VEmg9<#;d`tn)oB@R&-qPBtH9XUJ#8110PCWLM+8PB8ecONe7~WR00N@HhPkiH=JRex0=0b_@Eiv|GltvJofqUbi z`YGT{my)eoLpisyExR$@&;){`**Gg~V)%`_nuV~~+k7e~lU-OiYAWY-y!JebyYvZ; z_Cm3+bM;t_y&v}wT+>HutfmRY-S~vGMDZJUmjI-M2g>4Ejaj0VUEc);)F2FDsAPORoph=*dq~JOX;fE>`C<9bp zF+l1;(Bvr0C}}D{MP(Yu!xatFXS5yF!SiZHTe$b{&eL#{JnVK4)iUh{bvqgb zxvIU)+Mq`kVHP<2jPYJWAO2g_knpnS_%f+6*qtO1h%D)Lb^h}6%L6>&1@yjiGDhNg z)ZCW*_KZJ4wft;~e%#{dU*w$r00=RAq%9IcoHWG9;%z3kAe{3(h%wB&#m+fTil+Sd z&MiK%$nJi6R#zhQ#Ch9by_YUr{Og~RP{z?j zG=nRgW_=(fq9o*RPjc1a2*lqWPI+LbjQP;iz>cm?{IH|)OKtLn}xlX&5(X^Xp^%_0NfC(Vx2P+y&?5gl8Gw$9P|NY|>c% zL=|jdY=WO{hC6*-t0?&L*LFK)=BTCP;SwO;Ntubw$2`z&a_+j zS0V(y&d_6L`h_A8tO!KVW<5p^juJ7ql>s=n|DoFuW(`+{4MFr+B>4k7DW^q!txhDg zWqhreB((SL@_F_pJfHL9=jV^qj?R7+`5UrBv!!q|Y$U$)?|Wag85r?lKgpVc(#20r z0_+yhSE=mXrd9UjrLP&6Xz(O$=-)JH`h{9=hWL-LS_kVh*gq+T&Nk>oa;BS1jhEtw zq&C-9Q6h>hEc9DENefmuPUhUC;_RibTMU3!F_}ngc3g3!CTiZ@Zc%ztbmbqdid~G3 z6Tq#Jg-EO$TgT^}j>VHDk`tfy|A_tp^{e}Q?lXE1IMnc2AW(-SwJnJ|Xj8=t4aDzQ&Q%z&kH5%88D_&Hk^KbgG5Sk11 z1A&m&jI2HVtXsfKb@~}cRE4xyc36NZX@!XK6z*LxaLg3Oc+WJqI1Q)CDQy@%MN@xj zn7f~`|8w+G?g6U#GgF}*bGy5c7u*%z_(X22-N)NVC?)WjYxD<&{OYfBg6+T9>{!&% zc>baJFYz@Wxah7bZ1I{lfs`z4iEvV!pPxYSYGx(fLkp|l71~8!xmJTt_oSpZ?cAP} zEtpByD1S+AyYEAVJW9vjk?%$8BP5<}a_^z& z-5&cXH+=Pa@JUYWJ5GUjoRSZvM&U=V(;%`(m0#FgOGqZ~6?sH>t*)H*wGw1FPn%XB zM7FOdW0(gYAYp++vBnDAXdcVQI@wH0UVk;es#3g7CHyvTv&zr^u02O(t=Y6znsbR=*!LpSEn!4}@x7D=Qe^ugD{hkk@A9eH_B=oa|3 zVMh*)n~|qfyIUm{X+%QjcuvHG;G8)4C*-jZOYVJ5Ikf6(Io8VTF@h8A3U}p*#sRuA zkCC~22e)8(XRuP*dth(~tO;i+`v7*r07}9rsyqYk>&BOF8nV*}%x4)N3Z}Jvatkw* zSsRZ=rgCKwHTpN~UbxM;*S~6JTwI|Dhp=W;bvho-Kc2@Hu zv#pOJdMilESP!V(7bKQ@TC45AQy2cwjoMV!O5aqn4qm|h6aV(cGFmItG(GOU*BN(1 z@AO)71K0{bbLajFd!>!kwt1Yu-qpE>r2$NGW6%Buzxm#Qr=04+%2UM{APdJM`U=_$ zQ^EN+M+q}&XofVPE}QVHi;2&? z%Qy0d|8!R|U$pKd^5pDDJjVzlAweR0Gz=etw z?WGCgiFx<^Di>QI%PXoO2izy-g&vS9pPeC0Pir8NJ%v@A`%i%E^Jp!zzLmx;$*}Ll zQZN&nK{G+}tWB)Wk8rHdnRINy82-j{G0VFcWcnJoIYRm~ah0|E_;68S8^6EQ0@xHE z;Qoi0CJxXXLH@kBk7sVUmo<$ptYf!rHdBNxXrA9a@IS0x>@=G5bn(ze zGVCA+dv-Otp_MG9>9J?gyME=q3;6U+N=EMAqPV^#AF0u~OEF8O~`F`#;f_>rU&L{||RjbZdb4m}lSKu{> zPipXjteIkQx13CS#AFvA>D&Y0?p^%3AGwMneum}WRC%@4QhbRuzl$$0&a$+st= z-u|HL#t@1ZN!!<(xH8@^cr0!%uF*S)!~crWa?8V-G|-6nNs1NiGq-30wK{f90_zhj zk5ZkEX-A!WhvqM2u$XV@5{95xr2zgETf(?jG6bHfx3qb{ZQDyK63k)aj8wA<8-WK0 z&Z;8PV;YP0W8rvR_iT^lx(7GBhW$7Gs-0!>A!#>7?>BeeC~)iifsx|}${v1Tp}+7e z3d!j}7(TK-|j0OO9GOoQ>WnHH_1CdG~%v&?<#7oCCW!QRQnhVn;! zlyY63L41$J55=Sci>P$dne`i0yDkEk?#G`$jmo#sQxLv3#t;KxWsstw0CuZ%>Oj9s@s?WEJ2s869 zA?BxeO+n9^f&jOH*Ro|qwVkzlUM1uMt06g``P}K=XoL$KhD!u9&i#TFUBim*ZReKK zocnDYFjRVcdgd~^ZJuFak9WY43YxF(ZD(4%oX9AS^!gzm{GaedkS*Oidq|JTmPz6p z|2$Ten0&Nbc}BO-3CtI_Z*Bzc#wabr#%ROlIbYS{wu_0F$CK&K4i=U~RqMTgM1&IF zT?Mf4iDiwZWe2v%D*r(S`=iyls*@%EEl8jftrisM!nosoRG=<_HpAOgTp{QpwLqIm zxs-^?)83c?0nqkB2-Xj)$4{(-=r6eul-DHa9pck|+Ak^ZVorOnA}FsyR3^R;2<(1I zsr?vevp9&pFd7heVDh_tzx9G)>x}4&aY%?f)=ws{?f>#aTwljravlsSj|_I{D%|Gu z$SwLZxk)=-adP1$Nzz>k z-uOUxX;9zaMm@W8Na_8EM;DbfyaaFjHyqpvTpo*m zH+~FNM6BGV47~WbZECZG5x#GHgzWOuU$zcZ69267zi)iR|9vvh^cX!n3({r(X?A52 z^k8H2s{5x|^nHVbPnh7>FjnzqpR_N1b63Jays=cZVoT}j0& zdghmnBX};hP+jcUC!jshOL{MCG_@DuyUEhg|B_~9F^aiXfO?~n@HxGR8<48<+ZW$7#lp1^jmVBXED!)5{J6$X8mM*Aq+}|R)MEyo|f`emL z2&F6gUE6`RZwdBTsx5-rvgfw;<8$)66SHTA8+N{x>=6vn<2b)5GTPHM>nU)tUqq1! z^PqO;ZPR+p318s7)h!lU98?|y~)6=w|yohYy@&gy;e}&K4nqQh`*_HcZ!jJH<_Px@3x*KP~BYx z8-U(aT}fBc{X*J2P*VJUlMwQGmB@#e{cB!K@;3=^XbHtzW=cCjtDj?Js-=CK`((9l_^cs$53U=J6iu(!#S$0)8pfNw>H1yxJop>)Zw3akZ`Q6I zENIbp*DQ=Y{qmkM=_iLwd;4GU!`~207@VxE*79_$=$ab;jU!p|FMnlf)^C!x_alhb ze`u2{prksznL2u8F3xrm-3qRe6*U zrVik!de3ouo5;5Bn_F?;1y_dTtaywQ#%>fV{a1zeBTD!6EKXJ+`O@;T=vOt`7j>O_ za=`z7+`Xh87TQIVlwBxLgHi{`_nCSA{O#5Z`UPKW0iD_j>suS&NGWs?H@_zv`S-_< zMZuObVZ)8!JScn!q0;dH`Pn#;FT*K>EMv&5u2TC@YnG)Dgsube?&8M&eUd>r>H{)A_PXjn9U0Tp&Yi zP!UjM$?JX_i*rd4Ro>H#v;MTRr*ea+m`0NF2I2;(Z&Hh2oc`ZVfJPDWcM=df}lzO z#Bxi1M?zyDthndP+H4?Ya}GT<4C zA8`eo^3yNn-}lOoV1L&p7QSre{mt<3*DvlR2jE=`NqYfO@vZ0jGtt@9ej1G zDr9j-6X#S}!AE!1>E!~&(HFVmC0W99;cQxp7M^9sfyBI@k$D~29nA@7mBcd^@zm$Y z7USps>dCQy2z0beRW|cZy1<0jo<8yU>2IoIo1E($`L3M=RcjHknFLmO$$9`iBVx^fcyq60F8^VTzjQ?66i;C!<^`K>Y<+ z)K7&78E1(_PZuHym!(bgbb#VExo)Ab3SzdbB=jfgA`OWC+3-@-Q+B_v@`g42QvxTsubVOQx1O!`Jdz8vGI~`AUDxP< z9_&w(d;X4Ltm>SnR&4D`72n8h>e4c=Cd zEB%N?BT#VVNf;^FZ~WNkJ-EswsW8E8v>Rk~MB*xGh`u01K_v_p8=GH2cB+}n%nw;q zBovJMg(vi?^fg9Z?&&86y#$Tv%#F{h1sm5;VdB)hTg^`R#T2U`Rw~iR*389NJgz}hrk!6QeGPsI_N!r5LHv}o zhQl=f7;Eg0SQHqbT@jlPr)9sBIa!0S2~SkhU3`Nqk35eQ4`&`Umz9US8hamUTu=pj z-3hM&C!rdggoKL=Yiq!DC`rp#dT?@ z6(bZkmF9rbS5*>}P7dfSc3Mh+jaiI#!Cu3(@TOUkfywkLAcq8drK|D_{VOiWY+O24 zfbpYLfQv0{oy{}zI~yR0AzB%bmC6R!pkzT5W(~8otY>Io9tFcu-{AUC7B<*EWF1%+ z#fGqix58bbMVi$G2?Yz9Qye~I3fBq!pe7}3!V!!i*(+|Fo^(w zCJ-{(IOvDg1MCoX0h@;@LMo&^x7>8O@R&dnKou-VISPRV#6qmouO)fn2ZO@#(_$GX z43Tz=EzV7zJi#pC6lIXrSRW8JDi7niTfbFd&HV*xMlqOtI7De(;mgvO+Go|b*H7m+ z^|}b=O}UoT#$-QkS7AS6|2-TEn#reM1@@4x3fyv;a`(`9fFq*sM)CzriAul>DZ|B6 znon3Lj`)@$j$Z4`5SZSZn?l8p;u<5GcwS64My0*}53}-i6&yu^nR(*2SCWs@?2ED# zaz)bqU!+vSd>i=_)XZuwDf-$vhm@N(@3z@D!jesl_tNt6nYpmJ?^| z=HubwBp&HJ64Ys!>BjXXitP*vfQ9w9%^-O7cdA6SbIPVJ*b02Jp7dCzHDLV}UxIIE zM%kKn8*lrXPI4W2Nsa((ONdmw4XN^f;x-boD_|MZt|$O;3kh?9c!JhO1pD^*+So`G zeI~~lh&q!Ja}BDBf*LQzBvHQ7rSVbv%(&Cn-m1)L zQD_W%>jmpD>V|rdml{|9i#Z*uiDwq;P;X%47^I9e{s~54rHF?6N&7a}f4qzytN^M` z{G^g62;EZ`C`X9S2Qv4Ac)n$ltNT+hUOC*-OopfrF`MtX26}b~=s%+kPFaBVAuKRO zYO#WJrj2qLemPqN`>!3lx;))$55wbl&Te;$z?ZRi+#(Fs=gUE&cu$xEC@w23C?~8LCjtnUR@0Xz>JOguPX3sd`X?=Z0`sW3u9LUe{7tR)u9qF%4v2TS=3)!2;NuSixRP9FJ;jU>G z;7oXPtre(7wxqQSq{W*tti%;&{1S25O5fG9ttep|P*y*D;mHuY;!wP9_wqtAy?0DT z)n7Too^r*cT+?cFP-XPXr{9qO#_m=KzXqj@RE1#6RyAr!j**lbvxwP0@T7NkJA5yXyEBfzFHr^m z1-})KS-ZF2_n5ku)k=lo%6kn{_NA9t`?8ie6O|1~1K%^8bb35w9Wt87>M%ja9py#X z1&;fVZEa@%n|vPNyo>ooULHTe)_zPJh>9c)0l8F6ICGCg+)Jq}=L*LPRv&*cwv{F) zhR-J`fXDXm-trnyE4L)oaSEbU2q;bq+cj0N$O;YYbOF1)ndfUnmOPWHKLeQepYaIO zn|~m6@f7W#??77+i^yk;)T&Ot*oZ{FKlao|n?HQ`O*wBinZU=ExErY*sg7&%*QNnTUSam=BGK>ehIM}FiP^f|<-FWa*_`98 zQde%tg0tALsGC1N*WvHaoEABWdQWl;_A8g=-IJ)qE`PsXdGL!2){v9CYbA_;koO9h zW6K`k@xM9j<$EM$xL-bvv2nvtnDR|DE#P}Z$oR`-UX>)1O9b^f@t~6>#h_Ew^DGx7 z6LNCMZGUZUBqtf3U=@XCJ)3f7t*wCsZ>5&`mM4vHHLV9zvs+W-3~BqFd6(Pp2$OpR)iGu@2TA(GslRxCAn{{-Eq|my=*w@-8*|Wo-W=2EiU=YeezS8=FO6BUYZwylaaxp;f@~HR&B@2 zQ3{cyT7^4p)_jes00OI5Z~Y}(E8S{Y{dml(>@DG*B|WmokiU&Db%suUJg;=yU+J;S zxDBoU)d6$oZS+uSK32ceV##GC?Rvn>Epa|l?)6=3QrQ{CUE>xLl*RLL46Q~3{4OPe zn-@6!=E#G5PQO;Vc5wgtEILpOZ|hpJuQ?tOH&Ad_2RB|yjtJ^uSv^kAk z_-T5(7wGCCU-KSmf$!YPa6!fCq`_0hm=o<0cd4&7bTQ>{xi6t?? zg)wK%zV49(-u0&8ztVkt!@c0pjRP0atD$6P5uvH9=g^@+BNs;XUp;@?27Nb)^;bJN zM|QrfX>oC!ASw4|K3PjUdX-8Cc=dE7M;3mvu?c#LW^FnBKR6|Ro}Z=wHcY*HdZPy>qcEECQlECR z;m%X+=Fq0!jIjL|&bxjQocGCq5@J3WJz}!>y)vrJy&6~RT~%#>hH=^szub-fn@AQ> z9n|LE_Kvh)hD~MVC^B*>?UgY`_vq;!Wl4)x4p_UrkC!Bj(ilJ1PS+=P9l)Vvr(K&o zP_D&*ei1iHRb#-yD8T<~OaOeS=!+2$dZD*H3_`}q7FV;GGS zYJMc#^fG^EO!U8lXfYh>5mh|?-&D~*SCPnsXQTHw(H0(291PgUjg?@C<8%#tmF;ec z2aZ3CKoM|Y3$TN0Cp3uZ4AoomNaN6P0&J{?2Nk?rhQ)>_w@-aFIBp|T&7C*xUVgl3 zn0_wBH7zh0!2KiHLWQO{@3)e!L=yfCa_O*OUBaa+z&A*ls@3i zs=E^`Oug19_F}Q7dfrLY(XdN>1@%7wML@d0R-JVTqoq6OZ%Vq}#+u60V$k+({x8y{mzwXDj3M$b)^ zF=+o>HmVj@tbf+1J}JhjH4U+`Jv{2p)mek0;+3jB=zFOpO=xVbl^4``(DJtweWJB6 z>PDNUB{X4DlsQfsD^r%C6mX|y4e3=|Ib5!eA4f443py>J3M)c^?QG+DqcFo^)O;fer>!+Zg3QUW`E z-o{7;Clv4uoF)KL@NR%6V5k6W+^GO5-P{0FU5o(fyc7XvbI<|>cK`v)f5-!N;~)>1 z_yN3s+tL6ISmah?(j%Rh9u1CYj~(e672}-NwI8|f9OJm<+;fWY)3MJY17HZZ3~&b)`S1+* zZVO3ooVd~e?%pE+!NRA7{Vihf0fE~b0fn>70Y|N*y2W*}zzzo4a10D2(7!;otAGxW z{?h#TwJ-t0YHR_Df;lDpU1;nBbz+19FSg_WK3cW_W~~1JAF%I{zou#cFH zP-(mkpaye~0ya-sfZ~8Sq1Zd~mZ`u2^Qlw-8AD(%b~C)#XE^4l2r*Y})ETOjfEl<+ z`@gf)>j2g!-~d1-^Z*n|>VP9qwGv;y^Be#&Qz)PhG|s>caL5M>`&J0sclNj=ZQt{g z&;Vv3*V6pW&GrCS|AFy-l+S_yI8HqP9X{^6*0sEF~BWIU-5G>zz(UP5C+w9r~s`F-Y@hykAM?taljGmhX4y)yiftc19ZQ6^~HBV2ox4T#9?7I z)GUFH!pIn4SpyA)kR|}K1j7pntpdlGuR>6UqbWifv49Dx<|spIfDZpYi9$TvGyHr?gP5>Nb>j2O_^Z;1q zfD+yTEg%5Sk-h-hm$CuclrRIoFfydKGtJ_ysVL-~U?6+o$UNQ}~f3@f;a zC9k0}Dd0VWlV@DI9f=XVvVz0dB$zsyM_)Y5-*^7y*^jqyVu~vqUwH192_1E1}uwxpa6sG+h_R zBrlPzHw}9z0jJ+ zQFqheILXw{k!IjDZwk3I!R1#9bq{-AMOBtEH(`QYc6wVY;FL8gZNy(E@af;MLq3F> ziK8ttf{OeNVegByDni4Fsx{(o_j2<9y-_2;d!A8UOa!KDw*!&S zVhwMIXu}2&b!x(46ipi+TnqP;RVspHGR#3t@PVA8jKU$7t$b6^bksx*d)En{euNO7 z{|Q5z*r=hMJ+gI+&C}c&@jh2PMUb_Ghej;T^lYi=kzI1C@UGHuUKIMK#a-v-kncY` zkoh{Q$BpELay2bbGfs>m>X&+R9S#ax9L8Lc*HF4`8nU@3 z4#vvnC70!t5@NPjNr7eDTycwJuwvMa7`AQ3Er!vHVTv(q*bG}Q;}*yRTFsTyNYgys zhw6mhw@u?ePqjK%M0k$=1`XN-pB*sGOR?=V+{Z^<6ap6xgUm)sTSGMHe`l9rz`!mH zBPW4W^-n1N_6zSm8_W+?IOXNq>0+zCMC%V zp4iF5N;9IFFsghh0(V3TRLN34bA)_(<8DfnG<^;nSAfBSyh7_vS%7XG6+G4-UC-w{bA5%|c>jY;^AQN3J;4kc0=H=<@x^BEYmZ&HG5= zVt!hPo_QiCoBz|ui|OHY^zh4lJQbQw&P^kYo2)xbYQwt^bh{N%G$baY`4>*#w^%&i zM0(Rw(HBG$m9d8C&nOuyq8feH22bjSMAS)i9>%g+9|6TP_kW zl=~oMNgo+fZVagmba~~ON1sU=JeFu9X7u4kQ7qLKOCv-aA!S3?oHxSyZ6Ho;q7EM$7HDZCKJv6_gRg$t4lBizu4*L`%BK^6dKIqvo(F4|q@h(Je2H>t&fHEkAMZJySlK$x zEd2?_a-Y-(CX#+k^6#@*W0usLQfRZOoP-;LnT}kdclqV9$}YDl-ELIe8-zT^JS6Cx zOyg(QId!>pIc`x1v|EATW;3wIYfG$~ zc`N~-q?FXuj7$mCNsT*hElQO1odwa;#|O8;3vdcjC`t#ONgjAvGA+E|(&ZbM`CjI4 zjP~AFaC|EQV3rzz0mOBO@tZ6?rootsFvyk*0!B*E>^>zZ_v_ujrYi<}?ZANLUIY^c z~Q#>Pj(U~U9^|uk7?VDK#h2s#M!Ay_#Zt!?*lYE=Jix#GguP*ezPA ze}9qv9#}SK;av^oPYx;@>UWjRQ@nWT!E&Erh+5S+T4{hD((ERgzaCC!jx7b}C~;_M zqIM_L(+!kX32-AaDTg8nQwYz^_h|* z?L-|i*BZleO1ORbhfGVXPUmGzt6p(3_ddy$ZNpFD_Y^$gw2?|lNmt3$R(wOoluYZ= zdClTT32WSgT=(-I`g5O=_nP#0j{UbucPAti=`DtY59$1;v7OZYJ5R)}r5F0@e9^WJ z+Ap226Wn3En%12c5@b0ni6c{9`=0^DrHu@$V#hR==(fmKpsE$4WQ07U(l=K(LPcYh zqk6`X2c>$my!fqASjeSkc5`D@+#$(q>fTXPcxV18n@k!gbQ^@-9Dch>tJrNB&};I?EdO|+S}>4a zGQ48FfcQYRkQ|__tf(4VMCXRehCuK|2~8cF9)8Czq(a8Hg5P+W~9+1a4` z6*Jy*a(5{N9}=+^QxZ#z+b8QL@?mW!QdS5)mAAB8miHL>}2bd$mI3u?kPq|9>j>`oD{8TEmGVPuhO6;^-9E*I)rwA5c}Em@$u37 z!|liMhr9>nkK>;oA5I=^pI|!rIet1mJ0)#J$0+A-=WPx}4vtRBPOKbyos^vrPOzL3 z8^)SX%_5Dxo9Z+#H-$)oj%ZE^$P-L+Oe0L=rHeUJXdy$A}oYGBqiZKolJXo1~&Q^sB`ID?LG_5Zt>sk_ulG{|qi`pJEo4z@_nV=-ReI z@Qe2^nvsZag}2eYG>tBM{qi!Ook$ag)9edslt*^aCq2?6Im?@EYVgu8BJU;(kN$sSllSXp%M2di_D-ex&IR0zJ8gb#wUn=`|MP4Oq!$)#3ahrnqp`3g?#qMAuTFUMs}Y#CF_w zt5xN{om<=0g;DeM3rc|?E+Zi6c!H3gCL4|s5CC8@>E2UMWk83)hWT;9{1GUjSN;W`4!@Qjfy6zl z0O#h%RYcu8k^fUC4#H%2Y+n~8KGr!$`HyB(`}IGf%H=E_{|@`6yzzwW_&O8{TLm8o z&zRrGigsWVTK*^0>Z`uapuTJ~0g-h(f zx<#CnA0KttdQ3!j{@1beF#2OX&4!V*) z*n@koPZSk|WU7j* z@QRGEy`LU3fXJAc!PY1grt2t5;*NPB!bWQpO_kG7XYFEc&QA`rb{Z{A^#QF+S%~U# zVkl?CoMxS*i#Sh}xMuTRYIE4~ETM&2(fzJY`!cJ<{Qbj^b!OmZ)kdOOL7$rsFAnWlu}=D<;fUoUxYYXhB!zZJ zaz0xr28XmH)-job89Y#&CZgKVBwZ+?L%w-=j_VVyhejSF39gob&fCpn)qkT2DbDXk z*^vi>BZ$N&^lz6zj-UX*l;ayyg!|kWMmll%XAmlc!q|W!D^WsA$ms`E&KnW*BqRA$ z`y!6^i;9evmU0L>AD#}S1m>kq6>?`B=Qq;1idt|uZiFJ+P8m+nRsIv#U33YZ%z#g| zc17cMJ+k&y#Nvfyo+O?J(SqroUB-SeJ$SZ2UsuA>2PClZAM22DA0yTKdL*W7+9xug z=*3~#KZ(4xGa(M;#uMzN=n|+x_s0SVp)jYUR{GgR9Yl|sOi6p*y6asP`k~_6p+Fnr zC^T`j0aO!sA?CW#N zF!R=?8gx~i`Ez*+)Yq#)ww96Q@M6+C?(kYid-qF7?t1-c9mn{sBedWJq;`D(T1R2l z3draFbY&F*#y_?!Mkq#2;Iyy^ZWbGN2yDZRL_lZ?ey#xtkiZe}_EbEopuMBq4DDh- ztjy~&6FM*5rJSDufqA;n8+%Z6*3PqyoYF?`CfPJH}6J zq-QPPmbPjbs$j=MP_eMT1_!nT

}Sj2B`TwI*d^qb9-QHahAo5Grcy-5U-|39@#! zOYh0A#yBHTlM8BRF^*KlHrbV zP;a1Z+I-@cs#SymAmH3VVOn8Q@|o1Uq`(OB%>Cowfe|mh&@A9hQ)aWv5xuEwxhBoHGYW1Hr@ll>Hkp9G_pFSa&AXchLvyh3k8 zDde950LxtS>Sk!al9<^``g#rysm+9aut0K7BT3YZcRP(b(fOymho`ca=#9iALVMt0 z8du_L&>z4w7$ycj#IW8kFB5@L4p{9MnfgPsRv2F7U-!+$xG|Ayeto`g2!nOTLB9F$ z{RQnxNMQ~mSj9j;ZW7Au^OE=y`Lu_EPMCQw1OodAGCltP0P^$A;v$_rTm#G8f2Lpz z@(+}REW8C&cuP@X+yNn{+DnTE2zpQn2yW}QRfvlycI!UY;^ZOji;zcseolehCS?c^ z3kWOv@D>mpA|w3=33s=D12~B*KjO92%lNEKWc*ej5ccMe=#oL(%{zK~I3w^Uvw}Zs zA6=;xX2aH9r3J_%+Ls`XXCG*U{)`A4aaaR2+ltI%O}MRWA89O~Q%$(7c{AIJ{pNdd zU67mMo!pgYZ~zHyAw&$5hYOpx;IIN3M3_Us1V?%mAWNONmCO+s5?30I;9yC>H*aVv zG;S9W8aywiD+EkpL`HLcHHp$R3H;QnqMe28qoJOEF9og2itj>w#FVd zmtDLb?Tu(a9__MfZLsR!k-_*fek{um%))`pg+7;Tl)xERVa>@1`*?5&Pa}y34ZXw$ z0b<=jJiUfq9q-$;7xx6BImYV~CJPiFxx|M-Vwh)nl+Z=N6|}_Cg2hE$S+EPfu>F=N z*cLAN-axe+=74WMiNFPlF!Olo8gv9;eV`O+(HY!ML=Gxmo5aX~;`y^!nqWA*5#mpX znANW~H*qyxlKsE5WD3|YhVjAjnXP7#g9L_yN0>EQMz)j$)9p?DECwymp0*e=GuyoT zttxSVDm@a{F^mn!-NM$@fiqp)+2aWnMsN>rx(Yg}PTPVdE!bJJVCbVIAZoL0vu?A# z^znmEBPOQjZ5v!a8Qqz$2PBoB8Nk9eu~D|O5gbgo0NdW!N~uGLEqD6(h_)m7Gw*N7 zNY?Iw<9~*gG4uN{^;*+)$?~{bkw0nr4lpVg}KJ1LE@hx;LXA6trQr zo*XmGNyj;-Y01RjoNU|=9~71zfmp?Vv9IuklxX>DalEgvXKQ;stF#6jFm=D)pKFKU z9FIJjK5lSV@MiHd1I+QnaA!|3V9|p5$2+8KY-2)8Jz$!+E=LiA&dM=EOId6h)Ig&n z13-Z2#`Qn2D>F2HyoQOVfCi6RyAJl%-WrF_uiX}a8=Cha096%d(fa6%ZBWv5fuNv? zroP%@*9g>@<{TA{7$ZmfuF+f|o!HP4tOiaDGY$fxb;k32c+m$`JDqU<9Pw7wZ5k;v z9X_1l5lsV+s=$Lof{UaE_)|%V}Hhws6<>NJMsy&nr!T&`A$C_$M(6R9(C`>&UR4#iU&N<1vm;H_ewDI3jk4A z(ZB1GPzvS#x%Uu+J9<6j#;HQa6O(uRv* zRNFvkH*_$Dfg1V(*zN%Gi#!0{qhCkUqiRvg%_1oFbZh7fZUkl~-~3vEzIlR3#&~Mi z^8rj|CvW^#v!macX8zdB<7fjL;@#-h->tS-mUL@x*3ygXIyJZJZL97hkIYk!P7c|X z_J$*(D~_;foa%~%Zq1787l#A}?qVczMQH3>H-W6};A694?Kq3M(g#r5P~Jlx4_7cX z51>q8qfW3PAOnoM$7o>`v(rei=)Ahx%Nz;o}hJ17BXt%`1xVcdPS4m z?4Vf7ds7j&29Ox(g1lZO()Z9MUlu44^6;7vt-+EoT*AuBi^4@3m`d-79Fu@sPkK5}e=2D1)6!jMjXpQEs9A_9ZUVFZ92^R~ohr>kqS>+5pwJ(*mgz?+ zvw+i>y;~5%~}C+?^{8mF07UC zys})E%IH^C_RyM<<5a!8wgXcp2F({k0?oN-2;?frR1~<)1vJfyF!o-HPLzZ zd)`{;C>@FtTiBp_{J7g72-YL1NV;0^bWAXG+L)>`XUtpBnnC+dI7!w$R89s$Hd3ia z5Gf{zjN<8pC`Utv1FI7Z$%Cejn_^D2Ss=)^(0{ft0Adp*B1=B@+*N(os6hr%Vo?Ug zraA0X?5j;}9dT+3{W{3&0Ks`n4%iBpv0#%vGq5Y9jg?mg_ji?szpNYw4?Xp&4*FRR z_b{tU?#KJP&WS_+h>6)ZYW>^a>OVI-H+FedU5*%n>njfPgsT0jGKJM^>Y%902>X1Y zRDVDly-GZLd>pU!qy;Ojj+iW}tAhcMqNFQoq9v!G1&Ik0l~E4b@yFxA`Btur-BiIV z19$lu#asn+2Ml+@5RxXf%MI=)yIT0N)C3wM4i;O-NfXw|j^~tl@7E7;6=|cRBbTx5 zK2gP$o{Cq9=~G6pE@I3T_8OqG1_QJm-R*`_Jj>H_4Q#HmI3c`1vs!}<;$@uKve2U| zbOa~|Lm|e8Sa)!2yC~YgV}`B~PD^M*lG+kVsN8VXsL^@jUB@?tfz>uK#3W1FNNUld z+R|q3^ErcNAYcSMj~YCBSdb6p0+3$3%A4Gv8vkou_~>jYzs|}P<#!kOa}4aELNPL? zV*AY?U~}6Vy;~{(Sd5dGhlyRC9fsD#e%P*6W4Ly0PRi0fimd4DHn!oVv!k%u+Cguc z9mKYDb{g9PDL8{hxVW^8NatKv_cyPEL+W8F-wp+(?C9^A+foF?owi1`rsSg+5I1=) zx1nENTx|DAWl|+nW-xEky+b!uJjB_I2FE_6-A3tBGYgS~-IW-AHr17dDn|MS0I8e? z0B{GZ%2M;rrQ;bn^n+-}C!XagDGKBzHGSubS#z;Ks2QSBo zKF!GoCdw{ScSGv#?+jeU4bLmk+ z+p!D3mmktgeE2mDA2Le{iMa_V=m6Bs>2%d(8Vea#>z*0kN#CntAgW2Va;E~1(oMj?}3~PL~v{7ecP^DmnM1y5P&vZjyITCUd4M9sqKxJCm=kIe5m>LL8uJ0D%ZG2&S@z zBHVl#(z9}ajjBR0B8~DDcAjdsFE~cdT=?ZHCElwa^;StW-ey-fwTWB( zEh%Hb0vk9W9Qn7eNTVf&kSJoJr>7lh=@&i&$8ZOP2Vz3pLM5D0g*`VL_%C0n(s;(& zO8#zflpHT6F8|@+p)Q?xtp#}O_Qj!SQ7&FMo)u-&c1#Ma!}%_BH7l#Q8~&DnKq5;p z!%14um^s0-=$8`*m9xv1E-7<#J6c!obwCJbpfc<`k~bVBSu>|BUba;QfRvsCQ=g{X z0I}+Vee7BEf^4U443}2h>Pk;I(0LfZ^V2>~SfJKet)i{r ze4(E$@3XBk&W?>Ujp+n&`(ct}bRbQ~z~q@%x7Y5huYiIs64Qs&#D98~5JU|U>(%D~ z&t+i=`j<-h04cisCnda9({3If^6tZpuuE`GO}DDH3}m^qhOivYSuBF{-6mH$&G zxI(D891>S}VD)=cNOIj(yM#E6BM!=Rj2#sd5Yfb5X|SZG4N;ia!&TW&#u`hh_nk3q#^Td%%cq zS$%@Z1{N`ogmBzJoLbPB0E&wd>xhZD+K4CM!=Hwxei*TKc-Ye89xJg|o^lg0b+LBt zA$t~QPu#lLidEgMzpC2i5e!P{>AI?}+Xx2?#UFMMTtX05@&1tY)>6^Nj8l?;5xu_j zs@*~^?_~2gw*ld+`P##y`KymL&Dgx{Dhm6Vq8@#H*rM33A$fK!k)BDB0+^0%xTWBp zA{N|TaF!$L+h&j`sCl*J|9e|__OXT(-@hDMJ&l;-(#Pn$J5$l;>3yFZ0-;5*y$C~L2J3) z*oJ8l+<8qC{yo`)st`;pL#zzA^m>cgh+r4IF%H^HD!oplJQgpMAIG#vR;HjuQzh1< zF(dE@VgbH3x^Wy%rMSJTc?-&>?Gz-Cnuhl3fP}tu7Afa=6&R6UXSMO@DDNEq2 zLD(<;;7N3N;$qzD{coS{v$cq3rip%*aC;5g^=5@?C3fR9+X{~KG_gE=}& zZMotYoGWp9HoT+MJkhXr7%wrvE&;fmb(o=uYdS!7TV8_M$)~c~fT6hUnZjbjRYWLFE%;pI;`R#*4LZ@uHQE6(xWL`xmqZ`} z;=qQ_ab|k#IIUZTR1`EVt*t?)M7H#-|1dRw4nV&0OEB}UEu|}zVkQ3p>LlG;%yoHT zYEk4)EF_(1$6$HLy&{WNmIJ%cs8G8^v@|bt%Z`JI$Z_53;;YOo;Iem!=~4jdvHzCKLeiCX%O(1c`}PEwim(~7MO_>&K>+1)3&P7_NrjsL?e|y&ZO8#2o> z5$xg?payuy){_A!13YcXNrEHmJZ;HAi(xS*g^jWpH5#B>5TStKnMG=VRD`wigQZk+ z-ja|4Z4jOrlo0~%sKLA?{F=0)3T7Gw)w_ouC(@v{ts6VK^FJ=iJi4&r6{Tap+A#2#8utcd5l#{X2&#H<)ak(UyPOCc$*qAb^fs~lw#laz5Gip1_-P03HO$GmRbx1elZLh zF-1QZgnBV)z1idLC^6TnfJjfU;QU~l7?Yzgez^&^*9*pGo2%|tU*^uTnOiXC* zjW$wv3&@Je^Kd4a=zfd7Sol@QEY*KN=C+SvBnc5)GG@jRXVo1#=1ml+&w(ijC399# zJ4oFn+CcIDt<;c*O)r{KA1$|qSw(EN&7~)&5Z6oBO?(kgPEL&^iR`B>F)v6o%5Hsb zX>k9~yiGdWO7lu7_31Q{} zF%hS4oDoyxCJ2di0@pi%64p$HcIC$;bYK~sanw)D@N(s)K=f+h33P>T*{f#xtkLjl zim-}XlZ(j;GR+5ahOp+s(Lxu21aKat81YXb?_6^O}8?==i3|#2>F%072Bokgf!g zDSs0`TXKNz+$k1DzVS?C`8SE1mDrF@L2uu{Hm;zd7v<5*xr?s=d@1bALk?M&S zOe^`29&J*!r`|TB{XIG>v zK$QAJR=RrUPD_|>8#14O24?pQMa{D@BO^0`x=PL*pkINPQPA}LUQHkCxw}MW;>1|5 z8Kn~Eg^ID6FL1o1w3ndvKok<9!2pnLxR~~C@Ir!szYuyK38|nd``8Tw;3n=|0m)xB zR0&T&><`R<0W2b?ASxi0LCTC4=dVHSqahXqHt6gwU&C+tby}{Rr(qnE_8Wbd4ntu1 z%}YHmkw!|5ntU676H;+9-aI01Xo$RCrO=`=No+>ot++mp>S;^4|HWBCq-66Gz85ZZ zV9xU@3xIzqQo@f~mYfNa?O% zh2rOgho*8o&wzU_svMUmQe7g?2Ovv;6(q48$!;l%lEXkB)zBY`XZL`wY0+tz8SY6d8_2K?Ro8ZK=? z5f7Fg@()9bEK{EzP|$8DwNUjl!~e|AOCv^h)$wrXO8_wSM1k z_bLX_kX8AHPX`NSArD0~x#QGq0%Js><3zGXi&Tz~i>hwj`)(?pYG{YAP*ZAz-Q_*d z;-xJF0567gI2e;FLyD;`(Y_SH-HNF{q2A#S;xv8(x~K)r3xE9T^}*avDlq8^FZ3Fe zM?*P>hv3!|IIQ0rIa|2>sko6S@uJP6MJ_kD6!RJ=ZQaCD5J-*{Wmg(6I}19)xc#Qs z8Opv#?F>xhi`B`ZKoFUv%Q-YkT_uAENol3^JY4_JiyU#l4s@45v3^L*wG*l)tFqe8 zJ|xA66@iYSE#wUoW|bXaXDTv3X{2u}G01^Yk^2VyO|p@SzsGF=lF(SfNZ_ndge%!n zJ!1e3hbmCBU;|3FO{cGvH!F0H4W$6$Ve9o^)VhADi7^vUpiGcyC!{?Zd z;sQXducjp>AwFV~w+1@cy`RdnYJ=!?op?R!4UcKK`~wkEGzzX4swMT1D!*j(4yd#uWbTX z#MH(sY&a$;2l;3?ge;Nx9g*#N7dgD!b_v=~M1d1Wf6v7ihd!Qdwz&LoSyOS#Cm`5+ zp7#whOk81w4Z*YOK>NVujUTe&)W%5GXAANj!G8LAarm(Z$hD+R3qeqz}?+UiTJZ%`iG}CH#3&B z=3DtK5iuSlwOu4*XU1h04xS?miR@naDM>u9Zr0mzv2K) zGM|YW9UI!?WEq4->co@{W=ymxg^E-(8&SalqK0$x=_!?&mLG$ZgC6qwJgfp1i(VkN zqilU8LPm>3+Sns$qOXK`7&#Nkw9#h>_Zv+M<>*1@M&@7YY)Ge)`@|JeZ>;0XD9cNikLGOj)-Z$_BDje% zx9HMMRg&e;CUO9PN71yapKUo9cUibt1Y!`3Fq)(a4Z;J57BhZiOn3lJ4T+v$+izj- zaXy}_?04Mz+8$7Oi2&#2MphtZIGgu~lZGmk!*kbBrfms>!n zxsPcOeR5IS=0K2T_YBM%5Lq$0LD|TiPYsw#MW&`11iQHYXI_&fJBtnM!ah?e>a8{M4835g;dhs!~*Oia+}E>P(a z_5EdvVj5yaWb!`+DROGu#@%SvJE9N@fKo`LdoXHArPy!W@J|J+RF4(L^hDgxk_;%y>}-_6ZN!=p&Eu(?6fzI{v)=;3fceu{e$VnP+V414rcs#8neH zlqLwe8b#(pbD@F)E?Vn0PBr_l!wzPo#@x=i=Iqauac={qR&?{cNYZMr_7do;O!ZMN z@gp=+Z{DGpujT>6$xM|-{@JOZQI7L>%?r46ghURVZGX`JX-4S5gi-50Ojs^NtmK!?j6*iK24h}jdXc=pt?2ZXkR+YPJ| z!9ywdXNi`pJ^Z-CNZ6Wej5HE9Ftij?|2b{W2&!nDgv#X+o%nDazZD)Jy1yxs$$=+2 zq+$YzDd5x7;LwzwpKtISJ$cla{)$HLGpLczGPT34%dO1;mCC}_8I46gW^gXOz-9ez zsJhv6+|P?`XR!SwCW5Vsn;M!$RWOgFVHv{wMNxxj)K`lW@OR3ZA|?jWhl9Q=l0{|- zkGEM3iJo;~C;t*K4N|n8pC~Jy`T`wpp0aM0_mhl54$DQ2Le9D+QsY$-;tFk_QhuO- z{`Y!{1K%k?92<<;e?~l$>2UkqF|GBJ&}zv%-o2`m0d%K{r#o0K5o!7;mrgZt_ZP|u zp_C!}VBFfiK(=Ouih&8n?W(e-%m{?~*nX zI^M%qNrb%obuj0AY~xEu3P&*~a*@QyeMLf5cFPm+R45-3LU`n0cqNqGL+CrI&O^G5 zZe=_qd0LIdBYnydC}86k9hvG+QH0{+aQg13dV*Tf6^4N6F;E|=b2Mm-H6%^Nj+oG| zJa1eGpAvE;s{RN$pyZTyXG&rnMg~ngqlv9Xh4gl4+*2(O9O^WpS|EMYY3%-3Y2~5@ zuA>}ftpScB3gx0pn?}vmbgpe1@ctY*%6rlCHc%F1NM7GVb~KH~phEf7e$QR+2#~@~Xi+VXiY5u@x@NrmwS=H9;<0%1L~Gn3MOM+i zmqs*RoaF;DRa~e0R!yvJVzaDWO8^LfNFWbJuHmMo_DBoxlaXY5yr10rxV43~Jpg|-@v?k$fz#4-4@0MS^PrO(&&;?niF>Bc&?WcUk_aGl6TP)gz+&L8n*z3dhoI! zBT}TLz;T+O09b_jbyOk)yU?9i4yS`egeO(eq~{fMpA+9jxGJn_Vj zk%5JabCGsjeeStGo+6$~C#6(q`5y_;B#xni79v9L!HWPD;K0n%M2Zt_p^WDVSM}pp z0FfW5UR#h2g9`%uwj8OkZGy;Y*q}Yk>CAvh`v7keCRz^D801#Z=iW=Q@Q16Tgpa`& z-U@nENZ$CoiU01*4Dfs$cr_lca?FB26^~hbE|CMg0cao4@T|CgL2N=H$?_mW*pZm& zyA`AhF!?CC_Z(k+rS%1#RiHxdnKyuZT&=~dbmBXR5O6M-?XqD{LFZEBEek96U{Axi zKPLhNV^XGxtc4Eu98|QHTW#UF@Vyp1@2W1iGZKx5J?X`5$!%TbBp8iShVMctvgQJN z`|S$`Zfzv)@T+SB*0LY|DvTL3bG6k4Yey>1ue8z*$DOD1LLNJF)gZoFQ~+xs6uj{9 z-n`fz=dch!9Cy)_mxk(YKxQV_Cc2*}w*gm)aLZ$Sns`v!nJ2%Zdo?@RVTe(f8~{r| zw7)^x+E4HgI z&ZHm={lh6x)BzVAFjHWT?2#zFwH0Vie*rtEVh?5%9AopY2u>ptqG$D(S{6jbCjngE zW2#S@MqGB8$0@v{MYgF0kuhMX)yL`^4mx6@X{?pnlM2Y0FPnucL^@)kL})zE1*S9& zf!0uPgWH}a=WF1Y60I_X0_${{B9NjseGx(NYo0-)_27U7sFMwo+0_wgC5oy`s=Td& zEmoLR3LJP3RcZo&Qr`q8!hkw~M&<%dylo5wRjdPQOs_ZcLx_e#%zhTw>(^b-M#qg) zp9DojAAm*@Ri0S4riLe3uYyrK+39o)2zwDxelDfz?FlK>r)t*1Knh``!xS)Z`v2=8 zcjT=5S1uo#Bm*ZT-%lJ@L9FgnDF9_Eq(?P7&O)s&f~n%p%=ck{WYGaunq|(zN*fiH z31SeI(r-SwXhdCs7!bqBpBojG{M^oIvjxoqrih-%>$)I>lZ6M{ft^ zHFD{ep!Z0byrO@)mo3tXnPi?)#E9^b>E_jiMG>u*ILpg!&%G}Aoo}RP`uJq)Zja=G zCNd#1nlR2HCD}A*MYr!?HcqzSedUqvqZ2v8h@Bken6b=$KVlCXY@%j(aZ-9Fini&> zk|hnw308KQMM<@`NJM=-72RgsA`d);*bet@=@*xl6WO6U#*=ZSmSeB{gHl5LCw)lX zz^_nA5kYR&+yWLmsh;~7@IZ}z+uA5pIm89P5$%)5?{{?2pX&OfIP5Gu@gJFpYvMp>(SV8nc%!O0;g1s(;5lE?kvv{5ADIp>+YvPh2jc z6E<`M^(nTHZ~Gk!s-EQqH&tSAZUF5hw&PH^H;MX#Lq>>_c8v6k zWJN>9{dUB+ z1stC9YPB&7*OPC@*dhyub!+BS*V^V%sWsk!(+Uo@SeMe6On*43ISFb_Jy7B_G>a>i zSk1^zG?F0juuFZklfpM-n|+l5nQpDn{?4EHV#3p+=6HTQ0~F~uTM7RHWh%E(OD7du z7+9%^3^`WnYnztgjg;fGAgbv_CX3pTOL#&R!=mu673~m-78*2baOk6Yt~;uC1!Yz6 zipJVCZ0xIAHM13L^}V7cC}R2cvZ_P}5k?5AXJm#(v}I}E>$g-&ZiZ`N{ z`zp4LXt6>i!4zcbg`jN|Z-zV!#{E2df8gS+nF_5)!c@YmKOBXicleNvTfgic5msvU z@MLxnoHw#s)v>^t-jNgFTF9SD%z~_5Sx0hRMEL)Qc{-umSS47r_A}imdps3JH&}SE zW=U*nGm(^s6di3gG$A&NnAL(3CHBNx74HU4_||MiQyhMu>yoQd8-lGzw zR>&21L8R=xoalXd?3ITx6|F*x#9zKoqy~S!LfrT)qLHqxW9v!^y}KeQ!GIbjsWzMli2QgpipX`&d8L{W`Bu(BmD(9&j!@HH={;wg*bF_BCpMvl#=+4OvN zl1_F_QhqMhE{Ze=$JB#Hzbwy9{LsP+4IVck``*JuQR-s&Z1OHaRnmXOb2U0;yMBs| z{b^T~>m_wcO;4fMd1)V-5^PqOP-fSNuteA}HoxBncHX<`Hc9FxN#TKv=~XN;s@M}T zjuu>R^PaI(HCk$gT3|~k@nu;dKD9tCsyS`kKC>xXZ|M{q&WBGvfW>F`B1RK&!2J&Q-0l!|S!HP^mPKf^MQ3O7`$l!|NapMsxN zc3)DyBr$1nvG+ey@}_Y=h*OPo`Bl!GRD zuPh01dQn?rrOJxZi%fU{J>Tzp`C3s5b9}ai3~7Esi?Ij_q4;3;v*87(Fw=)ojBz$ru}C`1NPMh2tE6V)%L#P;P{uKR5;J@*?|puH+G z)_Xx>q7*V%R#fyP-4bJm#u6&wExNThXks|sNtb9?(~1GsMyj~!z6~^)N+NVG8ja@G zPq8`{BcEiQ6k&3Zdv+wO`rV~vT)aUEs$T4hr0Wx*PUksCJsDP^p4a3&qcVFQ;!7eW zgJ=R-5fh;V;FsGXYuREQB+)j~UbaNpDB1QB#USb*(;9kLbXZv00ik5r9!N`%STLcS z*u(2ZN4lsDTVrDrlzM~g99LGOWM(*IH1t)C?I-IV>u&|63bFs@$D*o8J=@xNQKT3m zEifCI7Y=M$XAHwFCW?J%;QLSyetAWMx5ZBKJ3|M~*V8!8oYq-_%B9w_{@BesYF1#a zdgGvG@rfvStXF^&65STl7F|k{Rch8$6ZEPw@$~8)?SD&1N63Id(Bbf#V_2Pm} z+5=IPh$tCRnU9!;#b8C`y{7145MUPZz!F$&FB~ApO?m4tuoGqH4UwdGCBztM8Ll3>A4f-?mtk5 zc2^!Asf;gb#+^L#Cz7mWke$QTC8hNtE0@y>=?*{4k5mE%CwYkR5}RgME_0oR2%$lR z^yN-5@JrK`1vPP#&aY;2qKxYFx@j74g+;pVES6duX^&yJ^Gu*@{>2xjt@X_<7DI%_ zV=(1O2pp6+50kQpyD%lGdk*xO*Ms( zm{5iXS}_X3D-ei4UlCB)Dj^#*1?TyX?2;uGDI0Bh=B*?}O!x$`l!=&UUAt9a*bOvz z8B&lTBX~eY-4Y5H#hCnV4Fxv=K=6c;fi9_pAAEVn%sRg+SzYg!dj`k@XIF*>nUx9Z zO(c_gj;_VRu#e*^F+<2Pq?@2GLK6sZ&p?;ev0_&NqD?7;7N(FB>^mq$;YEyPrLja_ z96|UR_I>c>K=EgmFRGm5?$h~&rECPr^TuoFD04j=4k{@uYU2>I!)Q#O!+AU_5aEK$?EoK%8yFm=;ii!~7+}y=Y zR$T}LD4=%)k90xUtg91^A}-9TY7Zi|N2ht{1t8a>fSTbYM%+laF;Rauk{MG*fJL04 z`pP$QE%{WU6c2Jvbr7hatWojS!|JXLs1u1{FjOXC8vEWAq43Z$8HfN3AP)q$)(N9o zUl0lFrz73t;vTuFvdbD#% z>7lHxY()U)HVt@Ul}c?r0#Z6X=%TKvd6XYCu`os$kH}mPz{W`>4)1q31O^~cMUzb^ zzKoTDs*+KH<^!57!^}~Mv0h%7kfADX0MKLrP2sAWz#CZ`jYR7tEx zw$mmBIbC~(yu9(5hCD@VT7%Qh%Ma9Uct;%}%dBW}L&14ZWs3y|VF^-h)c|CIs_1Vm zv|=*bUPHwJg+Y{1OD2dEcOn%M3eJF(Kt+i1jw0}f2|RdmM9C%YrC5OUR7Uq&6jvh* zLKyA)nczjyhOC(1y(Fv?b65;iUl^zaN@77x+qjgWC2Q9dS;A7G^UGeiqRk0oU&{cEjk!N*()I||F+zSmIJR&O zKz84yTpHj$z)d8@#<~*WP~Vf=<|f4V%f+yl%^ljTUj?ejaMNr~U7=Yl6s0|D0*6s* zV@8rm>wrtsvyh_x4QUI6g5fRs1Fp-jM9>m8nwdCPTtUY@FaaG4EXcY$KECuphr+Aq zoL-)Q0`MKb1Vu<_APj?$-8vNDwAs!$fGLkCVjU7(fZ_m}qf(xOiq5Q3Pz

kKuE;l z_raFOqqr?ZHK>IK@w_;{~AB&*`A7G^=sI3H148b+VP$IT!_4Q+-@e zp>5r2Is$r*gGijZn*6Gon*`=tiURapj78xnz)MOvoun5^Ql-Qtj4tg;?b_*Fux(sj zj2X>8_mcp5>`XC3I3O)fG)Qb*`UIh{fs)lPXoF}XowG8<#qNlq2EuTQRC)$NEelj% z3+j@v435?&D!d2>I|Y=eC<6pu6sddJLbs~(LOrk=Eb661$WQ{A)`?W)CcJ(uN*jyY zIxW~K>Q%J2N+?`<8B&0V^VeppQtc3}P{<(FRh#7yVoB;Uo=>?@KvCiNE_KfFQ15w$ z!P#^@Z?svmpgEjgqb?VlJMSy&wZXoL5yLuDqyfruy)I*cSj&lLA#K|L_4B(xQ;he(n> zbU2-XsT`@D09r24rv*{@y4L@Ko&x@B3VW!Kz7I=Y=YpU9ZrURL0(cpG+JuJ$-A{5* z%8E8B`eQ;_If>Ya#ETI=xH)mvm@%1P=544#pBb#2-h0GNxdU^#6btXhlDmra3jV8um&P-?}K&|PvDWt$6Ni+$e z2!Pvqyi7mZfZZnEpCElRif+mb4wHq3{nIcgTt3Lz5tJ&2@&Vc9ie|>a2zGE8B~boL z8CG?AY=kFek#Sh*lL>b~F7@CD>%b}3f_1YU2#l)!)2Xr|f-OX>;_U zP138_+=MZpon>8e*c5SDub`>E`RJxGgh?d1L;WzDW6g{u6}}eTv@B;|wrkcdcN8hN zu^qk?s{1myV3yL3+rXOfMvCmpk|=P{d&d$fUMTjg_CCvWzd&PBb$!?uEa|W*!XR-P zy6IVoq)@`|Wh@uDmfRvTV{HTQn4uoy6b~OXYiaR>a zfXqPqv|N>gbj^V1Ot9~)!LD&TMh0R7^36A4-uCUDML=VHr8;C)mOvOMSk8fov*X;q z6xrBU5*Ep?F5HuC7~Gx(5*={3-wjTS;#QavH?CtSY7VD@SX7B}oE=HTV75}sdh|}LvBJz$l{hm*Q+I+V&>$igzCdzKk;AupB?1!wF=3ElqZ`qr87LS zYy%-D_B3=I+gnWERaXI z^vwa#WwcAZS{Ub>4FxvsShSSINVvpElN?h_a&_w<;l{~+aDB0?cu6dyigxf4O$QV+ zisF;|ZUF(nH{)|&J$<~biy5%=Om0e(+9cDCDE%vm1<0NlO|2uen-5>nn>+8rA7)P? zbB~S+*^35X;+pnpF$WYA<)RrO#SNp^(RC+Wzq2-Q=^ zhmdcR)j}@xvO3s@c~LzK-cV#JIqe03Mo}Vk#yg8KK6>e`VQJC7Pg3ONl5$d$%0Wf# ze-KTe`$$qsV5fR$%t*jqS+Bpb2bxGuax|su=5whdU2bX#Kc?Qp2(%$wrp%mUzFY3A zoRqcKSZGyzZcL_o!}OG*8YWPSOJ)Iaw+FcO>{58HD(W)cN!5|FUQB89`JFv?0wP}b zK?P*qSvqR~;54JA6i)?Z6)u`jU1&xy!CEF%-dSjb9=_IXHbJ@8nRZZoor#UfQfoAs z(ZwEC2@)fUEQE0EkypoTgdV?kwIy(IPrQ1f+}@vXnniMviD2Iy5M&N1txX-K;Pv8c z6hkC1p`MlQL@=gXZUdmG1_v0bt*e_%M$M!j)L-3Br_;P} z4GS0^eby;9deN^864J7^nHHYw8lG9KVv!XI^h%UoWXw#v)XI{`c%uRqp8$qrldmX5 zsj19Dxy!<|p3A49hoH!|TgoCJ%$&+6;SzD{$>JhRJ7fAHeM+(s8yT^Pi1Bf`+e&4fsZ`Kwy3eGld`?ef|IX&=a!`#7482ET(&p~eNjnRtxa{@9|1 zE4xk*%GG$x3@(ZEad)?O>nds{r;QTSK^Cf*5|DJ34vc29e)FHLEGnp~zKvuo>MGs& z)L2tIZB^|aX(*$n1L5ap`Dv;^QxMo6k-Dr)A1R(-B0>oIYCSDSHPgln`!_XHv70?L zS6Tpg=)y5E4ujIdaji_Oq9R-#_V*8@%gTcb->vQL#Y`A8lDwo69ZTIF1qt-gFHZ~& z_87B2$rsBKYte#4RW(_mBTCDm{uV0VGD;?D9_+Rm?n7$*$h5a~kGP@GiA zao#0}nGX;?+e%xO4Qy>p>-=8=d_GD44Rl>Znl9&w&IkR*nn*UyhaHI!lrKIyGD4?V zH3oVFLuKSW-AqGGaODDV&}hx93edvw>XE1G>G(lWDkXj$3p5?z)(#0joDqj%4Jcw6 zqXm+3OAtTREG3qNI&Sr59rF!n0!%x>W_HJGdZC}Bj zyjnMX1!NOAY7NK+MVqaMHmTsxdN+}qlz=nxh0t+9NMuJWk~IZU5}}TQQ74g)|8$_@ z@eD$8{D5Kl-J^btDQsk}VTA<{$O>iLeUoClE};1&PY+YGRE)=?*Yqt3j%DTKy;M42 zaHMV0^9BD(Wn}@Ma0Q6(Z#+6$B~alB`Vh%Z5Dij9SkeCvJZ-iV2*O8iAT@sw+(S>Q%bLK!Hc~!PLmm>5UWAf-YIZ}J8*rU;IL^D@f?{b4^#F*-VnBrF{|`bkt>Pu7?ss7dKxBa z3^jhWszW3&p^fb$z+p=ftHZhlSwM)q0rdx`(H>yNhE`TpUKJ!$=!Oq9AUUQdrlN@e33oTn=OgSgHEyP9!LfdS@wVEt|D2 znkCp!4zc$ZUwYdI3q!i`LkNZ~UZqYW1vY}?Z68-$ikB!viOJZmg$WARz@`#-^vgv$ z?G&w}feJ<)sHLkdam++wzX>O=Blw>sg)xYyh{Qo z${;|xcm`}qmjs)E!?8)G4q<8=5}S}RJ4esLY=1{uU^^7UN0^ZWjO|*p6S3~?O2T+p z3QhGd5c-JXl9BWz=QN*8VyXcu{vk4-uZzOfr{#=PH)^_e<=u!w;^m_L>WHQIx8`1G zhkd#chIwZ_DzfyB2S`WJ(PEGDf~73_KRMK_A;rDMxJ$U8N*nSXm~n!L`FNj!mUid9 zM477;i4I`4!5=@>B+SOGLF^$%^}r6r*~4cW=6~U6(Mr!yA{1IeUkyg>dRlSy;;Y-5 zg)UpBQFn85K53pM1X0E^0wHyD?uelm;X%XSEVqIl$MxpsgBSvCw95SHsysa@4A4om zA<#GW66}YYnpVFRAkt#deh#D+5fi5C9Q!{DYc4cv3zF3k&~YG%QXXEz^vZ!p-LMz& z>z|^$ww?qFr&MEFhx)ie8$({@snbR?)-6kzb>42Eo_mQ?t574tHFUJ{6LrLZ#!Ef!Zsmak z+tbB>-8pUg&Gj>4lNyU+FHUMd*rQ=UP%IS-K`<)k*MdyRwH|1*exy&L<|c({fYziP z~rs?bS={Nbb{7kkxF=h zsy|S9P4(<6B9BbKZ*NqpHB(?#Y()VfH{UX7II67V*M$~tx&h59Su#|GrG-Pqtm*6-mE|Gzhc>DN0WWr}81_;~)XPD)5b3KT zxTA%o#~K)JrV;Ud9JbiPD#2m&=Yqwwv-^Y~?;q;0AUlrB>CMKZk64n*kcv{jh!@@# z$4X;Tu&Qr?Z?qz~C@HUk^da>~3w;WKL#??`AShN6+f%;4L@oT0z`-@sf}SahlMqD- z%gjY?7aa#H1tG~jCW+^W;#dF%>3Z<|0f#9AA%N$Ivi~Du?<6{*Kp=hSM(}6?I~Q(J zWroZ|Mt(}DO><+?i?!f(`m-e1ccZh9?d)K8{9;G0!b|>kZ>H%ES3O#Z{i8J1ldhO> z0GuEo6j%)2^|b;D#ei)PblwsGWa zUQH{#MlTC>>#Z#bS?P9|bV;^>W3u_+5(y9sQAj=gB*~gW~stjp32?Ge`eck8@qX{)qb*q`UeIBmi3z_6M zb87qXOh9XJry*lKqY2&^+$xifU(+9O78UxrsjG$R@7Qtopn%dyK~`Dhq>vNXz6^?a z;@c8Hsf7)ejin>`8`bhf45qE^coZLk)A&0fr>Y&$9^(+dx#BN{-p`B~&~X*;C{A4- zWL(4%4QRL{ME#SC5`H{o;t6K?1*iAe4zbF}6^CyG3}c-HqzljE5Z2hJ-m~Ey+ATvC z>7CZdW^5CCR~WjCZ-U=K318yV!?qhkNmW=M2-{ZSG(wD22u}1R-UQDfU;})Q-4BM| zyxv@Jz6ThXA7$`9%6d?A{E3prwWwtfj1{Jsd5;7536ij()6CtI0O)Mkl1#2wze6s8 zlHYtp3;+#9D@IyK=?f{ici^046BW-^hi(tYO&W2m0vW9BmFTgf%|j$Y=Pakq*XTl) z|Ip4BQA2GA;t06Uuv0GKG-p1^gu0rZr@#ks2t(>?);R7ypjY7uP*~<4P%H3B92P+$ z*}v_Adx*;`w7^W>FAwf=E^DnY93H%YR`)p=$a{P=_^cE*^4&V&G*Qvww@|qh&juwd z`JY?SfS$UW`Cnn;TRn`CMcsajK_CG>AP(rlfK81Xmx(n#d85+|`heTFtfZeHs7X82 zPlRYN%%O#q`M$xCJQL6_O#Lzl)(a94&%wkB0O%$h?6e>P7*S{$lpq|tdTTL|AKxMY zNcH3g?6i;?KXd!Yw-bm*KJ}kh0m0S$`PP6|^FccAGhSicSAe~rQO5-J-3_U-<9)dS z1Ihpss0%g<><-q;i+Bq7BQ7IBdWcyLtZzZBwjcl%;$0@W1?2F?9_EJM7860z^~S~H zRfzj|+pjhC*FKT^!M)@fcg>%VfJ18ecN{OhS7vtk`^{!p@DR7bsbv|Gw-kv5L8x69 zWP^9n!^T+2D0-RhU@*%#OZ;6Dz>OVZ+y>bg@G0bQ5f?w5{ZRkkan2wDK?Tg|cv1N= zq|4~WiBv8K=bD?C=%OWYcNuIN4YA(~! zKeXSsktva6s>Bs$=rQfS6R_KW6E71)QIJoC+hTO^#t(4sIX~tfO$U)I2ESTZ^e`lC zft@$SGyr4kc-F-8EVzav#qc?4j5mhgsx7sEDTs1P#wivJ33~yQACcw7h-grk=8pNg zEQ+yG@g60)@n@kc zj~X))KxOz7F}nhkM`@=)q=0XXMnfM*?}=1yx-IV8@m~C3M?rBGVt9=8ZO0D$K;h-p z`E+)?eXzby`P%h+aH&7I>Xta|>|*;GI`sSF>Awq;RBU?GWq6}r*KihHa-cp<6pEOy043rGki>a|hF z>>7yi{AEhV z+%2+!sFA8j2J}P<0T2zyLjyYiW7*F22w1FWdrhz_bZu08A9A7WK0(sz%bcbg16!LIR+FMSLA&@ww^#sZ%CRE>Yd4| zH38vkekh?ZMTlqu%-_){J`QL*Yp~8LdYNTXSG-T?*oUIj##CSgv1h8)WQzAY)nq?; zN&>yj5pk$YYdl;$htO(&IE6g6G!9DlqJ(#i+3&yWignDoi(gE#XUP)S|-+i93}H`HL(3pM(ZwN)PIz>g_Rni>}j*I^2{GM^u#0E8)ll_1ZPbAB#g@l!~0CMlSrNnKp zk|LFnG6QG#7{wXje8%B(pjSJ9>QRH$&_E5hh(PQBom;y#f(9!SAJ8nDUkkV++$7I4 zo2nQ?AGi5R2WepaCwy#HaX9sFcuA=e#7wq`xiJ-?JbOY-*fx(ks>V{vL&0&$U`fd= zOa~W=!tf}gB4qrjQkCo?zIKv!v8~MZt2C7}1R0oK{PW@dOt5-(lW;C82fd`+BcqE0 zrILmK1xKG9?O$ki2bCI@AT^(GX^JqYYtTe;*ja!dpFrt13i6DZ%<^_Op?ZXKB@qw; zH_>CMS}q2N2y(G~1UAUHP^P(BS%4HG<x};~o>y>U_>AMiWJPrgtH$507nPcsrESg{pYVLbe6x=yU?QgoI?T+jtm4BO zqA?tJuG!7{7*QY+I3fWcYjGu%L)a`3_}i3zP#7FG>jde_n~>36t`4kF1pkgh{TV;t z24nhwfxT1F{4ykppva$r3V@jwI*@h|2uLHah`X>NSON)8STrJpAR02Y%su?V3R1yW z#!teQ8Cuh6W7e$3n#;m&oie1m{&@W|50U(`F^Hsgx+5a?v4-m2_UvTJX~G4ZzW>I# zig1%xBz4yQM7Z=8icE)HsyB~Pf_@KlQB%X#X+uYSm=nFoTe-* zv5ka4-L_|A!N_dKmF|oKr{H6=AYEVOG<(+vQOLtUk zv1L-gKoJu+>~Xn`%Tx)wm;6_wja_7xjvZ&m8SaG&PaaEF(x6l=8=ftFx;tnH<;)n` z%!Sy}j$L~)4-tLX6#xW)8G+fPqYoflfvoEo!eVcUTfuL?_gnc06m>wqd*~4ty@%L~ zq%ML7PWW6*=0_pl?~ol3>R{{ao`_e;(dDla8ZEE-GRy@hDS>4LCiFsGle)tO5c-a_ zvYc$ul%H{q7mhR<`4GdL@fd-%3L&%D+BPf++KVYb$^wD8%3w&M#L5;Bw%8((8dRWe zbb!6`fw#&A?;@DPgOIZto#;x55yR0Ftld>p6eEo+{K2N_$8-u&&YXEt&uJE@&uB6k z)77C1ss=_}8bbO#<;U8k1$)O41~cZwc6G=iJA($zAdCU+T>a+7+A$Oc*Pp3V$J4Ji)(~+GANMaRdYSZ;VKa_Hxi+4;4j6B;zXQe_rau51Fn`=a_FS=KO zx5TUH#aRFtC$Pz|KGBNqb)8gHplBkLlIBv1;b%9{7sM8-JqIos(POW>WDrXxk}Y%ogui8 z0tSZ@oybPSu=cuRxI@F78N&yLEc44(>iro_;HW0n=U0skN)tday2;>D_fvQYVFQ9e zw)(?m6H6>^(NZM&6V@(B)q@U8+H5;;NDoDyDmN!8#i|39dX8Og2=jipsLCPeoxWXd z9$9p#nIk-~19>0J@e+LRuSgPJ5y+KlnLW-1RU{Cu<#0`4QrpL#f7BQIA%Ierf=CJB zG;R9iR=g?%hrKi~u0ZpvWY*3wNF212IOv4IJzx59F!Da`$|`I~i@8O0pc|ehF4MClxb0pz#?KYB^#|emldnrLeGl0=njF&)M!JwNr;@3Ge%RMBH-%k zsGs0Kgzkdz2!f*bT=0rQ zPC^wX>yKr-42(h$5(U44&eEcJ!w0&Zmuw9OObF-kv~7_a9%e;@4v+i-hhn+y4W>QiOZ@NMo) zB2;+W3tl6qL;Ya~b9#LdFl>^TM6Vbtdl2U}F|gaWXG^jeA%sMsLaSqdbN3)Ne3@c} z@e57vFo`pN;jX#ITqPpz#fb%vKVA_T*VBJ}fIer&P+%u6SZK4y*lj{8F%kk08P2hA zbgY0n$``>sOQ9ih>tN)Of+u4xu1!|(R}&JL?nOVhA@Z+S9`(r_%Vw`CK2*W%7fAAN zQ>1zqJ0(CMvQa-RFmtyIBjZ*Bz99+m6af2(h9c#sDs>frq!*aNA=o&85=1FLy~m2P z@1(}erY0Ml8>LeX9BeKUfz`$d(pn(uaP1^QB^ww-(&(X~`>LS57 zR@*?Ex+ta6fCNl9QHrI~5Z|kmYknOsHbX>Vj$*sOZ_;i^|D7GWc&LQ<_34HZ(}2CEOZ zZGUm~x{qosP4440Y`G749K%5I4LjUjBkUQWvKe+5GxYj|+i@m2ZVSu-9smhp4F`1D z9GFB$88pV|T3ArA&f%|;z>ZppM2RGEGa*pwMDj?Gpe9@ol{(AugV-OUr=h*_1FKJt z5$rCI-8hv&088RZE9HWG2rY>?nNC5Aw)}NcReU9+96vHqlxVzQtm#;c@nYEpvtQLP`O+o1W1_;AGBe($%safZO zb<8Oju$dh8XY=;MBf&`O|<0~2JRqo#^< zFB1zvF*7J&N|pys6n}?BN1~8CoFmBq^VYrSFAyuD%&>XeH-fC{9-W9%rVB&d6 zTfp!j6i*z^iFwq$EarSUf3YE@Vo_{k%tOnVge18cm0If}Wh@?R*wDzRd6*Y2tvE-i z#IWdfT<4XCfAGBZcp%ihKLcfd%Mi#{a9zE6N#yn4$@f3P^Cr(|7)}{ZZ{6$HH2zDG z#t{)XShp!EX(EwjLb3SNM0(aE*w}KZB0`w8Is_kvQ0lLE3P-O|fIdXSRui+b2wjWy z*3W8^mp1zl{X#uz)d3rMs{_NV0LCwW51DJioC()m_5E>Zpjs$OCY2hHH^9?|K4kDQ z#ec68>^t!|49*=vM4KqonczxAvhOQlbNUd|wqX-qpv3PD93?J{aR2hn>vP~X*U^`2 znrbS;s;iSS$rtogbtH5u|LYJ$L}2KO(73nrnar7jqUAQ#uA(MbLkQuRdO#cMiYfTG z{$NjW{>$^Lyk3)+b6Yteb@cMMEUMf>f^K6pjnE7JOr%7T;5JCq;uD5bNi?V}^!A#Q zKgG`31#SM1kJwc#L~pd z?z?LoPFT4PyS>jsAvN6YzIWlp0F)#tF(fw#WM9);eRDhrL`S)Y*W`)j%}i zMV4-D#^0&B5g(q0AHWylnip3OFU#_*CT_mH#LIh_m-Dal;S=osd@&#v&BqFOM1sg^ z6o9RW6n0OV!FY){e1vT`q)r#hecmJ$K04LWvFk>TRj#t*wby@%(a9h;E)NMre`5lo znaocEZm1hiTfzXGVl3K=xJ~cmju%`7gneM@Qh815#mXRB8$xPmhPkS?@+?fb_%}^8 zhLY9KD2XK>rHzGp#7%6`JJK%(^f=I3_ghLAh=icbC%_?bGe|=8f=v8<)AU7r=IQ$u zvYFB>d!Rfc%A6xeruZVqaGZnM-T;zGJ{W>T`MNvJY@A1+10waE>wA&kG}B_KWF?nF zqI*pe{-Kg0++$0|0LcWQA+ydZd_g1Km$!PG5Ku|*um_P+mp0&(*ECMR8}a}!QF;7+ zGx1~X*?$*TEApOh5FjIQ%KqQKQ>ZroK^7o6KmR`nHiCJF#6)2!xqnXc=}M7>0tAVr zE_L5L?N17EYvbM~Q(uC{Xl$Oih>4n}Oucz+o(Dybp)HZtD??axRdq)=qy&Wx*d}bs zPx*k?{cTJ!R+{)FQFM%e$92{&g2zv=AzSKE#xJ;Virq+vaE?!4D{g4{L=9!u(^7T z3xw(6t*i7p0F2i%U{x117rV~w+kVyhb1*j60HEB^Pk0@Vgf=8%)=)>Pj zF@7_{*t;}X;)3_qaT2ATCtpQysXFjRYJp3uX|}A&^!UtB0`zpu!V1GSK0;9^+^iCb z;Atpx!O3u`<$z>Ky0hD)TB0PH^||-+_2F5U2$wCh2%6P+c+6gJ#J~UsR)uMU+10P;xWh2jxh*!BnS}y6?F9> zhUf*JXcwA^tHhOfiD0s~@1k|LZR^X&NGy#6J@vmjLa2%2X#7*TXZE1jyWI}tj1WXW z1vK%yaeZcNk>vA@ynsPO@q_d(nu9Ba9oN@_jW7n%AxdD#v{qw~D34U_?gfJi_y(7WpGtsyB7!6{D9@nb-2f5e z&z@FDL=R)wl@2^!2oS|~Qhg4`r-I?j^bYCa5CBjF5aEkbzjA!uyU|0V-n0UnVJsS| zFxO5lz6oFnaCotU;n){6hav$57rDXxJEK&<0M)6&Qn#I0J^K!lYNCrSB;BPG*s z@TC1-jNR1$&E)FTL0Fy;0~1?`_h705*GFF6_XF?h2Hcl=0?k7K!ut9V*@J(PIcgM6 zq)VhSVC|-%_42d_&W2M-xkJKmcUFBsqK4-w>Hf1h(H(?X#>#+LP>CZ~)gt+L&_Bu> zFQ`ioQq$zLTP@eEZ0=A97g4wg(n5aKXO$=l=eO-%1c)tn8E7q_6v}VLy_($N9jok> zxq1ZBFcF;;D68Ums;}3%3Tk+TVP!*5kUQT5K^m9!EQ(=#LBae^iRJru%3%&l!ZRL9 z{X!i^wcpCY=)jtjSP(k&R9DHuRSS4cltS&_9|st)0D|5>*;kNe;%F1ggCfpSz|d3BS7i+q4PmIcHV6js&U}g8I?Uhh6v$QqJwe{c zI}&gpWPDs~`p(J3A_j#MB`+){@Agn^T!BOTUL}x)5iSOex~NsjVaSVcnB`*78i{Kc zU)2mDeyKb51Hdk6)E*IY#};T^i)(Q(yJQyt1OQ1uw!bvv7`r3$Fc%_TBq~d*0;u=p zV`E_KYd-va;}D-{6hUhABm@BZ#I^el&DUH;a4Q9i5~H+~cDg1%YTFQmA>P=V`v`2F z0p0(!SWF3m$)LT7QopTx49fX}T1tPbMN$F`3sBZWwB-*x-G~myW7)?cO**uCCOQ-4=@76Y zsxGI2$$0E-Yt^N#N}DU2D$2T(Sn>&|3qMfTasQN|D_MdZ4Uq+WinR7l9D!JuC#|3V zU}%?Xm$al%9JDKW)HI1J7F#?>!MUR2I|!K!Xq8)fM41lm^Ogttaj5Nc<}jOFh%ie4 zqIJ3iAw+x1V2+TL=OOuxu`}@zeTFe;4;U&>2$nL%3Nxd#7{pLI7z*1eH4zL>ALjq4 zLs+4@6G3F@ffC1G6F{Iy*g@{LhV)QJ45>T>= zvK|S?GmmJjASE1M+)hTOxp1kgb1B;88DC^ENw=a~iQP=Um4WlW?j@OSRI_ZwY~X47 z&D9>IB(i?I5c!C+u&TWLdWe98c}E_QIwZ1y&q>ya$=Uh>NA&EK6Gh7XCn!AIrQwo# z`w;Cse|lDEx=Vx*-It@4`@Po)Q36~!0n75c`dA1%rWr^4O-=XhvveZO*`fgS9w*{a zz$BanhZ*vK3RE4Ej4CDQ7zoUN;DbpU@9l^GJ?~$^Coe-_ z22?SJu)t|!7y~+K{*Egc(;LiSGYHhX;B;#P7;vpqd?r2bHI(}Dg=U*Bq=S;&(QNpFokjo6|^+27u6PaSy`=? zWP(a^r$(UKJsa$UQ;5TGrlAW+D)9s`iXtlh`|V~2oeMSncm&W30fwTaQ#>~AijN71 zsT_!ug2W4x{zj8-FD4EB*$j}=&>UoBA`9 z&iihFD74L7t|_76sSf7l!FPTL(RJ_PSxkKGnxh6M3Cqv{9O@M!qdATM>F-dvwAD5k zfpD>rj{zuQTLz-ItAW`eTk<5nUwVtuXU-V2YWo^3P)8X=tIv{=d7W2L@2}(hJwBN{ zG$>pjHluFPQDj+AmKE!IO_+<(J;8B$& zzR;g*0|)ydXpjY7?cNG3ffnFWUiY&JyC;d6YntC4PoRjA1rwMSj^wXUnR zC;V;GyGj|cHI8jRKbU*Y}aM#8SUc7@84`1-IlU#kDH;JrtKybmy? z2_~jNFQTA#_R=&w>baK`xE~U$EjE9kn^LSi$E7#ROmKaPG!W*}WFP&sjW64BBeTM1 zi#vJiO5HVIT4A*hxtic>G!kmr&tI_)R2Bk|YvVYDQkb*p%OP&Tfjpc{)L8FOxq`tm z7=hsA1RsM>a9FwW>1fDeaA&|ocuBZ=lG_?a*g;s(^nyEY87w4Nyn#l1AeOS7CIfz; z&F6t=WN3hZH{IVRZM;AP2ZtbVAC;;;0z4*$QzhHCwNKj+s2{em42xL=3r#^0?+PgM z_&RuJjv2zG%2DFB5;$ZAYOn3c$o^qR`wShTH$eVl(2gvr*cGw65_!+$2lLR{l9xqz zCe$^ya+NKR9^OV^T9|Wi{R22zRYf4P z!|075hymiOcHj7sJvhe=O`;iU!Ss7ma6N}Y1Ad{fOW_UF6&(L)!O)Ku6Qow&9T=|p zd0z=WhR3-ue1fACz*X?UG!VTToIEuIq5-J!gF?U7&U-1nhj=1Omz46C23bhNj7-yf z_YLYo0P|6p76(YgTaV)++aUbxfk?=&xq>z@uB>jCt`;uw2JM9%r>*m>|JoH*o3>I9 znX?2R1)7WPAxuaocnHr9x#YuD;9I2BF$ZI92A+biLJ8?FRewQlbu`HY3Pk_4cQw)* z(IJX(pnNyrMk;CL8-gd#s7v=|34=3pP%T_0Xw3M7 znUS88L$OrA--N*~CMSDK3 z7;mFcX<{85jFB6C#W-ci$j3@QGc3sw<79+c5%bQsuLTcatVu;r<&XK80w==7vXZLS zlvMGtF^_e^^AKUv*^q;_%rTwD5*N}GM6I!~f@C?~&bM+Ezz{A&TNDrv1mIybZH`m1 zUJS)v-JfGt8?DKP8Iu;m`TdY9S(yAfba}5fcV8`#7GxKouAzRAoB{Cm9zRD z2GSVhGMNKocVDb@Yj?J8g65&RjXK~WQPFGbUZ%3ws-_RHD^cxKu|=qdi89u}AZ{su z_W())x&YmSo|; zslD%?EW&eveD(>#!9j-txVI9Fzd#j%F?TQ3Il!=OhH_b=DY7?Os<|R9QIQs?$yHZM zMXE|R_Q6$GBt@zn2}u#gRgVo9NCvNG>6XH|QPl?GkHAP}NBqDW@zff{hXwDviC1Omd13n&QE zE!+^rkp|R)1$YUVjY4Be`8J6gTZqgjShTS-7SQH2bC@O}m`<^+G|XF4m~xmVViK4p zO&BH`nSiZx1jWNL67%@|%$I#QAn>quIU)iP4Xp1iJNXMkeT_s<--p61p9Gc2p55zI zA5cg2lXLf-#W^+u4u|j;`2dJ05?to(C&|FXp>2B_x^8b~Y+I#;FhZNy4uB%#p>}Gd zajLYmm4dVh&dU92aL+nsLli-6mIsZ-?r2IJGs=CDf%c zAm|lo!b+MD;D{!{wq8_hZ0|%rKwQ`xLV`9fY!Zl=Pv#Ir3{wTM;JUGt(@-a2_}3`! z*ARENU2R;6_9%h!-0&Ex0uR{hl+i5V5~?y0ol%kmFbOow22}^P^^S^&p<2AT*LzuB#0mk?$AwZfCsiJTzzkO2RJq6rC$cQ z$_yWT#^912Nd6b-aI&TzI8zv=iKPjFOkWN{V30VF88gGhR3%6gD6a61Vd4@%2v7=| zO)OwL3mhm)Tf$g=$N}?3vX-78)*gYts1W+$`6MOmWvHeXpiMEQ0+3w5>4JJ>+tAmd z+{fu>@ctHWtP%@?hxFkpzfs6r!2JOYF(SIQI-C{Nk+&s)FQvkO5x|&YmO2y;>p#yV zxKF!m0N`|VAIFoS$mBnW?ZP~s7zCc%=0RKy5Q#!^IS!jxE9|^2N;=v)ymWBppy(|= zkSatp3Yi6@i|IT`d$|E7NkL*K_~1}fKpUtpwFQ5HhBZm-45nfUl&KAXBgp4a6Z{Wo z7yiA3l7KTF@ylL8(TusX<``%Dx`984#dUqO+nbXqz3=5= zC_H*>6r;-&Q%$HgR9fZ+#+B_pv4pHCUms4-YL8ABAv7`n5p#A$?4#Q|$pGa7pGe6b z!7URAtt5pXJOJs2(=tJZ0H_h{MJw2iyvso9Es{n$N)@_Nhj8&|a4{mJSH(CJSEpQA zMlpb3lMGfhFsY+?P(+mPU1Rgg{3Tf=|3GP5wtXa|*sKysyx4qQ&h&v4cJxUf@n~-H zbP`EagCHHo2~h+)AY1E32oYq;Rw4%gvAstlOBWr@MWKjlYM_nuu1C_H_B)bJO{i%m zCKYz?s&7wnoK&0Fk1_TJ1?6XKZ{mUo2_wKIQl!?dSP${aES(~Q53(KAWt+Z;islmp zP$EGCr0oazcysCxsh2LA-Llh3Pls(XJL|1q4lK>0v*EX%gv!=N*nrzcj;>#_t1y=s z9YHK2A1OkK8nZsUSAZ3SH2`n0Rh>b=OD1L906q~XaYSs)0ALsiIJ&Sw(GBO-FxmrW)tL+})?WB|F!VMESKrUZ1W z;wiP057;!#V&F2w^s8_nHG2_(JMqAmmH_|gW$S&H*p}Z(l_1bP0 z=7HY&B*-Dqs)VO~V&k|rpe0?641FkE`ct?z%#uV_Y%(1`0`jY4reu;c07L@g!}6jyRzMV2}&xfdH9PSs08!5}}c7VvJbGFG48%!}@C#C3i#+;+luKM|}*9i(mE><6z{B_Y{>Ey4q1Q)U=N4mB6=-5DeE60c68eRLB$90vwg=0Q^wT+YYNyDeKJxD2*me@IDAuq;)JUV&QmJ zXb;vokFL;ygNh-C@?p5}49yk(p$fpU%ZP=%=Aw<#I>%gx;s~X?aujueTmfPkN)=`; zjr=}n@%>&9wJ;&?#aP@RqY~gX{mo~bQLhr%532iXe{(0Epcu0ewAcd#gM~$%>t>d* zif}8Hqr)MPv>H{QWdLS{8vxM!G!@AbAtSJ@n+!yv&R@kSqz|8BKI{mjQGdXQ2Uo-K z;xJtTLQc2=AV1+@B&!^nlYIylQ`^O&bz)6vJo6UVEH8?j`>+tThP*NL=XR*z?6^!i z5dk7HiORC9p3T54xAlizrASKJK4g;7PD9dB0flc6I>910uy$b$U1CE}h^by9GptyC0mr(1H>+P^5*{eKl!TJY* zM?)a%0d;Xs&H)RH??h#sGVyk8kS+KCmlC1IvP742kQAK->-0pjI4sjKV`T2ijoi9f z-Pr){N_Lor*_R5fvUQ#V?#@8sr^#kFLZKXsKNU|xa}$)7N{%)v*nnfph{B9F1>F{1 zLw52J3N{<`QE(>#31F65f|v}~704;iCK7L;NVv%2fnYq^An}G^v<}1JL`L9ThDhw?^yv5;q2E<2+@IF=< z$VVZhhH(s>2@xJsg9)zixlA(Ea7QhG6r^6}(>uO-6c9VaL^uM{-6yM5EXfIjgv)@y zw3yK@0J|+;hrkcW>LXb!hkEqw;HX5NN77=KFi&KbmjKRU2vry^N9NGh3_ZXZP!yY* zB9kSohQ1brfN*jrB7&Pp6N^ZgV(bPQCTrOz5I_w2Lde2;iA~swtVRfuf@DIE9$H|& zg#?6KM5PlNAZITNBknAkfPPeayX-qV0d1BDVmN>*g%3KFm{^{8VtN4Zs8%EG7Xvxd;)Q?-2fqgc!7{2{CdvsUJ2vw5Z^L#T>uX4#j17& z(F-^a)Ucxpf(ZqkVCI4(RsoD3ISXP^f*L5KJCy@XQUFQNC1~vJW=lop9i4L~+g3$R zx&hpt&w^{%ATJS~y7(9#nsQ$Z;DM zQrff#w40QXwjWNn)C+^czH?X2ZWGWZ7E= z_J-rB6pt!F50p2Y>L+^mG!CM?Nv5=^oe8yhZWSH#1tkyu4z=Kl4U{XBY0zr~wvUQ= zDP=Sc2OSANbZ@^AL&0>5G@ixpKvD_pV{kVT-jBWWm3?@8S2S7%g10R99ms|>D3_aH z;Dj#z3=q)u=g}_)6v`FiU}=S#gyR!UR6r|Z&nR4N3i>V)Mjk7FkVE(=YF%Qk=-?XZ zhg6}UJ}tUBGXEqFLQJMVz%_hQF2=n&ls31wprq;)rf@EjNfR6N5g^=WyBYP5Sln=p z^j@x8j-it!G;7!)p>Xem>uMskDoW0vH9k0AXj*6QZkOBc_$-qDYXB9o1a;L7o@LMl zK~{8H90UlbEs{~L=Ep*Y@dSTqIP@SbI;bHF-j(RDLSKoJMF%tU@jygexz zH80J*9#l8Z@>#b^X>Kn3+TuJ1mZLDB5>-HJ1zIzPEe`qHU81Gk^${6mFh&bDPGnCR zgu&SrFIvCkMPtq?c8UxOwA;B9y(o??Jd_7#Qlvs-%o^BQaxFyJnUZTRRHP^(U2*#X z5Zho}job+U=L*fX2ZZdR(Avukvu=1?pcYkfW)}t}T7)#B5Im`Um46(m1;0@fO-~$8 zvc(ckWNsEWEsacx2i=JTMtX3hYw0G&q>OILNj!E@8eG(i@1f$!ixQBk66Dzm7labk zmHj59m=HviqE1oE%V|ydV%z}tX9Pd#I?X&fvF1S5wCm}_*%U>MXDFsjsc{GCjGO1p z`WPQHM{kak2+krw-Byu2Y+f}RS%lB0L(g`z(iounG7(io^SK#k7c5>7X1mEum+iVe z&gTd$IHb{7OoNUfq!^#`6|MUx4k`uSNm}{_m8Lc`wGxa5Q#=Dv8_V1g8j=FnGA;()-$SDV z?cs)iOT!vGZw{-D!t)_eW+4cO8IXP-0wOA!ipDqUcwB-mA@z(hFu0#aG4y|h(>k2-(2XY8(pe!bJ9ptRlfvde+sA73ZSm(6^UF>iid z&Z}y*24VOK1PYMAtrm(E1=|bW`bYroW&jBCTR;r%z*W(79sQFV-R#bf*hbg+kJcdS z@jRNk9i4=F-6(!QW!uMz8EsefmzNeM)xQwd_hgidsYz81>JtHJ|LwrKn}KFq#5mnJ zb>*#DiI<>fS^8V_fH~RIKrTxuybLJ1d$E6??wBn6iJu zVKXBV-W*DFB$nFwu>l3dXV?@7@&XOLz!ema#G=wM} zza(8WnO$q3!)J|?{XG;4!dHX2>$=5&MBloJz-^l(T8e;}yJ6v1mDG=HwBrz|whuow z&z`~+hvqcv|%#fLMFh3jFaGJxmw^&p0g2+_=ubzB>iGqPBKr89xnGX4hZht zo9}xUN|%_J&4oCOMU$$#n)h*QCyvEIIn%L04X~Qqs618iglZ1SG;>tAvJ2h`U!M}( zM{Bsw8Walt?JcyQZN})pKGNd zB8%{s_bYq&?n+45x2-CfA@s?t+fNuBOihE%e783lJ~jd&*Z1Ql!76zv-I+AjkXht| zC&CYhvHwU0VwW`)8VQKwbkTQHFqfSY=FE#o5kk3NZ17e~hGgxyW=(kP%m^8VU%YSn z9G_`?)md9f!||sAnN@wI+o7T)0Ypa*DGV({R!Jljifah%Hr#3r22B{x7n4RgqG~N{SLxmmY|Qk9pJx45JN0 zA2yXDBSUhLs@TSf`WM*x52cC z9`5qz)c7Xz;=wm?h)k~K)ke=dXZ8NdeCZA@vAa5 z&se0=$?MVa#Q5dj7@HTwgHcI6?}WgQOeP-65wI@h@F3*Xe<$JlDEphk7g_X2Ok$(f zZyt&F1a45H-L+qm#%kfGY7g{WlNPodotTJ7HHVO9h}H^BS41dkJwxNH^&xRU*B!`V zLS;l(Suokz_?Gf3jzcU|p{ZCvW2dD+_C?yPU{T+DjAqZk9j$m_}x2d2D_ z&nwvDHkv7mr_CeFV`^Ws(pg! zc)#gRNx<0zibvGLGp_(G!}18IeGECqPud=}XPAXZKP(&VxNL%@3JLM^=pWhFNyzD{ zCCUyw)z%sBweYZuv@igJX1M;l$WO_#I@Q9ALNBp`#L3ucAn4Td$Z#l15$OyAcGZpk zweCmSctnc{lUuF>=Y&u1@0E0_p=0Cr`abF^<%8jt;WydrLN+Cl7dTO#BNM(sMD@Fx zFr^N;tz?q#_yZN@@LVPoZuDTshD>SeX zcPjLWLCXM=P+vMfoQ`IBdSbqmL1>A^e4;Mky|UAb8jQ%Y>6O50Gn%&df^lH~4)AP- z1xSjeQsP8H4~K!Vu*?M-4F^RfViO=V8W%ftni>7P?qmRTIjZb{(MU)a1`eFf)IhG^ zxK_f#TrD)=ATvf4ldo1U1};BnXcqut-A`8MKT=3N;{F4ZwnwXJdi)0v?4*NR#NVU$ zO^_=n|9pi~Ev_T#u|jIHkHW&8iWS|Z7%jl)Oa?hnin&At?NQ-1dG%`5d@fk6d-a{e zaKzE?eejb9Llb>c<(yRT5nh{?DLOV;MSqZqOeA(~r@`CR&_#0HC;D}q1FyV_HLmE> z9Pl%CQozhvZy*m_tow_Fp*AyK6j2L>rGxF+*H>V)J7a$5p zLLXpKSh$nFH5-el(yAC^UjewezGb$Y^dpiI`eawqy&l*(P(-u4@lwln{m+SGJLP{ z6N{Q@cvKSfz(Q)SXa=aQ9UTM7Q8ob>v~O>211-yrDy2|G(g_AZY@@k5)L_?pTAMr( z#5houth6LQ0UmX6p2D*b0UfLc$-wy#Wrf%nGQeVhd#9vfXvHphS?cbiB4mCL4R#|; z9d8iulF?)#Gl#p_ucg|W;(8%!kNsVAmzKFvCeI5!#`fai4LG%^Vch3;kMfui9mA1S z@)@E#z_ZqiIb%Q~I(!5! z?oQ#b$2o4|X%d%hO{oOq7T5dNvY7kU7Jl4iDH9y6pwbnzkI^?>7%F!PyEcq8R4o7ti&ngB(=$xotJ`}n~b21f!K*y zUXOdxp3n~wbeJN>#;883wUIwLs+JEr;#GkqoN7|959w2XL2_K{v`3bIL)~^!2Xq-w zI?J$A;9yLfUs{hUF!=T`$x}wB6lk;L+=en%B%w8IOI(DEe1qP40R&@5!qw5}zG^I% z>U?!@$IE2nO%O*xr*UgmC6IvYAu%aKfUswz|N7w=cXn8NS;8oKVKw)2Sc;6AHP&fT zdy54CsRNH`Z%)!#J33eGa$B%RSA`OUc3BG_o`zXOODVDk&sWyjNJ*KHz3)frFKwZ& zarBrmH{sX!V3phgnfi&e7Nrk#JYW`nO6~a{$8Dl|r#Sv>HSoJNsyDT1FGFH6(mcZr zthe^cKW%UNqqtZAUc{4VHp{H^HLK z)JBQ6Vuff$WMRTaFtLckg8PeIa!Ca)Eb~zyy9OAj*2Xo4`eC-z@XrGPTo&k`je1%` zLH>@$PDH^F7zA^!WS2Rj5n^O+Mv;RH@vy4jIasfc)GXE-tX!iQaz@yd?>#aw=MrYROvJ3Y`;Q3oQcm!MLPN6&>8 z8zW&QQX-o^2Bw1e@yn^ILIJ}XT?C`=@b!j1bP}S8iAV>7wn7xVpXCyZP)Z%@iI6O_ zU5E`6x^ zu7Xs9Pk8abbWmz?S6U#KtDxdMaHrRtC9-K8xGH!=>Lxaj`7t5zF}U#K@N!PY@R>jr z+u$jJY(xQPz6_MdkAV3AP}|^kn#15Pe%H7ChCdC&0dTYrex(g3b! z!E*=FG61n}z)qtPd;q9o#hKuuFN8-0G92(wKf?6{!qj-2Xo9XUNrv8JXtqPURrpFiq)>{G;mje8$v6u@T@f@O z8od!E1msnk$z2b5M72?F3gfGFL}p>+_9>Hj7jb$!YN=9???vHj1VLM87CPlxs$8EW z_(&(4H`S_bM_E!C|TWusTe;ScnJZe*S(~~8t#Zd z{xpmOtKOu#io*+f;Maux`YK&aThd*D-GMtclS_u9%Iy~jddj(nR17>$LNy;oLTovx+5!X!+FrTI$z5{Cz=OgfA zu;PJy&}(~;#?mTDYqeAE?XXhT)FT`N3r1S`-wXI5K7R!JQja~{LR=B?8}bSsx=r5ehui57mrJXXMcHihcfBMpIs z)L)6F^Q^MoAzEjq&rqn4t}Z6=sTS@k zGOwlK{3qxIMpUjUk7ZHq5Q`6CF-=>U6Sn%H)ranoZBbcIz!RH`bAWlBAw6VMBi6e13NTxQcE zijtzCDn^y5AOR_GQsE+c`uVMBdQX#k4rWG2))GP)=6%0gF-XuVbCL1k|}-BvL6%rqG#k zqPiD9jUs6j7xPIHiI#%pkpZ_=;VdNyi=lB%GUzZfo`{`UCv`8XE>h)aA~JsBd|arU zRJO{N+7mp1g$h`xN|iF1tW2efi6~f7XW@*|DwZk|?NxwErHX}ROKhzEi8pY%_y8%0 z(|=5q7E;A$pY|B-1*Q`gLi20D8Wd8+L1Lu#R(2)&R4f#wmM{g^xZXfIlS#s=-UJ0z zVUIkV=kL%ey9=&jcf|mIE5gvnAVA02@ZE|d#39hCO+-%&$6lnQr91o{ehkqIsqXxM zB_@|dwH!{PfDg3b^2tDy5}g4#)GYEw)YMD)D=%KrA9Ad|7|pcR#Kk68!6Ap7$L(A@ z6p>IcsV$)_6{rK`%jjIw2rw_zY!3-FLPR1D9srLBLP>gKs>n@7nCV`AeeSG6&Scai zEx<;g7fJA@1CvEC1&M(;L{9Vstrrv-6p^>-Z#TM9+ZJzDN*|?Ge}5NVj18gr#Y2;q{~s|W(!&R z)l}C5kZn8&?Rdr@7b!-S;1%2pdmloR6&RsUD*035@r+(O#Tr*+RJHI^zX>n54THl_ zia25r4)a^*-OY4}7Q0ykc^k*SFMCcGXY5X4lV5M8amt0^|G zQKd(BHOfOlj1?L(WF+W8rOSTw5zGsn}-|m&yIry91}HisY;^?-jF6XFByeWMrjmbSm=h$!nNX~Hda4D+d>3s#T}sGGSTRS z>7^D{vQ%EsUg$YRdYmRA z?=MD58=Rh+Y!hi<=;)4Ol9>Erh+hsfA>gx6>6xzw+_sFUGE$kWl}lJ7#$+0mBTHbYfF0`%`C#;}(SX*(d+q<{!z*uw-| zHuoBs$EUJw=r3ule^J0H*AdE^tH5O8Z3(b|@zUV@r8VgRnsfbH_^ThgAYax$cR$Yt z;#zMOKdawtO2z!Aj#X%REH<5!2WKsS9%@gfsS`g!nyE91@=Drzx&1a`%o;?0jlxuK zuz9egO5(eR;+vax*MNH-z-Bu|m~)O&&gf8OT0@N`beRZK6?~)v=fH7GVHjdkl*bpR zhKvWV=CE`&&blsI9gf*FwNdGAqyh}S4}J`VPva?Xq+$T*>}Z#;Jq{Aj2Xzt5lvEvw zC}n_*ydAv;0X&>SZ6$xv&sHjMtuS|!*$^SB)Pm&^a-&i%bLiI z>}p{x_PnBjBt9gKPnRY36z~2rDy8fM{|sh;X@}&$?TgUF7GOetkU2+o{6J2wJEWV7 z5!_Fx4WY98g(kKQQOqDvoz-YD2`-@SlLGRBfYqpxxpWMu1|aA1zOw|MVyoake+ATV zSk9nH`ZcR^;y1>ipw2FU2LE6d=-tU59Rr)`4IAc6CmPaBKZW#NTP~-OBRDqYbP5rQ z9^cwGMnTB1`%6V@548QZ;#UFv{bTJAvY~|wE((8t$7FBW+ zqx_s;Lp{8699O0}ykbkvLmX6n6%XMG%%J*MHDjaW#$9i+7icxLS)>ER<9?ik@!ChQ z6QC=N{C6M9w+=CrD*?)IWJsK2BSs<0@SsODlMDuv%wO(_E)1nP>A+Pu9y}U67?k zEgb-iSU=#Tu_JQo3=k@slx_ADsqj7;H+f{>KO402_ZZAZRaM7Bqoi~2*%TInm{7Fi zG$(Qbfs@ObqiQ5o_wx$!SHn&};E_(BI`FJpL!nIq9hhJxum;8hABFS5S>U4ZQFvUA zQ{@l~M3PsKE>e&?F z$0YQmbLJ4+Uc6u`WD&6_-z10wW?;Z8ZDj758-cK@8$fwinP8Lu6tf)oa$0lHnCCfw zPMYKR1|`9&?->S;@;O)48x|YJ1H%FL!lS@E7MEhtO7NV;tS{j6@B%QXq-5|-uCIqz zha&2VN>kJY6)8)BO;SB?w7hEk3GWTzNTTplp3&9(NDO33xEp>)?=^|nhNAFw;7Wxc zTfi{z6Fe3bn!Y_kQfzrPWYpNn_q>D?Eml2H- zj&VgvTeTgElb%L)!lWop+G!!=u8m#9z;(KGWRP{*V*o2**6rW}L$5SF*aOTNd0Zag z%bia19Agb76w-|p!^2WP)6T9LiUUd3(&D-Sq^&E5Y6~YCj#YRPLWGB_1wj^xC!q6$ zTc<|v2)j8UfH*~`f|w%nB>ZOZYsuiT0j_jr%&k!dx(Nw_4e3yOv8v-H(n6-sW}iPc z$%Ke*I9#Y^DqzOtQmD;7OT$#E6Chl)39e2asFd(aEUEnz$EWol_vwZwJj(Ie2rQ3P z{xV@In82hmzZzorg(8uo!|A3e{YvUFNc(16tsU2|blUZBLbjZjMQJn!gy>Fl5+ zLo1d>mGcQ%NZ8A@7h|S{E}bTw1E0R(?Dlc^Lg>S%W%vccu#aHv>iwCeD?n(GdV#$; zg=)SLMsQH7%54D0S6<};n;|OLZ zE}0Bmxq$teOGvvRhx^b3`rW34CNI!M&RRWP+V!ggxL7l`Eq$w(?n@UeOOc~yMRT%M zmNk}EnTog@;jByApLt{5m_ET+1v$=ao2I) zBQP`%b*@o^Yb;!_P(2S1>hW1+>P)+vE$A*9wrq)9#Vk^nR(tIJsd!aORTESoa|K(E z0A#NcGF(Zpuilph*abc*aGIc-6U8cKsU~5RC!FI}nV;Vx1|Vmk{^nNpUTGZQaW2G+ zfV|C#Bs&=4k`<#fW{{Cdz$RwmYynh3nYlBI64cG!YO68AX5!VfiCZcgGdF$%S6D42 zESs;?@ARADd~h)7)*@xXQO{>CRFO5umig3SsZeHDn&^_-kY!D9!s+HIjeR>Q|X(R8!cs<39e5R68rOAkZi-nFc*n>g-3%aCjj{JBp#bFn=mj7O#G4^HX=#%vq=t8 zyCil8kMINmW5NU4XYg44r>bZUBa`+^s*vX7Ut$k~MB$b!I#nsh^G4A-G%469Re70H z3FICqS8-!x5`hm5Yk&|eMFV(=Jrt-+&_RO7*v51PC_j*KBYM3%E>7*aft3+K7(o0!m0cAmvXJb;v(MT#8h*YA+iT(-sQ7MH_ ztHV&dpg2KBh}apRZ?iHe8PRt^9e}reOHEIb?^vj=vl*Vm%vG{ht0rc<%UDuO#dcd; zQ9x=K^LqQd!)#lBeiQ$0GTI0vycBY^1>; zz{cfX$|@O|odiovLz>?Zevj?{d0?togXWzDi8V`o15SpEI-+Li^EFG><4Z(C4`@?V ztx(;BYYkEj@A7GNU|0A6v2y*Y9zAuYsSfPTc4qvbh>kY(8h@L$%OhmY#*U2^H0>~m z8Ar9EECH~?0JU@gE3TjIZXc~&44CG+$sZar@Bdo<2N9z<6(4fYtfQ`4P@DCyuzF|F zqCkBcT?ZpBTWeSL*T9AO6N65^SZFiDYSX7e^W}z&V{+6`SWRoM`>@vdu+w;&wpm1$ z81XkP+r@@3jx@e+wbL{E>}=7F`x_bTf}lZKdBZi@eb<=Uto&h%T+>ybmV_rmxX+Or&L)OpkI8 zEZ;Goretk1y==5$GE}7NT z3n*1?A!k!*>hjf4mnqSkMSrm~eCj#>e^(V!)XKuyYR#ZI+OuGJTCQ+~AIf>nn&rk; z&6yeEvwTnuEY~jsTQ$o_U3i$c_;;ZAqnB0Y@3IW>Od(Y__-8F87YrXCo zJXVjb9ywa?TVB;}`mLRWG3@b{YdCPV1t~kACK{?D#EDmsi`E$BTQ9GY-`llYz+g z4RqFo$j@@E2ZPh2L5!rE>}NpM__60HRT4bS7BKHlK}3%_DR<(C0Yt89cp_XBr_8y= zu;O5~5UdjnOQBLgu&gW;xHeBhEE^`Q81MIkVfF^kP+!~{k}vF+Vj=axnG2Lnk_1@uf?KbVf}>fC_Sq#?2N73_Lhk_EfY9; zIK<8CE4P^&R__BuMO%{UMZ1;-1>M;=z^7J15KbmqJPVWPIhmlfv}TI9U}8IqjM+HE z13pZnGHl4hD$K|-V8w$`Oq(+($kQv$38U(}VW!4gU`%C4siEvh!UKtnF$CB%4`!*D zax0vsQ4t!f$B?Q;we~nr0I@kpa?y?EPX(Bu(N$86#j(l-nrp!Se!K$*X)-({vnu8b z+cLNmP?UWF1WK@pq7f|^eO6=xf@>`TBltv3Koyt~0MQ+}2a`Y{S3>+~pcPg{1*A~x zG*IGdJdBbc0Hhr2B2;KAQKV?lt_@S0s?5}V1-Fp#jHeT!2uhL%p@JCo7W;;s1=w3B zhTvHiaZztakm5tqF33}rHsCYGYqi8&HmTK0lXK$jO!B)nd8P=OAkli|%`JfiULYj= zxWLhKSOl1>U9v9~u7@prSc_NGmOC$`$9oY2rA0fFOR_yioK^KIJNS_rKq>ZZB1_fA zkK?$h(nMJ|iY}AzE=1~9TCHYntypGHL1rY)Sk(XE(j2{9Q7cwz%9W^=CT8}j@J>R` zeYPd_heVejDVP9dbg5XwiFT!(FAp~UyM;xp8ZTP(XYDA@Evm>#hx2B- zR(jFgwIF1hsezyf^ySeZCD){p;kBk)V%XV84Hi!uF@d5^?Q2nO=EcgrtXM%LpyuQa z3ZR+6P^&uDrI^;0Vk#uu(z4{Gp{$1bvPG(SRH;t{GmVQSaPLeuqTT~ZOafTxJF<_= zculbgZLxNySuspinMVe=b+0Tf^}qnLHo94lck`rz#IUVkOXxrgzg|%7+RtnP0LcOX zY`gNT_c~TX^IU^On0E+=b>5+yB#3sVOUz!C(s4zcZbsl}R+v!$itd^q5_+uRXn~dC zP=dWbC{{-_)@*bfV9{g|9ajLZPRR(P_2T-6At!rT6lw2b!3K0TS<+%$GtF!ne>Hl! zz-B~^qz@%vHOmUpIkp1KB(d&!8>f?kQ7xqtTI@$UuQ~-?+MykFDkc82uK2`vDgW#V zK@}_nqPBJzt15OGHG~R2s!zFY4Wt!6(G`N+H!Z=}^g|VqDXsKt-vvWQ;k!9;xGJ}* zOOsazPVQMuZP%1Zc_g}$ON>11aapaEwm$ly#fhyGipUp|fD*yJ$UzlNr7V^(^|whP zskDWOu~J;EUt!Ay4Qj*9b{}I+i`q$PS1zf$!CI_nR}4>eV(=FFD;%d*!qc;>45zPe z$v`4LB->t#i4@A=5S{ufIFzCCB$q14mqwLLFm0NOCH-a5vf{ZVQEyAvF1c#+SNVqo zt%XX+NNuVeD6HyW?zRS!kwz7mT16%!2DD>(jQ3f#JeqBwh{dR+W2GdLE5$xUaCm+w zf;Yx92Z5%IW~dH|`D`8+s~C9s7LgL2V(B7ncGSslG^-^w+N6<5Ct!9`6m+c9I5mmr zEr(M3I4OfV7A^Iy%43@g0xjEjG1A8=agc7(#V50n%%-%^jM9)ssRUB0_}Wdps@(#j z19xDFU~xnnb3;0|z@~9-+bYPtCB-R52{fxD>Rs|Ak0ZpZkEnY8WlG_ILX-pQSpe3cg%M~t)N1vH;^{S=6!GPu%{xT-nE_)!mYo567s&Tz5dJY`eVzXeUS zPRZ{9BmgAalFa$WB(tCrHUdPHGkL)#-1=rgL{lsYSL9eEgP^hmKrElps8FA(1J*S? zPHV7Z9G>7}f{}Da!zFT&unJzN&oviEs?_n7g-&E!oD^$Tps*CY0*|0kO0v|w1LMA0 zoV06^a-Tn_qAOiL!-ox`M7rw3}yb1e5e@ z1XyuMFshY1+4)>fimKog|ECM>;Pli{5RIcjiti9=2-#qjv;vXps0HOaMx!H8K%EpQ znwzH1-hwGnUKZCXH!>vdT2|5y=Z}Q2AranRJsa?aK49b#AVQrRLMZr_(5uRHmY`FJ z3OIp8UD{Kk>plgn8fE_C5f#ReDR`!RU6Z9vkHV%!L|d8f5n*XoZwZojU|w%sDbPVp zw3*Gf+#2;oJ87mRt&?RLmdz>7!%FI%B5c~tHa)c7dI^%tRi*tzCS$)@r`4SF0k-S> ziB8&Yb1gJJQ-~DVQ!|